ControlNet from_single_file when already converted #9978
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.
What does this PR do?
This PR fixes #9976
ControlNet
from_single_file
is broken when used with a checkpoint that has already been converted:diffusers/src/diffusers/loaders/single_file_utils.py
Line 457 in f6f7afa
diffusers/src/diffusers/loaders/single_file_utils.py
Line 65 in f6f7afa
The state dict is incorrectly being detected as
v1
Stable Diffusion because the checked keys forcontrolnet
are for non-Diffusers format.We add to checked keys for
controlnet
and addcontrolnet_xl_large
,controlnet_xl_mid
andcontrolnet_xl_small
as the final types withcontrolnet_xl
being used internally as a key to check for XL vs v1.controlnet_xl
keys are for Diffusers type checkpoints and need equivalents for non-converted checkpoints.When fixed, or if we provide the correct config:
convert_controlnet_checkpoint
called as part offrom_single_file
expects non-Diffusers type, the conversion function runs without error and returns an unusable state dict.convert_controlnet_checkpoint
is modified to return the checkpoint if it's already been converted.Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.
@sayakpaul @vladmandic