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 deeditsda OpenAI
| Modelo | Endpoint(s) compatível(is) | Limitação conservadora | Resolução |
|---|---|---|---|
gpt-image-2 | /generations, /edits | Edição com referência é compatível | 1K / 2K / 4K |
gpt-image-2.5-flare | /generations, /edits | Imagem para imagem e edição com referências válidas | 1K / 2K / 4K |
gpt-image-2.5-sunburst | /generations, /edits | Imagem para imagem e edição com referências válidas | 1K / 2K / 4K |
gemini-3.1-flash-image-preview | /generations, /edits | Até 4 imagens de referência válidas | 1K / 2K / 4K |
gemini-2.5-flash-image | /generations, /edits | Até 4 imagens de referência válidas | Somente 1K |
gemini-3-pro-image-preview | /generations, /edits | Até 4 imagens de referência válidas | 1K / 2K / 4K |
grok-imagine-1.0 | /generations | Somente geração; suporte a referências não publicado | Sem tier público |
seedream-5-0-flash | /generations | Até 8 referências; somente generations | 1K / 1.5K / 2K |
seedream-5-0-pro | /generations | Até 8 referências; somente generations | 1K / 1.5K / 2K |
seedream-4-5 | /generations | Até 8 referências; somente generations | 2K / 4K |
seedream-4-0 | /generations | Até 8 referências; somente generations | 1K / 2K / 4K |
doubao-seedream-5-0-lite | /generations | Referências dependem de uma solicitação de geração válida e compatível | Sem tier público |
flux-2-pro | /generations | Referências dependem de uma solicitação de geração válida e compatível | Sem tier público |
flux-3-image | /generations | Até 8 referências; somente generations | 768sq / 1K / 1.5K / 2K / 4K |
flux-3-image-klein | /generations | Até 8 referências; somente generations | 768sq / 1K / 1.5K / 2K / 4K |
midjourney | /generations | Somente prompt; sem referências | Sem tier público |
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ão | ID do modelo | Preço de imagens estáticas (CNY por imagem) |
|---|---|---|
| GPT Image 2 | gpt-image-2 | Preços de referência: 1K ¥0.0833, 2K ¥0.147 e 4K ¥0.2156. A cobrança considera o uso real. |
| GPT Image 2.5 | gpt-image-2.5-flare, gpt-image-2.5-sunburst | Preç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.6 | gpt-image-2.6-flare, gpt-image-2.6-sunburst | Por 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.
| Model | 1MP | 2MP | 3MP | 4MP |
|---|---|---|---|---|
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.
| Model | image_size | Preço base de referência (CNY / imagem) |
|---|---|---|
seedream-5-0-flash | 1K / 1.5K / 2K | ¥0.134358 |
seedream-5-0-pro | 1K / 1.5K → 2K | ¥0.28665 → ¥0.5733 |
seedream-4-5 | 2K / 4K | ¥0.2548 |
seedream-4-0 | 1K / 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.
| Modelo | 768 | 1K | 1.5K | 2K | 4K |
|---|---|---|---|---|---|
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 comsk_) - Content-Type:
application/jsonpara JSON oumultipart/form-datapara upload de arquivos
POST /images/generationsePOST /images/editssem o prefixo/v1també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:
- JSON (
Content-Type: application/json): coloque imagens de referência emimage_urlscomo URLs ou data URLs base64. É o formato mais comum. - 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 deeditsda 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 como1:1; strings em pixels como1536x1024também são aceitas. - resolution (padrão
1k): GPT Image 2 / 2.5 / 2.6 aceita1k,2kou4k; Gemini 2.5 aceita somente1k; os modelos Gemini 3.x listados aceitam1k,2kou4k. - 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://...oudata: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álidodata: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ão | Assíncrono ?async=1 | |
|---|---|---|
| Return timing | Waits tens of seconds until image is ready | Returns immediately (< 1 second) |
| Status code | 200 | 202 |
| Response body | {"created":...,"data":[{"url":"..."}],"id":"..."} | {"status":"pending","task_id":"..."} |
| How to get image | Returned in one response | Poll 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:
GETretorna 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 umtask_ide 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:
| Model | Price |
|---|---|
gemini-2.5-flash-image | CNY 0.20 / image |
gemini-3.1-flash-image-preview | CNY 0.30 / image |
gemini-3-pro-image-preview | CNY 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; useeditsnos modelos que oferecem edição - size: aspect ratios such as
16:9are recommended; pixel strings are also accepted - resolution (padrão
1k): GPT Image 2 / 2.5 / 2.6 aceita1k,2kou4k; Gemini 2.5 aceita somente1k; os modelos Gemini 3.x listados aceitam1k,2kou4k. - 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_jsonis not supported; URLs are always returned - Reference images: solicitações compatíveis usam
image_urls/image_input(JSON) ouimage[](multipart), dentro dos limites do modelo - Modo assíncrono: a OpenAI não possui esse modo; esta API aceita
?async=1, retornatask_ide consulta/v1/images/tasks/{id}para obter o resultado - Task ID: responses include
id/task_idfor troubleshooting
Guias relacionados
API de geração de vídeo
Crie tarefas de vídeo com texto, quadros inicial e final ou referências; acompanhe o status, baixe o resultado e exclua tarefas concluídas.
API de Consulta de Saldo
Consulte o saldo com token Bearer para ver saldo em CNY, cota diária do plano, vencimento e o significado dos campos da resposta.