Skip to content

SDXL 宽高比

SDXL NPU 模型支持在生成时使用任意宽高比,无需为每个分辨率单独准备模型文件。

实现原理

SDXL UNet 的输入始终固定为 1024×1024 —— 同一份二进制处理所有宽高比。为了产出非正方形图像,应用采用了一种 inpaint 风格的巧妙方式:

  1. 在 1024×1024 的潜空间画布中,把目标输出区域放置在居中的矩形位置。
  2. 每个去噪步骤中,矩形之外的区域被遮罩,模型仅在目标区域内更新像素。
  3. 采样完成后,从中心矩形中裁出对应区域作为最终图像。

效果是模型"以为"自己在生成 1024×1024 图像,但去噪计算被限制在居中的目标矩形内,从而生成出符合所选宽高比的干净图像。

尺寸规则

  • 长边始终为 1024
  • 短边按所选宽高比等比计算,再向上取整到 8 的倍数 —— 模型只接受 8 的倍数作为尺寸。

例如:3:2 宽高比 → 1024 × 2/3 ≈ 682.67,向上取整为 1024×688;9:16 宽高比 → 正好 576×1024

性能

因为底层计算图始终在 1024×1024 上执行:

  • 生成时间与所选宽高比无关,完全相同
  • 没有"更小分辨率更快"这种捷径 —— 选择窄长或宽扁画布既不会加速,也不会减速。

与 SD1.5 的对比

SD1.5 采取的是另一种思路:每个分辨率(512×768、768×512、768×1024、1024×768 …)都是独立的补丁模型,切换画布尺寸时需要切换模型。详见 SD1.5 NPU 高分辨率

SD1.5 NPUSDXL NPU
每个分辨率独立模型是(每个尺寸一份)否(单一 1024×1024 模型)
切换画布尺寸需要重新加载不同补丁即时切换,无需重新加载
生成时间随画布变化随分辨率变化恒定不变

注意事项

  • 宽高比选项仅对 SDXL NPU 模型生效。SD1.5 NPU 仍使用每分辨率补丁的方式。
  • 极端宽高比会使 1024×1024 画布内的可用区域变小,在很窄或很宽的比例下可能影响构图质量。