mcpField
A
acestep

acestep

github.com/calesthio创意与媒体73.0k1.1k 次安装1 天前更新
代码仓库

关于 acestep

acestep 是通过 RunPod 无服务器端点调用 ACE-Step 1.5 生成音乐的命令行技能,适用于视频制作者和音乐创作者。它支持提示词与歌词生成、音乐参数控制、场景预设、风格迁移和音轨分离。

主要功能

  1. 01根据提示词和歌词生成音乐
  2. 02设置时长、BPM 和调性
  3. 03使用视频场景预设
  4. 04迁移参考音频的风格
  5. 05分离人声与乐器音轨
  6. 06固定随机种子以便迭代

适用场景

  1. 01为视频场景制作背景音乐
  2. 02生成带段落结构的歌词歌曲
  3. 03根据参考音频制作风格变体
  4. 04从混音中提取乐器音轨

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/calesthio/openmontage --skill acestep

安装后在 Claude Code 中输入/acestep确认已加载。

详细介绍

ACE-Step 1.5 音乐生成

通过 tools/music_gen.py 生成开源音乐(MIT 许可证)。在 RunPod 无服务器环境中运行。 需要在 .env 中设置 RUNPOD_API_KEY 和 RUNPOD_ACESTEP_ENDPOINT_ID(运行 --setup 创建端点)。

快速参考

# Basic generation
python tools/music_gen.py --prompt "Upbeat tech corporate" --duration 60 --output bg.mp3

# With musical control
python tools/music_gen.py --prompt "Calm ambient piano" --duration 30 --bpm 72 --key "D Major" --output ambient.mp3

# Scene presets (video production)
python tools/music_gen.py --preset corporate-bg --duration 60 --output bg.mp3
python tools/music_gen.py --preset tension --duration 20 --output problem.mp3
python tools/music_gen.py --preset cta --brand digital-samba --duration 15 --output cta.mp3

# Vocals with lyrics
python tools/music_gen.py --prompt "Indie pop jingle" --lyrics "[verse]\nBuild it better\nShip it faster" --duration 30 --output jingle.mp3

# Cover / style transfer
python tools/music_gen.py --cover --reference theme.mp3 --prompt "Jazz piano version" --duration 60 --output jazz_cover.mp3

# Stem extraction
python tools/music_gen.py --extract vocals --input mixed.mp3 --output vocals.mp3

# List presets
python tools/music_gen.py --list-presets

逐步创作歌曲

1. 纯音乐背景曲(最简单)
python tools/music_gen.py --prompt "Upbeat indie rock, driving drums, jangly guitar" --duration 60 --bpm 120 --key "G Major" --output track.mp3
2. 带人声和歌词的歌曲

将歌词写入临时文件,或直接内联传入。使用结构标签控制歌曲段落。

# Write lyrics to a file first (recommended for longer songs)
cat > /tmp/lyrics.txt << 'LYRICS'
[Verse 1]
Walking through the morning light
Coffee in my hand feels right
Another day to build and dream
Nothing's ever what it seems

[Chorus - anthemic]
WE KEEP MOVING FORWARD
Through the noise and doubt
We keep moving forward
That's what it's about

[Verse 2]
Screens are glowing late at night
Shipping code until it's right
The deadline's close but so are we
Almost there, just wait and see

[Chorus - bigger]
WE KEEP MOVING FORWARD
Through the noise and doubt
We keep moving forward
That's what it's about

[Outro - fade]
(Moving forward...)
LYRICS

# Generate the song
python tools/music_gen.py \
  --prompt "Upbeat indie rock anthem, male vocal, driving drums, electric guitar, studio polish" \
  --lyrics "$(cat /tmp/lyrics.txt)" \
  --duration 60 \
  --bpm 128 \
  --key "G Major" \
  --output my_song.mp3
3. 使用视频背景预设
python tools/music_gen.py --preset tension --duration 20 --output problem_scene.mp3
获得良好效果的关键提示
  • Caption = 整体风格(流派、乐器、情绪、制作质量)
  • 歌词 = 时间结构(主歌/副歌的流动、人声演绎)
  • 歌词中的大写字母 = 高人声强度
  • 括号 = 背景人声:“We rise (together)”
  • 每行保持 6-10 个音节,让节奏自然
  • 不要在 Caption 中描述旋律——描述声音和感觉
  • 迭代提示词或歌词时,使用 --seed 固定随机性

场景预设

预设BPM调性用途
corporate-bg110C 大调专业背景、演示文稿
upbeat-tech128G 大调产品发布、技术演示
ambient72D 大调概览幻灯片、反思性内容
dramatic90D 小调揭晓、公告
tension85A 小调问题陈述、挑战
hopeful120C 大调解决方案揭晓、问题解决
cta135E 大调行动号召、收尾氛围
lofi85F 大调屏幕录制、编码演示

任务类型

text2music(默认)

根据文本提示词和可选歌词生成音乐。

cover

根据参考音频进行风格迁移。使用 --cover-strength(0.0-1.0)控制混合程度:

  • 0.2 — 宽松的风格启发(创作自由度更高)
  • 0.5 — 平衡的风格迁移
  • 0.7 — 接近原始结构(默认)
  • 1.0 — 最大程度忠于来源
extract

分离音轨——从混合音频中提取单独的音轨。 音轨:vocals、drums、bass、guitar、piano、keyboard、strings、brass、woodwinds、other

repaint(未来功能)

在保留其余音频的同时,重新生成现有音频中的特定时间片段。

lego(未来功能,需要基础模型)

在现有音频语境中生成单独的乐器音轨。

complete(未来功能,需要基础模型)

通过添加指定乐器,扩展未完成的乐曲。

提示词工程

Caption 编写——分层描述维度

通过叠加多个描述维度来编写 Caption,而不是只用单个词描述。

可包含的维度:

  • 流派/风格:流行、摇滚、爵士、电子、lo-fi、synthwave、管弦乐
  • 情绪/氛围:忧郁、欣喜若狂、梦幻、怀旧、亲密、紧张
  • 乐器:原声吉他、合成器铺底音色、808 鼓、弦乐、铜管、钢琴
  • 音色:温暖、清脆、空灵、有冲击力、丰润、精致、未经修饰
  • 年代:“80 年代合成器流行乐”、“现代独立音乐”、“古典浪漫主义”
  • 制作:lo-fi、录音室精修、现场录音、电影感
  • 人声:气声、浑厚、假声、沙哑、口语演绎(或“纯音乐”)

好:“缓慢忧郁的钢琴叙事曲,配以亲密感十足的女声;温暖的弦乐逐渐铺陈,最终进入强劲的副歌;录音室精修制作” 差:“悲伤的歌曲”

关键原则
  1. 具体胜过模糊——描述乐器、情绪和制作风格
  2. 避免矛盾——不要同时要求“古典弦乐”和“硬核金属”
  3. 重复能强化优先级——重复重要元素以突出强调
  4. 简短的 Caption = 更多创作自由——详细的 Caption 会限制模型
  5. 使用元数据参数设置 BPM/调性——不要在 Caption 中写“120 BPM”,而要使用 --bpm 120
歌词格式

结构标签(用于歌词,而非字幕):

[Intro]
[Verse]
[Chorus]
[Bridge]
[Outro]
[Instrumental]
[Guitar Solo]
[Build]
[Drop]
[Breakdown]

人声控制(加在行或段落前):

[raspy vocal]
[whispered]
[falsetto]
[powerful belting]
[harmonies]
[ad-lib]

能量指示:

  • 大写 = 高强度(“WE RISE ABOVE”)
  • 括号 = 背景人声(“We rise (together)”)
  • 每段中的每行保持 6–10 个音节,以保持自然节奏

示例 — 科技产品广告歌:

[Verse]
Build it better, ship it faster
Every feature tells a story

[Chorus - anthemic]
THIS IS YOUR PLATFORM
Your vision, your stage
Digital Samba, every page

[Outro - fade]
(Build it better...)

视频制作集成

不同场景类型的音乐
场景预设时长备注
标题dramatic 或 ambient3-5s简短,用于营造氛围
问题tension10-15s黑暗、令人不安
解决方案hopeful10-15s释然、乐观
演示lofi 或 corporate-bg30-120s不喧宾夺主,与演示时长相匹配
数据upbeat-tech8-12s营造可信度
CTActa5-10s能量拉满,节奏明快
片尾字幕ambient5-10s轻柔淡出
时间安排工作流
  1. 先规划场景时长(根据配音脚本)
  2. 生成匹配的音乐:--duration <scene_seconds>
  3. 音乐时长精准(与请求时长相差不超过 0.1s)
  4. 如果背景音乐需要贯穿多个场景:生成一条长音轨
与配音结合

在 Remotion 中,背景音乐的音量应混合至 10-20%:

<Audio src={staticFile('voiceover.mp3')} volume={1} />
<Audio src={staticFile('bg-music.mp3')} volume={0.15} />

旁白下方的音乐:使用器乐预设(corporate-bg、ambient、lofi)。 以音乐为主的场景(标题、CTA):可以使用更高音量或人声曲目。

品牌一致性

使用 --brand <name> 从 brands/<name>/brand.json 加载提示信息。 使用 --cover --reference brand_theme.mp3 创建品牌声音标识的变体。 若要让项目中的声音保持一致:固定种子(--seed 42),仅更改时长或提示词。

技术细节

  • 输出:48kHz MP3/WAV/FLAC
  • 时长范围:10-600 秒
  • BPM 范围:30-300
  • 推理:在 GPU 上约需 2-3 秒(turbo,8 步),在 Mac MPS 上约需 40-60 秒
  • Turbo 模型:8 步,无需 CFG,速度快且质量好
  • Shift 参数:建议 turbo 使用 3.0(可提升质量)
不应使用 ACE-Step 的场景
  • 声音克隆 — 请改用 Qwen3-TTS 或 ElevenLabs
  • 音效 — 请使用 ElevenLabs SFX(tools/sfx.py)
  • 语音/旁白 — 请使用配音工具,而非音乐生成工具
  • 从视频中提取分轨 — 先使用 FFmpeg 提取音频,再使用 --extract

评论

支持 Markdown