Stable Audio 3 · Medium · Text to Audio
통합
모델 id
stable-audio-3/medium/text-to-audio
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/stable-audio-3/medium/text-to-audio?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/stable-audio-3/medium/text-to-audio?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/stable-audio-3/medium/text-to-audio", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/ko/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "stable-audio-3/medium/text-to-audio",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
}
Doitong API를 통해 Stable Audio 3 · Medium · Text to Audio 모델(stable-audio-3/medium/text-to-audio)을 호출합니다. 에이전트용 문서: https://doitong.com/ko/developers/models/stable-audio-3/medium/text-to-audio.md
POST https://api.doitong.com/v1/run/stable-audio-3/medium/text-to-audio?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
응답 상태가 "queued" 또는 "running"이면 "succeeded"가 될 때까지 GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20을 폴링하세요. 파일은 outputs[].url에 있습니다. POST https://api.doitong.com/v1/quote/stable-audio-3/medium/text-to-audio에 동일한 본문을 보내면 실행 전에 정확한 가격을 반환합니다.
이 요청: $0.038 38 API 크레딧 이 페이지에서 실행
새 API 키입니다. 지금만 표시되며 이미 아래 코드와 API 키 필드에 입력되어 있습니다. 안전하게 보관하세요. 브라우저에서 실행되는 코드에 절대 넣지 마세요.
Stability AI · 오디오
첫 번째 결과가 여기에 표시됩니다
아래에서 요청을 작성하고 API 키로 실행하세요. 출력은 스토리지에 복사되며, 영구 보관하거나 7일 동안 무료로 보관할 수 있습니다.
요청 만들기
컨트롤은 모델 스키마에서 생성됩니다. 값을 변경하면 코드와 가격이 업데이트됩니다.
POST
/run/stable-audio-3/medium/text-to-audio?wait=20
견적 → $0.038
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/stable-audio-3/medium/text-to-audio?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/stable-audio-3/medium/text-to-audio?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/stable-audio-3/medium/text-to-audio", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "stable-audio-3/medium/text-to-audio",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"wait_seconds": 20
}
}
}
Stable Audio 3 · Medium · Text to Audio 정보
텍스트 `prompt`에서 오디오를 생성하며 선택적으로 `negative_prompt`를 사용할 수 있습니다. 이 사후 학습 변형은 샘플링 8스텝이 기본값이며 더 많은 스텝의 효과가 작습니다. 기본 가이던스 스케일은 1이며, 기본 체크포인트에서만 효과가 있기 때문입니다. `duration`은 1~380초입니다. mp3, wav, flac, ogg, opus, m4a 또는 aac 출력을 선택할 수 있습니다.
매개변수
이름유형
기본값허용됨
설명
negative_prompt선택 사항
유형string
기본값
출력에서 원하지 않는 특성을 지정하는 텍스트입니다.
duration선택 사항
유형number
기본값30
1 – 380
오디오 길이(초)이며, medium 모델의 최대값은 380초(약 6분 20초)입니다.
num_inference_steps선택 사항
유형integer
기본값8
1 – 100
샘플링 반복 횟수입니다. 증류된 사후 학습 체크포인트는 8회에서 이미 좋은 품질을 내므로 기본값은 8이며, 추가 반복의 이점은 적습니다.
guidance_scale선택 사항
유형number
기본값1
0 – 25
기본 체크포인트에만 적용되는 분류기 없는 가이던스 강도입니다. 증류된 체크포인트에는 영향을 주지 않습니다. 해당 체크포인트에서 높이면 프롬프트 준수가 강화됩니다.
seed선택 사항
유형integer | null
반복 가능한 결과를 위한 무작위 생성기 시드입니다. 생략하면 무작위 시드를 선택합니다.
enable_prompt_expansion선택 사항
유형boolean
기본값false
활성화하면 LLM을 사용해 프롬프트를 확장하여 세부 정보를 추가하고 결과 품질을 높입니다.
enable_safety_checker선택 사항
유형boolean
기본값true
NSFW 콘텐츠에 대한 안전성 검사입니다.
output_format선택 사항
유형enum
기본값mp3
mp3wavflacoggopusm4aaac
결과 오디오에 사용할 컨테이너 형식입니다.
bitrate선택 사항
유형string
기본값192k
출력 오디오 비트레이트입니다. wav 또는 flac은 무손실 형식이므로 무시됩니다. mp3, aac 또는 opus 같은 압축 형식에는 '192k' 또는 '320k' 형식으로 값을 제공하세요.
prompt필수
유형string
원하는 오디오 콘텐츠를 지정하는 텍스트입니다.
필수
출력
GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "stable-audio-3/medium/text-to-audio",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 38,
"usd": "0.038",
"charged": 38,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"output": {
"audio": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_name": "0-output.mp3",
"file_size": 1843200
},
"seed": 42,
"prompt": "string"
},
"outputs": [
{
"type": "audio",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_size": 1843200,
"duration": 12,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
파일 보관 방식 선택모든 outputs[].url은 스토리지에 저장된 복사본입니다. 계정 설정 또는 ?storage=에 따라 영구 보관(GB-월 단위 과금)하거나 7일 동안 무료로 보관합니다.
모든 모델에서 동일한 구조이미지, 동영상, 오디오 모두 type, url, content_type, width, height 및 duration을 사용합니다. output은 모델 자체의 결과 객체입니다.
출력 필드
- audio
- object {url, content_type, file_name, file_size}생성으로 만들어진 오디오 클립입니다.
- seed
- integer생성 중 무작위성을 제어한 시드입니다.
- prompt
- string출력 생성에 사용된 프롬프트입니다.
다른 Stable Audio 3 변형
더 많은 모델: 오디오
AI 에이전트용: 이 페이지의 Markdown 버전: https://doitong.com/ko/developers/models/stable-audio-3/medium/text-to-audio.md. 모든 모델 및 가이드: https://doitong.com/developers/llms.txt