InstaSD S3 - Save Image
Save ComfyUI output to S3 — no local folder required
- images
InstaCSaveImageToS3 is the output node that uploads your generated images to an AWS S3 bucket. It's the natural bookend to InstaCLoadImageFromS3: instead of saving PNGs to ComfyUI's local output folder and figuring out how to move them, the image goes straight to object storage where your app, API, or InstaSD deployment can pick it up.
It's an output node - no return types - which in ComfyUI terms means it's a sink: you run it last, it does its thing, and it reports the uploaded filenames back to the UI. Internally it converts the image tensor to a PNG in memory and does an S3.put_object, so nothing is ever written to disk on the worker.
What you set
- images - the IMAGE tensor to save. Wire it from a VAE decode.
- region - AWS region, default
us-east-1. - aws_ak / aws_sk - access key ID and secret. Leave empty to fall back to boto3's default credential chain (env vars,
~/.aws/credentials, IAM role). - session_token - optional STS session token for temporary credentials.
- s3_bucket - the destination bucket. Default is the placeholder string
s3_bucket- change it or you'll upload to a bucket that doesn't exist. - pathname - this is a prefix, not a literal filename. The node builds the actual key as
{pathname}_{timestamp}_{batchnumber}.png, e.g.result_20260816_120101_0.png. The timestamp is the point: it makes every upload unique and stops files from colliding on re-runs.
The upload happens for every image in the batch, and the node returns the full generated filenames to the UI so you can see what landed where.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/WaddingtonHoldings/ComfyUI-InstaSD
Restart ComfyUI, or install via ComfyUI Manager (search "InstaSD"). This node genuinely needs boto3 (in the pack's requirements.txt); Manager handles it. No models, but AWS credentials with write access to the bucket are mandatory.
Gotchas
- It always uploads PNG. There's no format or quality setting - if you need JPEG/WebP, this node isn't it.
pathnameis a prefix. Don't put.pngat the end expecting that exact filename; the timestamp suffix means the real key is different every run. Fine for uniqueness, annoying if some downstream system expects a fixed key - in that case rename the object yourself after upload.- Missing credentials fail silently-ish: the exception surfaces as a red node. Fill the key fields or export
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY. - Region mismatch bites again here. Set
regionto the bucket's actual region before you start uploading.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| region | STRING | us-east-1 | — |
| aws_ak | STRING | — | |
| aws_sk | STRING | — | |
| session_token | STRING | — | |
| s3_bucket | STRING | s3_bucket | — |
| pathname | STRING | pathname for file | — |
Outputs (0)
No outputs