Sakuranbo AI · Image
High-fidelity text-to-image and reference-based image editing up to 2K resolution.
- Text to image
- Image editing
- 1K / 1.5K / 2K
- 9 aspect ratios
Text- and image-to-video generation from 2 to 30 seconds at 1080p, 2K, or 4K with audio.
Sakuranbo AI ·
Opens the Playground in the dashboard.
Sakuranbo AI is in preview.
Cherry 1.0 Pro creates videos from a text prompt, from first and last keyframes, or from up to 10 reference images. Set the duration (2–30 s), resolution, and aspect ratio; audio is generated by default. Pricing is per second of output video by resolution.
sakuranbo/cherry-1.0-proSee the measured success rate and generation time of this model
Call this model with its ID, sakuranbo/cherry-1.0-pro.
POST /v1/estimate takes a JSON body ({ model, input }) and returns the price for that input before you run it. This endpoint does not need an API key.
curl -X POST "https://api.sakuranbo.ai/v1/estimate" \
-H "Content-Type: application/json" \
-d '{
"model": "sakuranbo/cherry-1.0-pro",
"input": {
"prompt": "Aerial shot gliding over a misty mountain lake at sunrise, gentle wind and birdsong",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
}'const response = await fetch("https://api.sakuranbo.ai/v1/estimate", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "sakuranbo/cherry-1.0-pro",
"input": {
"prompt": "Aerial shot gliding over a misty mountain lake at sunrise, gentle wind and birdsong",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
}),
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"https://api.sakuranbo.ai/v1/estimate",
json={
"model": "sakuranbo/cherry-1.0-pro",
"input": {
"prompt": "Aerial shot gliding over a misty mountain lake at sunrise, gentle wind and birdsong",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
},
},
)
print(response.json())Send generation requests to /v1/videos. The request below uses an example input from the catalog for this model.
Listing and fetching models and estimating prices need no API key. Generation requests need an API key: Authorization: Bearer YOUR_API_KEY
curl -X POST "https://api.sakuranbo.ai/v1/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SAKURANBO_API_KEY" \
-d '{
"model": "sakuranbo/cherry-1.0-pro",
"prompt": "Aerial shot gliding over a misty mountain lake at sunrise, gentle wind and birdsong",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}'const response = await fetch("https://api.sakuranbo.ai/v1/videos", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.SAKURANBO_API_KEY}`,
},
body: JSON.stringify({
"model": "sakuranbo/cherry-1.0-pro",
"prompt": "Aerial shot gliding over a misty mountain lake at sunrise, gentle wind and birdsong",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}),
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.post(
"https://api.sakuranbo.ai/v1/videos",
headers={
"Authorization": f"Bearer {os.environ['SAKURANBO_API_KEY']}",
},
json={
"model": "sakuranbo/cherry-1.0-pro",
"prompt": "Aerial shot gliding over a misty mountain lake at sunrise, gentle wind and birdsong",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
},
)
print(response.json())Request fields for this model.
| Name | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
prompt | string | Yes | Up to 20,000 characters | Description of the scene, motion, and audio. | |
first_frame | url | No | Image to use as the first frame (image-to-video). | ||
last_frame | url | No | Image to use as the last frame. Requires first_frame. | ||
reference_images | url[] | No | Up to 10 items | Up to 10 reference images. Cannot be combined with keyframes. | |
duration | integer | No | 5 | 2 to 30 | Video length in seconds. Billed per second. |
resolution | enum | No | 1080p | One of: 1080p, 2k, 4k | Output resolution. Determines the per-second price. |
aspect_ratio | enum | No | adaptive | One of: adaptive, 16:9, 9:16, 1:1, 4:3, 3:4 | Aspect ratio of the output video. |
audio | boolean | No | true | Generate an audio track. The price is the same with or without audio. |
Prices are in USD and include our margin. Failed, cancelled, expired, and policy-rejected runs are not billed. For chat, once the model has started generating output (including reasoning output), the output it generates is billed, even if the stream breaks or you close the connection.
| Dimension | Unit | Condition | Price |
|---|---|---|---|
| Output video | per second | resolution: 1080p | $0.225 |
| Output video | per second | resolution: 2k | $0.25 |
| Output video | per second | resolution: 4k | $0.2875 |
Examples use the listed prices. The server calculates the final charge from actual usage.
| Example | Total |
|---|---|
| 5 s of video at 1080p | $1.125 |
| 5 s of video at 2K | $1.25 |
| 5 s of video at 4K | $1.4375 |
| 10 s of video at 1080p | $2.25 |
| 30 s of video at 1080p | $6.75 |
Default run: $1.125 (5 s, 1080p)
JSON Schema of the input fields, generated from the catalog.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"prompt": {
"type": "string",
"maxLength": 20000,
"description": "Description of the scene, motion, and audio."
},
"first_frame": {
"type": "string",
"format": "uri",
"description": "Image to use as the first frame (image-to-video)."
},
"last_frame": {
"type": "string",
"format": "uri",
"description": "Image to use as the last frame. Requires first_frame."
},
"reference_images": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxItems": 10,
"description": "Up to 10 reference images. Cannot be combined with keyframes."
},
"duration": {
"type": "integer",
"minimum": 2,
"maximum": 30,
"default": 5,
"description": "Video length in seconds. Billed per second."
},
"resolution": {
"type": "string",
"enum": [
"1080p",
"2k",
"4k"
],
"default": "1080p",
"description": "Output resolution. Determines the per-second price."
},
"aspect_ratio": {
"type": "string",
"enum": [
"adaptive",
"16:9",
"9:16",
"1:1",
"4:3",
"3:4"
],
"default": "adaptive",
"description": "Aspect ratio of the output video."
},
"audio": {
"type": "boolean",
"default": true,
"description": "Generate an audio track. The price is the same with or without audio."
}
},
"required": [
"prompt"
]
}