Kahsolt / stable-diffusion-webui-prompt-travel

Travel between prompts in the latent space to make pseudo-animation, extension script for AUTOMATIC1111/stable-diffusion-webui.
The Unlicense
248 stars 22 forks source link

TypeError: 'NoneType' object is not subscriptable #4

Closed Puddz closed 1 year ago

Puddz commented 1 year ago

Traceback (most recent call last): File "S:\Games\stable-diffusion-webui\modules\ui.py", line 188, in f res = list(func(*args, *kwargs)) File "S:\Games\stable-diffusion-webui\webui.py", line 57, in f res = func(args, *kwargs) File "S:\Games\stable-diffusion-webui\modules\txt2img.py", line 46, in txt2img processed = modules.scripts.scripts_txt2img.run(p, args) File "S:\Games\stable-diffusion-webui\modules\scripts.py", line 317, in run processed = script.run(p, *script_args) File "S:\Games\stable-diffusion-webui\extensions\stable-diffusion-webui-prompt-travel\scripts\prompt_travel.py", line 537, in run if mode == 'linear' : images, info = self.run_linear (p, pos_prompts, neg_prompts, steps, show_debug) File "S:\Games\stable-diffusion-webui\extensions\stable-diffusion-webui-prompt-travel\scripts\prompt_travel.py", line 595, in run_linear from_pos_hidden, from_neg_hidden, prompts, seeds, subseeds = process_images_prompt_to_cond(p) File "S:\Games\stable-diffusion-webui\extensions\stable-diffusion-webui-prompt-travel\scripts\prompt_travel.py", line 69, in process_images_prompt_to_cond file.write(processed.infotext(p, 0)) File "S:\Games\stable-diffusion-webui\modules\processing.py", line 286, in infotext return create_infotext(p, self.all_prompts, self.all_seeds, self.all_subseeds, comments=[], position_in_batch=index % self.batch_size, iteration=index // self.batch_size) File "S:\Games\stable-diffusion-webui\modules\processing.py", line 417, in create_infotext negative_prompt_text = "\nNegative prompt: " + p.all_negative_prompts[0] if p.all_negative_prompts[0] else "" TypeError: 'NoneType' object is not subscriptable

Getting this error when trying to use prompt travel. Think latest automatic update changed something. Was working fine earlier.

Kahsolt commented 1 year ago

It seems that webui updated its behaviour, the former version is negative_prompt_text = "\nNegative prompt: " + p.negative_prompt if p.negative_prompt else "" I'll fix this soon~

Kahsolt commented 1 year ago

Nope, just now I pulled the latest webui and found nothing changed. Is this line

File "S:\Games\stable-diffusion-webui\modules\processing.py", line 417, in create_infotext
negative_prompt_text = "\nNegative prompt: " + p.all_negative_prompts[0] if p.all_negative_prompts[0] else ""

modified by you or your extensions? The original one should be negative_prompt_text = "\nNegative prompt: " + p.negative_prompt if p.negative_prompt else "".

Actually in order to hack into the StableDiffusionProcessing, current implementation of this script copied a lot of codes from webui's repo. Hence once webui changed its related behaviour, I have to manually backport it to this repo. (I track the master branch, so if you use or develop other core branch, it might not work...)

Kahsolt commented 1 year ago

Ok, finally I found I was working on another remote origin, so get pulled nothing... It's indeed due to the behaviour change of webui, just now I've pushed a work around tagged v1.2-fix1, it temporarily works for me, and a total code refactorizing is on the way 😀

Puddz commented 1 year ago

Yeah the fix worked. Updated the extension and can prompt travel again. Thanks.