Nodes/ComfyUI-SwissArmyKnife/LLM Studio Video Describe
ComfyUI Node

LLM Studio Video Describe

Turn a video into per-frame captions and one combined description — all local

By sammykumar·Created 12 months ago·Updated 8 months ago· 6
LLM Studio Video Describe
    • combined_caption
    • frame_captions
    • frames_processed
    base_urlhttp://192.168.50.41:1234
    model_nameqwen/qwen3-vl-30b
    api_endpointcompletions
    video_path
    sample_rate2.0
    max_duration5.0
    caption_promptDescribe the specific sexual act being performed in explicit detail. Focus ONLY on the physical actions, positions, and movements. Requirements: 1) Use only generic terms like "woman", "man", "person" - DO NOT describe physical appearance, body types, hair color, ethnicity, clothing, or accessories. 2) Specify exact positions and penetration details - mention if the man's penis is penetrating the woman's vagina, anus, or mouth, or if other sexual acts are occurring. 3) Describe the motion and rhythm - is it fast, slow, gentle, rough, rhythmic, etc. 4) Include key actions - such as kissing, touching, grabbing, positioning, eye contact, or reactions. 5) If visible, describe bodily fluids - if a white substance is shooting from a penis, the man is ejaculating semen; specify where it goes (on body parts, in mouth, on face, etc.). 6) Note any transitions between positions or acts during the sequence. 7) DO NOT mention watermarks, logos, backgrounds, settings, furniture, or anything not directly related to the sexual act itself. 8) IMPORTANT: Provide your response as a SINGLE CONTINUOUS PARAGRAPH with no line breaks or bullet points. Be explicit, factual, and clinical in your description.
    temperature0.2
    verbosefalse

    Most video models are bad at "watch this whole thing and tell me what happened." They sample a handful of frames and stitch a guess. LLM Studio Video Describe doesn't hide that - it makes it the workflow. It samples frames from a clip at a rate you set, captions each one with a local vision model, and hands you both the per-frame captions and a combined narrative. You keep the detail or you take the summary; both are yours.

    Inputs: video_path for the clip, sample_rate (frames per second, default 2.0) and max_duration (seconds, default 5) to control sampling, base_url and model_name (default qwen/qwen3-vl-30b) for LM Studio, api_endpoint (completions by default for clean output, or chat/completions if you don't mind thinking tags), temperature (default 0.2), and verbose. Then there's caption_prompt - the instruction sent for each frame - and this is where you need to be an adult about defaults: the one shipped in the pack is aggressively tuned for explicit adult-video captioning. Swap it for something neutral before you caption anything you care about; this node doesn't care what you ask it, it just asks faithfully.

    Outputs are the useful part: combined_caption (the merged description of the whole clip), frame_captions (each individual frame's caption), and frames_processed (an INT - how many frames actually went through, your sanity check on sampling). The combined_caption is what feeds a prompt builder for a re-render; frame_captions is what you'd feed a Multi-Caption Combiner if you want a differently-styled merge.

    Mechanically it's the classic sample-and-caption loop: extract frames via OpenCV, base64 them into an OpenAI-compatible call to LM Studio, collect the text. The output is only as good as your prompt and your model - a 30B Qwen-VL handles detail well but runs slow; an 8B is faster and fuzzier.

    Installing

    Part of Swiss Army Knife:

    • ComfyUI Manager: search "Swiss Army Knife", install, restart.
    • Manual:
    cd ComfyUI/custom_nodes
    git clone https://github.com/sammykumar/ComfyUI-SwissArmyKnife.git
    cd ComfyUI-SwissArmyKnife
    pip install -e .
    

    Gotchas

    • The default caption_prompt is NSFW-tuned. Change it first. This is a general-purpose captioner hiding behind an adult-workflow default.
    • sample_rate and max_duration govern your time budget. 2 fps over 5 seconds is 10 frames; raise either and the run gets proportionally slower.
    • Frames are captioned independently. Each frame is a separate call, so consistency across frames depends on the model - don't expect it to hold a narrative thread without help.
    • If frames_processed comes back 0, the video path is wrong or unreadable. Fix the path, not the node.

    It's the free-form sibling of the structured video node - read the two side by side and pick by whether your downstream wants JSON fields or a paragraph.

    CategorySwiss Army Knife 🔪/Media Caption

    Inputs (9)

    NameTypeDefaultDescription
    base_urlSTRINGhttp://192.168.50.41:1234LM Studio server URL (e.g. http://192.168.50.41:1234)
    model_nameSTRINGqwen/qwen3-vl-30bModel name in LM Studio (e.g. qwen/qwen3-vl-30b)
    api_endpointCOMBOcompletionsAPI endpoint: 'chat/completions' (may include thinking tags) or 'completions' (cleaner output)
    video_pathSTRINGPath to video file to analyze
    sample_rateFLOAT2.00.1–30Frames per second to extract (e.g., 1.0 = 1 frame/sec, 2.0 = 2 frames/sec)
    max_durationFLOAT5.01–60Maximum duration in seconds to sample from
    caption_promptSTRINGDescribe the specific sexual act being performed in explicit detail. Focus ONLY on the physical actions, positions, and movements. Requirements: 1) Use only generic terms like "woman", "man", "person" - DO NOT describe physical appearance, body types, hair color, ethnicity, clothing, or accessories. 2) Specify exact positions and penetration details - mention if the man's penis is penetrating the woman's vagina, anus, or mouth, or if other sexual acts are occurring. 3) Describe the motion and rhythm - is it fast, slow, gentle, rough, rhythmic, etc. 4) Include key actions - such as kissing, touching, grabbing, positioning, eye contact, or reactions. 5) If visible, describe bodily fluids - if a white substance is shooting from a penis, the man is ejaculating semen; specify where it goes (on body parts, in mouth, on face, etc.). 6) Note any transitions between positions or acts during the sequence. 7) DO NOT mention watermarks, logos, backgrounds, settings, furniture, or anything not directly related to the sexual act itself. 8) IMPORTANT: Provide your response as a SINGLE CONTINUOUS PARAGRAPH with no line breaks or bullet points. Be explicit, factual, and clinical in your description.Prompt for individual frame captions
    temperatureFLOAT0.20–2Temperature for text generation
    verboseBOOLEANfalseShow detailed frame-by-frame captions in console

    Outputs (3)

    NameTypeDescription
    combined_captionSTRING
    frame_captionsSTRING
    frames_processedINT