LTXV Vid2Vid Encode
The vid2vid encoder LTX never shipped in its example workflows
- video_frames
- vae
- latent
- frame_count
LTX Video is the speed demon of the local video scene - a DiT model that renders hundreds of frames in seconds on a mid-range card. But for a long time, the stock ComfyUI LTX example workflows were all about text-to-video and image-to-video. If you wanted to take an existing video and regenerate it - vid2vid, restyle, upscale-in-time, that kind of thing - you had to encode your footage into LTX latent space yourself, and there wasn't a tidy node for it. LTXV Vid2Vid Encode is that missing node: feed it a video's frames and it hands you back an LTX latent, ready to drop straight into your sampler.
The name tells you the job: it's the encode step. The node's own docstring describes it as a drop-in replacement for EmptyLTXVLatentVideo in vid2vid pipelines - you swap the "empty latent" node for this, wire your footage in, and control the strength of the regeneration through the sampler's scheduler (the README-adjacent comments suggest a denoise around 0.3). Because LTX is so fast, vid2vid on it is a genuinely fun workflow: restyle an existing clip, or use it as a temporal upscaler pass.
How it works
Mechanically it does the three things LTX needs before anything can happen. First, it crops the frame count to the 8n+1 shape LTX's temporal compression expects (the VAE compresses time by 8, so valid lengths are 9, 17, 25...). Second, it resizes to 32-divisible dimensions - or auto-detects from the source when you set width/height to 0, rounding your source resolution down to the nearest multiple of 32. Third, it runs the frames through the LTX VAE to produce the latent. It also strips any alpha and only encodes RGB.
The inputs that matter
video_frames(IMAGE) - your footage as a batch of frames (the pack's video loaders, or any frame sequence, work here).vae- the LTX VAE from your checkpoint setup.width/height(defaults 768×512) - target size, must be divisible by 32. Set either to 0 to auto-derive from the source, rounded to the nearest 32.
Two outputs: latent, which replaces your EmptyLTXVLatentVideo, and frame_count, an INT reporting how many frames actually made it in - useful for checking whether the 8n+1 crop chopped the tail of your clip.
Install
This node is part of the AnotherUtils pack, but it's conditional: it only registers on ComfyUI builds that expose the newer video API (comfy_api.latest). Install the pack via Manager (search AnotherUtils) or:
cd ComfyUI/custom_nodes
git clone https://github.com/marcoc2/ComfyUI-AnotherUtils.git
Then restart. If the node is missing from your menu, your ComfyUI is older than the new IO.Video API - update ComfyUI itself first. It also needs native LTXV support (comfy_extras.nodes_lt), which ComfyUI has shipped since LTX launched in late 2024, so a current install is fine.
Common issues
The 8n+1 crop is the silent gotcha - feed it 30 frames and you get 25, with no error, just the frame_count output telling you. If your output video is shorter than expected, that's why. Auto-dimension mode rounds down, so an odd source resolution can come back smaller than you intended; set explicit width/height if you need exact control. And remember denoise strength lives in your scheduler, not this node - a denoise of 0 means you get your source back untouched, and 1.0 ignores it almost entirely. The KB's LTX docs are blunt that LTX rewards experimentation with settings, and vid2vid is no exception.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| video_frames | IMAGE | — | |
| vae | VAE | — | |
| width | INT | 76864–4096 | Target width. Must be divisible by 32. Set to 0 to use source width (rounded to nearest 32). |
| height | INT | 51264–4096 | Target height. Must be divisible by 32. Set to 0 to use source height (rounded to nearest 32). |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| frame_count | INT | — |