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

Fal API Flux with LoRA and ControlNet Image-to-Image

ComfyUI Node Guide

By yhayano-ponotech·Created 2 years ago·Updated 2 years ago· 57
Fal API Flux with LoRA and ControlNet Image-to-Image
  • image
  • 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
strength0.80
seed0

Take the LoRA-plus-ControlNet text-to-image node and add a starting image to img2img from - that's this node. It's the pack's example workflow image on the GitHub repo, and for good reason: it's the combination that does the most work at once, blending a source image, a style or subject LoRA, and structural guidance from a ControlNet, all through FLUX.1 [dev] on fal's servers in one call.

What makes this img2img is the pair image (required) and strength (0–1, default 0.8) - the usual denoise-amount tradeoff, where higher lets the result diverge further from your source and lower keeps it closer. With a ControlNet also in play, strength and the ControlNet's own conditioning_scale are pulling in related but separate directions: strength governs how much the whole image is allowed to change, the ControlNet governs how tightly it follows the specific structure (edges, depth, pose) you fed it. If results feel underconstrained, it's worth checking both rather than assuming one setting is doing all the work.

ControlNet wiring works exactly like the text-to-image version: controlnet takes a CONTROLNET_CONFIG and controlnet_union takes a CONTROLNET_UNION_CONFIG, each sourced from its own config node elsewhere in this pack, each carrying its own control_image - that's why there's no separate control-image socket here even though this node already has one image input for the img2img source. Both ControlNet slots are optional, so you can run this as plain LoRA img2img with neither wired in, or add one or both for up to two structural conditions.

The rest of the inputs are the standard set: prompt (write it as a sentence, Flux's T5 encoder wants natural language), 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_1lora_5 for stacked LORA_CONFIG inputs.

Output is IMAGE.

Installing it. ComfyUI Manager search "ComfyUI-Fal-API-Flux" is the simple route; manual installers clone https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux.git (not the placeholder URL in the README's own example) into custom_nodes, run pip install -r requirements.txt, and - the part that gates every node in this pack - drop a config.ini with a [falai] section and api_key next to the node code. Restart ComfyUI.

This is the node to build incrementally, not blind. With an img2img source, a LoRA, and a ControlNet all feeding into one call, a bad result could be any one of three things going wrong. Get the image-to-image behavior right on its own first (dial strength until a plain img2img pass looks reasonable), then add your LoRA and confirm it's visibly doing something, then finally wire in a ControlNet config and check its control_image and conditioning_scale in isolation. The example workflow shipped in the repo's examples/ folder - drag its PNG onto the ComfyUI canvas - is the fastest way to see a known-good version of this graph before you start editing it.

Categoryimage generation

Inputs (17)

NameTypeDefaultDescription
promptSTRING
widthINT1024
heightINT1024
num_inference_stepsINT281–100
guidance_scaleFLOAT3.500.1–40
num_imagesINT11–4
enable_safety_checkerBOOLEANtrue
imageIMAGE
strengthFLOAT0.800–1
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