Jannchie / ComfyUI-J

Jannchie's ComfyUI custom nodes.
64 stars 13 forks source link

显存问题 #18

Closed zmwv823 closed 2 months ago

zmwv823 commented 2 months ago

跟只使用torch做设备管理和sd.pipeline管线生图做了下对比

1、单纯生图显存占用对比,因为生图过程中参数不一样(噪波、latent等),所以这个无参考意义。

SDO-Normal_VRAM J-More_VRAM

2、生图完成自动卸载模型,释放显存。

SDO-VRAM_released_after_executed J-VRAM_never_released_after_executed

3、显存未释放,导致切换模型的话会叠加占用显存。

SDO-VRAM_not_add_together J-VRAM_add_together

Jannchie commented 2 months ago

你好。

我没有完全理解你想表达什么。这些节点的目的是让 comfy ui 下做的实验能快速用 diffusers 重写。而似乎你主要是关注显存未释放的问题。

这和使用 diffusers 与否无关,可以简单地添加两行代码,释放除了模型权重以外的显存。

删除模型权重的显存(卸载模型)也是可以做到的,不过 comfy ui 得原始方法也没有做这一步,因为模型的首次加载很慢。

我会之后会添加清理多余显存的代码。

Jannchie commented 2 months ago

现在,在切换模型前和生成结束后会清理缓存。

zmwv823 commented 2 months ago

你好。

我没有完全理解你想表达什么。这些节点的目的是让 comfy ui 下做的实验能快速用 diffusers 重写。而似乎你主要是关注显存未释放的问题。

这和使用 diffusers 与否无关,可以简单地添加两行代码,释放除了模型权重以外的显存。

删除模型权重的显存(卸载模型)也是可以做到的,不过 comfy ui 得原始方法也没有做这一步,因为模型的首次加载很慢。

我会之后会添加清理多余显存的代码。

额,就是 一个疑问:单纯生图显存占用比最简单的sd.pipe多了不少,是因为在生图过程中加入了噪点或者返回了latents吗。 一个issue:显存未释放(看到更新已解决)