Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
renzhc
diffusers_dcu
Commits
b5fd6f13
Unverified
Commit
b5fd6f13
authored
Nov 22, 2024
by
hlky
Committed by
GitHub
Nov 22, 2024
Browse files
ControlNet from_single_file when already converted (#9978)
Co-authored-by:
Dhruv Nair
<
dhruv.nair@gmail.com
>
parent
64b3e0f5
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
3 deletions
+24
-3
src/diffusers/loaders/single_file_utils.py
src/diffusers/loaders/single_file_utils.py
+24
-3
No files found.
src/diffusers/loaders/single_file_utils.py
View file @
b5fd6f13
...
...
@@ -62,7 +62,14 @@ CHECKPOINT_KEY_NAMES = {
"xl_base"
:
"conditioner.embedders.1.model.transformer.resblocks.9.mlp.c_proj.bias"
,
"xl_refiner"
:
"conditioner.embedders.0.model.transformer.resblocks.9.mlp.c_proj.bias"
,
"upscale"
:
"model.diffusion_model.input_blocks.10.0.skip_connection.bias"
,
"controlnet"
:
"control_model.time_embed.0.weight"
,
"controlnet"
:
[
"control_model.time_embed.0.weight"
,
"controlnet_cond_embedding.conv_in.weight"
,
],
# TODO: find non-Diffusers keys for controlnet_xl
"controlnet_xl"
:
"add_embedding.linear_1.weight"
,
"controlnet_xl_large"
:
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_k.weight"
,
"controlnet_xl_mid"
:
"down_blocks.1.attentions.0.norm.weight"
,
"playground-v2-5"
:
"edm_mean"
,
"inpainting"
:
"model.diffusion_model.input_blocks.0.0.weight"
,
"clip"
:
"cond_stage_model.transformer.text_model.embeddings.position_embedding.weight"
,
...
...
@@ -96,6 +103,9 @@ DIFFUSERS_DEFAULT_PIPELINE_PATHS = {
"inpainting"
:
{
"pretrained_model_name_or_path"
:
"stable-diffusion-v1-5/stable-diffusion-inpainting"
},
"inpainting_v2"
:
{
"pretrained_model_name_or_path"
:
"stabilityai/stable-diffusion-2-inpainting"
},
"controlnet"
:
{
"pretrained_model_name_or_path"
:
"lllyasviel/control_v11p_sd15_canny"
},
"controlnet_xl_large"
:
{
"pretrained_model_name_or_path"
:
"diffusers/controlnet-canny-sdxl-1.0"
},
"controlnet_xl_mid"
:
{
"pretrained_model_name_or_path"
:
"diffusers/controlnet-canny-sdxl-1.0-mid"
},
"controlnet_xl_small"
:
{
"pretrained_model_name_or_path"
:
"diffusers/controlnet-canny-sdxl-1.0-small"
},
"v2"
:
{
"pretrained_model_name_or_path"
:
"stabilityai/stable-diffusion-2-1"
},
"v1"
:
{
"pretrained_model_name_or_path"
:
"stable-diffusion-v1-5/stable-diffusion-v1-5"
},
"stable_cascade_stage_b"
:
{
"pretrained_model_name_or_path"
:
"stabilityai/stable-cascade"
,
"subfolder"
:
"decoder"
},
...
...
@@ -481,7 +491,15 @@ def infer_diffusers_model_type(checkpoint):
elif
CHECKPOINT_KEY_NAMES
[
"upscale"
]
in
checkpoint
:
model_type
=
"upscale"
elif
CHECKPOINT_KEY_NAMES
[
"controlnet"
]
in
checkpoint
:
elif
any
(
key
in
checkpoint
for
key
in
CHECKPOINT_KEY_NAMES
[
"controlnet"
]):
if
CHECKPOINT_KEY_NAMES
[
"controlnet_xl"
]
in
checkpoint
:
if
CHECKPOINT_KEY_NAMES
[
"controlnet_xl_large"
]
in
checkpoint
:
model_type
=
"controlnet_xl_large"
elif
CHECKPOINT_KEY_NAMES
[
"controlnet_xl_mid"
]
in
checkpoint
:
model_type
=
"controlnet_xl_mid"
else
:
model_type
=
"controlnet_xl_small"
else
:
model_type
=
"controlnet"
elif
(
...
...
@@ -1072,6 +1090,9 @@ def convert_controlnet_checkpoint(
config
,
**
kwargs
,
):
# Return checkpoint if it's already been converted
if
"time_embedding.linear_1.weight"
in
checkpoint
:
return
checkpoint
# Some controlnet ckpt files are distributed independently from the rest of the
# model components i.e. https://huggingface.co/thibaud/controlnet-sd21/
if
"time_embed.0.weight"
in
checkpoint
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment