Image Variations
Fan one image into a batch of angles or scenes
- image
- images
- image
You've got one good image and you want a set from it: the same character from three camera angles, or the next scene in a sequence. Image Variations is the multi-view / sequence fan-out node. It takes a single source image, prepends an angle or sequence keyword to your prompt, and emits a whole batch - so "same person, three views" becomes one Run instead of three hand-rewritten prompts.
ComfyTV is jtydhr88's canvas app (~190 stages, each its own node). Image Variations sits under ComfyTV → Image, and it's the stage you reach for when consistency matters more than novelty: it's built around keeping the subject the same while the framing changes.
How it works
The mechanism is in the workflow combo and the tooltip: "Multi-view (parallel angles) or sequence (chained next-scene) workflow. Each one fans the source image into its own fixed batch." Two flavors:
- Face 3-View (the default) - multi-view: parallel camera angles of the same subject. Prompt gets an angle keyword prepended per frame.
- Sequence - chained next-scene: each frame is the "next scene," for storyboard-style continuation.
main_prompt is the subject/scene description, and each frame's prompt gets the angle or sequence keyword prepended automatically - you write the through-line once, the node handles the per-frame variation. variant_count (1–25, default 3) is informational: the count is baked into the chosen workflow, so it tells you how many you'll get rather than being a knob.
Outputs: images (the full batch) and image (the selected_index cell, picked by clicking a thumbnail in the output grid). Wire the batch into a picker to choose your favorite angle.
The hidden inputs, explained once
force_run_token, project_id, parent_output_id, and custom_params are the internal inputs, all marked "Internal" in the schema and populated by the frontend's projectStore for per-node Run. You never set them by hand.
Installing it and getting a model
Same pack, same steps:
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
or ComfyUI Manager ("ComfyTV"), full backend restart, then ComfyTV → Image.
The pack declares no pip deps, but the default Face 3-View workflow runs on a real model stack. Per the README's models page it's Qwen-Image-Edit 2511 based: the base model in diffusion_models/, a Lightning 4-step LoRA plus a multiple-angles LoRA in loras/ (the angle fanning is exactly what that LoRA does), the Qwen 2.5 VL text encoder in text_encoders/, and the Qwen VAE in vae/ - download links in the models doc. The Sequence workflows swap in a different Qwen base with a "next-scene" LoRA instead. Missing model at run time is the most common failure. And the whole-pack gotcha: on ComfyUI Desktop, macOS, or multiple installs, clone into the running instance by absolute path, verify custom_nodes/ComfyTV/__init__.py isn't nested, and fully restart.
Common issues
- The views don't look like the same person - multi-view consistency is hard; the workflow's shared-cast/reference setup is your main lever, and a more detailed
main_prompt(face, hair, clothing) helps more than a vague one. - Fewer/more images than expected -
variant_countis informational; the actual count is baked into the workflow. Pick a workflow with the batch size you want. - "Missing model" - the checkpoint isn't in your
ComfyUI/models/tree. Download per the models doc. - You want more variety, not views - that's not this node. Image Variations is for consistent multi-angle/sequence fans; raw novelty is Image Stage's job.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| workflow | COMBO | Face 3-View | Multi-view (parallel angles) or sequence (chained next-scene) workflow. Each one fans the source image into its own fixed batch. |
| variant_count | INT | 31–25 | How many images this workflow will produce. Informational — the count is baked into the chosen workflow. |
| main_prompt | STRING | Subject / scene description. Each frame's prompt prepends an angle or sequence keyword automatically. | |
| selected_index | INT | 11–999 | Internal — 1-indexed cell pick for image-batch stages. Driven by clicking a thumbnail in the node's output grid. |
| custom_params | STRING | {} | Internal — JSON of user-defined parameter attachments/values for this node. |
| imageopt | COMFYTV_IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | COMFYTV_IMAGES | — |
| image | COMFYTV_IMAGE | — |