comfyUI-MuseTalk的参数设置
目录
comfyUI-MuseTalk的参数设置
一、ComfyUI-VideoHelperSuite
二、comfyUI-MuseV合成的参考视频
2.1、什么时候会用到MuseV?
2.2、MuseV特别消耗系统内存
2.2.1、测试图片序列的像素比
2.2.2、影响运动范围和生成结果的参数
三、comfyUI-MuseTalk参考视频的参数
3.1、造成爆内存的可能情形
3.2、正确的设置,不会造成爆内存
3.2.1、原始参考视频的要求
3.2.1.1、参考视频短边的帧像素比
3.2.1.2、视频像素比、帧率及视频长度对参考视频动作的影响的基本原理
3.2.1.3、museV文生参考视频及拍摄真人视频对参考视频动作的影响程度
四、本期关联技术博文
一、ComfyUI-VideoHelperSuite
这个一个与视频工作流相关的I/O节点。
GitHub - Kosinkadink/ComfyUI-VideoHelperSuite: Nodes related to video workflows
它可以:
- 加载视频
将视频文件转换为一系列图像
- 加载图像序列
从子文件夹加载所有图像文件。选项与加载视频类似。
- 视频合并
将一系列图像组合成输出视频
如果提供了可选的音频输入,它也将被组合到输出视频中。
- 加载音频
提供一种加载独立音频文件的方法。
存在许多用于管理潜伏数据的实用节点。每个节点都有一个用于处理图像的等效节点。
- 拆分批次
将潜在变量分为两组。第一组split_index潜在变量进入输出 A,其余组进入输出 B。如果split_index输入的潜在变量少于第一组潜在变量,则所有潜在变量均会传递至输出 A,而输出 B 为空。
- 合并批次
将两组潜在变量合并为一个输出。输出的顺序是 A 中的潜在变量,然后是 B 中的潜在变量。
如果输入组的大小不同,则节点会在合并之前提供重新调整潜在变量的选项。
- 选择每 N 个
每个输入中的第一个select_every_nth被传递,其余的被丢弃
- 获取计数
- 重复批次
- 视频预览
加载视频(上传)、加载视频(路径)、加载图像(上传)、加载图像(路径)和视频合并提供动画预览。带有预览的节点在右键单击时提供附加功能。
二、comfyUI-MuseV合成的参考视频
2.1、什么时候会用到MuseV?
当你并非实际拍摄的参考动作视频,而是拍照;或拍摄的参考动作图片需要用其它的视频人物动作来做动作替换;或拍摄的参考动作视频需要更换背景和场景后再次进行处理。
2.2、MuseV特别消耗系统内存
MuseV非常吃系统内存,需要特别配置好运行参数进行调优推理。
2.2.1、测试图片序列的像素比
短边:480 512 640 720 1080 1080 448(test_data_width)
长边:720 768 960 1080 1620 1920 704(test_data_height)
2.2.2、影响运动范围和生成结果的参数
video_guidance_scale
:类似于 text2image,控制 cond 和 不控制uncond 之间,影响较大,默认为3.5
。详见2.2所述。use_condition_image
:是否使用给定的第一帧进行视频生成, 默认True
。redraw_condition_image
:是否重新绘制给定的第一帧图像。video_negative_prompt
:配置文件中全negative_prompt
的缩写。默认为V2
。
三、comfyUI-MuseTalk参考视频的参数
- image_load_cap(frame_load_cap帧的读取上限):将返回的最大图像数量。这也可以被认为是最大批次大小。
- skip_first_images:要跳过多少张图像。通过将此数字增加 image_load_cap,您可以轻松地将一长串图像分成多个批次。
- select_every_nth:允许在每个返回的帧之间跳过一些图像。
- crf:描述输出视频的质量。数字越低,视频质量越高,文件大小越大,而数字越高,视频质量越低,文件大小越小。缩放比例因编解码器而异,但视觉无损输出通常在 20 左右,默认值=19。
- frame_rate:每秒显示多少输入帧。更高的帧速率意味着输出视频播放速度更快且持续时间更短。对于 AnimateDiff,此值通常应保持为 8,或当启用了 Load Video 节点的 force_rate的话,两者应当相等;最终的音视频输出帧率,也应当匹配。
3.1、造成爆内存的可能情形
3.2、正确的设置,不会造成爆内存
3.2.1、原始参考视频的要求
3.2.1.1、参考视频短边的帧像素比
常见的帧像素比例:
短边:480 512 640 720 1080 1080 448(test_data_width)
长边:720 768 960 1080 1620 1920 704(test_data_height)
这些都是符合要求的:
帧率越大,动作越连贯;帧率越小,动作越迟缓; 总帧数和帧率决定了当前配音的时长,是否被截断后输出,它影响到最终合成输入的音视频长度。
3.2.1.2、视频像素比、帧率及视频长度对参考视频动作的影响的基本原理
由于参考视频在拆解视频的每一帧后,需要对其“唇形”,这个过程需要使用系统内存对内存流进行处理,内存流的的对齐是连续的,即:当总视频长度对应的所有帧都必须正确的处理完毕后,将它们在内存中进行流的合并。如果操作系统的内存不够,将会导致错误。
那么,那些因素是影响参考视频”对齐“及“合并”的内存流大小的呢?
一是符合上述像素比的视频的短边的像素值s-px,s-px越大就越消耗内存;二是为了保证动作的连贯性和完整性,“参考视频”需要保证足够的时长,该视频的原始帧率会导致输出到缓存中的帧图片的数量的多少,即总批次数batch-sizes(这里简称bss);三就是可以强制设置输出帧率,并设置分批次batch-size(这里简称bs),用以调整将较长时长(这里简称vl)的参考视频切分成多个批次(这里简称bl)进行处理,bl = vl / bs ,处理完毕后再进行合并。在二和三中,无论哪种方式,所需的内存都不能超过系统内存的可用数。
最后,参考视频的帧率ref-fps,经验值,英伟达显存等于16G的显卡芯片,1帧 <= ref-fps <= 12帧;总帧数除以帧数,应当能够整除;一般帧率数值为1、2、4、8、12。 因此生成的参考视频或拍摄的参考视频,最好用剪映或秒剪进行前期处理,最好秒数为整数。
3.2.1.3、museV文生参考视频及拍摄真人视频对参考视频动作的影响程度
museV文生参考视频,既要处理脸部表情,又要处理随机动作,还要处理唇形对齐,所以按照3.2.1.2中所述的基本原理,它对系统内存的要求更加苛刻;而如果连续动作的参考视频是实拍的,就可以利用bl,每个批次处理1个较短的连续动作(一般 1秒 <= bl <= 4秒,比较适合),再给每个bl进行AI训练推理的配音;最终,将多段视频,在剪映或秒剪中进行视频剪辑的后期处理即可。否则,你将付出的是更大的显卡芯片cuda和系统内存的高昂开销。
四、本期关联技术博文
《ComfyUI-MuseTalk部署依赖mmcv》
《Win10环境将Docker部署到非系统盘》