TensorScale Hunyuan Image 3 Fast (Soze)
Tencent's image model with a bot_task that thinks before it draws
- image_1
- image_2
- image
- image_path
- request_id
- config
- status
Most image nodes generate or edit. This one can do four things, because Tencent's Hunyuan Image 3 has a bot_task mode that wraps a reasoning step around generation: image, recaption, think, and think_recaption. Plain image is just text-to-image (or edit-from-references). Turn on think and the model reasons about your prompt before rendering - good for complex scenes where the first draft otherwise comes back literal and dumb. recaption generates a caption from a reference image; think_recaption does both. It's the rare hosted image node with a thinking step, and it's served here through TensorScale.
The inputs
Required: prompt, bot_task, and seed. The prompt does double duty - "what to generate, or the edit to apply to the references." So for a pure generate: "a brass octopus in a steampunk apothecary." For an edit, connect references and prompt the change: "turn the sky behind the lighthouse into a storm."
bot_task- the four-way dropdown above. Defaultimage. Start there;think_recaptionis a fun party trick but slower and pricier.seed- defaults to 43. Set it to lock a take.
The reference path is deliberately capped: image_1 and image_2 only - the API's max is two. That's the whole reference surface, so this node is for single-edit or paired-reference jobs, not collage. image_url_1/image_url_2 override the sockets with public HTTPS URLs. use_fal_upload (default off) pushes connected images to FAL's CDN instead of inlining them as base64 - flip it if the API complains about body size. image_format chooses PNG or JPEG for the inline encoding.
How it works
TensorScale's /v2/hunyuan-image-3-instruct/fast runs synchronously with a model-scoped key (TENSORSCALE_API_KEY_HUNYUAN_IMAGE_3, falling back to TENSORSCALE_API_KEY). It's a fast tier, so the default timeout is 600s rather than the 1800s the video nodes use - but it's still one POST with the socket open until the image streams back. The result is saved to disk and returned as a standard IMAGE tensor.
Outputs: image (wire it to a preview or the next node), image_path, request_id, config (run summary), and status.
Install and key
From the Soze pack ("Quality of Life Nodes for ComfyUI"), via ComfyUI Manager or:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Restart, then set TENSORSCALE_API_KEY or TENSORSCALE_API_KEY_HUNYUAN_IMAGE_3 (environment variable or .env in the repo root). Don't commit keys.
Common issues
- Third reference ignored. The API caps at two -
image_3doesn't exist here. Plan the edit for two inputs max. thinktasks feel slow. The reasoning step is extra work on top of generation; the longer wait is the model thinking, not a hang. Drop toimagefor drafts.- Body-size errors with a large reference. Turn on
use_fal_upload(needsFAL_KEY) or use theimage_urlwidgets with hosted images.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What to generate, or the edit to apply to the references. | |
| bot_task | COMBO | image | 4 options: image, recaption, think, think_recaption |
| seed | INT | 430–4294967295 | — |
| image_1opt | IMAGE | Reference image 1 (API max is 2). | |
| image_2opt | IMAGE | Reference image 2. | |
| image_url_1opt | STRING | Public HTTPS URL. Overrides image_1. | |
| image_url_2opt | STRING | Public HTTPS URL. Overrides image_2. | |
| use_fal_uploadopt | BOOLEAN | false | Upload connected images to FAL's CDN and send URLs instead of inline base64. |
| image_formatopt | COMBO | PNG | 2 options: PNG, JPEG |
| api_key_envopt | STRING | TENSORSCALE_API_KEY_HUNYUAN_IMAGE_3 | Environment variable holding the model-scoped key. Falls back to TENSORSCALE_API_KEY when unset. |
| timeoutopt | INT | 60060–7200 | Read timeout in seconds. These endpoints are synchronous — the socket stays open for the whole generation. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_path | STRING | — |
| request_id | STRING | — |
| config | STRING | — |
| status | STRING | — |