WebUI - Initial native Svelte WebUI embedded inside audiocpp_server.exe — no Python, Node.js, or Gradio needed - #185
Draft
mirek190 wants to merge 4 commits into
Draft
Conversation
Build the SvelteKit/TypeScript frontend as one static HTML artifact and convert it to a generated C++ byte array at CMake configure time. audiocpp_server serves that compiled asset at /, so normal UI and inference use require only the server binary and its selected backend libraries; Node.js is a frontend build dependency, not a runtime dependency, and Gradio is not involved. Cover TTS and voice cloning, ASR and near-live transcription, music generation, voice conversion, source separation, audio analysis, and voice design. Add reusable browser audio handling, long-text splitting and merge, microphone capture, an IndexedDB voice library, model catalog and settings, generic task results, timing, and multiple-output playback. Add --ui, --no-ui, and --ui-management server controls plus guarded APIs for dynamic model load/unload, path inspection, uploads, and asynchronous package installation. Pure UI inference remains Python-free; optional model download or legacy conversion delegates to the packaged Python model-manager helpers when requested. Teach portable Windows packaging to include the optional model-management resources, document native and legacy WebUI operation, and add focused configuration and installer tests. Verified Svelte checks/build, CPU server build/tests, and embedded UI smoke tests on CPU and CUDA.
Owner
|
The UI looks super cool! |
Contributor
Author
|
Pushed commit What changed
Validation
|
Contributor
Author
|
Pushed follow-up commit Root causeAll Fix
Validation
|
Contributor
Author
|
Pushed follow-up commit Changes
Validation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This introduces the initial native SvelteKit/TypeScript WebUI and embeds its complete static output inside
audiocpp_server.exe.Normal browser inference now needs only the server executable plus the selected CPU/GPU runtime libraries. Python, Node.js, and Gradio are not runtime dependencies:
Node.js is used only when a developer rebuilds the frontend artifact. Python is used only when the user explicitly asks the optional model installer to download or convert a package; loading a prepared model and running inference remain native. The existing Gradio UI is retained as a compatibility option but is not used by this UI.
What is included
webui/nativeas a single static document and convert it to a generated C++ byte array during CMake configuration./and/index.html, with cache, CSP, and content-type safety headers.--ui,--no-ui, and--ui-management;--uican start a model-management host without an external server JSON file.model_manager_v2.py; keep converter-input packages on the deprecated helper until those packages migrate.Build and test commands
Frontend:
cd webui/native npm ci npm run check npm run buildCPU server and tests:
CUDA server (RTX 3090 / compute capability 8.6, CUDA 12.4):
Run the native UI:
Then open
http://127.0.0.1:18991/.Results
svelte-check: 0 errors, 0 warnings.audiocpp_server: built successfully against currentmain(238ab6a).server_config_test: passed.server_model_installer_test: passed.audiocpp_server: built successfully with CUDA 12.4 for SM 8.6.GET /health:status=ok,backend=cuda,ui=true,ui_management=trueGET /: HTTP 200, 167,097 bytesGenerated artifacts:
webui/native/dist/index.htmlbuild/native-ui-cpu/bin/Release/audiocpp_server.exebuild/windows-cuda-release/bin/audiocpp_server.exeKnown limitations