Как создать зацикленный GIF с GPT Image 2.6 и проверить результат
Подготовьте запрос GIF в Image 2.6, сохраните анимацию, проверьте кадры и длительность. Разбираем ограничения API и ошибки без бесконечных повторных запросов.
GPT Image 2.6 поддерживает вывод анимированных GIF через эндпоинт генерации Images API. Укажите output_format: "gif", опишите короткое действие с возвращением в исходную позу и декодируйте полученный файл. Успешный ответ API — только первая проверка: в результате должны быть движущиеся кадры, подходящий темп и приемлемый переход от конца к началу.
Руководство подготовлено 5 ноября 2026 года по актуальной документации OpenAI. Запросы ниже основаны на документации; это не результаты платных испытаний модели, проведённых Ofox. Вспомогательные программы проверены локально на синтетических файлах, что не подтверждает качество генерации или доступ к API. Во время проверки Image 2.6 не было ни в публичном каталоге Ofox, ни в списке моделей нашего аккаунта. Поэтому примеры обращаются напрямую к OpenAI, а не через шлюз Ofox.
Начните с одного действия и понятного завершения
Для первой проверки результата короткая зацикленная иллюстрация удобнее сложного рекламного ролика. Выберите одного персонажа, неподвижную камеру и одно обратимое движение. На первом этапе лучше обойтись без текста и мелких надписей на упаковке: иначе придётся проверять и их.
Предлагаемый тестовый сюжет — оранжевая птица поднимает крылья, затем возвращается в исходную позу. Это наш шаблон запроса, а не описание уже полученного результата. Английский текст сохранён в том же виде, что и в скачиваемом JSON:
Create a looping animation of a small orange bird on a stationary branch
against a plain cream background. The bird raises its wings, pauses, then
lowers them to its starting pose. Keep the camera fixed, the branch still,
and the bird shape and colors consistent. No text. Make the transition
back to the start smooth.
Смысл запроса: небольшая оранжевая птица сидит на неподвижной ветке на однотонном кремовом фоне, поднимает крылья, ненадолго замирает и опускает их. Камера, ветка, форма и цвета птицы не меняются; переход к началу должен быть плавным.
Если работаете с фирменным персонажем, используйте материалы, на которые у вас есть права, и заранее задайте конкретные критерии: цвета, силуэт, аксессуары и пропорции. Просьба сохранить внешность не доказывает, что модель это сделала. Этот процесс генерации GIF по тексту также нельзя выдавать за проверенный способ загрузить и оживить готовую фотографию.
Подберите параметры для нужного эндпоинта
| Параметр | Диапазон или поведение по документации | Начальный вариант |
|---|---|---|
model | 2.6 Flare или Sunburst | gpt-image-2.6-flare |
output_format | gif на эндпоинте генерации | gif |
frame_count | 2–64; по умолчанию 9 | 9 |
frame_duration_ms | 20–2000 мс на кадр с округлением до 10 мс; по умолчанию 200 | 200 |
size | auto либо допустимые размеры, кратные 16 | auto |
n | Число результатов с учётом ограничений запроса | 1 |
Девять кадров по 200 миллисекунд задают цикл воспроизведения 9 × 200 / 1 000 = 1,8 секунды. Это длительность воспроизведения, а не время генерации. Проверьте возвращённый файл, а не предполагайте, что он в точности повторяет параметры запроса.
Размер кадра, число кадров и число результатов должны укладываться в ограничения модели и общий пиксельный бюджет запроса. Одной кратности сторон числу 16 недостаточно. Начните с auto; если API сообщает о превышении допустимого объёма изображения, уменьшите размеры, число кадров или результатов вместо повторной отправки того же запроса.
Не добавляйте в этот запрос stream, параметры промежуточных изображений, output_compression или prompt_rewriter. Текущее руководство указывает, что GIF-вывод не поддерживает эти функции. Эндпоинт редактирования изображений не возвращает GIF. Это особенно важно, если вы берёте за основу старый запрос для статичного изображения.
Отправьте один запрос и сохраните ответ
Понадобятся ключ прямого OpenAI API с настроенными доступом и оплатой, Python 3 и curl. Доступ в интерфейсе ChatGPT и доступ API-проекта проверяются отдельно. Перед генерацией прочитайте руководство по цене и доступу на английском, особенно различия между оценкой стоимости статичного изображения и расходами на GIF.
Скачайте архив с примерами. В нём находятся полный gif-request.json, пример SVG и программы для локальной проверки. Работайте в новой папке, чтобы не перезаписать предыдущий результат. Безопасно задайте OPENAI_API_KEY в оболочке; не вставляйте значение ключа в JSON и не добавляйте его в Git.
curl --fail-with-body --max-time 240 \
https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @gif-request.json \
--output gif-response.json
JSON из архива содержит запрос с птицей и параметры quality: "low", complexity: "low", size: "auto": один GIF, девять кадров по 200 мс. Это исходные настройки для проверки, а не доказанно оптимальная комбинация. OpenAI описывает Flare как вариант для более быстрой работы, а Sunburst — для задач с повышенными требованиями к деталям. Прежде чем делать вывод о качестве, сравните их на своей задаче.
Если curl завершился с ошибкой, сначала изучите сохранённый ответ. Локальный тайм-аут не доказывает, что сервер не выполнил работу: перед повторным платным запросом проверьте состояние запроса и активность аккаунта.
После успешного ответа декодируйте результат:
python3 decode_image.py gif-response.json bird.gif
Программа ищет data[0].b64_json, проверяет base64 и сигнатуру GIF, а также отказывается перезаписывать существующий файл. Для учёта расходов она выводит возвращённое поле usage, если оно есть. Отсутствие base64 означает, что нужно разобраться со структурой ответа, а не переименовывать произвольные данные в .gif.
Проверьте анимацию до публикации
Установите Pillow в виртуальное окружение и запустите программу проверки:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install Pillow
python inspect_gif.py bird.gif
Она выводит размеры, число кадров, длительность каждого кадра, суммарное время воспроизведения и параметр повтора. В Pillow значение GIF-параметра loop, равное нулю, означает бесконечное повторение; отсутствие значения не подтверждает зацикливание. Один кадр не отвечает требованию анимации, даже если у файла правильная сигнатура GIF.
Программа также рассчитывает среднюю разницу RGB между первым и последним декодированными кадрами. Это диагностический показатель, а не оценка качества или порог приёмки. Два почти одинаковых кадра не исключают рывков между ними. У хорошего цикла крайние кадры тоже могут различаться: следующим после последнего идёт начало нового цикла.
Откройте GIF в браузере и просмотрите несколько повторений. Проверьте, не смещается ли ветка или камера, не меняется ли форма птицы, достигают ли крылья нужного положения и нет ли скачка при повторе. Оцените изображение в размере, в котором его будут показывать, а не только при увеличении. Убедитесь, что целевая площадка поддерживает анимированные GIF, и проверьте размер файла: при загрузке анимацию могут превратить в статичную картинку, пересжать или заменить другим форматом.
Для наглядного ориентира OpenAI публикует пример GIF с фонарём. Это пример OpenAI, а не результат нашего запроса с птицей и не подтверждение поддержки GIF шлюзом Ofox. Собственного результата генерации в этой серии у нас нет.
Исправляйте обнаруженную проблему по одному изменению
| Симптом | Что проверить сначала | Следующий шаг |
|---|---|---|
| API отвергает формат вывода | Эндпоинт и точный ID модели | Используйте описанный в документации эндпоинт генерации; проверьте доступ аккаунта |
| Ошибка проверки параметров | Настройки, перенесённые из запроса для статичной картинки | Уберите неподдерживаемые GIF-параметры и оставьте минимальный запрос |
| Превышен пиксельный бюджет | Число кадров, размеры и n вместе | Уменьшите объём работы; изменение одной длительности кадра может не помочь |
| Скачанное изображение не двигается | Фактическое число кадров и поведение площадки | Проверьте оригинал, прежде чем искать причину в загрузке или генерации |
| При повторе виден скачок | Конечная поза, камера, промежуточные кадры | Задайте одно обратимое движение и неподвижную сцену |
| Персонаж меняет форму | Число действий и ограничений в запросе | Упростите задание и сравните новую попытку |
| 401, 429 или тайм-аут | Ключ, лимиты аккаунта и подробности ответа | Сначала найдите причину; избегайте автоматических бесконечных повторов |
Это проверки, выведенные из документации, а не утверждение, что мы воспроизвели каждую ошибку. Сохраняйте исходный результат и записывайте, какой параметр изменили. Один только промпт не гарантирует безупречный цикл.
Подготовьте принятый GIF к передаче
Сохраните исходный GIF, запрос без секретов, полученное usage, фактическое списание и краткую запись о проверке. Полезная запись выглядит так: «9 кадров, просмотрено в целевом размере, заметного движения камеры нет, повтор проверен на площадке». Она сообщает больше, чем «генерация прошла успешно».
Если нужны редактируемые фигуры, а не движение, используйте руководство по SVG в Image 2.6. Для более длинного ролика о товаре есть процесс подготовки раскадровки по фотографии товара на английском. Это другой результат: короткий GIF не равнозначен готовому смонтированному рекламному видео.
Перед интеграцией через Ofox проверьте текущую документацию моделей и руководство по лимитам запросов. Эта статья не утверждает, что вставка запроса в Ofox Chat выберет Image 2.6 или вернёт GIF.


