Nodes/ComfyUI Ino Nodes/Ino S3 Download Image
ComfyUI Node

Ino S3 Download Image

Pull an image out of S3 and straight into an IMAGE tensor

By nobandegani·Created about a year ago·Updated 2 months ago· 6
Ino S3 Download Image
    • success
    • message
    • image
    • mask
    enabledtrue
    s3_keyinput/example.png
    s3_config{"access_key_id": "", "access_key_secret": "", "bucket_name": "", "endpoint_url": "", "region_name": ""}

    The mirror image of Ino S3 Upload Image, literally. Ino S3 Download Image grabs an image from an S3 bucket and hands it to the rest of your workflow as a proper IMAGE tensor - ready for img2img, an upscaler, a ControlNet preprocessor, or whatever comes next. You give it a bucket key; it does the download, decoding, and tensor conversion. The image never has to touch your input folder at all.

    It's part of ComfyUI Ino Nodes (nobandegani/ComfyUI-InoNodes), the 125+-node V3-schema pack, and one of its 16 S3 helpers. For anyone running ComfyUI on a cloud GPU box - the setup the S3 tooling is clearly aimed at - this is how you feed source images in without re-uploading them to every new instance.

    How it works

    Inputs:

    • enabled - the pack-wide toggle.
    • s3_key - the object's key in the bucket, e.g. input/reference.png. Default shows input/example.png as a placeholder.
    • s3_config - optional; the config string from Ino S3 Config, or leave empty and let env vars (S3_ACCESS_KEY, S3_BUCKET_NAME, etc.) fill in the blanks.

    Outputs: success (boolean), message (string), image (IMAGE), and mask (MASK). The mask comes from the image's alpha channel, matching how ComfyUI's own loader behaves - a JPEG yields an empty mask, which is normal.

    Mechanically, the node downloads to a temp directory under temp/s3_download_image (with a unique filename so parallel runs don't collide) and then loads it through ComfyUI's standard image pipeline. So you get the exact same IMAGE/MASK types you'd get from Load Image, minus the manual file step.

    When you'd reach for it

    The realistic use case is the same one that motivates the whole S3 feature set: a cloud pipeline where source images live in object storage. Your workflow pulls reference images by key, processes them, uploads results back. It also plays nicely with the pack's download nodes for string and video - one config, one bucket, and your graph pulls whatever media type it needs by key.

    Common issues

    • Key not found → success: False. You get an empty placeholder image plus a message; check the key spelling (case matters, and paths are exact).
    • Missing credentials. The S3 layer validates config before any network call and reports what's absent.
    • Alpha masks. If the image has no alpha, mask is empty - don't wire it into something that assumes a mask exists.

    Installing it

    ComfyUI Ino Nodes installs like any custom node pack:

    • ComfyUI Manager (easiest): search for "ComfyUI Ino Nodes", install, restart.
    • Manual:
      cd ComfyUI/custom_nodes
      git clone https://github.com/nobandegani/ComfyUI-InoNodes.git
      cd ComfyUI-InoNodes
      pip install -r requirements.txt
      Then restart ComfyUI.

    Requires inopyutils and a current ComfyUI. It's a niche pack with little community footprint - the S3-in-ComfyUI concept gets discussed on Reddit, but this pack barely shows up there. For pulling images from object storage straight into the graph, it does exactly one job and does it well.

    CategoryInoS3Helper

    Inputs (3)

    NameTypeDefaultDescription
    enabledBOOLEANtrue
    s3_keySTRINGinput/example.png
    s3_configoptSTRING{"access_key_id": "", "access_key_secret": "", "bucket_name": "", "endpoint_url": "", "region_name": ""}you can leave it empty and pass it with env vars

    Outputs (4)

    NameTypeDescription
    successBOOLEAN
    messageSTRING
    imageIMAGE
    maskMASK