Overloading filename_prefix for absolute paths means losing the
"just type a name" affordance — once you put the path there, there's
nowhere to specify just the file root. Across many renders into the
same project tree this becomes tedious: every iteration retypes the
whole path.
Adds an optional `output_directory` STRING input. When set:
- filename_prefix is treated as just the filename root; any path
components are stripped (so accidental typos like "sub/clip"
don't double-up under the directory).
- Absolute output_directory writes directly to that location.
- Relative output_directory joins under ComfyUI's output/.
When output_directory is empty, the original overloaded
filename_prefix behavior is preserved unchanged (back-compat for
the one-field flow).
Implementation:
- New pure helper `_compose_prefix(filename_prefix, output_directory)`
combines the two fields into one effective prefix. The existing
isabs discrimination then handles sandboxed vs absolute writes
uniformly downstream.
- 6 new tests cover all combinations: empty/abs/relative directory,
path stripping from filename_prefix, trailing-separator trim,
empty-name fallback.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ComfyUI-Koolook documentation
Three audience buckets — pick where to look based on what you're trying to do.
| If you want to … | Go to | One-line description |
|---|---|---|
| Use a node in your ComfyUI workflow | user_guide/ |
Per-node guides, screenshots, recipes |
| Look something up — a term, a node ID, a list | reference/ |
Glossary, node inventory, spec sheets |
| Cut a release / fork a node / debug CI / hit the Comfy Registry API | maintainers/ |
Releasing, Registry API, Node versioning rules |
| Compare UI design proposals before implementation | designs/ |
Focused mockups and screenshots for in-progress UX decisions |
Files that intentionally stay at the repo root
| File | Why it's not in docs/ |
|---|---|
../README.md |
GitHub repo home + Comfy Registry pulls description from here |
../LICENSE |
pyproject.toml references it; GitHub recognizes the license badge from this path only |
../CHANGELOG.md |
Changelog parsers and release tooling expect it at root |
../CLAUDE.md |
Claude Code reads project-level agent instructions from <repo>/CLAUDE.md |