Skip to content

feat: add ACE-Step 1.5 music engine - #4280

Merged
atomantic merged 5 commits into
mainfrom
claim/issue-4232
Aug 15, 2026
Merged

feat: add ACE-Step 1.5 music engine#4280
atomantic merged 5 commits into
mainfrom
claim/issue-4232

Conversation

@atomantic

Copy link
Copy Markdown
Owner

Summary

  • Add ACE-Step 1.5 as a separately selectable Music Studio engine, preserving existing ACE-Step v1 render metadata and runtime.
  • Provide its dedicated venv installer, fixed Hugging Face model install state, health probe, and cached-snapshot sidecar using the vendor's Transformers custom-code runtime.
  • Cover engine registration, sidecar dispatch, and ready/model-install API state.

Test plan

  • npm test --prefix server -- --run services/pipeline/musicGen.test.js routes/music.test.js
  • bash -n scripts/setup-image-video.sh
  • python3 -m py_compile scripts/generate_acestep15.py

Closes #4232

@atomantic

Copy link
Copy Markdown
Owner Author

Required Antigravity review is blocked in this environment: agy is installed, but its headless session cannot obtain the command permission needed to inspect the PR diff, even with its auto-approve flag. The code and targeted tests are ready for review, but this PR remains open pending a configured Antigravity review.

Every other CUDA-index-using venv block in this script (MiniMax H3,
MiniMax Music3) respects PORTOS_TORCH_CUDA_INDEX so a user with a
different CUDA toolkit can override the pinned wheel index. The new
ACE-Step 1.5 block hardcoded cu128 instead.
…den healthProbe

- generate_acestep15.py now renders into a per-invocation tempfile.TemporaryDirectory
  (mirroring generate_acestep.py's v1 pattern) instead of writing directly into the
  shared PortOS music library. A stray or partial file from a failed/partial
  generation no longer lingers as a phantom track.
- ENGINES.acestep15.healthProbe now also imports acestep.inference (the actual
  generation path), not just acestep.handler, so a venv missing that submodule
  reports unhealthy up front instead of failing generation with a bare ImportError.
The install script's post-install import check only verified acestep.handler,
not acestep.inference — the module the generation sidecar actually imports.
A venv with a broken inference submodule would print venv-ready at install
time and only fail later at generation. Mirrors the same fix already applied
to the JS-side healthProbe for this engine.
Rebasing onto main picked up issue #4200's shared-helper convention
(venv_exists/venv_python) and its guard test forbidding hardcoded
"$X_VENV/bin/python3" call sites outside those helpers. The ACE-Step
1.5 block predated that convention; convert it to match the sibling
engines (MiniMax Music 3, AudioLDM2, ACE-Step v1), including the
summary line which now references the resolved ${ACESTEP15_PY}
instead of hardcoding the POSIX path.
@atomantic
atomantic merged commit 776cc6b into main Aug 15, 2026
7 checks passed
@atomantic
atomantic deleted the claim/issue-4232 branch August 15, 2026 14:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add ACE-Step 1.5 as a separate music engine (acestep15)

1 participant