Media yaratish (video, tasvirlar, musiqa)
NordRouter tasvirlar, video va musiqa yaratishni qo‘llab-quvvatlaydi — matnli modellar bilan bir xil sk-nr-… kaliti va balansdan foydalanadi. Faqat foydalanilganingiz uchun to‘laysiz, tokenlar yoki paketlar yo‘q.
So‘rovlarni faqat backenddan yuboring, brauzerdan emas
/media/* manzillariga to‘g‘ridan to‘g‘ri brauzerdan so‘rov yuborib bo‘lmaydi — so‘rov CORS tekshiruvidan o‘ta olmaydi va Failed to fetch xatosi bilan tugaydi.
Bu ataylab shunday qilingan. Endpoint Authorization sarlavhasida kalitingizni talab qiladi, brauzerga tushgan hamma narsa esa ishlab chiquvchi vositalarini ochgan har qanday kishiga ko‘rinadi: kalit oshkor bo‘ladi va balansingizdan boshqalar foydalana boshlaydi. fetchdagi hech qanday sarlavha bundan himoya qilmaydi.
To‘g‘ri sxema:
brauzer → serveringiz (kalit shu yerda saqlanadi) → nordrouter.comTayyor fayl oddiy havola orqali taqdim etiladi — uni sahifadagi <img src> yoki <video src> ichiga bevosita qo‘yish mumkin, buning uchun hech narsani sozlash shart emas.
Bu qanday ishlaydi
Yaratish jarayoni asinxron (video va musiqa yaratish bir necha soniyadan bir necha daqiqagacha vaqt oladi):
- Vazifa yarating — model va parametrlar bilan
POST /media/generateso‘rovini yuboring. - Natijani kuting —
statusdonebo‘lgunchaGET /media/job/:idso‘rovini yuboring. - Faylni oling —
result_urlorqali (nordrouter.comhavolasi).
1. Vazifa yaratish
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": "уютная хижина в зимнем лесу, акварель", "resolution": "2k" }
}'Javob:
{ "id": "beefb531-…", "model": "image/nano-banana-2", "status": "processing",
"poll": "https://nordrouter.com/media/job/beefb531-…" }Xatolar har doim bir xil formatda qaytariladi: { "error": "tushunarli matn", "code": "missing_param" }. Kodda code bo‘yicha shartlarni tekshirish qulay (invalid_input, missing_param, unknown_model, insufficient_balance, rate_limited, no_auth…); error esa foydalanuvchi uchun.
2. Natijani kutish
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 (yoki failed). Tayyor fayl result_url orqali olinadi.
🎵 Suno har bir vazifa uchun ikkita trek yaratadi: birinchisi
result_urlda, ikkinchisiresult_url_2da (havola formati bir xil). Narx butun vazifa uchun olinadi, ikkala trek ham narxga kiritilgan.
Vebhuklar (so‘rovlarni takroran yuborish o‘rniga)
Natijani so‘rov yuborib tekshirishni xohlamasangiz, POST /media/generate so‘roviga callback_url maydonini qo‘shing. Vazifa tugagach, natijani POST-so‘rov orqali o‘zimiz yuboramiz:
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": "ваш-секрет"
}'Vazifa done/failed holatiga o‘tganda, callback_url manziliga GET /media/job/:id qaytaradigan tana bilan bir xil, qo‘shimcha event maydoniga ega POST yuboriladi:
{ "event": "media.completed", "id": "beefb531-…", "status": "done",
"result_url": "https://nordrouter.com/media/file/beefb531-…", "cost_usd": 0.052, "error": null }event: media.completed yoki media.failed.
Imzoni tekshirish. Agar callback_secret belgilangan bo‘lsa, X-NR-Signature sarlavhasida sha256=<hmac> keladi — bu sizning maxfiy kalitingiz yordamida so‘rov tanasi uchun hisoblangan HMAC-SHA256. So‘rov bizdan kelganini tasdiqlash uchun imzoni tekshiring:
import hmac, hashlib
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(expected, request.headers["X-NR-Signature"])Talablar va ishonchlilik:
callback_urlfaqathttps://bo‘lishi va ommaviy manzilga yo‘naltirilishi kerak (ichki/xususiy IP manzillar rad etiladi va 400 xatosi qaytariladi).- Yetkazib berishga urinishlar orasidagi tanaffusni oshirib borib, ko‘pi bilan 4 marta uriniladi;
2xxjavobini qaytaring, aks holda qayta urinib ko‘ramiz. - Vebhuk so‘rovlarni takroran yuborish usulining o‘rnini bosmaydi — ulardan birgalikda foydalanish yoki zaxira usul sifatida
GET /media/job/:idni ishlatish mumkin.
Batafsil
Vazifaning hayot sikli, imzoni tekshirish misollari va yetkazib berish ishonchliligi haqida Vazifalar va vebhuklar sahifasida o‘qing.
3. Modellar va narxlar ro‘yxati
GET /media/models mavjud modellar, ularning parametrlari va taxminiy narxini qaytaradi:
{ "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 }To‘liq ma’lumotnoma
input parametrlari va narxlari ko‘rsatilgan barcha modellar Media: barcha modellar va billing sahifasida.
Modellar
95 ta model mavjud — parametrlar va narxlar bilan to'liq, dolzarb ro'yxat doim GET /media/models da. Asosiy oilalar:
| Tur | Oila | Rejimlar | ≈ narx |
|---|---|---|---|
| 🖼 Rasmlar | Nano Banana / 2 / Pro (image/nano-banana*) | matn→rasm, tahrirlash, 4K gacha | $0.025 dan |
| 🖼 | Imagen 4 Fast / Ultra (image/imagen4*) | matn→rasm | $0.025 dan |
| 🖼 | GPT Image 1.5 / 2 (image/gpt-image-*) | matn→rasm, tahrirlash, 4K gacha | $0.025 dan |
| 🖼 | Flux 2 Pro / Flex (image/flux2-*) | matn→rasm, tahrirlash | $0.03 dan |
| 🖼 | Seedream v4 / 4.5 / 5 Lite (image/seedream-*) | matn→rasm, tahrirlash | $0.04 dan |
| 🖼 | Ideogram v3 / Character (image/ideogram-*) | matn, remiks, personaj | $0.02 dan |
| 🖼 | Qwen / Wan Image / Grok / Z-Image | matn→rasm, tahrirlash | $0.01 dan |
| 🛠 Yordamchi vositalar | Topaz / Recraft (image/*upscale*, image/recraft-remove-bg) | 8K gacha kattalashtirish, fonni olib tashlash | $0.01 dan |
| 🎬 Video | Veo 3.1 Lite / Fast / Quality (video/veo-3.1-*) | matn/foto→video | $0.19 dan |
| 🎬 | Kling 2.1 → 3.0 (video/kling-*) | matn/foto→video, harakat, avatarlar, 4K va 15 soniyagacha | $0.16 dan |
| 🎬 | Wan 2.2 → 2.7 (video/wan-*) | matn/foto/video→video, nutq→video | $0.25 dan |
| 🎬 | Seedance 1.5 / 2 / Fast / Mini (video/seedance-*) | matn/foto→video, 4K gacha, ovoz | $0.06 dan |
| 🎬 | Hailuo 02 / 2.3 (video/hailuo-*) | matn/foto→video | $0.08 dan |
| 🎬 | HappyHorse 1.0 / 1.1 (video/happyhorse-*) | matn/foto/namuna→video, videoni tahrirlash | $0.70 dan |
| 🎬 | Grok Video / 1.5 (video/grok-*) | matn/foto→video, 30 soniyagacha | $0.06 dan |
| 🎬 | Gemini Omni (video/gemini-omni) | ovozli video, 4K gacha | $0.39 dan |
| 🗣 Avatarlar | Kling Avatar, OmniHuman, InfiniteTalk, Lip Sync | foto+audio→gapiruvchi video | $0.19 dan |
| 🎵 Musiqa | Suno V6 / V6 Wild / V6 Mini (music/suno-*) | matn/uslub→2 ta trek, kaver, davom ettirish, vokal, alohida yo'laklar, tovushlar | ~$0.08 |
| 🎙 Ovozlashtirish | ElevenLabs Turbo / Multilingual (audio/elevenlabs-*) | matn→nutq, ovozni ajratish | $0.04 dan / 1000 belgi |
Parametrlar
Parametrlar modelga bog'liq — aniq ro'yxat /media/models da (fields maydoni: nom, tur, variantlar, standart qiymat). Nomlar bir xil uslubda (snake_case), qiymatlar kichik harflarda. Umumiy parametrlar:
prompt— tavsif (barcha generativ modellar uchun).resolution—1k/2k/4k(rasmlar) yoki480p/720p/768p/1080p/4k(video). Narx aniqlikka bog'liq.aspect_ratio—1:1,16:9,9:16va boshqalar; o'lcham tanlash imkoniyati bor modellarda1:1-hdmavjud.duration— video davomiyligi soniyalarda (ko'pchiligida5/10, Kling 3.0 va Wan 2.7 da15gacha, Grok da30gacha). Video uchun haq har soniya bo'yicha hisoblanadi.audio— videodagi ovoz yo'lagi (true/false). Ovozli video qimmatroq —/media/estimatedagi hisob-kitob buni inobatga oladi.mode/quality/render_mode— sifat darajasi (Kling 3.0standard/pro/4k, GPT Imagemedium/high, Ideogramfast/balanced/quality).safety_filter— 18+ filtri (standart holatda yoqilgan).enhance_prompt— model promptni o'zi batafsilroq qilib to'ldiradi (Qwen, Flux 3).file_format— fayl formati (rasmlardapng/jpeg, 3D daglb/obj/fbx/stl/usdz).image— kirish rasmi (tahrirlash, foto→video; to'g'ridan-to'g'ri havolani yuboring yoki/media/uploadorqali yuklang).video_url/audio_url— kirish videosi/audiosi (videoni tahrirlash, lab harakatlarini ovozga moslash, avatarlar).
Musiqa: title, style, instrumental, version (v6, v6-wild, v6-mini), advanced (aniq sozlash: o'z nomi, uslubi va duration davomiyligi), exclude_styles, vocal (female/male), continue_from (qaysi soniyadan davom ettirish), tovushlar uchun — loop, bpm, tonality; alohida yo'laklarga ajratish — mode (vocals, stems, track) va track (qaysi yo'lakni ajratib olish). Uslubni nozik sozlash parametrlari: style_weight, weirdness, audio_weight (0…1).
Ovozlashtirish: text, voice (options dagi ovozning qisqa nomi, masalan, james, bella, Zephyr), speed; Gemini modellarida — style, pace, accent, voice_description, scene, temperature. Ikki ovozli dialog:
{ "model": "audio/gemini-3.1-flash-tts",
"input": {
"voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
"dialogue": [ { "speaker": 1, "text": "Salom! Bugun bizning mehmonimiz…" }, { "speaker": 2, "text": "Taklif qilganingiz uchun rahmat." } ]
} }Muayyan konfiguratsiyaning aniq narxini ishga tushirishdan oldin ayni model + input bilan POST /media/estimate ko'rsatadi.
Parametrlarning eski nomlari ham ishlaydi
2026-yil 19-oktabrda parametrlar yagona nom va qiymatlarga o'tkazildi (snake_case, qiymatlar kichik harflarda). Agar integratsiyangiz hujjatlarning oldingi versiyasidagi nom va qiymatlarni yuborayotgan bo'lsa, hech narsani o'zgartirish shart emas: server ularni ham qabul qiladi, natija va narx bir xil. /media/models da va ushbu hujjatlarda — faqat yangi nom va qiymatlar.
🧊 3D modellar
Matn yoki fotosuratdan 3D model yaratish. Natijada GLB (shuningdek, turli modellarda OBJ, FBX, STL, USDZ, USD, 3MF) va oldindan ko‘rish rasmi olinadi: topshiriqda har biri o‘z kengaytmasiga ega bir nechta fayl keladi.
Chaqiruv boshqa media turlari bilan bir xil: POST /media/generate va GET /media/job/{id} orqali holatni tekshirish.
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":"keramik krujka, xira sir qoplama"}}'| id | nima asosida | ≈ narx | xususiyatlari |
|---|---|---|---|
3d/tripo-text, 3d/tripo-image | matn, foto | $0.31 dan | eng arzon, quad-to‘r, PBR |
3d/hunyuan-rapid-text, -image | matn, foto | $0.43 dan | tez, 5 ta fayl formati |
3d/seed3d-image | foto | $0.50 dan | GLB, OBJ, USD, USDZ |
3d/hunyuan-pro-text, -image | matn, foto | $0.71 dan | 1,5 mln gacha poligon |
3d/meshy-text, -image, -multi-image | matn, foto, 4 tagacha rakurs | $0.94 dan | 8K gacha teksturalar, personaj pozasi |
Tekstura sifatida foto. 3d/meshy-* modellari alohida rasmni (texture_photo) yoki material tavsifini so‘zlar bilan (texture_text) qabul qiladi — tekstura geometriyadan mustaqil belgilanadi. 3d/meshy-multi-image bitta predmetning to‘rttagacha rakursini qabul qiladi: shu tariqa geometriya aniqroq hosil bo‘ladi.
Narx faqat generatsiyadan keyin ma’lum bo‘ladi
3D uchun haq amalda sarflangan resurslar bo‘yicha hisoblanadi, shu sababli aniq summa model hisoblab bo‘lingandan keyin ma’lum bo‘ladi. Biz mumkin bo‘lgan eng yuqori summani vaqtincha ushlab turamiz, hisoblash tugagach esa haqiqiy summani yechib, farqni qaytaramiz. Yakuniy summa har doim cost_usd maydonida ko‘rinadi.
Studiyada bunday modellar maxsus belgi bilan ko‘rsatiladi va generatsiya faqat roziligingizdan keyin boshlanadi.
Bu uzoq davom etadi. 3D hisoblanishi yarim daqiqadan bir necha daqiqagacha vaqt oladi — rasm yoki qisqa videodan uzoqroq. Topshiriq sahifasini ochiq qoldirish shart emas: holat saqlanadi, vebhuklar ham mavjud.
Narx va saqlash
- Mablag‘ USD balansingizdan generatsiyaning haqiqiy narxi bo‘yicha yechiladi — aniq summani ish tugagach
cost_usdmaydonida ko‘rish mumkin. - Muvaffaqiyatsiz generatsiyalar uchun haq olinmaydi — vaqtincha ushlab qolingan mablag‘ avtomatik qaytariladi.
- Fayllar serverlarimizda cheklangan muddat saqlanadi (
/media/modelsdagiretention_daysga qarang) — saqlab qolish uchun ularni yuklab oling.