From a Local File
Local files (or user uploads hitting your backend) go to your own storage first; the generation API then reads them by URL.
Overview
Any storage that can serve a public or presigned HTTPS URL works — AWS S3, Alibaba Cloud OSS, Tencent Cloud COS, Cloudflare R2, or your own static file server / CDN.
Upload to your storage
Shell
# AWS S3
aws s3 cp ./photo.jpg s3://my-public-bucket/inputs/photo.jpg --acl public-read
# → https://my-public-bucket.s3.amazonaws.com/inputs/photo.jpg
# Alibaba Cloud OSS
ossutil cp ./photo.jpg oss://my-bucket/inputs/photo.jpg
# → https://my-bucket.oss-cn-hangzhou.aliyuncs.com/inputs/photo.jpg
# Tencent Cloud COS
coscli cp ./photo.jpg cos://my-bucket/inputs/photo.jpgPrivate buckets
Keep the bucket private and generate a short-lived presigned URL instead — it just needs to stay valid while the task runs.
Then submit the task
cURL
curl -X POST "https://97ai.97claude.com/api/generate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2-image-to-video",
"input": {
"image_url": "https://my-public-bucket.s3.amazonaws.com/inputs/photo.jpg",
"prompt": "gentle camera orbit"
}
}'