Forge LoRA Stack
Pick LoRAs from Forge's own library without hand-typing a single tag
- LORA_STACK
Forge LoRA Stack is the LoRA picker for a ComfyUI graph that isn't actually generating images itself. It's part of the ComfyUI-ForgeAPI pack, a small bridge that hands your job off to a running SD WebUI Forge server over its local HTTP API. This node's job is "here are the LoRAs to apply" - and it pulls the list straight from Forge, so you get clean dropdowns instead of hand-typed <lora:name:strength> tags.
If you've ever imported a Civitai workflow and spent ten minutes untangling <lora:SomeStyle:1:hash1234>, this is aimed at you. The node asks Forge what LoRAs it has, builds a tidy bundle, and feeds it to ForgeSampler. There's a second, quieter win: one model library. Your LoRAs live in Forge's folders, so you don't maintain a duplicate copy for ComfyUI.
How it works. On load, the node calls Forge's /sdapi/v1/loras endpoint at forge_url (default http://127.0.0.1:7860) to fill the name dropdowns. Each slot is just a name plus a strength. When you run the graph, build() collects every lora_N_name / lora_N_strength pair into a list of {"name", "strength"} dicts and sends it out as a single LORA_STACK. ForgeSampler then appends each one to your prompt as <lora:name:strength> before calling the generation API. That's the whole mechanism - no LoRA math happens in ComfyUI. The README's talk of "resolving ForgeUI's random LoRA hashes" really means: you're picking from Forge's own registry, so you never have to care about hash strings at all.
The inputs that matter. Two per slot, and they're the whole node:
lora_N_name- the dropdown, populated from Forge's list. Pick your LoRA.lora_N_strength- default 1.0, range −10 to 10. Negative strengths are real here (inversion-style effects), though most people live between 0.5 and 1.5.
enabled toggles the node off without deleting your slots. forge_url exists for when Forge isn't on the default port, but the node's front-end JS hides it and auto-copies the value from a ForgeSampler in your graph, so you rarely touch it. There are five slots, and a "+ Add LoRA" button in the UI manages them. The single output, LORA_STACK, wires straight into the lora_stack input on ForgeSampler - nothing else accepts it.
Install. ComfyUI Manager (search "ComfyUI-ForgeAPI"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/kreonxv/ComfyUI-ForgeAPI
Then restart ComfyUI. No heavy dependencies - it uses requests, Pillow, and torch, all already part of ComfyUI.
Gotchas. The big one: the dropdown only fills if Forge was running when ComfyUI started. The node builds its input list at load time by hitting the live API; if Forge is down, you get an empty "None" list. Start Forge first, then restart ComfyUI. Same rule applies after adding new LoRAs to Forge - the list is a snapshot, not a live query.
Where people get burned: expecting this node to load LoRAs into a ComfyUI-native sampler. It can't - it only feeds ForgeSampler. And it's a localhost bridge, so Forge genuinely has to be running for anything to happen. Skip it entirely if you're on a pure-ComfyUI setup with no Forge install; ComfyUI already has perfectly good LoRA loader nodes.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| forge_url | STRING | http://127.0.0.1:7860 | — |
| enabled | BOOLEAN | true | — |
| lora_1_nameopt | COMBO | 1 options: None | |
| lora_1_strengthopt | FLOAT | 1.00-10–10 | — |
| lora_2_nameopt | COMBO | 1 options: None | |
| lora_2_strengthopt | FLOAT | 1.00-10–10 | — |
| lora_3_nameopt | COMBO | 1 options: None | |
| lora_3_strengthopt | FLOAT | 1.00-10–10 | — |
| lora_4_nameopt | COMBO | 1 options: None | |
| lora_4_strengthopt | FLOAT | 1.00-10–10 | — |
| lora_5_nameopt | COMBO | 1 options: None | |
| lora_5_strengthopt | FLOAT | 1.00-10–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LORA_STACK | LORA_STACK | — |