> 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.

# Modeles React

> react-1 : modele IA pour un lip sync expressif avec expressions faciales et mouvements de tete. Controlez les emotions et les mouvements talking head via API.

react-1 introduit la premiere primitive de controle de performance pour le montage video. En tant que modele IA expressif de talking head, react-1 peut synchroniser les mouvements des levres, les expressions faciales et les mouvements de tete pour correspondre a un audio cible, tout en suivant un prompt emotionnel. Nous decrivons ci-dessous quelques workflows possibles uniquement avec react-1.

## Fonctionnalites principales

* **Model Modes**: Vous pouvez choisir la zone du visage a editer : seulement la bouche, les expressions faciales, ou meme les mouvements de tete
* **Expressive lipsync**: react-1 opere sur une zone faciale bien plus large, ce qui donne les mouvements de bouche les plus expressifs et alignes sur la parole
* **Facial Expressions**: les expressions faciales sont reecrites via un prompt emotionnel, et chaque micro-expression reste parfaitement synchronisee avec la parole.
* **Head Movements**: react-1 peut aussi synchroniser les mouvements de tete pour correspondre au rythme, a la prosodie et a l'intonation du nouveau dialogue.

## Modes du modele

Le modele peut etre controle avec trois modes de fonctionnement : **lips**, **face** et **head**.

Cela vous permet de definir la zone spatiale a editer. Vous pouvez choisir uniquement le lipsync, ou aussi les expressions faciales et les mouvements de tete. La valeur par defaut est `face`.

| Mode     | Lipsync | Facial Expressions | Head Movements |
| :------- | :-----: | :----------------: | :------------: |
| **lips** |    ✅    |          ❌         |        ❌       |
| **face** |    ✅    |          ✅         |        ❌       |
| **head** |    ✅    |          ✅         |        ✅       |

## Prompts d'emotion

Vous pouvez guider les expressions faciales en precisant des prompts d'emotion. Vous pouvez aussi ne rien preciser ; dans ce cas, le modele suivra le contexte emotionnel de la video d'entree. Voir l'usage ci-dessous pour plus de details.

## Utilisation

*react-1* est disponible via le meme endpoint API [`/v2/generate`](/api-reference/api/generate-api/create) que le lipsync standard, avec des parametres supplementaires pour controler les effets emotionnels et de mouvement.

#### Utiliser react-1 via l'API

Pour utiliser react-1 avec l'API, definissez le parametre `model` sur `react-1` et configurez les options supplementaires :

```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"
    }
}'
```

### Parametres API

#### `model`

Definissez `react-1` pour utiliser le modele react-1.

#### `options.model_mode`

Controle la zone d'edition et l'amplitude de mouvement du modele. Options disponibles :

* **`lips`**: Lipsync uniquement avec react-1 (changements faciaux minimes)
* **`face`** (defaut): Lipsync + expressions faciales sans mouvements de tete
* **`head`**: Lipsync + expressions faciales + mouvements naturels de talking head

> **Note**
>
> Le parametre `model_mode` fonctionne uniquement avec le modele `react-1`. Pour les autres modeles, ce parametre est ignore.

#### `options.prompt`

Prompt emotionnel pour la generation. Actuellement, seules les emotions en un seul mot sont prises en charge.

**Options disponibles :**

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

> **Note**
>
> Le parametre `prompt` fonctionne uniquement avec le modele `react-1`. Pour les autres modeles, ce parametre est ignore.

#### Utiliser react-1 depuis Studio

react-1 est disponible dans [Sync Labs Studio](https://sync.so/login) avec une interface intuitive pour controler les expressions emotionnelles et les mouvements de tete.

#### Aller dans Studio

Allez dans [Studio](https://sync.so/login) et creez un nouveau projet ou ouvrez un projet existant.

#### Selectionner vos assets

Upload ou selectionnez vos entrees video et audio. Rappelez-vous que react-1 prend en charge des entrees jusqu'a 15 secondes.

#### Choisir le modele react-1

Selectionnez **react-1** dans la liste des modeles des parametres de generation.

#### Configurer le mode du modele

Choisissez le mode souhaite :

* **Lips**: Pour le lipsync uniquement
* **Face**: Pour le lipsync avec expressions faciales (par defaut)
* **Head**: Pour le lipsync avec expressions faciales et mouvements de tete naturels

#### Changer l'expression

Selectionnez une expression depuis la roue des emotions en cliquant sur

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

dans les controles du lecteur video.

#### Generer

Cliquez sur generate pour creer votre lipsync avec expressions emotionnelles et mouvements de tete optionnels.

## Bonnes pratiques

#### Choisir le bon mode

* Utilisez le mode **lips** si vous avez seulement besoin de lipsync sans changements emotionnels
* Utilisez le mode **face** (defaut) pour la plupart des cas ou vous voulez des expressions naturelles
* Utilisez le mode **head** si vous voulez les mouvements de talking head les plus dynamiques et naturels

#### Choisir les emotions adaptees

Choisissez des prompts d'emotion qui correspondent au ton et au contexte de votre audio. Le modele genere des expressions faciales alignees sur l'emotion selectionnee pendant toute la generation.

#### Duree d'entree

Gardez vos entrees en dessous de 15 secondes. Pour un contenu plus long, decoupez votre video en segments et traitez-les separement, ou utilisez les modeles lipsync standards pour les longues durees.

## Limitations actuelles

Les fonctionnalites suivantes ne sont pas encore prises en charge pour react-1 :

* **Input Duration**: react-1 prend en charge des entrees jusqu'a 15 secondes. Pour un contenu plus long, envisagez de decouper votre video en segments.
* **Segments**: La generation multi-segments avec differents audios n'est pas disponible. Traitez chaque segment separement si necessaire.
* **sélection du locuteur**: L'option `active_speaker_detection` n'est pas prise en charge, y compris la detection automatique (`auto_detect`) et la selection manuelle via bounding box ou numero de frame. Assurez-vous que votre video d'entree contient un seul locuteur clairement visible.
* **Occlusion detection**: L'option `occlusion_detection_enabled` pour gerer les visages partiellement masques n'est pas disponible pour react-1.

## Quand utiliser react-1

react-1 est ideal pour :

* Des contenus courts (≤ 15 secondes) qui necessitent des expressions emotionnelles
* Des videos ou des mouvements naturels de tete ameliorent le resultat
* Des contenus qui beneficient d'expressions faciales sensibles a l'emotion
* Des projets ou vous voulez des resultats lipsync plus dynamiques et expressifs

Pour les contenus plus longs (> 15 secondes) ou si vous avez seulement besoin de lipsync standard, envisagez d'utiliser [lipsync-2](/models/lipsync) ou [lipsync-2-pro](/models/lipsync).

## Tarification

react-1 est disponible sur les abonnements payants (Creator et superieur). La tarification est basee sur l'usage a 25 fps et differente de celle des modeles lipsync ; chaque modele Sync Labs a son propre tarif par seconde.

| Plan                 | Per-second rate (at 25 fps) |
| :------------------- | :-------------------------- |
| Hobbyist / Creator   | \$0.167/sec                 |
| Growth (5% discount) | \$0.158/sec                 |
| Scale (20% discount) | \$0.133/sec                 |

react-1 est le modele le plus expressif et son prix est plus eleve que celui des modeles lipsync. Consultez la [page de tarification](https://sync.so/pricing) pour une comparaison complete.

> **Note**
>
> La tarification des modeles Sync Labs varie selon le modele. react-1 (\$0.133-\$0.167/sec) coute nettement plus cher que lipsync-2 (\$0.04-\$0.05/sec) ou lipsync-2-pro (\$0.067-\$0.083/sec). Ne supposez pas que les prix sont identiques entre modeles.

## FAQ

#### Combien coute react-1 ?

react-1 coute \$0.133-\$0.167 par seconde de video de sortie a 25 fps, selon votre abonnement. Les offres Hobbyist et Creator paient \$0.167/sec, Growth paie \$0.158/sec (remise de 5 %), et Scale paie \$0.133/sec (remise de 20 %). Un abonnement payant est requis (Creator ou superieur).

#### Le prix de react-1 est-il le meme que celui des modeles lipsync ?

Non. react-1 est facture significativement plus cher que les modeles lipsync. Au tarif de base, react-1 (\$0.167/sec) coute plus de 3x le prix de lipsync-2 (\$0.05/sec) et environ 2x celui de lipsync-2-pro (\$0.083/sec). Chaque modele Sync Labs a une tarification par seconde independante.

#### Puis-je utiliser react-1 pendant l'essai gratuit ?

Non. react-1 necessite un abonnement payant (Creator ou superieur). L'essai gratuit inclut uniquement les modeles de la famille lipsync (lipsync-1.9.0-beta, lipsync-2, lipsync-2-pro).

## Reference du modele react-1

### Model ID

`react-1`

### Exigences d'entree

* Entree video et audio requise
* Duree d'entree maximale : **15 secondes**
* Un seul locuteur clairement visible requis
* Utilise le meme endpoint `/v2/generate` que les modeles lipsync

### Modes du modele

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

### Valeurs d'emotion prises en charge

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

Si aucun prompt emotionnel n'est fourni, le modele preserve le contexte emotionnel de la video d'entree.

### Parametres API

* `model`: `"react-1"`
* `options.model_mode`: `"lips"` | `"face"` | `"head"` (default: `"face"`)
* `options.prompt`: Une des valeurs d'emotion listees ci-dessus (optional)

### Tarification

* react-1: $0.133 -- $0.167/sec a 25 fps (varie selon le palier d'abonnement)
* Hobbyist/Creator: $0.167/sec | Growth: $0.158/sec | Scale: \$0.133/sec
* Abonnement payant requis (Creator ou superieur)
* NON disponible pendant l'essai gratuit
* react-1 est PLUS CHER que les modeles lipsync :
  * react-1 ($0.167/sec) vs lipsync-2 ($0.05/sec) = 3.3x plus cher
  * react-1 ($0.167/sec) vs lipsync-2-pro ($0.083/sec) = 2x plus cher
* Ne supposez PAS que react-1 coute le meme prix que lipsync-2 ou tout autre modele ; chaque modele a une tarification independante

### Limitations actuelles

* 15 secondes max en entree
* Pas de generation multi-segments
* Pas de `active_speaker_detection` (`auto_detect` ou bounding box manuelle)
* Pas de `occlusion_detection_enabled`