techfreakworm commited on
Commit
23509d8
Β·
unverified Β·
1 Parent(s): 317bd6f

docs(plan): record checkpoint-layout findings from m1 smoke pass

Browse files

While running the M1 GPU smoke test on M5 Max we discovered three things
not captured in the plan:

1. AceStepHandler._get_project_root() ignores the project_root arg
passed to initialize_service() and uses
os.path.dirname(os.path.dirname(__file__)) instead β€” i.e. the
site-packages dir. Workaround: symlink
.venv/lib/python3.11/site-packages/checkpoints β†’ ./checkpoints
so the hardcoded path resolves to our project tree.

2. The handler expects two distinct checkpoint trees:
- Umbrella ACE-Step/Ace-Step1.5 (~10 GB) supplies vae,
Qwen3-Embedding-0.6B, acestep-v15-turbo, acestep-5Hz-lm-1.7B,
and a top-level config.json. These are required regardless of
which variant you actually run.
- Variant repo (e.g. ACE-Step/acestep-v15-xl-sft, ~16 GB)
supplies the specific DiT model weights.

3. ACE-Step/acestep-5Hz-lm-0.6B (~1.4 GB) is a separate repo from
the umbrella's acestep-5Hz-lm-1.7B. We use 0.6B for faster Mac
inference; both are valid lm_model_path values for LLMHandler.initialize.

The M1 GPU smoke test (test_smoke_gpu.py::test_generate_minimum_song)
PASSED in 31.6 s wall on M5 Max β€” 16-step diffusion at ~6.7 it/s,
MPS peak 11.85 GB, MLX backend for the LM.

docs/superpowers/plans/2026-05-18-ace-music-studio.md CHANGED
@@ -964,7 +964,15 @@ git commit -m "feat(app): bootstrap gradio blocks with brutalist mono chrome"
964
 
965
  ### Task C1: `ace_pipeline.py` β€” `ACEStepStudio` lazy wrapper
966
 
967
- **⚠ API CORRECTION (commit `99375d0`, 2026-05-18).** The plan originally assumed `from ace_step import ACEStepPipeline` with a `from_pretrained` entry point. That API does **NOT** exist in the installed `acestep` package (both upstream and the Apple-Silicon fork). The real API is:
 
 
 
 
 
 
 
 
968
 
969
  ```python
970
  from acestep.handler import AceStepHandler
 
964
 
965
  ### Task C1: `ace_pipeline.py` β€” `ACEStepStudio` lazy wrapper
966
 
967
+ **⚠ API CORRECTION (commits `99375d0` + `317bd6f`, 2026-05-18).** Three related corrections to record:
968
+
969
+ 1. The `from ace_step import ACEStepPipeline.from_pretrained` pattern does NOT exist. Real API is the split-handler pattern shown below.
970
+ 2. **Checkpoint location is hardcoded** β€” `AceStepHandler._get_project_root()` ignores the `project_root` argument passed to `initialize_service()` and uses `os.path.dirname(os.path.dirname(__file__))` instead, which resolves to the package's install location (e.g., `.venv/lib/python3.11/site-packages/`). To make checkpoints live next to the repo, symlink `.venv/lib/python3.11/site-packages/checkpoints` β†’ `./checkpoints` after the first install.
971
+ 3. **Checkpoints come from TWO repos**, not one:
972
+ - **Umbrella `ACE-Step/Ace-Step1.5`** (~10 GB) β€” ships `vae/`, `Qwen3-Embedding-0.6B/`, `acestep-v15-turbo/`, `acestep-5Hz-lm-1.7B/`, and a top-level `config.json`. The handler's `MAIN_MODEL_COMPONENTS` list requires all four directories with their weight files present. Pre-download with `hf download ACE-Step/Ace-Step1.5 --local-dir checkpoints`.
973
+ - **Variant repo `ACE-Step/acestep-v15-xl-sft`** (~16 GB) β€” XL SFT-only weights. Pre-download with `hf download ACE-Step/acestep-v15-xl-sft --local-dir checkpoints/acestep-v15-xl-sft`. Similarly `acestep-5Hz-lm-0.6B` (~1.4 GB) for the smaller LM planner.
974
+
975
+ The real API is:
976
 
977
  ```python
978
  from acestep.handler import AceStepHandler