CLIPEncodeMultiple
A whole prompt queue through one CLIP node
- clip
- CONDITIONING
Got a dozen prompts and one graph? A row of core CLIPTextEncode nodes eats horizontal space fast and the wiring gets boring to reroute. CLIPEncodeMultiple is the version where you type a bunch of strings into a single node and get a conditioning list out the other side - ready for anything in ComfyUI that expects multiple conditionings at once.
It's part of the comfyui_bmad_nodes pack from bmad4ever, a grab-bag of conditioning, list, and OpenCV helpers. Nothing here is a big deal on its own, but this node is the quiet workhorse for prompt-grid and list-driven workflows.
How it works
Under the hood it's not doing anything exotic: the class is literally a subclass of ComfyUI's own CLIPTextEncode, and it just calls the same encode function once per string. What it adds is plumbing. Each string gets CLIP-encoded into its own conditioning, all of them are collected into a Python list, and the output slot is flagged as a list output (OUTPUT_IS_LIST). So the output is a single CONDITIONING port that carries N conditionings.
The two inputs you actually set:
- clip - your CLIP model, same as any text encoder.
- inputs_len - how many prompt strings you want, from 0 up to 32 (default 9).
Then the important part, which is easy to miss: right-click the node and pick "update Inputs." That's the pack's ❔ convention - the string_1, string_2, ... sockets don't exist until you tell the node to generate them for your chosen inputs_len. Change the count and hit "update Inputs" again to add or remove sockets. Type each prompt into its own socket.
What you wire it into
The output is a conditioning list, so it plugs straight into the other list-aware nodes in this pack - ControlNetHadamard, Conditioning Grid (cond), ExtendCondList - or any node with a list CONDITIONING input. A classic use: one CLIPEncodeMultiple feeding every cell of a Conditioning Grid, or pairing prompts with a matching list of ControlNet images.
Install
This ships in the comfyui_bmad_nodes pack, so it's a one-pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/bmad4ever/comfyui_bmad_nodes
cd comfyui_bmad_nodes
pip install -r requirements.txt
Or search "comfyui_bmad_nodes" in ComfyUI Manager and let it handle the deps - the pack pulls in opencv-python, scikit-image, gray2color, and simpleeval, mostly for the CV nodes. Restart ComfyUI after installing.
Gotchas
The classic stumble is no string sockets on the node. That's not a bug - you haven't run "update Inputs" yet. If you run it and still see nothing, you're probably on a ComfyUI old enough to lack EXTENSION_WEB_DIRS, which this pack's JavaScript needs to add those sockets. Also don't expect inputs_len converted to an input socket to behave like the widget; it works, but the right-click menu is the intended path. If the node errors with something about missing string_N, the socket list and the widget count are out of sync - set the widget, hit "update Inputs," and move on.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| inputs_len | INT | 90–32 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | A conditioning containing the embedded text used to guide the diffusion model. |