Flux General (fal)
Flux with ControlNet, IP-Adapter and LoRA in one node
- control_image
- control_mask
- ip_adapter_image
- ip_adapter_mask
- IMAGE
This is the kitchen-sink Flux node. Where FluxDev_fal is a plain text-to-image box, FluxGeneral_fal bolts on the whole control stack - ControlNet, IP-Adapter, real CFG, and LoRAs - and runs all of it on fal's hardware. If you've ever wanted a structured, guided Flux generation but didn't want to download a pile of ControlNet checkpoints and adapters, this is the node that does it over the API. One box, a native IMAGE out.
It's genuinely the most capable node in the pack's Flux lineup, and also the most likely to overwhelm a beginner, because the optional inputs are long. The good news: everything past the basics is optional and defaults to "off," so you can treat it as plain Flux and only reach for the extras when you need them.
The three superpowers
ControlNet conditions the image on spatial structure - edges, depth, or pose extracted from a reference - so your prompt decides what appears and the control map decides where it goes. Pick a model in controlnets (canny, depth, surface-normals, upscaler, lineart, and union options are all listed), feed a control_image, and set controlnet_conditioning_scale. For a union model, controlnet_union_control_mode picks which mode (canny/depth/pose/tile/...).
IP-Adapter is image prompting without training a LoRA: hand it a reference via ip_adapter_image, set ip_adapters to the Flux IP-Adapter, and ip_adapter_scale controls how strongly the reference's style/identity bleeds in.
Real CFG. Flux Dev has no native negative prompt - guidance is distilled into the weights. Flip use_real_cfg on and set real_cfg_scale to restore true classifier-free guidance, which is what makes an actual negative prompt possible on Flux.
Plus two lora_path slots with scales, same as FluxLora_fal.
The inputs that matter
For a first run, ignore the wall of options and set: prompt, guidance_scale (default 3), and a control_image + a controlnets choice if you're steering composition. Note enable_safety_checker defaults to false on this node (unlike most of the pack). Output is one IMAGE.
Installing it
ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
pip install -r ComfyUI-fal-API/requirements.txt
No models to download - the ControlNet and IP-Adapter weights live on fal, referenced by name. Set your key (config.ini or export FAL_KEY=...; get it at fal.ai/dashboard/keys), restart, find it under FAL.
Where people get burned
The overwhelm is the main hazard - people wire up a control_image but forget to select a controlnets model (it defaults to "None"), then wonder why the structure isn't being followed. Both halves have to be set: the model and its image. Same for IP-Adapter: ip_adapters must be switched off "None" for ip_adapter_image to do anything.
Stacking ControlNet + IP-Adapter + two LoRAs also means a heavier, pricier fal call, so build up one feature at a time rather than turning everything on at once. And each run is billed - the persistent cache spares you re-paying for identical settings, but a genuinely different control image is a new charge. If a call errors, read fal's message; a mismatched control mode or an unreachable LoRA URL usually names itself.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image_size | COMBO | landscape_4_3 | 7 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, +1 |
| width | INT | 1024512–1536 | — |
| height | INT | 768512–1536 | — |
| num_inference_steps | INT | 281–50 | — |
| guidance_scale | FLOAT | 3.00–20 | — |
| real_cfg_scale | FLOAT | 3.30–5 | — |
| num_images | INT | 11–4 | — |
| enable_safety_checker | BOOLEAN | false | — |
| use_real_cfg | BOOLEAN | false | — |
| sync_mode | BOOLEAN | false | — |
| seedopt | INT | -1 | — |
| ip_adapter_scaleopt | FLOAT | 0.60–1 | — |
| controlnet_conditioning_scaleopt | FLOAT | 0.60–1 | — |
| ip_adaptersopt | COMBO | None | 2 options: None, XLabs-AI/flux-ip-adapter |
| controlnetsopt | COMBO | None | 9 options: None, XLabs-AI/flux-controlnet-depth-v3, Shakker-Labs/FLUX.1-dev-ControlNet-Depth, jasperai/Flux.1-dev-Controlnet-Depth, jasperai/Flux.1-dev-Controlnet-Surface-Normals, XLabs-AI/flux-controlnet-canny-v3, +3 |
| controlnet_unionsopt | COMBO | None | 3 options: None, Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro, InstantX/FLUX.1-dev-Controlnet-Union |
| controlnet_union_control_modeopt | COMBO | canny | 7 options: canny, tile, depth, blur, pose, gray, +1 |
| control_imageopt | IMAGE | — | |
| control_maskopt | MASK | — | |
| ip_adapter_imageopt | IMAGE | — | |
| ip_adapter_maskopt | MASK | — | |
| lora_path_1opt | STRING | — | |
| lora_scale_1opt | FLOAT | 1.000–2 | — |
| lora_path_2opt | STRING | — | |
| lora_scale_2opt | FLOAT | 1.000–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |