AI 图片长宽比不对:6 类原因 + 6 步修复路径

你设了 9:16,出来 1:1?每个平台对长宽比的解析方式不同——参数语法、模型支持、UI 默认覆盖——一个个排查。

你需要一张 9:16 竖屏发 Reels,出来 1:1 方图。或者设了 --ar 21:9 电影宽,出来 16:9。画面内容没问题——就是长宽比错了。

这几乎一定是 UI / 参数问题,不是模型问题。每个平台对长宽比的解析方式不同,某些模型干脆不支持极端比例。

常见原因

按命中率从高到低:

1. 长宽比参数语法和平台不匹配

--ar 9:16 在 Midjourney 上有效,在多数 SDXL UI 上无效。把 Midjourney 的 flag 写进 SDXL Prompt 等于当文字吞掉。

如何判断:长宽比写法是 --ar X:Y 但你不在 Midjourney——flag 被当成普通文字吞了。

2. 模型强制输出固定分辨率

某些托管模型(老 DALL-E 版本、部分图片 API)只输出方图——--ar 被静默忽略。

如何判断:查模型文档 / 定价页支持的分辨率。只列 “1024×1024” 就只能出方图。

3. UI 默认覆盖了 Prompt

你写 --ar 16:9 但 UI 的分辨率下拉框设的是 “1024×1024 方图”——UI 赢。ComfyUI / A1111 / 部分 Web UI 常见。

如何判断:把 UI 下拉框改成期望比例。Prompt 里的 aspect flag 一旦和 UI 冲突,通常被 UI 覆盖。

4. 极端比例不被支持

32:91:521:9、甚至 9:16 在某些 checkpoint 上不被支持。模型返回最近的支持比例。

如何判断:同 Prompt 9:16 出 1:1,但 2:3 正常——模型支持集受限。

5. 按像素而非比例设置时算错了

你设 768×1344 以为是 9:16。算一下:768/1344 = 0.571 ≈ 4:7,不是 9:16。差一像素错误很常见。

如何判断:宽除以高,对比目标比例。算错了重算。

6. 导出环节改了长宽比

模型生成正确,但平台自动导出渲染成别的(Instagram 方图预览等)。

如何判断:下载原始 PNG。比对文件尺寸和显示的。

最短修复路径

Step 1:用正确的平台语法

# Midjourney
"... --ar 9:16"
"... --ar 16:9"
"... --ar 1:1"  (默认)
"... --ar 21:9"
"... --ar 3:2"

# SDXL via A1111 / Forge
- 直接在 UI 上设宽 × 高
- 常用比例:
  - 1:1   → 1024×1024
  - 9:16  → 768×1344
  - 16:9  → 1344×768
  - 4:5   → 896×1152
  - 21:9  → 1536×640

# ComfyUI
- EmptyLatentImage 节点——设宽和高
- SDXL 要求两边都能被 64 整除

# DALL-E 3 (ChatGPT)
- 在消息里说"做成 9:16 竖屏"
- 支持:1024×1024、1024×1792(竖)、1792×1024(横)
- 不支持 --ar flag

# Flux dev (ComfyUI)
- 宽 × 高(两边都能被 16 整除)
- 单边最大约 2048

Step 2:先生成支持的比例再裁

不支持的极端比例(32:9、5:1、超高):

1. 用最接近的支持比例生成(16:9、21:9 或 9:16)
2. Photoshop / Pixelmator / Photopea 打开
3. 裁到目标比例
4. 需要的话放大回目标尺寸

Prompt 里给主体留 10% 边距,裁切不会把它切掉。

Step 3:查模型支持的比例列表

各平台文档:

Midjourney v6: 1:1, 9:16 到 16:9,--ar 通常支持到 21:9
SDXL: 任何比例,两边能被 64 整除,总像素 ~1M
Flux: 任何比例,两边能被 16 整除
DALL-E 3: 只支持 1:1、7:4 (1792×1024)、4:7 (1024×1792)
Stable Diffusion 3: 类似 SDXL
Imagen 3: 1:1、9:16、16:9、3:4、4:3

Step 4:覆盖 UI 默认

ComfyUI / A1111 / Forge 里:

- 查 UI 的宽 / 高字段
- 确认和 Prompt 一致
- 冲突时 UI 字段通常赢
- A1111 还要查 "Hires fix" 的目标分辨率

Step 5:算清楚像素数学

# 长宽比快速检查
def aspect(w, h):
    from math import gcd
    g = gcd(w, h)
    return f"{w//g}:{h//g}"

# 例子
aspect(1024, 1792)  # → "4:7"(不是 9:16)
aspect(768, 1344)   # → "4:7"(也不是 9:16)

精确 9:16 用 1080 × 1920576 × 1024768 × 1365(略有取整)。

Step 6:确认导出文件的长宽比

下载原始 PNG。在 Finder / 资源管理器 / identify image.png 查文件尺寸。和期望对比。不一样 → 导出环节有问题,绕开它。

预防建议

  • 给每个平台存一份比例速查(Midjourney --ar 语法、SDXL 像素尺寸、DALL-E 支持集)
  • 系列项目永远同一比例,不混
  • 默认”稍大 + 裁”,别”极端比例 + 期望模型听话”
  • 用像素数学验证你设的尺寸真的是目标比例(算一下,别目测)

相关阅读

标签: #图像生成 #排查 #排查