
第 7 篇:ComfyUI 电商工作流骨架
-
- 1. 目标:把“电商修图”改造成“电商素材包流水线”
- 2. 工作流总览:从白底图到“主图/场景/详情页素材包”的四阶段
-
- 2.1 骨架数据流
- 2.2 四个阶段对应的 ComfyUI Group
- 3. 输入规范:你要把“图片”当作“数据结构”
-
- 3.1 输入文件约定(建议)
- 3.2 `product.json` 最小字段(用于 RAG/Agent 编排)
- 4. 处理阶段拆解:把“节点堆叠”变成“可维护模块”
-
- 4.1 G0:输入校验(硬门槛)
- 4.2 G1:主体分离(两种路径)
- 4.3 G2:三分支生成(主图 / 场景 / 详情图块)
-
- 分支 1:主图(影棚风 / 白底 / 渐变)
- 分支 2:场景图(背景替换 + 风格迁移)
- 分支 3:详情页素材图块(Detail Tiles)
- 5. 输出规格:统一“母版”,再做多渠道派生
-
- 5.1 母版(Master)策略
- 5.2 渠道裁切策略(只讲“比例与安全区”,不锁死像素)
- 5.3 输出“素材包”目录结构
- 6. 参数建议
- 7. 与 RAG/Agent 的对接点:让“出图”变成“可运营资产”
- 8. V1 上线前的质量门禁
在电商场景里,ComfyUI 不是“做几张好看的图”,而是一个可批处理、可复现、可交付的“素材工厂”。这一篇我们把骨架搭出来:从白底图出发,一次跑通主图/场景图/详情页素材包,并把输入规范、输出规格、渠道裁切策略固化成“工程契约”。
你后续无论换模型(Flux、SD、各种 LoRA/Control)还是换云 GPU,只要骨架不变,交付就稳定。
1. 目标:把“电商修图”改造成“电商素材包流水线”
一条合格的电商内容流水线,至少要同时满足三件事:
ComfyUI.org 给出的电商图像增强工作流,核心包含:风格迁移(style transfer)+ 智能修补(inpainting)+ 文案/描述生成(captioning),并明确了输入与输出规格的关键约束(PNG/alpha、更高分辨率、mask、提示词结构等)。(ComfyUI)
2. 工作流总览:从白底图到“主图/场景/详情页素材包”的四阶段
2.1 骨架数据流
#mermaid-svg-JbvgKgFOyoRENz1Y{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-JbvgKgFOyoRENz1Y .error-icon{fill:#552222;}#mermaid-svg-JbvgKgFOyoRENz1Y .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JbvgKgFOyoRENz1Y .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JbvgKgFOyoRENz1Y .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JbvgKgFOyoRENz1Y .marker.cross{stroke:#333333;}#mermaid-svg-JbvgKgFOyoRENz1Y svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JbvgKgFOyoRENz1Y p{margin:0;}#mermaid-svg-JbvgKgFOyoRENz1Y .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y .cluster-label text{fill:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y .cluster-label span{color:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y .cluster-label span p{background-color:transparent;}#mermaid-svg-JbvgKgFOyoRENz1Y .label text,#mermaid-svg-JbvgKgFOyoRENz1Y span{fill:#333;color:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y .node rect,#mermaid-svg-JbvgKgFOyoRENz1Y .node circle,#mermaid-svg-JbvgKgFOyoRENz1Y .node ellipse,#mermaid-svg-JbvgKgFOyoRENz1Y .node polygon,#mermaid-svg-JbvgKgFOyoRENz1Y .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JbvgKgFOyoRENz1Y .rough-node .label text,#mermaid-svg-JbvgKgFOyoRENz1Y .node .label text,#mermaid-svg-JbvgKgFOyoRENz1Y .image-shape .label,#mermaid-svg-JbvgKgFOyoRENz1Y .icon-shape .label{text-anchor:middle;}#mermaid-svg-JbvgKgFOyoRENz1Y .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-JbvgKgFOyoRENz1Y .rough-node .label,#mermaid-svg-JbvgKgFOyoRENz1Y .node .label,#mermaid-svg-JbvgKgFOyoRENz1Y .image-shape .label,#mermaid-svg-JbvgKgFOyoRENz1Y .icon-shape .label{text-align:center;}#mermaid-svg-JbvgKgFOyoRENz1Y .node.clickable{cursor:pointer;}#mermaid-svg-JbvgKgFOyoRENz1Y .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-JbvgKgFOyoRENz1Y .arrowheadPath{fill:#333333;}#mermaid-svg-JbvgKgFOyoRENz1Y .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JbvgKgFOyoRENz1Y .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JbvgKgFOyoRENz1Y .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JbvgKgFOyoRENz1Y .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-JbvgKgFOyoRENz1Y .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JbvgKgFOyoRENz1Y .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-JbvgKgFOyoRENz1Y .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JbvgKgFOyoRENz1Y .cluster text{fill:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y .cluster span{color:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JbvgKgFOyoRENz1Y .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-JbvgKgFOyoRENz1Y rect.text{fill:none;stroke-width:0;}#mermaid-svg-JbvgKgFOyoRENz1Y .icon-shape,#mermaid-svg-JbvgKgFOyoRENz1Y .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JbvgKgFOyoRENz1Y .icon-shape p,#mermaid-svg-JbvgKgFOyoRENz1Y .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-JbvgKgFOyoRENz1Y .icon-shape rect,#mermaid-svg-JbvgKgFOyoRENz1Y .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JbvgKgFOyoRENz1Y .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-JbvgKgFOyoRENz1Y .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-JbvgKgFOyoRENz1Y :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
白底图/透明底 PNG
主体分离/抠图
主图标准化清洁+锐化+颜色校正
主图生成/增强白底/渐变/影棚
场景图生成背景替换+风格迁移
详情图素材细节特写+参数图块
多渠道裁切/导出
素材包打包目录+命名+meta.json
2.2 四个阶段对应的 ComfyUI Group
- G0 输入与校验:LoadImage、尺寸校验、色彩空间、alpha 检测
- G1 主体分离:透明底优先;否则背景分离(mask)
- G2 三分支生成:主图 / 场景 / 详情页图块
- G3 渠道裁切与导出:一张“母版”派生多比例、多尺寸、多渠道
3. 输入规范:你要把“图片”当作“数据结构”
ComfyUI.org 的电商工作流对输入提出了非常工程化的要求:PNG(优先带 alpha),分辨率建议至少 1024×1024;mask 为黑白图(白色表示需要修补/重绘区域);提示词必须包含品类与风格关键词。(ComfyUI)
3.1 输入文件约定(建议)
每个 SKU 一个目录:
SKU_0001/
input/
hero.png # 主图,优先透明底 PNG
detail_01.png
detail_02.png
lifestyle_ref.jpg # 可选:风格/场景参考
mask_hero.png # 可选:需要重绘/修补区域
meta/
product.json # 标题/卖点/参数/禁词
3.2 product.json 最小字段(用于 RAG/Agent 编排)
{
"sku": "SKU_0001",
"title": "……",
"category": "……",
"benefits": ["卖点1", "卖点2", "卖点3"],
"specs": ["参数1", "参数2"],
"brand_tone": "高端/简约/科技感",
"forbidden": ["医疗功效", "绝对化用语"]
}
4. 处理阶段拆解:把“节点堆叠”变成“可维护模块”
下面按最常见的“白底→场景迁移”路线讲骨架。ComfyUI.org 提到的关键能力点包括:风格迁移、inpainting 修补、图像理解与自动 caption;示例工作流中也列了 Florence-2 用于图像理解、JoyCaption/Llama 用于描述生成、以及风格模型与 Flux inpaint 等组合。(ComfyUI)
4.1 G0:输入校验(硬门槛)
- 校验:是否 PNG + alpha;若无 alpha,则必须走背景分离(输出 mask)
- 校验:最短边 < 1024 的直接拒绝(避免后续修补崩坏)(ComfyUI)
- 统一色彩空间:sRGB(减少导出后渠道色偏争议)
4.2 G1:主体分离(两种路径)
- 路径 A:透明底 PNG(首选) 直接进入后续分支,mask 只用于“局部修补”
- 路径 B:白底图 需要生成主体 mask,再做背景替换。ComfyUI 的电商“迁移/换背景”类工作流一般都明确要求“产品图 + 背景图 + 手工/半自动 mask”,并强调 mask 边缘覆盖要足够,否则会出现边缘伪影。(ComfyUI)
工程建议:V1 不追求全自动抠图,把“可控、稳定”放在第一位;用半自动 mask 也能把批量出图效率提高一个数量级。
4.3 G2:三分支生成(主图 / 场景 / 详情图块)
分支 1:主图(影棚风 / 白底 / 渐变)
目标:输出平台主图“干净、真实、可放大看细节”。
常用手段:
- 轻度锐化、去噪、提升微对比
- 生成“自然投影/接触阴影”而不是硬贴图(看起来更真实)
分支 2:场景图(背景替换 + 风格迁移)
目标:把白底商品迁移到“可解释的真实场景”,但保持商品形态不变。
ComfyUI.org 的“背景替换/迁移”类工作流描述了典型结构:加载产品与背景、统一尺寸、caption 生成提示词、Redux/控制节点限定重绘区域、KSampler 完成 inpaint,最后合成与裁切导出。(ComfyUI)
关键控制点(强烈建议写进你的模板参数):
- Keep Product Identity:商品主体不允许被“重画成另一个东西”
- 背景只负责叙事:不要让背景元素压过商品
- 边缘治理:mask 边缘加宽 2–6px(视分辨率),减少光晕
分支 3:详情页素材图块(Detail Tiles)
目标:输出详情页可直接拼版的“图块资产”,例如:
- 细节特写(纹理、接口、材质)
- 参数对比块(简洁信息层)
- 使用场景块(解决哪个痛点)
ComfyUI 的电商增强工作流本身会输出“HD 图片 + 多风格变体 + 文本描述(JSON/text)”,你可以把 caption 直接作为详情页文案的起点。(ComfyUI)
5. 输出规格:统一“母版”,再做多渠道派生
5.1 母版(Master)策略
一个可交付的做法是:每张图先产出一张“母版”,再由母版派生不同渠道裁切与尺寸。
- 母版推荐:4:5 或 3:4(竖向更适配小红书/TikTok,同时也方便裁切成 1:1、16:9)
- 输出格式:PNG(保真/可二次编辑)+ JPG(发布/体积更小)
- 输出内容:主图/场景/详情图块各自至少 2–4 张 variant(用于 A/B)
ComfyUI.org 的电商流程在 I/O 里明确“输出为 HD PNG,多风格变体,并产出文本描述”。(ComfyUI)
5.2 渠道裁切策略(只讲“比例与安全区”,不锁死像素)
你需要的是“裁切策略”,不是“死记尺寸”。建议按渠道先定比例:
- 淘宝/咸鱼主图:优先 1:1;可加 4:5 作为补充
- 小红书:3:4(主流)
- TikTok:9:16
- YouTube:16:9(封面与横版素材)
统一裁切公式(中心裁切,保持主体)

工程化落地建议:
- 主体 bbox(由 mask 得到)必须落在“安全区”内(例如距边缘至少 6% 边距)
- 所有裁切输出都写入 meta.json(记录裁切框坐标与比例),便于复现与回滚
5.3 输出“素材包”目录结构
SKU_0001/output/
master/
hero_master_4x5.png
scene_01_master_4x5.png
detail_tile_01_master_1x1.png
channels/
taobao/
hero_1x1.jpg
scene_1x1.jpg
xhs/
hero_3x4.jpg
scene_3x4.jpg
tiktok/
scene_9x16.jpg
youtube/
scene_16x9.jpg
copy/
captions.json
title_variants.txt
bullet_points.txt
meta.json
6. 参数建议
ComfyUI.org 的背景迁移工作流示例里,明确给出了“统一分辨率(例如 1200×1600)”、采样器与步数、CFG 等参数,并强调 VRAM 与 –medvram 等运行建议。(ComfyUI)
V1 建议你把参数固定为“可解释、可复现”的配置文件(例如 preset_ecom_v1.yaml),核心就三类:
- 分辨率:母版统一(例如 1200×1600 或 1024×1536)(ComfyUI)
- 风格融合:Style blend(0.3–0.7 区间常见)(ComfyUI)
- 采样:步数/CFG 不追求极致,追求稳定与速度(批量可控)
7. 与 RAG/Agent 的对接点:让“出图”变成“可运营资产”
你真正要卖的不是“图片”,而是“可持续运营的内容资产”。最关键的两个对接点:
输入侧:RAG 把商品卖点、禁词、平台规则写入 product.json,Agent 选择模板与风格
输出侧:把 captions.json + meta.json 入库,后续用于:
- 自动生成详情页文案与 FAQ
- 自动生成短视频脚本(把场景图串成镜头)
- A/B 测试归因(哪个 variant 转化更高)
ComfyUI.org 的流程里提到自动 caption(Florence-2 + JoyCaption/Llama)可以产出产品描述文本,你直接把这部分当作“运营素材的结构化底座”。(ComfyUI)
8. V1 上线前的质量门禁
- 主体一致性:商品结构不被重画(特别是 logo/文字/接口位置)
- 边缘质量:无光晕、无锯齿、无背景穿透(mask 边缘治理)(ComfyUI)
- 风格一致性:同一 SKU 的场景图色调/光向一致
- 渠道合规:裁切后主体不被切断,安全区满足
- 可复现:所有输出都能用 meta.json + preset 复跑
网硕互联帮助中心




评论前必须登录!
注册