UI Support Baseline

May 1, 2026 ยท View on GitHub

This document defines the current ACE-Step UI surface area before work begins on a new beginner-friendly UI. It separates product UI, experimental UI, command-line workflows, and API-only integration surfaces so future UI work can preserve capability coverage without keeping multiple overlapping frontends alive.

Support Boundary

SurfaceEntry pointStatusNotes
Gradio Web UIacestep/acestep_v15_pipeline.py, acestep.ui.gradioPrimary supported UIMain interactive product surface for generation, editing, training, dataset building, model setup, help, and i18n.
Gradio-mounted REST API--enable-api, acestep/ui/gradio/api/api_routes.pySupported integration surfaceOptional API routes hosted alongside Gradio. Keep behavior stable for local integrations.
Standalone REST API serveracestep-api, acestep/api_server.pySupported API-only surfaceService/integration interface. Not a UI, but a likely backend dependency for future UIs.
OpenRouter-compatible API serveracestep-openrouter, openrouter/openrouter_api_server.pySupported API-only surfaceOpenAI/OpenRouter-compatible integration path. Not a UI.
Generation CLIcli.py, acestep console scriptSupported command-line workflowUseful for scripting, configuration, and non-browser generation. Not a replacement for the web UI.
Side-Step training CLI/wizardtrain.py, acestep/training_v2/uiSupported or separately scoped training workflowRich terminal workflow for training. Do not remove until Gradio training parity and Side-Step ownership are explicitly reviewed.
Static Studio HTML UIui/studio.htmlRemovedThe experimental frontend-only prototype was removed to avoid duplicating product UI surface area before new UI work.
Streamlit UIacestep/ui/streamlitRemovedThe experimental prototype was removed because it duplicated product UI responsibilities with its own model cache, navigation, settings, project storage, and docs.

Near-Term Cleanup Plan

  1. Keep Gradio as the supported product UI while the next UI is designed.
  2. Keep API servers as integration surfaces, not as UI cleanup targets.
  3. Defer any CLI or Side-Step training wizard decisions until feature parity is reviewed.

Gradio Feature Coverage Matrix

Any future UI should preserve the functional coverage below, even if it presents the workflow with friendlier defaults and progressive disclosure.

AreaCurrent capabilityCurrent locationAudience tierFuture UI requirement
Launch and runtime setupPort, share, debug, server name, allowed paths, authenticationacestep/acestep_v15_pipeline.pyAdminPreserve as launch/configuration options, not first-run clutter.
Hardware adaptationGPU detection, VRAM tiers, duration/batch limits, LM defaults, offload defaults, quantization defaultsacestep/acestep_v15_pipeline.py, acestep/gpu_config.pyBeginner/AdminShow a clear readiness summary and hide unsafe options by default.
Model initializationDiT model selection, device, flash attention, compile, offload, quantization, download sourceGradio service configurationAdminKeep full control, but provide an obvious recommended path.
LM initializationLM model selection, backend, init toggle, CPU offloadGradio service configurationAdvanced/AdminExplain optional vs required LM behavior in plain language.
LoRA inferenceLoRA path, load/unload, use toggleGradio advanced settingsAdvancedPreserve adapter loading and clear compatibility warnings.
Simple generationNatural-language song request, random sample, instrumental toggle, language hint, LM sample creationGeneration tab, Simple modeBeginnerMake this the primary first-run path.
Custom generationCaption, lyrics, reference audio, sample creation, caption/lyrics formattingGeneration tab, Custom modeBeginner/AdvancedKeep manual control while guiding users through required inputs.
RemixSource audio, target caption/lyrics, source codes, remix/code strength, no-FSQ optionGeneration tab, Remix modeIntermediateExplain that Remix performs cover-style transformation.
RepaintSource audio, time range, repaint mode, repaint strength, caption/lyricsGeneration tab, Repaint modeIntermediateProvide timeline-oriented controls when possible.
ExtractSource audio and target track selectionGeneration tab, Extract modeAdvancedPreserve base-model-only gating.
LegoSource audio, target track, caption/lyricsGeneration tab, Lego modeAdvancedPreserve base-model-only gating and track guidance.
CompleteSource audio, track selection, caption/lyricsGeneration tab, Complete modeAdvancedPreserve base-model-only gating and arrangement-oriented help.
Audio codesSource audio code extraction, code hints, transcription/analysis hooksGeneration tab source/code controlsExpertKeep available behind an expert section.
Metadata controlsDuration, BPM, key/scale, time signature, vocal language, seed, inference stepsGeneration tab optional controlsBeginner/AdvancedOffer auto defaults first, then explicit controls.
Diffusion controlsGuidance, shift, CFG interval, ADG, inference method, scheduler/timesteps, DCWAdvanced DiT settingsExpertKeep out of the default path; preserve exact parameter access.
LM controlsThinking, temperature, CFG scale, top-k, top-p, CoT toggles, constrained decodingAdvanced LM settingsExpertPreserve with concise help and safe defaults.
Batch generationBatch size, random seeds, explicit seed lists, background next-batch generationGeneration controls and results eventsAdvancedPreserve efficient repeated generation and seed reproducibility.
Results playbackUp to eight audio slots, batch file download, status outputResults sectionBeginnerMake listening, comparing, and saving simpler.
Result reuseSend to Remix, send to Repaint, restore params to UIResults section and event handlersIntermediatePreserve one-click iteration from a good result.
Result detailsAudio codes, quality score, LRC generation, LRC save/download, generation metadataResults details accordionsAdvancedKeep discoverable without overwhelming first-time users.
Dataset builderScan/load audio folder, preview samples, label/edit/save dataset metadataTraining tab dataset builderAdvancedPreserve as a guided training preparation flow.
Dataset preprocessingTensor preprocessing and status updatesTraining tab dataset builderAdvancedPreserve clear status and failure recovery.
LoRA trainingDataset path, LoRA settings, run/stop training, logs, plots, exportTraining tab LoRAAdvancedPreserve complete Gradio training path.
LoKr trainingDataset path, LoKr settings, run/stop training, logs, exportTraining tab LoKrExpertPreserve experimental/advanced positioning.
Help contentInline help buttons, modal markdown, field tooltipsacestep/ui/gradio/help_content.py, i18n JSONBeginner/AdvancedExpand into task-level help, examples, and recovery guidance.
i18nEnglish, Chinese, Japanese, Hebrew, Portuguese UI stringsacestep/ui/gradio/i18nBeginnerPreserve language switching and avoid hard-coded UI text.
Service modeRestricted UI defaults and hidden training tabGradio init params and interface compositionAdminPreserve deployment-friendly mode.
API modeOptional Gradio-hosted endpoints for health, models, release task, query result, sample creation, formattingacestep/ui/gradio/api/api_routes.pyIntegrationPreserve API behavior even if UI code changes.

Design Implications For The Next UI

  • The first screen should prioritize one successful generation over exposing every parameter.
  • Advanced controls should remain complete, but grouped by intent: model setup, song structure, generation quality, LM behavior, source audio editing, and expert code controls.
  • Editing modes should be explained as user tasks rather than internal task names.
  • Results should support an iteration loop: listen, compare, save, reuse settings, remix, repaint.
  • Training should remain available, but separated from first-run generation.
  • API services should remain framework-neutral so future UI experiments do not duplicate model loading, generation, dataset, or training logic.