ZeroClip-B Load MLP
A tiny network as your prompt
- model
ZeroClip-B takes a different route from A: instead of summing over a library of CLIP embeddings, it uses a trained neural network to map seeds straight into embedding space. ZeroClip-B Load MLP is the loader for that network - the node that turns a .pt checkpoint into the ZEROCLIP_B_MODEL your B Conditioning node needs.
What's in the file? A small multilayer perceptron - three hidden layers of 256 units with GELU activations, mapping a 3D coordinate (derived from the seed) to a CLIP embedding, roughly 50k parameters total. It's tiny, it runs in microseconds on CPU, and the pack loads it on CPU deliberately because it's so cheap there's no point burning VRAM on it.
The one input
Just model_file, a dropdown listing .pt files in models/zeroclip/ (sample: zerocliP_b.pt). Output is the ZEROCLIP_B_MODEL you wire into a B Conditioning node. Like the other loaders, it watches the file's mtime and reloads when you swap the file, so you can drop a freshly trained checkpoint in without restarting.
Getting the checkpoint
- Download the prebuilt
zerocliP_b.ptfrom huggingface.co/mushroomfleet/zeroclip intomodels/zeroclip/. Zero setup, done. - Train your own:
python build_artifacts.py --variant B --out ../../models/zeroclip/zerocliP_b.pt- about 10 minutes on CPU. It generates a dataset of CLIP embeddings and fits the MLP to them. That route needstransformersinstalled (only for building, not for loading).
For SDXL you'll load two of these - a sequence model and a pooled model - and feed them into the SDXL B Conditioning node.
Install
Part of ComfyUI-ZeroCLIP-nodes. ComfyUI Manager (search "ZeroCLIP"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/ComfyUI-ZeroCLIP-nodes
Restart ComfyUI; it's under ZeroClip/B - Latent MLP. No pip install at runtime - torch and numpy only.
Where people get burned
- The old empty-folder trick. If
models/zeroclip/is empty the dropdown showszerocliP_b.ptas a placeholder but the file isn't there; the load fails until you actually download it. This is the most common "why is B red?" issue. - Loading an SDXL model into an SD1.5 pipeline. The checkpoint's output dimension is baked in - 768 for SD1.x builds, 2048 for SDXL. Wrong pairing = shape error at the Conditioning node.
- Forgetting it's the network, not the output. Load MLP just prepares the model. You still need ZeroClip-B Conditioning and a seed to produce a
CONDITIONING.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_file | COMBO | Select MLP checkpoint from models/zeroclip/ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | ZEROCLIP_B_MODEL | — |