Nodes/Umbra Nodes/OmniGen2 Detailer Sampling Provider (Umbra)
ComfyUI Node

OmniGen2 Detailer Sampling Provider (Umbra)

OmniGen2 detail crops with dual-CFG guidance — regular or nested

By Nocturne-Ai-Labs·Created 2 months ago·Updated 10 days ago· 0
OmniGen2 Detailer Sampling Provider (Umbra)
  • model
  • cond1
  • cond2
  • negative
  • sampling_provider
cfg_conds5.0
cfg_cond2_negative2.0
styleregular
sampler_nameeuler
schedulersimple

OmniGen2 is the unified text-and-image generation family from Alibaba's Tongyi/X-PLUG side of the ecosystem, and its conditioning isn't a simple positive/negative pair - it runs a dual-CFG guider with two conditioning streams (cond1 and cond2) guided against a negative, and it comes in two flavors (regular and nested) that change how those conditions interact. OmniGen2 Detailer Sampling Provider (Umbra) wires exactly that machinery into the Umbra Image Detailer, so each crop is sampled the way the model expects rather than through a generic pass.

How it works

Wire its single sampling_provider output into the Image Detailer's sampling_provider input and per-crop sampling runs through the provider:

  • DualCFGGuider - this is the distinctive part. Sampling uses ComfyUI's DualCFGGuider with three conditioning inputs: cond1, cond2, and negative, plus two CFG values. cfg_conds (default 5.0) is the guidance strength applied to the conditioning, and cfg_cond2_negative (default 2.0) is the extra guidance for the second condition against the negative. Two conditions, two CFGs - that's the OmniGen2 recipe.
  • regular vs. nested - the style dropdown (default regular) changes how the dual-CFG guidance is structured. nested stacks the conditioning layers differently; it's the mode you try when the model's docs or workflow call for it.
  • Conditioning cropping - the provider implements the detailer contract properly: when a crop is prepared, cond2 gets cropped to the region (via the crop-conditioning callback) while cond1 and the negative stay whole. That's what makes the detail region's second condition actually about the region.
  • Sampler and scheduler - the sampler_name (default euler) and scheduler (default simple) dropdowns, applied on basic sigmas at the stage's steps/denoise.

Inputs: model, cond1, cond2, negative, cfg_conds, cfg_cond2_negative, style, sampler_name, scheduler. Output: sampling_provider → Image Detailer.

How to use it

  1. Build your OmniGen2 conditioning (two conditions and a negative) and load the model.
  2. Add this node; wire model, cond1, cond2, negative. Defaults are 5.0 / 2.0, style regular, euler/simple.
  3. Add Image Detailer (Umbra UI), wire everything, connect sampling_provider.
  4. Tune cfg_conds/cfg_cond2_negative based on how strongly the region needs to match the second condition. Switch style to nested only with a reason.

Installing it

Part of Umbra-Nodes, the ComfyUI companion pack for Umbra Studio (NocturneLabs' open-source local AI suite). ComfyUI Manager → search "Umbra Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Nocturne-Ai-Labs/Umbra-Nodes

Restart ComfyUI. The detailer still requires Impact Pack + Impact Subpack and the detector/SAM model files from the Image Detailer article.

Gotchas

This is the provider with the most required inputs, and the failure mode is leaving one unwired - cond1, cond2, and negative all need real conditioning, not placeholders, or the guider can't build. The crop-aware behavior means the region's cond2 is cropped to the mask, so if your second condition is a global description (not region-specific), results may look wrong - that's the model's design, not the node's bug. And nested is genuinely niche: if you don't know why you'd pick it, regular is where everyone starts.

CategoryUmbra/Detailer/Providers

Inputs (9)

NameTypeDefaultDescription
modelMODEL
cond1CONDITIONING
cond2CONDITIONING
negativeCONDITIONING
cfg_condsFLOAT5.00–100
cfg_cond2_negativeFLOAT2.00–100
styleCOMBOregular2 options: regular, nested
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3

Outputs (1)

NameTypeDescription
sampling_providerUMBRA_DETAILER_SAMPLING_PROVIDER