APIMaster.ai

Seedance 2.0 Fast Video Oluşturma API'si

APIMaster üzerinde Seedance 2.0 Fast parametreleri, referans medya, asenkron görevler, kimlik doğrulamalı indirmeler ve süre faturalandırması.

Seedance 2.0 Fast video oluşturma

Metinden videoya, görüntüden videoya, ilk/son kare oluşturma ve video veya ses referansları için seedance-2.0-fast kullanın. Fast, 480p ve 720p'ü destekler ve çıktı süreleri 4 ile 15 saniye arasındadır.

İlk/son kare oluşturma için açıkça aspect_ratio: "adaptive" ayarlayın. Referans ses, bir görüntü veya video ile birlikte olmalıdır. APIMaster API anahtarınızı sunucunuzda saklayın.

Uç Noktalar ve Kimlik Doğrulama

Temel URL: https://apimaster.ai/v1. Gönderirken, sorgularken ve indirirken Authorization: Bearer YOUR_API_KEY gönderin.

İşlem Yöntem ve yol
Video oluştur POST /v1/videos/generations
Uyumlu sonucu sorgula GET /v1/video/generations/{task_id}
OpenAI tarzı sonucu sorgula GET /v1/videos/{task_id}
Videoyu indir GET /v1/videos/{task_id}/content
İstenen son kareyi indir GET /v1/videos/{task_id}/last-frame

APIMaster tarafından döndürülen genel task_id kullanın. Video görevleri ve medya inceleme görevleri farklı kaynaklardır: videolar için yukarıdaki video sorgu uç noktalarını kullanın. Kabul edilen bir istek bir asenkron görev oluşturur; HTTP başarısı, videonun tamamlandığı anlamına gelmez.

Parametreler

Alan Tür Gerekli / varsayılan Açıklama
model string Gerekli seedance-2.0-fast
prompt string Gerekli En fazla 4000 karakter. Konuyu, hareketi, sahneyi, kamerayı ve istenen sesi tanımlayın; kısa prompt'lar kontrolü daha kolaydır.
duration integer 5 Çıktı uzunluğu, 4–15 saniye. -1 desteklenmez.
resolution string 720p 480p veya 720p; 1080p ve 4k desteklenmez.
aspect_ratio string 16:9 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 veya adaptive.
ratio string aspect_ratio ile aynı APIMaster takma adı. Her ikisi de görünürse değerleri eşleşmelidir.
size string aspect_ratio ile aynı 16:9 veya adaptive gibi bir oran. İki boyutu ayrı ayrı ifade etmek için aspect_ratio ve resolution tercih edin. Çelişen belirtimler 400 döndürür.
seed integer Atlanmış Varyasyonu kontrol eder; eşleşen seed'ler özdeş çıktı garantisi vermez.
generate_audio boolean true Eşlik eden ses oluşturur; sessiz çıktı için false kullanın.
image_urls string[] Atlanmış En fazla 9 referans görüntü. Genel görüntü URL'leri veya onaylanmış APIMaster asset:// kimlikleri.
image_with_roles object[] Atlanmış url ve role içeren görüntü nesneleri; image_urls ile birlikte görünemez. Aşağıdaki rol kurallarına bakın.
video_urls string[] Atlanmış En fazla 3 referans video, toplam faturalandırılabilir giriş süresi en fazla 15 saniye. Malzeme gereksinimlerine bakın.
audio_urls string[] Atlanmış En fazla 3 referans ses dosyası, birleşik süre en fazla 15 saniye. Görüntü veya video referansları gerektirir.
return_last_frame boolean false Başarılı tamamlanmada, sonuç bir son kare içeriyorsa kimlik doğrulamalı bir APIMaster son kare indirme URL'si döndür.
nsfw_check boolean false Oluşturmadan önce metin/görüntü içeriği denetimi talep edin. Videolar ve ses bu denetim geçişine dahil değildir.
tools object[] Atlanmış Arama aracı bildirimi: [{"type":"web_search"}].

Taslak oluşturma ve taslak yükseltmeleri yalnızca Seedance 2.5'e özeldir. Bu modele draft: true veya draft_task_id geçirmeyin.

Referans materyalleri

Herkese açık HTTPS URL'leri veya APIMaster medya kütüphanenizden onaylanmış ID'ler sağlayın. Giriş sayfalarının arkasındaki veya kendi yetkilendirme başlıklarınızı gerektiren dosyalar getirilemez. Başarılı bir resim yüklemesi, içeriğin onaylandığı veya her model gereksinimine uyduğu anlamına gelmez.

Materyal Gereksinimler
Referans görseller En fazla 9; okunabilir RGB JPEG/PNG görseller kullanın. APIMaster görsel-yükleme uç noktasının kendi 20 MiB limiti vardır ve JPEG, PNG, GIF ve WebP kabul eder.
Referans videolar En fazla 3; MP4/MOV, H.264/H.265 video; mevcut olduğunda AAC/MP3 ses. 480p–720p referans videosu kullanın. Birleşik referans süresi, 15 faturalanabilir saniye içine sığmalıdır. APIMaster, ücretlendirmeden önce erişilebilir MP4/MOV süresini doğrular; bu kontrol ve faturalama için girdi klip süreleri tam saniyelere yuvarlanır.
Referans ses En fazla 3; WAV veya MP3, dosya başına en fazla 20 MB, birleşik süre en fazla 15 saniye. Her zaman bir görsel veya video referansı ile birlikte kullanın.

Yeterli detaya sahip net resimler kullanın, bozuk veya eksik dosyalardan kaçının ve referans-video hareketini prompt'unuzla tutarlı tutun. Medya, gönderim kabul edilmiş olsa bile asenkron format veya içerik incelemesinde başarısız olabilir.

Resim rolleri

role Anlamı
first_frame Başlangıç karesi; en fazla bir tane
last_frame Bitiş karesi; en fazla bir tane ve bir ilk kare gerektirir
reference_image Referans resmi, onaylanmış karakter varlıkları dahil

İlk/son kare görevleri için, aspect_ratio değerini adaptive olarak ayarlayın ve video_urls ile audio_urls değerlerini atlayın. Açık roller için image_with_roles kullanın; ayrıca image_urls geçirmeyin.

{
  "model": "seedance-2.0-fast",
  "prompt": "A paper boat drifts gently from the starting composition to the ending composition",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_with_roles": [
    {"url": "https://your-storage.example/start.png", "role": "first_frame"},
    {"url": "https://your-storage.example/end.png", "role": "last_frame"}
  ],
  "generate_audio": false
}

Yüklemeler ve medya kütüphanesi

Yerel bir resmi, Bearer yetkilendirmesi ve multipart alanı file kullanarak POST /v1/uploads/images ile yükleyin. Döndürülen üst düzey url, genel bir resim girdisi olarak kullanılabilir.

curl "https://apimaster.ai/v1/uploads/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@reference.png"

Yeniden kullanılabilir veya karakter materyalleri için, POST /v1/seedance2/private-avatar/groups ile bir grup oluşturun, materyalleri POST /v1/seedance2/private-avatar/assets ile gönderin, incelemeyi GET /v1/tasks/{asset_task_id} ile sorgulayın ve sadece Active varlıklarını asset://{asset_id} olarak kullanın. Bu kaynaklar hesabınıza aittir. model: "seedance-2.0-fast" değerini açıkça belirtin. Başka bir platform veya hesaptan gelen Varlık ID'leri burada kullanılamaz.

Oluşturma, gönderme, inceleme, kısmi başarısızlıklar ve silme için medya-kütüphanesi iş akışına bakın. Yükleme ve varlık yönetimi uç noktaları paylaşılmıştır; bu sayfadaki oluşturma limitleri Fast için geçerlidir. Başarısız bir inceleme detaylı bir sebep döndürmeyebilir; desteklenen bir formatta açık, uyumlu materyal kullanın ve yeni bir inceleme gönderin. Mevcut bir inceleme hala işlenirken görevi tekrar tekrar oluşturmayın.

Bir video gönderin

curl "https://apimaster.ai/v1/videos/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model":"seedance-2.0-fast",
    "prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
    "duration":5,
    "resolution":"720p",
    "aspect_ratio":"16:9",
    "generate_audio":true,
    "return_last_frame":true
  }'

Oluşturma yanıtı:

{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}

Bir gönderme zaman aşımı belirsizdir: istek kabul edilmiş olabilir. Yeniden göndermeden önce görev geçmişinizi kontrol edin; başka bir başarılı gönderim ayrı bir faturalanabilir görev oluşturur.

Video ve ses referansları

{
  "model": "seedance-2.0-fast",
  "prompt": "Follow the reference motion and keep the scene consistent with the image",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_urls": ["https://your-storage.example/reference.png"],
  "video_urls": ["https://your-storage.example/reference.mp4"],
  "audio_urls": ["https://your-storage.example/reference.mp3"],
  "generate_audio": true
}

Sorgulama ve indirme

Her 3–5 saniyede bir sorgulayın. Başarılı veya başarısız olduğunda durun.

curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

Uyumlu sorgu başarısı:

{
  "code":"success",
  "message":"",
  "data":{
    "error":null,
    "format":"mp4",
    "metadata":null,
    "status":"succeeded",
    "task_id":"task_PUBLIC_VIDEO_ID",
    "url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
    "actual_time":118,
    "last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
  }
}

Örnek, isteğe bağlı tamamlama alanlarını içerir. actual_time, gönderimden tamamlamaya geçen süreyi saniye cinsinden belirtir, faturalanabilir video süresini değil. last_frame_url, son bir kare talep edilmediyse veya mevcut değilse atlanır. Başarısız görevler, yalnızca başarılı durumlarda bulunan geçen süre veya son kare alanlarını içermez.

OpenAI tarzı sorgu:

curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Anlamı Uyumlu data.status OpenAI tarzı status
Bekliyor queued queued
Oluşturuluyor processing in_progress
Başarılı succeeded completed
Başarısız failed failed

OpenAI tarzı nesne, genel görev kimliği için id ve video indirme URL'si için url kullanır. İsteğe bağlı actual_time ve last_frame_url en üst düzeyde görünür. Başarısızlık durumunda, karşılık gelen sonuç nesnesindeki error.message alanını okuyun. Yanıtlar parasal alanlar içermez.

Aynı hesabın API anahtarıyla indirin. Bir sonuç URL'sini yetkilendirme olmadan açmak yeterli değildir. Çıktıyı hemen kaydedin.

curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
  -H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
  -H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg

Python tam iş akışı

import os
import time
import requests

base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
    "model": "seedance-2.0-fast",
    "prompt": "A small paper boat on calm water at sunrise",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": True,
    "return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
    response = requests.get(base + "/video/generations/" + task_id,
                            headers=headers, timeout=30)
    response.raise_for_status()
    task = response.json()["data"]
    if task["status"] == "failed":
        raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
    if task["status"] == "succeeded":
        print("Elapsed seconds:", task.get("actual_time"))
        for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
            if task.get(field):
                with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
                    result.raise_for_status()
                    with open(filename, "wb") as out:
                        for chunk in result.iter_content(1024 * 1024):
                            out.write(chunk)
        break
    time.sleep(5)
else:
    raise TimeoutError("Task still processing; query the same task_id later")

Süre bazlı faturalama

Dört kademe bulunur: 480P, 720P, 480P-input ve 720P-input. "Yüklenen videolar" etiketli bir kademe, isteğin referans video girdisi içerdiği anlamına gelir. Görüntü/ses referansları da mevcut olsa bile, talep edilen çıktı çözünürlüğü için girdi kademesini seçin.

  • Referans video olmadan: oluşturulan video saniyeleri × ilgili çözünürlüğün birim fiyatı.
  • Referans video ile: (toplam referans video saniyeleri + oluşturulan video saniyeleri) × ilgili girdi kademesi birim fiyatı.
  • Yapılandırılmış temel birim fiyat, uygulanabilir kanal ve hesap/grup katsayıları ile çarpılarak nihai birim fiyatınız elde edilir. Uygulanabilir fiyat için model kartınızı ve cüzdan tüketim kayıtlarınızı kontrol edin.

Örneğin, 4 saniyelik bir referans video ve 5 saniyelik bir çıktı, girdi kademesinde 9 faturalanabilir saniye kullanır. Girdi kademesi birim fiyatı normal kademeden farklı olabilir; sadece çıktı süresini hesaplamayın veya video referanslarına normal kademeyi uygulamayın. Görüntüler ve ses, referans video saniyeleri eklemez. Oluşturulan ses, bu dört yapılandırılmış fiyat için ayrı bir ses/sessiz kademesi oluşturmaz.

Gönderim, talep edilen çıktı süresini ve mevcut olduğunda doğrulanmış girdi video süresini rezerve eder. Atlanmış çıktı süresi, 5 çıktı saniyesi rezerve eder. Görev, gönderim zamanındaki tarifesini korur; tamamlanma, gerçek süreyi mutabakata bağlar. Başarısız oluşturma, video görev ücretini iade eder.

Hatalar ve sorun giderme

Geçersiz istekler bir HTTP hatası döndürür. Durum kodunun yanı sıra JSON hata mesajını da okuyun. Parametre doğrulaması APIMaster'ın hata sarmalayıcısını kullanır, örneğin:

{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
Sorun Eylem
Desteklenmeyen çözünürlük / süre 480p veya 720p ve 4 ile 15 arasında bir tamsayı süre seçin.
Çelişen en-boy oranı veya boyut Tutarlı aspect_ratio, ratio, size ve resolution kullanın; tercihen sadece açık en-boy oranı/çözünürlük çiftini tutun.
İlk/son kare kısıtlamaları adaptive kullanın, her rolden en fazla bir tane olacak şekilde ve video/ses referanslarını atlayın.
Referans video incelenemiyor Erişilebilir, tam bir MP4/MOV ve geçerli bir süre sağlayın.
Görüntü/video olmadan referans sesi Görüntü/video referansları ekleyin veya ses referansını kaldırın.
İçerik denetimi reddi Metni veya görüntüyü değiştirin ve yeni bir istek gönderin. Bir denetim servisi hatası, oluşturmanın devam etmesine izin verebilir; bu mutlak bir güvenlik garantisi değildir.
FormatUnsupported / Asenkron format/içerik reddi Başarısız görevin error.message'ını okuyun, formatları ve materyal gereksinimlerini kontrol edin ve kaynağı değiştirin.
401 Geçerli bir Bearer API anahtarı sağlayın.
Yetersiz bakiye Bakiye yükleyin veya yeterli kotası olan bir anahtar kullanın.
429 / geçici servis hatası Bekleyin ve geri çekilme ile yeniden deneyin; belirsiz bir zaman aşımından sonra yinelenen gönderimlerden kaçının.

Senkron geçersiz parametre istekleri video görevi oluşturmaz veya oluşturma ücreti kesmez. Kabul edilen görevler asenkron olarak başarısız olabilir; bir sonucu kullanmadan önce nihai görev durumunu kontrol edin.

Ayrıca bakınız: Video oluşturmaya genel bakış, Seedance 2.0, Seedance 2.0 Mini ve Seedance 2.5.