Glossary
Short, plain-English definitions for this repo workflow.
Root __init__.py
- The ComfyUI entry file for this plugin.
- Its job is to import node mappings and expose
NODE_CLASS_MAPPINGS/NODE_DISPLAY_NAME_MAPPINGS. - Keep it clean and focused on loading nodes.
Main Repo
- This repository:
ComfyUI-Koolook. - Stores Koolook-owned code, docs, and lightweight integration wrappers.
- Should not store full external third-party repositories.
External Forks
- Raw upstream/fork reference repos kept outside MAIN.
- Default location is a sibling folder:
../ComfyUI-Forks. - Each external repo should be pinned to a version/tag + exact commit.
Wrapper
- A small adapter module in
forks/that loads locally tracked modified nodes and namespaces node IDs. - Purpose: avoid collisions and keep external logic separate from root loader.
- For Radiance, the package entrypoint is
forks/radiance_koolook/__init__.py.
Version Folder
- A folder under
forks/radiance_koolook/versions/that stores one maintained codebase snapshot (example:v1_0_1). - Keep upstream parity metadata in
UPSTREAM_PIN.yamlinside each version folder.
Namespace Suffix
- A suffix added to internal node IDs (example:
__koolook_v1_0_1). - Prevents collisions between versions (v1, v2, upstream, etc.).
- Protects old workflows from breaking.
forks/forks_manifest.yaml
- Machine-readable tracker for external dependencies.
- Contains source repo, source ref, pinned commit, and external relative path.
- This is the source of truth for reproducible setup on new machines.
forks/THIRD_PARTY.md
- Human-readable attribution and notes.
- Explains what was modified and why.
Portable Paths
- Prefer relative paths so setup works on Windows/macOS/Linux.
- Keep external references under
../ComfyUI-Forksfor portable machine setup.
Pinned Commit
- The exact git commit hash you lock to for reproducibility.
- Use this when moving to another computer so behavior matches exactly.
Sibling Project
- A related repository or folder that lives outside MAIN and is consulted (read-only) but never imported by MAIN at runtime.
- Examples: external forks root, ComfyUI knowledge database, personal knowledge database.
- Always referenced by env var (e.g.
KOLOOK_COMFYUI_KB_DIR) — never by absolute path in committed files. - Real paths live in
.env(gitignored). The committed.env.exampledeclares the variable names. - Treated as runtime-optional: if the env var is unset and there is no portable default, the sibling is considered unavailable.
.env / .env.example
.env.example(committed) — public template listing the env var names with safe placeholder values..env(gitignored) — each user's local file with real machine-specific paths.- Pattern matches the existing
KOLOOK_FORKS_DIRconvention.
EasyUse GET/SET Virtual Tunnel
- A pair of frontend-only EasyUse utility nodes:
easy setNodestores a named value source andeasy getNodeexposes that value elsewhere in the graph by key. - Render-time ComfyUI execution resolves the tunnel, but a browser-side
preview button that simply reads the GET node widget will see only the key
name (for example
OUT-folder) rather than the actual upstream value. - Preview code must follow
easy getNode-> matchingeasy setNode-> set input link -> source widget value to match render-time behavior. - Debug by reading the installed EasyUse frontend source
(
comfyui-easy-use/web_version/v1/js/getset.js) and simulating the relevant LiteGraph shape locally when the liveapp.graphobject is not exposed.
Automation module
- A self-contained AI-managed ComfyUI iteration task. Lives under
docs/automations/<grouping>/<task>/, with the grouping typically being the diffusion model (LTX-2.3/) and the task being a specific generation goal (base-1step/,audio-lipsync/). - Each module owns: a
README.md(loop entry + workflow contract), ahandoff-checklist.md(5-minute bootstrap), afindings.md(locked-in conclusions for that task), optionally abackstory/folder (the narrative that produced the module), optionally aruns/folder for in-repo run snapshots when the iteration touches code (not just widget values). - Modules are independent: own workflow JSON, own working folder, own
findings. The model grouping is only structural — it does not carry
shared docs unless duplication forces a future
_shared/extraction. - When a module needs to modify an upstream node's code, the modification
lives under
forks/<package>_koolook/per the fork pattern (see Wrapper and Version Folder above), and the module's README cross-references the fork.
Loop
- The save → render → feedback → snapshot cycle inside an automation module.
- Step 1: maintainer edits a knob in ComfyUI (or in a
forks/source file) and saves the workflow. - Step 2: maintainer queues the render.
- Step 3: maintainer reports the result in chat.
- Step 4: agent snapshots current state into the module's
runs/run-NNN_<label>/(when the module ships in-repo runs) or just appends to the working-folder_AI/iterations.md(when card-and-log is all that's needed). - Module-specific protocol lives at
<module>/runs/LOOP.mdfor the fork-touching modules; lighter modules document the loop inline in theirREADME.md.
Run
- One iteration of the loop.
- For modules that ship in-repo run snapshots, a
run-NNN_<short-knob-summary>_<short-result-tag>folder under<module>/runs/containing at minimum aworkflow.jsoncopy and anotes.md(maintainer feedback + agent interpretation). - For all modules, also a row in the per-project working-folder
_AI/iterations.mdlog (auto-rendered by/make-card).
Backstory
- The running narrative that produced an automation module — the
problem, the mechanism, the hypotheses considered, the rationale for
why the module exists. Lives at
<module>/backstory/<topic>.md. - Distinct from
findings.md(locked-in conclusions) andruns/log.md(rolling table of renders). The backstory is a reference for why and how it got here; findings are what's true now.
Working folder
- The outside-the-repo per-project folder pointed at by
KOLOOK_AUTOMATIONS_WORK_DIRin.env. Holds workflow JSON, rendered video, and the agent-managed_AI/subfolder withcard.png+ append-onlyiterations.md. - One working folder per project. Multiple automation modules can point at the same working folder if they share workflow files; more commonly, each module's iteration uses its own working folder.
Card
- A per-render tracking visual (PNG) rendered automatically at the end of a loop iteration. Travels alongside the rendered video into the NLE for side-by-side comparison.
- Each automation module ships its own card renderer in
scripts/ to highlight what matters for that
module's iteration:
make_card.py→ base-1step card (Phase 1 / Phase 2 / Base · model / Base · locked / Base · scene / Outcome). Writes to<working folder>/_AI/card.png.make_card_audio.py→ audio-lipsync card (KNOB STATE / FORK STATE / SAMPLER / BASE notes / OUTCOME, plus an INERT warning when the Director is upstream). Writes inside the module'sruns/run-NNN_<label>/card.png.
- Palette + font fallback chain is shared (see
scripts/make_card.pyandscripts/make_card_audio.py) so the two card families read as a set.
Loop config (per-module)
- A JSON file co-located with the module's loop script that holds the customisable settings — workflow filename pattern, ComfyUI workflows subpath, tracked multiline titles, fork dir to pin, whether to render a card. Underscore-prefixed keys are ignored by the loader (carry inline documentation).
- Convention:
<script-name>.config.jsonnext to the script. The audio-lipsync loop config lives at scripts/loop_audio.config.json. - Required keys (validated at script start):
job_name,module_path,comfyui_workflows_subpath,workflow_pattern,skip_filename_substring,tracked_multilines,fork_to_track,render_card. - Per-module operating instructions live in the module's
CHEATSHEET.md(e.g. docs/automations/LTX-2.3/audio-lipsync/CHEATSHEET.md).