Griptape Run: Parallel Image Description
Get multiple angles on one image, at once
- image
- agent
- key_value_replacement
- OUTPUT
- AGENT
The single-shot Griptape Run: Image Description asks one question about an image. This one asks several - and runs them in parallel. Same picture, four different prompts, four answers back in roughly the time it takes to get one.
The trick is how you phrase things. The node splits your STRING on newlines, so each line becomes its own parallel task: line one "describe the composition", line two "what's the lighting doing", line three "suggest a matching negative prompt". Fire them all at once, get back a merged text block with each answer labeled. For captioning pipelines, style analysis, or the "describe an image as inspiration for a new one" workflow the README loves, this collapses several runs into one.
How it works
Under the hood it's a Griptape Workflow: a start task fans out into one PromptTask per line of your prompt (each with the image attached), and an end task concatenates the outputs, separated by blank lines. Your AGENT output preserves the agent for chaining. Same caveats as the single version: the model has to be vision-capable, and Bedrock/Anthropic drivers get "Describe this image" as a fallback when a line is empty.
The inputs
- STRING - your list of questions, one per line. This is where the whole trick lives; feed it a single line and you've reinvented the non-parallel node.
- image - the
IMAGE. - agent - optional.
- input_string / key_value_replacement - appendix and template fill.
Outputs: OUTPUT (concatenated answers) and AGENT.
Installing
ComfyUI Manager → search "Griptape" → Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/griptape-ai/ComfyUI-Griptape
Restart ComfyUI. Requires the usual heavy deps plus a vision-capable model.
Common gotchas
The subtle failure: a multi-line prompt where one line is blank, or where you meant input_string to be appended - blank lines get sent as tasks too. Also watch API cost; "parallel" means several simultaneous paid calls, and if you're on a rate-limited tier that's when you notice. The pack-wide torch conflicts (reinstall with the cu121 index) and stale-griptape ImportErrors (python -m pip install griptape -U) apply as always.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| STRING | STRING | — | |
| image | IMAGE | — | |
| input_stringopt | STRING | — | |
| agentopt | AGENT | — | |
| key_value_replacementopt | DICT | The will replace the {{ key }} with a value. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| OUTPUT | STRING | — |
| AGENT | AGENT | — |