Skip to main content

Início rápido

O endpoint nativo de imagens é síncrono por padrão. Defina o booleano async como true para criar uma tarefa em segundo plano. O exemplo usa qwen-image-2.0.

Como descobrir modelos de mídia assíncronos e obter seus esquemas

O fluxo de descoberta tem duas etapas. Primeiro, obtenha no catálogo público os modelos de texto para imagem ou texto para vídeo compatíveis com as APIs assíncronas. Depois, use o model_id do modelo para obter o esquema de solicitação de seus endpoints.

Listar modelos compatíveis com as APIs assíncronas

O catálogo de modelos usa a mesma fonte de dados do Playground. Use type=image_generation para modelos de texto para imagem e type=video para modelos de texto para vídeo. Com schema_checked=true, a lista fica limitada a modelos cujo esquema de solicitação foi publicado e revisado.
As duas solicitações usam o mesmo endpoint. O filtro type aceita atualmente um único valor, então solicite cada tipo de modelo separadamente. A resposta tem o formato {success, message, data}. Os campos de data relevantes para integrações de mídia assíncrona são os seguintes.

Obter o esquema de solicitação de um modelo

Os campos, enumerações e intervalos numéricos aceitos podem variar conforme o modelo. Antes de enviar uma solicitação de imagem ou vídeo, use o endpoint público abaixo para obter os endpoints disponíveis e os esquemas JSON de solicitação do modelo selecionado.
O valor de modality na resposta é image ou video. Cada item do array endpoints descreve um protocolo de chamada disponível. Um modelo pode retornar endpoints /ai/v1 e endpoints /v1 compatíveis com OpenAI. Os endpoints compatíveis com OpenAI podem ainda não oferecer suporte aos modelos mais recentes, portanto dê preferência aos endpoints /ai/v1. Para as APIs de tarefas assíncronas, selecione o item cujo path seja /ai/v1/images/generations ou /ai/v1/videos e use seu request.schema. Não dependa da posição do item no array endpoints. Os comandos abaixo extraem diretamente o esquema de solicitação de cada endpoint de tarefa assíncrona.
O endpoint retorna 404 model_not_found quando o modelo não existe ou não possui endpoints detectáveis. Ele retorna 500 endpoints_unavailable quando os dados dos endpoints estão temporariamente indisponíveis.

Como criar uma tarefa de imagem

Imagem síncrona

Quando async é omitido ou definido como false, a API aguarda a conclusão da geração e retorna o objeto de tarefa:
As tarefas síncronas de imagem também são registradas. Se a conexão do cliente for interrompida ou a resposta de criação for perdida, use GET /ai/v1/images para localizar a tarefa.

Imagem assíncrona

Quando async é definido como o booleano true, a API retorna imediatamente o objeto de tarefa e a geração continua em segundo plano:
Consulte a tarefa assíncrona de imagem com GET /ai/v1/images/{id}. Após a conclusão, solicite diretamente o content_url de cada item de output. Essa URL já contém o result_id da imagem correspondente.
O campo async de uma requisição de imagem deve ser booleano. webhook_url e webhook_events_filter só podem ser usados com async: true.

Campos padrão de imagem


Objeto de tarefa de mídia

As APIs específicas de imagem e vídeo retornam a seguinte estrutura:
Item de output de mídia:

Descrição dos status

O cliente pode consultar a tarefa a cada 15 segundos até que o status seja completed, failed ou cancelled. Esse intervalo de 15 segundos é uma recomendação de polling do cliente, não uma limitação do protocolo do servidor.

Como consultar tarefas de mídia

Consultar detalhes da mídia

As APIs de detalhes de mídia podem retornar um status atualizado. Por isso, use a API de detalhes da imagem ou do vídeo correspondente para fazer polling.

Consultar a lista de mídia

Se a resposta de criação for perdida, localize o ID da tarefa na lista da mídia correspondente:
A lista de mídia retorna um instantâneo da tarefa no momento da consulta e não atualiza ativamente o status.

Como usar a API de tarefas unificadas

A API de tarefas unificadas aceita os seguintes filtros:
Detalhes da tarefa unificada:
Item de output unificado de uma tarefa de mídia:
Para um único resultado, solicite diretamente /ai/v1/tasks/{id}/content. Para tarefas com vários resultados, solicite /ai/v1/tasks/{id}/content/{result_id}. Sem o ID do resultado, a API retorna 400 result_id_required.
As APIs de lista, detalhes e conteúdo das tarefas unificadas são isoladas pelo Bearer Token usado para criar a tarefa. Outra API Key da mesma conta não pode ler essa tarefa.

Como baixar resultados de mídia

Baixar imagens

Quando a imagem estiver concluída, solicite cada output[].content_url do objeto de tarefa de mídia:
O caminho de download de mídia da imagem é /ai/v1/images/{id}/content/{result_id}. O objeto de tarefa de mídia não expõe result_id separadamente. O cliente pode usar content_url diretamente. Quando b64_json não estiver vazio, decodifique esse campo diretamente em Base64.

Como usar Webhook

Imagens assíncronas e vídeos aceitam Webhooks no nível da tarefa:
webhook_url aceita no máximo 512 caracteres e não pode apontar para a máquina local, uma rede privada ou outro endereço restrito. Quando webhook_events_filter é omitido, a plataforma envia completed, failed e cancelled. Quando informado explicitamente, o array não pode estar vazio nem conter duplicatas e deve ser usado com webhook_url. Quando webhook_url não é enviado na requisição, imagens assíncronas e vídeos tentam usar o endereço de callback padrão configurado na conta. Um endereço padrão inválido é ignorado e não impede a criação da tarefa.

Requisição de callback

results só aparece quando o resultado foi arquivado. O download ainda exige um Bearer Token.

Novas tentativas e desduplicação

A plataforma usa entrega pelo menos uma vez. O mesmo evento pode ser enviado mais de uma vez:
  • HTTP 2xx indica recebimento bem-sucedido.
  • HTTP 5xx, erros de rede ou timeout acionam uma nova tentativa.
  • HTTP 3xx e 4xx não acionam novas tentativas.
  • São feitas no máximo 6 entregas, com intervalos de 1, 4, 16, 64 e 256 segundos.
O destinatário deve salvar event_id e retornar imediatamente 2xx ao receber novamente o mesmo evento.
O Webhook no nível da tarefa não possui uma chave de assinatura independente. Se precisar verificar a assinatura, configure uma assinatura de Webhook no nível da conta e mantenha a consulta dos detalhes da tarefa como forma de confirmar o resultado.

Respostas e códigos de erro

error.tid é o ID de rastreamento da requisição. Informe-o ao suporte técnico durante a investigação.

Exemplo completo

Estes exemplos criam uma tarefa assíncrona, consultam seu estado e salvam todas as imagens retornadas.