| |

GPT Image 2.6 Sunburst 製作 GIF 的尺寸詳解:4 種拼圖佈局與 2-16 幀尺寸上限

GPT Image 2.6 Sunburst 製作 GIF 的尺寸詳解:4 種拼圖佈局與 2-16 幀尺寸上限

作者注:用 GPT Image 2.6 Sunburst 生成 GIF 時,size 指的是單幀尺寸,真正的限制作用在所有幀拼成的拼圖上。本文用表格逐項拆解這些規則,並給出各幀數下可用的尺寸上限。

很多開發者第一次用 gpt-image-2.6-sunburst 做 GIF 時會遇到這樣的情況:size 設成 1024×1024、幀數只設 2 幀,接口卻直接返回 400。原因是 GIF 的尺寸規則和靜態圖不同。本文介紹 “單幀尺寸 → 拼圖佈局 → 拼圖約束”三步換算法,幫你判斷任意一組 size 和 frame_count 能不能通過校驗。

這不是參數說明的簡單翻譯。 文中的邊界值來自 2026-11-09 在官轉鏈路上的實測口徑,表裏的每一個上限都給出了推算過程,你可以自己複覈。

核心價值:讀完本文,你能根據幀數選出合適的單幀尺寸,避開 GIF frames exceed the total request pixel budget 這類報錯,並知道在 512×512、768×768、960×960 之間怎麼取捨。

gpt-image-2-6-sunburst-gif-size-guide-zh-hant-image-0


GPT Image 2.6 Sunburst GIF 尺寸核心要點

先用一張表看清 GIF 生成涉及的關鍵規則,後面再逐條展開。

要點 說明 對你的影響
size 是單幀尺寸 size 表示每一幀的寬高,不是成片尺寸 實際校驗對象是拼圖,不能按單幀大小估算
所有幀共享一張拼圖 模型先把每一幀畫進同一張 sprite sheet,再切成 GIF 幀數越多,單幀能用的尺寸越小
拼圖佈局固定 2–8 幀用 4×2,9 幀用 3×3,10–12 幀用 4×3,13–16 幀用 4×4 2 幀和 8 幀佔用的拼圖面積相同
寬高須爲 16 的倍數 size 可傳 auto,或寬高都是 16 倍數的 WIDTHxHEIGHT 832、816、720 這類值才合法
超界返回 400 報錯中 param 爲 size 遇到報錯優先檢查拼圖尺寸

GPT Image 2.6 GIF 的拼圖生成機制

GPT Image 2.6 Sunburst 生成 GIF 的過程分兩步:先按固定網格把所有幀畫進一張大圖,再把大圖切成單幀,按 frame_duration_ms 合成動畫。所以尺寸限制不看單幀,而是看這張拼圖的單邊長度、總像素數和長短邊比例。

佈局按幀數分檔,不按實際幀數緊湊排列。比如 frame_count 設爲 2,系統仍然使用 4×2 佈局。參考資料裏的例子可以證明這一點:2048×2048 的單幀只要 2 幀,拼圖就需要 8192×4096。估算時一定要用“佈局的格子數”,不能用“實際幀數”。

GPT Image 2.6 GIF 基礎參數解讀

除了 size,GIF 還有兩個專屬參數:frame_count 控制幀數,frame_duration_ms 控制每幀停留時長。總時長等於幀數乘以每幀時長。例如 2 幀 × 100ms 就是 0.2 秒的循環。

參數 官方範圍與默認值 詳細說明
frame_count 2–16,默認 9 幀數越多,耗時和費用通常越高;超出範圍不報錯,會回退到默認值
frame_duration_ms 20–2000ms,默認 200ms 按 10ms 取整;默認組合是 9 幀 × 200ms = 1.8 秒
size auto 或 WIDTHxHEIGHT 寬高都必須是 16 的倍數,表示單幀尺寸
output_format 設爲 "gif" frame_count 和 frame_duration_ms 只對 GIF 生效
quality 如 low 等 做低成本測試時建議用 low

frame_count 的越界行爲需要特別注意。傳 1 或 17 時,接口不會返回 400,而是丟掉 frame_count 和 frame_duration_ms,回退到默認的 9 幀、1.8 秒。也就是說,請求“成功”了,結果卻不是你想要的。這種情況必須在生成後用工具覈對實際幀數,具體做法見快速上手部分。

gpt-image-2-6-sunburst-gif-size-guide-zh-hant-image-1


GPT Image 2.6 Sunburst GIF 尺寸邊界詳解

這一節是全文重點。把拼圖的約束和佈局規則放在一起,就能推出每個幀數檔位的尺寸上限。

GPT Image 2.6 拼圖的四項約束

約束 邊界值 解讀
拼圖單邊 ≤ 3840 拼圖的寬和高都不能超過 3840 像素
拼圖總像素上限 ≤ 8,294,400 等於 3840×2160,也就是一張 4K 畫面的像素量
拼圖總像素下限 ≥ 約 655,360 實測 589,824 被拒,665,856 通過
拼圖長短邊比 ≤ 3:1 拼圖過於狹長會被拒絕
幀尺寸 寬、高都是 16 的倍數 不滿足時無法作爲合法 size

上限部分比較好理解。單邊 3840 和總像素 8,294,400 是兩道獨立的關卡,必須同時滿足。幀數少時,拼圖的寬通常先碰到單邊限制;幀數多時,總像素通常先用完。

下限經常被忽略。實測被拒的 589,824 正好是 768×768,對應 9 幀、單幀 256×256 的 3×3 拼圖。通過的 665,856 是 816×816,對應 9 幀、單幀 272×272。由此推算,單幀太小又碰上格子少的佈局,也可能因爲拼圖太小被拒。例如 4×2 佈局配 256×256 單幀,拼圖只有 1024×512,合計 524,288 像素,低於下限。所以“縮小尺寸省錢”這條路也有底線。

長短邊比的影響在非方形幀上比較明顯。按 4×2 佈局推算,單幀爲 16:9 時,拼圖寬高比約爲 3.56:1,超過 3:1;換到 3×3 或 4×4 佈局後比例會降下來。這一點是根據規則推算的,建議上線前實測確認。

GPT Image 2.6 各幀數的方形單幀上限

下面的上限按“方形單幀 + 寬高爲 16 的倍數”計算,可以直接拿來查。

幀數 佈局 方形單幀上限 推算過程
2–8 4×2 960×960 受單邊限制:4×960 = 3840;總像素 7,372,800,在預算內
9 3×3 960×960 9×960² = 8,294,400,正好用滿預算
10–12 4×3 816×816 12×832² = 8,306,688,超出 12,288 像素被拒,退到 816
13–16 4×4 720×720 16×720² = 8,294,400,正好用滿預算

有兩個細節需要說明。

  • 10–12 幀按 12 格計算:佈局是 4×3,即使只要 10 幀,拼圖也按 12 個格子佔用像素。實測中 12 幀、832² 只超出 12,288 像素就被拒,說明預算是嚴格執行的。
  • 2–8 幀受單邊限制:這一檔總像素還有餘量,但拼圖寬是單幀寬的 4 倍,所以 960 已經是上限。1024 會讓拼圖寬變成 4096。

gpt-image-2-6-sunburst-gif-size-guide-zh-hant-image-2

GPT Image 2.6 常用尺寸怎麼選

把上面的上限換成實際選型,可以得到下面幾條結論:

單幀尺寸 可用幀數 拼圖示例 適用建議
512×512 2–16 幀全部可用 16 幀時 2048×2048 最穩的選擇,適合表情包、圖標動效、批量生成
768×768 最多 12 幀 12 幀時 3072×2304 16 幀時拼圖 3072×3072 = 9,437,184,超出預算
960×960 最多 9 幀 9 幀時 2880×2880 需要大畫面且幀數不多時使用
1280×720 9 幀 3840×2160 寬畫面方案,拼圖正好用滿單邊和預算
1024×1024 任何幀數都不可用 2–8 幀時寬 4096 9 幀超預算,其餘檔位超單邊
2048×2048 任何幀數都不可用 2 幀時 8192×4096 遠超所有限制

1024×1024 在靜態圖裏很常用,在 GIF 裏卻完全不可用。2–8 幀和 10–12 幀時,拼圖寬是 4096,超過 3840;9 幀時拼圖是 3072×3072,總像素 9,437,184,超出預算;13–16 幀時拼圖寬也是 4096。所以從靜態圖遷移到 GIF 時,第一件事就是把默認尺寸改小。

如果需要橫向畫面,推薦 9 幀配 1280×720。此時拼圖是 3×3 佈局,正好 3840×2160,長短邊比 16:9,三項約束都滿足。

💡 選型建議:尺寸上限是按規則計算的結果,模型側可能調整預算。上線前建議在 API易 apiyi.com 上用 quality: "low" 跑一組邊界測試,用最低成本確認你常用的尺寸組合。


GPT Image 2.6 Sunburst GIF 快速上手

GPT Image 2.6 GIF 極簡示例

下面是參考資料中的低成本示例:2 幀、每幀 100ms、總時長 0.2 秒,生成一個黃色圓形右移再回到原位的循環動畫。frame_count 等是 GIF 專屬字段,這裏直接用 requests 發 JSON,最直觀。

import base64, requests

resp = requests.post(
    "https://api.apiyi.com/v1/images/generations",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "model": "gpt-image-2.6-sunburst",
        "prompt": "A minimal two-frame looping animation of a yellow circle moving slightly right and returning to its starting position on a plain white background, no text, seamless loop.",
        "output_format": "gif",
        "quality": "low",
        "size": "512x512",
        "frame_count": 2,
        "frame_duration_ms": 100,
        "n": 1,
    },
    timeout=300,
)
resp.raise_for_status()
open("circle.gif", "wb").write(base64.b64decode(resp.json()["data"][0]["b64_json"]))

寫提示詞時,要描述清楚三件事:主體是什麼、怎麼運動、怎麼循環。例如“回到起始位置”“seamless loop”這類描述,能讓首尾幀銜接得更自然。

GPT Image 2.6 GIF 尺寸預檢與完整實現

生產環境建議在請求前先做本地預檢,提前攔截不合法的尺寸,節省一次 400 往返。下面的代碼把本文的佈局表和約束寫成函數,同時兼容生成接口和編輯接口。

查看完整實現代碼(含尺寸預檢)
import base64
import requests
from typing import Optional

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.apiyi.com/v1"  # API易 OpenAI 兼容接口

MAX_EDGE = 3840
MAX_PIXELS = 8_294_400   # 3840 x 2160
MIN_PIXELS = 655_360     # 實測下限附近,僅作預警
MAX_RATIO = 3.0


def sheet_layout(frame_count: int) -> tuple[int, int]:
    """按幀數返回固定拼圖佈局 (列, 行)"""
    if 2 <= frame_count <= 8:
        return 4, 2
    if frame_count == 9:
        return 3, 3
    if 10 <= frame_count <= 12:
        return 4, 3
    if 13 <= frame_count <= 16:
        return 4, 4
    raise ValueError("frame_count 必須在 2-16 之間,否則會被靜默回退到 9 幀")


def check_gif_size(width: int, height: int, frame_count: int) -> list[str]:
    """返回問題列表,空列表表示預檢通過"""
    issues = []
    if width % 16 or height % 16:
        issues.append("寬高必須是 16 的倍數")
    cols, rows = sheet_layout(frame_count)
    sw, sh = cols * width, rows * height
    total = sw * sh
    if max(sw, sh) > MAX_EDGE:
        issues.append(f"拼圖 {sw}x{sh} 單邊超過 {MAX_EDGE}")
    if total > MAX_PIXELS:
        issues.append(f"拼圖總像素 {total:,} 超過 {MAX_PIXELS:,}")
    if total < MIN_PIXELS:
        issues.append(f"拼圖總像素 {total:,} 低於約 {MIN_PIXELS:,},可能被拒")
    if max(sw, sh) / min(sw, sh) > MAX_RATIO:
        issues.append(f"拼圖長短邊比 {max(sw, sh) / min(sw, sh):.2f} 超過 3:1")
    return issues


def create_gif(
    prompt: str,
    size: str = "512x512",
    frame_count: int = 9,
    frame_duration_ms: int = 200,
    quality: str = "low",
    image_url: Optional[str] = None,
    out_path: str = "output.gif",
) -> str:
    w, h = map(int, size.lower().split("x"))
    problems = check_gif_size(w, h, frame_count)
    if problems:
        raise ValueError("尺寸預檢未通過: " + "; ".join(problems))

    payload = {
        "model": "gpt-image-2.6-sunburst",
        "prompt": prompt,
        "output_format": "gif",
        "quality": quality,
        "size": size,
        "frame_count": frame_count,
        "frame_duration_ms": frame_duration_ms,
        "n": 1,
    }
    endpoint = "images/generations"
    if image_url:  # 編輯接口:第一張圖作爲動畫主體
        endpoint = "images/edits"
        payload["images"] = [{"image_url": image_url}]

    resp = requests.post(
        f"{BASE_URL}/{endpoint}",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json=payload,
        timeout=600,
    )
    if resp.status_code == 400:
        raise RuntimeError(f"參數被拒(多爲 size 超界): {resp.text}")
    resp.raise_for_status()

    item = resp.json()["data"][0]
    if item.get("b64_json"):
        data = base64.b64decode(item["b64_json"])
    else:
        data = requests.get(item["url"], timeout=120).content
    with open(out_path, "wb") as f:
        f.write(data)
    return out_path


if __name__ == "__main__":
    print(check_gif_size(768, 768, 16))   # 預期:總像素超預算
    print(check_gif_size(1280, 720, 9))   # 預期:[] 通過
    create_gif(
        prompt="讓這隻貓跳一小段舞,純色背景,固定鏡頭,最後一個動作回到起始姿勢",
        size="512x512",
        frame_count=16,
        frame_duration_ms=100,
        image_url="https://example.com/cat.png",
        out_path="cat_dance.gif",
    )

用 ffprobe 覈對 GPT Image 2.6 GIF 的實際幀數

frame_count 越界時會靜默回退到 9 幀,所以批量任務裏最好加一步實際幀數校驗:

ffprobe -v error -count_frames -select_streams v:0 \
  -show_entries stream=nb_read_frames -of csv=p=0 circle.gif

極簡示例應該輸出 2。如果輸出 9,說明幀數參數沒有生效,需要檢查傳入的值是否在 2–16 之間。

GPT Image 2.6 GIF 的功能限制

GIF 模式不支持以下能力,請求時不要攜帶:

  • stream 流式輸出和 partial images 漸進式預覽
  • 自定義 output_compression
  • prompt_rewriter

另外,frame_count 和 frame_duration_ms 只用於 GIF,不要傳給 PNG、JPEG、WebP 或 SVG 請求。

🚀 快速開始:推薦在 API易 apiyi.com 註冊後使用新用戶的免費測試額度,先用 512×512、2 幀、quality: "low" 跑通全流程,再逐步加大幀數和尺寸。平臺提供 OpenAI 兼容接口,一個 API Key 就能調用 GPT Image 等主流模型。


常見問題 FAQ

Q1:GPT Image 2.6 Sunburst 生成 GIF 時,size 指的是什麼?

`size` 是每一幀的尺寸,不是最終拼圖的尺寸。實際校驗時,系統會按幀數選擇佈局,算出拼圖的寬、高和總像素,再和 3840 單邊、8,294,400 總像素、3:1 比例這幾項限制比較。

Q2:爲什麼 1024×1024 在 GPT Image 2.6 GIF 裏一幀都生成不了?

因爲在任何佈局下它都會超界。4×2 和 4×3、4×4 佈局的拼圖寬是 4096,超過 3840;3×3 佈局的拼圖是 3072×3072,總像素 9,437,184,超出預算。報錯信息通常是 `No supported sheet fits … The longest edge must be less than or equal to 3840.` 這種情況把單幀改成 960×960 或更小即可。

Q3:frame_count 傳 1 或 17,爲什麼沒有報錯?

在當前鏈路下,超出 2–16 範圍的 `frame_count` 不會返回 400。系統會同時丟掉 `frame_count` 和 `frame_duration_ms`,回退到默認的 9 幀、1.8 秒。建議在客戶端做範圍校驗,生成後再用 ffprobe 覈對實際幀數。

Q4:n 大於 1 時,GPT Image 2.6 的像素預算會累加嗎?

在當前鏈路下,每張單獨校驗,不累加。實測 2 張 × 16 幀 × 512²(合計 8,388,608)仍然成功。不過官方指南寫的是多張也要落在同一預算內,所以批量場景請以實際返回爲準,必要時拆成多次 `n=1` 的請求。

Q5:如何快速通過 API 調用 GPT Image 2.6 Sunburst 生成 GIF?

推薦按以下步驟操作:

1. 訪問 API易 apiyi.com 註冊賬號,獲取 API Key 和免費測試額度
2. 將本文代碼的 base_url 設爲 `https://api.apiyi.com/v1`
3. 用 512×512、2 幀、`quality: “low”` 的極簡示例驗證鏈路,再按尺寸表調整參數

Q6:GPT Image 2.6 能基於已有圖片生成 GIF 嗎?

可以。`/v1/images/edits` 同樣支持 `output_format: “gif”`,把參考圖放進 `images` 字段,第一張圖會作爲動畫主體,其餘參數和生成接口一致,尺寸規則也完全相同。提示詞裏建議寫明“固定鏡頭”“最後一個動作回到起始姿勢”,循環會更順。

Q7:本文的尺寸邊界會變化嗎?

有可能。拼圖預算是 2026-11-09 在官轉鏈路的實測口徑:8,294,400 頂格通過,12 幀 832² 被拒。模型側可能調整這些邊界,最終以接口返回的 400 報錯爲準。建議把預檢函數里的常量做成可配置項,方便隨時更新。


GPT Image 2.6 Sunburst GIF 尺寸 Key Takeaways

  • size 是單幀尺寸:限制作用在所有幀共享的拼圖上,不在單幀上
  • 佈局按檔固定:4×2、3×3、4×3、4×4 四種佈局,分別對應 2–8、9、10–12、13–16 幀
  • 三項硬約束:拼圖單邊 ≤ 3840,總像素 ≤ 8,294,400,長短邊比 ≤ 3:1
  • 最穩尺寸是 512×512:2–16 幀全部可用;768² 最多 12 幀,960² 最多 9 幀
  • 1024² 完全不可用:遷移靜態圖參數時,需要先把尺寸改小
  • 越界幀數會靜默回退:建議客戶端校驗範圍,生成後用 ffprobe 覈對幀數
  • 低成本驗證:在 API易 apiyi.com 用 quality: "low" 跑邊界測試,費用最低

總結

GPT Image 2.6 Sunburst 生成 GIF 的尺寸規則,核心是三步換算:

  1. 先定佈局:根據 frame_count 找到對應的 4×2、3×3、4×3 或 4×4 佈局
  2. 再算拼圖:用單幀寬高乘以佈局行列,得到拼圖的寬、高和總像素
  3. 最後校驗:檢查單邊、總像素上下限和長短邊比,並確認寬高是 16 的倍數

日常使用中,512×512 是兼容性最好的默認值;需要大畫面時,9 幀配 960×960 或 1280×720 能把預算用滿。把本文的預檢函數接入業務代碼,大部分 400 報錯都可以在本地提前發現。

推薦通過 API易 apiyi.com 快速驗證你的尺寸組合,平臺提供免費測試額度和 OpenAI 兼容的統一接口,適合在正式接入前完成邊界測試。


📚 參考資料

  1. API易 文檔中心 – GPT Image 2.6 GIF 生成循環動畫:官方參數與實測邊界說明
  2. 鏈接: docs.apiyi.com/api-capabilities/gpt-image-2/gpt-image-2-6
  3. 說明:包含 GIF 參數範圍、拼圖約束、報錯示例與編輯接口用法

  4. FFmpeg 官方文檔 – ffprobe:音視頻與 GIF 元數據查看工具

  5. 鏈接: ffmpeg.org/ffprobe.html
  6. 說明:用於覈對生成 GIF 的實際幀數和每幀時長

作者:APIYI 技術團隊
技術交流:如在 GIF 尺寸配置上遇到問題,歡迎通過 API易 官網首頁聯繫我們,獲取更多接入支持。

延伸閱讀

Similar Posts