FAL Flux 2 Klein Edit (4B/9B)
Klein 4B or 9B, without the 13GB of VRAM — Flux 2 editing over FAL
- image1
- image2
- image3
- image
- image_path
- generation_info
- generation_time
This node is the answer to a very specific frustration: Flux 2 Klein is the open-weights edit model everyone recommends, and it still needs about 13GB of VRAM to run locally. FAL Flux 2 Klein Edit runs the same model on fal.ai's servers, so you get Klein's editing without the hardware bill - and without hosting the 9B yourself.
A quick map, because "Klein" covers two models and the node makes you choose. Klein is BFL's January 2026 size-distilled Flux 2. The 4B variant is the fast, lighter tier (and the only commercially usable Flux 2 checkpoint - Apache 2.0). The 9B is the higher-quality one and the one the KB calls the main rival to Z-Image for editing. The node's model_variant dropdown is literally this choice: 4b for speed, 9b for quality. When in doubt, the community's answer is 9B for real work, 4B for iterating.
Mechanically it's a clean API wrapper. It submits to fal-ai/flux-2/klein/{4b|9b}/base/edit/lora - note the lora suffix on the endpoint, which is why there's a LoRA input at all - uploads your reference image(s) to fal, and polls until the edit comes back. The default prompt ("Make this donut realistic") is a decent tell for how the model thinks: describe the transformation, and it re-renders the frame.
The inputs that matter:
- api_key - your FAL key. Node input or
FAL_KEYenv var. - model_variant - 4b or 9b. The headline choice.
- prompt + image1 - the edit instruction and the source image. Up to 3 reference images total (
image2,image3optional); the author notes empty/black images on inputs 2 and 3 are auto-ignored, so you can leave them disconnected without drama. - width/height (512–2048, step 8) - output size. Keep the step-8 rule; it's a latent-variable model.
- negative_prompt, num_inference_steps (default 28, max 50), guidance_scale (default 5) - the usual dials, plus lora_url/lora_scale if you want style control via a hosted LoRA.
- acceleration (none/regular/high) - fal's speed tier. Higher acceleration trades a little quality for turnaround;
highis noticeably faster on the 9B.
Outputs: image (wire onward or preview), image_path (where the file landed on disk), generation_info (JSON metadata), and generation_time (seconds). Files go to output/API/FAL/flux-2-klein/ with a metadata JSON beside them.
Where it sits in the 2026 edit-model landscape: the KB's guidance is that Klein 9B and Qwen-Image-Edit are the two serious open edit models, and Klein's edge is multi-reference consistency - up to 10 reference images on the full model, which is why the three image inputs exist here. The catch, echoed in the corpus, is that BFL ships Klein safety-filtered and the license on 9B is non-commercial; the 4B is the one you can legally run a business on. If you want Klein's editing on your own GPU, you can - but this node exists precisely so you don't have to.
Install is the pack standard (Manager search "Node Fun", or clone https://github.com/nofunstudio/Node_Fun_ComfyUI into custom_nodes; the pack's fal-client dependency is what this node needs). One practical gotcha: this is a paid API, and the 9B at high resolution is not cheap - the generation_time output exists because you'll want to compare tiers before committing to a batch. For casual "make this donut realistic" edits, start on 4B.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| model_variant | COMBO | 4b | 2 options: 4b, 9b |
| prompt | STRING | Make this donut realistic | — |
| image1 | IMAGE | — | |
| width | INT | 1024512–2048 | — |
| height | INT | 1024512–2048 | — |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| negative_promptopt | STRING | — | |
| num_inference_stepsopt | INT | 284–50 | — |
| guidance_scaleopt | FLOAT | 5.00–20 | — |
| lora_urlopt | STRING | — | |
| lora_scaleopt | FLOAT | 1.000–2 | — |
| seedopt | INT | -1-1–2147483647 | — |
| output_formatopt | COMBO | png | 3 options: jpeg, png, webp |
| enable_safety_checkeropt | BOOLEAN | true | — |
| accelerationopt | COMBO | none | 3 options: none, regular, high |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_path | STRING | — |
| generation_info | STRING | — |
| generation_time | STRING | — |