ThereforeGames/unprompted

您好,现在提示词不能超过77个字符吗?很多lora将会不能加载

LGlassySky opened this issue · 3 comments

在我运行img2img时,出现以下错误:

2023-07-30 12:10:31,987 - Unprompted.txt2mask - INFO - Using cached clipseg model.
*** Error running process: D:\sd-webui-aki-v4.2\extensions\unprompted\scripts\unprompted.py
Traceback (most recent call last):
File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shortcodes.py", line 144, in render
return str(self.handler(self.token.keyword, self.pargs, self.kwargs, context, content))
File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shared.py", line 120, in handler
return (self.shortcode_objects[f"{keyword}"].run_block(pargs, kwargs, context, content))
File "D:\sd-webui-aki-v4.2\extensions\unprompted/shortcodes\stable_diffusion\txt2mask.py", line 594, in run_block
self.image_mask = get_mask().resize((self.init_image.width, self.init_image.height))
File "D:\sd-webui-aki-v4.2\extensions\unprompted/shortcodes\stable_diffusion\txt2mask.py", line 491, in get_mask
preds = model(img.repeat(prompt_parts, 1, 1, 1).to(device=device), prompts)[0].cpu()
File "D:\sd-webui-aki-v4.2\python\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\stable_diffusion\clipseg\models\clipseg.py", line 360, in forward
cond = self.get_cond_vec(conditional, bs)
File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\stable_diffusion\clipseg\models\clipseg.py", line 211, in get_cond_vec
cond = self.compute_conditional(conditional)
File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\stable_diffusion\clipseg\models\clipseg.py", line 231, in compute_conditional
text_tokens = clip.tokenize(conditional).to(dev)
File "D:\sd-webui-aki-v4.2\python\lib\site-packages\clip\clip.py", line 234, in tokenize
raise RuntimeError(f"Input {texts[i]} is too long for context length {context_length}")
RuntimeError: Input beautiful girl, bedroom, naked towel, standing, wet hair,\nmasterpiece, top quality, best quality, official art, unity 8k wallpaper, highres, ultra-high res, ultra-detailed, beautiful and aesthetic, perfect detailed face, detailed eyes, highly detailed, lora:naked_towel_v0.1:1 lora:zovyaWetHairLORA64_V1:0.3 lora:add_detail:0.5 is too long for context length 77
提示:Python 运行时抛出了一个异常。请检查疑难解答页面。

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\sd-webui-aki-v4.2\modules\scripts.py", line 519, in process
    script.process(p, *script_args)
  File "D:\sd-webui-aki-v4.2\extensions\unprompted\scripts\unprompted.py", line 624, in process
    Unprompted.shortcode_user_vars["prompt"] = Unprompted.process_string(apply_prompt_template(Unprompted.original_prompt, Unprompted.Config.templates.default))
  File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shared.py", line 141, in process_string
    string = self.shortcode_parser.parse(self.sanitize_pre(string, self.Config.syntax.sanitize_before), context)
  File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shortcodes.py", line 252, in parse
    return stack.pop().render(context)
  File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shortcodes.py", line 59, in render
    return ''.join(child.render(context) for child in self.children)
  File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shortcodes.py", line 59, in <genexpr>
    return ''.join(child.render(context) for child in self.children)
  File "D:\sd-webui-aki-v4.2\extensions\unprompted\lib_unprompted\shortcodes.py", line 148, in render
    raise ShortcodeRenderingError(msg) from ex
lib_unprompted.shortcodes.ShortcodeRenderingError: An exception was raised while rendering the 'txt2mask' shortcode in line 1.

*** Error completing request
*** Arguments: ('task(bugz8p6ra0vtey3)', 2, 'beautiful girl, bedroom, naked towel, standing, wet hair,\nmasterpiece, top quality, best quality, official art, unity 8k wallpaper, highres, ultra-high res, ultra-detailed, beautiful and aesthetic, perfect detailed face, detailed eyes, highly detailed, lora:naked_towel_v0.1:1 lora:zovyaWetHairLORA64_V1:0.3 lora:add_detail:0.5', 'EasyNegative, ng_deepnegative_v1_75t, badhandv4, (worst quality:2), (low quality:2), (normal quality:2), lowres, watermark, monochrome, paintings, sketches, text, jpeg artifacts', [], None, None, {'image': <PIL.Image.Image image mode=RGBA size=768x960 at 0x29731B46110>, 'mask': <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=768x960 at 0x29731B47400>}, None, None, None, None, 25, 16, 4, 0, 1, False, False, 1, 1, 5, 1.5, 0.35, 1517378349.0, -1.0, 0, 0, 0, False, 1, 768, 512, 0.85, 1, 1, 32, 0, '', '', '', [], False, [], '', <gradio.routes.Request object at 0x00000296A6E473D0>, 0, False, {'ad_model': 'face_yolov8n.pt', 'ad_prompt': '', 'ad_negative_prompt': '', 'ad_confidence': 0.3, 'ad_mask_min_ratio': 0, 'ad_mask_max_ratio': 1, 'ad_x_offset': 0, 'ad_y_offset': 0, 'ad_dilate_erode': 32, 'ad_mask_merge_invert': 'None', 'ad_mask_blur': 4, 'ad_denoising_strength': 0.4, 'ad_inpaint_only_masked': True, 'ad_inpaint_only_masked_padding': 32, 'ad_use_inpaint_width_height': False, 'ad_inpaint_width': 512, 'ad_inpaint_height': 512, 'ad_use_steps': False, 'ad_steps': 28, 'ad_use_cfg_scale': False, 'ad_cfg_scale': 7, 'ad_use_sampler': False, 'ad_sampler': 'Euler a', 'ad_use_noise_multiplier': False, 'ad_noise_multiplier': 1, 'ad_restore_face': False, 'ad_controlnet_model': 'None', 'ad_controlnet_module': 'inpaint_global_harmonious', 'ad_controlnet_weight': 1, 'ad_controlnet_guidance_start': 0, 'ad_controlnet_guidance_end': 1, 'is_api': ()}, {'ad_model': 'hand_yolov8n.pt', 'ad_prompt': '', 'ad_negative_prompt': '', 'ad_confidence': 0.3, 'ad_mask_min_ratio': 0, 'ad_mask_max_ratio': 1, 'ad_x_offset': 0, 'ad_y_offset': 0, 'ad_dilate_erode': 32, 'ad_mask_merge_invert': 'None', 'ad_mask_blur': 4, 'ad_denoising_strength': 0.4, 'ad_inpaint_only_masked': True, 'ad_inpaint_only_masked_padding': 32, 'ad_use_inpaint_width_height': False, 'ad_inpaint_width': 512, 'ad_inpaint_height': 512, 'ad_use_steps': False, 'ad_steps': 28, 'ad_use_cfg_scale': False, 'ad_cfg_scale': 7, 'ad_use_sampler': False, 'ad_sampler': 'Euler a', 'ad_use_noise_multiplier': False, 'ad_noise_multiplier': 1, 'ad_restore_face': False, 'ad_controlnet_model': 'None', 'ad_controlnet_module': 'inpaint_global_harmonious', 'ad_controlnet_weight': 1, 'ad_controlnet_guidance_start': 0, 'ad_controlnet_guidance_end': 1, 'is_api': ()}, False, 'MultiDiffusion', False, True, 1024, 1024, 96, 96, 48, 1, 'None', 2, False, 10, 1, 1, 64, False, False, False, False, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 0.4, 0.4, 0.2, 0.2, '', '', 'Background', 0.2, -1.0, False, 1536, 96, True, True, True, False, False, False, 'LoRA', 'None', 0, 0, 'LoRA', 'None', 0, 0, 'LoRA', 'None', 0, 0, 'LoRA', 'None', 0, 0, 'LoRA', 'None', 0, 0, None, 'Refresh models', <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x0000029731B46230>, <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x00000298C78194B0>, <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x00000298C78188E0>, <scripts.controlnet_ui.controlnet_ui_group.UiControlNetUnit object at 0x00000296A6E147C0>, None, False, '0', '0', 'D:\sd-webui-aki-v4.2\models/roop\inswapper_128.onnx', 'CodeFormer', 1, True, '', 1, 1, False, True, False, False, 0, None, [], 0, False, [], [], False, 0, 1, False, False, 0, None, [], -2, False, [], False, 0, None, None, True, -1.0, True, '

    \n
  • CFG Scale should be 2 or lower.
  • \n
\n', True, True, '', '', True, 50, True, 1, 0, False, 4, 0.5, 'Linear', 'None', '

Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8

', 128, 8, ['left', 'right', 'up', 'down'], 1, 0.05, 128, 4, 0, ['left', 'right', 'up', 'down'], False, False, 'positive', 'comma', 0, False, False, '', '

Will upscale the image by the selected scale factor; use width and height sliders to set tile size

', 64, 0, 2, 1, '', [], 0, '', [], 0, '', [], True, False, False, False, 0, None, None, False, None, None, False, None, None, False, None, None, False, 50) {}
Traceback (most recent call last):
File "D:\sd-webui-aki-v4.2\modules\call_queue.py", line 58, in f
res = list(func(*args, **kwargs))
File "D:\sd-webui-aki-v4.2\modules\call_queue.py", line 37, in f
res = func(*args, **kwargs)
File "D:\sd-webui-aki-v4.2\modules\img2img.py", line 232, in img2img
processed = process_images(p)
File "D:\sd-webui-aki-v4.2\modules\processing.py", line 677, in process_images
res = process_images_inner(p)
File "D:\sd-webui-aki-v4.2\extensions\sd-webui-controlnet\scripts\batch_hijack.py", line 42, in processing_process_images_hijack
return getattr(processing, '__controlnet_original_process_images_inner')(p, *args, **kwargs)
File "D:\sd-webui-aki-v4.2\modules\processing.py", line 734, in process_images_inner
p.init(p.all_prompts, p.all_seeds, p.all_subseeds)
File "D:\sd-webui-aki-v4.2\modules\processing.py", line 1280, in init
mask = mask.crop(crop_region)
File "D:\sd-webui-aki-v4.2\python\lib\site-packages\PIL\Image.py", line 1224, in crop
raise ValueError(msg)
ValueError: Coordinate 'right' is less than 'left'
提示:Python 运行时抛出了一个异常。请检查疑难解答页面。


Hi @LGlassySky,

At a glance, this appears to be a limitation of the clipseg library - are you passing >77 characters into the [txt2mask] content? I can't think of a good reason to give clipseg or SAM that much text to work with. 1-2 words is plenty for the majority of usecases.

Can you confirm that you're formatting your prompt as shown below?

[txt2mask]select something[/txt2mask]The rest of your prompt here, should be able to exceed 77 tokens no problem

I will probably limit the [txt2mask] content length in the next update, but I want to make sure I understand the issue first. Thanks.

Hi @LGlassySky,

At a glance, this appears to be a limitation of the clipseg library - are you passing >77 characters into the [txt2mask] content? I can't think of a good reason to give clipseg or SAM that much text to work with. 1-2 words is plenty for the majority of usecases.

Can you confirm that you're formatting your prompt as shown below?

[txt2mask]select something[/txt2mask]The rest of your prompt here, should be able to exceed 77 tokens no problem

I will probably limit the [txt2mask] content length in the next update, but I want to make sure I understand the issue first. Thanks.

Hi @ThereforeGames,

I'm sorry I may not have made it clear last time.

But the program seems to mistakenly count the number of prompt words in the web-ui as the number of prompt words used for Clipseg mask (this number may not include the negative prompt for web-ui, because my negative prompt wrote a lot)

Actually,there are only two prompt words that I passed to the unprompted plug-in for mask drawing.

When the number of prompt words of my web-ui is small, the program can run normally, and it is only divided according to the prompt words in clipseg (so I guess it is only involved in counting)

In today's version 9.15.1, the program can run normally, the problem should have been fixed, thank you very much

Glad to hear the latest version is working better. 🙂