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
- 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
AudioMass uses a custom fork of wavesurfer.js with getLoudness()
and other extensions. The dist/ folder was excluded by server/.gitignore.
Added gitignore exception for audio-editor/dist/.
- 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
- Fix double /audio/ prefix in reference audio URLs (upload() already returns the public path)
- Allow reference audio as alternative to style/lyrics in custom mode validation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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
- 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.
- Fix delete song route: remove reference to non-existent audio_files table,
use audio_url directly from songs table instead
- Fix CORS: allow 127.0.0.1 in addition to localhost in development mode
- Fix cleanup service: remove audio_files reference, use SQLite datetime syntax
- 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.
Users on Windows were getting "no such table: users" errors because
migrations were never executed. The migrate.ts file existed but was
not imported by the server entry point.