Nodes/ComfyUI Seedance/并发提交|Midjourney 视频
ComfyUI Node

并发提交|Midjourney 视频

Midjourney image-to-video as a batch job — parallel clips from stills and start/end frames

By T8mars·Created 2 months ago·Updated 3 days ago· 31
并发提交|Midjourney 视频
  • image1
  • image2
  • image3
  • image4
  • end_image
  • mask
  • api_config
  • future
operationmidjourney-video|图生视频 / 首尾帧
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's image-to-video is the part of MJ that people actually lean on these days - you generate a still you love, then ask for the motion. This node is the concurrent-submit wrapper around that, and it's deliberately split from the image one: the pack keeps Midjourney image futures and video futures on separate submit nodes so the receiver types don't get confused. You generate images with the image submit node; you animate them with this one.

The wrapper mechanics are pack-standard: parameters are validated, then the job runs on a background video thread pool and returns a SEEDANCE_VIDEO_FUTURE. Wire it into SeedanceConcurrent_Video_Await, which waits on up to ten video futures and hands back finished VIDEO values in slot order. Animate three stills from the same shoot as a batch - three of these, one receiver.

The inputs that matter

  • operation - basically midjourney-video (image-to-video / start-end). The node's dropdown is the video action; everything else is the parameter set that action needs.
  • image1 (local) or image_url1 - your source still. image1image4 exist as slots, but i2v really wants the first one.
  • end_image / end_url - the optional end frame. Set one and the request flips into start-end video mode automatically. That's the cleanest way to get a loop that actually closes.
  • video_type - vid_1.1_i2v_480, vid_1.1_i2v_720, or the two _start_end_ variants. This is the resolution/frame-mode switch.
  • motion (low/high), animate_mode (manual/auto), batch_size (1/2/4) - the motion tuning knobs.
  • prompt - optional, but you'll get better motion than pure "animate this" for most clips.
  • The standard MJ chain fields - task_id, index (0–3 for task-reuse video), custom_id - plus speed, size, version, seed.

Plus api_config, skip_error, and the cache seed.

How it runs

The wrapper uses the same Midjourney client as the image node but targets the video action, polls to terminal state, and downloads the clip (with the MP4-header check the pack applies to all video results). Because the video result family has its own submit node, the future it returns is typed for the 10-slot video receiver - you can mix it with Kling, Seedance, Hailuo futures in the same receiver if you're feeling ambitious.

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

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

Where people trip

  • Wrong node, wrong receiver - grab the image submit node when you meant video and you'll hand an IMAGE future to a video receiver and get a type error. They're separate for a reason.
  • index on task-reuse video is 0–3, not 1–4 - a different convention from image actions; the tooltip calls it out.
  • Start-end needs both frames - if you set an end frame, expect validation to require the pair, and pick a _start_end_ video_type to match.

Standard pack caveats: metered per clip, prompt and stills leave the machine, and links are temporary. Save the clips you keep.

CategorySeedance/并发提交

Inputs (54)

NameTypeDefaultDescription
operationCOMBOmidjourney-video|图生视频 / 首尾帧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_VIDEO_FUTURE