ComfyUI 底层 SD 绘图实战:文生图与图生图工作流调优、批量推理与踩坑记录

简介: 本文深度解析ComfyUI图生图在漫剧分镜中的实战痛点与解决方案,涵盖工作流复现难、denoise强度调控、8G显存OOM、角色一致性失控等7大问题,详解底层原理、标准工作流搭建、批量自动化脚本及故障排查,助力高效工业化生产。(239字)

一、实际使用中的痛点

我在做漫剧分镜的时候,大量用到 ComfyUI 图生图,踩过不少现实问题,并不是导入一个工作流 json 就万事大吉。

  1. 工作流不可复现:网上下载的 json 工作流,导入之后报错节点缺失,或者同样提示词,别人出图正常,自己画面完全不对。json 文件只保存节点连线和参数,不携带模型、LoRA、自定义节点,很多人误以为拿到 json 就拿到完整方案。
  2. 图生图重绘强度拿捏不准:denoise 重绘强度乱设置,要么图片几乎没有变化,要么直接把原图构图、人物全部改掉,相当于重新文生图,丢失原有分镜构图信息ComfyUI。
  3. 8G 显存频繁 CUDA OOM 闪退:同时加载 checkpoint、IPAdapter、ControlNet 多个模型,跑几张图就直接显存爆掉,只能重启 ComfyUI。
  4. 角色一致性失控:用图生图迭代分镜,人物五官、发型服饰不断漂移,明明参考同一张人设图,下一镜直接 “换脸”。单纯靠固定 seed 解决不了身份一致性问题。
  5. GUI 手动操作效率低:几十上百张漫剧分镜,一张张手动上传图片、改提示词、点生成,重复劳动大,缺少脚本自动化批量处理手段。
  6. 各种奇怪坏图:黑图、灰蒙蒙的图、肢体畸形,排查半天最后发现是 VAE 不匹配、模型文件损坏、分辨率超出模型训练范围。
  7. 集体模型资源请看这一篇文章:https://developer.aliyun.com/article/1772270?spm=a2c6h.13148508.setting.24.24dc4f0eQDlkv8

二、SD 底层:文生图与图生图核心原理

2.1 文生图底层链路

加载 Checkpoint 模型 → CLIP 编码正向、反向提示词 → 创建空 Latent 潜噪声张量 → KSampler 采样去噪 → VAE 解码器把潜空间张量还原为像素图片输出。

2.2 图生图底层链路(重点)

图生图和文生图最大区别,是潜张量来源不是空白噪声,而是由输入原图编码得到。

  1. Load Image 读取参考图片;
  2. VAE Encode:把像素图片压缩为 latent 潜空间张量,保留原图构图、光影、主体布局;
  3. 根据denoise_strength(重绘强度)向潜张量加入高斯噪声;
  • denoise 0.1‑0.3:轻微修改色彩、细节,构图人物几乎不动;
  • denoise 0.3‑0.6:漫剧最常用区间,修改画风、微调表情,保留整体构图;
  • denoise 0.6‑0.8:大幅度重绘画面,只保留大致布局;
  • denoise=1.0:完全等同于文生图,丢弃原图全部信息,不建议图生图场景使用。
  1. CLIP 编码提示词送入 UNet 做条件约束;
  2. KSampler 完成采样;
  3. VAE Decode 解码,输出最终图片。

关键点:图生图不是 “在原图上面涂抹”,是在潜空间里做噪声重采样。很多新手不理解这点,调参完全凭感觉。

三、ComfyUI 实操搭建标准图生图工作流

环境:Windows,RTX3060 8G,ComfyUI 官方原版,已经装好基础自定义节点 IP‑Adapter,ControlNet。 启动建议,8G 显存启动参数:python main.py --lowvram --use-pytorch-cross-attention,开启低显存模式,缓解 OOM 问题ComfyUI。

3.1 核心节点清单

  1. Load Checkpoint:加载 SD 底模;
  2. Load Image:加载需要重绘的原始参考分镜图;
  3. VAE Encode:对输入图片编码得到 latent;
  4. IPAdapter Apply(可选,漫剧必用):载入角色参考图,锁定人物五官身份;
  5. ControlNet Apply(可选):OpenPose/Canny 锁定姿态、构图;
  6. CLIP Text Encode:正向、反向提示词;
  7. KSampler:采样器,设置 denoise 重绘强度、采样步数、CFG;
  8. VAE Decode:解码出图;
  9. Save Image:保存输出结果。

3.2 漫剧场景参考参数(实测可用)

  • 分辨率:576×1024(9:16 竖屏)
  • sampler:euler a / dpmpp_2m_sde
  • steps:22‑28 步
  • CFG scale:5‑7,不要设置过高,过高容易畸形崩坏
  • denoise_strength:漫剧分镜迭代优先 0.4‑0.55
  • IP‑Adapter 权重:0.65‑0.75,兼顾角色身份和画面改动自由度,不要拉满 1.0,画面会僵硬固化。

反向提示词模板,漫剧通用:畸形,多指,缺指,扭曲五官,水印,文字,模糊,低画质,变形肢体,换脸。

3.3 工作流避坑小经验

  1. VAE 尽量和 checkpoint 配套,乱换 VAE 很容易出现发黑、泛灰图片;
  2. 8G 显卡不要同时加载多个 ControlNet 模型,用哪个加载哪个,不用的模型从内存卸载;
  3. IP‑Adapter 不能完全依赖,最好和角色 LoRA 一起配合,角色一致性效果会提升一大截;
  4. 不要盲目追求超高分辨率,SD1.5 原生适合 512‑768 区间,硬拉到 2K 极易出现肢体崩坏。

四、Python 脚本:调用 ComfyUI API 批量图生图

使用说明:先在 ComfyUI 画布手动调试好一套图生图工作流,保存为img2img_workflow.json,脚本读取该工作流模板,遍历本地原始分镜文件夹,批量执行图生图重绘,输出重绘后的图片。 依赖安装:pip install requests websocket-clientComfyUI 必须保持开启,默认端口 8188。

import os
import json
import websocket
import requests
import uuid
COMFYUI_HOST = "127.0.0.1:8188"
CLIENT_ID = str(uuid.uuid4())
WORKFLOW_JSON_PATH = "./img2img_workflow.json"
INPUT_IMG_DIR = "./source_frames/"    # 需要重绘的原始分镜图片目录
OUTPUT_IMG_DIR = "./img2img_output/"
os.makedirs(OUTPUT_IMG_DIR, exist_ok=True)
def load_workflow_template(json_path):
    with open(json_path, "r", encoding="utf‑8") as f:
        return json.load(f)
def queue_prompt(prompt_workflow):
    payload = {"prompt": prompt_workflow, "client_id": CLIENT_ID}
    res = requests.post(f"http://{COMFYUI_HOST}/prompt", json=payload, timeout=300)
    return res.json()
def get_result_images(ws, prompt_id):
    while True:
        msg_raw = ws.recv()
        msg = json.loads(msg_raw)
        if msg["type"] == "executed":
            data = msg["data"]
            if data["prompt_id"] == prompt_id and data["node"] is None:
                output_data = data["outputs"]
                for node_id in output_data:
                    for img_info in output_data[node_id]["images"]:
                        img_bin = requests.get(f"http://{COMFYUI_HOST}/view/{img_info['filename']}").content
                        return img_bin
def get_input_image_list(folder):
    file_list = []
    for fname in sorted(os.listdir(folder)):
        ext = fname.lower().split(".")[-1]
        if ext in ["png","jpg","jpeg"]:
            file_list.append(os.path.join(folder, fname))
    return file_list
if __name__ == "__main__":
    workflow_template = load_workflow_template(WORKFLOW_JSON_PATH)
    img_path_list = get_input_image_list(INPUT_IMG_DIR)
    print(f"待处理图片总数:{len(img_path_list)}")
    ws_conn = websocket.create_connection(f"ws://{COMFYUI_HOST}/ws?clientId={CLIENT_ID}")
    for idx, img_file in enumerate(img_path_list):
        # 注意:这里根据你自己工作流,修改Load Image节点ID,示例假设Load Image节点id为"4"
        workflow_template["4"]["inputs"]["image"] = img_file
        resp = queue_prompt(workflow_template)
        pid = resp["prompt_id"]
        print(f"正在处理第{idx+1}张:{os.path.basename(img_file)},prompt_id:{pid}")
        img_bytes = get_result_images(ws_conn, pid)
        save_name = os.path.basename(img_file)
        save_full = os.path.join(OUTPUT_IMG_DIR, save_name)
        with open(save_full, "wb") as fw:
            fw.write(img_bytes)
        print(f"✅完成输出:{save_full}")
    ws_conn.close()
    print("全部图生图批量任务执行结束")

注意:脚本里面workflow_template["4"]的节点 ID,需要替换成你自己 json 工作流中Load Image节点的真实 ID,否则脚本不会替换输入图片,一直跑同一张图。

五、FFmpeg 配套指令(重绘后分镜简单处理)

图生图批量输出完图片序列之后,经常需要简单预处理,做画面裁剪、转视频,适配漫剧生产。

# 1.批量统一图片亮度/缩放(单张示例,可套脚本循环)
ffmpeg -y -i ./img2img_output/frame_000.png -vf scale=576:1024 -q:v 95 fixed_frame_000.png
# 2.图片序列转测试短视频,看分镜连贯效果
ffmpeg -y -framerate 3 -i ./img2img_output/frame_%03d.png -c:v libx264 -r 24 pix_fmt yuv420p test_preview.mp4

六、常见故障排查(来自本人实际调试记录)

表格

现象 可能原因 解决办法
图生图出来几乎和原图一模一样 denoise 重绘强度设置过低 漫剧迭代建议调到 0.4‑0.55 区间测试
图生图之后构图完全大变,人物消失 denoise 设置接近 1.0 降低 denoise;增加 ControlNet Canny/OpenPose 锁定构图姿态ComfyUI
生成黑图、画面灰蒙蒙一片 VAE 与模型不匹配;模型文件损坏;分辨率过大 更换配套 VAE;重新下载 checkpoint;降低输出分辨率
8G 显卡跑一会 CUDA out of memory 同时加载过多大模型;没有开启低显存模式 启动增加--lowvram参数;不用的 ControlNet/IP‑Adapter 及时卸载;不设置 batch 批量并发;虚拟内存放 NVMe 固态ComfyUI
图生图迭代分镜,人物不停变脸 只靠 seed 固定,缺少角色特征约束 使用 IP‑Adapter + 角色 LoRA,统一角色参考图,每一轮图生图都带上角色特征注入,不能仅靠提示词描述长相阿里云开发...
导入网上下载的工作流 json,报红色节点缺失 本地缺少对应自定义节点 在 ComfyUI 管理器安装缺失节点;不要只拷贝 json,确认模型、LoRA 齐全再运行
画面大量畸形肢体 CFG 数值过高,采样步数不足,denoise 过高 CFG 控制 5‑7,steps≥22,denoise 不要超过 0.8;完善反向提示词过滤畸形元素

七、方案对比:ComfyUI 图生图 VS 一体化 AI 绘图工具

表格

对比项 ComfyUI SD 底层绘图(图生图) 一体化封装绘图工具
部署配置 需要手动安装依赖、自定义节点,需要调启动参数优化显存 开箱即用,不用处理底层节点逻辑
参数可控度 全部底层参数暴露:denoise、采样器、VAE、IP 权重、ControlNet 权重,自由度极高 参数做上层封装,底层潜空间相关选项少
批量自动化 需要自己写 Python 调用 API,上手有一定门槛 部分自带批量功能,但定制化弱
角色一致性能力 IPAdapter+ControlNet+LoRA 多层组合,可深度调参 功能有,但可调节颗粒度不足
硬件适配 8G 显存 需要手动开启 lowvram,管理模型加载卸载 内部自动做显存调度,对小白友好
适合人群 需要做漫剧工业化迭代、需要深度调画面效果,愿意花时间调试的技术向创作者 快速出图,不想接触底层节点的普通用户

八、FAQ

Q:denoise 重绘强度是不是越低越好?A:不是。denoise 太低,模型几乎没有修改空间,做画风迁移、表情修改完全不起效果;太高直接丢失原图构图。漫剧分镜迭代优先 0.4‑0.55 区间做测试,根据输出结果上下微调 0.05。

Q:固定 seed 能不能保证图生图角色不变?A:不能。seed 只能保证噪声初始值一致,SD 模型本身没有 “人物身份记忆”。想要角色不变,必须 IP‑Adapter、LoRA、ControlNet 配合使用,单纯固定 seed 效果很有限。

Q:网上下载的 ComfyUI 工作流 json,导入之后直接就能用于批量漫剧生产吗?A:不能。json 只保存节点连线。你必须确认本地拥有一模一样版本的底模、LoRA、ControlNet 模型、自定义节点,否则会出现节点报错或者画面效果完全不一样。拿到 json 之后一定要少量图片测试,确认效果,再跑批量任务。

Q:8G 显卡做大量图生图批量处理,有什么实操建议?A:开启 lowvram 启动参数;串行处理,不要并发多张;不用的模型及时卸载;虚拟内存放在 NVMe 固态硬盘;分辨率不要盲目拉高,优先 576×1024 这类适合 8G 显存的尺寸。

Q:图生图黑图怎么快速定位问题?A:分步排查:①换一套 VAE 测试;②降低分辨率;③更换 checkpoint 底模;④检查模型文件是否完整;⑤看 ComfyUI 后台控制台报错日志,很多问题控制台会打印关键信息。

九、总结

ComfyUI 的图生图不是一个点一下就完事的黑盒工具,本质是操作 SD 潜空间的一套节点流水线。很多人踩坑,根源是不理解 denoise 重绘强度、VAE、IP‑Adapter 这些底层组件的作用,拿到别人的 json 直接期望 “一键量产”。

对于漫剧项目来说,图生图主要用于分镜画风统一、老分镜修复、表情微调。实际项目流程应该是:少量图片调试工作流、调通参数,确认角色一致性、画面效果达标之后,再上 Python 脚本做批量推理。8G 显存的机器,一定要重视显存优化,合理使用 lowvram 模式,控制模型常驻内存数量,避免频繁 OOM 闪退。

相关文章
|
10天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
3810 15
|
10天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
4059 48
|
11天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1893 6
|
5天前
|
云安全 人工智能 安全
|
5天前
|
存储 弹性计算 人工智能
2026 年阿里云双十一活动入口攻略,新客服务器优惠通道、三大会场入口梳理
综合来看,2026年阿里云双十一活动入口清晰: 阿里云轻量应用服务器、阿里云ECS云服务器、阿里云GPU云服务器、阿里云百炼大模型服务平台 活动会场、综合权益中心、99计划专场三大入口覆盖服务器、AI权益与续费特价;新用户通过控制台首页banner、权益中心、产品页三处路径进入专属专场,老用户通过控制台弹窗和费用中心权益中心进入老客专区,企业用户做企业实名后解锁专属满减与阶梯折扣。
816 0
|
5天前
|
Linux 开发工具 iOS开发
2026最新codex下载安装保姆级使用教程(下载+安装+登录+使用,含所有历史版本)
本文详解OpenAI Codex国内快速上手指南:提供Win/macOS/Linux全平台免安装包、npm/Homebrew等多方式安装、账号/API Key双登录、简体中文切换,覆盖下载、安装、汉化、使用及高频避坑(如微软商店失败、npm超时等),10分钟即可跑通。
959 1
|
11天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
2132 6
|
云安全 安全 网络安全
|
24天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
4218 56