Skip to content

媒体生成(视频、图片、音乐) ​

NordRouter 支持生成图像、视频和音乐,与文本模型使用同一个 sk-nr-… 密钥和同一账户余额。按实际生成计费,无需 token 或套餐。

仅限从后端发起请求,请勿从浏览器请求

不能直接从浏览器请求 /media/*,否则请求将无法通过 CORS 检查,并报错 Failed to fetch。

这是有意设计的。该接口要求在 Authorization 请求头中携带密钥,而所有 进入浏览器的内容,任何打开开发者工具的人都能看到: 密钥会泄露,他人就能消耗您的余额。在 fetch 中设置任何请求头 都无法防止这种情况。

正确的调用方式:

浏览器 → 您的服务器(密钥保存在此处) → nordrouter.com

生成的文件通过普通链接提供,可直接用于页面中的 <img src> 或 <video src>,无需额外配置。

工作原理 ​

生成过程是异步的(视频和音乐需要几秒到几分钟):

  1. 创建任务 — 使用 POST /media/generate 提交模型和参数。
  2. 等待结果 — 轮询 GET /media/job/:id,直到 status 变为 done。
  3. 获取文件 — 通过 result_url 获取(指向 nordrouter.com 的链接)。

1. 创建任务 ​

bash
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" }
  }'

响应:

json
{ "id": "beefb531-…", "model": "image/nano-banana-2", "status": "processing",
  "poll": "https://nordrouter.com/media/job/beefb531-…" }

错误始终采用统一格式:{ "error": "понятный текст", "code": "missing_param" }。可根据 code 在代码中进行分支处理(invalid_input、missing_param、unknown_model、insufficient_balance、rate_limited、no_auth…), error 则供人阅读。

2. 等待结果 ​

bash
curl https://nordrouter.com/media/job/beefb531-…
json
{ "id": "beefb531-…", "status": "done",
  "result_url": "https://nordrouter.com/media/file/beefb531-…",
  "cost_usd": 0.052, "error": null }

status:processing → done(或 failed)。生成的文件可通过 result_url 获取。

🎵 Suno 每个任务生成两首曲目:第一首位于 result_url,第二首位于 result_url_2(链接格式相同)。价格按整个任务计算,已包含两首曲目。

Webhook(替代轮询) ​

如果不想轮询,可在 POST /media/generate 中传入 callback_url 字段,任务完成后我们会通过 POST 请求主动发送结果:

bash
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": "您的密钥"
  }'

当任务状态变为 done/failed 时,callback_url 将收到 POST 请求,请求体与 GET /media/job/:id 的响应相同,并额外包含 event 字段:

json
{ "event": "media.completed", "id": "beefb531-…", "status": "done",
  "result_url": "https://nordrouter.com/media/file/beefb531-…", "cost_usd": 0.052, "error": null }

event:media.completed 或 media.failed。

签名验证。 如果设置了 callback_secret,X-NR-Signature 请求头将包含 sha256=<hmac>,即使用您的密钥对请求体计算的 HMAC-SHA256。请进行比对,以确认请求来自我们:

python
import hmac, hashlib
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(expected, request.headers["X-NR-Signature"])

要求与可靠性:

  • callback_url 仅支持 https://,且必须为公网地址(内网/私有 IP 将被拒绝,并返回 400 错误)。
  • 最多尝试投递 4 次,重试间隔逐步增加;请返回 2xx,否则我们会重试。
  • 使用 Webhook 后仍可轮询,两者可以结合使用,也可将 GET /media/job/:id 作为备用方式。

了解更多

任务生命周期、签名验证示例及投递可靠性,详见**任务与 Webhook** 页面。

3. 模型与价格列表 ​

GET /media/models 返回可用模型、模型参数及预估费用:

json
{ "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 }

完整参考

所有模型的 input 参数和价格,详见**媒体:所有模型与计费** 页面。

模型 ​

提供 95 个模型 — 包含参数和价格的完整最新列表始终可通过 GET /media/models 获取。主要系列:

类型系列模式≈ 价格
🖼 图像Nano Banana / 2 / Pro (image/nano-banana*)文生图、编辑,最高 4K$0.025 起
🖼Imagen 4 Fast / Ultra (image/imagen4*)文生图$0.025 起
🖼GPT Image 1.5 / 2 (image/gpt-image-*)文生图、编辑,最高 4K$0.025 起
🖼Flux 2 Pro / Flex (image/flux2-*)文生图、编辑$0.03 起
🖼Seedream v4 / 4.5 / 5 Lite (image/seedream-*)文生图、编辑$0.04 起
🖼Ideogram v3 / Character (image/ideogram-*)文本、混合重创、角色$0.02 起
🖼Qwen / Wan Image / Grok / Z-Image文生图、编辑$0.01 起
🛠 工具Topaz / Recraft (image/*upscale*, image/recraft-remove-bg)超分辨率放大至 8K、移除背景$0.01 起
🎬 视频Veo 3.1 Lite / Fast / Quality (video/veo-3.1-*)文本/照片→视频$0.19 起
🎬Kling 2.1 → 3.0 (video/kling-*)文本/照片→视频、运动控制、数字人,最高 4K、最长 15 秒$0.16 起
🎬Wan 2.2 → 2.7 (video/wan-*)文本/照片/视频→视频、语音生成视频$0.25 起
🎬Seedance 1.5 / 2 / Fast / Mini (video/seedance-*)文本/照片→视频,最高 4K,支持声音$0.06 起
🎬Hailuo 02 / 2.3 (video/hailuo-*)文本/照片→视频$0.08 起
🎬HappyHorse 1.0 / 1.1 (video/happyhorse-*)文本/照片/参考素材→视频、视频编辑$0.70 起
🎬Grok Video / 1.5 (video/grok-*)文本/照片→视频,最长 30 秒$0.06 起
🎬Gemini Omni (video/gemini-omni)带声音的视频,最高 4K$0.39 起
🗣 数字人Kling Avatar, OmniHuman, InfiniteTalk, Lip Sync照片+音频→说话视频$0.19 起
🎵 音乐Suno V6 / V6 Wild / V6 Mini (music/suno-*)文本/风格→2 首曲目、翻唱、续写、人声、分轨、音效~$0.08
🎙 配音ElevenLabs Turbo / Multilingual (audio/elevenlabs-*)文本→语音、人声分离$0.04 起 / 1000 字符

参数 ​

参数因模型而异 — 完整列表见 /media/models(fields 字段:名称、类型、可选值、默认值)。名称采用统一风格(snake_case),值使用小写。通用参数:

  • prompt — 描述(适用于所有生成模型)。
  • resolution — 1k/2k/4k(图像)或 480p/720p/768p/1080p/4k(视频)。价格取决于分辨率。
  • aspect_ratio — 1:1、16:9、9:16 等;支持尺寸选择的模型还提供 1:1-hd。
  • duration — 视频时长,单位为秒(大多数模型为 5/10,Kling 3.0 和 Wan 2.7 最长为 15,Grok 最长为 30)。视频按秒计费。
  • audio — 视频音轨(true/false)。带声音的价格更高 — /media/estimate 的估价已考虑这一点。
  • mode / quality / render_mode — 质量等级(Kling 3.0:standard/pro/4k,GPT Image:medium/high,Ideogram:fast/balanced/quality)。
  • safety_filter — 18+ 内容过滤器(默认启用)。
  • enhance_prompt — 模型自动补充提示词细节(Qwen、Flux 3)。
  • file_format — 文件格式(图像为 png/jpeg,3D 为 glb/obj/fbx/stl/usdz)。
  • image — 输入图像(编辑、照片→视频;传入直链或通过 /media/upload 上传)。
  • video_url / audio_url — 输入视频/音频(视频编辑、口型同步、数字人)。

音乐: title、style、instrumental、version(v6、v6-wild、v6-mini)、advanced(精细设置:自定义标题、风格和时长 duration)、exclude_styles、vocal(female/male)、continue_from(从第几秒开始续写);音效还支持 loop、bpm、tonality;分轨使用 mode(vocals、stems、track)和 track(要提取的音轨)。风格微调参数:style_weight、weirdness、audio_weight(0…1)。

配音: text、voice(options 中的简短音色名称,例如 james、bella、Zephyr)、speed;Gemini 模型还支持 style、pace、accent、voice_description、scene、temperature。双音色对话:

json
{ "model": "audio/gemini-3.1-flash-tts",
  "input": {
    "voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
    "dialogue": [ { "speaker": 1, "text": "你好!今天我们邀请到的嘉宾是……" }, { "speaker": 2, "text": "谢谢邀请。" } ]
  } }

运行前,可向 POST /media/estimate 传入相同的 model + input,查看该配置的准确价格。

旧参数名称仍然有效

2026 年 10 月 19 日,参数名称和值进行了统一(snake_case,值使用小写)。如果您的集成 仍传入旧版文档中的名称和值,无需做任何修改:服务器也接受这些名称和值,结果 和价格相同。/media/models 和本文档仅展示新名称和值。

🧊 3D 模型 ​

通过文本或照片生成 3D 模型。输出为 GLB(不同模型还支持 OBJ、FBX、 STL、USDZ、USD、3MF)以及预览图:任务结果中会包含 多个文件,每个文件都有各自的扩展名。

调用方式与其他媒体相同:使用 POST /media/generate 提交,并轮询 GET /media/job/{id}。

bash
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":"陶瓷马克杯,哑光釉面"}}'
id输入来源≈ 价格特点
3d/tripo-text, 3d/tripo-image文本、照片$0.31 起价格最低,四边形网格,PBR
3d/hunyuan-rapid-text, -image文本、照片$0.43 起速度快,5 种文件格式
3d/seed3d-image照片$0.50 起GLB、OBJ、USD、USDZ
3d/hunyuan-pro-text, -image文本、照片$0.71 起最高 150 万个多边形
3d/meshy-text, -image, -multi-image文本、照片、最多 4 个视角$0.94 起最高 8K 纹理,角色姿势

用照片作为纹理。 3d/meshy-* 模型支持单独提供图片 (texture_photo)或用文字描述材质(texture_text)——纹理 可独立于几何形状设置。3d/meshy-multi-image 支持同一物体最多四个 视角的图片,从而生成更准确的几何形状。

生成完成后才能确定价格

3D 按实际消耗的资源计费,因此只有在模型计算完成后 才能确定准确金额。我们会预留 可能产生的最高费用,计算完成后扣除 实际费用,并退还差额。最终金额始终可在 cost_usd 字段中查看。

在工作室中,这类模型会带有标识,且只有在 您同意后才会开始生成。

耗时较长。 3D 生成需要半分钟到几分钟,比 图片或短视频更久。无需一直保持任务页面打开:状态 会保存,并支持 Webhook。

费用与存储 ​

  • 从您的 USD 余额中按实际生成费用扣款——完成后可在 cost_usd 中查看准确金额。
  • 生成失败不收费——预留金额会自动退还。
  • 文件在我们的服务器上仅限时保存(参见 /media/models 中的 retention_days)——请下载以便长期保存。