Imagens

Editar imagem

Edita uma imagem a partir de um prompt e uma imagem de origem

POST
/v1/images/edits

Visão geral

Cria uma imagem editada ou estendida a partir de uma imagem original e um prompt.

A rota suporta ambos:

  • o fluxo de upload multipart/form-data compatível com OpenAI documentado abaixo
  • requisições JSON que fornecem image_url, image_urls ou referências oficiais images para famílias de image-to-image suportadas

gpt-image-2 é compatível aqui. Ele aceita uploads multipart image, JSON image_url / image_urls e referências oficiais images[] (image_url ou file_id), com até 16 imagens de origem. Crie valores file_id primeiro via /v1/files. Defina async: true para receber uma tarefa primeiro; modelos oficiais de edição FLUX/BFL usam o mesmo fluxo de polling.

Edições com gpt-image-2 não aceitam resolution; use size para as dimensões de saída. background aceita auto ou opaque; transparent não é suportado. Para edições com várias imagens ou alta latência, prefira async: true e consulte a tarefa retornada.

Solicitações Nano Banana com imagem de referência (nano-banana-edit, nano-banana-2 e nano-banana-pro) são expostas em /v1/images/generations com operation: "image-to-image" e image_urls, não neste endpoint /v1/images/edits.

Os modelos de edição de imagem xAI Grok Imagine (grok-imagine-image, grok-imagine-image-quality e o legacy grok-imagine-image-pro) aceitam no máximo 3 imagens de origem. Solicitações com mais de 3 imagens de origem falham na validação de entrada com 400 too_many_images.

input_fidelity não faz parte do campos admitidos atual da TokenLab para gpt-image-2; omita esse campo ou a solicitação retornará 400 unsupported_parameter.

Corpo da requisição

Timeout de solicitações síncronas: algumas solicitações de imagem retornam a imagem final inline e aguardam a geração terminar. Solicitações de alta resolução ou alta qualidade podem levar perto de um minuto ou mais, então configure o timeout do seu cliente HTTP para pelo menos 120s. Se a resposta de criação incluir status: "pending", task_id ou poll_url, siga o poll_url retornado.

URLs de imagem remotas: quando entrada multipart é necessária, a TokenLab busca JSON image_url, image_urls ou images[].image_url e envia os bytes como partes multipart image. As URLs devem ser públicas em http/https, sem credenciais embutidas nem fragmentos, e não podem resolver para localhost, faixas de IP privadas ou reservadas; cada redirecionamento é verificado novamente. O payload buscado deve ser uma imagem PNG, JPEG ou WebP real. Limites: 50 MiB por imagem, 200 MiB no total para imagens buscadas por URL em uma requisição, timeout de 30s e até 3 redirecionamentos.

Uma requisição JSON deve conter exatamente um de image_url, image_urls ou images. Cada objeto images[] deve conter apenas um de image_url ou file_id. O limite total de 200 MiB inclui todas as imagens de origem e a máscara.

imagefile

Imagens de origem multipart. Repita image para fornecer várias fontes GPT Image. Os arquivos devem ser PNG, JPEG ou WebP, até 16 imagens de origem e 50 MiB cada. Modelos de edição xAI Grok Imagine usam os mesmos campos de entrada, mas limitam imagens de origem a 3.

promptstringobrigatório

Uma descrição em texto da edição desejada.

maskfile | object

Uma imagem adicional cujas áreas totalmente transparentes indicam onde a imagem deve ser editada. Deve ser um arquivo PNG válido, menor que 50 MiB e ter as mesmas dimensões que image.

Em solicitações JSON, mask também pode ser um objeto com exatamente um de image_url ou file_id; valores file_id devem vir de /v1/files e permanecer vinculados à mesma configuração de edição de imagem.

modelstringobrigatório

O modelo a usar para edição de imagem. Use gpt-image-2 para edições GPT Image, ou outro modelo atual de edição de imagem retornado por GET /v1/models?recommended_for=image.

nintegerpadrão: 1

Número de imagens a gerar (1-10, dependendo do modelo).

sizestring

O tamanho da imagem gerada. Para gpt-image-2, use auto ou WIDTHxHEIGHT; as dimensões devem ser múltiplos de 16, a maior aresta deve ter no máximo 3840px, a razão entre lado maior/menor deve ser no máximo 3:1, e o total de pixels deve ficar entre 655,360 e 8,294,400.

response_formatstringpadrão: url

O formato em que as imagens geradas são retornadas. Deve ser url ou b64_json; o padrão é url.

url retorna as URLs em data[].url; b64_json retorna os dados de imagem Base64 em data[].b64_json.

asyncbooleanpadrão: false

Defina como true com gpt-image-2 ou modelos oficiais de edição FLUX/BFL para retornar uma tarefa antes da imagem final ficar pronta. Edições assíncronas concluídas retornam URLs independentemente do response_format solicitado; use solicitações síncronas se precisar de b64_json.

userstring

Um identificador único representando seu usuário final para monitoramento de abuso.

Resposta

createdinteger

Timestamp Unix de quando as imagens foram criadas.

dataarray

Array de imagens geradas.

Cada objeto contém:

  • url (string): URL da imagem editada (se response_format for url)
  • b64_json (string): Imagem codificada em Base64 (se response_format for b64_json)

Resposta de tarefa assíncrona

Defina async: true com gpt-image-2 ou modelos oficiais de edição FLUX/BFL para criar uma tarefa em vez de esperar pela imagem editada na solicitação. A resposta inclui status: "pending", task_id e poll_url. Consulte /v1/tasks/{task_id} até a tarefa chegar a completed ou failed.

Tarefas assíncronas de edição retornam apenas URLs das imagens finais. Se precisar dos dados brutos b64_json, use uma solicitação síncrona.

Ao criar a tarefa, o valor estimado pode ser reservado. Tarefas concluídas são cobradas pelo uso real; tarefas com falha ou expiradas liberam ou reembolsam a reserva.

Requisição

curl -X POST "https://api.tokenlab.sh/v1/images/edits" \
  -H "Authorization: Bearer sk-your-api-key" \
  -F "model=gpt-image-2" \
  -F "image=@sunlit_lounge.png" \
  -F "mask=@mask.png" \
  -F "prompt=A sunlit indoor lounge area with a pool" \
  -F "n=1" \
  -F "size=1024x1024"

Resposta

Response
{
  "created": 1706000000,
  "data": [
    {
      "url": "https://..."
    }
  ]
}

Observações

Falhas ao buscar imagens remotas são retornadas como erros de entrada antes do início da geração. URLs inacessíveis, timeouts, respostas 403/404, hosts privados/internos, credenciais ou fragmentos na URL, conteúdo que não é imagem, formatos não suportados e violações de tamanho retornam 400 ou 413 e identificam image_url / image_urls[n]. Para assets privados ou protegidos por headers, envie arquivos multipart image diretamente ou crie referências /v1/files.

Hy Image 3.5 Preview cria imagens quadradas de 1024 pixels a partir de texto e edita imagens de referência com instruções escritas. É útil para criar rascunhos visuais e refinar uma composição.

{
  "model": "hy-image-v3.5-preview",
  "prompt": "Change the table to pale blue",
  "image_url": "https://example.com/reference.png",
  "size": "1024x1024",
  "n": 1,
  "response_format": "url"
}

Autorização

BearerAuth
AuthorizationBearer <token>

Autenticação por Chave de API. Crie ou gerencie chaves de API em Dashboard > API > API Keys.

Local: header

Cabeçalhos

X-TokenLab-Delivery-Policy?string

Política de entrega por solicitação. Substitui os padrões da API key e do Workspace. Tenta automaticamente o TokenLab Verified primeiro e pode alternar uma vez para Official apenas antes da saída, aceitação da solicitação ou criação de recurso persistente.

Valores permitidos

  • "auto"
  • "verified"
  • "official"

Corpo da requisição

Resposta

application/json

application/json

application/json

application/json

application/json

application/json