Nodes/DiffSynth-ComfyUI/DiffSynth: SenseNova U1 Image Inference
ComfyUI Node

DiffSynth: SenseNova U1 Image Inference

4K generation and editing on an 8B model that thinks first

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: SenseNova U1 Image Inference
  • pipe
  • edit_image
  • image
◄prompt►
◄seed0►
◄num_inference_steps50►
◄height2048►
◄width2048►
◄cfg_scale4.0►
◄shift3.0►
◄think_modefalse►

Most ComfyUI graphs are text-in, pixels-out with a sampler wedged in the middle. This one is text-in, reasoning out loud, pixels-out - and it defaults to 2048×2048, which is a polite warning about what kind of node you just added to your canvas.

What SenseNova U1 is

It's an 8B "native unified multimodal" checkpoint from SenseTime's OpenSenseNova team, hosted on ModelScope as SenseNova/SenseNova-U1.5-8B-MoT, Apache 2.0. Unified is the operative word: generation and editing are the same model, so a prompt can produce an image from nothing or transform the one you connect to edit_image. The things its own card brags about are the honest uses - text-dense layouts, infographics, bilingual (Chinese and English) text rendering, and native 4K output. It's also one of the more credible small-model entrants in an ecosystem where the interesting question stopped being "how big" and started being "what does it run on."

You'd reach for it over Qwen-Image or Z-Image when the image is meant to say something - posters, diagrams, labelled charts - or when you need one node that both generates and edits.

How it works

The node drives DiffSynth-Studio's SenseNovaU1ImagePipeline. Positive prompt, negative prompt, two denoise passes through the DiT with classifier-free guidance at cfg_scale 4, a flow-matching scheduler whose timestep spacing you control with shift. The twist is think_mode: with it on, the model runs a reasoning pass on the positive branch before denoising - the pipeline literally generates a chain of thought, closes it with a </think> token, and conditions the image on that. The negative branch doesn't get one, which is why the mode shows up as a quality (and time) knob rather than a symmetric setting.

Editing rides the same call: edit_image is pushed in as pixel values and the prompt's image placeholders get expanded against its grid.

The inputs that matter

  • pipe - required. Comes from DiffSynth: SenseNova U1 Image Loader; this node does nothing on its own.
  • prompt - required, multi-line. Natural language, not tags. For edits, describe the change.
  • height and width - both default to 2048. This is the 4K-native model, but start at 1024 or 1536 while you're dialling a prompt in; the token count is quadratic and so is your patience.
  • num_inference_steps (50), seed - the usual pair.
  • cfg_scale (4) - real guidance, unlike the distilled Turbo models where negatives are dead weight at CFG 1. Which also means shift (3) is worth leaving alone until you've got a baseline image.
  • think_mode - off by default. On makes it reason first: better on complex, multi-constraint prompts, slower and occasionally chattier in a way that leaks into composition. Try both on the same seed before deciding.
  • edit_image - connect an image and this stops being a generator.

Output is one image socket. Straight into Save Image, or into a detailer if you're being fancy.

Install

Manager → DiffSynth-ComfyUI → install → restart, or:

pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes && git clone https://github.com/modelscope/DiffSynth-ComfyUI.git

The weights (SenseNova/SenseNova-U1.5-8B-MoT) come down when the loader's ModelConfigs execute - 8B parameters plus the companion files, so call it a substantial download. Notice the example graph uses two ModelConfigs against that repo: one for model*.safetensors and one with ./ as the pattern, which pulls the whole repo directory (configs, tokenizer files, and everything else the pipeline needs). Skip the second and you'll get cryptic failures at prompt-encoding time.

Common issues

  • Slow first render. 50 steps at 2048² is a lot of latent tokens. Drop to 1024², 20 steps, one think_mode toggle at a time.
  • Editing without edit_image. You'll get generated content that vaguely resembles your intent, not an edit. Connect the image.
  • Text that comes out garbled. The model is good at text, not magic; put the literal string in quotes in the prompt and keep it short.
  • Framework drift. These input sockets are read off your installed diffsynth at startup. Upgrade the library, restart ComfyUI, and expect the node's shape to shift with it.
CategoryDiffSynth/inference

Inputs (10)

NameTypeDefaultDescription
pipeDIFFSYNTH_PIPE—
promptSTRING—
seedINT00–4294967295—
num_inference_stepsINT501–200—
heightINT204864–4096—
widthINT204864–4096—
cfg_scaleoptFLOAT4.00–10000—
shiftoptFLOAT3.00–10000—
think_modeoptBOOLEANfalse—
edit_imageoptIMAGE—

Outputs (1)

NameTypeDescription
imageIMAGE—