Replicate google/nano-banana-pro
The flagship Gemini image model, parked inside your graph
- IMAGE_1
- IMAGE_2
- IMAGE_3
- IMAGE_4
- IMAGE_5
- IMAGE_6
- IMAGE_7
- IMAGE_8
- IMAGE_9
- IMAGE_10
- IMAGE_11
- IMAGE_12
- IMAGE_13
- IMAGE_14
- IMAGE
- API_JSON
Nano Banana Pro is Google's flagship image model - under the hood it's Gemini 3 Pro Image, the thing that generates natively at 4K and reasons about your prompt before it draws. You can't run it locally; it's a closed, hosted model. What this node from the ComfyUI-API-DockerCPU pack does is give you a ComfyUI node that reaches over the wire to Replicate's hosted version of it, so it slots into the same graphs as your local stuff.
It's a strange feeling the first time: a text-to-image node that needs no checkpoint, no VAE, no VRAM. You type a prompt, it's gone to Google's stack, and back comes an image that has Google's famously strong text rendering and prompt adherence. The catch is equally famous, so let's get it out of the way: Google's safety filter is aggressive and opaque. It won't do celebrities or trademarked characters, and the January 2026 policy tightening made that worse. This is the model to reach for when you want quality and don't mind the leash.
How it works
Schema-driven, like every Replicate node in this pack. Your prompt goes out as a Replicate prediction against google/nano-banana-pro, and the response comes back as an IMAGE tensor plus API_JSON (the payload that was sent, for debugging). Because the model is hosted, you get the full 4K-native output with zero local compute.
The inputs that matter:
prompt- the whole game. Nano Banana Pro's "thinking mode" reasons about the description before generating, so it rewards detailed natural-language prompts more than most.IMAGE_1throughIMAGE_14- up to 14 reference images. This is the Pro's superpower: feed it a photo and it edits, restyles, or keeps identity across generations. Wire these from a Load Image node.resolution-1K,2K, or4K. Default is 2K. 4K native output is the flagship feature, but it's the slowest and priciest end of the range.aspect_ratio- a proper list of ratios (plusmatch_input_image, which inherits from your reference). Useful because unlike local models, you don't re-render at different resolutions - the API just does it.safety_filter_level-block_low_and_aboveis strictest,block_only_highmost permissive. If you're being blocked on content you consider fine, this is the first dial to check.allow_fallback_model- if Pro is at capacity, this lets Replicate silently fall back tobytedance/seedream-5. Handy for pipeline reliability; just know your output model may differ.
output_format is jpg or png - keep png if you plan to do anything lossy-sensitive downstream.
Install
ComfyUI Manager (search "ComfyUI-API-DockerCPU") or:
cd ComfyUI/custom_nodes
git clone https://github.com/trustypangolin/ComfyUI-API-DockerCPU
cd ComfyUI-API-DockerCPU && pip install -r requirements.txt
export REPLICATE_API_TOKEN="your_token_here"
Restart ComfyUI. No models to download - that's the design.
Troubleshooting
- Blocked generations - that's Google, not your graph. Loosen
safety_filter_levelfirst; if still blocked, the content simply isn't happening on this model. - Cost - Comfy Org's own upscaling handbook names Nano Banana Pro among its recommended image tools, which tells you how good it is. It also tells you it's a pay-per-image service. Estimate $0.039β0.24 an image depending on resolution. Use
dry_runto validate wiring before you spend. - "Unimaginative" - the community's bluntest critique of the Banana line. Powerful, precise, and prone to playing it safe. If your generations feel safe to the point of boring, that's the model, not your prompt skills.
- Young pack - April 2026, essentially zero stars. The author's schema approach is fine, but don't expect a support community.
If you have a decent GPU and just want an image model, you don't need this node - that's what your local checkpoints are for. Reach for Nano Banana Pro when the job actually needs what it has: 4K output, reference-image editing, and text rendering that local open models still can't match.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| dry_run | BOOLEAN | false | β |
| force_rerun | BOOLEAN | false | β |
| prompt | STRING | β | |
| IMAGE_1opt | IMAGE | β | |
| IMAGE_2opt | IMAGE | β | |
| IMAGE_3opt | IMAGE | β | |
| IMAGE_4opt | IMAGE | β | |
| IMAGE_5opt | IMAGE | β | |
| IMAGE_6opt | IMAGE | β | |
| IMAGE_7opt | IMAGE | β | |
| IMAGE_8opt | IMAGE | β | |
| IMAGE_9opt | IMAGE | β | |
| IMAGE_10opt | IMAGE | β | |
| IMAGE_11opt | IMAGE | β | |
| IMAGE_12opt | IMAGE | β | |
| IMAGE_13opt | IMAGE | β | |
| IMAGE_14opt | IMAGE | β | |
| aspect_ratioopt | COMBO | match_input_image | 11 options: match_input_image, 1:1, 2:3, 3:2, 3:4, 4:3, +5 |
| resolutionopt | COMBO | 2K | 3 options: 1K, 2K, 4K |
| output_formatopt | COMBO | jpg | 2 options: jpg, png |
| safety_filter_levelopt | COMBO | block_only_high | 3 options: block_low_and_above, block_medium_and_above, block_only_high |
| allow_fallback_modelopt | BOOLEAN | false | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| API_JSON | STRING | β |