İçerik Üretim API (Video / Görsel / Ses / Müzik)

Onysoft AI Gateway ile video, görsel, ses (TTS) ve müzik üretimi. Tek bir asenkron backend üzerinden Veo, Sora 2, Runway, Kling, Wan, Hailuo, Seedream, Flux, GPT Image, Imagen, Nano Banana, Ideogram, Grok Imagine, ElevenLabs ve Suno gibi 40+ sağlayıcı modelini kullanın.

bolt

5 endpoint, 1 ortak backend

Üretim akışı için 5 endpoint adı vardır ve hepsi aynı backend'e bağlanır. Hangisini kullanacağınız tamamen anlamsaldır — kodunuzu daha okunabilir kılmak içindir. Üretilen task_id hepsinde aynı şekilde sorgulanır.

Endpoint Adları (Alias'lar)

Aşağıdaki 5 endpoint tamamen eşdeğerdir. Hangisini gönderirseniz gönderin, aynı backend çalışır ve aynı task_id formatı döner. Anlamsal netlik için, modelinizin türüne uygun olanı tercih edin.

EndpointÖnerilen KullanımÖrnek Modeller
POST /v1/video/generate Video üretimi veo3, sora-2, runway, kling, wan, hailuo
POST /v1/image/generate Görsel üretimi seedream, flux, imagen, nano-banana, ideogram, grok-imagine, gpt-image
POST /v1/audio/generate Ses üretimi (genel) elevenlabs/text-to-speech, sound-effect, audio-isolation, speech-to-text
POST /v1/voice/generate Konuşma üretimi (TTS) elevenlabs/text-to-speech-multilingual-v2, turbo-2-5, v3-text-to-dialogue
POST /v1/music/generate Müzik üretimi suno-v4, ai-music-api/generate, mashup, extend, sounds
info

Durum Sorgulama Endpoint'leri

Üretim için hangi alias'ı kullandıysanız, durum sorgulama için aynı alias'ı kullanabilirsiniz (ya da herhangi birini — task_id global'dir).

  • GET /v1/video/status/{task_id}
  • GET /v1/image/status/{task_id}
  • GET /v1/audio/status/{task_id}
  • GET /v1/voice/status/{task_id}
  • GET /v1/music/status/{task_id}
info

Asenkron Yapı

Bu endpoint'lerin hepsi asenkron çalışır. İstek gönderdiğinizde bir task_id alırsınız (HTTP 202). Bu ID ile üretim durumunu sorgulayarak içeriğinizin hazır olup olmadığını kontrol edersiniz. Tipik süre: görsel 10-30sn, video 30-180sn, TTS 5-15sn, müzik 30-90sn.

bolt

Text/Chat İstisnası

Text/chat modelleri için /v1/chat/completions kullanılır (senkron, streaming destekli — bkz. Chat Completions). Özel durum: Google Gemini görsel modelleri (gemini-*-image) chat completions endpoint'i üzerinden çağrılır (multimodal cevap).

Video Oluşturma

POST /v1/video/generate

Yeni bir video, görsel veya müzik üretim görevi başlatır.

Parametreler

model string zorunlu

Video modeli. Örnek: veo3_fast, kling-2.5, runway_gen4_turbo

prompt string zorunlu

Video açıklaması (İngilizce önerilir). Detaylı ve açıklayıcı promptlar daha iyi sonuç verir.

aspect_ratio string opsiyonel

En-boy oranı: "16:9", "9:16", "1:1". Varsayılan: "16:9"

duration integer opsiyonel

Video süresi (saniye). Varsayılan: 5. Modele göre 5, 6, 8 veya 10 saniye desteklenir.

image_url string i2v/i2i için zorunlu

Kaynak görsel. Image-to-video ve image-to-image modelleri için zorunludur. Public HTTP URL veya base64 data URI olabilir.

image string opsiyonel

image_url alternatifi. Base64 encoded görsel. Sistem bunu otomatik temp dosyaya kaydeder ve public URL üretir.

resolution string opsiyonel

Çö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.

quality string opsiyonel

Kalite seviyesi. "high", "standard", "low". Sadece gpt-image ve seedream modellerinde kullanılır.

negative_prompt string opsiyonel

İstenmeyen öğeler. Hangi nesne/stil/renk üretilmek istenmediğini belirtin.

Örnek İstekler

Video Üretimi (Text-to-Video)

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

JSON Response
{
  "success": true,
  "data": {
    "task_id": "vid_abc123...",
    "status": "pending",
    "model": "veo3_fast",
    "estimated_cost": {
      "amount": 0.60,
      "currency": "USD"
    }
  }
}

Durum Sorgulama

GET /v1/video/status/{task_id}

Video üretim durumunu sorgular.

Durum Değerleri

DurumAçıklama
pendingİstek alındı, sıraya eklendi
processingVideo üretimi devam ediyor
completedVideo hazır, URL mevcut
failedÜretim başarısız oldu

Örnek İstek

cURL
curl https://api.onysoft.com/v1/video/status/vid_abc123 \
  -H "Authorization: Bearer sk-ony-YOUR-KEY"

Örnek Yanıt (Tamamlandı)

JSON Response
{
  "success": true,
  "data": {
    "task_id": "vid_abc123...",
    "status": "completed",
    "video_url": "https://...",
    "thumbnail_url": "https://...",
    "duration": 5,
    "model": "veo3_fast"
  }
}

Video Listesi

GET /v1/video/list

Oluşturulmuş videoların listesini döndürür.

Query Parametreleri

page integer opsiyonel

Sayfa numarası. Varsayılan: 1

per_page integer opsiyonel

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)

ModelSağlayıcıTürAçıklama
veo3GoogleVideoVeo 3.1 - En yüksek kalite (t2v/i2v)
veo3_fastGoogleVideoVeo 3.1 Fast - Hızlı üretim
sora-2-text-to-videoOpenAIVideoSora 2 metinden video
sora-2-pro-text-to-videoOpenAIVideoSora 2 Pro - yüksek kalite
runway_gen4_turboRunwayVideoGen-4 Turbo
runway_alephRunwayVideoAleph (video-to-video)
kling/v2-5-turbo-text-to-video-proKlingVideoKling 2.5 Turbo Pro
kling-2.6/text-to-videoKlingVideoKling 2.6
wan/2-6-text-to-videoAlibabaVideoWan 2.6
hailuo/2-3-image-to-video-proHailuoVideoHailuo 2.3 Pro (i2v)
grok-imagine/text-to-videoxAIVideoGrok Imagine Video

Görsel Modelleri (Öne Çıkanlar)

ModelSağlayıcıTürAçıklama
grok-imagine/text-to-imagexAIt2iGrok Imagine (en uyumlu)
google/imagen4Googlet2iImagen 4 Standart
google/imagen4-fastGooglet2iImagen 4 Fast
google/imagen4-ultraGooglet2iImagen 4 Ultra - En yüksek kalite
google/nano-banana-2Googlet2iNano Banana 2 (1K/2K/4K)
ideogram/v3-text-to-imageIdeogramt2iIdeogram V3 (metinden görsel)
ideogram/v3-editIdeogrami2iIdeogram V3 Edit
flux-2/pro-text-to-imageFluxt2iFlux 2 Pro
flux-2/flex-text-to-imageFluxt2iFlux 2 Flex
seedream/4.5-text-to-imageByteDancet2iSeedream 4.5 (metinden)
seedream/4.5-editByteDancei2iSeedream 4.5 Edit (görselden)
gpt-image/1.5-text-to-imageOpenAIt2iGPT Image 1.5
wan/2-7-image-proAlibabat2iWan 2.7 Image Pro

Ses Modelleri (TTS / Sound Effect / Speech)

ElevenLabs sağlayıcısı üzerinden ses üretimi. Önerilen endpoint: POST /v1/audio/generate veya POST /v1/voice/generate.

ModelTürAçıklamaFiyat (USD)
elevenlabs/text-to-speech-multilingual-v2TTSÇok dilli TTS (Türkçe dahil 29 dil). Önerilen.$0.060
elevenlabs/text-to-speech-turbo-2-5TTSDüşük gecikme TTS (sadece İngilizce ağırlık). Şu an provider tarafında "internal error" sorunu var.$0.030
elevenlabs/v3-text-to-dialogueTTS DiyalogÇok karakterli diyalog üretimi (V3 model)$0.070
elevenlabs/sound-effect-v2SFXSes efekti üretimi (prompt → ses)$0.001
elevenlabs/audio-isolationAudio FilterVocal/enstrüman izolasyonu$0.001
elevenlabs/speech-to-textSTTSesten metin (transcription)$0.0175

TTS Parametreleri

ParametreTipDefaultAçıklama
promptstringSeslendirilecek metin (zorunlu)
voicestring"Rachel"Ses kimliği. Aşağıdaki listeden bir değer (case-sensitive).
stabilityfloat0.5Ses tutarlılığı (0.0 - 1.0). Yüksek = monoton, düşük = duygusal.
similarity_boostfloat0.75Ses benzerliği (0.0 - 1.0).
stylefloat0.0Stil yoğunluğu (0.0 - 1.0). Yüksek = daha karakterli.

Desteklenen Voice Listesi (ElevenLabs)

KieAI üzerinden ElevenLabs entegrasyonunda sadece aşağıdaki 20 ses kullanılabilir. Değerler case-sensitive'dir — ilk harf büyük yazılmalıdır. Liste dışı bir voice gönderirseniz KieAI "This voice is not within the range of allowed options" hatası döner.

KadınErkek
Rachel (default), Alice, Aria, Charlotte, Jessica, Laura, Lily, Matilda, Sarah Brian, Bill, Callum, Charlie, Chris, Daniel, Eric, George, Liam, Roger, Will
info

Türkçe TTS için

elevenlabs/text-to-speech-multilingual-v2 modelini kullanın — Türkçe dahil 29 dilde doğal seslendirme yapar. turbo-2-5 modeli sadece İngilizce ağırlıklıdır ve şu an provider tarafında geçici sorun yaşıyor.

TTS Örneği (Türkçe, multilingual-v2)

cURL
curl -X POST https://api.onysoft.com/v1/voice/generate \
  -H "Authorization: Bearer sk-ony-YOUR-KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "elevenlabs/text-to-speech-multilingual-v2",
    "prompt": "Merhaba, ben Rachel. Onysoft AI üzerinden konuşuyorum.",
    "voice": "Rachel",
    "stability": 0.6,
    "similarity_boost": 0.8,
    "style": 0.1
  }'

Sound Effect Parametreleri

ParametreTipDefaultAçıklama
promptstringSes efekti açıklaması (örn: "rain on metal roof")
duration_secondsfloat5.0Üretim süresi (saniye). 1.0 - 22.0 arası.
prompt_influencefloat0.3Prompt'a sadakat (0.0 - 1.0).

Sound Effect Örneği

cURL
curl -X POST https://api.onysoft.com/v1/audio/generate \
  -H "Authorization: Bearer sk-ony-YOUR-KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "elevenlabs/sound-effect-v2",
    "prompt": "thunder rolling in distant mountains, heavy rain",
    "duration_seconds": 8.0,
    "prompt_influence": 0.5
  }'

Müzik Modelleri

Şarkı/müzik üretimi için Suno ve KieAI ai-music-api modelleri. Önerilen endpoint: POST /v1/music/generate.

ModelSağlayıcıAçıklama
suno-v4SunoSuno V4 — Şarkı üretimi (sözsüz/sözlü, çoklu tür)
ai-music-api/generateKieAIYeni şarkı oluşturma (Suno arka planda)
ai-music-api/extendKieAIVar olan şarkıyı uzat
ai-music-api/mashupKieAI2 şarkıyı birleştir
ai-music-api/soundsKieAISes efektleri
ai-music-api/upload-and-cover-audioKieAIVar olan sese cover üret
ai-music-api/separate-vocalsKieAIVokal/enstrüman ayırma
ai-music-api/create-music-videoKieAIMüzik için görsel video üret
ai-music-api/add-instrumentalKieAIMevcut vocal'a enstrüman ekle
ai-music-api/convert-to-wav-formatKieAIMP3 → WAV dönüşüm
suno-add-vocalsKieAIEnstrümantal'e vokal ekle
suno-extend-musicKieAISuno track uzatma
suno-generate-lyricsKieAIŞarkı sözü üretimi
attach_money

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 AilesiOtomatik Dolan Parametreler
Googleimagen4 / imagen4-fast / imagen4-ultraprompt (sadece)
xAIgrok-imagine/*aspect_ratio
Ideogramideogram/v3-text-to-imageprompt (sadece)
Ideogramideogram/v3-edit, v3-remixprompt + image_url (i2i)
Ideogramideogram/character*reference_image_urls (i2i)
Fluxflux-2/*aspect_ratio, resolution (1K/2K)
ByteDanceseedream/*quality, n, response_format, size, resolution (2K), aspect_ratio, background
OpenAIgpt-image/*quality, n, response_format, size, resolution, aspect_ratio, background
Alibabawan/2-7-image-*aspect_ratio, resolution (2K/4K)
Alibabawan video modelleriduration, resolution (720p/1080p)
Googlenano-banana-editimage_urls (i2i - görsel zorunlu)
lightbulb

i2i / i2v (image-to-image / image-to-video) Modelleri

Görsel veya video üretiminde kaynak görsel gönderirken aşağıdaki kuralı izleyin:

  • Tek görsel: image_url (string) gönderin
  • Çoklu görsel (referans): image_urls (array) gönderin
  • Backend her sağlayıcının beklediği gerçek parametre adına otomatik çevirir (imageUrl, input_urls, first_frame_url, image_input, vb.)
  • Değer olarak Public HTTP URL (https://...) veya base64 data URI (data:image/jpeg;base64,...) — base64 ise sistem otomatik public URL'ye çevirir
  • Maksimum toplam istek boyutu: 10 MB

Sağlayıcı Parametre Eşleştirme Matrisi

Aşağıdaki tablo, ileri seviye kullanım için her sağlayıcının beklediği iç parametre adlarını gösterir. Normal kullanımda bu detayı bilmeniz gerekmezimage_url veya image_urls göndermeniz yeterlidir, backend otomatik dönüştürür.

Model AilesiBeklenen ParametreTipNot
seedream/*-editimage_urlsarrayÇoklu referans destekli
flux-2/*-image-to-imageinput_urlsarrayResolution 1K/2K destekli
gpt-image-2-image-to-imageinput_urlsarrayaspect_ratio + resolution gerekli
google/nano-banana-editimage_urlsarrayoutput_format (png/jpg) + image_size
google/nano-banana-2 / proimage_inputarrayBoş array da gönderilebilir (t2i mode)
ideogram/v3-edit / remiximage_urlstring+ mask_url (opsiyonel)
ideogram/character*reference_image_urlsarrayKarakter referansı için
grok-imagine/image-to-imageimage_urlsarraynsfw_checker desteği
grok-imagine/image-to-videoimage_urlsarray+ duration, resolution, mode
kling-*/image-to-videoimage_urlstring+ aspect_ratio, duration
hailuo/*-image-to-videoimage_urlstring+ duration (6/10)
sora-2-image-to-videoimage_urlsarray+ n_frames, aspect_ratio (landscape/portrait)
wan/2-7-image-to-videofirst_frame_urlstring+ last_frame_url (opsiyonel kapanış kare)
wan/2-6-flash-image-to-videoimage_urlsarray+ audio (bool, zorunlu)
runway_*imageUrlstring (camelCase)Runway iç formatı
veo3* reference-to-videoimageUrlsarray (camelCase)+ generationType="REFERENCE_2_VIDEO"
topaz/*image_urlstring+ scale (2/4) — upscaler
elevenlabs/audio-isolationaudio_urlstringGörsel değil, ses
elevenlabs/speech-to-textaudio_urlstringGörsel değil, ses

Sora 2 (OpenAI) Modelleri

OpenAI'ın yeni Sora 2 video üretim modelleri. Yüksek kalite, doğal hareket, ses ile birlikte.

ModelTürAçıklama
sora-2-text-to-videot2vMetinden video (standart kalite)
sora-2-image-to-videoi2vBaşlangıç görselinden video
sora-2-pro-text-to-videot2vSora 2 Pro — yüksek kalite t2v
sora-2-pro-image-to-videoi2vSora 2 Pro — yüksek kalite i2v

Sora 2 Parametreleri

ParametreDefaultAçıklama
aspect_ratio"landscape""landscape" veya "portrait"
n_frames"10"Saniye/frame sayısı (string)
size"high"Sadece Pro varyantı: "standard" veya "high"
remove_watermarkfalseWatermark kaldırma
character_id_listKarakter referans ID'leri (array)
image_urlsi2v için zorunlu (array)

Sora 2 Örneği (Pro, landscape)

cURL
curl -X POST https://api.onysoft.com/v1/video/generate \
  -H "Authorization: Bearer sk-ony-YOUR-KEY" \
  -d '{
    "model": "sora-2-pro-text-to-video",
    "prompt": "A drone shot of a serene mountain lake at sunrise, mist rising from water",
    "aspect_ratio": "landscape",
    "n_frames": "10",
    "size": "high"
  }'

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)

Python
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
Size uygun modeli bulmanıza yardımcı olayım mı?