GeneratorI2I
The I2I sampler that adds a second CFG knob for images
- model
- image_tokens
- text_tokens
- vq_tokens
Generator_I2I is the sibling of Generator_T2I with one extra idea bolted on: when the model is conditioned on an input image as well as text, you get a second guidance knob - cfg_img - that decides how strongly the output must hew to that image. Same masked-diffusion sampler underneath, but aimed at the image-conditioned tasks: editing, subject-driven generation, style transfer, and the control tasks in the pack's example workflows.
Let's be clear about what "image-to-image" means here, because it's not Stable Diffusion's version. The image isn't denoised into a variation of itself. ImageTokens_I2I encodes your source image into VQ tokens, and those tokens become context in the prompt sequence the model sees. Then this generator runs the same progressive-unmasking process as the T2I generator - it writes a fresh token grid conditioned on both the text and that image context. There's no denoise-strength slider, no "how much do we keep" input. The input image steers the result, and cfg_img tunes how hard it steers.
The knobs
- timesteps (INT, default 64) - unmasking rounds, same as T2I.
- cfg_scale (FLOAT, default 2.5) - text classifier-free guidance. Note the default is lower than the T2I generator's 4.0, because with an image doing some of the steering, pushing text guidance hard tends to fight the image condition.
- cfg_img (FLOAT, default 4.0) - image guidance, the knob this node owns. Raise it to force stronger adherence to the input image; lower it to let the text wander. In the source this is implemented as separate conditional and unconditional branches for the image context, so you're genuinely balancing two guidance terms, not faking one.
- temperature (FLOAT, default 1.0) - sampling randomness.
One real omission to know about: unlike the T2I generator, this node has no cache options. The I2I path always recomputes fully, which makes it slower per step - you pay for the extra conditioning branches on every round. For image-editing workflows that's just the price of admission.
Inputs:
- model (LUMINA_MODEL) - from
LoadModel. - image_tokens (LUMINA_IMAGETOKENS_I2I) - from
ImageTokens_I2I. The types are strict here: feeding it T2I image tokens won't type-check. - text_tokens (LUMINA_TEXTTOKENS) - from
PromptBuilder, set to a matching task likeedit_add,subject_driven,depth_control, orstyle_transfer.
Output:
- vq_tokens (VQ_TOKENS) →
VQDecodefor the final image.
Practical notes
The control-task examples (depth, pose, canny) use this generator with the control image as the image input and the task set in PromptBuilder - that's the closest this pack gets to a ControlNet workflow, and it's worth trying first because the subject/style/edit tasks are the ones where the model's limits show. As with everything in this pack, expect early-adopter rough edges: a ~17 GB weight download, requirements.txt pinning old torch and transformers that can clash with your ComfyUI env, and a model the community met with a shrug. Install via ComfyUI Manager (search ComfyUI-Lumina-DiMOO) or git clone into custom_nodes, restart, and load the controllable-generation example to see the whole I2I graph wired correctly before you improvise.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | LUMINA_MODEL | — | |
| image_tokens | LUMINA_IMAGETOKENS_I2I | — | |
| text_tokens | LUMINA_TEXTTOKENS | — | |
| timesteps | INT | 64 | — |
| cfg_scale | FLOAT | 2.50 | — |
| cfg_img | FLOAT | 4.00 | — |
| temperature | FLOAT | 1.00 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| vq_tokens | VQ_TOKENS | — |