ComfyUI中MuseTalk插件显存不够的解决方法

我的显卡是4060ti 8G的显卡,我看他们有的可以用,但是我不能够使用,所以就研究了一下

1、打开ComfyUI直接显存爆到7G的情况

这个原因是因为还没有跑模型的时候,直接就预先加载了模型了,把ComfyUI-aki-v1.3\custom_nodes\ComfyUI-MuseTalk这个文件夹里面的nodes.py第34行的模型加载的代码

audio_processor,vae,unet,pe = load_all_model()

这一行代码,放到76行左右的run函数里面

    def run(self, video_path,audio_path,bbox_shift,batch_size):
        audio_processor, vae, unet, pe = load_all_model()

2、运行ComfyUI的MuseTalk的时候显示显存不够

也就是常说的CUDA out of memory,可以使用半精度的方式量化模型。
找到这个文件ComfyUI-aki-v1.3\custom_nodes\ComfyUI-MuseTalk\musetalk\utils\utils.py
修改28-30的这三行代码

    vae = VAE(model_path = f"{MuseVCheckPointDir}/sd-vae-ft-mse/",use_float16=True)
    unet = UNet(unet_config=f"{MuseVCheckPointDir}/musetalk/musetalk.json",
                model_path =f"{MuseVCheckPointDir}/musetalk/pytorch_model.bin",use_float16=True)

use_float16=True,添加这个参数就可以了,因为作者考虑到了大家显存不够的情况,但是,考虑了一半(痛哭)
还剩下最后的一步:
ComfyUI-aki-v1.3\custom_nodes\ComfyUI-MuseTalk\nodes.py的160行代码里面的

pred_latents = unet.model(latent_batch, timesteps, encoder_hidden_states=audio_feature_batch).sample

这一个代码的latent_batch和encoder_hidden_states=audio_feature_batch的参数一个是float16和float32的,是不能够直接矩阵相乘的会爆这个错误:

Error occurred when executing MuseTalkRun:
expected mat1 and mat2 to have the same dtype, but got: float != struct c10::Half

修改第159行的这一句就可以了

audio_feature_batch = audio_feature_batch.to(torch.float16)

结语

这个量化的方法很暴力,如果大家有更好的量化方法,请告诉我一声喔,谢谢大家啦

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值