Neo CLIP 转换器 (Forge Neo)
The boring wire that decides whether your prompt means what you wrote
- clip
- CLIP
You have a Forge Neo setup you like. You moved to ComfyUI for the graph, or for ControlNet, or because something in Neo broke. Now the same prompt at the same seed gives you a different image, and the difference isn't dramatic - it's just not the same picture, which is the most irritating kind of different.
This node is the fix for the prompt half of that. It does nothing visible. It has no picture on it, no preview, no output you can look at. It sits between your CLIP loader and your text encode node and quietly changes how that text gets turned into conditioning so it matches Neo's rules instead of ComfyUI's.
Why the encoding matters at all
"The same prompt" is not a portable object. ComfyUI and A1111-lineage UIs (which is what Forge Neo is) tokenize and weight that string differently: 75-token chunking, comma backtracking, BREAK, how (word:1.2) emphasis is normalized, which CLIP layer you stop at. Change any of that and the conditioning tensor changes, and the model produces a different image from the same seed. Neo treats a BREAK at a comma boundary one way; ComfyUI treats it another.
So the converter exists to make downstream encoding follow Neo. Concretely, it wraps the CLIP object in a subclass that keeps the raw prompt text attached to the tokens, so the Neo KSampler can re-encode the prompt per schedule step - which is what makes [a:b:5] and AND actually work.
The inputs
Three, and for most people only the first one is a real decision.
clip- your CLIP loader output (or the CLIP side of a LoRA loader), before any text encode node.emphasis- Neo's Emphasis Mode:Original,No norm,Ignore,None. DefaultOriginal. Match your Neo settings page; if you never touched it there, leave it here.clip_skip- defaults to 2, which is the anime-checkpoint convention, and on SDXL Neo clamps anything below 2 up to 2 anyway, so on SDXL this widget mostly does nothing. On SD1.5 it's load-bearing. Leave it at 2 unless you have a reason.anima_te_precision-fp16 (Neo 默认),bf16,fp32 (Comfy 默认). This is the Anima Qwen3 text encoder compute precision, and Neo runs fp16 by default. Since fp16 is the Neo default it's also the one that makes results line up.
Output is a single CLIP - wire it into every CLIPTextEncode (positive and negative) that feeds the Neo KSampler. Both, mind you. The sampler expects the same treatment on the negative side.
Install
ComfyUI Manager, search ComfyUI Neo Sampler, or:
cd ComfyUI/custom_nodes
git clone https://github.com/wangjue520/ComfyUI-Neo-Sampler
Restart. The pack's dependencies (lark, torchsde, scipy) get pip-installed into whatever Python is running ComfyUI on first load - the portable embedded Python included. If that fails it prints the exact command to run by hand, which is the only manual step. Same install for every node in this pack; the other five don't add anything on top.
Where it goes wrong
The console is your friend here, because this node logs what it decided. If your text encoder isn't Anima, SD1.5 or SDXL, it warns and falls back to ComfyUI's native encoding - the node won't error, it just won't do anything. That's the honest state of it: Neo's encoder support is those three, and anything newer falls through.
The subtler failure: nodes that don't go through clip.tokenize can't carry the raw prompt text. ComfyUI then treats your conditioning as an ordinary opaque tensor, and prompt scheduling and AND silently stop working. If your prompt syntax is being ignored, that's the first thing to check - and it's usually a third-party text encode node in the chain rather than this one.
Finally, <lora:...> tags in the positive prompt get stripped before encoding by this path, which is what you want when you use Neo Prompt LoRA. Don't double-handle it by also wiring a LoRA Loader for the same file.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| emphasis | COMBO | Original | Neo 设置 → 强调模式 (Emphasis Mode) |
| clip_skip | INT | 21–12 | Neo 设置 → Clip Skip(SD1.5/SDXL 有效;SDXL 最小按 2 处理,与 Neo 相同) |
| anima_te_precision | COMBO | fp16 (Neo 默认) | Anima 的 Qwen3 文本编码器计算精度。Neo 默认以 fp16 运行 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |