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
Fast, low-cost language model with a 1M-token context window, tool calls, and reasoning.
Sakuranbo AI ·
Opens the Playground in the dashboard.
Sakuranbo AI is in preview.
CherryText 1.0 Flash is a fast, low-cost language model for chat, coding, and agent workloads, with a 1M-token context window and up to 131,072 output tokens. Call it through the OpenAI-compatible Chat Completions endpoint with streaming, tool calls, and JSON output. The model reasons before it answers and returns the reasoning in the reasoning_content field.
sakuranbo/cherrytext-1.0-flashSee the measured success rate and generation time of this model
Call this model with its ID, sakuranbo/cherrytext-1.0-flash.
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/cherrytext-1.0-flash",
"input": {
"messages": [
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "Summarize the benefits of prepaid API credits in two lines."
}
],
"max_tokens": 2048
}
}'const response = await fetch("https://api.sakuranbo.ai/v1/estimate", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "sakuranbo/cherrytext-1.0-flash",
"input": {
"messages": [
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "Summarize the benefits of prepaid API credits in two lines."
}
],
"max_tokens": 2048
}
}),
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"https://api.sakuranbo.ai/v1/estimate",
json={
"model": "sakuranbo/cherrytext-1.0-flash",
"input": {
"messages": [
{
"role": "system",
"content": "You are a concise assistant.",
},
{
"role": "user",
"content": "Summarize the benefits of prepaid API credits in two lines.",
},
],
"max_tokens": 2048,
},
},
)
print(response.json())Send generation requests to /v1/chat/completions. 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/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SAKURANBO_API_KEY" \
-d '{
"model": "sakuranbo/cherrytext-1.0-flash",
"messages": [
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "Summarize the benefits of prepaid API credits in two lines."
}
],
"max_tokens": 2048
}'const response = await fetch("https://api.sakuranbo.ai/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.SAKURANBO_API_KEY}`,
},
body: JSON.stringify({
"model": "sakuranbo/cherrytext-1.0-flash",
"messages": [
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "Summarize the benefits of prepaid API credits in two lines."
}
],
"max_tokens": 2048
}),
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.post(
"https://api.sakuranbo.ai/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['SAKURANBO_API_KEY']}",
},
json={
"model": "sakuranbo/cherrytext-1.0-flash",
"messages": [
{
"role": "system",
"content": "You are a concise assistant.",
},
{
"role": "user",
"content": "Summarize the benefits of prepaid API credits in two lines.",
},
],
"max_tokens": 2048,
},
)
print(response.json())Request fields for this model.
| Name | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
messages | object[] | Yes | Conversation messages in the OpenAI Chat Completions format. | ||
max_tokens | integer | No | 4096 | 1 to 131,072 | Maximum number of tokens to generate, including the tokens the model spends on reasoning. A value that is too small can end the response before the answer is written. The balance hold is based on this value. |
temperature | number | No | 1 | 0 to 2 | Sampling temperature. |
stream | boolean | No | false | Stream tokens as server-sent events. |
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 |
|---|---|---|---|
| Input tokens | per 1M tokens | Default | $0.4125 |
| Cached input tokens | per 1M tokens | Default | $0.0104 |
| Output tokens | per 1M tokens | Default | $1.65 |
Examples use the listed prices. The server calculates the final charge from actual usage.
| Example | Total |
|---|---|
| 1,000 input and 1,000 output tokens | $0.002063 |
| 10,000 input and 1,000 output tokens | $0.005775 |
| 100,000 input and 4,096 output tokens | $0.048009 |
Default run: $0.00676 (empty input, up to 4,096 output tokens)
JSON Schema of the input fields, generated from the catalog.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object"
},
"description": "Conversation messages in the OpenAI Chat Completions format."
},
"max_tokens": {
"type": "integer",
"minimum": 1,
"maximum": 131072,
"default": 4096,
"description": "Maximum number of tokens to generate, including the tokens the model spends on reasoning. A value that is too small can end the response before the answer is written. The balance hold is based on this value."
},
"temperature": {
"type": "number",
"minimum": 0,
"maximum": 2,
"default": 1,
"description": "Sampling temperature."
},
"stream": {
"type": "boolean",
"default": false,
"description": "Stream tokens as server-sent events."
}
},
"required": [
"messages"
]
}