Saltar al contenido principal
Este documento presentará una descripción de la integración de la API de Ediciones de Midjourney, que permite editar imágenes entrantes mediante la entrada de palabras clave.

Proceso de solicitud

Para utilizar la API, primero debe ir a la página correspondiente de API de Ediciones de Midjourney para solicitar el servicio correspondiente. Una vez en la página, haga clic en el botón “Acquire”, como se muestra en la imagen: Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión, invitándolo 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 otorgará un crédito gratuito, lo que le permitirá utilizar la API de forma gratuita.

Uso básico

Primero, debe comprender la forma básica de uso, que consiste en ingresar la palabra clave prompt, la acción de generación action y la imagen de referencia image_url, para obtener el resultado procesado. Primero, necesita pasar un campo action, cuyo valor es generate, el contenido específico es el siguiente:

Aquí podemos ver que hemos configurado los encabezados de la solicitud, que incluyen:
  • accept: el formato de respuesta que desea recibir, aquí se establece como application/json, es decir, formato JSON.
  • authorization: la clave para llamar a la API, que puede seleccionarse directamente después de la solicitud.
Además, se ha configurado el cuerpo de la solicitud, que incluye:
  • mask: puede especificar la posición de la máscara del área de la imagen para editar y regenerar.
  • split_images: divide la imagen generada en varias imágenes, devolviendo a través del campo sub_image_urls. Por defecto, es false.
  • action: la acción de la tarea de generación de imagen editada, por defecto es generate.
  • image_url: el enlace de la imagen que necesita ser editada.
  • prompt: palabra clave.
  • mode: modo de generación, puede ser fast/relax/turbo.
  • callback_url: la URL donde se necesita devolver el resultado.
Después de seleccionar, puede notar que a la derecha también se ha generado el código correspondiente, como se muestra en la imagen:

Haga clic en el botón “Try” para realizar una prueba, como se muestra en la imagen anterior, aquí hemos obtenido el siguiente resultado:
{
  "sub_image_urls": [
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_0.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_1.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_2.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_3.png"
  ],
  "image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391371957878132849/cat_sitting_table_88e16dab-ef48-43a5-af73-bf24065287bc.png?ex=686ba79d&is=686a561d&hm=ad005d06f6673d6152456e04c3cbec39d062bd9df10448623fae27ddaf8b8a80&",
  "image_width": 960,
  "image_height": 1200,
  "raw_image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391371957878132849/cat_sitting_table_88e16dab-ef48-43a5-af73-bf24065287bc.png?ex=686ba79d&is=686a561d&hm=ad005d06f6673d6152456e04c3cbec39d062bd9df10448623fae27ddaf8b8a80&",
  "raw_image_width": 960,
  "raw_image_height": 1200,
  "progress": 100,
  "image_id": "1391372193836826624",
  "task_id": "26c39859-f54a-4998-9e42-3da96eceee8c",
  "success": true
}
El resultado devuelto tiene varios campos, que se describen a continuación:
  • success, el estado de la tarea de generación de imagen editada en este momento.
  • task_id, el ID de la tarea de generación de imagen editada en este momento.
  • image_id, el ID de la imagen de esta tarea de edición de imagen.
  • sub_image_urls, los múltiples resultados de la tarea de generación de imagen.
  • image_url, el enlace de la imagen generada.
  • image_width, el ancho de la imagen generada.
  • image_height, la altura de la imagen generada.
  • progress, el campo de progreso de la tarea de generación de imagen editada en este momento.
Como puede ver, hemos obtenido información de imagen satisfactoria, solo necesitamos obtener la imagen generada a través de la dirección del enlace de la imagen en image_url. Además, si desea generar el código de integración correspondiente, puede copiarlo directamente, por ejemplo, el código de CURL es el siguiente:
curl -X POST 'https://api.acedata.cloud/midjourney/edits' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "prompt": "A cat sitting on a table",
  "split_images": true,
  "image_url": "https://cdn.acedata.cloud/jgo1cw.jpg",
  "action": "generate"
}'

Callback asíncrono

Dado que el tiempo de generación de la API de Ediciones de Midjourney es relativamente largo, aproximadamente de 1 a 2 minutos, si la API no responde durante mucho tiempo, la solicitud HTTP mantendrá la conexión, lo que provocará un consumo adicional de recursos del sistema. Por lo tanto, esta API también ofrece soporte para callbacks asíncronos. El flujo general es: cuando el cliente inicia la solicitud, debe especificar un campo adicional callback_url. Después de que el cliente inicie la solicitud a la API, la API devolverá inmediatamente un resultado que incluye un campo de información task_id, que representa el ID de la tarea actual. Cuando la tarea se complete, el resultado de la generación de video se enviará al callback_url especificado por el cliente en formato JSON POST, que también incluirá el campo task_id, de modo que el resultado de la tarea se pueda asociar mediante el ID. A continuación, utilizaremos un ejemplo para comprender cómo operar específicamente. Primero, el callback de Webhook es un servicio que puede recibir solicitudes HTTP, y el desarrollador debe reemplazarlo con la URL de su propio servidor HTTP. Para facilitar la demostración, utilizaremos un sitio web de muestra de Webhook público https://webhook.site/, al abrir este sitio obtendrá una URL de Webhook, como se muestra en la imagen: Copie esta URL y podrá usarla como Webhook, el ejemplo aquí es https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. A continuación, podemos establecer el campo callback_url como la URL de Webhook anterior, al mismo tiempo que ingresamos los parámetros correspondientes, el contenido específico es como se muestra en la imagen:

Haga clic en ejecutar, y podrá notar que recibirá inmediatamente un resultado, como el siguiente:
{
  "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9"
}
Después de un momento, podemos observar el resultado del video generado en https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f, como se muestra en la imagen:

El contenido es el siguiente:
{
    "sub_image_urls": [
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_0.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_1.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_2.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_3.png"
    ],
    "image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391374307719905340/cat_sitting_table_f3638ed2-60f6-49dd-897a-6d68c15afb17.png?ex=686ba9cd&is=686a584d&hm=71543c21c38db8a50c7ebcf54bc5208ec349e8592ec9e332f778f74167000ced&",
    "image_width": 960,
    "image_height": 1200,
    "raw_image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391374307719905340/cat_sitting_table_f3638ed2-60f6-49dd-897a-6d68c15afb17.png?ex=686ba9cd&is=686a584d&hm=71543c21c38db8a50c7ebcf54bc5208ec349e8592ec9e332f778f74167000ced&",
    "raw_image_width": 960,
    "raw_image_height": 1200,
    "progress": 100,
    "image_id": "1391374390892953600",
    "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9",
    "success": true
}
Se puede ver que en el resultado hay un campo task_id, los otros campos son similares a los anteriores, a través de este campo se puede lograr la asociación de tareas.

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": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusión

A través de este documento, usted ha comprendido cómo utilizar la API de Ediciones de Midjourney para editar imágenes mediante la entrada de palabras clave. 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.