diff options
author | rewbs <robin@soal.org> | 2022-09-08 12:02:06 +0000 |
---|---|---|
committer | rewbs <robin@soal.org> | 2022-09-08 12:02:06 +0000 |
commit | ed01f69542628fe19d472a86a2992f60c3c9232e (patch) | |
tree | 5fe6dcac58654537390e89b9b7b9c0f195da1455 | |
parent | 61785cef656335cce3ab50b420301d2821f7c5e1 (diff) | |
download | stable-diffusion-webui-gfx803-ed01f69542628fe19d472a86a2992f60c3c9232e.tar.gz stable-diffusion-webui-gfx803-ed01f69542628fe19d472a86a2992f60c3c9232e.tar.bz2 stable-diffusion-webui-gfx803-ed01f69542628fe19d472a86a2992f60c3c9232e.zip |
Turn the loopback denoise strength change factor into a parameter rather than hardcoding to 0.95. Set the default to 1.
-rw-r--r-- | modules/img2img.py | 9 | ||||
-rw-r--r-- | modules/ui.py | 6 | ||||
-rw-r--r-- | script.js | 3 |
3 files changed, 13 insertions, 5 deletions
diff --git a/modules/img2img.py b/modules/img2img.py index c2392305..a4acdb22 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -11,7 +11,7 @@ from modules.ui import plaintext_to_html import modules.images as images
import modules.scripts
-def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index: int, mask_blur: int, inpainting_fill: int, restore_faces: bool, tiling: bool, mode: int, n_iter: int, batch_size: int, cfg_scale: float, denoising_strength: float, seed: int, height: int, width: int, resize_mode: int, upscaler_index: str, upscale_overlap: int, inpaint_full_res: bool, inpainting_mask_invert: int, *args):
+def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index: int, mask_blur: int, inpainting_fill: int, restore_faces: bool, tiling: bool, mode: int, n_iter: int, batch_size: int, cfg_scale: float, denoising_strength: float, denoising_strength_change_factor: float, seed: int, height: int, width: int, resize_mode: int, upscaler_index: str, upscale_overlap: int, inpaint_full_res: bool, inpainting_mask_invert: int, *args):
is_inpaint = mode == 1
is_loopback = mode == 2
is_upscale = mode == 3
@@ -50,7 +50,10 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index denoising_strength=denoising_strength,
inpaint_full_res=inpaint_full_res,
inpainting_mask_invert=inpainting_mask_invert,
- extra_generation_params={"Denoising Strength": denoising_strength}
+ extra_generation_params={
+ "Denoising strength": denoising_strength,
+ "Denoising strength change factor": denoising_strength_change_factor
+ }
)
if is_loopback:
@@ -99,7 +102,7 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index p.init_images = [init_img]
p.seed = processed.seed + 1
- p.denoising_strength = max(p.denoising_strength * 0.95, 0.1)
+ p.denoising_strength = min(max(p.denoising_strength * denoising_strength_change_factor, 0.1), 1)
history.append(processed.images[0])
grid = images.image_grid(history, batch_size, rows=1)
diff --git a/modules/ui.py b/modules/ui.py index b1a8c776..8767d439 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -349,7 +349,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): with gr.Group():
cfg_scale = gr.Slider(minimum=1.0, maximum=15.0, step=0.5, label='CFG Scale', value=7.0)
- denoising_strength = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, label='Denoising Strength', value=0.75)
+ denoising_strength = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, label='Denoising strength', value=0.75)
+ denoising_strength_change_factor = gr.Slider(minimum=0.9, maximum=1.1, step=0.01, label='Denoising strength change factor', value=1, visible=False)
with gr.Group():
height = gr.Slider(minimum=64, maximum=2048, step=64, label="Height", value=512)
@@ -396,6 +397,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): sd_upscale_overlap: gr_show(is_upscale),
inpaint_full_res: gr_show(is_inpaint),
inpainting_mask_invert: gr_show(is_inpaint),
+ denoising_strength_change_factor: gr_show(is_loopback),
}
switch_mode.change(
@@ -412,6 +414,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): sd_upscale_overlap,
inpaint_full_res,
inpainting_mask_invert,
+ denoising_strength_change_factor,
]
)
@@ -433,6 +436,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): batch_size,
cfg_scale,
denoising_strength,
+ denoising_strength_change_factor,
seed,
height,
width,
@@ -26,7 +26,8 @@ titles = { "latent nothing": "fill it with latent space zeroes", "Inpaint at full resolution": "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image", - "Denoising Strength": "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image.", + "Denoising strength": "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image.", + "Denoising strength change factor": "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.", "Interrupt": "Stop processing images and return any results accumulated so far.", "Save": "Write image to a directory (default - log/images) and generation parameters into csv file.", |