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

# Sora API video uygulaması Seedance veya Wan'a nasıl taşınır?

> Sora'dan Seedance veya Wan'a geçerken kararlı bir iç video job sözleşmesini sağlayıcı payload'ından ayırın. Prompt, girdi, süre, boyut, ses ve durum alanlarını adapter ile eşleyin, her dış görev kimliğini saklayın ve trafiği taşımadan önce sabit bir regresyon kümesinde kabul edilen çıktıları karşılaştırın.

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

# Sora API video uygulaması Seedance veya Wan'a nasıl taşınır?

En güvenli taşıma ürünün geri kalanını değil, sağlayıcı adapter'ını değiştirir. Prompt, kaynak medya, süre, yön, ses niyeti ve teslimat için tek bir iç video job sözleşmesi tutun, ardından sınırda bunu Sora, Seedance veya Wan isteklerine çevirin.

`sora-2` yerine başka bir model adı koyup aynı payload'ı göndermeyin. API'ler asenkron job kalıbını paylaşır ancak endpoint, istek biçimi, kabul edilen değer, medya alanı ve durum yanıtları farklıdır.

## Uygulamanın bağlı olduğu Sora davranışlarını envanterleyin

OpenAI'ın güncel [Videos API referansı](https://platform.openai.com/docs/api-reference/videos), `POST /v1/videos` ile job oluşturmayı, video kimliğinden durum almayı ve `prompt`, `input_reference`, `model`, `seconds`, `size` alanlarını belgeler. Uygulamanız remix, indirme, SDK yanıt nesnesi veya OpenAI'a özel hatalara da bağlı olabilir.

Yeni adapter yazmadan önce gerçek bağımlılıkları kaydedin:

| Bağımlılık | Yanıtlanacak soru |
|---|---|
| Model | Kod `sora-2` veya `sora-2-pro`ya sabit mi? |
| Girdi | Yalnız metin, tek referans görsel veya mevcut video mu? |
| Süre | Üretimde hangi değerler kullanılıyor? |
| Boyut | UI piksel, oran veya adlandırılmış preset mi saklıyor? |
| Ses | Ürün üretilmiş ses mi vaat ediyor, sonra mı değiştiriyor? |
| Durum | Hangi sağlayıcı durumları yerel duruma eşleniyor? |
| Çıktı | Stream, indirme, kopyalama veya URL referansı mı? |
| Hata | Hangileri tekrar ediliyor, kullanıcıya gösteriliyor veya yükseltiliyor? |

Envanter, taşımanın model değişikliği mi, workflow değişikliği mi veya ikisi birden mi olduğunu gösterir.

## Sağlayıcıdan bağımsız video job tanımlayın

Her sağlayıcının aynı kontrolü desteklediğini varsaymadan ürün niyetini temsil eden iç nesne oluşturun.

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

Capability'leri zorunlu, tercih edilen veya opsiyonel olarak işaretleyin. Kullanıcı açıkça referans isterse bunu sessizce atmak ürün hatasıdır. Seed yalnızca bir sağlayıcıda işe yarıyorsa adapter atlayabilir ama kararı kaydetmelidir.

## Alan adlarını değil niyeti eşleyin

Sora piksel boyutlarını `size` ile kullanır. Seedance varyantları `ratio`, `resolution`, `duration`, referans dizileri ve ses kontrolleri sunabilir. Wan rotaları modele göre `size` veya `ratio` kullanabilir, prompt genişletme, çekim türü, referans medya veya edit girdisi sağlayabilir.

| Ürün niyeti | Sora örneği | Seedance veya Wan eşlemesi |
|---|---|---|
| Model | `sora-2` | Kesin canlı Atlas model kimliği |
| Gönderim | `POST /v1/videos` | `POST /api/v1/model/generateVideo` |
| Prompt | `prompt` | Genellikle `prompt` |
| Referans görsel | `input_reference` | Rotaya özel `image` veya `reference_images` |
| Süre | `seconds` | Rotaya özel `duration` ve kabul edilen aralık |
| Çerçeve | `size` | `ratio`, `size` veya çözünürlük artı oran |
| Ses | Model davranışı | Rotaya özel `generate_audio` veya ses girdisi |
| Sonuç anahtarı | Video kimliği | Yanıttaki prediction ID |
| Durum | Video durum endpoint'i | `GET /api/v1/model/prediction/{id}` |

Bu tablo istek şeması değil, taşıma kontrol listesidir. Kesin değerleri seçtiğiniz canlı model sayfasından alın.

## Seedance rotasını bilinçli seçin

Seedance değiştirilebilir tek endpoint değil, model ailesidir. Atlas Cloud çeşitli metin, görsel ve referans akışları belgeler. Örneğin [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), referans medya kabul eder ve süre, çözünürlük, oran, bitrate ve ses için rota kontrolleri sağlar.

Şunları vurgulayan ürünlerde Seedance'i değerlendirin:

* kısa görsel-işitsel klipler;
* referansla özne, stil veya sahne yönlendirme;
* sosyal ve reklam formatları;
* hızlı iterasyon ile yüksek kalite rotaları arasında seçim.

Her Seedance varyantının aynı girdileri kabul ettiğini varsaymayın. Moddan rota seçin ve göndermeden önce o şemayla doğrulayın.

## Wan rotasını bilinçli seçin

Wan birden fazla nesil ve edit yolu sunar. [Atlas Cloud Wan sayfaları](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) yeni Wan 3.0 seçenekleriyle önceki sürümleri içerir; ayrı endpoint'ler text-to-video, image-to-video, referans veya video-edit davranışını tanımlar.

Şu ihtiyaçlarda Wan'ı değerlendirin:

* geniş üretim ve edit modu seçimi;
* desteklenen rotalarda prompt genişletme veya çekim kontrolü;
* referans veya kaynak video iş akışları;
* kalite ya da erişilebilirlik yönlendirmesi için ikinci model ailesi.

İlk taşıma için tek ve kesin endpoint seçin. Belirsiz bir `wan` adapter'ı gizli koşullar koleksiyonuna dönüşür ve test edilmesi zordur.

## Açık adapter'lar uygulayın

Doğrulamayı adapter'a yakın tutun. Bu basitleştirilmiş Python taslağı, rota alanları uydurmadan sınırı gösterir.

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

Rota yapılandırması desteklenmeyen zorunlu koşulu reddetmelidir. 12 saniyeyi sessizce 5'e indirmemeli, yatayı dikeye çevirmemeli veya referansı görmezden gelmemelidir.

İç job ve kesin dış payload'ı saklayın. Kalite regresyonu ve faturalandırma sorunları böyle yeniden üretilebilir.

## Asenkron job güvenliğini koruyun

Atlas Cloud medya job'ları için prediction ID döndürür ve yaşam döngüsünü [Predictions rehberinde](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) açıklar. Sağlayıcı durumlarını uygulamaya yaymak yerine kalıcı yerel durumlar kullanın.

| Yerel durum | Anlam |
|---|---|
| `ready` | Doğrulandı ancak gönderilmedi |
| `submitted` | Dış görev kimliği saklandı |
| `processing` | Sağlayıcı işlem yaptığını bildiriyor |
| `succeeded` | Çıktı metadata'sı alındı |
| `failed` | Sağlayıcı terminal hata döndürdü |
| `rejected` | Çıktı tamamlandı ama kalite kapısını geçmedi |

Göndermeden önce idempotency key oluşturun. Sağlayıcı, rota, payload hash'i ve dış görev kimliğini tek kalıcı kayda yazın. Worker gönderim sonrası bağlantıyı kaybederse başka ücretli istek oluşturmadan kaydı kontrol etmelidir.

Artan aralık ve jitter ile poll edin. Sık polling videoyu daha hızlı bitirmez, sadece yük ekler.

## Taşıma regresyon kümesi oluşturun

Zor örnekler dahil gerçek trafiği temsil eden 20 ile 50 job kullanın. Sağlayıcılar arasında aynı kaynakları ve ürün niyetini koruyun.

Her sonucu şunlarla puanlayın:

* prompt uyumu;
* özne ve ürün tutarlılığı;
* hareket stabilitesi;
* zamansal süreklilik;
* referans doğruluğu;
* ses istendiğinde görsel-işitsel uyum;
* kırpma ve çözünürlük uygunluğu;
* ilk ve son karelerin düzenlenebilirliği;
* tamamlanma süresi dağılımı;
* kabul edilen çıktı başına toplam maliyet.

Tek gösteri klibini karşılaştırmayın. Rastlantısallık bir sağlayıcıyı gereğinden iyi veya kötü gösterebilir. Ürün tekrar kabul ediyorsa birden çok deneme yapın.

## Geri alınabilir trafik planıyla yayınlayın

Offline testten üretime aşamalı geçin.

1. Saklanan hassas olmayan prompt'ları offline oynatın.
2. Son kullanıcıya ulaşmayan shadow job'lar çalıştırın.
3. Küçük canary payını tek yeni rotaya gönderin.
4. Hata, süre, kabul ve maliyeti karşılaştırın.
5. Eşikler korunursa trafiği artırın.
6. Geri dönüş gereksiz olana kadar Sora adapter'ını tutun.

Kullanıcının sağlayıcı adını görüp görmeyeceğine karar verin. Modeller önemli ölçüde farklıysa seçim göstermek dürüst olabilir. Ürün model değil capability satıyorsa aynı kabul sözleşmesini karşılayan seçenekler arasında yönlendirin.

## Sonuç

Sora'dan Seedance veya Wan'a, sağlayıcıdan bağımsız video job'ı koruyup yalnız adapter'ı değiştirerek geçin. Capability'leri açık eşleyin, gerçek bir Atlas endpoint'i seçin, tüm prediction ID'leri saklayın, desteklenmeyen gereksinimleri reddedin ve sabit regresyon kümesiyle kabul edilen çıktı maliyetini karşılaştırın.

Seedance ve Wan yalnız model adı değiştirilerek kullanılan drop-in çözümler değildir. Sağlayıcı şemaları uygulama detayı olarak ele alındığında ve taşıma geri alınabilir tutulduğunda güvenli alternatif olurlar.

## FAQ

### Sadece Sora model adını değiştirip aynı request body kullanılabilir mi?

Hayır. Sora, Seedance ve Wan farklı model kimlikleri, endpoint'ler, alanlar, değerler ve medya girdileri kullanır. İç job şemanızı koruyun ve her rota için adapter yazın.

### Bu API'ler arasındaki en büyük ortak mimari özellik nedir?

Video üretimi asenkrondur. Uygulama job gönderir, dış kimliği saklar, durumu daha sonra kontrol eder ve çıktıyı yalnızca tamamlandıktan sonra alır.

### Hangi alanlar açıkça eşlenmeli?

Model kimliği, prompt, referans medya, süre, oran veya boyut, çözünürlük, ses, seed, güvenlik davranışı ve sağlayıcı durumunu eşleyin. Desteklenmeyen alanları sessizce görmezden gelmeyin.

### Seedance mı Wan mı seçilmeli?

Her ikisini gerçek uygulama işleriyle test edin. Seedance referans tabanlı kısa video ve görsel-işitsel görevlerde güçlüdür; Wan çok sayıda metin, görsel, referans ve düzenleme rotası sunar. Kabul edilen çıktı belirleyicidir.

### Taşıma sırasında mükerrer ücretli job nasıl önlenir?

İç idempotency key oluşturun, gönderimden hemen sonra sağlayıcı kimliğini saklayın ve yeniden denemeden önce mevcut job'ı kontrol edin. Ağ belirsizliği kör yeniden gönderim başlatmamalıdır.

### Önce ne kadar trafik taşınmalı?

Offline regresyon prompt'larıyla başlayın, sonra küçük bir shadow veya canary payına geçin. Kabul, hata, tamamlanma süresi ve maliyet eşiklerde kaldığında artırın.
