zhenzhen-boogu-image-fal
A solid all-rounder text-to-image that also edits
- image
- images
- response
- image_urls
Boogu isn't a household name the way Nano Banana or Seedream are, and that's sort of the point. It's the model you reach for when you want a capable hosted text-to-image that does a little bit of everything - text-to-image and image editing in one node, a proper size picker, safety checker control - without the queue drama of the hyped frontier models. This node wraps the fal-ai/boogu-image endpoints through the Zhenzhen API, so it's pay-per-call and runs entirely on someone else's GPU.
It's a good first hosted image node for exactly one reason: it's boring in the best way. There's no trick to it, the defaults are sane, and you can get a usable image on the third click. When you want a specific aesthetic from a specific hyped model, use that model's node. When you just need a decent image without fighting the API, this one quietly does the job.
How it works
mode picks the endpoint: text_to_image hits fal-ai/boogu-image, edit hits fal-ai/boogu-image/edit and expects an input image. Everything else is a standard Zhenzhen FAL call - POST to the proxy at ai.t8star.org/fal/..., poll every few seconds until the job completes, download, hand back an IMAGE. Nothing runs locally, and the only thing you have to supply besides a prompt is the API key.
Inputs and outputs that matter
The image_size dropdown is the star here - it has eight options including custom, and unlike some of the more opinionated models in this pack, custom actually works: pick custom and set custom_width / custom_height (step 16, up to 2048). For a quick square, square_hd is the default and fine.
num_inference_steps- 30 default, min 20. Boogu likes a reasonable step count; don't crank it to 10 expecting speed.guidance_scale- 4.0 default; bump it if the model is ignoring your prompt.image_guidance_scale- edit mode only, 1.0 default. This is how strongly the edit stays glued to your input image. Higher = more faithful to the source, less faithful to the prompt.num_images- 1 to 4. Remember this is pay-per-call; four images costs four times as much.enable_safety_checker- on by default. If you're running commercial-ish content with strict providers, leave it on; the whole point of using a hosted model is that the filter lives upstream.output_format- jpeg or png. png for anything you'll edit further.sync_mode- off by default (async with polling); turning it on makes the request wait inline.seed- 0 = random, FAL caps at 65535.
Outputs are the standard trio: images (the IMAGE tensor), response (raw JSON), and image_urls (hosted URLs, one per line).
Installing it
All Zhenzhen nodes install as one pack:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Restart ComfyUI. Or use ComfyUI Manager and search "Comfyui-zhenzhen". No models to download - the pack's requirements are HTTP libraries, not weights.
Common issues
The usual Zhenzhen pack gotchas apply: you need a workshop account with credit, and the overseas API server can throw 443 errors from some networks (VPN with TUN mode fixes it). A 500 on first run is usually the upstream provider - re-run. If you're getting weak prompt adherence in edit mode, raise image_guidance_scale only after you've confirmed guidance_scale is in a sane range; fighting both at once is how you get mush. And when a job times out after the long default poll (600 × 6s), check the workshop site's task list before re-submitting - you might already own the result.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| modeopt | COMBO | text_to_image | 2 options: text_to_image, edit |
| imageopt | IMAGE | — | |
| image_urlopt | STRING | — | |
| api_keyopt | STRING | — | |
| negative_promptopt | STRING | — | |
| image_sizeopt | COMBO | square_hd | 8 options: auto, square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, +2 |
| custom_widthopt | INT | 1024256–2048 | — |
| custom_heightopt | INT | 1024256–2048 | — |
| num_inference_stepsopt | INT | 3020–100 | — |
| guidance_scaleopt | FLOAT | 4.00–20 | — |
| image_guidance_scaleopt | FLOAT | 1.00–20 | Edit mode only. |
| cfg_range_startopt | FLOAT | 0.000–1 | — |
| cfg_range_endopt | FLOAT | 1.000–1 | — |
| num_imagesopt | INT | 11–4 | — |
| seedopt | INT | 00–65535 | 0 = random seed. FAL seed max is 65535. |
| enable_safety_checkeropt | BOOLEAN | true | — |
| output_formatopt | COMBO | jpeg | 2 options: jpeg, png |
| sync_modeopt | BOOLEAN | false | — |
| image_wayopt | COMBO | base64 | 2 options: base64, image_url |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 60010–3600 | Default 600*6s = 3600s timeout. |
| skip_erroropt | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| response | STRING | — |
| image_urls | STRING | — |