İçerik Üretim API (Video / Görsel / Müzik)
Onysoft AI Gateway ile video, görsel ve müzik üretimi. Tek bir endpoint üzerinden Veo, Runway, Kling, Wan, Seedream, Flux, GPT Image, Imagen, Ideogram, Grok Imagine, Suno ve 40+ sağlayıcı modelini kullanın.
Asenkron Yapı
Video, görsel ve müzik üretimi asenkron çalışır. İstek gönderdiğinizde bir task_id alırsınız. Bu ID ile üretim durumunu sorgulayarak içeriğinizin hazır olup olmadığını kontrol edersiniz.
Hangi Endpoint Hangi Model?
Text/chat modelleri için /v1/chat/completions kullanılır (senkron, streaming destekli).
Video, görsel ve müzik modelleri için /v1/video/generate kullanılır (asenkron).
İstisna: Google Gemini görsel üretim modelleri (gemini-*-image) chat completions endpoint'i üzerinden çağrılır.
Video Oluşturma
/v1/video/generate
Yeni bir video, görsel veya müzik üretim görevi başlatır.
Parametreler
Video modeli. Örnek: veo3_fast, kling-2.5, runway_gen4_turbo
Video açıklaması (İngilizce önerilir). Detaylı ve açıklayıcı promptlar daha iyi sonuç verir.
En-boy oranı: "16:9", "9:16", "1:1". Varsayılan: "16:9"
Video süresi (saniye). Varsayılan: 5. Modele göre 5, 6, 8 veya 10 saniye desteklenir.
Kaynak görsel. Image-to-video ve image-to-image modelleri için zorunludur. Public HTTP URL veya base64 data URI olabilir.
image_url alternatifi. Base64 encoded görsel. Sistem bunu otomatik temp dosyaya kaydeder ve public URL üretir.
Çözünürlük. Modele göre farklı değerler destekler: "720p", "1080p" (video), "1K", "2K", "4K" (görsel). Backend otomatik doğru değeri seçer.
Kalite seviyesi. "high", "standard", "low". Sadece gpt-image ve seedream modellerinde kullanılır.
İstenmeyen öğeler. Hangi nesne/stil/renk üretilmek istenmediğini belirtin.
Örnek İstekler
Video Üretimi (Text-to-Video)
curl -X POST https://api.onysoft.com/v1/video/generate \
-H "Authorization: Bearer sk-ony-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo3_fast",
"prompt": "A golden retriever running through a field of sunflowers at sunset",
"aspect_ratio": "16:9",
"duration": 5
}'
Görsel Üretimi (Text-to-Image)
curl -X POST https://api.onysoft.com/v1/video/generate \
-H "Authorization: Bearer sk-ony-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/imagen4",
"prompt": "A beautiful sunset over mountains, photorealistic, 4K",
"aspect_ratio": "16:9"
}'
Görsel Düzenleme (Image-to-Image)
curl -X POST https://api.onysoft.com/v1/video/generate \
-H "Authorization: Bearer sk-ony-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream/4.5-edit",
"prompt": "Change background to a futuristic city",
"image_url": "https://example.com/input.jpg",
"aspect_ratio": "1:1"
}'
Müzik Üretimi
curl -X POST https://api.onysoft.com/v1/video/generate \
-H "Authorization: Bearer sk-ony-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v4",
"prompt": "Upbeat electronic dance music with catchy female vocals about summer"
}'
Örnek Yanıt
{
"success": true,
"data": {
"task_id": "vid_abc123...",
"status": "pending",
"model": "veo3_fast",
"estimated_cost": {
"amount": 0.60,
"currency": "USD"
}
}
}
Durum Sorgulama
/v1/video/status/{task_id}
Video üretim durumunu sorgular.
Durum Değerleri
| Durum | Açıklama |
|---|---|
pending | İstek alındı, sıraya eklendi |
processing | Video üretimi devam ediyor |
completed | Video hazır, URL mevcut |
failed | Üretim başarısız oldu |
Örnek İstek
curl https://api.onysoft.com/v1/video/status/vid_abc123 \
-H "Authorization: Bearer sk-ony-YOUR-KEY"
Örnek Yanıt (Tamamlandı)
{
"success": true,
"data": {
"task_id": "vid_abc123...",
"status": "completed",
"video_url": "https://...",
"thumbnail_url": "https://...",
"duration": 5,
"model": "veo3_fast"
}
}
Video Listesi
/v1/video/list
Oluşturulmuş videoların listesini döndürür.
Query Parametreleri
Sayfa numarası. Varsayılan: 1
Sayfa başına kayıt sayısı. Varsayılan: 20, Maksimum: 100
Desteklenen Modeller
Sistem, KieAI'nin 200+ modeline erişim sağlar. Model listesi dinamiktir ve admin panelinden senkronize edilir. Güncel model listesi ve fiyatlar için Modeller sayfasını veya GET /v1/models endpoint'ini kullanın.
Video Modelleri (Öne Çıkanlar)
| Model | Sağlayıcı | Tür | Açıklama |
|---|---|---|---|
veo3 | Video | Veo 3.1 - En yüksek kalite (t2v/i2v) | |
veo3_fast | Video | Veo 3.1 Fast - Hızlı üretim | |
sora-2-text-to-video | OpenAI | Video | Sora 2 metinden video |
sora-2-pro-text-to-video | OpenAI | Video | Sora 2 Pro - yüksek kalite |
runway_gen4_turbo | Runway | Video | Gen-4 Turbo |
runway_aleph | Runway | Video | Aleph (video-to-video) |
kling/v2-5-turbo-text-to-video-pro | Kling | Video | Kling 2.5 Turbo Pro |
kling-2.6/text-to-video | Kling | Video | Kling 2.6 |
wan/2-6-text-to-video | Alibaba | Video | Wan 2.6 |
hailuo/2-3-image-to-video-pro | Hailuo | Video | Hailuo 2.3 Pro (i2v) |
grok-imagine/text-to-video | xAI | Video | Grok Imagine Video |
Görsel Modelleri (Öne Çıkanlar)
| Model | Sağlayıcı | Tür | Açıklama |
|---|---|---|---|
grok-imagine/text-to-image | xAI | t2i | Grok Imagine (en uyumlu) |
google/imagen4 | t2i | Imagen 4 Standart | |
google/imagen4-fast | t2i | Imagen 4 Fast | |
google/imagen4-ultra | t2i | Imagen 4 Ultra - En yüksek kalite | |
google/nano-banana-2 | t2i | Nano Banana 2 (1K/2K/4K) | |
ideogram/v3-text-to-image | Ideogram | t2i | Ideogram V3 (metinden görsel) |
ideogram/v3-edit | Ideogram | i2i | Ideogram V3 Edit |
flux-2/pro-text-to-image | Flux | t2i | Flux 2 Pro |
flux-2/flex-text-to-image | Flux | t2i | Flux 2 Flex |
seedream/4.5-text-to-image | ByteDance | t2i | Seedream 4.5 (metinden) |
seedream/4.5-edit | ByteDance | i2i | Seedream 4.5 Edit (görselden) |
gpt-image/1.5-text-to-image | OpenAI | t2i | GPT Image 1.5 |
wan/2-7-image-pro | Alibaba | t2i | Wan 2.7 Image Pro |
Müzik Modelleri
| Model | Sağlayıcı | Açıklama |
|---|---|---|
suno-v4 | Suno | Suno V4 - Şarkı üretimi (sözsüz/sözlü) |
elevenlabs/text-to-speech | ElevenLabs | Metinden sese (TTS) |
elevenlabs/sound-effect-v2 | ElevenLabs | Ses efekti üretimi |
elevenlabs/audio-isolation | ElevenLabs | Ses izolasyonu |
Güncel Fiyatlar
Fiyatlar KieAI API'den dinamik çekilir. Projenize/müşterinize uygulanan markup oranıyla gösterilir.
Güncel fiyat için: GET /v1/models çağrısı yapın veya modeller sayfasına bakın.
Model Bazlı Zorunlu Parametreler
Her sağlayıcı farklı parametreler ister. Aşağıdaki tablo, her model ailesi için gerekli olan parametreleri gösterir.
Bu parametreler backend tarafında otomatik doldurulur — siz sadece prompt ve opsiyonel olarak aspect_ratio göndermeniz yeterlidir.
| Sağlayıcı | Model Ailesi | Otomatik Dolan Parametreler |
|---|---|---|
| imagen4 / imagen4-fast / imagen4-ultra | prompt (sadece) | |
| xAI | grok-imagine/* | aspect_ratio |
| Ideogram | ideogram/v3-text-to-image | prompt (sadece) |
| Ideogram | ideogram/v3-edit, v3-remix | prompt + image_url (i2i) |
| Ideogram | ideogram/character* | reference_image_urls (i2i) |
| Flux | flux-2/* | aspect_ratio, resolution (1K/2K) |
| ByteDance | seedream/* | quality, n, response_format, size, resolution (2K), aspect_ratio, background |
| OpenAI | gpt-image/* | quality, n, response_format, size, resolution, aspect_ratio, background |
| Alibaba | wan/2-7-image-* | aspect_ratio, resolution (2K/4K) |
| Alibaba | wan video modelleri | duration, resolution (720p/1080p) |
| nano-banana-edit | image_urls (i2i - görsel zorunlu) |
i2i (image-to-image) Modelleri
Görselden görsel dönüştüren modeller için image_url parametresi zorunludur. Değer olarak:
- Public HTTP URL (
https://...) - Veya base64 data URI (
data:image/jpeg;base64,...) — sistem bunu otomatik public URL'ye dönüştürür - Maksimum toplam istek boyutu: 10 MB
Not: API'ye gönderdiğiniz fiyat, projenizin/müşterinizin markup oranı uygulanmış müşteri fiyatıdır. Ortalama markup: %50 (projeler) ve %30 (partner müşterileri).
Python Tam Örnek (Polling)
import time
import requests
API_KEY = "sk-ony-YOUR-KEY"
BASE = "https://api.onysoft.com/v1"
# 1. Video oluştur
resp = requests.post(f"{BASE}/video/generate",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={"model": "veo3_fast", "prompt": "A cat playing piano", "duration": 5}
)
task = resp.json()["data"]
task_id = task["task_id"]
print(f"Task: {task_id}, Status: {task['status']}")
# 2. Durum sorgula (polling)
while True:
resp = requests.get(f"{BASE}/video/status/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"})
data = resp.json()["data"]
print(f"Status: {data['status']}")
if data["status"] == "completed":
print(f"Video URL: {data['video_url']}")
break
elif data["status"] == "failed":
print(f"Hata: {data.get('error')}")
break
time.sleep(10) # 10 saniye bekle