Nodes/ComfyUI/Create Hook Model as LoRA (MO)
ComfyUI Node Runs on cloud

Create Hook Model as LoRA (MO)

The whole-model patch with the text encoder left out

By Comfy-Org·Created 4 years ago·Updated about 24 hours ago· 129,495
Create Hook Model as LoRA (MO)
  • prev_hooks
  • HOOKS
ckpt_name
strength_model1.00

CreateHookModelAsLoraModelOnly ("Create Hook Model as LoRA (MO)") is the model-only version of the trick that turns an entire checkpoint into a maskable, schedulable weight patch. Same idea as CreateHookModelAsLora - load a whole model, apply its difference against your base as if it were a LoRA - but with the CLIP half of the patch pinned to zero. You get a whole checkpoint's worth of model influence, and none of its text encoder's.

The mechanism, briefly

The full version loads a checkpoint from models/checkpoints, grabs both its diffusion-model weights and its CLIP weights, and registers them as a model_as_lora patch. At sample time ComfyUI subtracts your base model's original weights from the checkpoint's to produce a diff, then scales that diff by strength_model. This node does exactly that but skips the CLIP side entirely: one strength dial, strength_model, and strength_clip hardcoded to 0. Same ckpt_name dropdown, same prev_hooks chaining, same single HOOKS output.

Why "model only" is a feature here

When you're borrowing an entire checkpoint, the CLIP half is usually a liability. That checkpoint's text encoder interprets prompts its own way - it's a different embedding space with its own ideas about your trigger words - and patching it into your run can subtly rewrite how your prompt is understood. For pure weight-space effects (a style, a quality shift, a regional character that your own text prompt describes anyway), you don't want the borrowed CLIP's interpretation on top of yours. Model-only keeps the patch strictly in the model's weights, where you can mask it to a region and schedule its strength without the text side fighting your prompt.

The one-line summary: if you've ever loaded a full checkpoint and been annoyed that it changed how your prompt reads, this is the variant that leaves the reading alone.

The inputs

  • ckpt_name - dropdown of everything in models/checkpoints. The whole model whose diff you're borrowing.
  • strength_model - how hard the model diff applies, −20 to 20. Negative inverts it.
  • prev_hooks - chain onto an existing HOOKS group.

Output: HOOKS.

The cost you should know about

This is the memory-hungry end of the hook family. The node holds a second full model's weights in memory (cached until you switch checkpoints), and on first load it reads the whole file off disk. The full version is already the expensive sibling of CreateHookLora; this one trims the CLIP side but not the load. And the family tax applies: once the HOOKS reach a Set Props node and attach to conditioning, each hooked region is a separate model pass, so a regional workflow built on this will run measurably slower than a plain one. Fine for the occasional "apply this whole style model to one side of the image" experiment; not something to put in every workflow.

The entire hooks family is core ComfyUI - no install, marked experimental - and this node sits under advanced → hooks → create, one slot over from the full version.

Categoryadvanced/hooks/create

Inputs (3)

NameTypeDefaultDescription
ckpt_nameCOMBO0 options:
strength_modelFLOAT1.00-20–20
prev_hooksoptHOOKS

Outputs (1)

NameTypeDescription
HOOKSHOOKS