LTX Oasis 🌴
LTX video generation without the 30-node graph
LTX is the speed tier of local video. Where Wan takes minutes per clip, LTX drafts in seconds - rougher on faces and complex motion, but unbeatable for iterating on an idea, and it's the one open model family that generates picture and audio together. That synchronized audio is why people pick it over Wan at all. The catch has always been that a working LTX workflow in ComfyUI is a sprawl: model loaders, text encoders, audio VAE, conditioning, samplers, upscalers. LTX Oasis (class LTX23Oasis, don't let the name fool you - 2.5 is supported too) stuffs all of it into one node with a dropdown-driven UI, then hands the result to the in-pack Video Oasis Viewer for playback and saving.
Same design bet as Image Oasis: the pipeline as a tool, not a graph. One optional STRING widget carries the whole node state, and there are no sockets to wire - you talk to it, it renders, and the clip lands in its scene bar.
The architecture picker is the whole game
Pick LTX 2.3 or LTX 2.5 (both distilled 22B) and the Model section reshapes itself. The one thing to get right: 2.5 takes a single text encoder - Gemma-4-12B with the LTX projection baked into one file, where 2.3 needs Gemma-3 plus a separate projection file. Hand the 2.5 file to a two-slot loader and it fails inside sd1_clip with an unpack error - the UI drops to one text-encoder picker, so following it keeps you out of trouble. Defaults differ too: 2.5 runs 24 fps at 960x544, 2.3 runs 25 fps at 1280x720. Sigmas, sampler and CFG are identical, and your saved workflows load unchanged because the class id never moved.
The frame quantum is 8n+1 - a render that's 121 frames is legal, 120 isn't - and the node's audio tools are built around it. Audio modes: Off, Generate (LTX-2's signature - the model makes sound to match), and File, where you drive video from your own track, the exact slot Audio Oasis feeds.
Chaining clips without the lurch
Continue from viewed video chains clips from whatever's in the player. Pre-1.6, a join only saw the previous clip's last frame - a still carries pose but not motion, so every cut was a fresh guess. The fix is motion context: the node pins a window of the previous clip in front of the timeline as frozen frames (9/17/25/33/41/49, where 25 is one second at 25 fps). The model reads direction, speed and gait phase out of them; the window is cropped after decode so delivered frame counts are unchanged. File mode pads the window with silence so an uploaded track still starts on frame 1; Generate mode carries the tail audio so ambient beds continue across the cut.
Prompt Beats splits the clip into local text + optional guide images on a timeline (PromptRelay attention masks) - how you get "hold on the face, then pan" instead of one flat description. Spatial Upsample renders a 2x pass; note that 2.5 has no upscaler of its own yet, so it loads the 2.3 upscaler, which is exactly what the official 2.5 two-stage workflow does.
Installing it
It's in the pack, so the install is shared:
cd ComfyUI/custom_nodes
git clone https://github.com/NikoDemon80/ComfyUI-Image-Oasis
cd ComfyUI-Image-Oasis
pip install -r requirements.txt
Restart ComfyUI, hard-refresh the browser (Ctrl+F5). ComfyUI Manager finds it as "Image Oasis". Optional extras worth knowing about before you hit them:
ComfyUI-GGUF- required for GGUF diffusion models (safetensors checkpoints work without it).ComfyUI-KJNodes- needed for LTX2 NAG (Normalized Attention Guidance) when CFG is 1 and you set a negative prompt. Distilled LTX at CFG 1 skips the uncond pass entirely, so a negative is inert through the sampler; NAG routes it another way. Empty negative at CFG 1 works without KJNodes; a non-empty one errors.llama-cpp-python(CUDA/Metal build) - the ✨ prompt enhancer, same optional setup as Image Oasis, same CPU-wheel-slow caveat.
Where people get burned
- The single-encoder 2.5 trap above - the most common error, and one the UI is designed to keep you out of.
- Motion context and mismatched fps: chaining a clip at a different fps than its source makes the motion read at the wrong speed; the node warns in the console. Keep a chained run on one fps.
- Enhancer + generation don't mix in-flight - Enhance is disabled while a video is generating so the LLM can't evict the diffusion model mid-run. That's a feature, not a bug.
It's not a Wan replacement. It's the draft-reel workhorse - and with audio-driven video, the one open pipeline that does sound at all.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| ltx23_oasis_uiopt | STRING | {} | — |
Outputs (0)
No outputs