Skip to content

Commit c88108f

Browse files
committed
Update CFG
1 parent 5831d03 commit c88108f

File tree

5 files changed

+13
-13
lines changed

5 files changed

+13
-13
lines changed

modules/img2img.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def process_batch(p, input_dir, output_dir, inpaint_mask_dir, args):
7676
processed_image.save(os.path.join(output_dir, filename))
7777

7878

79-
def img2img(id_task: str, mode: int, prompt: str, negative_prompt: str, prompt_styles, init_img, sketch, init_img_with_mask, inpaint_color_sketch, inpaint_color_sketch_orig, init_img_inpaint, init_mask_inpaint, steps: int, sampler_index: int, mask_blur: int, mask_alpha: float, inpainting_fill: int, restore_faces: bool, tiling: bool, n_iter: int, batch_size: int, cfg_scale: float, text_cfg_scale: float, denoising_strength: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, seed_enable_extras: bool, height: int, width: int, resize_mode: int, inpaint_full_res: bool, inpaint_full_res_padding: int, inpainting_mask_invert: int, img2img_batch_input_dir: str, img2img_batch_output_dir: str, img2img_batch_inpaint_mask_dir: str, override_settings_texts, *args):
79+
def img2img(id_task: str, mode: int, prompt: str, negative_prompt: str, prompt_styles, init_img, sketch, init_img_with_mask, inpaint_color_sketch, inpaint_color_sketch_orig, init_img_inpaint, init_mask_inpaint, steps: int, sampler_index: int, mask_blur: int, mask_alpha: float, inpainting_fill: int, restore_faces: bool, tiling: bool, n_iter: int, batch_size: int, cfg_scale: float, image_cfg_scale: float, denoising_strength: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, seed_enable_extras: bool, height: int, width: int, resize_mode: int, inpaint_full_res: bool, inpaint_full_res_padding: int, inpainting_mask_invert: int, img2img_batch_input_dir: str, img2img_batch_output_dir: str, img2img_batch_inpaint_mask_dir: str, override_settings_texts, *args):
8080
override_settings = create_override_settings_dict(override_settings_texts)
8181

8282
is_batch = mode == 5
@@ -132,7 +132,7 @@ def img2img(id_task: str, mode: int, prompt: str, negative_prompt: str, prompt_s
132132
n_iter=n_iter,
133133
steps=steps,
134134
cfg_scale=cfg_scale,
135-
text_cfg_scale=text_cfg_scale,
135+
image_cfg_scale=image_cfg_scale,
136136
width=width,
137137
height=height,
138138
restore_faces=restore_faces,

modules/processing.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ def save_intermediate(image, index):
912912
class StableDiffusionProcessingImg2Img(StableDiffusionProcessing):
913913
sampler = None
914914

915-
def __init__(self, init_images: list = None, resize_mode: int = 0, denoising_strength: float = 0.75, mask: Any = None, mask_blur: int = 4, inpainting_fill: int = 0, inpaint_full_res: bool = True, inpaint_full_res_padding: int = 0, inpainting_mask_invert: int = 0, text_cfg_scale: float = 7.5, initial_noise_multiplier: float = None, **kwargs):
915+
def __init__(self, init_images: list = None, resize_mode: int = 0, denoising_strength: float = 0.75, mask: Any = None, mask_blur: int = 4, inpainting_fill: int = 0, inpaint_full_res: bool = True, inpaint_full_res_padding: int = 0, inpainting_mask_invert: int = 0, image_cfg_scale: float = 7.5, initial_noise_multiplier: float = None, **kwargs):
916916
super().__init__(**kwargs)
917917

918918
self.init_images = init_images
@@ -927,7 +927,7 @@ def __init__(self, init_images: list = None, resize_mode: int = 0, denoising_str
927927
self.inpaint_full_res = inpaint_full_res
928928
self.inpaint_full_res_padding = inpaint_full_res_padding
929929
self.inpainting_mask_invert = inpainting_mask_invert
930-
self.text_cfg_scale=text_cfg_scale
930+
self.image_cfg_scale=image_cfg_scale
931931
self.initial_noise_multiplier = opts.initial_noise_multiplier if initial_noise_multiplier is None else initial_noise_multiplier
932932
self.mask = None
933933
self.nmask = None

modules/sd_samplers_common.py

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def single_sample_to_image(sample, approximation=None):
3939
x_sample = processing.decode_first_stage(shared.sd_model, sample.unsqueeze(0))[0]
4040

4141
x_sample = torch.clamp((x_sample + 1.0) / 2.0, min=0.0, max=1.0)
42+
x_sample = 255.0 * rearrange(x_sample, "1 c h w -> h w c")
4243
x_sample = 255. * np.moveaxis(x_sample.cpu().numpy(), 0, 2)
4344
x_sample = x_sample.astype(np.uint8)
4445

modules/sd_samplers_kdiffusion.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,17 @@ def __init__(self, model):
5858
self.init_latent = None
5959
self.step = 0
6060

61-
def combine_denoised(self, x_out, conds_list, uncond, cond_scale, text_scale):
61+
def combine_denoised(self, x_out, conds_list, uncond, cond_scale, image_scale):
6262
denoised_uncond = x_out[-uncond.shape[0]:]
6363
denoised = torch.clone(denoised_uncond)
6464

6565
for i, conds in enumerate(conds_list):
6666
for cond_index, weight in conds:
67-
#denoised[i] += (x_out[cond_index] - denoised_uncond[i]) * (weight * cond_scale)
68-
denoised[i] += text_scale * (x_out[cond_index] - denoised_uncond[i]) + cond_scale * (denoised_uncond[i] - x_out[cond_index])
67+
denoised[i] += cond_scale * (x_out[cond_index] - denoised_uncond[i]) + image_scale * (denoised_uncond[i] - x_out[cond_index])
6968

7069
return denoised
7170

72-
def forward(self, x, sigma, uncond, cond, cond_scale, image_cond, text_scale):
71+
def forward(self, x, sigma, uncond, cond, cond_scale, image_cond, image_scale):
7372
if state.interrupted or state.skipped:
7473
raise sd_samplers_common.InterruptedException
7574

@@ -116,7 +115,7 @@ def forward(self, x, sigma, uncond, cond, cond_scale, image_cond, text_scale):
116115
elif opts.live_preview_content == "Negative prompt":
117116
sd_samplers_common.store_latent(x_out[-uncond.shape[0]:])
118117

119-
denoised = self.combine_denoised(x_out, conds_list, uncond, cond_scale, text_scale)
118+
denoised = self.combine_denoised(x_out, conds_list, uncond, cond_scale, image_scale)
120119

121120
if self.mask is not None:
122121
denoised = self.init_latent * self.mask + self.nmask * denoised
@@ -293,7 +292,7 @@ def sample_img2img(self, p, x, noise, conditioning, unconditional_conditioning,
293292
'image_cond': image_conditioning,
294293
'uncond': unconditional_conditioning,
295294
'cond_scale': p.cfg_scale,
296-
'text_scale': p.text_cfg_scale
295+
'image_scale': p.image_cfg_scale
297296
}, disable=False, callback=self.callback_state, **extra_params_kwargs))
298297

299298
return samples

modules/ui.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -765,8 +765,8 @@ def copy_image(img):
765765

766766
elif category == "cfg":
767767
with FormGroup():
768-
cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='CFG Scale', value=7.0, elem_id="img2img_cfg_scale")
769-
text_cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='Text CFG Scale', value=7.5, elem_id="img2img_cfg_scale")
768+
cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='CFG Scale', value=7.5, elem_id="img2img_cfg_scale")
769+
image_cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='Image CFG Scale', value=1.5, elem_id="img2img_cfg_scale")
770770
denoising_strength = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, label='Denoising strength', value=0.75, elem_id="img2img_denoising_strength")
771771

772772
elif category == "seed":
@@ -862,7 +862,7 @@ def select_img2img_tab(tab):
862862
batch_count,
863863
batch_size,
864864
cfg_scale,
865-
text_cfg_scale,
865+
image_cfg_scale,
866866
denoising_strength,
867867
seed,
868868
subseed, subseed_strength, seed_resize_from_h, seed_resize_from_w, seed_checkbox,

0 commit comments

Comments
 (0)