
Midjourney出图偶尔会有破碎细节比如手指错乱、边缘崩坏、纹理断层。传统办法是反复改提示词但对已经生成的图像往往不起作用。这篇博客要讲的是一套基于ComfyUI的免提示词修复工作流核心思路从“用描述修图”切换到“用图像本身修图”。适合谁看用Midjourney出图、又不想在PS里手动涂抹的人对ComfyUI有一定了解但还没跑通修复工作流的人以及手里有大量旧图想统一修复的人。最值得关注的点是这套工作流不依赖自然语言提示词而是靠蒙版、结构控制和低强度重绘把破损区域单独修掉同时尽量保留原图的光影和画风。下面按实际落地顺序拆一遍先说破碎细节的来源再讲免提示词的技术原理然后是环境准备、完整节点拆解、单张实操、批量处理最后给出常见问题排查。1. 先搞清楚Midjourney的破碎细节到底怎么来的1.1 破碎细节不是偶然是生成机制决定扩散模型生成图像时一开始只是低分辨率的特征空间里一堆噪声然后模型逐步猜测每个区域“大概是什么”。这个过程对整体构图、光影、大色块很友好但对高频细节不友好。什么叫高频细节手指和手指之间的缝隙、交错的线条、紧密排列的重复纹理、小尺寸文字这些都属于高频信息。模型在低分辨率特征空间里无法为每个像素都安排好正确结构于是出图时就会出现手指数量不对或者关节走向奇怪。边缘出现残缺、锯齿、断层。织物纹理、树叶、头发丝粘成一团。对称结构两侧不一致。物体轮廓在某些区域被错误地“融化”。这些都不是Midjourney独有的而是所有大采样跨度的扩散模型共有的现象。Midjourney为了出图好看会在整体氛围、光影、材质上做大量优化但局部结构修复不是它的强项特别是当画面复杂度上升时破碎细节会更频繁出现。1.2 为什么提示词修不动已经生成的图很多人遇到破碎细节第一反应是加上detailed hands、perfect fingers、sharp details这类提示词重新生成。但如果你观察足够多次就会发现提示词对已经生成的那张图几乎没有任何“点对点”的修正能力。原因在于提示词影响的是扩散模型下一次生成时朝哪个方向走它并不能定位到具体某个像素也不能告诉模型“第二根手指和第三根手指之间要分开”。它影响的是整体概率分布而不是局部空间结构。如果把这个思路用到重绘上问题更明显。你把破碎图放进局部重绘模型再写一堆提示词模型会更多地去“猜”画面应该是什么样而不是去“看”画面原本是什么样。结果往往是破损区域确实被重新画了但角色面貌变了。手指数量对了但手和袖口的关系不对。局部修好了整张图的色调和材质又崩了。所以问题不是“提示词写得好不好”而是链路本身缺了空间约束。Midjourney生成的图已经是一张成品你要做的不是重新描述它而是告诉模型“哪里坏了修哪里其他地方别动”。这就引出了免提示词修复的基本思路。1.3 免提示词修复的核心认知转变免提示词不是完全不用文本输入而是不让文本语义参与画面内容控制。ComfyUI工作流里的文本提示词可以保持为空也可以用一条中性提示词兜底真正决定修复结果的是三样东西原始图像本身。破损区域的蒙版。控制结构构图的ControlNet或类似节点。这套逻辑更接近“图像编辑”而不是“图像生成”。模型要做的不是凭空创造而是在你已经圈定的区域里尽量生成和周边结构匹配的内容。这也是为什么它对画风一致性更友好。我自己的经验是只要把控制条件补齐写不写提示词对最终结果影响不大。真正影响结果的是蒙版边缘处理、重绘强度、以及ControlNet的约束强度。2. 免提示词修复的原理从语义驱动变成像素驱动2.1 传统修复链路和免提示词链路的差异传统提示词修复可以画成这样的链路文本提示词 - 扩散模型 - 生成图像它依赖模型对自然语言的理解把“一只五指清晰的手”翻译成特征空间里的局部结构。这种翻译对常见概念有效但对细粒度结构不可靠。免提示词工作流的链路是原图 蒙版 结构控制图 - 重绘模型 - 局部修复后的图在这个链路里模型获得的约束都是像素级的原图负责提供颜色、纹理、光影基线。蒙版负责告诉模型哪些区域被允许重绘哪些区域必须保持。结构控制图负责提供边缘、深度、软轮廓等几何信息保证重绘区域和周围结构对齐。所以它不是“语义驱动”而是“像素驱动”。这也是为什么即使你不输入任何提示词模型仍然能知道修复后手指应该从哪个方向伸出、衣领应该覆盖到哪里。2.2 关键节点在原理上做了什么ComfyUI里负责“像素驱动”的核心节点大致有这几类图像编码节点VAE Encode原图进入扩散模型之前需要被编码到潜空间。潜空间不是原始像素而是压缩过的特征表示。修复时经过编码的潜在表示保留了图像的整体内容这样重绘模型才能在局部修改时依然看到全图信息。蒙版相关节点Mask、Inpaint蒙版不是简单涂黑它决定了扩散过程中哪些噪声会加成在哪个位置。蒙版区域内的像素会参与重绘蒙版外则保持原样。ComfyUI里常见的 inpaint 节点还会对蒙版做膨胀、羽化避免边缘出现明显接缝。结构控制节点ControlNet这是一套非常关键的条件机制。它把线稿、深度图、软边缘图作为额外输入在采样过程中不断约束生成结果的空间位置。举个例子如果ControlNet提供的是手部轮廓线那模型重绘时就会尽量贴合这条轮廓而不是随意发挥。这就是免提示词工作流能“指哪打哪”的原因。采样器与denoise采样器决定扩散过程怎么走denoise 决定重绘的时候在原图上添加多少噪声。denoise 越低越接近原图修复能力也越弱denoise 越高模型越自由但也越容易破坏原图其他部分。2.3 为什么denoise要控制在0.35到0.6之间这是很多新人最容易忽略的参数。如果你把denoise拉到1相当于把原图完全当成一块噪声重新生成一张不同的图。这个时候原图的光影、风格、细节都会丢失。如果你把denoise降到0.2以下模型又几乎没有发挥空间破损区域修不干净。我实际测试下来的经验范围是重绘强度表现适用场景0.3以下基本只做轻微优化破损很轻微只是边缘毛糙0.35-0.5结构与细节兼顾手指错乱、局部崩坏最常见0.5-0.7修复力度强但风格可能漂移大面积纹理损坏需要单独处理0.7以上接近重绘不建议用于局部修复除非你愿意重新构图具体数值要看模型和画面复杂度。我的做法是先固定其他参数用同一条蒙版跑三档0.4、0.5、0.6对比哪档在“修复干净”和“保留原图”之间最合适。不要一上来就调参数先跑一遍观察。3. 跑通ComfyUI工作流需要准备什么环境3.1 硬件和软件条件这套工作流本质上是图片局部重绘对显存的要求取决于你选择的基础模型。如果你用SD 1.5系列模型6GB显存基本能跑用SDXL系列模型建议至少8GB、最好12GB以上。内存建议16GB以上因为ComfyUI在加载模型和预处理高分辨率图像时内存占用会明显上升。如果你的机器配置不高也不是不能跑但要注意几件事关闭后台占用显存的应用比如浏览器硬件加速。尽量别用超过4K分辨率的超大图直接进修复流程先做局部裁剪或者降低放大倍数。使用--lowvram或--medvram启动参数可以让ComfyUI在低显存模式运行但速度会慢一些。系统方面Windows、macOS、Linux都可以。我自己主要在Windows下使用ComfyUI桌面版和秋叶整合包都试过。如果你用秋叶ComfyUI整合包环境里通常已经预置了Python和不少核心依赖但第三方节点仍需手动安装这一点后面单独说。3.2 需要安装的组件和模型除ComfyUI本体外至少需要准备这些内容基础模型建议优先选择专门做过inpaint训练的基础模型。SD 1.5有专门的Inpainting版本SDXL也有一批支持inpaint的模型。选模型时注意看它是否支持蒙版输入不支持蒙版的模型直接跑局部重绘输出会很难看。ControlNet模型用于结构控制。常见的有lineart控制线稿结构适合手部、轮廓修复。softedge软边缘控制适合边缘模糊、材质连片的问题。depth深度控制适合主体和背景关系混乱的场景。不需要每个都下载。如果主要修手部和脸部线稿类模型最常用。超分模型用于修复后输出高清结果。可以选 RealESRGAN_x4plus、4x-UltraSharp 等常见放大模型。注意超分要在修复完成之后执行不要在修复前直接对整图做四倍放大不然显存压力很大。图像预处理工具如果你不想手动画蒙版可以安装支持自动检测的节点。比如手部检测节点负责标记手掌区域图像分割节点负责识别更广泛的破损区域。这些节点能减少人工操作但在复杂画面上不一定完全准确需要能手动修正。3.3 导入第三方工作流时遇到“缺包”怎么办网上很多ComfyUI工作流是一个包含节点布局和配置的JSON文件。导入之后最常出现的是这个提示请安装缺失的包以使用此工作流这句话不是告诉你ComfyUI本体坏了而是指工作流里用到了一些你还没安装的自定义节点。处理方式按顺序来看ComfyUI的日志或控制台输出找到缺失节点名称。进入ComfyUI/custom_nodes目录用git clone拉取对应节点仓库或通过ComfyUI管理器搜索安装。如果节点还需要pip依赖通常节点仓库的requirements.txt里有说明安装完再重启ComfyUI。重启后重新导入工作流确认顶部不再出现红色缺失提示。这里最容易踩的坑是看到报错就以为是ComfyUI版本问题先急着升级或重装。实际上大多数缺包问题只需要按节点名称补装即可。如果工作流来自别人分享建议先看工作流里用了哪些节点再导入不要直接拖进ComfyUI。提前知道节点列表可以避免多次“导入-报错-补装-重启”的循环。4. 完整工作流拆解节点连接和参数怎么调4.1 图像输入与破损区域定位工作流的第一段是把原图接入ComfyUI并完成破损区域的定位。推荐流程是用 Load Image 节点加载原图。按需放大原图让破损区域更清晰便于蒙版定位。用检测模型或自动分割节点生成蒙版。人工检查蒙版必要时用Mask编辑器修正。我个人会先看原始图片分辨率。如果原图只有512或768级别而破损区域又很小直接在原图上做蒙版会导致重绘区域分辨率不足。先放大到1.5到2倍再定位蒙版修复质量会好不少。蒙版生成有三种常见方式方式优点缺点自动检测节点批量处理快复杂画面可能误判图像分割模型分割精准需要额外下载模型手动绘制蒙版最可控单张处理慢免提示词不代表免人工确认。我的建议是第一张图一定要人工检查蒙版确认它只覆盖破损区域不要覆盖到眼睛、头发纹理等不该动的部分。蒙版压到关键细节上修复后经常会出现“整块脸被重新画了一遍”的问题。4.2 控制结构保持的节点连接破损区域定位好之后要把原图同时送到两个地方一路送去VAE Encode作为潜空间背景信息。另一路送去ControlNet提取结构控制图保证重绘区域与周围几何关系一致。ControlNet相关节点在ComfyUI里通常需要ControlNet模型加载器。预处理器节点比如Canny边缘提取、Lineart转换、SoftEdge提取。ControlNet应用节点把控制图施加到模型条件里。参数上重点关注strength和start_percent、end_percent。参数作用经验值strength控制条件对生成结果的影响强度0.5-0.9start_percent控制条件从第几步开始生效0.0-0.2end_percent控制条件到第几步失效0.7-0.9如果修复后手部轮廓变形可以把strength调高到0.8以上。如果重绘区域看起来太僵硬、像贴纸可以适当降低strength让模型在小范围内自由发挥。4.3 重绘和采样参数设置重绘部分通常是一组Inpaint节点加上采样器节点。节点连接大致如下Load Image - Crop - VAE Encode - Inpaint Model Conditioning Sampler - VAE Decode - Output ControlNet 提取结构图 - ControlNet Apply - Sampler Mask - Inpaint Model Conditioning这里有个常见做法先把破损区域裁剪出来在高分辨率下重绘再拼回原图。ComfyUI里有一些专门做“裁切-修复-拼接”的节点比如Inpaint CropAndStitch它可以减少显存占用同时让局部重绘更精细。采样器参数参考steps20到40步。越高不一定越好超过40步收益很小。cfg3到7。免提示词场景下可以偏低4到5通常够用。sampler_nameeuler、dpmpp_2m、dpmpp_2m_sde 都可以尝试。先用默认不要频繁换。schedulerkarras 在多数情况下表现稳定。denoise参考前面说的0.35到0.6。如果发现修复后的区域和原图颜色对不上可以检查VAE路径是否正确。有时候VAE只接在了修复模型上没有把原图编码结果接进来重绘区域就会像从另一张图里截出来的。4.4 输出与质量控制重绘完成后节点输出是一张潜空间解码后的图像。还需要做两件事融合和超分。融合节点的作用是把修复区域与原图融为一体。常见做法是对蒙版做羽化处理让边缘过渡更自然。把修复结果和原图按蒙版权重混合。最终输出再经过一层轻微降噪或USM锐化。如果是批量任务最后还要有保存图像节点并设置好文件名规则。否则ComfyUI会自动命名后期整理会非常痛苦。超分建议放在融合之后。先确定修复结果已经稳定再放大到目标分辨率。放大模型可以选4倍模型也可以分两步先2倍再2倍避免一次放大出伪影。5. 单张图片如何跑通从加载到输出5.1 准备一张合适的测试图第一次测试时不要拿一张画面极其复杂的图直接跑。选一张主体明确、破损范围集中的图效果最好。比如人物半身照手指有破损。建筑边缘有断裂。带文字的纹理局部模糊。画面越复杂变量越多。第一次跑通流程时用单主体、背景简单的图更容易判断修复是否有效。另外要确认图片文件路径中没有中文或特殊符号ComfyUI对中文路径的支持偶尔会有问题。把图片放到ComfyUI默认的input目录下直接通过Load Image节点选择最省事。5.2 按顺序执行工作流导入工作流后建议按下面顺序启动检查节点组件是否齐全尤其是ControlNet和Inpaint相关节点。加载原图确认图像显示正常。查看蒙版是否覆盖到破损区域。点击Run一次观察处理进度和日志。如果报错先按日志中第一次出现的红色信息排查。不要跳过步骤3。蒙版是这套工作流的“指挥棒”蒙版画错后面所有节点都白跑。如果Run之后出现无输出先看右键输出图像节点是否连接到了最终图像而不是看中间节点。ComfyUI有时候会把某个中间预览图像当成最终结果看起来像“没输出”实际上是预览节点没有连到保存节点。5.3 成功结果长什么样修复成功的标准不是“和原图完全一样”而是破损区域结构合理手指数量、边缘走向没有明显错误。修复区域和周边区域颜色、亮度、材质一致。没有明显的接缝线或糊块。放大到100%后纹理质感没有明显断层。只要满足这几条就可以认为工作流跑通了。如果修复后结构正确但颜色不匹配优先检查融合和VAE。如果结构还是错乱优先调整ControlNet强度和蒙版范围而不是继续加提示词。6. 批量修复时的经验别把单张逻辑直接搬过来6.1 队列和命名要先设计好单张图跑通之后很多人会直接批量跑几十张图。这时候最容易翻车的是输出文件命名。ComfyUI自带的保存节点默认会根据日期和时间命名后面还有随机数。你要是批量跑100张最后根本分不清哪张修的是哪张。建议在保存节点之前用图像文件名节点或者自定义脚本把输出文件名和输入文件名关联起来。比如输入是mj_001.png输出命名为mj_001_fixed.png。如果工作流没有自带命名逻辑就先在本地把输入文件整理成统一的命名规范再批处理。比如按subject_01.png、subject_02.png这样的规则命名后续匹配输出时效率高很多。6.2 并发和显存要控制批量任务不等于把队列一次性全部启动。更稳妥的做法是先把每张图的蒙版都准备好保存成一个批次。设置合理的批量大小比如一次处理1到2张图。观察显存占用如果接近上限就减小批量大小或把分辨率降下来。自动检测蒙版在批量场景下节省时间但它会引入误判。我的经验是自动检测适合“破损区域明显且固定”的批量任务比如统一一批电商产品图边缘都有类似的破损。如果每张图破损位置都不同而且画面复杂建议每张图都人工过一遍蒙版。6.3 失败重试和日志记录批量跑的时候某一张图卡住、报错、输出空白都是正常现象。关键是不要让它中断整批任务。ComfyUI里可以通过工作流外层脚本或队列管理工具做到单张失败后继续下一张。如果用纯ComfyUI界面最简单的办法是把图片分批运行每批10到20张。每批跑完检查输出目录看有没有缺失文件。发现某张失败单独重新运行那张图不要整批重跑。日志也要提前看。批处理前先处理一张“困难样本”比如画面最复杂的图确认不报错后再开批量。这样能避免跑了一小时之后发现所有图都因为同一个节点问题失败。7. 常见问题与排查链路7.1 优先排查顺序遇到修复效果不对先按这个顺序排查不要直接怀疑模型能力看蒙版蒙版是否覆盖到了错误区域是否漏掉了真正的破损区域。看denoise重绘强度是否过低或过高。看ControlNet线稿提取是否正确strength是否合理。看VAE和融合修复区域颜色是否偏离原图。看采样参数CFG和steps是否适合当前模型。最后才看基础模型类型如果模型本身不适合局部重绘再换模型。多数情况下问题出在前三步而不是模型本身。比如“修复后两侧轮廓对不上”第一反应不要是换模型先看蒙版是否覆盖了完整的破损拓扑再看ControlNet strength是否太低。如果只把手指区域圈起来但没有给ControlNet提供整体手部轮廓模型就缺少“手从哪里开始、到哪里结束”的空间约束。7.2 常见错误及处理办法现象原因处理导入工作流报缺失节点缺少自定义节点或pip依赖按节点名称安装重启输出是空白图最终输出节点没连对检查输出图像节点连接修复区域糊掉denoise过高或蒙版过大降低denoise缩小蒙版修复区域颜色不对VAE连接丢失或融合缺失检查VAE和融合节点边缘有明显接缝mask blur不够增加羽化或混合边缘修复后结构还是错ControlNet未生效或strength太低查看控制图提升strength显存溢出分辨率太高、批量太大降低分辨率/批次/开低显存模式如果你用的是秋叶ComfyUI整合包某些自定义节点可能在整合包升级时被覆盖。升级前先备份custom_nodes目录避免工作流突然失效。7.3 边界场景和现实预期免提示词修复不是万能的。有几类场景目前仍然比较吃力大面积区域完全碎裂比如一整块纹理都消失了模型没有足够上下文可以推断原样。多重遮挡关系复杂比如手指交叉、多层织物叠压ControlNet线稿很难表达完整空间关系。特殊材质比如透明的玻璃、水面反射、复杂光照下的金属表面修复后容易出现材质偏差。遇到这些场景不要指望一套工作流通吃。更务实的做法是先修复结构再用传统PS或专用工具补充材质。或者把破损区域拆成更小的子区域分别修复再手工融合。另外要提醒一点Midjourney Explore适合前期找灵感、看风格参考它解决的是“我该生成什么”的问题。出图后的修复是另一个问题需要回到图像编辑工具链里解决。两者不要混在一起。最后说几句这套免提示词修复工作流真正落地时最该盯住的不是节点数量而是蒙版精度、重绘强度和结构控制强度这三件事。它们决定修复结果是否自然也决定批量任务能不能稳定复现。踩过几次之后我发现很多修复失败不是模型能力不够而是蒙版没有画准或者denoise拉得太高。把单张跑稳再考虑批量和接口是一个更不容易翻车的路径。如果你只是偶尔修一两张图默认参数加手动蒙版就够了。如果你打算批量处理请提前把输入命名、输出目录、日志检查这些琐碎环节处理好。工具能解决的是生成和重绘问题流程规范还是要自己建立。