Doubao Seedream 生成图像 API
curl --request POST \
--url https://magic666.top/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"n": 123,
"size": "<string>",
"image": [
"<string>"
],
"response_format": "<string>",
"quality": "<string>",
"style": {},
"background": {},
"watermark": true
}
'import requests
url = "https://magic666.top/v1/images/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"n": 123,
"size": "<string>",
"image": ["<string>"],
"response_format": "<string>",
"quality": "<string>",
"style": {},
"background": {},
"watermark": True
}
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: '<string>',
prompt: '<string>',
n: 123,
size: '<string>',
image: ['<string>'],
response_format: '<string>',
quality: '<string>',
style: {},
background: {},
watermark: true
})
};
fetch('https://magic666.top/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://magic666.top/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' => '<string>',
'prompt' => '<string>',
'n' => 123,
'size' => '<string>',
'image' => [
'<string>'
],
'response_format' => '<string>',
'quality' => '<string>',
'style' => [
],
'background' => [
],
'watermark' => true
]),
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://magic666.top/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"n\": 123,\n \"size\": \"<string>\",\n \"image\": [\n \"<string>\"\n ],\n \"response_format\": \"<string>\",\n \"quality\": \"<string>\",\n \"style\": {},\n \"background\": {},\n \"watermark\": true\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://magic666.top/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"n\": 123,\n \"size\": \"<string>\",\n \"image\": [\n \"<string>\"\n ],\n \"response_format\": \"<string>\",\n \"quality\": \"<string>\",\n \"style\": {},\n \"background\": {},\n \"watermark\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://magic666.top/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\": \"<string>\",\n \"prompt\": \"<string>\",\n \"n\": 123,\n \"size\": \"<string>\",\n \"image\": [\n \"<string>\"\n ],\n \"response_format\": \"<string>\",\n \"quality\": \"<string>\",\n \"style\": {},\n \"background\": {},\n \"watermark\": true\n}"
response = http.request(request)
puts response.read_body{
"created": 1735689600,
"data": [
{
"url": "https://.../images/doubao-img-abc123.png",
"revised_prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节"
}
]
}
{
"created": 1735689600,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"revised_prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节"
}
]
}
Doubao Seedream
Doubao Seedream 生成图像 API
使用 POST /v1/images/generations 调用 Doubao Seedream 系列图像生成接口。
POST
https://magic666.top
/
v1
/
images
/
generations
Doubao Seedream 生成图像 API
curl --request POST \
--url https://magic666.top/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"n": 123,
"size": "<string>",
"image": [
"<string>"
],
"response_format": "<string>",
"quality": "<string>",
"style": {},
"background": {},
"watermark": true
}
'import requests
url = "https://magic666.top/v1/images/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"n": 123,
"size": "<string>",
"image": ["<string>"],
"response_format": "<string>",
"quality": "<string>",
"style": {},
"background": {},
"watermark": True
}
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: '<string>',
prompt: '<string>',
n: 123,
size: '<string>',
image: ['<string>'],
response_format: '<string>',
quality: '<string>',
style: {},
background: {},
watermark: true
})
};
fetch('https://magic666.top/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://magic666.top/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' => '<string>',
'prompt' => '<string>',
'n' => 123,
'size' => '<string>',
'image' => [
'<string>'
],
'response_format' => '<string>',
'quality' => '<string>',
'style' => [
],
'background' => [
],
'watermark' => true
]),
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://magic666.top/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"n\": 123,\n \"size\": \"<string>\",\n \"image\": [\n \"<string>\"\n ],\n \"response_format\": \"<string>\",\n \"quality\": \"<string>\",\n \"style\": {},\n \"background\": {},\n \"watermark\": true\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://magic666.top/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"n\": 123,\n \"size\": \"<string>\",\n \"image\": [\n \"<string>\"\n ],\n \"response_format\": \"<string>\",\n \"quality\": \"<string>\",\n \"style\": {},\n \"background\": {},\n \"watermark\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://magic666.top/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\": \"<string>\",\n \"prompt\": \"<string>\",\n \"n\": 123,\n \"size\": \"<string>\",\n \"image\": [\n \"<string>\"\n ],\n \"response_format\": \"<string>\",\n \"quality\": \"<string>\",\n \"style\": {},\n \"background\": {},\n \"watermark\": true\n}"
response = http.request(request)
puts response.read_body{
"created": 1735689600,
"data": [
{
"url": "https://.../images/doubao-img-abc123.png",
"revised_prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节"
}
]
}
{
"created": 1735689600,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"revised_prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节"
}
]
}
Doubao Seedream 生成图像 API
Doubao Seedream 系列通过统一图像生成入口发起请求,适合文生图,也支持通过image 数组传参考图做图生图。
- 统一入口为
POST /v1/images/generations。 model传具体 Seedream 型号即可。size直接传像素尺寸字符串,例如2048x2048、2560x1440。image支持图片 URL 或 Base64 数组,适合图生图和多参考图场景。- 返回通常兼容 OpenAI Images 风格,常见为
url或b64_json。
当前可用模型
doubao-seedream-4-0-250828seedream-4-0-250828doubao-seedream-4-5-251128doubao-seedream-5-0-260128
方法与路径
POST /v1/images/generations
请求示例
curl -X POST https://magic666.top/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-0-250828",
"prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节",
"n": 1,
"size": "2048x2048"
}'
import requests
resp = requests.post(
"https://magic666.top/v1/images/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"model": "doubao-seedream-4-0-250828",
"prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节",
"n": 1,
"size": "2048x2048",
},
timeout=60,
)
print(resp.json())
const response = await fetch("https://magic666.top/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "doubao-seedream-4-0-250828",
prompt: "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节",
n: 1,
size: "2048x2048",
}),
});
console.log(await response.json());
图生图示例
{
"model": "doubao-seedream-4-5-251128",
"prompt": "保留参考图主体和氛围,重绘成更高级的广告海报",
"n": 1,
"size": "2560x1440",
"image": [
"BASE64_IMAGE_1",
"https://example.com/reference-2.png"
]
}
响应示例
{
"created": 1735689600,
"data": [
{
"url": "https://.../images/doubao-img-abc123.png",
"revised_prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节"
}
]
}
{
"created": 1735689600,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"revised_prompt": "一只可爱的小海獭,阳光下漂浮在海面,电影感,高清细节"
}
]
}
认证
Authorization: Bearer YOUR_API_KEY
Body
string
required
Doubao Seedream 模型名称。常见值包括
doubao-seedream-4-0-250828、doubao-seedream-4-5-251128、doubao-seedream-5-0-260128。string
required
生成提示词。文生图和图生图都建议显式传入。
integer
生成数量。该字段可选;建议显式传
1,便于获得稳定的返回结构。string
输出尺寸,直接传宽高像素值。Doubao 这组模型通常按固定比例映射到固定像素尺寸。
array<string> | string
可选参考图输入。支持图片链接或 Base64 数组,图生图时把参考图放进这个字段。
string
可选返回格式。常见值为
url、b64_json。若不传,最终返回格式取决于模型和渠道能力。string
质量字段。接口可接收该字段,是否生效取决于具体 Doubao 模型和渠道能力。
string | object
风格字段。接口可接收该字段,是否生效取决于具体 Doubao 模型和渠道能力。
string | object
背景控制字段。接口可接收该字段,是否生效取决于具体 Doubao 模型和渠道能力。
boolean
显式水印开关。
false 与不传语义不同:显式传 false 表示关闭水印,不传则使用默认策略。尺寸映射
Doubao 这组模型通常按宽高比映射到固定像素尺寸,可按下表使用:| 宽高比 | size 值 |
|---|---|
1:1 | 2048x2048 |
4:3 | 2304x1728 |
3:4 | 1728x2304 |
16:9 | 2560x1440 |
9:16 | 1440x2560 |
3:2 | 2496x1664 |
2:3 | 1664x2496 |
21:9 | 3024x1296 |
和 Gemini 不同,Doubao 这组接口不是传“比例枚举”,而是把比例映射成具体像素尺寸,再把该尺寸写入
size。文生图 vs 图生图
| 场景 | 关键字段 | 说明 |
|---|---|---|
| 文生图 | prompt + size | 最基础写法 |
| 图生图 | prompt + size + image | image 可放一张或多张参考图 |
Response
integer
生成时间戳。
string
返回图片 URL。
string
返回图片 Base64 数据。
string
部分上游会返回调整后的提示词。
异步调用
Doubao Seedream 系列也支持通过异步入口提交任务:POST /v1/images/generations/async
model 可以传 doubao-seedream-4-0-250828、doubao-seedream-4-5-251128 或 doubao-seedream-5-0-260128。提交成功后读取返回的 id / task_id,再通过 GET /v1/images/generations/async/{taskId} 查询状态和结果。
相关接口
⌘I