Nodes/ComfyUI Seedance/并发提交|Midjourney 图片
ComfyUI Node

并发提交|Midjourney 图片

Midjourney on your canvas, in parallel — imagine, blend, edit, upscale, and repaint as batch jobs

By T8mars·Created 2 months ago·Updated 3 days ago· 31
并发提交|Midjourney 图片
  • image1
  • image2
  • image3
  • image4
  • end_image
  • mask
  • api_config
  • future
operationmidjourney-imagine|文生图 / 参考图生成
prompt
speedrelax
size1:1
custom_size
dimensionsSQUARE
quality1
style
version8.2
seed-1
negative_prompt
stylize-1
chaos-1
weird-1
tilefalse
nijifalse
iw-1.0
cw-1
sw-1
cref
sref
dref
dw-1.0
repeat0
rawfalse
draftfalse
hdfalse
stop0
extra
task_id
index-1
custom_id
directionright
zoom_ratio2.0
modal_moderegion
video_typevid_1.1_i2v_480
animate_modemanual
motionhigh
batch_size1
metadata_json
image_url1
image_url2
image_url3
image_url4
end_url
mask_url
skip_errorfalse

Midjourney inside ComfyUI is a weird flex - the KB's closed-source doc points out that Flux basically closed the quality gap, and the community moved on. But a lot of people still have Midjourney subscriptions and a library of MJ work, and this node is how that gets into a workflow. It's the concurrent-submit version of the pack's big 16-in-1 Midjourney node, covering the image-result operations - imagine, blend, edits, upscale, variation, reroll, zoom, pan, and the modal region repaint.

The wrapper pattern is unchanged: fill the parameters, the node validates, then the job goes to the background image thread pool and you get a SEEDANCE_IMAGE_FUTURE back. That goes into SeedanceConcurrent_Image_Await, which waits on up to thirty image futures and returns them in slot order. Thirty MJ images in one batch, all through one receiver - that's the whole point of this node.

The inputs that matter

This node has a genuinely huge field set, because the underlying 16-in-1 node does, and which fields matter depends entirely on operation:

  • operation - the action dropdown; the Chinese suffix after each ID tells you what it does. midjourney-imagine for text/ref generation, blend for 2–4 image fusion, upscale/variation/reroll for the second-pass actions, modal for region repaint.
  • prompt - the prompt or edit instruction; external STRING nodes feed in fine.
  • speed (relax/fast/turbo), size / custom_size, version (default 8.2), quality - the standard MJ knobs, mostly at their documented defaults.
  • task_id / index / custom_id - how you chain: connect a prior Midjourney node's task_id and pick the image index (1–4) for upscale/variation.
  • image1image4 (local) or image_url1image_url4 - reference images for blend/edits; don't fill both sides of the same slot.
  • mask / modal_mode - for the repaint action, region mode takes a ComfyUI mask (white = repainted); the no-mask outpaint mode is still rejected upstream per the README.

Plus the pack's standard api_config, skip_error, and seed. The seed here is real MJ seed plumbing - -1 means don't send it, and fixed on the ComfyUI side also reuses cache.

How it runs

The wrapper calls the pack's Midjourney client with an explicit action path, polls to a documented terminal state (including the MODAL state, which is a legal "waiting for params" stop), downloads the result image(s), and returns a normal IMAGE. The image pool defaults to 30 workers, tunable via SEEDANCE_IMAGE_CONCURRENCY.

Installing

# ComfyUI Manager: search "ComfyUI Seedance" → install → restart.
# or:
comfy node install seedance
# or:
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

Only requests; no weights. API key via Seedance API Config, SEEDANCE_API_KEY, or config/.env.

Where people trip

  • index semantics - 1–4 for image actions, but 0–3 when a Video task reuses a task. The tooltip says it plainly; get it backwards and you'll reference the wrong candidate.
  • outpaint without a mask - documented upstream limitation; the pack keeps the field but the modal flow currently needs region + a mask.
  • Relax vs fast - relax is the default and can queue a long time if the account is congested. If a batch seems stalled, that's likely it.

It's the API-wrapper trade all over again: your prompts and images go to the gateway, and every action is metered. With MJ specifically, remember the account itself is usually a subscription - the pack just puts a ComfyUI face on it.

CategorySeedance/并发提交

Inputs (54)

NameTypeDefaultDescription
operationCOMBOmidjourney-imagine|文生图 / 参考图生成Select a documented Midjourney action; the suffix explains its use. | 选择 Midjourney 操作,后缀标明用途。
promptSTRINGPrompt or edit instruction. External STRING inputs are supported. | 提示词或编辑指令,支持外部 STRING 节点。
speedCOMBOrelaxAction speed; relax is the documented default. | 速度模式,默认 relax。
sizeCOMBO1:1Common aspect ratios; choose custom to enter another w:h ratio. | 常用画面比例,选择 custom 可手填其他 w:h 比例。
custom_sizeSTRINGUsed only when size is custom; enter a positive w:h ratio. | 仅 size 选择 custom 时使用,请填写正整数比例 w:h。
dimensionsCOMBOSQUAREBlend preset ratio; size takes priority. | Blend 预设比例。
qualityCOMBO1Imagine/Edits quality; default 1. | Imagine/Edits 质量,默认 1。
styleSTRINGOptional style, for example raw. | 可选风格。
versionCOMBO8.2Midjourney version; default 8.2. | Midjourney 版本,默认 8.2。
seedINT-1-1–4294967295Fixed reuses the cached result while all inputs stay unchanged; randomize/increment/decrement starts a new execution. | Fixed 在输入不变时复用缓存;随机、递增或递减会触发新任务。
negative_promptSTRINGOptional --no content. | 可选负面提示词。
stylizeINT-1-1–1000
chaosINT-1-1–100
weirdINT-1-1–3000
tileBOOLEANfalse
nijiBOOLEANfalse
iwFLOAT-1.0-1–3
cwINT-1-1–100
swINT-1-1–1000
crefSTRINGCharacter reference URL. | 角色参考图 URL。
srefSTRINGStyle reference URL. | 风格参考图 URL。
drefSTRINGDepth reference URL. | 深度参考图 URL。
dwFLOAT-1.0-1–100
repeatINT00–40
rawBOOLEANfalse
draftBOOLEANfalse
hdBOOLEANfalse
stopINT00–100
extraSTRINGOptional native MJ flags. | 可选原生 MJ 参数。
task_idSTRINGSource Midjourney task id; connect a previous node. | 源 Midjourney 任务 ID,可连接上游节点。
indexINT-1-1–4Use 1-4 for image actions; Video task mode uses 0-3. | 图像操作用 1-4,Video 任务模式用 0-3。
custom_idSTRINGOptional button customId. | 可选按钮 customId。
directionCOMBOrightPan direction. | Pan 平移方向。
zoom_ratioFLOAT2.01–2
modal_modeCOMBOregionRegion uses a mask; outpaint sends no mask. | region 使用遮罩,outpaint 不发送遮罩。
video_typeCOMBOvid_1.1_i2v_4804 options: vid_1.1_i2v_480, vid_1.1_i2v_720, vid_1.1_i2v_start_end_480, vid_1.1_i2v_start_end_720
animate_modeCOMBOmanual2 options: manual, auto
motionCOMBOhigh2 options: low, high
batch_sizeCOMBO13 options: 1, 2, 4
metadata_jsonSTRINGOptional JSON object stored with the task. | 可选任务 metadata JSON。
image_url1STRINGPublic image URL or image data URL 1. | 公网图片或 data URL 1。
image_url2STRINGPublic image URL or image data URL 2. | 公网图片或 data URL 2。
image_url3STRINGPublic image URL or image data URL 3. | 公网图片或 data URL 3。
image_url4STRINGPublic image URL or image data URL 4. | 公网图片或 data URL 4。
end_urlSTRINGOptional public video end-frame URL. | 可选结束帧 URL。
mask_urlSTRINGOptional modal mask URL or data URL. | 可选 Modal 遮罩 URL。
image1optIMAGELocal image 1; do not fill image_url1 together. | 本地图片 1,不能与同槽 URL 同时使用。
image2optIMAGELocal image 2; do not fill image_url2 together. | 本地图片 2,不能与同槽 URL 同时使用。
image3optIMAGELocal image 3; do not fill image_url3 together. | 本地图片 3,不能与同槽 URL 同时使用。
image4optIMAGELocal image 4; do not fill image_url4 together. | 本地图片 4,不能与同槽 URL 同时使用。
end_imageoptIMAGEOptional local video end frame. | 可选视频结束帧。
maskoptMASKComfyUI mask for modal region repaint. White is repainted. | Modal 局部重绘遮罩,ComfyUI 白色区域会被重绘。
api_configoptSEEDANCE_CONFIGConnect Seedance API Config; otherwise SEEDANCE_API_KEY is used.
skip_erroroptBOOLEANfalseReturn placeholders and an error response instead of stopping. | 失败时返回占位结果和错误信息。

Outputs (1)

NameTypeDescription
futureSEEDANCE_IMAGE_FUTURE