Nodes/ComfyUI-SwissArmyKnife/LLM Studio - Options
ComfyUI Node

LLM Studio - Options

Caption locally, privately, without a cloud key — LM Studio as your caption brain

By sammykumar·Created 12 months ago·Updated 8 months ago· 6
LLM Studio - Options
    • llm_studio_options
    base_urlhttp://192.168.50.41:1234
    model_nameqwen/qwen3-vl-30b
    prompt_styleText2Image
    temperature0.5
    sample_rate2.0
    max_duration5.0
    change_clothing_colorNo
    verbosefalse

    The Gemini nodes are great until your media is something you'd rather not send to Google, or you're on a budget and every caption costs a fraction of a cent that adds up. That's the whole pitch for the LLM Studio half of this pack: run a vision-language model locally through LM Studio's OpenAI-compatible server, and caption as much as you want for the price of your electricity. LLM Studio - Options is the config node that packages that connection so the describe nodes downstream don't each need eight fields.

    It's a pure config packager - one output, llm_studio_options, consumed by MediaDescribe and friends. The fields you set: base_url (default http://192.168.50.41:1234, the classic LM Studio local server address), model_name (default qwen/qwen3-vl-30b - a solid vision-language choice, but put whatever model you loaded), prompt_style (same Text2Image/ImageEdit split as the Gemini side), temperature (default 0.5), and two video-sampling knobs: sample_rate (frames per second to extract from video, default 2.0) and max_duration (how many seconds of video to sample at most, default 5). change_clothing_color mirrors the Gemini toggle, and verbose toggles detailed console logging when you're debugging.

    The local-first angle is worth taking seriously. The community has been running Qwen-VL and friends inside ComfyUI for exactly this - prompt brain, captioner, editor - and the appeal is that nothing leaves your machine. Your input media stays local, your prompts stay local, and you never touch a cloud API key. The trade-off is speed and quality: a 30B model on a local GPU is slower than Gemini Flash, and the output quality gap to the 2.5 series is real for tricky descriptions. For bulk captioning of content you'd rather keep private, that's usually a fine deal.

    Installing

    Ships with Swiss Army Knife (same as the Gemini nodes):

    • 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 .
    

    LM Studio itself is separate - install it, load a vision model, and make sure the local server is running (default port 1234) before you run the graph.

    Gotchas

    • The default base URL is a LAN address. If your LM Studio runs on the same machine, change it to http://localhost:1234 or 127.0.0.1:1234. This one trips up more people than anything else.
    • model_name must match what LM Studio reports, including the /-style path (e.g. qwen/qwen3-vl-30b). Copy it from LM Studio's model list, don't guess.
    • sample_rate × max_duration controls your cost in time. 2 fps over 5 seconds is 10 frames per clip - reasonable. Cranking both up makes each video much slower to caption.

    Config nodes never win beauty contests, but this one is the difference between a tidy MediaDescribe graph and a spaghetti of repeated connection fields. If you're going local with your captioning, this is the node that makes it one object instead of a mess.

    CategorySwiss Army Knife 🔪/Media Caption

    Inputs (8)

    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)
    prompt_styleCOMBOText2ImageText2Image: Generates descriptive prompts for models like FLUX Dev, SDXL, etc. ImageEdit: Generates instruction prompts with words like 'change to...', 'modify this...' for image editing models like FLUX Redux/Kontext, Nano Banana, Qwen Image Edit
    temperatureFLOAT0.50–2Temperature for text generation
    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 video
    change_clothing_colorCOMBONoIf enabled, adjust clothing color descriptions to new colors that harmonize with the scene and differ from the original colors
    verboseBOOLEANfalseShow detailed processing information in console

    Outputs (1)

    NameTypeDescription
    llm_studio_optionsLLM_STUDIO_OPTIONS