Omini Kontext Pipeline
The Omini Kontext Pipeline generation node
- pipeline
- reference_image
- input_image
- IMAGE
This is the payoff node of the pack - the one you wire everything into when you want "my character, in this scene, roughly here". It's the character-insertion step of omini-kontext, a community fine-tune of FLUX.1-Kontext-dev, exposed as a single ComfyUI node. Feed it a scene image, a reference image of a character, a prompt, and a position delta, and it returns a fresh image with the character blended into the scene. No mask, no inpainting pass, no ControlNet - the reference is consumed in-context, which is exactly how FLUX.1-Kontext does editing natively.
The thing to keep in mind: Kontext models like this one are the reason character consistency stopped being a nightmare in mid-2025. Because the reference image is concatenated into the model's context window rather than injected as adapter embeddings (the IP-Adapter approach), identity holds much better across edits. Omini-kontext takes that trick and adds positional control on top.
How it works
The node is a thin wrapper over the diffusers FluxOminiKontextPipeline.__call__. It converts your IMAGE inputs to PIL, builds a reference_delta list from the three int inputs, seeds a torch generator, and hands the whole lot to the pipeline. Internally the pipeline resizes the reference to a multiple of 16, VAE-encodes it, packs the tokens, and computes latent image ids - then adds the delta straight into those ids, which is what moves the reference around the spatial grid. Because it runs the real diffusers pipeline, you get ComfyUI's progress bar in the UI for free (there's a callback wired into callback_on_step_end).
The inputs that matter
Most of the required inputs are self-explanatory generation knobs (steps default 28, guidance 3.5, width/height 1024, seed). The ones worth actually thinking about:
reference_image- the character or object you're inserting. First frame of the batch is used.reference_delta_x/reference_delta_y- horizontal and vertical placement, roughly -100 to 100. 0 puts the subject around center.reference_delta_z- the depth/integration axis, default 96. The author's workflow sets it to(scene_height + reference_height) / 16; 48–144 is the sane range. Lower = tighter into the scene, higher = more separate.input_image(optional) - the base scene for img2img-style runs. If you leave it disconnected, the node still inserts the reference into a newly generated scene from the prompt.negative_prompt+true_cfg_scale(optional) -true_cfg_scaleabove 1.0 with a negative prompt enables true classifier-free guidance, which runs the model twice. Leave it at 1.0 if you don't need the extra prompt adherence; it's a real speed cost.
Output is a single IMAGE, ready for a standard Save Image node. The README's sample workflow is: two Load Images → Pipeline → Save, with the reference delta [0, 0, 96], 28 steps, seed 42, prompt "Add character to the image."
Gotchas
VRAM is the big one - this is a 12B diffusers model and a full 1024×1024 run is 24GB-class territory. At 16GB, drop to 768×768 or use the GGUF split loader path. Also remember the identity of this pack: it's a wrapper, the README admits it's stale, and FLUX.1-Kontext now has native ComfyUI nodes. Those don't give you the positional reference_delta control though - that's what this pipeline is actually for. If the reference comes out looking like it was pasted rather than placed, that's the delta doing its job badly, not a bug; nudge x/y to move it and z to blend it.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | OMINI_KONTEXT_PIPELINE | — | |
| prompt | STRING | — | |
| reference_image | IMAGE | — | |
| reference_delta_x | INT | 0-1000–1000 | — |
| reference_delta_y | INT | 0-1000–1000 | — |
| reference_delta_z | INT | 96-1000–1000 | — |
| steps | INT | 281–1000 | — |
| guidance_scale | FLOAT | 3.50–20 | — |
| width | INT | 102464–2048 | — |
| height | INT | 102464–2048 | — |
| seed | INT | 00–18446744073709550000 | — |
| input_imageopt | IMAGE | — | |
| negative_promptopt | STRING | — | |
| true_cfg_scaleopt | FLOAT | 1.00–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |