Nodes/ComfyUI-OmniGen/OmniGen 🖼️
ComfyUI Node

OmniGen 🖼️

OmniGen's promise of no-ControlNet image control

By 1038lab·Created 2 years ago·Updated about a year ago· 300
OmniGen 🖼️
  • image_1
  • image_2
  • image_3
  • IMAGE
preset_promptNone
prompt
model_precisionAuto
memory_managementBalanced
guidance_scale3.5
img_guidance_scale1.8
num_inference_steps50
separate_cfg_infertrue
use_input_image_size_as_outputfalse
width512
height512
seed0
max_input_image_size1024

Most ComfyUI "image editing" means stacking adapters: a ControlNet here, an IPAdapter there, a LoRA for the style, three masks, and a prayer. OmniGen tries to collapse all of that into a single model - and this node is the entire model in one box. You feed it a prompt plus up to three images and it handles style transfer, image combining, pose/depth following, even deblurring, with zero extra adapters. Describe the edit in plain language and it just… does it. That's the pitch, and when it lands it genuinely feels like cheating.

Reality check before you get excited: OmniGen is a 10B-parameter diffusion model from VectorSpaceLab that got a burst of hype in late 2024 and then quietly faded. It's slow - community reports put it slower than Flux even on a 4090, and people trying it on 8GB cards talked about days per generation. This node is a wrapper from 1038lab (the same person behind the well-known ComfyUI-RMBG pack), and it's honest about the weight: the first run downloads ~15.5GB. You're not here for speed, you're here for the one-shot "transform image_1 into an oil painting" workflows that would otherwise need a chain of five nodes.

How it works

Under the hood it's a single call into OmniGenPipeline. Your input images get written to temp PNGs, and the node rewrites your prompt so image_1 / image_1 references become the <img><|image_1|></img> tokens OmniGen expects. On first launch it downloads the OmniGen library code from GitHub and the weights from silveroxides/OmniGen-V1 into ComfyUI/models/LLM/OmniGen-v1/ - no manual model hunting.

It also picks your precision for you: under 8GB VRAM it auto-selects FP8, otherwise FP16. The FP8 checkpoint is a separate file (model-fp8_e4m3fn.safetensors), so don't assume flipping the dropdown is free - switching precision can trigger another download.

The inputs that matter

Most of the 13 required fields you can leave alone. The ones you'll actually touch:

  • prompt - your text instruction. Reference inputs as image_1, image_2, image_3. The README's <img><|image_n|></img> form works too.
  • preset_prompt - 31 canned prompts shipped in the node ("Deblur image", "Depth map to image", "Combine 2 People in anime style"). Honest verdict: these exist to teach you how OmniGen prompt-writing works, and they're great for that.
  • image_1 / image_2 / image_3 (optional) - your input images.
  • guidance_scale (3.5) and img_guidance_scale (1.8) - text vs. image conditioning strength. Crank img guidance up when edits drift from the source.
  • num_inference_steps (50), width/height (512), seed - the usual dials.

The memory_management enum is worth knowing: Speed Priority keeps the pipeline in VRAM between runs, Memory Priority offloads to CPU and rebuilds each time (slower, but survivable on 8GB). The output is a single IMAGE tensor - wire it anywhere you'd send a normal generated image.

Install

Via ComfyUI Manager, search "ComfyUI-OmniGen" and restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-OmniGen.git
cd ComfyUI-OmniGen
pip install -r requirements.txt

Then restart ComfyUI. The requirements are modest (torch, transformers, accelerate, einops, safetensors, huggingface_hub - nothing exotic). The model download on first use is the real install step. It's ~15.5GB; go make coffee.

Where people get burned

The #1 issue is patience: that 15.5GB auto-download happens on first node use, and ComfyUI looks hung while it streams. It isn't. Let it finish, then check models/LLM/OmniGen-v1/ for the safetensors.

The #2 issue is expectations. The "optimized for 8GB cards" framing is doing a lot of work - people running 8GB reported generation times in hours-to-days. If you're on a 3070 or below, plan for slow and use Memory Priority. You may also see a warning that PyTorch wasn't compiled with FlashAttention; it's a slowdown signal, not a crash.

And a fair heads-up: if what you actually want is reliable identity-preserving image editing, the community has largely moved on to newer options like OmniGen2 or Flux Kontext. This node is the fun way to explore what OmniGen can do - not a production-speed pipeline. Frame it that way and it's a delight.

Category🧪AILab/OmniGen

Inputs (16)

NameTypeDefaultDescription
preset_promptCOMBONone31 options: None, 20yo woman looking at viewer, Transform image_1 into an oil painting (image_1), Transform image_1 into an Anime (image_1), The girl in image_1 sitting on rock on top of the mountain (image_1), Combine 2 People in anime style (image_1, image_2), +25
promptSTRING
model_precisionCOMBOAuto3 options: Auto, FP16, FP8
memory_managementCOMBOBalanced3 options: Balanced, Speed Priority, Memory Priority
guidance_scaleFLOAT3.51–5
img_guidance_scaleFLOAT1.81–2
num_inference_stepsINT501–100
separate_cfg_inferBOOLEANtrue
use_input_image_size_as_outputBOOLEANfalse
widthINT512128–2048
heightINT512128–2048
seedINT00–18446744073709550000
max_input_image_sizeINT1024128–2048
image_1optIMAGE
image_2optIMAGE
image_3optIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE