Text Generate Qwen3.5 (System Prompt) (Legacy)
Run a Qwen3.5 chat inside your graph — braces and all
- clip
- image
- generated_text
An LLM inside a ComfyUI graph is a different animal from the LLM inside your checkpoint, and this node is firmly the former: a standalone text generator you wire in to write prompts, caption images, or do any text job before generation. TextGenerateQwen35SystemPrompt ("Text Generate Qwen3.5 (System Prompt) (Legacy)") is a Qwen3.5 chat helper with a system_message slot, an optional image input, and one generated_text string output - the kind of node that turns "enhance this prompt" from a manual chore into a graph connection.
It's part of silveroxides' UtilsCollection and, yes, the (Legacy) tag means it's a compatibility alias for the canonical UC_TextGenerateQwen35SystemPrompt. Same behavior, and the pack's own textgen family (UC_TextGenerate) is the fuller-featured sibling if you need more than Qwen3.5.
How it works
You feed it a clip - a Qwen3.5 model loaded as a CLIP, which is how ComfyUI exposes LLM text encoders - plus a prompt (the message to the model), an optional system_message, and an optional image if you want a VLM captioning job. max_length (default 512) caps the reply, and sampling_mode is a dynamic combo: set to off for greedy decoding, or on to expose temperature, top_k, top_p, min_p, repetition_penalty, seed, and presence_penalty. The thinking toggle includes the model's reasoning text in the output when available.
The implementation detail that makes this node safe rather than cursed: it builds the Qwen3.5 chat template by plain string concatenation, never .format(). That matters because most naive chat nodes break the moment your prompt contains a { - and prompts for diffusion work are full of literal braces, wildcards, and JSON. The tooltip even says it: "Braces can be used normally." If you've ever had a prompt enhancer silently eat your curly braces, you'll appreciate that line.
A word of caution from the community's hard-won experience: an LLM generates chat, not clean prompts. It will happily emit "Here is your enhanced prompt:" preamble and markdown scaffolding that then bleeds into your conditioning if you don't strip it - the same failure mode the LLM-in-the-graph essay documents for every local enhancer. Chain this node to a text-cleanup step, or at least eyeball the first output before trusting it.
Install
ComfyUI Manager → search ComfyUI-UtilsCollection → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart. Deps are opencv-python and typing-extensions. The model itself is on you - load a Qwen3.5 checkpoint via ComfyUI's model loaders.
When you'd reach for it
When you want a local, in-graph prompt writer or image captioner with proper system-message support and no API key. It's not writing better English than a frontier API, but it's free, offline, and uncensored-by-default - the exact trade the local-LLM crowd keeps making. Use it to take a rough idea to a structured prompt, then wire its string output into your encoder of choice.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| prompt | STRING | Message sent to the model. Braces can be used normally. | |
| system_message | STRING | Optional instructions applied before the user message. | |
| max_length | INT | 5121–8192 | — |
| sampling_mode | COMBO | 2 options: [object Object], [object Object] | |
| imageopt | IMAGE | — | |
| thinkingopt | BOOLEAN | false | Include model thinking text when available. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| generated_text | STRING | — |