Medya oluşturma (video, görseller, müzik)
NordRouter, metin modelleriyle aynı sk-nr-… anahtarı ve aynı bakiye ile görseller, videolar ve müzik oluşturabilir. Ücretlendirme kullanım başına yapılır; token veya paket yoktur.
İstekler yalnızca backend'den yapılabilir, tarayıcıdan yapılamaz
/media/* uç noktalarına doğrudan tarayıcıdan erişilemez — istek CORS kontrolünden geçemez ve Failed to fetch hatasıyla sonlanır.
Bu kasıtlı olarak böyledir. Uç nokta, Authorization başlığında anahtarınızı gerektirir ve tarayıcıya giren her şey geliştirici araçlarını açan herkes tarafından görülebilir: anahtarınız sızar ve bakiyenizden başkaları harcama yapmaya başlar. fetch içindeki hiçbir başlık bunu engellemez.
Doğru yapı:
tarayıcı → sizin sunucunuz (anahtar burada tutulur) → nordrouter.comBu sırada hazır dosya normal bir bağlantıyla sunulur — bu bağlantıyı doğrudan sayfadaki <img src> veya <video src> içine ekleyebilirsiniz; bunun için herhangi bir ayar yapmanız gerekmez.
Nasıl çalışır
Oluşturma asenkron çalışır (video ve müzik birkaç saniyeden birkaç dakikaya kadar sürebilir):
- Görev oluşturun — model ve parametrelerle
POST /media/generate. - Sonucu bekleyin —
status,doneolana kadarGET /media/job/:idile sorgulama yapın. - Dosyayı alın —
result_urlüzerinden (nordrouter.combağlantısı).
1. Görev oluşturma
curl https://nordrouter.com/media/generate \
-H "Authorization: Bearer sk-nr-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "image/nano-banana-2",
"input": { "prompt": "kış ormanında rahat bir kulübe, suluboya", "resolution": "2k" }
}'Yanıt:
{ "id": "beefb531-…", "model": "image/nano-banana-2", "status": "processing",
"poll": "https://nordrouter.com/media/job/beefb531-…" }Hata her zaman aynı biçimdedir: { "error": "anlaşılır bir metin", "code": "missing_param" }. code değerine göre kodunuzda dallanmak kolaydır (invalid_input, missing_param, unknown_model, insufficient_balance, rate_limited, no_auth…), error ise kullanıcı içindir.
2. Sonucu bekleme
curl https://nordrouter.com/media/job/beefb531-…{ "id": "beefb531-…", "status": "done",
"result_url": "https://nordrouter.com/media/file/beefb531-…",
"cost_usd": 0.052, "error": null }status: processing → done (veya failed). Hazır dosya result_url üzerinden alınır.
🎵 Suno bir görev başına iki parça oluşturur: ilki
result_url, ikincisiresult_url_2içindedir (aynı bağlantı formatı). Ücret görevin tamamı içindir; her iki parça da buna dahildir.
Webhook'lar (polling yerine)
Sorgulama yapmak istemiyorsanız, POST /media/generate isteğine callback_url alanını ekleyin; görev tamamlandığında sonucu POST isteğiyle kendimiz göndeririz:
curl https://nordrouter.com/media/generate \
-H "Authorization: Bearer sk-nr-YOUR-KEY" -H "Content-Type: application/json" \
-d '{
"model": "image/nano-banana-2",
"input": { "prompt": "…" },
"callback_url": "https://your-server.com/webhooks/nordrouter",
"callback_secret": "sizin-gizli-anahtarınız"
}'Görev done/failed durumuna geçtiğinde callback_url adresine, GET /media/job/:id yanıtındaki gövdenin aynısı ve ek olarak event alanı içeren bir POST gönderilir:
{ "event": "media.completed", "id": "beefb531-…", "status": "done",
"result_url": "https://nordrouter.com/media/file/beefb531-…", "cost_usd": 0.052, "error": null }event: media.completed veya media.failed.
İmza doğrulama. callback_secret belirlediyseniz, X-NR-Signature başlığında sha256=<hmac> gönderilir — bu, sizin gizli anahtarınızla istek gövdesi üzerinden hesaplanan HMAC-SHA256 değeridir. İsteğin bizden geldiğini doğrulamak için karşılaştırın:
import hmac, hashlib
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(expected, request.headers["X-NR-Signature"])Gereksinimler ve güvenilirlik:
callback_urlyalnızcahttps://kullanmalı ve herkese açık bir adres olmalıdır (dahili/özel IP adresleri 400 hatasıyla reddedilir).- Artan bekleme aralıklarıyla en fazla 4 teslimat denemesi yapılır;
2xxyanıtı verin, aksi takdirde tekrar deneriz. - Webhook polling'i iptal etmez — ikisini birlikte kullanabilir veya yedek seçenek olarak
GET /media/job/:idisteğini kullanabilirsiniz.
Daha fazla bilgi
Görev yaşam döngüsü, örneklerle imza doğrulama ve teslimat güvenilirliği hakkında daha fazla bilgi için Görevler ve webhook'lar sayfasına bakın.
3. Model ve fiyat listesi
GET /media/models, kullanılabilir modelleri, parametrelerini ve tahmini maliyetlerini döndürür:
{ "models": [
{ "id": "image/nano-banana-2", "type": "image",
"fields": [ {"name":"prompt","type":"textarea"}, {"name":"resolution","type":"select","options":["1k","2k","4k"]},
{"name":"safety_filter","type":"bool","default":true} ],
"est_usd": 0.052 }
], "retention_days": 14 }Tam referans
input parametreleri ve fiyatlarıyla birlikte tüm modeller için Medya: tüm modeller ve faturalandırma sayfasına bakın.
Modeller
95 model mevcuttur — parametreleri ve fiyatları içeren güncel listenin tamamı her zaman GET /media/models adresindedir. Başlıca aileler:
| Tür | Aile | Modlar | ≈ fiyat |
|---|---|---|---|
| 🖼 Görseller | Nano Banana / 2 / Pro (image/nano-banana*) | metinden görsel, düzenleme, 4K’ya kadar | $0.025’ten |
| 🖼 | Imagen 4 Fast / Ultra (image/imagen4*) | metinden görsel | $0.025’ten |
| 🖼 | GPT Image 1.5 / 2 (image/gpt-image-*) | metinden görsel, düzenleme, 4K’ya kadar | $0.025’ten |
| 🖼 | Flux 2 Pro / Flex (image/flux2-*) | metinden görsel, düzenleme | $0.03’ten |
| 🖼 | Seedream v4 / 4.5 / 5 Lite (image/seedream-*) | metinden görsel, düzenleme | $0.04’ten |
| 🖼 | Ideogram v3 / Character (image/ideogram-*) | metin, remiks, karakter | $0.02’den |
| 🖼 | Qwen / Wan Image / Grok / Z-Image | metinden görsel, düzenleme | $0.01’den |
| 🛠 Araçlar | Topaz / Recraft (image/*upscale*, image/recraft-remove-bg) | 8K’ya kadar yükseltme, arka plan kaldırma | $0.01’den |
| 🎬 Video | Veo 3.1 Lite / Fast / Quality (video/veo-3.1-*) | metin/fotoğraftan video | $0.19’dan |
| 🎬 | Kling 2.1 → 3.0 (video/kling-*) | metin/fotoğraftan video, motion, avatarlar, 4K’ya ve 15 sn’ye kadar | $0.16’dan |
| 🎬 | Wan 2.2 → 2.7 (video/wan-*) | metin/fotoğraf/videodan video, konuşmadan video | $0.25’ten |
| 🎬 | Seedance 1.5 / 2 / Fast / Mini (video/seedance-*) | metin/fotoğraftan video, 4K’ya kadar, ses | $0.06’dan |
| 🎬 | Hailuo 02 / 2.3 (video/hailuo-*) | metin/fotoğraftan video | $0.08’den |
| 🎬 | HappyHorse 1.0 / 1.1 (video/happyhorse-*) | metin/fotoğraf/referanstan video, video düzenleme | $0.70’ten |
| 🎬 | Grok Video / 1.5 (video/grok-*) | metin/fotoğraftan video, 30 sn’ye kadar | $0.06’dan |
| 🎬 | Gemini Omni (video/gemini-omni) | sesli video, 4K’ya kadar | $0.39’dan |
| 🗣 Avatarlar | Kling Avatar, OmniHuman, InfiniteTalk, Lip Sync | fotoğraf+ses → konuşan video | $0.19’dan |
| 🎵 Müzik | Suno V6 / V6 Wild / V6 Mini (music/suno-*) | metin/stilden 2 parça, cover, devam, vokal, kanallar, sesler | ~$0.08 |
| 🎙 Seslendirme | ElevenLabs Turbo / Multilingual (audio/elevenlabs-*) | metinden konuşma, sesi yalıtma | 1000 karakter başına $0.04’ten |
Parametreler
Parametreler modele göre değişir; tam liste /media/models adresindedir (fields alanı: ad, tür, seçenekler, varsayılan). Adlar tek biçimdedir (snake_case), değerler küçük harflidir. Ortak parametreler:
prompt— açıklama (tüm üretken modeller için).resolution—1k/2k/4k(görseller) veya480p/720p/768p/1080p/4k(video). Fiyat çözünürlüğe bağlıdır.aspect_ratio—1:1,16:9,9:16vb.; boyut seçimi sunan modellerde1:1-hdde bulunur.duration— video süresi, saniye cinsinden (çoğunda5/10, Kling 3.0 ve Wan 2.7’de15’e, Grok’ta30’a kadar). Video saniye başına ücretlendirilir.audio— videodaki ses kanalı (true/false). Sesli üretim daha pahalıdır;/media/estimatetahmini bunu hesaba katar.mode/quality/render_mode— kalite düzeyi (Kling 3.0standard/pro/4k, GPT Imagemedium/high, Ideogramfast/balanced/quality).safety_filter— 18+ filtresi (varsayılan olarak etkin).enhance_prompt— model prompt’u daha ayrıntılı hâle getirir (Qwen, Flux 3).file_format— dosya biçimi (görsellerdepng/jpeg, 3D’deglb/obj/fbx/stl/usdz).image— giriş görseli (düzenleme, fotoğraftan video; doğrudan bir bağlantı iletin veya/media/uploadüzerinden yükleyin).video_url/audio_url— giriş video/ses dosyaları (video düzenleme, dudak senkronizasyonu, avatarlar).
Müzik: title, style, instrumental, version (v6, v6-wild, v6-mini), advanced (özel ad, stil ve duration süresiyle ayrıntılı ayarlar), exclude_styles, vocal (female/male), continue_from (devam edilecek saniye); sesler için loop, bpm, tonality; kanallara ayırma için mode (vocals, stems, track) ve çıkarılacak kanalı belirten track. İnce stil ayarları: style_weight, weirdness, audio_weight (0…1).
Seslendirme: text, voice (options içinden kısa ses adı; örneğin james, bella, Zephyr), speed; Gemini modellerinde ayrıca style, pace, accent, voice_description, scene, temperature. İki sesli diyalog:
{ "model": "audio/gemini-3.1-flash-tts",
"input": {
"voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
"dialogue": [ { "speaker": 1, "text": "Привет! Сегодня у нас в гостях…" }, { "speaker": 2, "text": "Спасибо, что позвали." } ]
} }Belirli bir yapılandırmanın kesin fiyatını çalıştırmadan önce aynı model + input değerleriyle POST /media/estimate üzerinden görebilirsiniz.
Önceki parametre adları da çalışmaya devam eder
19 Ekim 2026’da parametre adları ve değerleri tek biçime getirildi (snake_case, değerler küçük harfle). Entegrasyonunuz önceki belge sürümündeki adları ve değerleri iletiyorsa herhangi bir değişiklik yapmanız gerekmez: sunucu bunları da kabul eder; sonuç ve fiyat aynıdır. /media/models ve bu belgede yalnızca yeni biçim kullanılır.
🧊 3D modeller
Metinden veya fotoğraftan 3D üretimi. Çıktı GLB’dir (ayrıca farklı modellerde OBJ, FBX, STL, USDZ, USD, 3MF) ve bir önizleme görseli sunulur: görevde her biri kendi uzantısına sahip birkaç dosya gelir.
Çağrı, diğer medya türleriyle aynıdır: POST /media/generate ve GET /media/job/{id} ile durum sorgulama.
curl -X POST https://nordrouter.com/media/generate -H "Authorization: Bearer $NR_KEY" -H "Content-Type: application/json" -d '{"model":"3d/tripo-text","input":{"prompt":"seramik kupa, mat sır"}}'| id | kaynak | ≈ fiyat | özellikler |
|---|---|---|---|
3d/tripo-text, 3d/tripo-image | metin, fotoğraf | $0.31'dan başlayan fiyatlarla | en ucuz, quad ağ, PBR |
3d/hunyuan-rapid-text, -image | metin, fotoğraf | $0.43'dan başlayan fiyatlarla | hızlı, 5 dosya biçimi |
3d/seed3d-image | fotoğraf | $0.50'dan başlayan fiyatlarla | GLB, OBJ, USD, USDZ |
3d/hunyuan-pro-text, -image | metin, fotoğraf | $0.71'dan başlayan fiyatlarla | 1,5 milyon poligona kadar |
3d/meshy-text, -image, -multi-image | metin, fotoğraf, en fazla 4 açı | $0.94'dan başlayan fiyatlarla | 8K'ya kadar dokular, karakter pozu |
Doku olarak fotoğraf. 3d/meshy-* modelleri ayrı bir görsel (texture_photo) veya sözcüklerle malzeme açıklaması (texture_text) kabul eder; doku geometriden bağımsız olarak belirlenir. 3d/meshy-multi-image aynı nesnenin en fazla dört açısını kullanır: böylece geometri daha doğru olur.
Fiyat yalnızca üretimden sonra belli olur
3D, kullanılan kaynaklara göre ücretlendirilir; bu nedenle kesin tutar, model hesaplandıktan sonra belli olur. Mümkün olan en yüksek tutarı bloke ederiz; hesaplama tamamlandığında gerçek tutarı tahsil eder ve aradaki farkı iade ederiz. Nihai tutar her zaman cost_usd alanında görünür.
Stüdyoda bu modeller bir etiketle işaretlenir ve üretim yalnızca onayınızdan sonra başlar.
Uzun sürer. 3D hesaplaması yarım dakikadan birkaç dakikaya kadar sürebilir; bu, görsel veya kısa bir videodan daha uzundur. Görevi açık tutmanız gerekmez: durum kaydedilir ve webhook'lar kullanılabilir.
Ücretlendirme ve saklama
- USD bakiyenizden üretimin gerçek maliyeti tahsil edilir; kesin tutar tamamlanınca
cost_usdalanında görünür. - Başarısız üretimler için ücret alınmaz; bloke edilen tutar otomatik olarak iade edilir.
- Dosyalar sunucularımızda sınırlı bir süre saklanır (
/media/modelsiçindekiretention_daysdeğerine bakın); saklamak için indirin.