Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
Stable Diffusion Webui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
novelai-storage
Stable Diffusion Webui
Commits
e4a2a705
Commit
e4a2a705
authored
Aug 19, 2023
by
AUTOMATIC1111
Committed by
GitHub
Aug 19, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12661 from XDOneDude/master
update xformers to 0.0.21 and some fixes
parents
bb91bb5e
61c1261e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
15 additions
and
15 deletions
+15
-15
modules/errors.py
modules/errors.py
+1
-1
modules/launch_utils.py
modules/launch_utils.py
+1
-1
modules/processing.py
modules/processing.py
+12
-12
modules/prompt_parser.py
modules/prompt_parser.py
+1
-1
No files found.
modules/errors.py
View file @
e4a2a705
...
@@ -94,7 +94,7 @@ def check_versions():
...
@@ -94,7 +94,7 @@ def check_versions():
import
gradio
import
gradio
expected_torch_version
=
"2.0.0"
expected_torch_version
=
"2.0.0"
expected_xformers_version
=
"0.0.2
0
"
expected_xformers_version
=
"0.0.2
1
"
expected_gradio_version
=
"3.39.0"
expected_gradio_version
=
"3.39.0"
if
version
.
parse
(
torch
.
__version__
)
<
version
.
parse
(
expected_torch_version
):
if
version
.
parse
(
torch
.
__version__
)
<
version
.
parse
(
expected_torch_version
):
...
...
modules/launch_utils.py
View file @
e4a2a705
...
@@ -310,7 +310,7 @@ def prepare_environment():
...
@@ -310,7 +310,7 @@ def prepare_environment():
torch_command
=
os
.
environ
.
get
(
'TORCH_COMMAND'
,
f
"pip install torch==2.0.1 torchvision==0.15.2 --extra-index-url {torch_index_url}"
)
torch_command
=
os
.
environ
.
get
(
'TORCH_COMMAND'
,
f
"pip install torch==2.0.1 torchvision==0.15.2 --extra-index-url {torch_index_url}"
)
requirements_file
=
os
.
environ
.
get
(
'REQS_FILE'
,
"requirements_versions.txt"
)
requirements_file
=
os
.
environ
.
get
(
'REQS_FILE'
,
"requirements_versions.txt"
)
xformers_package
=
os
.
environ
.
get
(
'XFORMERS_PACKAGE'
,
'xformers==0.0.2
0
'
)
xformers_package
=
os
.
environ
.
get
(
'XFORMERS_PACKAGE'
,
'xformers==0.0.2
1
'
)
clip_package
=
os
.
environ
.
get
(
'CLIP_PACKAGE'
,
"https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip"
)
clip_package
=
os
.
environ
.
get
(
'CLIP_PACKAGE'
,
"https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip"
)
openclip_package
=
os
.
environ
.
get
(
'OPENCLIP_PACKAGE'
,
"https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip"
)
openclip_package
=
os
.
environ
.
get
(
'OPENCLIP_PACKAGE'
,
"https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip"
)
...
...
modules/processing.py
View file @
e4a2a705
...
@@ -386,14 +386,14 @@ class StableDiffusionProcessing:
...
@@ -386,14 +386,14 @@ class StableDiffusionProcessing:
return
self
.
token_merging_ratio
or
opts
.
token_merging_ratio
return
self
.
token_merging_ratio
or
opts
.
token_merging_ratio
def
setup_prompts
(
self
):
def
setup_prompts
(
self
):
if
type
(
self
.
prompt
)
==
list
:
if
isinstance
(
self
.
prompt
,
list
)
:
self
.
all_prompts
=
self
.
prompt
self
.
all_prompts
=
self
.
prompt
elif
type
(
self
.
negative_prompt
)
==
list
:
elif
isinstance
(
self
.
negative_prompt
,
list
)
:
self
.
all_prompts
=
[
self
.
prompt
]
*
len
(
self
.
negative_prompt
)
self
.
all_prompts
=
[
self
.
prompt
]
*
len
(
self
.
negative_prompt
)
else
:
else
:
self
.
all_prompts
=
self
.
batch_size
*
self
.
n_iter
*
[
self
.
prompt
]
self
.
all_prompts
=
self
.
batch_size
*
self
.
n_iter
*
[
self
.
prompt
]
if
type
(
self
.
negative_prompt
)
==
list
:
if
isinstance
(
self
.
negative_prompt
,
list
)
:
self
.
all_negative_prompts
=
self
.
negative_prompt
self
.
all_negative_prompts
=
self
.
negative_prompt
else
:
else
:
self
.
all_negative_prompts
=
[
self
.
negative_prompt
]
*
len
(
self
.
all_prompts
)
self
.
all_negative_prompts
=
[
self
.
negative_prompt
]
*
len
(
self
.
all_prompts
)
...
@@ -512,10 +512,10 @@ class Processed:
...
@@ -512,10 +512,10 @@ class Processed:
self
.
s_noise
=
p
.
s_noise
self
.
s_noise
=
p
.
s_noise
self
.
s_min_uncond
=
p
.
s_min_uncond
self
.
s_min_uncond
=
p
.
s_min_uncond
self
.
sampler_noise_scheduler_override
=
p
.
sampler_noise_scheduler_override
self
.
sampler_noise_scheduler_override
=
p
.
sampler_noise_scheduler_override
self
.
prompt
=
self
.
prompt
if
type
(
self
.
prompt
)
!=
list
else
self
.
prompt
[
0
]
self
.
prompt
=
self
.
prompt
if
not
isinstance
(
self
.
prompt
,
list
)
else
self
.
prompt
[
0
]
self
.
negative_prompt
=
self
.
negative_prompt
if
type
(
self
.
negative_prompt
)
!=
list
else
self
.
negative_prompt
[
0
]
self
.
negative_prompt
=
self
.
negative_prompt
if
not
isinstance
(
self
.
negative_prompt
,
list
)
else
self
.
negative_prompt
[
0
]
self
.
seed
=
int
(
self
.
seed
if
type
(
self
.
seed
)
!=
list
else
self
.
seed
[
0
])
if
self
.
seed
is
not
None
else
-
1
self
.
seed
=
int
(
self
.
seed
if
not
isinstance
(
self
.
seed
,
list
)
else
self
.
seed
[
0
])
if
self
.
seed
is
not
None
else
-
1
self
.
subseed
=
int
(
self
.
subseed
if
type
(
self
.
subseed
)
!=
list
else
self
.
subseed
[
0
])
if
self
.
subseed
is
not
None
else
-
1
self
.
subseed
=
int
(
self
.
subseed
if
not
isinstance
(
self
.
subseed
,
list
)
else
self
.
subseed
[
0
])
if
self
.
subseed
is
not
None
else
-
1
self
.
is_using_inpainting_conditioning
=
p
.
is_using_inpainting_conditioning
self
.
is_using_inpainting_conditioning
=
p
.
is_using_inpainting_conditioning
self
.
all_prompts
=
all_prompts
or
p
.
all_prompts
or
[
self
.
prompt
]
self
.
all_prompts
=
all_prompts
or
p
.
all_prompts
or
[
self
.
prompt
]
...
@@ -741,7 +741,7 @@ def process_images(p: StableDiffusionProcessing) -> Processed:
...
@@ -741,7 +741,7 @@ def process_images(p: StableDiffusionProcessing) -> Processed:
def
process_images_inner
(
p
:
StableDiffusionProcessing
)
->
Processed
:
def
process_images_inner
(
p
:
StableDiffusionProcessing
)
->
Processed
:
"""this is the main loop that both txt2img and img2img use; it calls func_init once inside all the scopes and func_sample once per batch"""
"""this is the main loop that both txt2img and img2img use; it calls func_init once inside all the scopes and func_sample once per batch"""
if
type
(
p
.
prompt
)
==
list
:
if
isinstance
(
p
.
prompt
,
list
)
:
assert
(
len
(
p
.
prompt
)
>
0
)
assert
(
len
(
p
.
prompt
)
>
0
)
else
:
else
:
assert
p
.
prompt
is
not
None
assert
p
.
prompt
is
not
None
...
@@ -772,12 +772,12 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -772,12 +772,12 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
p
.
setup_prompts
()
p
.
setup_prompts
()
if
type
(
seed
)
==
list
:
if
isinstance
(
seed
,
list
)
:
p
.
all_seeds
=
seed
p
.
all_seeds
=
seed
else
:
else
:
p
.
all_seeds
=
[
int
(
seed
)
+
(
x
if
p
.
subseed_strength
==
0
else
0
)
for
x
in
range
(
len
(
p
.
all_prompts
))]
p
.
all_seeds
=
[
int
(
seed
)
+
(
x
if
p
.
subseed_strength
==
0
else
0
)
for
x
in
range
(
len
(
p
.
all_prompts
))]
if
type
(
subseed
)
==
list
:
if
isinstance
(
subseed
,
list
)
:
p
.
all_subseeds
=
subseed
p
.
all_subseeds
=
subseed
else
:
else
:
p
.
all_subseeds
=
[
int
(
subseed
)
+
x
for
x
in
range
(
len
(
p
.
all_prompts
))]
p
.
all_subseeds
=
[
int
(
subseed
)
+
x
for
x
in
range
(
len
(
p
.
all_prompts
))]
...
@@ -1268,12 +1268,12 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing):
...
@@ -1268,12 +1268,12 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing):
if
self
.
hr_negative_prompt
==
''
:
if
self
.
hr_negative_prompt
==
''
:
self
.
hr_negative_prompt
=
self
.
negative_prompt
self
.
hr_negative_prompt
=
self
.
negative_prompt
if
type
(
self
.
hr_prompt
)
==
list
:
if
isinstance
(
self
.
hr_prompt
,
list
)
:
self
.
all_hr_prompts
=
self
.
hr_prompt
self
.
all_hr_prompts
=
self
.
hr_prompt
else
:
else
:
self
.
all_hr_prompts
=
self
.
batch_size
*
self
.
n_iter
*
[
self
.
hr_prompt
]
self
.
all_hr_prompts
=
self
.
batch_size
*
self
.
n_iter
*
[
self
.
hr_prompt
]
if
type
(
self
.
hr_negative_prompt
)
==
list
:
if
isinstance
(
self
.
hr_negative_prompt
,
list
)
:
self
.
all_hr_negative_prompts
=
self
.
hr_negative_prompt
self
.
all_hr_negative_prompts
=
self
.
hr_negative_prompt
else
:
else
:
self
.
all_hr_negative_prompts
=
self
.
batch_size
*
self
.
n_iter
*
[
self
.
hr_negative_prompt
]
self
.
all_hr_negative_prompts
=
self
.
batch_size
*
self
.
n_iter
*
[
self
.
hr_negative_prompt
]
...
...
modules/prompt_parser.py
View file @
e4a2a705
...
@@ -86,7 +86,7 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
...
@@ -86,7 +86,7 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
yield
args
[(
step
-
1
)
%
len
(
args
)]
yield
args
[(
step
-
1
)
%
len
(
args
)]
def
start
(
self
,
args
):
def
start
(
self
,
args
):
def
flatten
(
x
):
def
flatten
(
x
):
if
type
(
x
)
==
str
:
if
isinstance
(
x
,
str
)
:
yield
x
yield
x
else
:
else
:
for
gen
in
x
:
for
gen
in
x
:
...
...
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