Lance Text Video Prompt
Feed Lance a video and an instruction
- data_config
- tokenizer
- new_token_ids
- video
- DATA_LOADER
Lance Text Video Prompt is the node for the two tasks that need a video as input: video editing (video_edit) and video understanding (x2t_video). It takes your text instruction plus a video, packs them into the pack's data loader, and hands them off to the output node. If the whole reason you installed comfyui-lance-aio was the video editing - and for a lot of people it is, since open, instruction-driven video editing was basically the ByteDance/Wan niche - this is the node you'll live in.
The pack is an unofficial ComfyUI port of ByteDance's Lance-3B, a 3B-active Apache 2.0 model that does generation, editing, and understanding across images and video in one architecture. Video editing is where it's most interesting: you give it a clip and an instruction like "make it snow" or "change the person's jacket to red," and it edits the existing frames rather than generating from scratch.
The inputs that matter
- prompt - your instruction, multiline. For editing, phrase it as a direction to the video's content. For understanding, it's a question about what happens in the clip ("In which direction does the purple sphere move?" is straight out of the example workflow).
- video - this is the interesting one. It's a
VIDEOtype input, the same type the VideoHelperSuite (VHS) loader produces. So you load a video with VHS, wire its video output here, and you're set. It's not anIMAGEtensor; Lance needs the actual video stream. - data_config, tokenizer, new_token_ids - the usual relayed wires from Lance Args, the Tokenizer Loader, and Lance Configure.
What comes out
A single DATA_LOADER output feeding Lance Generation (for video_edit) or Lance Understanding (for x2t_video). Same custom type as the other prompt nodes; nothing renders on this node itself.
How it works
Same mechanism as its image sibling: the node saves your video to a temporary MP4, then writes a JSONL record that tells the pipeline where the video file is and how to interleave it with your text. For understanding tasks the record marks the video as "look at this" and your text as the answer target, prefixed with "Look at the video carefully and answer the question." For editing, your text is the instruction and the video is the material. Either way it all gets tokenized into a DataLoader with batch size one.
Installing the pack
It ships with the pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/SteveImmanuel/comfyui-lance-aio
cd comfyui-lance-aio
pip install -r requirements.txt
or search comfyui-lance-aio in ComfyUI Manager. You'll need the checkpoints under ComfyUI/models/lance/ - for video tasks that's Lance_3B_Video/ (the video checkpoint, which is the big one at 25GB+ in FP32), plus Qwen2.5-VL-ViT/ and Wan2.2_VAE.pth. The decord dependency in requirements.txt is the video decoder, so if you've trimmed it from a shared environment, video input is exactly where it bites. Restart after cloning.
Where people get burned
Two common ones. First, feeding this node an IMAGE instead of a VIDEO - they don't connect, and beginners often try to wire a frame sequence in. Load the clip with VHS, not as images. Second, video tasks are the heavy end of Lance's VRAM budget. The author tests on 12GB VRAM and says video may need at least that much, versus ~8GB for image tasks - so if generation with an input video OOMs, this is the expected wall, not a bug. Lower the resolution preset in Lance Args (down to video_360p or video_480p) before you start blaming the node.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| data_config | DATA_CONFIG | — | |
| tokenizer | TOKENIZER | — | |
| new_token_ids | NEW_TOKEN_IDS | — | |
| video | VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DATA_LOADER | DATA_LOADER | — |