Local. Fast. Beautiful. A desktop studio for stable-diffusion.cpp
- Text2Image, Edit (inpaint / multi-ref Kontext & Qwen Edit / img2img), Video (T2V, I2V, FLF2V)
- Job queue — generate while busy; reorder, pause, cancel
- Recipes — full-settings templates (surfaces, frames, objects, moods); import/export
.flaxeo-recipe.json - Help — offline guide including surfaces, frames, and batch/queue workflows
- Gallery with PNG parameter reuse, upscale, and generation history
- Model Hub starter packs (SDXL, FLUX, Z-Image, Wan, LTX, Qwen, …)
- Dual backend: sd-cli (default) or sd-server
- Hardware helpers: flash attention, VAE tiling, Low VRAM profile, cache presets
- Quantize / convert models to GGUF from the UI
- Installers may be flagged as untrusted until they are code-signed.
- The server binds to localhost by default. Secure LAN sharing is an explicit, authenticated HTTPS option in Settings.
- Developed primarily on Windows; Linux builds (AppImage / deb) are produced in CI.
- Node.js 22.12+ (required by Electron 41)
- A stable-diffusion.cpp build (
sd-cli+sd-server) — download from the app Settings, or place binaries underbackend/custom/
Tested against recent master-* release tags of stable-diffusion.cpp (see Settings → Backend).
- Run the app (
npm run devor a release install). - Complete the setup wizard: install a backend → download a starter pack (GPU-recommended).
- On finish, use Generate sample or follow the in-app checklist: Backend · Models · First image.
- Optional: enable Low VRAM in setup if you are on a smaller GPU.
Skipped the wizard? A quiet Getting started strip stays until the first successful image (dismissible).
git clone https://github.com/fabricio3g/FlaxeoUI.git
cd FlaxeoUI
npm install
npm run devnpm startThe desktop API listens only on 127.0.0.1 by default. In Settings → Network, enable local network sharing, choose a private Wi-Fi or Ethernet address, select a permission profile, and pair another device with the displayed QR code.
Secure HTTPS is recommended. Export and install the Flaxeo local CA certificate on the client device before opening the shared address, then verify the certificate fingerprint shown in Settings. Never bypass a browser certificate warning. Quick HTTP is an unencrypted, generation-only option for trusted home networks; it expires after 15 minutes and is disabled after restart.
LAN sharing binds only to the selected RFC1918 address, never every network interface. Permission profiles separately grant generation, read-only gallery, or safe runtime and log controls. Backend installation, storage, downloads, certificates, and security settings always remain desktop-only. Disabling sharing immediately closes the listener and revokes paired sessions.
For HTTPS, transfer only the exported public .crt file. Never transfer the private key from Flaxeo's application-data directory. Settings lists paired browsers with their IP address and last activity, and supports individual or global revocation.
node ./server.jsnpm run build:win # Windows
npm run build:linux # Linux AppImage / deb| Command | Purpose |
|---|---|
npm run dev |
Hot-reload Electron + Vue |
npm run typecheck |
TypeScript (main + renderer) |
npm test |
Unit tests (CLI args, errors, LoRA tokens, cache presets) |
npm run lint / lint:ci |
ESLint (CI fails on errors) |
Release smoke checklist: docs/SMOKE.md.
- Frontend: Vue 3, TypeScript, Tailwind CSS, Pinia
- App shell: Electron (electron-vite)
- API: Express managing
sd-cli/sd-serversubprocesses - Inference: stable-diffusion.cpp
UI workspaces → Express routes → sd.ts arg builders → sd-cli / sd-server
UI for stable-diffusion.cpp by @leejet.

