synclabs/sync-3, servida por Comfy Router desde Synclabs.
Entrada: Video, Imagen, Audio, Texto · Salida: Video
Inicio rápido
Crea una clave en tu espacio de trabajo de Comfy y expórtala comoCOMFY_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 por HTTP sin procesar.
ID del modelo: synclabs/sync-3
Endpoint: POST https://api.comfy.org/v2/models/synclabs/sync-3
- Esperar el resultado
- Encolar y recoger más tarde
El mismo cuerpo, enviado a
POST https://api.comfy.org/v2/models/synclabs/sync-3/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 recorre el estado, la cancelación y la recogida.Esquema
Entrada
object
Parámetros de doblaje adjuntos a una solicitud de generación de Sync Labs
integer
Número de hablantes en el video de origen; 0 activa la detección automática
string
requerido
Proveedor que se usará para el doblaje (por ejemplo, elevenlabs)
string
Código del idioma de origen; por defecto es auto
string
requerido
Código del idioma objetivo para el doblaje
object[]
requerido
Elementos de entrada; exactamente una entrada visual (video o imagen) y una entrada de audio o de texto
string
ID de un recurso de la biblioteca multimedia de Sync Labs
object
Configuración del proveedor de texto a voz para una entrada de texto de Sync Labs
string
requerido
Nombre del proveedor TTS (por ejemplo, elevenlabs)
string
requerido
Guion que se usará para la generación
number
Qué tan fielmente debe ceñirse la IA a la voz originalFormato:
doublenumber
Estabilidad de la voz; los valores más bajos introducen una gama emocional más ampliaFormato:
doublestring
requerido
ID de voz de Sync (voz clonada del Studio) o ID de voz de ElevenLabs
string
Identificador de referencia usado para vincular esta entrada a las definiciones de segmentos
integer[][]
Obsoleto: usa el arreglo segments de nivel superior en su lugar
number[][]
Obsoleto: usa el arreglo segments de nivel superior en su lugar
string
requerido
Tipo de entrada (video, imagen, audio o texto)
string
URL del contenido multimedia que se usará para la generación
string
Nombre del modelo que se usará para la generación; solo se admite sync-3. En la ruta de Comfy Router
POST /v2/models/synclabs/{model}, este campo se toma de la ruta y se puede omitir.object
Opciones adicionales disponibles para una generación de Sync Labs
object
Configuración de la detección del hablante activo
boolean
Si se debe detectar automáticamente al hablante activo y aplicarle la generación
integer[][]
Arreglo por cuadro de cuadros delimitadores [x1, y1, x2, y2] para el rostro detectado
string
URL de un archivo JSON que contiene los cuadros delimitadores
integer[]
Coordenadas de píxel [x, y] en el cuadro del video de origen identificado por frame_number
integer
Índice del cuadro que corresponde a las coordenadas proporcionadas para la selección manual del hablante
boolean
Si se debe usar ASD v3
string
Región de edición para el modelo (labios, rostro, cabeza); solo funciona con react-1
boolean
Si se debe detectar la oclusión durante la generación
string
Prompt de emoción; solo funciona con react-1
string
Cómo manejar las discrepancias de duración entre el video y el audio (bounce, loop, cut_off, silence, remap)
number
Qué tan expresivo puede ser el lipsync, de 0 a 1Formato:
doublestring
Nombre de archivo base para la salida generada, sin extensión
string
De manera opcional, vincula esta generación a un proyecto de Sync Labs
object[]
Definiciones de segmentos que aplican distintas entradas de audio a distintos segmentos de video
object
requerido
Configuración de la entrada de audio para un segmento específico
number
Hora de finalización opcional, en segundos, para recortar el audio de referenciaFormato:
doublestring
requerido
ID de referencia de la entrada de audio o de texto a voz que se usará para este segmento
number
Hora de inicio opcional, en segundos, para recortar el audio de referenciaFormato:
doublenumber
requerido
Hora de finalización del segmento, en segundosFormato:
doubleobject
Anular las opciones de generación para un segmento específico
object
Configuración de la detección del hablante activo
boolean
Si se debe detectar y aplicar automáticamente la generación al hablante activo
integer[][]
Arreglo por fotograma de cuadros delimitadores [x1, y1, x2, y2] del rostro detectado
string
URL de un archivo JSON que contiene los cuadros delimitadores
integer[]
Coordenadas en píxeles [x, y] dentro del fotograma del video de origen identificado por frame_number
integer
Índice del fotograma que corresponde a las coordenadas proporcionadas para la selección manual del hablante
boolean
Si se debe usar ASD v3
boolean
Anula la detección de oclusión para este segmento
string
Anula el modo de sincronización para este segmento
number
Anula la temperatura (0-1) para este segmentoFormato:
doublenumber
requerido
Hora de inicio del segmento en segundosFormato:
doublestring
URL del webhook para las actualizaciones del estado de generación
GET /v2/models/synclabs/sync-3/openapi.json, el mismo documento con el que valida una llamada antes de que la solicitud llegue al proveedor.
Salida
string
La fecha y hora en que se creó la generación
string
El mensaje de error si la generación falló
string
Código de error estable y legible por máquina si la generación falló
string
Identificador único de la generación
object[]
Los elementos de entrada usados para la generación
string
ID de un recurso de la biblioteca de medios de Sync Labs
object
Configuración del proveedor de texto a voz para una entrada de texto de Sync Labs
string
requerido
Nombre del proveedor de TTS (p. ej., elevenlabs)
string
requerido
Guion que se usará para la generación
number
Qué tan fielmente debe ceñirse la IA a la voz originalFormato:
doublenumber
Estabilidad de la voz; los valores más bajos introducen un rango emocional más amplioFormato:
doublestring
requerido
ID de voz de Sync (voz clonada del Studio) o ID de voz de ElevenLabs
string
Identificador de referencia que se usa para vincular esta entrada con las definiciones de segmento
integer[][]
Obsoleto: usa el array segments de nivel superior en su lugar
number[][]
Obsoleto: usa el array segments de nivel superior en su lugar
string
requerido
Tipo de entrada (video, imagen, audio o texto)
string
URL del medio que se usará para la generación
string
El nombre del modelo usado para la generación
object
Opciones adicionales disponibles para una generación de Sync Labs
object
Configuración de detección del hablante activo
boolean
Indica si se debe detectar automáticamente al hablante activo y aplicarle la generación
integer[][]
Array por fotograma de cuadros delimitadores [x1, y1, x2, y2] para la cara detectada
string
URL de un archivo JSON que contiene cuadros delimitadores
integer[]
Coordenadas de píxel [x, y] en el fotograma de video de origen identificado por frame_number
integer
Índice de fotograma que corresponde a las coordenadas proporcionadas para la selección manual del hablante
boolean
Indica si se debe usar ASD v3
string
Región de edición para el modelo (labios, cara, cabeza); solo funciona con react-1
boolean
Indica si se debe detectar oclusión durante la generación
string
Prompt de emoción; solo funciona con react-1
string
Cómo manejar los desajustes de duración entre video y audio (bounce, loop, cut_off, silence, remap)
number
Qué tan expresiva puede ser la sincronización labial, de 0 a 1Formato:
doublenumber
La duración del medio de salida en segundosFormato:
doublestring
El nombre de archivo saneado aplicado al medio de salida
string
La URL del medio de salida
string
El ID del proyecto al que está asociada esta generación
string
La URL del medio de salida del segmento
object[]
Los segmentos de la generación
object
requerido
Configuración de entrada de audio para un segmento específico
number
Tiempo de finalización opcional en segundos para recortar el audio de referenciaFormato:
doublestring
requerido
ID de referencia de la entrada de audio/texto a voz que se usará para este segmento
number
Tiempo de inicio opcional en segundos para recortar el audio de referenciaFormato:
doublenumber
requerido
Tiempo de finalización del segmento en segundosFormato:
doubleobject
Sobrescribir las opciones de generación para un segmento específico
object
Configuración de detección del hablante activo
boolean
Indica si se debe detectar y aplicar automáticamente la generación al hablante activo
integer[][]
Arreglo por fotograma de cuadros delimitadores [x1, y1, x2, y2] para el rostro detectado
string
URL de un archivo JSON que contiene los cuadros delimitadores
integer[]
Coordenadas en píxeles [x, y] en el fotograma del video de origen identificado por frame_number
integer
Índice de fotograma que corresponde a las coordenadas proporcionadas para la selección manual del hablante
boolean
Indica si se debe usar ASD v3
boolean
Sobrescribe la detección de oclusión para este segmento
string
Sobrescribe el modo de sincronización para este segmento
number
Sobrescribe la temperatura (0-1) para este segmentoFormato:
doublenumber
requerido
Tiempo de inicio del segmento en segundosFormato:
doublestring
El estado de la generación (PENDING, PROCESSING, COMPLETED, FAILED, REJECTED)
string
La URL del audio sintetizado a partir de una entrada de texto (TTS)
string
La URL del endpoint del webhook
Ejemplos
Entrada
Salida
Antes de lanzar
Los SDK crean unaIdempotency-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.