HiDream Image to Image
Redraw, restyle, and fake a HiRes fix
- image
- image
The img2img that was almost a HiRes fix
If you've used HiDreamSampler and thought "great model, but I want to change what's already in the image," this is your node. HiDreamImg2Img is the image-to-image sibling: feed it an IMAGE tensor, tell it how strongly to redraw, and it runs the same 17B HiDream-I1 pipeline from the pack - this time through its image-to-image path instead of starting from noise. In the wider ComfyUI workflow it's what you'd reach for to restyle a render, clean up a flawed face or hand without a full regen, or nudge a composition.
It also plays the role of a poor-man's HiRes fix, and the author is open about wanting to make that official. One of the pack's roadmap items is "Explore HiResFix via img2img" - the idea being a native HiDream upscale pass - and this node is the raw ingredient for it. Upscale your image, pass it back through here at a low denoising strength, and you've hand-rolled the concept. Just know it's DIY, not a finished feature.
How it works
Mechanically it's the same engine as the base sampler - a vendored diffusers fork (hi_diffusers), 4-bit NF4 weights that download on first run, in-memory pipeline caching, model_type choosing among the full/dev/fast tiers. The difference is the input path: your image gets preprocessed to match the model's expectations - resized and cropped to the nearest of the seven standard resolutions, rounded to multiples of 16 - and then the pipeline redraws it from the latent, with denoising_strength deciding how much of the original survives. Unlike the text-to-image nodes there's no resolution dropdown; the target size is derived from the incoming image.
The inputs that matter
- image - the IMAGE tensor you're editing. Wire in whatever you generated or loaded.
- denoising_strength - the big one, 0–1, default 0.75. High values (0.7–0.9) give you substantial redraws while roughly keeping the composition; low values (0.2–0.4) barely change the image and are where your HiRes-fix-style passes live. At 1.0 you've basically asked it to ignore the input.
- model_type, prompt, negative_prompt, seed, scheduler - same as the base node;
devandfastrun guidance-free by default, overridable viaoverride_cfg. - override_steps / override_cfg / override_shift - the -1 means "model default" trio again.
- use_uncensored_llm - same non-quantized Llama swap as the Advanced node. Same OOM warning: it's not quantized, so treat it as a memory bomb with a purpose.
- Optional extras -
llm_system_promptfor steering the Llama encoder, and the four*_weightsliders (clip_l_weight,openclip_weight,t5_weight,llama_weight) to mute or boost individual text encoders. No per-encoder prompts here - that's Advanced's party trick.
Output is the standard image tensor. Save it, or feed it back into another img2img pass.
Install and what to watch for
Same pack as the other two nodes: ComfyUI Manager search "HiDream Sampler", or git clone https://github.com/lum3on/comfyui_HiDream-Sampler into ComfyUI/custom_nodes, pip install -r requirements.txt, restart. NF4 weights and a 4-bit Llama encoder pull down automatically on first run; expect a long first generation while they download.
A few honest gotchas. Multi-image batch is text-to-image only - the README is explicit that img2img doesn't support it yet, so you're one image in, one image out. It's also the least battle-tested of the three nodes; image-to-image arrived in a later update (April 2025), and the pack's install history is rocky - early versions tripped over auto-gptq on Python 3.12 before moving to gptqmodel. If you cloned an old copy, pull and reinstall requirements. And keep the model straight: this is HiDream-I1, the 17B latent transformer from 2025 - HiDream-O1, the lab's newer pixel-space model, is a different architecture entirely and none of this applies to it.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | COMBO | fast | 3 options: full, dev, fast |
| image | IMAGE | — | |
| denoising_strength | FLOAT | 0.750–1 | — |
| prompt | STRING | ... | — |
| negative_prompt | STRING | — | |
| seed | INT | 00–18446744073709550000 | — |
| scheduler | COMBO | Default for model | 5 options: Default for model, UniPC, Euler, Karras Euler, Karras Exponential |
| override_steps | INT | -1-1–100 | — |
| override_cfg | FLOAT | -1.0-1–20 | — |
| override_shift | FLOAT | -1.0-1–20 | — |
| use_uncensored_llm | BOOLEAN | false | — |
| llm_system_promptopt | STRING | You are a creative AI assistant that helps create detailed, vivid images based on user descriptions. | — |
| clip_l_weightopt | FLOAT | 1.00–5 | — |
| openclip_weightopt | FLOAT | 1.00–5 | — |
| t5_weightopt | FLOAT | 1.00–5 | — |
| llama_weightopt | FLOAT | 1.00–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |