Spaces:
Runtime error
Runtime error
Commit History
-
feat(ui): add advanced controls accordion — inference steps, cfg, infer method, seed, lm cot, schedule, metadata
Unverified signatureUser feedback: outputs feel samey regardless of prompt. Root cause: GenerationParams.inference_steps defaults to 8 (ACE-Step turbo), too few for the XL SFT model to actually express variation. Also guidance_scale, infer_method, shift, ADG, and CoT flags all left at dataclass defaults. New ``Advanced ▼`` accordion under every song mode (Generate / Cover / Extend / Edit; lyrics mode is its own Qwen path and doesn't need it). Four groups: - Diffusion: inference_steps (8-80, default 27), guidance_scale (1-15, default 7.0), infer_method (ode|sde), seed (number, -1=random). - CFG schedule + shift + ADG. - 5Hz LM (CoT): thinking + use_cot_caption + use_cot_metas + use_cot_language now defaulted ON; LM temperature / top_p / top_k / cfg / negative_prompt sliders. - Music metadata: bpm / keyscale / timesignature / vocal_language manual overrides. ace_pipeline.generate passes all of these through to GenerationParams. Output metadata JSON now echoes the advanced + lm…c287b6a -
test(post): rewrite separate_stems test for demucs.apply.apply_model path
Unverified signaturefc8c46f -
feat(deploy): preload all hub models + warm demucs on spaces
Unverified signatureExpand HF Spaces ``preload_from_hub`` to cover everything the app actually touches on first interaction: ACE-Step base + XL-SFT, both LoRA presets, and Qwen 2.5 7B Instruct. Mirror the list in ``_PRELOAD_REPOS`` so the symlink loop knows about them. Add a demucs ``htdemucs_ft`` warmup at module load (gated by ``SPACE_ID``) because demucs weights live on dl.fbaipublicfiles.com — outside the HF preload reach. Preload disk budget: ~10 GB (ACE base) + ~16 GB (XL-SFT) + ~120 MB + ~120 MB (LoRAs) + ~15 GB (Qwen) + ~320 MB (demucs runtime) ≈ 42 GB. Within the ZeroGPU persistent-storage ceiling but worth keeping an eye on if upstream weights grow.3f9c655 -
fix(deploy): per-mode duration estimator handles cover/extend/edit/lyrics signatures
Unverified signature05f6b53
-
feat(post): add demucs stems, lufs normalisation, mp3 export
Unverified signatureb260242 -
feat(lyrics): add qwen 2.5 7b lazy loader with mlx and transformers backends
Unverified signature9c07a74 -
feat(pipeline): wire cover/extend/edit task_types in studio.generate
Unverified signature26dc3a4 -
feat(modes): add cover, extend, edit handlers with sub-mode dispatch
Unverified signaturea2eae29 -
fix(lora): point manifest at the actually-published ACE-Step LoRAs
Unverified signatureThe plan / D2 manifest used placeholder HF paths for RapMachine, Chinese Rap, Lyric2Vocal, Text2Samples — three of which were announced in the ACE-Step roadmap but never published as standalone HuggingFace repos. Clicking any preset chip surfaced a 404 toast from huggingface_hub. What actually exists today (verified via huggingface.co/ACE-Step): - ACE-Step/ACE-Step-v1-chinese-rap-LoRA filename: pytorch_lora_weights.safetensors (524 MB) - ACE-Step/ACE-Step-v1.5-chinese-new-year-LoRA filename: adapter_model.safetensors (88 MB) Note that the filenames differ between the two repos (Chinese Rap uses the diffusers/PEFT pytorch_lora_weights name, New Year uses the newer adapter_model name) — that's why manifest entries carry an explicit ``filename`` field per preset. Manifest pared to those two real LoRAs. ui.py's preset radio now reads choices dynamically from lora_stack.load_presets() so future manifest changes don't require code edits. Tests updated to verify schema + the ACE-Step/ …24b2854 -
feat(backend): apply lora stack before mode dispatch
Unverified signature96012ce -
feat(lora): add single-lora stack apply + disable
Unverified signaturee701df3 -
feat(lora): add preset registry with hf-download helper
Unverified signature321117e -
feat(lora): add safetensors header sniff with ace-step module check
Unverified signaturec9f8dd1 -
refactor(pipeline): rewrite for real acestep AceStepHandler+LLMHandler api
Unverified signatureThe original ace_pipeline assumed ``ACEStepPipeline.from_pretrained()`` — a clean library entry point that does NOT exist in the installed ``acestep`` package (apple-silicon fork on Mac, upstream on CUDA). The real API is a split-handler pattern: from acestep.handler import AceStepHandler from acestep.llm_inference import LLMHandler from acestep.inference import GenerationParams, GenerationConfig, generate_music dit = AceStepHandler(); dit.initialize_service(project_root, config_path, device) lm = LLMHandler(); lm.initialize(checkpoint_dir, lm_model_path, backend, device) result = generate_music(dit, lm, GenerationParams(...), GenerationConfig(...)) To keep ``modes.py`` and ``backend.py`` clean, ``ace_pipeline`` now exposes a single ``ACEStepStudio`` wrapper that owns both handlers and exposes ``generate(params: dict) -> str`` returning the audio path. Defaults: - DiT: ACE-Step/acestep-v15-xl-sft (~16 GB) → ``./checkpoints/acestep-v15-xl-sft/`` - LM: ACE-Step/…99375d0 -
fix(pipeline): correct hf model id to acestep-v15-xl-sft
Unverified signatureThe plan used 'ACE-Step/ACE-Step-v1.5-XL-SFT' as a placeholder per spec §14.1 'verify each preset's actual canonical HF path before the preload directive is finalised'. Confirmed via HF search: the real repo is 'ACE-Step/acestep-v15-xl-sft' (lowercase, no dot in v1.5). Updated: - ace_pipeline._DEFAULT_MODEL_ID - tests/test_smoke_gpu.py ACE_MODEL_PATH default - README.md preload_from_hub directive65ab3e7 -
test(smoke): add gpu smoke for minimum generate path
Unverified signature38eae94 -
feat(backend): add ace-step studio backend with dispatch + zerogpu wrap
Unverified signaturedfa2ff6 -
feat(modes): add generate mode handler with input validation
Unverified signature52f41b8 -
feat(pipeline): lazy ace-step singleton with device-aware load
Unverified signatureeb3bcb4 -
chore(fmt): apply ruff format and remove unused import in conftest
Unverified signature0ea6ca2 -
feat(ui): add brutalist mono theme tokens and responsive css
Unverified signaturece2a030 -
feat(pipeline): add device autodetect with mps-safe vram limit
Unverified signature46d16df -
test: add pytest scaffolding
Unverified signaturec7596ef