> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-0e9e475c.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference to Video

> Erzeugen Sie konsistente KI-Videos mit Charakter-Elementen, Szenenreferenzen und Multi-Shot-Steuerung — via Kling O3 und Grok Imagine R2V auf Venice.

Reference to Video erlaubt es dir, das Aussehen von Charakteren, Objekten und Szenen festzuziehen, damit deine KI-generierten Videos visuell konsistent bleiben. Statt zu hoffen, dass das Modell deinen Prompt korrekt interpretiert, lieferst du visuelle Anker – Referenzbilder, die dem Modell genau sagen, wie dein Motiv aussieht.

Diese Funktion ist auf **Kling O3**- und **Grok Imagine R2V**-Modellen im [Venice Video Studio](https://venice.ai/video?utm_source=venice-api-documentation) verfügbar. Jede Modellfamilie nutzt einen anderen Ansatz für Referenzbilder – siehe die modellspezifischen Abschnitte unten.

## Wann Reference to Video verwenden

Verwende Reference to Video, wenn du brauchst:

* **Charakter-Konsistenz** – dieselbe Person oder Figur über mehrere Shots
* **Produktgenauigkeit** – ein reales Produkt, das identisch zum Original aussehen muss
* **Szenenkontinuität** – eine bestimmte Umgebung oder ein Hintergrund über mehrere Generationen
* **Multi-Charakter-Szenen** – mehrere unterschiedliche Charaktere, die interagieren, ohne sich zu vermischen

Für einfache Text-to-Video oder Image-to-Video ohne kritische Konsistenz funktionieren die Standardmodelle gut auch ohne Referenzen.

## Verfügbare Modelle

| Modell                    | Ansatz                  | Geeignet für                                                     |
| ------------------------- | ----------------------- | ---------------------------------------------------------------- |
| **Kling O3 Pro R2V**      | Elements + Scene-Images | Komplexe Multi-Charakter-Szenen mit präziser Identitätskontrolle |
| **Kling O3 Standard R2V** | Elements + Scene-Images | Schnellere Iteration auf element-basierten Szenen                |
| **Grok Imagine R2V**      | Flache Referenzbilder   | Schnelle referenzgetriebene Generierung mit bis zu 7 Bildern     |

**Kling O3** verwendet einen strukturierten Ansatz mit Elements (Charakter-Identitätsanker mit Frontal- + Referenzbildern) und Scene-Images. **Grok Imagine R2V** ist einfacher – du lädst Referenzbilder direkt hoch und referenzierst sie im Prompt mit `@Image1`, `@Image2` usw.

***

## Kling O3 Reference to Video

### Kernkonzepte

Kling O3 Reference to Video nutzt drei Arten visueller Inputs, die zusammenspielen:

| Input                     | Pflicht                          | Zweck                                            | Wie im Prompt referenzieren   |
| ------------------------- | -------------------------------- | ------------------------------------------------ | ----------------------------- |
| **Elements**              | Mindestens ein visueller Input\* | Identität eines Charakters oder Objekts fixieren | `@Element1`, `@Element2` usw. |
| **Szenen-Referenzbilder** | Mindestens ein visueller Input\* | Umgebung, Stil und Stimmung setzen               | `@Image1`, `@Image2` usw.     |
| **Start-Frame**           | Mindestens ein visueller Input\* | Erstes Frame des Videos steuern                  | – (per Upload gesetzt)        |
| **End-Frame**             | Nein                             | Letztes Frame des Videos steuern                 | – (per Upload gesetzt)        |

\*Mindestens eines aus: Start-Frame, Elements oder Szenen-Referenzbildern ist Pflicht.

### Elements

Ein Element ist ein Charakter oder Objekt, das im Video visuell stabil bleiben soll. Jedes Element besteht aus:

* **Frontalbild** (Pflicht pro Element) – ein klares, frontales Foto des Motivs. Das ist der primäre Identitätsanker. Stell dir das wie das „Passfoto" deines Charakters oder Produkts vor.
* **Referenzbilder** (1–3, optional) – zusätzliche Ansichten desselben Motivs (Seitenansicht, 45°-Winkel, Rücken). Sie helfen dem Modell, das Motiv im 3D-Raum zu verstehen. Falls nicht angegeben, wird automatisch das Frontalbild als Referenz verwendet.

Du kannst pro Generierung bis zu **4 Elements** hinzufügen. Referenziere sie im Prompt mit `@Element1`, `@Element2` usw.

### Szenen-Referenzbilder

Szenen-Referenzen definieren die „Bühne", auf der die Handlung stattfindet. Sie beeinflussen:

* Beleuchtung und Farbpalette
* Architektur und Umgebungsdetails
* Gesamten visuellen Stil und Stimmung

Du kannst bis zu **4 Scene-Images** hinzufügen. Referenziere sie als `@Image1`, `@Image2` usw. im Prompt.

### Limits

Jede Input-Art wird von der API unabhängig begrenzt:

| Limit                              | Wert                                                                 |
| ---------------------------------- | -------------------------------------------------------------------- |
| **Mindestens erforderlich**        | Mindestens 1 visueller Input (Start-Frame, Element oder Scene-Image) |
| `elements`                         | **4 maximal**                                                        |
| `scene_image_urls`                 | 4 maximal                                                            |
| `reference_image_urls` pro Element | 1–3                                                                  |

<Note>
  Die API wendet diese Obergrenzen unabhängig voneinander an – es gibt kein kombiniertes Bild-Budget über `elements`, `scene_image_urls` und die Start-/End-Frames hinweg, und das Hinzufügen eines Start- oder End-Frames verringert nicht die Anzahl der Elements, die du senden darfst. Das Überschreiten einer einzelnen Obergrenze gibt einen `400` zurück, der das betreffende Feld benennt, zum Beispiel *"elements must have at most 4 items"*.
</Note>

<Note>
  Jedes Element benötigt ein **Frontalbild**. Wenn du keine Referenzbilder für ein Element angibst, wird das Frontalbild automatisch als Referenz verwendet.
</Note>

### Multi-Shot-Modus

Multi-Shot erlaubt es dir, eine einzige Generierung in mehrere Szenen aufzuteilen, jede mit eigenem Prompt und eigener Dauer. Elements und Scene-Referenzen werden über alle Shots übernommen und sorgen für Konsistenz. Die Gesamtdauer über alle Shots darf **15 Sekunden** nicht überschreiten.

***

### Schritt-für-Schritt-Anleitung (Video Studio)

#### 1. Video Studio öffnen und Modell auswählen

Geh zu [venice.ai/video](https://venice.ai/video?utm_source=venice-api-documentation). Wähle im Model-Browser links eines der **Kling O3 Reference to Video**-Modelle:

* **Kling O3 Pro R2V** – höhere Qualität, längere Generierungszeit (\~6 Min.)
* **Kling O3 Standard R2V** – schneller, kostengünstiger für Iteration

#### 2. Visuelle Inputs hinzufügen (mindestens einer Pflicht)

Du musst **mindestens einen visuellen Input** bereitstellen, um ein Video zu generieren: einen Start-Frame, ein Element oder ein Szenen-Referenzbild. Im Input-Panel siehst du den Abschnitt **Elements**. Klicke **Add Element**, um ein Element für Charaktere oder Objekte zu erzeugen, die visuell konsistent bleiben sollen.

Für jedes Element:

1. Klicke das **Frontal**-Feld, um ein klares, frontales Bild deines Charakters oder Objekts hochzuladen
2. Optional **Add** unter **Reference Images** klicken, um zusätzliche Winkel (1–3) hochzuladen

Wiederhole das für weitere Charaktere oder Objekte (bis zu 4 Elements insgesamt).

<Warning>
  `elements` und `scene_image_urls` sind jeweils auf **4** begrenzt, und die Obergrenzen gelten unabhängig voneinander. Details siehe [Limits](#limits).
</Warning>

<Tip>
  **Beste Referenzbilder:** Verwende gut ausgeleuchtete Fotos mit sauberem Hintergrund. Liefere Front-, Seiten- und 45°-Ansichten für die stärkste Identitätsfixierung. Achte darauf, dass alle Referenzbilder denselben visuellen Stil teilen (nicht photorealistisch mit Anime mischen).
</Tip>

#### 3. Szenen-Referenzbilder hinzufügen (optional)

Unter dem Elements-Abschnitt siehst du **Scene Reference Images**. Lade Bilder hoch, die die gewünschte Umgebung definieren – einen bestimmten Ort, ein Lichtsetup oder einen Kunststil.

Sie werden automatisch als `@Image1`, `@Image2` usw. getagged.

#### 4. Start-Frame hochladen (optional)

Wenn du das exakte erste Frame deines Videos kontrollieren willst, wechsle zum Input-Typ **Image** und lade einen Start-Frame hoch. Optional kannst du auch einen End-Frame setzen.

#### 5. Prompt schreiben

Beschreibe im Prompt-Feld die gewünschte Handlung und referenziere deine Elements und Scene-Images per `@`-Tags:

```
@Element1 walks through the streets of @Image1, looking up at the buildings.
The camera slowly tracks from behind, revealing the city skyline.
```

Für **Multi-Charakter-Szenen**:

```
@Element1 and @Element2 enter the cafe in @Image1 from opposite sides.
@Element1 waves and walks toward @Element2, who is sitting at a corner table.
```

#### 6. Einstellungen konfigurieren

Öffne **Video Settings**, um anzupassen:

| Einstellung      | Optionen        | Default |
| ---------------- | --------------- | ------- |
| Dauer            | 3 s – 15 s      | 5 s     |
| Aspect Ratio     | 16:9, 9:16, 1:1 | 16:9    |
| Audio generieren | On/Off          | Off     |

<Note>
  Die Audiogenerierung ergänzt native Soundeffekte, Dialog und Ambient-Audio synchron zum Video. Die Kosten steigen um \~25 %.
</Note>

#### 7. Generieren

Klicke **Generate Video**. Kling O3 braucht in der Regel 4–6 Minuten, abhängig vom Modell-Tier und der Dauer. Du kannst mehrere Generierungen in die Queue stellen und Ergebnisse in der Video-Galerie durchstöbern.

***

### Multi-Shot-Storyboarding

Für narrative Sequenzen Multi-Shot nutzen, um separate Szenen in einer einzigen Generierung zu definieren.

1. Im Prompt-Bereich auf **Add Shot** klicken, um weitere Shots anzulegen
2. Pro Shot einen eigenen Prompt schreiben
3. Pro Shot die Dauer setzen (jeweils 3–15 s, gesamt ≤ 15 s)

Elements und Scene-Referenzen bleiben über alle Shots automatisch erhalten:

```
Shot 1 (5s): @Element1 stands at the edge of @Image1, looking out at the horizon.
Slow camera push forward.

Shot 2 (5s): Close-up of @Element1's face as they turn toward the camera.
Soft natural lighting, shallow depth of field.

Shot 3 (5s): @Element1 walks away from camera into the distance.
Wide cinematic shot, golden hour lighting.
```

<Warning>
  Die Gesamtdauer im Multi-Shot darf 15 Sekunden nicht überschreiten. Beispiel: Drei 5-Sekunden-Shots = maximal 15 s.
</Warning>

***

### Prompting-Tipps

#### Den Prompt strukturieren

Folge diesem Muster für verlässliche Ergebnisse:

```
[Subjekt mit @Element-Tag] + [Aktion] + [Umgebung mit @Image-Tag] + [Kamerabewegung] + [Beleuchtung/Stil]
```

**Beispiel:**

```
@Element1 hops happily across the candy ground of @Image1, stops to look at a
giant lollipop, tilts its head curiously. Cinematic tracking shot, soft warm lighting.
```

#### Prompts mit 50–150 Wörtern

Kürzere Prompts fehlt Detail. Längere führen zu Widersprüchen. Ziel der „Sweet Spot".

#### Einfache Kamerasprache nutzen

Das Modell reagiert am besten auf klare Kameraanweisungen:

| Nutze                       | Vermeide                                        |
| --------------------------- | ----------------------------------------------- |
| `slow camera push forward`  | `dolly zoom with rack focus transition`         |
| `tracking shot from behind` | `complex handheld parallax movement`            |
| `close-up`                  | `extreme macro with tilt-shift bokeh`           |
| `wide cinematic shot`       | `anamorphic ultra-wide establishing crane shot` |

#### Einheitlichen Wortschatz verwenden

Wenn du einen Charakter mit „a red jacket" beschreibst, wechsle im nächsten Prompt nicht zu „crimson coat". Das Modell behandelt unterschiedliche Wörter als unterschiedliche Absicht.

#### Kameraanweisungen früh platzieren

Setze die Kameraanweisung nahe dem Prompt-Anfang, das ist verlässlicher:

```
Cinematic tracking shot of @Element1 walking through @Image1, leaves
blowing in the wind, golden afternoon light.
```

***

### Kling O3 – Preise

Kling O3 Reference-to-Video-Modelle nutzen ein dauerbasiertes Pricing:

| Modell                | Pro Sekunde (ohne Audio) | Pro Sekunde (mit Audio) |
| --------------------- | ------------------------ | ----------------------- |
| Kling O3 Pro R2V      | \$0,112                  | \$0,140                 |
| Kling O3 Standard R2V | \$0,112                  | \$0,140                 |

**Beispiel:** Ein 10-Sekunden-Video mit Audio = 10 × \$0,14 = **\$1,40**

Nutze die [Video-Quote-API](https://docs.venice.ai/api-reference/endpoint/video/quote) für genaues Pricing vor der Generierung.

***

### Kling O3 – API-Nutzung

Kling O3 Reference to Video ist auch über die Venice-API verfügbar. Vollständige Details in der [Video-Queue-API](https://docs.venice.ai/api-reference/endpoint/video/queue).

#### Python

```python theme={null}
import requests

response = requests.post(
    "https://api.venice.ai/api/v1/video/queue",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "model": "kling-o3-pro-reference-to-video",
        "prompt": "@Element1 walks through @Image1, camera tracking from behind",
        "duration": "8s",
        "aspect_ratio": "16:9",
        "audio": True,
        "elements": [
            {
                "frontal_image_url": "https://example.com/character-front.jpg",
                "reference_image_urls": [
                    "https://example.com/character-side.jpg",
                    "https://example.com/character-angle.jpg"
                ]
            }
        ],
        "scene_image_urls": [
            "https://example.com/scene-background.jpg"
        ]
    }
)

queue_id = response.json()["queue_id"]
```

#### Node.js

```javascript theme={null}
const response = await fetch("https://api.venice.ai/api/v1/video/queue", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "kling-o3-pro-reference-to-video",
    prompt: "@Element1 walks through @Image1, camera tracking from behind",
    duration: "8s",
    aspect_ratio: "16:9",
    audio: true,
    elements: [
      {
        frontal_image_url: "https://example.com/character-front.jpg",
        reference_image_urls: [
          "https://example.com/character-side.jpg",
          "https://example.com/character-angle.jpg"
        ]
      }
    ],
    scene_image_urls: [
      "https://example.com/scene-background.jpg"
    ]
  })
});

const { queue_id: queueId } = await response.json();
```

#### cURL

```bash theme={null}
curl https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-o3-pro-reference-to-video",
    "prompt": "@Element1 walks through @Image1, camera tracking from behind",
    "duration": "8s",
    "aspect_ratio": "16:9",
    "audio": true,
    "elements": [
      {
        "frontal_image_url": "https://example.com/character-front.jpg",
        "reference_image_urls": [
          "https://example.com/character-side.jpg",
          "https://example.com/character-angle.jpg"
        ]
      }
    ],
    "scene_image_urls": [
      "https://example.com/scene-background.jpg"
    ]
  }'
```

#### Element-Schema

Jedes Element im `elements`-Array akzeptiert:

| Feld                   | Typ       | Pflicht | Beschreibung                                                                                   |
| ---------------------- | --------- | ------- | ---------------------------------------------------------------------------------------------- |
| `frontal_image_url`    | string    | **Ja**  | Klare frontale Bild-URL                                                                        |
| `reference_image_urls` | string\[] | Nein    | Zusätzliche Winkel-URLs (1–3). Falls weggelassen, wird das Frontalbild als Referenz verwendet. |

<Note>
  Die API unterstützt auch `video_url` für video-basierte Elements, aber das ist im Video Studio UI derzeit nicht verfügbar.
</Note>

***

### Kling O3 – Fehlerbehebung

| Problem                                                | Wahrscheinliche Ursache                             | Lösung                                                                                                      |
| ------------------------------------------------------ | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Generate-Button ist deaktiviert                        | Kein visueller Input bereitgestellt                 | Mindestens einen visuellen Input ergänzen: Start-Frame, Element oder Scene-Image                            |
| Fehler `"elements must have at most 4 items"`          | Mehr als 4 Elements gesendet                        | Höchstens 4 Elements senden; die Obergrenze ändert sich nicht, wenn ein Start- oder End-Frame vorhanden ist |
| Fehler `"scene_image_urls must have at most 4 images"` | Mehr als 4 Scene-Images gesendet                    | Höchstens 4 Scene-Images senden. Diese Obergrenze ist unabhängig von der Element-Obergrenze                 |
| Charaktergesicht ändert sich zwischen Shots            | Anderes oder fehlendes Frontalbild                  | Dasselbe Frontalbild konsistent verwenden, Beschreibung identisch halten                                    |
| Kamerabewegung wirkt zufällig                          | Mehrere oder widersprüchliche Kameraanweisungen     | Eine einzige Kameraanweisung verwenden und früh im Prompt platzieren                                        |
| Stil wechselt zwischen Generierungen                   | Inkonsistente Scene-Referenzen oder gemischte Stile | Dieselben Scene-Images wiederverwenden, Style-Keywords konstant halten                                      |
| Elements verschmelzen in Multi-Charakter-Szenen        | Vage räumliche Anweisungen                          | Position jedes Elements explizit angeben: „foreground left", „entering from right"                          |
| Hintergrund wirkt verzerrt                             | Überladenes oder komplexes Scene-Referenzbild       | Saubere, hochwertige Scene-Referenzbilder nutzen                                                            |
| Bewegung wirkt unnatürlich                             | Zu viele Aktionen in einem Prompt                   | Aktion vereinfachen, kürzere Dauer nutzen, eine Aktion pro Shot                                             |

<Tip>
  Teste zuerst mit 3–5 Sekunden, bevor du längere Dauern committest. Kürzere Clips bleiben konsistenter und du kannst schneller iterieren.
</Tip>

***

## Grok Imagine Reference to Video

Grok Imagine R2V verfolgt einen einfacheren Ansatz als Kling O3. Statt strukturierter Elements mit Frontal-/Referenzbild-Trennung lädst du **flache Referenzbilder** hoch und referenzierst sie direkt im Prompt mit `@Image1`, `@Image2` usw. Das Modell integriert diese Motive in das generierte Video.

### Wie es funktioniert

1. Lade **1–7 Referenzbilder** hoch – Fotos von Charakteren, Objekten oder Szenen, die im Video vorkommen sollen
2. Schreibe einen Prompt, der das Video beschreibt, und nutze `@Image1`, `@Image2` usw., um bestimmte Bilder zu referenzieren
3. Das Modell generiert ein Video, das diese Referenzen einbezieht

Wenn du keine `@Image`-Tags im Prompt verwendest, werden alle hochgeladenen Bilder automatisch referenziert.

### Einstellungen

| Einstellung  | Optionen                            | Default |
| ------------ | ----------------------------------- | ------- |
| Aspect Ratio | 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16 | 16:9    |
| Auflösung    | 480p, 720p                          | 480p    |
| Dauer        | Jede volle Sekunde von 1 s bis 10 s | 8 s     |

<Note>
  Grok Imagine R2V unterstützt weder Audiogenerierung, Multi-Shot-Modus noch Elements. Für diese Funktionen Kling O3 R2V verwenden.
</Note>

### Schritt-für-Schritt-Anleitung (Video Studio)

#### 1. Modell auswählen

Geh zu [venice.ai/video](https://venice.ai/video?utm_source=venice-api-documentation). Im Model-Browser **Grok Imagine R2V** wählen.

#### 2. Referenzbilder hochladen

Klicke **References** in der Input-Toolbar (oder nutze das +-Menü), um das Referenzbild-Panel zu öffnen. Lade 1–7 Bilder der Charaktere, Objekte oder Szenen hoch, die im Video erscheinen sollen.

Jedes Bild wird automatisch in der Hochlade-Reihenfolge (links nach rechts) als `@Image1`, `@Image2` usw. getagged.

#### 3. Prompt schreiben

Beschreibe das gewünschte Video. Nutze `@Image`-Tags, um bestimmte Bilder zu referenzieren:

```
@Image1 and @Image2 walking together through a sunlit park,
camera slowly tracking alongside them, warm afternoon light.
```

Tippe `@` im Prompt-Feld, um ein Autocomplete-Menü der verfügbaren Bildreferenzen zu sehen.

<Tip>
  Wenn du `@Image`-Tags ganz weglässt, fügt das Backend automatisch Referenzen auf alle hochgeladenen Bilder voran. Praktisch, wenn du alle Bilder nutzen willst, ohne anzugeben, welches wie.
</Tip>

#### 4. Einstellungen konfigurieren und generieren

Öffne **Video Settings**, um Aspect Ratio, Auflösung und Dauer anzupassen. Klicke **Generate Video**.

### Grok Imagine R2V – Preise

Grok Imagine R2V verwendet Dauer- und Auflösungs-basiertes Pricing:

| Auflösung | Pro Sekunde |
| --------- | ----------- |
| 480p      | \~\$0,063   |
| 720p      | \~\$0,088   |

**Beispiel:** Ein 8-Sekunden-Video in 480p = 8 × \$0,063 = **\~\$0,50**

<Note>
  Grok Imagine erhebt eine Content-Moderations-Gebühr für generierte Videos, auch wenn das Video abgelehnt wird. Das ist in den vor der Generierung angezeigten Credit-Kosten berücksichtigt.
</Note>

### Grok Imagine R2V – API-Nutzung

#### Python

```python theme={null}
import requests

response = requests.post(
    "https://api.venice.ai/api/v1/video/queue",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "model": "grok-imagine-reference-to-video",
        "prompt": "@Image1 and @Image2 walking through a park, cinematic tracking shot",
        "duration": "8s",
        "aspect_ratio": "16:9",
        "reference_image_urls": [
            "https://example.com/character-a.jpg",
            "https://example.com/character-b.jpg"
        ]
    }
)

queue_id = response.json()["queue_id"]
```

#### Node.js

```javascript theme={null}
const response = await fetch("https://api.venice.ai/api/v1/video/queue", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "grok-imagine-reference-to-video",
    prompt: "@Image1 and @Image2 walking through a park, cinematic tracking shot",
    duration: "8s",
    aspect_ratio: "16:9",
    reference_image_urls: [
      "https://example.com/character-a.jpg",
      "https://example.com/character-b.jpg"
    ]
  })
});

const { queue_id: queueId } = await response.json();
```

#### cURL

```bash theme={null}
curl https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-reference-to-video",
    "prompt": "@Image1 and @Image2 walking through a park, cinematic tracking shot",
    "duration": "8s",
    "aspect_ratio": "16:9",
    "reference_image_urls": [
      "https://example.com/character-a.jpg",
      "https://example.com/character-b.jpg"
    ]
  }'
```

#### API-Parameter

| Feld                   | Typ       | Pflicht | Beschreibung                                                               |
| ---------------------- | --------- | ------- | -------------------------------------------------------------------------- |
| `model`                | string    | **Ja**  | Muss `grok-imagine-reference-to-video` sein                                |
| `prompt`               | string    | **Ja**  | Text-Prompt mit optionalen `@Image1`-, `@Image2`-Referenzen                |
| `reference_image_urls` | string\[] | **Ja**  | 1–7 Bild-URLs oder Data-URLs                                               |
| `duration`             | string    | **Ja**  | Jede volle Sekunde von `"1s"` bis `"10s"`. Das Suffix `s` ist erforderlich |
| `aspect_ratio`         | string    | **Ja**  | z. B. `"16:9"`, `"9:16"`, `"1:1"`                                          |
| `resolution`           | string    | Nein    | `"480p"` (Default) oder `"720p"`                                           |

<Note>
  Grok Imagine R2V nutzt die Felder `elements`, `scene_image_urls` oder `image_url` nicht. Alle Referenzbilder werden über `reference_image_urls` übergeben.
</Note>

### Grok Imagine R2V – Fehlerbehebung

| Problem                                           | Wahrscheinliche Ursache                       | Lösung                                                                                                         |
| ------------------------------------------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Generate-Button ist deaktiviert                   | Keine Referenzbilder hochgeladen              | Mindestens 1 Referenzbild hochladen                                                                            |
| Fehler „At least one reference image is required" | `reference_image_urls` ist leer oder fehlt    | Mindestens eine Bild-URL in `reference_image_urls` angeben                                                     |
| Falsches Bild dem `@Image`-Tag zugeordnet         | Bildreihenfolge passt nicht zu den Tags       | `@Image1` entspricht dem ersten Bild in deiner Upload-Reihenfolge (links nach rechts). Bei Bedarf umsortieren. |
| Motiv erscheint nicht im Video                    | Zu viele Referenzen ohne explizite Tags       | `@Image`-Tags im Prompt nutzen, um explizit zu sagen, welche Bilder verwendet werden sollen                    |
| Niedrige Output-Qualität                          | 480p-Auflösung verwendet                      | 720p für höhere Qualität versuchen (höhere Kosten)                                                             |
| Video zu kurz                                     | Default-Dauer ist 8 s                         | Dauer auf `"10s"` setzen für längere Videos                                                                    |
| Fehler `"Invalid enum value ... received '8'"`    | `duration` wurde ohne das Suffix `s` gesendet | `"8s"` senden, nicht `"8"`. Die API vergleicht exakt mit der Anzeigeform                                       |
