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.92M4.62M 픽셀 범위의 정확한 WxH 지원, 가로세로 비율 최대 16:1(3K/4K 프리셋 없음, 프리셋 사용 시 모델이 화면 비율을 선택함,20초 소요, 요청당 $0.018)sequential_image_generation/stream은 허용되지 않음 — 전달 시 400 반환, 이미지당 약 15seedream-5-0-pro-260628— 프리셋1K/2K및 최대 4.19M 총 픽셀의 정확한 WxH 지원(16:9 비율에서 가장 긴 변이 2720×1530에 도달함이 확인됨, 3K/4K 프리셋 없음,sequential_image_generation/stream은 허용되지 않음 — 전달 시 400 반환, 이미지당 약 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 (원시 요청)
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 | 문자열 | 예 | — | 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 | 문자열 | 예 | — | prompt 텍스트입니다. 영어와 중국어를 지원합니다. 장면, 스타일, 조명을 상세하게 작성해 주십시오. |
size | 문자열 | 아니요 | 2K | 프리셋 티어(버전에 따라 상이함) 또는 정확한 픽셀 수 WxH |
response_format | 문자열 | 아니요 | url | url은(는) 서명된 링크를 반환하고, b64_json은(는) 일반 base64 문자열을 반환합니다. |
output_format | 문자열 | 아니요 | jpeg | 5.0 시리즈는 png / jpeg을(를) 지원하며, 4.5 / 4.0은 jpeg만 지원합니다(OpenAI SDK에서는 extra_body을(를) 통해 전달). |
n | 정수 | — | — | ⚠️ 업스트림 미지원: 해당 파라미터는 경고 없이 무시되며, 이미지는 여전히 1장만 생성되고 1장에 대해서만 과금됩니다. 다중 이미지 출력을 생성하려면 sequential_image_generation을(를) 사용하십시오(생성된 이미지당 과금됨). 이미지 편집을 참조하십시오. |
seed | 정수 | — | — | ⚠️ seedream-3-0-t2i에서만 공식적으로 지원되며, 현재 4.x / 5.x 모델에서는 무시됩니다. |
watermark | 불리언 | 아니요 | 상이함 | BytePlus 워터마크 포함 여부(상업적 용도의 경우 false(으)로 설정하십시오. 생략 시 5.0-flash는 “AI 생성” 워터마크를 추가합니다) |
stream | 불리언 | 아니요 | 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)
이 페이지가 도움이 되었나요?