Nodes/ComfyUI Ino Nodes/Ino Images To Reference Latent
ComfyUI Node

Ino Images To Reference Latent

Batch-encode your refs into conditioning

By nobandegani·Created about a year ago·Updated 2 months ago· 6
Ino Images To Reference Latent
  • images
  • vae
  • positive
  • negative
  • latents
  • positive
  • negative
enabledtrue

You want your generated image to take composition, color, or subject cues from a reference image - but you don't want to track down a reference ControlNet that matches your model. That's exactly what this node is for. It turns a batch of images into reference latents and bakes them into your conditioning, the same trick that the "reference only" family of ControlNets made famous, without any extra model file.

It's an Ino pack node, so the name is honest: feed it images, get latents plus a conditioning stream that already "knows" the images. This is the kind of node you reach for in character-consistency and img2img-ish workflows where IP-Adapter or a dedicated reference ControlNet is overkill or unavailable for your checkpoint.

How it works

Under the hood it's not doing anything exotic - it's wrapping two stock ComfyUI operations. For every image in the batch it:

  1. VAE-encodes the image into a latent (the stock VAEEncode node).
  2. Applies ComfyUI's ReferenceLatent node (comfy_extras.nodes_edit_model) to your positive conditioning, and your negative too if you wired one in.

The result is a latents list (one per input image) plus the modified positive and negative conditioning. The sampler downstream sees the reference image as part of the conditioning stream, which steers composition and style without you loading a ControlNet model at all.

That's a genuine mechanism difference worth knowing: this isn't a ControlNet applied per step with a weight slider. It's latent conditioning injected at encode time, which is cheaper and lighter - but you also get less fine-grained control than a ControlNet weight. For "roughly this layout and mood," it's the right tool.

Inputs and outputs that matter

Only a few you'll actually touch:

  • images (IMAGE) - your reference image, or a batch of them. Each one becomes a reference frame.
  • vae (VAE) - wire from your VAE loader, matching the checkpoint you're generating with.
  • positive (CONDITIONING) - from a CLIPTextEncode. This is what gets the reference injected into it.
  • negative (CONDITIONING, optional) - also gets reference conditioning if connected; leave it out and it passes through untouched.
  • enabled - the Ino pack puts this on everything; off means pass-through.

Outputs are latents (list), positive, and negative. Wire positive/negative into your KSampler exactly where the conditioning from CLIPTextEncode would normally go.

Installing it

This is one node from the ComfyUI-InoNodes pack (125+ nodes, from Inoland). Easiest: ComfyUI Manager → search "ComfyUI Ino Nodes" → install → restart. Manual install:

cd ComfyUI/custom_nodes
git clone https://github.com/nobandegani/comfyui_ino_nodes
cd comfyui_ino_nodes
pip install -r requirements.txt

Then restart ComfyUI. The pack is built on ComfyUI's newer V3-style node API, so keep ComfyUI reasonably current (the README calls for v0.18.1+). No API keys, no model downloads, no GPU drama - it's pure ComfyUI-native math.

Common issues

The one real gotcha is resolution mismatch. These reference latents work best when your reference images are in the same ballpark as your generation resolution - a 256px ref feeding a 1024px generation gets you vague composition and mush. Resize your refs first (the pack's own resize nodes are handy for that). Also note that a big batch means one VAE encode and one ReferenceLatent pass per image, so a folder of 20 refs is not free. And if you're on an older ComfyUI, make sure comfy_extras.nodes_edit_model exists in your install - the node imports it at runtime, and a stale ComfyUI is the most common reason this class of node errors out.

CategoryInoImageHelper

Inputs (5)

NameTypeDefaultDescription
enabledBOOLEANtrue
imagesIMAGE
vaeVAE
positiveCONDITIONING
negativeoptCONDITIONING

Outputs (3)

NameTypeDescription
latentsLATENT
positiveCONDITIONING
negativeCONDITIONING