Nodes/Comfyui-zhenzhen/zhenzhen-bernini-r-edit-image-fal
ComfyUI Node

zhenzhen-bernini-r-edit-image-fal

Call it per-image instead

By T8mars·Created about a year ago·Updated a day ago· 740
zhenzhen-bernini-r-edit-image-fal
  • image
  • images
  • response
  • image_urls
promptMake the image more cinematic.
image_url
api_key
negative_prompt
max_image_size848
num_inference_steps30
enable_prompt_expansionfalse
seed0
image_waybase64
poll_interval6
max_poll_attempts600
skip_errorfalse

Bernini is ByteDance's unified image-and-video editing model, the one the local crowd crowned the new king of video editing and then immediately complained was heavy: editing runs at roughly double Wan 2.2's compute, and the community's fastest reports hover around 55-60 seconds per iteration on a single 3090. This node skips all of that. It's the same fal-ai/bernini-r image-edit endpoint, but rented per call through the Zhenzhen API instead of run on your card. No weights, no VRAM, no SageAttention config - just a prompt, a picture, and a key.

So what do you actually get? Instruction-driven image editing without a mask. You hand it an image and say "make it more cinematic" or "turn it into a rainy night," and the model edits the whole frame semantically instead of you drawing an inpaint mask. That's the whole appeal of the Bernini family: no SAM, no ControlNet, no masking pipeline in front of it. If you already run local editing, treat this node as the "I need it in the next ten minutes and I don't want to babysit a diffusion run" option, or as a second opinion on a style change.

How it works

Like every node in the T8mars pack, this one is an HTTP client wearing a generator's clothes. You give it the image (as an IMAGE tensor or an image_url string), it POSTs to the Zhenzhen FAL proxy at ai.t8star.org/fal/fal-ai/bernini-r/edit-image, then polls the job every few seconds until it's done, downloads the result, and hands you back a normal ComfyUI IMAGE tensor. The heavy lifting happens on someone else's server. That's why the API key isn't optional and why nothing in your models/ folder is touched.

Inputs and outputs that matter

The one required input is prompt - think instruction, not caption. "Make the image more cinematic." is the default, and it's a fine place to start. Then wire in either image (an IMAGE from a Load Image node) or image_url, and paste your Zhenzhen key into api_key.

A few you'll actually touch:

  • seed - 0 means random, and unlike most nodes the cap is 65535 (that's a FAL limit, not a typo).
  • max_image_size - the model downscales big inputs to stay cheap; 848 is the default, and it's the main cost lever for high-res sources.
  • num_inference_steps - more steps, better detail, slower and pricier. 30 is a sane default.
  • enable_prompt_expansion - lets the model rewrite and enrich your prompt for you. Off by default; flip it on if you're getting timid results from short prompts.
  • image_way - base64 embeds the image in the request; image_url uploads it to Zhenzhen's file service first. base64 is the default and fine. skip_error - when off (default), a failed call fails the whole queue; when on, it returns a white placeholder and logs the error so the rest of your batch survives.

Outputs are three: images (the edited IMAGE, ready to feed your upscaler or VAE), response (the raw API JSON, handy for debugging), and image_urls (the hosted URLs, one per line, if you want to grab originals).

Installing it

The whole pack installs in one go, because every Zhenzhen node ships together:

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

Restart ComfyUI and search "zhenzhen" in the node menu. Or use ComfyUI Manager and search for the pack title, "Comfyui-zhenzhen". The requirements file pulls in requests, opencv-python, openai and friends, but there are no model downloads - nothing local to download, which is the entire point.

Common issues

Most problems here are account problems, not node problems. The Zhenzhen API is a paid, metered reseller: you need an account at the workshop site, a token, and credit. The README is upfront that registration has been closing on and off, and that the overseas server may throw 443 errors from some networks - you'll want a VPN with TUN mode if the API just won't connect.

The classic runtime hiccup: a 500 error on the first run. The README says it plainly - often it's the upstream provider, not you, so just run it again. FAL jobs are pre-charged (roughly 3.4 credits up front) and settled after the result lands, so a job that dies mid-flight should be refunded. If the node sits there polling for the full hour (default is 600 polls × 6 seconds), check the workshop site's async task list - the image may have finished server-side even though ComfyUI timed out, and you can pull the URL from image_urls.

Categoryzhenzhen/FAL

Inputs (13)

NameTypeDefaultDescription
promptSTRINGMake the image more cinematic.
imageoptIMAGE
image_urloptSTRING
api_keyoptSTRING
negative_promptoptSTRING
max_image_sizeoptINT848256–1280
num_inference_stepsoptINT301–50
enable_prompt_expansionoptBOOLEANfalse
seedoptINT00–655350 = random seed. FAL seed max is 65535.
image_wayoptCOMBObase642 options: base64, image_url
poll_intervaloptINT61–60
max_poll_attemptsoptINT60010–3600Default 600*6s = 3600s timeout.
skip_erroroptBOOLEANfalse

Outputs (3)

NameTypeDescription
imagesIMAGE
responseSTRING
image_urlsSTRING