TT SDXL Large Context
The SDXL pipeline in a single context wire
- context
- workflow_config
- model
- clip
- vae
- positive
- negative
- latent
- image
- CONTEXT
- WORKFLOW_CONFIG
- MODEL
- CLIP
- VAE
- POSITIVE
- NEGATIVE
- LATENT
- IMAGE
- SEED
- STEPS
- CFG
- SAMPLER_NAME
- SCHEDULER
- GUIDANCE
- CLIP_L_POSITIVE
- CLIP_L_POSITIVE
- CLIP_L_NEGATIVE
- CLIP_L_NEGATIVE
- ASCORE_POSITIVE
- ASCORE_NEGATIVE
- WIDTH
- HEIGHT
- TARGET_WIDTH
- TARGET_HEIGHT
SDXL graphs have a habit of collecting wires like dust. Two text encoders, two conditioning sets, an aesthetic-score pair, a size pair - it adds up fast. TT SDXL Large Context is TenserTensor's junction box for SDXL pipelines: one node where the entire pipeline state lands, and one CONTEXT wire carries it to the next context-aware node. It's the SDXL sibling of the pack's Flux version, and it does the same job with SDXL's extra baggage included.
Every input is optional, and that's the feature. You feed it whatever you have - model, clip, vae, positive/negative conditioning, a latent or image, the sampling settings, and the SDXL-specific fields - and it bundles everything into the context and re-emits it from matching outputs. The SDXL fields are where this node differs from the Flux one:
clip_l_positive,clip_g_positive,clip_l_negative,clip_g_negative- SDXL's two-encoder prompt split. Real SDXL prompting keeps the short CLIP-L summary and the detailed CLIP-G description separate, so having both lanes on the card is handy.ascore_positive/ascore_negative- the aesthetic score conditioning SDXL's base model expects. The pack's workflow settings default these to 9 (positive) and 6 (negative); 6/9 is the standard pair most SDXL pipelines use.width,height,target_width,target_height- the generation size and the target size (for hires/refiner passes). The context carries all four so a later stage knows what the image was made at.
Mechanically it's the same pattern as the Flux version: a generated schema, init_context merges what you connected into the dict, and every field is mirrored out to a labeled output. No hidden math - it's a pass-through hub. That makes it genuinely useful for debugging too: hook the outputs to a preview and you can see exactly what's in flight.
The output side mirrors the inputs: CONTEXT, WORKFLOW_CONFIG, MODEL, CLIP, VAE, POSITIVE, NEGATIVE, LATENT, IMAGE, the settings, the prompt strings, ASCORE_POSITIVE/ASCORE_NEGATIVE, and the size fields. One small wart worth knowing: the schema labels both of the CLIP-G outputs with CLIP_L names on the output list. Cosmetic, the values flow through correctly - but don't be surprised when the port labels look duplicated.
Install is the pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/tenser-tensor/ComfyUI-TenserTensor
or search "TenserTensor" in ComfyUI Manager and restart.
The same walled-garden rule as every TenserTensor context node: TT_CONTEXT and TT_WORKFLOW_CONFIG are proprietary types, so the CONTEXT wire only plugs into other nodes in this pack. The individual outputs (MODEL, CLIP, LATENT, ...) are standard types, so that's your exit door if you need to hand off to native nodes. And yes, this is the V1 class, deprecated as the pack migrates to API V3 - it works today, but the Node-suffixed context nodes are the maintained path.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| contextopt | TT_CONTEXT | — | |
| workflow_configopt | TT_WORKFLOW_CONFIG | — | |
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| vaeopt | VAE | — | |
| positiveopt | CONDITIONING | — | |
| negativeopt | CONDITIONING | — | |
| latentopt | LATENT | — | |
| imageopt | IMAGE | — | |
| seedopt | INT | — | |
| stepsopt | INT | — | |
| cfgopt | FLOAT | — | |
| sampler_nameopt | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduleropt | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| guidanceopt | FLOAT | — | |
| clip_l_positiveopt | STRING | — | |
| clip_g_positiveopt | STRING | — | |
| clip_l_negativeopt | STRING | — | |
| clip_g_negativeopt | STRING | — | |
| ascore_positiveopt | FLOAT | — | |
| ascore_negativeopt | FLOAT | — | |
| widthopt | INT | — | |
| heightopt | INT | — | |
| target_widthopt | INT | — | |
| target_heightopt | INT | — |
Outputs (25)
| Name | Type | Description |
|---|---|---|
| CONTEXT | TT_CONTEXT | — |
| WORKFLOW_CONFIG | TT_WORKFLOW_CONFIG | — |
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| POSITIVE | CONDITIONING | — |
| NEGATIVE | CONDITIONING | — |
| LATENT | LATENT | — |
| IMAGE | IMAGE | — |
| SEED | INT | — |
| STEPS | INT | — |
| CFG | FLOAT | — |
| SAMPLER_NAME | euler,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 | — |
| SCHEDULER | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |
| GUIDANCE | FLOAT | — |
| CLIP_L_POSITIVE | STRING | — |
| CLIP_L_POSITIVE | STRING | — |
| CLIP_L_NEGATIVE | STRING | — |
| CLIP_L_NEGATIVE | STRING | — |
| ASCORE_POSITIVE | FLOAT | — |
| ASCORE_NEGATIVE | FLOAT | — |
| WIDTH | INT | — |
| HEIGHT | INT | — |
| TARGET_WIDTH | INT | — |
| TARGET_HEIGHT | INT | — |