Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Flux 2 Flash Edit · $0.005/MP
ComfyUI Node

arkennemasis fal · Flux 2 Flash Edit · $0.005/MP

Picture-in, picture-out for half a cent a megapixel

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Flux 2 Flash Edit · $0.005/MP
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • images
  • image_paths
  • seed
  • prompt
  • timings
  • has_nsfw_concepts
  • info
◄prompt►
◄guidance_scale2.50►
◄seed-1►
◄image_sizesquare_hd►
◄image_size_width1024►
◄image_size_height1024►
◄num_images1►
◄enable_prompt_expansionfalse►
◄enable_safety_checkertrue►
◄output_formatpng►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

The cheapest way to hand a photo to Flux 2 and describe a change. Flash Edit is the same endpoint as the full Flux 2 Edit node, at $0.005 per megapixel instead of $0.012 - and like its text-to-image sibling, it trades away the sampling knobs to get there. No num_inference_steps, no acceleration. Prompt, references, size, output.

For bulk work - a catalogue of product shots needing the same background swap, forty frames needing the same colour correction - that's the right trade. You're not tuning a hero image here, you're processing a pile of them.

The inputs

prompt - talk to the model like a retoucher, not a dreamer. remove blur and noise, match the white balance to daylight, straighten the horizon. The known failure mode of Flux 2 editing is identity drift: describe the person and you'll get a plausible new person instead of the one in the file. Say what must not change, and use micro-contrast rather than sharp when you're after skin detail, or you'll buy yourself fake wrinkles.

image_1 - required, and the only reference socket you have to fill. But there are sockets image_2 through image_6, and they're worth understanding: fal uses the first four, each socket may carry a whole batch, and everything is sent in socket order, so the first picture on socket 1 is reference number 1. Multi-reference editing (put this on that, keep this person's face) is the strongest thing about this model, so it's worth using more than one socket.

image_size - square_hd by default; custom uses image_size_width / image_size_height. This is your output shape, not your input shape. If your source is 4:3 and you render to square, you've asked the model to reframe the picture, and it will.

guidance_scale (2.5), seed (-1), num_images, output_format, enable_safety_checker (flagged results come back as black squares; disabling it needs authorization on your fal account).

enable_prompt_expansion - off by default. Here, leave it off. An LLM rewriting your edit instruction is how "just fix the exposure" becomes "a dramatic cinematic reinterpretation."

What it costs

Billed per megapixel of input and output. Inputs are resized to 1MP, so a 1024×1024 render from a 512×512 reference is 1MP + 1MP = about $0.010. Four references still count as one megapixel of input, so feeding it more pictures doesn't multiply the price - only num_images and your output size do.

Outputs

images is the edited result as an IMAGE (a batch if you asked for several). image_paths gives the saved file paths as a string. seed is an INT - lock a good one and you can reproduce that exact edit. prompt echoes what the model actually received, timings is fal's timing JSON, has_nsfw_concepts reports the safety checker, and info is the JSON blurb with the request id, estimate, saved files and fal's full answer.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis

Restart ComfyUI and you'll find it under arkennemasis → fal → Image → Flux. ComfyUI-Manager → Install via Git URL → the repo URL does the same thing with clicks. The pack's requirements.txt lists only httpx, which serves its ChatGPT/Codex nodes; the fal nodes use Python's standard library and add nothing to your environment.

Key line in the .env next to run_nvidia_gpu.bat:

FAL_KEY=your-key-from-fal.ai/dashboard/keys

Where people get burned

Grey/black squares in the output are the safety checker, not corruption. Images it flags come back black. There's no field to switch it off on an unauthorised account; unauthorised requests are checked either way.

Warm, slightly-off colour after the edit is a real, reproducible trait of this model, independent of precision - the result drifts warmer than the source. If the edited frames are going back into a sequence, add a colour-match node against the originals.

The same instruction giving you the same file twice is reuse_identical_run, on by default. It's the feature that stops you paying twice for a repeated run; turn it off when you actually want variety.

A big batch dying partway is usually a rate limit on the fal side, which the node retries with backoff on its own. Keep max_concurrent low for batch work, and remember max_cost_usd (default $20) is checked before upload - you can cap an overnight job at two dollars and it will simply stop short instead of surprising you.

Categoryarkennemasis/fal/Image/Flux

Inputs (20)

NameTypeDefaultDescription
promptSTRINGThe prompt to edit the image.
guidance_scaleFLOAT2.500–20Guidance Scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you.
seedINT-1-1–2147483647The seed to use for the generation. If not provided, a random seed will be used. -1 leaves it to the model.
image_sizeCOMBOsquare_hdThe size of the image to generate. The width and height must be between 512 and 2048 pixels. 'custom' uses the width and height below.
image_size_widthINT102416–14142Width in pixels when image_size is 'custom'.
image_size_heightINT102416–14142Height in pixels when image_size is 'custom'.
num_imagesINT11–4The number of images to generate.
enable_prompt_expansionBOOLEANfalseIf set to true, the prompt will be expanded for better results.
enable_safety_checkerBOOLEANtrueIf set to true, the safety checker will be enabled. Disabling it requires account authorization; unauthorized requests are always checked, and images flagged as unsafe are returned as black images.
output_formatCOMBOpngThe format of the generated image.
image_1IMAGEThe URLs of the images for editing. A maximum of 4 images are allowed, if more are provided, only the first 4 will be used. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_2optIMAGEThe URLs of the images for editing. A maximum of 4 images are allowed, if more are provided, only the first 4 will be used. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_3optIMAGEThe URLs of the images for editing. A maximum of 4 images are allowed, if more are provided, only the first 4 will be used. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_4optIMAGEThe URLs of the images for editing. A maximum of 4 images are allowed, if more are provided, only the first 4 will be used. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_5optIMAGEThe URLs of the images for editing. A maximum of 4 images are allowed, if more are provided, only the first 4 will be used. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_6optIMAGEThe URLs of the images for editing. A maximum of 4 images are allowed, if more are provided, only the first 4 will be used. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
max_cost_usdoptFLOAT20.00–100000Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap.
reuse_identical_runoptBOOLEANtrueIf these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings.
extra_jsonoptSTRINGAdvanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally.
max_concurrentoptINT11–32How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed.

Outputs (7)

NameTypeDescription
imagesIMAGE—
image_pathsSTRING—
seedINT—
promptSTRING—
timingsSTRING—
has_nsfw_conceptsSTRING—
infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.