Nota do autor: ao gerar GIFs com o GPT Image 2.6 Sunburst, size se refere à dimensão de um quadro individual; a restrição real se aplica ao mosaico formado por todos os quadros. Este artigo detalha essas regras item por item em tabelas e mostra os limites de dimensão disponíveis para cada número de quadros.
Muitos desenvolvedores, ao usar gpt-image-2.6-sunburst para criar GIFs pela primeira vez, se deparam com esta situação: definem size como 1024×1024 e apenas 2 quadros em frame_count, mas a API retorna 400 diretamente. O motivo é que as regras de dimensão para GIF são diferentes das de imagens estáticas. Este artigo apresenta o método de conversão em três etapas: “dimensão do quadro individual → layout do mosaico → restrições do mosaico”, para ajudar você a determinar se qualquer combinação de size e frame_count passa na validação.
Isto não é uma simples tradução da documentação de parâmetros. Os valores-limite deste artigo vêm de medições reais feitas em 2026-11-09 no canal oficial de encaminhamento; cada limite máximo nas tabelas inclui o processo de cálculo, para você conferir por conta própria.
Valor principal: depois de ler este artigo, você conseguirá escolher a dimensão de quadro individual adequada de acordo com o número de quadros, evitar erros como GIF frames exceed the total request pixel budget e saber como decidir entre 512×512, 768×768 e 960×960.

Pontos essenciais sobre dimensões de GIF no GPT Image 2.6 Sunburst
Vamos começar com uma tabela para deixar claras as regras principais da geração de GIF e, depois, detalhamos cada uma.
| Ponto-chave | Explicação | Impacto para você |
|---|---|---|
size é o tamanho de um quadro |
size indica a largura e a altura de cada quadro, não o tamanho da animação final |
O que é validado de fato é o sprite sheet; não dá para estimar pelo tamanho de um quadro isolado |
| Todos os quadros compartilham um único sprite sheet | O modelo primeiro desenha cada quadro no mesmo sprite sheet e depois recorta em GIF | Quanto mais quadros, menor o tamanho disponível por quadro |
| O layout do sprite sheet é fixo | 2–8 quadros usam 4×2, 9 quadros usam 3×3, 10–12 quadros usam 4×3, 13–16 quadros usam 4×4 | 2 e 8 quadros ocupam a mesma área do sprite sheet |
| Largura e altura devem ser múltiplos de 16 | size pode ser auto, ou LARGURAxALTURA com largura e altura múltiplas de 16 |
Valores como 832, 816 e 720 são válidos |
| Ultrapassar os limites retorna 400 | No erro, param é size |
Ao receber um erro, verifique primeiro o tamanho do sprite sheet |
Mecanismo de geração do sprite sheet no GIF do GPT Image 2.6
O GPT Image 2.6 Sunburst gera GIFs em duas etapas: primeiro, desenha todos os quadros em uma imagem grande seguindo uma grade fixa; depois, corta a imagem grande em quadros individuais e monta a animação conforme frame_duration_ms. Por isso, o limite de tamanho não considera um quadro isolado, mas sim o comprimento de cada lado, o total de pixels e a proporção entre o lado maior e o menor desse sprite sheet.
O layout é definido por faixas de contagem de quadros e não é organizado de forma compacta conforme a quantidade real de quadros. Por exemplo, se frame_count for definido como 2, o sistema ainda usa o layout 4×2. O exemplo do material de referência comprova isso: um quadro de 2048×2048, com apenas 2 quadros, exige um sprite sheet de 8192×4096. Na estimativa, use sempre o “número de células do layout”, nunca o “número real de quadros”.
Interpretação dos parâmetros básicos de GIF do GPT Image 2.6
Além de size, o GIF tem dois parâmetros exclusivos: frame_count controla o número de quadros e frame_duration_ms controla a duração de cada quadro. A duração total é igual ao número de quadros multiplicado pela duração de cada quadro. Por exemplo, 2 quadros × 100ms resultam em um loop de 0,2 segundo.
| Parâmetro | Faixa oficial e valor padrão | Descrição detalhada |
|---|---|---|
frame_count |
2–16, padrão 9 | Quanto mais quadros, geralmente maiores são o tempo de processamento e o custo; valores fora da faixa não geram erro, mas fazem o sistema voltar ao valor padrão |
frame_duration_ms |
20–2000ms, padrão 200ms | Arredondado para múltiplos de 10ms; a combinação padrão é 9 quadros × 200ms = 1.8 segundos |
size |
auto ou WIDTHxHEIGHT |
Largura e altura devem ser múltiplos de 16 e representam o tamanho de um único quadro |
output_format |
Defina como "gif" |
frame_count e frame_duration_ms só têm efeito para GIF |
quality |
Como low, entre outros |
Para testes de baixo custo, recomenda-se usar low |
O comportamento de frame_count fora da faixa exige atenção especial. Ao enviar 1 ou 17, a API não retorna 400; em vez disso, ela descarta frame_count e frame_duration_ms e volta ao padrão de 9 quadros e 1.8 segundos. Ou seja, a requisição é “bem-sucedida”, mas o resultado não é o que você queria. Nesse caso, é necessário conferir o número real de quadros com uma ferramenta após a geração; o procedimento específico está na seção de início rápido.

Limites de dimensão do GIF Sunburst no GPT Image 2.6: análise detalhada
Esta seção é o ponto central do artigo. Juntando as restrições do mosaico com as regras de layout, dá para deduzir o limite de tamanho de cada faixa de número de quadros.
As quatro restrições do mosaico no GPT Image 2.6
| Restrição | Valor limite | Interpretação |
|---|---|---|
| Lado do mosaico | ≤ 3840 | Nem a largura nem a altura do mosaico podem passar de 3840 pixels |
| Pixels totais do mosaico (máximo) | ≤ 8,294,400 | Equivale a 3840×2160, ou seja, a quantidade de pixels de uma imagem 4K |
| Pixels totais do mosaico (mínimo) | ≥ cerca de 655,360 | Nos testes, 589,824 foi rejeitado e 665,856 passou |
| Proporção entre lado maior e menor do mosaico | ≤ 3:1 | Mosaicos muito alongados são rejeitados |
| Tamanho do quadro | Largura e altura múltiplas de 16 | Se não atender, não serve como size válido |
A parte do limite superior é mais fácil de entender. O lado de 3840 e o total de 8,294,400 pixels são duas travas independentes e precisam ser atendidas ao mesmo tempo. Com poucos quadros, a largura do mosaico costuma esbarrar primeiro no limite de lado; com muitos quadros, o total de pixels normalmente se esgota antes.
O limite inferior costuma passar despercebido. Nos testes, os 589,824 rejeitados são exatamente 768×768, o que corresponde a um mosaico 3×3 com 9 quadros de 256×256 cada. Já os 665,856 aprovados são 816×816, ou seja, 9 quadros de 272×272. Daí se deduz que quadros pequenos demais combinados com layouts de poucas células também podem ser rejeitados por deixar o mosaico pequeno demais. Por exemplo, um layout 4×2 com quadros de 256×256 resulta num mosaico de apenas 1024×512, totalizando 524,288 pixels, abaixo do mínimo. Ou seja, até a estratégia de “reduzir o tamanho para economizar” tem um piso.
O efeito da proporção entre lado maior e menor fica mais visível em quadros não quadrados. Fazendo a conta com layout 4×2, quando o quadro é 16:9 a proporção largura/altura do mosaico fica em torno de 3.56:1, acima de 3:1; passando para layouts 3×3 ou 4×4, a proporção cai. Vale destacar que isso é uma dedução a partir das regras — o ideal é confirmar com testes reais antes de colocar em produção.
Limite superior por quadro quadrado em cada quantidade de quadros do GPT Image 2.6
Os limites abaixo consideram “quadro individual quadrado + largura e altura múltiplas de 16” e podem ser consultados diretamente.
| Quadros | Layout | Limite por quadro quadrado | Cálculo |
|---|---|---|---|
| 2–8 | 4×2 | 960×960 | Limitado pelo lado maior: 4×960 = 3840; total de pixels 7.372.800, dentro do orçamento |
| 9 | 3×3 | 960×960 | 9×960² = 8.294.400, usa exatamente todo o orçamento |
| 10–12 | 4×3 | 816×816 | 12×832² = 8.306.688, excede em 12.288 pixels e é rejeitado, caindo para 816 |
| 13–16 | 4×4 | 720×720 | 16×720² = 8.294.400, usa exatamente todo o orçamento |
Dois detalhes precisam ser explicados.
- 10–12 quadros são calculados como 12 células: o layout é 4×3; mesmo que você queira apenas 10 quadros, o mosaico ocupa pixels com base em 12 células. Nos testes, 12 quadros com 832² excederam em apenas 12.288 pixels e foram rejeitados, o que mostra que o orçamento é aplicado com rigor.
- 2–8 quadros são limitados pela largura do lado: nessa faixa ainda há folga no total de pixels, mas a largura do mosaico é 4 vezes a largura de um quadro individual; por isso, 960 já é o limite. Com 1024, a largura do mosaico passaria a 4096.

Como escolher os tamanhos comuns do GPT Image 2.6
Ao trocar os limites acima por escolhas práticas, chegamos às seguintes conclusões:
| Tamanho por quadro | Quadros disponíveis | Exemplo de montagem | Recomendação de uso |
|---|---|---|---|
| 512×512 | 2–16 quadros, todos disponíveis | 2048×2048 com 16 quadros | Opção mais segura, ideal para figurinhas, animações de ícones e geração em lote |
| 768×768 | no máximo 12 quadros | 3072×2304 com 12 quadros | Com 16 quadros, a montagem fica 3072×3072 = 9.437.184, ultrapassando o orçamento |
| 960×960 | no máximo 9 quadros | 2880×2880 com 9 quadros | Use quando precisar de uma imagem maior e com poucos quadros |
| 1280×720 | 9 quadros | 3840×2160 | Solução de tela larga; a montagem usa exatamente o limite de um dos lados e o orçamento |
| 1024×1024 | indisponível para qualquer quantidade de quadros | largura de 4096 com 2–8 quadros | 9 quadros ultrapassam o orçamento; as demais faixas ultrapassam o limite de um dos lados |
| 2048×2048 | indisponível para qualquer quantidade de quadros | 8192×4096 com 2 quadros | Muito acima de todos os limites |
O 1024×1024 é muito usado em imagens estáticas, mas é totalmente inviável em GIF. Nos casos de 2–8 e 10–12 quadros, a largura da montagem é 4096, ultrapassando 3840; com 9 quadros, a montagem fica 3072×3072, com total de 9.437.184 pixels, ultrapassando o orçamento; com 13–16 quadros, a largura da montagem também é 4096. Por isso, ao migrar de imagens estáticas para GIF, a primeira coisa a fazer é reduzir o tamanho padrão.
Se precisar de uma imagem horizontal, recomendo 9 quadros com 1280×720. Nesse caso, a montagem fica em layout 3×3, exatamente 3840×2160, proporção de 16:9, atendendo às três restrições.
💡 Sugestão de escolha: os limites de tamanho são resultados calculados com base nas regras, e o próprio modelo pode ajustar o orçamento. Antes de entrar em produção, recomendo rodar um conjunto de testes de limite no APIYI apiyi.com com
quality: "low", confirmando com o menor custo a combinação de tamanhos que você costuma usar.
Introdução rápida ao GIF Sunburst do GPT Image 2.6
Exemplo minimalista de GIF com GPT Image 2.6
Aqui está o exemplo de baixo custo do material de referência: 2 quadros, 100 ms por quadro, duração total de 0,2 segundo, gerando uma animação em loop de um círculo amarelo que se desloca para a direita e volta à posição original. Campos como frame_count são exclusivos de GIF — aqui usamos requests para enviar o JSON direto, o que é o mais intuitivo.
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"]))
Ao escrever o comando, descreva claramente três coisas: qual é o elemento principal, como ele se move e como o loop funciona. Descrições como “voltar à posição inicial” e “seamless loop” ajudam o primeiro e o último quadro a se conectarem de forma mais natural.
Pré-verificação de tamanho de GIF do GPT Image 2.6 e implementação completa
Em ambiente de produção, recomenda-se fazer uma pré-verificação local antes da requisição, interceptando antecipadamente tamanhos inválidos e economizando uma ida e volta de erro 400. O código abaixo transforma a tabela de layout e as restrições deste artigo em funções, sendo compatível tanto com a interface de geração quanto com a de edição.
Ver código de implementação completo (incluindo pré-verificação de tamanho)
import base64
import requests
from typing import Optional
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.apiyi.com/v1" # Interface compatível com OpenAI da APIYI
MAX_EDGE = 3840
MAX_PIXELS = 8_294_400 # 3840 x 2160
MIN_PIXELS = 655_360 # próximo do limite inferior medido, usado apenas como alerta
MAX_RATIO = 3.0
def sheet_layout(frame_count: int) -> tuple[int, int]:
"""Retorna o layout fixo do mosaico (colunas, linhas) de acordo com o número de quadros"""
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]:
"""Retorna a lista de problemas; lista vazia significa que a pré-verificação passou"""
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 de edição: a primeira imagem é o corpo principal da animação
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)) # Esperado: total de pixels acima do orçamento
print(check_gif_size(1280, 720, 9)) # Esperado: [] aprovado
create_gif(
prompt="让这只猫跳一小段舞,纯色背景,固定镜头,最后一个动作回到起始姿势",
size="512x512",
frame_count=16,
frame_duration_ms=100,
image_url="https://example.com/cat.png",
out_path="cat_dance.gif",
)
Verificar a contagem real de frames do GIF do GPT Image 2.6 com ffprobe
Quando frame_count está fora do intervalo permitido, o sistema volta silenciosamente para 9 frames. Por isso, em tarefas em lote, é melhor incluir uma etapa de verificação da contagem real de frames:
ffprobe -v error -count_frames -select_streams v:0 \
-show_entries stream=nb_read_frames -of csv=p=0 circle.gif
O exemplo mínimo deve gerar 2. Se gerar 9, significa que o parâmetro de contagem de frames não foi aplicado; é preciso verificar se o valor informado está entre 2 e 16.
Limitações funcionais do GIF no GPT Image 2.6
O modo GIF não oferece suporte às seguintes capacidades; não as inclua na requisição:
streampara saída em streaming e visualização progressiva de imagens parciaisoutput_compressionpersonalizadoprompt_rewriter
Além disso, frame_count e frame_duration_ms são usados apenas para GIF; não os envie em requisições para PNG, JPEG, WebP ou SVG.
🚀 Início rápido: recomendo registrar-se na APIYI apiyi.com e usar a cota gratuita de testes para novos usuários. Primeiro, execute o fluxo completo com 512×512, 2 frames e
quality: "low"; depois, aumente gradualmente a quantidade de frames e o tamanho. A plataforma oferece uma interface compatível com OpenAI, e uma única chave API permite chamar modelos populares como o GPT Image.
Perguntas frequentes (FAQ)
Q1: No GPT Image 2.6 Sunburst, o que significa `size` ao gerar um GIF?
`size` é o tamanho de cada quadro, não o tamanho da montagem final. Na validação real, o sistema escolhe o layout conforme o número de quadros, calcula a largura, a altura e o total de pixels da montagem e depois compara com os limites: 3840 por lado, 8.294.400 pixels totais e proporção de 3:1.
Q2: Por que 1024×1024 não gera nem um único quadro no GIF do GPT Image 2.6?
Porque em qualquer layout ele estoura os limites. Nos layouts 4×2, 4×3 e 4×4, a largura da montagem é 4096, acima de 3840; no layout 3×3, a montagem fica 3072×3072, com 9.437.184 pixels totais, acima do orçamento. A mensagem de erro costuma ser `No supported sheet fits … The longest edge must be less than or equal to 3840.` Nesse caso, basta mudar o quadro para 960×960 ou menos.
Q3: Por que não dá erro ao passar `frame_count` igual a 1 ou 17?
No fluxo atual, um `frame_count` fora do intervalo 2–16 não retorna 400. O sistema descarta tanto `frame_count` quanto `frame_duration_ms` e volta ao padrão de 9 quadros e 1,8 segundo. A recomendação é validar o intervalo no cliente e, depois de gerar, conferir o número real de quadros com o ffprobe.
Q4: Quando `n` é maior que 1, o orçamento de pixels do GPT Image 2.6 é somado?
No fluxo atual, cada imagem é validada separadamente, sem soma. Em teste real, 2 imagens × 16 quadros × 512² (total de 8.388.608) ainda funcionaram. Mas o guia oficial diz que várias imagens também precisam caber no mesmo orçamento, então, em cenários em lote, vale considerar o retorno real e, se necessário, dividir em várias requisições com `n=1`.
Q5: Como chamar rapidamente a API do GPT Image 2.6 Sunburst para gerar um GIF?
Sugiro seguir estes passos:
1. Acesse APIYI apiyi.com, crie uma conta e obtenha a API Key e a cota gratuita de teste
2. Defina o `base_url` do código deste artigo como `https://api.apiyi.com/v1`
3. Valide o fluxo com um exemplo mínimo de 512×512, 2 quadros e `quality: “low”`; depois ajuste os parâmetros conforme a tabela de tamanhos
Q6: O GPT Image 2.6 consegue gerar GIF a partir de uma imagem existente?
Consegue. O endpoint `/v1/images/edits` também aceita `output_format: “gif”`. Basta colocar a imagem de referência no campo `images`: a primeira imagem será o corpo da animação, e os demais parâmetros seguem o mesmo padrão da interface de geração, com regras de tamanho idênticas. No comando, vale escrever algo como “câmera fixa” e “o último movimento volta à pose inicial” para o loop ficar mais fluido.
Q7: Os limites de tamanho deste artigo podem mudar?
Podem. O orçamento da montagem é a medição real feita em 2026-11-09 no serviço proxy oficial: 8.294.400 passou no limite máximo e 12 quadros em 832² foram rejeitados. O lado do modelo pode ajustar esses limites, e o valor final deve ser o erro 400 retornado pela interface. A dica é deixar as constantes da função de pré-verificação como itens configuráveis, para atualizar com facilidade.
Principais conclusões sobre as dimensões de GIF no GPT Image 2.6 Sunburst
sizeé a dimensão de um único quadro: a restrição vale para o mosaico compartilhado por todos os quadros, não para o quadro isolado- O layout é fixo por faixa: são quatro layouts — 4×2, 3×3, 4×3 e 4×4 — correspondentes a 2–8, 9, 10–12 e 13–16 quadros
- Três restrições rígidas: cada lado do mosaico ≤ 3840, total de pixels ≤ 8,294,400 e proporção entre lado maior e menor ≤ 3:1
- A dimensão mais segura é 512×512: funciona com todos os 2–16 quadros; 768² suporta no máximo 12 quadros e 960² no máximo 9
- 1024² é totalmente inviável: ao migrar parâmetros de uma imagem estática, é preciso reduzir a dimensão antes
- Contagens de quadros fora do limite causam fallback silencioso: recomenda-se validar o intervalo no cliente e conferir a contagem de quadros com ffprobe após a geração
- Validação de baixo custo: no APIYI apiyi.com, rode os testes de limite com
quality: "low"e gaste o mínimo
Conclusão
As regras de dimensionamento para gerar GIFs com o GPT Image 2.6 Sunburst se resumem a três passos de cálculo:
- Defina o layout primeiro: a partir de
frame_count, encontre o layout correspondente — 4×2, 3×3, 4×3 ou 4×4 - Calcule o mosaico: multiplique largura e altura de um quadro pelas linhas e colunas do layout para obter largura, altura e total de pixels do mosaico
- Valide no final: confira os limites mínimo e máximo de cada lado e do total de pixels, a proporção entre os lados e se largura e altura são múltiplos de 16
No uso do dia a dia, 512×512 é o padrão de melhor compatibilidade; quando você precisa de uma imagem maior, 9 quadros com 960×960 ou 1280×720 aproveitam o orçamento por completo. Integrando a função de pré-verificação deste artigo ao código do seu produto, a maior parte dos erros 400 pode ser detectada localmente antes de acontecer.
Recomendamos validar rapidamente suas combinações de dimensões pelo APIYI apiyi.com: a plataforma oferece cota de teste gratuita e uma interface unificada compatível com OpenAI, ideal para concluir os testes de limite antes da integração oficial.
📚 Materiais de Referência
- Central de Documentação APIYI – Geração de GIF com animação em loop no GPT Image 2.6: descrição dos parâmetros oficiais e dos limites verificados na prática
- Link:
docs.apiyi.com/api-capabilities/gpt-image-2/gpt-image-2-6 -
Descrição: inclui a faixa de parâmetros do GIF, as restrições de montagem das imagens, exemplos de erro e o uso da interface de edição
-
Documentação oficial do FFmpeg – ffprobe: ferramenta para inspecionar metadados de áudio, vídeo e GIF
- Link:
ffmpeg.org/ffprobe.html - Descrição: usada para conferir a quantidade real de quadros e a duração de cada quadro do GIF gerado
Autor: Equipe técnica da APIYI
Contato técnico: se você tiver problemas na configuração do tamanho do GIF, fale com a gente pela página inicial do site oficial da APIYI para obter mais suporte de integração.
