zhenzhen-midjourney-lowprice
Every Midjourney operation — imagine, upscale, pan, video — in one ComfyUI 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
If you've ever wanted Midjourney inside ComfyUI without leaving the graph, this is the node: Comfly_midjourney_lowprice ("zhenzhen-midjourney-lowprice") is a single node that covers sixteen different Midjourney operations - imagine, blend, describe, edits, upscale, variation, high/low variation, reroll, zoom, pan, inpaint, modal, video, and two flavors of remix. You flip the operation dropdown and the node reshows only the parameters that operation needs. The author claims to have verified all sixteen against the real API, and the workflow folder ships examples for every one.
It's part of the T8mars/Comfyui-zhenzhen pack, the "Comfly" family of API-wrapper nodes that call the author's paid reseller service. This one is a "lowprice" node, which means two things: it uses the cheaper China-facing endpoint (api.seedance.nz by default) and it takes its credentials through the pack's shared zhenzhen-seedance2-low-price-api-settings node (the api_config input) instead of a per-node key field. Under the hood it's submit → poll → download, same as the rest of the pack, and it converts results to real IMAGE, VIDEO, and STRING outputs.
The inputs that matter
The schema is enormous, so focus on the few you'll actually touch:
operation- required, the sixteen-way switch that defines what the node does.prompt- your text, and for some operations (like describe) the thing you paste in is the image's URL or task id instead.version- up to v8.2 in the dropdown, plusnijiif you want the anime mode.speed,quality,style,stylize,chaos,weird- the classic MJ parameter cluster; defaults are "unset" so the server decides.task_id+index- how you chain: take the task id from a previous run and apply upscale/variation/zoom to a specific tile.image_url1–image_url4and localimage1–image4- inputs for blend, edits, and reference work.mask+mask_urlfeed inpaint/modal.cref,sref,dref,iw,cw,sw- character/style/depth reference knobs, passed as URLs.
Outputs
This is where the single-node design pays off. You get image1–image4 (the four tiles), grid_image, video1–video4 for video operations, plus the plumbing: text (for describe), primary_url, result_urls, primary_path, result_paths, task_id (chain it back into task_id for the next operation), buttons_json, and the full response.
Installing it
Whole-pack install, no models:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
# restart ComfyUI
Or ComfyUI Manager → "Comfyui-zhenzhen". Then add a zhenzhen-seedance2-low-price-api-settings node, put your key in it, and wire its api_config into this node.
Where people get tangled
The operation-switching UI is the thing to respect: each operation shows different fields, and reusing a workflow that saved parameters from another operation is the classic source of "it didn't do what I asked." When in doubt, re-add the node fresh. And because this is a reseller's Midjourney access, remember the usual caveats: 500s from upstream aren't necessarily you (rerun), credits are metered per call so variation chains add up fast, and everything you send goes through a third-party server. The trade is real - but for "MJ in my ComfyUI pipeline" this is about the closest thing to a one-stop answer in the pack.
Inputs (53)
| Name | Type | Default | Description |
|---|---|---|---|
| operation | COMBO | midjourney-imagine | 16 options: midjourney-imagine, midjourney-blend, midjourney-describe, midjourney-edits, midjourney-upscale, midjourney-variation, +10 |
| prompt | STRING | 提示词或编辑指令,支持外部 STRING 节点。 | |
| speed | COMBO | unset | 4 options: unset, relax, fast, turbo |
| size | STRING | 画面比例,例如 16:9;设置后优先于 dimensions。 | |
| dimensions | COMBO | unset | 4 options: unset, SQUARE, PORTRAIT, LANDSCAPE |
| quality | COMBO | unset | 5 options: unset, 0.25, 0.5, 1, 2 |
| style | STRING | — | |
| version | COMBO | unset | 9 options: unset, 5, 5.1, 5.2, 6, 6.1, +3 |
| seed | INT | -1-1–4294967295 | — |
| negative_prompt | STRING | — | |
| 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 | 角色参考图 URL。 | |
| sref | STRING | 风格参考图 URL。 | |
| dref | STRING | 深度参考图 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 | — | |
| task_id | STRING | 源 Midjourney 任务 ID,可连接上游节点。 | |
| index | INT | -1-1–4 | 图像操作用 1-4,Video 任务模式用 0-3。 |
| custom_id | STRING | 可选按钮 customId。 | |
| direction | COMBO | unset | 5 options: unset, left, right, up, down |
| zoom_ratio | FLOAT | 2.01–2 | — |
| modal_mode | COMBO | region | 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 | 可选任务 metadata JSON 对象。 | |
| image_url1 | STRING | 公网图片 URL 或 data URL 1。 | |
| image_url2 | STRING | 公网图片 URL 或 data URL 2。 | |
| image_url3 | STRING | 公网图片 URL 或 data URL 3。 | |
| image_url4 | STRING | 公网图片 URL 或 data URL 4。 | |
| end_url | STRING | 可选视频结束帧 URL。 | |
| mask_url | STRING | 可选 Modal 遮罩 URL。 | |
| image1opt | IMAGE | 本地图片 1,不能与同槽 image_url 同时使用。 | |
| image2opt | IMAGE | 本地图片 2,不能与同槽 image_url 同时使用。 | |
| image3opt | IMAGE | 本地图片 3,不能与同槽 image_url 同时使用。 | |
| image4opt | IMAGE | 本地图片 4,不能与同槽 image_url 同时使用。 | |
| end_imageopt | IMAGE | 视频可选结束帧。 | |
| maskopt | MASK | Modal 局部重绘遮罩,ComfyUI 白色区域会被重绘。 | |
| api_configopt | ZHENZHEN_SEEDANCE2_CONFIG | — | |
| skip_erroropt | BOOLEAN | false | 失败时返回占位结果而不是中止工作流。 |
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 | — |