curl --request POST \
--url https://api.apiyi.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"model": "seedream-5-0-260128",
"prompt": "A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional"
}
EOFimport requests
url = "https://api.apiyi.com/v1/images/generations"
payload = {
"model": "seedream-5-0-260128",
"prompt": "A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'seedream-5-0-260128',
prompt: 'A modern tech product launch poster, sleek smartphone on gradient background, text: \'Innovation 2026\', ultra detailed, professional'
})
};
fetch('https://api.apiyi.com/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'seedream-5-0-260128',
'prompt' => 'A modern tech product launch poster, sleek smartphone on gradient background, text: \'Innovation 2026\', ultra detailed, professional'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apiyi.com/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"seedream-5-0-260128\",\n \"prompt\": \"A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"seedream-5-0-260128\",\n \"prompt\": \"A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"seedream-5-0-260128\",\n \"prompt\": \"A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional\"\n}"
response = http.request(request)
puts response.read_body{
"model": "seedream-5-0-260128",
"created": 1768518000,
"data": [
{
"url": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.bytepluses.com/seedream-5-0/.../image.png",
"b64_json": "<string>",
"size": "2048x2048"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 6240,
"total_tokens": 6240
}
}テキストから画像生成 API リファレンス
Seedream テキストから画像生成 API リファレンスおよびライブプレイグラウンド — テキストのみの prompt、1K/1.5K/2K/3K/4K および正確なピクセルサイズ、単一のエンドポイントですべてのバージョンに対応
curl --request POST \
--url https://api.apiyi.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"model": "seedream-5-0-260128",
"prompt": "A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional"
}
EOFimport requests
url = "https://api.apiyi.com/v1/images/generations"
payload = {
"model": "seedream-5-0-260128",
"prompt": "A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'seedream-5-0-260128',
prompt: 'A modern tech product launch poster, sleek smartphone on gradient background, text: \'Innovation 2026\', ultra detailed, professional'
})
};
fetch('https://api.apiyi.com/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'seedream-5-0-260128',
'prompt' => 'A modern tech product launch poster, sleek smartphone on gradient background, text: \'Innovation 2026\', ultra detailed, professional'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apiyi.com/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"seedream-5-0-260128\",\n \"prompt\": \"A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"seedream-5-0-260128\",\n \"prompt\": \"A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"seedream-5-0-260128\",\n \"prompt\": \"A modern tech product launch poster, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional\"\n}"
response = http.request(request)
puts response.read_body{
"model": "seedream-5-0-260128",
"created": 1768518000,
"data": [
{
"url": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.bytepluses.com/seedream-5-0/.../image.png",
"b64_json": "<string>",
"size": "2048x2048"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 6240,
"total_tokens": 6240
}
}Bearer sk-xxx)、promptを入力し、モデルとサイズを選択して送信を押してください。imageフィールドなし)について説明します。参照画像編集、複数画像の合成、またはバッチシーケンス生成については、画像編集を参照してください — 同じエンドポイントで、パラメータのみが異なります。response_format: "url"モードでは、Playgroundは正常に動作します(レスポンスは一時的なBytePlus TOSリンクのみです)。response_format: "b64_json"に切り替えると、レスポンスには数MBのbase64文字列が含まれ、ブラウザのPlaygroundに请求时发生错误: unable to complete requestが表示される場合があります — リクエスト自体は正常に成功しています。ブラウザがこれほど長いbase64文字列を描画できないだけです。推奨されるワークフロー:- 画像を確認したいだけの場合:デフォルトの
urlモードのままにしてください — Playgroundが直接リンクを返します(24時間以内にご自身のストレージにダウンロードすることを忘れないでください)。 - b64_jsonが必要な場合:以下のコードサンプルをコピーしてローカルで実行してください — コードが自動的に画像をデコードしてファイルに保存します。
seedream-5-0-flash-260915— プリセット1K/1.5K/2K、および総ピクセル数0.92M〜4.62Mの正確な幅×高さ(WxH)、アスペクト比最大16:1(3K/4Kプリセットなし。プリセット使用時はモデルがアスペクト比を選択します。sequential_image_generation/streamは受け付けられず、渡すと400が返されます。画像1枚あたり約15〜20秒、$0.018/リクエスト)seedream-5-0-pro-260628— プリセット1K/2K、および総ピクセル数最大4.19Mの正確な幅×高さ(WxH)(16:9では長辺が2720×1530に達することを検証済み。3K/4Kプリセットなし。sequential_image_generation/streamは受け付けられず、渡すと400が返されます。画像1枚あたり約2分)seedream-5-0-260128—2K/3Kのみ(4Kなし)seedream-4-5-251128—2K/4Kseedream-4-0-250828—1K/2K/4K
コード例
Python(OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.apiyi.com/v1"
)
resp = client.images.generate(
model="seedream-5-0-260128",
prompt="A modern tech product launch poster with bold typography, sleek smartphone on gradient background, text: 'Innovation 2026', ultra detailed, professional",
size="2K",
response_format="url",
extra_body={
"output_format": "png",
"watermark": False,
}
)
print(resp.data[0].url)
Python(生の requests)
import requests
API_KEY = "sk-your-api-key"
response = requests.post(
"https://api.apiyi.com/v1/images/generations",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "seedream-5-0-260128",
"prompt": "A serene Japanese garden with cherry blossoms, koi pond, traditional wooden bridge, golden hour, ultra detailed",
"size": "2K",
"response_format": "url",
"watermark": False
},
timeout=60 # ~15s typical, 4K + hd may reach 30-60s
).json()
print(response["data"][0]["url"])
cURL
curl -X POST "https://api.apiyi.com/v1/images/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5-0-260128",
"prompt": "A futuristic cityscape at night with neon lights and flying vehicles, cyberpunk style, high detail",
"size": "2K",
"response_format": "url",
"watermark": false
}'
Node.js(fetch)
const resp = await fetch('https://api.apiyi.com/v1/images/generations', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-your-api-key'
},
body: JSON.stringify({
model: 'seedream-5-0-260128',
prompt: 'Minimalist line-art logo of a cat, monochrome, vector style',
size: '2K',
response_format: 'url',
output_format: 'png',
watermark: false
})
});
const { data } = await resp.json();
console.log(data[0].url);
ブラウザ JavaScript
{/* Demo only — proxy through your backend in production to avoid leaking the key */}
const resp = await fetch('https://api.apiyi.com/v1/images/generations', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-your-api-key'
},
body: JSON.stringify({
model: 'seedream-5-0-260128',
prompt: 'Watercolor northern lights over snowy mountains',
size: '2K'
})
});
const { data } = await resp.json();
document.getElementById('img').src = data[0].url;
パラメータリファレンス
| パラメータ | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
model | string | はい | — | seedream-5-0-260128 / seedream-4-5-251128 / seedream-4-0-250828 / seedream-5-0-pro-260628 (Proティア、$0.12/リクエスト) / seedream-5-0-flash-260915 (fastティア、$0.018/リクエスト) |
prompt | string | はい | — | promptテキスト。英語と中国語に対応しています。シーン、スタイル、照明について詳細に記述してください。 |
size | string | いいえ | 2K | プリセットティア(バージョンにより異なります)または正確なピクセル数 WxH |
response_format | string | いいえ | url | url は署名付きリンクを返します。b64_json はプレーンな base64 文字列を返します |
output_format | string | いいえ | jpeg | 5.0シリーズは png / jpeg に対応、4.5 / 4.0 は jpeg のみに対応(OpenAI SDK では extra_body 経由で渡します) |
n | integer | — | — | ⚠️ アップストリームで非対応: このパラメータは警告なしに無視されます — 常に1枚の画像のみ取得され、1枚分が課金されます。複数画像の出力には sequential_image_generation を使用してください(生成された画像ごとに課金)。詳細は画像編集を参照してください |
seed | integer | — | — | ⚠️ 公式には seedream-3-0-t2i のみでサポートされています。現在の 4.x / 5.x モデルでは無視されます |
watermark | boolean | いいえ | モデルにより異なる | BytePlusのウォーターマークを含めるかどうか(商用利用の場合は false に設定してください。5.0-flash では省略時に「AI generated」ウォーターマークが追加されます) |
stream | boolean | いいえ | false | ストリーミング出力。長い prompt や高解像度の場合に便利です。5.0-pro / 5.0-flash では受け入れられず、400 が返されます |
image、sequential_image_generation など)は、画像編集ページに記載されています。レスポンス形式
{
"model": "seedream-5-0-260128",
"created": 1768518000,
"data": [
{
"url": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.bytepluses.com/seedream-5-0/.../image.png",
"size": "2048x2048"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 6240,
"total_tokens": 6240
}
}
response_format=urlの場合、data[].urlは 一時的な署名付き BytePlus TOS URL です(通常は 24 時間有効です)。本番では、すぐにご自身のストレージへダウンロードしてください。response_format=b64_jsonの場合、data[].b64_jsonはdata:image/...;base64,プレフィックスのない プレーンな base64 文字列 です。ファイル出力用にデコードする(base64.b64decode)か、ブラウザ表示用にご自身でプレフィックスを付けてください。data[].sizeは 実際の出力サイズ を反映しており、モデルのアスペクト比正規化後に要求したsizeとわずかに異なる場合があります。
usage.generated_images は課金対象の画像枚数を反映します。Seedream は画像ごとに課金されます。output_tokens / total_tokens はオブザーバビリティ指標であり、課金には影響しません。承認
API Key obtained from APIYI Console
ボディ
Model ID
seedream-5-0-260128, seedream-5-0-lite-260128, seedream-4-5-251128, seedream-4-0-250828, seedream-5-0-pro-260628, seedream-5-0-flash-260915 Prompt, supports both English and Chinese. Describe scene, style, and lighting in detail for better results.
"A serene Japanese garden with cherry blossoms, koi pond, traditional bridge, golden hour, ultra detailed"
Output size. Preset tiers (vary by version):
1K(~1024×1024) — 4.0 / 5.0-pro / 5.0-flash1.5K(~1536×1536) — 5.0-flash only2K(~2048×2048) — 5.0 / 4.5 / 4.03K(~3072×3072) — 5.0 only4K(~4096×4096) — 4.5 / 4.0
Or exact pixel size WxH, total pixels ∈ [1280×720, 4096×4096], aspect ratio ∈ [1/16, 16]
"2K"
url returns a temp signed link (24h validity); b64_json returns plain base64 (no data: prefix)
url, b64_json Output format. 5.0 supports png/jpeg; 4.5/4.0 only jpeg
png, jpeg Random seed. Note: officially supported only by seedream-3-0-t2i; ignored by the current 4.x / 5.x models
42
Whether to include the BytePlus watermark. Set to false for commercial use
Enable streaming output. Useful for long prompts and high-resolution generation. Not accepted by 5.0-pro / 5.0-flash (returns 400)
このページは役に立ちましたか?