Griptape Create: Image Variation
Variations Through an Image Task
- image
- key_value_replacement
- driver
- IMAGE
- FILE_PATH
Griptape Create: Image Variation takes an image you've got, pairs it with a text prompt, and generates a variation of that image through Griptape's image-generation drivers. It's the image-to-image sibling of Create Image from Text - same driver system, same temp-file output, but it starts from an actual picture instead of empty canvas. If your workflow describes an image with one node and then wants a re-draw of it, this is the stage that does the re-draw.
What it's for
The honest use case: you have an image flowing through your graph (from an image query/description node, from another task, from a Load Image) and you want a reimagined version driven by a text direction. It's img2img-flavored, done through an LLM provider's variation API rather than a local diffusion sampler. That means it's an API call, with all the quality caveats that come with letting a driver handle it - you're not dialing in denoising strength or seeds here.
How it works
It runs a VariationImageGenerationTask. The input image is converted to base64, sent along with your prompt to the driver, and the resulting file is loaded back as a ComfyUI IMAGE tensor plus a file path. No driver attached? It falls back to OpenAI dall-e-2, which needs OPENAI_API_KEY.
The driver model matters a lot here. If you're using a Black Forest / Flux driver, the node checks the model against an explicit allowlist (flux-pro-1.0-canny, flux-pro-1.0-depth, flux-pro-1.1, flux-pro-1.1-ultra, etc.) and raises a clear error if the model isn't variation-capable. The README also flags the whole variation-task family as "In Beta" - expect rough edges.
Inputs
STRING(required, multiline) - the text direction for the variation.image(IMAGE, required) - the source image. Wire it from Load Image or any node producing an IMAGE.input_string(STRING) - appended to STRING with a newline, for dynamic text.key_value_replacement(DICT) -{{ key }}placeholder substitution.driver(DRIVER) - pick your provider/model. Defaults to OpenAI dall-e-2 without one.
Outputs
IMAGE- the variation, as a ComfyUI tensor.FILE_PATH(STRING) - where the generated file was written (temp dir).
Installation
Part of ComfyUI Griptape Nodes:
- ComfyUI Manager: search "Griptape" → install.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/griptape-ai/ComfyUI-Griptape, restart ComfyUI.
Same shared pack install and driver/API-key requirements as the other image task nodes.
Gotchas
- Beta node. The README literally brackets variation generation as in beta. Test with one cheap call before building a workflow on it.
- Model compatibility is the biggest trap: dall-e-2 works, some drivers flat-out reject variation, and the Black Forest models are restricted to the allowlist. Read the driver you're using.
- Paid API calls again - each variation costs money. No local rendering here.
For a graph that needs "describe this, then re-imagine it," it's the missing link - just keep your driver expectations realistic.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| STRING | STRING | — | |
| image | IMAGE | — | |
| input_stringopt | STRING | — | |
| key_value_replacementopt | DICT | The will replace the {{ key }} with a value. | |
| driveropt | DRIVER | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| FILE_PATH | STRING | — |