모델
데브다이브-모두의창업 AI API에서 **모델(model)**은 "어떤 일을 잘하는 AI 하나"를 뜻합니다. 글을 쓰는 데 능한 모델, 목소리를 만드는 모델, 그림을 그리는 모델처럼 저마다 특기가 다릅니다.
원하는 일을 시키려면 그 일에 맞는 모델을 모델 ID로 골라주면 됩니다. 모델 ID는 모두 modoo- 로 시작합니다(예: modoo-text, modoo-image-z).
GET /v1/models 를 호출하면 사용 가능한 모델 목록이 한 번에 나옵니다.
curl https://modoo.devdive.me/v1/models \
-H "Authorization: Bearer sk-modoo-..."
응답의 data 안에 각 모델의 id(우리가 고르는 이름)가 들어 있어요.
호출 방식 3가지 (꼭 이해하고 넘어가세요)
모델마다 "답을 돌려주는 방식"이 다릅니다. 크게 3가지예요.
- 동기 (바로 답이 옴): 요청을 보내면 결과가 그 응답에 바로 담겨 옵니다. 글쓰기, 음성 합성, 이미지·문서 분석처럼 비교적 빨리 끝나는 작업이 여기에 속해요.
- 스트리밍 (글자가 실시간으로 옴): 답이 완성되기를 기다리지 않고, AI가 글을 쓰는 대로 글자가 조금씩 실시간으로 도착합니다. 채팅창처럼 "타이핑되는 느낌"을 주고 싶을 때 좋아요. 텍스트 모델에서
stream: true로 켤 수 있습니다. - 비동기 (시간이 걸려서 나중에 확인): 이미지·비디오 생성이나 음성 인식처럼 오래 걸리는 작업은 결과를 바로 주지 않고 먼저 **작업 번호(
job_id)**를 돌려줍니다. 이후 그 번호로 "다 됐나요?"를 물어보면(폴링) 완료된 결과를 받습니다.
job_id 를 받았다면 GET /v1/jobs/{job_id} 로 상태를 확인하세요. 자세한 방법은 API 레퍼런스의 폴링 안내를 참고하세요.
각 모델은 실제로 어떤 AI인가요? (매핑)
modoo- 모델 ID는 특정 제공사 모델을 감싼 별칭(alias) 입니다. 현재 기준 매핑은 아래와 같습니다.
| 모델 ID | 실제 모델 (현재 기준) |
|---|---|
modoo-text | OpenAI GPT-5.1 |
modoo-text-pro | OpenAI GPT-5.4 |
modoo-text-mini | OpenAI GPT-5 mini |
modoo-text-nano | OpenAI GPT-5 nano |
modoo-text-pro-mini | OpenAI GPT-5.4 mini |
modoo-text-pro-nano | OpenAI GPT-5.4 nano |
modoo-text-4o | OpenAI GPT-4o |
modoo-claude-opus | Anthropic Claude Opus 4.6 |
modoo-claude-sonnet | Anthropic Claude Sonnet 4.6 |
modoo-claude-haiku | Anthropic Claude Haiku 4.5 |
modoo-tts-minimax | MiniMax TTS |
modoo-tts-eleven | ElevenLabs TTS |
modoo-stt | Whisper |
modoo-music | MiniMax Music |
modoo-image-z | Z-Image Turbo |
modoo-image-gpt | GPT Image 2 |
modoo-image-edit | Qwen Image Edit Plus |
modoo-image-edit-max | Qwen Image Edit Max |
modoo-image-gpt-edit | GPT Image 2 (image-to-image) |
modoo-video | WAN 2.7 (text-to-video) |
modoo-video-i2v | WAN 2.7 (image-to-video) |
modoo-video-happyhorse-t2v | HappyHorse 1.1 (text-to-video) |
modoo-video-happyhorse-i2v | HappyHorse 1.1 (image-to-video) |
modoo-video-happyhorse-r2v | HappyHorse 1.1 (reference-to-video) |
modoo-web-search | Brave Search |
별칭을 쓰는 이유는 여러분의 코드를 바꾸지 않고도 더 좋은 모델로 업그레이드해 드리기 위해서입니다. 특정 버전에 의존하는 로직은 만들지 마세요 — 요청/응답 형식은 그대로 유지됩니다.
텍스트 모델
글쓰기, 요약, 번역, 아이디어 정리 등 "말과 글"을 다루는 모델입니다. 모두 같은 엔드포인트(POST /v1/chat/completions)를 쓰며, 동기와 스트리밍 둘 다 됩니다. 즉 아래 모델들은 서로 바꿔 끼우기만 하면 됩니다.
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-text | 범용 기본. 대부분의 작업에 무난 | 동기·스트리밍 · POST /v1/chat/completions | 15,000 |
modoo-text-pro | 가장 똑똑함. 어렵고 긴 작업 | 동기·스트리밍 · POST /v1/chat/completions | 15,000 |
modoo-text-mini | 빠르고 저렴 | 동기·스트리밍 · POST /v1/chat/completions | 30,000 |
modoo-text-nano | 초경량·최저비용, 간단한 작업 | 동기·스트리밍 · POST /v1/chat/completions | 30,000 |
modoo-text-pro-mini | 빠르고 저렴한 5.4 계열 | 동기·스트리밍 · POST /v1/chat/completions | 30,000 |
modoo-text-pro-nano | 초경량 5.4 계열 | 동기·스트리밍 · POST /v1/chat/completions | 30,000 |
modoo-text-4o | 범용(호환용) | 동기·스트리밍 · POST /v1/chat/completions | 15,000 |
modoo-claude-opus | Claude 최상위, 복잡한 추론 | 동기·스트리밍 · POST /v1/chat/completions | 20,000 |
modoo-claude-sonnet | Claude 균형형 | 동기·스트리밍 · POST /v1/chat/completions | 20,000 |
modoo-claude-haiku | Claude 경량·빠름 | 동기·스트리밍 · POST /v1/chat/completions | 20,000 |
아래 예시들은 model 값만 다르고 나머지는 똑같습니다. 빠르게 답만 필요하면 modoo-text-mini, 어려운 작업이면 modoo-text-pro 나 modoo-claude-opus 처럼 골라 바꿔 쓰면 됩니다.
예시 1 — 기본 모델로 한 줄 답 받기. 이 요청은 "가을에 어울리는 카페 이름 3개"를 지어달라고 합니다.
curl https://modoo.devdive.me/v1/chat/completions \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-text",
"prompt": "가을에 어울리는 감성적인 카페 이름 3개만 지어줘."
}'
응답의 content 에 AI가 지어준 이름이 들어 있습니다. cost 는 이번 호출로 차감된 크레딧이에요.
예시 2 — 더 똑똑한 모델로 바꾸기. model 만 modoo-text-pro 로 바꾸면 됩니다. 이 요청은 어려운 사업 아이디어 분석을 맡깁니다.
curl https://modoo.devdive.me/v1/chat/completions \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-text-pro",
"prompt": "다음 사업 아이디어의 강점과 약점을 각각 3가지로 정리해줘: 동네 반찬 구독 서비스"
}'
예시 3 — 빠르고 저렴한 모델. 간단한 작업이라면 modoo-text-mini 로 충분합니다.
curl https://modoo.devdive.me/v1/chat/completions \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-text-mini",
"prompt": "이 문장을 정중한 존댓말로 바꿔줘: 내일 회의 몇 시야?"
}'
세 예시 모두 응답에서 볼 곳은 같습니다 — content(AI의 답), usage(사용한 토큰 수), cost(차감된 크레딧).
요청 본문에 "stream": true 를 추가하면 답이 한 글자씩 실시간으로 도착합니다. 자세한 형식은 API 레퍼런스를 참고하세요.
오디오 모델
목소리를 만들거나(TTS, 음성 합성) 음성을 글자로 옮기는(STT, 음성 인식) 모델입니다.
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-tts-minimax | 음성 합성(TTS) — 글을 사람 목소리로 | 동기 · POST /v1/audio/speech | 60 |
modoo-tts-eleven | 음성 합성(TTS) | 동기 · POST /v1/tasks/modoo-tts-eleven | 60(동시 5) |
modoo-stt | 음성 인식(STT) — 목소리를 글자로 | 비동기 · POST /v1/audio/transcriptions | 60 |
modoo-music | 음악 생성 — 가사로 노래 만들기 | 비동기 · POST /v1/audio/music | 120(동시 20) |
TTS는 "글 → 목소리", STT는 "목소리 → 글" 이라고 기억하면 쉬워요. 음악 생성(
modoo-music)은 가사·스타일로 노래 한 곡을 만들어 줍니다(아래 음악 생성 참고).
예시 (동기) — 글을 목소리로 만들기. 이 요청은 문장을 읽어주는 음성 파일을 만듭니다.
curl https://modoo.devdive.me/v1/audio/speech \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"text": "안녕하세요, 모두의창업입니다. 오늘도 좋은 하루 되세요."
}'
응답의 result.audio_url 이 완성된 음성 파일 주소입니다. charge 는 차감된 크레딧이에요.
POST /v1/audio/transcriptions 로 음성 파일을 보내면 결과가 바로 오지 않고 job_id 가 옵니다. 그 번호로 폴링해서 글자 결과를 받으세요.
curl https://modoo.devdive.me/v1/audio/transcriptions \
-H "Authorization: Bearer sk-modoo-..." \
-F "[email protected]" \
-F "language=ko"
응답에 job_id 와 status: "processing" 이 옵니다 → 완료되면 결과에 받아쓴 글자가 들어 있어요.
이미지·문서 분석 모델
사진이나 문서 파일을 AI에게 보여주고 "무엇이 담겨 있는지" 설명·요약받는 모델입니다. 모두 동기라 결과가 바로 옵니다.
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-image-analyze | 이미지 분석(설명/질문) | 동기 · POST /v1/images/analyses | 600 |
modoo-docs-analyze | 문서 분석(요약 등) | 동기 · POST /v1/documents/analyses | 600 |
예시 (동기) — 문서 요약받기. 이 요청은 올린 문서를 자동으로 요약합니다.
curl https://modoo.devdive.me/v1/documents/analyses \
-H "Authorization: Bearer sk-modoo-..." \
-F "[email protected]" \
-F "operation=summary"
응답의 result.content 에 요약된 글이 들어 있습니다. 이미지 분석(/v1/images/analyses)도 똑같이 result.content 에서 설명을 확인하면 됩니다.
컴퓨터에 있는 파일 대신 이미 인터넷에 올라간 파일이라면
-F "file=@..."자리에-F "url=https://..."를 넣어도 됩니다.
웹 검색 모델
최신 정보가 필요할 때 인터넷 검색 결과를 받아오는 모델입니다. 동기라 결과가 바로 옵니다.
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-web-search | 웹 검색 — 질의어로 최신 검색 결과 받기 | 동기 · POST /v1/tasks/modoo-web-search | — |
예시 (동기) — 웹 검색하기. query 에 검색어를 넣어 보냅니다.
curl https://modoo.devdive.me/v1/tasks/modoo-web-search \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{ "query": "소상공인 정책자금 최신 공고" }'
응답의 result 에 검색 결과가 들어 있습니다. 검색 결과를 텍스트 모델에 붙여 "최신 정보 기반 답변"을 만드는 식으로 조합해 쓰면 좋아요.
이미지 생성 모델
글로 설명하면 그림을 그려주는 모델입니다. 그림은 만드는 데 시간이 걸리므로 모두 비동기예요(먼저 job_id 를 받고, 완료되면 그림 주소를 받습니다).
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-image-z | 기본, 빠름. size 지정 가능(너비*높이) | 비동기 · POST /v1/images/generations | 120 |
modoo-image-gpt | n(1~10)으로 여러 장 생성. size 는 auto/1024x1024/1536x1024/1024x1536 | 비동기 · POST /v1/images/generations | 5 |
modoo-image-edit | 이미지 수정(image-to-image) — 원본 이미지를 주고 글로 고쳐달라고 요청 (Qwen) | 비동기 · POST /v1/images/generations | 120 |
modoo-image-edit-max | 이미지 수정 고품질 버전 (호출 한도 낮음) | 비동기 · POST /v1/images/generations | 2 |
modoo-image-gpt-edit | 이미지 수정(image-to-image) — GPT Image 2. image_url 또는 encoded_image(base64)로 원본 전달, 여러 장은 image_urls(최대 3장) | 비동기 · POST /v1/images/generations | 5 |
예시 (비동기) — 그림 만들기. 이 요청은 설명한 장면을 그림으로 그려달라고 맡깁니다.
curl https://modoo.devdive.me/v1/images/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-image-z",
"prompt": "따뜻한 조명이 켜진 아늑한 동네 카페, 창밖은 가을 단풍",
"size": "1024*1024"
}'
size 표기는 모델 계열마다 다릅니다modoo-image-z 와 수정 모델(Qwen)은 1024*1024 처럼 별표(*), modoo-image-gpt·modoo-image-gpt-edit 는 1024x1024 처럼 x 를 씁니다. 모델별 전체 허용 목록은 API 레퍼런스를 참고하세요. 허용값이 아니면 422 오류가 납니다.
바로 이런 답이 옵니다 — job_id 와 status: "processing".
{ "job_id": "job_abc123", "status": "processing", "model": "modoo-image-z", "charge": 1.2 }
이제 받은 job_id 로 결과를 확인합니다(폴링).
curl https://modoo.devdive.me/v1/jobs/job_abc123 \
-H "Authorization: Bearer sk-modoo-..."
완료되면(status: "succeeded") result.image_urls 에 완성된 그림 주소들이 들어 있습니다.
예시 — 원본 이미지 수정 (image-to-image). 새로 그리는 대신 가지고 있는 이미지를 유지하면서 바꾸고 싶을 때(같은 인물의 배경만 바꾸기 등)는 modoo-image-edit 에 원본 이미지를 함께 보냅니다. image_url(인터넷 주소) 또는 encoded_image(base64) 중 하나로 원본을 전달하세요.
curl https://modoo.devdive.me/v1/images/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-image-edit",
"prompt": "같은 인물 그대로, 배경만 밤의 도시 야경으로 바꿔줘",
"image_url": "https://example.com/photo.jpg"
}'
응답과 결과 확인 방법은 위와 동일합니다(job_id 를 받아 폴링). modoo-image-z 같은 일반 생성 모델은 참조 이미지를 받지 않으니, 원본 유지가 필요하면 반드시 modoo-image-edit(또는 -max)를 쓰세요.
GPT Image 2로 수정하려면 modoo-image-gpt-edit 을 씁니다. modoo-image-edit 과 마찬가지로 image_url(인터넷 주소) 또는 encoded_image(base64)로 원본을 전달하면 됩니다. 여러 장(최대 3장)을 참조로 넣으려면 image_urls 배열을 쓰세요.
curl https://modoo.devdive.me/v1/images/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-image-gpt-edit",
"prompt": "같은 인물 그대로, 배경만 밤의 도시 야경으로 바꿔줘",
"image_url": "https://example.com/photo.jpg"
}'
미디어 주소는 시간이 지나면 만료됩니다. 링크를 어딘가에 저장해두기보다, 필요할 때 job_id 로 다시 조회해서 최신 주소를 받으세요.
비디오 생성 모델
글로 설명하면 짧은 영상을 만들어주는 모델입니다. 이것도 시간이 걸려 비동기예요.
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-video | 텍스트→영상. prompt(+negative_prompt) | 비동기 · POST /v1/videos/generations | 300 |
modoo-video-i2v | 이미지→영상 — 가진 이미지를 첫 장면으로 움직이는 영상 생성 | 비동기 · POST /v1/videos/generations | 300 |
modoo-video-happyhorse-t2v | 텍스트→영상 (HappyHorse 1.1). prompt | 비동기 · POST /v1/videos/generations | 300 |
modoo-video-happyhorse-i2v | 이미지→영상 (HappyHorse 1.1) — 이미지를 첫 장면으로 | 비동기 · POST /v1/videos/generations | 300 |
modoo-video-happyhorse-r2v | 참조→영상 (HappyHorse 1.1) — 캐릭터 참조 이미지 1~9장 + prompt | 비동기 · POST /v1/videos/generations | 300 |
예시 (비동기) — 영상 만들기. 이 요청은 설명한 장면을 짧은 영상으로 만들어달라고 맡깁니다.
curl https://modoo.devdive.me/v1/videos/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-video",
"prompt": "잔잔한 파도가 밀려오는 해질녘 바닷가",
"negative_prompt": "사람, 글자"
}'
응답으로 job_id 가 옵니다. 그 번호로 폴링하면 완료 후 result.video_url 에서 영상 주소를 받을 수 있어요.
negative_prompt는 "영상에 나오지 않았으면 하는 것"을 적는 칸입니다(위 예시에서는 사람과 글자를 빼달라고 했어요).
예시 — 이미지를 영상으로 (image-to-video). 가지고 있는 이미지를 첫 장면(첫 프레임) 으로 삼아 움직이게 하려면 modoo-video-i2v 에 image_url 을 함께 보냅니다. 이미지는 인터넷에서 접근 가능한 https 주소여야 해요(base64는 지원하지 않음 — 이미지 생성/수정 결과의 image_url 을 그대로 쓰면 됩니다).
curl https://modoo.devdive.me/v1/videos/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-video-i2v",
"prompt": "노을이 짙어지고 별이 하나둘 나타나는 타임랩스",
"image_url": "https://example.com/sunset.png"
}'
첫→끝 프레임 보간 (first→last). modoo-video-i2v(WAN 2.7)에서는 image_url(첫 프레임)과 함께 end_image_url(마지막 프레임)을 보내면, 두 장면을 잇는 전환 영상을 만듭니다. 두 이미지 모두 https 주소여야 합니다.
curl https://modoo.devdive.me/v1/videos/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-video-i2v",
"prompt": "낮에서 밤으로 부드럽게 전환",
"image_url": "https://example.com/day.png",
"end_image_url": "https://example.com/night.png"
}'
예시 — 참조 이미지로 영상 만들기 (reference-to-video). modoo-video-happyhorse-r2v 는 캐릭터 참조 이미지 1~9장을 reference_image_urls(인터넷에서 접근 가능한 https 주소 목록)로 받아, 그 캐릭터가 등장하는 영상을 만듭니다.
curl https://modoo.devdive.me/v1/videos/generations \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "modoo-video-happyhorse-r2v",
"prompt": "참조한 캐릭터가 노을 지는 바닷가를 걷는 장면",
"reference_image_urls": [
"https://example.com/char1.png",
"https://example.com/char2.png"
]
}'
modoo-video(WAN 2.7)와 modoo-video-happyhorse-* 모델은 다음 선택 옵션을 함께 넘길 수 있어요 — resolution(720P·1080P), ratio(예: 16:9·9:16·1:1·4:3·3:4, t2v·r2v 전용 — i2v는 입력 이미지 비율을 유지), duration(정수), watermark(true/false), seed(정수). prompt_extend(true/false)는 WAN 2.7 전용입니다. 각 모델이 받지 않는 값은 무시돼요. 자세한 규격은 API 레퍼런스를 참고하세요.
음악 생성 (music)
가사(와 원하는 분위기)를 주면 노래 한 곡을 만들어 주는 모델입니다. 만드는 데 시간이 걸려 비동기예요(먼저 job_id 를 받고, 완료되면 노래 파일 주소를 받습니다).
| 모델 ID | 설명 | 호출 방식 / 엔드포인트 | RPM |
|---|---|---|---|
modoo-music | 음악 생 성 — 가사로 노래 만들기 | 비동기 · POST /v1/audio/music | 120(동시 20) |
예시 (비동기) — 가사로 노래 만들기. lyrics 에 가사를 넣고, prompt 에 원하는 분위기·스타일을 적으면 됩니다.
model 은 모델 ID가 아니라 엔진 버전입니다모두의창업 모델 ID는 modoo-music 하나이고(위 표·응답의 model 필드), 요청 바디의 model 에는 업스트림 음악 엔진 버전인 music-2.5(기본) 또는 music-2.0 을 넣습니다. 다른 엔드포인트와 규칙이 다르니 주의하세요.
curl https://modoo.devdive.me/v1/audio/music \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"lyrics": "가을 밤 골목길, 따뜻한 커피 한 잔\n오늘도 수고했어 나에게",
"model": "music-2.5",
"prompt": "잔잔한 어쿠스틱 발라드"
}'
응답으로 job_id 가 옵니다. 그 번호로 폴링하면 완료 후 result.audio_url 에서 완성된 노래 파일 주소를 받을 수 있어요.
비용은 어떻게 알 수 있나요?
모델별 고정 단가표는 따로 없습니다. 비용은 호출할 때마다 실제 사용량(토큰 수, 생성 분량 등) 기반으로 정산되고, 그 금액이 응답의 cost(또는 charge) 필드에 그대로 표시됩니다. 표시된 만큼 크레딧이 차감돼요.
- 지금 남은 크레딧:
GET /v1/credits - 모델별 사용 이력과 차감액:
GET /v1/usage
쓰려는 모델로 실제 작업과 비슷한 요청을 몇 번 보내고 응답의 cost 를 확인해 보세요. "우리 작업 1건당 크레딧이 얼마"인지 가장 정확하게 알 수 있는 방법입니다. 같은 텍스트 모델이라도 프롬프트·답변 길이(토큰 수)에 따라 비용이 달라집니다.
호출 한도(레이트리밋)
한꺼번에 너무 많이 요청하면, 서비스 안정을 위해 잠깐 제한이 걸릴 수 있어요. 놀라지 마세요 — 잠시 후 다시 시도하면 됩니다.
- 각 모델은 위 표의 RPM(분당 요 청 수) 한도가 있습니다.
- 이와 별개로 API 키별 기본 120회/분, 계정별 기본 3,000회/분 한도도 있어요.
- 하루 총 지출 한도는 기본적으로 제한이 없습니다.
잠깐 쉬었다가 다시 요청하면 대부분 해결됩니다. 자세한 대처법은 에러 해결의 rate_limited / daily_quota_exceeded 항목을 참고하세요.