Nodes/ComfyUI Neo Sampler (Forge Neo)/Neo 提示词 LoRA (Forge Neo)
ComfyUI Node

Neo 提示词 LoRA (Forge Neo)

Load twenty LoRAs from a prompt tag without twenty node chains

By wangjue520·Created 23 days ago·Updated 23 days ago· 3
Neo 提示词 LoRA (Forge Neo)
  • model
  • clip
  • MODEL
  • CLIP
◄text—►

If you came from A1111 or Forge Neo, your prompts are full of <lora:someStyle:0.8> and you never wired a single node for it. You paste the tag, the UI loads the LoRA, done. ComfyUI doesn't understand those tags at all - it just wraps them in more LoRA Loader nodes until your graph looks like a hallway of doors.

This node is the bridge. Give it a model, a clip, and the same positive prompt text you're feeding your text encoder, and it parses the <lora:...> tags, loads the files, patches both the model and the text encoder, and passes them on.

Why not just let the sampler do it

The Neo KSampler has a prompt_lora toggle that does the same parsing internally, and for a plain txt2img graph that's genuinely enough - leave it on and forget this node exists. The difference is where the patch lands in the graph. The sampler's built-in version applies to its own model and CLIP mid-sample. This node applies it at whatever point you insert it, which means everything downstream carries the patched weights - including nodes that never touch the Neo sampler.

That matters most for inpainting and for regional/detail passes. If a node builds its own conditioning or runs its own pass, the prompt-level LoRAs applied here travel with it; ones applied inside the sampler don't.

Inputs and outputs

  • model - your MODEL wire.
  • clip - your CLIP wire. The text encoder gets LoRA-patched too, which is not optional trivia: a style LoRA tuned on the CLIP side will look different if you only patch the UNet.
  • text - the positive prompt, as a string, and it has to be the same text that goes into the text encoder. It's a forced input, so wire something into it rather than typing it in two places.

Outputs are MODEL and CLIP, both of which go downstream - MODEL into the Neo KSampler's model, CLIP into Neo CLIP Converter (or straight into CLIPTextEncode if you're skipping the converter).

The tag syntax

Faithful to Neo, which means it takes more than you'd guess:

<lora:styleName:0.8>
<lora:styleName:0.7:0.9>        # TE weight : UNet weight
<lora:styleName:te=0.7:unet=0.9>

Weights are looked up in order: by filename without the extension (subfolders included), then by the ss_output_name alias stored inside the safetensors file. That second one is the difference between "my LoRA never loads" and it working, if you renamed the file after downloading it. A LoRA that can't be found is skipped with an error in the console - same as Neo, no crash, no silent half-application.

Then the actual patch goes through comfy.sd.load_lora_for_models - literally the same function the stock LoRA Loader node calls. The author tested both paths against each other and they're bit-identical, so this isn't a subtly different LoRA implementation you have to distrust.

Install

ComfyUI Manager → ComfyUI Neo Sampler, or:

cd ComfyUI/custom_nodes
git clone https://github.com/wangjue520/ComfyUI-Neo-Sampler

Restart. lark, torchsde, scipy auto-install into the Python that runs ComfyUI, with the manual pip command printed if that fails. No models bundled - LoRAs come from your own models/loras folder.

Where people get burned

Double application. This is the whole failure mode. If you use this node, turn the Neo KSampler's prompt_lora off. Same LoRA, applied to the same weights twice, and the result is muddy rather than obviously broken - which is why people live with it for weeks without noticing.

Only the first prompt's tags count. If several positive conditioning entries carry <lora> tags, both this node and the sampler use only the first one's and log a warning. That's Neo's rule and it's replicated deliberately, but it's easy to assume they'd merge.

The tag stays in the text. The string is unchanged; it's the Neo CLIP Converter path that strips <lora:...> out before encoding. Skip the converter and you risk the encoder seeing the tag as literal words. Pair them.

No converter, half the patch. If the conditioning wasn't encoded through the Neo CLIP Converter, the node has no Neo-patched CLIP to attach to, and it warns that the LoRAs can only be applied to the model. The image will still "work" - which is why this one lingers unnoticed.

Also worth remembering: this reads only the positive prompt. Negative-side LoRA tags don't exist in Neo, and they don't here.

CategoryNeo (Forge Neo 复刻)

Inputs (3)

NameTypeDefaultDescription
modelMODEL—
clipCLIP—
textSTRING正面提示词(与送进文本编码节点的是同一段文字)

Outputs (2)

NameTypeDescription
MODELMODEL—
CLIPCLIP—