Nodes/ComfyUI-Fal-API-Flux/Fal API Flux with LoRA and ControlNet
ComfyUI Node

Fal API Flux with LoRA and ControlNet

ComfyUI Node Guide

By yhayano-ponotech·Created 2 years ago·Updated 2 years ago· 57
Fal API Flux with LoRA and ControlNet
  • lora_1
  • lora_2
  • lora_3
  • lora_4
  • lora_5
  • controlnet
  • controlnet_union
  • IMAGE
prompt
width1024
height1024
num_inference_steps28
guidance_scale3.50
num_images1
enable_safety_checkertrue
seed0

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.

Categoryimage generation

Inputs (15)

NameTypeDefaultDescription
promptSTRING
widthINT1024
heightINT1024
num_inference_stepsINT281–100
guidance_scaleFLOAT3.500.1–40
num_imagesINT11–4
enable_safety_checkerBOOLEANtrue
seedoptINT00–18446744073709550000
lora_1optLORA_CONFIG
lora_2optLORA_CONFIG
lora_3optLORA_CONFIG
lora_4optLORA_CONFIG
lora_5optLORA_CONFIG
controlnetoptCONTROLNET_CONFIG
controlnet_unionoptCONTROLNET_UNION_CONFIG

Outputs (1)

NameTypeDescription
IMAGEIMAGE