Zhenzhen Image Nano Banana 2.1 生成/编辑
Fourteen reference images and a five-character minimum
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- image10
- image11
- image12
- image13
- image14
- api_config
- image
- image_url
- task_id
- response
Zhenzhen_Image_NB_2_1 is a small node with three required fields and a lot of optional ones. prompt, resolution, size - that's the whole required surface. Connect nothing to the fourteen reference slots and you're doing text-to-image. Connect anything and you're editing with reference images, up to fourteen of them, which is a number worth pausing on.
The fourteen-image thing
Fourteen references is not a typo, and it's not a generic limit someone picked out of the air. Google's Nano Banana Pro is specified at up to 14 reference inputs, and this node's cap matches it exactly - along with 4K output and the nb naming. The model id here, zhenzhen-image-nb-2.1, is the vendor's own catalogue label rather than a public model name you can look up, so the reasonable read is a white-labelled route to that same family of image models rather than an independent model. Treat that as a well-supported inference, not a published fact.
What you can state plainly: your prompt and reference images go to a third-party endpoint, per-call pricing applies, and the moderation is upstream's.
Why you'd use it
Fourteen ordered references changes what "edit" means. You're not just describing a change to one photo - you can hand it a person, a garment, a scene, a texture, a logo and a lighting reference and ask for a composition that respects all of them. That's the whole reason people put up with API nodes at all: it's a capability rather than a convenience. There are no weights to download at any VRAM, so a node is the only door.
For a single simple generation it's overkill. Reach for it when the reference set is the work.
The inputs, in the order you'll touch them
prompt is required and there's an unusual constraint: it must be between 5 and 5000 characters. Five characters. If you were planning to test with "cat", the node will reject it, and it rejects before submitting, which saves you the round trip. In reference mode you want a real instruction anyway - "keep the face from image 1, use the jacket from image 2, light it like image 5" beats naming things and hoping.
resolution is one of 1k, 2k, 4k, default 1k. Yes, 4k - and no, don't start there.
size is the aspect ratio: 1:1 (default), 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, or auto. The auto option is worth remembering when your references have conflicting shapes and you'd rather the model reconciled them than the node cropping someone.
Then image1 … image14, one image per slot. The order matters - that's what lets the prompt refer to them by position. And be honest about what you're asking for: fourteen references is a big context. Fewer, more deliberate images usually beat a kitchen-sink pile, in my experience with this class of model.
Finally api_config (optional input, but you need a key one way or another), skip_error for placeholder-on-failure, and seed. That seed is a ComfyUI cache seed: the tooltip says so explicitly, and this node doesn't send a seed parameter to the model. Pinning it gives you cache reuse; it does not make a run reproducible.
Outputs
image is the one to wire - into Save Image, Preview Image, an upscaler, a mask tool. Then image_url (temporary API link), task_id (remote id) and response (raw JSON, useful when you want to see what the service actually said).
There's no count control here. The node sends n: 1, so one run is one image. Four variations means four runs.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ..
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
Manager route: search ComfyUI Seedance (publisher t8star, node id seedance), install, restart. The dependency list is requests>=2.28 - no checkpoints, no CLIP, no compiling, which is the one unambiguously great thing about this entire category of node.
Key setup, pick one: a Seedance API Config node with base_url https://api.seedance.nz and its api_config output wired into the node; export SEEDANCE_API_KEY=... before launching ComfyUI; or a config/.env in the plugin folder holding SEEDANCE_API_KEY and SEEDANCE_BASE_URL. The pack ships examples/zhenzhen-image-nb-2.1*.json - a text-to-image and a local-image edit - and either is a faster start than a blank canvas.
Common issues
The 5-character minimum catches people who are testing the plumbing with a one-word prompt. Nothing else submits, either, if a reference slot holds a batch rather than a single image - each slot wants exactly one. If you get an auth error, check the key is on the node's api_config and not typed into a prompt field; the pack validates before requesting and the message is clear about it. SSL errors on Windows portable installs are common and the fix is python -m pip install -U requests certifi in ComfyUI's Python, or SEEDANCE_CA_BUNDLE pointing at a CA bundle. And if the node hangs after the job completes on the API side, suspect a stale HTTP_PROXY in your environment - the pack has a direct-session and a curl fallback, and a phantom proxy defeats both.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Required, 5-5000 characters | 必填,5-5000 字符 | |
| resolution | COMBO | 1k | 3 options: 1k, 2k, 4k |
| size | COMBO | 1:1 | 11 options: auto, 1:1, 2:3, 3:2, 3:4, 4:3, +5 |
| image1opt | IMAGE | Optional reference 1/14, one image per slot | 可选参考图 1/14,每路一张 | |
| image2opt | IMAGE | Optional reference 2/14, one image per slot | 可选参考图 2/14,每路一张 | |
| image3opt | IMAGE | Optional reference 3/14, one image per slot | 可选参考图 3/14,每路一张 | |
| image4opt | IMAGE | Optional reference 4/14, one image per slot | 可选参考图 4/14,每路一张 | |
| image5opt | IMAGE | Optional reference 5/14, one image per slot | 可选参考图 5/14,每路一张 | |
| image6opt | IMAGE | Optional reference 6/14, one image per slot | 可选参考图 6/14,每路一张 | |
| image7opt | IMAGE | Optional reference 7/14, one image per slot | 可选参考图 7/14,每路一张 | |
| image8opt | IMAGE | Optional reference 8/14, one image per slot | 可选参考图 8/14,每路一张 | |
| image9opt | IMAGE | Optional reference 9/14, one image per slot | 可选参考图 9/14,每路一张 | |
| image10opt | IMAGE | Optional reference 10/14, one image per slot | 可选参考图 10/14,每路一张 | |
| image11opt | IMAGE | Optional reference 11/14, one image per slot | 可选参考图 11/14,每路一张 | |
| image12opt | IMAGE | Optional reference 12/14, one image per slot | 可选参考图 12/14,每路一张 | |
| image13opt | IMAGE | Optional reference 13/14, one image per slot | 可选参考图 13/14,每路一张 | |
| image14opt | IMAGE | Optional reference 14/14, one image per slot | 可选参考图 14/14,每路一张 | |
| api_configopt | SEEDANCE_CONFIG | — | |
| skip_erroropt | BOOLEAN | false | — |
| seedopt | INT | 00–18446744073709550000 | ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_url | STRING | — |
| task_id | STRING | — |
| response | STRING | — |