## Added
- **Wan2GP HTTP provider** alongside the existing sd.cpp engine. Settings →
Local Models now has a Wan2GP server config bar — point the desktop app
at any user-run Wan2GP Gradio server (LAN box, RunPod/vast.ai, etc.) and
the new model entries (Flux, Qwen-Image, Wan 2.2 T2V/I2V, Hunyuan, LTX)
light up. sd.cpp keeps working as before; the renderer routes per model.
## Fixed
- Dreamshaper 8 download URL — the catalog pointed at a 404'd HF repo slug
(`Lykon/dreamshaper-8`); switched to the live one (`Lykon/DreamShaper`).
## Docs
- README rewritten for the two-engine model with a copy-paste SD 1.5
sanity-test recipe that bypasses the UI and validates the local engine
end-to-end. Hardware notes flag the Z-Image hang on small-RAM Macs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Local Inference section split into two engines (sd.cpp bundled + Wan2GP
BYO server), with a comparison table explaining when each fits.
- Wan2GP setup spelled out: clone, install, run with --listen, paste URL
into Settings → Local Models. Notes that Wan2GP is CUDA/ROCm-only on the
server side and explains why a Mac user might still want it.
- Hardware Notes flags that Z-Image is known to hang on base 8 GB Macs;
recommends SD 1.5 there. Adds expected sd.cpp per-step timing on M2 with
Metal so users can spot a CPU-fallback regression.
- New "Verifying the SD 1.5 path" subsection: a 3-step curl + sd-cli
invocation that bypasses the UI and confirms the engine works end-to-end.
Mirrors what the Electron path issues, so it doubles as a release sanity
check.
- Features list line for Local Inference rewritten to mention both engines.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The catalog pointed at huggingface.co/Lykon/dreamshaper-8 which now returns
404 — the live HF repo is huggingface.co/Lykon/DreamShaper. Confirmed by
probing both URLs and downloading the file from the corrected one.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The desktop app already has a bundled sd.cpp engine for local generation. This
adds a second, complementary engine: an HTTP client that talks to a user-run
Wan2GP Gradio server (https://github.com/deepbeepmeep/Wan2GP). Useful when
sd.cpp can't run a target model — Wan2GP brings video models (Wan 2.2,
Hunyuan, LTX) and large image models (Flux, Qwen-Image) without bundling
Python or weights into the app.
Architecture
- Each model in the unified catalog now carries a `provider` field
(`'sdcpp' | 'wan2gp'`). The renderer's `localAI.generate()` routes to the
right backend based on that flag.
- sd.cpp keeps its existing IPC channels (`local-ai:*`) untouched. Wan2GP
gets its own channel namespace (`wan2gp:*`) and lives in its own
`electron/lib/wan2gpProvider.js`.
- Wan2GP server URL is persisted in `userData/local-ai/wan2gp.json`.
`Settings → Local Models` exposes a config bar to test/save the URL.
- Generation streams Gradio v4 SSE protocol; both engines emit progress on
the shared `local-ai:progress` channel.
ImageStudio
- Local-model dropdown now filters out video models (`type === 'video'`)
since the studio is image-only. SD 1.5 / SDXL / Z-Image (sd.cpp) and Flux /
Qwen-Image (Wan2GP) still surface; Wan/Hunyuan/LTX are hidden until the
Video Studio is wired up to the same surface.
- Progress event handler updated to tolerate both engines' shapes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
electron-builder's fpm/.deb target requires `homepage` in package.json;
without it `npm run electron:build:linux` fails with "Please specify
project homepage" after producing the AppImage.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fixes#108 — leejet's latest sd.cpp release (master-587-b8bdffc) only
ships Mac arm64, the Windows cudart runtime stub, and Linux ROCm. The
old matcher only ever read `releases/latest` and excluded ROCm/Vulkan,
so Ubuntu/Linux users hit "No binary found for this platform" with no
recovery path. Windows users were also broken: the only Win asset in
the latest release isn't an sd-cli build.
- Walk the last 15 leejet releases until one ships a usable build for
the current platform, so a partial latest release self-heals to the
prior tag (master-586 onwards has the full 12-zip matrix).
- Linux: prefer plain x86_64, then vulkan, then rocm (instead of
rejecting both rocm and vulkan).
- Windows: priority order avx2 > avx > avx512 > noavx > cuda12, and
skip the standalone `cudart-sd-bin-win-cu12-x64.zip` runtime stub.
- macOS Intel: surface a clear error — leejet only ships arm64.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fixes#111 — the Settings entry point was a bare icon (a key glyph in
the Electron header, a gradient circle in the web shell), which users
mistook for an avatar or didn't notice at all. Replace both with a
gear icon + "Settings" text in a bordered pill button.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fixes#110 — workflow-builder and ai-agent live in git submodules
(packages/Vibe-Workflow, packages/Open-Poe-AI). A plain `git clone`
leaves those directories empty, so `next build` fails to resolve
the `ai-agent` and `workflow-builder` workspace imports.
- README: instruct `git clone --recurse-submodules` and document
the `git submodule update --init --recursive` fallback.
- package.json: prepend submodule init to the `setup` script so
`npm run setup` works on a fresh clone too.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Feature Alibaba's Happy Horse 1.0 (#1 ranked AI video model) above the
existing GPT-Image-2 callout, linking to the Python wrapper + curated
community prompt library.
- Add minimax-image-01 to t2iModels in src/lib/models.js and
packages/studio/src/models.js (8 aspect ratios, up to 4 images per
request, 1500-char prompt)
- Add minimax-image-01 entry to models_dump.json (t2i section)
- Update README: list MiniMax Image 01 in newly-added image models
and call out existing MiniMax Hailuo 02/2.3 video model support
- Add scripts/test_minimax_provider.js: validates model registration
and optionally runs a live API smoke test (MUAPI_KEY env var)
MiniMax Hailuo 02/2.3 T2V and I2V models were already present;
this commit brings MiniMax image generation to feature parity.
macOS Apple Silicon (darwin-arm64) now downloads the Metal-accelerated
sd-cli from our own GitHub release instead of the stock leejet build,
enabling significantly faster local image generation on M1/M2/M3/M4.
All other platforms continue to use the leejet upstream release.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add "Local Model Inference" section covering supported models (Z-Image Turbo/Base, Dreamshaper, Realistic Vision, Anything v5, SDXL), auxiliary file requirements for Z-Image, step-by-step usage, and hardware notes for Metal GPU on Apple Silicon. Also add Local Inference bullet to the Features list.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PROXY_APP_BASE ('/api/app') produced /api/app/v1/predictions/... which
after the Next.js rewrite hit 127.0.0.1:8000/app/v1/... → 404.
Poll now uses BASE_URL directly, consistent with how submit works.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename Seedance 2.0 → SD 2 (t2v, extend, i2v models)
- Bump version to 1.0.2
- Update README download links to v1.0.2
- Fix afterPack.js to strip platform-inappropriate @next/swc native binaries,
reducing Windows installer from ~739 MB unpacked to ~144 MB
- Windows build now targets x64 only (arm64 cross-compile via Wine is broken on macOS)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add electron:build:linux script and AppImage + .deb targets in package.json
- Fix Electron main.js: ESM → CommonJS, remove macOS-only titleBarStyle on Linux
- Fix createInlineInstructions undefined error in ImageStudio.js
- Fix Cinema Studio asset paths (absolute → relative) for Electron file:// protocol
- Add AppArmor profile for Ubuntu 24.04+ user namespace sandbox fix
- Add Ubuntu install docs and sandbox workaround to README
- Rename vite.config.js to vite.config.mjs so ESM-only @tailwindcss/vite
loads correctly (CJS require() can't import ESM modules)
- Remove tailwindcss from postcss.config.js — handled by @tailwindcss/vite
in Tailwind v4; the v3 PostCSS plugin conflicts with v4 CSS syntax
- Add "main": "electron/main.js" to package.json so electron-builder
finds the entry point instead of defaulting to index.js
- Bump version to 1.0.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The generate_wan_ai_effects endpoint requires both `name` (effect type)
and `prompt` (str) fields. The client was sending neither — `name` had
no state/UI/payload entry, and `prompt` was omitted when blank — causing
a 422 Unprocessable Entity error.
- Add selectedEffectName state and getEffectNamesForModel() helper
- Add Effect dropdown button (visible only for ai-video-effects /
motion-controls) with the full enum list from the model definition
- Wire updateControlsForModel to initialize/reset selectedEffectName
- Pass name in i2vParams at generate time
- Always send prompt (defaults to '') so the required str field is present
- Forward params.name in muapi.js generateI2V payload
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>