Doubao Seedream 生成图像 API
curl --request POST \
--url https://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai
/
v1
/
images
/
generations
Doubao Seedream 生成图像 API
curl --request POST \
--url https://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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://octopusx.ai/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
Doubao Seedream 模型名称。常见值包括
doubao-seedream-4-0-250828、doubao-seedream-4-5-251128、doubao-seedream-5-0-260128。生成提示词。文生图和图生图都建议显式传入。
生成数量。你给的 Apifox 将其作为必填;从现有统一图像 DTO 看,这个字段在网关里是可选指针类型。若要和当前插件行为保持一致,建议传
1。输出尺寸,直接传宽高像素值。Doubao 这组模型通常按固定比例映射到固定像素尺寸。
可选参考图输入。你给的 Apifox 定义为“图片链接或者 BASE64 数组”,当前插件也是把参考图编码成 Base64 数组后放进这个字段。
可选返回格式。常见值为
url、b64_json。若不传,最终返回格式取决于上游和网关兼容层。质量字段。统一图像 DTO 支持接收,但 Doubao 是否实际消费该字段取决于最终上游。
风格字段。统一图像 DTO 支持接收,是否生效取决于具体 Doubao 渠道。
背景控制字段。统一图像 DTO 支持接收,是否生效取决于具体 Doubao 渠道。
显式水印开关。当前统一图像 DTO 中该字段使用指针类型,
false 与不传语义不同。尺寸映射
你给的 Apifox 和插件里的DOUBAO_SIZE_MAP 一致,可按下表使用:
| 宽高比 | 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
生成时间戳。
返回图片 URL。当前插件遇到该字段时会再下载到本地。
返回图片 Base64 数据。当前插件会优先使用这个字段。
部分上游会返回调整后的提示词。
相关接口
⌘I