火山豆包 即梦4 文生图 一次多图 API 文档
简介
seedream 是一个专注于从文本描述生成高质量图像的高效模型。它以较低的成本和快速的生成速度为特点,特别适合需要批量生成各类创意图片的场景。
即梦4 组图 官方文档
即梦4:https://www.volcengine.com/docs/82379/1824121
模型名称
doubao-seedream-4-0-250828
POST 请求方法
请求地址
POST https://www.dmxapi.cn/v1/images/generations请求头
Authorization: Bearer sk-************************************
Content-Type: application/json请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定值:doubao-seedream-4-0-250828 |
| prompt | string | 是 | 图片生成的文本描述 |
| n | integer | 否 | 生成图片数量,默认为1,最大为4 |
| response_format | string | 否 | 返回格式,可选值:url(默认)、b64_json |
| image | array | 否 | 参考图片URL列表,最多支持2张参考图 |
请求示例
json
{
"model": "doubao-seedream-4-0-250828",
"prompt": "画三张图片,女孩和奶牛玩偶在游乐园开心地坐过山车的图片,涵盖早晨、中午、晚上",
"n": 3,
"response_format": "url",
"image": [
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_imagesToimages_1.png",
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_imagesToimages_2.png"
]
}响应格式
json
{
"object": "list",
"data": [
{
"url": "https://example.com/generated_image_1.png"
},
{
"url": "https://example.com/generated_image_2.png"
},
{
"url": "https://example.com/generated_image_3.png"
}
],
"created": 1234567890
}Python调用示例
python
# 导入必要的库
import requests # 用于发送HTTP请求
import json # 用于处理JSON数据
import os # 用于文件和目录操作
from datetime import datetime # 用于获取当前时间
# DMXAPI图像生成接口的URL
url = "https://www.dmxapi.cn/v1/images/generations"
# API密钥,用于身份验证
API_KEY = "sk-************************************" # 改成你的 DMXAPI 令牌
# 构建请求参数
payload = {
"model": "doubao-seedream-4-0-250828", # 指定使用的AI模型
"n": 3, # 生成图片数量
"prompt": "画三张图片,女孩和奶牛玩偶在游乐园开心地坐过山车的图片,涵盖早晨、中午、晚上", # 图片生成提示词
"response_format": "url", # 返回图片的格式,可以是 url 或 b64_json
"image": [ # 参考图片URL列表
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_imagesToimages_1.png", # 参考图1
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_imagesToimages_2.png", # 参考图2
],
}
# 设置请求头,包含授权信息和内容类型
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
# 发送POST请求到DMXAPI
response = requests.post(url, headers=headers, json=payload)
# 打印API的原始响应内容
print("API响应:", response.text)
# 解析JSON响应并处理图片下载
try:
# 将响应文本解析为JSON格式
response_data = response.json()
# 检查响应中是否包含图片数据
if "data" in response_data:
# 创建output目录(如果不存在)
output_dir = "output"
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 获取当前时间戳,用于生成唯一的文件名
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# 遍历响应中的每张图片数据
for i, image_data in enumerate(response_data["data"]):
# 获取图片的URL
image_url = image_data["url"]
try:
# 下载图片
img_response = requests.get(image_url)
img_response.raise_for_status() # 如果请求失败会抛出异常
# 生成带时间戳的文件名
filename = f"generated_image_{timestamp}_{i+1}.png"
filepath = os.path.join(output_dir, filename)
# 以二进制模式保存图片文件
with open(filepath, 'wb') as f:
f.write(img_response.content)
print(f"图片 {i+1} 已保存: {filepath}")
except requests.exceptions.RequestException as e:
# 处理图片下载过程中的网络错误
print(f"下载图片 {i+1} 失败: {e}")
# 显示总结信息
print(f"\n总共保存了 {len(response_data['data'])} 张图片到 {output_dir} 目录")
else:
# 如果响应中没有图片数据
print("响应中没有找到图片数据")
except json.JSONDecodeError as e:
# 处理JSON解析错误
print(f"解析JSON响应失败: {e}")
except Exception as e:
# 处理其他可能的异常
print(f"处理响应时出错: {e}")