一、引言
Stable Diffusion 图生图,区别于文生图从零生成图像,核心逻辑是将参考图片经过 VAE 编码器压缩为潜空间 Latent 张量,再结合降噪强度完成迭代去噪生成,降噪参数直接控制原图保留程度,是商业 AI 视觉生产最高频的能力。ComfyUI 完全暴露 SD 底层节点,开发者可以自由组装 VAE、采样器、ControlNet、LoRA 加载节点,规避封装工具带来的黑盒限制,非常适合需要稳定复现效果的商业项目。
单人小规模创作阶段,设计师手动导入 json 工作流,调试参数导出图片就可以满足需求。当团队并行多个商业项目,多人共享工作流模板、批量做角色迭代、对外交付工作流资产时,传统操作模式会暴露出大量问题:
- 工作流不可复现:团队成员之间流转 json 工作流,经常出现自定义节点缺失、模型 LoRA 版本不匹配,同一套工作流在不同机器出图效果完全不一致;
- 资产无版本管控:图生图工作流迭代版本随意保存,缺少版本标记,分不清测试版、正式生产版;交付合作方经常给到废弃的旧工作流;
- 批量处理能力弱:原生 GUI 界面只支持单任务执行,大批量参考图图生图只能手动重复操作,人力成本高;
- 交付链路缺失:对外交付整套工作流资产时,需要手动整理工作流 json、依赖模型清单、参考样图、参数说明,缺少标准化交付文案与交付记录;
- 元数据丢失风险:导出图片后,PNG 内部嵌入的 ComfyUI 工作流元数据容易被图片编辑软件清除,后续无法回溯生成参数。
工业化落地 ComfyUI,核心目标不是追求复杂的集群部署,而是建立标准化资产规范,打通 “工作流版本管理‑本地批量调用‑资产归档‑对外交付” 完整链路,充分释放 SD 底层节点化架构的生产能力。网盘仅作为工作流、样图、文档的存储分发介质,方案核心聚焦工作流本身的可复现性与团队协作流程。
二、ComfyUI 绘图资产规范化体系设计
2.1 资产分类定义
将一套完整的 ComfyUI 图生图项目资产划分为四大类别,所有生产项目统一遵循分类标准:
表格
| 资产类型 | 内容说明 | 版本管控规则 |
| Workflow 工作流资产 | ComfyUI 导出 json 节点文件,图生图基础流、ControlNet 深度 / 线条约束流、超分修复流 | V01 测试版 / V02 调优版 / Release 正式生产版 |
| Model 依赖资产 | Checkpoint 大模型、LoRA 角色 / 风格模型、ControlNet 预处理器权重 | 记录模型文件名、哈希值、下载来源,不重复存储大模型文件 |
| Reference 参考资产 | 输入参考图、角色人设图、场景草稿、效果对比样例图片 | 按批次编号管理,保留原始输入素材 |
| Doc 文档资产 | 参数调校说明、降噪强度参数表、自定义节点依赖清单、部署排坑文档 | 跟随工作流版本同步更新 |
2.2 标准化目录结构
该目录结构已经在配套素材包落地,团队所有 ComfyUI 项目资产包强制统一目录,保障不同人员打开资产包结构完全一致:
ComfyUI绘图工作流,SD底层绘图,图生图,出画面/ ├── 01_工作流JSON/ │ ├── Img2Img_Base_V02.json #基础图生图工作流 │ ├── Img2Img_ControlNet_Depth_V01.json #深度约束图生图 │ └── Release_Production_V1.json #对外交付正式版工作流 ├── 02_模型依赖清单/ │ ├── model_dependency.csv #模型名称、哈希、来源地址 │ └── custom_nodes_require.txt #第三方自定义节点列表 ├── 03_参考与样例图片/ │ ├── input_reference/ #输入参考素材 │ └── output_sample/ #工作流输出样例效果图 └── 04_项目文档/ ├── 参数调优说明.md └── 环境部署排坑指南.docx
文件命名统一规范:[工作流类型]-[版本号]-[更新日期].json,示例:Img2Img_Base‑Release‑V1‑20261026.json。
2.3 版本与可复现策略
- 对外交付只提供 Release 正式版工作流,测试版本保留本地归档,不对外分发;
- 每一个正式工作流配套完整依赖清单,记录模型文件名、哈希,避免出现缺模型无法运行的问题;
- 工作流迭代修改后版本号递增,旧版本文件保留归档目录,不直接覆盖;
- 输出成品图片统一保留带元数据的原始 PNG 副本,用于后续回溯生成节点参数;
- 废弃工作流移入
_archive归档目录,不直接删除,方便项目回溯。
目录与版本规范是整套方案的前置基础,如果资产本身混乱,批量调用、交付工具很难发挥实际价值。
三、技术方案整体设计
3.1 模块定位
整套方案分为两大模块:
- ComfyUI API 批量调用模块:基于 ComfyUI 本地 Web API 接口,读取标准化工作流 json,批量加载参考图片,动态修改提示词、降噪强度,实现图生图批量任务执行,不需要操作 GUI 界面;
- 资产交付辅助模块:完成标准化资产包的交付文案生成、交付台账记录,用于对内对外分发整套 ComfyUI 工作流素材。
技术选型说明:批量生成直接复用 ComfyUI 官方开放本地 HTTP API,不需要逆向;交付模块采用 Selenium 浏览器自动化,网盘仅作为存储载体,可以替换为其他存储介质。
边界说明:API 调用依赖本地 ComfyUI 服务正常运行;自动化交付模块依赖网页 DOM 元素,存储平台前端改版需要微调选择器。
3.2 完整业务流程
- 设计师在 ComfyUI GUI 调试工作流,输出 Release 版本 json,按照规范整理整套资产目录;
- 将资产包上传存储介质,维护模型依赖文档;
- 本地启动 ComfyUI 服务,使用 Python 脚本调用 API 执行批量图生图任务;
- 需要对外交付时,运行交付脚本生成标准化交付文案,输出 Excel 交付台账;
- 合作方获取资产包,对照依赖清单部署模型、自定义节点,导入 json 复现出图;
- 后期可扩展巡检脚本,校验资产分享链接有效性。
四、环境依赖与完整源码
4.1 环境准备
Python ≥3.8,本地正常启动 ComfyUI 服务,默认本地地址http://127.0.0.1:8188
pip install requests selenium pyperclip openpyxl
- requests:调用 ComfyUI 本地 API 接口
- selenium、pyperclip、openpyxl:用于资产交付模块
4.2 第一部分:ComfyUI 图生图批量调用源码
保存为comfyui_img2img_batch.py,实现读取工作流 json,批量参考图图生图,动态修改正负提示词、降噪强度。
import requests import json import os # =====================配置区===================== COMFY_API_URL = "http://127.0.0.1:8188/prompt" WORKFLOW_JSON_PATH = "./01_工作流JSON/Img2Img_Base_V02.json" INPUT_IMG_FOLDER = "./03_参考与样例图片/input_reference" OUTPUT_FOLDER = "./batch_output" POSITIVE_PROMPT = "高清,精细细节,电影光影,8k画质" NEGATIVE_PROMPT = "模糊,畸形,水印,低分辨率,扭曲肢体" DENOISE_STRENGTH = 0.65 #图生图降噪强度0‑1,数值越高改动越大 # ================================================ def load_workflow_json(file_path): with open(file_path,"r",encoding="utf‑8") as f: return json.load(f) def modify_workflow(workflow,img_name,pos_prompt,neg_prompt,denoise): """动态修改工作流:替换输入图片、提示词、降噪强度""" for node_id,node in workflow.items(): #替换加载参考图节点 if node["class_type"] == "LoadImage": node["inputs"]["image"] = img_name #修改正向提示词 if node["class_type"] == "CLIPTextEncode" and "positive" in node["_meta"]["title"].lower(): node["inputs"]["text"] = pos_prompt #修改负向提示词 if node["class_type"] == "CLIPTextEncode" and "negative" in node["_meta"]["title"].lower(): node["inputs"]["text"] = neg_prompt #修改采样器降噪强度 if node["class_type"] == "KSampler": node["inputs"]["denoise"] = denoise return workflow def submit_task(workflow): payload = {"prompt":workflow} resp = requests.post(COMFY_API_URL,json=payload) return resp.json() if __name__ == "__main__": os.makedirs(OUTPUT_FOLDER,exist_ok=True) base_workflow = load_workflow_json(WORKFLOW_JSON_PATH) img_list = [f for f in os.listdir(INPUT_IMG_FOLDER) if f.lower().endswith((".png",".jpg","jpeg"))] print(f"待处理图片数量:{len(img_list)}") for filename in img_list: print(f"正在提交任务:{filename}") wf = modify_workflow(json.loads(json.dumps(base_workflow)),filename,POSITIVE_PROMPT,NEGATIVE_PROMPT,DENOISE_STRENGTH) res = submit_task(wf) print(f"任务ID:{res.get('prompt_id')},提交成功,请在ComfyUI查看生成结果") print("全部任务提交完成")
使用提示:需要把待处理图片放入 ComfyUI 的 input 目录,API 才可以读取图片;生成结果默认输出 ComfyUI output 文件夹。
4.3 第二部分:资产包自动化交付脚本
保存为comfyui_delivery.py,用于生成标准化交付文案、输出交付台账。
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from openpyxl import Workbook import pyperclip import time import datetime # =====================配置区===================== FOLDER_NAME = "ComfyUI绘图工作流,SD底层绘图,图生图,出画面" WORKFLOW_VERSION = "Release‑V1正式版" WEB_PAN_URL = "https://pan.quark.cn/" OUTPUT_TXT = "./工作流交付文案.txt" OUTPUT_EXCEL = "./工作流资产交付台账.xlsx" WAIT_SECONDS = 15 # ================================================ def init_browser(): chrome_opt = webdriver.ChromeOptions() chrome_opt.add_argument("--start‑maximized") # chrome_opt.add_argument(r"--user‑data‑dir=./chrome_profile") #持久登录 driver = webdriver.Chrome(options=chrome_opt) return driver def get_share_link(driver): wait = WebDriverWait(driver,WAIT_SECONDS) driver.get(WEB_PAN_URL) print("[提示]浏览器已打开,请完成网盘登录,登录完成脚本继续执行") time.sleep(7) folder_elem = wait.until(EC.presence_of_element_located((By.XPATH,f'//div[contains(text(),"{FOLDER_NAME}")]'))) folder_elem.click() time.sleep(2) share_btn = wait.until(EC.presence_of_element_located((By.XPATH,'//span[text()="分享"]'))) share_btn.click() time.sleep(2) copy_btn = wait.until(EC.presence_of_element_located((By.XPATH,'//button[contains(text(),"复制链接")]'))) copy_btn.click() time.sleep(1) return pyperclip.paste() def build_delivery_text(link): content = f"""【ComfyUI绘图资产交付】版本:{WORKFLOW_VERSION} 我给你分享了AI绘图资产包「{FOLDER_NAME}」,内含SD图生图工作流JSON、模型依赖清单、参考样图、部署文档。 复制整段,打开夸克APP即可获取全部资产: 链接:{link} 交付说明:本包为正式Release版本,使用前请对照模型依赖清单准备权重与自定义节点;工作流仅限授权合作方内部使用。""" return content def save_record(text,link): with open(OUTPUT_TXT,"w",encoding="utf‑8") as f: f.write(text) wb = Workbook() sheet = wb.active sheet.title = "交付记录" sheet.append(["资产包名称","工作流版本","分享链接","交付文案","交付时间"]) sheet.append([FOLDER_NAME,WORKFLOW_VERSION,link,text,datetime.datetime.now().strftime("%Y‑%m‑%d %H:%M:%S")]) wb.save(OUTPUT_EXCEL) print(f"\n✅交付文件输出完成:\n文案文件:{OUTPUT_TXT}\n台账文件:{OUTPUT_EXCEL}") if __name__ == "__main__": browser = init_browser() try: share_url = get_share_link(browser) delivery_text = build_delivery_text(share_url) print("\n====生成交付文案====") print(delivery_text) save_record(delivery_text,share_url) except Exception as e: print(f"\n❌执行异常:{str(e)}") finally: input("\n按回车关闭浏览器窗口") browser.quit()
五、落地局限与迭代优化方向
5.1 当前方案局限
- API 批量调用依赖本地 GPU 算力与 ComfyUI 服务,不支持分布式集群;工作流 json 内部节点发生变更时,需要同步修改脚本节点匹配逻辑;
- 自动化交付模块依赖网页 DOM 选择器,存储平台 UI 更新后 XPATH 会失效,需要维护适配;
- 缺少自动校验工作流完整性的能力,无法自动检测 json 内缺失模型节点;
- 没有做任务队列,大批量图片提交没有失败重试机制。
5.2 中长期迭代路线
- 工作流校验工具:开发脚本读取 json 工作流,自动解析里面用到的模型、LoRA、自定义节点,和依赖清单比对,提前检测缺失资源;
- 异步任务队列:增加任务队列,支持任务失败重试、任务状态持久化,适合上百张图片大规模图生图业务;
- 元数据提取归档:批量读取输出 PNG 图片内部嵌入的 ComfyUI 元数据,导出保存 json,防止元数据丢失;
- 权限分级交付模板:区分内部研发、外包合作方两种交付文案模板,支持设置资产分享有效期;
- 巡检脚本扩展:定时读取交付台账,检测资产分享链接是否失效,输出告警清单。
六、落地实践经验和避坑要点
结合大量 ComfyUI 商业项目落地经验,总结团队高频踩坑点:
- 可复现优先于效果:很多团队拿到好看的工作流 json 直接交付,但是缺少模型哈希、自定义节点清单,合作方完全跑不起来,工作流失去业务价值;
- 降噪强度参数管理:图生图降噪强度是核心参数,不同业务场景需要沉淀参数表,角色重绘一般 0.4‑0.7,风格化重绘 0.6‑0.8,直接写进交付文档;
- 大模型不重复分发:Checkpoint、LoRA 模型体积巨大,资产包不存放大权重,只记录下载来源与哈希,避免资产包体积过大;
- API 批量任务注意图片路径:API 模式只能读取 ComfyUI 内置 input 目录下图片,外部文件夹图片不会被识别,这是高频报错点;
- 版权风险提示:工作流生成图片、参考素材必须拥有合法版权,不可以使用侵权参考图做商业图生图生产。
七、总结
ComfyUI 的强大来自 SD 底层完全开放的节点架构,但是强大灵活的同时也带来协作管理的复杂度。对于中小视觉生产团队,不需要直接部署复杂企业级 Comfy 集群,优先落地标准化资产目录、版本管控,再搭配本地 API 批量脚本与交付工具,就可以低成本实现 ComfyUI 图生图业务工业化落地。
整套方案不绑定特定存储平台,网盘只承担资产存储分发,核心价值在于工作流可复现、版本可追溯、批量生产、标准化交付。配套素材包可以直接拿来作为团队模板,迭代适配自身的角色绘制、短剧美术、商业插画业务。