Add AceFlow UI with chord progression workflow and LoRA integration#799
Draft
robustini wants to merge 26 commits intoace-step:mainfrom
Draft
Add AceFlow UI with chord progression workflow and LoRA integration#799robustini wants to merge 26 commits intoace-step:mainfrom
robustini wants to merge 26 commits intoace-step:mainfrom
Conversation
Introduce the AceFlow UI. This commit adds: - AceFlow web UI integration - chord progression planning and section-aware harmonic workflow - harmonic reference WAV generation for conditioning - Custom mode conditioning through audio codes - Cover mode conditioning through raw reference WAV - project/export support for chord-tagged lyrics - runtime stripping of chord tags from model input lyrics - per-job CLI log file generation - launcher scripts for AceFlow UI - LoRA integration in the AceFlow workflow The LoRA catalog includes entries for: - LoRAs created by Marco Robustini (aka Marcopter) - LoRAs shared by the ACE-Step Discord community Note: LoRA weight files are not bundled in this commit. To use them, create a `lora` directory in the ACE-Step root, place the LoRA folders there, and update `lora_catalog.json` accordingly.
Introduce the AceFlow UI. This commit adds: - AceFlow web UI integration - chord progression planning and section-aware harmonic workflow - harmonic reference WAV generation for conditioning - Custom mode conditioning through audio codes - Cover mode conditioning through raw reference WAV - project/export support for chord-tagged lyrics - runtime stripping of chord tags from model input lyrics - per-job CLI log file generation - launcher scripts for AceFlow UI - LoRA integration in the AceFlow workflow The LoRA catalog includes entries for: - LoRAs created by Marco Robustini (aka Marcopter) - LoRAs shared by the ACE-Step Discord community Note: LoRA weight files are not bundled in this commit. To use them, create a `lora` directory in the ACE-Step root, place the LoRA folders there, and update `lora_catalog.json` accordingly.
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
Author
|
Please do not merge yet. |
…rols This commit introduces SoundFont-based rendering for generated chord/reference audio and improves Cover-mode conditioning behavior. Changes included: - added renderer selection for generated chord/reference audio: - SoundFont (.sf2) - internal synth fallback - exposed renderer choice in Advanced Settings - added a Cover-only conditioning balance slider - updated Cover conditioning balance semantics: - 0.00 = audio codes only - 0.50 = hybrid - 1.00 = source WAV only - preserved hybrid payload routing in Cover mode when both audio_codes and src_audio are available - added backend defaults for cover_conditioning_balance and chord_reference_renderer
…nd UI label/i18n issues Fix the real AceFlow results UI to show per-audio metadata directly in the visible player, without requiring users to open the JSON/details panel. Changes included: - show readable filename next to each generated audio - show real resolved seed next to each generated audio - wire metadata through the actual results render path used by the main UI - persist per-audio metadata in result payloads/metadata JSON - fix SFT model selection so it auto-sets Inference steps only, without touching Guidance scale - fix player metadata labels so they react correctly to UI language changes after generation - fix/trim long parameter labels and avoid ugly truncation/ellipsis issues in the relevant UI row This addresses the previous failed attempt where changes were made in a non-effective or non-visible branch of the UI, resulting in no metadata appearing near the real player.
Introduces an optional A/B compare mode for LoRA generation. When enabled, AceFlow generates two outputs with the same seed and same settings: - Audio 1 without LoRA - Audio 2 with the selected LoRA The goal is to make LoRA comparison immediate and reliable without changing the normal player workflow. This implementation keeps the standard players and their normal save/download behavior, while adding synchronized comparison controls below them for: - shared play/pause - shared stop - crossfade between Audio 1 and Audio 2 In A/B mode, batch generation is constrained to 1 so the comparison always produces exactly two outputs.
- fix A/B compare flow to avoid internal rate-limit collisions on the second /api/jobs submit - preserve normal anti-double-click protection while allowing the legitimate compare pair to complete cleanly - prevent empty second audio in compare runs by stabilizing the paired submit path - normalize Custom mode payloads for LM/audio-code flows so text2music requests do not carry inconsistent cover-style conditioning - fix LM-enabled generation path regression that could lead to tensor size mismatch during conditioning/hints preparation - ensure imported JSON configs with an explicit seed disable auto-seed mode both in UI state and in generated jobs - widen the seed input field to properly display full manual seed values - clean up redundant README wording around frontend auto-fill versus backend fallback/clamp behavior - keep all changes scoped to the custom UI package only
Move updateLang to the comparison bridge used by dual generation
Update the Remix-facing UI text and documentation to match the actual source-audio workflow used by Gradio. Changes include: - clarify that Remix uses uploaded source audio - relabel the start/end controls as source window controls for Remix - remove repaint-style wording that was misleading users - update bilingual UI copy - update README wording for Remix behavior
…nd turbo step runtime overrides Remix migration and cleanup - finalized the Remix terminology migration across the UI - standardized public wiring on `source_start` / `source_end` - removed misleading Remix/Repaint UI wording and stale references where safe - kept backend compatibility bridges only where required by the current ACE-Step core - verified Cover behavior was not altered by the Remix changes - cleaned up legacy/refactor leftovers, dead wiring, and inconsistent frontend/backend naming Authentication and admin - added configurable email/password authentication - added admin bootstrap via environment variables - added session/auth status endpoints and protected flows - added admin user management and recent auth event views - fixed related frontend loading/rendering issues - improved user deletion handling and UI refresh consistency LoRA handling - added runtime patching for safer single-LoRA lifecycle handling - improved LoRA load/unload logging and state visibility - sorted `lora_catalog.json` alphabetically for deterministic ordering while keeping the “no LoRA” option first Cleanup / retention - replaced hardcoded 60-minute cleanup values with centralized configuration - introduced `ACEFLOW_CLEANUP_TTL_SECONDS` - default remains 3600 seconds for backward-compatible behavior - `0` disables cleanup entirely - applied the TTL consistently to outputs, uploads, and logs - exposed cleanup TTL in health/system reporting - updated documentation accordingly Turbo inference steps: UI + backend alignment - fixed Turbo model defaults in the UI - Turbo now defaults to 8 inference steps - Turbo UI max is capped at 20 - non-Turbo models keep their higher limits - synchronized slider/input behavior with the actual model constraints Turbo step clamp bypass (runtime patching only) - identified the ACE-Step core Turbo clamp path and documented it - added process-local runtime patching to bypass the core Turbo infer-step clamp when explicitly enabled - introduced `ACEFLOW_BYPASS_CORE_TURBO_STEP_CLAMP=1` - when enabled, the runtime bypasses the core Turbo clamp logic without modifying ACE-Step core files on disk - added explicit runtime logging so the patch status is visible at startup and generation time Turbo explicit timestep schedule override - implemented a second runtime patch to avoid the Turbo backend silently falling back to its fixed 8-step schedule - when Turbo is used with requested steps > 8, the runtime now maps the request to an explicit valid timestep schedule (up to 20) - this makes requested Turbo steps above 8 actually take effect in practice, instead of only bypassing the first clamp - logging shows both requested steps and the generated timestep schedule for traceability Docs and consistency - updated README to reflect: - Remix/source window terminology - auth/admin environment variables - cleanup TTL configuration - Turbo UI defaults and limits - Turbo clamp bypass and explicit timestep schedule behavior Notes - all Turbo step overrides are scoped to the local process only - no ACE-Step core source files are modified by these runtime patches - compatibility shims for legacy core field names are preserved only where strictly necessary
Set Turbo to 8 steps by default with a max of 20, while restoring the 200-step range for SFT/Base models and reapplying the correct step cap whenever the active model changes or is synced from the backend. Also sync the frontend model selector with the backend current model, centralize cleanup TTL defaults, make health/options report the real runtime patch installation state instead of only the env-requested state, and keep the runtime monkey patch unchanged.
Use SFT-based step rules instead of Turbo-vs-non-Turbo rules across the AceFlow UI and backend. SFT and SFT Turbo now default to 50 steps with a 200-step max, while all other DiT models default to 8 steps with a 20-step max.
Restore native number spinners and keep locale-aware decimal display while preserving robust parsing and slider sync for LoRA weight.
Pause and reset active media players when generation starts, covering both registered custom players and native audio/video elements.
Keep the Generate button tied to the current request state instead of re-enabling it based on the cooldown window. When a request is still queued, pressing the already-active Generate button cancels that reservation and clears the queued state. Once processing starts, the button remains busy and no longer acts as a cancel control. Also removes UI wording related to the cooldown/rate-limit mechanism and keeps queue messaging focused on the actual request state.
Added the option to select Kbps and KHz for MP3 format. Cleaned up some obsolete logs.
Replaced the default model for lower VRAM consumption.
Use the same default inference steps and shift for DiT Base as DiT SFT. Also align the step limit logic so Base follows the quality/default path instead of the turbo clamp.
…leanup - make LoRA root dynamic with env-first resolution and local project fallback - keep lora_catalog.json as primary source, with disk scan only as merge/fallback - preserve static catalog instead of removing it - add env-driven AceFlow runtime options for startup/model behavior - refine runtime LoRA unload monkey patch without touching Ace-Step core - make Turbo / Base / SFT inference step handling more explicit in backend and frontend - improve launcher compatibility with both .venv and venv - keep launcher behavior aligned with the fast LM backend path - update ignore rules for local outputs/state files
This was referenced Mar 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduce the AceFlow UI.
This commit adds:
The LoRA catalog includes entries for:
Note:
LoRA weight files are not bundled in this commit.
To use them, create a
loradirectory in the ACE-Step root, place the LoRA folders there, and updatelora_catalog.jsonaccordingly.