> 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 IA para lip sync expressiva com expressões faciais e movimentos de cabeça. Controle emoções e movimentos de cabeça falante via API.

react-1 introduz o primeiro primitivo de controle de desempenho para edição de vídeo. Como um modelo de cabeça falante de IA expressivo, react-1 pode sincronizar os movimentos dos lábios, expressões faciais e movimentos de cabeça para corresponder a um áudio alvo, enquanto segue um comando emocional. Descrevemos abaixo alguns fluxos de trabalho que são possíveis apenas usando react-1.

## Principais Características

* **Modos do Modelo**: Você pode escolher qual região facial editar: apenas a boca, ou as expressões faciais, ou até mesmo os movimentos de cabeça
* **Sincronização labial expressiva**: react-1 opera em uma região facial muito maior, proporcionando os movimentos dos lábios mais expressivos que correspondem à fala
* **Expressões Faciais**: expressões faciais reescritas usando um comando emocional, e cada microexpressão está perfeitamente sincronizada com a fala.
* **Movimentos de Cabeça**: react-1 também pode sincronizar seus movimentos de cabeça para corresponder ao ritmo, prosódia e entonação do novo diálogo.

## Modos do Modelo

O modelo pode ser controlado com três modos de operação: **lips**, **face** e **head**.

Isso permite que você especifique a região espacial que deseja editar. Você pode optar apenas pela lip sync, ou adicionalmente escolher expressões faciais ou movimentos de cabeça também. O padrão é `face`.

| Modo     | Lip sync | Expressões Faciais | Movimentos de Cabeça |
| :------- | :------: | :----------------: | :------------------: |
| **lips** |     ✅    |          ❌         |           ❌          |
| **face** |     ✅    |          ✅         |           ❌          |
| **head** |     ✅    |          ✅         |           ✅          |

## Comandos Emocionais

Você pode guiar as expressões faciais especificando os comandos emocionais. Você também pode optar por não especificar um, nesse caso, o modelo seguirá o contexto emocional do vídeo de entrada. Veja o uso abaixo para mais detalhes.

## Uso

*react-1* está disponível através do mesmo endpoint da API [`/v2/generate`](/api-reference/api/generate-api/create) usado para lip sync padrão, com parâmetros adicionais para controlar os efeitos emocionais e de movimento.

#### Usando react-1 via API

Para usar react-1 com a API, defina o parâmetro `model` como `react-1` e configure as opções adicionais:

```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 da API

#### `model`

Defina como `react-1` para usar o modelo react-1.

#### `options.model_mode`

Controla a região de edição e o escopo de movimento para o modelo. Opções disponíveis:

* **`lips`**: Apenas lip sync usando react-1 (mudanças faciais mínimas)
* **`face`** (padrão): Sincronização labial + expressões faciais sem movimentos de cabeça
* **`head`**: Sincronização labial + expressões faciais + movimentos naturais de cabeça falante

> **Note**
>
> O parâmetro `model_mode` só funciona com o modelo `react-1`. Para outros modelos, este parâmetro é ignorado.

#### `options.prompt`

Comando emocional para a geração. Atualmente suporta apenas emoções de uma palavra.

**Opções disponíveis:**

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

> **Note**
>
> O parâmetro `prompt` só funciona com o modelo `react-1`. Para outros modelos, este parâmetro é ignorado.

#### Usando react-1 no Studio

react-1 está disponível no [Sync Labs Studio](https://sync.so/login) com uma interface intuitiva para controlar expressões emocionais e movimentos de cabeça.

#### Navegue até o Studio

Vá para o [Studio](https://sync.so/login) e crie um novo projeto ou abra um existente.

#### Selecione seus ativos

Envie ou selecione seus vídeos e áudios de entrada. Lembre-se de que react-1 suporta entradas de até 15 segundos de duração.

#### Escolha o modelo react-1

Selecione **react-1** no menu suspenso de modelos nas configurações de geração.

#### Configure o modo do modelo

Escolha o modo de modelo desejado:

* **Lips**: Apenas para lip sync
* **Face**: Para lip sync com expressões faciais (padrão)
* **Head**: Para lip sync com expressões faciais e movimentos naturais de cabeça

#### Mude a expressão

Selecione uma expressão na roda de emoções clicando

<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" />

nos controles do player de vídeo.

#### Gerar

Clique em gerar para criar sua lip sync com expressões emocionais e movimentos de cabeça opcionais.

## Melhores Práticas

#### Escolha o Modo Certo

* Use o modo **lips** quando você só precisar de lip sync sem mudanças emocionais
* Use o modo **face** (padrão) para a maioria dos casos de uso onde você deseja expressões naturais
* Use o modo **head** quando você quiser os movimentos de cabeça falante mais dinâmicos e naturais

#### Selecione Emoções Apropriadas

Escolha comandos emocionais que correspondam ao tom e contexto do seu áudio. O modelo gerará expressões faciais que se alinham com a emoção selecionada ao longo da geração.

#### Duração da Entrada

Mantenha suas entradas com menos de 15 segundos. Para conteúdos mais longos, divida seu vídeo em segmentos e processe-os separadamente, ou use os modelos de lip sync padrão para durações mais longas.

## Limitações Atuais

Os seguintes recursos ainda não são suportados para react-1:

* **Duração da Entrada**: react-1 suporta entradas de até 15 segundos de duração. Para conteúdos mais longos, considere dividir seu vídeo em segmentos.
* **Segmentos**: Geração multi-segmento com diferentes entradas de áudio não está disponível. Processe cada segmento separadamente, se necessário.
* **Seleção de Falante**: A opção `active_speaker_detection` não é suportada, incluindo tanto a detecção automática (`auto_detect`) quanto a seleção manual via caixa delimitadora ou número de quadro. Certifique-se de que seu vídeo de entrada contenha um único falante claramente visível.
* **Detecção de Oclusão**: A opção `occlusion_detection_enabled` para lidar com rostos parcialmente ocultos não está disponível para react-1.

## Quando usar react-1

react-1 é ideal para:

* Conteúdos de curta duração (≤ 15 segundos) que exigem expressões emocionais
* Vídeos onde movimentos naturais de cabeça melhoram o resultado
* Conteúdos que se beneficiam de expressões faciais conscientes de emoções
* Projetos onde você deseja resultados de lip sync mais dinâmicos e expressivos

Para conteúdos mais longos (> 15 segundos) ou quando você só precisa de lip sync padrão, considere usar [lipsync-2](/models/lipsync) ou [lipsync-2-pro](/models/lipsync).

## Preços

react-1 está disponível em planos de assinatura pagos (Creator e acima). O preço é baseado no uso a 25 fps e difere dos modelos de lip sync - cada modelo Sync Labs tem sua própria taxa por segundo.

| Plano                   | Taxa por segundo (a 25 fps) |
| :---------------------- | :-------------------------- |
| Hobbyist / Creator      | \$0.167/seg                 |
| Growth (5% de desconto) | \$0.158/seg                 |
| Scale (20% de desconto) | \$0.133/seg                 |

react-1 é o modelo mais expressivo e tem um preço mais alto do que os modelos de lip sync. Veja a [página de preços](https://sync.so/pricing) para uma comparação completa.

> **Note**
>
> Os preços dos modelos Sync Labs variam por modelo. react-1 (\$0.133 - \$0.167/seg) custa significativamente mais do que lipsync-2 (\$0.04 - \$0.05/seg) ou lipsync-2-pro (\$0.067 - \$0.083/seg). Não assuma que os preços são os mesmos entre os modelos.

## Perguntas Frequentes

#### Quanto custa o react-1?

react-1 custa \$0.133 - \$0.167 por segundo de vídeo de saída a 25 fps, dependendo do seu plano de assinatura. Os planos Hobbyist e Creator pagam \$0.167/seg, Growth paga \$0.158/seg (5% de desconto), e Scale paga \$0.133/seg (20% de desconto). Requer uma assinatura paga (plano Creator ou superior).

#### O preço do react-1 é o mesmo dos modelos de lip sync?

Não. react-1 é significativamente mais caro do que os modelos de lip sync. Na taxa base, react-1 (\$0.167/seg) custa mais de 3 vezes mais do que lipsync-2 (\$0.05/seg) e cerca de 2 vezes mais do que lipsync-2-pro (\$0.083/seg). Cada modelo Sync Labs tem preços independentes por segundo.

#### Posso usar o react-1 no teste gratuito?

Não. react-1 requer uma assinatura paga (plano Creator ou superior). O teste gratuito inclui apenas modelos da família lipsync (lipsync-1.9.0-beta, lipsync-2, lipsync-2-pro).

## Referência do Modelo react-1

### ID do Modelo

`react-1`

### Requisitos de Entrada

* Vídeo e áudio de entrada necessários
* Duração máxima de entrada: **15 segundos**
* Requer um único falante claramente visível
* Usa o mesmo endpoint `/v2/generate` que os modelos de lip sync

### Modos do Modelo

| Modo            | Lip sync | Expressões Faciais | Movimentos de Cabeça |
| --------------- | -------- | ------------------ | -------------------- |
| `lips`          | Sim      | Não                | Não                  |
| `face` (padrão) | Sim      | Sim                | Não                  |
| `head`          | Sim      | Sim                | Sim                  |

### Valores de Emoção Suportados

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

Se nenhum comando emocional for fornecido, o modelo preserva o contexto emocional do vídeo de entrada.

### Parâmetros da API

* `model`: `"react-1"`
* `options.model_mode`: `"lips"` | `"face"` | `"head"` (padrão: `"face"`)
* `options.prompt`: Um dos valores de emoção listados acima (opcional)

### Preços

* react-1: $0.133 -- $0.167/seg a 25 fps (varia por nível de plano)
* Hobbyist/Creator: $0.167/seg | Growth: $0.158/seg | Scale: \$0.133/seg
* Requer assinatura paga (plano Creator ou superior)
* NÃO disponível no teste gratuito
* react-1 é MAIS CARO do que os modelos de lip sync:
  * react-1 ($0.167/seg) vs lipsync-2 ($0.05/seg) = 3.3x mais caro
  * react-1 ($0.167/seg) vs lipsync-2-pro ($0.083/seg) = 2x mais caro
* NÃO assuma que react-1 custa o mesmo que lipsync-2 ou qualquer outro modelo - cada modelo tem preços independentes

### Limitações Atuais

* Duração máxima de entrada de 15 segundos
* Sem geração multi-segmento
* Sem `active_speaker_detection` (auto\_detect ou caixa delimitadora manual)
* Sem `occlusion_detection_enabled`