Appearance
编辑音乐
音乐编辑任务用于延展音乐、基于上传音频重新创作、添加伴奏或人声、生成 Mashup 和替换片段。编辑任务统一通过 POST /v1/tasks 提交。
延展音乐
延展已有音乐时,必须先有一首已成功生成的源音乐。查询源任务后,从响应中的 media[].suno_audio_id 取出音频 ID,作为新请求的 audioId。
延展模型应与源音乐的模型版本保持一致。例如源音乐由 suno-music-v5.5 生成时,延展时优先使用 suno-extend-v5.5;不要把同一个 audioId 混用于不同版本的延展模型,否则任务可能在生成阶段失败。
defaultParamFlag 控制是否沿用源音乐参数:
false:沿用源音乐参数,只需提供audioId、defaultParamFlag和callBackUrl。true:自定义续写参数,还必须提供continueAt、prompt、style和title。
如果沿用源音乐参数失败,可以改用 defaultParamFlag=true,显式提供续写位置和创作参数。continueAt 必须大于 0,并且小于源音乐总时长。
http
POST /v1/tasksbash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-extend-v5.5",
"audioId": "807233aa-438a-4b5c-a203-9b64299ed238",
"defaultParamFlag": false,
"callBackUrl": "https://example.com/callback"
}'bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-extend-v5.5",
"audioId": "807233aa-438a-4b5c-a203-9b64299ed238",
"defaultParamFlag": true,
"continueAt": 60,
"prompt": "Continue with a brighter chorus and stronger drums.",
"style": "Pop Rock",
"title": "Brighter Chorus",
"callBackUrl": "https://example.com/callback"
}'使用上传素材
需要上传或登记音频素材时,先调用 POST /v1/assets/uploads 获取 asset_id 或 Asset://asset_xxx,再在任务请求中引用该素材。
bash
curl https://moonapix.com/v1/assets/uploads \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/source.mp3",
"purpose": "music_reference"
}'上传并重新创作
上传音频重新创作使用可公网访问的 uploadUrl。customMode=false 时沿用默认创作参数;customMode=true 时还应提供 prompt、style 和 title。
bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-upload-cover-v5.5",
"uploadUrl": "https://example.com/source.mp3",
"customMode": true,
"instrumental": false,
"prompt": "Create a warm acoustic cover.",
"style": "Acoustic Pop",
"title": "Warm Cover",
"callBackUrl": "https://example.com/callback"
}'上传并延展
上传音频并延展同样使用 uploadUrl。建议使用 defaultParamFlag=true 并显式提供 continueAt、prompt、style 和 title,这样可以避免部分版本因为缺少续写位置而被拒绝。continueAt 必须大于 0,并且小于上传音频总时长。
bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-upload-extend-v5.5",
"uploadUrl": "https://example.com/source.mp3",
"defaultParamFlag": true,
"continueAt": 60,
"prompt": "Extend this into a cinematic ending.",
"style": "Cinematic Pop",
"title": "Final Scene",
"callBackUrl": "https://example.com/callback"
}'添加伴奏或人声
添加伴奏和添加人声使用可公网访问的 uploadUrl,适合把已有音频作为参考重新生成伴奏或人声版本。
bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-add-instrumental-v5.5",
"uploadUrl": "https://example.com/source.mp3",
"title": "Instrumental Version",
"negativeTags": "noise, distortion",
"tags": "pop, clean instrumental",
"callBackUrl": "https://example.com/callback"
}'bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-add-vocals-v5.5",
"uploadUrl": "https://example.com/source.mp3",
"prompt": "Add a gentle female vocal.",
"title": "Vocal Version",
"negativeTags": "noise, distortion",
"style": "Soft Pop",
"callBackUrl": "https://example.com/callback"
}'生成 Mashup
Mashup 使用 uploadUrlList 提交多个可公网访问的音频 URL。建议先使用 customMode=false 的默认模式;如果自定义模式返回歌词为空、过短或格式异常,可以先切回默认模式重试。
bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-mashup-v5",
"uploadUrlList": [
"https://example.com/source-a.mp3",
"https://example.com/source-b.mp3"
],
"customMode": false,
"callBackUrl": "https://example.com/callback"
}'替换片段
替换片段需要已有成功任务的 taskId 和对应 audioId,并指定替换区间。
bash
curl https://moonapix.com/v1/tasks \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-replace-section",
"taskId": "task_xxx",
"audioId": "807233aa-438a-4b5c-a203-9b64299ed238",
"prompt": "Replace this section with a brighter hook.",
"tags": "pop, bright hook",
"title": "Updated Hook",
"fullLyrics": "[Verse] ... [Chorus] ...",
"infillStartS": 45,
"infillEndS": 75,
"callBackUrl": "https://example.com/callback"
}'必填字段速查
| 模型族 | 必填字段 |
|---|---|
suno-extend-* | audioId、defaultParamFlag、callBackUrl;当 defaultParamFlag=true 时还需要 continueAt、prompt、style、title |
suno-upload-cover-* | uploadUrl、customMode、instrumental、callBackUrl;当 customMode=true 时还需要 prompt、style、title |
suno-upload-extend-* | uploadUrl、defaultParamFlag、callBackUrl;建议同时提供 continueAt、prompt、style、title |
suno-add-instrumental-* | uploadUrl、title、negativeTags、tags、callBackUrl |
suno-add-vocals-* | uploadUrl、prompt、title、negativeTags、style、callBackUrl |
suno-mashup-* | uploadUrlList、customMode、callBackUrl |
suno-replace-section | taskId、audioId、prompt、tags、title、fullLyrics、infillStartS、infillEndS |
模型选择
| 场景 | 推荐默认模型 | 可用模型 |
|---|---|---|
| 延展音乐 | suno-extend-v5.5 | suno-extend-v4、suno-extend-v4.5、suno-extend-v4.5-plus、suno-extend-v4.5-all、suno-extend-v5、suno-extend-v5.5 |
| 上传并重新创作 | suno-upload-cover-v5.5 | suno-upload-cover-v4、suno-upload-cover-v4.5、suno-upload-cover-v4.5-plus、suno-upload-cover-v4.5-all、suno-upload-cover-v5、suno-upload-cover-v5.5 |
| 上传并延展 | suno-upload-extend-v5.5 | suno-upload-extend-v4、suno-upload-extend-v4.5、suno-upload-extend-v4.5-plus、suno-upload-extend-v4.5-all、suno-upload-extend-v5、suno-upload-extend-v5.5 |
| 添加伴奏 | suno-add-instrumental-v5.5 | suno-add-instrumental-v4.5-plus、suno-add-instrumental-v5、suno-add-instrumental-v5.5 |
| 添加人声 | suno-add-vocals-v5.5 | suno-add-vocals-v4.5-plus、suno-add-vocals-v5、suno-add-vocals-v5.5 |
| 生成 Mashup | suno-mashup-v5 | suno-mashup-v4、suno-mashup-v4.5、suno-mashup-v4.5-plus、suno-mashup-v4.5-all、suno-mashup-v5 |
| 替换片段 | suno-replace-section | suno-replace-section |