| # GitHub Copilot β repo orientation |
|
|
| Thin pointer. The canonical agent context lives in [`CLAUDE.md`](../CLAUDE.md) |
| at the repo root β read that first for source-of-truth conventions, dev-sync |
| rules, release rules, fork policy, and trigger phrases. This file only carries |
| the high-stability orientation that helps Copilot place a request before it |
| follows links. |
|
|
| ## What this repo is |
|
|
| ComfyUI-Koolook is a custom-node pack for ComfyUI. Two shipped surfaces: |
|
|
| 1. **Kforge Labs sidebar** β the main user-facing experience. A ComfyUI |
| sidebar tab that saves favorite nodes, workflows (with subdirectories + |
| archive + tags + reusable modules), and full-state snapshots to a |
| configurable on-disk library. |
| - Front-end entry: [`web/koolook_sidebar.js`](../web/koolook_sidebar.js); |
| module bodies under [`web/sidebar/`](../web/sidebar/). |
| - Back-end snapshot/preset routes: [`koolook_routes.py`](../koolook_routes.py) |
| (registers `/koolook/presets/*` aiohttp routes on ComfyUI's PromptServer). |
| - Bundled visual onboarding guide: [`web/guide/index.html`](../web/guide/index.html) |
| (also opened in-app via the sidebar's Tools-row Help button). |
| |
| 2. **Koolook custom nodes** β Python node classes at the repo root, each |
| exposing the standard ComfyUI node contract (`INPUT_TYPES`, `RETURN_TYPES`, |
| `RETURN_NAMES`, `FUNCTION`, `CATEGORY`): |
| - [`k_easy_wan22_prompt.py`](../k_easy_wan22_prompt.py) β `EasyWan22Prompt` |
| (reads [`config.json`](../config.json) at import time β edits to |
| `config.json` need a ComfyUI restart). |
| - [`k_easy_resize.py`](../k_easy_resize.py) β `EasyResize_Koolook` |
| (deprecated alias `EasyResize` still registered for back-compat). |
| - [`k_ai_pipeline.py`](../k_ai_pipeline.py) β `EasyAIPipeline` (paired |
| with front-end widgets in [`web/ai_pipeline.js`](../web/ai_pipeline.js)). |
| - [`k_easy_image_batch.py`](../k_easy_image_batch.py) β `easy_ImageBatch`. |
| - [`k_easy_track.py`](../k_easy_track.py) β `KoolookLoadCameraPosesAbsolute`. |
| - [`k_video_combine.py`](../k_video_combine.py) β `Easy_VideoCombine` |
| (runtime subclass of VHS `VideoCombine`; self-skips if VHS not installed). |
| - Radiance VAE wrappers under |
| [`forks/radiance_koolook/versions/v2_3_3/`](../forks/radiance_koolook/versions/v2_3_3/) |
| β `Easy_hdr_VAE_encode`, `Easy_hdr_VAE_decode`. |
| |
| [`__init__.py`](../__init__.py) imports each module's `NODE_CLASS_MAPPINGS` / |
| `NODE_DISPLAY_NAME_MAPPINGS` and exposes the merged set plus `WEB_DIRECTORY`. |
|
|
| ## Things that bite if you don't know them |
|
|
| - **Backward compatibility is opt-in for Koolook-created nodes only** (the root |
| `k_*.py` custom nodes). For those, make the cleanest change by default β |
| rename/drop/reorder IDs, inputs, and outputs freely, no aliases or `_v2` |
| suffixes β unless the maintainer says `check backward compatibility`. |
| **Fork nodes are different: anything under `forks/` keeps full back-compat |
| discipline by default** (never rename a fork ID in saved workflows, version |
| via new suffix/namespace, keep the `__koolook_vX_Y_Z` collision suffix). See |
| [`docs/maintainers/node-versioning.md`](../docs/maintainers/node-versioning.md) |
| and [`CLAUDE.md`](../CLAUDE.md) β *Change management*. |
| - **Third-party code stays out of MAIN.** Modified fork code lives under |
| `forks/<name>/versions/<vX_Y_Z>/`; raw upstream checkouts live in |
| `../ComfyUI-Forks/`. See [`forks/README.md`](../forks/README.md) and |
| [`forks/THIRD_PARTY.md`](../forks/THIRD_PARTY.md). |
| - **`dev-sync` is user-triggered only.** Never run it automatically (e.g. |
| after a commit, after a merge, on session end). The maintainer runs |
| parallel worktrees and an unsolicited sync overwrites whatever they're |
| reviewing in their live ComfyUI. Wait for the explicit phrase. Full rules |
| in [`CLAUDE.md`](../CLAUDE.md). |
| - **UI work needs visual QA.** See [`AGENTS.md`](../AGENTS.md) β open the |
| changed page in a browser, take a screenshot, verify before claiming done. |
| - **Three independent version axes** (pack version / fork wrapper version / |
| upstream pinned commit) β see [`docs/reference/versioning.md`](../docs/reference/versioning.md) |
| before any version bump. |
|
|
| ## Where to look next |
|
|
| - [`CLAUDE.md`](../CLAUDE.md) β full project conventions and protocols |
| - [`docs/maintainers/`](../docs/maintainers/) β release procedure, dev-sync |
| loop, registry API, sidebar starter preset, workflows-sidebar reference |
| - [`docs/reference/`](../docs/reference/) β glossary, versioning model |
| - [`docs/user_guide/`](../docs/user_guide/) β per-node end-user docs |
| - [`README.md`](../README.md) β public landing page + install |
| - [`CHANGELOG.md`](../CHANGELOG.md) β what changed, in detail |
|
|