Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
diffusers
Commits
ed00ead3
Unverified
Commit
ed00ead3
authored
Oct 31, 2023
by
Jincheng Miao
Committed by
GitHub
Oct 31, 2023
Browse files
[Community Pipelines] add textual inversion support for stable_diffusion_ipex (#5571)
parent
f0b2f6ce
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
1 deletion
+10
-1
examples/community/stable_diffusion_ipex.py
examples/community/stable_diffusion_ipex.py
+10
-1
No files found.
examples/community/stable_diffusion_ipex.py
View file @
ed00ead3
...
@@ -21,6 +21,7 @@ from packaging import version
...
@@ -21,6 +21,7 @@ from packaging import version
from
transformers
import
CLIPFeatureExtractor
,
CLIPTextModel
,
CLIPTokenizer
from
transformers
import
CLIPFeatureExtractor
,
CLIPTextModel
,
CLIPTokenizer
from
diffusers.configuration_utils
import
FrozenDict
from
diffusers.configuration_utils
import
FrozenDict
from
diffusers.loaders
import
TextualInversionLoaderMixin
from
diffusers.models
import
AutoencoderKL
,
UNet2DConditionModel
from
diffusers.models
import
AutoencoderKL
,
UNet2DConditionModel
from
diffusers.pipeline_utils
import
DiffusionPipeline
from
diffusers.pipeline_utils
import
DiffusionPipeline
from
diffusers.pipelines.stable_diffusion
import
StableDiffusionPipelineOutput
from
diffusers.pipelines.stable_diffusion
import
StableDiffusionPipelineOutput
...
@@ -61,7 +62,7 @@ EXAMPLE_DOC_STRING = """
...
@@ -61,7 +62,7 @@ EXAMPLE_DOC_STRING = """
"""
"""
class
StableDiffusionIPEXPipeline
(
DiffusionPipeline
):
class
StableDiffusionIPEXPipeline
(
DiffusionPipeline
,
TextualInversionLoaderMixin
):
r
"""
r
"""
Pipeline for text-to-image generation using Stable Diffusion on IPEX.
Pipeline for text-to-image generation using Stable Diffusion on IPEX.
...
@@ -454,6 +455,10 @@ class StableDiffusionIPEXPipeline(DiffusionPipeline):
...
@@ -454,6 +455,10 @@ class StableDiffusionIPEXPipeline(DiffusionPipeline):
batch_size
=
prompt_embeds
.
shape
[
0
]
batch_size
=
prompt_embeds
.
shape
[
0
]
if
prompt_embeds
is
None
:
if
prompt_embeds
is
None
:
# textual inversion: procecss multi-vector tokens if necessary
if
isinstance
(
self
,
TextualInversionLoaderMixin
):
prompt
=
self
.
maybe_convert_prompt
(
prompt
,
self
.
tokenizer
)
text_inputs
=
self
.
tokenizer
(
text_inputs
=
self
.
tokenizer
(
prompt
,
prompt
,
padding
=
"max_length"
,
padding
=
"max_length"
,
...
@@ -514,6 +519,10 @@ class StableDiffusionIPEXPipeline(DiffusionPipeline):
...
@@ -514,6 +519,10 @@ class StableDiffusionIPEXPipeline(DiffusionPipeline):
else
:
else
:
uncond_tokens
=
negative_prompt
uncond_tokens
=
negative_prompt
# textual inversion: procecss multi-vector tokens if necessary
if
isinstance
(
self
,
TextualInversionLoaderMixin
):
uncond_tokens
=
self
.
maybe_convert_prompt
(
uncond_tokens
,
self
.
tokenizer
)
max_length
=
prompt_embeds
.
shape
[
1
]
max_length
=
prompt_embeds
.
shape
[
1
]
uncond_input
=
self
.
tokenizer
(
uncond_input
=
self
.
tokenizer
(
uncond_tokens
,
uncond_tokens
,
...
...
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