Nodes/ComfyUI-CloudAPI-worker/Cloud Dual CLIP Loader
ComfyUI Node

Cloud Dual CLIP Loader

Two text encoders, zero local VRAM

By Dobidop·Created 5 months ago·Updated 5 months ago· 0
Cloud Dual CLIP Loader
    • clip
    clip_name1
    clip_name2
    type
    device

    Some models refuse to settle for one text encoder. SDXL pairs a text encoder with an OpenCLIP ViT-bigG, Flux runs two of its own, SD3 stacks three (with weighting logic in between), Hunyuan Video and HiDream each want their specific pair. Cloud Dual CLIP Loader is the cloud-side version of the stock DualCLIPLoader: declare two text encoders, get one CLOUD_CLIP handle out, and let Comfy Cloud sort out the loading when the job runs.

    Pick this node the moment your model family is SDXL, SD3, Flux, Hunyuan Video, or HiDream. Everything with a single encoder - LTX Video, Mochi, PixArt, Wan, and the rest - wants the single-slot Cloud CLIP Loader instead. The pack makes you commit to one or the other at load time, which is honestly a feature: it mirrors stock ComfyUI exactly, so porting a local workflow means keeping the same loader shape.

    The inputs that matter

    • clip_name1 / clip_name2 - the two cloud-side text encoders, from the cached text_encoders list (with a fallback to the older clip cache). Both slots need real entries; if either shows the placeholder, run a Cloud List Models node for text_encoders and restart.
    • type - the family selector: sdxl, sd3, flux, hunyuan_video, hidream. This tells the cloud how to combine the two encoders, and it has to match what your checkpoint expects. Flux workflow + sdxl type is the classic footgun.
    • device (optional) - default or cpu; leave it on default.

    Output: clip (CLOUD_CLIP) - into your positive and negative Cloud CLIP Text Encode nodes, then on to the sampler.

    How it works

    Same playbook as every node in this pack: it appends a DualCLIPLoader spec to the accumulating workflow JSON and returns a handle that references it. No encoder is loaded locally, ever. When a terminal node finally submits the assembled graph to /api/prompt, the cloud loads both encoders, and your machine gets back only the finished conditioning downstream. That's the entire point - the two encoders for Flux alone are several gigabytes you never have to download.

    How to install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Dobidop/ComfyUI-CloudAPI-worker
    

    Copy config.json.example to config.json, paste an API key from https://platform.comfy.org/profile/api-keys, restart. Or install via ComfyUI Manager. Only requests, Pillow, and safetensors install; no encoder downloads.

    Common issues

    • Wrong type for the family - the job may run and produce nonsense instead of failing loudly. Match type to your checkpoint.
    • One empty encoder slot - the node errors out with "Text encoders not selected." Populate the cache with Cloud List Models first.
    • Using it where a single loader suffices - a two-slot loader in an LTX or Wan chain is just confusion. Keep the single-encoder node for single-encoder models.

    And the pack-wide note: it's a proof of concept from a single author, so clone from the official GitHub and check the repo before you trust it with a paid job. The example image and LTX workflows are the well-trodden paths; everything else is where you'll find the rough edges.

    Categorycloud

    Inputs (4)

    NameTypeDefaultDescription
    clip_name1COMBO1 options: <run Cloud List Models (text_encoders) to populate>
    clip_name2COMBO1 options: <run Cloud List Models (text_encoders) to populate>
    typeCOMBO5 options: sdxl, sd3, flux, hunyuan_video, hidream
    deviceoptCOMBO2 options: default, cpu

    Outputs (1)

    NameTypeDescription
    clipCLOUD_CLIP