KurutAI LoRA + Prompt
One node for the whole KurutAI LoRA + prompt recipe
- model
- clip
- model
- clip
- positive
- negative
KurutAIWorkflowLoader is the pack's flagship, and the node the sidebar builds when you click Add to workflow. The display name says it all: KurutAI LoRA + Prompt. It takes your base model and CLIP, loads the primary KurutAI LoRA plus an ordered stack of extra LoRAs each with its own weight, assembles the positive prompt with the trigger words you'd otherwise forget, and hands back model, clip, positive, and negative ready for the sampler chain. It's the closest thing this corner of the ecosystem has to a one-click LoRA workflow.
How it works
The node carries the primary LoRA's metadata (lora_name, lora_id, artifact_id, sha256, trigger_words) plus a lora_stack - a JSON list of additional LoRAs, each with its own strength_model and strength_clip. It walks that stack in order, skips duplicates by lora_id, and applies each with the pack's verified-download logic: if a file is missing you get the "not installed - queue again and confirm the download" error, and the first queue is when the SHA-256-verified download actually happens. Newer workflow snapshots (schema kurutai.workflow.v4) store the complete ordered stack; older ones kept the primary LoRA in the widget fields and the extras in the stack, and both still load. Then it runs the same prompt build as the KurutAI Prompt node - and, notably, trigger words are always included, never allowed to be silently dropped by an old false flag.
The inputs that matter
modelandclip- from your checkpoint loader.positiveandnegative- your editable prompt text (dynamic prompts supported); triggers get combined in before the positive output.include_trigger_words- defaults to true.strength_model/strength_clip- the primary LoRA's weights, default 1.0, −20 to 20.lora_stackandsnapshot- JSON that the frontend manages; you'll rarely type in them by hand.
Wiring it up
model → KSampler. clip → CLIP Text Encode. positive and negative (both STRINGs) → the same CLIP Text Encode's positive/negative inputs. That's the whole chain. The README says the extension auto-inserts this node into a standard sampler/text-encode chain, or can replace a native Load LoRA while preserving your existing connections - that's the nicest part for people with existing graphs.
Why you'd reach for it
The catalog flow: open the KurutAI sidebar tab, search, click Add to workflow, and this node configures itself - character, outfit, and style slots, each independently addable or removable. Quality tags and camera notes go in the Stable prompt field so the builder never overwrites them; the pose refresh button regenerates the pose line instantly. Downloads land in your configured LoRA folder, existing files are found recursively, and a same-name/different-hash collision asks before using a numbered filename - never a silent overwrite.
Troubleshooting
The "not installed" error on your first queue is normal, not a fault - that's the consent/download moment. NSFW previews are off by default under Settings → KurutAI. There's no API key and no account; the only network traffic is the catalog/download API at lora.nudemuse.online, and inference runs entirely on your GPU.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/KurutAI/KurutAI-ComfyUI.git
Or search KurutAI for ComfyUI in ComfyUI Manager and restart. No extra Python packages to install.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | STRING | — | |
| lora_id | STRING | — | |
| artifact_id | STRING | — | |
| sha256 | STRING | — | |
| trigger_words | STRING | — | |
| positive | STRING | — | |
| negative | STRING | — | |
| include_trigger_words | BOOLEAN | true | — |
| strength_model | FLOAT | 1.00-20–20 | — |
| strength_clip | FLOAT | 1.00-20–20 | — |
| lora_stack | STRING | [] | — |
| snapshot | STRING | {} | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| positive | STRING | — |
| negative | STRING | — |