<!-- Canonical URL: https://ask.atlascloud.ai/de/migrate-sora-api-app-to-seedance-or-wan -->

# Wie migriert man eine Sora-API-Video-App zu Seedance oder Wan?

> Migrieren Sie von Sora zu Seedance oder Wan, indem Sie den stabilen internen Video-Jobvertrag von anbieterspezifischen Payloads trennen. Bilden Sie Prompts, Inputs, Dauer, Größe, Audio und Status über Adapter ab, speichern Sie jede externe Task-ID und vergleichen Sie akzeptierte Ergebnisse mit einem festen Regressionstest.

<!-- Canonical URL: https://ask.atlascloud.ai/migrate-sora-api-app-to-seedance-or-wan -->

# Wie migriert man eine Sora-API-Video-App zu Seedance oder Wan?

Die sicherste Migration ändert den Anbieteradapter, nicht das restliche Produkt. Behalten Sie einen internen Vertrag für Prompts, Medien, Dauer, Orientierung, Audioabsicht und Auslieferung und übersetzen Sie ihn am Rand in Sora-, Seedance- oder Wan-Requests.

Ersetzen Sie nicht nur `sora-2` durch einen anderen Namen und behalten denselben Payload. Die APIs teilen ein asynchrones Muster, unterscheiden sich aber bei Endpoints, Formaten, Werten, Medienfeldern und Statusantworten.

## Inventarisieren Sie das verwendete Sora-Verhalten

Die [Videos API Reference](https://platform.openai.com/docs/api-reference/videos) dokumentiert Erstellung über `POST /v1/videos`, Statusabruf per ID und Felder wie `prompt`, `input_reference`, `model`, `seconds` und `size`. Ihre Anwendung kann außerdem von Remixes, Downloads, SDK-Objekten oder spezifischen Fehlern abhängen.

Erfassen Sie reale Abhängigkeiten:

| Abhängigkeit | Fragen |
|---|---|
| Modell | Ist der Code auf `sora-2` oder `sora-2-pro` festgelegt? |
| Input | Text, ein Referenzbild oder ein vorhandenes Video? |
| Dauer | Welche Werte treten in Produktion auf? |
| Größe | Speichert die UI Pixel, Verhältnis oder Preset? |
| Audio | Verspricht das Produkt erzeugtes Audio oder ersetzt es dieses? |
| Status | Wie werden externe Status lokal abgebildet? |
| Ausgabe | Wird sie gestreamt, geladen, kopiert oder per URL referenziert? |
| Fehler | Welche Fehler werden wiederholt oder angezeigt? |

Das Inventar zeigt, ob nur das Modell oder auch der Workflow wechselt.

## Definieren Sie einen anbieterneutralen Videojob

Erstellen Sie ein internes Objekt, das Produktabsicht abbildet, ohne gleiche Kontrollen vorzutäuschen.

```json
{
  "job_id": "vid_01J...",
  "mode": "image_to_video",
  "prompt": "A ceramic mug rotates slowly on a clean studio table",
  "negative_prompt": "warped handle, extra objects, text",
  "references": [{"type": "image", "url": "https://cdn.example/mug.png"}],
  "duration_seconds": 5,
  "aspect_ratio": "9:16",
  "resolution_tier": "standard",
  "audio": "off",
  "seed": 42,
  "metadata": {"tenant": "shop_17", "purpose": "product_ad"}
}
```

Markieren Sie Fähigkeiten als erforderlich, bevorzugt oder optional. Wenn eine Referenz verlangt ist, ist ihr stilles Weglassen ein Produktfehler. Ist ein Seed nur bei einem Anbieter nützlich, darf der Adapter ihn auslassen und die Entscheidung protokollieren.

## Bilden Sie Absicht statt Feldnamen ab

Sora nutzt `size`. Seedance kann `ratio`, `resolution`, `duration`, Referenzarrays und Audio bereitstellen. Wan kann je nach Modell `size` oder `ratio` sowie Prompt-Erweiterung, Shot-Typ, Referenzen oder Edit-Inputs verwenden.

| Produktabsicht | Sora-Beispiel | Seedance- oder Wan-Mapping |
|---|---|---|
| Modell | `sora-2` | Exakte Atlas-Modell-ID |
| Submission | `POST /v1/videos` | `POST /api/v1/model/generateVideo` |
| Prompt | `prompt` | Meist `prompt` |
| Referenz | `input_reference` | Routenabhängig `image` oder `reference_images` |
| Dauer | `seconds` | Routenabhängig `duration` und Bereich |
| Frame | `size` | `ratio`, `size` oder Auflösung plus Verhältnis |
| Audio | Modellverhalten | `generate_audio` oder Audioinput |
| Ergebnis | Video-ID | Prediction ID der Antwort |
| Status | Video-Endpoint | `GET /api/v1/model/prediction/{id}` |

Die Tabelle ist eine Migrationscheckliste, kein Schema. Kopieren Sie genaue Werte aus der Live-Seite.

## Wählen Sie bewusst eine Seedance-Route

Seedance ist eine Familie. Atlas Cloud dokumentiert Text-, Bild- und Referenzworkflows. [Seedance 2.0 Fast reference-to-video](https://www.atlascloud.ai/models/bytedance/seedance-2.0-fast/reference-to-video?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=migrate-sora-api-app-to-seedance-or-wan) akzeptiert Referenzmedien und bietet spezifische Kontrollen für Dauer, Auflösung, Verhältnis, Bitrate und Audio.

Erwägen Sie Seedance für:

* kurze audiovisuelle Clips;
* Führung durch Motiv, Stil oder Szene;
* Social- und Werbeformate;
* Wahl zwischen schneller Iteration und Qualitätsrouten.

Nehmen Sie nicht gleiche Inputs für alle Varianten an. Wählen Sie nach Modus und validieren Sie mit dem Schema.

## Wählen Sie bewusst eine Wan-Route

Wan bietet Generierung und Bearbeitung. Die [Wan-Seiten auf Atlas Cloud](https://www.atlascloud.ai/models/wan-3.0?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=migrate-sora-api-app-to-seedance-or-wan) umfassen Wan 3.0 und ältere Versionen mit Text-, Bild-, Referenz- oder Edit-Endpoints.

Erwägen Sie Wan für:

* eine breite Modusauswahl;
* Prompt-Erweiterung oder Shot-Kontrollen, sofern verfügbar;
* Referenz- oder Quellvideoworkflows;
* eine zweite Familie für Qualität oder Verfügbarkeit.

Beginnen Sie mit einem präzisen Endpoint. Ein vager `wan`-Adapter wird zu schwer testbaren Bedingungen.

## Implementieren Sie explizite Adapter

Halten Sie Validierung beim Adapter.

```python
def to_atlas_payload(job, route):
    payload = {
        "model": route.model_id,
        "prompt": job["prompt"],
    }

    if job.get("duration_seconds") is not None:
        payload[route.duration_field] = route.map_duration(job["duration_seconds"])

    if job.get("aspect_ratio"):
        route.apply_frame_shape(payload, job["aspect_ratio"], job.get("resolution_tier"))

    if job.get("references"):
        route.apply_references(payload, job["references"])

    if job.get("audio") != "unspecified":
        route.apply_audio(payload, job["audio"])

    route.validate(payload)
    return payload
```

Die Routenkonfiguration muss inkompatible Anforderungen ablehnen. Wandeln Sie 12 Sekunden nicht still in 5 um, Querformat nicht in Hochformat und ignorieren Sie keine Referenzen.

Speichern Sie internen Job und ausgehenden Payload, um Qualitätsregressionen und Abrechnungsfragen zu reproduzieren.

## Bewahren Sie asynchrone Jobsicherheit

Atlas Cloud liefert eine prediction ID und beschreibt den Lebenszyklus in [Predictions](https://www.atlascloud.ai/docs/en/predictions?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=migrate-sora-api-app-to-seedance-or-wan). Verwenden Sie dauerhafte lokale Status.

| Lokaler Status | Bedeutung |
|---|---|
| `ready` | Validiert, nicht gesendet |
| `submitted` | Externe ID gespeichert |
| `processing` | Anbieter verarbeitet |
| `succeeded` | Ausgabemetadaten abgerufen |
| `failed` | Terminaler Fehler |
| `rejected` | Abgeschlossen, aber Qualität abgelehnt |

Erzeugen Sie vor Submission einen Idempotenzschlüssel. Speichern Sie Anbieter, Route, Payload-Hash und externe ID zusammen. Verliert ein Worker die Verbindung, prüft er den Datensatz vor einem weiteren bezahlten Job.

Pollen Sie mit wachsendem Intervall und Jitter. Häufigeres Polling beschleunigt die Generierung nicht.

## Erstellen Sie ein Migrations-Regressionsset

Nutzen Sie 20 bis 50 reale Jobs einschließlich schwieriger Fälle. Halten Sie Assets und Produktabsicht konstant.

Bewerten Sie:

* Prompttreue;
* Motiv- und Produktkonsistenz;
* Bewegungsstabilität;
* zeitliche Kontinuität;
* Referenztreue;
* audiovisuelle Passung;
* Format und Auflösung;
* Editierbarkeit von Anfang und Ende;
* Verteilung der Abschlusszeit;
* Kosten pro akzeptierter Ausgabe.

Vergleichen Sie nicht nur einen Clip. Zufall verzerrt; wiederholen Sie, wenn das Produkt Retries erlaubt.

## Rollen Sie mit reversiblem Trafficplan aus

Gehen Sie stufenweise vor.

1. Spielen Sie nicht sensible Prompts offline ab.
2. Führen Sie nicht ausgelieferte Shadow-Jobs aus.
3. Senden Sie einen kleinen Canary-Anteil an eine neue Route.
4. Vergleichen Sie Fehler, Zeit, Akzeptanz und Kosten.
5. Erhöhen Sie nur bei stabilen Schwellen.
6. Behalten Sie den Sora-Adapter, solange Rollback nötig ist.

Entscheiden Sie, ob der Anbieter sichtbar sein soll. Bei starken Unterschieden kann eine Modellauswahl ehrlich sein. Verkauft das Produkt eine Fähigkeit, routen Sie nur zwischen Alternativen mit demselben Akzeptanzvertrag.

## Fazit

Migrieren Sie, indem Sie einen anbieterneutralen Job erhalten und nur den Adapter ersetzen. Bilden Sie Fähigkeiten explizit ab, wählen Sie einen realen Atlas-Endpoint, speichern Sie jede prediction ID, lehnen Sie inkompatible Anforderungen ab und vergleichen Sie Kosten pro akzeptierter Ausgabe mit einem festen Set.

Seedance und Wan sind keine Modellnamen-Drop-ins. Sie werden sichere Alternativen, wenn Anbieterschemas Implementierungsdetails bleiben und die Migration reversibel ist.

## FAQ

### Kann ich nur den Sora-Modellnamen ersetzen und denselben Body behalten?

Nein. Sora, Seedance und Wan verwenden unterschiedliche IDs, Endpoints, Felder, Werte und Medieninputs. Behalten Sie ein internes Jobschema und schreiben Sie für jede Route einen Adapter.

### Was ist die wichtigste architektonische Gemeinsamkeit?

Videogenerierung ist asynchron. Die Anwendung sendet einen Job, speichert eine externe ID, prüft später den Status und holt die Ausgabe erst nach Abschluss ab.

### Welche Felder müssen explizit abgebildet werden?

Modell-ID, Prompt, Referenzmedien, Dauer, Seitenverhältnis oder Größe, Auflösung, Audio, Seed, Sicherheitsverhalten und Anbieterstatus. Nicht unterstützte Felder dürfen nicht still ignoriert werden.

### Sollte ich Seedance oder Wan wählen?

Testen Sie beide mit realen Jobs. Seedance ist stark für referenzgeführte Kurzvideos und audiovisuelle Aufgaben, Wan bietet viele Text-, Bild-, Referenz- und Edit-Routen. Die beste Wahl richtet sich nach akzeptierten Ergebnissen.

### Wie verhindere ich doppelte bezahlte Jobs?

Erzeugen Sie einen internen Idempotenzschlüssel, speichern Sie die Anbieter-ID sofort und prüfen Sie den vorhandenen Job vor jedem Retry. Netzwerkunsicherheit darf keine blinde Neusubmission auslösen.

### Wie viel Traffic sollte ich zuerst migrieren?

Beginnen Sie mit Offline-Regressionen und danach mit einem kleinen Shadow- oder Canary-Anteil. Erhöhen Sie erst, wenn Akzeptanz, Fehler, Abschlusszeit und Kosten innerhalb der Grenzwerte bleiben.
