Midjourney 图像与视频(16 合 1)
16 operations, one node
- image1
- image2
- image3
- image4
- end_image
- mask
- api_config
- image1
- image2
- image3
- image4
- grid_image
- video1
- video2
- video3
- video4
- text
- primary_url
- result_urls
- primary_path
- result_paths
- task_id
- buttons_json
- response
This is the node that puts Midjourney - the most famous closed image service in the world - inside your ComfyUI graph, and it does it with a 16-operation dropdown: Imagine, Blend, Describe, edits, upscale, variation, reroll, zoom, pan, inpaint, remix, and image-to-video. Pick an operation and the node collapses to just the fields that action needs; the rest of the ~40 inputs hide themselves. If you've ever wished your MJ work lived next to your local masking and upscaling instead of in Discord, this is the closest you'll get without Discord.
Same pack deal as everything here: T8mars/ComfyUI_Seedance, API wrapper, key from api.seedance.nz, requests only, no local models.
How it works
Each operation maps to a documented Midjourney action on the gateway. The node maintains an explicit action spec with a per-action field whitelist, so hidden fields never leak into requests. Two mechanisms matter for chaining:
- task_id - connect the
task_idoutput of one Midjourney node into the next one'stask_idinput to run Upscale/Variation/Reroll/Zoom/Pan/Inpaint/Remix on the previous result. That's how you build a full pipeline. - buttons_json - the server returns the available buttons and their custom IDs; you can paste one into
custom_idinstead of fiddling withindex.
Local images (image1..image4) get uploaded automatically; you can also paste public URLs into the matching image_urlN fields (don't set both for the same slot - the tooltip warns).
The inputs that matter
- operation - the steering wheel, with the Chinese use-note in the dropdown label.
- prompt - generation or edit instruction; supports external STRING nodes.
- speed (default
relax- the cheap tier), size (common ratios,customopenscustom_sizefor any w:h), quality (default 1), version (default 8.2), style, seed. - task_id / index / custom_id - the chaining trio for follow-up operations.
indexis 1–4 for image actions, 0–3 for video - that off-by-one is a classic trip. - modal_mode / mask - for Inpaint:
regionmode wants a ComfyUIMASK(white is repainted). The documented no-maskoutpaintis rejected upstream right now, so plan around region. - The MJ parameter zoo (stylize, chaos, weird, tile, niji, iw, cw, sw, cref, sref, dref, dw, repeat, raw, draft, hd, stop, extra) - leave them alone until you know what you're doing;
extraeven lets you pass native--flags.
Outputs are the full spread: image1..4, grid_image, video1..4, text (Describe results), primary_url/result_urls, primary_path/result_paths, task_id, buttons_json, response.
Installing it
ComfyUI Manager → search "ComfyUI 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
Restart, key from api.seedance.nz/console, Seedance API Config into api_config.
Common issues
- Follow-up action ignores your image - chained operations (upscale, variation…) run off
task_id, not re-uploaded images. Connect the upstreamtask_id. - Wrong image chosen -
indexstarts at 1 for image actions. If your variation picks the wrong candidate, check it's in 1–4. - Inpaint stuck in "MODAL" - that's a legal intermediate state where the API waits for the mask/region. Run Inpaint, let it reach MODAL, then feed the mask into a Modal/region step. Don't fight it.
- Outpaint refused - known upstream issue; use region mode with a mask instead.
Midjourney is the most opinionated model in this pack - its whole culture is Discord buttons and --parameters, and this node faithfully reproduces both. If you just want clean image generation without the ceremony, the pack's Qwen Image or Seedream nodes are the no-Drama option.
Inputs (54)
| Name | Type | Default | Description |
|---|---|---|---|
| operation | COMBO | midjourney-imagine|文生图 / 参考图生成 | Select a documented Midjourney action; the suffix explains its use. | 选择 Midjourney 操作,后缀标明用途。 |
| prompt | STRING | Prompt or edit instruction. External STRING inputs are supported. | 提示词或编辑指令,支持外部 STRING 节点。 | |
| speed | COMBO | relax | Action speed; relax is the documented default. | 速度模式,默认 relax。 |
| size | COMBO | 1:1 | Common aspect ratios; choose custom to enter another w:h ratio. | 常用画面比例,选择 custom 可手填其他 w:h 比例。 |
| custom_size | STRING | Used only when size is custom; enter a positive w:h ratio. | 仅 size 选择 custom 时使用,请填写正整数比例 w:h。 | |
| dimensions | COMBO | SQUARE | Blend preset ratio; size takes priority. | Blend 预设比例。 |
| quality | COMBO | 1 | Imagine/Edits quality; default 1. | Imagine/Edits 质量,默认 1。 |
| style | STRING | Optional style, for example raw. | 可选风格。 | |
| version | COMBO | 8.2 | Midjourney version; default 8.2. | Midjourney 版本,默认 8.2。 |
| seed | INT | -1-1–4294967295 | Fixed reuses the cached result while all inputs stay unchanged; randomize/increment/decrement starts a new execution. | Fixed 在输入不变时复用缓存;随机、递增或递减会触发新任务。 |
| negative_prompt | STRING | Optional --no content. | 可选负面提示词。 | |
| stylize | INT | -1-1–1000 | — |
| chaos | INT | -1-1–100 | — |
| weird | INT | -1-1–3000 | — |
| tile | BOOLEAN | false | — |
| niji | BOOLEAN | false | — |
| iw | FLOAT | -1.0-1–3 | — |
| cw | INT | -1-1–100 | — |
| sw | INT | -1-1–1000 | — |
| cref | STRING | Character reference URL. | 角色参考图 URL。 | |
| sref | STRING | Style reference URL. | 风格参考图 URL。 | |
| dref | STRING | Depth reference URL. | 深度参考图 URL。 | |
| dw | FLOAT | -1.0-1–100 | — |
| repeat | INT | 00–40 | — |
| raw | BOOLEAN | false | — |
| draft | BOOLEAN | false | — |
| hd | BOOLEAN | false | — |
| stop | INT | 00–100 | — |
| extra | STRING | Optional native MJ flags. | 可选原生 MJ 参数。 | |
| task_id | STRING | Source Midjourney task id; connect a previous node. | 源 Midjourney 任务 ID,可连接上游节点。 | |
| index | INT | -1-1–4 | Use 1-4 for image actions; Video task mode uses 0-3. | 图像操作用 1-4,Video 任务模式用 0-3。 |
| custom_id | STRING | Optional button customId. | 可选按钮 customId。 | |
| direction | COMBO | right | Pan direction. | Pan 平移方向。 |
| zoom_ratio | FLOAT | 2.01–2 | — |
| modal_mode | COMBO | region | Region uses a mask; outpaint sends no mask. | region 使用遮罩,outpaint 不发送遮罩。 |
| video_type | COMBO | vid_1.1_i2v_480 | 4 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_mode | COMBO | manual | 2 options: manual, auto |
| motion | COMBO | high | 2 options: low, high |
| batch_size | COMBO | 1 | 3 options: 1, 2, 4 |
| metadata_json | STRING | Optional JSON object stored with the task. | 可选任务 metadata JSON。 | |
| image_url1 | STRING | Public image URL or image data URL 1. | 公网图片或 data URL 1。 | |
| image_url2 | STRING | Public image URL or image data URL 2. | 公网图片或 data URL 2。 | |
| image_url3 | STRING | Public image URL or image data URL 3. | 公网图片或 data URL 3。 | |
| image_url4 | STRING | Public image URL or image data URL 4. | 公网图片或 data URL 4。 | |
| end_url | STRING | Optional public video end-frame URL. | 可选结束帧 URL。 | |
| mask_url | STRING | Optional modal mask URL or data URL. | 可选 Modal 遮罩 URL。 | |
| image1opt | IMAGE | Local image 1; do not fill image_url1 together. | 本地图片 1,不能与同槽 URL 同时使用。 | |
| image2opt | IMAGE | Local image 2; do not fill image_url2 together. | 本地图片 2,不能与同槽 URL 同时使用。 | |
| image3opt | IMAGE | Local image 3; do not fill image_url3 together. | 本地图片 3,不能与同槽 URL 同时使用。 | |
| image4opt | IMAGE | Local image 4; do not fill image_url4 together. | 本地图片 4,不能与同槽 URL 同时使用。 | |
| end_imageopt | IMAGE | Optional local video end frame. | 可选视频结束帧。 | |
| maskopt | MASK | ComfyUI mask for modal region repaint. White is repainted. | Modal 局部重绘遮罩,ComfyUI 白色区域会被重绘。 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | Return placeholders and an error response instead of stopping. | 失败时返回占位结果和错误信息。 |
Outputs (17)
| Name | Type | Description |
|---|---|---|
| image1 | IMAGE | — |
| image2 | IMAGE | — |
| image3 | IMAGE | — |
| image4 | IMAGE | — |
| grid_image | IMAGE | — |
| video1 | VIDEO | — |
| video2 | VIDEO | — |
| video3 | VIDEO | — |
| video4 | VIDEO | — |
| text | STRING | — |
| primary_url | STRING | — |
| result_urls | STRING | — |
| primary_path | STRING | — |
| result_paths | STRING | — |
| task_id | STRING | — |
| buttons_json | STRING | — |
| response | STRING | — |