LoRA Training

ACE-Step LoRA 訓練指南

使用自訂 LoRA 適配器微調 ACE-Step,以你獨特的風格生成音樂。

最後更新:2026年2月

什麼是 LoRA 微調?

LoRA(低秩適應)是一種透過僅訓練少量適配器權重來高效微調大型模型的技術。對於 ACE-Step,這意味著你可以使用 20-50 首參考曲目教會模型特定的音樂風格。

資料集準備

高品質資料是 LoRA 訓練中最重要的因素。每個音訊檔案應為 30-120 秒、單樂器或清晰混音,並能一致地代表目標風格。

  • 最少 20 個樣本即可捕獲基本風格特徵
  • 50-100 個樣本可實現更穩健的風格泛化
  • 使用音訊分離工具提取乾淨的人聲或樂器
  • 為每個檔案新增準確的文字描述(流派、節奏、調性、情緒)
  • 將音訊響度標準化至 -14 LUFS 以保持一致性
# Using Demucs for stem separation
pip install demucs
python -m demucs --two-stems=vocals audio/mixed_track.wav

Stem separation with Demucs for cleaner vocal isolation

# Normalize to -14 LUFS using ffmpeg
ffmpeg -i input.wav -filter:a loudnorm=I=-14:TP=-1.5:LRA=11 output.wav

Loudness normalization to -14 LUFS

訓練參數

這些推薦參數適用於大多數音樂風格 LoRA。根據資料集大小和目標風格的特定性進行調整。

ParameterRecommendedRangeNote
LoRA Rank164–64Higher = more capacity, slower training
LoRA Alpha328–128Usually 2× rank value
Learning Rate1e-45e-5 – 5e-4Lower for small datasets
Batch Size41–16Reduce if OOM errors occur
Epochs50–15020–500Monitor for overfitting
Warmup Steps500–200Stabilizes early training

訓練步驟

  1. 1

    準備訓練資料

    收集 20-100 個代表目標風格的音訊樣本。使用音訊分離工具獲得更乾淨的訓練信號。以 44.1kHz 的 WAV/FLAC 格式匯出。

    # Recommended directory structure:
    dataset/
      audio/
        track_001.wav
        track_002.wav
        ...
      metadata.json
  2. 2

    生成文字描述

    為每個音訊檔案寫準確的描述性說明:流派、樂器、節奏、情緒、調性。描述品質直接影響 LoRA 效果。

    [
      {
        "file": "audio/track_001.wav",
        "caption": "upbeat indie folk, acoustic guitar, female vocals, 120 BPM, C major, energetic"
      },
      {
        "file": "audio/track_002.wav",
        "caption": "melancholic jazz, piano and double bass, slow tempo, 70 BPM, F minor, introspective"
      }
    ]
  3. 3

    配置訓練腳本

    將 configs/lora_training_template.yaml 複製到 configs/my_lora.yaml。設定 data_dir 並根據資料集大小調整 num_epochs。

    # configs/my_lora.yaml
    model:
      base_model: "ace-step-1.5"
      lora_rank: 16
      lora_alpha: 32
      target_modules: ["q_proj", "v_proj", "k_proj", "out_proj"]
    
    training:
      num_epochs: 100
      batch_size: 4
      learning_rate: 1.0e-4
      warmup_steps: 50
      save_every: 25
    
    data:
      data_dir: "./dataset"
      sample_rate: 44100
      max_duration: 120
  4. 4

    執行訓練

    執行:python train_lora.py --config configs/my_lora.yaml。監控損失曲線——訓練損失應穩步下降。

    python train_lora.py \
      --config configs/my_lora.yaml \
      --data_dir ./dataset \
      --output_dir ./lora_output \
      --num_epochs 100 \
      --batch_size 4 \
      --learning_rate 1e-4 \
      --lora_rank 16
  5. 5

    測試與迭代

    載入 LoRA 檢查點並用各種提示詞測試。如果輸出與目標風格不匹配,增加訓練資料或訓練輪數。

    # Load and use your trained LoRA
    python generate.py \
      --prompt "upbeat indie folk with acoustic guitar" \
      --lora_path ./lora_output/checkpoint-100 \
      --lora_weight 0.8

FAQ

使用 FM9 實現零樣本風格控制

LoRA 訓練需要 20-50 首參考曲目、8GB+ GPU 和數小時的算力。FM9 讓你用描述性提示詞控制音樂風格——無需訓練、無需資料收集、無需等待。

免費開始創作