Spaces:
Running on Zero
docs(plan): record checkpoint-layout findings from m1 smoke pass
Browse filesWhile 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.
|
@@ -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 (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|