zhenzhen-flux-3-image(文生/图像编辑)
FLUX 3 Image in ComfyUI — for the weights nobody is allowed to download
- api_config
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- image10
- image
- image_url
- task_id
- response
Black Forest Labs announced FLUX 3 in July 2026 as one image/video/audio/action model, and shipped exactly none of it as a file you can run. FLUX 3 Image is early access, API-only, private weights; FLUX 3 Dev is a "coming soon" button. So if you want that model's look inside ComfyUI, a node that calls somebody else's API is not a compromise - it's the only door.
That's what this node is. It is also, as far as ComfyUI is concerned, not Flux-shaped at all: no UNET loader, no CLIP, no sampler, no scheduler, no CFG. You type a prompt and pick a resolution, and around a minute later an IMAGE tensor appears as if a local sampler had made it.
What it actually is
It's an API-wrapper node from the pack T8mars/Comfyui-zhenzhen ("贞贞的平价AI小屋" - Zhenzhen's bargain AI shop), a Chinese relay that fronts a long list of closed frontier models at a claimed sub-10% margin. The model id it sends upstream is flux-3-image.
So the honest framing: a paid HTTP client shaped like a node. Your prompt, your reference images and your money leave the machine on every run, and the filter is BFL's, not yours - you can't abliterate weights that were never shipped.
Whether the look is worth the bill is a fair question: FLUX 3's samples were genuinely striking, and the standing community caveat was shot-to-shot consistency, not quality.
The inputs that matter
prompt is required and multiline - write it like a FLUX prompt, natural language, no weight syntax.
resolution is a five-way ladder: 768sq, 1k, 1.5k, 2k, 4k. Start at 768sq or 1k for composition and drafts; you're paying per call, so burning 4k on a prompt you're still editing is the classic beginner tax.
aspect_ratio has sixteen options including auto, and the odd ones are the reason to care: 21:9, 9:21, 5:7, 7:5 are all here. auto is the default and lets the model decide.
grounding (default on) and safety_tolerance (integer 0–4, default 2) are FLUX-specific knobs the pack exposes verbatim. Grounding helps prompt adherence when you're describing where things are. Safety tolerance runs the other way from most UIs - 0 is the strict end, 4 is the permissive end - and it's a request to BFL, not a local filter you can set to "off". Treat loosening it as "fewer refusals", never "no refusals".
image1 … image10 are the edit half. Leave them all empty and it's text-to-image; wire one to ten images and the same node does reference-guided generation and editing - which is the 2026 pattern generally: the reference image goes into an edit model's context instead of through a LoRA or an IP-Adapter.
There's skip_error (returns a white 512×512 placeholder instead of raising - handy in a batch) and seed, whose tooltip says the quiet part out loud: it's a ComfyUI cache seed only, not sent to the API. Leave it fixed and an unchanged graph returns the cached result instead of buying the same image twice. It does not make the output reproducible.
Outputs are image (wire to Save Image or a preview), image_url, task_id, and response (the raw JSON, useful when something upstream misbehaves).
Installing it
ComfyUI Manager → search Comfyui-zhenzhen → install → restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
# restart ComfyUI
No model files, nothing to download into models/. The pack's requirements.txt pulls in aiohttp, aiohttp-cors, GitPython, matrix-client, transformers, huggingface-hub, psutil, nest_asyncio, openai, opencv-python, numpy, Pillow, requests and torch - most of which ComfyUI already has. Then add the pack's Zhenzhen API Settings node, paste your key into apikey, and wire its api_config output into this node. The api_base dropdown defaults to seedance_low_price, the domestic endpoint https://api.seedance.nz.
Two honest warnings. The key lives in the workflow widget, so any workflow you save and share carries it - the pack's own examples ship blank on purpose. And the relay is an overseas server: from mainland China, expect the README's 443-error advice (proxy in TUN mode, aggressive firewall suites off) before anything else in this article helps you.
Where people get burned
"image1 requires exactly one IMAGE." The validator demands a batch size of 1 per slot. A Load Image with batch count 2 → error. Split the batch first.
Refusals and 500s are upstream weather, not your graph. Google/OpenAI-side congestion comes and goes; a retry often just works, and failed jobs normally aren't billed - check the relay's async task list before assuming the node ate your credits.
4K results that finish but never arrive. Cross-border downloads of large files are the pack's own documented weak spot - there's an OSS (object storage) setting on your token page on the relay site, and CN/US regions to pick between. If a download keeps dying, that switch is the fix, not a reinstall.
Don't go looking for a local equivalent. FLUX 3 Image has no weights and FLUX 3 Dev isn't out. This node is the model, or you don't get the model.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| resolution | COMBO | 1k | 5 options: 768sq, 1k, 1.5k, 2k, 4k |
| aspect_ratio | COMBO | auto | 16 options: auto, 1:1, 16:9, 9:16, 21:9, 9:21, +10 |
| grounding | BOOLEAN | true | — |
| safety_tolerance | INT | 20–4 | — |
| api_configopt | ZHENZHEN_SEEDANCE2_CONFIG | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — | |
| image6opt | IMAGE | — | |
| image7opt | IMAGE | — | |
| image8opt | IMAGE | — | |
| image9opt | IMAGE | — | |
| image10opt | IMAGE | — | |
| skip_erroropt | BOOLEAN | false | — |
| seedopt | INT | 00–18446744073709550000 | ComfyUI cache seed only; not sent to the API. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_url | STRING | — |
| task_id | STRING | — |
| response | STRING | — |