Nodes/comfyui_bmad_nodes/CLIPEncodeMultiple
ComfyUI Node Runs on cloud

CLIPEncodeMultiple

A whole prompt queue through one CLIP node

By bmad4ever·Created 3 years ago·Updated 9 months ago· 70
CLIPEncodeMultiple
  • clip
  • CONDITIONING
inputs_len9

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.

CategoryBmad/conditioning

Inputs (2)

NameTypeDefaultDescription
clipCLIP
inputs_lenINT90–32

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONINGA conditioning containing the embedded text used to guide the diffusion model.