FeiHou-API Images
Nano Banana-class generation with zero VRAM and a running meter
- media
- image
- image_url
FeiHou-API Images is an API wrapper: it doesn't sample anything locally. It sends your prompt and your reference images to https://api.fei-hou.net, waits, and hands back an IMAGE. That's the point. The models it fronts - the provider's feihou-image-nb-* Nano Banana-style line, seedream, qwen-image - have no open weights, so calling them is the only door.
Which means it runs on a laptop with no GPU and needs no checkpoint, no VAE, no 20 GB download. What it needs is an account, a key, and money per call. Keep both halves of that straight and it's genuinely useful.
How it works
Under the hood it's a small HTTP client with a progress bar. The node POSTs to the provider's OpenAI-compatible /v1/image/generations endpoint. If the answer comes back synchronously as a URL or base64, it decodes immediately; if it gets a task id instead, it polls that task every 5 seconds (up to 240 attempts) while the bar creeps along.
References go up separately. Anything on the media input is uploaded to /v1/files/upload and passed to the model as URLs, so the generation request never carries your bytes. The base URL is hardcoded on purpose - the source notes that letting the model-refresh call take a server address would turn the node into an arbitrary request proxy.
The inputs that matter
api_key- your key. The tooltip says the quiet part out loud: it goes only to that host, and don't share a workflow containing it. It's a plain widget, so it lands in the saved JSON.model- empty until you click Refresh models. That reads the provider's live catalog and filters by media type. A bad key gives you "The API key was rejected."prompt- multiline. The endpoint wants at least five characters, and short prompts get silently padded rather than rejected, so don't expect one word to arrive verbatim.
Then the per-model knobs: resolution (default/auto/0.5k…4k/custom), aspect_ratio, width/height (only meaningful in the models' custom-size mode), output_format (png/jpeg), seed (only some models). Options are genuinely per-model, so switching from a Seedream model to a Qwen Image one can leave you holding an invalid value. When it errors with "does not support resolution=4k. Supported: …", that list is authoritative.
media is the interesting socket, and it's a wildcard: the FeiHou-API Media loader, a native IMAGE batch, VIDEO, or AUDIO. A five-frame IMAGE batch becomes five separate references (nine max), because the node walks the batch frame by frame - crop to one if you only meant one. Image models also refuse video and audio references outright, and the node says so before spending a request. media_files is hidden bookkeeping; leave it alone.
Outputs are image (IMAGE → SaveImage, an upscaler, a mask node, anything) and image_url (STRING), the provider's URL for that result. Handy for passing down a chain; not an archive. Save the tensor if you want to keep it.
How to install it
ComfyUI Manager: search ComfyUI-FeiHou-Toolbox, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/FX-FeiHou/ComfyUI-FeiHou-Toolbox.git
Then restart ComfyUI and hard-refresh the browser (Ctrl/Cmd-Shift-R) - the pack ships frontend JS for the model-refresh button and media gallery, and a cached page will look broken. pyproject.toml declares zero dependencies and these nodes use the standard library's HTTP client plus the torch/PIL ComfyUI already ships, so there's nothing to pip install and nothing to download. The rest of the pack (SAM3 cutouts, collage, video combine) is a different story; you don't need any of it here.
Worth knowing what this is: a China-based API service with its own Windows client, wrapped by a Chinese-first node pack. English discussion of it is essentially nil, so the README and the node's own errors are your documentation.
Common issues
- The key leaks when you share the workflow. No exploit - it's a widget. Clear it, or use a throwaway key.
- "Could not connect to the API service." Network-level: firewall, VPN, proxy, or the service being down. The node's entire job is a network call, so this is the most common failure by a mile.
- Options that worked yesterday don't today. Catalogs at these services churn. Refresh models, set
resolutionandaspect_ratioback todefault, retry. - It's metered. Fine for a model you can't run; a bad default for one you can. A 200-image draft batch is free on your own checkpoint and isn't here.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | Your FeiHou API key. It is sent only to api.fei-hou.net; do not share a workflow containing it. | |
| model | COMBO | Click Refresh models after entering the API key. | |
| prompt | STRING | — | |
| mediaopt | * | Connect FeiHou-API Media, or a native IMAGE batch, VIDEO or AUDIO. | |
| resolutionopt | COMBO | default | 8 options: default, auto, 0.5k, 1k, 1.5k, 2k, +2 |
| aspect_ratioopt | COMBO | default | 15 options: default, 1:1, 16:9, 9:16, 4:3, 3:4, +9 |
| widthopt | INT | 1024240–8192 | — |
| heightopt | INT | 1024240–8192 | — |
| output_formatopt | COMBO | default | 3 options: default, png, jpeg |
| seedopt | INT | -1-1–2147483647 | — |
| media_filesopt | STRING | [] | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_url | STRING | — |