Skip to content

미디어 API — 이미지, 비디오, 음악 ​

텍스트 모델과 동일한 sk-nr-… 키와 잔액으로 이미지, 비디오, 음악을 생성하세요. 통합 잔액으로 사용한 만큼만 결제하며, 구독이나 패키지는 없습니다.

  • 기본 URL: https://nordrouter.com (해외 네트워크에서는 https://global-api.nordrouter.com).
  • 인증: Authorization: Bearer sk-nr-… 헤더 (또는 X-API-Key: sk-nr-…).
  • 형식: JSON, 비동기 생성 (작업 생성 → 상태 조회 → 파일 가져오기).

엔드포인트 ​

메서드용도
POST /media/generate생성 작업 만들기
GET /media/job/:id작업 상태 및 결과 조회
POST /media/estimate설정의 예상 가격 확인
GET /media/models모델 및 매개변수의 기계 판독 가능한 목록
POST /media/upload원본 미디어 파일 업로드
GET /media/file/:id완성된 파일 (result_url의 링크)

요청 수명 주기 ​

1. 작업 만들기

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": "부드러운 카메라 줌인", "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. 상태 조회 (3~5초마다)

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. 파일 가져오기 — result_url을 사용합니다. 링크는 nordrouter.com(브랜드 도메인)을 가리킵니다. 파일은 14일간 저장된 후 삭제되므로, 미리 다운로드하거나 자신의 저장소로 옮기세요.

원본 미디어 파일 업로드

image, image2, audio_url, video_url 필드에는 공개 직접 링크를 사용할 수 있습니다. attachments 필드가 있는 모델은 POST /media/upload가 반환한 객체 배열을 받습니다. { "data": "data:audio/mpeg;base64,…", "name": "track.mp3" }를 보내고 업로드 응답 전체를 input.attachments에 전달하세요. Suno에서는 대신 공개 URL을 input.source_url에 전달할 수 있으며, mashup에서는 URL 두 개를 input.source_urls에 전달할 수 있습니다.

결제 ​

요금은 달러 잔액(텍스트 모델과 동일한 잔액)에서 실제 생성이 완료된 뒤 아래 표에 표시된 금액만큼 차감됩니다.

  • 예약 후 실제 금액 정산. 작업을 만들면 예상 비용이 예약되고, 완료 후 실제 결과를 기준으로 금액이 다시 계산되며 남은 금액은 잔액으로 반환됩니다.
  • 비디오 — 초당 과금. 가격은 길이와 해상도에 따라 올라가며, 오디오를 켜면 더 비쌉니다. 표에는 기본 설정 기준 ‘시작 가격’이 표시되며, /초 표시는 초당 요금입니다.
  • 실패한 작업은 과금되지 않습니다. 작업이 failed 상태로 끝나면 예약 금액이 전액 반환됩니다. 성공한 생성에 대해서만 결제됩니다.
  • 정확한 사전 가격 확인 — 실행 전에 동일한 model과 input으로 POST /media/estimate를 호출하면 { "usd": … }를 반환합니다.
  • 잔액은 루블로 충전합니다 (약 $1 = 89–96 ₽). 이후 모든 금액은 USD로 계산됩니다.

모델 카탈로그 ​

가격: 동영상은 초당 요금(/초)이며, 총액 = 요금 × 길이입니다(해상도/오디오에 따라 달라질 수 있음). 그 외에는 기본 설정 기준 생성 1회당 가격입니다. 모든 구성의 정확한 비용은 POST /media/estimate에서 반환됩니다.

input에 필드가 더 있을 수 있습니다. 타입, 옵션, 기본값, 초 단위 범위가 포함된 기계 판독 가능 목록은 항상 GET /media/models에서 확인할 수 있습니다. 필수 항목에는 *가 표시됩니다. 모델의 추가 필드(negative_prompt, seed, cfg_scale 등)는 input에 바로 전달할 수 있습니다.

이전 파라미터 이름 ​

2026년 10월 19일에 파라미터의 이름과 값이 통일되었습니다. 이름은 snake_case, 값은 소문자를 사용합니다(예: version: "v6-wild", resolution: "720p", audio: true). 이전 문서 버전의 이름과 값도 계속 허용됩니다. 이전에 작성한 통합은 변경할 필요가 없습니다. 작업, 결과, 가격은 동일합니다. GET /media/models, MCP 및 이 문서에는 새 이름만 표시됩니다. 요청에 같은 파라미터의 이전 이름과 새 이름이 모두 포함된 경우 새 이름이 적용됩니다.

🖼 이미지 ​

model모드input 파라미터파일가격
image/nano-banana텍스트→이미지prompt *, 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-2텍스트→이미지prompt *, 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-lite텍스트→이미지prompt *, aspect_ratio=auto|1:1|16:9|9:16|3:4|4:3, image=url, safety_filter=boolPNG$0.025
image/nano-banana-pro텍스트→이미지prompt *, 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-fast텍스트→이미지prompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.025
image/imagen4텍스트→이미지prompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.050
image/imagen4-ultra텍스트→이미지prompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.075
image/gpt-image-1.5텍스트→이미지prompt *, aspect_ratio=1:1|2:3|3:2, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-1.5-edit이미지 편집prompt *, image=url *, aspect_ratio=3:2|1:1|2:3, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-2텍스트→이미지prompt *, 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-edit이미지 편집prompt *, 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-pro텍스트→이미지prompt *, 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-edit이미지 편집prompt *, 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-flex텍스트→이미지prompt *, 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-edit이미지 편집prompt *, 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-edit이미지 편집prompt *, 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-edit이미지 편집prompt *, 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-edit이미지 편집prompt *, 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-edit이미지 편집prompt *, 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-v3텍스트→이미지prompt *, 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-edit이미지 편집prompt *, 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-character이미지 편집prompt *, image=url *, render_mode=fast|balanced|quality, style=auto|realistic|fiction, safety_filter=boolPNG$0.11
image/qwen텍스트→이미지prompt *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.031
image/qwen-edit이미지 편집prompt *, image=url *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.037
image/qwen-i2i이미지 편집prompt *, image=url *, safety_filter=boolPNG$0.031
image/qwen2-edit이미지 편집prompt *, image=url *, aspect_ratio=16:9|1:1|3:4|4:3|9:16|3:2|2:3, safety_filter=boolPNG$0.037
image/grok텍스트→이미지prompt *, aspect_ratio=1:1|2:3|3:2|16:9|9:16, pro=bool, safety_filter=boolPNG$0.025
image/grok-edit이미지 편집prompt *, image=url *, safety_filter=boolPNG$0.025
image/z-image텍스트→이미지prompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.006
image/wan-2.7텍스트→이미지prompt *, 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-pro텍스트→이미지prompt *, 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-pro텍스트→이미지prompt *JPG$0.013
image/gemini-3.1-flash텍스트→이미지prompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.013
image/gemini-3-pro텍스트→이미지prompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.031

🎬 동영상 ​

model모드input 파라미터파일가격
video/veo-3.1-fast텍스트→동영상prompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.38
video/veo-3.1-quality텍스트→동영상prompt *, aspect_ratio=16:9|9:16, image=urlMP4$1.56
video/veo-3.1-lite텍스트→동영상prompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.19
video/gemini-omni텍스트→동영상prompt *, 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-flash텍스트→동영상prompt *, attachments=upload[]MP4$0.13
video/kling-3.0텍스트→동영상prompt *, duration=3–15초, aspect_ratio=16:9|9:16|1:1, mode=standard|pro|4k, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.11/초
video/kling-t2v텍스트→동영상prompt *, duration=3–15초, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.11/초
video/kling-turbo-i2v사진→동영상prompt *, image=url *, duration=3–15초, resolution=720p|1080p, safety_filter=boolMP4$0.11/초
video/kling-2.6-t2v텍스트→동영상prompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.6-i2v사진→동영상prompt *, image=url *, duration=5|10, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.5-t2v텍스트→동영상prompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$0.26
video/kling-2.5-i2v사진→동영상prompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.26
video/kling-i2v사진→동영상prompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.31
video/kling-2.1-standard사진→동영상prompt *, image=url *, duration=5|10, safety_filter=boolMP4$0.16
video/kling-2.1-master-t2v텍스트→동영상prompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$1.00
video/kling-2.1-master-i2v사진→동영상prompt *, image=url *, duration=5|10, safety_filter=boolMP4$1.00
video/kling-motion동영상→동영상image=url *, video_url *, prompt, mode=standard|proMP4$1.25
video/kling-avatar아바타(사진+오디오)image=url *, audio_url *, prompt *MP4$0.75
video/kling-avatar-pro아바타(사진+오디오)image=url *, audio_url *, prompt *MP4$1.50
video/wan-2.7-t2v텍스트→동영상prompt *, duration=2–15초, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/초
video/wan-2.7-i2v사진→동영상prompt *, image=url *, image2=url, duration=2–15초, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/초
video/wan-2.7-r2v사진→동영상prompt *, image=url *, duration=2–10초, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.15/초
video/wan-2.7-edit동영상→동영상prompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/wan-t2v텍스트→동영상prompt *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-i2v사진→동영상prompt *, image=url *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-v2v동영상→동영상prompt *, video_url *, duration=5|10, resolution=720p|1080pMP4$0.44
video/wan-2.5-t2v텍스트→동영상prompt *, duration=5|10 *, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.5-i2v사진→동영상prompt *, image=url *, duration=5|10 *, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.2-t2v텍스트→동영상prompt *, aspect_ratio=16:9|9:16, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-2.2-i2v사진→동영상prompt *, image=url *, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-s2v아바타(사진+오디오)prompt *, image=url *, audio_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-move동영상→동영상image=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-replace동영상→동영상image=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/seedance-2텍스트→동영상prompt *, duration=4–15초, 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/초
video/seedance-2-fast텍스트→동영상prompt *, duration=4–15초, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.21/초
video/seedance-2-mini텍스트→동영상prompt *, duration=4–15초, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.13/초
video/seedance-1.5-pro텍스트→동영상prompt *, duration=4–12초, aspect_ratio=16:9|9:16|1:1|4:3, resolution=480p|720p|1080p, audio=bool, image=url, safety_filter=boolMP4$0.025/초
video/hailuo-02-t2v텍스트→동영상prompt *, duration=6|10, safety_filter=boolMP4$0.19
video/hailuo-02-t2v-pro텍스트→동영상prompt *, safety_filter=boolMP4$0.36
video/hailuo-02-i2v사진→동영상prompt *, image=url *, image2=url, duration=6|10, resolution=768p|512p, safety_filter=boolMP4$0.19
video/hailuo-02-i2v-pro사진→동영상prompt *, image=url *, image2=url, safety_filter=boolMP4$0.36
video/hailuo-2.3-i2v사진→동영상prompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.19
video/hailuo-2.3-i2v-pro사진→동영상prompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.28
video/happyhorse-1.1-t2v텍스트→동영상prompt *, duration=3–15초, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.18/초
video/happyhorse-1.1-i2v사진→동영상prompt, image=url *, duration=3–15초, resolution=720p|1080p, safety_filter=boolMP4$0.18/초
video/happyhorse-1.1-r2v사진→동영상prompt *, image=url *, duration=3–15초, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.18/초
video/happyhorse-t2v텍스트→동영상prompt *, duration=3–15초, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.30/초
video/happyhorse-i2v사진→동영상prompt, image=url *, duration=3–15초, resolution=720p|1080p, safety_filter=boolMP4$0.30/초
video/happyhorse-edit동영상→동영상prompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/grok-t2v텍스트→동영상prompt *, duration=6–30초, aspect_ratio=16:9|9:16|1:1|3:2|2:3, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/초
video/grok-i2v사진→동영상prompt *, image=url *, duration=6–30초, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/초
video/grok-1.5텍스트→동영상prompt *, duration=1–15초, aspect_ratio=auto|16:9|9:16|1:1, resolution=480p|720p, image=url, safety_filter=boolMP4$0.019/초
video/omnihuman아바타(사진+오디오)image=url *, audio_url *, prompt, resolution=720p|1080pMP4$1.69
video/infinitalk아바타(사진+오디오)prompt *, image=url *, audio_url *, resolution=480p|720pMP4$0.19
video/lipsync동영상→동영상video_url *, audio_url *, mode=lite|basicMP4$0.50
video/topaz-upscale업스케일video_url *, scale=2|4MP4$0.50

🎵 음악 ​

model모드input 파라미터파일가격
music/suno-v5음악title *, style *, version=v6|v6-wild|v6-mini, instrumental=bool, promptMP3$0.075
music/suno-cover음악prompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360초MP3$0.075
music/suno-extend-upload음악prompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, continue_from=1–120, instrumental=boolMP3$0.075
music/suno-add-vocals음악prompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, style, title, exclude_styles, vocal=female|maleMP3$0.075
music/suno-add-instrumental음악prompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, title, exclude_stylesMP3$0.075
music/suno-mashup음악prompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360초MP3$0.075
music/suno-sounds음악prompt *, 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

🎙 오디오 ​

model모드input 파라미터파일가격
audio/gemini-3.1-flash-tts음성 합성text *, 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-tts음성 합성text *, 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-tts음성 합성text *, 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-multilingual음성 합성text *, 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

🧊 3D 모델 ​

출력은 GLB(일부 모델은 OBJ, FBX, STL, USDZ, USD, 3MF 중 선택 가능)와 미리보기 이미지입니다. 작업 결과에는 여러 파일이 포함되며, 각 파일의 확장자는 서로 다를 수 있습니다. 파일 목록은 results 필드에 있으며, 각 항목에 ext가 있습니다.

가격은 생성 후에만 확인할 수 있습니다

3D는 실제 사용된 리소스를 기준으로 과금됩니다. 표에 표시된 상한 금액을 먼저 보류하고, 실제 비용이 확인되면 해당 금액을 청구한 뒤 차액을 환불합니다. 최종 금액은 항상 cost_usd에 표시됩니다.

model모드input 파라미터파일가격
3d/tripo-text텍스트→3Dprompt *, negative_prompt, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/tripo-image사진→3Dimage=url *, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/hunyuan-rapid-text텍스트→3Dprompt *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB 등$0.43–0.71
3d/hunyuan-rapid-image사진→3Dimage=url *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB 등$0.43–0.71
3d/hunyuan-pro-text텍스트→3Dprompt *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/hunyuan-pro-image사진→3Dimage=url *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/seed3d-image사진→3Dimage=url *, mesh_detail=low|medium|high, file_format=glb|obj|usd|usdzGLB/OBJ/USD$0.50
3d/meshy-text텍스트→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사진→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-image여러 시점→3Dimages=[url] * (1–4), texture_size=2k|4k|8k, ultra=bool, texture=bool, pbr=bool, texture_textGLB$0.94–1.26

사진을 텍스처로 사용. 3d/meshy-*에서는 텍스처를 지오메트리와 별도로 지정합니다. texture_photo에 이미지 URL을 넣거나 texture_text에 텍스트를 입력할 수 있습니다.

처리 시간. 3D 생성에는 30초에서 몇 분까지 걸릴 수 있으며, 이미지와 짧은 클립보다 오래 걸립니다. 연결을 유지할 필요는 없습니다. 상태가 저장되며 웹훅도 지원됩니다.

🛠 유틸리티 ​

model모드input 파라미터파일가격
image/topaz-upscale업스케일image=url *, scale=2|4|8PNG$0.063
image/recraft-remove-bg편집image=url *PNG$0.006
image/recraft-upscale업스케일image=url *PNG$0.006

모드별 예시 ​

텍스트로 이미지 생성

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

이미지 편집

json
{ "model": "image/seedream-edit", "input": { "prompt": "remove the background, add neon", "image": "https://…/photo.png" } }

사진→동영상(첫 번째/마지막 프레임, 길이, 오디오)

json
{ "model": "video/wan-2.7-i2v", "input": {
    "prompt": "smooth camera push-in", "image": "https://…/first.png",
    "image2": "https://…/last.png", "duration": 8, "resolution": "1080p" } }

음악

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

음성 합성

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "text": "안녕하세요, 세상", "voice": "Zephyr", "style": "empathetic",
    "pace": "natural", "accent": "neutral" } }

두 목소리 대화 — text 필드 대신 dialogue에 대사를 지정하고, voices에 목소리를 지정합니다(목소리 1은 목록의 첫 번째 항목):

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": "반가워요." } ] } }

아바타(사진과 오디오로 말하는 동영상 생성)

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

상태 및 오류 ​

GET /media/job/:id → status 필드:

상태의미
processing처리 중 — 계속 폴링하세요
done완료 — 파일은 result_url에, 차감 금액은 cost_usd에 있습니다
failed오류 — 원인은 error에 있으며, 금액은 환불됩니다

POST /media/generate 응답 코드: 400 — 알 수 없는 모델이거나 필수 필드가 누락됨; 401 — 키가 없거나 잘못됨; 402 — 잔액 부족; 403 — 계정에서 모델을 사용할 수 없음.

오류 응답 본문은 항상 다음 형식입니다 — { "error": "사용자가 읽을 수 있는 메시지", "code": "기계 판독용 코드" }. 코드: unknown_model, missing_param (+ param 필드), invalid_input, invalid_attachment, prompt_too_long, input_too_long, no_auth, no_key, insufficient_balance, unpaid_shortfall, rate_limited, generation_failed, unavailable.

사전 비용 추정 ​

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 }

표의 매개변수는 19.10.2026 기준 서비스 카탈로그와 대조했습니다. 최신 모델, 매개변수 및 가격의 전체 목록은 GET /media/models에서 확인할 수 있습니다.