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

FACT版本疑似内存泄露 #589

Open
Pevernow opened this issue Jul 26, 2024 · 7 comments
Open

FACT版本疑似内存泄露 #589

Pevernow opened this issue Jul 26, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@Pevernow
Copy link

QQ_1721984465923

搭配sd webui运行,仅使用sd1.5 fp16模型,占用内存高达50.5GB,远高于说明文档上的30G->20GB和同类产品Easyphoto 28GB

而且Windows下要怎么用jemalloc?

@Pevernow
Copy link
Author

RuntimeError: free_upper_bound + pytorch_used_bytes[device] <= device_total INTERNAL ASSERT FAILED at "..\c10\cuda\CUDAMallocAsyncAllocator.cpp":540, please report a bug to PyTorch.

开启使用共享显存的选项,在共享显存未满的情况下,仍报错
QQ_1721984800311

@Pevernow
Copy link
Author

似乎FACT版本并不比原版降低配置需求,甚至还更高了。

@You-Cun
Copy link
Collaborator

You-Cun commented Jul 26, 2024

内存泄漏源于diffusers中pipeline在CPU和GPU切换时的内存碎片,FACT版本由于包含inpainting和text-to-image的多个pipeline,为节省显存故而使用上述切换,该问题须使用jemalloc解决。

@Pevernow
Copy link
Author

想问一下,Windows下要怎么安装jemalloc?

@sunbaigui sunbaigui added the enhancement New feature or request label Jul 26, 2024
@Pevernow
Copy link
Author

内存泄漏源于diffusers中pipeline在CPU和GPU切换时的内存碎片,FACT版本由于包含inpainting和text-to-image的多个pipeline,为节省显存故而使用上述切换,该问题须使用jemalloc解决。

即使是用APC inject注入jemalloc.dll也节省不了内存。

@Pevernow
Copy link
Author

Pevernow commented Jul 27, 2024

翻了一下源码,启动时没必要把两个sdxl模型都加载上吧。
这俩才是吃内存的关键,而且导致启动速度极慢。
sdwebui还会预加载用户默认的模型,相当于同时载入了三个sd模型。
根据#567 所说,理论上是可以支持别的模型的。
直接用sd webui预加载的模型不就好了。
easyphoto也可以复用sd webui的预加载模型。
@sunbaigui

@You-Cun
Copy link
Collaborator

You-Cun commented Jul 29, 2024

感谢您的建议。针对加载多个sd模型的问题,该设计可以避免后续用户切换模型时重新加载的时间,但的确导致内存和初始启动时间的增加,如有需要,可以添加用户手动切换并加载模型的版本。针对sd webui预加载模型复用的问题,当前版本的facechain由于涉及到对sd模型inference流程的修改,故无法直接支持sd webui模型的复用,须重构webui中推理步骤的底层代码,如有兴趣,可以考虑加入facechain开发群,召集开发者合作开发该功能。

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

No branches or pull requests

3 participants