Nodes/ComfyUI-Lance/Lance Text-to-Video
ComfyUI Node

Lance Text-to-Video

121 frames of video from a 3B model, no API key

By benjiyaya·Created 4 months ago·Updated 4 months ago· 13
Lance Text-to-Video
  • model
  • frames
prompt
width848
height480
num_frames50
num_timesteps30
timestep_shift3.5
cfg_text_scale4.0
seed42
resolutionvideo_480p

This is the node that launched the pack. When ByteDance dropped Lance in May 2026 as an Apache 2.0 model doing image and video generation and editing and understanding from one 3B weight set, the r/StableDiffusion thread's top comment was "Wow, all Edit models are welcomed" - and the demo that got people excited was text-to-video. Lance Text-to-Video is the ComfyUI face of that demo.

The pitch in one line: type a prompt, get up to 121 frames of video, locally, no API, no key, no seedream-style subscription. That's the appeal - it's the open half of ByteDance's usual two-track posture, and you don't have to stitch together a separate image model, a video model, and an editor.

How it works

Lance is a flow-matching model (the same rectified-flow school as every modern DiT - it predicts a velocity along a noise→data path rather than doing classic epsilon-prediction denoising), and it decodes through a Wan2.2 VAE. That's the family connection: Wan's temporal VAE strided by 4 is why valid frame counts are 4n+1 - 1, 5, 9, 13… up to 121. You ask for 50 frames, you get 49, and that's fine.

The node follows the official inference_lance.sh path with text_template=True, runs 30 denoising timesteps by default, and hands you an IMAGE batch - ComfyUI treats video as a stack of frames, so it plugs straight into the native Save Video node.

The inputs that matter

  • prompt - the whole game. Lance's prompt understanding is its strong suit; the launch thread called it "extremely coherent."
  • width / height - defaults 848×480 (the video_480p preset). Must be multiples of 16; the node validates and refuses bad sizes up front.
  • num_frames - 50 by default, max 121. Snapped to 4n+1.
  • num_timesteps - 30. README says 30 or 50; if quality feels soft at 30, push it.
  • timestep_shift (3.5) and cfg_text_scale (4.0) - the flow-matching schedule shift and CFG, straight from the official inference defaults. Leave them alone until you know why you're changing them.
  • resolution - video_192p, video_360p, video_480p presets, plus image_768res if you want a still.
  • seed - set to -1 for a fresh random roll each run.

Output is frames (IMAGE), and the node is flagged as an output node, so ComfyUI shows it on the queue by default.

Wiring it up

[Lance Model Loader (lance_3b_video)] → [Lance Text-to-Video] → [Save Video]

Use the video model variant in the loader - the image variant won't produce video. Save Video is ComfyUI's native MP4 exporter.

Where people get burned

VRAM is the whole story. This pack loads everything onto the GPU and the official requirement is 40GB; a 12GB card is going to OOM instantly. If you're below that, the low-VRAM port (comfyui-lance-aio) is the realistic path - and expect patience either way, since even that port takes ~15 minutes for a 10-second clip on a 5070. Also: dimensions are checked at load time, so a non-multiple-of-16 size fails fast - that's a feature, not a bug. And remember the model is cached per variant in the loader; if you swap between image and video work, you're holding two multi-GB pipelines in VRAM.

CategoryLance

Inputs (10)

NameTypeDefaultDescription
modelLANCE_MODEL
promptSTRING
widthINT848192–1024
heightINT480192–1024
num_framesINT501–121
num_timestepsINT301–100
timestep_shiftFLOAT3.50.1–10
cfg_text_scaleFLOAT4.01–10
seedINT42-1–4294967295
resolutionCOMBOvideo_480p4 options: image_768res, video_192p, video_360p, video_480p

Outputs (1)

NameTypeDescription
framesIMAGE