Nodes/rgthree's ComfyUI Nodes/Context Merge Big (rgthree)
ComfyUI Node Runs on cloud

Context Merge Big (rgthree)

Context Merge Big (rgthree)

By rgthree·Created 3 years ago·Updated 13 days ago· 3,294
Context Merge Big (rgthree)
    • CONTEXT
    • MODEL
    • CLIP
    • VAE
    • POSITIVE
    • NEGATIVE
    • LATENT
    • IMAGE
    • SEED
    • STEPS
    • STEP_REFINER
    • CFG
    • CKPT_NAME
    • SAMPLER
    • SCHEDULER
    • CLIP_WIDTH
    • CLIP_HEIGHT
    • TEXT_POS_G
    • TEXT_POS_L
    • TEXT_NEG_G
    • TEXT_NEG_L
    • MASK
    • CONTROL_NET

    Context Merge Big takes two or more rgthree Context bundles, overlays them into a single combined bundle, and then hands you both that merged bundle and every field inside it exploded back out onto individual wires. It's the "combine two flows into one, then unpack everything" node. If you've ever had a base setup on one Context and a handful of overrides on another and wanted to fold them together without a spaghetti of reroutes, this is the node.

    First, what a Context even is

    rgthree's Context nodes exist to solve one problem: big workflows turn into an unreadable mess of wires. A Context bundles a whole pile of connections - model, clip, vae, your positive and negative conditioning, latent, image, seed, and more - into one fat wire you drag across the graph. Downstream you "explode" it back into the pieces you need. It's the same idea other suites call a "pipe," just easier to merge and more interoperable with stock ComfyUI nodes.

    The plain Context node carries a core set. The Big variant carries the extended set - steps, cfg, sampler, scheduler, the SDXL-style split text fields, and so on - and the two are backwards compatible, so a value you set on a Big will pass through a normal Context node just fine. Merge Big is the merging member of that family.

    How the merge works

    You feed it several Context inputs and it walks them into one output bundle, slot by slot. Where a later input has a real value, it fills or overrides what came before; where it's empty, the earlier value carries through. That's the whole trick - "pass along general flow properties, and merge in new data," in the author's own framing. So the common pattern is: one Context holds your baseline (checkpoint, vae, base prompt), a second Context holds just the couple of things you're changing this run, and Merge Big lays the second over the first.

    Because a muted upstream node produces None, you can also use muting to make one of the merge inputs go empty on purpose - which is how these nodes play nicely with rgthree's Fast Muter dashboard.

    The outputs that matter

    The first output is CONTEXT - the merged bundle, ready to hand to the next Context-aware node so the wire stays tidy. Everything after it is the same bundle already unpacked, so you can tap what you need without an extra explode node: MODEL, CLIP, VAE, POSITIVE and NEGATIVE (both CONDITIONING), LATENT, IMAGE, and SEED.

    Because it's the Big merge, you also get the extended fields: STEPS, STEP_REFINER, CFG, SAMPLER, SCHEDULER, CKPT_NAME, CLIP_WIDTH and CLIP_HEIGHT, the four SDXL-style prompt strings TEXT_POS_G / TEXT_POS_L / TEXT_NEG_G / TEXT_NEG_L, plus MASK and CONTROL_NET. Wire MODEL and the two CONDITIONING slots into your KSampler, VAE into the decode, and keep the CONTEXT wire flowing onward for the next section of the graph.

    Installing it

    It ships in rgthree-comfy. Easiest path is ComfyUI Manager - search rgthree's ComfyUI Nodes and install. Or clone it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/rgthree/rgthree-comfy.git
    

    Restart ComfyUI afterward. No models, no extra Python dependencies - the whole pack is graph plumbing, not generation.

    Common issues

    Merge is not switch. This is the trap. Merge Big overlays every input into one combined bundle; if you actually want to pick one whole context and ignore the rest, that's Context Switch, not Merge. Reach for Merge when you're stacking, Switch when you're branching.

    Empty vs. present. A merge input only overrides when it carries a real value. If an override "isn't taking," check that the node feeding that slot is actually producing something and isn't muted - muting it is exactly what makes it drop out of the merge.

    Nodes 2.0. The pack-wide caveat applies here too. ComfyUI's Nodes 2.0 frontend rewrite (late 2025) broke rendering and the properties panel on several rgthree nodes, and issue 632 was still open into mid-2026. If this node draws wrong or its right-click properties won't open, check whether Nodes 2.0 is enabled - the standing community workaround is to leave it off and stay on the legacy canvas.

    Categoryrgthree

    Inputs (0)

    No inputs

    Outputs (23)

    NameTypeDescription
    CONTEXTRGTHREE_CONTEXT
    MODELMODEL
    CLIPCLIP
    VAEVAE
    POSITIVECONDITIONING
    NEGATIVECONDITIONING
    LATENTLATENT
    IMAGEIMAGE
    SEEDINT
    STEPSINT
    STEP_REFINERINT
    CFGFLOAT
    CKPT_NAME
    SAMPLEReuler,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
    CLIP_WIDTHINT
    CLIP_HEIGHTINT
    TEXT_POS_GSTRING
    TEXT_POS_LSTRING
    TEXT_NEG_GSTRING
    TEXT_NEG_LSTRING
    MASKMASK
    CONTROL_NETCONTROL_NET