Nodes/ComfyUI-H3-Multishot/H3 Remote Text Encoder (CLIP over LAN)
ComfyUI Node

H3 Remote Text Encoder (CLIP over LAN)

Run H3's 18 GB text encoder on a second PC

By jlucasmcrell·Created 21 days ago·Updated 2 days ago· 31
H3 Remote Text Encoder (CLIP over LAN)
    • clip
    endpointhttp://OTHER-PC:8188
    clip_nameqwen3vl_32b_minimax_h3_nvfp4_awq.safetensors
    timeout_seconds600
    clip_typeminimax

    H3 Remote Text Encoder is the node for anyone who has watched the Qwen3-VL encoder eat 15+ GB of VRAM while their H3 render sits idle waiting for the next encode. It's a CLIP whose encode actually runs on another machine: the 18 GB text encoder never loads on your render card at all. Encode travels over the LAN, results come back identical to a local encode, and repeated scene text is answered from a local disk cache without touching the network.

    This is a serious fix for a real bottleneck. The H3 text encoder runs for seconds per shot but occupies gigabytes the whole rest of the time - on a 32 GB card it's the difference between the DiT loading fully and the DiT streaming part of its weights from system RAM every step. If you have a second PC with ComfyUI and this pack, you can get the encoder off the render card entirely. The README reports it verified across machines to float precision.

    How it works

    You point it at the other box's ComfyUI instance and it builds a proxy CLIP. Key inputs:

    • endpoint (default http://OTHER-PC:8188) - the ComfyUI box that will hold the encoder resident. It must have this pack installed (the encode route registers on load) and the encoder file in its models/text_encoders.
    • clip_name - the encoder filename on the remote box. The default is the nvfp4 AWQ qwen3vl_32b_minimax_h3 encoder. GGUF encoders auto-pair their -mmproj sidecar exactly as a local load would.
    • timeout_seconds (default 600) - the first request may include the remote box loading an 18 GB encoder from disk.
    • clip_type (default minimax) - a STRING rather than a dropdown because the valid list lives on the remote box.

    The output is a normal clip socket, so it drops into the graph where a local CLIP would go - typically through an H3 Any Switch against the local loader, so you can flip between local and remote encoding without rewiring.

    The fail-fast behavior is the quiet gem: the node checks the endpoint the moment it executes. Empty address, the untouched OTHER-PC placeholder, or an unreachable host each fail in about a second with a message that says exactly what to fix - instead of surfacing at the first encode, after the LLM writer has spent minutes producing a script that then gets thrown away.

    Installing it

    Part of the ComfyUI-H3-Multishot pack, on both machines:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jlucasmcrell/ComfyUI-H3-Multishot
    

    Or search H3 Multishot in ComfyUI Manager on each box. Requires ComfyUI v0.30.0+. The remote box needs the encoder in its models/text_encoders; the render box needs nothing extra beyond the pack. No Python dependencies either way.

    Gotchas

    The OTHER-PC placeholder is the classic trap - it's the default, and it's checked, so a graph that never had the field filled dies instantly with a message telling you to replace it. Turn the feature on (there's a remote_encoder switch on the H3 Studio Switches panel) only after the remote node is configured, or the graph fails at first run. And if the second box is slow to answer, remember the 600-second default timeout exists for the first cold load - later requests are served from the cache and don't pay it.

    Categoryloaders/minimax

    Inputs (4)

    NameTypeDefaultDescription
    endpointSTRINGhttp://OTHER-PC:8188The ComfyUI instance that will hold the text encoder resident and serve encodes. It must have this node pack installed (the route registers on load) and the encoder file in its models/text_encoders.
    clip_nameSTRINGqwen3vl_32b_minimax_h3_nvfp4_awq.safetensorsEncoder filename ON THE REMOTE BOX. GGUF encoders auto-pair their -mmproj exactly as a local load would.
    timeout_secondsINT60030–86400First request may include the remote box loading an 18 GB encoder from disk.
    clip_typeSTRINGminimaxCLIP type as core's CLIPLoader names it. 'minimax' for H3. A STRING rather than a dropdown because the valid list lives on the remote box.

    Outputs (1)

    NameTypeDescription
    clipCLIP