Input Audio Bucket
Input Audio Bucket swaps the input folder for a key
- audio
- manifest
Audio in ComfyUI is a second-class citizen compared to images, but it's increasingly a real workflow citizen - TTS pipelines, dubbing, music generation, soundtrack muxing into video. The problem is the same one images have: audio files live on one machine, in an input/ folder, and getting them somewhere else means copying bytes around. Input Audio Bucket is the answer for that specific pain.
You give it a key - <subfolder>/<uuid> - and it pulls the audio from your S3-compatible bucket and hands you a native AUDIO tensor plus the asset's BUCKET_MANIFEST. It's the audio twin of Input Image Bucket, and it exists for the same reason: if you're driving ComfyUI as an API or running it on more than one box, passing a stable key beats shuttling files around.
How it works
Under the hood it downloads the object for the key into ComfyUI's temp dir, decodes it, and returns the AUDIO output you can wire into any audio-consuming node. The sidecar manifest (<key>.json) rides along as the second output, derived on the fly if one isn't stored.
Two quality-of-life details worth knowing:
- Type or paste a key and the audio previews immediately, no workflow run needed.
- Every input node has a "choose file to upload" button - pick a local file, it gets uploaded straight into the bucket, the key is set for you, and it previews. Non-native uploads like
wavorm4aare transcoded to FLAC losslessly; nativeflac/mp3/opuspass through untouched. So even while you're just testing, you never have to reach for a stock LoadAudio node.
The input that matters
One field: key (STRING), the <subfolder>/<uuid> pointing at your audio asset. That's it. If you'd rather browse, Load Audio From Bucket is the same loader with a dropdown of existing keys instead of a text field.
Install
Install the pack through ComfyUI Manager (search In-N-Out Bucket) or:
cd ComfyUI/custom_nodes
git clone https://github.com/littleowl/ComfyUI_In-N-Out_Bucket.git
pip install -r ComfyUI_In-N-Out_Bucket/requirements.txt
cp ComfyUI_In-N-Out_Bucket/.env.example ComfyUI_In-N-Out_Bucket/.env
Then restart. Only boto3 and python-dotenv get installed - PyAV, which does the audio decoding/transcoding, already ships with ComfyUI. Nodes appear under buckets/audio, and S3_AUDIO_BUCKET (default audio) is created automatically if it doesn't exist.
Troubleshooting
An unreachable bucket is the main failure mode: if the endpoint's wrong or the service isn't running you'll get an S3 connection error rather than a silent failure, because the node deliberately surfaces S3Unavailable instead of pretending there's no audio. Check S3_ENDPOINT_URL (blank = real AWS), your keys or IAM role, and S3_ADDRESSING_STYLE (RustFS/MinIO usually want path, AWS auto). One subtle gotcha: keys are case-sensitive object names in S3 - a stale key with a typoed subfolder resolves to "no objects found," so when in doubt, use the Load node's dropdown to confirm the exact key.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | The key representing the audio asset, e.g. '<subfolder>/<uuid>'. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | Audio loaded from the asset bucket. |
| manifest | BUCKET_MANIFEST | Asset metadata. Derived from the audio if no manifest is stored. |