想象你经营着一家私人定制画室“梦想工坊”。客户只留下一句话:“我想要一幅戴着王冠的猫端坐在王座上的油画。”把这句话变成一幅真画,需要三位大师各司其职:翻译官读懂客户的心愿,把它写成团队才看得懂的“工程单”——这就是文本编码器;档案员把工作室里堆积如山的巨幅油画,压缩成巴掌大的“小卡片”——这就是VAE,小卡片上的世界被称为潜在空间;雕塑家在地下室里抱着一块完全随机的大理石,照着工程单一遍遍凿掉多余的碎屑——这就是UNet,它每凿一刀,噪声就少一分。等雕像完工,档案员再把小卡片放大回客户要的巨幅油画。整个流程百分之九十九的辛苦活,都发生在小卡片的尺寸上,这也是 Stable Diffusion 既快又省的秘密。今天我们就走进这间画室,看看三位大师各自的手艺,以及他们如何配合得严丝合缝。
理解三大组件的分工与协作,你才能从“调参炼丹”进阶到“读懂源码、诊断坏图、设计训练管线”——这正是图像生成工程师的核心竞争力。
可视化演示
动态演示深入SD三大组件的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
深入SD三大组件:VAE结 VAE结构与潜空间压缩 UNet去噪网络架构 核心机制可视化 深入SD三大组件整体架构与关键组件
整体流水线
让我们先在画室门口看一张“工作日历”。清晨,翻译官把客户的话写成工程单;档案员把参考照片压缩成小卡片;雕塑家接过小卡片和工程单一头扎进地下室,傍晚,档案员把完工的小雕像放大成巨幅油画,挂进展厅。Stable Diffusion 一次完整的生成,走的正是这条流水线:文本编码器产出条件向量,UNet 在潜在空间反复去噪,VAE 负责在像素图与潜在表示之间编解码。
“潜在空间”这个词听起来玄乎,其实就是档案员手里的“小卡片世界”。一张 1024×1024 的彩色图片,在像素空间里有三百多万个数,而 VAE 把它压成 64×64×4 左右的紧凑表示,数据量只有原来的几十分之一。UNet 在这个小世界里工作,计算负担小、迭代速度快,这正是 SD 能在一台消费级显卡上跑起来的关键。
要让雕塑家学会“从噪声中还原成品”,画室先做了反向练习:把一张真图反复加噪,直到完全变成雪花点——这叫正向扩散;然后让雕塑家从雪花点一步步还原,这叫反向去噪。训练时模型看的是“从清晰到模糊”的录像,生成时它播放的是“从模糊到清晰”的倒放。二者互为镜像,用的是同一套参数。
回到流水线本身,你会发现训练和生成都在“小卡片”上进行,只有最后一步才回到像素世界。翻译官、档案员、雕塑家三位大师各守一摊,谁也别想越界——这正是 SD 架构优雅的地方。
- 条件分布 $q(z_t \mid z_{t-1})$表示“从 $t-1$ 时刻走到 $t$ 时刻”的概率规则,相当于给雕像新撒一把灰的随机过程。
- 高斯分布 $\mathcal{N}(\mu, \Sigma)$均值 $\mu$ 决定 $z_t$ 大体长什么样,协方差 $\Sigma$ 决定这把灰撒得有多随机。
- 缩放系数 $\sqrt{1-\beta_t}$保留上一时刻信息的比例,$\beta_t$ 越大,保留越少、噪声越多。
- 噪声协方差 $\beta_t \mathbf{I}$在每一个维度上独立加入强度为 $\beta_t$ 的高斯噪声,$t$ 越大,$z_t$ 越接近纯噪声。
文本编码器
客户的需求往往是含糊的:“来点王座、猫、油画风。”可雕塑家需要的是精确的指令。翻译官的职责,就是把这句人话翻译成一张结构化的“工程单”——一个长长的数字向量,我们叫它条件向量。工程单不是简单查字典,SD 用的是 OpenAI 的 CLIP 模型中的文本分支:它在一亿多张图文对上训练过,知道“王座”长什么样、“油画风”是什么质感,所以产出的向量带着浓厚的语义。
CLIP 的文本分支本身是一个 Transformer。它先把提示词拆成一个个词元(token),每个词元查表得到一个初始嵌入向量,然后经过多层自注意力交互,让“猫”这个词不断吸收“王冠”“王座”带来的上下文信息。最后取序列的隐藏状态,投影成一个固定维度的向量,通常 SD 1.x 用的是 768 维。这 768 个数不是给人看的,而是给 UNet 看的“暗号”。
条件向量怎么发挥作用?UNet 的交叉注意力层会把图片特征当作“查询”,把条件向量当作“键和值”:每个图像位置都去条件向量里检索“自己该长成什么样子”。所以提示词里出现“蓝色眼睛”,交叉注意力就会在眼睛区域增强蓝色响应——这就是语义引导的实质。
翻译官的工作看似简单,却决定了生成内容的天花板。工程单写得越准确,雕塑家雕出来的东西就越接近客户的心愿——这也是为什么提示词工程、CLIP Skip 参数会成为社区热议话题。
- 输入文本 $T$提示词先被切分成词元序列,例如
"a cat on a throne"变成 6 个 token。 - CLIP 文本分支 $\tau(\cdot)$一个多层 Transformer,把每个词元都编码成带上下文的语义向量。
- 条件向量 $c$对文本侧最终表示做投影与聚合,得到固定维度的向量,作为 UNet 每一层的指导信号。
VAE组件
档案员是画室里的“尺寸魔术师”。客户要的是三米乘三米的巨幅油画,可地下室的搬运通道只有公文包那么宽。档案员的办法是:把巨幅油画拍成一张小照片,叠好塞进公文包;等工作完成再冲洗放大回原尺寸。VAE 的编码器就是拍照压缩的过程,解码器就是冲洗放大的过程。
为什么叫“变分自编码器”?因为它不光做压缩,还顺便学了“概率”:编码器不再输出一个确定的潜在点,而是输出一个分布(均值 $\mu$ 和方差 $\sigma$),再从这个分布里采样。这样潜在空间就是连续的、平滑的——你随便挑一个潜在点,解码器都能还原成一幅合理图像,而不是只会背答案。
训练 VAE 时有两个目标相互拉扯。第一是重建损失:把图片编码再解码,要尽量跟原图一致,相当于档案员放大后的照片必须清晰不糊;第二是KL 正则:编码出的分布要尽量接近标准高斯分布,防止潜在空间变成一堆互不相连的孤岛,方便日后 UNet 在里面自由穿行。
档案员的质量直接决定了最终图片的锐度、色彩与细节。倘若小卡片本身的“笔迹”粗糙,雕塑家再努力,放大出来的油画也会满是噪点——这也是为什么社区会流传“换一个更好的 VAE 文件,出图立刻变清晰”的经验。
- 编码分布 $q_\phi(z \mid x)$编码器把图片 $x$ 映射成潜在变量 $z$ 的概率分布,参数为 $\phi$。
- 重建损失 $-\log p_\theta(x \mid z)$从 $z$ 重建出 $x$ 的对数似然负值,越小说明还原得越逼真。
- KL 散度 $D_{\mathrm{KL}}$衡量编码分布与标准高斯 $p(z)$ 的差距,强迫潜在空间保持紧凑连续。
- 权重系数 $\beta$控制“逼真”与“规整”之间的权衡,$\beta$ 太大会让图片模糊,太小则潜在空间结构散乱。
UNet主干
雕塑家是画室里最辛苦的人,他的工作台叫 UNet。为什么要叫 U?因为它的结构像个字母 U:先从左侧一路下采样,把“小卡片”继续压缩成更小的特征图,像雕塑家先眯起眼看整体轮廓;然后从底部折返,一路上采样把特征图放大回原尺寸,像凑近去精修五官细节。U 型最妙的设计是跳连(skip connection):下采样时每一层的特征直接抄近道接到上采样的对应层,让细节不因压缩而丢失。
UNet 内部堆叠着两类核心积木。第一类是 ResNet 残差块:输出等于输入加上一个变换,即 $h_{\text{out}} = h_{\text{in}} + \mathcal{F}(\cdot)$。这相当于雕塑家每凿一刀都保留上一刀的位置记忆,避免越雕越偏。第二类是注意力层:空间自注意力让像素彼此商量“谁是背景、谁是主体”,交叉注意力则让每个像素向条件向量征询“该长成什么”。
雕塑家还需要知道“现在雕到第几步了”。这就是时间步嵌入(time embedding):把当前时刻 $t$ 编码成一个向量,随时告诉网络“现在噪声还很多,大刀阔斧地改;还是已经接近成品,只能微调”。时间步嵌入和条件向量一起,作为额外的输入注入每一个残差块。
雕塑家之所以稳,全靠这套“U 型打底 + 残差保底 + 注意力定向 + 时间步调速”的组合拳。理解了 UNet 的骨架,再去看 Stable Diffusion 的源码结构,你会发现每一层都在你的预期之中。
- 输入特征 $h_{\text{in}}$上一层的特征图,既包含图像结构,也带着时间步和条件的信息。
- 残差函数 $\mathcal{F}(\cdot)$由卷积、归一化、注意力等操作组合成的“雕刀”,学习应该对当前特征做多大改动。
- 时间步嵌入 $t_{\text{emb}}$把采样时刻 $t$ 编码成向量,告诉网络该大刀阔斧还是精雕细琢。
- 残差连接 $h_{\text{in}} + \cdots$把原始特征和变化量相加,保证梯度顺畅、细节不失真。
去噪采样
雕塑家技艺的核心,是“知道下一刀该去掉什么”。在扩散模型里,这就叫噪声预测:UNet 的输入是当前带噪的潜在表示 $z_t$,输出是它认为的噪声 $\epsilon_\theta(z_t, t, c)$。注意——它输出的不是图片,而是“杂质”本身。就像雕塑家看到的不是“雕像还缺什么”,而是“哪块石头是多余的”。
有了噪声估计,就能列出去噪公式:把当前带噪卡片往回拽一步。想象你在雪地里踩出一串脚印,每一步都混进了风雪,去掉噪声就是把脚印从雪里“抠”出来——而且每抠一步,还要重新踩实一下地面(加一点随机噪声),防止路径走歪。这个过程从 $t=T$(完全随机)一路循环到 $t=0$(接近干净),通常要迭代 20~50 步。
公式右边的强度控制体现在两个地方:一是采样步数,步数越多每步走得越稳,但收益递减;二是引导系数 $w$,它决定“工程单”的影响力,这在下一节展开。实际使用中,DDIM、DPM++ 等采样器正是通过改写这个公式来减少步数、提升质量。
雕塑家就这样一凿、一停、一回头,几十轮下来,大理石里的王座与猫便浮出水面。采样公式看似简单,却是整个 SD 生成质量最敏感的旋钮之一。
- 缩放项 $\dfrac{1}{\sqrt{\alpha_t}}$把去噪后的结果拉回正确尺度,避免每步迭代数值越来越小。
- 噪声估计 $\epsilon_\theta(z_t, t, c)$UNet 根据当前状态 $z_t$、时刻 $t$ 和条件 $c$ 预测的噪声图。
- 去噪幅度 $\dfrac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}$控制这一步该移除多少预测噪声;$\bar{\alpha}_t$ 是噪声计划的累计量。
- 随机扰动 $\sigma_t \epsilon$加回的高斯噪声项,维持采样多样性,避免一次性把路径锁死。
组件协作
最后,我们把三位大师的协作场面完整回放一遍:翻译官紧盯着客户的话,写出一份 768 维的工程单;档案员把小卡片递进地下室;雕塑家抱着大理石,边看工程单边下刀。条件注入发生在 UNet 的每一层——交叉注意力让每个像素都能“读到”工程单上的语义,残差块里也直接拼接条件向量和时间步编码,保证信号一路畅通。整条流水线全部在潜在空间流转,直到最后一刻,档案员才把潜在表示解码成像素图。
如果客户反复强调“一定要有王冠”,怎么办?画室有个“强调旋钮”,叫 CFG 引导(Classifier-Free Guidance)。做法很巧妙:同时算出“有工程单”和“没有工程单”的噪声预测,两者之差就是工程单的净影响力,把这个差值放大 $w$ 倍再加回去。$w$ 越大,生成结果越贴提示词,但太大会过饱和甚至变形——就像客户越催,雕塑家越用力,反而把王冠雕碎了。
实战中,这套协作体系还有更多花活:负向提示词就是给 $w$ 一个“反向拉扯”,告诉雕塑家“千万别雕成模糊的”;采样器负责决定公式里每步怎么走。读懂了三组件如何协作,你调任何参数都能预判后果,而不是盲盒式炼丹。
- 无条件预测 $\epsilon_\theta(z_t, t, \varnothing)$提示词为空时模型会怎么走,代表“默认审美”的基线。
- 有条件预测 $\epsilon_\theta(z_t, t, c)$带上工程单时模型会怎么走,代表“客户诉求”的方向。
- 差异项 $\epsilon_\theta(z_t, t, c) - \epsilon_\theta(z_t, t, \varnothing)$工程单带来的净影响,即“客户说的 vs 默认的”差距。
- 引导系数 $w$放大这个差距的比例,$w>1$ 时强化条件,$w$ 越大越激进。
AI 应用场景
批量电商海报生成
阶段:推理部署与提示词工程
解决的问题:传统电商运营每张海报都要设计师手工绘制,出图慢、风格不统一,还要反复改稿;用 SD 全家桶,运营只需写好提示词与负向提示词,文本编码器理解需求,UNet 按 CFG 引导批量出图,VAE 解码保证输出高清,几分钟就能生成几十个版式草稿。
具体案例:某家居品牌要在双十一前上线 200 张北欧风沙发海报。提示词工程师写好模板“minimalist living room, beige sofa, soft daylight“,配合统一负向提示词”low quality, blurry”,再用脚本循环 200 次跑出候选图,设计师只从里面挑最优的 50 张精修。
商品图局部重绘与修复
阶段:图像编辑与后处理
解决的问题:摄影棚拍出的商品图常有反光、穿帮或背景杂物,纯手工修图耗时巨大;SD 的图生图/局部重绘利用 VAE 把商品图编码进潜在空间,UNet 只对指定遮罩区域重新去噪,背景被自然替换,商品细节由 VAE 解码原样保留。
具体案例:一个美妆品牌想给口红产品图换“大理石背景”而主体完全不动。算法工程师用蒙版圈出口红区域,提示词设为"marble texture background",其余部分保持原图 latent 不动,20 步去噪后输出干净的新背景图,单张处理只需数秒。
LoRA 风格微调
阶段:模型训练与微调
解决的问题:通用 SD 模型画不出特定 IP 形象,直接重训成本极高;LoRA 微调采用“冻结 VAE 和文本编码器,只训练 UNet 中的低秩注入”策略,让雕塑家在保留全部基本功的前提下,只学一点点专属风格。
具体案例:某游戏公司要生成统一画风的角色立绘,训练集只有 100 张原画。工程师把 VAE 和 CLIP 文本编码器全部固定,只训练几个 LoRA 权重文件,几小时后模型便能稳定输出该画风的角色,且不影响其他风格,仓库里只需多放几个“风格小配件”。
Python 演示
# -*- coding: utf-8 -*-"""迷你Stable Diffusion三组件演示:TextEncoder把提示词变成条件向量;VAE做图像/潜在空间的压缩与重建;UNet-like去噪器在潜在空间逐步去噪。"""import numpy as np rng = np.random.default_rng(42) def text_encoder(prompt, vocab, dim=16): vec = np.zeros(dim) for word in prompt.lower().split(): if word in vocab: vec[vocab[word] % dim] += 1.0 norm = np.linalg.norm(vec) return vec / norm if norm > 0 else vec def vae_encode(img): return img.reshape(4, 8, 4, 2, 4, 2).mean(axis=(1, 3, 5)) def vae_decode(z): return np.kron(z, np.ones((4, 4))) def unet_denoise(z, t, cond, total_steps): alpha = t / total_steps smooth = (z[:-1, :] + z[1:, :] + z[:, :-1] + z[:, 1:]) / 4.0 target = np.outer(cond[:8], cond[:8]) return z - 0.3 * (z - smooth) - 0.5 * alpha * (z - target) def make_shape(): img = np.zeros((32, 32)) img[8:24, 8:24] = 1.0 y, x = np.mgrid[0:32, 0:32] img[(x - 16) ** 2 + (y - 16) ** 2 < 49] = 0.0 img[(x - 16) ** 2 + (y - 16) ** 2 < 16] = 1.0 return img def main(): vocab = {"cat": 0, "king": 1, "square": 2, "ring": 3} cond = text_encoder("cat king square ring", vocab) img = make_shape() latent = vae_encode(img) noise = rng.normal(0, 0.45, latent.shape) z = latent + noise # 正向扩散:加入噪声 for t in range(20, 0, -1): # 反向采样:逐步去噪 z = unet_denoise(z, t, cond, 20) out = vae_decode(z) err = float(np.abs(out - img).mean()) print("条件向量:", np.round(cond, 2)) print("去噪重建平均误差:", round(err, 4)) print("原始均值=%.2f 重建均值=%.2f" % (img.mean(), out.mean())) if __name__ == "__main__": main()
vec[vocab[word] % dim] += 1.0把关键词散列叠加进固定维度向量,模拟文本编码器产出条件向量。img.reshape(4, 8, 4, 2, 4, 2).mean(axis=(1, 3, 5))平均池化把 32×32 压成 8×8,模拟 VAE 编码器的压缩。np.kron(z, np.ones((4, 4)))每个潜在像素扩展成 4×4 块,模拟 VAE 解码器还原像素图。smooth = (z[:-1, :] + z[1:, :] + z[:, :-1] + z[:, 1:]) / 4.0用四邻域平滑近似“预测噪声”,相当于简化版 UNet 判断哪里不平整。target = np.outer(cond[:8], cond[:8])条件向量构造目标模板,让去噪方向受提示词引导。for t in range(20, 0, -1):反向采样循环,从 t=20 到 t=1 共 20 步迭代去噪。z = unet_denoise(z, t, cond, 20)每一步用当前时刻的强度系数去噪,模拟时间步控制在采样中的作用。
常见误区
误区VAE 就是给模型省算力的,反正 UNet 才是画画的,把 VAE 换掉影响不大。社区里也有人随手换 VAE 文件,觉得无所谓。
正解VAE 的潜在空间质量直接决定画面锐度、色彩和细节。档案员的小卡片如果材质粗糙,雕塑家再厉害,放大出来的油画也全是噪点。实际测试中,换用细节更好的 VAE 往往能明显改善人脸、文字和边缘质量。
为何常见:因为 UNet 占据了模型体积和使用话题的大部分,VAE 文件很小、看起来像个“附属品”,容易被忽略。
误区UNet 是生成的主力,输出应该就是最终图片,VAE 只是多此一举。
正解UNet 永远工作在压缩后的潜在空间里,输入输出都是低维张量,它根本“看不懂”像素图。没有 VAE 解码器,UNet 的输出只是一堆模糊的小色块。雕塑家永远在地下室工作,门口的展厅需要档案员来布置。
为何常见:大家习惯把“生成模型”理解成“输入噪声、输出图片”的黑盒,忽略了中间还有一层隐藏的编解码。
误区提示词就是查字典,“猫追狗”和“狗追猫”在你向量里应该差不多。很多人在写提示词时随意调换词序。
正解CLIP 文本分支是经过海量图文对比训练的 Transformer,词序、上下文都深刻影响条件向量。“猫追狗”与“狗追猫”语义完全相反,生成结果也截然不同。这也是为什么同一段话调整语序后出图会大变。
为何常见:早期的词袋模型确实不在乎词序,许多人把这种直觉带到了深度学习时代。
误区既然去噪是逐步的,那我把步数拉到 100、200 总该更清晰吧?很多人误以为步数与质量单调正相关。
正解DDIM、DPM++ 等采样器可以在几十步内高质量收敛,超过某个阈值后收益递减,甚至引入累积误差。雕塑家刻完细节后还不停下刀,只会把成品越修越糟。
为何常见:直觉上“迭代越多越精细”在训练阶段成立,但推理采样是另一套动力学,步数与质量不是简单正比。
误区提示词不够贴?那我把引导系数从 7 拉到 20,模型总该听话了。
正解CFG 放大的是“有条件与无条件预测的差距”,权重过高会让颜色过饱和、对比度炸裂、物体扭曲变形。客户越催,雕塑家越用力,反而把王冠雕碎。合理的引导系数范围通常在 3~15 之间。
为何常见:用户看到“引导”二字就把它当成音量旋钮,忽略了它背后是两条预测轨迹之间的外推。
面试题
Q1. SD 中 VAE 的编码器主要负责什么?
- A.将提示词转换成向量
- B.将图片压缩进潜在空间← 正确答案
- C.直接生成随机噪声块
- D.对噪声进行逐步去噪
答案:B。VAE 编码器像画室的档案员,把巨幅图片压缩成低维潜在表示。提示词变向量是文本编码器的职责,生成噪声和逐步去噪分别属于采样器与 UNet,因此只有 B 正确。
Q2. 文本编码器输出的条件向量主要用途是什么?
- A.压缩图片到潜在空间
- B.替代 VAE 完成解码
- C.引导 UNet 逐步去噪← 正确答案
- D.保存成品图片像素
答案:C。条件向量是翻译官交给雕塑家的工程单,UNet 在每一层通过交叉注意力读取它,从而知道去噪方向。条件向量不参与压缩、不解码、也不存储像素,所以选 C。
Q3. UNet 在扩散模型中的核心任务是什么?
- A.预测噪声并指导去噪← 正确答案
- B.直接输出成品图片
- C.给噪声添加更多扰动
- D.将文本翻译成图片
答案:A。UNet 在潜在空间的核心职责是预测当前表示中还混着多少噪声,采样器再依据预测减去噪声。它不直接输出像素图,不负责文本翻译,也不负责加噪,故选 A。
Q4. 一次 SD 生成推理流程中通常需要哪些组件?
- A.文本编码器前端← 正确答案
- B.VAE 解码器模块← 正确答案
- C.UNet 噪声预测器← 正确答案
- D.人脸检测分类器
答案:ABC。推理时提示词经文本编码器变成条件向量,随机噪声在潜在空间由 UNet 反复去噪,最后由 VAE 解码器还原成像素图。人脸检测与 SD 的生成链路无关,因此选 A/B/C。
Q5. 关于 SD 的潜在空间,下列说法正确的是?
- A.尺寸远小于像素空间← 正确答案
- B.尺寸与像素空间相同
- C.直接存储文本内容
- D.只能存放一张图片
答案:A。潜在空间把 1024×1024 的像素图压缩成 64×64 量级的紧凑表示,是 SD 高效生成的关键。它不存文本、也并非与像素等大,故选 A。
Q6. 采样公式中的 $\epsilon_\theta(z_t, t, c)$ 表示什么?
- A.采样的学习率数值
- B.扩散过程的加噪强度
- C.文本编码的中间层
- D.UNet 预测出的噪声← 正确答案
答案:D。$\epsilon_\theta$ 表示由参数 $\theta$ 决定的 UNet 噪声预测器,输入是带噪潜在表示 $z_t$、时刻 $t$ 与条件 $c$,输出是估计的噪声图。学习率、加噪强度、文本中间层都与它无关,故选 D。
Q7. 下列哪些因素会直接影响 SD 出图质量?
- A.采样步数设置← 正确答案
- B.引导系数大小← 正确答案
- C.提示词条件向量← 正确答案
- D.浏览器页面缓存
答案:ABC。采样步数影响收敛精细度,引导系数影响贴题程度,条件向量决定内容方向,三者都直接左右生成结果。浏览器缓存与模型推理无关,因此选 A/B/C。
Q8. 在 CFG 引导中不断增大权重 $w$ 会产生什么后果?
- A.更贴提示词但可能过饱和← 正确答案
- B.图像变得完全随机
- C.必定提升生成速度
- D.自动降低文本向量维度
答案:A。CFG 把有条件与无条件预测的差异放大 $w$ 倍再加回基线,$w$ 越大越贴近提示词,但也容易引发颜色过饱和、物体畸变。它不会让图像随机化、不会加速、也不改变向量维度,所以选 A。
Q9. 关于 Stable Diffusion 的训练流程,下列说法正确的是?
- A.同时端到端联合训练所有组件
- B.加噪直接发生在像素空间
- C.VAE 先重建再训练 UNet 去噪← 正确答案
- D.文本编码器参与 VAE 压缩
答案:C。SD 采用两阶段训练:先训练 VAE 学会压缩与重建,然后冻结 VAE 和文本编码器,在潜在空间训练 UNet 做去噪。噪声加在潜在表示上而非像素上,故选 C。
Q10. 生成图像出现文字扭曲时,合理的排查方向有哪些?
- A.采样步数设置不足← 正确答案
- B.文本编码器长句理解弱← 正确答案
- C.VAE 解码精细度不够← 正确答案
- D.更换显卡即可解决
答案:ABC。文字渲染高度依赖语义理解、迭代收敛和解码器精细度:步数不足会半途而废,CLIP 对复杂长句理解偏差会写错字,VAE 解码能力弱则笔画发糊。更换显卡无法根治模型层面的问题,因此排除 D。