工具|合并异步图片任务
Merge up to 8 async image jobs into one batch — and wait only as long as you must
- Images
- Stage_Log
- Tasks_JSON
- Image_Paths
This is the node that makes the async pool feel like a batch renderer. Instead of babysitting one job at a time, TikpanAsyncImageJoinNode takes up to eight Task_IDs from TikpanAsyncImageSubmitNode, waits for them to finish, and merges every successful image into a single IMAGE batch. One run, eight (or four, or two) cloud generations, one tidy tensor on the output - exactly what you want when you're generating a contact sheet, an A/B set, or a grid of product shots.
It's part of the async engine in ComfyUI-Tikpan-Pro, the official plugin for the Tikpan.com API aggregator. The whole engine is fire-and-forget: submit jobs in the background, then gather them here. The cloud does the work on your prepaid tokens; this node just coordinates.
How it works
You feed it task IDs as strings, it watches all of them, and it returns once they reach a terminal state. The Wait_All toggle decides the semantics: True (default) waits for every task to finish - success or error - before returning, so you get the complete picture. False returns as soon as any one task succeeds, which is a genuinely useful "give me the fastest good one" mode for racing a prompt against several models. Polling happens every Poll_Interval_Seconds (3 by default), bounded by Max_Wait_Seconds (900 by default). Tasks that errored are skipped - only successful ones contribute images - so a single failure won't kill the batch; it just leaves a gap.
The inputs that matter
- Task_ID_1 - the only required one. Wire it from the Submit node's
Task_IDoutput. - Task_ID_2 … Task_ID_8 - optional; leave empty ones alone, the node ignores blank strings.
- Wait_All -
True= wait for everything,False= first success wins. - Max_Wait_Seconds / Poll_Interval_Seconds - same semantics as the Result node.
Outputs
- Images - one IMAGE batch combining every successful job, in the order you listed the IDs. If nothing succeeded you get a black image plus a log that tells you why.
- Image_Paths - the on-disk paths of everything that came back, one per line.
- Tasks_JSON / Stage_Log - the full task records and a per-task status summary (success/error/running counts). This is where you check which of the eight actually made it.
Install
Same pack, same one-time setup:
cd ComfyUI/custom_nodes
git clone https://github.com/htrert/ComfyUI-Tikpan-Pro
or ComfyUI Manager → search Tikpan → Install, then restart. Nothing extra to pip-install for the async nodes.
Gotchas
The biggest practical one: with Wait_All on and one slow model in the mix, you wait for the slowest of the eight, not the average. If you're racing for speed, flip Wait_All off. Also remember the task pool is local - those tikpan_async_… IDs only exist on this machine (backed up as JSON in output/TikpanAsync), and each job costs you metered cloud credits. Since this pack has little community discussion behind it, treat it as a tool to test on small batches before you commit a big parallel run - and never share a workflow with your real key in it.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| Task_ID_1 | STRING | 必填的第 1 个任务 ID | |
| Wait_All | BOOLEAN | true | True=等所有任务结束;False=任一成功即返回 |
| Max_Wait_Seconds | INT | 9000–7200 | 全部任务的最长等待秒数 |
| Poll_Interval_Seconds | INT | 31–60 | 轮询任务状态的间隔秒数 |
| Task_ID_2opt | STRING | 可选第 2 个任务 ID | |
| Task_ID_3opt | STRING | 可选第 3 个任务 ID | |
| Task_ID_4opt | STRING | 可选第 4 个任务 ID | |
| Task_ID_5opt | STRING | 可选第 5 个任务 ID | |
| Task_ID_6opt | STRING | 可选第 6 个任务 ID | |
| Task_ID_7opt | STRING | 可选第 7 个任务 ID | |
| Task_ID_8opt | STRING | 可选第 8 个任务 ID |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| Images | IMAGE | — |
| Stage_Log | STRING | — |
| Tasks_JSON | STRING | — |
| Image_Paths | STRING | — |