Nodes/ComfyUI-SCStepFun/StepFun Video Chat
ComfyUI Node

StepFun Video Chat

Ask a cloud model what's happening in a video — no frame extraction, no VRAM

By chenbaiyujason·Created 2 years ago·Updated 2 years ago· 7
StepFun Video Chat
  • client
  • response
  • total_tokens
  • finish_reason
modelstep-1.5v-mini
system_promptDescription What happened to the uploaded video
user_prompt
video_url
json_modefalse
temperature0.5
top_p0.9
max_tokens1024

StepFun Video Chat is the pack's answer to the annoying part of video understanding: you don't have to extract frames, run an image model over each one, and stitch the captions back together. You hand the node a link to a video, it asks StepFun's vision model what's going on, and you get a description back as a single string. It's the video sibling of StepFun Chat Completion, and it's built around the same idea - understanding happens in the cloud, so your only local cost is a network call.

Where does that link come from? Either a public URL to any video the API can reach, or a stepfile:// link produced by the pack's VideoFileUploader node. That's the flow the README's StepFunVideo2Caption workflow uses: upload your file once, get a stepfile:// string, feed it straight into the video_url input here. If you've got a local video, the uploader is a necessary first step - this node only takes URLs.

How it works

The node builds a chat request where the user message contains a video_url content block alongside your text prompt, then sends it to the StepFun API using the STEPFUN_CLIENT from the StepFunClient node. The heavy lifting - decoding, sampling frames, understanding - happens server-side. You don't even need FFmpeg on your machine for the API call itself; you only need it if you're shrinking videos before uploading (more on that below).

Inputs and outputs that matter

  • client - the STEPFUN_CLIENT from StepFunClient. Required.
  • model - step-1v-8k, step-1v-32k, or step-1.5v-mini. Default step-1.5v-mini. No step-2 model here, which is a relief - no silent image-ignoring gotcha like its sibling.
  • system_prompt - defaults to Description What happened to the uploaded video. It's misspelled ("Description" instead of "Describe") but it works fine; change it to anything you like.
  • user_prompt - optional extra instruction, like "only mention the main character's actions."
  • video_url - the URL or stepfile:// link.
  • json_mode - forces a JSON object response, handy for structured scene analysis.
  • temperature, top_p, max_tokens - standard sampling knobs; max_tokens defaults to 1024.

The outputs are three strings, same shape as the image node: response (the description - the one that matters), total_tokens, and finish_reason. Wire response into a ShowText node to read it, or into anything that wants a caption string.

Installing and setting up

Same pack as the rest of the StepFun nodes. Manager (search "ComfyUI-SCStepFun") or:

cd ComfyUI/custom_nodes
git clone https://github.com/chenbaiyujason/ComfyUI_StepFun
cd ComfyUI_StepFun
pip install -r requirements.txt

Then restart ComfyUI and grab an API key from platform.stepfun.com. The only hard dependency is openai.

Common issues

  • Videos over ~128MB - the README is explicit that you should compress or split before uploading. The pack's own guide ships two FFmpeg one-liners; the split one is the useful one:
ffmpeg -i sample.mp4 -acodec copy -f segment -segment_time 120 -vcodec copy -reset_timestamps 1 -map 0 output_time_%d.mp4
  • Wrong format - if the API rejects a file, convert to MP4: ffmpeg -i sample.mkv -codec copy sample.mp4.
  • Stale README warning - the very top of the README says "video upload is not implemented," then the uploader section describes it. The shipped code clearly implements upload; trust the code and the uploader, not that first line. It's README rot.
  • Network errors - this node is pure API. No internet, no result, and errors show up as node failures rather than friendly messages.

It's a niche node - a small pack with single-digit impressions - but if you're captioning videos at scale or building a video-to-prompt pipeline without a big GPU, this is exactly the shortcut that saves you an hour of frame-extraction plumbing.

CategoryStepFun

Inputs (9)

NameTypeDefaultDescription
clientSTEPFUN_CLIENT
modelCOMBOstep-1.5v-mini3 options: step-1v-8k, step-1v-32k, step-1.5v-mini
system_promptSTRINGDescription What happened to the uploaded video
user_promptSTRING
video_urlSTRING
json_modeBOOLEANfalse
temperatureFLOAT0.50–2
top_pFLOAT0.90–1
max_tokensINT10241–8192

Outputs (3)

NameTypeDescription
responseSTRING
total_tokensSTRING
finish_reasonSTRING