arkennemasis fal · Flux 2 Pro Edit · $0.03 + $0.015/MP
The API-only flagship with reference images attached
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- images
- image_paths
- seed
- info
This is the editor of the Pro pair: the same API-only flagship tier, with image_1 through image_6 and an image_size that defaults to auto so the output follows what you fed it. Pricing is $0.03 for the first megapixel of output, then $0.015 per additional megapixel of input and output, rounded up - so a 1024×1024 output is $0.03 and a 1920×1080 output is $0.045.
What you're actually renting
FLUX.2 [pro] never leaves the API - that's BFL's pattern going back to Flux.1, where Pro stayed closed while Schnell shipped Apache 2.0 and Dev shipped non-commercial. There is no local equivalent at any VRAM, so the only question this node answers is whether the job is worth the per-megapixel rate. Multi-reference editing is the usual yes: character plus object plus style, conditioned together, no fine-tuning, no ControlNet stack.
Inputs
prompt is the edit instruction - write it as an action on the file. "Replace the background with a plain grey studio wall", "remove the text on the mug". Describe the scene instead and the model drifts into generating something adjacent to your picture rather than editing it.
image_1 is required, and extra sockets run to image_6; batches are allowed and counted in socket order. image_size defaults to auto here, letting the model follow the input's shape - the sane default for editing, and the reason this node behaves differently from the Klein editors in this pack, which default to straightforward square_hd. Use custom with image_size_width and image_size_height when the output shape has to be exact.
seed at -1 randomises; output_format defaults to jpeg (set png if you're going to edit the result again); safety_tolerance runs 1 (strictest) to 5 (most permissive), default 2, with enable_safety_checker alongside it, and the tooltip notes that turning the checker off requires authorisation on your fal account. There's no num_images and no step or guidance control - the Pro tier decides for you.
The four shared options are identical on every fal node in the pack: max_cost_usd (default $20) refuses the run before upload if the estimate is too high, which is genuinely useful given that input pictures count toward the bill; reuse_identical_run frees an exact repeat; extra_json passes through fal fields the node has no box for; max_concurrent (default 1) keeps paid fal calls serial rather than simultaneous.
Outputs
images gives you the edited batch for the rest of the graph, image_paths the files on disk, seed the reproducibility handle, and info the JSON record - request id, estimate, saved files, fal's full response. This endpoint's node returns a slimmer set than the Klein editors: no timings, no has_nsfw_concepts, no prompt passthrough.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Restart ComfyUI, then:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
into the .env beside run_nvidia_gpu.bat. Standard library only - no pip install for the fal nodes; the pack's httpx requirement belongs to its Codex/ChatGPT nodes.
Where people get burned
The swapped descriptions, first, because it's the kind of thing that wastes an hour: fal's page copy for the two Pro endpoints is effectively inverted, with the plain pro page describing editing and the pro/edit page describing text-to-image. Your only reliable guide is the schema - if there's no image socket, it isn't the editor.
Second, cost with inputs counted: a 2MP input plus a 1MP output is three billed megapixels, so roughly $0.06 per attempt, and loops make that multiply silently. Set max_cost_usd to something you'd actually be happy to spend. Third, expectations on identity - Pro is excellent at composition and multi-reference conditioning, but if a specific face must come through untouched, an identity-preserving editor is still the safer tool. And the standard caveat: your references go to fal before anything renders, so decide what you're comfortable uploading.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The prompt to generate an image from. | |
| image_size | COMBO | auto | The size of the generated image. If `auto`, the size will be determined by the model. 'custom' uses the width and height below. |
| image_size_width | INT | 102416–14142 | Width in pixels when image_size is 'custom'. |
| image_size_height | INT | 102416–14142 | Height in pixels when image_size is 'custom'. |
| seed | INT | -1-1–2147483647 | The seed to use for the generation. -1 leaves it to the model. |
| safety_tolerance | COMBO | 2 | The safety tolerance level for the generated image. 1 being the most strict and 5 being the most permissive. |
| enable_safety_checker | BOOLEAN | true | Whether to enable the safety checker. Disabling it requires account authorization; unauthorized requests are always checked. |
| output_format | COMBO | jpeg | The format of the generated image. |
| image_1 | IMAGE | List of URLs of input images for editing Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_2opt | IMAGE | List of URLs of input images for editing Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_3opt | IMAGE | List of URLs of input images for editing Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_4opt | IMAGE | List of URLs of input images for editing Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_5opt | IMAGE | List of URLs of input images for editing Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| image_6opt | IMAGE | List of URLs of input images for editing Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety 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_runopt | BOOLEAN | true | If 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_jsonopt | STRING | Advanced: 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_concurrentopt | INT | 11–32 | How 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 (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| image_paths | STRING | — |
| seed | INT | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |