Prompts
Positive + negative CLIP encode in one node
- clip
- Positive CONDITIONING
- Negative CONDITIONING
- CLIP
- Positive text
- Negative text
Every ComfyUI txt2img graph needs two CLIPTextEncode nodes - one positive, one negative - and Prompts collapses both into a single node. Instead of two boxes, two wires from your checkpoint's CLIP output, and two CONDITIONING wires out to the sampler, you get one node with two text fields and both conditionings ready to go. It's a small thing, but on a first workflow it's two fewer nodes to place and two fewer wires to route correctly, which is exactly the kind of friction that trips up someone building their first graph.
How it works
Under the hood it's just two CLIPTextEncode calls wearing one node's clothes. You type your positive prompt in one field, your negative in the other, feed it a CLIP model, and it encodes both against that CLIP and hands you back two CONDITIONING outputs - no different from wiring up two separate encoders yourself, just fewer clicks.
The inputs and outputs that matter
- Positive and Negative - multiline text fields, defaulting to the placeholder strings "Positive Prompt" and "Negative Prompt" so you remember which is which. These are what you actually edit.
- clip - feed this from your checkpoint loader's CLIP output (Chibi's own Loader node happens to output CLIP too, so
Loader → Promptsis a natural pairing if you're building an all-Chibi graph).
You get five outputs back: Positive CONDITIONING and Negative CONDITIONING wire straight into your KSampler's positive/negative sockets. CLIP passes the same CLIP model back out, handy if you want to chain another text-conditioning node afterward without running a second wire from the checkpoint loader. And Positive text / Negative text hand back the raw strings you typed - useful if you want to log the prompt, stamp it onto the image with ImageAddText, or write it into a filename.
If you've also looked at ConditionTextPrompts in this same pack and are wondering which to use: they're close cousins. ConditionTextPrompts uses single-line fields, requires CLIP (not optional), and doesn't echo the text back out. Prompts is the friendlier, more full-featured version - reach for it first, and only drop to ConditionTextPrompts if you specifically want the leaner node.
How to install it
- ComfyUI Manager: search "ComfyUI-Chibi-Nodes", install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/chibiace/ComfyUI-Chibi-Nodes/, restart.
No models, no extra Python packages - it's a pure-logic pack. It's worth knowing going in that the author describes these as "experimental nodes" and that version 2 shipped "with more bugs" per their own README. That's honesty, not a warning sign, but it's why you won't find deep documentation beyond the node's own tooltips (there aren't any here) and why updates are infrequent.
Common issues
The clip input is marked optional in the node's schema, but don't read that as "you can skip it" - without a CLIP model connected there's nothing to encode your text against, and you'll get an error the moment the node tries to run. Connect it from your checkpoint loader same as you would for any CLIPTextEncode.
The other place people stumble: if you're chaining prompts across multiple samplers or checkpoints, remember the CLIP output here is a passthrough of whatever you fed in - it doesn't apply any CLIP-skip or other modification. If you need clip-skip control (common on anime-lineage SDXL checkpoints like Illustrious or Pony, which expect it set to -2), that has to happen upstream - Chibi's own Loader node exposes a stop_at_clip_layer control for exactly that, or use ComfyUI's native CLIPSetLastLayer node before it reaches Prompts.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| Positive | STRING | Positive Prompt | — |
| Negative | STRING | Negative Prompt | — |
| clipopt | CLIP | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| Positive CONDITIONING | CONDITIONING | — |
| Negative CONDITIONING | CONDITIONING | — |
| CLIP | CLIP | — |
| Positive text | STRING | — |
| Negative text | STRING | — |