Sakuranbo AI · Video
Text- and image-to-video generation from 2 to 30 seconds at 1080p, 2K, or 4K with audio.
- Text to video
- Image to video
- Reference to video
- 2-30 s
- 1080p / 2K / 4K
- 6 aspect ratios
- With audio
High-fidelity text-to-image and reference-based image editing up to 2K resolution.
Sakuranbo AI ·
Opens the Playground in the dashboard.
Sakuranbo AI is in preview.
CherryImage 1.0 Pro generates images from text prompts of up to 5,000 characters and edits images with 1 to 10 reference images. Choose 1K, 1.5K, or 2K output and an aspect ratio; pricing is per image by resolution.
sakuranbo/cherryimage-1.0-proSee the measured success rate and generation time of this model
Call this model with its ID, sakuranbo/cherryimage-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/cherryimage-1.0-pro",
"input": {
"prompt": "A matte ceramic coffee mug on a walnut desk, soft morning light, shallow depth of field",
"resolution": "2k",
"aspect_ratio": "4:3"
}
}'const response = await fetch("https://api.sakuranbo.ai/v1/estimate", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "sakuranbo/cherryimage-1.0-pro",
"input": {
"prompt": "A matte ceramic coffee mug on a walnut desk, soft morning light, shallow depth of field",
"resolution": "2k",
"aspect_ratio": "4:3"
}
}),
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"https://api.sakuranbo.ai/v1/estimate",
json={
"model": "sakuranbo/cherryimage-1.0-pro",
"input": {
"prompt": "A matte ceramic coffee mug on a walnut desk, soft morning light, shallow depth of field",
"resolution": "2k",
"aspect_ratio": "4:3",
},
},
)
print(response.json())Send generation requests to /v1/images/generations. 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/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SAKURANBO_API_KEY" \
-d '{
"model": "sakuranbo/cherryimage-1.0-pro",
"prompt": "A matte ceramic coffee mug on a walnut desk, soft morning light, shallow depth of field",
"resolution": "2k",
"aspect_ratio": "4:3"
}'const response = await fetch("https://api.sakuranbo.ai/v1/images/generations", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.SAKURANBO_API_KEY}`,
},
body: JSON.stringify({
"model": "sakuranbo/cherryimage-1.0-pro",
"prompt": "A matte ceramic coffee mug on a walnut desk, soft morning light, shallow depth of field",
"resolution": "2k",
"aspect_ratio": "4:3"
}),
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.post(
"https://api.sakuranbo.ai/v1/images/generations",
headers={
"Authorization": f"Bearer {os.environ['SAKURANBO_API_KEY']}",
},
json={
"model": "sakuranbo/cherryimage-1.0-pro",
"prompt": "A matte ceramic coffee mug on a walnut desk, soft morning light, shallow depth of field",
"resolution": "2k",
"aspect_ratio": "4:3",
},
)
print(response.json())Request fields for this model.
| Name | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
prompt | string | Yes | Up to 5,000 characters | Text description of the image to generate or the edit to apply. | |
images | url[] | No | Up to 10 items | Reference images for editing (1 to 10). Required on /v1/images/edits. | |
resolution | enum | No | 2k | One of: 1k, 1.5k, 2k | Output resolution. Determines the per-image price. |
n | integer | No | 1 | 1 to 100 | Number of images to generate (1 to 100). The price is the per-image price times this value. |
aspect_ratio | enum | No | auto | One of: auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9 | Aspect ratio of the output image. |
output_format | enum | No | jpeg | One of: jpeg, png | Image file format. |
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 image | per image | resolution: 1k | $0.045 |
| Output image | per image | resolution: 1.5k | $0.05 |
| Output image | per image | resolution: 2k | $0.09 |
Examples use the listed prices. The server calculates the final charge from actual usage.
| Example | Total |
|---|---|
| 1 × 1K image | $0.045 |
| 1 × 1.5K image | $0.05 |
| 1 × 2K image | $0.09 |
| 100 × 2K images | $9.00 |
Default run: $0.09 (1 image, 2K)
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": 5000,
"description": "Text description of the image to generate or the edit to apply."
},
"images": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxItems": 10,
"description": "Reference images for editing (1 to 10). Required on /v1/images/edits."
},
"resolution": {
"type": "string",
"enum": [
"1k",
"1.5k",
"2k"
],
"default": "2k",
"description": "Output resolution. Determines the per-image price."
},
"n": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1,
"description": "Number of images to generate (1 to 100). The price is the per-image price times this value."
},
"aspect_ratio": {
"type": "string",
"enum": [
"auto",
"1:1",
"4:3",
"3:4",
"16:9",
"9:16",
"3:2",
"2:3",
"21:9"
],
"default": "auto",
"description": "Aspect ratio of the output image."
},
"output_format": {
"type": "string",
"enum": [
"jpeg",
"png"
],
"default": "jpeg",
"description": "Image file format."
}
},
"required": [
"prompt"
]
}