Nodes/ComfyUI-PainterLTXV2/PainterSamplerLTXV
ComfyUI Node

PainterSamplerLTXV

The KSampler that actually understands LTX-2's two latents

By princepainter·Created 8 months ago·Updated 7 months ago· 105
PainterSamplerLTXV
  • model
  • positive
  • negative
  • latent_image
  • video_latent
  • audio_latent
  • sigmas
  • latent
  • video_latent
  • audio_latent
add_noise
noise_seed0
steps20
cfg8.0
sampler_name
scheduler
start_at_step0
end_at_step10000
return_noise

A stock KSampler will happily sample an LTX-2 latent and silently throw away the audio half. LTX-2 doesn't keep video and sound in separate tensors - they live together in one nested latent bundle, and most samplers don't know that. PainterSamplerLTXV is a full KSampler clone that does: it takes the split video and audio latents apart, recombines them for sampling, and hands them back separately on the other side. It's the sampling half of the pack, and it's built to sit right after PainterLTX2V or its Plus sibling.

What's different from the stock sampler

Two things, really. First, the audio-video handling: feed it video_latent and audio_latent as separate optional inputs and it bundles them into the nested tensor before sampling, then unbundles them again into latent, video_latent, and audio_latent outputs - so a dual-sampler workflow (separate video and audio passes) can pick up exactly what it needs.

Second, and this is the feature the author actually cares about: external sigmas. There's an optional sigmas input, and the schema's own tooltip is unambiguous - when connected, the scheduler parameter is ignored. Plug in a custom sigma ramp and the node switches to sample_custom, slicing the ramp by your start/end step values. That's the escape hatch for custom sampling schedules and partial-denoising workflows that a fixed scheduler can't express.

The inputs that matter

It's a full KSampler parameter set, so the list is long, but you'll touch a fraction of it:

  • model, positive, negative, latent_image - the non-negotiables. latent_image is the video latent from the PainterLTX2V/Plus nodes.
  • sampler_name, scheduler, steps, cfg - the standard tuning knobs. The cfg default is 8, which is right for dev checkpoints; the distilled LTX builds want CFG ~1 with 8 steps and euler. Set it per checkpoint, not per habit.
  • start_at_step / end_at_step - slice the sampling trajectory for partial denoising or latent continuation.
  • sigmas - the power tool. Connect a custom sigma ramp and the scheduler dropdown stops mattering.
  • add_noise, noise_seed, return_noise - noise control. return_noise toggles full-denoise behavior for workflows that want the noisy intermediate back.

Outputs are latent plus split video_latent and audio_latent, which feed any LTX video VAE decode node on the way to a video file.

Two gotchas worth knowing

First, this node is the most recent-ComfyUI-dependent of the three. It's written against the new comfy_api extension API (io.Schema, ComfyExtension) and imports comfy.nested_tensor. If your ComfyUI predates native LTX-2 audio support, the whole pack fails to import - update ComfyUI, don't chase the pack.

Second, a small quirk in the shipped code: the add_noise "disable" option is effectively a no-op - both branches of the toggle end up leaving noise enabled. For the usual LTX flow (sampling from a full-noise empty latent) that never bites you, but don't lean on it for a true img2img-style pass without checking.

Install

No pip requirements - pure ComfyUI core. ComfyUI Manager (search "PainterLTXV2") or:

cd ComfyUI/custom_nodes/
git clone https://github.com/princepainter/ComfyUI-PainterLTXV2.git

then restart. It shows up under sampling, not alongside the other two in latent/video/ltxv. Models-wise you need an LTX checkpoint and VAE as always, plus an audio VAE if you're chasing the audio outputs. The pack's reputation precedes it here too: it was one of the first samplers that made LTX-2's audio-video path genuinely usable, which is exactly why the early adopters who hit LTX-2's rough first week recommend it.

Categorysampling

Inputs (16)

NameTypeDefaultDescription
modelMODEL
add_noiseCOMBO2 options: enable, disable
noise_seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.00–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
start_at_stepINT00–10000
end_at_stepINT100000–10000
return_noiseCOMBO2 options: disable, enable
video_latentoptLATENT
audio_latentoptLATENT
sigmasoptSIGMASOptional external sigmas input. When connected, scheduler parameter will be ignored

Outputs (3)

NameTypeDescription
latentLATENT
video_latentLATENT
audio_latentLATENT