资讯动态

ComfyUI免提示词修复Midjourney破碎细节:ControlNet tile+低重绘幅度工作流

发布时间:2026/9/1 17:58:51 来源:尧图企业网站定制
Midjourney 出图很好看但有一个很影响体验的问题局部细节一放大就容易碎。头发碎成一片噪点、手指多出来一两节、衣服纹理像破布、皮肤跟磨砂一样。你重新抽卡又未必能抽到满意的构图沿用原提示词再生成出来的可能根本不是同一张图。这次我们来看一个更省事的处理思路在 ComfyUI 里用一套不需要写提示词的工作流直接对 Midjourney 生成的破碎细节做修复。核心做法是放低重绘幅度配合 ControlNet tile 锁住原图结构再用放大模型重新刻画纹理。整个过程不用重新设计提示词不用重抽卡只需要把你想要修复的图丢进来跑一遍工作流重点观察降噪幅度和 tile ControlNet 是否生效。这篇文章会从“破碎细节到底怎么来的”讲起再到 ComfyUI 环境准备、工作流节点接法、修复效果验证、接口 API 调用和批量修复最后给出一套通用的排查清单。如果你已经在用 ComfyUI或者手头有一堆 Midjourney 需要局部修复的图这篇可以直接按步骤操作。1. 核心能力速览先交代这套工作流的关键参数和适用边界方便你判断值不值得往下读。能力项说明项目类型ComfyUI 图像修复与放大工作流输入素材Midjourney 或其他 AI 生成的图片、摄影图、重绘后期图核心功能免提示词修复破碎细节、纹理重绘、局部重绘、放大重构主要节点Load Image、VAE Encode、ControlNet tile、KSampler、VAE Decode、Ultimate SD Upscale 或等效放大节点是否写提示词正向提示词留空负向可留默认或放少量通用负面词关键参数denoise 约 0.3-0.5CFG 约 4-7放大模型按本机显存选择显存需求需按实际模型版本测试tile ControlNet 可在较低显存环境运行支持平台Windows / Linux 下部署 ComfyUI 均可启动方式本地命令启动、秋叶一键整合包、API 服务启动是否支持 API支持ComfyUI 原生 /prompt 接口是否支持批量任务支持可批量丢图进队列适合场景Midjourney 成图精修、AI 图片放大、纹理修复、细节增强需要说明的是这套工作流的价值并不在于“发明了一个新模型”而是把已有的图生图、ControlNet、放大模型组合成一条固定流程。你不需要对每张图重新写提示词也不需要在 Photoshop 里一笔一笔修。1.1 哪些情况适合用手指、眼睛、牙齿等部位在放大后出现明显畸形。头发、皮肤、布料纹理呈现“破碎感”像细碎噪点拼出来的。构图满意但分辨率不够放大后出现涂抹感。同一个角色、同一套场景不想为了修复某个局部而重新生成。批量整理一批 Midjourney 图片希望统一修复后再进素材库。1.2 哪些情况不适合用整张图模糊、构图失败、主体完全错位这种请重新抽卡修复成本反而高。需要严格保留原图每一个像素不动只处理某个极小区域应该用局部重绘 Mask。对大幅细节有专业摄影级要求还是需要进入 Photoshop 或 Lightroom 做精细控制。2. 破碎细节是怎么产生的很多人以为 Midjourney 输出的图可以直接用但放大到 200% 以上就会发现局部经不起看。破碎感的来源主要有四个。第一Midjourney 本身是在潜空间里生成图像最终解码成像素图时高频细节会被模型“猜”出来。模型猜得准的区域就很清晰猜不准的区域就产生伪影和噪点尤其集中在手指、文字、复杂纹理这些难以建模的部位。第二放大过程中如果使用简单的邻近插值或普通放大算法边缘会出现锯齿、模糊和错误纹理。第三降噪器在生成阶段会优先保证整体构图对局部小结构的约束比较弱所以同一种材质在不同区域会出现不一致的破碎表现。第四当你把图送去给其他工具二次生成时如果重绘幅度太高模型会加入自己的想象导致原结构被破坏。理解这一点就能明白为什么“免提示词修复”这条路可行既然破碎细节是模型在潜空间里“猜”得不准确的结果那就让模型在低重绘幅度下再猜一次把局部猜得更合理。同时用 ControlNet tile 把原图的结构、边缘、空间关系锁住避免第二次猜测时改变构图或物体位置。2.1 为什么不是简单放大如果只是把分辨率调高破碎区域不会自动变好只会被放大得更大。修复的关键步骤是“重绘”不是“放大”。放大只是让模型有更多像素空间去重新生成纹理真正改变破碎状态的是 KSampler 里的降噪过程。所以我们看到很多修复工作流会把放大和重绘做在一起先解码回像素再用放大模型提升分辨率然后以低降噪幅度再做一次图生图。3. 免提示词修复的原理“免提示词修复”看起来像魔法实际原理可以拆成三个部分。3.1 空提示词 低降噪只重绘细节不重写构图正常的文生图提示词决定了画面里有什么。修复破碎细节时如果我们继续写提示词模型容易受文字影响把原有构图带偏比如把人物衣服改掉、背景多出东西。空提示词的方式等于告诉模型不要根据文字想象画面只根据输入图像本身的特征来重绘。低降噪数值是关键。denoise 越低输出越接近输入图denoise 越高模型重画的程度越大。修复破碎细节时一般从 0.3 开始太高会把原图改得面目全非太低则无法清理破碎区域。3.2 ControlNet tile 锁结构ControlNet tile 是一个专门处理“输入图结构保持”的控制模型。它会把原图切成 tile 块提取里面的空间关系并在采样阶段约束模型不要改变这些结构。有了它哪怕你用的是空提示词模型也会尽量保留原图的人物轮廓、位置、边缘和空间布局。这样可以放心把降噪幅度提到 0.4 甚至 0.5让模型有足够自由去修复细节同时不会把画面结构重画一遍。3.3 放大模型负责生成新纹理重绘过程中模型把破碎的纹理区域重新生成了一遍。为了确保生成后的纹理足够细腻我们通常会先做一次放大让模型在高分辨率下重绘。常见的做法是使用 Ultimate SD Upscale 节点配合 4x-UltraSharp 之类的放大模型把图片放大 1.5 到 2 倍然后再进入 KSampler 做低降噪重绘。放大后再重绘比先重绘再放大效果好很多因为模型在更高像素空间里有更多信息来校准细节。这三个部分组合起来就是一套典型的“无提示词修复”工作流加载图片 → 放大 → 图生图低降噪重绘 → 输出修复结果。4. ComfyUI 本地部署环境准备在开始搭工作流之前先确保 ComfyUI 能正常启动。这里区分两种典型方式一种是用整合包一种是手动安装。4.1 使用整合包快速启动如果你之前没装过 ComfyUI搜索“秋叶 ComfyUI 整合包”可以找到包含 Python、PyTorch、模型管理工具的打包版本。整合包的好处是依赖隔离、模型目录清晰适合第一次接触的用户。启动时进入一键启动脚本等待命令行出现本地地址然后在浏览器打开即可。http://127.0.0.1:81884.2 手动部署通用步骤手动部署的思路是先装 Python 环境再用 pip 安装依赖最后从源码启动。git clone https://github.com/comfyanonymous/ComfyUI cd ComfyUI建议创建独立的 Python 虚拟环境再安装依赖。安装完成后调用 main.py 启动服务。python main.py --listen 127.0.0.1 --port 8188如果使用 Windows 且需要调用本地显卡先确认 PyTorch 版本和 CUDA 版本匹配。搜索“ComfyUI 本地部署加速器”可以找到一些针对国内下载 PyTorch 和模型文件的加速方法这里不展开。4.3 建议准备的文件一个可用的 Stable Diffusion 模型例如基于 SD1.5 或 SDXL 的二次元或写实模型。对应的 ControlNet tile 模型文件需要放到 ComfyUI/models/controlnet 目录。一个放大模型例如 4x-UltraSharp 或 4x_NMKD-Siax放到 ComfyUI/models/upscale_models 目录。如果需要面部修复可以准备 FaceRestore 相关节点。4.4 显存与显卡要求这套工作流对显卡没有特别夸张的要求。SD1.5 级别的模型加上 ControlNet tile8GB 显存就能跑得很舒服如果使用 SDXL 模型建议 12GB 以上显存或者使用带 tiling 的低显存模式。实际占用需要根据本机测试确认因为放大模型、采样分辨率、是否启用 FaceRestore 都会直接影响显存。启动时可以观察任务管理器或 ComfyUI 控制台的显存日志不要只看启动时占了多少要看 KSampler 开始执行那一段的峰值占用。5. 工作流构建与一键导入ComfyUI 的界面是节点式的我们需要把“加载图片、放大、编码、ControlNet、采样、解码、保存”这些节点连成一条链路。下面给出一个完整的工作流描述并且会拆成节点序列。5.1 节点序列总览这是从输入到输出的主干链路Load Image - Image Scale / Upscale Model - VAE Encode - ControlNet Apply - KSampler - VAE Decode - Save Image其中 ControlNet Apply 需要两条输入一条来自 Load Image另一条来自 ControlNet Loader。5.2 分支链路细节第一步加载图片。使用 Load Image 节点选择需要修复的图。第二步放大可选。如果原图分辨率偏低可以先做一次放大。推荐使用 Ultimate SD Upscale 节点或者先通过 UpscaleModelLoader 加载放大模型再配合 ImageUpscaleWithModel 节点。UpscaleModelLoader - ImageUpscaleWithModel - 放大后的图像第三步潜空间编码。把图像用 VAE Encode 转换成潜空间数据KSampler 没法直接处理像素图。第四步加载 ControlNet。使用 ControlNetLoadermodel 选择 tile 相关的模型文件ControlNetApplyAdvanced 或 ControlNetApply 节点把图像条件附加到采样过程。第五步KSampler 采样。正向提示词留空使用 Claude 的最终版本进行编辑。确保保留所有章节标题、描述性内容、链接、图片引用的 Markdown 设置不改变结构与格式。直接返回完整翻译结果。Claude 最终版修改中文格式正向提示词留空负向提示词可以给少量通用负面词例如“worst quality, jpeg artifacts, blurry”也可以直接留空。steps 从 20 到 30 之间选cfg 从 4 到 7 之间选denoise 从 0.3 到 0.5 之间选。采样器可以用 dpmpp_2m调度器用 karras。第六步解码输出。KSampler 输出潜空间数据经过 VAE Decode 转成图像最后连接 Save Image 保存。5.3 关键参数记忆表参数推荐值作用steps20-30采样步数步数越高细节越稳定cfg4-7提示词引导强度空提示词下可偏低denoise0.3-0.5重绘幅度破碎严重时调高ControlNet strength0.6-0.9结构锁定强度越高越保构放大倍数1.5-2.0放大过大容易产生额外伪影upscale model4x-UltraSharp 等决定放大后的纹理质量5.4 工作流 JSON 导入思路ComfyUI 工作流可以通过“Load”按钮导入 JSON 文件也可以用“Export API”导出后用 API 方式调用。手动搭建时只要保证节点之间的连线匹配不需要强行套别人的 JSON。搜索“ComfyUI 工作流分享”时你会发现很多修复类工作流都长这样要么是 tile upscale要么是 face restore upscale套路基本一致。5.5 需要的自定义节点如果你用的整合包自带了 Custom Nodes 管理安装 “ComfyUI-Impact-Pack” 或 “ComfyUI_UltimateSDUpscale” 可以降低工作流搭建成本。如果只需要基础修复原生的 ImageUpscaleWithModel 加 KSampler 就够用不一定非要自定义节点。6. 修复效果验证流程搭建好工作流之后不要直接批量跑图。先把一张典型的破碎图拿来做验证。6.1 测试图选择选一张同时具备以下特征的图效果最直观人物手指附近有破碎、头发纹理噪声明显、放大后局部有涂抹感。Midjourney 生成图放大到两倍左右很容易找到这类区域。6.2 操作步骤第一步把测试图拖入 ComfyUI 的 Load Image 节点。第二步确认正负提示词都为空或者只保留负向通用词。第三步把 denoise 设到 0.35先跑一遍。第四步对比输出图和原图重点看手指、头发、皮肤纹理是否变平滑。第五步如果整体变化不明显把 denoise 提高到 0.45 再试。第六步如果构图被改了把 ControlNet strength 提高或者降低 denoise。6.3 判断成功的标准成功的修复应该满足三个条件破碎区域趋于自然、整体构图和原图基本一致、没有新增明显的伪影和色块。如果你发现输出图虽然细节干净了但人物五官变了、背景物体移位了说明重绘幅度太高或 ControlNet 强度太低。6.4 常见失败现象失败现象原因调整方向细节变干净但人物不像denoise 过高降到 0.3-0.35输出图几乎没变化denoise 过低或 ControlNet 过强提高 denoise降低 CN 强度出现大面积色块放大模型不匹配换模型或降低放大倍数显卡显存不足分辨率太大或模型太大先用小图测试或开启低显存优化节点报错缺少自定义节点或 ControlNet 文件未放好检查节点安装和模型目录7. 接口 API 与批量修复调用ComfyUI 本身开放了 HTTP 接口可以理解为一个本地部署的图像生成服务。如果你想给一堆 Midjourney 图片做批量修复不需要手动在界面里一张张拖图直接写脚本调用接口就行。7.1 启动 API 服务启动时只需要保持 ComfyUI 在运行默认接口就是可用的。python main.py --listen 127.0.0.1 --port 81887.2 通过 WebSocket 或 /prompt 接口提交任务ComfyUI 的 API 调用方式是先通过工作流的 API 格式 JSON把客户端 id 设置好再 POST 到 /prompt 接口。下面给出一段通用示例你需要替换成自己的工作流 JSON 和图片路径。import json import urllib.request def queue_prompt(prompt, client_id): data json.dumps({ prompt: prompt, client_id: client_id }).encode(utf-8) req urllib.request.Request( http://127.0.0.1:8188/prompt, datadata, headers{Content-Type: application/json} ) with urllib.request.urlopen(req) as resp: return json.loads(resp.read()) # 这里的 prompt 应该是你在 ComfyUI 中导出后的 API 格式工作流 # 并且把 LoadImage 的 image 参数改成你本机的输入文件名。 api_prompt { 3: { class_type: LoadImage, inputs: { image: mj_broken_001.png } }, 5: { class_type: KSampler, inputs: { seed: 42, steps: 25, cfg: 5.0, sampler_name: dpmpp_2m, scheduler: karras, denoise: 0.4, model: [10, 0], positive: [4, 0], negative: [4, 1], latent_image: [9, 0] } } } print(queue_prompt(api_prompt, test-client))注意API 格式的 JSON 必须从 ComfyUI 工作流编辑器里导出直接手写容易漏节点之间的引用关系。7.3 批量目录处理思路批量处理时建议写一个目录遍历脚本对输入目录里的每一张图都调用一次 /prompt 接口然后把输出文件重命名保存。import os import json import time import urllib.request input_dir ./input_mj output_dir ./output_fixed os.makedirs(output_dir, exist_okTrue) for filename in os.listdir(input_dir): if not filename.lower().endswith((.png, .jpg, .jpeg)): continue # 用该文件名替换工作流 JSON 中的 LoadImage 输入 # 并调用 /prompt 接口 print(submitting:, filename) time.sleep(1)实际使用中你还需要监听 WebSocket 来判断任务是否完成避免连续提交导致显存突发占用。更稳妥的工程做法是用一个任务队列一次只跑一个任务完成后再提交下一个。7.4 失败重试建议网络请求超时调大 urllib 的超时时间或者使用 requests 库timeout 设置到 120 秒。显卡显存不足批量队列里串行执行不要同时提交多个任务。输出图像没生成检查工作流里是否连接了 Save Image 节点并确认输出目录有写入权限。8. 资源占用与性能观察不少用户第一次跑这套工作流最担心的是显存是否够用。与其给一个固定数字不如先掌握观察方法。8.1 如何观察显存占用ComfyUI 控制台会在每个节点执行时输出一些日志信息但显存占用通常要借助外部工具观察。Windows 下可以直接打开任务管理器在“性能”栏里看 GPU 显存曲线。跑 KSampler 时显存会明显抬升跑 VAE Decode 时同样会有一个峰值。如果你用的是 Linux 服务器用nvidia-smi观察更直接。8.2 影响性能的因素分辨率分辨率越高潜空间张量越大显存占用上升明显。denoise对显存影响不大但会影响采样耗时。ControlNet会增加一次额外的模型推理显存占用会小幅上升。放大模型放大倍数越大后续 KSampler 处理的像素越多耗时越长。批量数批量跑多张图时显存占用接近线性增加建议逐张跑。8.3 降低显存占用的通用方法先用低分辨率测试工作流确认效果后再上高分辨率。调整 ComfyUI 的启动参数例如--lowvram或--novram适合显存较低的环境。使用支持 tile 的 ControlNet 时系统会在局部块中处理显存占用比整图处理更稳定。放大倍数不要一下拉满先用 1.5 倍测试。避免同时打开多个 ComfyUI 页面重复生成任务。9. 常见问题与排查方法如果你运行这套工作流时遇到启动失败或节点报错可以按下面这个表格快速定位。常见错误在 ComfyUI 社区里搜“节点在执行过程中发生错误”就能看到大量类似案例。问题现象可能原因排查方式解决方案启动后页面打不开端口被占用或服务未启动检查控制台日志和端口状态更换端口或重启服务缺少 ControlNet 模型文件模型没有放到 models/controlnet 目录查看启动日志的模型列表下载对应模型并放到正确目录tile 节点报错ControlNet 版本不兼容或节点未安装查看具体报错堆栈更新节点或换用 ControlNetApply 简单版输出图模糊放大倍数不够或 denoise 太低对比原图放大区域提高放大倍数或 denoise显存不足分辨率过高或模型过大观察显存峰值开启低显存模式降低分辨率API 调用返回 400工作流 JSON 格式不对检查 JSON 里节点 ID 引用从 ComfyUI 导出 API 格式后再改参数批量任务卡住串行队列未做任务判断查看脚本日志增加 WebSocket 完成监听或超时重试秋叶整合包启动失败Python 依赖被破坏或模型路径不对检查整合包日志重新初始化整合包环境或手动安装依赖9.1 秋叶整合包使用特别说明如果你用的是秋叶一键整合包启动前先确认整合包版本是否自带 ControlNet 自定义节点和放大模型。很多整合包默认只带了基础组件你需要通过“自定义节点”菜单补装。安装自定义节点后如果 ComfyUI 提示缺少依赖可以进整合包目录手动执行一次 pip install把控制台报错的包名装进去。9.2 显卡驱动与 PyTorch 版本如果 KSampler 执行时报 CUDA 相关错误优先检查 PyTorch 版本和显卡驱动是否匹配。ComfyUI 官方对 PyTorch 版本有明确建议升级驱动或者用 CPU 模式跑一遍可以快速判断是不是显卡环境问题。CPU 模式速度很慢但可以用来验证工作流逻辑是否正确。10. 最佳实践与合规边界这套修复工作流本质上是“用 AI 重绘原有 AI 生成图”因此在真实项目里有几条工程和合规建议值得记下来。10.1 工程侧建议第一次测试用小图、低 denoise、低采样步数先确认工作流能完整跑通。保留一套最小可运行配置例如固定用 SD1.5 模型固定用 0.4 denoise遇到项目再微调。输入素材、输出结果、工作流 JSON 分目录存放不要混在一起。批量任务建议输出文件名包含原文件名方便回溯。批量任务一定要有日志和失败重试机制。最简单的方式是记录每个文件名对应的提交时间和返回状态码。API 服务只监听 127.0.0.1不要直接暴露到公网。ComfyUI 的接口可以执行任意工作流暴露到公网有被滥用的风险。定期清理输出目录防止大量图片堆积导致磁盘写满。10.2 合规与授权边界Midjourney 生成图、真人照片、他人插画修复前必须确认你是否有使用和修改的权利。如果图片包含真实人物、品牌元素、受版权保护的素材需要获得相应授权。修复肖像类图片时注意不要被误用为生成欺骗性内容。建议在项目文档中标注“AI 修复/后期处理”的用途。不要用这套工作流去处理涉及敏感内容的图片也不要对他人作品进行未经许可的商业化修改。10.3 什么时候停止修复修复不是越重越好。当输出图已经开始偏离原构图或者局部出现新的纹理错误时说明重绘过猛。工程上建议固定一个“接受阈值”与原图的结构相似度、局部纹理自然度、人物五官一致性。三者有两个达标就可以停在这里不必追求完美。11. 总结与后续扩展这次我们完整拆解了“免提示词修复 Midjourney 破碎细节”这套 ComfyUI 工作流。它的核心价值不是某个神秘模型而是把空提示词、低降噪、ControlNet tile、放大重绘这几个成熟方法组合成一条可复用的流程。最值得先验证的功能就是 0.35 到 0.45 的 denoise 下破碎区域有没有变自然构图有没有保住。最容易踩的坑有三个一个是 denoise 太高导致人物五官被重画一个是 ControlNet tile 文件没放对目录导致节点报错还有一个是批量任务里连发太多请求直接爆显存。把这三个问题控制住这套工作流就能稳定服务你的日常修图。后续可以继续扩展的方向不少把 FaceRestore 节点接进来专门修复人脸细节接入更高质量的放大模型例如适合写实图片的 4x 模型也可以把工作流导出为 API 格式接入你现有的图片处理平台做成自动化的批量修复服务。建议先把本文的节点链路手工搭一遍确认效果后再考虑接口化和工程化。这套思路同样可以迁移到 Stable Diffusion 生成的图片、老照片放大、游戏截图纹理修复等场景。区别只在于输入图的分辨率和破碎程度节点结构和参数逻辑基本一致。收藏备用下次遇到 Midjourney 局部细节翻车不需要重新抽卡了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价