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
OpenDAS
diffusers
Commits
8ca179a0
Unverified
Commit
8ca179a0
authored
Nov 07, 2023
by
Dhruv Nair
Committed by
GitHub
Nov 07, 2023
Browse files
Update free model hooks (#5680)
update free model hooks
parent
71f56c77
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
38 additions
and
16 deletions
+38
-16
src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py
...es/deepfloyd_if/pipeline_if_inpainting_superresolution.py
+1
-5
src/diffusers/pipelines/kandinsky/pipeline_kandinsky.py
src/diffusers/pipelines/kandinsky/pipeline_kandinsky.py
+2
-0
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py
...fusers/pipelines/kandinsky/pipeline_kandinsky_combined.py
+10
-1
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py
...ffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py
+2
-0
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py
...ffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py
+2
-0
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py
...diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py
+1
-1
src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py
.../pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py
+6
-0
src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py
...ers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py
+1
-5
src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py
...lines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py
+2
-4
src/diffusers/pipelines/stable_diffusion/pipeline_cycle_diffusion.py
...rs/pipelines/stable_diffusion/pipeline_cycle_diffusion.py
+1
-0
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_attend_and_excite.py
..._diffusion/pipeline_stable_diffusion_attend_and_excite.py
+1
-0
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py
...s/stable_diffusion/pipeline_stable_diffusion_depth2img.py
+1
-0
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py
...le_diffusion/pipeline_stable_diffusion_image_variation.py
+2
-0
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py
...ble_diffusion/pipeline_stable_diffusion_latent_upscale.py
+2
-0
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_panorama.py
...es/stable_diffusion/pipeline_stable_diffusion_panorama.py
+2
-0
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
...pelines/stable_diffusion/pipeline_stable_diffusion_sag.py
+2
-0
No files found.
src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py
View file @
8ca179a0
...
...
@@ -1109,8 +1109,6 @@ class IFInpaintingSuperResolutionPipeline(DiffusionPipeline, LoraLoaderMixin):
nsfw_detected
=
None
watermark_detected
=
None
if
hasattr
(
self
,
"unet_offload_hook"
)
and
self
.
unet_offload_hook
is
not
None
:
self
.
unet_offload_hook
.
offload
()
else
:
# 10. Post-processing
image
=
(
image
/
2
+
0.5
).
clamp
(
0
,
1
)
...
...
@@ -1119,9 +1117,7 @@ class IFInpaintingSuperResolutionPipeline(DiffusionPipeline, LoraLoaderMixin):
# 11. Run safety checker
image
,
nsfw_detected
,
watermark_detected
=
self
.
run_safety_checker
(
image
,
device
,
prompt_embeds
.
dtype
)
# Offload last model to CPU
if
hasattr
(
self
,
"final_offload_hook"
)
and
self
.
final_offload_hook
is
not
None
:
self
.
final_offload_hook
.
offload
()
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,
nsfw_detected
,
watermark_detected
)
...
...
src/diffusers/pipelines/kandinsky/pipeline_kandinsky.py
View file @
8ca179a0
...
...
@@ -388,6 +388,8 @@ class KandinskyPipeline(DiffusionPipeline):
# post-processing
image
=
self
.
movq
.
decode
(
latents
,
force_not_quantize
=
True
)[
"sample"
]
self
.
maybe_free_model_hooks
()
if
output_type
not
in
[
"pt"
,
"np"
,
"pil"
]:
raise
ValueError
(
f
"Only the output types `pt`, `pil` and `np` are supported not output_type=
{
output_type
}
"
)
...
...
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py
View file @
8ca179a0
...
...
@@ -321,6 +321,9 @@ class KandinskyCombinedPipeline(DiffusionPipeline):
callback_steps
=
callback_steps
,
return_dict
=
return_dict
,
)
self
.
maybe_free_model_hooks
()
return
outputs
...
...
@@ -558,6 +561,9 @@ class KandinskyImg2ImgCombinedPipeline(DiffusionPipeline):
callback_steps
=
callback_steps
,
return_dict
=
return_dict
,
)
self
.
maybe_free_model_hooks
()
return
outputs
...
...
@@ -593,7 +599,7 @@ class KandinskyInpaintCombinedPipeline(DiffusionPipeline):
"""
_load_connected_pipes
=
True
model_cpu_offload_seq
=
"prior_text_encoder->prior_image_encoder->prior_prior->
"
"
text_encoder->unet->movq"
model_cpu_offload_seq
=
"prior_text_encoder->prior_image_encoder->prior_prior->text_encoder->unet->movq"
def
__init__
(
self
,
...
...
@@ -802,4 +808,7 @@ class KandinskyInpaintCombinedPipeline(DiffusionPipeline):
callback_steps
=
callback_steps
,
return_dict
=
return_dict
,
)
self
.
maybe_free_model_hooks
()
return
outputs
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py
View file @
8ca179a0
...
...
@@ -481,6 +481,8 @@ class KandinskyImg2ImgPipeline(DiffusionPipeline):
# 7. post-processing
image
=
self
.
movq
.
decode
(
latents
,
force_not_quantize
=
True
)[
"sample"
]
self
.
maybe_free_model_hooks
()
if
output_type
not
in
[
"pt"
,
"np"
,
"pil"
]:
raise
ValueError
(
f
"Only the output types `pt`, `pil` and `np` are supported not output_type=
{
output_type
}
"
)
...
...
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py
View file @
8ca179a0
...
...
@@ -616,6 +616,8 @@ class KandinskyInpaintPipeline(DiffusionPipeline):
# post-processing
image
=
self
.
movq
.
decode
(
latents
,
force_not_quantize
=
True
)[
"sample"
]
self
.
maybe_free_model_hooks
()
if
output_type
not
in
[
"pt"
,
"np"
,
"pil"
]:
raise
ValueError
(
f
"Only the output types `pt`, `pil` and `np` are supported not output_type=
{
output_type
}
"
)
...
...
src/diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py
View file @
8ca179a0
...
...
@@ -527,7 +527,7 @@ class KandinskyPriorPipeline(DiffusionPipeline):
if
negative_prompt
is
None
:
zero_embeds
=
self
.
get_zero_embed
(
latents
.
shape
[
0
],
device
=
latents
.
device
)
self
.
maybe_free_model_hooks
self
.
maybe_free_model_hooks
()
else
:
image_embeddings
,
zero_embeds
=
image_embeddings
.
chunk
(
2
)
...
...
src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py
View file @
8ca179a0
...
...
@@ -326,6 +326,8 @@ class KandinskyV22CombinedPipeline(DiffusionPipeline):
callback_on_step_end
=
callback_on_step_end
,
callback_on_step_end_tensor_inputs
=
callback_on_step_end_tensor_inputs
,
)
self
.
maybe_free_model_hooks
()
return
outputs
...
...
@@ -572,6 +574,8 @@ class KandinskyV22Img2ImgCombinedPipeline(DiffusionPipeline):
callback_on_step_end
=
callback_on_step_end
,
callback_on_step_end_tensor_inputs
=
callback_on_step_end_tensor_inputs
,
)
self
.
maybe_free_model_hooks
()
return
outputs
...
...
@@ -842,4 +846,6 @@ class KandinskyV22InpaintCombinedPipeline(DiffusionPipeline):
callback_on_step_end_tensor_inputs
=
callback_on_step_end_tensor_inputs
,
**
kwargs
,
)
self
.
maybe_free_model_hooks
()
return
outputs
src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py
View file @
8ca179a0
...
...
@@ -531,14 +531,10 @@ class KandinskyV22PriorPipeline(DiffusionPipeline):
# if negative prompt has been defined, we retrieve split the image embedding into two
if
negative_prompt
is
None
:
zero_embeds
=
self
.
get_zero_embed
(
latents
.
shape
[
0
],
device
=
latents
.
device
)
if
hasattr
(
self
,
"final_offload_hook"
)
and
self
.
final_offload_hook
is
not
None
:
self
.
final_offload_hook
.
offload
()
else
:
image_embeddings
,
zero_embeds
=
image_embeddings
.
chunk
(
2
)
if
hasattr
(
self
,
"final_offload_hook"
)
and
self
.
final_offload_hook
is
not
None
:
self
.
prior_hook
.
offload
()
self
.
maybe_free_model_hooks
()
if
output_type
not
in
[
"pt"
,
"np"
]:
raise
ValueError
(
f
"Only the output types `pt` and `np` are supported not output_type=
{
output_type
}
"
)
...
...
src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py
View file @
8ca179a0
...
...
@@ -545,12 +545,10 @@ class KandinskyV22PriorEmb2EmbPipeline(DiffusionPipeline):
# if negative prompt has been defined, we retrieve split the image embedding into two
if
negative_prompt
is
None
:
zero_embeds
=
self
.
get_zero_embed
(
latents
.
shape
[
0
],
device
=
latents
.
device
)
if
hasattr
(
self
,
"final_offload_hook"
)
and
self
.
final_offload_hook
is
not
None
:
self
.
final_offload_hook
.
offload
()
else
:
image_embeddings
,
zero_embeds
=
image_embeddings
.
chunk
(
2
)
if
hasattr
(
self
,
"final_offload_hook"
)
and
self
.
final_offload_hook
is
not
None
:
self
.
prior_hook
.
offload
()
self
.
maybe_free_model_hooks
()
if
output_type
not
in
[
"pt"
,
"np"
]:
raise
ValueError
(
f
"Only the output types `pt` and `np` are supported not output_type=
{
output_type
}
"
)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_cycle_diffusion.py
View file @
8ca179a0
...
...
@@ -918,6 +918,7 @@ class CycleDiffusionPipeline(DiffusionPipeline, TextualInversionLoaderMixin, Lor
do_denormalize
=
[
not
has_nsfw
for
has_nsfw
in
has_nsfw_concept
]
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
,
do_denormalize
=
do_denormalize
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,
has_nsfw_concept
)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_attend_and_excite.py
View file @
8ca179a0
...
...
@@ -1027,6 +1027,7 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, TextualInversion
do_denormalize
=
[
not
has_nsfw
for
has_nsfw
in
has_nsfw_concept
]
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
,
do_denormalize
=
do_denormalize
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,
has_nsfw_concept
)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py
View file @
8ca179a0
...
...
@@ -846,6 +846,7 @@ class StableDiffusionDepth2ImgPipeline(DiffusionPipeline, TextualInversionLoader
image
=
latents
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py
View file @
8ca179a0
...
...
@@ -439,6 +439,8 @@ class StableDiffusionImageVariationPipeline(DiffusionPipeline):
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
,
do_denormalize
=
do_denormalize
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,
has_nsfw_concept
)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py
View file @
8ca179a0
...
...
@@ -511,6 +511,8 @@ class StableDiffusionLatentUpscalePipeline(DiffusionPipeline, FromSingleFileMixi
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_panorama.py
View file @
8ca179a0
...
...
@@ -802,6 +802,8 @@ class StableDiffusionPanoramaPipeline(DiffusionPipeline, TextualInversionLoaderM
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
,
do_denormalize
=
do_denormalize
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,
has_nsfw_concept
)
...
...
src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
View file @
8ca179a0
...
...
@@ -741,6 +741,8 @@ class StableDiffusionSAGPipeline(DiffusionPipeline, TextualInversionLoaderMixin)
image
=
self
.
image_processor
.
postprocess
(
image
,
output_type
=
output_type
,
do_denormalize
=
do_denormalize
)
self
.
maybe_free_model_hooks
()
if
not
return_dict
:
return
(
image
,
has_nsfw_concept
)
...
...
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