尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

ComfyUI 跑 SDXL + Refiner:两段式去噪精炼文生图全指南

发布时间:2026/9/28 1:27:50

资讯中心
01
ARTICLE

ComfyUI 跑 SDXL + Refiner:两段式去噪精炼文生图全指南

ComfyUI 跑 SDXL + Refiner:两段式去噪精炼文生图全指南
简介资源内容为一份面向ComfyUI用户的SDXL与Refiner精炼文生图工作流配置主要用于在标准文生图之后追加一个精炼环节让画面在构图和细节上取得更均衡的表现适用群体是希望进一步提升出图质感、愿意实验节点化流程的创作者也适合刚刚开始接触ComfyUI、需要参照成熟连线方式的中级玩家。对于肖像、风景、概念设定等对光影与纹理有较高要求的题材尤为实用压缩包内仅包含1个JSON源文件整体包体大小约4KB导入ComfyUI后即可查看与运行不附带额外模型或依赖。当前已有138人浏览学习虽是小体积资源却具备典型的流程示范价值。JSON内容明确展示了基础采样与精炼采样两段式结构第一阶段负责生成整体画面第二阶段采用Refiner模型在较低降噪强度下对细节进行修正其中涉及的采样步数、CFG引导系数、降噪强度以及模型切换顺序等关键参数均有清晰配置。读者可以直接套用这套参数组合来复现精炼效果也可以通过逐步拆解节点连线理解文生图工作流的组合逻辑进而举一反三地构建更复杂的生成方案。1. 用 ComfyUI 跑 SDXL Refiner“精炼文生图”重点不是放大是两段式去噪不少人第一次接触 SDXL Refiner 这套组合以为 Refiner 是个放大镜——打开以后把图放大、变清晰。实际不是。Refiner 在 SDXL 里的角色是一个第二阶段去噪器Base 模型先画构图、光线和主体关系Refiner 在最后几步去噪里收拾纹理、皮肤和边缘细节。这也是为什么在 ComfyUI 里你要用两个 KSampler 串联而不是简单换一个模型。这套方案适合三类人觉得单张 SDXL 大图“远看还行、近看发糊”的人、做素材希望减少后期修图的人、以及显存不大又想比 WebUI 更可控地跑文生图的人。ComfyUI 的节点式编排把“精炼”拆成了看得见的两段每段改什么参数、影响图哪一部分都清清楚楚。2. 为什么值得加 RefinerSDXL 两阶段采样原理与接入选型2.1 精炼的本质Base 管构图Refiner 管细节扩散模型出图的本质不是“画一张图”而是从一个纯噪声张量开始按步把噪声一点点去掉。SDXL 把这件事拆成了两个模型接力完成Base 阶段占绝大多数去噪步骤此刻 latent 里还有大量结构噪声模型的主要任务是决定画面里有什么——主体在哪个位置、光线从哪边来、整体是什么色调。到了尾部噪声已经很少传统单模型往往会在这里糊弄过去把细节直接“猜”出来这也是很多 SDXL 单阶段出图近看发虚的原因。Refiner 就是专门为这段尾部训练出来的。它接收的是 Base 阶段已经成型的 latent只注入少量噪声再重新去噪相当于让另一个更擅长高频纹理的模型把皮肤毛孔、布料编织、金属刮痕这类细节重新过一遍。所以“精炼”发生在生成阶段和出图之后用放大模型修复细节是两条完全不同的路。理解这一点你就明白为什么 Refiner 阶段不能用太高 denoise——它不该从头再画只该在最后一段做精细活。2.2 双 KSampler 串联和“合体底模”两种接入方式怎么选在 ComfyUI 里接入 Refiner常见的有两种做法。第一种是标准双采样器串联CheckpointLoader 加载sdxl_base_1.0第一个 KSampler 用 denoise1.0 把整段采样跑完然后再用另一个 CheckpointLoader 加载sdxl_refiner_1.0第二个 KSampler 接收第一个采样器输出的 latent用较低的 denoise 继续采样最后再解码。这种方式的好处是两段完全独立Base 跑多少步、Refiner 跑多少步、用哪个采样器全都可以单独调精炼强度完全由你控制。第二种是直接用第三方“合体底模”——某些模型作者把 base 和 refiner 合并成一个 checkpoint 文件ComfyUI 里把它当普通单模型加载工作流看起来和普通文生图没有任何区别。它的优势是省事、稳定不会出现两个模型风格不匹配的问题但代价是精炼强度被固定在模型内部你无法单独调 Refiner 的步数和 denoise。接入方式精炼强度可调显存占用适合场景双 KSampler 串联完全可控两段模型交替加载可用低显存模式压峰值想理解原理、反复调细节合体底模单模型不可控较低只有一套模型常驻求稳定出图、不想折腾我一般建议第一次玩先走双 KSampler 串联哪怕最后你发现自己根本不需要 Refiner至少你能看清楚“精炼”这一步到底对画面做了什么。等找到一组满意的参数再决定要不要换合体模型来提速。2.3 显存与速度的账Refiner 什么时候不该用多一个采样器速度肯定更慢这是绕不开的成本。但显存不一定更紧张——ComfyUI 默认会做模型缓存当第二个 KSampler 要跑 Refiner 时Base 模型会被移出显存为 Refiner 腾位置。如果你开着--lowvram模式整个换入换出过程由 ComfyUI 自动管理峰值占用甚至可能比单模型连续采样更可控代价是每次切换模型都要等几秒重新加载。所以“值不值得加 Refiner”不是无脑回答。我的判断标准是看画面里有没有高频细节动物毛发、人物皮肤、布料纹理、金属反光、文字边缘这些对 Refiner 敏感加了之后肉眼可见地变干净反过来纯风景、大色块、柔和光线的画面Refiner 的收益就很有限去掉反而更快。批量测构图阶段也别开 Refiner——先用 Base 单模型快速筛掉不满意的构图最后定稿时再打开 Refiner 做精炼能省下一大半时间。3. 在 ComfyUI 里搭一套 SDXL Refiner 工作流安装、节点与第一张图3.1 安装与换源ComfyUI 本体、管理器与模型目录ComfyUI 的安装有两条路小白直接用秋叶一键整合包装完自带 Python 环境和依赖省去配置麻烦愿意自己动手的就用 git 和 pip处理起来更透明。不管哪条路国内网络环境下依赖下载是第一个坎。命令行方式装的时候记得换国内源# 拉取 ComfyUI 本体已经装过的可以跳过 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 用清华源安装依赖避免在默认源上卡进度 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 启动服务浏览器访问 http://127.0.0.1:8188 python main.py几个容易忽视的点。第一ComfyUI Manager 值得装它是后续装插件的入口没有它你只能手动把插件目录扔进custom_nodes。第二模型目录是models/checkpointsSDXL 的 base 和 refiner 两个文件都放在这里文件名随便起但建议保留sdxl_base、sdxl_refiner这样的前缀否则工作流里选模型时分不清谁是谁。第三SDXL 的 VAE 如果不内置单独下载sdxl_vae.safetensors放到models/vae解码阶段可以单独指定。装完之后先加载一个官方示例工作流确认能出图再进入下面的 SDXL 节点搭建。3.2 最小工作流一套可照抄的节点 JSON 与连接说明在 ComfyUI 界面里从零拖节点太慢建议直接导出 JSON 再导入。下面是一套最小可跑的 SDXL Refiner 工作流结构节点编号按 ComfyUI 的 API 格式组织导入后根据自己的模型文件名改一下ckpt_name就能用{ 4: { class_type: CheckpointLoaderSimple, inputs: {ckpt_name: sdxl_base_1.0.safetensors} }, 5: { class_type: CLIPTextEncode, inputs: { text: a professional close-up photo of a fox in autumn forest, detailed fur, soft window light, shallow depth of field, clip: [4, 1] } }, 6: { class_type: CLIPTextEncode, inputs: { text: lowres, bad anatomy, bad hands, extra fingers, missing digits, cropped, worst quality, jpeg artifacts, blurry, watermark, clip: [4, 1] } }, 10: { class_type: EmptySDXL, inputs: {width: 1024, height: 1024, batch_size: 1} }, 11: { class_type: KSampler, inputs: { model: [4, 0], positive: [5, 0], negative: [6, 0], latent_image: [10, 0], steps: 20, cfg: 7, denoise: 1.0, sampler_name: dpmpp_2m, scheduler: karras, seed: 123456 } }, 13: { class_type: CheckpointLoaderSimple, inputs: {ckpt_name: sdxl_refiner_1.0.safetensors} }, 14: { class_type: KSampler, inputs: { model: [13, 0], positive: [5, 0], negative: [6, 0], latent_image: [11, 0], steps: 10, cfg: 7, denoise: 0.3, sampler_name: dpmpp_2m, scheduler: karras, seed: 123456 } }, 15: { class_type: VAEDecode, inputs: {samples: [14, 0], vae: [4, 2]} }, 16: { class_type: SaveImage, inputs: {images: [15, 0], filename_prefix: sdxl_refined} } }这段结构里最关键的是节点引用关系。[4, 1]表示取节点 4 输出的第二个对象也就是 CLIP正负面提示词都用 Base 的 CLIP而不是 Refiner 的。很多第一次接 Refiner 的人在这里翻车给第二个 KSampler 单独接了 Refiner 的 CLIP结果两段采样用了不同文本编码器出图色调断层。同时节点 14 的latent_image接的是节点 11 的输出这是整个精炼流程的核心——Base 先画图Refiner 在它的 latent 上继续精修。最后解码必须用 Base 的 VAE也就是[4, 2]Refiner 不负责出 VAE。3.3 出图前的参数清单尺寸、步数、CFG、采样器参数没给对节点接得再漂亮也白搭。我先给一套 SDXL 时代的基准参数再解释每个数为什么这么定参数推荐值说明width / height1024 x 1024SDXL 训练网格就在 1024 附近512 会出构图崩坏Base steps20覆盖大部分去噪过程足够定下构图Refiner steps10只处理尾部低噪声段多一点少一点影响不大Refiner denoise0.3精炼强度太高会重画构图CFG6-7SDXL 的 CFG 超过 8 容易色彩过饱和sampler_namedpmpp_2m稳定性和细节平衡好新手上手首选schedulerkarras步进曲线更适合 SDXLbatch_size1显存不够的情况下一次只跑一张第一张图建议固定 seed把上面这套参数原样跑一遍。出图后不要急着改提示词先改 denoise 和步数观察变化。ComfyUI 里同样的工作流只调一个参数就能看到它对画面具体的影响在哪——这是节点化工作流最值钱的地方。4. 让 Refiner 别帮倒忙步数分配、denoise 边界与提示词案例4.1 步数怎么分Base 和 Refiner 各跑多少步Refiner 最常被误解的参数是 steps。有人把 Base 和 Refiner 都设成 30 步结果生成时间翻倍画面却变糊了——这不是模型不行是步数分配错了。Refiner 只处理噪声曲线的尾部它在完整采样中承担的职责本来就只有 20% 到 35%给它太多步数等于让它重复做已经做完的事反而增加不稳定。我常用的三组分配按速度和效果取舍方案Base stepsRefiner steps适用情况快速验证206看构图、批量筛图均衡通用2010大多数素材图的首选精细出图248对皮肤纹理、金属质感要求高注意一个原则Refiner 步数占总步数的比例尽量控制在 25% 到 30%。如果 Base 跑 20 步、Refiner 跑 20 步后者的低噪声段采样会过度细节被反复涂抹边缘反而变肉。另外两段的 seed 建议保持一致否则同一个 latent 经过两段不同随机过程构图容易跑偏。4.2 denoise 的合理区间0.25、0.3、0.4 怎么试出来denoise 是 Refiner 阶段真正需要花时间调的参数。它的含义是当前 latent 先被重新加入多少比例的噪声然后模型再从那个噪声水平开始去噪。denoise0.3 意味着 Refiner 只处理最后 30% 的噪声段画面整体结构几乎不动只重画高频细节。denoise 越高Refiner 对画面的发言权越大超过 0.5 之后它已经开始改动构图人脸结构被“二创”是正常现象。怎么找到自己这张图的合适值固定 seed把 denoise 依次设成 0.2、0.3、0.4 各跑一张然后放到看图软件里放大对比。看三个地方眼睛和眉毛边缘有没有发糊、头发丝是否粘连、文字区域有没有毛刺。如果 0.2 和 0.3 差距很小说明这组提示词下 Refiner 不需要太多干预如果 0.3 已经开始让结构变形就退回 0.25。我的经验是1024 分辨率下从 0.3 起步竖构图 768x1152 可以从 0.25 起步因为纵向信息更密集重画空间更小。4.3 SDXL 的提示词写法两个可直接用的正负提示词案例SDXL 的 CLIP 对自然语言的理解比 SD1.5 强很多提示词不需要写成“,逗号分隔的标签堆”完整的句子反而效果更好。下面是两个可以直接套用的模板正面提示词强调“主体 场景 镜头感 材质细节”负面提示词关注画面硬伤。正面提示词a professional close-up photo of a fox in autumn forest, detailed fur texture, soft window light, shallow depth of field, 8k high detail负面提示词lowres, bad anatomy, bad hands, extra fingers, missing digits, cropped, worst quality, jpeg artifacts, blurry, watermark, signature, out of frame注意负面提示词里worst quality和lowres这类词对 SDXL 的控制力没有 SD1.5 时代那么强但保留它们不会有害。真正影响细节的是正面描述里的detailed fur texture这类材质词以及shallow depth of field这种镜头语言。提示词不是越长越好堆砌几十个形容词会让 CLIP 的注意力被稀释。如果你发现细节跟上不提示词先别急着加词试试把现有句子里的核心名词提前比如把a fox in autumn forest提到句首出图质量往往比无脑加词更稳。5. ComfyUI 跑 SDXL 常见问题排查显存崩溃、图发灰、refiner 没生效5.1 现象批量出图闪退或报 CUDA out of memory现象单张图偶尔能出连续生成三四张后 ComfyUI 控制台报CUDA out of memory或者 Python 进程直接消失连报错都看不到。原因Windows 默认虚拟内存不够ComfyUI 在显存吃紧时会尝试把数据换到内存虚拟内存不足就直接被杀掉进程。另一个常见原因是启动时没开低显存模式模型全程驻留显存两张图之间没有释放空间。解决先把系统虚拟内存手动设到 32GB 以上最好放在 SSD 所在分区。然后按显存大小决定启动参数8GB 以下显存建议直接python main.py --lowvram8GB 到 12GB 可以试--normalvram让 ComfyUI 自己决定模型何时换入换出。这条经验几乎能解决九成闪退问题。5.2 现象接了 Refiner 后构图变了脸和结构被改歪现象Base 阶段生成的构图是正常的接入 Refiner 后五官位置变了眼睛一大一小甚至主体位置发生偏移看起来像换了一幅画。原因Refiner 阶段的 denoise 设得过高模型在重画中段噪声时重新解读了构图Base 的工作成果被覆盖掉了。另一个原因是我在 3.2 提过的正负面提示词用了 refiner 自己输出的 CLIP两段文本编码不统一也会造成风格漂移。解决把 Refiner 的 denoise 先降到 0.25 试一张。如果结构仍然不稳检查第二个 KSampler 的 positive 和 negative 接线是否指向节点 4 的 CLIP 输出。固定 seed 后两段都保持一致基本能锁定构图。5.3 现象出图发灰发闷色彩饱和度不对现象明明提示词写了 vibrant colors出图却像蒙了一层灰纱颜色偏淡偏冷和 WebUI 里跑出的同款模型判若两人。原因SDXL 的 VAE 没接对。很多 SDXL 第三方底模为了减小体积把 VAE 从 checkpoint 里拆了出去ComfyUI 加载后 VAE 通道是空的如果工作流里 VAEDecode 节点接的是空 VAE解码出来的图就是发灰的。解决单独下载sdxl_vae.safetensors放到models/vae在 VAEDecode 节点里手动选择它。如果用的是合体模型也建议检查它是否内置了完整 VAE在 ComfyUI 的加载节点里看 VAE 输出不为空才算正常。5.4 现象每次出图都在反复重新加载模型速度极慢现象第一张图用了 30 秒加载模型出图正常第二张图又开始“Loading model”像第一次一样慢不是预期的连续出图速度。原因双 KSampler 工作流里加载了两个大模型显存不足以同时驻留ComfyUI 在 Base 和 Refiner 之间反复换入换出。每次切换都要把模型权重从磁盘搬到显存这一来一回比采样本身还慢。解决显存足够的情况下关掉 lowvram让 ComfyUI 保留模型缓存显存不够就不要同时加载两个模型换成合并版底模或者接受换入换出的延迟。另外确认没有在后台挂着其他模型文件占显存比如之前测试用的其他 checkpoint 仍在缓存里。5.5 现象提示词写了一大串细节还是跟不上现象正面提示词写满了景色、光线、材质、风格词出图构图不错但纹理平平头发像塑料皮肤像磨皮过度。原因提示词的结构出了问题。堆砌形容词会把注意力均匀分散到每个词上关键材质词的权重反而被稀释。SDXL 对长句理解好但对无序罗列同样会“愣住”。解决把提示词重构成“主体 关键动作 光线 镜头 材质”的语法结构核心名词提前材质词单独成句。例如把fox, forest, fur, sunlight, close-up这种罗列改成完整句子。改完之后对比皮肤纹理和毛发细节比继续加词更有效。6. 把 Refiner 的价值再压一档小图精炼 二次放大的三段式流程当你能稳定跑通基础工作流之后可以试试把精炼做得更有性价比三段式出图。先让 Base 在 768x768 或 768x1024 的小分辨率下生成构图这一步速度快、显存压力小然后接 Refiner 低 denoise 精炼细节最后再用放大节点把 latent 放大到 2048 级别配合 Upscale 模型补一轮细节。这个流程比直接 1024 生成再整体放大要好因为 SDXL 在原生低分辨率下构图更自由Refiner 精炼过的细节经过放大后不会产生额外的结构扭曲。阶段作用关键参数第一步 Base 小图快速锁定构图768x768steps 20denoise 1.0第二步 Refiner 精炼处理高频细节steps 10denoise 0.3第三步 放大 细节增强输出大尺寸成图2x 或 4x缩放模型用 ULS 类验证这套流程是否有效方法是开两路一路跑同尺寸的 Base-only 出图另一路跑完整三段式同一套提示词和 seed放大到相同倍数后并排对比。重点看三处动物毛发边缘有没有锯齿、人物皮肤反光是否自然、背景小物体是否被放大成糊块。如果 Refiner 精炼过的图在这三点上有两处明显更好说明这套参数值得固化成模板。我现在的固定习惯是工作流里总保留一个 Refiner 开关批量测试构图时关掉定稿后打开不单独为每张图反复调参数。用同一个 seed 反复验证 denoise 和步数直到找到当前底模的最优组合然后存成工作流模板后续所有同风格图都从它派生。这个习惯帮我避开了很多“这次出图好、下次复现不了”的玄学问题。希望帮到你。本文还有配套的精品资源点击获取
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。