Image generation
Image generation in the Immersion Canvas is a node graph you build right on the board. You wire small cards together (a prompt, a model, a size, a generator) and press Run to produce an image. Everything runs locally on your own machine.
Turn it on
Section titled “Turn it on”The image-generation nodes are off until you enable them. Switch them on in Settings, then install the model-runtime packages from the Image Generation Requirements dialog. See Set up local models for the model and GPU notes. Once enabled, the nodes live under the canvas right-click menu at Add ▸ Image generation.
How the graph works
Section titled “How the graph works”- Add nodes from Add ▸ Image generation, grouped into the categories below.
- Wire sockets by dragging from one node’s output to another’s input. Sockets are typed, so a node only accepts the kind of input it understands.
- Run from a generator node (Text-to-Image, Image-to-Image, and so on). The result appears in an Image node you can wire onward.
- N (how many variations) always comes from the Size & Sampling node.
- The switch nodes (Prompt Switch, Seed Switch, Image Reference Switch) feed the generators so each variation can use a different prompt, seed, or reference image.
A node that fails to load still shows in the menu, marked (unavailable); click it to see the error instead of having it silently disappear.
The node catalog
Section titled “The node catalog”Prompts
Section titled “Prompts”| Node | What it does |
|---|---|
| Prompt | The text prompt that drives generation. |
| Negative prompt | Things to exclude from the image. |
| Prompt Merge | Combine several text sources (Prompt, Negative, sticky notes) into one prompt. Inputs grow as you fill them (max 20). |
| Prompt Switch | A different prompt per iteration: iteration i uses input i mod count. N comes from Size & Sampling. |
| Image to Prompt | Describe a wired image as a prompt (reverse prompt). |
Models
Section titled “Models”| Node | What it does |
|---|---|
| Model | Pick a Hugging Face model. |
| Advanced Model | Split MODEL / CLIP / VAE picker for wiring each part yourself. |
| LoRA | Stack a LoRA on top of the base model. |
| Video Model | Pick a downloaded image-to-video model (SVD / LTX-Video) to feed the Image to Video node. |
Conditioning
Section titled “Conditioning”| Node | What it does |
|---|---|
| ControlNet | Structure-locked generation: pose, depth, edges, lineart. |
| Control Map | Extract a pose / depth / edge map from an image, preview it, then wire it into ControlNet. |
| Reference Image | Source a local image for Image-to-Image, Inpaint, or ControlNet. |
| Size & Sampling | Width, height, steps, CFG, seed, and N (variation count). |
| Seed Switch | A seed per iteration: type a number to lock a variation, or leave a row on Random. |
| Image Reference Switch | A style reference per iteration: iteration i uses image i mod count. |
Generate
Section titled “Generate”| Node | What it does |
|---|---|
| Text-to-Image | The Run button; produces an image from a prompt and model. |
| Image-to-Image | Reimagines a wired image via prompt + denoise. |
| Edit (Instruction) | Rewrite a wired image from a text instruction. Needs an instruction-edit model (see compatibility below). |
| Inpaint | Regenerate only the painted area of an init image. |
| Style Transfer | Apply a style from a reference image (IP-Adapter), or restyle a source image (img2img). |
| Image to Video | Animate a still into an .mp4. Wire a Video Model; SVD animates the image, LTX also follows a prompt. |
Refine
Section titled “Refine”| Node | What it does |
|---|---|
| Upscale | Lanczos or Real-ESRGAN 2x / 4x upscale. |
| Detail Upscale | AI upscale that paints in prompt-guided detail, not just a bigger raster. |
| Face Restore | GFPGAN face restoration: fix eyes, skin, and hair on portraits. |
| Color Adjust | Brightness / contrast / gamma / hue plus shadows-mids-highlights balance. |
| Levels | Input / output levels with gamma (black and white points). |
| Hue | Selective hue: rotate individual colors or all at once. |
| Film FX | Glow, grain, and chromatic aberration look effects. |
| Blur | Gaussian or directional blur with a motion bias. |
| Sharpen | Unsharp-mask sharpening with amount / radius / threshold. |
| Crop | Reframe by trimming each edge by a percentage. |
| Transform | Offset / scale / rotate (affine). |
| Depth Pass | Monocular depth map (MiDaS): grayscale depth from any image. |
| Depth of Field | Depth-driven blur from Image + Depth inputs, with focus / range / amount. |
Source
Section titled “Source”| Node | What it does |
|---|---|
| Constant | Solid-color image source at a chosen resolution. |
| Gradient | Two-color linear or radial gradient source. |
| Noise | Random noise (mono / RGB) source. |
Composite
Section titled “Composite”| Node | What it does |
|---|---|
| Blend | Composite two images with blend modes + opacity (honors alpha). |
| Chroma Key | Key out any color to a transparent matte; pick or eyedrop the color. |
| Background Remover | AI subject cutout (rembg) to a transparent background, RGBA out. |
| Canvas Extend | Extend / outpaint the canvas: pad edges (edge / reflect / color / transparent). |
| AI Outpaint | All-in-one outpaint: extend the canvas and AI-fill the new area in one Run. |
| Reformat | Change output resolution: presets or W x H, with fit / fill / distort / none. |
Output
Section titled “Output”| Node | What it does |
|---|---|
| Image | Displays the generated PNG. |
| Compare | Sweep-compare two images side by side with a draggable divider. |
| Contact Sheet | Live grid of every generation from a wired generator node. |
| Write / Export | Export the chain result to PNG / JPG / WEBP / BMP / TIFF. |
A basic text-to-image graph
Section titled “A basic text-to-image graph”- Add a Model (or Advanced Model) and pick a checkpoint.
- Add a Prompt and type your description.
- Add Size & Sampling; set width, height, steps, CFG, and N = 1 to start.
- Add Text-to-Image and wire the model, prompt, and Size & Sampling into it.
- Press Run. The result lands in an Image node.
From there you can wire the Image into Refine or Composite nodes (upscale, face restore, background removal, and so on).
Per-iteration variations
Section titled “Per-iteration variations”The three switch nodes let one Run produce a set of variations:
- Prompt Switch changes the prompt each iteration. Set N in Size & Sampling to the number of prompts.
- Seed Switch locks or varies the seed per iteration. Use Same seed with a Prompt Switch so only the prompt changes; use Random for fresh compositions.
- Image Reference Switch rotates the source / reference image each iteration.
Recipes
Section titled “Recipes”Restyle your own image (Image-to-Image). Wire a Model + a Prompt + your image (into the Source / Style socket) + Size & Sampling into Image-to-Image. A lower denoise (around 0.45) stays close to your source; higher leans on the prompt.
A different prompt per image. Wire a Prompt Switch into Text-to-Image, set N to the number of prompts, and Run.
Lock or compare seeds. Use a Seed Switch set to Same seed (identical composition across iterations) or Random (all different), wired into the generator’s Seed input.
Rotate the source each iteration. Wire several images into an Image Reference Switch, output into Image-to-Image’s Source / Style socket, set N to match, and add a Seed Switch on Same seed so only the source changes.
Model compatibility
Section titled “Model compatibility”Most “Failed to load” errors are a model the node can’t use. As a guide:
| Node | Model it needs |
|---|---|
| Text-to-Image, Image-to-Image | SD 1.5 or SDXL checkpoint |
| ControlNet | SD 1.5 or SDXL, plus a control / structure image |
| Inpaint | a dedicated inpainting checkpoint, not the base model |
| Style Transfer (IP-Adapter) | SD 1.5 / SDXL with a matching IP-Adapter |
| Edit (Instruction) | an instruction-edit model such as FLUX Kontext or Qwen-Image-Edit (base SDXL / SD 1.5 will not load here) |
| Image to Video | an image-to-video model (SVD or LTX-Video) via the Video Model node |
Operating notes
Section titled “Operating notes”- Run one generation node at a time. They share the GPU.
- If a run reports a device-side assert, fully quit and relaunch before trying again; the GPU context does not recover on its own.
- “Failed to load … expected [‘transformer’…]” means the wrong model class for that node; check the table above.
- “no file named … in text_encoder” usually means a half-downloaded model; re-download it in the Model Manager.