英文:
Diffusers SDXL "TypeError: argument of type 'NoneType' is not iterable"
问题
刚刚获得了SDXL模型的访问权限,希望测试它以备将来发布...不幸的是,我们目前用于我们的服务的代码似乎与stabilityai/stable-diffusion-xl-base-0.9
不兼容,我不太确定SDXL有何不同以及我需要做哪些更改。
我们正在使用不同的管道来生成图像的预览,所以这不是SDXL模型自述文件中提供的典型模板。
错误似乎发生在unet_2d_condition.py
(在diffusers库中)
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
英文:
Just got access to SDXL model, looking to test it for its upcoming release... Unfortunately, the code we currently use for our service seems to not work with stabilityai/stable-diffusion-xl-base-0.9
, and I'm not entirely sure what is different with SDXL and what I need to change.
We are using a different pipeline so we can generate previews of the images, so its not the typical template that is provided on the SDXL model readme.
The error seems to be happening in unet_2d_condition.py
(in diffusers lib)
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
I've updated to diffusers==0.18.2
.
Here is a example code which makes a bunch of images and puts them into a grid, using this a custom pipeline
https://hatebin.com/tqppqfsehk
答案1
得分: 1
有趣的是,这似乎是扩散器中的一个错误。 added_cond_kwargs
被指定为可选的,并且函数签名明确将其默认为 None
。但是,随后的代码没有检查 None
情况,将其视为字典。如果还没有报告,值得向 diffusers
提交一个问题。他们可能可以通过将 added_cond_kwargs
设置为 {}
来修复它,如果它被传递为 None
的话。
与此同时,您可以通过明确传递 added_cond_kwargs={}
给 unet 函数来解决此问题。
英文:
Interesting, this looks like a bug in diffusers. added_cond_kwargs
is specified as being optional, and the function signature explicitly defaults it to None
. However, the subsequent code does not check for the None
case, treating it as if it is a dictionary. It's worth filing an issue with diffusers
if it hasn't already been reported. They can probably fix it by simply setting added_cond_kwargs
to {}
if it's passed as None
.
In the meantime, you should be able to work around this by explicitly passing added_cond_kwargs={}
to the unet function.
答案2
得分: 1
我假设你正在使用StableDiffusionPipeline。尝试使用StableDiffusionXLPipeline代替。这应该解决你的问题。
英文:
I'm assuming you're using the StableDiffusionPipeline. Try using the StableDiffusionXLPipeline instead. This should solve your issue.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论