Bind [ImageList, PromptList] (Inspire)
Pair a list of images with a list of prompts
- images
- zipped_prompts
- image
- positive
- negative
- prompt_label
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) andnegative(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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| zipped_prompts | ZIPPED_PROMPT | — | |
| default_positive | STRING | — | |
| default_negative | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| positive | STRING | — |
| negative | STRING | — |
| prompt_label | STRING | — |