Skip to content

Releases: GKartist75/wan2gp-desktop

Wan2GP Desktop Launcher v3.0.9

Choose a tag to compare

@GKartist75 GKartist75 released this 24 Aug 21:28
8600368

Wan2GP Desktop Launcher v3.0.9

Install-location hardening

  • Bare drive roots rejected (C:/D:/E:…). Picking a root now shows a confirm dialog offering <drive>:\Wan2GP; installing straight onto a root is blocked (fixes the EPERM mkdir 'D:\' crash).
  • Same guard now applies to migration ("Move & restart") and the data-dir pencil.

Co-located uv wheel cache

  • UV_CACHE_DIR set to <install>/.uv-cache for both install and in-app update. Cache and venv share a drive → hardlinks work, no "Failed to hardlink files; falling back to full copy" warning (verified on C: and D:).
  • Manage → General → uv Wheel Cache: live size/status, Purge (uv cache prune) and Remove (delete the folder) controls.

Bug fixes from first test pass

  • uv cache prune callback-type error fixed; Remove no longer freezes the UI (async delete).
  • uv binary detection covers %LOCALAPPDATA%\uv\uv.exe + where uv.exe so prune works regardless of how uv was installed.

Verification

  • npm run test: 130/130 passing.
  • Clean installs on C:\Wan2GP and D:\Wan2GP (no hardlink warning; SageAttention post4→post6 safe swap; GGUF 1.0.8→1.0.11; bitsandbytes 0.49.2).

⚠ Unsigned build (no code-signing token configured): Windows shows an "unknown publisher" SmartScreen warning — consistent with prior releases. Install anyway / run anyway to proceed.

Wan2GP Desktop Launcher v3.0.8

Choose a tag to compare

@GKartist75 GKartist75 released this 24 Aug 15:15
97e7fda

v3.0.8 — Cross-drive install cleanup hardened (#76 / #73)

A maintenance fix for the initial-install clone path used when the install location is on a different drive than %TEMP%.

Background (honest)

The original EXDEV abort reported in #76 / #73 (install failing entirely when the target is on another drive) was already fixed in v3.0.7mergeDir → moveDirAtomic does rename first and falls back to a copy on EXDEV. The user-facing symptom from those issues is resolved from 3.0.7 onward.

What v3.0.8 actually fixes

moveDirAtomic's post-copy cleanup in 3.0.7 gated fs.rmSync(src) on readdirSync(src) to "verify parity". readdirSync throws on a plain file path, so after a cross-drive copy of a file (e.g. wgp.py) the cleanup was skipped and the source file leaked (it was only swept later by the caller at main.js:1211). v3.0.8 removes the source unconditionally after a successful cpSync (which handles both files and directories), so:

  • no source-file leak on cross-drive installs,
  • no readdirSync-on-file crash risk,
  • the temp clone is cleanly emptied.

Tests

  • Added a regression test that extracts moveDirAtomic + mergeDir from main.js, simulates EXDEV on every rename, and asserts the clone merges cross-drive with no throw and a fully emptied source.
  • 124 tests pass (was 123 in 3.0.7).

Migration / config

No migration, config, or UX behavior changed. Install over any 3.0.x — non-disruptive.

Re-confirms #76 / #73 resolved.

Wan2GP Desktop Launcher v3.0.7

Choose a tag to compare

@GKartist75 GKartist75 released this 24 Aug 15:00
e441230

Wan2GP Desktop Launcher v3.0.7

Test build for #74 (migrate-to-C:\Wan2GP-Models not actually migrating) and #76 (cross-drive clone EXDEV crash), plus the migration UX fixes found during testing.

What's fixed

  • #74 / Bug1 — config paths not rewritten: migrating the model folders now rewrites wgp_config.json so Wan2GP reads checkpoints/loras/outputs from the new location (with a safe copy fallback, never half-migrated).
  • #74 / Bug2 — Installer Model-Folders UI was dead: the settings Model Folders panel is now wired to wgp_config.json and reflects live state.
  • #76 — EXDEV on cross-drive clone: the clone path now uses a copy + verify + remove fallback, so moving across drives works.

UX (driven by testing)

  • No stray C:\Wan2GP created on launch.
  • Chosen drive is respected (no forced C: relocation).
  • Model-folder pencil now opens and relocates; context-aware text (AppData only when actually roaming).
  • .git travels with a moved install; old .electron/boot.log runtime is cleaned up.
  • "Check Desktop Updates" button shows a persistent dot when an update is available.

⚠️ Important

Migration is still experimental — for v3.x the recommended upgrade path is a clean reinstall. This build is non-disruptive to existing 3.0.6 installs: nothing auto-migrates unless you click the migrate button/pencil.

Upgrade from 3.0.6

Install over your existing 3.0.6 — your location pin is honored, no migration is forced.


Closes #74 · Addresses #76

Wan2GP Desktop Launcher v3.0.6

Choose a tag to compare

@GKartist75 GKartist75 released this 21 Aug 17:32

v3.0.6 — setup_config.json is the base; Sage correction covers RTX 30/40/50

What changed

  • setup_config.json is now the explicit base. The launcher installs exactly what deepbeepmeep's setup_config.json declares (python / torch / triton / kernels / sage per GPU profile) — no more parallel hand-copied wheel list. Matches docs/INSTALLATION.md.
  • The one necessary correction: sage.v220_cu13 (cu130torch2.9.0andhigher.post4, the broken fp8 wheel that corrupts the CUDA context → false OOM / GPU hang / black MiniMax H3) is substituted with the cu130-native, fp8-fixed cu130torch2.10.0andhigher.post6 wheel (abi3 → installs on Python 3.11, cu130-linked → no DLL load crash, out-of-bounds fixed per SageAttention #98).
  • Now covers RTX 30/40/50. setup_config.json declares the broken wheel for all three; previously only RTX 40/50 were self-healed, so RTX 30 was missed. Both the Sync Kernels button and Launch now self-heal it.
  • Launch self-heal retained (from 3.0.5): updating the launcher alone fixes the wheel on next Launch — no manual Sync Kernels required.
  • GGUF → 1.0.11 and bitsandbytes 0.49.2 still applied as documented corrections (per INSTALLATION.md).

Upgrade

Install v3.0.6 (auto-updater offers it to 3.0.5 users). RTX 30/40/50: next Launch or Sync Kernels self-heals SageAttention to cu130.post6. RTX 20: Sage 1.0.6, untouched. GTX 10: no sage, untouched.

Full write-up: CHANGELOG-v3.0.6.md

Wan2GP Desktop Launcher v3.0.4

Choose a tag to compare

@GKartist75 GKartist75 released this 21 Aug 16:47

v3.0.4 — SageAttention swap fix (RTX 40/50): DLL import crash resolved

Hotfix for the v3.0.3 SageAttention swap. v3.0.3 installed a CUDA-12.8 SageAttention wheel that failed to import in the launcher's CUDA-13.0 / torch 2.10 environment:

ImportError: DLL load failed while importing _fused: The specified module could not be found.

Root cause

The launcher installs torch 2.10 + CUDA 13.0 (cu130). A cu128 SageAttention wheel's compiled _fused.pyd links against CUDA 12.8 runtime DLLs that are absent under cu130 → the module cannot load. The swap was pip-successful but runtime-broken.

Fix

The swap now targets the CUDA-13.0-native, fp8-fixed wheel:
sageattention-2.2.0+cu130torch2.10.0andhigher.post6-cp310-abi3-win_amd64.whl

  • cu130 → matches the env's CUDA 13.0 runtimes, so _fused.pyd loads.
  • cp310-abi3 → installs on Python 3.11 (the launcher's Python), no pip rejection.
  • .post6 → the build where the fp8 out-of-bounds bug (black/noise outputs on RTX 40/50) is fixed (SageAttention #98).

All wheel URLs the launcher can emit were verified live (HTTP 200) — no broken links.

Upgrade

Install v3.0.4 (auto-updater offers it to 3.0.2 / 3.0.3 users). RTX 40/50: after updating, click Sync Kernels once (or run one Update) to land on the stable cu130.post6 wheel. RTX 30/20/older: no action needed (swap only fires on RTX 40/50 + torch ≥ 2.10).

Full write-up: CHANGELOG-v3.0.4.md

Wan2GP Desktop Launcher v3.0.3

Choose a tag to compare

@GKartist75 GKartist75 released this 21 Aug 16:24

v3.0.3 — SageAttention swap hotfix (RTX 40/50)

Critical fix for the v3.0.2 SageAttention swap, which made Sync Kernels fail on RTX 40/50. Version bumped to 3.0.3 so the auto-updater offers it to everyone still on the broken 3.0.2 (a same-version re-upload would not trigger an update).

🐞 What was broken

  • undefinedsageattention-…whl — the wheel-URL prefix SAGE_CU128_BASE was defined but not exported from services/kernel-resolver.js, so the URL was built as undefined + filename. (fixed: added to module.exports)
  • pip-rejected wheel — the swap target was a Python-3.10-only wheel (cp310-cp310), but the launcher provisions Python 3.11.14, so pip refused it. (fixed: now cu128torch2.8.0-cp311-cp311, verified downloadable — HTTP 200)

✅ Result

RTX 40/50 users who update to 3.0.3 and click Sync Kernels (or run one Update) get the stable, fp8-safe SageAttention2++ build — full speed, no CUDA-context corruption / false OOM / black H3.

Notes

  • RTX 30/20/older: no action needed (different, safe kernel paths; the swap only fires on RTX 40/50 + torch ≥ 2.10).
  • The RTX 3080 accelerate/z-image fix, install progress heartbeat, and SAGE banner are unchanged and already correct.
  • Unsigned build (SignPath token not configured) — the "unknown publisher" warning is expected.

Full write-up: CHANGELOG-v3.0.3.md

Wan2GP Desktop Launcher v3.0.2

Choose a tag to compare

@GKartist75 GKartist75 released this 21 Aug 15:45

v3.0.2 — SageAttention RTX 40/50 fix, RTX 3080 accelerate fix, install progress

🐞 RTX 40/50: SageAttention cu130torch2.9.0andhigher wheel corrupts the CUDA context

Under torch 2.10 on sm89/sm120 (RTX 40/50), its fp8 PV CUDA kernel caused false out-of-memory errors, GPU hangs, and black MiniMax H3 frames. setSageAttentionSafe() now swaps it for the stable cu128torch2.8.0-cp311-cp311 build (the cu128 fp8-safe SageAttention2++, Python 3.11) on install / update / Kernel sync — full speed preserved, no downgrade to flash. A red SAGE banner tells affected users to click Sync Kernels (one click). Note: the swap only fires on RTX 40/50 + torch ≥ 2.10; RTX 30/20 stay on their correct, safe kernel paths.

🐞 RTX 3080 / all GPUs: missing accelerate skipped the z-image VAE fix

[bootstrap] z-image VAE dtype fix skipped: ModuleNotFoundError("No module named 'accelerate'"). The bootstrap is now deferred so a missing accelerate can't abort it, and ensureAccelerate() installs it when absent.

✨ Installer progress is now visible

A 15s activity heartbeat keeps the console alive during silent setup.py stretches, so the installer never looks frozen.

Verification

  • npm test → 118 pass. node --check on all sources OK.
  • Confirmed in a real RTX 3080 install: z-image VAE dtype fix deferred, accelerate: present — ok., GGUF 1.0.8→1.0.11, Installation complete!.
  • SageAttention swap verified against the live cu128 cp311 wheel (HTTP 200).

Upgrade

Install v3.0.2. RTX 40/50 users: click Sync Kernels once (or run one Update). RTX 30/20/older: no action needed (different, safe kernel paths).

Full write-up: CHANGELOG-v3.0.2.md

Wan2GP Desktop Launcher v3.0.1 — legacy launch fix + safe migration

Choose a tag to compare

@GKartist75 GKartist75 released this 20 Aug 16:55
f32a635

Wan2GP Desktop Launcher v3.0.1

Bug-fix release — fixes the v3.0.0 launch failure for users coming from an old
roaming AppData install, and makes migration + updates safe and opt-in.

🐞 What was broken (v3.0.0)

Some users upgrading from an older install whose data lived in the roaming AppData
profile (%APPDATA%\wan2gp-desktop) reported that v3.0.0 showed no window at
all
— only deleting Roaming\wan2gp-desktop and reinstalling helped.

Root cause: v3.0.0 ran the data-dir migration synchronously, before the first
window paint
. On a roaming-source install that move could stall (AV scanning a
large AppData tree, locked files handled late), blocking the pre-paint path so the
renderer never got its first frame. Removing the roaming folder fixed it because the
migration became a no-op.

✅ What's fixed (v3.0.1)

  • Migration is now deferred + opt-in. The app starts first, then offers a
    "Migrate to new location" dialog (startup prompt, dashboard MODELS banner,
    or Manage). Legacy roaming users always get a window now.
  • You choose where data goes. The dialog lets you pick the data dir,
    checkpoints, LoRAs, and outputs — preferred defaults pre-filled
    (C:\Wan2GP + C:\Wan2GP-Models), all editable. Nothing is hard-coded.
  • Clean move. Flattens the repo (no C:\Wan2GP\Wan2GP doubling), rewrites
    wgp_config.json model paths to the chosen locations, removes the now-empty
    roaming wrapper. Locked files are skipped, not fatal.
  • Progress feedback. Live progress bar on the slow copy-fallback path (big
    model folders never look frozen).
  • Auto-update is now manual-only. The Manage toggle is renamed
    "Check for updates on launch" and defaults OFF. autoDownload and
    autoInstallOnAppQuit are forced off in code, so closing the app never
    installs an update
    — only the explicit Check for updates → Download → Install
    & Restart
    flow does.

📦 Per-hardware GPU kernel wheels (auto-installed, same set as v3.0.0)

The installer detects your GPU and pulls the exact wheels it needs, re-synced on
every update. v3.0.1 pins:

Wheel Version
Python (uv) 3.11.14 (RTX 20–50) / 3.10.9 (GTX 10)
PyTorch + CUDA 2.10.0 + CUDA 13.0
Triton latest (~3.7.1)
SageAttention 1.0.6 (RTX 20) / 2.2.0 (RTX 30–50)
Sparge Attention 0.1.0
Flash-Attention 2.8.3
Nunchaku 1.2.1
GGUF llama.cpp CUDA 1.0.11
Lightx2v 0.0.2 (RTX 50 FP4 only)
bitsandbytes 0.49.2 (NF4)

RTX 20 → Sage 1.0.6 + Flash + Nunchaku + GGUF. RTX 30/40 → add Sparge + Sage 2.2.0.
RTX 50 → add Lightx2v. GTX 10/16 stay on the legacy CUDA 12.8 stack.

🔄 How to upgrade

  • From v3.0.0: install v3.0.1 over it. No automatic data move — use the in-app
    Migrate to new location if you still keep models in AppData.
  • From an old roaming install (the v3.0.0-stuck case): install v3.0.1. It now
    opens normally; then run Migrate to new location (or uninstall → close →
    delete Roaming\wan2gp-desktop → reinstall).

⚠️ Notes

  • Unsigned installer — the "unknown publisher" warning is normal for open-source
    software without a code-signing certificate. Local builds are unsigned; signing
    only happens on CI with the SignPath secrets.
  • Full change log: CHANGELOG-v3.0.1.md

Credits

  • DeepBeepMeep — creator of Wan2GP.
  • Tophness / Steve Jabz — original Wan2GP install scripts the launcher's
    pipeline is built on.
  • All Wan2GP Desktop Launcher users — thank you for the bug reports that
    surfaced the v3.0.0 launch failure.

v3.0.0 — self-contained install layout (C:\Wan2GP + C:\Wan2GP-Models)

Choose a tag to compare

@GKartist75 GKartist75 released this 20 Aug 13:36

Wan2GP Desktop Launcher v3.0.0

📁 BREAKING: install folders moved

Wan2GP now installs to a dedicated C:\Wan2GP (repo + venv + config) and keeps
model checkpoints/LoRAs on a separate C:\Wan2GP-Models (ckpts = C:\Wan2GP-Models\ckpts)
— out of roaming AppData for good. This kills the old Wan2GP\Wan2GP doubling and keeps
tens–hundreds of GB of models off your roaming profile.

How to upgrade: uninstall (keep/delete old models) → close launcher → run the new .exe
→ point models at C:\Wan2GP-Models\ckpts. (In-place update also works — it auto-migrates
your old AppData data into C:\Wan2GP on first launch, rollback-safe.)

⚙️ Latest GPU kernels — installed per hardware (v3.0.0 versions)

The installer reads Wan2GP's setup_config.json, shows exactly what it will install, and
re-syncs these on every update:

Wheel Version (v3.0.0)
Python (uv) 3.11.14 (RTX 20–50) / 3.10.9 (GTX 10)
PyTorch + CUDA 2.10.0 + CUDA 13.0
Triton latest (3.7.1 on this build)
SageAttention 1.0.6 (RTX 20) / 2.2.0 (RTX 30–50)
Sparge Attention 0.1.0
Flash-Attention 2.8.3
Nunchaku 1.2.1
GGUF llama.cpp CUDA 1.0.11
Lightx2v (FP4) 0.0.2 — RTX 50xx / sm120+ only
bitsandbytes (NF4) 0.49.2

Per-hardware set: RTX 20 → Sage 1.0.6 + Flash 2.8.3 + Nunchaku + GGUF 1.0.11 · RTX 30/40 →
add Sparge 0.1.0 + Sage 2.2.0 · RTX 50 → add Lightx2v 0.0.2. All profiles also get bitsandbytes 0.49.2.

What's new in v3.0.0

  • Self-contained default data dir C:\Wan2GP (AppData fallback only when C:\ not writable) + one-time migration.
  • Separate C:\Wan2GP-Models\ckpts (loras/outputs); legacy repo-relative model paths upgraded.
  • EPERM-on-reinstall fixed — clone uses temp dir + mergeDir(), never renames the live data dir.
  • 3-layer warnings (install note, model-folder ⚠, dashboard MODELS banner).
  • README + infographic document the GPU kernel wheels (with versions) and map the 1-click installer to Wan2GP's manual INSTALLATION.md.
  • Credits: DeepBeepMeep (Wan2GP), Tophness / Steve Jabz (original install scripts), and all users.

Also included (from 2.6 – 2.8.7, none regressed)

  • No more black/blank screen — nested-.screen DOM regression fixed (2.8.7), GPU-compositor override (2.8.2/2.8.3), update-app.asar blank (2.8.5).
  • Cleaner HTML structure (#installer/#dashboard siblings under #app, .screen{position:absolute;inset:0}).
  • GPU kernel-wheel sync (GGUF/Nunchaku/Flash/Sage/Sparge/bitsandbytes) on every install/update.
  • Clean Desktop ↔ Dashboard switching — embedded view no longer reloads on restore, so in-page input is never dropped.

⚠️ Unsigned build (SignPath token not configured). Windows SmartScreen may warn on first run — that's expected.

v2.8.8 — fix #56 (no auto-reload on window focus)

Choose a tag to compare

@GKartist75 GKartist75 released this 19 Aug 19:25
6f06d59

v2.8.8 — fix #56 (no auto-reload on window focus)

Resolves issue #56: the embedded Wan2GP view is no longer reloaded when the
launcher window is restored after being hidden/covered/minimized while a
generation was running. That reload discarded all in-page input (prompt,
reference media, settings).

The v2.8.0 backgroundThrottling:false fix already keeps the queue panel live
while hidden, so the re-sync was redundant — only its data-loss downside
remained. The crash-watchdog reload is retained (fires only on an actual
renderer crash, where there is nothing to lose).

Verification

  • node --check main.js / preload.js → OK
  • npm run test → 82/82 pass
  • Built Wan2GP-Desktop-Launcher-2.8.8-win-x64.exe (unsigned — no SignPath token in local build)
  • User confirmed: window no longer reloads on focus after generation, inputs preserved.

Note: the published artifact is unsigned. Code signing (SignPath) is applied
automatically on CI releases where the SIGNPATH_* secrets are configured.