Fix: Don't auto-scale away from SDXL training sizes #8042
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
This adds a quick check to the bbox auto scaling to leave the values alone when using an SDXL model and the dimensions are one of the standard sizes that SDXL was trained on. Scaling to nearby dimensions that do not play well with the Unet's internal downscaling results in edge artifacts.
All of the override dimensions are within 10% of the ~1MiP target size of the autoscaling code, and skipping the upscale will also avoid compression and reduce the number of saved intermediate images.
Related Issues / Discussions
Previous discussion and suggestion of hard-coding fix:
https://discordapp.com/channels/1020123559063990373/1049495067846524939/1301654971254575175
Recent mention of the bug:
https://discordapp.com/channels/1020123559063990373/1020123559831539744/1375205214839115796
Original investigation about it a year ago (yikes):
https://discordapp.com/channels/1020123559063990373/1240001897814036562
Merge Plan
ready to merge
Checklist
What's New
copy (if doing a release after this PR)