Nodes/ComfyUI-GRAG-ArchAi3D/🎚️ GRAG Unified Controller v3.0
ComfyUI Node

🎚️ GRAG Unified Controller v3.0

The full control panel, for when you actually need it

By amir84ferdosΒ·Created 10 months agoΒ·Updated 10 months agoΒ· 20
🎚️ GRAG Unified Controller v3.0
  • conditioning
  • conditioning
β—„enable_gragfalseβ–Ί
β—„control_modesimpleβ–Ί
β—„presetCustomβ–Ί
β—„lambda_global1.00β–Ί
β—„delta_global1.05β–Ί
β—„per_layer_enabledfalseβ–Ί
β—„layer_strategystructure_preservingβ–Ί
β—„lambda_start0.90β–Ί
β—„lambda_end1.30β–Ί
β—„delta_start0.90β–Ί
β—„delta_end1.30β–Ί
β—„total_layers60β–Ί
β—„adaptive_enabledfalseβ–Ί
β—„adaptive_schedulesmooth_transitionβ–Ί
β—„multiplier_start0.80β–Ί
β—„multiplier_end1.50β–Ί
β—„multi_resolution_enabledfalseβ–Ί
β—„tier_presetv221_visibleβ–Ί
β—„tier1_resolution512β–Ί
β—„tier1_lambda1.00β–Ί
β—„tier1_delta1.00β–Ί
β—„tier2_resolution4096β–Ί
β—„tier2_lambda1.30β–Ί
β—„tier2_delta1.30β–Ί
β—„strength_multiplier1.00β–Ί

If the Simple Controller is the "just make it work" version of GRAG, this is the "give me every knob" version. The GRAG Unified Controller exposes all 54 presets plus per-layer Ξ»/Ξ΄, adaptive timestep scheduling, and the paper's two-tier multi-resolution system - 25+ parameters for precision Qwen-Image editing that you can't get from the three-knob version. But honestly? Most people should start with the Simple Controller and only graduate to this one when they hit its ceiling.

Like its little sibling, it doesn't apply GRAG itself. It embeds a configuration into the conditioning - in this case a much richer one, carrying per-layer value lists, adaptive schedules, and tier configs - and the GRAG Advanced Sampler consumes it. Same data flow: encoder β†’ controller β†’ Advanced Sampler β†’ VAE Decode.

The three modes

control_mode decides how much of the panel you actually touch:

  • simple - like the Simple Controller but with all 54 presets and manual lambda_global/delta_global instead of a strength slider. The two floats are your bias and deviation controls: 1.0 is neutral, above 1.0 enhances, below 1.0 reduces.
  • advanced - per-layer control. Flip per_layer_enabled and pick a layer_strategy (structure_preserving, semantic_focused, detail_enhancer, balanced_progressive, or custom), then set lambda_start/lambda_end and delta_start/delta_end to sweep values across transformer blocks. total_layers defaults to 60, which is exactly Qwen-Image's layer count - change it only for other models.
  • expert - adds adaptive_enabled (vary strength through the denoising process via adaptive_schedule and multiplier_start/multiplier_end) and multi_resolution_enabled (two tiers: coarse structure at ~512px, fine detail at ~4096px, each with its own Ξ»/Ξ΄).

Two traps the defaults set for you

First, and this is the sneaky one: enable_grag defaults to False here. The Simple Controller defaults to True; this one silently defaults to off. Forgot to flip it? You just ran a full pipeline that did nothing, and the console won't scream about it. Flip it first.

Second, strength_multiplier - the tooltip itself admits it's "stored, not currently applied." It's a placeholder knob. Don't waste time dialing it in and wondering why nothing changes; it's cosmetic in v3.0.

What to actually set

For a first pass in simple mode, set enable_grag to True and pick a paper preset ("Paper: Balanced" is the sane default), then nudge lambda_global/delta_global if you want more or less punch. If you're experimenting with per-layer control, structure_preserving is the gentlest strategy - it keeps early layers near neutral and lets later layers do the work, which plays nicely with the paper's stability range (Ξ»/Ξ΄ between about 0.95 and 1.15). Output is a single conditioning that feeds the Advanced Sampler's positive.

Installing and troubleshooting

It's the same pack, same install:

cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-GRAG-ArchAi3D
pip install PyYAML   # unlocks all 54 presets

Restart ComfyUI and you're set. If a preset dropdown looks short, PyYAML is missing - you're seeing the 5 hardcoded presets instead of 54. If per-layer or adaptive effects aren't showing, run the Advanced Sampler with debug_mode on; the console will tell you whether the config actually made it into the attention patches. And if a ComfyUI update starts throwing tensor-shape errors, that's the known v3.0.1 compatibility issue (Qwen attention internals changed) - update the pack, and if it persists, file an issue; it's a real bug, not you.

The honest verdict: this is the node for people who want to understand GRAG, not just use it. Per-layer and adaptive control are genuinely powerful for precise edits, but there's a reason the pack ships a Simple Controller. If you don't know why you need per-layer Ξ»/Ξ΄ yet, you don't need it yet.

CategoryGRAG/v3.0

Inputs (26)

NameTypeDefaultDescription
conditioningCONDITIONINGConditioning from any encoder (Qwen, Flux, SD3, etc.)
enable_gragBOOLEANfalseEnable GRAG attention guidance (passthrough if disabled)
control_modeCOMBOsimpleSimple: Presets only | Advanced: Per-layer | Expert: Adaptive + Multi-res
presetCOMBOCustomChoose preset or 'Custom' for manual control (54 presets available)
lambda_globalFLOAT1.000.1–2Lambda (bias strength) - 1.0=neutral, >1=enhance, <1=reduce
delta_globalFLOAT1.050.1–2Delta (deviation intensity) - 1.0=neutral, >1=amplify, <1=suppress
per_layer_enabledBOOLEANfalseEnable per-layer control (different Ξ»/Ξ΄ per transformer block)
layer_strategyCOMBOstructure_preservingPer-layer distribution strategy
lambda_startFLOAT0.900.1–2Starting Ξ» for early layers
lambda_endFLOAT1.300.1–2Ending Ξ» for late layers
delta_startFLOAT0.900.1–2Starting Ξ΄ for early layers
delta_endFLOAT1.300.1–2Ending Ξ΄ for late layers
total_layersINT601–100Total transformer layers in model (Qwen: 60)
adaptive_enabledBOOLEANfalseEnable adaptive timestep scheduling (vary strength during denoising)
adaptive_scheduleCOMBOsmooth_transitionTimestep-dependent schedule type
multiplier_startFLOAT0.800.1–2Starting multiplier (early denoising steps)
multiplier_endFLOAT1.500.1–2Ending multiplier (late denoising steps)
multi_resolution_enabledBOOLEANfalseEnable multi-resolution tiers (paper's 2-tier system)
tier_presetCOMBOv221_visibleMulti-resolution tier preset
tier1_resolutionINT512256–2048Tier 1 resolution (coarse structure)
tier1_lambdaFLOAT1.000.1–2Tier 1 Ξ» (typically 1.0 for stability)
tier1_deltaFLOAT1.000.1–2Tier 1 Ξ΄ (typically 1.0 for stability)
tier2_resolutionINT40961024–8192Tier 2 resolution (fine details)
tier2_lambdaFLOAT1.300.1–2Tier 2 Ξ» (custom editing strength)
tier2_deltaFLOAT1.300.1–2Tier 2 Ξ΄ (custom editing strength)
strength_multiplierFLOAT1.000–2Overall GRAG intensity multiplier (stored, not currently applied)

Outputs (1)

NameTypeDescription
conditioningCONDITIONINGβ€”