
Midjourney 出图最让人头疼的从来不是“好不好看”而是“好看但细节碎了”。手指多一根、手指粘连成块、脚趾糊在一起、衣服边缘像融了一样、眼睛位置跑偏——这些问题你重新整图生成吧构图和神态全变了用局部重绘吧又得对着破碎区域写一大段“修复 prompt”写完模型还可能根本不听。这次要讲的 ComfyUI 工作流思路是反过来的免提示词修复。把 Midjourney 崩掉细节的图拖进 ComfyUI手动或自动圈出破碎区域用低 denoise 的局部重绘让模型基于“原图上下文”自动重建细节全程不需要输入perfect fingers、fix hand这类修复提示词。这篇文章先讲清楚原理Midjourney 细节为什么会破碎、denoise 和 mask 在修复里到底扮演什么角色、为什么这套局部重绘可以免提示词。然后是完整实操ComfyUI 环境准备、节点插件安装、手动 mask 和自动 mask 两条工作流搭建、ControlNet 什么时候必须加、以及如何通过 ComfyUI API 把这套修复流程变成批量任务。适合读者被 Midjourney 局部细节整崩溃过的出图用户想在 ComfyUI 里搭一套“修复流水线”的人以及想真正搞懂局部重绘原理而不是只会点按钮的玩家。1. 核心能力速览先用一张表说清楚这套工作流的定位和门槛。能力项说明项目类型Midjourney 出图细节修复 ComfyUI 工作流核心功能局部重绘修复手部、脸部、脚部、物体边缘等破碎细节修复方式手动 mask / 自动检测 mask 低 denoise 局部重绘免提示词使用空文本或中性文本作为 prompt降低语义引导不写修复指令启动方式ComfyUI 加载工作流秋叶整合包可一键启动官方包走命令行显存需求与底模和分辨率相关SD1.5 中低分辨率局部重绘4G 显存有机会运行SDXL 建议 8G 以上底模选择SD1.5 / SDXL 系列均可建议使用与 Midjourney 原图风格接近的底模是否支持 CPU理论可跑但局部重绘速度会非常慢建议 N 卡 GPU CUDAAPI / 批量支持ComfyUI 原生 API 可接入批量修复队列适合场景Midjourney 二次精修、局部崩坏不想整体重画、批量修图流水线这里要提醒一句上面这些能力不是“必须全部满足才能用”。最基础的手动 mask 局部重绘只需要 ComfyUI 默认节点就能完成自动检测和批量 API 是进阶选项。2. 原理讲解Midjourney 细节为什么碎拆解局部重绘的修复逻辑2.1 破碎细节是怎么产生的Midjourney 这类扩散模型在生成图片时优先满足的是整体构图、风格、光影和语义一致性。生成过程相当于从一个纯噪声张量开始逐步去噪还原图像每一步都在“猜”全局结构。对于手部、脚趾、文字、物体交界这些高频细节模型需要有很强的局部约束才能保证结构正确而这恰恰是扩散生成最容易偷懒的地方。所以你会看到一种常见现象整张图氛围拉满但手部区域有三根手指黏在一起或者手指弯曲角度违背人体结构。这不是 Midjourney 故意搞破坏而是生成模型在全局语义和局部几何之间权衡后的典型失败模式。2.2 为什么二次整图生成不可行很多人遇到细节破碎后第一反应是重新生成一张。问题在于 Midjourney 的随机性很强即使你复制同一段提示词、同一组参数新图在构图、光线、人物神态上也会有明显差异。为了修一根手指丢掉整张图的构图成本和风险都很高。更合理的方式是“局部重绘”只对破碎区域重新采样保留周围完好的像素作为强约束。这也是 ComfyUI 工作流的核心。2.3 denoise 和 mask修复工作的两个核心旋钮局部重绘在 ComfyUI 里并不复杂关键只有两个概念mask 和 denoise。mask 决定了“哪些区域需要重绘”。mask 之外的图像区域会原样保留mask 内部会被注入噪声并重新采样。denoise 决定了“注入噪声的比例”。denoise 越高重绘区域越自由越可能生成新的结构但也越容易偏离原图denoise 越低重绘区域越接近原图修复幅度越克制。实操里的常用区间大概是 0.3 到 0.5。这个区间既能让模型对破碎区域做出结构修复又不会把原来的衣服、肤色、光照完全洗掉。具体数值需要根据图的分辨率、底模风格、破碎严重程度反复试。2.4 为什么局部重绘可以“免提示词”这是整套工作流最关键的地方。很多人以为局部重绘必须写清楚“修复什么”但扩散模型的实际运行逻辑是采样器在重建被遮住的区域时主要依据是未遮区域提供的上下文信息而不是 prompt 里的文字描述。如果你把一张手的图遮住手指部分周围的手指、手掌、衣袖、光影已经把结构先验给得差不多了模型完全可以通过这些上下文推断出“这里大概应该是一根正常的手指”。这也是免提示词能成立的基础对于小块破碎区域原图本身就是最好的提示词。我们只需要把 denoise 控制在一个合理的范围模型就能基于原图结构自然补齐细节。实际操作中可以把正向 prompt 节点接一个空文本或者输入一个中性词同时把 CFG 调到较低值比如 1.5 到 3 之间。这样做是为了降低全局语义对局部重建的干扰让模型更专心地“读图”而不是被 prompt 带偏去生成一堆想象中的内容。这里也说明一个边界所谓“免提示词”不是让你把 ComfyUI 里的文本编码节点整个删掉而是指“不针对修复目标写描述性 prompt也不依赖 prompt 信息来引导修复”。这在大多数 ComfyUI 局部重绘场景里是可以成立的。3. 适用场景与使用边界这套工作流适合几种情况Midjourney 出图后手部、脚部、物体边缘破碎但整体构图满意不想重画。图片已经经过放大、高清化等流程只有个别细节需要修补。需要批量修复大量 Midjourney 出图人工点局部重绘太慢想通过工作流 API 自动化。不适合的情况也要说清楚整张图构图本身就有严重问题比如主体缺失、透视完全错乱局部重绘救不回来建议重新生成或者从头重画。破碎区域非常大比如半张脸都没了单个 mask 盖住后免提示词的效果会明显下降模型需要的信息不够结果容易崩。只想保留原图完全不动、只做轻微优化那应该走“放大 细节增强”路线而不是局部重绘。合规方面需要特别注意Midjourney 生成图片的商用授权、使用边界以你当前的订阅条款和服务协议为准不同套餐的授权范围不同。涉及人脸、品牌 Logo、他人作品、特定人物肖像时修复、发布、商用前必须确认有没有获得对应授权。AI 修复不等于可以规避授权这一点不要心存侥幸。4. 环境准备与前置条件4.1 基础硬件与系统首先要有一台能跑 ComfyUI 的电脑。系统推荐 Windows 10/11 或 Ubuntu 20.04 以上。显卡优先 N 卡因为 ComfyUI 的 PyTorch/CUDA 生态在 N 卡上最省心A 卡和核显也能跑但驱动、显存、算子支持都更折腾不建议新手碰。显存方面如果你用 SD1.5 底模做中低分辨率局部重绘4G 到 6G 显存有机会跑但步骤数、分辨率、是否开启 ControlNet 都会影响实际占用如果你用 SDXL 底模或者原图分辨率很高建议 8G 显存以上。具体占用要按你的本机环境测试不能只靠别人的截图判断。磁盘空间方面ComfyUI 本体很小真正占空间的是底模。SD1.5 模型大约 2 到 4GBSDXL 大约 6 到 7GB外加检测器权重和 ControlNet 权重建议预留 30GB 以上空间。4.2 ComfyUI 的两种安装路线新手建议直接用秋叶整合包。它把 Python、PyTorch、ComfyUI 本体、常用插件和内置模型管理都打包好了解压后通过启动脚本启动省掉大量环境折腾时间。整合包安装时注意解压路径不要带中文和空格否则部分插件会报路径错误。有一定经验的用户可以直接拉官方仓库命令部署主要步骤是准备 Python 虚拟环境、安装 PyTorch、安装 requirements 里的依赖。下面是一个通用命令流程实际路径和版本需要根据项目文档调整# 示例官方包克隆与依赖安装路径按实际项目调整 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venv source venv/bin/activate # Windows 下用 venv\Scripts\activate pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install -r requirements.txt python main.py --listen 127.0.0.1 --port 8188启动后浏览器访问http://127.0.0.1:8188能看到 ComfyUI 的节点画布就说明环境没问题。4.3 节点插件修复工作流需要装什么如果只做手动 mask 修复ComfyUI 内置节点就够不需要额外装插件。但如果要做“自动圈出破碎区域”需要安装社区插件常见的有ComfyUI Impact Pack提供与 Segment Anything、物体检测相关的节点用于自动生成 mask。ComfyUI ControlNet Aux包含手部检测、深度估计、姿态估计等辅助节点可用于生成检测 mask 或结构约束。ComfyUI Manager管理插件的安装、更新、卸载避免手动丢文件。安装方式通常是到ComfyUI/custom_nodes目录下 clone 插件仓库然后重启 ComfyUI。用 ComfyUI Manager 的话可以在界面里搜索插件名直接安装更省心。安装完成后在节点搜索框输入SAM、Detection、MediaPipe、Bbox等关键词能看到相关节点就说明插件加载成功。首次使用检测器节点时会下载对应权重这个过程可能比较慢也可能因为网络原因失败。下载失败时优先检查网络连通性或者手动把权重文件放到插件指定的目录。5. 安装与启动把工作流跑起来5.1 一键启动流程秋叶整合包解压后找到启动脚本或桌面入口按提示启动。启动后会看到一个命令行窗口显示 URL比如http://127.0.0.1:8188浏览器打开即可。官方包则通过命令行启动如果想开放局域网访问或让 API 被其他机器调用可以增加--listen 0.0.0.0。注意开放到局域网后端口默认没有鉴权任何人都可能提交任务生产环境需要做好访问控制。# 示例局域网访问时用 listen 0.0.0.0 python main.py --listen 0.0.0.0 --port 8188启动完成后把别人分享的workflow.json文件拖进 ComfyUI 画布就可以加载工作流。加载后如果报“Missing Node”错误通常是缺少对应插件或插件版本过低。5.2 工作流最小链路先记住这条最核心的节点链路所有修复工作流都基于它Load Image - VAE Encode for Inpaint - KSampler - VAE Decode - Save Image其中VAE Encode for Inpaint这个节点负责“告诉你哪些区域要被重绘”它需要三个输入原图像素、VAE、mask。mask 可以来自手动绘制也可以来自后接的检测器节点。6. 工作流搭建手动 mask 与自动 mask 两条路径6.1 手动 mask 路径最快跑通整条链路这是推荐新手第一次先跑的路径不需要额外模型和插件只需要原图和画笔。准备一张 Midjourney 生成、手部明显破碎的图。拖进 ComfyUI 后按下面步骤操作第一步加载图片。使用Load Image节点选择目标图片。第二步生成 mask。在 ComfyUI 里可以直接在Load Image节点显示图片后用画布/遮罩编辑功能绘制 mask也可以通过Mask相关节点读取外部 mask 图。mask 的覆盖范围要比破碎区域稍微大一圈但不要大到把正常的手指和手指间隙都盖住。第三步重绘前编码。把图片、VAE 和 mask 接到VAE Encode for Inpaint节点。这个节点会把 mask 区域的信息编码到潜空间并告知采样器哪些位置要重点重建。第四步设置采样参数。KSampler节点是修复的核心。建议先试这组参数steps20 到 30cfg1.5 到 3denoise0.35 左右sampler_nameeuler 或 dpmpp_2mschedulernormal 或 karras正向 prompt 节点可以不写修复描述直接留空或写一个中性词best quality负向 prompt 可以留空或写lowres, bad anatomy, bad hand, extra fingers这类通用负向词。第五步解码保存。采样结果通过VAE Decode解码再接Save Image输出。添加一个Preview Image节点可以即时预览避免每次都写文件。这套流程的意义在于用最少节点验证 denoise 对修复效果的影响。如果 denoise 0.35 改不动就升到 0.45如果改过头导致手指形状变了就降回 0.3。6.2 自动 mask 路径靠检测器圈出破碎区域手动 mask 要一张张图去涂抹不适合批量。自动 mask 的思路是用检测器模型先识别出需要修复的部位自动生成 mask再接同样的VAE Encode for Inpaint链路。以手部修复为例常见的自动 mask 来源有几种人手关键点检测模型输出手部 bounding box 或骨骼关键点把关键点区域转成 mask。Segment Anything / SAM 模型通过点提示或框提示分割出手部区域生成精细 mask。目标检测模型直接检测手部、脸部、人体等类别输出 bbox 再扩展为 mask。节点链路大致是Load Image - 手部/人脸检测节点 or SAM 分割节点 - Mask 后处理膨胀/羽化 - VAE Encode for Inpaint - KSampler - VAE Decode - Save Image检测器生成 mask 后通常要做两步后处理膨胀和羽化。膨胀是为了让 mask 覆盖到破碎边缘之外避免修复痕迹生硬羽化是为了让 mask 边缘过渡自然避免出现明显的颜色断层。ComfyUI 中这两个操作一般通过 Mask 后处理节点完成比如GrowMask、Blur等。自动 mask 的优势是批量但缺点也很明显检测器不一定能准确覆盖所有破碎区域尤其是严重坏手、多只手重叠时检测结果可能漏检或误检。所以第一次运行自动 mask 时建议加上一个Preview Image节点先看 mask 覆盖是否合理再进入采样。6.3 ControlNet 结构约束路径破碎区域太大时再考虑如果破碎区域不大免提示词 局部重绘就够。如果破碎区域很大或者结构错乱严重比如手指交叉、整段肢体弯曲角度异常纯靠原图上下文可能撑不住。这时建议叠加 ControlNet 做结构约束。常用组合是ControlNet Tile把原图采集成 tile 特征让重绘过程保持原图纹理和结构。ControlNet Inpaint专门为局部重绘设计的 ControlNet 类型能更好地利用 mask 信息。ControlNet Depth / OpenPose如果破碎区域涉及人体姿态可以先用姿态估计提取原图结构再约束采样器不能偏离结构。加了 ControlNet 后denoise 可以适当提高到 0.45 到 0.6因为结构已经被 ControlNet 锁住了采样器有更大空间重建细节不容易跑偏。需要注意ControlNet 不是越多越好。每加一个 ControlNet显存占用和推理耗时都会上升节点报错概率也更高。建议先跑通手动 mask 低 denoise 的最小链路再按需加 ControlNet。7. 功能测试与效果验证7.1 测试素材准备准备三组测试图一张手部破碎图手指多指、粘连、扭曲。一张脸部崩坏图眼睛位置、嘴部结构怪异。一张物体边缘破碎图比如衣服边缘融化、物品接缝断裂。每组图都手动生成一个覆盖破碎区域的 mask 备用。7.2 手动 mask 测试步骤操作流程载入手部破碎图。手动绘制 mask覆盖所有破碎手指区域。设置 denoise 0.35steps 25cfg 1.8正向 prompt 留空。执行工作流。重复三次每次观察输出。预期结果手指数量回归正常手指之间自然分离手部整体颜色和原图一致构图、背景、人物衣服没有明显变化。判断成功的标准是破碎区域被修复但原图非 mask 区域几乎不变。如果非 mask 区域出现明显变化说明 denoise 太高或者 mask 没有真正限制住重绘区域。7.3 免提示词对比实验这个实验用来验证“免提示词”是否真的可行。做法是把同一个 mask 跑两组第一组正向 prompt 为空文本cfg 1.8denoise 0.35。第二组正向 prompt 写perfect hand, detailed fingerscfg 7denoise 0.35。对比两组输出。如果第一组也能修复手指结构说明修复主要依赖原图上下文提示词不是必需品如果第一组完全没变化可能是 denoise 太低或 mask 太大需要调整参数。这个实验也说明了一个事实“免提示词”不等于“零参数”。你仍然需要关注 denoise、mask、cfg 这些核心参数。7.4 自动 mask 测试步骤在加入自动检测器后先跑一次“只输出 mask 不采样”的工作流分支目视检查检测结果检测器是否框住了所有破碎部位。检测框是否过小没覆盖到破碎边缘。是否误检了别的区域。如果漏检可以调低检测阈值如果误检则要调高阈值或者后续人工补充 mask。自动 mask 是提高效率的辅助不是“绝对准确”。批量任务里如果出现某张图明显漏检就应当把这张图抽出来走手动 mask 路径。7.5 批量测试批量测试建议用 ComfyUI API 来做下一章详细展开。先在 UI 里跑通 3 张图再扩展到 10 张最后再考虑 100 张。批量时一定要给每张输出图设置不同的filename_prefix否则输出文件会相互覆盖。7.6 失败模式速查现象判断mask 区域没变化denoise 太低或 mask 没有正确传给采样器修复区域颜色断层mask 边缘没有羽化或 denoise 过高原图被整体修改mask 没生效采样器走成了图生图全图重绘自动检测漏掉目标检测阈值太高或模型不匹配修复后出现新的结构错误denoise 过高或缺失 ControlNet 约束8. 接口 API 与批量修复流程ComfyUI 本身带有 API可以把工作流从界面交互变成 HTTP 请求这是做批量修复的基础。8.1 启动 API 服务启动 ComfyUI 时不加--listen 127.0.0.1限制或者明确指定监听地址就可以通过 HTTP API 提交任务。默认端口是 8188提交任务的接口是POST /prompt查询任务状态是GET /history/{prompt_id}。# 启动时开启局域网访问 python main.py --listen 0.0.0.0 --port 8188注意--listen 0.0.0.0意味着局域网内其他机器也能访问你的 ComfyUI如果你只是本机测试建议保留--listen 127.0.0.1。8.2 导出 API 格式工作流在 ComfyUI 界面完成工作流搭建后需要把工作流导出为 API 格式。导出后得到的是一个 JSON 文件里面每个节点都有独立的class_type和inputs。API 提交时我们提交的就是这个 JSON 结构。如何让工作流变成可复用批量任务关键是把“输入图片”和“输出前缀”设置成变量。比如LoadImage节点的image字段直接填文件名每次批量任务替换这张图的名字就能处理不同图片。8.3 Python 调用示例下面是一个通用 Python 调用模板。注意workflow里的节点结构必须替换为你自己导出的 API 格式不能直接复制运行。import requests import time import json server http://127.0.0.1:8188 # 从 ComfyUI 导出的 API 格式工作流真实使用时需要完整替换 workflow { 1: { class_type: LoadImage, inputs: { image: broken_hand.png } }, 2: { class_type: VAEEncodeForInpaint, inputs: { pixels: [1, 0], vae: [vae_node, 0], mask: [mask_input_node, 0] } }, 3: { class_type: KSampler, inputs: { model: [model_loader_node, 0], positive: [positive_text_node, 0], negative: [negative_text_node, 0], latent_image: [2, 0], steps: 25, cfg: 1.8, denoise: 0.35 } } } def submit_and_wait(workflow, client_idbatch-repair): resp requests.post( f{server}/prompt, json{prompt: workflow, client_id: client_id} ) data resp.json() if prompt_id not in data: print(提交失败:, data) return None prompt_id data[prompt_id] print(已提交任务:, prompt_id) while True: time.sleep(2) hist requests.get(f{server}/history/{prompt_id}).json() if prompt_id in hist: status hist[prompt_id].get(status, {}) print(任务状态:, status) return prompt_id submit_and_wait(workflow)8.4 JSON 请求负载示意如果你不想写 Python也可以直接用 curl 提交。下面是一个请求体示意真实使用时需要按导出的工作流替换节点内容{ prompt: { 1: { class_type: LoadImage, inputs: { image: broken_hand.png } } }, client_id: batch-repair-001 }这条请求只是示意实际提交必须带完整的节点链否则 ComfyUI 会因为缺少输入而报错。8.5 批量任务队列设计批量修复不建议前端界面一张张点。建议这样做输入目录统一放原图文件名有规律比如mj_001.png、mj_002.png。写一个 Python 脚本遍历输入目录把每个文件名填入工作流的LoadImage节点提交到 ComfyUI。保存所有prompt_id和对应图片名到日志文件定时查询GET /history确认哪些成功、哪些失败。失败任务重试时直接用同一个文件再次提交但输出前缀要加retry_避免覆盖原结果。如果批量任务量大控制并发提交数量比如同时只保持 2 到 3 个任务在队列里防止显存爆炸。批量修复最容易踩的坑不是单张修复效果而是“一张崩了影响后续全部”。所以脚本一定要有日志和失败隔离不能因为某一张图的检测器漏检就中断整个任务。9. 资源占用与性能观察9.1 怎么观察显存占用ComfyUI 运行局部重绘时显存占用主要取决于三个因素底模大小、分辨率、是否启用 ControlNet。SD1.5 底模的占用明显低于 SDXL局部重绘如果只改了 mask 区域整体 latent 计算范围不会缩小太多所以显存压力仍然和整图分辨率成正比。观察显存最直接的办法是打开任务管理器的 GPU 面板或者用nvidia-smi命令nvidia-smi这个命令会显示当前 GPU 的显存总量、已用显存、进程占用情况。在 ComfyUI 执行修复时把nvidia-smi放到另一个终端里循环刷新就能看到采样阶段的峰值占用。注意采样阶段和模型加载阶段的显存占用不同采样阶段的峰值往往更高。9.2 CPU 推理与 GPU 推理的差异ComfyUI 默认会用 GPU 推理。如果机器没有 CUDA 环境可以强制用 CPU但速度会慢很多。测试时建议先用小图、低分辨率跑通流程确认效果后再升高分辨率。SDXL 底模在 4G 显存机器上大概率会爆显存优先考虑 SD1.5 底模。如果显存不够启动时可加--lowvram或--medvram参数让权重按需加载换取更低显存占用python main.py --lowvram9.3 影响性能的关键参数分辨率越高显存占用越大采样耗时越长。局部重绘时可以把原图缩到合理尺寸修复完再放大。steps步骤数越多采样越慢但细节修复收益有限。20 到 30 步已经足够。denoisedenoise 大小直接影响采样时间吗不一定但会影响输出稳定性和重绘幅度。过高的 denoise 会让采样器跑得更远时间更长。ControlNet 数量每多一个 ControlNet显存和计算量都会明显增加。批次数如果一次跑多张图显存占用会线性增加。本地测试建议 batch size 保持 1。10. 常见问题与排查方法问题现象可能原因排查方式解决方案启动后页面打不开端口被占用或服务未启动检查命令行日志、端口占用更换端口--port 8189或重启服务加载工作流报 Missing Node缺插件或插件版本不兼容查看节点名称安装对应插件通过 ComfyUI Manager 安装缺失插件并重启局部重绘后 mask 区域没变化denoise 太低、mask 没正确传递检查VAE Encode for Inpaint的 mask 输入提高 denoise或检查 mask 节点连接修复区域颜色与原图断层mask 边缘太硬denoise 过高查看 mask 边缘是否锐利对 mask 做膨胀 羽化处理自动检测完全没框住目标检测阈值太高、模型不匹配单独预览检测结果调低阈值或更换检测模型CUDA out of memory模型过大或分辨率过高nvidia-smi查看显存占用换 SD1.5 底模、降低分辨率、启用--lowvramAPI 提交后队列不动服务未监听正确地址检查启动参数--listen确保监听地址与提交地址一致输出图被覆盖多任务使用相同filename_prefix查看输出文件时间戳为每个任务设置独立前缀空 prompt 节点报错文本编码节点输出类型不匹配查看节点报错日志使用CLIPTextEncode保证输出为 CONDITIONING下载检测器权重失败网络问题或手动放置路径不对查看插件日志手动下载权重文件放到指定目录11. 最佳实践与使用建议这套工作流在真正用于生产前建议先养成几个习惯。第一固定一组最小可运行参数。比如 steps 25、cfg 1.8、denoise 0.35、euler normal。每次新图先按这组参数跑根据效果微调 denoise而不是每次换一组完全不同参数否则你很难判断是哪一步导致了效果变化。第二目录分离。原图、修复后的图、检测器生成的 mask、工作流 JSON分类放。批量任务尤其注意输出目录建议按日期建子目录。第三把工作流导出为 API 格式并保存。当你在 UI 里调出一版满意的修复流程后立即通过 ComfyUI 的 Workflow 导出功能保存一份 API 格式这是后续做批量任务的基础。只保存界面格式的话API 调用时没法直接复用。第四批量任务必须加日志和失败重试。不要写一个没有日志的脚本跑 100 张图否则某张图中途崩了你完全不知道卡在哪一步。第五修复后要人工复检。AI 修复不是绝对正确尤其涉及人物手部时模型可能把手指数量修对但姿势依旧别扭。出图前逐张看一眼比事后返工成本低得多。第六注意授权与隐私边界。如果你修复的 Midjourney 图会用于商用请先确认你的 Midjourney 订阅套餐允许商用如果图中包含真实人物、品牌 Logo、他人作品修复前必须确认授权。自动化批量修复不会改变这张图的版权属性只会让侵权风险扩散得更快。12. 总结与下一步这套免提示词修复工作流最值得尝试的点就是“不写修复 prompt 也能修好局部细节”。它把 Midjourney 出图后最常踩的坑变成了一个可以反复执行的 ComfyUI 本地流程。你先要验证的也不是什么高级功能而是最基础的一条链路Load Image 到 VAE Encode for Inpaint 到 KSampler 到 VAE Decodedenoise 卡在 0.35 左右手动 mask 圈出手部破碎区域跑通一次后再考虑加检测器。最容易踩的坑有两个一个是 denoise 控制不好要么修不动要么把原图洗了另一个是 mask 覆盖不全看起来修了其实破碎边缘还留在外面。后续可以扩展的方向很明确把自动手部检测接入工作流实现一键读图、自动圈定破碎区域、自动修复通过 API 把修复流程接到自己的批量出图管线里遇到结构错乱严重的图再叠加 ControlNet Tile 或 Inpaint 约束。这套工作流搭好后Midjourney 出图之后的“返工”环节就能省下大半。建议先收藏下次遇到坏手图时照着搭一遍。