ComfyUI Node

TI2V

The official Step-Video-TI2V node, and why it's a 4-GPU affair

By stepfun-ai·Created about a year ago·Updated about a year ago· 42
TI2V
  • image_input
  • IMAGE
remote_server_url127.0.0.1
model_dir
script_dir
infer_steps50
cfg_scale9.0
time_shift13.0
num_frames102
motion_score5.0
text_prompt笑起来

Let's get the naming out of the way first: TI2V stands for text-guided image-to-video, and the "T" matters more than people expect. This is the official ComfyUI wrapper for Step-Video-TI2V, StepFun's 30B open-weights I2V model - you feed it one image and a prompt, and it animates that image forward. It's a flow-matching DiT trained on Step-Video-T2V, with your first frame encoded into the video latent and concatenated along the channel dimension. Nothing exotic, but the execution is where this gets spicy.

Because here's the thing you need to know before you get excited: this node does not run the model. It's a thin client. It saves the first frame of your image to {script_dir}/results/, then shells out via os.system to torchrun run_parallel.py inside the separate Step-Video-TI2V repo, pointing it at a remote server for the caption model and VAE. When the mp4 lands, it reads it back in and returns the frames as an IMAGE tensor. The README is blunt about what that remote server needs: "We assume you have more than 4 GPUs available." That's not a joke.

The inputs that matter

The node exposes ten of them, but you'll actually touch five:

  • image_input - your starting image. Only the first frame of the batch is used, so don't feed it a video.
  • remote_server_url - the URL from call_remote_server.py (default 127.0.0.1, the model's own install step). Both caption and VAE come from here.
  • model_dir and script_dir - where the weights live, and where the Step-Video-TI2V repo is cloned. script_dir is also where every run dumps a PNG and an mp4 named after the first 50 characters of your prompt, so it fills up.
  • text_prompt - the default is 笑起来, which is Chinese for "smile." Yes, really. Change it.
  • motion_score - this is the model's signature knob, and the one actually worth fiddling with. Default 5 works for general use; drop to 2 for stability, push to 10–20 for aggressive, dynamic motion. It's a real control, not window dressing - StepFun's own docs say 10 gives the best camera tracking and responsiveness.

The other four (infer_steps 50, cfg_scale 9, time_shift 13, num_frames 102) are the model's own recommended defaults, and num_frames tops out around 102 natively. Leave them alone until the output tells you otherwise.

The output is a single IMAGE - the whole frame sequence as one tensor. It's not a video file. Wire it into VHS_VideoCombine (Video Helper Suite) to actually save an mp4; the pack's own example workflow does exactly that.

How to install it

The ComfyUI pack itself is trivial - tiny, MIT-licensed, no requirements.txt:

cd ComfyUI/custom_nodes
git clone https://github.com/stepfun-ai/ComfyUI-StepVideo.git

(ComfyUI Manager finds it as ComfyUI-StepVideo too.) The work is everything around it: clone and pip install -e . the Step-Video-TI2V repo into the same Python environment ComfyUI runs from, download the weights from huggingface.co/stepfun-ai/stepvideo-ti2v - six transformer shards, nine LLM shards, the VAE, and a Hunyuan CLIP text encoder - then start call_remote_server.py.

Where people get burned

  • The torchrun it can't see. The repo README tells you to create a fresh conda env. Do that, and the node's os.system call runs with ComfyUI's PATH - no torchrun, instant failure. Install Step-Video-TI2V into ComfyUI's own environment, or make sure its bin is on ComfyUI's PATH.
  • A quote in your prompt breaks the shell command. The prompt is interpolated straight into the command line, unescaped. He said "hi" will not work.
  • No seed input. run_parallel.py takes a seed, but the node never passes one, so every run is random. If you can't reproduce a result you liked, that's why.
  • The detail ceiling. Step-Video-TI2V's VAE compresses 16× spatially and 8× temporally - deeper than Hunyuan or Wan. That's why it's fast, and it's also why fine detail and faces come out soft. Motion, camera work, and anime style are its strengths; crisp realism is not. It's a specialist, not a replacement for Wan or LTX in the open-video stack.

Honest verdict: on one GPU this is a long, slow slog, and it's a heavy lift even on a server. The realistic route for most people is the other node in this pack.

CategoryStepVideo

Inputs (10)

NameTypeDefaultDescription
image_inputIMAGE
remote_server_urlSTRING127.0.0.1
model_dirSTRING
script_dirSTRING
infer_stepsINT500–100
cfg_scaleFLOAT9.00–50
time_shiftFLOAT13.00–50
num_framesINT1020–204
motion_scoreFLOAT5.00–50
text_promptSTRING笑起来

Outputs (1)

NameTypeDescription
IMAGEIMAGE