Commit Graph

14 Commits

Author SHA1 Message Date
fspecii e1625a717d Fix multiple issues: format API, Gradio availability, storage, UI responsiveness
- Format endpoint now calls ACE-Step /format_input REST API directly instead of
  spawning Python, fixing ENOENT errors on Windows (#44, #27, #34)
- isGradioAvailable() tries /gradio_api/info, /info, / in sequence to handle
  Gradio 4.x/5.x/6.x version differences, fixing generation fallback (#53, #20)
- Storage getUrl/getPublicUrl normalize /audio/ prefix to prevent double-prefix
  URLs when reference tracks are used for cover generation (#10)
- Gradio args: fix normalization_db default from 0.0 to -1.0 (Gradio default)
- Volume popover: add 400ms delay before hiding to prevent accidental dismissal (#51)
- Polling: skip setSongs state update when nothing changed to reduce re-renders (#51)
- FFmpeg: add jsdelivr CDN fallback when unpkg fails (#30)
- Model switching: add switchModelIfNeeded() via /v1/init REST API (#45)
2026-03-02 17:43:53 +02:00
fspecii 553e0bce2f Fix Gradio args for ACE-Step v1.5 API 2026-03-02 16:30:08 +02:00
fspecii 8433349af5 Add AI Enhance toggle for better genre accuracy
When enabled, uses the LLM to enrich genre/style tags into detailed
music descriptions and generate proper BPM, key, and time signature
metadata (CoT features). Fixes genre tags like "pop, rock" producing
ballad-like output by matching Gradio UI default behavior.

- Add enhance toggle in Style of Music card header
- Gate CoT metas/caption/language by enhance OR thinking flag
- Remove unsupported --lm-backend/--lm-model from Python fallback
- Add i18n translations (en/zh/ja/ko) with tooltip
2026-02-10 13:24:36 +02:00
fspecii 565faacb7b Gradio API migration, training pipeline, news page, and UI improvements
- Migrate backend from REST API to Gradio @gradio/client for generation
- Fix Gradio parameter alignment (positions 36-49) for reference/cover audio
- Add LoRA training pipeline with dataset upload, preprocessing, and export
- Add News page with dismiss/restore and GitHub star button
- Add localization info icon in Settings language section
- Fix upload audio URL prefix, add missing MIME types
- Add training API routes and Python preprocess script
- Update i18n with news keys for all languages
2026-02-09 22:30:15 +02:00
fspecii f42fde9b40 Phase 6: Replace REST polling with @gradio/client for generation and LoRA
- Add @gradio/client dependency for direct Gradio API communication
- Create gradio-client.ts: singleton client with lazy init and reconnection
- Rewrite acestep.ts: generation via /generation_wrapper (45 params), Python spawn fallback
- Remove REST polling code (submitToApi, pollApiResult, downloadAudioFromApi)
- Create lora.ts routes: load/unload/scale/toggle/status via Gradio events
- Register /api/lora routes in index.ts
2026-02-08 19:39:24 +02:00
fspecii 6f4d50ae18 Add LM Model selector (0.6B/1.7B/4B) with auto-download
- Add lmModel parameter through full chain (types, API, routes, service)
- Add LM Model dropdown in Advanced Settings (defaults to 0.6B)
- Pass lmModel and lmBackend to format/enhance endpoint
- Update format_sample.py to accept --lm-model and --lm-backend args
- Auto-download model from HuggingFace if not present locally
- Persist model selection in localStorage
- Improve format route error logging with exit code and stdout/stderr

Fixes #9
2026-02-05 23:55:55 +02:00
fspecii 58d00a23ed Merge PR #24: Various UI improvements from riversedge
Includes progress bar, drag and drop, gender buttons, upload
improvements, and dynamic duration limits.
2026-02-05 22:34:07 +02:00
fspecii d05c665f4d Add LM Backend selector (PT vs VLLM) to reduce VRAM usage
PT backend uses ~1.6 GB VRAM vs ~9.2 GB for VLLM, making it accessible
on lower-end GPUs. Adds dropdown in Advanced Settings defaulting to PT.
2026-02-05 22:30:23 +02:00
riversedge 424bd3fd25 Various UI improvements 2026-02-04 23:15:00 -05:00
riversedge b75bea3860 Progress bar and song reference/cover metadata 2026-02-04 20:40:38 -05:00
fspecii cde2ff6865 Improve compatibility and add one-click startup scripts
- Add Windows Portable Package support with auto-detection
- Fix API health check to support multiple response formats
- Fix task ID parsing for ACE-Step API integration
- Change thinking mode default to false for 4GB GPU compatibility
- Add explicit CoT parameter control for LLM features
- Fix audio download path encoding for portable package
- Improve file upload validation with extension fallback
- Add start-all.bat/sh scripts for one-click startup
- Update README with Windows Portable Package instructions
- Add comprehensive troubleshooting section
- Improve cross-platform compatibility
2026-02-04 16:59:45 +02:00
fspecii f9e4601792 Fix double model loading: use ACE-Step REST API when available
- Check if ACE-Step API is running at startup (GET /health)
- If API available: use REST endpoints (POST /release_task, POST /query_result, GET /v1/audio)
  - Model is already loaded by the API server, no double initialization
- If API not available: fall back to Python spawn (existing behavior)
  - Model loads once via Python script

This prevents the issue where running `acestep-api --port 8001` loads the model,
then the UI spawns Python which loads it again, consuming double VRAM.

API response is cached for the session to avoid repeated health checks.
2026-02-04 14:38:19 +02:00
fspecii 645c88ca0a Add Windows and portable installation support for Python path resolution
- Add resolvePythonPath() function that handles:
  - PYTHON_PATH env var override (highest priority)
  - Portable installations (python_embeded/python.exe)
  - Standard venv with correct paths per OS:
    - Windows: .venv/Scripts/python.exe
    - Unix: .venv/bin/python
- Remove hardcoded Unix paths from acestep.ts and generate.ts
- Remove hardcoded /home/ambsd default path

Fixes "ENOENT" errors on Windows when spawning Python processes.
2026-02-04 04:51:58 +02:00
fspecii 44f7563014 Initial commit: ACE-Step UI - Open source music generation interface 2026-02-04 03:09:38 +02:00