生成、延伸、翻唱、混搭等 — 统一的音乐生成端点
检查必填参数
GET /suno/v2/generate/schema?task=create 获取 create 任务的参数模式和请求示例。参见 Generate Schema →轮询任务状态
taskId 轮询获取任务状态,直到状态为 success。| 任务 | 描述 | 关键必填字段 |
|---|---|---|
create | 从零开始创建新音乐 | model |
extend | 延伸已有音乐 | clip_id, model |
upload_extend | 延伸已上传的音频 | audio_url, model |
upload_cover | 翻唱已上传的音频 | audio_url, model |
cover | 翻唱已有片段 | clip_id, model |
use_styles_lyrics | 使用片段的风格搭配新歌词 | clip_id, model |
replace_section | 替换已有音频的某个段落 | clip_id, range, infill_context_range, continued_aligned_prompt, model |
add_instrumental | 为指定范围添加伴奏 | clip_id, range, model |
add_vocals | 为指定范围添加人声 | clip_id, range, model |
gen_stem_two | 生成双轨音轨(人声 + 伴奏) | clip_id, model |
gen_stem_all | 生成所有音轨 | clip_id, model |
mashup | 混搭两首歌曲 | mashup_clip_ids, model |
sample | 从已有片段中采样 | clip_id, range, model |
inspiration | 从灵感播放列表生成 | playlist_clip_ids, model |
sound | 生成音效 | sound, model |
task 和 model 字段。使用 GET /suno/v2/generate/schema?task=xxx 获取任何特定任务类型的完整参数详情。| 参数 | 类型 | 描述 |
|---|---|---|
task | string | 必填。任务类型(见上表) |
model | string | 必填。模型版本:chirp-v55、chirp-v50、chirp-45+、chirp-v45、chirp-v45-lite、chirp-v40、chirp-v35 |
prompt | string | 歌词或提示文本 |
tags | string | string[] | 风格标签(例如 "Pop, Happy, Upbeat") |
negative_tags | string | string[] | 要排除的风格 |
title | string | 歌曲标题 |
make_instrumental | boolean | 生成无人声版本(默认:false) |
vocal_gender | string | "m"(男声)或 "f"(女声) |
controls | object | 高级控制:style_weight、audio_weight、weirdness_constraint(0~1) |
persona | object | 用于风格模仿的声音角色 |
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Task type. Use GET /generate/schema?task=xxx to query required fields for each task.
create, extend, upload_extend, upload_cover, cover, use_styles_lyrics, replace_section, add_instrumental, add_vocals, gen_stem_two, gen_stem_all, mashup, sample, inspiration, sound "create"
Model version. Supports standard models (e.g. chirp-v50) and custom models (chirp-custom:
"chirp-v50"
Whether to make instrumental (no vocals). [Optional: all tasks]
false
Lyrics or prompt text. [Optional: all tasks] For replace_section: lyrics within infill_context_range (modified if replacement changes lyrics).
"[Verse]\nHello world, here I come...\n\n[Chorus]\nLa la la..."
Full song lyrics after replacement. [Required: replace_section] Contains the complete lyrics of the entire song with the replaced section updated.
"[Verse 1]\nOriginal lyrics...\n\n[Chorus]\nNew replaced lyrics...\n\n[Verse 2]\nMore lyrics..."
Lyrics for the replaced section only. [Optional: replace_section] The specific lyrics within the range being replaced.
"[Bridge]\nThis is the new bridge section\nWith updated lyrics..."
Short description for GPT lyrics generation. [Optional: create, mashup, etc.]
"A happy pop song about summer vacation"
Style tags. Supports string or array. [Optional: all tasks]
"Pop, Happy, Upbeat"
Negative style tags to exclude. [Optional: all tasks]
"Sad, Slow"
Song title. [Optional: all tasks]
"Summer Vibes"
Source clip ID. [Required: extend, cover, use_styles_lyrics, replace_section, add_instrumental, add_vocals, gen_stem_*, sample]
"clip_abc123"
Continue position in seconds. [Optional: extend, upload_extend]
x >= 030
Target range { start_s, end_s }. [Required: replace_section, sample] For replace_section: the section to replace (duration should be > 6 seconds). For sample: the time range to sample from source clip.
{ "start_s": 15.36, "end_s": 53.8 }
Infill mode for replace_section. [Optional: replace_section] "smart" = auto-select based on duration (default), "classic" = always use infill (better for long selections), "fixed" = always use fixed_infill (better for short selections).
smart, classic, fixed "smart"
Infill context range (must encompass range). [Required: replace_section] Should extend ~30s before range.start_s and ~30s after range.end_s. If range starts within first 30s, use 0 for start_s. If range ends within last 30s of song, use song duration for end_s.
{ "start_s": 0, "end_s": 69.16 }
Artist persona config for style mimicking. [Optional: create, cover, extend]
{
"persona_id": "persona_xyz789",
"artist_clip_id": "clip_abc123",
"persona_style": "vox"
}
Advanced control sliders (0~1). [Optional: all tasks]
{
"style_weight": 0.6,
"audio_weight": 0.4,
"weirdness_constraint": 0.2
}
Vocal gender (m=male, f=female). [Optional: all tasks]
m, f "m"
Audio URL for upload tasks. [Required: upload_extend, upload_cover]
"https://example.com/audio.mp3"
Two clip IDs for mashup [clip_a, clip_b]. [Required: mashup]
["clip_abc123", "clip_def456"]
Clip IDs for inspiration generation (max 4). Must be clips from the same account. [Required: inspiration]
4[
"1df1d908-842d-41a2-bce4-c798a551cd2d",
"93d2bfe9-c6d4-42cd-88fc-ee508d4fa6ed"
]
Sound generation config. [Required: sound] description is the core sound prompt (also auto-used as title). type/key/bpm are optional advanced options. Tags are auto-assembled; user-provided tags are ignored for sound task.
{
"description": "深沉的低音和温暖的模拟质感",
"type": "one_shot",
"key": "F#",
"bpm": 2
}
task id. Use this id to query task status.
"15c257ff-43f7-4678-bd41-202ad6b8488b"