Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Nano Banana Pro Edit · $0.15-0.30/image
ComfyUI Node

arkennemasis fal · Nano Banana Pro Edit · $0.15-0.30/image

Multi-reference compositing at 4K

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Nano Banana Pro Edit · $0.15-0.30/image
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • images
  • image_paths
  • description
  • info
◄prompt►
◄num_images1►
◄seed-1►
◄aspect_ratioauto►
◄output_formatpng►
◄safety_tolerance4►
◄system_prompt►
◄resolution1K►
◄limit_generationstrue►
◄enable_web_searchfalse►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

The Pro edit node takes the instruction-editing idea and points it at the job local pipelines are worst at: combining several references into one believable image. image_1 is required; image_2 through image_6 are optional, each socket accepting a batch. $0.15 an image, $0.30 at 4K.

Where the cheap edit node is a one-photo recolour machine, this is the node you use when the answer needs a product from a photo, a background from another photo, a logo that has to be rendered exactly, and enough resolution that the label text is still legible when the client zooms in.

The multi-reference move

Each socket accepts a batch, and images are sent in socket order - everything on socket 1 first. So the grammar of a multi-reference prompt is positional: "place the object in image 1 on the table in image 2, keeping the label legible and the lighting of image 2." Ambiguity about which reference means what is the most common cause of a disappointing result, and it's entirely on you to remove it.

This is also where the KB's identity chapter meets the closed model. For stills, adapter stacks lost this job: instruction-driven editing is what people reach for, and a good model with several references beats a PuLID-plus-mask pipeline on anything that isn't a pixel-exact face transfer. If you do need pixel-exact - the actual face from the actual photo composited in - this isn't the tool; it's generative instruction editing, not a paste.

The dials

prompt - the instruction, and the clearer you are about which reference is which, the better. resolution - 1K (default), 2K, 4K, with fal's multiplier taking 4K to 2× the base. aspect_ratio - defaults to auto, so the model may follow your instruction or your input; pin it when the shape is the point. num_images 1–4, billed each. enable_web_search (+$0.015) for current real-world references. system_prompt for a standing style or "no extra text" rule. safety_tolerance 1–6, default 4, under Google's IMAGE_SAFETY regime - and the January 2026 tightening on famous IP is real. seed, with -1 for model's choice. limit_generations on by default, capping a round at one image.

Outputs

images (batchable IMAGE - feed an upscaler, a save node, or a video model's first frame), image_paths (files under output/fal/fal-ai_nano-banana-pro_edit/), description (the model's own text about the result - surprisingly good as a caption), info (JSON receipt: request id, cost estimate, saved files, fal's answer).

Install

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

Restart ComfyUI, or search arkennemasis in ComfyUI-Manager. The only declared dependency is httpx, and it's there for the pack's Codex nodes - the fal side is standard library only, so this install won't disturb your existing packages. Then:

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

in the .env next to run_nvidia_gpu.bat.

And remember what you're sending: five reference photos, a prompt, and Google's moderation layer on the other end. No key widget exists on any node in this pack, on purpose, but your images are the input by definition.

Where people get burned

  • Reference ambiguity. "Image 1" and "image 2" only mean something if your prompt uses those words. Batches flatten in socket order, so count the pictures, not the sockets.
  • You forgot which socket was which. Label upstream - reuse or a description output - before you wire five references into a prompt you'll debug at 30 cents a try.
  • Math: five 4K images is $1.50. num_images × resolution multiplier × $0.15. The badge tracks it live; trust it over your intuition.
  • auto reframed the composition when you asked for something cinematic. Pin aspect_ratio.
  • You wanted a 15MB-plus video or a whole PDF as context. Those inputs live on the Nano Banana 2 Edit node, not this one.
  • A refusal you can't negotiate with. That's Google, safety_tolerance included.
Categoryarkennemasis/fal/Image/Google

Inputs (20)

NameTypeDefaultDescription
promptSTRINGThe prompt for image editing.
num_imagesINT11–4The number of images to generate.
seedINT-1-1–2147483647The seed for the random number generator. -1 leaves it to the model.
aspect_ratioCOMBOautoThe aspect ratio of the generated image.
output_formatCOMBOpngThe format of the generated image.
safety_toleranceCOMBO4The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.
image_1IMAGEThe URLs of the images to use for image-to-image generation or image editing. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
system_promptSTRINGOptional system instruction that steers the model's persona and output style across the request. Leave blank to omit; when provided, it is sent as the system instruction to Gemini (or as a system message on OpenAI-compatible providers). Empty leaves it out.
resolutionCOMBO1KThe resolution of the image to generate.
limit_generationsBOOLEANtrueExperimental parameter to limit the number of generations from each round of prompting to 1. Set to `True` to to disregard any instructions in the prompt regarding the number of images to generate.
enable_web_searchBOOLEANfalseEnable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.
image_2optIMAGEThe URLs of the images to use for image-to-image generation or image editing. 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 to use for image-to-image generation or image editing. 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 to use for image-to-image generation or image editing. 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 to use for image-to-image generation or image editing. 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 to use for image-to-image generation or image editing. 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 (4)

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