JK Big Context
An SDXL-scale context bundle with G/L text and a refiner slot
- base_ctx
- base_model
- model
- base_clip
- clip
- vae
- positive
- negative
- latent
- images
- mask
- control_net_stack
- CONTEXT
- BASE_MODEL
- MODEL
- BASE_CLIP
- CLIP
- VAE
- POSITIVE
- NEGATIVE
- LATENT
- IMAGE
- SEED
- WILDCARD_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_STACK
This is the same idea as JKLilContext - bundle a pile of connections into one wire instead of running a dozen lines across your canvas - scaled up for a full SDXL-style pipeline. Where the "Lil" version carries the basics (model, clip, vae, conditioning, latent), this one adds sampler settings, a checkpoint name, dual text-encoder fields, a refiner step count, and even a control-net stack slot. It's clearly built for the base+refiner, G/L-conditioning workflows SDXL popularized, the same territory as rgthree-comfy's larger Context Big node, just this pack's own take on it.
What it carries
Every input is optional, same as JKLilContext - you fill in what you have at that point in your graph, and anything you skip just doesn't populate that slot in the bundle. Beyond the base set (base_model/model, base_clip/clip, vae, positive/negative, latent, images, seed), this node adds:
- wildcard_seed - a second seed slot, useful if you're pairing this with wildcard-prompt nodes that need their own seed separate from your sampling seed.
- steps and step_refiner - two step counts, the tell that this is meant for a two-stage base-then-refiner pipeline rather than a single pass.
- cfg, sampler, scheduler - your KSampler settings, bundled in so downstream context-flavored samplers can pull them without separate wires.
- ckpt_name - populated at runtime from your installed checkpoints.
- clip_width / clip_height - resolution conditioning, the numbers SDXL's conditioning wants to know your target size for.
- text_pos_g / text_pos_l / text_neg_g / text_neg_l - SDXL's dual-encoder text split. G and L are the two CLIP encoders SDXL runs simultaneously; a lot of SDXL-tuned workflows feed them slightly different text for better results, and this context carries both pairs.
- mask - for inpainting-flavored graphs.
- control_net_stack (typed
cnet_stack) - a slot for a bundled ControlNet stack from whatever ControlNet-stacking node you're using upstream, rather than wiring individual ControlNets in one at a time.
Outputs
Every one of the fields above comes back out as its own output too - CONTEXT (the bundle itself) plus individually named passthroughs for all fourteen-plus fields, so you can tap exactly what a given downstream node needs without unpacking the whole thing by hand. SAMPLER and SCHEDULER come back out re-typed as the full ComfyUI sampler/scheduler enum lists, which matters if you're wiring into a stock KSampler node that expects those exact enum types rather than a loose string.
Installing it
Part of kostenickj/jk-comfyui-helpers - already on comfy.icu's shared image, or cd ComfyUI/custom_nodes && git clone https://github.com/kostenickj/jk-comfyui-helpers.git and restart for a self-hosted setup. Pure graph plumbing, no model downloads or extra dependencies specific to this node. It's worth repeating for a node this deep in the pack: this is a small, low-visibility personal toolkit, not something you'll find much community discussion around - the README is your main reference.
Common issues
- Overkill for a non-SDXL pipeline. If you're not running a base+refiner SDXL setup with G/L text encoding, you almost certainly want JKLilContext instead - this node's extra fields just sit empty and add clutter.
- Empty ckpt_name or sampler/scheduler dropdowns. Populated from what's actually installed; if the dropdown looks empty or short, check your checkpoints and that ComfyUI's core sampler list loaded normally.
- G/L text left blank. If you don't fill
text_pos_g/text_pos_lseparately, downstream SDXL conditioning nodes may end up with an empty half of the split - decide up front whether you actually need per-encoder text or can just duplicate the same string into both. - control_net_stack type mismatch.
cnet_stackis a custom type that has to come from a compatible ControlNet-stacking node upstream - a plain CONTROL_NET output won't plug in here directly.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| base_ctxopt | JK_CONTEXT | — | |
| base_modelopt | MODEL | the base model without any patching or LORA applied | |
| modelopt | MODEL | model with loras applied (if any) | |
| base_clipopt | CLIP | — | |
| clipopt | CLIP | — | |
| vaeopt | VAE | — | |
| positiveopt | CONDITIONING | — | |
| negativeopt | CONDITIONING | — | |
| latentopt | LATENT | — | |
| imagesopt | IMAGE | — | |
| seedopt | INT | — | |
| wildcard_seedopt | INT | — | |
| stepsopt | INT | — | |
| step_refineropt | INT | — | |
| cfgopt | FLOAT | — | |
| ckpt_nameopt | COMBO | 0 options: | |
| sampleropt | COMBO | 34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28 | |
| scheduleropt | COMBO | 9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3 | |
| clip_widthopt | INT | — | |
| clip_heightopt | INT | — | |
| text_pos_gopt | STRING | — | |
| text_pos_lopt | STRING | — | |
| text_neg_gopt | STRING | — | |
| text_neg_lopt | STRING | — | |
| maskopt | MASK | — | |
| control_net_stackopt | cnet_stack | — |
Outputs (26)
| Name | Type | Description |
|---|---|---|
| CONTEXT | JK_CONTEXT | — |
| BASE_MODEL | MODEL | — |
| MODEL | MODEL | — |
| BASE_CLIP | CLIP | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| POSITIVE | CONDITIONING | — |
| NEGATIVE | CONDITIONING | — |
| LATENT | LATENT | — |
| IMAGE | IMAGE | — |
| SEED | INT | — |
| WILDCARD_SEED | INT | — |
| STEPS | INT | — |
| STEP_REFINER | INT | — |
| CFG | FLOAT | — |
| CKPT_NAME | — | |
| SAMPLER | euler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,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_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,ddim,uni_pc,uni_pc_bh2 | — |
| SCHEDULER | normal,karras,exponential,sgm_uniform,simple,ddim_uniform,beta,linear_quadratic,kl_optimal | — |
| CLIP_WIDTH | INT | — |
| CLIP_HEIGHT | INT | — |
| TEXT_POS_G | STRING | — |
| TEXT_POS_L | STRING | — |
| TEXT_NEG_G | STRING | — |
| TEXT_NEG_L | STRING | — |
| MASK | MASK | — |
| CONTROL_NET_STACK | cnet_stack | — |