Nodes/Comfyui-zhenzhen/zhenzhen-image-g-v2.5-lowprice
ComfyUI Node

zhenzhen-image-g-v2.5-lowprice

The Cheap Route to Image G v2.5 — Four Dialogs, Fifteen References, One Image Per Run

By T8mars·Created about a year ago·Updated 2 days ago· 740
zhenzhen-image-g-v2.5-lowprice
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • image11
  • image12
  • image13
  • image14
  • image15
  • api_config
  • image
  • image_url
  • task_id
  • response
prompt
resolution1k
size16:9
nsfw_checkfalse
skip_errorfalse
seed0

"Lowprice" here does not mean a smaller model. It means the other door into the same v2.5 image model - the author runs two relays, an overseas workshop and a domestic cut-price shop, and the README claims the domestic one is roughly 75–80% of the overseas rate on Chinese models. This node is the domestic one. Same model IDs as its sibling, cheaper, slightly different controls, and a much smaller set of knobs to worry about.

If you've used the "Nano Banana" style reseller nodes, the shape will be familiar. If you haven't: this is not a local model. No checkpoint, no VRAM math, no sampler. You paste a prompt, it goes to someone's server, you get an image back, you're billed. For a model with no open weights that's the only product there is.

How it works

It's an async task API under the hood, not a single blocking request. The node uploads any reference images, POSTs the job, then polls until the task completes and downloads the result, converting it into an IMAGE tensor for the rest of your graph. Practically, that means a run can sit at 30% progress for a while and that's the poll loop, not a hang.

It also means you get a task_id output, worth more than it looks. This pack's README repeats one piece of advice constantly: when ComfyUI reports a timeout, go to the site's async task page, find the task by ID, and check whether it actually finished. Plenty of "failures" are just the node giving up on the wait while the server was still working - and on this channel, unsuccessful upstream tasks generally aren't charged.

The four required inputs

prompt is it, mostly - up to 5,000 characters, multiline.

resolution is 1k, 2k or 4k, defaulting to 1k.

size is the one that catches people out, because the default is 16:9, not square. Sixteen options in total: auto, a spread of ratios from 1:1 and 16:9 through 21:9 and 9:21, plus the narrow 1:3 / 3:1 pair. If you're generating a portrait avatar and forget to change it, you'll get a wide landscape image and blame the model. Change the dropdown.

nsfw_check is a boolean, default off - the README is explicit that this relay's domestic route is the looser-filter one, and this switch is what asks for the check explicitly.

Then the fifteen optional image1image15 sockets for reference editing. Order matters; they're submitted in the order you connect them. api_config is where the API Settings node goes, and if you don't wire one, the node falls back to a SEEDANCE_API_KEY environment variable and then gives up with a clear message. skip_error swaps a thrown exception for a placeholder result, and seed is ComfyUI cache control only - the tooltip is honest about it, and it is not sent upstream.

Note what isn't here: no n. One call, one image. No quality tier, no output format, no transparency. If you want those, you want the official node instead.

Outputs

image is the picture. image_url is the first result URL as a string. task_id is your receipt. response is the full JSON.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen

Or search Comfyui-zhenzhen in ComfyUI Manager, install, restart. No model files - the pack ships no weights, and the dependency list is ordinary Python packages. The README is mostly a changelog; installation is the standard custom-node route.

Then you need two things in the graph: a T8Zhenzhen_API_Settings node (its api_base default is already the domestic shop) with your key in it, wired into this node's api_config input. The Settings node also exposes a plain apikey string output, handy for the nodes that take a key directly.

Where it goes wrong

The empty-key error is the most common one, and it's phrased well enough that you'll find it. Next is 429/500 from upstream, which on this relay means the provider is overloaded - retry, don't debug. The download path retries transient errors and falls back to a direct connection if a stale HTTP_PROXY is poisoning requests, which happens to people more often than you'd think.

Keep your expectations calibrated on the community side: I searched for this pack, this author and this model name across the discussion corpus and found essentially nothing in English. That's not a red flag on the node - it's what happens to a pack that lives on Chinese-language YouTube and a Discord. It does mean you won't find a thread confirming your exact settings, so test prompts yourself and lean on the task_id receipt whenever the node and the server disagree.

Categoryzhenzhen/Seedance2 Low Price

Inputs (22)

NameTypeDefaultDescription
promptSTRING
resolutionCOMBO1k3 options: 1k, 2k, 4k
sizeCOMBO16:916 options: auto, 1:1, 1:3, 3:1, 16:9, 9:16, +10
nsfw_checkBOOLEANfalse
image1optIMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
image5optIMAGE
image6optIMAGE
image7optIMAGE
image8optIMAGE
image9optIMAGE
image10optIMAGE
image11optIMAGE
image12optIMAGE
image13optIMAGE
image14optIMAGE
image15optIMAGE
api_configoptZHENZHEN_SEEDANCE2_CONFIG
skip_erroroptBOOLEANfalse
seedoptINT00–18446744073709550000ComfyUI cache seed only; it is not sent to Image G v2.5. Fixed reuses the cached result.

Outputs (4)

NameTypeDescription
imageIMAGE
image_urlSTRING
task_idSTRING
responseSTRING