Repository navigation
feat(installer): Add modular/optional feature packs and on-demand component installer for Video & Audio #15
Copy link
Copy link
Closed
Labels
Milestone
Description
🎯 Objective & Overview
Make Video and Audio generation modular, separately installable feature packs. Because DiT video models (Wan 2.2, LTX-2.5, HunyuanVideo) and voice synthesis runtimes/checkpoints (Kokoro, F5-TTS, CosyVoice, AudioCraft) require tens of gigabytes of disk space and heavy Python/CUDA dependencies, they must not bloat the core manager installation. Users should be able to opt in or install them on-demand.
📂 Files & Components to Touch
- Installer & Scripts (
scripts/):scripts/installer.iss(Inno Setup): Add[Components]/[Types]section:core: Core LLM & Image Generation (Ollama + SD/Forge + 3D Studio) [Required]ext_video: ComfyUI Video Generation Pack (Wan 2.2 / LTX-2.5 nodes & templates) [Optional]ext_audio: Kokoro / Audio Engine Pack (FastAPI TTS server & voice models) [Optional]
scripts/install.ps1&scripts/install_linux.sh: Add flags--with-videoand--with-audio.scripts/setup_ai_tools.ps1: Split installation logic into discrete tasks (Install-VideoPack,Install-AudioPack).
- Backend Component Management (
Services/ComponentManagerService.cs&Interfaces/IComponentManagerService.cs):- Add service to query installation status of optional feature packs:
bool IsVideoPackInstalled { get; }bool IsAudioPackInstalled { get; }Task<bool> InstallComponentAsync(string componentId, IProgress<double> progress)Task<bool> UninstallComponentAsync(string componentId)
- Add service to query installation status of optional feature packs:
- Endpoints (
Endpoints/ComponentEndpoints.cs):GET /api/components— Returns status of all optional packs (installed, missing, size on disk, update available).POST /api/components/install— Triggers background download/setup with SSE progress stream.POST /api/components/uninstall— Cleans up models/runtimes to reclaim disk space.
- UI & Graceful Fallbacks (
LocalLLMServerManager.Shared/Views/Controls/):- When Video or Audio tabs/sub-views are opened and the component is not installed:
- Display a lightweight, beautiful "Feature Pack Available" banner with estimated download size, hardware requirements, and an "📥 Install Feature Pack" button.
- Settings tab: Add "Installed Components & Add-ons" management section with disk usage visualizer.
- When Video or Audio tabs/sub-views are opened and the component is not installed:
🔌 API Contract
GET /api/components
[
{
"id": "video-generation",
"name": "ComfyUI Video Generation Pack",
"description": "Enables Wan 2.2, LTX-2.5, and HunyuanVideo DiT workflows.",
"installed": false,
"diskSizeEstimate": "14.2 GB",
"minVramRequired": "8 GB"
},
{
"id": "audio-tts",
"name": "Kokoro TTS & Audio Engine",
"description": "Enables fast local text-to-speech with OpenAI /v1/audio/speech compatibility.",
"installed": true,
"diskSizeEstimate": "350 MB",
"minVramRequired": "CPU / 2 GB"
}
]🛠️ Step-by-Step Implementation Guide
- Define component metadata models and interface
IComponentManagerService. - Implement
ComponentManagerServicechecking directory existence (Workflows/Video,models/diffusion_models,kokoro-fastapibinaries/venv). - Expose REST endpoints in
Endpoints/ComponentEndpoints.cs. - Update
scripts/installer.isswith Inno Setup[Components]to allow choosing which packs to install during Windows setup. - Build the "Install on demand" UI placeholder card for uninstalled features.
🧪 Verification
dotnet builddotnet test --filter Category!=LiveExternalnpm run lint&npx tsc --noEmit
Reactions are currently unavailable
Activity
google-labs-jules commentedon Aug 23, 2026
Jules is on it. When finished, you will see another comment and be able to review a PR.
google-labs-jules commentedon Aug 23, 2026
Ready for a review! A PR has been created.
spelech commentedon Aug 24, 2026
Resolved in v3.7.0