OmniGen2 Detailer Sampling Provider (Umbra)
OmniGen2 detail crops with dual-CFG guidance — regular or nested
- model
- cond1
- cond2
- negative
- sampling_provider
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
DualCFGGuiderwith three conditioning inputs:cond1,cond2, andnegative, plus two CFG values.cfg_conds(default 5.0) is the guidance strength applied to the conditioning, andcfg_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
styledropdown (defaultregular) changes how the dual-CFG guidance is structured.nestedstacks 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,
cond2gets cropped to the region (via the crop-conditioning callback) whilecond1and the negative stay whole. That's what makes the detail region's second condition actually about the region. - Sampler and scheduler - the
sampler_name(defaulteuler) andscheduler(defaultsimple) 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
- Build your OmniGen2 conditioning (two conditions and a negative) and load the model.
- Add this node; wire model,
cond1,cond2,negative. Defaults are 5.0 / 2.0, styleregular, euler/simple. - Add
Image Detailer (Umbra UI), wire everything, connectsampling_provider. - Tune
cfg_conds/cfg_cond2_negativebased on how strongly the region needs to match the second condition. Switchstyletonestedonly 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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| cond1 | CONDITIONING | — | |
| cond2 | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| cfg_conds | FLOAT | 5.00–100 | — |
| cfg_cond2_negative | FLOAT | 2.00–100 | — |
| style | COMBO | regular | 2 options: regular, nested |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sampling_provider | UMBRA_DETAILER_SAMPLING_PROVIDER | — |