Saltar al contenido principal
POST
/
v1
/
midjourney
/
generations
/
modal
curl --request POST \
  --url https://api.apimart.ai/v1/midjourney/generations/modal \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "task_id": "task_01KQW1N9T6E3AHW6QZFDEK8M5C",
    "prompt": "replace the selected area with a red leather sofa",
    "mask_url": "https://example.com/mask.png",
    "speed": "fast"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/midjourney/generations/modal \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "task_id": "task_01KQW1N9T6E3AHW6QZFDEK8M5C",
    "prompt": "replace the selected area with a red leather sofa",
    "mask_url": "https://example.com/mask.png",
    "speed": "fast"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}
Completa una tarea de inpaint en estado MODAL aportando una máscara + prompt. El sistema detecta el modo automáticamente según si mask_url está presente: con mask_url → inpaint (repintado local); sin él → outpaint (expansión).
ItemValor
actionMODAL
Facturaciónmidjourney@modal[-speed]
Requeridotask_id
Opcionalprompt, mask_url, speed, metadata

Parámetros

CampoDescripción
task_idID de tarea local devuelto por el paso inpaint (debe estar en estado MODAL)
promptPrompt para inpaint; si está vacío, hereda el prompt de la tarea padre
mask_urlURL de máscara o base64; requerido para inpaint (repintado local). Blanco = área a repintar, transparente = conservar el original
speedrelax / fast / turbo
metadataMetadatos opcionales

Requisitos de la máscara

ItemRecomendación
FormatoPNG con fondo transparente (también acepta data:image/png;base64,...)
ResoluciónPreferiblemente igual a la imagen padre (el sistema también redimensiona automáticamente)
Área blancaEl área a repintar; las áreas transparentes conservan el original
Tamaño≤ 12 MiB por imagen
URLDebe ser accesible públicamente (las direcciones privadas se bloquean por SSRF)

Ejemplo de solicitud

{
  "task_id": "task_01KQW1N9T6E3AHW6QZFDEK8M5C",
  "prompt": "replace the selected area with a red leather sofa",
  "mask_url": "https://example.com/mask.png",
  "speed": "fast"
}

Respuesta

El task_id no cambia (la misma tarea); su estado pasa de MODALSUBMITTED. Sondee GET /v1/tasks/{task_id}; al tener SUCCESS image_urls contiene 4 candidatos de inpaint. La facturación se liquida en el SUCCESS de este endpoint y no se cobra dos veces con el paso inpaint. Para precios por speed, configure midjourney@modal-fast / midjourney@modal-turbo.