Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails if negative prompt contains only embeddings or is empty #5

Closed
arcusmaximus opened this issue Sep 8, 2023 · 4 comments
Closed

Comments

@arcusmaximus
Copy link

arcusmaximus commented Sep 8, 2023

As in the title. If you generate something simple like

Positive prompt: 1girl, closeup
Negative prompt: EasyNegativeV2

with NegPiP enabled, A1111 fails with the following error:

      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\openaimodel.py", line 84, in forward
        x = layer(x, context)
      File "D:\Automatic1111\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
        return forward_call(*args, **kwargs)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\attention.py", line 334, in forward
        x = block(x, context=context[i])
      File "D:\Automatic1111\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
        return forward_call(*args, **kwargs)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\attention.py", line 269, in forward
        return checkpoint(self._forward, (x, context), self.parameters(), self.checkpoint)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\util.py", line 121, in checkpoint
        return CheckpointFunction.apply(func, len(inputs), *args)
      File "D:\Automatic1111\venv\lib\site-packages\torch\autograd\function.py", line 506, in apply
        return super().apply(*args, **kwargs)  # type: ignore[misc]
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\util.py", line 136, in forward
        output_tensors = ctx.run_function(*ctx.input_tensors)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\attention.py", line 273, in _forward
        x = self.attn2(self.norm2(x), context=context) + x
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'Tensor'

Images after this fail with a different error, even if NegPiP is disabled:

      File "D:\Automatic1111\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
        return forward_call(*args, **kwargs)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\attention.py", line 269, in forward
        return checkpoint(self._forward, (x, context), self.parameters(), self.checkpoint)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\util.py", line 121, in checkpoint
        return CheckpointFunction.apply(func, len(inputs), *args)
      File "D:\Automatic1111\venv\lib\site-packages\torch\autograd\function.py", line 506, in apply
        return super().apply(*args, **kwargs)  # type: ignore[misc]
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\util.py", line 136, in forward
        output_tensors = ctx.run_function(*ctx.input_tensors)
      File "D:\Automatic1111\repositories\stable-diffusion-stability-ai\ldm\modules\attention.py", line 273, in _forward
        x = self.attn2(self.norm2(x), context=context) + x
      File "D:\Automatic1111\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
        return forward_call(*args, **kwargs)
      File "D:\Automatic1111\extensions\sd-webui-negpip\scripts\negpip.py", line 298, in forward
        return sub_forward(x, context, mask, additional_tokens, n_times_crossframe_attn_in_self,self.conds[0],self.contokens[0],self.unconds[0],self.untokens[0])
    TypeError: 'NoneType' object is not subscriptable

This error keeps happening until you generate something with NegPiP enabled and a negative prompt filled in.

(On a side note, I'd like to thank you for your Regional Prompter extension - I think it's an essential tool that's just as important as ControlNet. Your other extensions, including NegPiP, look promising too)

@arcusmaximus arcusmaximus changed the title Fails with an empty negative prompt Fails if negative prompt contains only embeddings or is empty Sep 8, 2023
@hako-mikan
Copy link
Owner

I couldn't reproduce your error.
Tel me your environment.

@arcusmaximus
Copy link
Author

A1111 1.6.0 on Python 3.10.10/Windows 10, SD 1.5 model.
NegPiP on latest version (updated just now).
Tried disabling all other extensions and removing my "venv" folder, but to no avail.

hako-mikan added a commit that referenced this issue Sep 18, 2023
@hako-mikan
Copy link
Owner

Maybe fixed.

@arcusmaximus
Copy link
Author

Yes, works now. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants