Saltar al contenido principal
La principal función de la API de Tareas de Midjourney es consultar el estado de ejecución de una tarea mediante el ID de tarea generado a través de la API de Midjourney Imagine o la API de Midjourney Describe. Este documento detallará las instrucciones de integración de la API de Tareas de Midjourney, ayudándole a integrar y aprovechar al máximo las potentes funciones de esta API. A través de la API de Tareas de Midjourney, puede consultar fácilmente el estado de ejecución de las tareas de la API de Midjourney Imagine o de la API de Midjourney Describe.

Proceso de Solicitud

Para utilizar la API de Tareas de Midjourney, primero debe ir a la página de solicitud Midjourney Imagine API para solicitar el servicio correspondiente, y luego copiar el ID de tarea de la API Imagine, como se muestra en la imagen:

Finalmente, acceda a la página de la API de Tareas Midjourney Tasks API para solicitar el servicio correspondiente. Una vez en la página, haga clic en el botón “Acquire”, como se muestra en la imagen: Página de Solicitud Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión para invitarlo a registrarse e iniciar sesión. Después de registrarse e iniciar sesión, será redirigido automáticamente a la página actual. En la primera solicitud, se le otorgará un crédito gratuito que le permitirá utilizar esta API de forma gratuita.

Ejemplo de Solicitud

La API de Tareas de Midjourney se puede utilizar para consultar los resultados de las APIs de Midjourney Imagine y Midjourney Describe. Para saber cómo utilizar la API de Midjourney Imagine, consulte el documento Midjourney Imagine API. Para saber cómo utilizar Midjourney Describe, consulte Midjourney Describe API. Tomaremos como ejemplo un ID de tarea devuelto por el servicio de la API de Midjourney Imagine y demostraremos cómo utilizar esta API. Supongamos que tenemos un ID de tarea: 7489df4c-ef03-4de0-b598-e9a590793434, a continuación, demostraremos cómo hacerlo pasando un ID de tarea.

Ejemplo de Tarea

Configuración de Encabezados y Cuerpo de Solicitud

Request Headers incluye:
  • accept: especifica que se aceptan respuestas en formato JSON, aquí se debe llenar como application/json.
  • authorization: la clave para llamar a la API, que puede seleccionarse directamente después de la solicitud.
Request Body incluye:
  • id: el ID de tarea cargado.
  • ids: un array de IDs de tarea para consultas por lotes.
  • action: el método de operación sobre la tarea, soporta retrieve (consulta individual) y retrieve_batch (consulta por lotes).
Configurado como se muestra en la imagen:

Ejemplo de Código

Se puede observar que en el lado derecho de la página se han generado automáticamente códigos en varios lenguajes, como se muestra en la imagen:

Algunos ejemplos de código son los siguientes:

CURL

curl -X POST 'https://api.acedata.cloud/midjourney/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "id": "7489df4c-ef03-4de0-b598-e9a590793434",
  "action": "retrieve"
}'

Python

import requests

url = "https://api.acedata.cloud/midjourney/tasks"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "id": "7489df4c-ef03-4de0-b598-e9a590793434",
    "action": "retrieve"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

Ejemplo de Respuesta

Si la solicitud es exitosa, la API devolverá la información detallada de la tarea de la imagen aquí. Por ejemplo:
{
  "_id": "668aae3f550a4144a540803b",
  "id": "7489df4c-ef03-4de0-b598-e9a590793434",
  "application_id": "9dec7b2a-1cad-41ff-8536-d4ddaf2525d4",
  "created_at": 1720364607.967,
  "credential_id": "68253cc8-505d-47f4-97ad-0050a62e4975",
  "request": {
    "mode": "fast",
    "prompt": "Un gato sentado en una mesa",
    "action": "generate"
  },
  "type": "imagine",
  "hold": false,
  "image_id": "1259525319472185344",
  "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
  "response": {
    "image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png?imageMogr2/thumbnail/!50p",
    "image_width": 1024,
    "image_height": 1024,
    "actions": [
      "upscale1",
      "upscale2",
      "upscale3",
      "upscale4",
      "reroll",
      "variation1",
      "variation2",
      "variation3",
      "variation4"
    ],
    "raw_image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png",
    "raw_image_width": 2048,
    "raw_image_height": 2048,
    "progress": 100,
    "image_id": "1259525319472185344",
    "task_id": "7489df4c-ef03-4de0-b598-e9a590793434",
    "success": true,
    "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
    "hold": false
  },
  "duration": 29.437000036239624,
  "finished_at": 1720364637.404
}
El resultado devuelto tiene varios campos, el campo request es el cuerpo de la solicitud al iniciar la tarea, mientras que el campo response es el cuerpo de la respuesta devuelta después de completar la tarea. Si type = imagine, su resultado es consistente con la solicitud y respuesta de la API de Midjourney Imagine; si type = describe, su resultado es consistente con la solicitud y respuesta de la API de Midjourney Describe. La descripción de los campos es la siguiente.
  • id, el ID de la tarea de generación de esta imagen, utilizado para identificar de manera única esta tarea de generación de imagen.
  • type, si type = imagine representa el resultado de la API de Midjourney Imagine, si type = describe representa el resultado de la API de Midjourney Describe.
  • job_id, el ID de la tarea de consulta de imagen generada, utilizado para identificar de manera única esta tarea de consulta de imagen.
  • image_id, el identificador único de la tarea de imagen consultada, que se necesita pasar como parámetro en la próxima operación de transformación de la imagen.
  • request, la información de solicitud en la tarea de consulta de imagen.
  • response, la información de respuesta en la tarea de consulta de imagen.

Operación de Consulta por Lotes

Esto es para consultar los detalles de la tarea de imagen para múltiples IDs de tarea, a diferencia de lo anterior, se debe seleccionar la acción como retrieve_batch. Request Body incluye:
  • ids: un array de IDs de tarea cargados.
  • action: el método de operación sobre la tarea.
Configurado como se muestra en la imagen:

Ejemplo de código

Se puede observar que en el lado derecho de la página se han generado automáticamente códigos en varios idiomas, como se muestra en la imagen:

Algunos ejemplos de código son los siguientes:

Ejemplo de respuesta

Después de una solicitud exitosa, la API devolverá los detalles específicos de todas las tareas de imágenes por lotes. Por ejemplo:
{
  "items": [
    {
      "_id": "668aae3f550a4144a540803b",
      "id": "7489df4c-ef03-4de0-b598-e9a590793434",
      "application_id": "9dec7b2a-1cad-41ff-8536-d4ddaf2525d4",
      "created_at": 1720364607.967,
      "credential_id": "68253cc8-505d-47f4-97ad-0050a62e4975",
      "request": {
        "mode": "fast",
        "prompt": "Un gato sentado en una mesa",
        "action": "generate"
      },
      "type": "imagine",
      "hold": false,
      "image_id": "1259525319472185344",
      "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
      "response": {
        "image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png?imageMogr2/thumbnail/!50p",
        "image_width": 1024,
        "image_height": 1024,
        "actions": [
          "upscale1",
          "upscale2",
          "upscale3",
          "upscale4",
          "reroll",
          "variation1",
          "variation2",
          "variation3",
          "variation4"
        ],
        "raw_image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png",
        "raw_image_width": 2048,
        "raw_image_height": 2048,
        "progress": 100,
        "image_id": "1259525319472185344",
        "task_id": "7489df4c-ef03-4de0-b598-e9a590793434",
        "success": true,
        "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
        "hold": false
      },
      "duration": 29.437000036239624,
      "finished_at": 1720364637.404
    },
    {
      "_id": "668b41d6550a4144a551d996",
      "id": "807f62de-c63e-4add-8345-7f0ae6dd18e7",
      "application_id": "9dec7b2a-1cad-41ff-8536-d4ddaf2525d4",
      "created_at": 1720402390.341,
      "credential_id": "6fd3e1d5-4bd6-47e8-8872-fab89a183b53",
      "request": {
        "mode": "fast",
        "prompt": "Una chica hermosa",
        "action": "generate"
      },
      "type": "imagine",
      "hold": false,
      "image_id": "1259683790612070400",
      "job_id": "ede5c805-e231-498c-8f74-3aa76d5d6d12",
      "response": {
        "image_url": "https://platform.cdn.acedata.cloud/midjourney/807f62de-c63e-4add-8345-7f0ae6dd18e7.png?imageMogr2/thumbnail/!50p",
        "image_width": 1024,
        "image_height": 1024,
        "actions": [
          "upscale1",
          "upscale2",
          "upscale3",
          "upscale4",
          "reroll",
          "variation1",
          "variation2",
          "variation3",
          "variation4"
        ],
        "raw_image_url": "https://platform.cdn.acedata.cloud/midjourney/807f62de-c63e-4add-8345-7f0ae6dd18e7.png",
        "raw_image_width": 2048,
        "raw_image_height": 2048,
        "progress": 100,
        "image_id": "1259683790612070400",
        "task_id": "807f62de-c63e-4add-8345-7f0ae6dd18e7",
        "success": true,
        "job_id": "ede5c805-e231-498c-8f74-3aa76d5d6d12",
        "hold": false
      },
      "duration": 29.471999883651733,
      "finished_at": 1720402419.813
    }
  ],
  "count": 2
}
El resultado devuelto tiene varios campos, donde items contiene los detalles específicos de las tareas de imágenes por lotes, la información específica de cada tarea de imagen es la misma que los campos mencionados anteriormente, la información de los campos es la siguiente.
  • items, todos los detalles específicos de las tareas de imágenes por lotes. Es un array, cada elemento del array tiene el mismo formato que el resultado de la consulta de una sola tarea mencionado anteriormente.
  • count, el número de tareas de imágenes consultadas por lotes.

CURL

curl -X POST 'https://api.acedata.cloud/midjourney/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "retrieve_batch",
  "id": "",
  "ids": ["7489df4c-ef03-4de0-b598-e9a590793434","807f62de-c63e-4add-8345-7f0ae6dd18e7"]
}'

Python

import requests

url = "https://api.acedata.cloud/midjourney/tasks"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "retrieve_batch",
    "id": "",
    "ids": ["7489df4c-ef03-4de0-b598-e9a590793434","807f62de-c63e-4add-8345-7f0ae6dd18e7"]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error correspondiente y la información. Por ejemplo:
  • 400 token_mismatched: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 400 api_not_implemented: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 401 invalid_token: No autorizado, token de autorización inválido o faltante.
  • 429 too_many_requests: Demasiadas solicitudes, ha superado el límite de tasa.
  • 500 api_error: Error interno del servidor, algo salió mal en el servidor.

Ejemplo de respuesta de error

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "la recuperación falló"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusión

A través de este documento, ha aprendido cómo usar la API de Midjourney Tasks para consultar todos los detalles específicos de tareas de imágenes individuales o por lotes. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.