Skip to main content
Referencia de API para HappyHorse 1.1 I2V. HappyHorse 1.1 imagen a video anima un primer fotograma fijo y renderiza diálogo, efectos y música sincronizados en una sola pasada. Entrada: Imagen, Texto · Salida: Video

Inicio rápido

Crea una clave en tu espacio de trabajo de Comfy y expórtala como COMFY_API_KEY. Los fragmentos de Python y TypeScript usan los SDK de Comfy (pip install comfy-sdk y npm install @comfyorg/sdk); el fragmento de cURL es la misma llamada mediante HTTP sin procesar. ID del modelo: wan/happyhorse-1.1-i2v Endpoint: POST https://api.comfy.org/v2/models/wan/happyhorse-1.1-i2v
El mismo cuerpo, enviado a POST https://api.comfy.org/v2/models/wan/happyhorse-1.1-i2v/requests. Router responde 201 con un request_id en cuanto se admite la ejecución, y el resultado se recoge cuando está listo, desde este proceso o desde otro. Entrega en cola explica el estado, la cancelación y la recogida.

Esquema

Entrada

object
requerido
Introduce la información básica, como las palabras del prompt, etc.
string
URL de descarga del archivo de audio. Formatos compatibles: mp3 y wav. No se puede usar junto con reference_video_urls.
string
URL de la imagen del primer fotograma o datos codificados en Base64. Requerido para los modelos wan2.5-i2v-preview y wan2.6-i2v. Las variantes i2v de happyhorse-1.x NO toman aquí su primer fotograma: lo toman como un elemento de medios de tipo first_frame (consulta media más abajo), y un cuerpo img_url que funciona en wan2.6-i2v es rechazado por el proveedor en happyhorse-1.0-i2v y happyhorse-1.1-i2v; además, las variantes wan2.7/wan3.0 también toman sus recursos de referencia en media. Formatos de imagen: JPEG, JPG, PNG, BMP, WEBP. Resolución: 360-2000 píxeles. Tamaño del archivo: máx. 10MB.
object[]
Lista de recursos multimedia. Especifica materiales de referencia (imagen, audio, video) para la generación de video. Cada elemento contiene un campo type y un campo url. Este campo lo comparten todos los modelos servidos desde este componente, y qué valores de type acepta un modelo dado (y si lleva su entrada de imagen o video aquí en lugar de en img_url o reference_video_urls) varía según el modelo. Valores de type admitidos, por modelo:
  • wan2.7-i2v: first_frame, last_frame, driving_audio, first_clip. first_frame y last_frame: JPEG/JPG/PNG/BMP/WEBP, 240-8000 píxeles por lado, relación de aspecto entre 1:8 y 8:1, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,… driving_audio (WAV/MP3, de 2 a 30 segundos, como máximo 15MB) y first_clip (MP4/MOV, de 2 a 10 segundos, 240-4096 píxeles por lado, como máximo 100MB): una URL pública HTTP/HTTPS; no se acepta una URL data: en línea.
  • wan2.7-r2v: first_frame (opcional, máx. 1), reference_image, reference_video. Se requiere al menos un reference_image o un reference_video, y la suma de imágenes de referencia y videos de referencia es como máximo 5. first_frame y reference_image: JPEG/JPG/PNG/BMP/WEBP (sin canal alfa), 240-8000 píxeles por lado, relación de aspecto entre 1:8 y 8:1, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,… reference_video: una URL pública HTTP/HTTPS; no se acepta una URL data: en línea.
  • wan2.7-videoedit: video (exactamente 1, el clip que se edita: MP4/MOV, de 2 a 10 segundos, 240-4096 píxeles por lado, como máximo 100MB, una URL pública HTTP/HTTPS; no se acepta una URL data: en línea) más un reference_image opcional, de 0 a 4 (JPEG/JPG/PNG/BMP/WEBP, 240-8000 píxeles por lado, relación de aspecto entre 1:8 y 8:1, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,…).
  • wan3.0-video, wan3.0-video-prime: first_frame (máx. 1), last_frame (máx. 1), reference_image (máx. 10), reference_video (máx. 5 clips, duración total <= 15s), reference_audio (máx. 5 clips, duración total <= 15s), file (máx. 1, no se puede usar con link), link (máx. 1, no se puede usar con file). Los tipos reference_*/file/link y los tipos first_frame/last_frame son mutuamente excluyentes dentro de una misma solicitud. El orden del array define el orden de referencia de los recursos en el prompt (Imagen 1, Video 1, Audio 1, …). first_frame, last_frame y reference_image: JPEG/JPG/PNG/BMP/WEBP, 240-8000 píxeles por lado, relación de aspecto como máximo 8:1, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,… reference_video, reference_audio, file y link: una URL pública HTTP/HTTPS; no se acepta una URL data: en línea.
  • happyhorse-1.0-i2v, happyhorse-1.1-i2v: solo first_frame, exactamente 1. Estas variantes toman su primer fotograma AQUÍ y no en img_url. Al menos 300x300 píxeles, relación de aspecto entre 1:2.5 y 2.5:1, JPEG/JPG/PNG/WEBP, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,…
  • happyhorse-1.0-r2v, happyhorse-1.1-r2v: solo reference_image, de 1 a 9. Esta es la única entrada de referencia del modelo. El lado más corto debe medir al menos 400 píxeles, JPEG/JPG/PNG/WEBP, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,… reference_video no es un tipo de entrada para esta operación.
  • happyhorse-1.0-video-edit: video (exactamente 1, el clip que se edita: MP4/MOV, de 3 a 60 segundos, lado más largo como máximo 4096 píxeles, lado más corto al menos 360 píxeles, relación de aspecto entre 1:2.5 y 2.5:1, como máximo 100MB, una URL pública HTTP/HTTPS; no se acepta una URL data: en línea) más un reference_image opcional, de 0 a 5 (JPEG/JPG/PNG/BMP/WEBP, al menos 300x300 píxeles, relación de aspecto entre 1:2.5 y 2.5:1, como máximo 20MB, una URL pública o una URL data:{MIME_type};base64,…).
  • happyhorse-1.0-t2v, happyhorse-1.1-t2v, wan2.7-t2v, wan2.6-t2v, wan2.5-t2v-preview: operaciones de texto a video. Sus referencias del socio no documentan ninguna entrada de medios, así que deja este campo sin definir.
  • wan2.5-i2v-preview, wan2.6-i2v, wan2.6-r2v: este componente no enumera ningún vocabulario de medios para estas variantes. wan2.5-i2v-preview y wan2.6-i2v toman su primer fotograma en img_url; wan2.6-r2v toma sus clips de referencia en reference_video_urls. Los recuentos por modelo anteriores son restricciones del socio, no de este esquema: no se declara minItems/maxItems en media, porque los tipos admisibles y sus límites difieren según el modelo. Que el esquema acepte un valor no implica que el proveedor lo acepte; y, en la otra dirección, las cifras de “como máximo 20MB” por recurso anteriores (el techo de las entradas de imagen, las únicas entradas que pueden enviarse en línea) son el techo del socio sobre el recurso que acaba recibiendo, y se aplican tal como están escritas cuando el recurso es una URL pública, porque esos bytes nunca pasan por Comfy. Una URL data:{MIME_type};base64,… en línea sí pasa por Comfy y también se topa con un techo de transporte: el cuerpo de un POST de Comfy Router está limitado a 100 MiB en total y se responde 413 por encima de eso, y base64 infla una carga útil en aproximadamente 4/3, así que un solo recurso en línea de más de unos 75 MB se rechaza antes de llegar a cualquiera de las reglas del socio que aparecen aquí. Con ese tamaño, un solo recurso en el propio techo de 20MB del socio cabe en línea sin problema, así que para un solo recurso lo que obliga es la regla del socio; el techo de transporte obliga cuando son varios, ya que el límite de 100 MiB del Router acota TODA la solicitud y no cada elemento. Envía como URL pública cualquier cosa que se acerque a estos techos.
string
requerido
Tipo de recurso multimediaValores posibles: first_frame, last_frame, driving_audio, first_clip, reference_image, reference_video, reference_audio, video, file, link
string
requerido
URL del archivo multimedia: una URL HTTP/HTTPS pública o, para exactamente las entradas de IMAGEN que la descripción de media arriba indica para cada modelo (first_frame y last_frame en wan2.7-i2v; first_frame y reference_image en wan2.7-r2v; reference_image en wan2.7-videoedit; first_frame, last_frame y reference_image en wan3.0-video y wan3.0-video-prime; first_frame en happyhorse-1.0-i2v y happyhorse-1.1-i2v; reference_image en happyhorse-1.0-r2v y happyhorse-1.1-r2v; y reference_image en happyhorse-1.0-video-edit), una URL data:{MIME_type};base64,... en línea. Ninguna entrada de video, audio, archivo o enlace de estos modelos acepta una URL data: en línea. Una URL temporal oss://dashscope-instant del propio servicio de carga del socio, o (en wan2.7-videoedit) un asset_id de Asset Center, solo se resuelve contra la cuenta de Alibaba Cloud que la subió; Comfy hace la llamada al modelo con su propia clave y no expone ninguna ruta de carga, así que una URL oss:// o un asset_id propios de quien llama no son una entrada admitida. Este campo no valida el esquema de la URL, por lo que ese valor se reenvía al socio tal cual en lugar de rechazarse aquí. Consulta la descripción de media para ver los límites de tamaño y píxeles por modelo y el tope de 100 MiB del cuerpo de la solicitud del Router que limita en conjunto una carga en línea.
string
Las palabras del prompt inverso describen el contenido que no quieres ver en la trama del video
string
Palabras del prompt de texto. Admite chino e inglés, con una longitud no superior a 800 caracteres (hasta 20 000 caracteres para wan3.0-video; el contenido que supera el límite se trunca). Para wan2.6-r2v con varios videos de referencia, usa ‘character1’, ‘character2’, etc. para referirte a los sujetos en el orden de los videos de referencia. Ejemplo: “Character1 sings on the roadside, Character2 dances beside it” Para el modo de referencia de wan3.0-video, usa ‘Image 1’, ‘Video 1’, ‘Audio 1’, etc. para referirte a los recursos multimedia en el orden correspondiente dentro del arreglo media.
string[]
URLs de videos de referencia solo para el modelo wan2.6-r2v. Arreglo de 1 a 3 URLs de video. Restricciones de entrada:
  • Formato: mp4, mov
  • Cantidad: 1-3 videos
  • Duración de cada video: 2-30 segundos
  • Tamaño de cada archivo: máx. 30MB
  • No se puede usar junto con audio_url Duración de referencia: un solo video máx. 5s, dos videos máx. 2.5s cada uno, tres videos proporcionalmente menos. Facturación: según la duración de referencia real utilizada.
string
Nombre de la plantilla de efecto de video. Opcional. Actualmente admitidos: squish, flying, carousel. Cuando se usa, se ignora el parámetro prompt.
string
El ID del modelo que se va a llamar. NO está restringido en este componente: Comfy Router lo rellena a partir del segmento de ruta {model} de POST /v2/models/wan/{model}, así que quien llama a través del Router lo omite. Una llamada directa a la v1 de POST /proxy/wan/api/v1/services/aigc/video-generation/video-synthesis DEBE proporcionarlo, y la enumeración de grafías aceptadas está en el componente propio de esa operación, WanVideoGenerationRequest.
object
Parámetros de procesamiento de video
boolean
predeterminado:"true"
Indica si se agrega audio al video. Solo es compatible con wan3.0-video y wan3.0-video-prime; el proveedor no documenta esa opción para los demás modelos wan.
string
predeterminado:"\"auto\""
Ajuste de audio del video para el modelo wan2.7-videoedit.
  • auto (predeterminado): el modelo decide de forma inteligente según el contenido del prompt
  • origin: conserva de forma forzada el audio original del video de entrada Valores posibles: auto, origin
integer
predeterminado:"5"
La duración del video generado, en segundos:
  • modelos wan2.5: 5 o 10 segundos
  • wan2.6-t2v, wan2.6-i2v: 5, 10 o 15 segundos
  • wan2.6-r2v: solo 5 o 10 segundos (sin soporte para 15s)
  • wan2.7-i2v, wan2.7-t2v: entero en [2, 15]
  • wan2.7-r2v, wan2.7-videoedit: entero en [2, 10]
  • wan3.0-video: entero en [2, 30] sin entrada de video; con entrada de video, la duración total del video de entrada + la duración del video de salida no debe superar los 30 segundos; -1 activa el modo de duración inteligente, en el que el modelo elige una duración adecuada Este proxy devuelve 400 cuando la duración queda fuera de [-1, 30]. Rango: -1 a 30
boolean
predeterminado:"true"
Indica si está habilitada la reescritura inteligente del prompt. El valor predeterminado es true
string
Relación de aspecto del video generado. Solo para los modelos wan2.7 y wan3.0. En los modelos wan2.7, si no se proporciona, se usa un valor predeterminado según el nivel de resolución. En wan3.0-video, adaptive (el valor predeterminado) recomienda automáticamente una relación de aspecto adecuada según las proporciones y la intención de los recursos de entrada.Valores posibles: adaptive, 16:9, 9:16, 1:1, 4:3, 3:4
string
Nivel de resolución. Los valores admitidos varían según el modelo:
  • wan2.5-i2v-preview: 480P, 720P, 1080P
  • modelos wan2.6 (t2v, i2v, r2v): solo 720P, 1080P (sin soporte para 480P)
  • modelos wan2.7 (i2v, t2v, r2v, videoedit): 720P, 1080P (predeterminado 1080P)
  • wan3.0-video, wan3.0-video-prime: 480P, 720P y 1080P (1080P predeterminado del proveedor)
  • happyhorse-1.0-* (t2v, i2v, r2v, video-edit): 720P y 1080P
  • happyhorse-1.1-* (t2v, i2v, r2v): 480P, 720P y 1080P
Este proxy rechaza las solicitudes de generación de video que no proporcionen ni resolución ni tamaño, porque el nivel de resolución selecciona la tarifa de facturación. Convierte la resolución a mayúsculas antes de comprobarla y reenvía el valor en mayúsculas; devuelve 400 para un valor fuera de esta enumeración y devuelve 400 para 480P (ya sea enviado como resolución o como un tamaño de 480P) en los modelos wan2.6, wan2.7 y happyhorse-1.0 listados arriba como sin 480P.Valores posibles: 480P, 720P, 1080P
integer
Semilla de número aleatorio, usada para controlar la aleatoriedad del contenido generado por el modeloRango: 0 a 2147483647
string
predeterminado:"\"single\""
Control inteligente de múltiples lentes. Solo está activo cuando prompt_extend está habilitado. Para los modelos wan2.6 y wan2.7-r2v.
  • single: Video de una sola toma (predeterminado)
  • multi: Video de varias tomas Valores posibles: multi, single
string
Resolución del video en formato anchoalto. Las resoluciones admitidas varían según el modelo: Para wan2.5 T2V: tamaños 480P (480832, 832480, 624624), 720P y 1080P Para wan2.6 T2V/R2V (sin 480P): 720P: 1280720, 7201280, 960960, 1088832, 8321088 1080P: 19201080, 10801920, 14401440, 16321248, 12481632 Cuando se envían tanto el tamaño como la resolución, el tamaño selecciona el nivel facturado y la resolución aún debe ser un valor que este proxy acepte para el modelo. Un tamaño de 480P devuelve 400 en todos los modelos que la descripción de la resolución enumera como sin 480P.
boolean
predeterminado:"false"
Indica si se debe agregar un logotipo de marca de agua; la marca de agua se ubica en la esquina inferior derecha
Generado a partir del esquema que Router expone en GET /v2/models/wan/happyhorse-1.1-i2v/openapi.json, el mismo documento con el que valida una llamada antes de que la solicitud llegue al proveedor.

Salida

object
requerido
string
Prompt real después de la reescritura inteligente (para tareas de video)
string
URL del audio para tareas I2V con generación de audio
string
El código de error de la solicitud fallida (no se devuelve si la solicitud se completa correctamente)
string
Hora de finalización de la tarea
string
Información detallada sobre la solicitud fallida (no se devuelve si la solicitud se completa correctamente)
string
Prompt original de entrada (para tareas de video)
object[]
Lista de resultados de la tarea para tareas de generación de imágenes
string
Prompt real después de la reescritura inteligente (si está habilitada)
string
Código de error de la imagen (se devuelve cuando algunas tareas fallan)
string
Información del error de la imagen (se devuelve cuando algunas tareas fallan)
string
Prompt original de entrada
string
Dirección URL de la imagen generada
string
Hora de ejecución de la tarea
string
Hora de envío de la tarea
string
requerido
ID de la tarea
object
Estadísticas de resultados de la tarea para tareas de generación de imágenes
integer
Número de tareas fallidas
integer
Número de tareas completadas correctamente
integer
Número total de tareas
string
requerido
Estado de la tareaValores posibles: PENDING, RUNNING, SUCCEEDED, FAILED, CANCELED, UNKNOWN
string
URL del video para las tareas de generación de video completadas. El enlace tiene una validez de 24 horas
string
requerido
Identificador único de la solicitud
object
Estadísticas de la información de salida. Solo se cuentan los resultados exitosos
integer
Nivel de resolución del video (tareas I2V y wan3.0-video)
number
Duración del video generado en segundos (tareas I2V y wan3.0-video)
integer
Frecuencia de cuadros del video generado (tareas wan3.0-video)
integer
Número de imágenes generadas (tareas T2I e I2I)
number
Duración del video de entrada en segundos, 0.0 cuando no hay video de entrada (tareas wan3.0-video)
number
Duración del video de salida en segundos (tareas wan3.0-video)
string
Relación de aspecto del video generado, por ejemplo 16:9 (tareas wan3.0-video)
string
Resolución de la imagen (tareas T2I e I2I)
integer
Número de videos generados (tareas T2V)
number
Duración del video generado en segundos (tareas T2V)
string
Relación de resolución del video (tareas T2V)
string
Código de error de una solicitud fallida, informado en la RAÍZ del envelope y no dentro de output (no se devuelve si la solicitud se completó correctamente).
string
Información detallada sobre una solicitud fallida, informada en la RAÍZ del envelope y no dentro de output (no se devuelve si la solicitud se completó correctamente). Léela antes de recurrir a output.message.

Ejemplos

Entrada

Salida

La URL del video es válida durante 24 horas. Descarga el video cuanto antes si necesitas conservarlo.

Antes de lanzar

Los SDK crean una Idempotency-Key y la reutilizan para los reintentos automáticos. Para los reintentos manuales, reutiliza la clave original. Router puede mantener la conexión abierta hasta 10 minutos. Cuando una solicitud falla, Router envía un encabezado de respuesta X-Comfy-Error-Type que explica el motivo. Un 422 significa que Router rechazó la entrada antes de llamar al proveedor, y un 413 significa que el cuerpo de la solicitud era más grande de lo que Router acepta. Descarga los recursos generados de inmediato, porque las URL de resultados pueden caducar. Cualquier límite de tamaño mencionado en la descripción de un campo más arriba es el límite propio del proveedor para ese campo, citado de la especificación del proveedor. Router aplica un tope aparte al cuerpo completo de la solicitud, con el que cuentan los medios codificados en base64: consulta tamaño del cuerpo de la solicitud. Esta página documenta un modelo socio al que se llama a través de Comfy Router. El mismo paquete comfy-sdk / @comfyorg/sdk también incluye un segundo cliente, para ejecutar todo un gráfico de flujo de trabajo de ComfyUI en Comfy Cloud: Comfy(api_key=...) / new Comfy({ apiKey }), con client.workflows, client.assets y client.jobs. Consulta SDK de Comfy.

Encabezados

Autenticación, idempotencia, IDs de solicitud, agrupaciones de errores, ritmo de reintentos y límites de gasto.

Uso de la API de Router

Descubrimiento de modelos, errores de validación, reintentos y facturación.

Limitaciones

Lo que Router no hace hoy y qué usar en su lugar.