Nodes/ComfyUI Inspire Pack/Bind [ImageList, PromptList] (Inspire)
ComfyUI Node Runs on cloud

Bind [ImageList, PromptList] (Inspire)

Pair a list of images with a list of prompts

By ltdrdata·Created 3 years ago·Updated 9 months ago· 805
Bind [ImageList, PromptList] (Inspire)
  • images
  • zipped_prompts
  • image
  • positive
  • negative
  • prompt_label
default_positive
default_negative

This node zips together two lists - a list of images and a list of prompts - so each image gets paired with its corresponding prompt, and spits them back out as aligned lists ready to iterate. It's a plumbing node for batch pipelines where images and their text prompts arrive from different places and you need them lined up one-to-one.

The setup it's built for: you've loaded a folder of images as a list (with something like Inspire's Load Image List From Dir) and loaded a set of prompts as a list (via Load Prompts From File, which produces ZIPPED_PROMPT bundles). Now you want to process each image with its matching prompt - image 1 with prompt 1, image 2 with prompt 2. Bind pairs them and hands you image, positive, negative, and a prompt_label per pair, all aligned so a downstream list run walks them together.

How it works

It takes the image list and the zipped-prompt list and binds them index-by-index. The interesting part is how it handles length mismatches, which the README spells out: if there are more prompts than images, the extra prompts are ignored; if there are fewer prompts than images, the leftover images are filled in using the default_positive / default_negative you provide. So the output is always aligned to the images - you won't get a ragged pairing, and every image ends up with some prompt even if the prompt list ran short.

ZIPPED_PROMPT is Inspire's bundled positive+negative+name structure (the format its prompt-loading nodes emit). Bind unpacks it as it pairs, which is why you get separate positive and negative string outputs rather than the zipped bundle.

The inputs and outputs that matter

  • images (IMAGE) - the image list. The output is aligned to this, so its length wins.
  • zipped_prompts (ZIPPED_PROMPT) - the prompt list, from Inspire's prompt loaders.
  • default_positive / default_negative (multiline STRING) - fallback prompt text used to fill any images left over when there are fewer prompts than images.

Outputs, all aligned to the images:

  • image (IMAGE list) - the images, passed through as a list.
  • positive (STRING list) and negative (STRING list) - the paired prompt text per image.
  • prompt_label (STRING) - the name/label for the prompt (when loaded from a file, this is the prompt's name), useful for filenames or captions.

How to install it

ComfyUI Manager: search ComfyUI Inspire Pack, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Inspire-Pack

then restart. It's a Dr.Lt.Data pack (ComfyUI-Manager, Impact Pack).

Common issues & troubleshooting

Some images came out with the default prompt. That's the designed fallback - you had fewer prompts than images, so the extras were filled with default_positive / default_negative. Either add more prompts to match your image count, or set sensible defaults so the fallback isn't blank.

Some prompts never got used. Also by design - more prompts than images means the surplus is dropped. The output length follows the image list, so trim your images or add more if you expected every prompt to run.

The prompts don't line up with the images. Binding is positional, index by index. If your image loader and prompt loader sort differently (say, one alphabetical and one by file order), pair 1 won't be what you think. Make sure both lists come out in the same order - consistent filenames help.

The positive/negative outputs are strings, not conditioning. Right - Bind gives you the prompt text. You still need to run each through a CLIP Text Encode (inside the list iteration) to turn it into conditioning for the sampler.

It's not iterating. Both inputs must genuinely be lists. If an upstream node batched your images into one tensor instead of a list, there's nothing to pair per item - use a list loader so the data stays a list.

CategoryInspirePack/Prompt

Inputs (4)

NameTypeDefaultDescription
imagesIMAGE
zipped_promptsZIPPED_PROMPT
default_positiveSTRING
default_negativeSTRING

Outputs (4)

NameTypeDescription
imageIMAGE
positiveSTRING
negativeSTRING
prompt_labelSTRING