Omini Kontext Latent Combiner
Omini Kontext Latent Combiner
- input_latent
- input_ids
- reference_latent
- reference_ids
- COMBINED_LATENT
- COMBINED_IDS
Somewhere between your Load Image nodes and the transformer, the omini-kontext pipeline does a surprisingly simple thing: it takes the scene's token sequence and the reference's token sequence and concatenates them into one. The Omini Kontext Latent Combiner is that step, pulled out into a node you can hold in your hands. Two latents and their id sets go in; one combined latent and one combined id set come out.
How it works
It's two torch.cat calls. The latents are concatenated along the sequence dimension - so if your scene encodes to N tokens and your reference to M, the output is N+M tokens. The ids are concatenated along the batch/sequence axis to match. That's the entire mechanism, and it mirrors exactly what the internal pipeline does when it builds the context window before the denoise loop.
The inputs
input_latent+input_ids- the scene's encoded tokens and positional ids, from the Image Encoder.reference_latent+reference_ids- the reference's, from the Reference Encoder.
Outputs are COMBINED_LATENT and COMBINED_IDS. And yes - the names line up: this is where IMAGE_IDS (from the Image Encoder) meets REF_IMAGE_IDS (from the Reference Encoder) and they become one grid that says "these tokens are the scene, those tokens are the character, positioned over there."
The honest picture
You'll notice a theme if you're reading through this pack's encoder set: the advanced nodes are for understanding and inspection, not for a faster generation path. The Combiner is the strongest example. It shows you the exact shape of the thing the model attends to, and if you wire the combined output into the Latent Visualizer you can watch your character's tokens physically land on the grid at its delta position. That's genuinely educational - it's the difference between "I set reference_delta to 96" and "I can see why."
But there's no sampler in this pack that eats COMBINED_LATENT. The Pipeline node wants raw images and does its own combining internally. So if your goal is production output, use the Pipeline node's reference_delta fields and skip this entirely. If your goal is to actually understand what this pipeline does before you trust it with a workflow - or you're building custom sampling code outside the pack - this is the node that pulls back the curtain. The one real hazard: it doesn't validate that your two latents are compatible, so mismatched types or shapes will fail with a raw tensor error rather than a friendly message.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| input_latent | LATENT | — | |
| input_ids | IMAGE_IDS | — | |
| reference_latent | REF_LATENT | — | |
| reference_ids | REF_IMAGE_IDS | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| COMBINED_LATENT | COMBINED_LATENT | — |
| COMBINED_IDS | COMBINED_IDS | — |