Skip to content

Media API — hình ảnh, video, âm nhạc ​

Tạo hình ảnh, video và âm nhạc bằng cùng khóa sk-nr-… và cùng số dư như các mô hình văn bản. Dùng chung số dư, thanh toán theo mức sử dụng, không đăng ký hoặc mua gói.

  • URL cơ sở: https://nordrouter.com (hoặc https://global-api.nordrouter.com cho mạng quốc tế).
  • Xác thực: tiêu đề Authorization: Bearer sk-nr-… (hoặc X-API-Key: sk-nr-…).
  • Định dạng: JSON, tạo không đồng bộ (tạo tác vụ → thăm dò trạng thái → tải tệp).

Các endpoint ​

Phương thứcMục đích
POST /media/generateTạo tác vụ
GET /media/job/:idTrạng thái và kết quả của tác vụ
POST /media/estimateƯớc tính trước giá cấu hình
GET /media/modelsDanh sách máy có thể đọc được về mô hình và tham số
POST /media/uploadTải tệp phương tiện nguồn lên
GET /media/file/:idTệp đã hoàn tất (liên kết từ result_url)

Vòng đời yêu cầu ​

1. Tạo tác vụ

bash
curl https://nordrouter.com/media/generate \
  -H "Authorization: Bearer sk-nr-YOUR-KEY" -H "Content-Type: application/json" \
  -d '{ "model": "video/kling-2.6-i2v",
        "input": { "prompt": "máy quay từ từ tiến lại gần", "image": "https://…/photo.png", "duration": "5", "audio": true } }'
json
{ "id": "b1f2…", "model": "video/kling-2.6-i2v", "status": "processing", "poll": "https://nordrouter.com/media/job/b1f2…" }

2. Thăm dò trạng thái (mỗi 3–5 giây)

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

3. Tải tệp xuống — qua result_url. Liên kết trên nordrouter.com (thương hiệu của bạn); tệp được lưu 14 ngày, sau đó sẽ bị xóa. Hãy tải xuống hoặc chuyển sang nơi lưu trữ của bạn trước thời hạn.

Tải phương tiện nguồn lên

Các trường image, image2, audio_url và video_url chấp nhận liên kết công khai trực tiếp. Các mô hình có trường attachments chấp nhận mảng đối tượng do POST /media/upload trả về: gửi { "data": "data:audio/mpeg;base64,…", "name": "track.mp3" }, sau đó truyền toàn bộ phản hồi tải lên vào input.attachments. Với Suno, bạn cũng có thể truyền URL công khai vào input.source_url, còn với mashup thì truyền hai URL vào input.source_urls.

Thanh toán ​

Các khoản trừ được tính từ số dư USD của bạn (dùng chung với các mô hình văn bản) theo mức sử dụng thực tế, đúng bằng số tiền trong các bảng bên dưới.

  • Tạm giữ → tính phí thực tế. Khi tạo tác vụ, chi phí ước tính được tạm giữ; sau khi hoàn tất, số tiền được tính lại dựa trên kết quả thực tế, phần dư được hoàn lại vào số dư.
  • Video tính theo giây. Giá tăng theo thời lượng và độ phân giải; bật âm thanh sẽ đắt hơn. Các bảng ghi giá “từ” cho cài đặt mặc định; ký hiệu /giây là mức phí mỗi giây.
  • Không tính phí khi lỗi. Nếu tác vụ kết thúc với trạng thái failed, toàn bộ khoản tạm giữ được hoàn lại. Bạn chỉ trả tiền cho các lần tạo thành công.
  • Xem giá chính xác trước khi chạy — POST /media/estimate với cùng model + input sẽ trả về { "usd": … }.
  • Nạp số dư bằng rúp (≈ $1 = 89–96 ₽); sau đó mọi khoản đều được tính bằng USD.

Danh mục mô hình ​

Giá: với video là đơn giá mỗi giây (/giây), tổng chi phí = đơn giá × thời lượng (độ phân giải/âm thanh cũng có thể làm thay đổi giá); với các loại khác, giá tính cho một lần tạo theo cài đặt mặc định. POST /media/estimate trả về chi phí chính xác cho mọi cấu hình.

input có thể chứa thêm trường — danh sách có thể đọc bằng máy (kiểu, tùy chọn, giá trị mặc định, khoảng thời lượng tính bằng giây) luôn được trả về bởi GET /media/models. Các trường bắt buộc được đánh dấu *. Có thể gửi trực tiếp mọi trường bổ sung của mô hình (negative_prompt, seed, cfg_scale…) trong input.

Tên tham số trước đây ​

Ngày 19 tháng 10 năm 2026, các tham số được thống nhất về tên và giá trị: snake_case, giá trị viết thường (ví dụ: version: "v6-wild", resolution: "720p", audio: true). Tên và giá trị từ phiên bản tài liệu trước đây vẫn được chấp nhận — không cần thay đổi các tích hợp đã viết trước đó: tác vụ, kết quả và giá vẫn như cũ. Trong GET /media/models, MCP và tài liệu này chỉ dùng tên mới. Nếu yêu cầu có cả tên cũ và tên mới của cùng một tham số thì tên mới được áp dụng.

🖼 Hình ảnh ​

modelChế độTham số inputTệpGiá
image/nano-bananavăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3|3:2|2:3|21:9|auto, safety_filter=boolPNG$0.025
image/nano-banana-2văn bản→hình ảnhprompt *, aspect_ratio=auto|1:1|16:9|9:16|3:4|4:3|21:9, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.050
image/nano-banana-2-litevăn bản→hình ảnhprompt *, aspect_ratio=auto|1:1|16:9|9:16|3:4|4:3, image=url, safety_filter=boolPNG$0.025
image/nano-banana-provăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3|21:9|auto, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.11
image/imagen4-fastvăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.025
image/imagen4văn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.050
image/imagen4-ultravăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.075
image/gpt-image-1.5văn bản→hình ảnhprompt *, aspect_ratio=1:1|2:3|3:2, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-1.5-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=3:2|1:1|2:3, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-2văn bản→hình ảnhprompt *, aspect_ratio=1:1|3:2|2:3|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.006
image/gpt-image-2-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=auto|1:1|3:2|2:3|16:9|9:16, resolution=1k|2k|4k, safety_filter=boolPNG$0.037
image/flux2-provăn bản→hình ảnhprompt *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3, resolution=1k|2k, safety_filter=boolPNG$0.031
image/flux2-pro-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3|auto, resolution=1k|2k, safety_filter=boolPNG$0.031
image/flux2-flexvăn bản→hình ảnhprompt *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3, resolution=1k|2k, safety_filter=boolPNG$0.087
image/flux2-flex-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3|auto, resolution=1k|2k, safety_filter=boolPNG$0.087
image/seedream-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, resolution=1k|2k|4k, safety_filter=boolPNG$0.037
image/seedream-4.5-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|2:3|3:2, quality=basic|high, safety_filter=boolPNG$0.044
image/seedream-5-lite-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|2:3|3:2, quality=basic|high, safety_filter=boolPNG$0.037
image/seedream-5.0-pro-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|2:3|3:2|21:9, quality=basic|high, safety_filter=boolPNG$0.044
image/ideogram-v3văn bản→hình ảnhprompt *, render_mode=fast|balanced|quality, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, style=auto|general|realistic|design, safety_filter=boolPNG$0.044
image/ideogram-editchỉnh sửa hình ảnhprompt *, image=url *, render_mode=fast|balanced|quality, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.044
image/ideogram-characterchỉnh sửa hình ảnhprompt *, image=url *, render_mode=fast|balanced|quality, style=auto|realistic|fiction, safety_filter=boolPNG$0.11
image/qwenvăn bản→hình ảnhprompt *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.031
image/qwen-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.037
image/qwen-i2ichỉnh sửa hình ảnhprompt *, image=url *, safety_filter=boolPNG$0.031
image/qwen2-editchỉnh sửa hình ảnhprompt *, image=url *, aspect_ratio=16:9|1:1|3:4|4:3|9:16|3:2|2:3, safety_filter=boolPNG$0.037
image/grokvăn bản→hình ảnhprompt *, aspect_ratio=1:1|2:3|3:2|16:9|9:16, pro=bool, safety_filter=boolPNG$0.025
image/grok-editchỉnh sửa hình ảnhprompt *, image=url *, safety_filter=boolPNG$0.025
image/z-imagevăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.006
image/wan-2.7văn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4|21:9, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.031
image/wan-2.7-provăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4|21:9, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.075
image/seedream-5.0-provăn bản→hình ảnhprompt *JPG$0.013
image/gemini-3.1-flashvăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.013
image/gemini-3-provăn bản→hình ảnhprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.031

🎬 Video ​

modelChế độTham số inputTệpGiá
video/veo-3.1-fastvăn bản→videoprompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.38
video/veo-3.1-qualityvăn bản→videoprompt *, aspect_ratio=16:9|9:16, image=urlMP4$1.56
video/veo-3.1-litevăn bản→videoprompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.19
video/gemini-omnivăn bản→videoprompt *, duration=4|6|8|10 *, aspect_ratio=16:9|9:16, resolution=720p|1080p|4k, image=url, safety_filter=boolMP4$0.66
video/gemini-omni-flashvăn bản→videoprompt *, attachments=upload[]MP4$0.13
video/kling-3.0văn bản→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1, mode=standard|pro|4k, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.11/giây
video/kling-t2vvăn bản→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.11/giây
video/kling-turbo-i2vảnh→videoprompt *, image=url *, duration=3–15s, resolution=720p|1080p, safety_filter=boolMP4$0.11/giây
video/kling-2.6-t2vvăn bản→videoprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.6-i2vảnh→videoprompt *, image=url *, duration=5|10, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.5-t2vvăn bản→videoprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$0.26
video/kling-2.5-i2vảnh→videoprompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.26
video/kling-i2vảnh→videoprompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.31
video/kling-2.1-standardảnh→videoprompt *, image=url *, duration=5|10, safety_filter=boolMP4$0.16
video/kling-2.1-master-t2vvăn bản→videoprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$1.00
video/kling-2.1-master-i2vảnh→videoprompt *, image=url *, duration=5|10, safety_filter=boolMP4$1.00
video/kling-motionvideo→videoimage=url *, video_url *, prompt, mode=standard|proMP4$1.25
video/kling-avataravatar (ảnh+âm thanh)image=url *, audio_url *, prompt *MP4$0.75
video/kling-avatar-proavatar (ảnh+âm thanh)image=url *, audio_url *, prompt *MP4$1.50
video/wan-2.7-t2vvăn bản→videoprompt *, duration=2–15s, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/giây
video/wan-2.7-i2vảnh→videoprompt *, image=url *, image2=url, duration=2–15s, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/giây
video/wan-2.7-r2vảnh→videoprompt *, image=url *, duration=2–10s, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.15/giây
video/wan-2.7-editvideo→videoprompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/wan-t2vvăn bản→videoprompt *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-i2vảnh→videoprompt *, image=url *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-v2vvideo→videoprompt *, video_url *, duration=5|10, resolution=720p|1080pMP4$0.44
video/wan-2.5-t2vvăn bản→videoprompt *, duration=5|10 *, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.5-i2vảnh→videoprompt *, image=url *, duration=5|10 *, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.2-t2vvăn bản→videoprompt *, aspect_ratio=16:9|9:16, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-2.2-i2vảnh→videoprompt *, image=url *, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-s2vavatar (ảnh+âm thanh)prompt *, image=url *, audio_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-movevideo→videoimage=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-replacevideo→videoimage=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/seedance-2văn bản→videoprompt *, duration=4–15s, aspect_ratio=16:9|9:16|1:1|4:3|21:9, resolution=480p|720p|1080p|4k, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.26/giây
video/seedance-2-fastvăn bản→videoprompt *, duration=4–15s, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.21/giây
video/seedance-2-minivăn bản→videoprompt *, duration=4–15s, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.13/giây
video/seedance-1.5-provăn bản→videoprompt *, duration=4–12s, aspect_ratio=16:9|9:16|1:1|4:3, resolution=480p|720p|1080p, audio=bool, image=url, safety_filter=boolMP4$0.025/giây
video/hailuo-02-t2vvăn bản→videoprompt *, duration=6|10, safety_filter=boolMP4$0.19
video/hailuo-02-t2v-provăn bản→videoprompt *, safety_filter=boolMP4$0.36
video/hailuo-02-i2vảnh→videoprompt *, image=url *, image2=url, duration=6|10, resolution=768p|512p, safety_filter=boolMP4$0.19
video/hailuo-02-i2v-proảnh→videoprompt *, image=url *, image2=url, safety_filter=boolMP4$0.36
video/hailuo-2.3-i2vảnh→videoprompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.19
video/hailuo-2.3-i2v-proảnh→videoprompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.28
video/happyhorse-1.1-t2vvăn bản→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.18/giây
video/happyhorse-1.1-i2vảnh→videoprompt, image=url *, duration=3–15s, resolution=720p|1080p, safety_filter=boolMP4$0.18/giây
video/happyhorse-1.1-r2vảnh→videoprompt *, image=url *, duration=3–15s, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.18/giây
video/happyhorse-t2vvăn bản→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.30/giây
video/happyhorse-i2vảnh→videoprompt, image=url *, duration=3–15s, resolution=720p|1080p, safety_filter=boolMP4$0.30/giây
video/happyhorse-editvideo→videoprompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/grok-t2vvăn bản→videoprompt *, duration=6–30s, aspect_ratio=16:9|9:16|1:1|3:2|2:3, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/giây
video/grok-i2vảnh→videoprompt *, image=url *, duration=6–30s, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/giây
video/grok-1.5văn bản→videoprompt *, duration=1–15s, aspect_ratio=auto|16:9|9:16|1:1, resolution=480p|720p, image=url, safety_filter=boolMP4$0.019/giây
video/omnihumanavatar (ảnh+âm thanh)image=url *, audio_url *, prompt, resolution=720p|1080pMP4$1.69
video/infinitalkavatar (ảnh+âm thanh)prompt *, image=url *, audio_url *, resolution=480p|720pMP4$0.19
video/lipsyncvideo→videovideo_url *, audio_url *, mode=lite|basicMP4$0.50
video/topaz-upscalenâng độ phân giảivideo_url *, scale=2|4MP4$0.50

🎵 Âm nhạc ​

modelChế độTham số inputTệpGiá
music/suno-v5âm nhạctitle *, style *, version=v6|v6-wild|v6-mini, instrumental=bool, promptMP3$0.075
music/suno-coverâm nhạcprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360sMP3$0.075
music/suno-extend-uploadâm nhạcprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, continue_from=1–120, instrumental=boolMP3$0.075
music/suno-add-vocalsâm nhạcprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, style, title, exclude_styles, vocal=female|maleMP3$0.075
music/suno-add-instrumentalâm nhạcprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, title, exclude_stylesMP3$0.075
music/suno-mashupâm nhạcprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360sMP3$0.075
music/suno-soundsâm nhạcprompt *, version=v6|v6-wild|v6-mini, loop=bool, bpm=auto|60|80|100|120|140|160, tonality=auto|C|Dm|Em|F|G|Am|D#mMP3$0.016

🎙 Âm thanh ​

modelChế độTham số inputTệpGiá
audio/gemini-3.1-flash-ttschuyển văn bản thành giọng nóitext *, voice=Achernar|Achird|Algenib|Algieba|Alnilam|Aoede|Autonoe|Callirrhoe|Charon|Despina|Enceladus|Erinome|Fenrir|Gacrux|Iapetus|Kore|Laomedeia|Leda|Orus|Puck|Pulcherrima|Rasalgethi|Sadachbia|Sadaltager|Schedar|Sulafat|Umbriel|Vindemiatrix|Zephyr|Zubenelgenubi, style=vocal-smile|newscaster|whisper|empathetic|promo-hype|deadpan, pace=natural|fast|slow|staccato, accent=neutral|american|american-valley|american-south|british|british-brixton|transatlantic|australian, voice_description, scene, temperature=0–2WAV$0.006
audio/gemini-2.5-pro-ttschuyển văn bản thành giọng nóitext *, voice=Achernar|Achird|Algenib|Algieba|Alnilam|Aoede|Autonoe|Callirrhoe|Charon|Despina|Enceladus|Erinome|Fenrir|Gacrux|Iapetus|Kore|Laomedeia|Leda|Orus|Puck|Pulcherrima|Rasalgethi|Sadachbia|Sadaltager|Schedar|Sulafat|Umbriel|Vindemiatrix|Zephyr|Zubenelgenubi, style=vocal-smile|newscaster|whisper|empathetic|promo-hype|deadpan, pace=natural|fast|slow|staccato, accent=neutral|american|american-valley|american-south|british|british-brixton|transatlantic|australian, voice_description, scene, temperature=0–2WAV$0.006
audio/elevenlabs-ttschuyển văn bản thành giọng nóitext *, voice=james|addison|adeline|allison|ana-rita|anika|arabella|aria|bella|benjamin|bradford|brian|britney|brittney|brock|burt|callum|cassidy|ed|edward|emma|eve|felix|finn|hank|hope-poetic|hope-bubbly|horatius|jamahal|jean|jeff|jessica-eloquent|jessica-chatty|john-doe|john-morgan|johnny-dynamite|johnny-kid|kuon|laura|leon|liam|lucy|lutz|mark-casual|mark-natural|marshal|monika|nathan|nathaniel|phil|rachel|rex-thunder|sam|spuds|sven|taksh|theodore|tiffany|tom|viking-bjorn|viraj-smooth|viraj-rich|wyatt|xavier, voice_id, speed=0.8|1.0|1.2MP3$0.037
audio/elevenlabs-multilingualchuyển văn bản thành giọng nóitext *, voice=james|addison|adeline|allison|ana-rita|anika|arabella|aria|bella|benjamin|bradford|brian|britney|brittney|brock|burt|callum|cassidy|ed|edward|emma|eve|felix|finn|hank|hope-poetic|hope-bubbly|horatius|jamahal|jean|jeff|jessica-eloquent|jessica-chatty|john-doe|john-morgan|johnny-dynamite|johnny-kid|kuon|laura|leon|liam|lucy|lutz|mark-casual|mark-natural|marshal|monika|nathan|nathaniel|phil|rachel|rex-thunder|sam|spuds|sven|taksh|theodore|tiffany|tom|viking-bjorn|viraj-smooth|viraj-rich|wyatt|xavier, voice_id, speed=0.8|1.0|1.2MP3$0.075

🧊 Mô hình 3D ​

Đầu ra là GLB (một số mô hình cho phép chọn OBJ, FBX, STL, USDZ, USD, 3MF) cùng ảnh xem trước: mỗi tác vụ trả về một số tệp, mỗi tệp có phần mở rộng riêng. Danh sách tệp nằm trong trường results, mỗi mục có ext.

Chỉ xác định được giá sau khi tạo

3D được tính phí theo tài nguyên thực tế đã sử dụng. Chúng tôi giữ lại khoản tối đa trong bảng; khi biết chi phí thực tế, chúng tôi tính phí theo mức đó và hoàn lại phần chênh lệch. Tổng chi phí luôn nằm trong cost_usd.

modelChế độTham số inputTệpGiá
3d/tripo-textvăn bản→3Dprompt *, negative_prompt, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/tripo-imageảnh→3Dimage=url *, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/hunyuan-rapid-textvăn bản→3Dprompt *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB và các định dạng khác$0.43–0.71
3d/hunyuan-rapid-imageảnh→3Dimage=url *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB và các định dạng khác$0.43–0.71
3d/hunyuan-pro-textvăn bản→3Dprompt *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/hunyuan-pro-imageảnh→3Dimage=url *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/seed3d-imageảnh→3Dimage=url *, mesh_detail=low|medium|high, file_format=glb|obj|usd|usdzGLB/OBJ/USD$0.50
3d/meshy-textvăn bản→3Dprompt *, texture_size=2k|4k|8k, pose=none|a-pose|t-pose, ultra=bool, pbr=bool, texture_text, texture_photo=urlGLB$0.94–1.26
3d/meshy-imageảnh→3Dimage=url *, texture_size=2k|4k|8k, ultra=bool, texture=bool, pbr=bool, texture_text, texture_photo=urlGLB$0.94–1.26
3d/meshy-multi-imagenhiều góc nhìn→3Dimages=[url] * (1–4), texture_size=2k|4k|8k, ultra=bool, texture=bool, pbr=bool, texture_textGLB$0.94–1.26

Ảnh làm texture. Với 3d/meshy-*, texture được thiết lập riêng với hình học: bằng hình ảnh trong texture_photo hoặc bằng mô tả trong texture_text.

Thời gian xử lý lâu. Quá trình tạo 3D kéo dài từ nửa phút đến vài phút — lâu hơn ảnh và clip ngắn. Không cần duy trì kết nối: trạng thái được lưu, có hỗ trợ webhook.

🛠 Tiện ích ​

modelChế độTham số inputTệpGiá
image/topaz-upscalenâng độ phân giảiimage=url *, scale=2|4|8PNG$0.063
image/recraft-remove-bgchỉnh sửaimage=url *PNG$0.006
image/recraft-upscalenâng độ phân giảiimage=url *PNG$0.006

Ví dụ theo chế độ ​

Tạo ảnh từ văn bản

json
{ "model": "image/flux2-pro", "input": { "prompt": "neon fox in snow", "aspect_ratio": "16:9", "resolution": "2k" } }

Chỉnh sửa ảnh

json
{ "model": "image/seedream-edit", "input": { "prompt": "xóa nền, thêm ánh sáng neon", "image": "https://…/photo.png" } }

Ảnh→video (khung hình đầu/cuối, thời lượng, âm thanh)

json
{ "model": "video/wan-2.7-i2v", "input": {
    "prompt": "máy quay tiến lại gần một cách mượt mà", "image": "https://…/first.png",
    "image2": "https://…/last.png", "duration": 8, "resolution": "1080p" } }

Âm nhạc

json
{ "model": "music/suno-v5", "input": { "title": "Northern Lights", "style": "epic orchestral", "instrumental": true, "version": "v6" } }

Chuyển văn bản thành giọng nói

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "text": "Xin chào thế giới", "voice": "Zephyr", "style": "empathetic",
    "pace": "natural", "accent": "neutral" } }

Hội thoại hai giọng nói — thay cho trường text, đặt lời thoại trong dialogue, các giọng nói trong voices (giọng 1 là giọng đầu tiên trong danh sách):

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
    "dialogue": [ { "speaker": 1, "text": "Chào buổi tối!" }, { "speaker": 2, "text": "Rất vui được nghe." } ] } }

Avatar (video nhân vật nói từ ảnh + âm thanh)

json
{ "model": "video/omnihuman", "input": { "image": "https://…/face.png", "audio_url": "https://…/voice.mp3" } }

Trạng thái và lỗi ​

GET /media/job/:id → trường status:

Trạng tháiÝ nghĩa
processingĐang xử lý — tiếp tục truy vấn định kỳ
doneHoàn tất — tệp nằm trong result_url, số tiền đã trừ nằm trong cost_usd
failedLỗi — nguyên nhân nằm trong error, tiền đã được hoàn lại

Mã phản hồi của POST /media/generate: 400 — mô hình không xác định hoặc thiếu trường bắt buộc; 401 — thiếu khóa hoặc khóa không hợp lệ; 402 — số dư không đủ; 403 — mô hình không khả dụng cho tài khoản.

Nội dung lỗi luôn có cùng định dạng — { "error": "текст для человека", "code": "машинный код" }. Các mã: unknown_model, missing_param (+ trường param), invalid_input, invalid_attachment, prompt_too_long, input_too_long, no_auth, no_key, insufficient_balance, unpaid_shortfall, rate_limited, generation_failed, unavailable.

Ước tính chi phí trước ​

bash
curl https://nordrouter.com/media/estimate \
  -H "Authorization: Bearer sk-nr-YOUR-KEY" -H "Content-Type: application/json" \
  -d '{ "model": "video/kling-3.0", "input": { "duration": 10, "mode": "pro", "audio": true } }'
json
{ "model": "video/kling-3.0", "usd": 1.6875 }

Các tham số trong bảng đã được đối chiếu với danh mục dịch vụ ngày 19.10.2026; danh sách đầy đủ và cập nhật về mô hình, tham số và giá — GET /media/models.