HF Lora Combiner
Take up to five LoRA URLs and hand them to the API as one clean list
- lora_weights
LoRAs are the unit of currency in every model ecosystem - the KB's panel calls them "a small low-rank adapter that patches a checkpoint's behavior without retraining it." When you're working through an API, though, a LoRA stops being a file on disk and becomes a URL string, and if you want to stack several, you need them as an array. That's the entire job of this node: it takes up to five LoRA URL strings and emits them as one list, formatted the way the API-expecting nodes in this pack want.
It's dead simple, and that's the point. Inputs:
lora_1throughlora_5- five optional URL fields. The tooltips say it plainly: leave one empty and it's skipped. There's no weight input here, no strength dial - this is purely about assembling URLs into an array, because weights are the generation node's problem, not the combiner's.output_format- the one real choice:python_list(emits['url1', 'url2']) orjson_string(emits'["url1", "url2"]'). Which you pick depends entirely on what the downstream node expects; when in doubt, trypython_listfirst - it's the default.
Single output: lora_weights (a STRING carrying the formatted array). It's marked as an output node, so it sits at the end of its branch and hands the assembled list to whatever generation node accepts LoRA URLs.
Where this fits in this pack's world: the pack's mental model is CPU-only ComfyUI with everything offloaded to cloud APIs, and in that world LoRAs travel as HuggingFace URLs. The natural chain is HF Lora URL Builder (or HF Model Selector) to produce a URL, then this node to bundle several of them, then a Replicate/fal generation node that takes a LoRA list. The pack's README explicitly frames these HuggingFace nodes as a set: "Combine multiple Lora URLs into an array for use with other nodes."
Mechanically it's a string joiner - no network, no token, no GPU, no cost. That makes it one of the handful of nodes in this pack you can use with zero API setup.
Install is the shared pack flow - ComfyUI Manager (search ComfyUI-API-DockerCPU), or:
cd ComfyUI/custom_nodes
git clone https://github.com/trustypangolin/ComfyUI-API-DockerCPU
cd ComfyUI-API-DockerCPU
pip install -r requirements.txt
Restart and look under π¨ DockerCPU API/π€ HuggingFace.
The gotchas are all expectation-setting. First: the pack's own LoRA-capable Replicate nodes don't all expose a LoRA URL input in their current schema (the flux-2-klein-9b-base-lora node, for example, is the model that exists for LoRA inference), so before you build a five-LoRA stack, confirm the destination node actually accepts the lora_weights list - otherwise you're formatting strings for a node that won't take them. Second: empty slots are skipped, but a trailing comma or a weird quote in your URL will survive into the output, and the API will fail at its end with an unhelpful error. If a LoRA-stacked generation fails, paste the lora_weights output somewhere and eyeball it before debugging the model. It's a dumb little node, and the dumb little failure is a malformed string.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| output_format | COMBO | python_list | Output format: β’ python_list: ['url1', 'url2'] β’ json_string: '["url1", "url2"]' |
| lora_1opt | STRING | Lora 1 URL (optional, leave empty to skip) | |
| lora_2opt | STRING | Lora 2 URL (optional, leave empty to skip) | |
| lora_3opt | STRING | Lora 3 URL (optional, leave empty to skip) | |
| lora_4opt | STRING | Lora 4 URL (optional, leave empty to skip) | |
| lora_5opt | STRING | Lora 5 URL (optional, leave empty to skip) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lora_weights | STRING | β |