APIUsuários avançadosAtualizado em

API de geração de imagens

A API de imagens é compatível com o protocolo OpenAI Images. A lista abaixo contém dezesseis modelos selecionados e verificados. Todos fazem text-to-image por generations; use /edits somente nos modelos explicitamente marcados. As seções abaixo explicam como gerar imagens estáticas com Image 2, 2.5 e 2.6 e GIFs com Image 2.6.

Há dois endpoints disponíveis:

  • /v1/images/generations - gera imagens; alguns modelos também aceitam referências neste endpoint
  • /v1/images/edits - edita imagens nos modelos que oferecem edição, compatível com o uso nativo de edits da OpenAI
<!-- featured-image-models:start -->
ModeloEndpoint(s) compatível(is)Limitação conservadoraResolução
gpt-image-2/generations, /editsEdição com referência é compatível1K / 2K / 4K
gpt-image-2.5-flare/generations, /editsImagem para imagem e edição com referências válidas1K / 2K / 4K
gpt-image-2.5-sunburst/generations, /editsImagem para imagem e edição com referências válidas1K / 2K / 4K
gemini-3.1-flash-image-preview/generations, /editsAté 4 imagens de referência válidas1K / 2K / 4K
gemini-2.5-flash-image/generations, /editsAté 4 imagens de referência válidasSomente 1K
gemini-3-pro-image-preview/generations, /editsAté 4 imagens de referência válidas1K / 2K / 4K
grok-imagine-1.0/generationsSomente geração; suporte a referências não publicadoSem tier público
seedream-5-0-flash/generationsAté 8 referências; somente generations1K / 1.5K / 2K
seedream-5-0-pro/generationsAté 8 referências; somente generations1K / 1.5K / 2K
seedream-4-5/generationsAté 8 referências; somente generations2K / 4K
seedream-4-0/generationsAté 8 referências; somente generations1K / 2K / 4K
doubao-seedream-5-0-lite/generationsReferências dependem de uma solicitação de geração válida e compatívelSem tier público
flux-2-pro/generationsReferências dependem de uma solicitação de geração válida e compatívelSem tier público
flux-3-image/generationsAté 8 referências; somente generations768sq / 1K / 1.5K / 2K / 4K
flux-3-image-klein/generationsAté 8 referências; somente generations768sq / 1K / 1.5K / 2K / 4K
midjourney/generationsSomente prompt; sem referênciasSem tier público
<!-- featured-image-models:end -->

Imagens estáticas com GPT Image 2, 2.5 e 2.6

As três versões geram imagens estáticas em 1K, 2K e 4K. Use POST /v1/images/generations para gerar a partir de texto. Para editar, use POST /v1/images/edits com URLs HTTPS públicas ou valores data:image/...;base64,... em image_urls. O Image 2.6 aceita até oito referências. As referências para imagens estáticas do Image 2.6 em 2K e 4K devem estar em PNG, JPEG ou WebP.

Selecione a resolução com image_size. No Image 2, informe uma proporção como 16:9 em size. No Image 2.5 e 2.6, use aspect_ratio. Para imagens estáticas no Image 2.6, defina output_format: "png" e n: 1.

VersãoID do modeloPreço de imagens estáticas (CNY por imagem)
GPT Image 2gpt-image-2Preços de referência: 1K ¥0.0833, 2K ¥0.147 e 4K ¥0.2156. A cobrança considera o uso real.
GPT Image 2.5gpt-image-2.5-flare, gpt-image-2.5-sunburstPreços de referência de ¥0,0833 para 1K, ¥0,294 para 2K e ¥0,392 para 4K. Referências não têm custo adicional.
GPT Image 2.6gpt-image-2.6-flare, gpt-image-2.6-sunburstPor imagem concluída, ¥0,0833 em 1K, ¥0,294 em 2K e ¥0,392 em 4K.

GPT Image 2 a partir de texto (síncrono)

curl -X POST https://api.icodeeasy.cc/v1/images/generations \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "an orange cat sitting on a windowsill watching the sunset, watercolor style"
  }'

GPT Image 2.5 text-to-image (2K)

curl -X POST "https://api.icodeeasy.cc/v1/images/generations?sync=1" \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare",
    "prompt": "um gato laranja usando capacete de astronauta, iluminação cinematográfica",
    "aspect_ratio": "16:9",
    "image_size": "2K"
  }'

GPT Image 2.5 image-to-image (edição com imagem de referência)

curl -X POST "https://api.icodeeasy.cc/v1/images/edits?sync=1" \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-sunburst",
    "prompt": "substitua o fundo por uma praia ao pôr do sol, preservando a pose e a roupa",
    "aspect_ratio": "3:2",
    "image_size": "1K",
    "image_urls": ["https://example.com/photo.png"]
  }'

Edição com referência no GPT Image 2.6 (4K)

O exemplo usa Sunburst. Para usar Flare, defina model como gpt-image-2.6-flare. Troque a URL de exemplo pela URL da sua referência.

curl -X POST 'https://api.icodeeasy.cc/v1/images/edits?async=1' \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.6-sunburst",
    "prompt": "Troque o fundo por uma parede azul-clara. Preserve a xícara e a composição da imagem de referência.",
    "output_format": "png",
    "aspect_ratio": "16:9",
    "image_size": "4K",
    "n": 1,
    "image_urls": ["https://example.com/reference.png"]
  }'

Geração de GIF com GPT Image 2.6

Use gpt-image-2.6-flare ou gpt-image-2.6-sunburst em POST /v1/images/generations. Defina output_format: "gif", size: "auto" e n: 1 para gerar um GIF com dimensões e parâmetros de quadros automáticos.

Para gerar um GIF apenas com texto, omita image_urls. Para usar referências, envie até oito imagens como URLs HTTPS públicas ou valores no formato data:image/...;base64,....

O exemplo usa Flare. Troque a URL de exemplo pela URL da sua imagem de referência. Para usar Sunburst, defina model como gpt-image-2.6-sunburst.

curl -X POST 'https://api.icodeeasy.cc/v1/images/generations?async=1' \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.6-flare",
    "prompt": "Anime a lanterna de papel da imagem de referência balançando suavemente. Preserve a composição e crie um loop contínuo.",
    "output_format": "gif",
    "size": "auto",
    "n": 1,
    "image_urls": [
      "https://example.com/reference.png"
    ]
  }'

A requisição assíncrona retorna um task_id. Consulte GET /v1/images/tasks/{task_id} e baixe o GIF em result_url após a conclusão.

  • GIF gerado apenas com texto tem tarifa padrão de ¥0,0833 por resultado. No Flare, a tarifa é de ¥0,30 quando o serviço de contingência é usado.
  • GIF com imagens de referência é cobrado pelo uso real. O valor final aparece no histórico de uso.

FLUX 2 Pro / Max / Flex

Preços de referência por resolução (CNY / imagem). Cobrança pelo uso real de geração; o valor final consta na fatura: O valor varia conforme as dimensões e as imagens de referência.

Model1MP2MP3MP4MP
flux-2-pro¥0.2352¥0.3528¥0.4704¥0.588
flux-2-max¥0.5488¥0.784¥1.0192¥1.2544
flux-2-flex¥0.392¥0.784¥1.176¥1.568

Série Seedream

Os quatro novos modelos geram e editam imagens com até 8 referências. Use proporção explícita em size / aspect_ratio, a resolução abaixo em image_size e referências em image_input. Uma imagem por tarefa; várias imagens viram tarefas independentes. Proporções 5 Flash/Pro: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 2:1, 1:2, 21:9; 4.5/4.0 também aceitam 9:21. O prompt do 4.0 tem limite de 1000 caracteres. Camadas, fundo transparente e recursos avançados não estão habilitados. Lite mantém 2K ¥0.30 / 3K ¥0.45.

Preços de referência; tarefas concluídas são cobradas pelo valor real da geração. Consulte o uso para o valor final. Somente Seedream 5 Pro: cada referência após a primeira acrescenta aproximadamente ¥0.01911; a cobrança real da tarefa tem prioridade.

Modelimage_sizePreço base de referência (CNY / imagem)
seedream-5-0-flash1K / 1.5K / 2K¥0.134358
seedream-5-0-pro1K / 1.5K → 2K¥0.28665 → ¥0.5733
seedream-4-52K / 4K¥0.2548
seedream-4-01K / 2K / 4K¥0.1911

FLUX 3 Image e Klein

flux-3-image e flux-3-image-klein usam image_size: 768sq / 1K / 1.5K / 2K / 4K, com aspect_ratio explícito: 1:1 / 9:16 / 16:9 / 2:3 / 3:2 / 4:5 / 5:4. Não envie auto nem dimensões em pixels; o limite antigo de 2048 pixels por lado do FLUX 2 não se aplica. Envie até 8 referências por image_input (URLs ou data URLs base64); edição com caixas delimitadoras não é aceita. Cada tarefa gera uma imagem; a página de desenho divide várias imagens em tarefas independentes. Image não aceita seed; Klein aceita seed de 0 a 4294967295. Nenhum dos dois aceita prompt_upsampling, style ou negative_prompt.

Preços de referência; tarefas concluídas são cobradas pelo valor real da geração. Consulte o uso para o valor final.

Modelo7681K1.5K2K4K
flux-3-image¥0.4018¥0.4704¥0.686¥0.98¥5.9486
flux-3-image-klein¥0.0784¥0.0882¥0.1078¥0.1372¥0.3528
{
  "model": "flux-3-image",
  "prompt": "A watercolor landscape",
  "aspect_ratio": "16:9",
  "image_size": "4K",
  "image_input": []
}

Endpoint e autenticação

POST https://api.icodeeasy.cc/v1/images/generations
POST https://api.icodeeasy.cc/v1/images/edits

Use https://api.icodeeasy.cc como Base URL principal. https://jp.icodeeasy.cc e https://sg.icodeeasy.cc são domínios de backup / fallback; mantenha o mesmo caminho ao trocar.

Headers da requisição:

  • Authorization: Bearer <your API Key> (obrigatório, começa com sk_)
  • Content-Type: application/json para JSON ou multipart/form-data para upload de arquivos

POST /images/generations e POST /images/edits sem o prefixo /v1 também são aceitos e têm o mesmo comportamento.


Dois formatos de corpo da requisição

A API aceita dois formatos de corpo da requisição:

  1. JSON (Content-Type: application/json): coloque imagens de referência em image_urls como URLs ou data URLs base64. É o formato mais comum.
  2. multipart/form-data: envie imagens de referência por arquivos image[] e coloque os outros parâmetros nos campos do formulário. Isso corresponde ao uso nativo de edits da OpenAI e serve para uploads locais.

Parâmetros da requisição

Os parâmetros abaixo se aplicam a imagens estáticas. Para gerar GIFs, use os parâmetros da seção de GIF com GPT Image 2.6.

  • model (obrigatório): um ID da tabela ou da seção de imagens estáticas com GPT Image 2.6.
  • prompt (obrigatório): descrição da imagem em inglês ou chinês. O upstream faz revisão de segurança de conteúdo; conteúdo rejeitado não é cobrado.
  • n (padrão 1): número de imagens. A cobrança acumula por quantidade de imagens. Quando GPT Image 2 usa o custo total real da tarefa, a quantidade não é multiplicada novamente.
  • size (padrão 1:1): proporção de saída. Veja abaixo. auto é tratado como 1:1; strings em pixels como 1536x1024 também são aceitas.
  • resolution (padrão 1k): GPT Image 2 / 2.5 / 2.6 aceita 1k, 2k ou 4k; Gemini 2.5 aceita somente 1k; os modelos Gemini 3.x listados aceitam 1k, 2k ou 4k.
  • quality: GPT Image 2 aceita low / medium / high / auto, sem faixas de preço por qualidade. GPT Image 2.5 cobra por imagem e resolução, sem configuração de qualidade separada. O campo é aceito em pedidos antigos, mas não altera os parâmetros de geração nem o preço.
  • image_urls / image_input (opcional, JSON): imagens de referência para image-to-image, até 4 imagens (8 para FLUX 3 e GPT Image 2.6). Os itens podem ser URLs públicas https://... ou data:image/...;base64,...; valores mistos são permitidos. Os dois campos são aliases.
  • image[] (opcional, multipart): arquivos de imagem de referência para image-to-image. Vários arquivos são permitidos e equivalem ao formato de upload de image_urls.

Nota sobre imagem de referência: URLs devem usar https:// (http é rejeitado); base64 deve ser um valor válido data:image/*;base64,.


Proporções e resolução compatíveis

Proporções size compatíveis: 1:1 / 3:2 / 2:3 / 4:3 / 3:4 / 5:4 / 4:5 / 16:9 / 9:16 / 2:1 / 1:2 / 21:9 / 9:21 / auto.

O aspect_ratio do GPT Image 2.5 aceita: 1:1 / 3:2 / 2:3 / 4:3 / 3:4 / 5:4 / 4:5 / 16:9 / 9:16 / 21:9.

gemini-2.5-flash-image aceita somente 1k. Os modelos Gemini 3.x listados aceitam 1k, 2k e 4k. gpt-image-2 usa size para proporção ou dimensões em pixels, com preços de referência por resolução 1K, 2K e 4K.


Modos síncrono / assíncrono

Modo síncrono padrão: a requisição aguarda a geração da imagem terminar e retorna data[].url compatível com OpenAI.

Modo assíncrono: adicione ?async=1 à URL (true e yes também são aceitos). A API retorna task_id imediatamente, e você consulta o resultado por polling. Use quando não quiser manter uma conexão longa, precisar tratar progresso ou enviar lotes.

Síncrono padrãoAssíncrono ?async=1
Return timingWaits tens of seconds until image is readyReturns immediately (< 1 second)
Status code200202
Response body{"created":...,"data":[{"url":"..."}],"id":"..."}{"status":"pending","task_id":"..."}
How to get imageReturned in one responsePoll GET /v1/images/tasks/{task_id}

Exemplos de requisição

Especificar proporção e 2K com Gemini 3.x

curl -X POST https://api.icodeeasy.cc/v1/images/generations \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-preview",
    "prompt": "a corgi astronaut on the moon, cinematic",
    "aspect_ratio": "16:9",
    "image_size": "2K"
  }'

Gemini text-to-image

curl -X POST https://api.icodeeasy.cc/v1/images/generations \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-preview",
    "prompt": "a futuristic coffee shop at sunrise, realistic photography",
    "aspect_ratio": "16:9",
    "image_size": "1K"
  }'

Image-to-image using image URL (JSON)

curl -X POST https://api.icodeeasy.cc/v1/images/edits \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "make this person 70 years old",
    "size": "1536x1024",
    "image_urls": ["https://example.com/photo.png"]
  }'

Image-to-image uploading a local file (multipart)

curl -X POST https://api.icodeeasy.cc/v1/images/edits \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -F "model=gpt-image-2" \
  -F "prompt=make this person 70 years old" \
  -F "size=1536x1024" \
  -F "image[]=@/path/to/photo.png"

Image-to-image with multiple references (URL + base64 mixed)

curl -X POST https://api.icodeeasy.cc/v1/images/edits \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "merge these two photos into a poster",
    "size": "4:3",
    "image_urls": [
      "https://example.com/photo-a.jpg",
      "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
    ]
  }'

Async submit + polling

# 1) Submit and get task_id immediately
curl -X POST "https://api.icodeeasy.cc/v1/images/edits?async=1" \
  -H "Authorization: Bearer sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "make this person 70 years old",
    "image_urls": ["https://example.com/photo.png"]
  }'
# -> {"status":"pending","task_id":"d142c93a-..."}

# 2) Poll until completed
curl "https://api.icodeeasy.cc/v1/images/tasks/d142c93a-..." \
  -H "Authorization: Bearer sk_xxxxxxxx"
# -> {"status":"completed","result_url":"https://...png","cost":0.2,...}

Estrutura da resposta

Sync success (HTTP 200, OpenAI Images compatible):

{
  "id": "3e0c77bb-9cbd-4c44-9549-bff1b4060623",
  "created": 1781599773,
  "data": [
    {
      "url": "https://api.icodeeasy.cc/v1/images/files/gpt-image-2/20260616/3e0c77bb-...-1.png"
    }
  ]
}

Async submit (HTTP 202):

{ "status": "pending", "task_id": "d142c93a-de26-40c9-be62-0de840d10960" }

Async task query (GET /v1/images/tasks/{task_id}):

{
  "task_id": "d142c93a-de26-40c9-be62-0de840d10960",
  "status": "completed",
  "model": "gpt-image-2",
  "cost": 0.2,
  "result_url": "https://api.icodeeasy.cc/v1/images/files/gpt-image-2/20260616/d142c93a-...-1.png"
}
  • status: pending / completed / failed
  • data[].url / result_url: image URL, usable directly in <img src>
  • id / task_id: task ID for support troubleshooting

A API sempre retorna URLs e não suporta response_format: b64_json. Baixe a imagem você mesmo se precisar dos bytes.


Comportamento da URL da imagem

data[].url looks like https://api.icodeeasy.cc/v1/images/files/gpt-image-2/YYYYMMDD/<id>-<seq>.png:

  • Abrir diretamente: GET retorna 302 e redireciona para a URL real da imagem
  • Forçar download: adicione ?download=1
  • Disponibilidade de longo prazo: o link permanece disponível por longo prazo
  • Controle de acesso: este caminho não exige API Key; o link completo funciona como credencial. Não publique links de resultado gerado, porque qualquer pessoa com a URL completa pode baixar a imagem.

Semântica síncrona e timeout

No modo síncrono padrão, a requisição fica aberta até a imagem ficar pronta:

  • Timeout HTTP recomendado no cliente: pelo menos 200 segundos
  • Uma imagem geralmente leva de 30 a 60 segundos; image-to-image, 2K ou múltiplas imagens podem levar mais tempo
  • Se não quiser esperar em uma conexão longa, use modo assíncrono (?async=1) para obter um task_id e consultar depois

Resposta de erro

Error bodies use:

{
  "error": {
    "type": "server_error",
    "message": "...",
    "provider": "icodeeasy.cc"
  }
}

Common statuses:

  • 400 invalid_request_error: invalid parameters, unsupported ratio, more than 4 reference images, non-https reference URL, invalid base64, and similar issues
  • 401 authentication_error: missing or invalid API Key
  • 402 payment_required: insufficient balance or exhausted monthly quota
  • 429 rate_limit_error: rate limit exceeded
  • 5xx: service temporarily unavailable or generation failed; retry later

Requisições com falha não são cobradas e não descontam saldo.


Cobrança

Consulte nas seções de GPT Image acima os preços de imagens estáticas e as regras de cobrança de GIFs.

Modelos de imagem Gemini são cobrados por preço fixo por modelo:

ModelPrice
gemini-2.5-flash-imageCNY 0.20 / image
gemini-3.1-flash-image-previewCNY 0.30 / image
gemini-3-pro-image-previewCNY 0.50 / image

Em Usage Details, a requisição é registrada com o model real, e cost_breakdown inclui image_count, image_cost_rmb e image_urls, então você pode copiar links ou baixar imagens do histórico.


Diferenças em relação à OpenAI Images API

  • Model: use um ID da tabela ou da seção de imagens estáticas com GPT Image 2.6
  • Endpoints: todos os modelos selecionados aceitam generations; use edits nos modelos que oferecem edição
  • size: aspect ratios such as 16:9 are recommended; pixel strings are also accepted
  • resolution (padrão 1k): GPT Image 2 / 2.5 / 2.6 aceita 1k, 2k ou 4k; Gemini 2.5 aceita somente 1k; os modelos Gemini 3.x listados aceitam 1k, 2k ou 4k.
  • quality: GPT Image 2 aceita low / medium / high / auto, sem faixas de preço por qualidade. GPT Image 2.5 cobra por imagem e resolução, sem configuração de qualidade separada. O campo é aceito em pedidos antigos, mas não altera os parâmetros de geração nem o preço.
  • response_format: b64_json is not supported; URLs are always returned
  • Reference images: solicitações compatíveis usam image_urls / image_input (JSON) ou image[] (multipart), dentro dos limites do modelo
  • Modo assíncrono: a OpenAI não possui esse modo; esta API aceita ?async=1, retorna task_id e consulta /v1/images/tasks/{id} para obter o resultado
  • Task ID: responses include id / task_id for troubleshooting