Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Overbill1683
Stable Diffusion Webui
提交
ca6f90dc
S
Stable Diffusion Webui
项目概览
Overbill1683
/
Stable Diffusion Webui
12 个月 前同步成功
通知
1779
Star
81
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
分析
仓库
DevOps
项目成员
Pages
S
Stable Diffusion Webui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Pages
分析
分析
仓库分析
DevOps
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
提交
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
ca6f90dc
编写于
7月 26, 2023
作者:
A
AUTOMATIC1111
提交者:
GitHub
7月 26, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12023 from AUTOMATIC1111/create_infotext_fix
Create infotext fix
上级
225eb1b1
835a7dbf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
38 deletion
+25
-38
modules/processing.py
modules/processing.py
+25
-38
未找到文件。
modules/processing.py
浏览文件 @
ca6f90dc
...
@@ -600,8 +600,12 @@ def program_version():
...
@@ -600,8 +600,12 @@ def program_version():
return
res
return
res
def
create_infotext
(
p
,
all_prompts
,
all_seeds
,
all_subseeds
,
comments
=
None
,
iteration
=
0
,
position_in_batch
=
0
,
use_main_prompt
=
False
):
def
create_infotext
(
p
,
all_prompts
,
all_seeds
,
all_subseeds
,
comments
=
None
,
iteration
=
0
,
position_in_batch
=
0
,
use_main_prompt
=
False
,
index
=
None
,
all_negative_prompts
=
None
):
index
=
position_in_batch
+
iteration
*
p
.
batch_size
if
index
is
None
:
index
=
position_in_batch
+
iteration
*
p
.
batch_size
if
all_negative_prompts
is
None
:
all_negative_prompts
=
p
.
all_negative_prompts
clip_skip
=
getattr
(
p
,
'clip_skip'
,
opts
.
CLIP_stop_at_last_layers
)
clip_skip
=
getattr
(
p
,
'clip_skip'
,
opts
.
CLIP_stop_at_last_layers
)
enable_hr
=
getattr
(
p
,
'enable_hr'
,
False
)
enable_hr
=
getattr
(
p
,
'enable_hr'
,
False
)
...
@@ -617,12 +621,12 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iter
...
@@ -617,12 +621,12 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iter
"Sampler"
:
p
.
sampler_name
,
"Sampler"
:
p
.
sampler_name
,
"CFG scale"
:
p
.
cfg_scale
,
"CFG scale"
:
p
.
cfg_scale
,
"Image CFG scale"
:
getattr
(
p
,
'image_cfg_scale'
,
None
),
"Image CFG scale"
:
getattr
(
p
,
'image_cfg_scale'
,
None
),
"Seed"
:
all_seeds
[
index
],
"Seed"
:
p
.
all_seeds
[
0
]
if
use_main_prompt
else
all_seeds
[
index
],
"Face restoration"
:
(
opts
.
face_restoration_model
if
p
.
restore_faces
else
None
),
"Face restoration"
:
(
opts
.
face_restoration_model
if
p
.
restore_faces
else
None
),
"Size"
:
f
"
{
p
.
width
}
x
{
p
.
height
}
"
,
"Size"
:
f
"
{
p
.
width
}
x
{
p
.
height
}
"
,
"Model hash"
:
getattr
(
p
,
'sd_model_hash'
,
None
if
not
opts
.
add_model_hash_to_info
or
not
shared
.
sd_model
.
sd_model_hash
else
shared
.
sd_model
.
sd_model_hash
),
"Model hash"
:
getattr
(
p
,
'sd_model_hash'
,
None
if
not
opts
.
add_model_hash_to_info
or
not
shared
.
sd_model
.
sd_model_hash
else
shared
.
sd_model
.
sd_model_hash
),
"Model"
:
(
None
if
not
opts
.
add_model_name_to_info
else
shared
.
sd_model
.
sd_checkpoint_info
.
name_for_extra
),
"Model"
:
(
None
if
not
opts
.
add_model_name_to_info
else
shared
.
sd_model
.
sd_checkpoint_info
.
name_for_extra
),
"Variation seed"
:
(
None
if
p
.
subseed_strength
==
0
else
all_subseeds
[
index
]
),
"Variation seed"
:
(
None
if
p
.
subseed_strength
==
0
else
(
p
.
all_subseeds
[
0
]
if
use_main_prompt
else
all_subseeds
[
index
])
),
"Variation seed strength"
:
(
None
if
p
.
subseed_strength
==
0
else
p
.
subseed_strength
),
"Variation seed strength"
:
(
None
if
p
.
subseed_strength
==
0
else
p
.
subseed_strength
),
"Seed resize from"
:
(
None
if
p
.
seed_resize_from_w
<=
0
or
p
.
seed_resize_from_h
<=
0
else
f
"
{
p
.
seed_resize_from_w
}
x
{
p
.
seed_resize_from_h
}
"
),
"Seed resize from"
:
(
None
if
p
.
seed_resize_from_w
<=
0
or
p
.
seed_resize_from_h
<=
0
else
f
"
{
p
.
seed_resize_from_w
}
x
{
p
.
seed_resize_from_h
}
"
),
"Denoising strength"
:
getattr
(
p
,
'denoising_strength'
,
None
),
"Denoising strength"
:
getattr
(
p
,
'denoising_strength'
,
None
),
...
@@ -642,7 +646,7 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iter
...
@@ -642,7 +646,7 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iter
generation_params_text
=
", "
.
join
([
k
if
k
==
v
else
f
'
{
k
}
:
{
generation_parameters_copypaste
.
quote
(
v
)
}
'
for
k
,
v
in
generation_params
.
items
()
if
v
is
not
None
])
generation_params_text
=
", "
.
join
([
k
if
k
==
v
else
f
'
{
k
}
:
{
generation_parameters_copypaste
.
quote
(
v
)
}
'
for
k
,
v
in
generation_params
.
items
()
if
v
is
not
None
])
prompt_text
=
p
.
prompt
if
use_main_prompt
else
all_prompts
[
index
]
prompt_text
=
p
.
prompt
if
use_main_prompt
else
all_prompts
[
index
]
negative_prompt_text
=
f
"
\n
Negative prompt:
{
p
.
all_negative_prompts
[
index
]
}
"
if
p
.
all_negative_prompts
[
index
]
else
""
negative_prompt_text
=
f
"
\n
Negative prompt:
{
all_negative_prompts
[
index
]
}
"
if
all_negative_prompts
[
index
]
else
""
return
f
"
{
prompt_text
}{
negative_prompt_text
}
\n
{
generation_params_text
}
"
.
strip
()
return
f
"
{
prompt_text
}{
negative_prompt_text
}
\n
{
generation_params_text
}
"
.
strip
()
...
@@ -716,29 +720,6 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -716,29 +720,6 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
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
))]
def
infotext
(
iteration
=
0
,
position_in_batch
=
0
,
use_main_prompt
=
False
):
all_prompts
=
p
.
all_prompts
[:]
all_negative_prompts
=
p
.
all_negative_prompts
[:]
all_seeds
=
p
.
all_seeds
[:]
all_subseeds
=
p
.
all_subseeds
[:]
# apply changes to generation data
all_prompts
[
iteration
*
p
.
batch_size
:(
iteration
+
1
)
*
p
.
batch_size
]
=
p
.
prompts
all_negative_prompts
[
iteration
*
p
.
batch_size
:(
iteration
+
1
)
*
p
.
batch_size
]
=
p
.
negative_prompts
all_seeds
[
iteration
*
p
.
batch_size
:(
iteration
+
1
)
*
p
.
batch_size
]
=
p
.
seeds
all_subseeds
[
iteration
*
p
.
batch_size
:(
iteration
+
1
)
*
p
.
batch_size
]
=
p
.
subseeds
# update p.all_negative_prompts in case extensions changed the size of the batch
# create_infotext below uses it
old_negative_prompts
=
p
.
all_negative_prompts
p
.
all_negative_prompts
=
all_negative_prompts
try
:
return
create_infotext
(
p
,
all_prompts
,
all_seeds
,
all_subseeds
,
comments
,
iteration
,
position_in_batch
,
use_main_prompt
)
finally
:
# restore p.all_negative_prompts in case extensions changed the size of the batch
p
.
all_negative_prompts
=
old_negative_prompts
if
os
.
path
.
exists
(
cmd_opts
.
embeddings_dir
)
and
not
p
.
do_not_reload_embeddings
:
if
os
.
path
.
exists
(
cmd_opts
.
embeddings_dir
)
and
not
p
.
do_not_reload_embeddings
:
model_hijack
.
embedding_db
.
load_textual_inversion_embeddings
()
model_hijack
.
embedding_db
.
load_textual_inversion_embeddings
()
...
@@ -826,9 +807,15 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -826,9 +807,15 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
if
p
.
scripts
is
not
None
:
if
p
.
scripts
is
not
None
:
p
.
scripts
.
postprocess_batch
(
p
,
x_samples_ddim
,
batch_number
=
n
)
p
.
scripts
.
postprocess_batch
(
p
,
x_samples_ddim
,
batch_number
=
n
)
postprocess_batch_list_args
=
scripts
.
PostprocessBatchListArgs
(
list
(
x_samples_ddim
))
p
.
prompts
=
p
.
all_prompts
[
n
*
p
.
batch_size
:(
n
+
1
)
*
p
.
batch_size
]
p
.
scripts
.
postprocess_batch_list
(
p
,
postprocess_batch_list_args
,
batch_number
=
n
)
p
.
negative_prompts
=
p
.
all_negative_prompts
[
n
*
p
.
batch_size
:(
n
+
1
)
*
p
.
batch_size
]
x_samples_ddim
=
postprocess_batch_list_args
.
images
batch_params
=
scripts
.
PostprocessBatchListArgs
(
list
(
x_samples_ddim
))
p
.
scripts
.
postprocess_batch_list
(
p
,
batch_params
,
batch_number
=
n
)
x_samples_ddim
=
batch_params
.
images
def
infotext
(
index
=
0
,
use_main_prompt
=
False
):
return
create_infotext
(
p
,
p
.
prompts
,
p
.
seeds
,
p
.
subseeds
,
use_main_prompt
=
use_main_prompt
,
index
=
index
,
all_negative_prompts
=
p
.
negative_prompts
)
for
i
,
x_sample
in
enumerate
(
x_samples_ddim
):
for
i
,
x_sample
in
enumerate
(
x_samples_ddim
):
p
.
batch_index
=
i
p
.
batch_index
=
i
...
@@ -838,7 +825,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -838,7 +825,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
if
p
.
restore_faces
:
if
p
.
restore_faces
:
if
opts
.
save
and
not
p
.
do_not_save_samples
and
opts
.
save_images_before_face_restoration
:
if
opts
.
save
and
not
p
.
do_not_save_samples
and
opts
.
save_images_before_face_restoration
:
images
.
save_image
(
Image
.
fromarray
(
x_sample
),
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
n
,
i
),
p
=
p
,
suffix
=
"-before-face-restoration"
)
images
.
save_image
(
Image
.
fromarray
(
x_sample
),
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
i
),
p
=
p
,
suffix
=
"-before-face-restoration"
)
devices
.
torch_gc
()
devices
.
torch_gc
()
...
@@ -855,15 +842,15 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -855,15 +842,15 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
if
p
.
color_corrections
is
not
None
and
i
<
len
(
p
.
color_corrections
):
if
p
.
color_corrections
is
not
None
and
i
<
len
(
p
.
color_corrections
):
if
opts
.
save
and
not
p
.
do_not_save_samples
and
opts
.
save_images_before_color_correction
:
if
opts
.
save
and
not
p
.
do_not_save_samples
and
opts
.
save_images_before_color_correction
:
image_without_cc
=
apply_overlay
(
image
,
p
.
paste_to
,
i
,
p
.
overlay_images
)
image_without_cc
=
apply_overlay
(
image
,
p
.
paste_to
,
i
,
p
.
overlay_images
)
images
.
save_image
(
image_without_cc
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
n
,
i
),
p
=
p
,
suffix
=
"-before-color-correction"
)
images
.
save_image
(
image_without_cc
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
i
),
p
=
p
,
suffix
=
"-before-color-correction"
)
image
=
apply_color_correction
(
p
.
color_corrections
[
i
],
image
)
image
=
apply_color_correction
(
p
.
color_corrections
[
i
],
image
)
image
=
apply_overlay
(
image
,
p
.
paste_to
,
i
,
p
.
overlay_images
)
image
=
apply_overlay
(
image
,
p
.
paste_to
,
i
,
p
.
overlay_images
)
if
opts
.
samples_save
and
not
p
.
do_not_save_samples
:
if
opts
.
samples_save
and
not
p
.
do_not_save_samples
:
images
.
save_image
(
image
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
n
,
i
),
p
=
p
)
images
.
save_image
(
image
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
i
),
p
=
p
)
text
=
infotext
(
n
,
i
)
text
=
infotext
(
i
)
infotexts
.
append
(
text
)
infotexts
.
append
(
text
)
if
opts
.
enable_pnginfo
:
if
opts
.
enable_pnginfo
:
image
.
info
[
"parameters"
]
=
text
image
.
info
[
"parameters"
]
=
text
...
@@ -874,10 +861,10 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -874,10 +861,10 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
image_mask_composite
=
Image
.
composite
(
image
.
convert
(
'RGBA'
).
convert
(
'RGBa'
),
Image
.
new
(
'RGBa'
,
image
.
size
),
images
.
resize_image
(
2
,
p
.
mask_for_overlay
,
image
.
width
,
image
.
height
).
convert
(
'L'
)).
convert
(
'RGBA'
)
image_mask_composite
=
Image
.
composite
(
image
.
convert
(
'RGBA'
).
convert
(
'RGBa'
),
Image
.
new
(
'RGBa'
,
image
.
size
),
images
.
resize_image
(
2
,
p
.
mask_for_overlay
,
image
.
width
,
image
.
height
).
convert
(
'L'
)).
convert
(
'RGBA'
)
if
opts
.
save_mask
:
if
opts
.
save_mask
:
images
.
save_image
(
image_mask
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
n
,
i
),
p
=
p
,
suffix
=
"-mask"
)
images
.
save_image
(
image_mask
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
i
),
p
=
p
,
suffix
=
"-mask"
)
if
opts
.
save_mask_composite
:
if
opts
.
save_mask_composite
:
images
.
save_image
(
image_mask_composite
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
n
,
i
),
p
=
p
,
suffix
=
"-mask-composite"
)
images
.
save_image
(
image_mask_composite
,
p
.
outpath_samples
,
""
,
p
.
seeds
[
i
],
p
.
prompts
[
i
],
opts
.
samples_format
,
info
=
infotext
(
i
),
p
=
p
,
suffix
=
"-mask-composite"
)
if
opts
.
return_mask
:
if
opts
.
return_mask
:
output_images
.
append
(
image_mask
)
output_images
.
append
(
image_mask
)
...
@@ -918,7 +905,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
...
@@ -918,7 +905,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
p
,
p
,
images_list
=
output_images
,
images_list
=
output_images
,
seed
=
p
.
all_seeds
[
0
],
seed
=
p
.
all_seeds
[
0
],
info
=
infotext
()
,
info
=
infotext
s
[
0
]
,
comments
=
""
.
join
(
f
"
{
comment
}
\n
"
for
comment
in
comments
),
comments
=
""
.
join
(
f
"
{
comment
}
\n
"
for
comment
in
comments
),
subseed
=
p
.
all_subseeds
[
0
],
subseed
=
p
.
all_subseeds
[
0
],
index_of_first_image
=
index_of_first_image
,
index_of_first_image
=
index_of_first_image
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录