APIMaster.ai

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.