TT Context
Collect state from anywhere, ship it down one 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
TT Context is the pack's flexible junction box for its context system. If you already have a context, it passes it through while letting you drop new state in. If you don't, it can create one from whatever you feed it. Everything about it is optional - which is both the point and the trap.
It's the TenserTensor answer to the problem rgthree's Context nodes solve: your graph has too many wires and you want to bundle a bundle of state into a single object that travels down one connection. Where TT Base Context insists on the four core components up front, TT Context is the free-form version: plug in a context, a model, a CLIP, conditioning, a seed - whatever you happen to have - and it merges it all.
What's optional (everything)
The inputs, all optional: context, workflow_config, model, clip, vae, positive, negative, latent, image, seed, steps, cfg, sampler_name, scheduler. Feed it an existing context plus a new seed, and it updates just the seed. Feed it nothing but a model and a VAE, and it builds a minimal context from those.
The outputs mirror the inputs: CONTEXT plus individual sockets for WORKFLOW_CONFIG, MODEL, CLIP, VAE, POSITIVE, NEGATIVE, LATENT, IMAGE, SEED, STEPS, CFG, SAMPLER_NAME, SCHEDULER. So it also works as a breakout - a way to pull individual values back out of a context if something downstream wants a plain wire.
When to reach for it
This is the node you reach for mid-graph when you want to merge in a piece of state. Example: you're in a context flow, a ControlNet branch just produced a conditioning, and you want that in the context without rebuilding everything - TT Context takes your context and the new positive/negative, and the updated bundle continues. It's also the friendliest entry point if you want to try the context pattern without committing to TT Base Context's required-input discipline.
The honest warning: with all inputs optional, it's easy to build a context that's silently missing something, and downstream nodes will error at execution with "X is required" - the fix is tracing which optional field you forgot to feed. Also, this is a proprietary TT_CONTEXT socket, so it only talks to other TenserTensor context nodes. The breakout outputs (the plain MODEL, LATENT, etc. sockets) are standard types and portable; the context itself is not.
Install and the V1 note
cd ComfyUI/custom_nodes
git clone https://github.com/tenser-tensor/ComfyUI-TenserTensor
or ComfyUI Manager → "TenserTensor" → install → restart. Deps: gguf, kornia.
Standard for this pack: it's a legacy V1 node, parked in Deprecated/ after the migration to ComfyUI's API V3, with removal planned for a future major release. It works today and it's arguably the most useful of the pack's V1 context nodes for exploring the pattern - just don't build a workflow you'll rely on for years without noting the deprecation.
Inputs (14)
| 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 |
Outputs (14)
| 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 | — |