Seedance 2.0 Mini Video Oluşturma API'si
Seedance 2.0 Mini parametreleri, referans medya, asenkron görevler, kimlik doğrulamalı indirmeler ve süre faturalandırması APIMaster üzerinde.
Seedance 2.0 Mini 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-mini kullanın. Mini, 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-mini |
prompt |
string | Gerekli | APIMaster tarafından model özel bir prompt uzunluk sınırı dayatılmaz. Konuyu, hareketi, sahneyi, kamerayı ve istenen sesi tanımlayın; kısa promptlar 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ıyı garanti etmez. |
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. Rol kurallarına aşağıdan bakın. |
video_urls |
string[] | Atlanmış | En fazla 3 referans video, toplam faturalanabilir girdi 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çerdiğinde kimlik doğrulamalı bir APIMaster son kare indirme URL'si döndürü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 özgüdür. Bu modele draft: true veya draft_task_id geçirmeyin.
Referans materyalleri
Herkese açık HTTPS URL'leri veya APIMaster medya kütüphanenizden onaylı ID'ler sağlayın. Giriş gerektiren sayfaların arkasındaki dosyalar veya kendi yetkilendirme başlıklarınızı gerektiren dosyalar alınamaz. 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 görseller kullanın, bozuk veya eksik dosyalardan kaçının ve referans videosundaki hareketi prompt'unuzla tutarlı tutun. Medya, gönderim kabul edilmiş olsa bile asenkron format veya içerik incelemesinde başarısız olabilir.
Görsel roller
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 görseli, onaylı 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-mini",
"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 görseli, Bearer yetkilendirmesi ve multipart alanı file kullanarak POST /v1/uploads/images ile yükleyin. Döndürülen üst seviye 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 yalnızca Active durumundaki varlıkları asset://{asset_id} olarak kullanın. Bu kaynaklar hesabınıza aittir. model: "seedance-2.0-mini" 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şlemleri için medya-kütüphanesi iş akışına bakın. Yükleme ve varlık yönetimi endpoint'leri paylaşılmıştır; bu sayfadaki üretim limitleri Mini için geçerlidir. Başarısız bir inceleme detaylı bir sebep döndürmeyebilir; desteklenen bir formatta net ve uyumlu materyal kullanın ve yeni bir inceleme gönderin. Mevcut bir inceleme hala işlenirken görevi tekrar tekrar oluşturmayın.
Video gönderme
curl "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"seedance-2.0-mini",
"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-mini",
"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":138,
"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 |
| Üretiliyor | 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ı ile 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-mini",
"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üreye dayalı faturalama
Dört kademe vardır: 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örsel/ses referansları da mevcut olsa bile, talep edilen çıktı çözünürlüğü için ilgili 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, geçerli kanal ve hesap/grup katsayıları ile çarpılarak nihai birim fiyatınız elde edilir. Geçerli fiyat için model kartınızı ve cüzdan tüketim kayıtlarınızı kontrol edin.
Örneğin, 4 saniyelik bir referans videosu 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örseller ve ses, referans video saniyesi 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; tamamlama, gerçek süreyi mutabık kılar. Başarısız oluşturma, video görevi ücretini iade eder.
Hatalar ve sorun giderme
Geçersiz istekler bir HTTP hatası döndürür. JSON hata mesajını ve durum kodunu 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 seçin ve 4 ile 15 arasında bir tamsayı süre belirleyin. |
| Ç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 videosu incelenemiyor | Erişilebilir, tam bir MP4/MOV dosyası ve geçerli bir süre sağlayın. |
| Görsel/video olmadan referans sesi | Görsel/video referansları ekleyin veya ses referansını kaldırın. |
| İçerik denetimi reddi | Metni veya görseli 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 değerini 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 çekilmeli (backoff) 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 için ücretlendirmez. Kabul edilen görevler yine de 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 Fast ve Seedance 2.5.
