FACT版本疑似内存泄露
搭配sd webui运行,仅使用sd1.5 fp16模型,占用内存高达50.5GB,远高于说明文档上的30G->20GB和同类产品Easyphoto 28GB
而且Windows下要怎么用jemalloc?
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.
开启使用共享显存的选项,在共享显存未满的情况下,仍报错
似乎FACT版本并不比原版降低配置需求,甚至还更高了。
内存泄漏源于diffusers中pipeline在CPU和GPU切换时的内存碎片,FACT版本由于包含inpainting和text-to-image的多个pipeline,为节省显存故而使用上述切换,该问题须使用jemalloc解决。
想问一下,Windows下要怎么安装jemalloc?
内存泄漏源于diffusers中pipeline在CPU和GPU切换时的内存碎片,FACT版本由于包含inpainting和text-to-image的多个pipeline,为节省显存故而使用上述切换,该问题须使用jemalloc解决。
即使是用APC inject注入jemalloc.dll也节省不了内存。
翻了一下源码,启动时没必要把两个sdxl模型都加载上吧。 这俩才是吃内存的关键,而且导致启动速度极慢。 sdwebui还会预加载用户默认的模型,相当于同时载入了三个sd模型。 根据https://github.com/modelscope/facechain/issues/567 所说,理论上是可以支持别的模型的。 直接用sd webui预加载的模型不就好了。 easyphoto也可以复用sd webui的预加载模型。 @sunbaigui
感谢您的建议。针对加载多个sd模型的问题,该设计可以避免后续用户切换模型时重新加载的时间,但的确导致内存和初始启动时间的增加,如有需要,可以添加用户手动切换并加载模型的版本。针对sd webui预加载模型复用的问题,当前版本的facechain由于涉及到对sd模型inference流程的修改,故无法直接支持sd webui模型的复用,须重构webui中推理步骤的底层代码,如有兴趣,可以考虑加入facechain开发群,召集开发者合作开发该功能。