Nodes/comfyui-svdint4/Multimodal Chat Options
ComfyUI Node

Multimodal Chat Options

One node to dial every knob on your LLM call

By wjie98·Created 2 months ago·Updated 3 days ago· 2
Multimodal Chat Options
    • options
    disable_thinkingtrue
    temperature-1.00
    max_output_tokens8192
    image_detailauto
    image_formatjpeg
    jpeg_quality92
    max_image_edge2048
    video_sample_fps2.0
    video_max_frames16
    video_max_edge1536
    timeout_seconds120
    max_retries2
    retry_backoff1.5
    extra_body_json{}

    Multimodal Chat Options does nothing by itself. It has no network call, no model, no GPU - it exists to hand you a pile of dials for its sibling, Multimodal Prompt Chat, and to hand them over in one tidy options bundle. Wire its single output into that node's options socket and suddenly every hidden default becomes a knob you can turn. Leave it disconnected and the chat node runs on identical built-in defaults anyway - which is the neat design decision here: the defaults are not buried in the chat node, they're visible in this one. So think of it as the settings panel, opened for you.

    What you actually tune

    The input list looks intimidating (fifteen widgets), but they sort into three groups and you'll touch maybe four of them:

    Cost and behavior. max_output_tokens defaults to 8192 and caps how long the model is allowed to ramble - your main per-call cost lever. temperature defaults to -1, which means "don't send it, use the server default"; set anything from 0 to 2 to actually control it. disable_thinking (on by default) appends chat_template_kwargs.enable_thinking=false to the request so models with a separate reasoning mode skip the deliberation. The tooltip is candid about the gotcha: turn it off if your server rejects that extension.

    How references travel. Reference images get encoded as data URLs, and this is where you decide their weight and size: image_detail (auto/low/high), image_format (jpeg is default, png for lossless), jpeg_quality, and max_image_edge (2048 px cap - bigger sources get downscaled). Videos get sampled into frames at video_sample_fps (2 fps) up to video_max_frames (16) and video_max_edge (1536). Every one of those bytes goes over the wire and gets billed, so for a quick pass over a reference, low detail and a smaller edge are the difference between pennies and not.

    Reliability. timeout_seconds (120), max_retries (2), and retry_backoff (1.5). The retry logic only retries the genuinely retryable failures - HTTP 408, 429, and 5xx - with exponential backoff that honors a server's Retry-After header. If you're pointing at a slow local server behind Ollama or llama.cpp, raising the timeout beats raising retries.

    And extra_body_json is the escape hatch for everything else: valid JSON merged into the request body, which is how you'd set top_p, stop, or a provider-specific field. It refuses to override the reserved fields (model, messages, stream, max_tokens, temperature), so you can't brick a request by sneaking in a second model.

    What comes out

    A single options output of the custom TURING_UTILS_CHAT_OPTIONS type. It doesn't render to anything readable and it isn't a string - it's a typed value that only the Multimodal Prompt Chat node's options input understands. If you see the socket and wonder where the text went, that's expected; this node is plumbing, not output.

    Installation is the pack install: clone https://github.com/wjie98/comfyui-svdint4 into custom_nodes and restart (or use ComfyUI Manager). Like the chat node itself, this one is pure Python - you do not need the compiled CUDA kernel the README's headline install describes, and no model files download. One light warning: the pack is obscure enough that the only documentation is the widget tooltips you're looking at, and those tooltips are accurate and worth reading - they're the author's own words about what each field does. When a 400 error mentions chat_template_kwargs, come back here and untick disable_thinking. That's the whole troubleshooting guide.

    CategoryTuring Utils/prompting

    Inputs (14)

    NameTypeDefaultDescription
    disable_thinkingBOOLEANtrueSend chat_template_kwargs.enable_thinking=false. Disable this option if the server rejects that extension.
    temperatureFLOAT-1.00-1–2-1 omits temperature and uses the server default.
    max_output_tokensINT81921–131072
    image_detailCOMBOauto3 options: auto, low, high
    image_formatCOMBOjpeg2 options: jpeg, png
    jpeg_qualityINT9240–100
    max_image_edgeINT2048256–8192
    video_sample_fpsFLOAT2.00.1–24
    video_max_framesINT161–64
    video_max_edgeINT1536256–4096
    timeout_secondsINT1201–3600
    max_retriesINT20–5
    retry_backoffFLOAT1.50–30
    extra_body_jsonSTRING{}

    Outputs (1)

    NameTypeDescription
    optionsTURING_UTILS_CHAT_OPTIONS