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

PVL Flux Dev Inpaint (fal.ai)

Mask-based Flux inpainting in the cloud, the honest way

By pvlprk·Created about a year ago·Updated 8 months ago· 1
PVL Flux Dev Inpaint (fal.ai)
  • image
  • mask
  • IMAGE
prompt
width1024
height1024
strength0.85
steps28
CFG3.5
seed-1
num_images1
enable_safety_checkerfalse
output_formatpng
sync_modefalse
retries2
timeout_sec120
debug_logfalse
delimiter[++]

This is the node for people who still believe in masks. As the KB's inpainting essay makes clear, instruction-editing models like Qwen and Kontext took over most of the editing job, but they re-emit the whole frame - "the model changes every pixel," as one regular put it. Real mask-based inpainting only rewrites the region you painted. PVL Flux Dev Inpaint (fal.ai) gives you that, on Flux Dev hardware you don't own: it wraps fal.ai's fal-ai/flux-lora/inpainting endpoint (a Flux Dev inpainting pipeline) and runs entirely in the cloud.

So the use case: you've got an image, a flaw, a watermark, an unwanted object - and you want only that changed, with the rest of the pixels left alone. Draw the mask, write the prompt, get back an inpainted result with everything outside the mask untouched.

How it works

The node converts your image and your mask (a real ComfyUI MASK tensor, where 1.0 = inpaint region) into base64 PNG data URIs, submits to the fal queue API, then polls the request until done and fetches the image back. It's the two-phase submit-then-poll pattern this pack uses for its heavier nodes, complete with retries (2) and timeout_sec (120) so a slow queue doesn't hang your workflow forever.

Inputs that matter

  • prompt, image, and mask are all required. The mask is the star - paint exactly what should change.
  • strength (default 0.85) controls how much the masked region is rewritten; drop toward 0.5-0.7 for subtler fixes.
  • steps (28) and CFG (3.5) are the diffusion knobs. Flux Dev likes low CFG; 3.5 is a fine starting point.
  • width/height (256-2048, default 1024) set output resolution; the model works best at multiples of 64.
  • seed (-1 = random), num_images (1-4), output_format (jpeg/png), enable_safety_checker (off), sync_mode.

Output is a single IMAGE. If num_images > 1, expect a batch.

Install

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

Restart ComfyUI and set FAL_KEY in the environment that launches it (fal.ai/dashboard). The pack's requirements.txt installs a lot you don't need here; Manager handles it.

Where people get burned

  • This one actually takes a MASK socket, unlike the Qwen Inpaint node. Wire it from an auto-masker or a mask-from-image node; don't feed it a plain RGB image and expect the right behavior.
  • Cloud inpainting = paid inpainting. Keep num_images at 1 until the prompt and mask are locked.
  • Flux Dev inpaint is solid but not magical at edges. Big mask regions can blur boundaries; feathering your mask slightly (or choosing a smaller region) usually cleans that up better than raising CFG.
  • It's the LoRA-family inpaint endpoint, so if you later want LoRA paths and reference images, the sibling PVL Kontext Dev Inpaint node in the same pack has those inputs - this one deliberately keeps things simple.
CategoryPVL_tools_FAL

Inputs (17)

NameTypeDefaultDescription
promptSTRING
imageIMAGE
maskMASK
widthINT1024256–2048
heightINT1024256–2048
strengthFLOAT0.850–1
stepsINT281–100
CFGFLOAT3.51–20
seedINT-1-1–4294967295
num_imagesINT11–4
enable_safety_checkerBOOLEANfalse
output_formatCOMBOpng2 options: jpeg, png
sync_modeBOOLEANfalse
retriesINT20–10
timeout_secINT1205–600
debug_logBOOLEANfalse
delimiteroptSTRING[++]

Outputs (1)

NameTypeDescription
IMAGEIMAGE