Fix SDXL t2i adapters expect BGR instead of RGB #7205
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Added conversions that trigger on SDXL to change the color order for t2i image inputs, which is required for OpenPose to work correctly. TencentARC t2i adapters were trained on cv2 preprocessor outputs in BGR format. As far as I can tell, those are the only publicly available SDXL-T2I available at this time, and OpenPose is the only one that is not greyscale. Changing the image order has no effect on canny/depth/etc.
Fix is applied for both main backend and the as-of-yet-unused modular backend. Also I snuck in a fix for the progress bar so the modular backend doesn't crash before denoising begins.
Related Issues / Discussions
https://www.reddit.com/r/StableDiffusion/comments/1f854k3/psa_fixing_sdxl_t2iadapter_openpose/
QA Instructions
Before:

After:

Merge Plan
Checklist