刚刚访问了 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
我已更新为
diffusers==0.18.2
。
这里是一个示例代码,它制作一堆图像并将它们放入网格中,使用自定义管道 https://hatebin.com/tqppqfsehk
有趣的是,这看起来像是扩散器中的一个错误。
added_cond_kwargs
被指定为可选,并且函数签名明确将其默认为 None
。但是,后续代码不会检查 None
的情况,将其视为字典。如果尚未报告,值得通过 diffusers
提出问题。如果它作为 added_cond_kwargs
传递,他们可能可以通过简单地将 {}
设置为 None
来修复它。
同时,您应该能够通过显式地将
added_cond_kwargs={}
传递给unet 函数来解决此问题。
我假设您正在使用 StableDiffusionPipeline。尝试改用 StableDiffusionXLPipeline。这应该可以解决您的问题。