A front-end UI for ComfyUI made for beginner level users.
See the codeMooshieUI is a beginner-friendly interface for image, video and music generation through ComfyUI, with optional image generation through the NovelAI API using your own key. It runs in two modes:
Built with Svelte 5 + Rust, it hides ComfyUI's node-graph complexity behind a clean, guided workflow so you can generate without hand-editing graphs.
MooshieUI is free and open source. If it saves you time or sparks joy, a sponsorship keeps the updates coming. No pressure, just gratitude. ๐ (where does the money go?)

Full guides live in the MooshieUI Wiki:
| Guide | Covers |
|---|---|
| Installation | Desktop, Docker, remote/cloud ComfyUI, Apple Silicon candidates |
| Generation Basics | Image modes, pause/continue, queue, dimensions and guidance |
| NovelAI Backend | Personal API keys, characters, references, costs, face detailing and Director Tools |
| Video Generation | MiniMax H3, model stacks, timeline, interpolation, playback and export |
| Music Generation | YuE2 songs, lyric writing, playlists, shared playback and manual lyric timing |
| Image Edit Mode | Qwen Image Edit, Flux Kontext and Anima ReStyler |
| Prompting Guide | Prompt Chunks, random syntax, Artist Styles, Style Creator and interrogation |
| Prompt Assistant | Local or external LLM-assisted prompt building |
| Models & the Model Hub | Supported architectures, auto-detection, downloads |
| Upscaling & Face Fix | Tiled diffusion, guidance nodes, face fix |
| ControlNet & Style Transfer | ControlNet and reference/style transfer |
| Inpainting & the Canvas Editor | Mask painting and selective edits |
| Compare Grid | XYZ parameter sweeps |
| Image Comparison | Slider, fade, difference and side-by-side comparison |
| Gallery & Metadata | Persistent gallery, metadata import/remix |
| Server, LAN & Multi-User | Self-hosting, roles, auth, mobile |
| Settings & Accessibility | Persistence, i18n, accessibility |
| FAQ | Common questions |
Technical references and project planning documents are indexed in docs/README.md.
v2.3.6: Build music styles from reference songs or audio, sign in to supported Prompt Assistant accounts, and use new H3 Turbo presets. See the release notes.
Controls depend on the selected backend and model. NovelAI offers the three standard image modes; Image Edit, video, music and pause/continue use ComfyUI. YuE2 requires its own checkpoint and native ComfyUI support; managed installs offer the tested runtime update. See the Wiki for each feature's requirements.
Managed ComfyUI uses port 18288 for new installations, preserves saved port settings, and chooses another free port if needed. Setup, restart, and shutdown stop only processes identified as MooshieUI's own, including verified keep-alive instances. Existing ComfyUI applications can stay running. To connect to one intentionally, choose Remote in the connection settings.
The generation model picker uses the connected ComfyUI server's model inventory. A file downloaded locally may still be unavailable to that server; the picker and model manager show this separately. For an external server, install models on that server and refresh the model list. Startup progress appears above the page, keeping the tips readable while controls initialize.
Allow roughly 5โ10 GB for the runtime, plus space for model downloads; first setup typically takes 5โ15 minutes depending on your connection. GPU support varies by platform, including an allowlisted AMD Windows preview. See Installation for details.
Save your API key in Settings > NovelAI, then select a NovelAI model in the model picker. The generation page adapts to that backend and shows an estimated Anlas cost before submission. Local upscaling and face detection still need a running ComfyUI; NovelAI requests use your account's subscription and balance. See NovelAI Backend.
cp .env.example .env
# Edit .env: set MOOSHIEUI_ADMIN_USER and a strong MOOSHIEUI_ADMIN_PASS before first launch.
docker compose up -d --build
Open http://localhost:3200 (or the host port set by MOOSHIEUI_PORT) and sign in with the initial admin account. Empty passwords and changeme are not accepted for account creation. The supplied Docker stack targets NVIDIA GPUs and requires GPU support in Docker; it is separate from the desktop wizard's AMD/Intel setup. Full server/LAN/multi-user setup: Server, LAN & Multi-User.
Use Node.js 22.12+ or 24+, stable Rust, and the platform's Tauri v2 build prerequisites. See CONTRIBUTING.md for validation and both Rust build targets.
git clone https://github.com/Mooshieblob1/MooshieUI.git
cd MooshieUI
npm install
npm run tauri dev # hot-reload dev
npm run tauri build # production build
ipcInvoke() sends settings to Rust through Tauri IPC on desktop or HTTP in browser mode; ipcListen() receives events through Tauri or SSE./prompt API; NovelAI requests go to its image API. Optional local post-processing sends returned NovelAI images through ComfyUI.MooshieUI also ships custom ComfyUI nodes (tiled diffusion, soft/smart guidance, an SDXLโFlux2 VAE adapter, Nanosaur DiT support, and face fix) that are auto-installed into ComfyUI. Details live in Models & the Model Hub. The tiled diffusion node is also available as a standalone ComfyUI custom node: ComfyUI-MooshieTiledDiffusion.
| Layer | Technology |
|---|---|
| Frontend | Svelte 5, TypeScript 6, Tailwind CSS 4 |
| Runtime | Tauri desktop app + axum headless web server |
| State | Svelte 5 runes - class-based singleton stores |
| Persistence | Tauri Store (JSON), SQLite (rusqlite), and per-account IndexedDB for the music library |
| Generation transport | ComfyUI REST/WebSocket and NovelAI HTTP/streaming through Rust |
| Prompt Assistant | Local llama.cpp, configured external LLM endpoint, or ChatGPT / Gemini account sign-in |
| Inference | ONNX Runtime (ort) for WD v3 image interrogation |
| Autocomplete | Danbooru + Anima tag databases (~140k tags) |
| i18n | 12 languages, checked key/placeholder parity, runtime switching |
| Build | Vite 6 + @sveltejs/vite-plugin-svelte |
Automated GlassWorm resistance checks run on every push and pull request to catch supply-chain attacks that hide payloads in invisible Unicode variation selectors or tamper with git timestamps. The CI workflow (.github/workflows/glassworm-scan.yml) blocks merges on failure. Contributors should enable the same checks locally:
bash scripts/setup-hooks.sh
First off, to be clear: this is not meant to be income. MooshieUI is a passion project. I build it in my spare time around a regular day job, I don't expect to earn anything from it, and right now the running costs come straight out of my own pocket.
If you sponsor the project, here is exactly where it goes:
The goal is simply to stop the project from costing me money to keep alive. Anything beyond covering costs just goes right back into building more features, faster.
Longer term, the ideal is that MooshieUI can outlast my own availability. I intend to support this project for as long as I can, but every maintainer has lulls, and life can pull you away for a stretch. A small buffer means the domain, hosting, and infrastructure stay paid up through those quiet periods, so the project stays online and usable even when I am not actively maintaining it.
Sponsoring is completely optional and the app will always be free and open source either way. Thank you for even considering it. ๐
Pull requests are welcome. main is protected: open a PR from a chore/<topic> branch after local validation and GlassWorm pre-commit checks. See push-instructions.md for the full workflow (branch naming, build gates, IPC/gallery conventions, and CI).
See CHANGELOG.md for the full version history.
Licensed under the GNU Affero General Public License v3.0.
MooshieUI stands on the shoulders of a huge amount of open-source work. Sincere thanks to every project, researcher, model creator, and service below.
Auto-installed into ComfyUI alongside MooshieUI's own nodes:
<segment:...> refinement.<segment>/<fromto> prompt syntax, and borrows its backend-handler and in-memory image delivery patterns.(tag:1.1) weight syntax.If your work is used in MooshieUI and you feel it isn't credited properly here, please open an issue, it will be fixed promptly.
102 followers ยท starred May 2026
TypeScript
44.0%
Rust
28.6%
Svelte
20.7%
Python
4.5%
JavaScript
1.6%
A front-end UI for ComfyUI made for beginner level users.
See the codeMooshieUI is a beginner-friendly interface for image, video and music generation through ComfyUI, with optional image generation through the NovelAI API using your own key. It runs in two modes:
Built with Svelte 5 + Rust, it hides ComfyUI's node-graph complexity behind a clean, guided workflow so you can generate without hand-editing graphs.
MooshieUI is free and open source. If it saves you time or sparks joy, a sponsorship keeps the updates coming. No pressure, just gratitude. ๐ (where does the money go?)

Full guides live in the MooshieUI Wiki:
| Guide | Covers |
|---|---|
| Installation | Desktop, Docker, remote/cloud ComfyUI, Apple Silicon candidates |
| Generation Basics | Image modes, pause/continue, queue, dimensions and guidance |
| NovelAI Backend | Personal API keys, characters, references, costs, face detailing and Director Tools |
| Video Generation | MiniMax H3, model stacks, timeline, interpolation, playback and export |
| Music Generation | YuE2 songs, lyric writing, playlists, shared playback and manual lyric timing |
| Image Edit Mode | Qwen Image Edit, Flux Kontext and Anima ReStyler |
| Prompting Guide | Prompt Chunks, random syntax, Artist Styles, Style Creator and interrogation |
| Prompt Assistant | Local or external LLM-assisted prompt building |
| Models & the Model Hub | Supported architectures, auto-detection, downloads |
| Upscaling & Face Fix | Tiled diffusion, guidance nodes, face fix |
| ControlNet & Style Transfer | ControlNet and reference/style transfer |
| Inpainting & the Canvas Editor | Mask painting and selective edits |
| Compare Grid | XYZ parameter sweeps |
| Image Comparison | Slider, fade, difference and side-by-side comparison |
| Gallery & Metadata | Persistent gallery, metadata import/remix |
| Server, LAN & Multi-User | Self-hosting, roles, auth, mobile |
| Settings & Accessibility | Persistence, i18n, accessibility |
| FAQ | Common questions |
Technical references and project planning documents are indexed in docs/README.md.
v2.3.6: Build music styles from reference songs or audio, sign in to supported Prompt Assistant accounts, and use new H3 Turbo presets. See the release notes.
Controls depend on the selected backend and model. NovelAI offers the three standard image modes; Image Edit, video, music and pause/continue use ComfyUI. YuE2 requires its own checkpoint and native ComfyUI support; managed installs offer the tested runtime update. See the Wiki for each feature's requirements.
Managed ComfyUI uses port 18288 for new installations, preserves saved port settings, and chooses another free port if needed. Setup, restart, and shutdown stop only processes identified as MooshieUI's own, including verified keep-alive instances. Existing ComfyUI applications can stay running. To connect to one intentionally, choose Remote in the connection settings.
The generation model picker uses the connected ComfyUI server's model inventory. A file downloaded locally may still be unavailable to that server; the picker and model manager show this separately. For an external server, install models on that server and refresh the model list. Startup progress appears above the page, keeping the tips readable while controls initialize.
Allow roughly 5โ10 GB for the runtime, plus space for model downloads; first setup typically takes 5โ15 minutes depending on your connection. GPU support varies by platform, including an allowlisted AMD Windows preview. See Installation for details.
Save your API key in Settings > NovelAI, then select a NovelAI model in the model picker. The generation page adapts to that backend and shows an estimated Anlas cost before submission. Local upscaling and face detection still need a running ComfyUI; NovelAI requests use your account's subscription and balance. See NovelAI Backend.
cp .env.example .env
# Edit .env: set MOOSHIEUI_ADMIN_USER and a strong MOOSHIEUI_ADMIN_PASS before first launch.
docker compose up -d --build
Open http://localhost:3200 (or the host port set by MOOSHIEUI_PORT) and sign in with the initial admin account. Empty passwords and changeme are not accepted for account creation. The supplied Docker stack targets NVIDIA GPUs and requires GPU support in Docker; it is separate from the desktop wizard's AMD/Intel setup. Full server/LAN/multi-user setup: Server, LAN & Multi-User.
Use Node.js 22.12+ or 24+, stable Rust, and the platform's Tauri v2 build prerequisites. See CONTRIBUTING.md for validation and both Rust build targets.
git clone https://github.com/Mooshieblob1/MooshieUI.git
cd MooshieUI
npm install
npm run tauri dev # hot-reload dev
npm run tauri build # production build
ipcInvoke() sends settings to Rust through Tauri IPC on desktop or HTTP in browser mode; ipcListen() receives events through Tauri or SSE./prompt API; NovelAI requests go to its image API. Optional local post-processing sends returned NovelAI images through ComfyUI.MooshieUI also ships custom ComfyUI nodes (tiled diffusion, soft/smart guidance, an SDXLโFlux2 VAE adapter, Nanosaur DiT support, and face fix) that are auto-installed into ComfyUI. Details live in Models & the Model Hub. The tiled diffusion node is also available as a standalone ComfyUI custom node: ComfyUI-MooshieTiledDiffusion.
| Layer | Technology |
|---|---|
| Frontend | Svelte 5, TypeScript 6, Tailwind CSS 4 |
| Runtime | Tauri desktop app + axum headless web server |
| State | Svelte 5 runes - class-based singleton stores |
| Persistence | Tauri Store (JSON), SQLite (rusqlite), and per-account IndexedDB for the music library |
| Generation transport | ComfyUI REST/WebSocket and NovelAI HTTP/streaming through Rust |
| Prompt Assistant | Local llama.cpp, configured external LLM endpoint, or ChatGPT / Gemini account sign-in |
| Inference | ONNX Runtime (ort) for WD v3 image interrogation |
| Autocomplete | Danbooru + Anima tag databases (~140k tags) |
| i18n | 12 languages, checked key/placeholder parity, runtime switching |
| Build | Vite 6 + @sveltejs/vite-plugin-svelte |
Automated GlassWorm resistance checks run on every push and pull request to catch supply-chain attacks that hide payloads in invisible Unicode variation selectors or tamper with git timestamps. The CI workflow (.github/workflows/glassworm-scan.yml) blocks merges on failure. Contributors should enable the same checks locally:
bash scripts/setup-hooks.sh
First off, to be clear: this is not meant to be income. MooshieUI is a passion project. I build it in my spare time around a regular day job, I don't expect to earn anything from it, and right now the running costs come straight out of my own pocket.
If you sponsor the project, here is exactly where it goes:
The goal is simply to stop the project from costing me money to keep alive. Anything beyond covering costs just goes right back into building more features, faster.
Longer term, the ideal is that MooshieUI can outlast my own availability. I intend to support this project for as long as I can, but every maintainer has lulls, and life can pull you away for a stretch. A small buffer means the domain, hosting, and infrastructure stay paid up through those quiet periods, so the project stays online and usable even when I am not actively maintaining it.
Sponsoring is completely optional and the app will always be free and open source either way. Thank you for even considering it. ๐
Pull requests are welcome. main is protected: open a PR from a chore/<topic> branch after local validation and GlassWorm pre-commit checks. See push-instructions.md for the full workflow (branch naming, build gates, IPC/gallery conventions, and CI).
See CHANGELOG.md for the full version history.
Licensed under the GNU Affero General Public License v3.0.
MooshieUI stands on the shoulders of a huge amount of open-source work. Sincere thanks to every project, researcher, model creator, and service below.
Auto-installed into ComfyUI alongside MooshieUI's own nodes:
<segment:...> refinement.<segment>/<fromto> prompt syntax, and borrows its backend-handler and in-memory image delivery patterns.(tag:1.1) weight syntax.If your work is used in MooshieUI and you feel it isn't credited properly here, please open an issue, it will be fixed promptly.
102 followers ยท starred May 2026
TypeScript
44.0%
Rust
28.6%
Svelte
20.7%
Python
4.5%
JavaScript
1.6%