ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ComfyUI 多GPU配置实战指南:3个决策让双卡真正跑起来

ComfyUI 多GPU配置实战指南:3个决策让双卡真正跑起来 ComfyUI 多GPU配置实战指南3个决策让双卡真正跑起来【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI本文以 ComfyUI 为例从双卡只用一张、显存不够、出图慢三个真实场景出发讲清 ComfyUI 多GPU配置 的判断路径、生效验证方法和排错手法面向刚入手多卡机器的用户。场景双卡机器为什么只跑了一张你装了两张 12GB 的卡跑 ComfyUI 时发现三件事出一张 1024×1024 的图要等三四分钟进度条停在采样阶段nvidia-smi里 0 号卡占用 90%1 号卡几乎为 0想加大分辨率直接报显存溢出Out of memory这不是硬件问题而是 ComfyUI 的默认行为所有模型默认只加载到一张默认卡上其余的卡对这次生成毫无贡献。多卡配置要解决的就是让第二张卡也干活这件事而它不需要什么复杂架构本质上是三个独立决策。自检三问先判断你该怎么配按下面三个问题走一遍你的配置方案基本就定了。问一ComfyUI 看得到几张卡默认情况下ComfyUI 只把第一张卡当作工作设备。启动参数里有一个开关决定实例可见的设备范围python main.py --cuda-device 0,1值可以是逗号分隔的编号也可以是all不写这个参数时等价于只用默认的第一张卡验证方式启动日志和设备枚举里应该出现两张卡nvidia-smi也能看到 ComfyUI 进程挂在两卡之下。问二哪张卡当主力如果两张卡不同型号比如一张 24GB 跑 UNet一张 8GB 跑文本编码和 VAE用--default-device指定主力卡其余卡保持可见python main.py --cuda-device 0,1 --default-device 0这一步只影响模型默认落哪张卡不代表小模型也一定去另一张卡——那要靠节点级别控制见问三。问三工作流里模型放在哪张卡前两个参数解决进程层面模型层面靠 ComfyUI 自带的多卡节点源码在comfy_extras/nodes_multigpu.py节点作用选项Select Model Device指定 UNet 所在卡default / cpu / gpu:0 / gpu:1Select CLIP Device指定文本编码器所在卡同上Select VAE Device指定 VAE 所在卡default / gpu:N无 cpuMultiGPU CFG Split把同一个模型克隆到多张卡并行采样max_gpus 参数控制卡数两条典型路线异构双卡分工UNet 留在 gpu:0CLIP 和 VAE 用 Select 节点挪到 gpu:1把主力卡的显存腾出来给采样同构双卡加速在模型加载后插入 MultiGPU CFG SplitComfyUI 会把模型深克隆到另一张卡按两卡算力比例分配采样工作单元分配逻辑见comfy/multigpu.py的 load_balance_devices注意Select 系列节点要放在任何消费该模型的节点如采样器之前否则可能拿到已被改过的旧副本MultiGPU CFG Split 则建议放在 compile、attention 切换等修改模型对象的节点之后。关键参数速查真正影响结果的启动参数其实不多参数干什么用什么时候加--cuda-device 0,1声明实例可用的卡多卡必加--default-device 0指定默认落卡双卡型号不同--highvram模型用完后留在显存里显存充足、频繁切换模型--lowvram/--novram更激进的卸载策略单卡显存紧张--fp8_e4m3fn-unetUNet 以 FP8 精度存放ComfyUI 显存不足时的首选压缩--fp16-vae/--bf16-vae降低 VAE 精度占用VAE 解码爆显存--reserve-vram 1给系统预留 1GB浏览器开得多、偶发 OOM另外两个事实值得知道新版 ComfyUI 默认启用动态显存dynamic VRAM模型按实际余量自动上下卡--lowvram在开启动态显存时基本不起作用节点里的max_gpus不是越多越快每加一张卡模型就多深克隆一份显存占用近似翻倍效果验证怎么确认配置生效了不看感觉看数据看两卡是否同时动。生成过程中另开终端跑nvidia-smi健康的多卡状态是两张卡的显存占用都明显上升、GPU-Util 都高于 0。如果只有一张卡在动说明还停在默认单卡模式看显存是否按预期驻留。加了--highvram后模型用完显存数字不会掉下来不加则用完回落这是模式命中的直接证据看日志。启用 MultiGPU CFG Split 后第二次运行同类工作流时日志会出现复用已加载克隆Reusing loaded multigpu deepclone的信息说明克隆没重复创建性能预期要务实CFG 拆分主要帮采样步数多、分辨率大的任务一张 512×512、20 步的图单卡反而可能更快因为并行调度和克隆的开销会吃掉收益。快速排错现象 1双卡配置后出图比单卡还慢原因任务太小或两卡规格差异大导致快卡等慢卡各卡按相对速度分配工作量完成时间由最慢那张决定。 修复小图单跑差异大的双卡把大模型固定放在快卡--default-device Select 节点慢卡只承担 CLIP/VAE。现象 2多卡之后报 ComfyUI 显存不足原因模型被克隆到每张卡总显存需求 卡数 × 模型体积比单卡更吃紧。 修复把max_gpus降回 1或给主力卡加--fp8_e4m3fn-unet压缩而不是继续堆卡。现象 3别人机器上的工作流里写着gpu:1到我机器上报错或直接忽略原因Select 节点在目标设备不存在时不会让工作流失败而是记录一条日志后原样放行模型实际留在了默认卡。 修复查看启动日志里的 not available, passing through 字样确认本机卡数后改节点参数这属于跨机器迁移工作流的正常保护行为。收束ComfyUI 多GPU配置 的核心就是三件事--cuda-device让进程看见卡、Select 系列节点决定模型落卡、MultiGPU CFG Split 决定要不要拆采样。先用双卡把这三层验证跑通再考虑更多卡。深入细节可看项目根目录的README.md与comfy/multigpu.py、comfy_extras/nodes_multigpu.py源码社区里也能找到更多实战讨论。【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表