acestep について
acestepは、RunPodのサーバーレスエンドポイント経由でACE-Step 1.5を使う音楽生成コマンドラインスキルです。動画制作者や音楽制作者向けに、プロンプトや歌詞からの生成、音楽パラメーター、シーンプリセット、スタイル変換、ステム分離に対応します。
主な機能
- 01プロンプトや歌詞からの音楽生成
- 02長さ、BPM、キーの指定
- 03動画シーン向けプリセット
- 04参照音源からのスタイル変換
- 05ボーカルと楽器ステムの分離
- 06反復生成向けのシード固定
活用シーン
- 01動画シーン用のBGM制作
- 02構成タグ付きの歌詞から曲を生成
- 03参照音源を基にしたバリエーション制作
- 04ミックス音源から楽器ステムを抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ calesthio/ openmontage --skill acestepインストール後、Claude Code で/acestepを入力して読み込まれたか確認します。
詳細
ACE-Step 1.5 音楽生成
tools/music_gen.py によるオープンソースの音楽生成(MIT ライセンス)です。RunPod serverless 上で動作します。
.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
良い結果を得るための重要なヒント
- キャプション=全体的なスタイル(ジャンル、楽器、雰囲気、制作品質)
- 歌詞=時間的な構成(ヴァース/コーラスの流れ、ボーカルの歌い方)
- 歌詞を大文字で書く=ボーカルの強度が上がります
- 括弧=バックボーカル:「We rise (together)」
- 自然なリズムにするには、1行あたり6〜10音節にします
- キャプションでメロディーを説明しないでください — 音と雰囲気を説明します
--seedを使うと、プロンプトや歌詞を調整するときにランダム性を固定できます
シーンプリセット
| プリセット | BPM | キー | 用途 |
|---|---|---|---|
corporate-bg | 110 | C Major | プロフェッショナルな背景、プレゼンテーション |
upbeat-tech | 128 | G Major | 製品発表、テックデモ |
ambient | 72 | D Major | 概要スライド、内省的なコンテンツ |
dramatic | 90 | D Minor | 発表、告知 |
tension | 85 | A Minor | 問題提起、課題 |
hopeful | 120 | C Major | ソリューションの発表、解決 |
cta | 135 | E Major | 行動喚起、締めくくりの盛り上がり |
lofi | 85 | F Major | 画面録画、コーディングデモ |
タスクタイプ
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(今後対応予定、ベースモデルが必要)
指定した楽器を追加して、未完成の曲を延長します。
プロンプトエンジニアリング
キャプションの作成 — 要素の組み合わせ
単語ひとつだけで説明するのではなく、複数の描写要素を組み合わせてキャプションを書きます。
含める要素:
- ジャンル/スタイル:ポップ、ロック、ジャズ、エレクトロニック、ローファイ、シンセウェーブ、オーケストラ
- 感情/雰囲気:メランコリック、高揚感のある、夢のような、ノスタルジック、親密な、緊張感のある
- 楽器:アコースティックギター、シンセパッド、808ドラム、ストリングス、ブラス、ピアノ
- 音色:温かみのある、クリアな、軽やかな、力強い、豊かな、洗練された、生々しい
- 時代:「80年代のシンセポップ」、「モダンインディー」、「クラシカルなロマン派」
- 制作:ローファイ、スタジオ品質、ライブ録音、映画的
- ボーカル:息づかいのある、力強い、ファルセット、かすれた、スポークンワード(または「インストゥルメンタル」)
良い例:「親密な女性ボーカルを伴う、ゆったりとしたメランコリックなピアノバラード。温かみのあるストリングスが力強いコーラスに向けて盛り上がり、スタジオ品質のプロダクション」 悪い例:「悲しい曲」
重要な原則
- 曖昧さより具体性を重視する — 楽器、雰囲気、制作スタイルを説明します
- 矛盾を避ける — 「クラシカルなストリングス」と「ハードコアメタル」を同時に指定しないでください
- 繰り返すと優先度が強調されます — 重要な要素を繰り返して強調します
- 簡潔なキャプションほど創造の自由度が高くなります — 詳細なキャプションはモデルの自由度を制限します
- BPM/キーにはメタデータのパラメーターを使います — キャプションに「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 または ambient | 3-5s | 短く、ムードを演出 |
| 問題 | tension | 10-15s | 暗く、不穏 |
| 解決策 | hopeful | 10-15s | 安堵感、楽観的 |
| デモ | lofi または corporate-bg | 30-120s | 邪魔にならず、デモの長さに合う |
| 統計 | upbeat-tech | 8-12s | 信頼感を高める |
| CTA | cta | 5-10s | 最大限のエネルギー、力強さ |
| クレジット | ambient | 5-10s | 穏やかなフェードアウト |
タイミングのワークフロー
- まずシーンの長さを計画します(ナレーションの台本をもとにします)
- 長さを合わせて音楽を生成します:
--duration <scene_seconds> - 音楽の長さは正確です(指定した長さとの差は0.1秒以内です)
- 複数のシーンにまたがるBGMには、1つの長いトラックを生成します
ナレーションとの組み合わせ
Remotionでは、BGMの音量を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を使用します