5149 字
26 分钟

Mac M4 上 Z-image 模型采样器实战优化

在 Mac mini M4 (24G 内存) 上运行 ComfyUI 时,Z-image 这类蒸馏模型以其极快的响应速度成为首选。为了突破极低步数带来的质感瓶颈,采用“双采样器(Dual Sampler)”的串联逻辑是目前公认的最优解。

通过实测总结了两个核心场景的连接方案,重点在于如何通过采样器的交棒,既保留画面的灵性,又补充工业级的细节。如同一篇好文章是反复修改润色出来的,图像生成也同样受益于分阶段的精细处理 finance.sina.com.cn, csdn.net


ComfyUI KSampler 核心参数概览#

在详细介绍方案之前,有必要了解 ComfyUI KSampler 节点的核心参数:

  • model: 指定用于生成样本的模型。
  • sampler_name: 决定了从随机噪声逐步生成图像的数学算法。不同的采样器在速度、细节表现和结果一致性上表现不同,例如 ancestral 类型的采样器会持续添加噪声,增加每步采样的随机性,从而产生更具“灵性”的输出 comfyui-wiki.com
  • scheduler: 控制降噪过程的步进节奏,即在每一步如何调整降噪强度。karrasbeta 等调度器可以优化低步数下的图像质量。
  • steps (步数): 采样器执行降噪迭代的次数。步数越多,细节通常越丰富,但生成时间也越长。Z-image 模型的一大优势就是在极低步数下也能出图。
  • cfg (Classifier Free Guidance): 控制生成图像对正向提示词的遵循程度。CFG 值越高,图像越严格遵循提示词,但过高可能导致画面失真或过度饱和。对于 Z-image,本文强调强制锁定在 1.0
  • denoise (重绘幅度): 在图生图或多阶段采样中,决定在新生成的细节中保留多少原始潜像的信息。1.0 意味着完全重绘,而 0.0 意味着完全保留原始图像。通常通过 start_at_step (开始降噪步数) 和 end_at_step (结束降噪步数) 来更精细地控制 comfyui-wiki.com
  • noise_seed: 噪声生成的随机种子。固定种子可确保重复生成相同图像。
  • add_noise: 是否在 Latent 输入中添加噪声。在首次生成时通常启用,在后续阶段可能禁用。
  • latent_image: Sampler 的 Latent 输入来源,可以是空白 Latent 或前一阶段的 Latent 输出。

VAE 瓦片式(Tiling)参数详解与配置建议#

这是处理大尺寸图像时避免内存溢出的关键优化,特别在 Mac mini M4 这种统一内存架构上至关重要。

VAE (瓦片式) 节点参数示例:
tile_size: 512
overlap: 64
temporal_size: 64
temporal_overlap: 8
  • tile_size (瓦片大小): VAE 每次处理的图像小块 (瓦片) 的边长 (像素值),默认通常是 512。这是非常安全且普遍适用的尺寸。对于 Mac mini M4 (24G 内存),512 是一个无需更改的优秀默认值,在内存占用和处理效率之间取得了很好的平衡。
  • overlap (重叠): 每个瓦片与其相邻瓦片之间的重叠像素数量,默认通常是 64。这能有效防止瓦片之间出现“接缝”或不自然边界。64 是一个非常好的默认值,通常能够有效消除绝大多数接缝问题。如果仍有接缝,可尝试增加到 96128
  • temporal_size (时间大小) 和 temporal_overlap (时间重叠): 这两个参数主要用于视频或连续帧处理,在处理单张静态图像时,它们的作用可以忽略。保持默认值 (648) 即可,或设为 1

🎨 方案一:文生图·细节拉满流 (总步数 18,Refiner 重绘幅度约 0.3)#

目标: 解决单次采样构图死板的问题。第一级找“灵感”,第二级填“质感”。通过精细控制总去噪步数和重绘幅度,在保证整体去噪效率的同时,让精修阶段发挥最大作用。

🔗 节点连接逻辑#

graph TD A[提示词与模型加载] --> B(Sampler 1: Euler A + Beta) B -- "Latent (保持原参数直接传递)" --> C(Sampler 2: ER SDE + Beta) C --> D[VAE Decode] D --> E[最终细节成品]

🛠️ 采样器配置经验#

假设我们希望总的去噪步数控制在 18 步,并且第二个采样器(Refiner)的有效重绘幅度(Denoise)为 0.30.30.350.35 左右

计算 Sampler 2 的 start_at_step

如果 Sampler 2 的 steps 参数设置为整个工作流的总步数(即 18),且希望其重绘幅度为 0.30.30.350.35。我们可以取一个中间值,比如 0.330.33

则 Sampler 2 开始介入的步数应为: start_at_step=总步数×(1目标重绘幅度)=18×(10.33)18×0.6712start\_at\_step = \text{总步数} \times (1 - \text{目标重绘幅度}) = 18 \times (1 - 0.33) \approx 18 \times 0.67 \approx 12

这意味着第一个采样器将负责前 12 步的去噪,然后第二个采样器从第 12 步开始接手,完成剩余的 1812=618 - 12 = 6 步。此时有效重绘幅度为 6/180.3336 / 18 \approx 0.333

  1. 第一级 (Base) Sampler (K采样器 (高级) 配置): 负责“无中生有”并奠定基础构图。

    • sampler_name: euler_ancestral (或 euler_a)。
      • 经验与注意点: euler_ancestral 在每步采样中引入少量随机噪声,赋予图像独特的“灵气”和多样性,非常适合在第一阶段探索多样化的构图和创意,避免 AI 生成图像常见的呆板感 comfyui-wiki.com
    • scheduler: beta
      • 经验与注意点: beta 调度器能提供平衡稳定的降噪过程,与 euler_ancestral 配合,有助于在低步数下快速形成可辨识的初始画面。
    • steps (总步数上下文): 12 步。
      • 经验与注意点: 根据上述计算,第一级采样器需完成 12 步的去噪,以便为第二级采样器留出 6 步(总共 18 步完成)的精修空间。
    • cfg: 1.0
      • 经验与注意点: 严格遵循 Z-image 模型的要求,CFG 锁定为 1.0。这是为了确保两个采样器能平滑衔接,避免在第二阶段出现色彩溢出或“焦黑”等伪影。
    • noise_seed: 建议在探索阶段设置为 -1 (随机)。
      • 经验与注意点: 若希望每次生成不同构图以探索创意,可将此项设置为 -1 (随机)。一旦发现满意的构图,务必记录下该次生成的种子值**,并将其固定在此处以实现精确复现。**
    • add_noise: enable
    • start_at_step (开始降噪步数): 0
      • 经验与注意点: 对于第一个采样器,它应始终从去噪过程的起点 (0) 开始。
    • end_at_step (结束降噪步数): 12
      • 经验与注意点: 应与该采样器的 steps 参数值一致,表示它完成其分配的 12 步去噪。
    • return_with_leftover_no...: enable
      • 经验与注意点: 确保将部分去噪后的 Latent 图像以及任何剩余的噪声信息(如果采样器算法需要)传递给后续的采样器。
    • latent_image: 连接自 Empty Latent Image 节点,用于设定图像的初始尺寸(例如,SDXL 模型推荐使用 1024x1024)。
  2. 第二级 (Refiner) Sampler (K采样器 (高级) 配置): 负责填充细节,提升画面质感。

    • sampler_name: er_sde (通常指 dpmpp_sde 或其 _gpu 优化版本)。
      • 经验与注意点: dpmpp_sde 系列采样器擅长生成高细节、具有摄影感的效果,尤其在处理纹理、光影等复杂细节方面表现卓越 comfyui-wiki.com。它能有效地将第一级粗略的构图转化为具有“工业级细节”的图像,弥补低步数 Z-image 在质感上的不足。
    • scheduler: beta
      • 经验与注意点: 继续使用 beta 调度器,以维持整个工作流的连贯性和稳定性。
    • steps (总步数上下文): 18 步。
      • 经验与注意点: 这设置了整个去噪过程的“总概念步数”。此采样器将根据 start_at_stepend_at_step 在此总步数范围内工作。
    • cfg: 1.0
      • 经验与注意点: 继续保持 1.0 CFG,确保第二级采样器在第一级的基础上进行细化,而不是重新解释提示词。
    • noise_seed: 建议设置为一个固定数字 (例如 0)。
      • 经验与注意点: 为了验证精修阶段的稳定性和效果,通常会将其设置为固定数字,或者设置为与第一级采样器当时生成时使用的相同种子值**(如果第一级是随机生成的话)。将此种子固定,有助于保持精修过程的内部一致性。**
    • add_noise: disable
      • 经验与注意点: 由于输入是部分去噪的 Latent 并且我们通过 start_at_step / end_at_step 控制重绘,此阶段不应额外添加噪声。
    • start_at_step (开始降噪步数): 12
      • 经验与注意点: 这是实现约 0.330.33 重绘幅度的关键。它表示第二个采样器将从总去噪过程的第 12 步开始接手工作。
    • end_at_step (结束降噪步数): 18
      • 经验与注意点: 应与该采样器的 steps 参数值(即整个工作流的总步数)一致,表示它在此总步数内完成去噪过程。

🔍 方案二:高清修复·图片放大流#

该方案的 KSampler 设置也遵循 Z-image 的 CFG 1.0 和低步数原则。主要区别在于中间的放大环节和 denoise 参数的精细控制。

方法 A:Latent 潜空间放大(类似 Hires.fix)#

这种方式在采样器之间插入一个 Upscale Latent 节点,速度最快,适合对原图进行一定的二次创作。

🔗 连接逻辑:

graph TD A[Sampler 1: DPM++ 2M SDE + Beta] --> B{Upscale Latent} B -- "放大后的潜空间" --> C(Sampler 2: ER SDE + Beta) C --> D[VAE Decode] D --> E[最终细节成品]
  • Sampler 1 (K采样器 (高级) 配置): 负责生成一张高质量底图。

    • sampler_name: dpmpp_2m_sde (或 dpmpp_2m_sde_gpu)。
      • 经验与注意点: dpmpp_2m_sde 系列采样器在多轮采样中具有出色的稳定性,能够生成结构极其稳健的图像。这对于后续的潜空间放大至关重要,能确保放大后图像的基础结构不发生崩坏。
    • scheduler: beta
    • steps (总步数上下文): 5-8 步。
      • 经验与注意点: 保持 Z-image 的低步数优势,生成一个足够精致的初始潜像。例如,可设置为 6 步。
    • cfg: 1.0
    • noise_seed: 建议使用固定整数,确保生成的底图可复现。
    • add_noise: enable
    • start_at_step (开始降噪步数): 0
    • end_at_step (结束降噪步数): 应与该采样器的 steps 参数值一致。例如,6
    • latent_image: 连接自 Empty Latent Image 节点。
  • Upscale Latent 节点 (中间环节):

    • 经验与注意点: 此节点直接在潜空间中执行放大操作,因无需 VAE 编解码而速度极快。请设置合适的 scale_factor (例如 1.52.0)。
  • Sampler 2 (K采样器 (高级) 配置): 在 Latent 放大后,介入修复模糊感并补充高频细节。

    • sampler_name: er_sde (或 dpmpp_sde 变体)。
      • 经验与注意点: 再次利用其强大的细节生成能力,修复潜空间放大可能带来的轻微模糊,并添加放大的图像所缺少的高频细节。
    • scheduler: beta
    • steps (总步数上下文): 例如,设置总步数为 18
    • cfg: 1.0
    • noise_seed: 可以使用与第一级相同的种子,或略微增加以增加细微随机性。
    • add_noise: disable
    • start_at_step (开始降噪步数): 根据目标重绘幅度 0.3 - 0.4 进行计算。例如,如果总步数是 18,目标重绘幅度是 0.350.35,则 start_at_step=18×(10.35)=18×0.65=11.712start\_at\_step = 18 \times (1 - 0.35) = 18 \times 0.65 = 11.7 \approx 12
    • end_at_step (结束降噪步数): 应与该采样器的 steps 值一致。例如,18

方法 B:模型放大 + 像素重采样(极致清晰)#

这种方式将图片转为像素空间,通过 Upscale 模型放大后再重新编码回潜空间,能够获得最锐利的边缘。

🔗 修正后的连接逻辑:

graph TD A[Sampler 1 DPM++ 2M SDE Beta] --> |Model| B1[VAE Decode 瓦片式] B1 -- "原始图像 像素" --> C[Upscale Image via Model] C -- "高清图像 像素" --> D1[VAE Encode 瓦片式] D1 -- "高清 Latent" --> E[Sampler 2 ER SDE Beta] E -- "最终高清 Latent" --> G1[VAE Decode 瓦片式] G1 --> F[最终大图 像素]
  • Sampler 1 (K采样器 (高级) 配置): 负责生成一张高质量底图。

    • sampler_name: dpmpp_2m_sde (或 dpmpp_2m_sde_gpu)。
    • scheduler: beta
    • steps (总步数上下文): 5-8 步。例如,6 步。
    • cfg: 1.0
    • noise_seed: 固定整数。
    • add_noise: enable
    • start_at_step (开始降噪步数): 0
    • end_at_step (结束降噪步数): 应与该采样器的 steps 参数值一致。例如,6
    • latent_image: 连接自 Empty Latent Image 节点。
  • B1((VAE Decode (瓦片式))) (第一个 VAE 解码器)

    • 经验与注意点: 用于将 Sampler 1 的 Latent 输出解码成像素形式的“原始图像”,因为 Upscale Image via Model (C 节点) 是在像素空间操作的。
    • Mac 专属优化: 右键点击 VAE Decode 节点,选择 Enable Tiling (启用瓦片式)。参数配置推荐 tile_size=512, overlap=64
  • Upscale Image via Model 节点 (中间环节):

    • 经验与注意点: 此节点需要加载一个独立的超分模型 (例如 4x-UltraSharp, ESRGAN 等)。请确保您已将相应的 upscale_loader 文件放置在 ComfyUI 的 models/upscale_models 目录下,并在节点中选择正确的模型。这个模型负责在像素空间中增加图像的分辨率和锐度。
  • D1((VAE Encode (瓦片式))) (VAE 编码器)

    • 经验与注意点: 将经过模型放大后的“高清图像”(像素)重新编码回 Latent 潜空间,作为 Sampler 2 的输入。由于这里的像素图像已经是高分辨率的了(例如 2048x2048 或更大),所以此处强烈建议使用 VAE Encode (瓦片式)
    • Mac 专属优化: 同样,右键点击 VAE Encode 节点,选择 Enable Tiling (启用瓦片式)。参数配置推荐 tile_size=512, overlap=64
  • Sampler 2 (K采样器 (高级) 配置): 接收高清 Latent,进行最终的精修。

    • sampler_name: er_sde (或 dpmpp_sde 变体)。
    • scheduler: beta
    • steps (总步数上下文): 例如,设置总步数为 18 (或根据实际需求调整)。
      • 经验与注意点: 鉴于图像已经过模型放大,细节已大幅提升,因此第二级的步数通常可以适中,做轻微的优化。
    • cfg: 1.0
    • add_noise: disable
    • noise_seed: 使用与第一级相同的种子,或略微增加。
    • start_at_step (开始降噪步数): 根据重绘幅度 0.25 - 0.35 进行计算。例如,如果总步数是 18,目标重绘幅度是 0.30.3,则 start_at_step=18×(10.3)=18×0.7=12.613start\_at\_step = 18 \times (1 - 0.3) = 18 \times 0.7 = 12.6 \approx 13
    • end_at_step (结束降噪步数): 应与该采样器的 steps 值一致。例如,18
  • G1((VAE Decode (瓦片式))) (第二个 VAE 解码器)

    • 经验与注意点: 用于将 Sampler 2 (E 节点) 输出的最终优化过的高清 Latent 解码成像素形式的“最终大图”。
    • Mac 专属优化: 由于这是处理已经过放大且由 Sampler 2 优化过的高清 Latent,其解码出的像素图像分辨率会很高。强烈建议在此 VAE Decode 节点上右键点击,选择 Enable Tiling (启用瓦片式)。参数配置推荐 tile_size=512, overlap=64

🛠️ Z-image 避坑与进阶参数总结#

  • CFG 强制锁死 1.0
    • 经验与详细: Z-image 模型对 CFG 的敏感度极高。当 CFG 值超过 1.5 时,特别是第二阶段的采样,极易出现明显的色彩溢出、细节过度锐利导致的“焦黑”感,或者画面元素出现不自然的光晕。将 CFG 保持在 1.0 确保了降噪过程的温和与稳定,使得两个采样器能够以最和谐的方式协作,从而获得干净、自然的出图效果。
  • 重绘幅度 (Denoise) 的黄金分配 (通过 start_at_step 控制):
    • 文生图细节流 (0.3 - 0.35): 针对总步数 18 的文生图场景,将第二级采样器的有效重绘幅度控制在 0.30.30.350.35 是一个经过实测的良好平衡点。这意味着第二级采样器从总去噪过程的 18×(10.35)=11.71218 \times (1 - 0.35) = 11.7 \approx 12 步开始介入。这个值允许 Sampler 2 引入足够的新信息来增加皮肤毛孔、服装纹理和环境光影等高频细节,显著提升画面的“质感”,同时又不会激进地改变 Sampler 1 定义的初始构图和人物特征,有效避免了“变脸”问题。
    • 放大流 (0.25 - 0.4): 在放大场景中,由于图像尺寸的增加,新的细节空间也随之扩大。将第二级采样器的有效重绘幅度控制在 0.250.250.40.4 的较低范围,意味着 Sampler 2 更多地扮演“修补”和“强化”的角色,而不是“重绘”。它的主要任务是修复放大过程中的可能模糊,以及精细化边缘。严禁通过 start_at_step 控制的有效重绘幅度超过 0.5,否则图像内容会变得与原始结构脱离,导致“换脸”或过度创作。Z-image 的极快步进速度意味着高 Denoise 会带来巨大的修改量,导致放大后的画面细节与原图完全断层,失去放大的意义。
  • 噪声种子 (noise_seed) 的灵活运用:
    • 探索创意阶段(Sampler 1 随机,Sampler 2 固定): 为了快速生成不同构图以探索创意,可以将第一个采样器的 noise_seed 设置为 -1 (随机),而第二个采样器的 noise_seed 设置为固定的数字(例如 0)。这样,每次运行 Sampler 1 都会产生新的初始构图,而 Sampler 2 则以其固定的“精修风格”来处理这些不同的初稿。这样做有助于评估 Sampler 2 的通用性和一致性。
    • 复现细节阶段(Sampler 1 固定,Sampler 2 固定): 当你从随机探索中找到一个满意的构图后,务必记录下该次 Sampler 1 生成使用的种子。然后将 Sampler 1noise_seed 也固定为该值,Sampler 2 保持固定种子。这样你就可以精确地复现带有特定构图和精修细节的图像。
  • Mac 专属优化:
    • 由于 M4 (24G) 使用的是统一内存,在方法 B 的放大流程中,图片尺寸一旦超过 2048px,强烈建议在 VAE DecodeVAE Encode 节点上点击右键,选择开启 Tiled (瓦片式) 模式,并使用推荐参数 (tile_size=512, overlap=64),这样可以有效防止显存溢出导致的 ComfyUI 重启。

💡 总结建议#

  • 追求“灵气”和“动态”的初始构图: 请务必使用 Euler A + Beta 作为第一级采样器。它独特的随机噪声添加机制能帮助您摆脱 AI 绘画常见的对称和僵硬,捕捉更具生命力的构图。在创意探索阶段,其 noise_seed 可设置为随机,一旦满意则记录并固定。
    • 经验配置示例 (总步数 18,Refiner 重绘幅度约 0.33): steps: 12, start_at_step: 0, end_at_step: 12
  • 追求“稳健”和“放大”场景的结构一致性: 第一级首选 DPM++ 2M SDE + Beta。它的稳定性和高质量细节生成能力,能像模具一样精准锁定图像结构,为后续的放大或精修提供一个可靠且不易变形的基础,使放大成功率接近百分之百。其 noise_seed 通常建议固定。
    • 经验配置示例 (总步数 18,Refiner 重绘幅度约 0.33): steps: 12 (或根据总步数和目标重绘幅度计算), start_at_step: 0, end_at_step: 12
  • 所有场景的“画质压阵”和细节提升: 第二级采样器统一选择 ER SDE + Beta (即 dpmpp_sde 及其变体)。无论是在文生图还是图像放大场景,其卓越的细节处理能力都能对图像进行最终的质感强化,为画面带来更丰富的纹理和层次。其 noise_seed 可设置为固定值以确保精修过程的稳定。
    • 经验配置示例 (总步数 18,Refiner 重绘幅度约 0.33): steps: 18 (总目标步数), start_at_step: 12 (根据重绘幅度计算), end_at_step: 18。 (有效执行去噪 1812=618 - 12 = 6 步,重绘幅度 6/180.336/18 \approx 0.33 ) yghub.com

这套逻辑不仅发挥了 Z-image 极速出图的优势,还通过多级采样解决了低步数模型质感偏“肉”的通病,是在 Mac mini M4 上兼顾效率与画质的最优工作流方案 csdn.net。通过系统地运用这些策略和工具,可以像编辑润色文章一样,将图像从初稿打磨成精品。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Mac M4 上 Z-image 模型采样器实战优化
https://blog.moewah.com/posts/m4-mac-zimage-sampler-combination-practical-insights/
作者
GoWah
发布于
2025-11-12
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
GoWah
Hello, I'm GoWah.
分类
标签
站点统计
文章
160
分类
9
标签
350
总字数
301,106
运行时长
0
最后活动
0 天前

目录