HF Diffusers中SD的VAE与UNet采样尺寸机制及泛化性疑问
核心结论
Stable Diffusion(潜在扩散模型LDM)具备跨尺寸的泛化能力,支持任意宽高的推理,但效果会随与训练基准尺寸(SD v1.5为512×512)的偏离程度下降。
关于sample_size的作用
模型配置中的sample_size是训练阶段的基准尺寸,主要用于初始化位置编码等与尺寸相关的参数模板,以及作为元数据标记模型的最佳使用尺寸。它并非推理时的强制约束——因为UNet和VAE的核心层(卷积、注意力)都是动态适配输入张量尺寸的,所以代码中不会直接固定调用这个值。
训练阶段的泛化基础
SD v1.5以512×512尺寸训练,本质是让模型学习该尺寸下的图像语义、纹理、结构分布。而卷积层、自注意力机制本身是空间尺寸无关的:只要输入张量的通道数匹配,它们就能处理任意宽高的特征图。这种特性让模型天然具备一定的跨尺寸泛化能力,能应对训练数据中未出现的尺寸。
不过,训练数据集中没有的尺寸,模型缺乏对应的特征分布学习,所以生成效果会打折扣——比如768×768可能出现人体比例失调、伪影,小尺寸(如384×384)可能丢失精细细节。
推理阶段的跨尺寸实现逻辑
潜在空间尺寸转换
用户指定的任意宽高,会先按VAE的下采样倍数(固定为8)转换为潜在张量尺寸:比如目标尺寸为W×H,潜在张量尺寸就是W//8 × H//8(必须为整数,否则会自动做padding或裁剪处理)。例如512×512对应64×64,768×768对应96×96。UNet的动态适配
UNet的自注意力层会根据当前潜在张量的宽高计算键值对数量,位置编码也是实时基于当前张量的空间维度生成,完全不依赖固定的sample_size。卷积层则通过滑动窗口的方式处理任意尺寸的特征图,无需预先固定输入尺寸。VAE的解码还原
UNet生成的潜在张量会被VAE上采样8倍,还原到用户指定的输出宽高,完成图像生成。
跨尺寸推理的限制
- 潜在尺寸必须是8的倍数:由于VAE的下采样/上采样率为8,输入宽高需满足能被8整除,否则会做自动调整(可能影响构图)。
- 效果随尺寸偏离度下降:越远离512×512的尺寸,模型生成的图像质量越差,因为缺乏对应尺寸的训练数据支撑。
- 显存约束:更大的尺寸会导致UNet特征图的像素数增加,注意力层计算量呈平方级上升,需要更多显存支持。
内容的提问来源于stack exchange,提问作者MAPLE LEAF

