API de Imagem para imagem

A API de Imagem para imagem é um recurso que permite integrar os recursos de edição de imagem com IA da Meshy à sua própria aplicação. Transforme e edite imagens existentes usando imagens de referência e prompts de texto com nossos poderosos modelos de IA.


POST/openapi/v1/image-to-image

Create an Image to Image Task

Este endpoint permite que você crie uma nova tarefa de Imagem para imagem. Consulte O objeto de tarefa Imagem para imagem para ver quais propriedades estão incluídas no objeto de tarefa de Imagem para imagem.

Parâmetros

  • Name
    ai_model
    Type
    string
    Obrigatório
    Description

    ID do modelo a ser usado para geração de imagem.

    Valores disponíveis:

    • nano-banana: Modelo padrão (3 créditos por imagem)
    • nano-banana-2: Modelo equilibrado com capacidade maior que o padrão (6 créditos por imagem)
    • nano-banana-pro: Modelo Pro com qualidade aprimorada (9 créditos por imagem)
    • gpt-image-2: OpenAI GPT Image 2, um modelo de edição de imagem de alta fidelidade (12 créditos por imagem)
    • gpt-image-2-5-flare: OpenAI GPT Image 2.5 (Flare), um modelo de edição de imagem de alta fidelidade (12 créditos por imagem)
    • gpt-image-2-5-sunburst: OpenAI GPT Image 2.5 (Sunburst), um modelo de edição de imagem de alta fidelidade (12 créditos por imagem)
  • Name
    prompt
    Type
    string
    Obrigatório
    Description

    Uma descrição textual da transformação ou edição que você deseja aplicar às imagens de referência.

  • Name
    input_task_id
    Type
    string
    Obrigatório
    Description

    O ID de uma tarefa de geração de imagem concluída cujas imagens de saída devem ser usadas como imagens de referência. Essa tarefa deve ser uma das seguintes: Texto para imagem ou Imagem para imagem, incluindo suas variantes multivista. Além disso, ela deve ter sido executada via API e ter status SUCCEEDED.

    Todas as imagens de saída da tarefa de origem são utilizadas. Uma tarefa de imagem única contribui com 1 imagem de referência; uma tarefa multivista contribui com uma imagem por vista gerada, portanto um único ID de tarefa pode preencher vários dos 5 slots de referência.

    A tarefa de origem ainda deve estar dentro do período de retenção de recursos — assim que expirar, seu ID retorna 404.

  • Name
    reference_image_urls
    Type
    array
    Obrigatório
    Description

    Um array de 1 a 5 imagens de referência para usar na tarefa de edição de imagem. No momento, suportamos os formatos .jpg, .jpeg e .png.

    Existem duas maneiras de fornecer cada imagem:

    • URL publicamente acessível: Uma URL que seja acessível a partir da internet pública.
    • Data URI: Um data URI da imagem codificado em base64. Exemplo de um data URI: data:image/jpeg;base64,<seus dados de imagem codificados em base64>.
  • Name
    generate_multi_view
    Type
    boolean
    padrão false
    Description

    Quando definido como true, gera uma imagem multivista mostrando o assunto a partir de vários ângulos.

  • Name
    aspect_ratio
    Type
    string
    padrão 1:1
    Description

    Especifica a proporção da imagem de saída. Os valores permitidos dependem do ai_model selecionado:

    • nano-banana, nano-banana-2, nano-banana-pro: 1:1, 16:9, 9:16, 4:3, 3:4
    • gpt-image-2, gpt-image-2-5-flare, gpt-image-2-5-sunburst: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3

    Valores disponíveis:

    • 1:1: Formato quadrado
    • 16:9: Widescreen paisagem
    • 9:16: Widescreen retrato
    • 4:3: Paisagem padrão
    • 3:4: Retrato padrão
    • 3:2: Paisagem (suportado apenas pelos modelos GPT Image)
    • 2:3: Retrato (suportado apenas pelos modelos GPT Image)
  • Name
    remove_background
    Type
    boolean
    padrão false
    Description

    Quando definido como true, a imagem de saída é retornada como um PNG RGBA transparente com o fundo removido, para que você possa compor o assunto sobre qualquer plano de fundo.

Retornos

A propriedade result da resposta contém o id da tarefa da tarefa de Imagem para imagem recém-criada.

Modos de falha

  • Name
    400 - Bad Request
    Description

    A solicitação foi inaceitável. Causas comuns:

    • Parâmetro ausente: Um parâmetro obrigatório (por exemplo, ai_model, prompt) está ausente, ou nem reference_image_urls nem input_task_id foram fornecidos.
    • Tarefa de entrada inválida: input_task_id deve se referir a uma tarefa SUCCEEDED de Texto para imagem ou Imagem para imagem (incluindo multivista) que ainda tenha saída de imagem. Uma tarefa de qualquer outro tipo, uma que não tenha sido bem-sucedida, ou uma cujas imagens tenham todas expirado é rejeitada.
    • Formato de imagem inválido: Uma ou mais imagens de referência não estão em formatos suportados.
    • URL inacessível: Uma ou mais reference_image_urls não puderam ser baixadas.
    • Parâmetro inválido: aspect_ratio não é um dos valores permitidos para o ai_model selecionado.
    • Conflito: generate_multi_view e aspect_ratio não podem ser usados simultaneamente.
  • Name
    401 - Unauthorized
    Description

    Falha na autenticação. Verifique sua chave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarefa.

  • Name
    404 - Not Found
    Description

    O input_task_id não se refere a uma tarefa pertencente à sua conta. Uma tarefa que não existe e uma que pertence a outra conta retornam a mesma resposta.

  • Name
    429 - Too Many Requests
    Description

    Você excedeu seu limite de taxa.

Request

POST
/openapi/v1/image-to-image
# Transform a reference image with a text prompt
curl https://api.meshy.ai/openapi/v1/image-to-image \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "ai_model": "nano-banana",
    "prompt": "Transform this into a cyberpunk style artwork",
    "reference_image_urls": [
      "<your publicly accessible image url or base64-encoded data URI>"
    ]
  }'


 ## Using Data URI example
curl https://api.meshy.ai/openapi/v1/image-to-image \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "ai_model": "nano-banana",
    "prompt": "Transform this into a cyberpunk style artwork",
    "reference_image_urls": [
      "data:image/png;base64,${YOUR_BASE64_ENCODED_IMAGE_DATA}"
    ]
  }'


 ## Chaining from a previous task, instead of passing image URLs
curl https://api.meshy.ai/openapi/v1/image-to-image \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "ai_model": "nano-banana",
    "prompt": "Transform this into a cyberpunk style artwork",
    "input_task_id": "<your Text to Image or Image to Image task id>"
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

GET/openapi/v1/image-to-image/:id

Retrieve an Image to Image Task

Este endpoint permite recuperar uma tarefa de Imagem para imagem a partir de um id de tarefa válido. Consulte O Objeto de Tarefa de Imagem para imagem para ver quais propriedades estão incluídas no objeto de tarefa de Imagem para imagem.

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de Imagem para imagem a ser recuperada.

Retornos

A resposta contém o objeto de tarefa de Imagem para imagem. Consulte a seção O Objeto de Tarefa de Imagem para imagem para mais detalhes.

Request

GET
/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.ai/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "image-to-image",
  "ai_model": "nano-banana",
  "prompt": "Transform this into a cyberpunk style artwork",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1692771650657,
  "started_at": 1692771667037,
  "finished_at": 1692771669037,
  "expires_at": 1692771679037,
  "image_urls": [
    "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
  ]
}

DELETE/openapi/v1/image-to-image/:id

Excluir uma tarefa de Imagem para imagem

Este endpoint exclui permanentemente uma tarefa de Imagem para imagem, incluindo todas as imagens e dados associados. Esta ação é irreversível.

Parâmetros de caminho

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de Imagem para imagem a ser excluída.

Status da tarefa

Uma tarefa que ainda está PENDING é excluída e os créditos consumidos no momento da criação são reembolsados.

Uma tarefa que já está IN_PROGRESS não pode ser excluída: a requisição é rejeitada com 409 Conflict e a tarefa continua em execução. Créditos de uma tarefa que o worker já começou a processar não são reembolsáveis, então excluí-la no meio da execução custaria tanto os créditos quanto o resultado. Aguarde até que ela atinja SUCCEEDED, FAILED ou CANCELED, e então exclua-a.

Uma tarefa em um estado terminal (SUCCEEDED, FAILED ou CANCELED) é excluída sem reembolso.

Retornos

Retorna 200 OK em caso de sucesso, ou 409 Conflict quando a tarefa está IN_PROGRESS.

Request

DELETE
/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

GET/openapi/v1/image-to-image

Listar Tarefas de Imagem para Imagem

Este endpoint permite recuperar uma lista de tarefas de Imagem para imagem.

Parâmetros

  • Name
    page_num
    Type
    integer
    Description

    Número da página para paginação. Começa e assume como padrão 1.

  • Name
    page_size
    Type
    integer
    Description

    Limite de tamanho da página. O padrão é 10 itens. O máximo permitido é 100 itens.

  • Name
    sort_by
    Type
    string
    Description

    Campo pelo qual ordenar. Valores disponíveis:

    • +created_at: Ordena pelo horário de criação em ordem crescente.
    • -created_at: Ordena pelo horário de criação em ordem decrescente.

Retornos

Retorna uma lista paginada de Objetos de Tarefa de Imagem para Imagem.

Request

GET
/openapi/v1/image-to-image
curl https://api.meshy.ai/openapi/v1/image-to-image?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "image-to-image",
    "ai_model": "nano-banana",
    "prompt": "Transform this into a cyberpunk style artwork",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1692771650657,
    "started_at": 1692771667037,
    "finished_at": 1692771669037,
    "expires_at": 1692771679037,
    "image_urls": [
      "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
    ]
  }
]

GET/openapi/v1/image-to-image/:id/stream

Stream an Image to Image Task

Este endpoint transmite atualizações em tempo real de uma tarefa de Imagem para imagem usando Server-Sent Events (SSE).

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de Imagem para imagem a ser transmitida.

Retornos

Retorna um stream de The Image to Image Task Objects como Server-Sent Events.

Para tarefas PENDING ou IN_PROGRESS, o stream de resposta incluirá apenas os campos progress e status necessários.

Request

GET
/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.ai/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "image-to-image",
  "ai_model": "nano-banana",
  "prompt": "Transform this into a cyberpunk style artwork",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1692771650657,
  "started_at": 1692771667037,
  "finished_at": 1692771669037,
  "expires_at": 1692771679037,
  "image_urls": [
    "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
  ]
}

O objeto Image to Image Task

O objeto Image to Image Task é uma unidade de trabalho que a Meshy monitora para gerar uma imagem a partir de imagens de referência e uma entrada de texto de prompt. O objeto possui as seguintes propriedades:

Propriedades

  • Name
    id
    Type
    string
    Description

    Identificador único da tarefa. Embora usemos um UUID k-sortable para os ids de tarefa como detalhe de implementação, você não deve fazer nenhuma suposição sobre o formato do id.

  • Name
    type
    Type
    string
    Description

    O tipo de tarefa de geração de imagem. Para tarefas de Image to Image, este valor será sempre image-to-image.

  • Name
    ai_model
    Type
    string
    Description

    O modelo de IA usado para esta tarefa. Os valores possíveis são nano-banana, nano-banana-2, nano-banana-pro, gpt-image-2, gpt-image-2-5-flare, ou gpt-image-2-5-sunburst.

  • Name
    prompt
    Type
    string
    Description

    O prompt de texto usado para guiar a transformação da imagem.

  • Name
    status
    Type
    string
    Description

    Status da tarefa. Os valores possíveis são um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progresso da tarefa. Se a tarefa ainda não foi iniciada, esta propriedade será 0. Assim que a tarefa for concluída com sucesso, ela se tornará 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.

  • Name
    started_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos. Se a tarefa ainda não foi iniciada, esta propriedade será 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi finalizada, em milissegundos. Se a tarefa ainda não foi finalizada, esta propriedade será 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando o resultado da tarefa expira, em milissegundos.

  • Name
    preceding_tasks
    Type
    integer
    Description

    A contagem de tarefas precedentes.

  • Name
    image_urls
    Type
    array
    Description

    Um array de URLs para download das imagens geradas. Quando generate_multi_view está habilitado, este array contém três URLs de imagem representando diferentes ângulos de visualização. Caso contrário, ele contém uma única URL de imagem.

  • Name
    task_error
    Type
    object
    Description

    Detalhes de erro para tarefas com falha. Consulte Erros para a referência completa do objeto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    O número de créditos consumidos por esta tarefa. Presente quando o status da tarefa é PENDING, IN_PROGRESS, ou SUCCEEDED. Retorna 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).

Example Image to Image Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "image-to-image",
  "ai_model": "nano-banana",
  "prompt": "Transform this into a cyberpunk style artwork",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1692771650657,
  "started_at": 1692771667037,
  "finished_at": 1692771669037,
  "expires_at": 1692771679037,
  "preceding_tasks": 0,
  "image_urls": [
    "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
  ],
  "task_error": {

    "message": ""

  },

  "consumed_credits": 3
}