Skip to content

Tags: AIahmedshrf/ACE-Step-1.5

Tags

v0.1.6

Toggle v0.1.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: allow cover/repaint tasks with audio codes but no src_audio (ace…

…-step#1036)

When audio codes are provided (via LM generation or manual input), the
cover/repaint/lego/extract tasks should not require src_audio. Previously
the validation unconditionally errored when src_audio was missing for
these task types, even if audio codes were already supplied.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.1.5

Toggle v0.1.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(llm): force pt backend on legacy CUDA GPUs (ace-step#932)

* fix(llm): force pt backend on legacy CUDA GPUs

* fix(llm): resolve startup backend overrides

v0.1.4

Toggle v0.1.4's commit message
fix(lrc): always return intermediate tensors so LRC generation works …

…for all task types

When audio codes are present (e.g. from LLM thinking mode),
`_resolve_generate_music_task` silently switches task_type from
"text2music" to "cover". The old guard `task_type == "text2music"`
then set `should_return_intermediate=False`, causing
`_attach_service_generate_outputs` to skip the encoder/context/lyric
tensors that `_run_auto_lrc` and `generate_lrc_handler` both require.

Fix: set `should_return_intermediate=True` unconditionally so the
tensors are always available for downstream LRC generation regardless
of the resolved task type.

Also harden the batch-management wrapper's final yield to explicitly
set LRC display values via `gr.update(value=...)`, ensuring the UI
textboxes update even if streaming yields were missed.

Made-with: Cursor

v0.1.3

Toggle v0.1.3's commit message
fix: handle MLX incompatibility in python_embeded on macOS

python_embeded may ship MLX/mlx-lm wheels that are incompatible with the
host macOS version:
- MLX metallib built for macOS 26 (Metal language 4.0) fails on macOS 15
- mlx-lm 0.23.2 lacks qwen3 model support needed by ACE-Step LM

A failed first import of mlx.core partially registers nanobind types;
a second import from LLMHandler._is_mlx_available() then triggers a
fatal "duplicate key cpu" abort that kills the process.

Changes:
- pyproject.toml: pin mlx==0.30.6 and mlx-lm==0.29.1
- macOS scripts: add chmod +x for python_embeded binaries; detect MLX
  or mlx-lm incompatibility and pip install the pinned versions (once)
- llm_inference: delegate _is_mlx_available() to the cached
  mlx_available() helper to prevent the double-import crash

Made-with: Cursor

v0.1.2

Toggle v0.1.2's commit message
feat: LoKr adapter support, LoRA status fix, and training docs update

- Fix LoRA Status textbox visibility in Gradio UI (CSS override for tooltip conflict)
- Add LoKr adapter toggle support in set_use_lora/set_lora_scale (LyCORIS set_multiplier)
- Add unit tests for LoKr controls (controls_test.py)
- Add LoKr training help button and i18n entries (en/zh/ja)
- Add LoKr recommendation to LoRA Training Tutorial docs (en/zh/ja/ko)

v0.1.1

Toggle v0.1.1's commit message
fix: clear stale UI state on mode switch to prevent remix noise bug

When switching between Remix and Custom modes, stale values in
text2music_audio_code_string and src_audio leaked across mode
boundaries, causing the diffusion pipeline to incorrectly activate
the cover path and produce noise output.

Root cause: compute_mode_ui_updates only toggled visibility of these
components but never cleared their values on mode switch.

Changes:
- mode_ui.py: extend output tuple to 44 elements; clear audio codes
  when leaving Custom mode, clear src_audio when entering modes that
  don't use it (Custom, Simple)
- events/__init__.py: add the two new outputs to both the
  generation_mode.change() and _mode_ui_outputs output lists
- audio_transfer.py: update send_audio_to_remix/repaint to match
  the new 44-element tuple (48 total with 4 data outputs)
- generation_progress.py: add defensive guard to force-clear
  text2music_audio_code_string for non-text2music task types
- mode_ui_test.py: add 11 unit tests covering state-clearing behavior

v0.1.0

Toggle v0.1.0's commit message
fix: manifest path double-nesting causes training to find no samples

save_manifest stored CWD-relative paths (e.g. ./datasets/preprocessed_tensors/foo.pt)
in manifest.json. When PreprocessedTensorDataset resolved these relative to tensor_dir,
the path doubled up (tensor_dir/datasets/preprocessed_tensors/foo.pt) and no files
were found, causing 'No valid samples found in tensor directory'.

Changes:
- save_manifest: store paths relative to output_dir (just filenames)
- PreprocessedTensorDataset: add _resolve_manifest_path with legacy fallback
  that tries global safe root when tensor_dir-relative path doesn't exist
- Add 4 tests covering new format, legacy format, and save_manifest behavior

v0.1.0-rc.1

Toggle v0.1.0-rc.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: prevent stale src_audio from leaking into text2music (Custom) mo…

…de (ace-step#584)

Custom/text2music mode operates exclusively on LM-generated audio codes
or user-provided LM Codes Hints. It should never use src_audio.

When switching from Remix/Repaint back to Custom, the Gradio UI hides
the src_audio widget but does not clear its value. This caused the
residual source audio to be processed and affect duration calculation
and padding in text2music generation.

Fix applied at three defence layers:
- results_handlers.py: clear src_audio before building GenerationParams
- inference.py: pass None to handler for text2music task_type
- handler.py: skip process_src_audio when task_type is text2music

Added 13 focused unit tests covering all three layers.

Co-authored-by: chuxij <junmingong@qq.com>

v0.1.0-beta.3

Toggle v0.1.0-beta.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request ace-step#541 from ace-step/copilot/fix-cuda-runtim…

…e-error

Fix nanovllm CUBLAS error on Turing GPUs by detecting bfloat16 support