ComfyUI Node

NanoSeed

NanoSeed turns your ComfyUI graph into a fal.ai editing terminal — no GPU, no model downloads

By comrender·Created 12 months ago·Updated 6 days ago· 6
NanoSeed
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • mask
  • edited_image
promptEdit the image according to this prompt.
model
fal_key
width0
height0
num_images1
num_inference_steps28
seed0
aspect_ratioauto
resolution1K
qualityhigh
enable_web_searchfalse
thinking_leveloff
concurrent_runs1
queue_timeout900

This node is a phone call, not a model

NanoSeed doesn't load weights. It doesn't touch your VRAM. Wire an image in, type what you want done to it, and it packs the pixels up and emails them to fal.ai's cloud, where one of a dozen hosted editing models works on them, and hands the result back. The whole point is that you get Nano Banana 2, Seedream 5, Grok Imagine, Flux 2 Edit - models that are either API-only by design or too heavy to be worth self-hosting - without leaving your ComfyUI graph.

The name is a lie in a good way. There's no "seed" running anywhere locally; there's a requests call. The only hard dependency in requirements.txt is requests, and the whole thing is one ~450-line Python file. If you've got a modest card and keep bouncing off Flux 2's 50+ GB of weights, this is the workaround: rent the inference per image instead of buying the hardware.

How it works

The mechanism is dead simple, which is why it's reliable. The node takes up to ten IMAGE tensors, converts them to base64 PNG data URIs, picks the right fal endpoint for your model, POSTs your prompt and settings, then decodes the returned PNG(s) back into an IMAGE tensor. There are model-specific shims bolted on top - Seedream 5 gets its aspect_ratio/resolution translated into a pixel size, Qwen gets a guidance_scale of 4.0, Nano Banana gets its own payload shape - but under it all it's a thin HTTP client with an API key.

That means two things you should internalize. First, every generation costs real money, billed by fal per image, and a num_images of 6 with a batch of inputs adds up fast. Second, you're at the mercy of fal's servers and their safety pipeline; the node disables some checkers it can (Seedream and Flux payloads ship enable_safety_checker: False), but provider-side filtering is still a thing, and reddit's verdict is that fal runs one of the stricter gates in the business.

The inputs that matter

You only really need three: prompt (what to change), model (13 choices - nano_banana, nano_banana_pro, nano_banana_2, gpt_image_2_edit, grok_imagine_edit, seedream_4.5, seedream_5, seedream_5_lite, qwen_edit_plus, flux_2_edit, flux_2_pro, flux_2_flex, flux_2_klein_9b_edit), and fal_key from your fal.ai dashboard. Note the code also checks a FAL_KEY environment variable first and uses it if present, so you don't have to paste your key into every workflow.

The rest are optional and mostly model-dependent:

  • image1image10 - the source image(s). At least one is required; some models cap how many they'll accept (Grok: 3, Klein: 4, Seedream 5: 10).
  • mask - only honored by gpt_image_2_edit for region editing.
  • width/height - output size. Leave at 0 and most models use aspect_ratio + resolution (auto, 16:9, 1:1, …, plus 0.5K4K presets) instead.
  • num_images (1–6), seed, num_inference_steps, quality - the usual knobs, passed through where the model supports them.
  • enable_web_search and thinking_level - Nano Banana 2 extras.

The single output is edited_image - a batched IMAGE tensor when num_images is above 1 - so it wires straight into a Save Image or preview node, and from there into the rest of your graph.

Installing it

ComfyUI Manager is the easy path: search ComfyUI-NanoSeed in the Custom Nodes Manager and install. Or do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/comrender/ComfyUI-NanoSeed
pip install -r requirements.txt   # literally just requests

Restart ComfyUI. No model files, no CUDA, no 20 GB downloads - you'll see the node under the image/edit category.

Where people get burned

  • "Missing API key" - you set one, or you didn't. The README's example your_fal_key_here is explicitly treated as "no key", so pasting the placeholder won't get you past the check.
  • "No images returned from API" - the README's own troubleshooting points here: check your fal balance, or your prompt tripped a safety filter.
  • Resolution errors - these are enforced in code, and they're per-model. Seedream 4.5 demands 1920–4096 px on both axes (roughly 3.6–16.7 MP) or it throws; Flux 2 Edit requires 512–2048. Start at the defaults and you'll mostly dodge this.
  • Batch limits - Seedream totals inputs plus outputs at max 15, Klein caps num_inference_steps at 4–8. These throw hard errors, not silent weirdness, which is honestly the good kind of failure.

One honest caveat: if you just want a good local editor and have the VRAM, Flux 2 Klein locally is free and permanent, and for many editing jobs it's as good as what this node sells. NanoSeed is for the API-only models and for machines that can't run them - it's a convenience fee, and a reasonable one.

Categoryimage/edit

Inputs (26)

NameTypeDefaultDescription
promptSTRINGEdit the image according to this prompt.
modelCOMBO13 options: nano_banana, nano_banana_pro, nano_banana_2, gpt_image_2_edit, grok_imagine_edit, seedream_4.5, +7
fal_keySTRING
image1optIMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
image5optIMAGE
image6optIMAGE
image7optIMAGE
image8optIMAGE
image9optIMAGE
image10optIMAGE
maskoptIMAGE
widthoptINT00–4096
heightoptINT00–4096
num_imagesoptINT11–6
num_inference_stepsoptINT281–100
seedoptINT00–4294967295
aspect_ratiooptCOMBOauto15 options: auto, 21:9, 16:9, 3:2, 4:3, 5:4, +9
resolutionoptCOMBO1K4 options: 0.5K, 1K, 2K, 4K
qualityoptCOMBOhigh3 options: low, medium, high
enable_web_searchoptBOOLEANfalse
thinking_leveloptCOMBOoff3 options: off, minimal, high
concurrent_runsoptINT11–8
queue_timeoutoptINT90060–3600

Outputs (1)

NameTypeDescription
edited_imageIMAGE