Claude Opus 5.5 ya está disponible en SeedRouter

Midjourney V8.2 API: envía y consulta una tarea de imagen

Envía tareas de imagen de Midjourney V8.2, guarda su ID y consulta resultados con Python. Revisa parámetros, acciones de imagen y precios actuales.

Leer en Markdown

Para integrar la API de Midjourney V8.2 necesitas una versión explícita, una solicitud de imagen válida y una forma de recuperar la tarea completada. Con SeedRouter, envías a /v1/images/generations, guardas el ID de tarea devuelto y consultas periódicamente /v1/tasks/{id}. Un envío correcto confirma la recepción de la tarea; las imágenes llegan en el resultado completado.

Esta guía sigue la especificación de solicitudes de SeedRouter. Una prueba de pago del 18 de octubre de 2026 completó una solicitud V8.2 Fast y entregó cuatro imágenes de 1024 × 1024. El retrato de abajo es una de esas salidas. La página del modelo incluye el Playground y los precios actuales; la referencia de la API distingue las entradas compatibles de las combinaciones que aún necesitan verificación. [1]

Salida de la API de Midjourney V8.2: mujer pelirroja con jersey color crema en un acantilado costero

Empieza con una solicitud explícita a la API de Midjourney V8.2

Usa el ID completo del modelo, midjourney-v8.2. SeedRouter requiere un modelo explícito; no lo abrevies como midjourney ni lo deduzcas de un ajuste de cuenta en otra interfaz. Registra el modelo junto con la solicitud enviada. [1]

Prepara una clave API del lado del servidor y un prompt corto con un resultado que puedas examinar. Empieza sin referencias ni acciones sobre una imagen principal para que tu primera solicitud pruebe el flujo básico. La solicitud siguiente produjo la serie de retratos ilustrada. Elige Fast y activa la comprobación adicional de contenido:

{
  "model": "midjourney-v8.2",
  "prompt": "Cinematic portrait of a young woman with freckles and wind-swept auburn hair, wearing a cream cable-knit sweater, laughing on a coastal cliff at golden hour, warm rim light, shallow depth of field, 85mm film photograph",
  "speed": "fast",
  "nsfw_check": true
}

La solicitud mínima solo necesita model y prompt; si omites la velocidad, se usa Fast. Si añades size, utiliza una relación de aspecto como "16:9", no una instrucción de píxeles WIDTHxHEIGHT. Un ajuste genérico de cliente de imágenes que envíe 1024x1024, quality: "high" o un n arbitrario no coincide con la especificación de este modelo. Adapta el cuerpo a la tabla de campos de Midjourney en lugar de reutilizar sin cambios los ajustes de otro modelo.

Envía una vez y consulta el ID de tarea guardado

El ejemplo descargable de Python usa la biblioteca estándar, conserva la clave en una variable de entorno y escribe el ID de la tarea aceptada en un archivo local. Tiene comandos separados para el envío y la consulta periódica. Esta separación permite reanudar una lectura sin crear otro trabajo de imagen.

export SEEDROUTER_API_KEY='your-server-side-key'
python3 midjourney-v8-2.py submit request.json --state mj-task.json
python3 midjourney-v8-2.py poll --state mj-task.json

Guarda la solicitud JSON anterior como request.json. Sustituye la clave de ejemplo por tu propio secreto en tu entorno local; no la incluyas en un paquete para el navegador ni la subas a un repositorio. Para probar un despliegue local, configura SEEDROUTER_BASE_URL del ejemplo con la URL base /v1 de ese despliegue.

El ejemplo se niega a sobrescribir un archivo de estado existente durante el envío. Tampoco repite automáticamente un POST después de un fallo de conexión. Si se pierde la respuesta, la aplicación puede no saber si la tarea fue aceptada. Comprueba el historial de tareas antes de decidir si vuelves a enviarla.

La consulta periódica es distinta: lee una tarea que ya existe. El ejemplo se detiene cuando la tarea termina o falla, e informa de una espera limitada si continúa en proceso. Un límite de espera es una observación del cliente, no una prueba de que haya que generar de nuevo la tarea.

Lee el formato del resultado de cada operación

Una operación de imagen completada devuelve URL en output.data. Recorre ese array en lugar de suponer que siempre contiene cuatro entradas. La generación, la selección de una imagen, la descripción de una imagen y un paso de entrada de edición pueden devolver tipos de salida distintos.

Campo del resultadoQué debe hacer tu aplicación
statusDistinguir tareas en proceso, completadas y fallidas
output.data[].urlMostrar o guardar cada imagen entregada
output.gridIdentificar una cuadrícula entregada como tal; un archivo puede contener varias opciones de imagen
output.textMostrar el texto devuelto sin suponer que habrá cuatro sugerencias ni que estará en inglés
output.seedRegistrarlo cuando exista; no exigirlo en todos los resultados
output.awaiting_inputContinuar el flujo documentado de entrada de edición

Trata una tarea fallida como un fallo en tu aplicación, aunque la solicitud HTTP usada para leerla haya tenido éxito. El éxito HTTP significa que se atendió la consulta de estado; no significa que se generase la imagen solicitada.

Cuando output.grid es true, una URL contiene la cuadrícula. No inventes cuatro URL individuales a partir de ese archivo. Una selección posterior usa la posición de la imagen en la cuadrícula, empezando por uno; el número de URL no es el número de opciones disponibles.

El ejemplo imprime como JSON la salida completada. Tu aplicación puede añadir almacenamiento, miniaturas y controles de selección para las imágenes devueltas. Conserva el ID de tarea con esos resultados para que una acción posterior pueda referirse a la tarea principal correcta.

Traduce los parámetros nativos sin ocultar conflictos

La integración acepta campos estructurados e indicadores nativos de prompt compatibles. La prioridad es campos estructurados, después extra y después indicadores dentro de prompt. Los valores explícitos cero y false se conservan.

Por ejemplo, un prompt que contenga --stylize 700 combinado con "stylize": 0 utiliza el valor cero explícito. Es útil cuando una interfaz envía un control separado, pero puede sorprender a una aplicación que construya los prompts y el JSON en lugares distintos. Es preferible una sola fuente para cada ajuste.

En solicitudes de SeedRouter V8.2, quality acepta 0.25, 0.5, 1 o 2 en combinaciones compatibles. La calidad y hd son entradas independientes: ajustar la calidad no selecciona HD. Consulta los límites actuales de combinación antes de añadir ambos u otros controles de referencia; que una entrada esté documentada no demuestra su efecto en todas las versiones. Raw es independiente de ambos; la guía de Raw explica esa diferencia. [1]

Esta integración descarta los campos JSON desconocidos, mientras que rechaza los indicadores nativos desconocidos. No uses una solicitud aceptada como prueba de que un campo JSON adicional y ajeno cambió la salida. Comprueba los nombres de campo documentados y conserva el cuerpo exacto enviado en tu registro de prueba.

Mantén las acciones de imagen vinculadas a su tarea principal

Usa tu parent_task_id de SeedRouter para una acción posterior. Una acción dependiente permanece vinculada a su contexto de ejecución original. Si ese contexto no está disponible, la acción falla en lugar de crear otra tarea principal en otro lugar. La principal debe pertenecer a la misma cuenta, usar el mismo modelo y seguir disponible para la operación solicitada. Los índices públicos de imagen empiezan por uno.

Seleccionar una imagen y realizar una ampliación creativa son operaciones distintas. Un resultado select no debe describirse como una mejora de resolución. Del mismo modo, una variación, un remix y el Edit Model oficial de V8.2 son funciones diferentes con requisitos distintos.

La integración actual no expone el nuevo Edit Model como una operación API verificada. No lo sustituyas por una solicitud de inpaint antigua suponiendo que ofrece el mismo comportamiento. La guía de edición explica las alternativas disponibles y una secuencia verificada de edición con máscara de V6.1, y la referencia de la API registra los límites de las operaciones implementadas.

Calcula por trabajos, no por miniaturas

Una generación completada es un trabajo según la especificación de precios de esta integración. Seleccionar una imagen existente de una cuadrícula no crea otra generación facturable. Entrar en una etapa de entrada de edición no añade un segundo cargo de generación; la operación modal final es el paso facturable. Una generación de cuatro imágenes no equivale automáticamente a cuatro trabajos cobrados por separado. La prueba de V8.2 Draft del 18 de octubre devolvió 24 imágenes en un trabajo; el número de imágenes devueltas no es una fórmula segura de precios.

Usa la tarifa actual para la versión, operación, velocidad y modo seleccionados. Las operaciones sobre imágenes principales pueden heredar ajustes, por lo que su precio debe proceder de la solicitud efectiva y no de valores predeterminados supuestos. La página del modelo lee las tarifas configuradas en lugar de incrustar una cantidad permanente en dólares en este tutorial.

Para tu prueba de aceptación, registra la solicitud, el ID de tarea, el estado final, el número de salidas y el cargo real de la cuenta. Una compilación correcta o una prueba HTTP simulada no puede demostrar esos hechos de ejecución. SeedRouter no cobra las solicitudes fallidas.

Preguntas frecuentes

¿Puedo usar la misma clave API en el JavaScript del frontend?

Consérvala en tu servidor. Haz que el navegador llame a un endpoint autenticado de la aplicación que envíe la solicitud con la clave del servidor.

¿Un ID de tarea significa que la imagen está lista?

No. Lee la tarea hasta que indique que ha terminado o fallado y procesa el resultado correspondiente. Guarda el ID antes de iniciar ese bucle de consultas.

¿Debe un tiempo de espera agotado iniciar una nueva generación?

No automáticamente. Conserva cualquier ID de tarea conocido e inspecciona la tarea existente. Un tiempo de espera de conexión o del cliente no demuestra que el envío original fuese rechazado.

¿Puedo cambiar la versión en una acción sobre una imagen principal?

Esta integración exige el mismo modelo que la tarea principal. Inicia una generación independiente cuando quieras evaluar otra versión.

Empieza tu integración de la API de Midjourney V8.2 con una solicitud explícita y un ID de tarea guardado. Verifica la salida entregada y el cargo antes de añadir referencias o una cadena de acciones de imagen.

Fuentes

La especificación y las pruebas de ejecución se comprobaron el 18 de octubre de 2026. Las imágenes mostradas son salidas de pruebas de integración de pago, no una evaluación general del modelo.

[1] Referencia de la API de Midjourney de SeedRouter

[2] Ajustes del modelo por versión y precios actuales