Nodes/ComfyUI-Artha-Nodes/🔱 Artha Gemini Motion
ComfyUI Node

🔱 Artha Gemini Motion

Get a real description of a video, frames and all

By Cyrostar·Created 10 months ago·Updated 8 months ago· 0
🔱 Artha Gemini Motion
  • images
  • response
â—„text_promptDescribe this video in detail.â–º
â—„resizeNoneâ–º
â—„api_keyâ–º
â—„modelgemini-2.5-flashâ–º
â—„max_tokens5000â–º
â—„temperature0.7â–º
â—„system_instructionâ–º

Artha Gemini Motion is the video-description node in the Artha pack, and the trick it pulls is quietly impressive: ComfyUI doesn't have a native "video" tensor that Gemini can swallow, but it does have image batches, and a video is just a batch of frames. So this node takes your frames, sends them to Gemini as a sequence, and gets back a rich description of what's actually happening - motion, cuts, subject movement, all of it. If you've ever needed to caption a generated video, write a prompt from an existing clip, or turn a source video into text for a regeneration workflow, this is the node.

The description spells out the one caveat up front: if your video is too large, the built-in resizer can bring it down to a reasonable size before the API call.

What you set

  • images - the required IMAGE input. This is your video as a batch of frames, the way any video-in-ComfyUI setup produces them (VHS, VideoHelperSuite, or a Load Video node feeding a frame sequence).
  • text_prompt - what you want described. Defaults to "Describe this video in detail," but you can ask for specifics: "describe the camera movement" or "list the scene changes."
  • resize - the built-in resizer, with options None, 480p, 360p, 240p. This is your valve for keeping the request under API limits - smaller frames means fewer pixels per frame for Gemini to chew through.
  • system_instruction - optional; if you leave it blank the node loads its own motion agent prompt.
  • The pack's usual api_key, model (gemini-2.5-flash), max_tokens, temperature.

The single output is response - a plain string describing the video. Route it into a display node (Artha Gemini Markdown or Response) to read it, or straight into a prompt encoder if you're regenerating.

How it behaves

Each frame in the batch is converted to a PIL image and resized if you picked one of the presets, then the whole sequence is passed to Gemini's generate_content as an image list. One detail to know: the node strips * and # characters from the response, so what comes back is clean prose rather than markdown artifacts. It also loads a motion-specific system prompt automatically unless you override it, which is why the defaults produce useful results without you writing an instruction.

The practical notes

Frame count and resolution are the two dials that matter. A long video at high resolution is the classic way to blow through the API's request limits - use the resize presets and consider not feeding every single frame. If response comes back empty, that's the pack's standard failure signature: error printed to the ComfyUI console, empty string returned. Key resolution is the pack standard too - api_key field, then api.json, then GEMINI_API_KEY.

One more thing worth knowing: this node is vision-only, so there's no offline mode. Every run is a paid Gemini call, which means a 600-frame video could mean a pricey request. Trim your frame count and resize before you hit it, not after your bill arrives.

Install

Shared with the rest of the 🔱 pack:

cd ComfyUI/custom_nodes
git clone https://github.com/Cyrostar/ComfyUI-Artha-Nodes
cd ComfyUI-Artha-Nodes
pip install -r requirements.txt

Restart ComfyUI, or install "Artha" via ComfyUI Manager. Get a key from Google AI Studio - this node genuinely needs one.

CategoryArtha/LLM/Gemini

Inputs (8)

NameTypeDefaultDescription
imagesIMAGE—
text_promptSTRINGDescribe this video in detail.—
resizeCOMBONone4 options: None, 480p, 360p, 240p
api_keySTRINGAPI key will be visible in plain text. Consider adding your api to the api.json located inside this custom node folder.
modelCOMBOgemini-2.5-flash5 options: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite
max_tokensINT50001–8192For Gemini models, a token is equivalent to about 4 characters. 100 tokens is equal to about 60–80 English words.
temperatureFLOAT0.70–2A temperature of 0 means only the most likely tokens are selected. Higher values increase randomness.
system_instructionoptSTRING—

Outputs (1)

NameTypeDescription
responseSTRING—