Upload Files
Upload images, videos, or audio files for Buble generation inputs.
Upload Files
Use POST /api/v1/files to upload source assets before calling image-to-image, image-to-video, video-to-video, or audio-assisted modes.
Endpoint
POST /api/v1/files
Content-Type: multipart/form-dataForm fields
| Field | Type | Required | Description |
|---|---|---|---|
file | File | Yes | Image, video, or audio file. |
file_type | string | No | image, video, or audio. Inferred from MIME type if omitted. |
model | string | No | Optional model key for model-specific validation. |
mode | string | No | Optional public mode for mode-specific validation. |
If model and mode are provided, Buble validates file type, size, and format against that model mode. If omitted, Buble applies default upload limits.
Default upload limits
| Type | Default max size |
|---|---|
| Image | 30 MB |
| Video | 100 MB |
| Audio | 50 MB |
Model-specific limits can be stricter. Check the relevant model reference before uploading production assets.
Upload an image for image-to-image
curl https://buble.ai/api/v1/files \
-H "Authorization: Bearer $BUBLE_API_KEY" \
-F "file=@./source.png" \
-F "file_type=image" \
-F "model=google/nano-banana-pro" \
-F "mode=image_to_image"Response
{
"data": {
"object": "file",
"provider": "r2",
"url": "https://...",
"key": "api/image/xxx.png",
"file_type": "image",
"content_type": "image/png",
"size": 123456,
"filename": "source.png"
}
}Pass the returned data.url into image_urls, start_frame, end_frame, video_urls, or audio_urls depending on the selected mode.