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

# React-Modelle

> react-1: KI-Modell für ausdrucksstarken lip sync mit Gesichtsausdrücken und Kopfbewegungen. Steuere Emotionen und Talking-Head-Bewegungen per API.

react-1 führt das erste Primitive zur Performance-Steuerung für die Videobearbeitung ein. Als ausdrucksstarkes KI-Talking-Head-Modell kann react-1 Lippenbewegungen, Gesichtsausdrücke und Kopfbewegungen mit einem Zielaudio synchronisieren und dabei einem Emotions-Prompt folgen. Unten beschreiben wir einige Workflows, die nur mit react-1 möglich sind.

## Hauptfunktionen

* **Model Modes**: Du kannst wählen, welcher Gesichtsbereich bearbeitet wird: nur der Mund, die Gesichtsausdrücke oder sogar Kopfbewegungen
* **Ausdrucksstarker lipsync**: react-1 arbeitet auf einem deutlich größeren Gesichtsbereich und liefert dadurch die ausdrucksstärksten Mundbewegungen passend zur Sprache
* **Gesichtsausdrücke**: Gesichtsausdrücke werden mithilfe eines Emotions-Prompts neu geschrieben, und selbst kleinste Mikroausdrücke bleiben perfekt mit der Sprache synchron
* **Kopfbewegungen**: react-1 kann auch Kopfbewegungen mit Tempo, Prosodie und Intonation des neuen Dialogs synchronisieren

## Model Modes

Das Modell kann mit drei Betriebsmodi gesteuert werden: **lips**, **face** und **head**.

So kannst du den räumlichen Bereich festlegen, den du bearbeiten möchtest. Du kannst nur lipsync wählen oder zusätzlich Gesichtsausdrücke bzw. Kopfbewegungen einbeziehen. Standard ist `face`.

| Modus    | Lipsync | Gesichtsausdrücke | Kopfbewegungen |
| :------- | :-----: | :---------------: | :------------: |
| **lips** |    ✅    |         ❌         |        ❌       |
| **face** |    ✅    |         ✅         |        ❌       |
| **head** |    ✅    |         ✅         |        ✅       |

## Emotions-Prompts

Du kannst Gesichtsausdrücke durch Emotions-Prompts steuern. Du kannst auch keinen Prompt angeben, dann folgt das Modell dem emotionalen Kontext des Eingabevideos. Siehe die Nutzung unten für weitere Details.

## Nutzung

*react-1* ist über denselben API-endpoint [`/v2/generate`](/api-reference/api/generate-api/create) verfügbar wie standardmäßiger lipsync, mit zusätzlichen Parametern zur Steuerung von Emotion und Bewegung.

#### react-1 über API verwenden

Um react-1 über die API zu nutzen, setze den Parameter `model` auf `react-1` und konfiguriere die zusätzlichen Optionen:

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

### API-Parameter

#### `model`

Setze auf `react-1`, um das react-1-Modell zu verwenden.

#### `options.model_mode`

Steuert den Bearbeitungsbereich und den Bewegungsumfang des Modells. Verfügbare Optionen:

* **`lips`**: Nur lipsync mit react-1 (minimale Gesichtsänderungen)
* **`face`** (Standard): Lipsync + Gesichtsausdrücke ohne Kopfbewegungen
* **`head`**: Lipsync + Gesichtsausdrücke + natürliche Talking-Head-Bewegungen

> **Note**
>
> Der Parameter `model_mode` funktioniert nur mit dem Modell `react-1`. Bei anderen Modellen wird dieser Parameter ignoriert.

#### `options.prompt`

Emotions-Prompt für die Generierung. Aktuell werden nur einwortige Emotionen unterstützt.

**Verfügbare Optionen:**

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

> **Note**
>
> Der Parameter `prompt` funktioniert nur mit dem Modell `react-1`. Bei anderen Modellen wird dieser Parameter ignoriert.

#### react-1 in Studio verwenden

react-1 ist in [Sync Labs Studio](https://sync.so/login) mit einer intuitiven Oberfläche zur Steuerung von Emotionen und Kopfbewegungen verfügbar.

#### Zu Studio navigieren

Gehe zu [Studio](https://sync.so/login) und erstelle ein neues Projekt oder öffne ein bestehendes.

#### Assets auswählen

Lade deine Video- und Audioeingaben hoch oder wähle sie aus. Beachte, dass react-1 Eingaben bis zu 15 Sekunden unterstützt.

#### react-1-Modell auswählen

Wähle **react-1** im Model-Dropdown in den Generierungseinstellungen aus.

#### Model Mode konfigurieren

Wähle den gewünschten Model Mode:

* **Lips**: Nur für lipsync
* **Face**: Für lipsync mit Gesichtsausdrücken (Standard)
* **Head**: Für lipsync mit Gesichtsausdrücken und natürlichen Kopfbewegungen

#### Ausdruck ändern

Wähle einen Ausdruck aus dem Emotion-Wheel, indem du in den Steuerungen des Videoplayers auf

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

klickst.

#### Generieren

Klicke auf Generate, um deinen lipsync mit emotionalen Gesichtsausdrücken und optionalen Kopfbewegungen zu erstellen.

## Best Practices

#### Den richtigen Modus wählen

* Verwende den Modus **lips**, wenn du nur lipsync ohne emotionale Änderungen brauchst
* Verwende den Modus **face** (Standard) für die meisten Fälle, in denen du natürliche Ausdrücke möchtest
* Verwende den Modus **head**, wenn du die dynamischsten und natürlichsten Talking-Head-Bewegungen möchtest

#### Passende Emotionen wählen

Wähle Emotions-Prompts, die zum Ton und Kontext deines Audios passen. Das Modell erzeugt Gesichtsausdrücke, die über die gesamte Generierung mit der ausgewählten Emotion übereinstimmen.

#### Eingabedauer

Halte deine Eingaben unter 15 Sekunden. Für längere Inhalte teile dein Video in Segmente auf und verarbeite sie getrennt, oder verwende die standardmäßigen lipsync-Modelle für längere Dauern.

## Aktuelle Einschränkungen

Die folgenden Funktionen werden für react-1 noch nicht unterstützt:

* **Input Duration**: react-1 unterstützt Eingaben bis zu 15 Sekunden. Für längere Inhalte solltest du dein Video in Segmente aufteilen.
* **Segments**: Multi-Segment-Generierung mit unterschiedlichen Audioeingaben ist nicht verfügbar. Verarbeite jedes Segment bei Bedarf separat.
* **Sprecher-Auswahl**: Die Option `active_speaker_detection` wird nicht unterstützt, einschließlich automatischer Erkennung (`auto_detect`) und manueller Auswahl über Bounding Box oder Frame-Nummer. Stelle sicher, dass dein Eingabevideo eine einzelne, klar sichtbare sprechende Person enthält.
* **Occlusion detection**: Die Option `occlusion_detection_enabled` zur Behandlung teilweise verdeckter Gesichter ist für react-1 nicht verfügbar.

## Wann react-1 verwenden

react-1 ist ideal für:

* Short-form-Inhalte (≤ 15 Sekunden), die emotionale Ausdrücke erfordern
* Videos, bei denen natürliche Kopfbewegungen das Ergebnis verbessern
* Inhalte, die von emotionsbewussten Gesichtsausdrücken profitieren
* Projekte, bei denen du dynamischere und ausdrucksstärkere lipsync-Ergebnisse willst

Für längere Inhalte (> 15 Sekunden) oder wenn du nur standardmäßigen lipsync brauchst, verwende stattdessen [lipsync-2](/models/lipsync) oder [lipsync-2-pro](/models/lipsync).

## Preise

react-1 ist in kostenpflichtigen Abonnements (Creator und höher) verfügbar. Die Preise sind nutzungsbasiert bei 25 fps und unterscheiden sich von lipsync-Modellen, jedes Sync Labs-Modell hat seinen eigenen Preis pro Sekunde.

| Plan               | Preis pro Sekunde (bei 25 fps) |
| :----------------- | :----------------------------- |
| Hobbyist / Creator | \$0.167/sec                    |
| Growth (5% Rabatt) | \$0.158/sec                    |
| Scale (20% Rabatt) | \$0.133/sec                    |

react-1 ist das ausdrucksstärkste Modell und wird höher bepreist als lipsync-Modelle. Einen vollständigen Vergleich findest du auf der [pricing page](https://sync.so/pricing).

> **Note**
>
> Die Preise für Sync Labs-Modelle variieren je Modell. react-1 (\$0.133-\$0.167/sec) kostet deutlich mehr als lipsync-2 (\$0.04-\$0.05/sec) oder lipsync-2-pro (\$0.067-\$0.083/sec). Gehe nicht davon aus, dass Preise über Modelle hinweg gleich sind.

## FAQs

#### Wie viel kostet react-1?

react-1 kostet \$0.133-\$0.167 pro Sekunde Ausgabevideo bei 25 fps, abhängig von deinem Abonnement. Hobbyist- und Creator-Pläne zahlen \$0.167/sec, Growth zahlt \$0.158/sec (5% Rabatt) und Scale zahlt \$0.133/sec (20% Rabatt). Es erfordert ein kostenpflichtiges Abonnement (Creator-Plan oder höher).

#### Ist der Preis für react-1 derselbe wie für lipsync-Modelle?

Nein. react-1 ist deutlich höher bepreist als lipsync-Modelle. Beim Basispreis kostet react-1 (\$0.167/sec) mehr als das 3-Fache von lipsync-2 (\$0.05/sec) und etwa das 2-Fache von lipsync-2-pro (\$0.083/sec). Jedes Sync Labs-Modell hat einen eigenen Preis pro Sekunde.

#### Kann ich react-1 im Free-Trial verwenden?

Nein. react-1 erfordert ein kostenpflichtiges Abonnement (Creator-Plan oder höher). Der Free Trial enthält nur Modelle der lipsync-Familie (lipsync-1.9.0-beta, lipsync-2, lipsync-2-pro).

## react-1 Modellreferenz

### Modell-ID

`react-1`

### Eingabeanforderungen

* Video- und Audioeingabe erforderlich
* Maximale Eingabedauer: **15 Sekunden**
* Eine einzelne, klar sichtbare sprechende Person erforderlich
* Verwendet denselben endpoint `/v2/generate` wie lipsync-Modelle

### Model Modes

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

### Unterstützte Emotionswerte

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

Wenn kein Emotions-Prompt angegeben ist, erhält das Modell den emotionalen Kontext des Eingabevideos.

### API-Parameter

* `model`: `"react-1"`
* `options.model_mode`: `"lips"` | `"face"` | `"head"` (Standard: `"face"`)
* `options.prompt`: Einer der oben aufgeführten Emotionswerte (optional)

### Preise

* react-1: $0.133 -- $0.167/sec bei 25 fps (variiert nach Plan)
* Hobbyist/Creator: $0.167/sec | Growth: $0.158/sec | Scale: \$0.133/sec
* Erfordert kostenpflichtiges Abonnement (Creator-Plan oder höher)
* NICHT im Free Trial verfügbar
* react-1 ist TEURER als lipsync-Modelle:
  * react-1 ($0.167/sec) vs lipsync-2 ($0.05/sec) = 3.3x teurer
  * react-1 ($0.167/sec) vs lipsync-2-pro ($0.083/sec) = 2x teurer
* Gehe NICHT davon aus, dass react-1 genauso viel kostet wie lipsync-2 oder andere Modelle, jedes Modell ist unabhängig bepreist

### Aktuelle Einschränkungen

* Maximal 15 Sekunden Eingabedauer
* Keine Multi-Segment-Generierung
* Kein `active_speaker_detection` (auto\_detect oder manuelle Bounding Box)
* Kein `occlusion_detection_enabled`