图像预览生成驱动说明(image_preview_common_v1)
概述
对应驱动实现了兼容第三方图像生成模型原生 API 格式的通用供应商驱动,用于调用多个图像预览生成模型。
特性
- 同步接口:直接返回结果,无需轮询状态
- Base64 图片输入:支持将图片编码为 base64 格式上传
- 宽高比控制:支持
9:16、16:9、1:1、3:4、4:3、21:9、1:4、4:1、1:8、8:1 - 清晰度控制:支持
1K、2K、4K - 多图输入:支持逗号分隔的多个图片 URL
- 多模型支持:根据任务类型自动选择对应的图像生成模型
- 格式兼容:同时支持驼峰格式(inlineData)和下划线格式(inline_data)
- 多站点支持:支持 site_0(官方固定站点)到 site_5 共 6 个聚合站点(第三方服务配置项,详见配置文件)
配置
Site 0(官方固定站点)
在 config.yml 中添加以下配置:
api_aggregator:
site_0:
base_url: "<官方地址>" # 官方固定站点,base_url 不可修改
api_key: "<your_api_key>" # API Key
name: "官方站点"
Site 1-5(自定义聚合站点)
api_aggregator:
site_1:
base_url: "https://xxx.ai" # API 基础 URL(根据实际中转站配置)
api_key: "<your_api_key>" # API Key
name: "自定义名称"
API 格式
请求格式
{
"contents": [
{
"role": "user",
"parts": [
{"text": "生成一张美丽的风景图"},
{"inlineData": {"mimeType": "image/jpeg", "data": "base64_data"}}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "9:16",
"imageSize": "1K"
}
}
}
响应格式
{
"candidates": [{
"content": {
"parts": [{
"inlineData": {
"mimeType": "image/png",
"data": "base64_result_image"
}
}]
}
}]
}
使用示例
# 实例化对应驱动(站点 0 - 官方固定站点)
driver = ImagePreviewDriver(site=0)
# 提交任务(同步返回结果)
result = driver.submit_task(ai_tool)
if result['success']:
# 同步接口直接返回结果
image_url = result['result_url'] # data:image/png;base64,xxx 或缓存URL
站点实现
| 站点 | 说明 |
|---|---|
| site_0 | 官方固定站点,base_url 固定(见配置文件) |
| site_1 | 自定义聚合站点 1 |
| site_2 | 自定义聚合站点 2 |
| site_3 | 自定义聚合站点 3 |
| site_4 | 自定义聚合站点 4 |
| site_5 | 自定义聚合站点 5 |
各站点对应一个驱动实现类(对应驱动),由驱动工厂统一注册。
文件列表
| 文件 | 说明 |
|---|---|
| 图像预览生成驱动实现文件 | 驱动实现 |
| 对应驱动集成测试文件 | 单元测试 |
| 统一配置文件 | 驱动常量定义(对应枚举) |
| 驱动工厂 | 驱动注册 |
运行测试
python -m unittest <对应驱动集成测试模块> -v
参考文档
- 第三方图像生成服务的图片生成官方文档(详见供应商文档)
- API 端点格式:
/v1beta/models/{model_name}:generateContent