| |

Подробное описание размеров для создания GIF в GPT Image 2.6 Sunburst: 4 варианта компоновки и ограничения размера для 2–16 кадров

Подробное описание размеров для создания GIF в GPT Image 2.6 Sunburst: 4 варианта компоновки и ограничения размера для 2–16 кадров

Примечание автора: при генерации GIF с помощью GPT Image 2.6 Sunburst параметр size задаёт размер одного кадра, а реальное ограничение действует на спрайт-лист, собранный из всех кадров. В этой статье правила разбираются по пунктам в таблицах, а также приводятся предельные размеры для разного числа кадров.

Многие разработчики, впервые делая GIF через gpt-image-2.6-sunburst, сталкиваются с такой ситуацией: ставят size в 1024×1024, задают всего 2 кадра, а API сразу возвращает 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-ru-image-0


Ключевые моменты по размерам GIF в GPT Image 2.6 Sunburst

Сначала посмотрите на таблицу с ключевыми правилами генерации GIF, а ниже разберём каждый пункт подробнее.

Пункт Описание Что это значит для вас
size — это размер одного кадра size задаёт ширину и высоту каждого кадра, а не итогового GIF Проверяется именно общий спрайт-лист, поэтому нельзя оценивать по размеру одного кадра
Все кадры используют один спрайт-лист Модель сначала рисует каждый кадр на одном sprite sheet, а затем нарезает его в GIF Чем больше кадров, тем меньше размер, доступный для одного кадра
Раскладка спрайт-листа фиксирована Для 2–8 кадров — 4×2, для 9 кадров — 3×3, для 10–12 — 4×3, для 13–16 — 4×4 2 и 8 кадров занимают одинаковую площадь спрайт-листа
Ширина и высота должны быть кратны 16 В size можно передать auto или WIDTHxHEIGHT, где и ширина, и высота кратны 16 Подходят значения вроде 832, 816, 720
При превышении лимита возвращается 400 В ошибке param будет size При ошибке в первую очередь проверяйте размер спрайт-листа

Механизм сборки спрайт-листа для GIF в GPT Image 2.6

Процесс создания GIF в GPT Image 2.6 Sunburst состоит из двух шагов: сначала все кадры рисуются на одной большой картинке по фиксированной сетке, затем эта картинка нарезается на отдельные кадры и из них собирается анимация с учётом frame_duration_ms. Поэтому ограничения на размер смотрят не на отдельный кадр, а на длину стороны этого спрайт-листа, общее число пикселей и соотношение длинной и короткой сторон.

Раскладка выбирается по диапазонам числа кадров и не подгоняется под фактическое количество. Например, если задать frame_count равным 2, система всё равно использует раскладку 4×2. Пример из справочных материалов это подтверждает: для 2 кадров размером 2048×2048 каждый спрайт-лист уже будет 8192×4096. При оценке обязательно используйте «число ячеек в раскладке», а не «фактическое число кадров».

Разбор базовых параметров GIF в GPT Image 2.6

Кроме 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, API не вернёт 400, а просто отбросит frame_count и frame_duration_ms и откатится к значениям по умолчанию: 9 кадров и 1,8 секунды. То есть запрос «успешно» выполнится, но результат будет не тем, который вы хотели. В такой ситуации нужно после генерации проверить фактическое число кадров инструментами — как именно, расскажем в разделе быстрого старта.

gpt-image-2-6-sunburst-gif-size-guide-ru-image-1


Подробный разбор границ размеров Sunburst GIF в GPT Image 2.6

Этот раздел — ключевой во всей статье. Если собрать вместе ограничения на составное изображение и правила раскладки, можно вывести верхние пределы размеров для каждого диапазона количества кадров.

Четыре ограничения для составного изображения в 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, что соответствует составному изображению 3×3 из 9 кадров размером 256×256. Прошедшие проверку 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-ru-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 — все три ограничения соблюдены.

💡 Совет по выбору: предельные размеры — это результат расчёта по правилам, со стороны модели бюджет может корректироваться. Перед запуском в продакшен рекомендуем прогнать набор граничных тестов на APIYI apiyi.com с quality: "low", чтобы с минимальными затратами проверить привычные вам комбинации размеров.

GPT Image 2.6 Sunburst GIF: быстрый старт

Минимальный пример GIF с GPT Image 2.6

Ниже — недорогой пример из справочных материалов: 2 кадра, по 100 мс на кадр, общая длительность 0,2 секунды. Генерируем зацикленную анимацию: жёлтый круг смещается вправо и возвращается на исходное место. frame_count и другие поля — специфичные для GIF; здесь мы просто отправляем JSON через requests — так нагляднее всего.

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» помогают сделать стык первого и последнего кадров более естественным.

Предварительная проверка размеров GIF в GPT Image 2.6 и полная реализация

В production-окружении рекомендуется перед запросом выполнить локальную предварительную проверку — так вы заранее отсеете недопустимые размеры и сэкономите один round-trip, который иначе завершился бы ошибкой 400. В коде ниже таблица раскладок и ограничения из этой статьи оформлены в виде функций, совместимых и с интерфейсом генерации, и с интерфейсом редактирования.

Посмотреть полный код реализации (с предварительной проверкой размеров)
import base64
import requests
from typing import Optional

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.apiyi.com/v1"  # совместимый с OpenAI интерфейс APIYI

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",
    )

### Проверка фактического количества кадров GIF в GPT Image 2.6 с помощью ffprobe

Если значение `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.

> 🚀 **Быстрый старт**: рекомендуем зарегистрироваться на APIYI apiyi.com и воспользоваться бесплатной тестовой квотой для новых пользователей. Сначала прогоните весь процесс с параметрами 512×512, 2 кадра и `quality: «low»`, а затем постепенно увеличивайте количество кадров и размер. Платформа предоставляет OpenAI-совместимый интерфейс: одного API-ключа достаточно, чтобы вызывать GPT Image и другие популярные модели.

—

## Частые вопросы (FAQ)

Вопрос 1: что означает `size` при генерации GIF в GPT Image 2.6 Sunburst?

`size` — это размер каждого кадра, а не размер итогового склеенного изображения. При фактической проверке система выбирает раскладку в зависимости от числа кадров, вычисляет ширину, высоту и общее количество пикселей склеенного изображения, а затем сравнивает их с ограничениями: 3840 по длинной стороне, 8,294,400 пикселей суммарно и соотношение 3:1.

Вопрос 2: почему 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 или меньше.

Вопрос 3: почему при frame_count = 1 или 17 ошибки нет?

В текущей цепочке `frame_count` за пределами диапазона 2–16 не возвращает 400. Система просто отбрасывает и `frame_count`, и `frame_duration_ms`, откатываясь к значениям по умолчанию: 9 кадров и 1,8 секунды. Рекомендуем проверять диапазон на стороне клиента, а после генерации сверять фактическое число кадров через ffprobe.

Вопрос 4: если n больше 1, суммируется ли пиксельный бюджет в GPT Image 2.6?

В текущей цепочке каждое изображение проверяется отдельно, без суммирования. На практике 2 изображения × 16 кадров × 512² (в сумме 8,388,608) проходят успешно. Однако в официальном руководстве сказано, что несколько изображений тоже должны укладываться в один бюджет, поэтому в пакетных сценариях ориентируйтесь на фактический ответ и при необходимости разбивайте запрос на несколько вызовов с `n=1`.

Вопрос 5: как быстро вызвать GPT Image 2.6 Sunburst через API и сгенерировать GIF?

Рекомендуем такой порядок действий:

1. Зарегистрируйтесь на APIYI apiyi.com и получите API-ключ и бесплатную тестовую квоту
2. Укажите в коде из этой статьи `base_url` равным `https://api.apiyi.com/v1`
3. Проверьте цепочку на минимальном примере: 512×512, 2 кадра, `quality: «low»`, — а затем подстраивайте параметры по таблице размеров

Вопрос 6: может ли GPT Image 2.6 генерировать GIF на основе уже имеющихся изображений?

Да. `/v1/images/edits` тоже поддерживает `output_format: «gif»`: поместите эталонные изображения в поле `images`, первое изображение станет основой анимации, остальные параметры такие же, как у интерфейса генерации, и правила по размерам полностью совпадают. В промпте стоит явно указать «фиксированная камера» и «последнее движение возвращается в исходную позу» — тогда цикл получится плавнее.

Вопрос 7: изменятся ли приведённые в статье границы размеров?

Вполне возможно. Бюджет спрайт-листа — это измеренные параметры на 2026-11-09 в официальном прокси-канале: значение 8,294,400 проходит на верхней границе, а 12 кадров 832² отклоняются. На стороне модели эти границы могут меняться, поэтому в итоге ориентируйтесь на ошибку 400, которую возвращает API. Советую вынести константы из функции предварительной проверки в настраиваемые параметры, чтобы их можно было обновлять в любой момент.

—

## Ключевые выводы о размерах GIF в GPT Image 2.6 Sunburst

— **`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`
— **Недорогая проверка**: запускайте граничные тесты в APIYI apiyi.com с `quality: «low»` — так дешевле всего

—

## Итоги

Правила размеров для генерации GIF в GPT Image 2.6 Sunburst сводятся к трём шагам расчёта:

1. **Сначала определить раскладку**: по `frame_count` выбрать подходящую раскладку — 4×2, 3×3, 4×3 или 4×4.
2. **Затем рассчитать составное изображение**: умножить ширину и высоту одного кадра на количество строк и столбцов раскладки, чтобы получить ширину, высоту и общее число пикселей.
3. **В конце проверить**: убедиться, что соблюдены ограничения по каждой стороне, нижняя и верхняя границы общего числа пикселей и соотношение длинной и короткой сторон, а также что ширина и высота кратны 16.

В повседневном использовании 512×512 — самое совместимое значение по умолчанию; если нужно большое изображение, 9 кадров с 960×960 или 1280×720 позволяют полностью использовать доступный лимит. Если подключить функцию предварительной проверки из этой статьи к бизнес-коду, большинство ошибок 400 можно будет выявить локально заранее.

Рекомендуем быстро проверить комбинацию размеров через APIYI apiyi.com: платформа предоставляет бесплатный тестовый лимит и единый интерфейс, совместимый с OpenAI, — это удобно для граничного тестирования перед официальной интеграцией.

—

## 📚 Справочные материалы

1. **Центр документации APIYI — GPT Image 2.6: генерация GIF с циклической анимацией**: официальное описание параметров и проверенные на практике границы
— Ссылка: `docs.apiyi.com/api-capabilities/gpt-image-2/gpt-image-2-6`
— Описание: диапазоны параметров GIF, ограничения компоновки, примеры ошибок и использование интерфейса редактирования

2. **Официальная документация FFmpeg — ffprobe**: инструмент просмотра метаданных аудио, видео и GIF
— Ссылка: `ffmpeg.org/ffprobe.html`
— Описание: используется для проверки фактического числа кадров и длительности каждого кадра в сгенерированном GIF.

—

> **Автор**: Техническая команда APIYI
> **Техническая поддержка**: если возникнут проблемы с настройкой размеров GIF, свяжитесь с нами через главную страницу официального сайта APIYI — мы поможем с интеграцией.

Читайте также

Похожие записи