Commit Graph

26 Commits

Author SHA1 Message Date
fspecii 78426c00dd Fix LoRA training Error 500 - remove Radio serialization issue
The @gradio/client was wrapping Radio component values as
{"value": "replace", "__type__": "update"} instead of plain strings,
causing the update_settings Gradio call to fail and crash the server.

- /update-settings: removed Gradio call, settings are applied at save time
- /save-dataset: migrated to REST API (/v1/dataset/save) which accepts
  tag_position and other settings directly as strings
- Frontend: pass dataset settings (tag, position, etc.) when saving
2026-03-02 18:06:44 +02:00
fspecii a5879e60a5 Fix audio2audio task type, demucs-web proxy, and health endpoint
- Map audio2audio to cover in Gradio args and Python spawn fallback
  (audio2audio is not a valid ACE-Step task type, cover is the equivalent)
- Add /demucs-web to Vite proxy so stem extractor opens correctly in Pinokio
  (in Pinokio, Vite runs on a dynamic port and /demucs-web was not proxied)
- Expose aceStepUrl in /api/generate/health response for debugging
2026-03-02 17:58:09 +02:00
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 af5343f9db Add missing wavesurfer.js for AudioMass editor
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/.
2026-02-06 00:03:14 +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 292e6cb3b8 A check script around timing limits 2026-02-05 12:59:22 -05:00
riversedge 00c783eea9 Some drag and drop and other UI enhancements 2026-02-05 12:09:48 -05:00
riversedge ce6256d931 Fix percentages on creating 2026-02-04 23:25:38 -05: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
riversedge 16f5af6435 Some enhancements to UI functionality 2026-02-04 18:57:18 -05:00
fspecii 823fbe0cd3 Fix storage upload to return public URL path 2026-02-04 21:44:13 +02:00
fspecii b95936d07d Fix reference audio upload URL and validation
- 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>
2026-02-04 21:28:40 +02:00
fspecii 2f567580bc Increase max duration to 600s, fix storage key return 2026-02-04 20:13:41 +02: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 e616713ec1 Fix delete song, CORS, and cleanup for local-first SQLite setup
- 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
2026-02-04 13:39:30 +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 3cb11726ce Fix database initialization: run migrations on server startup
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.
2026-02-04 04:34:25 +02:00
fspecii 44f7563014 Initial commit: ACE-Step UI - Open source music generation interface 2026-02-04 03:09:38 +02:00