Nodes/ComfyUI_TJS/TJS Custom Advanced (SamplerCustomAdvanced + Endpoint)
ComfyUI Node

TJS Custom Advanced (SamplerCustomAdvanced + Endpoint)

SamplerCustomAdvanced with an early exit

By hdfhssg·Created 2 months ago·Updated 2 months ago· 23
TJS Custom Advanced (SamplerCustomAdvanced + Endpoint)
  • noise
  • guider
  • sampler
  • sigmas
  • latent_image
  • latent_x0
  • latent_xt
  • k_star
  • nfe_used
  • nfe_saving_pct
  • sigma_at_exit
early_exit_gamma0.60

TJSCustomAdvanced is the power-user member of the hdfhssg/ComfyUI_TJS pack: a faithful clone of ComfyUI's built-in SamplerCustomAdvanced with one extra input, early_exit_gamma, that enables Truncated Jump Sampling. If you know what a guider and a noise object are, you already know how to use this node - it's stock SamplerCustomAdvanced plus an early exit.

Why you'd pick this over TJSCustom

Both nodes live in the custom-sampler paradigm, but they split the flexibility question. TJSCustom hands you model, cfg, and conditioning and builds the CFG guider for you internally - simpler, less to wire. TJSCustomAdvanced makes you supply the plumbing yourself, and that's the point:

  • noise - a noise source object, e.g. RandomNoise
  • guider - the guidance object, and this is the real flex: it accepts any guider type, not just CFG. CFGGuider, BasicGuider, DualCFGGuider all work
  • sampler - a sampler object from KSamplerSelect
  • sigmas - the schedule from BasicScheduler
  • latent_image and the early_exit_gamma dial (default 0.6)

So if your workflow already runs a non-CFG guider or a custom noise source, this is the TJS node that slots in without forcing you back to the CFG pipeline.

How it works

Identical core to the other three nodes: k* = ceil(gamma * (len(sigmas) - 1)). The schedule is truncated at sigma[k*], a 0 is appended so the final step decodes the model's endpoint prediction (denoised / x0) inside the same guider.sample() call, and a callback captures both that endpoint and the raw exit state in one pass. That single-call design matters - an earlier version did the endpoint decode as a separate sampling call and the extra pipeline overhead quietly ate the speed win. gamma = 1.0 runs the full schedule, equivalent to stock.

Outputs and a worked layout

Outputs are the pack-wide six: latent_x0 → VAE Decode, latent_xt (the noisy exit latent), and the diagnostics k_star, nfe_used, nfe_saving_pct, sigma_at_exit. A typical graph, straight from the node's docstring:

BasicScheduler → sigmas
CFGGuider      → guider
KSamplerSelect → sampler
RandomNoise    → noise

...all into TJSCustomAdvanced, then latent_x0 out to the decoder. 30 sigmas at gamma=0.6k*=18, 19 NFE, ~37% saved.

Install

No dependencies, no model downloads:

cd ComfyUI/custom_nodes
git clone https://github.com/hdfhssg/ComfyUI_TJS

Or search "ComfyUI_TJS" in Manager, then restart. Nodes appear under sampling/TJS.

The fine print

This is a brand-new research pack - July 2026 commits, zero community footprint, and the arXiv paper it cites is dated 2026. The tested-model list (SDXL, SD3.5M, Z-Image-Turbo, Anima, Krea2, LTX-2B, FLUX.2-Klein FP8, Qwen-Image-Edit) is reassuringly broad across diffusion and flow wrappers, but there's no crowd-sourced tuning lore yet. Start at gamma=0.6, compare against stock SamplerCustomAdvanced on the same seed, and expect quality to slide below ~0.4. One last tip: the source guards against gamma=1.0 and k* past the schedule end, so you can't accidentally waste an NFE on a no-op step - a small courtesy not every early pack bothers with.

Categorysampling/TJS

Inputs (6)

NameTypeDefaultDescription
noiseNOISENoise source (e.g. Random Noise).
guiderGUIDERGuider object (e.g. CFGGuider, BasicGuider).
samplerSAMPLERSampler object (e.g. from KSamplerSelect).
sigmasSIGMASSigma schedule (e.g. from BasicScheduler).
latent_imageLATENT
early_exit_gammaFLOAT0.600.05–1TJS early-exit ratio. k* = ceil(gamma * steps).

Outputs (6)

NameTypeDescription
latent_x0LATENT
latent_xtLATENT
k_starINT
nfe_usedINT
nfe_saving_pctFLOAT
sigma_at_exitFLOAT