AI图像扩散模型原理
目前最主流的 AI 图像模型(如 Midjourney, Stable Diffusion)都基于一种叫做“扩散模型 (Diffusion Model)”的技术。我们可以把它的工作流程想象成两个阶段:学习和创作。
阶段一:潜心学习(训练阶段)
这就像马良在真正获得神笔之前的苦练。
- 加噪: AI 会先拿一张清晰的图片(比如,一张猫的照片)。
- 逐步破坏: 它会像给电视加雪花点一样,一点一点地往图片上添加“噪声”,直到这张图片完全变成一片随机的、毫无意义的雪花(噪声图)。
- 学习修复: 最关键的一步来了!AI 会记录下整个“从清晰到模糊”的过程,然后反过来学习——如何一步步地把这张“雪花图”恢复成最初那张清晰的猫的照片。
通过对亿万张图片重复这个“先破坏、再修复”的过程,AI 就学会了任何一张正常图片应该有的“样子”和“结构”。
阶段二:挥洒创意(创作阶段)
这就是神笔马良开始画画的时候了。
- 听懂你的话 (Text Encoder): 当你输入“一只戴着宇航员头盔的猫”,一个专门负责理解语言的模块(通常是强大的 Transformer 模型)会把你的文字转换成一种 AI 能理解的“数学指令”。
- 准备画布 (Initial Noise): AI 不会从白纸开始,而是先生成一张和你想创造的图片尺寸相同的、纯粹的“雪花图”(随机噪声)。这就像是创意的混沌起点。
- “照着指令”去修复 (Guided Denoising): AI 开始对这张“雪花图”执行它最擅长的“修复”工作。但这一次,它不是要恢复成某张特定的旧图,而是在每一步“去除噪声”时,都会参照第一步生成的“数学指令”。它会不断地问自己:“我怎样才能把这些噪声变得更像‘一只戴着宇航员头盔的猫’呢?”
- 作品诞生 (Final Image): 经过几十个步骤的反复“雕琢”,噪声被完全去除,一张符合你描述的、全新的图像就诞生了!
扩散模型最主流的分类方式是根据扩散操作发生在哪一空间:
- 像素空间扩散模型 (Pixel-Space Diffusion Models):
- 代表: DDPM, GLIDE
- 原理: 直接在原始像素空间(如 256x256)上进行加噪和去噪。
- 优缺点: 效果好,但计算成本极高,训练和推理都很慢。
- 潜空间扩散模型 (Latent Diffusion Models - LDM):
- 代表: Stable Diffusion, DALL-E 2 (部分)
- 原理: 使用 VAE 先将图片压缩到低维潜空间,在潜空间内完成扩散和去噪,最后再用 VAE 解码器恢复成图片。
- 优缺点: 速度快、资源消耗少,极大地降低了使用门槛,是当前应用的主流。
1. Stable Diffusion
Stable Diffusion(简称 SD)是一个强大的、开源的 AI 图像生成模型。
Stable Diffusion由Text-Encoder、U-Net以及VAE三个部分组成,文字经过Text Encoder后,变成机器能理解的数字编码,结合噪声图像,经过Diffusion Model (U-Net)完成扩散过程,最后经过VAE中的Decoder,生成最终的图像。
UNet即U形网络,U-Net是三个网络中的主体部分,占据绝大部分参数,一个4GB的Stable Diffusion模型中,大约有80%的大小来自U-Net。
1.1 潜空间扩散模型
潜空间 (Latent Space): 是一个高效的、抽象的数学空间。想象它是一个微缩的、信息高度浓缩的画布。
U-Net (The Artist): 这是在潜空间这个工作室里,唯一真正在动手绘画的艺术家。它的工作就是接收一份潜空间的随机噪声(一张混乱的草稿),然后一步步将其修改成符合要求的、清晰的潜空间画作。
VAE 负责“进出”潜空间(压缩和解压),U-Net 负责在潜空间里“干脏活”(去噪)。它们是两个独立的、各司其职的模块。
一个 Checkpoint 文件(.safetensors
或 .ckpt
)包含了:
- 训练好的 U-Net 权重: 这是 Checkpoint 最核心的部分。它定义了这位“艺术家”的全部技能、风格和知识。你换一个 Checkpoint,本质上就是把工作室里的艺术家 (U-Net) 给换掉了。
- 训练好的文本编码器 (CLIP) 权重: 它包含了负责“听懂你指令”的那位点菜专家。所以 Checkpoint 也决定了模型对语言的理解能力。
- (通常) 一个匹配的 VAE: 很多现代模型会把一个优化过的 VAE “烘焙”(Baked-in) 进去,作为默认的“出品艺术家”。但你依然可以在外部选择另一个 VAE 来覆盖它。
1.2 流程
第 0 幕:准备工作 (加载组件)
你选择了一个 Checkpoint。这相当于你为今天的演出选定了剧本和主演 (U-Net + CLIP)。你也可能额外指定了一个独立的 VAE(换掉了默认的舞美师)和一个 Sampler(指定了主演的表演方法)。
第 1 幕:理解指令
- 你输入 Prompt(“一只猫在月球上”)。
- Checkpoint 内部的 CLIP 文本编码器开始工作,它“阅读”你的 Prompt,并将其转换成一串复杂的数学向量(“语义指令”)。
第 2 幕:潜空间创作 (U-Net 的主场)
- 系统在潜空间中生成一张随机噪声图。
- U-Net(由你的 Checkpoint 定义)登上舞台。
- U-Net 使用 你选择的 Sampler (采样器) 作为它的“行动指南”。Sampler 告诉 U-Net 在接下来的 20 步里,应该如何根据 CLIP 提供的“语义指令”来一步步修改那张噪声图。
- 这个过程循环往复(采样步数),U-Net 在 Sampler 算法的指导下,在潜空间中,将噪声逐渐雕琢成一个清晰的、符合 Prompt 描述的“潜空间成品”。
第 3 幕:从抽象到现实
- U-Net 完成工作,将这个“潜空间成品”交出来。
- 你指定的(或模型内置的)VAE 开始工作。它执行“解码”功能,将这个来自潜空间的、抽象的数学数据,翻译并放大成一张我们肉眼可见的、充满像素的高分辨率图像。
演出结束,图像生成!
1.3 参数
U-Net 是核心的计算引擎,而 Prompt, CFG Scale, Sampler 是在 U-Net 外部,用于控制和编排 U-Net 如何工作的规则、参数和流程。
Prompt (正面提示词):
你的核心指令,描述你想要的画面内容、风格、光线、构图等。
Negative Prompt (负面提示词):
告诉 AI 你不想看到的东西,如
low quality, worst quality, blurry, ugly, deformed hands
。这是保证出图质量的关键。Sampling Steps (采样步数):
AI 去噪的步数。一般设在 20-30 之间。太少图像会模糊,太多则效果提升不大且耗时。
Sampling Method (采样方法):
采样器(也叫调度器 Scheduler)是一个算法,它定义了如何从纯噪声 x_T 一步步走到清晰潜空间表征 x_0 的具体数学路径。它就是反向去噪过程的“总指挥”。
AI 去噪时遵循的“算法路线”。不同的方法在速度和质量上略有差异。新手可以从
Euler a
(速度快,有创意) 或DPM++ 2M Karras
(质量高,较为稳定) 开始。CFG Scale (提示词相关性):
控制 AI 在多大程度上“严格遵守”你的 Prompt。一般在 5-10 之间。7 是一个黄金起点。值越低,AI 越有“创意”;值越高,画面可能越“用力过猛”。
Seed (种子):
每一张随机噪声图的“身份证号”。固定一个种子值,只要其他参数不变,你就能生成一模一样的图片。这对于微调 Prompt 来说至关重要。设为
-1
则表示每次都用随机种子。Size (尺寸):
生成图像的宽度和高度。注意:不同模型有其最佳“原生分辨率”(如 SD 1.5 是 512x512,SDXL 是 1024x1024)。最好先生成原生尺寸的图,再用
Hires. fix
功能进行高清放大,以避免出现奇怪的构图(如多头多臂)。
2. 概念
Checkpoint
基础模型 / .ckpt 或 .safetensors 文件,一个体积巨大(通常 2GB-7GB)的文件,是 Stable Diffusion 的核心大脑。它包含了 U-Net 和文本编码器等大部分关键权重。
- Safetensors vs Ckpt: 你下载模型时会看到这两种格式。
.ckpt
是传统的 Python Pickle 格式,理论上可能包含恶意代码。.safetensors
是更现代、更安全的格式,它只允许加载模型的“权重”数据,因此社区现在普遍推荐使用.safetensors
文件。功能上两者没有区别。
U-Net (The Core Artist):
- 作用: 在潜空间中进行核心的“去噪”绘画工作。
- 过程: 它不是在 1024x1024 的巨大像素画布上工作,而是在一个被压缩得非常小(比如 128x128)的潜空间“画布”上开始。它接收一份潜空间的随机噪声,然后在 CLIP 文本编码器给出的“数学指令”引导下,一步步将这份噪声“雕琢”成一个符合描述的、清晰的潜空间图像。因为操作空间变小了,计算速度得到了极大的提升。
CLIP 文本编码器 (The Interpreter)
作用: 负责“听懂”你的指令 (Prompt)。
过程: 当你输入“一个穿着宇航服的宇航员”,CLIP 会将这些词语转换成它能理解的、包含丰富语义信息的“数学向量”。它知道“宇航员”和“太空服”在概念上是紧密相关的。
VAE
VAE 提供了 encoder 和 decoder,一张图片经过 VAE encode,可以压缩成仅有 64x64x4 的矩阵,这里经过 encode 后的数据空间,就称为潜空间(Latent Space),在这个空间里进行上述扩散模型的训练和生成流程,成本就非常低,这也是目前Stable Diffusion能跑在我们普通电脑上的原因。
最后在隐空间里生成的图片数据,经过 VAE decoder,就能转换成高清图。
VAE decoder:
作用: 负责将潜空间中的“杰作”还原成我们能看到的、高分辨率的最终图像。
过程: U-Net 完成工作后,会交出一个小巧但信息完整的“潜空间成品”。VAE 就像一个高清放大器和解码器,把它从抽象的数学表示“翻译”回充满像素细节的、我们肉眼可见的正常图片。
ControlNet
ControlNet 是 AI 图像生成领域从 “ 随机抽卡 “ 迈向 “ 精准设计 “ 的革命性技术。像一幅构图骨架或蓝图。它允许你用一张参考图来精确控制生成图像的姿势、构图、深度或轮廓。
- ControlNet 模型类型:
- OpenPose: 提取人物的姿势骨架(一堆点和线)。
- Canny: 提取物体的边缘线条。
- Depth: 提取场景的深度信息(哪里近哪里远)。
- Scribble: 把你的涂鸦变成控制图。
- 协同生成: 在扩散模型一步步去噪的过程中,每一部都会发生两件事:
- 主模型 根据你的提示词(如 “ 身穿铠甲的骑士 “)来构思画面内容。
- ControlNet 则根据它看到的 “ 蓝图 “(如一个站立的姿势骨架),强行将主模型生成的像素 “ 扭 “ 到正确的位置上,对它说:” 你画的骑士我不管,但他的姿势必须是这样的!”
IP-Adapter
Image Prompt Adapter 定位: 侧重于 内容和风格 的控制,而非空间结构。
原理: 它不是学习图像的 “ 骨架 “,而是学习图像的 “ 灵魂 “。你给它一张参考图,它会提取出图中的核心元素,如人物的面部特征、画面的整体风格、物体的材质等。
应用场景: 你想生成某个特定角色(比如你自己)或特定画风(比如梵高的《星空》风格)的图片时,IP-Adapter 非常好用。
与 ControlNet 的关系: 黄金搭档 。你可以用 IP-Adapter 来 “ 克隆 “ 一个角色的脸和画风,同时用 ControlNet (OpenPose) 来控制这个角色的姿势。
Lora
像一个风格/角色插件。它是一个小文件,能“教”给基础模型一些新东西,比如画某个特定角色、模仿某种特定画风、或者画某个特定物品。
一种高效的模型微调技术。你可以用少量图片(比如 10-20 张)训练一个专属的 LoRA 小模型(通常只有几十到几百 MB),来教会 Stable Diffusion 一个全新的概念,比如一个特定的角色、一种画风或一个物体。
Inpainting & Outpainting
后期精修的必备工具。 Inpainting 允许你用蒙版 (Mask) 涂抹画面的一部分,然后用新的提示词只重新生成这部分。Outpainting 则是向外扩展画布,让 AI 填充新的内容。
3. Comfy UI
3.1 常见组件
- Load Checkpoint : 加载主模型,它会输出 MODEL , CLIP , VAE 。
- CLIP Text Encode : 将你的文本提示词(分正面和负面)转换成 CONDITIONING 。
- Empty Latent Image : 创建一个空的潜在空间 “ 画布 “,作为扩散的起点。
- KSampler (或 KSampler Advanced ): 核心中的核心 。它接收 MODEL , CONDITIONING (指令), LATENT (画布),然后执行去噪步骤,输出最终的 LATENT “ 成品草稿 “。
- VAE Decode : 将 KSampler 输出的 LATENT 解码成我们能看到的 IMAGE 。
- Save Image : 保存最终的 IMAGE
理解核心数据类型(节点之间传递的是什么)
- MODEL : 主模型(Checkpoint),是绘画的 “ 大脑 “。
- CLIP : 文本理解模型,是连接你和 “ 大脑 “ 的 “ 翻译官 “。
- VAE : 图像编解码器,负责在 “AI 的内部世界 “(潜在空间)和 “ 我们看到的世界 “(像素图像)之间转换。
- CONDITIONING : 条件信息。通常指 经过 CLIP 编码后的提示词 ,是给 “ 大脑 “ 的具体指令。
- LATENT : 潜在空间图像。是 AI 内部处理的、被压缩的 “ 草稿图 “。扩散去噪过程主要发生在这里。
- IMAGE : 我们最终看到的像素图像。
3.2 LATENT (潜在空间/画布)
- LATENT 是 AI 进行创作的” 内部画布 “ 或 “数字黏土”。它不是我们能直接用肉眼看到的图片。
- VAE 的编码器 (Encoder) 可以把一张 512x512 像素的高清图片 压缩 成一张 64x64 的、包含了核心信息的 “ 数据地图 “。这个 “ 数据地图 “ 就是 LATENT。AI 在这个小得多的 LATENT 上进行去噪和创作,计算效率极高。创作完成后,再由 VAE 的解码器 (Decoder) 解压 成我们能看的高清图片。
- KSampler: 这是 “ 雕刻 “ 发生的地方。它接收 LATENT 作为输入,进行去噪处理,然后输出一个成品的 LATENT。
- VAE Decode: 将一块雕刻完成的 “ 数字黏土 “(LATENT) 转换(解码)成我们能看到的、色彩鲜艳的最终图片 (IMAGE)。
3.3 CONDITIONING (条件/指令)
“你到底想让雕塑家刻个啥?”
- 正面指令 (Positive Prompt):
- 负面指令 (Negative Prompt
- CONDITIONING 不是你输入的纯文本。你的文本必须先经过 CLIP 模型 的 “ 翻译 “。CLIP 会把 “a cat” 这样的文字转换成一串复杂的数字(称为 向量嵌入/Embeddings )。这串数字在数学上代表了 “ 猫 “ 的概念、特征和相关信息。AI 模型 (KSampler) 只能理解这种数字化的指令,它无法直接理解 “cat” 这三个字母。
- KSampler: 它有两个专门的输入端,positive 和 negative,用来接收你用 CLIP Text Encode 生成的两份 “ 指令书 “。
3.4 ControlNet
多 ControlNet 叠加: 同时使用 OpenPose 控制人物姿势,用 Canny 控制物体轮廓。你需要学习如何平衡不同 ControlNet 的权重 (strength) 和作用范围 (start_percent, end_percent)。
预处理器 (Preprocessor): 理解各种预处理器的作用至关重要。比如, Canny 会把任何图片转为线稿, OpenPose 会识别人体骨骼, Depth 会生成深度图。你需要知道用什么预处理器搭配什么 ControlNet 模型。
ControlNet in Inpainting: 在局部重绘时使用 ControlNet,可以精准地在指定区域添加一个特定姿势或物体。
3.5 IPAdapter
风格迁移: 用一张梵高的画作为 IPAdapter 的输入,再用文本描述 “ 一只猫 “,就能生成梵高风格的猫。
角色一致性 (Character Consistency): 将一个角色的多张图片输入到 IPAdapter 中(通过 IPAdapter Batch 等节点),可以更高概率地在不同场景下生成同一个角色。
与 ControlNet 结合: 用 ControlNet 锁定姿势和构图,用 IPAdapter 锁定角色或风格。这是目前实现高质量、高可控性出图的黄金组合。
3.6 Mask (蒙版) 的运用
像素级区域控制,一个 Mask 就是一张黑白图,白色区域代表 “ 作用于此 “,黑色区域代表 “ 忽略此地 “。
这个 mask 可以用来限定 KSampler 的作用范围(通过连接到 KSampler 的 mask 输入端,虽然不是所有 KSampler 都有,但通过 Conditioning Set Area + Mask 可以实现)。更常见的是在 Latent 层面做文章。
3.7 工作流分叉与合并 (Branching & Merging):
分叉 (Branching): 将一个信号或数据流 同时发送给多个不同的节点 进行并行处理。比如,同一个人物模型,一路送去加特效 A,另一路送去加特效 B。
合并 (Merging): 将多个经过不同处理的数据流 重新汇合到一个节点 ,让最终效果包含所有处理的结果。比如,把加了特效 A 和特效 B 的人物模型最终组合起来。
简单分叉对应节点 Reroute
- 做什么的? 它就像一个电线杆或插线板上的接线柱。它什么也不处理,只是接收一个输入,然后提供一个输出,让你可以把线拉到任何地方。
- 你可以把一个核心输出(比如 MODEL 或 CLIP)连接到一个 Reroute 节点,然后从这个节点分发给所有需要它的下游节点。修改时只需改动这个分发点即可。
指令合并对应节点:Conditioning (Combine)
- 多个 lora 叠加
- 分叉: 从 CLIP Text Encode 出来的 CONDITIONING 用一个 Reroute 节点分流。
- 并行处理:
- 第一条流:连接到 Load LoRA A (比如角色 LoRA)。
- 第二条流:连接到 Load LoRA B (比如画风 LoRA)。
- 合并: 创建一个 Conditioning (Combine) 节点。
- 把 Load LoRA A 的输出连接到 conditioning_from 。
- 把 Load LoRA B 的输出连接到 conditioning_to 。
- 最终输出: Combine 节点输出的 CONDITIONING 现在同时包含了角色和画风的指令,将它连接到 KSampler 的 positive 端口。
- 多个 lora 叠加
区域化合并对应节点:Conditioning (Set Area)
- 能让你指定一个矩形区域,只让某个 CONDITIONING 在这个区域内生效。
- 创建基础指令: 创建一个 CLIP Text Encode ,提示词为 green grass (绿色草地)。这个 CONDITIONING 将作为全局/背景指令。
- 创建区域指令: 创建第二个 CLIP Text Encode ,提示词为 blue sky (蓝色天空)。
- 分叉与合并: 创建一个 Conditioning (Set Area) 节点。
- 将 “green grass” 的 CONDITIONING 连接到 conditioning_from (这是默认区域的指令)。
- 将 “blue sky” 的 CONDITIONING 连接到 conditioning_to (这是指定区域的指令)。
- 设置区域: 在 Set Area 节点中设置参数。假设你的图像大小是 512x512 ,你想让上半部分是天空:
- width : 512
- height : 256 (图像高度的一半)
- x : 0 (从左边开始)
- y : 0 (从顶部开始)
- strength : 1.0 (指令生效的强度)
- 最终输出: 将 Set Area 节点的输出 CONDITIONING 连接到 KSampler 。AI 在生成时,就会在图像上方 512x256 的区域内强力执行 blue sky 的指令,而在其他区域执行 green grass 的指令。
Conditioning (Set Mask)
- 这个节点功能类似,但更灵活。它不是用矩形坐标,而是接收一个黑白 MASK 图像作为输入
3.8 inpainting
对应节点:Set Latent Noise Mask 或 VAE Encode for Inpainting 组合
- 做什么的? 这不是直接合并两个 LATENT ,而是在一个 LATENT 上定义一个区域,告诉 KSampler :” 你只需要重画这部分,其他地方别动。”
- 经典用法:替换人物的脸
- 加载原图和蒙版:
- Load Image 加载原始图片。
- 用 MaskEditor 或外部软件创建一个蒙版(Mask),把要替换的脸部涂白,其他地方为黑,然后也用 Load Image 加载进来。
- 编码: 使用 VAE Encode 将原图编码成 LATENT 。
- 合并(定义重绘区域): 这里有两种主流方式:
- 方法 A (概念清晰): Set Latent Noise Mask 节点接收原图的 LATENT 和你的 MASK ,它会输出一个新的 LATENT ,这个 LATENT 的特殊之处在于,只有蒙版区域被重新加了噪点。
- 方法 B (更常用): 使用 VAE Encode for Inpainting 节点,它会一步到位,同时接收原图和蒙版,直接输出一个准备好用于局部重绘的 LATENT 。
- 执行重绘: 将这个处理过的 LATENT 和描述新脸的 CONDITIONING (比如 “a beautiful woman’s face, high detail”) 一起送入 KSampler 。
- KSampler 看到这个 LATENT 后,就会集中火力重绘带噪点的区域,而基本保留其他区域的原样。
- 加载原图和蒙版:
4. 提问问题
sd 和 flux 的区别
- FLUX 不是对 SD 的小修小补,而是一次颠覆性的架构重构。
- Stable Diffusion 的核心引擎 U-Net 是一个完全基于CNN构建的复杂结构。
- FLUX 则将 CNN 作为一个专门处理图像的“专家模块”,与另一个处理文本的“专家模块”(Transformer)并行工作。
lora 的原理
- 通过训练一个微小的“旁路”来给大模型的特定行为增加一个“调整补丁”,从而以极低的成本实现对特定风格或角色的学习。
- 在 Stable Diffusion 模型内部,连接文本和图像的关键部分是“交叉注意力层”(Cross-Attention Layers)。这些层里面有巨大的“权重矩阵”(可以理解为画家大脑中的核心知识)。LoRA 的做法是:冻结所有原始的、巨大的权重矩阵,保持画家本人不变。然后,在旁边并联两个非常小的、新的矩阵(A和B)。
- 在训练时,我们只训练这两个小矩阵。当模型工作时,原始信息流过大矩阵,同时,一份拷贝流过我们新加的“A->B”小路径,形成一个“风格调整量”。最后,把这个微小的调整量加到原始结果上。
lora 和 模型微调区别
模型微调
加载完整的预训练大模型(例如,一个 70 亿参数的模型),使用你的特定数据集,在预训练模型的基础上继续进行反向传播和梯度下降训练。在这个过程中,模型所有层的所有参数都会被更新。
由于调整了所有参数,理论上可以达到在新任务上最好的性能,适应性最强。容易发生“灾难性遗忘”(Catastrophic Forgetting),即模型为了学习新知识而忘记了原有的通用能力。
Lora
冻结原始模型的所有参数,不进行任何改动。然后在模型的特定层(通常是 Transformer 的注意力层)旁边,注入两个微小的、可训练的“旁路矩阵”(A 和 B)。
训练速度快,对显存要求低很多。普通消费级显卡也能微调大模型。效果可能略低于精心调教的全量微调模型。但对于大多数场景,其性能已经非常出色。
训练 lora 的 Epoch 是个啥
- Epoch 太少(欠拟合/Underfitting):就像学生只把教材草草翻了一遍,根本没记住重点。训练出的 LoRA 效果会很弱,画出来的角色似像非像,抓不住精髓。
- Epoch 太多(过拟合/Overfitting):就像学生把教材背得滚瓜烂熟,但变成了书呆子,失去了创造力。训练出的 LoRA 会变得非常死板,画出来的角色可能姿势、表情都和你训练集里的图片一模一样,而且这个风格可能会“污染”画面,比如你只想画这个角色,但背景也带上了训练素材里的特征。这就是所谓的“画风烧糊了”。
训练 lora 的提示词
- 触发词 (Trigger Word) 就是激活这本“武功秘籍”的“咒语”或“关键词”。
- 如果你没有在提示词里加入触发词,那么理论上,LoRA 就不会被激活,或者说影响极其微弱。
- 如果你的 LoRA 训练过度(比如 Epoch 太高),它的风格或角色特征就已经“烧”进了模型里,造成了“概念污染”。即使你不用触发词,LoRA 的效果也会“泄漏”出来。
Guidance Scale 是个啥
Guidance Scale 就是你对这位雕塑家的“控制欲”强度。 它决定了雕塑家在多大程度上必须严格按照你的设计图(Prompt)来工作,还是可以自由发挥他的艺术灵感。通常缩写为 CFG Scale。
guidance_scale_steps
- 有大神会创建一种“动态CFG”方案,即在不同的采样步骤(Steps)中使用不同的指导规模(Guidance Scale),比如开始时用高CFG确保轮廓正确,后面用低CFG增加细节和创意。但这是一个非常高级的技巧,而不是一个基础参数。
- 例如从3.0,3.0,3.0,3.0,1.0,1.0,1.0,1.0,1.0,1.0 改为4,4,4,4,4,4,1,1,1,1