- STRING
The system prompt that doesn't live in a text box
Here's the scenario this node exists for. You've bolted a local LLM into your ComfyUI graph - Ollama running Qwen2.5VL, say - to enhance your prompts before they reach the sampler. That enhancement only works if the model gets a good system prompt, and good system prompts are long: vision analysis protocols, shot definitions, JSON output rules, consistency requirements. Pasting 1,500 words into a text widget is fine until you want to try a different template, or edit it, or share a workflow. ZenkaiENH turns that whole prompt into a dropdown.
It's one half of the DJZ-ENH-system pack (the other, ENH_JSON, parses the multi-prompt JSON your LLM returns). ZenkaiENH is the "in" side: it loads the instruction file, hands it to your LLM node, and the rest of the pipeline takes over.
How it works
Mechanically it's a glorified file reader, and that's the point. The node scans the pack's ENH-store/ folder for .md files, lists them in a dropdown, and when you pick one it reads the file (UTF-8) and outputs the full text as a single STRING. It auto-creates the folder if it's missing, and if the folder is empty it shows a "No .md files found" placeholder instead of erroring.
The clever bit is the change detection. The node implements IS_CHANGED by returning the selected file's modification time, which is the ComfyUI idiom for "re-run me when this file changes" (the engine's caching normally skips nodes whose inputs look unchanged - see the comfyui-node-plumbing KB doc). So you can edit a template mid-session and the next run picks it up without touching the graph. That's the "real-time file change detection" the README brags about, and it's real.
What you set, what you get
Just two things to know:
enh_file- the dropdown. Out of the box it lists 58 templates. The pack ships a genuinely eclectic set:t2iandi2iprompt enhancers,t2v/i2vvideo andt2aaudio templates, Wan-specific video prompts, a couple of "LoRA-aware" captioning prompts, and persona-stamped files (the TH0RR4 and 41RSH1P ones look like shared community builds).- Output
STRING- the full file contents. Wire it into your Ollama/API node's system-prompt input.
The one catch, grounded in how the source enumerates the files: the dropdown choices are baked when ComfyUI loads the node, so adding a new .md to ENH-store/ needs a restart. Editing an existing one does not.
Installing it
Standard two-step: in ComfyUI Manager search for DJZ-ENH-system, or
cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-ENH-system
then restart ComfyUI. The pack has zero dependencies - requirements.txt is empty and the code imports nothing but os. No models to download, no keys, no network calls. About the only thing it touches is the ENH-store/ folder it created inside the pack directory.
Common issues
- Dropdown says "No .md files found". The
ENH-store/folder is empty. Drop your.mdfiles in there and restart ComfyUI. - New template isn't in the list. Remember the restart rule - the file list is generated at load time, not per run. Editing an existing template, by contrast, takes effect on the next execution.
- Nothing comes out of it. If you got the string "Error: File '...' not found in ENH-store folder", the file got renamed or moved after the dropdown was built; restart to rescan.
- It's just a file reader - don't expect it to do the enhancing. The heavy lifting happens in the LLM node downstream. If your enhanced prompts are weak, the problem is your template (or your model), not ZenkaiENH.
One honest caveat on the whole pack: it's brand new, from an author with no community footprint - zero threads about it anywhere as of this writing. The code is small and read-only, so the risk is low, but treat its 58 templates as starting points, not gospel.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| enh_file | COMBO | 58 options: t2i-TH0RR4-ENH-4shot-v3.md, t2i-TH0RR4-ENH-gpt5baseB.md, t2i-41RSH1P-ENH-base.md, i2v_wan_momentsV2.md, t2i-ENH-VOLKYRI-V2.md, t2i-41RSH1P-ENH-closeup.md, +52 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |