Fal API Flux with LoRA and ControlNet
ComfyUI Node Guide
- lora_1
- lora_2
- lora_3
- lora_4
- lora_5
- controlnet
- controlnet_union
- IMAGE
This is the most flexible text-to-image node in the pack, and also the one with the most wiring to get right: FLUX.1 [dev], up to five stacked LoRAs, and structural guidance from a ControlNet - all in a single fal.ai call. Nothing about this node runs locally; it assembles your whole request and fires it at fal's hosted Dev endpoint, same as every other node in this pack, just with more pieces in the request.
The two ControlNet inputs are the point. controlnet accepts a CONTROLNET_CONFIG and controlnet_union accepts a CONTROLNET_UNION_CONFIG - both come from separate config nodes elsewhere in this pack ("Fal API Flux ControlNet Config" and "Fal API Flux ControlNet Union Config" respectively), and both carry their own control_image input, which is why you won't find a control-image socket on this node itself. Both slots are optional and independent, which means you can wire in neither (and get plain LoRA'd text-to-image), one, or both at once - a single-condition ControlNet plus a union ControlNet running together, up to two structural conditions per call. That's a real ceiling worth knowing: unlike the five LoRA slots, there's no stacking three or four ControlNets here.
ControlNet itself, worth being clear about since it means something different on Flux than it did in the SD1.5 days: on DiT architectures like Flux it's reimplemented against attention layers rather than wrapped around a UNet encoder, which is exactly why no SD-era ControlNet checkpoint loads on a Flux base - the model files have to be built for Flux specifically. Union-packaged ControlNets (one checkpoint, condition chosen at inference - canny, depth, pose, and a handful of others) are the modern default for a reason: one download instead of a dozen single-condition files.
Everything else matches the plain Dev-with-LoRA node: prompt (write it as a sentence, not tags), width/height (1024 default, step 8), num_inference_steps (28 default, 1–100), guidance_scale (3.5 default, 0.1–40), num_images (1–4), enable_safety_checker, optional seed, and lora_1 through lora_5 for stacked LORA_CONFIG inputs.
Output is IMAGE.
Installing it. Same as the rest of the pack: ComfyUI Manager search "ComfyUI-Fal-API-Flux," or clone https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux.git manually and pip install -r requirements.txt, then a config.ini in the pack folder with [falai] / api_key. No key, no calls.
Build it up in stages, not all at once. This node has the most moving parts in the whole pack, and debugging a blank graph with LoRA and two ControlNet configs wired in simultaneously is genuinely hard to reason about. Get plain text-to-image working first, add one LoRA, confirm it's doing something, then add a single ControlNet config and confirm that, before combining everything. If the ControlNet condition seems to have no effect at all, double-check the config node's own path field - the plain (non-union) ControlNet Config node in this pack ships with a default path that isn't actually a Flux-compatible ControlNet, so an unedited default there will silently do nothing.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| width | INT | 1024 | — |
| height | INT | 1024 | — |
| num_inference_steps | INT | 281–100 | — |
| guidance_scale | FLOAT | 3.500.1–40 | — |
| num_images | INT | 11–4 | — |
| enable_safety_checker | BOOLEAN | true | — |
| seedopt | INT | 00–18446744073709550000 | — |
| lora_1opt | LORA_CONFIG | — | |
| lora_2opt | LORA_CONFIG | — | |
| lora_3opt | LORA_CONFIG | — | |
| lora_4opt | LORA_CONFIG | — | |
| lora_5opt | LORA_CONFIG | — | |
| controlnetopt | CONTROLNET_CONFIG | — | |
| controlnet_unionopt | CONTROLNET_UNION_CONFIG | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |