Skip to content

火山豆包 即梦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

请求参数

参数名类型必填说明
modelstring模型名称,固定值:doubao-seedream-4-0-250828
promptstring图片生成的文本描述
ninteger生成图片数量,默认为1,最大为4
response_formatstring返回格式,可选值:url(默认)、b64_json
imagearray参考图片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}")

一个 Key 用全球大模型