Diffusers SDXL“TypeError:‘NoneType’类型的参数不可迭代”

kam*_*mza 7 python torch stable-diffusion

刚刚访问了 SDXL 模型,希望对其即将发布的版本进行测试...不幸的是,我们当前用于服务的代码似乎不适用于stabilityai/stable-diffusion-xl-base-0.9,并且我不完全确定 SDXL 有何不同以及我需要什么改变。

我们使用不同的管道,以便可以生成图像预览,因此它不是 SDXL 模型自述文件中提供的典型模板。该错误似乎发生在unet_2d_condition.py(在扩散器库中)

Traceback (most recent call last):
  File "C:\Users\myalt\Desktop\testing image grid\main.py", line 159, in <module>
    socker_listener.generate_image()
  File "C:\Users\myalt\Desktop\testing image grid\main.py", line 154, in generate_image
    foo = self.blocking_code()
  File "C:\Users\myalt\Desktop\testing image grid\main.py", line 109, in blocking_code
    noise_pred = self.unet(latent_model_input, t,
  File "C:\Users\myalt\Desktop\testing image grid\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\myalt\Desktop\testing image grid\venv\lib\site-packages\diffusers\models\unet_2d_condition.py", line 839, in forward
    if "text_embeds" not in added_cond_kwargs:
TypeError: argument of type 'NoneType' is not iterable
Run Code Online (Sandbox Code Playgroud)

我已经更新到diffusers==0.18.2.

这是一个示例代码,它制作一堆图像并将它们放入网格中,使用自定义管道 https://hatebin.com/tqppqfsehk

nne*_*neo 4

有趣的是,这看起来像是扩散器中的一个错误。added_cond_kwargs被指定为可选,并且函数签名显式地将其默认为None. 但是,后续代码不会检查大小写None,而是将其视为字典。diffusers如果尚未报告,则值得提出问题。他们可能可以通过简单地设置added_cond_kwargs为{}是否将其作为 传递来修复它None。

同时,您应该能够通过显式传递added_cond_kwargs={}给unet 函数来解决此问题。