Silver Shared Text Encoder
Keep Your Text Encoder Warm Between Prompts
- clip
- cache key
The text encoder is the quiet place your workflow wastes time. It's a second model that runs before every generation, and on modern models it's huge - the Flux 2 Qwen encoder is somewhere around 8 GB. Silver Shared Text Encoder is a cached CLIP loader that keeps that encoder alive in RAM across prompts, so a queue of jobs doesn't re-read a giant file from disk every single time. It's the text-side sibling of Silver Shared Diffusion Model, and if you serve many prompts over the API, it's the one that actually saves you minutes.
Why this node exists
Same story as the shared diffusion loader, worth retelling once because the stakes are bigger here. When ComfyUI runs a prompt over the HTTP API, loader nodes re-execute, and when the prompt ends the loaded model gets garbage-collected. The next prompt re-reads the whole file. For a text encoder that's an 8 GB read from disk - the pack's own changelog says its Flux 2 Qwen encoder takes about three and a half minutes to load. This node keeps a strong reference to the loaded CLIP in a module-level cache, so the next prompt only re-transfers to VRAM instead of re-reading the file.
The text encoder being a separate, independently-loaded model is a point the ecosystem keeps hammering: it's the component that changed most between 2024 and 2026, and it's increasingly the thing that decides whether a model fits your card at all. Caching it well is not a niche concern anymore.
Inputs and outputs
clip_name- a dropdown of yourtext_encodersfolder. The main thing you set.type- the encoder family, with the same 28 choices as the stock CLIPLoader:stable_diffusion,stable_cascade,sd3,stable_audio,mochi,ltxv,pixart,cosmos,lumina2,wan,hidream,chroma,flux2, and more. Get this wrong and you'll get garbage conditioning - a Flux 2 model wantsflux2, an SD3 model wantssd3. This is the #1 beginner mistake with any CLIP loader, cached or not.key_opt- an optional custom cache key. Same key on several nodes means they share one loaded encoder.mode-Auto(reuse cache, load if missing),Override Cache(force reload),Read Only(never load; error if the key isn't cached yet).device- optional and marked advanced:defaultorcpu. Forcing CPU encoding frees VRAM for the UNet at the cost of slower encodes - occasionally the right call on a tight card.
Outputs: clip, which wires into your CLIP Text Encode or conditioning, and cache key, a string you generally don't need to connect.
The same patch requirement as its sibling
Yes, this one has the catch too. To fully deduplicate loaded weights, the pack wants a manual patch to ComfyUI's comfy/model_management.py adding a model_key to loaded model patchers. Skip it and the same encoder loaded through different patchers counts as two models - doubled VRAM and reloads that undermine the cache. It's a hand edit to ComfyUI core, not a script, and ComfyUI updates can wipe it. That's the real tax of this node; budget for re-applying it.
Installing it
ComfyUI Manager, search "ComfyUI Silver Nodes". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/SilverAndJade/comfyui-silver-nodes
Restart, then apply the model_management.py patch from the README if you want the dedup to actually work.
Common issues
The wrong type enum is the classic failure - it doesn't crash, it just silently produces broken text conditioning. Then there's the patch: if you're seeing doubled VRAM or "why does it still reload?" behavior, that's almost certainly the unpatched core. And remember the cache is pinned RAM: when you switch encoder families between jobs, clear it with Silver Clear Model Cache so stale weights don't linger. For a single-model desktop workflow this node is optional; for an API queue that reuses one encoder, it's the difference between fast and glacial.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name | COMBO | 0 options: | |
| type | COMBO | 28 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +22 | |
| key_opt | STRING | — | |
| mode | COMBO | 3 options: Auto, Override Cache, Read Only | |
| deviceopt | COMBO | 2 options: default, cpu |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| clip | CLIP | — |
| cache key | STRING | — |