Nodes/Comfyui-Minio/Set Minio Config
ComfyUI Node

Set Minio Config

The Node Your Other Minio Nodes Demand You Run First

By prodogape·Created 2 years ago·Updated 2 years ago· 7
Set Minio Config
    • response
    minio_hostlocalhost
    minio_port9000
    minio_access_key
    minio_secret_key
    ComfyUI_input_bucketcomfyinput
    ComfyUI_output_bucketcomfyoutput
    minio_securefalse

    ComfyUI-Minio is a three-node pack that points ComfyUI at Minio - the self-hosted, S3-compatible object store - so images live in buckets instead of (or alongside) your local input/output folders. The pitch is multi-machine: one box renders and writes results to a bucket, another box loads them back and keeps going. Before any of that happens, you run Set Minio Config exactly once. It's the front door, and the other two nodes refuse to open without it.

    Why this node exists

    ComfyUI is famously single-box. Workflows read from ComfyUI/input, write to ComfyUI/output, and sharing between machines means copying files around or juggling sync folders - the classic dependency-and-file hell of the custom node ecosystem, just with storage instead of pip packages. This pack's answer is to swap the local-directory model for buckets. Set Minio Config is where you tell the pack where Minio lives and hand over the credentials. Skip it, or get it wrong, and both Load Image From Minio and Save Image To Minio die with the same unhelpful "Please check if your Minio is configured correctly."

    How it works

    Run the node and it does three things: writes your settings into environment variables, tries to connect to Minio, and dumps a minio_config.json file into your ComfyUI output directory. That JSON file is how the other nodes find your server later - and it's how the config survives restarts, since they re-read it (or fall back to env vars) on every run.

    The "did it connect?" check is a single bucket_exists call against your input bucket. Which hides a real trap: the pack never creates buckets. If comfyinput doesn't exist yet, the connection "fails" even with perfect credentials. Create your buckets before running this.

    The inputs that matter

    Seven fields, all plain values:

    • minio_host / minio_port - defaults localhost and 9000. 9000 is Minio's default API port, so a local install usually just works.
    • minio_access_key / minio_secret_key - your Minio credentials.
    • ComfyUI_input_bucket / ComfyUI_output_bucket - defaults comfyinput and comfyoutput. Create them on the server first (Minio console, or mc mb comfyinput).
    • minio_secure - boolean, default off. Leave it off for http://localhost:9000; flip it on when Minio is behind TLS.

    The single output is a response JSON with a status code and message. ComfyUI has no built-in JSON viewer, which is why the author suggests installing ComfyUI-Toolbox to read it - but you don't need to. If the node runs without throwing, you're configured.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/prodogape/ComfyUI-Minio
    pip install -r requirements.txt
    

    Or search "ComfyUI-Minio" in ComfyUI Manager and install from there. Either way, restart ComfyUI afterward. The entire dependency list is one package - the minio Python SDK. No models, nothing heavy.

    Common issues

    • "Unable to connect" with correct credentials - the bucket doesn't exist. Create comfyinput and comfyoutput first; the pack only checks for them, it won't make them.
    • HTTPS server - leave minio_secure off and the Minio client will refuse to talk TLS over an http endpoint. Set it to true.
    • Credentials in plaintext in output/minio_config.json - fine for a localhost test server, but don't point this at a production key you actually care about.
    CategoryComfyUI-Minio

    Inputs (7)

    NameTypeDefaultDescription
    minio_hostSTRINGlocalhost
    minio_portSTRING9000
    minio_access_keySTRING
    minio_secret_keySTRING
    ComfyUI_input_bucketSTRINGcomfyinput
    ComfyUI_output_bucketSTRINGcomfyoutput
    minio_secureBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    responseJSON