本文首发于Novelai 中文频道,由原作者发表,转载请注明原作者@残梦新生。
本文参考了这篇知乎大佬的文章,同时感谢@椰羊❤️提供灵感。
https://zhuanlan.zhihu.com/p/601903035
绝非标题党。
A卡Windows用户请直接按原文大佬方法实操。注意仅针对VAE一项功能,DML的功能本身已经集成在频道1.7整合包里面,请勿重复修改。
我是N卡用户,那么我直接看这篇文章的重点:把VAE移动到CPU计算,可以直接解决最后潜空间图像转换成可见图像时爆显存的问题。(说人话:AI的草稿转成看得见的作品的时候,最占用显存,让CPU代劳可以节省宝贵的显存。)上图。
我已经测试过,尽管是A卡配置,完全按照原文配置依然是可以在N卡上运行的,但是比较慢,而且不能降低显存占用。修改位置上图。
processing.py第632行后,蓝色高亮区。
samples_ddim = samples_ddim.to(devices.dtype_vae).to("cpu")
x_samples_ddim = decode_first_stage(p.sd_model, samples_ddim)
lowvram.py第51行,蓝色高亮区。#
由于我是N卡用户,N卡能调用半精度性能,所以这里我对原文启动参数本身做了魔改。上图。
webui-user.bat,启动参数,蓝色高亮区。
--lowvram --no-half-vae
改好之后,显卡单步速度相对于原文参数大大提升,显存占用直接砍半,综合表现直接吊打纯CPU,8G显存成功实战2048x2048的超大图。
看图,不说了,n b完事。当然因为我CPU比较拉夸,CPU单单最后一步转换就占用了大半的时间。总比纯CPU好。
纯原文参数时候的跑图数据在这里,太慢了,而且不能跑大图(原参数显存已经满了)。
本文参考了这篇知乎大佬的文章,同时感谢@椰羊❤️提供灵感。
https://zhuanlan.zhihu.com/p/601903035
绝非标题党。
A卡Windows用户请直接按原文大佬方法实操。注意仅针对VAE一项功能,DML的功能本身已经集成在频道1.7整合包里面,请勿重复修改。
我是N卡用户,那么我直接看这篇文章的重点:把VAE移动到CPU计算,可以直接解决最后潜空间图像转换成可见图像时爆显存的问题。(说人话:AI的草稿转成看得见的作品的时候,最占用显存,让CPU代劳可以节省宝贵的显存。)上图。
我已经测试过,尽管是A卡配置,完全按照原文配置依然是可以在N卡上运行的,但是比较慢,而且不能降低显存占用。修改位置上图。
processing.py第632行后,蓝色高亮区。
samples_ddim = samples_ddim.to(devices.dtype_vae).to("cpu")
x_samples_ddim = decode_first_stage(p.sd_model, samples_ddim)
lowvram.py第51行,蓝色高亮区。#
由于我是N卡用户,N卡能调用半精度性能,所以这里我对原文启动参数本身做了魔改。上图。
webui-user.bat,启动参数,蓝色高亮区。
--lowvram --no-half-vae
改好之后,显卡单步速度相对于原文参数大大提升,显存占用直接砍半,综合表现直接吊打纯CPU,8G显存成功实战2048x2048的超大图。
看图,不说了,n b完事。当然因为我CPU比较拉夸,CPU单单最后一步转换就占用了大半的时间。总比纯CPU好。
纯原文参数时候的跑图数据在这里,太慢了,而且不能跑大图(原参数显存已经满了)。