인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
데이터 및 연구 · SKILL.md

producer-music

producer-music

Generate AI music with Producer via AceDataCloud API. Use when creating songs, generating lyrics, extending tracks, creating covers, swapping vocals/instrumentals, replacing song sections, or uploading reference audio. Supports custom lyrics, instrumental-only mode, and multiple creative actions.

Independent GitHub snapshot · Automated classification · Original documentation governs

Aacedatacloud / skillsApache-2.0

Skill 문서

GitHub

name: producer-music description: Generate AI music with Producer via AceDataCloud API. Use when creating songs, generating lyrics, extending tracks, creating covers, swapping vocals/instrumentals, replacing song sections, or uploading reference audio. Supports custom lyrics, instrumental-only mode, and multiple creative actions. license: Apache-2.0 metadata: author: acedatacloud version: "1.0" compatibility: Requires ACEDATACLOUD_API_TOKEN in .env file (get an API key at https://platform.acedata.cloud/console/applications).

Producer Music Generation

Generate AI music through AceDataCloud's Producer API.

First-time setup

  1. Install the official Skill with clawhub install @acedatacloud/producer. Check that the ClawHub publisher is @acedatacloud.
  2. Sign in at AceDataCloud → Applications, open General application, and check Producer access, balance, and current pricing. Copy its API key, or select Manage Keys → Create for a separate key. Copy the key value without Bearer ; a platform-... management token is not a service API key.
  3. If you enable Allowed APIs restrictions, include /producer/audios and /producer/tasks. Advanced workflows below may call additional routes.
  4. On the OpenClaw Gateway host, put ACEDATACLOUD_API_TOKEN=your_api_key_here in ~/.openclaw/.env, then restart the Gateway and start a new session. For a direct terminal test, run export ACEDATACLOUD_API_TOKEN="your_api_key_here" in that shell. Never put the key in a prompt or commit an .env file.
  5. Run the Quick Start below. If it returns a task ID, query that same task until it finishes; do not submit a second billable generation just to check progress.

Illustrated key setup, first run, and troubleshooting · Token details

Quick Start

curl -X POST https://api.acedata.cloud/producer/audios \
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "generate", "lyric": "", "prompt": "upbeat electronic dance track with synth leads"}'

Async: All generation is async. See async task polling. Poll via POST /producer/tasks with {"id": "..."} every 3-5 seconds.

Models

ModelNotes
FUZZ-2.0 ProDefault, highest quality
FUZZ-2.0Standard quality
FUZZ-2.0 RawRaw output variant
FUZZ-1.1 ProPro v1.1
FUZZ-1.0 ProPro v1.0
FUZZ-1.0v1.0
FUZZ-1.1v1.1
FUZZ-0.8Legacy

Actions

ActionDescription
generateCreate a new song from prompt or custom lyrics
coverCreate a cover version of an existing song
extendContinue a song from a specific timestamp
replace_sectionReplace a time range in an existing song
swap_vocalsExtract and swap vocal tracks
swap_instrumentalsExtract and swap instrumental tracks
variationGenerate a variation of an existing song
stemsSeparate a song into stems

Workflows

1. Generate from Prompt

POST /producer/audios
{
  "action": "generate",
  "lyric": "",
  "prompt": "chill lo-fi hip hop with rain sounds and soft piano"
}

2. Custom Lyrics Mode

POST /producer/audios
{
  "action": "generate",
  "custom": true,
  "title": "Midnight City",
  "lyric": "[Verse]\nNeon lights reflect on wet streets\n[Chorus]\nMidnight city never sleeps",
  "prompt": "nocturnal electronic pop",
  "instrumental": false
}

3. Instrumental Only

POST /producer/audios
{
  "action": "generate",
  "lyric": "",
  "prompt": "epic orchestral soundtrack for a movie trailer",
  "instrumental": true
}

4. Extend Song

POST /producer/audios
{
  "action": "extend",
  "audio_id": "existing-audio-id",
  "lyric": "",
  "prompt": "",
  "continue_at": 30
}

5. Replace Section

POST /producer/audios
{
  "action": "replace_section",
  "audio_id": "existing-audio-id",
  "lyric": "",
  "prompt": "",
  "replace_section_start": 15,
  "replace_section_end": 30
}

6. Separate into Stems

POST /producer/audios
{
  "action": "stems",
  "audio_id": "existing-audio-id",
  "lyric": "",
  "prompt": ""
}

7. Generate Lyrics

POST /producer/lyrics
{
  "prompt": "a love song about stargazing on a summer night"
}

8. Get WAV / Video

POST /producer/wav
{"audio_id": "your-audio-id"}

POST /producer/videos
{"audio_id": "your-audio-id"}

9. Upload Reference Audio

POST /producer/upload
{
  "audio_url": "https://example.com/reference.mp3"
}

Parameters

ParameterTypeDescription
actionstringRequired for every /producer/audios request; see actions table
promptstringRequired for every /producer/audios request; use an empty string when an edit action does not use a prompt
modelstringModel (e.g., "FUZZ-2.0 Pro")
custombooleanEnable custom lyrics mode
instrumentalbooleanPure instrumental (no vocals)
titlestringSong title
lyricstringRequired for every /producer/audios request; custom lyrics use [Verse], [Chorus] tags, otherwise use an empty string
audio_idstringExisting audio ID (for edit actions)
continue_atnumberSeconds — where to extend from
replace_section_startnumberStart time of section to replace
replace_section_endnumberEnd time of section to replace
lyrics_strength0-1Lyrics adherence (default: 0.7)
sound_strength0.2-1Sound quality weight (default: 0.7)
weirdness0-1Creative randomness (default: 0.5)
seedstringSeed for reproducibility

Response Structure

{
  "data": [
    {
      "id": "audio-id",
      "audio_url": "https://cdn.example.com/song.mp3",
      "video_url": "https://cdn.example.com/video.mp4",
      "image_url": "https://cdn.example.com/cover.jpg",
      "title": "Song Title",
      "lyric": "full lyrics...",
      "style": "electronic, dance",
      "model": "FUZZ-2.0 Pro"
    }
  ]
}

Gotchas

  • Use [Verse], [Chorus], [Bridge], [Outro] tags in custom lyrics
  • continue_at is in seconds — the song extends from that point
  • replace_section_start / replace_section_end define the time range to regenerate
  • weirdness at 0 = predictable, at 1 = highly experimental
  • Upload a reference audio via /producer/upload to get an audio ID for use with cover or extend
  • WAV and video downloads are separate endpoints — call them after the main generation completes
  • CRITICAL: Check the state field in task responses — only state: "complete" with success: true means done. During pending, the API may return intermediate audio_url values (streaming previews). Do NOT stop polling just because audio_url is non-empty
저장한 Skills