Cherry 1.0 Pro

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.

View llms.txt

Sakuranbo AI is in preview.

Overview

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.

Facts

Model ID
sakuranbo/cherry-1.0-pro
Vendor
Sakuranbo AI
Modality
Video
Tasks
Text to video, Image to video, & Reference to video
Upstream status
GA (upstream)
Last updated
2026-10-28

Capabilities

Input
Text & Image
Output
Video & Audio
Resolutions
1080p, 2k, 4k
Aspect ratios
adaptive, 16:9, 9:16, 1:1, 4:3, 3:4
Duration
2 to 30 seconds
Streaming
No
Asynchronous job
Yes
Audio output
Yes

Data policy

  • Generated files are kept for 7 days and then deleted.
  • Prompts are not stored. Only request metadata is kept.
  • Your request is forwarded to an upstream provider that runs the model.

See the measured success rate and generation time of this model

API

Call this model with its ID, sakuranbo/cherry-1.0-pro.

Estimate the price

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())

Generate

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())

Read the Videos guide

Parameters

Request fields for this model.

NameTypeRequiredDefaultConstraintsDescription
promptstringYesUp to 20,000 charactersDescription of the scene, motion, and audio.
first_frameurlNoImage to use as the first frame (image-to-video).
last_frameurlNoImage to use as the last frame. Requires first_frame.
reference_imagesurl[]NoUp to 10 itemsUp to 10 reference images. Cannot be combined with keyframes.
durationintegerNo52 to 30Video length in seconds. Billed per second.
resolutionenumNo1080pOne of: 1080p, 2k, 4kOutput resolution. Determines the per-second price.
aspect_ratioenumNoadaptiveOne of: adaptive, 16:9, 9:16, 1:1, 4:3, 3:4Aspect ratio of the output video.
audiobooleanNotrueGenerate an audio track. The price is the same with or without audio.

Pricing

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.

DimensionUnitConditionPrice
Output videoper secondresolution: 1080p$0.225
Output videoper secondresolution: 2k$0.25
Output videoper secondresolution: 4k$0.2875

Price examples

Examples use the listed prices. The server calculates the final charge from actual usage.

ExampleTotal
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)

Pricing

Schema

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"
  ]
}