boto3 opencv-python imageio-ffmpeg
S3-backed input/output nodes for ComfyUI. It lets you browse/load images and videos from an S3 (or S3-compatible)
bucket, upload local input files to S3, and push outputs back to S3 automatically.
ComfyUI/custom_nodes/ComfyUI-S3-IO
python -m pip install -r requirements.txt
Required:
S3IO_ACCESS_KEY_IDS3IO_SECRET_ACCESS_KEYS3IO_BUCKETOptional:
S3IO_ENDPOINT_URL (for MinIO or other S3-compatible endpoints)S3IO_REGIONS3IO_INPUT_PREFIX (default: empty)S3IO_OUTPUT_PREFIX (default: empty)S3IO_THUMB_PREFIX (default: thumbs)Legacy environment prefix S3_ is also supported (e.g., S3_ACCESS_KEY_ID).
Example:
export S3IO_ACCESS_KEY_ID="AKIA..."
export S3IO_SECRET_ACCESS_KEY="..."
export S3IO_BUCKET="comfy-bucket"
export S3IO_ENDPOINT_URL="https://s3.example.com"
export S3IO_REGION="us-east-1"
export S3IO_INPUT_PREFIX="inputs"
export S3IO_OUTPUT_PREFIX="outputs"
export S3IO_THUMB_PREFIX="thumbs"
S3IO_INPUT_PREFIX with image extensions.S3IO_OUTPUT_PREFIX. (n) suffixes if needed).filename_prefix supports the standard replacements (%date:yyyy-MM-dd%, %OtherNode.widget%, etc.) just like the stock Save nodes.S3IO_INPUT_PREFIX with video extensions.S3IO_OUTPUT_PREFIX.filename_prefix accepts the same replacements (%date:...%, %SomeNode.widget%) as VHS_VideoCombine.Example prefix:
%date:yyyyMMdd%/run_%PositivePrompt.text%
This saves under a date-based subfolder and inserts another node’s widget value, matching the behavior of the built-in save nodes.
Load Image from S3 and Load Video (Upload) from S3.VHS_LoadVideo / VHS_LoadVideoFFmpeg if those nodes exist.comfyuiDL is available, output downloads are requested automatically.temp/s3-io/... and respects S3 ETag changes.S3IO_THUMB_PREFIX as .jpg (max 256px).temp when the file is not present locally.temp when the file is not present locally.