Nodes/Tenser Tensor/TT Context
ComfyUI Node

TT Context

Collect state from anywhere, ship it down one wire

By tenser-tensor·Created 7 months ago·Updated 5 months ago· 0
TT Context
  • 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
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.

CategoryTenserTensor/Context

Inputs (14)

NameTypeDefaultDescription
contextoptTT_CONTEXT
workflow_configoptTT_WORKFLOW_CONFIG
modeloptMODEL
clipoptCLIP
vaeoptVAE
positiveoptCONDITIONING
negativeoptCONDITIONING
latentoptLATENT
imageoptIMAGE
seedoptINT
stepsoptINT
cfgoptFLOAT
sampler_nameoptCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
scheduleroptCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3

Outputs (14)

NameTypeDescription
CONTEXTTT_CONTEXT
WORKFLOW_CONFIGTT_WORKFLOW_CONFIG
MODELMODEL
CLIPCLIP
VAEVAE
POSITIVECONDITIONING
NEGATIVECONDITIONING
LATENTLATENT
IMAGEIMAGE
SEEDINT
STEPSINT
CFGFLOAT
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