Nodes/duckcomfy personal nodes/From DuckComfy Globals
ComfyUI Node

From DuckComfy Globals

Unpacking the whole generation state

By duckcomfy·Created about a year ago·Updated 10 months ago· 0
From DuckComfy Globals
  • globals
  • model
  • clip
  • vae
  • positive
  • negative
  • seed
  • sampler_name
  • scheduler
  • steps
  • cfg

From DuckComfy Globals takes a single BASIC_PIPE - a bundle that carries your model, clip, VAE, both conditionings, and sampler settings in one wire - and unpacks it into ten separate outputs. It's the read side of a tiny context bus: upstream, a ToDuckComfyGlobals node (same pack) bundles everything together; here you pull out exactly what each downstream node needs.

If your workflow has one checkpoint loader feeding a sampler, a second sampler, a VAE decoder, and a text encoder, that's a dozen wires crisscrossing the canvas. The context-bus pattern collapses all of it into one bundle wire that travels the graph, and you unpack it at the points of use. This node exists so you can get back to individual wires where you need them - the "explode" half of "combining and exploding all in a single node," to borrow rgthree's phrasing for the same design.

The input and the ten outputs

  • globals - a BASIC_PIPE, produced by ToDuckComfyGlobals (which itself takes model, clip, vae, positive, negative, and a ksampler-settings bundle from the pack's ToKSamplerSettings).
  • Outputs: model, clip, vae, positive, negative, seed, sampler_name, scheduler, steps, cfg.

So one bundle wire in gives you everything a KSampler plus a VAE Decode plus a text encode need. Wire sampler_name, scheduler, steps, cfg, and seed into a sampler; model into the same sampler; vae into a decode; positive/negative into the sampler's conditioning inputs. Everything traces back to the single load point.

The one real weakness: stale context

This is the known failure mode of every context bus, and it's worth internalizing. Because the bundle is opaque, it's easy to unpack a model from a globals pipe that was assembled before a LoRA load or a model patch that happened further down the graph - and silently run the base weights. With explicit wires you'd see the LoRA wasn't connected. With a pipe you can't, because the connection is there and the contents are what's wrong. Use the pipe for the bulk of the graph where legibility wins, but when you're actively patching the model (LoRA, ControlNet, attention couples), pull the model out on an explicit wire in that region so you can see what feeds what.

Install

Part of duckcomfy personal nodes. ComfyUI Manager → search "duckcomfy personal nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/duckcomfy/duckcomfy_personal_nodes

Restart ComfyUI. No pip dependencies, no model downloads - this is one of the few nodes in the pack that looks genuinely authored rather than lifted, though the pattern it implements is everywhere in the ecosystem (Efficiency Nodes and Easy-Use thread similar pipes).

Gotchas

The BASIC_PIPE type is this pack's own, so FromDuckComfyGlobals only connects to ToDuckComfyGlobals (or anything else that emits the same pipe type) - it won't accept another pack's context object. And if a bundle was built with a ksampler_settings wire left unconnected, unpacking it errors, so keep the whole chain wired. Also, a full 10-output unpack is overkill at the top of a simple graph; reach for it when the wire count is genuinely the problem, not as a default.

Categoryduckcomfy

Inputs (1)

NameTypeDefaultDescription
globalsBASIC_PIPE

Outputs (10)

NameTypeDescription
modelMODEL
clipCLIP
vaeVAE
positiveCONDITIONING
negativeCONDITIONING
seedINT
sampler_nameeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2
schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal
stepsINT
cfgFLOAT