f98633faedd5ccbc2a98d53dc72622fac61dfd78
11
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
27705be037 |
feat(sidebar): add onboarding guide (#107)
* feat(sidebar): add onboarding guide * docs(guide): clarify tag search casing * docs(guide): clarify workflow save copy * docs(guide): refine sidebar visuals * docs(guide): refresh save snapshot visual * docs(guide): refresh load snapshot visual * docs(guide): refresh module save visual * docs(guide): use real sidebar screenshot * docs(guide): render sidebar overview screenshot directly * docs(guide): soften sidebar overview annotations * docs(guide): clarify nodes action bar callout * docs(guide): clarify workflow action bar callout * docs(guide): simplify sidebar overview markers * docs(guide): align sidebar overview intro * docs(guide): use real snapshot recipe screenshots * docs(guide): simplify project workflow diagram * docs(guide): make function cards scannable * docs(guide): sketch module recipe icon focus * docs(guide): use real icon screenshot for module recipe * docs(guide): add cropped workflow action screenshot * docs(guide): use full toolbar screenshot for module recipe * docs(guide): use real search screenshot * docs(guide): use real node search screenshot * docs(guide): standardize screenshot recipe cards * docs(guide): tighten recipe callout styling * docs: require visual QA for UI work * docs(guide): address pass-2 review nits |
||
|
|
e95c12f6a9 |
docs(forks): finalize de-vendoring audit trail (closes #28) (#55)
* docs(forks): finalize de-vendoring audit trail (closes #28) The v0.1.4 / v0.1.5 release cycle untracked six vendored third-party trees from MAIN's git index (`git rm -r --cached`, then added to `.gitignore`), which fixed the Comfy Registry's static-scanner miscount (44 -> 8 nodes in ComfyUI-Manager) and shrank the published archive by ~3.7 MB. That part of issue #28 was already shipped. Issue #28's remaining acceptance criteria were the audit-trail bits: - list each removed tree in `forks/THIRD_PARTY.md` with upstream URL + license, and - record any modified files that were promoted into proper fork wrappers under `forks/<package>/versions/<vX_Y_Z>/`. This commit adds a "De-vendored upstream code (untracked in v0.1.4 / v0.1.5)" section to `forks/THIRD_PARTY.md` covering all six trees: - `upscaler_FIX/github_repos/ComfyUI-SuperUltimateVaceTools/` - `upscaler_FIX/github_repos/ComfyUI-multigpu/` - `upscaler_FIX/github_repos/debugg/` - `nuke_CAM_exporter/_Utils-CAM-track/Github-Repos/Comfyui-Animatedfiff-evolved/` - `nuke_CAM_exporter/_Utils-CAM-track/Github-Repos/Comfyui-kjnodes/` - `nuke_CAM_exporter/wrapper_FIX/` (kijai/ComfyUI-WanVideoWrapper) None of the six were promoted to tracked fork wrappers — the `wrapper_FIX/` work in particular was incomplete (token-count alignment fix between Wan 14B and FunCamera) and the upstream pin was never recorded, so it'll be redone from scratch against current upstream when needed. Pure docs change. No package code touched. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(forks): full #28 closure — add manifest entries + verbatim-paths note Addressing /review-pr findings on the previous commit b029570: HIGH (CONFIRMED): "Closes #28" was overstated against issue #28's literal acceptance criterion (2) — registering each removed tree in `forks/forks_manifest.yaml` with `source_repo`/`source_ref`/ `pinned_commit`/`local_paths`. The previous commit only delivered the THIRD_PARTY.md audit table (criterion (3)). This commit adds six `status: "removed"` entries to `forks/forks_manifest.yaml` (one per de-vendored tree) with: - `source_repo`: known upstream URL where determinable, "unknown" with vendor-time-no-pin caveat otherwise - `source_ref` / `pinned_commit: null`: honest about missing pins - `local_paths`: actual former paths (matches v0.1.0 git tree) - `removed_at: 2026-05-03`, `removed_in_release: "0.1.4 / 0.1.5"` - `license`: mirrors THIRD_PARTY.md ("unverified" / "GPL-3.0" / "n/a" / "assumed GPL-3.0" — last verified 2026-05-03 for kjnodes) - `notes`: cross-link back to THIRD_PARTY.md "De-vendored upstream code" section LOW (CONFIRMED but no-action): typo `Comfyui-Animatedfiff-evolved` and mixed `Comfyui-` / `ComfyUI-` casing on rows 114-115 of THIRD_PARTY.md. Verifier confirmed both reflect actual former on-disk folder names (via `git ls-tree v0.1.0`) and are intentional historical record. Added a one-paragraph preamble note above the table making this explicit so future readers don't try to "fix" the typo and break the audit trail. HIGH (DOWNGRADED to LOW by verifier): "License unverified shipped to PyPI / Comfy Registry" claim was a false-positive premise — verifier checked `gh run list --workflow=publish.yml` and found every push-to- main publish for v0.1.0/v0.1.1/v0.1.3 failed; the first successful Comfy Registry publish was the v0.1.4-prep dispatch on 2026-05-03, post-untrack. The residual concern (GitHub release source tarballs) is real but standard for any post-untrack project; preamble now states this explicitly so future readers don't mis-read "License unverified" as "shipped to users without a license check". Pure docs / metadata. No package code touched. Closes #28. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
f24838a6ce |
feat(vae): sequence dispatch + cinema color surface + alpha output (#42)
Combines two changes to Easy_hdr_VAE_encode/decode (Koolook v2.3.3 fork): 1. Rank-aware dispatch + 5D-output normalization. 5D video tensors paired with a 2D image VAE are iterated frame-by-frame on encode (stack on dim=2) and per-frame decoded on decode (cat on dim=0). 5D output from 3D-aware video VAEs (Wan 2.2, Hunyuan, CogVideoX, LTX — exposed via `vae.latent_dim == 3`) is reshaped (-1, H, W, C) to ComfyUI's standard IMAGE batch, mirroring stock VAEDecode at nodes.py:303-304. Fixes the "1056x41 count=1" symptom where 41-frame Wan 2.2 sequences collapsed to a single squashed image; SaveImage now writes one PNG per frame. 2. Cinema color surface ported from upstream Radiance v2.3.3 (without the broken 4K cosine-blend tile engine that motivated the slim fork in the first place). 12 source/target spaces including six cinema log curves (ARRI LogC3/LogC4, Sony S-Log3, Panasonic V-Log, DaVinci Intermediate, RED Log3G10) plus ACES 2065-1 and Rec.2020 Linear. Compress (Log) HDR mode pairs encode-side log-curve encoding with decode-side per-profile soft-shoulder + log-domain highlight denoise for HDR-clean roundtrips. New latent_sampling parameter (sample/mean/mode). Alpha now surfaces as a real third IMAGE return on encode (the previous flag was a no-op). Exposure is now applied in linear space for all non-Raw source spaces; Raw source still does a raw-domain multiplication so users who know what they are feeding the VAE keep their bytes intact. Helpers extracted to forks/radiance_koolook/versions/v2_3_3/color_helpers.py (log curves, soft-shoulder, log-denoise, sampling-mode helper, color matrices, dispatch tables) so nodes_vae.py stays focused on node wiring. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
1098c17f5a |
fix(vae): wrap Easy_hdr_VAE_encode output in LATENT dict (#39)
vae.encode() returns a raw torch.Tensor, but ComfyUI's LATENT type is
contractually `{"samples": tensor}`. The encoder was returning the bare
tensor, so wiring it into KSampler triggered:
IndexError: too many indices for tensor of dimension 5
at `latent_image = latent["samples"]` in common_ksampler. Python 3.11+
traceback markers point right at the subscript. With Wan 2.2's 5-D
(B, C, T, H, W) latent, the string-on-tensor index goes through PyTorch's
__getitem__ and surfaces as IndexError rather than TypeError.
Fix matches upstream ComfyUI's VAEEncode pattern:
return ({"samples": t}, )
The decoder side already destructures `samples["samples"]` correctly,
so it's unaffected.
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|
|
b7a17b570b |
chore(categories): split Koolook/VFX into Pipeline / Image / VAE + fix VAE display names (#38)
Three small UX fixes from the v0.1.7 post-release inspection:
1. Categories: the catch-all `Koolook/VFX` subfolder is replaced with
three more granular ones:
- Easy_Version, EasyAIPipeline -> Koolook/Pipeline
- easy_ImageBatch -> Koolook/Image (joins EasyResize)
- Easy_hdr_VAE_encode/decode -> Koolook/VAE
2. Easy_hdr_VAE_encode / Easy_hdr_VAE_decode display names: previously
the display equalled the node ID (`Easy_hdr_VAE_encode`) so the user
couldn't find them by typing `koolook` in the node-add search filter
— they were registered correctly but invisible to the filter. Now:
"Easy_hdr_VAE_encode" -> "Easy HDR VAE Encode (Koolook)"
"Easy_hdr_VAE_decode" -> "Easy HDR VAE Decode (Koolook)"
Matches the title-case " (Koolook)"-suffixed convention used by the
rest of the pack since v0.1.7.
3. README node tables + categories list updated to match.
Class IDs unchanged everywhere -- saved workflows that reference any of
these IDs continue to load and run unchanged. CATEGORY is purely a UI
hint and only affects the node-add menu hierarchy.
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|
|
f57ea38b71 |
feat(EasyResize): rename to EasyResize_Koolook + proper KJ Nodes attribution (#35)
Resolves the genuine `EasyResize` node-ID collision with `ComfyUI-EasyFilePaths` (orange-triangle warning #8 in ComfyUI-Manager). Both packs were registering the bare class name `EasyResize` — load order determined which one a user actually got. Changes: - k_easy_resize.py: - Add SPDX-License-Identifier: GPL-3.0-or-later header. - Add proper attribution block crediting kijai/ComfyUI-KJNodes (Resize Image V2, GPL-3.0) as the original interface inspiration, with a per-feature list of how the Koolook implementation materially extended the surface (aspect-ratio parser, keep_proportion modes, mask + composed outputs, device selection, target/original W/H reporting, color-panel passthrough). - Register both `EasyResize_Koolook` (canonical, new) AND `EasyResize` (deprecated alias) IDs pointing at the same class. Saved workflows using the legacy `EasyResize` ID continue to load and run; new workflows pick `EasyResize_Koolook` from the search and avoid the conflict. - Display name on legacy alias reads `Easy Resize (deprecated, use 'Easy Resize (Koolook)')` to nudge users to switch. - forks/THIRD_PARTY.md: full attribution entry for KJ Nodes (was missing — manifest had it as `license: "unknown"` / `sync_state: "needs-upstream-reference"`). License verified as GPL-3.0 against upstream `LICENSE` file (same as our pack — no relicense pressure). - forks/forks_manifest.yaml: KJ Nodes entry upgraded from `license: "unknown"` to `license: "GPL-3.0"` + `license_verified_at`, `status: "inspired_reimplementation"` (more accurate than `modified`), and the two exposed_node_ids are now recorded explicitly. - README.md: node table, category list, "Easy Resize" section, and Wan-related descriptions all updated to use the new canonical `EasyResize_Koolook` ID and display name. - pyproject.toml: 0.1.5 -> 0.1.6. - CHANGELOG.md: [0.1.6] entry covering the rename + attribution work. Follows the node-versioning rules from the `node-versioning` discussion in PR review: rename via alias, never break saved workflows, document the deprecation in CHANGELOG. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
60e90ec6c8 |
Release v0.1.5: registry hygiene + drop unused v1_0_1 Radiance fork (44 nodes → 8) (#34)
* chore: remove maintainer dev workspaces from git tracking + bump 0.1.4 ComfyUI-Manager was reporting "44 nodes / 13 conflicts" for this pack because the Comfy Registry's static scanner walks every `*.py` in the published archive and reads `NODE_CLASS_MAPPINGS` dicts — including the ones inside vendored third-party clones sitting in two folders that were never meant to be part of the package: upscaler_FIX/github_repos/ComfyUI-SuperUltimateVaceTools/ upscaler_FIX/github_repos/ComfyUI-multigpu/ nuke_CAM_exporter/wrapper_FIX/wrapper_fun_camera_*-code/ nuke_CAM_exporter/_Utils-CAM-track/Github-Repos/... These folders were the maintainer's local debugging / camera-tracking scratchpads, accidentally committed in Dec 2025 commits |
||
|
|
5881e8a808 |
Release v0.1.3: GPL-3.0 relicense, Easy_hdr_VAE_encode/decode (v2.3 fork), license/fork skills (#33)
* chore: relicense to GPL-3.0 and backfill upstream attribution ComfyUI-Koolook v0.1.0 and v0.1.1 shipped under a claimed MIT license while already incorporating GPL-3.0-derived code from fxtdstudios/radiance under forks/radiance_koolook/. GPL-3.0 §5(c) requires the entire combined work to be GPL-3.0 — relicensing the whole package is the simplest honest fix and aligns with the dominant license posture of the ComfyUI custom-node ecosystem. Changes: - Add full GPL-3.0 LICENSE text at repo root (pyproject.toml already referenced LICENSE but the file did not exist). - Update README.md "## License" section to declare GPL-3.0 and explain the §5(c) implication for downstream users. - Backfill forks/THIRD_PARTY.md with full attribution entries for the Radiance v1.0.1 baseline (already in the repo) and the upcoming Radiance v2.3.3 VAE subset (scaffolded in v0.1.2). - Update forks/forks_manifest.yaml: set the existing entry's license field to "GPL-3.0" (was "to_verify_at_source_ref"), add a license_verified_at field, and pre-register the v2.3.3 VAE entry with verified license metadata. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(skills): add license-pre-check + port add-external-fork to .claude/skills/ Two skills to prevent the v0.1.0/v0.1.1 license-incompatibility class of bug from happening again on future forks: - license-pre-check: blocking compatibility audit run BEFORE any code is copied or written based on upstream. Reads the upstream LICENSE, compares against ours via an SPDX matrix, refuses to proceed on incompatible combinations, and records the result for the manifest. - add-external-fork: ports the existing .cursor/skills/add-external-fork procedure to .claude/skills/ so Claude Code can run it directly. The port adds a mandatory Phase 0 ("run license-pre-check first") and expands Phase 3c to require GPL §5(a) modification headers on derived files. The .cursor/ copy is left in place for Cursor users; the two should be kept in sync manually until a unifying mechanism is adopted. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(forks): port v2.3 VAE Encode/Decode as slim video-friendly wrapper Adds forks/radiance_koolook/versions/v2_3_3/ — a slim re-implementation of RadianceVAEEncode / RadianceVAEDecode under the namespace suffix __koolook_v2_3_3. Mirrors the input surface of upstream's RadianceVAE4KEncode / RadianceVAE4KDecode (fxtdstudios/radiance v2.3.3, GPL-3.0) but deliberately skips the 4K cosine-blend tile engine. Why skip the tile engine: that pipeline errors with `size of tensor a (192) must match the size of tensor b (132) at non-singleton dimension 4` when chained into Wan 2.2 video workflows, because the tiler's spatial layout disagrees with the video VAE's internal temporal-aware encoding. Modern video VAEs (Wan 2.2, Hunyuan, CogVideoX, LTX) handle their own internal stitching, so the tiler is redundant and actively breaks the chain. What ships: - forks/radiance_koolook/versions/v2_3_3/nodes_vae.py — RadianceVAEEncode and RadianceVAEDecode classes (~330 lines), rank-agnostic, with a STRING `debug_info` second return that mirrors the pattern from v1's RadianceOCIOColorTransformV2. - forks/radiance_koolook/versions/v2_3_3/__init__.py — applies __koolook_v2_3_3 namespace suffix and " (Koolook v2.3.3)" display suffix, mirroring the v1_0_1 wrapper layout. - forks/radiance_koolook/versions/v2_3_3/UPSTREAM_PIN.yaml — pinned upstream commit f262f47 + license metadata. - forks/radiance_koolook/__init__.py — merges v1_0_1 + v2_3_3 mappings. - pyproject.toml — version bumped to 0.1.2. - CHANGELOG.md — full [0.1.2] entry covering the license relicense, the new v2_3_3 fork, the two new skills, and the carry-over RELEASING.md docs that landed on main since 0.1.1. Existing __koolook_v1_0_1 nodes are unchanged and remain available for backward compatibility with saved workflows. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(forks/v2_3_3): rename VAE nodes to Easy_hdr_VAE_encode/decode + bump 0.1.3 Per user direction, the new video-friendly VAE wrappers are now exposed under clean Koolook-style IDs and display names — no more `__koolook_v2_3_3` suffix in the ComfyUI node-add UI: - `Easy_hdr_VAE_encode` (was `RadianceVAEEncode__koolook_v2_3_3`) - `Easy_hdr_VAE_decode` (was `RadianceVAEDecode__koolook_v2_3_3`) Why: when both upstream Radiance v2.3.3 and our pack are installed, both expose `Radiance VAE Encode` in the search — the Koolook-suffixed display name still buried "Koolook" at the end of a long line, so users were likely to mis-pick. The new names lead with the Koolook brand and the Easy_* family convention used elsewhere in this pack (Easy_Version, EasyAIPipeline, EasyResize, etc.). Mechanism: new `SKIP_VERSION_SUFFIX = {...}` set in `versions/v2_3_3/__init__.py` opts specific IDs out of the auto-suffix. The version is still tracked structurally (file path) and textually (file header, UPSTREAM_PIN.yaml, forks/THIRD_PARTY.md). Future Koolook-original nodes in this fork can opt out the same way; ports of upstream-named classes still get the suffix by default for collision safety. 0.1.2 was test-published to the registry with the previous IDs but never tagged or formally released; bumping to 0.1.3 publishes the renamed version cleanly. Old 0.1.2 entry retained in CHANGELOG with a "superseded" note for transparency. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
c529a1f947 |
Prepare v0.1.0 release metadata and node naming.
Set project version to 0.1.0, align changelog entries for the new fork/versioning baseline, and include the compact OCIO node ID override for the v1_0_1 Radiance set. Made-with: Cursor |
||
|
|
52712f05b6 |
Align release references and define clean tagging policy.
Remove stale links to deleted docs, document forward tagging conventions for repo/fork/version namespaces, and keep release checklist aligned with current workflow. Made-with: Cursor |
||
|
|
7f8eda4809 |
Restructure fork tracking and versioned Radiance layout.
Consolidate fork metadata into forks/, move Radiance custom code into versioned folders, and align external reference naming so upgrades and cross-machine parity are easier to manage. Made-with: Cursor |