diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b71d6394..638f710e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,7 +68,7 @@ add `cli/image-exif.py` that can be used to view/extract metadata from images - lower overhead on generate calls - auto-synchronize modernui and core branches -- add option to pad prompt with empty embeds, thanks @Disty +- add option to pad prompt with zeros, thanks @Disty ## Fixes diff --git a/modules/prompt_parser_diffusers.py b/modules/prompt_parser_diffusers.py index 8df78d3bc..3c472b227 100644 --- a/modules/prompt_parser_diffusers.py +++ b/modules/prompt_parser_diffusers.py @@ -237,12 +237,13 @@ def pad_to_same_length(pipe, embeds): if not hasattr(pipe, 'encode_prompt') and 'StableCascade' not in pipe.__class__.__name__: return embeds device = pipe.device if str(pipe.device) != 'meta' else devices.device - if shared.opts.diffusers_empty_prompt_pad: - empty_embed = [torch.empty((1, 77, embeds[0].shape[2]), device=device, dtype=embeds[0].dtype)] + if shared.opts.diffusers_zeros_prompt_pad: + empty_embed = [torch.zeros((1, 77, embeds[0].shape[2]), device=device, dtype=embeds[0].dtype)] else: try: if 'StableCascade' in pipe.__class__.__name__: - empty_embed = [torch.zeros((1, 77, embeds[0].shape[2]), device=device, dtype=embeds[0].dtype)] + empty_embed = pipe.prior_pipe.encode_prompt(device, 1, 1, False, prompt="") + empty_embed = [torch.nn.functional.normalize(empty_embed[0])] else: empty_embed = pipe.encode_prompt("") except TypeError: # SD1.5 diff --git a/modules/shared.py b/modules/shared.py index 5c430c309..0588bca21 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -534,7 +534,7 @@ options_templates.update(options_section(('diffusers', "Diffusers Settings"), { "disable_accelerate": OptionInfo(False, "Disable accelerate"), "diffusers_force_zeros": OptionInfo(False, "Force zeros for prompts when empty", gr.Checkbox, {"visible": False}), "diffusers_pooled": OptionInfo("default", "Diffusers SDXL pooled embeds", gr.Radio, {"choices": ['default', 'weighted']}), - "diffusers_empty_prompt_pad": OptionInfo(False, "Use empty values for prompt padding", gr.Checkbox), + "diffusers_zeros_prompt_pad": OptionInfo(False, "Use zeros for prompt padding", gr.Checkbox), "huggingface_token": OptionInfo('', 'HuggingFace token'), "onnx_sep": OptionInfo("

ONNX Runtime

", "", gr.HTML),