* fix(snapshot): boot drift check no longer false-positives on unsaved edits (#276) The #161 boot-time drift guard flagged any canonical difference between the tracked snapshot file and the live /userdata+picks state — which is also what ordinary "kept working after the last named save" looks like, so nearly every session booted into a false "drifted" warning and periodic autosaves were misrouted to _unsaved_autosave/. detectBootDrift() is now three-way: a mismatch counts as drift only when the live state's fingerprint also matches the persisted last-named-save baseline (it claims to be saved, yet the file disagrees — pinning the out-of-band change to the file side). Otherwise it reports the honest "unsaved". First-session baseline seeding in koolook_sidebar.js moved after the drift check so a freshly seeded baseline can't fabricate the claims-saved condition. Tests: two new cases (unsaved-edits, no-baseline); drift-expecting cases now establish the claims-saved baseline; the states-match and canonicalization tests baseline first and assert reason is absent so they pin the match branch rather than the new early exit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(snapshot): gate first-session baseline seeding on a proven boot check (#276) Review follow-up. Ordering the drift check before the seeding was not enough: seeding still ran whenever the fingerprint key was absent, so a session whose tracked-preset name outlived its baseline (upgrade from before the key existed, or a persist that lost to localStorage quota) baselined whatever the live state happened to be. That both showed "saved" for state never saved to the named file and handed the NEXT boot a live state claiming saved against a file it never matched — a fresh false "drifted", i.e. #276 re-opened from the other side. Seeding is now gated on bootCheckProvedAligned(), a pure predicate exported from snapshot.js (the entry point imports ComfyUI's app.js and can't be loaded headlessly — same split as extension_guard.js's claimSidebarRegistration). Only a boot check that reached the fingerprint comparison and matched authorizes seeding; null and reason-carrying outcomes prove nothing. Also: branch the !claimsSaved log so the no-baseline case stops claiming "unsaved edits since the last named save" when there is no such save, and refresh the _autosaveSubdir redirect rationale, which still framed the live state as the corrupt side. Tests: predicate truth table, an end-to-end blocking case carrying a counterfactual leg that proves the gate is load-bearing (ungated seeding does flag drift on the next boot), and the allow case. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
ComfyUI-Koolook
Kforge Labs for ComfyUI: a project-kit sidebar plus Koolook nodes for VFX, image, and video workflows.
Start here: KForge Labs ComfyUI-Koolook overview
That overview explains the sidebar, snapshots, saved workflows, modules, recovery tools, and included nodes for new users.
The main experience is the Kforge Labs sidebar. It helps you keep a project setup together: favorite nodes, saved workflows, reusable modules, tags, snapshots, and recovery tools.
Kforge Labs Sidebar
Use the sidebar as a reusable project kit.
| Feature | What it does |
|---|---|
| Snapshots | Save and load the whole Kforge Labs state: favorite nodes, workflows, modules, tags, archive, and recovery data. |
| Search | Find nodes, workflows, directories, and tags from one field. Tags keep exact capitalization, so Depth and depth can be separate folders. |
| Nodes | Keep favorite nodes close, grouped by theme or repository name. |
| Workflows | Save the whole script, save a selection of nodes, load workflows, or insert saved modules into the current canvas. |
| Recovery | Use autosaves, starter presets, snapshot library settings, and missing-pack install helpers. |
New here? Start with the KForge overview. Using it inside ComfyUI? Open the operational guide:
- Browse on the web: malkuthro.github.io/ComfyUI-Koolook/web/guide/
- Inside ComfyUI: Kforge Labs sidebar → Tools row → Help (
Hicon). The in-app button opens the bundled offline copy atweb/guide/index.html.
Included Nodes
| Node ID | Display name | Category |
|---|---|---|
EasyWan22Prompt |
Wan 2.2 Easy Prompt (Koolook) | Koolook/Wan_Video |
EasyResize_Koolook |
Easy Resize (Koolook) | Koolook/Image |
EasyAIPipeline |
Easy AI Pipeline (Koolook) | Koolook/Pipeline |
easy_ImageBatch |
Easy Image Batch (Koolook) | Koolook/Image |
KoolookLoadCameraPosesAbsolute |
Koolook Load Camera Poses (Absolute Path) | Koolook/Camera |
Easy_hdr_VAE_encode |
Easy HDR VAE Encode (Koolook) | Koolook/VAE |
Easy_hdr_VAE_decode |
Easy HDR VAE Decode (Koolook) | Koolook/VAE |
Easy_Pattern |
Easy Pattern (Koolook) | Koolook/Testing |
Easy_LoadVideo |
Easy Load Video (Koolook) | Koolook/Video |
Easy_VideoCombine |
Easy Video Combine (Koolook) | Koolook/Video |
Easy_Utility |
Easy Utility (Koolook) | Koolook/Utility |
Koolook_LoopStatus |
Koolook Loop Status | Koolook/Loop |
Koolook_PublishInput |
Koolook Publish Input | Koolook/Publish |
Koolook_PublishOutput |
Koolook Publish Output | Koolook/Publish |
Koolook_PublishRouter |
Koolook Publish Router | Koolook/Publish |
Koolook_PublishResult |
Koolook Publish Result | Koolook/Publish |
LTXDirector__koolook |
LTX Director (Koolook) | Koolook/PromptRelay |
The root Koolook nodes and the slim Radiance Koolook VAE wrappers have no
extra Python dependencies beyond torch, which ComfyUI already requires.
The video wrappers require Video Helper Suite, and the LTX Director fork is
for workflows that already use the LTX / Prompt Relay node ecosystem.
The Koolook Matte nodes additionally need diffusers (already pulled in by the
LTX Director / Radiance forks) and use huggingface_hub to download the SVD +
VideoMaMa model weights at runtime.
Install
ComfyUI-Manager
- Open ComfyUI Manager.
- Choose Install Custom Nodes.
- Install by Git URL:
https://github.com/malkuthro/ComfyUI-Koolook.git - Restart ComfyUI.
- Open the Kforge Labs sidebar tab.
Manual
Clone this repository into ComfyUI/custom_nodes/:
git clone https://github.com/malkuthro/ComfyUI-Koolook.git
Restart ComfyUI after installation.
One install at a time. If you already installed Kforge Labs via ComfyUI Manager, it lives at
custom_nodes/koolook/(the Manager / Registry-derived folder name). A secondcustom_nodes/ComfyUI-Koolook/created bygit cloneis a parallel install — ComfyUI loads BOTH on every boot, both register the same routes and sidebar tab, and the workflow store silently corrupts on every restart. From v0.3.8 the plugin detects this and prints a critical log naming both paths, disabling the non-winning copy — but the cleanest fix is to remove one folder. Pick the install method you want and stick with it.
Learn More
- Public overview: kforgelabs.com/comfyui-projects/comfyui-koolook/
- In-app visual guide: malkuthro.github.io/ComfyUI-Koolook/web/guide/
(offline copy:
web/guide/index.html) - Support / bug reports:
SUPPORT.md - User guide:
docs/user_guide/ - Change history:
CHANGELOG.md - Maintainer docs:
docs/maintainers/ - Fork attribution and provenance:
forks/THIRD_PARTY.md - Versioning reference:
docs/reference/versioning.md
Troubleshooting
| What you see | What it usually means | What to do |
|---|---|---|
| The Kforge Labs tab does not appear | ComfyUI needs a restart, or the extension did not load | Restart ComfyUI and check the terminal for [Koolook] messages. |
| The Help guide does not open | The browser blocked the popup | Allow popups for the ComfyUI page, or open web/guide/index.html directly. |
| Missing custom nodes after loading a workflow | One or more node packs used by that workflow are not installed | In Kforge Labs, use Tools → Install missing packs, or use ComfyUI Manager's Install Missing Custom Nodes flow. |
| Snapshot save/load fails | The snapshot library path may be missing, read-only, or unavailable | Use Snapshot → Save to... or Load from... and choose a writable folder. |
| A loaded snapshot looks older than expected | Named saves and auto-saves are intentionally separate | In Snapshot → Load, select the snapshot and check Recovery auto-saves for a newer periodic/pre-load recovery. |
Support
For reproducible bugs, open a
GitHub issue.
For the fastest answer, include your ComfyUI version, Koolook version,
operating system, install method, terminal log, browser console errors, and
steps to reproduce. See SUPPORT.md for the exact checklist.
If Koolook helps your ComfyUI work, you can support development on Ko-fi.
Stability
For production work, install a pinned release tag or commit instead of following a moving branch head. Node IDs are treated carefully so saved ComfyUI workflows continue to load across compatible updates.
License
GPL-3.0. See LICENSE.
This package incorporates and adapts GPL-3.0 code from
fxtdstudios/radiance under
forks/radiance_koolook/. Attribution and per-fork modification notes are
tracked in forks/THIRD_PARTY.md and
forks/forks_manifest.yaml.