Nodes/ComfyUI Seedance/并发提交|Zhenzhen Image G v2.5 Official 生成/编辑(2 合 1)
ComfyUI Node

并发提交|Zhenzhen Image G v2.5 Official 生成/编辑(2 合 1)

Queue 30 Zhenzhen Image G v2.5 Official Jobs From One Node

By T8mars·Created 2 months ago·Updated 3 days ago· 31
并发提交|Zhenzhen Image G v2.5 Official 生成/编辑(2 合 1)
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • image11
  • image12
  • image13
  • image14
  • image15
  • image16
  • api_config
  • future
modelzhenzhen-image-g-v2.5-flare
prompt
sizeauto
custom_size1024x1024
resolution1k
qualityauto
n1
output_formatpng
output_compression90
backgroundauto
moderationlow
skip_errorfalse
seed0

The Official Node's submit wrapper looks exactly like Zhenzhen_Image_G25_Official - all eleven required fields, all sixteen reference slots, both models in the dropdown - and behaves like it too, with one difference: instead of blocking your graph for a minute and a half per image, it validates, submits, and returns a handle. Do that thirty times and collect the whole batch at the end.

The registered class is SeedanceConcurrent_Zhenzhen_Image_G25_Official_Submit, shown in the canvas as 并发提交|Zhenzhen Image G v2.5 Official 生成/编辑(2 合 1).

Why bother

Because the Official node is the expensive, knob-heavy one. Quality tiers, exact pixel sizes, format, n up to 4. Sweeping it - six quality settings on the same prompt, or Flare versus Sunburst on the same reference set - is the natural thing to want, and running those serially through one blocking node is slow enough that people stop bothering.

The concurrent version decouples submission from waiting. Each submit node pushes its job into the pack's shared image thread pool (30 workers by default, tunable 1 to 30 with SEEDANCE_IMAGE_CONCURRENCY) and hands back a future. A receiver node waits on all of them and returns results in slot order.

One nice thing falls out of having one submit node per route: model is per-route. Route one can be Flare at quality=medium with a wild prompt, route two Sunburst at xhigh with the reference images attached, route three the same inputs at a different n. They all land in one receiver.

How it behaves

Inputs are the untouched original set: model (zhenzhen-image-g-v2.5-flare or -sunburst), prompt, size (including preserve_reference and custom), custom_size, resolution, quality, n (1 to 4), output_format, output_compression, background, moderation, plus optional image1image16, api_config, skip_error and the cache-only seed.

The wrapper runs the original node's strict validator before anything enters the pool, so a bad custom_size or a transparent-plus-JPEG combination fails immediately rather than queueing a doomed job. With skip_error on, that failure turns into a failed future carrying a placeholder and the rest of the batch keeps going; with it off, you get a proper error. Since v0.5.22 these wrappers no longer inherit the original validator, which is why a single wrong parameter no longer sprawls "invalid input" across every slot on the canvas.

Remember what n means here: it returns one IMAGE batch of up to four images from a single route. So a 30-slot submission is up to 120 images. Plan your RAM accordingly - everything lands in the receiver at once.

Wiring it up

The only output is future (SEEDANCE_IMAGE_FUTURE). Feed it into 并发接收图片(30 路) - class SeedanceConcurrent_Image_Await - on future_1future_30. That node returns image_1image_30 and a status_json, preserves your slot order regardless of completion order, and keeps its status text redacted.

failure_mode decides what one bad route costs you: raise halts the batch and names the slot; placeholder keeps the successes and substitutes a placeholder, with details in status_json. For a 30-wide sweep, use placeholder.

Image futures are one type, so Official routes can share a receiver with LowPrice, Seedream, Nano Banana or upscaler futures. Video futures are a separate type and a separate receiver - don't cross them.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ..
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt

Or install from ComfyUI Manager (ComfyUI Seedance) or with comfy node install seedance - registry publisher t8star, node ID seedance. The requirements file is one line, requests>=2.28: no model downloads, no FFmpeg needed for this node. Restart ComfyUI and look under Seedance/并发提交; the receiver is under Seedance/并发接收.

You still need a key from api.seedance.nz - a single Seedance API Config node wired into all thirty routes, or SEEDANCE_API_KEY, or a config/.env in the pack directory. And the usual disclaimer for this whole category: prompts and reference images are uploaded to a third-party gateway, so don't put anything in there you wouldn't send to a stranger.

When things go sideways

  • "Concurrent slot 3 expected ConcurrentTaskHandle" - the receiver got something that isn't a future, usually a plain IMAGE from the non-concurrent node.
  • "At least one concurrent Future is required" - nothing connected to future_1 through future_30.
  • Nothing seems to be happening - submit nodes are supposed to return instantly. Progress is reported by the receiver.
  • Memory ballooning - thirty routes at n=4 at 2k or 4k is a big pile of tensors arriving together. Dial SEEDANCE_IMAGE_CONCURRENCY down, or run the sweep in chunks.
  • Slow pre-flight - inserting sixteen reference images per route means a lot of uploads, and the API throttles upload frequency per token. The pack waits and retries; generation just starts later.
  • A refusal from the host - moderation lives upstream. moderation=low is a documented level, not a bypass.
CategorySeedance/并发提交

Inputs (30)

NameTypeDefaultDescription
modelCOMBOzhenzhen-image-g-v2.5-flareFlare is intended for everyday creation and fast iteration; Sunburst focuses on precise editing. | Flare 适合日常创作与快速迭代;Sunburst 侧重精细编辑。
promptSTRINGRequired generation or editing prompt. | 必填的生成或编辑提示词。
sizeCOMBOautoUse preserve_reference to omit size, or choose a ratio/custom pixels. | 选择 preserve_reference 可省略 size 并保留参考图比例,也可选择比例或自定义像素。
custom_sizeSTRING1024x1024Used only when size is custom, for example 1536x864. | 仅 custom 使用,例如 1536x864。
resolutionCOMBO1kIgnored by the API for an exact custom pixel size. | 使用精确自定义像素尺寸时由 API 忽略。
qualityCOMBOautoRendering quality from auto through max. | 从 auto 到 max 的渲染质量。
nINT11–4Request 1 to 4 images; all results return as one IMAGE batch. | 请求 1 到 4 张图,全部结果作为 IMAGE 批次返回。
output_formatCOMBOpngOutput format: png, jpeg, or webp. | 输出格式:png、jpeg 或 webp。
output_compressionINT900–100JPEG/WebP only; omitted for PNG. | 仅 JPEG/WebP 使用,PNG 会省略。
backgroundCOMBOautoTransparent background requires PNG or WebP. | 透明背景必须配合 PNG 或 WebP。
moderationCOMBOlowDocumented moderation level: low or auto. | 文档支持的审核等级:low 或 auto。
image1optIMAGEOptional reference image 1/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image2optIMAGEOptional reference image 2/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image3optIMAGEOptional reference image 3/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image4optIMAGEOptional reference image 4/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image5optIMAGEOptional reference image 5/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image6optIMAGEOptional reference image 6/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image7optIMAGEOptional reference image 7/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image8optIMAGEOptional reference image 8/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image9optIMAGEOptional reference image 9/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image10optIMAGEOptional reference image 10/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image11optIMAGEOptional reference image 11/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image12optIMAGEOptional reference image 12/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image13optIMAGEOptional reference image 13/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image14optIMAGEOptional reference image 14/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image15optIMAGEOptional reference image 15/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
image16optIMAGEOptional reference image 16/16; connected images switch the request to editing mode. | 连接参考图后进入编辑模式。
api_configoptSEEDANCE_CONFIGConnect Seedance API Config; otherwise SEEDANCE_API_KEY is used.
skip_erroroptBOOLEANfalseOn failure return a placeholder image instead of stopping the workflow. | 失败时输出占位图片而不中断工作流。
seedoptINT00–18446744073709550000ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。

Outputs (1)

NameTypeDescription
futureSEEDANCE_IMAGE_FUTURE