Nodes/DiffSynth-ComfyUI/DiffSynth: HiDream O1 Inference
ComfyUI Node

DiffSynth: HiDream O1 Inference

HiDream O1 Inference — 2048px, pixel-space, and an edit socket

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: HiDream O1 Inference
  • pipe
  • edit_image
  • layout_bboxes
  • image
◄prompt►
◄seed0►
◄num_inference_steps50►
◄height2048►
◄width2048►
◄negative_prompt ►
◄cfg_scale4.0►
◄model_typefull►
◄shift3.0►
◄noise_scale8.0►
◄keep_original_aspecttrue►

Text-to-image and instruction editing from the same node. HiDream O1's real trick is recursive editing: hand it an image and a sentence, get the change you asked for across the whole frame instead of a patched region, then hand the result back in and keep going. If you've been building character sheets or storyboards by prompt-juggling, that loop is the reason to care.

Required sockets: pipe (from the HiDream O1 Loader), prompt, seed, num_inference_steps (default 50), height, width. Note the defaults for height and width: 2048, not 1024. That's not an oversight - 2048×2048 is the model's native resolution.

One output: image → Save Image.

The optional sockets, honestly ranked

  • edit_image - the one that changes what you're doing. Wire an image and the node stops being a text-to-image sampler. Everything below is fine-tuning around this.
  • cfg_scale - default 4, i.e. real classifier-free guidance rather than the distilled CFG 1 that most 2026 models want. This model expects a genuine two-pass sampler, which is part of why it takes minutes.
  • negative_prompt - default is a single space, not empty, which is a small tell that the field gets passed through to the pipeline and the author didn't want a null. Leave the space there and add to it rather than clearing the box.
  • model_type - free text, default full. This selects which variant of the pipeline's behaviour you're invoking; the shipped template never touches it. If you've downloaded a Dev-style checkpoint, this is the field to research before you complain that it looks wrong.
  • shift (3) and noise_scale (8) - schedule and noise scaling. Two knobs that are easy to ruin an image with. Change one at a time.
  • keep_original_aspect - default on, and it's what you want when feeding an edit image, so the model doesn't crop your composition to the render size.
  • layout_bboxes - a wildcard socket. The pack leaves it untyped on purpose; it's where region/layout boxes go if you're driving composition explicitly, and the template leaves it unconnected.

Settings that work

The community numbers for the open checkpoint: 50 steps at guidance 5.0 for the full model, and 28 steps at guidance 0 for the Dev variant. The node's cfg_scale default of 4 sits between them, which is a reasonable start for a first look. Prompts are natural language and the model likes specifics - it was built for long text, so a paragraph beats a tag list here. There's an optional reasoning-style prompt agent in the ecosystem; you can approximate it by writing your own step-by-step description.

Install

# Manager: search "DiffSynth-ComfyUI" → Install → restart
pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes && git clone https://github.com/modelscope/DiffSynth-ComfyUI.git

Template tab → DiffSynth HiDream O1 workflow gives you the two ModelConfigs, the Loader and this node with 50 steps at 2048 already set. That is the whole graph.

Troubleshooting

Slow isn't broken - minutes per 2048px image is the expected cost, and num_inference_steps is the dial. If an edit run ignores your instruction and redraws everything, the levers here are cfg_scale and steps: too few steps leaves the instruction half-applied, and the Dev variant at guidance 0 needs its own step count rather than the full model's. If quality is soft, check you didn't shrink the canvas - 2048 is native, 1024 is out of distribution for a pixel-space model. And if you feed an edit image with keep_original_aspect off, expect a crop, not a repaint.

CategoryDiffSynth/inference

Inputs (14)

NameTypeDefaultDescription
pipeDIFFSYNTH_PIPE—
promptSTRING—
seedINT00–4294967295—
num_inference_stepsINT501–200—
heightINT204864–4096—
widthINT204864–4096—
negative_promptoptSTRING —
cfg_scaleoptFLOAT4.00–10000—
model_typeoptSTRINGfull—
shiftoptFLOAT3.00–10000—
noise_scaleoptFLOAT8.00–10000—
edit_imageoptIMAGE—
keep_original_aspectoptBOOLEANtrue—
layout_bboxesopt*—

Outputs (1)

NameTypeDescription
imageIMAGE—