MinusZone - CustomizeInstruct
Replace the pack's built-in prompt brain with your own instructions
- customize_instruct
Every text-encode node in ComfyUI-Prompt-MZ has a built-in idea of what a "beautified prompt" should look like: a structured JSON with style words, subject words, lighting, environment, and a long prompt. MZ_CustomizeInstruct is the escape hatch. Plug it into the customize_instruct input and the LLM stops following the pack's hardcoded schema and follows your system prompt and instruction instead.
That's the whole value of the node: the default behavior is opinionated, and this is how you bend it. Want tag-style Danbooru output instead of natural language? Want the prompt in Chinese? Want the model to role-play as a specific kind of captioner for your LoRA dataset? You can do all of that here without touching the pack's Python.
The two inputs that do everything
system- the system prompt. It's pre-filled with the pack'sLong_promptdefault: "Long prompt version should consist of 3 to 5 sentences... DO NOT generate sentences that describe any atmosphere!!! The language of reply is English only!!!" Replace it with whatever framing you want the LLM to follow.instruct- the user instruction. This one is special: it supports the%text%placeholder. Whatever you type into the main node'stextfield gets substituted in, so you can write things likeTurn this into a negative prompt: %text%orDescribe %text% using only Danbooru tags.
Both are multiline strings. Leave instruct empty and the LLM just gets your system prompt plus the idea.
How it changes the pipeline
When a customize_instruct object is connected, the encode node skips the JSON-schema interrogator entirely and falls back to a plain free-form generation with your system prompt and instruction. That's worth knowing: you lose the structured keyword-group formatting (the (...) weight wrapping) unless you ask for it yourself, and you take on the responsibility of making the output prompt-shaped.
The single output is a customize_instruct object. Wire it into the customize_instruct input of CLIPTextEncode(LLamaCPP Universal), CLIPTextEncode(OpenAIApi), the image interrogators, or the deprecated v1 encode nodes.
Installing
Ships with the pack - ComfyUI Manager, search "ComfyUI-Prompt-MZ", or:
cd ComfyUI/custom_nodes
git clone https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ
Then restart. No models of its own; it only changes how the LLM nodes prompt the model you already have.
Common gotchas
The biggest one is forgetting %text%. If your instruct doesn't include it, the node substitutes nothing and the LLM gets an instruction with your idea missing - it'll generate some generic prompt that has nothing to do with your text. Keep the placeholder in.
Second: the default system prompt is very SD-1.5-era quality talk ("high quality", "masterpiece" style language and the "no atmosphere" rule). If your checkpoint uses an LLM text encoder, that vocabulary is mostly inert, so your custom system prompt is genuinely the better path - see the KB's prompt-engineering notes on how the 2026 encoder swap made masterpiece, best quality useless on those models. This node is where you write the new-era instructions instead.
And since the LLM output goes straight into CLIP encoding when clip is wired, garbage in = garbage conditioning. Test your instruction once with format off so you can see what the LLM actually produced before you trust it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| system | STRING | Long prompt version should consist of 3 to 5 sentences. Long prompt version must sepcify the color, shape, texture or spatial relation of the included objects. DO NOT generate sentences that describe any atmosphere!!! The language of reply is English only!!! | — |
| instruct | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| customize_instruct | CustomizeInstruct | — |