Nodes/ComfyUI Assistant Node/PVL Flux.2 Dev (fal.ai)
ComfyUI Node

PVL Flux.2 Dev (fal.ai)

Flux 2 Dev in ComfyUI without the 24 GB of VRAM

By pvlprk·Created about a year ago·Updated 8 months ago· 1
PVL Flux.2 Dev (fal.ai)
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • IMAGE
prompt
image_sizecustom
width1024
height1024
steps28
CFG2.5
seed-1
num_images1
accelerationregular
enable_prompt_expansionfalse
enable_safety_checkerfalse
output_formatpng
sync_modefalse
retries2
timeout_sec30
debug_logfalse
delimiter[++]
lora1_name
lora1_scale1.0
lora2_name
lora2_scale1.0
lora3_name
lora3_scale1.0

Flux 2 is the open-weights capability ceiling right now - the 32B rectified flow transformer with a Mistral-3 vision encoder that does generation and editing in one checkpoint. It's also the model most people can't run locally: even quantized it wants 18–24 GB of VRAM, and the community's reaction at launch was less "wow" and more "how do I fit this thing." This node answers that with a shrug: it just runs Flux 2 Dev on fal.ai's cloud and hands the image back to your graph. No giant download, no VRAM juggling, no GGUF quantization roulette.

It's part of the ComfyUI Assistant Node pack from pvlprk, which wraps a whole shelf of fal.ai endpoints. You pay per generation, but you pay zero setup cost, and your local machine stays free for other things.

How it works

The node is one of the more complete wrappers in the pack. It base64-encodes any images you connect, picks an endpoint automatically, submits to fal's queue API, polls, and downloads the result as a normal IMAGE tensor. It can even run multiple generations in parallel threads, split your prompt into several on a delimiter, and retry failed calls.

The clever part is endpoint auto-selection - one node covers four jobs:

  • No image, no LoRA → fal-ai/flux-2 (text to image)
  • Image connected → fal-ai/flux-2/edit (image editing, up to the first 3 of your 8 image inputs as references)
  • LoRA set → fal-ai/flux-2/lora
  • Both → fal-ai/flux-2/lora/edit

So you can treat this as your do-everything Flux 2 node: write a prompt, and depending on what you wire in, it generates, edits, or edits-with-a-LoRA.

The inputs that matter

  • prompt - the main event. With enable_prompt_expansion on, fal's rewriter beefs up short prompts before generation, which is often worth it.
  • image_size - preset ratios (1:1, 3:4, 9:16, 4:3, 16:9) or custom, which activates width/height (512–2048).
  • steps / CFG - defaults 28 and 2.5. Flux 2 is not that sensitive here; leave them alone unless you're hunting for a specific look.
  • num_images - 1–8. Combined with the delimiter prompt-splitting, you can fan one node out into several parallel generations.
  • acceleration - regular is the default and usually the right call; high trades quality for speed, none for max quality.
  • Optional lora1_namelora3_name - fal-hosted LoRA identifiers with their own scales.

Output is a single IMAGE, ready to feed straight into a VAE-free chain of local nodes - save, upscale, composite.

Installing it

Install the pack via ComfyUI Manager (search "ComfyUI Assistant Node") or:

cd ComfyUI/custom_nodes
git clone https://github.com/pvlprk/comfyui-pvl-api-nodes

Then set your fal.ai key as FAL_KEY (the code also reads FAL_API_KEY / FAL_CLIENT_KEY) and restart ComfyUI. Prepaid fal credits required.

Where people get burned

The two classic fal-node traps apply: a missing FAL_KEY kills every call, and errors sometimes surface as a blank placeholder image rather than a loud failure - always glance at the console. Content-policy violations are detected and not retried, so if you get one, fix the prompt, don't just bump retries. And remember Flux 2's safety filtering is aggressive by design; if you're hitting the filter a lot, that's the model card, not your settings.

CategoryPVL_tools_FAL

Inputs (31)

NameTypeDefaultDescription
promptSTRING
image_sizeCOMBOcustom6 options: 1:1, 3:4, 9:16, 4:3, 16:9, custom
widthINT1024512–2048
heightINT1024512–2048
stepsINT281–100
CFGFLOAT2.51–20
seedINT-1-1–4294967295
num_imagesINT11–8
accelerationCOMBOregular3 options: none, regular, high
enable_prompt_expansionBOOLEANfalse
enable_safety_checkerBOOLEANfalse
output_formatCOMBOpng3 options: jpg, png, webp
sync_modeBOOLEANfalse
retriesINT20–10
timeout_secINT305–600
debug_logBOOLEANfalse
delimiteroptSTRING[++]
lora1_nameoptSTRING
lora1_scaleoptFLOAT1.0-2–2
lora2_nameoptSTRING
lora2_scaleoptFLOAT1.0-2–2
lora3_nameoptSTRING
lora3_scaleoptFLOAT1.0-2–2
image_1optIMAGE
image_2optIMAGE
image_3optIMAGE
image_4optIMAGE
image_5optIMAGE
image_6optIMAGE
image_7optIMAGE
image_8optIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE