Nodes/ComfyUI-MidjourneyHub/Midjourney Batch Upscale/Variation
ComfyUI Node

Midjourney Batch Upscale/Variation

All four upscales at once — when you actually want all four

By jiaqianjing·Created 2 years ago·Updated 4 months ago· 18
Midjourney Batch Upscale/Variation
    • image1
    • image2
    • image3
    • image4
    task_id
    batch_actionsU1-U4

    The single-action node makes you pick one grid cell. Midjourney Batch Upscale/Variation is the "I want to see everything" version: it takes the same task_id from a MidjourneyImagineNode and runs all four U1–U4 (or V1–V4) actions at once, returning four images. It's the pack's speed demon - the changelog calls out a December 2024 rewrite that moved the whole pipeline to asyncio specifically so this node doesn't take four times as long as the single-action one. The subtasks are submitted concurrently and polled with asyncio.gather, so you wait for the slowest job, not the sum of them.

    When it's the right tool

    Four upscales costs four jobs on the relay, so don't run it when you already know cell 3 is the one - that's what the single Midjourney Upscale/Variation node is for. Batch shines for the "don't make me choose" phase of a project: pick a strong grid, run U1–U4, and dump all four into a comparison or a folder. Same logic applies to V1–V4 if you're fishing for a better take on a concept rather than a bigger render.

    Inputs and outputs

    Only two inputs, both required:

    • task_id - the STRING from an Imagine or Blend node.
    • batch_actions - U1-U4 (upscale all cells) or V1-V4 (variation of all cells). Default U1-U4.

    Outputs are four separate IMAGE tensors: image1, image2, image3, image4. They come out in order, so cell 1's upscale is always image1. One honest gotcha: if a subtask fails on the relay's side, that output comes back as None (the code pads missing results so the node still returns a valid tuple). ComfyUI will complain if you wire a None straight into a preview node, so if a port goes dark, check which cell failed rather than chasing a wiring bug.

    Installing

    Same pack, same steps - via ComfyUI Manager (search "ComfyUI-MidjourneyHub") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jiaqianjing/ComfyUI-MidjourneyHub
    # restart ComfyUI
    

    Set your own key and URL in config.ini under [MIDJOURNEY_API] - the repo ships the author's keys, so replace them first. The pack's Python deps are light (aiohttp, openai, nest_asyncio); the real cost here is per-job billing, not disk space.

    Where people get burned

    Batch multiplies everything, including the relay's failure modes. One flaky provider = one None output, and a batch that hits a rate limit burns all four jobs at once. Worth repeating the pack-wide caveat: this rides an unofficial MJ relay, MJ has called unofficial APIs ToS violations before, and the author warns api_url can change without notice. It works; just don't build a production pipeline on a service that can swap endpoints out from under you.

    CategoryMidjourneyHub

    Inputs (2)

    NameTypeDefaultDescription
    task_idSTRING
    batch_actionsCOMBOU1-U42 options: U1-U4, V1-V4

    Outputs (4)

    NameTypeDescription
    image1IMAGE
    image2IMAGE
    image3IMAGE
    image4IMAGE