> For the documentation index, fetch https://sync.so/docs/llms.txt. Append .md to a page URL for Markdown. Documentation-search MCP: https://sync.so/docs/_mcp/server.

# Modelos React

> react-1: modelo de AI para lip sync expresivo con expresiones faciales y movimientos de cabeza. Controla emociones y movimientos de talking head mediante API.

react-1 introduce el primer control primitivo de performance para edición de video. Como modelo de AI talking head expresivo, react-1 puede sincronizar los movimientos de labios, las expresiones faciales y los movimientos de cabeza para que coincidan con un audio de destino, mientras sigue un prompt emocional. A continuación describimos un par de workflows que solo son posibles con react-1.

## Funciones clave

* **Modos del modelo**: puedes elegir qué región facial editar: solo la boca, las expresiones faciales o incluso los movimientos de cabeza
* **Expressive lipsync**: react-1 opera sobre una región facial mucho más grande, lo que te da los movimientos de boca más expresivos que coinciden con el habla
* **Expresiones faciales**: las expresiones faciales se reescriben usando un prompt de emoción, y cada microexpresión queda perfectamente sincronizada con el habla.
* **Movimientos de cabeza**: react-1 también puede sincronizar tus movimientos de cabeza para que coincidan con el ritmo, la prosodia y la entonación del diálogo nuevo.

## Modos del modelo

El modelo se puede controlar con tres modos de operación: **lips**, **face** y **head**.

Esto te permite especificar la región espacial que quieres editar. Puedes optar solo por lipsync, o también elegir expresiones faciales o movimientos de cabeza. El valor predeterminado es `face`.

| Modo     | Lipsync | Expresiones faciales | Movimientos de cabeza |
| :------- | :-----: | :------------------: | :-------------------: |
| **lips** |    ✅    |           ❌          |           ❌           |
| **face** |    ✅    |           ✅          |           ❌           |
| **head** |    ✅    |           ✅          |           ✅           |

## Prompts de emoción

Puedes guiar las expresiones faciales especificando prompts de emoción. También puedes no especificar ninguno, en cuyo caso el modelo seguirá el contexto emocional del video de input. Consulta el uso a continuación para ver más detalles.

## Uso

*react-1* está disponible mediante el mismo endpoint de API [`/v2/generate`](/api-reference/api/generate-api/create) que se usa para lipsync estándar, con parámetros adicionales para controlar los efectos emocionales y de movimiento.

#### Usar react-1 mediante API

Para usar react-1 con la API, configura el parámetro `model` como `react-1` y define las opciones adicionales:

```python
from sync import Sync
from sync.common import Audio, Video, GenerationOptions

sync = Sync()

response = sync.generations.create(
    input=[
        Video(url="https://assets.sync.so/docs/example-video.mp4"),
        Audio(url="https://assets.sync.so/docs/example-audio.wav")
    ],
    model="react-1",
    options=GenerationOptions(
        prompt="happy",
        model_mode="face"
    )
)
```

```typescript
import { SyncClient } from "@sync.so/sdk";

const sync = new SyncClient();

const response = await sync.generations.create({
    input: [
        {
            type: "video",
            url: "https://assets.sync.so/docs/example-video.mp4"
        },
        {
            type: "audio",
            url: "https://assets.sync.so/docs/example-audio.wav"
        }
    ],
    model: "react-1",
    options: {
        prompt: "happy",
        modelMode: "face"
    }
});
```

```bash
curl -X POST https://api.sync.so/v2/generate \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "model": "react-1",
    "input": [
        {
            "type": "video",
            "url": "https://assets.sync.so/docs/example-video.mp4"
        },
        {
            "type": "audio",
            "url": "https://assets.sync.so/docs/example-audio.wav"
        }
    ],
    "options": {
        "prompt": "happy",
        "model_mode": "face"
    }
}'
```

### Parámetros de API

#### `model`

Configúralo como `react-1` para usar el modelo react-1.

#### `options.model_mode`

Controla la región de edición y el alcance de movimiento para el modelo. Opciones disponibles:

* **`lips`**: solo lipsync con react-1 (cambios faciales mínimos)
* **`face`** (predeterminado): lipsync + expresiones faciales sin movimientos de cabeza
* **`head`**: lipsync + expresiones faciales + movimientos naturales de talking head

> **Note**
>
> El parámetro `model_mode` solo funciona con el modelo `react-1`. Para otros modelos, este parámetro se ignora.

#### `options.prompt`

Prompt de emoción para la generación. Actualmente solo admite emociones de una palabra.

**Opciones disponibles:**

* `happy`
* `angry`
* `sad`
* `neutral`
* `disgusted`
* `surprised`

> **Note**
>
> El parámetro `prompt` solo funciona con el modelo `react-1`. Para otros modelos, este parámetro se ignora.

#### Usar react-1 desde Studio

react-1 está disponible en [Sync Labs Studio](https://sync.so/login) con una interfaz intuitiva para controlar expresiones emocionales y movimientos de cabeza.

#### Ir a Studio

Ve a [Studio](https://sync.so/login) y crea un proyecto nuevo o abre uno existente.

#### Selecciona tus assets

Sube o selecciona tus inputs de video y audio. Recuerda que react-1 admite inputs de hasta 15 segundos de duración.

#### Elige el modelo react-1

Selecciona **react-1** en el menú desplegable de modelo dentro de la configuración de generación.

#### Configura el modo del modelo

Elige el modo del modelo que quieras:

* **Lips**: solo para lipsync
* **Face**: para lipsync con expresiones faciales (predeterminado)
* **Head**: para lipsync con expresiones faciales y movimientos naturales de cabeza

#### Cambia la expresión

Selecciona una expresión en la rueda de emociones haciendo clic en

<path d="M6.2381 8.76945L6.25119 9.80025M11.4762 8.76945L11.4893 9.80025M10.6906 14.6243C9.64298 15.6139 8.07156 15.6139 7.02394 14.6243M19.3831 11.7072H19.3922M13.5714 18.6847C14.7849 21.3558 16.4995 22.3853 17.5747 22.3853C19.3831 22.3853 23 19.4731 23 10.7365C23 8.79501 21.1916 7.82427 17.5747 7.82427C17.4207 7.82427 17.27 7.82603 17.1226 7.82955M16.2184 16.6579C16.9418 15.8814 18.0268 15.8814 18.7502 16.6579M16.7143 6.50168C16.7143 17.6344 11.4762 21.3452 8.85714 21.3452C6.2381 21.3452 1 17.6344 1 6.50168C1 -1.12626 5.71429 4.18399 8.85714 4.18399C12 4.18399 16.7143 -1.12626 16.7143 6.50168Z" stroke-linecap="round" stroke-linejoin="round" />

en los controles del reproductor de video.

#### Genera

Haz clic en generate para crear tu lipsync con expresiones emocionales y movimientos de cabeza opcionales.

## Buenas prácticas

#### Elige el modo correcto

* Usa el modo **lips** cuando solo necesites lipsync sin cambios emocionales
* Usa el modo **face** (predeterminado) para la mayoría de los casos de uso donde quieres expresiones naturales
* Usa el modo **head** cuando quieras los movimientos de talking head más dinámicos y naturales

#### Selecciona emociones adecuadas

Elige prompts de emoción que coincidan con el tono y el contexto de tu audio. El modelo generará expresiones faciales alineadas con la emoción seleccionada durante toda la generación.

#### Duración del input

Mantén tus inputs por debajo de 15 segundos. Para contenido más largo, divide tu video en segmentos y procésalos por separado, o usa los modelos de lipsync estándar para duraciones más largas.

## Limitaciones actuales

Las siguientes funciones todavía no son compatibles con react-1:

* **Duración del input**: react-1 admite inputs de hasta 15 segundos de duración. Para contenido más largo, considera dividir tu video en segmentos.
* **Segmentos**: la generación multisegmento con diferentes inputs de audio no está disponible. Procesa cada segmento por separado si es necesario.
* **selección de hablante**: la opción `active_speaker_detection` no es compatible, incluida la detección automática (`auto_detect`) y la selección manual mediante bounding box o número de frame. Asegúrate de que tu video de input contenga un solo speaker claramente visible.
* **Occlusion detection**: la opción `occlusion_detection_enabled` para manejar rostros parcialmente ocultos no está disponible para react-1.

## Cuándo usar react-1

react-1 es ideal para:

* Contenido corto (≤ 15 segundos) que requiere expresiones emocionales
* Videos donde los movimientos naturales de cabeza mejoran el resultado
* Contenido que se beneficia de expresiones faciales conscientes de la emoción
* Proyectos donde quieres resultados de lipsync más dinámicos y expresivos

Para contenido más largo (> 15 segundos) o cuando solo necesites lipsync estándar, considera usar [lipsync-2](/models/lipsync) o [lipsync-2-pro](/models/lipsync) en su lugar.

## Precios

react-1 está disponible en planes de suscripción de pago (Creator y superiores). El precio se basa en uso a 25 fps y difiere de los modelos de lipsync. Cada modelo de Sync Labs tiene su propia tarifa por segundo.

| Plan                     | Tarifa por segundo (a 25 fps) |
| :----------------------- | :---------------------------- |
| Hobbyist / Creator       | \$0.167/sec                   |
| Growth (5% de descuento) | \$0.158/sec                   |
| Scale (20% de descuento) | \$0.133/sec                   |

react-1 es el modelo más expresivo y tiene un precio más alto que los modelos de lipsync. Consulta la [página de precios](https://sync.so/pricing) para ver una comparación completa.

> **Note**
>
> Los precios de los modelos de Sync Labs varían por modelo. react-1 (\$0.133-\$0.167/sec) cuesta bastante más que lipsync-2 (\$0.04-\$0.05/sec) o lipsync-2-pro (\$0.067-\$0.083/sec). No asumas que el precio es el mismo entre modelos.

## FAQs

#### ¿Cuánto cuesta react-1?

react-1 cuesta \$0.133-\$0.167 por segundo de video de output a 25 fps, según tu plan de suscripción. Los planes Hobbyist y Creator pagan \$0.167/sec, Growth paga \$0.158/sec (5% de descuento) y Scale paga \$0.133/sec (20% de descuento). Requiere una suscripción de pago (plan Creator o superior).

#### ¿El precio de react-1 es igual al de los modelos de lipsync?

No. react-1 tiene un precio bastante más alto que los modelos de lipsync. A la tarifa base, react-1 (\$0.167/sec) cuesta más de 3x que lipsync-2 (\$0.05/sec) y cerca de 2x que lipsync-2-pro (\$0.083/sec). Cada modelo de Sync Labs tiene precios por segundo independientes.

#### ¿Puedo usar react-1 en la prueba gratuita?

No. react-1 requiere una suscripción de pago (plan Creator o superior). La prueba gratuita solo incluye modelos de la familia lipsync (lipsync-1.9.0-beta, lipsync-2, lipsync-2-pro).

## Referencia del modelo react-1

### ID del modelo

`react-1`

### Requisitos de input

* Se requiere input de video y audio
* Duración máxima del input: **15 segundos**
* Se requiere un solo speaker claramente visible
* Usa el mismo endpoint `/v2/generate` que los modelos de lipsync

### Modos del modelo

| Mode             | Lipsync | Facial Expressions | Head Movements |
| ---------------- | ------- | ------------------ | -------------- |
| `lips`           | Yes     | No                 | No             |
| `face` (default) | Yes     | Yes                | No             |
| `head`           | Yes     | Yes                | Yes            |

### Valores de emoción compatibles

* `happy`
* `angry`
* `sad`
* `neutral`
* `disgusted`
* `surprised`

Si no se proporciona un prompt de emoción, el modelo conserva el contexto emocional del video de input.

### Parámetros de API

* `model`: `"react-1"`
* `options.model_mode`: `"lips"` | `"face"` | `"head"` (predeterminado: `"face"`)
* `options.prompt`: uno de los valores de emoción listados arriba (opcional)

### Precios

* react-1: $0.133 -- $0.167/sec a 25 fps (varía según el nivel del plan)
* Hobbyist/Creator: $0.167/sec | Growth: $0.158/sec | Scale: \$0.133/sec
* Requiere suscripción de pago (plan Creator o superior)
* NO está disponible en la prueba gratuita
* react-1 es MÁS CARO que los modelos de lipsync:
  * react-1 ($0.167/sec) vs lipsync-2 ($0.05/sec) = 3.3x más caro
  * react-1 ($0.167/sec) vs lipsync-2-pro ($0.083/sec) = 2x más caro
* NO asumas que react-1 cuesta lo mismo que lipsync-2 o cualquier otro modelo. Cada modelo tiene precios independientes

### Limitaciones actuales

* Duración máxima de input de 15 segundos
* Sin generación multisegmento
* Sin `active_speaker_detection` (`auto_detect` o bounding box manual)
* Sin `occlusion_detection_enabled`