本文旨在解决豆包大模型视觉模型生成的图片能够友好的全链路使用,解决用户在使用中的调用、存储、分发、后处理相关的问题。
使用最佳实践底层的能力和模型均由 火山方舟 提供,因为提供的能力、效果均由对齐火山方舟 视觉模型 的效果,并基于该模型做了能力扩展。
能力扩展对比
类型 | 能力对比 | 直接调用豆包 API | veImageX-豆包 AIGC 生图 |
---|---|---|---|
Doubao-文生图模型-智能绘图 | 通用 2.0L-文生图(CVProcess) | ✅ | ✅ |
通用 2.0S-文生图(HighAesSmartDrawing) | ✅ | ✅ | |
通用 XL pro-文生图(Text2ImgXLSft) | ✅ | ✅ | |
通用 1.4-文生图(CVProcess) | ✅ | ✅ | |
通用 1.3-文生图(HighAesSmartDrawing) | ✅ | ✅ | |
通用 1.2-文生图(HighAesSmartDrawing) | ✅ | ✅ | |
动漫 1.3.X-文生图/图生图(CVProcess) | ✅ | ✅ | |
通用XL pro-图生图(Img2ImgXLSft) | ✅ | ✅ | |
通用 2.0S-角色特征保持(CVProcess) | ✅ | ✅ | |
通用 1.4-角色特征保持(CVProcess) | ✅ | ✅ | |
单图写真(pv版)(HighAesSmartDrawing) | ✅ | ✅ | |
outpainting智能扩图(Img2ImgOutpainting) | ✅ | ✅ | |
通用 2.0L-指令编辑(SeedEdit)(CVProcess) | ✅ | ✅ | |
✅ | ✅ | ||
✅ | ✅ | ||
✅ | ✅ | ||
AIGC 图像风格化(CVProcess) | ✅ | ✅ | |
人像保持同步(CVProcess) | ✅ | ✅ | |
✅ | ✅ | ||
调用形式 | API | API+SDK | |
数据流传输 | 公网下载,再上传 | 通过内网直接存入 veImageX 存储中 | |
扩展能力 | 无损压缩存储 | - | ✅ |
常规存储存储 | - | ✅ | |
压缩分发 | - | ✅ | |
盲水印 | - | ✅ | |
智能人像裁剪 | - | ✅ | |
智能超分辨率 | - | ✅ | |
水印添加 | - | ✅ | |
智能审核 | - | ✅ | |
画质增强 | - | ✅ | |
输入限制 | 输入的图片体积 | - | 单图扩展到 35MB,使用时会转码 |
输入的图片分辨率 | - | 超额分辨率会做前处理 | |
输出限制 | 输出限制 |
| 返回 veImageX 的永久 URL 和存储 URI |
通过 veImageX 提供的 OpenAPI 调用 Doubao 大模型的过程中,传入的大模型参数几乎完全透传。
每次调用 API 仅会生成 1 张图,如需获取多张图,请分批调用接口。
在正式开始使用前,您还需要在 veImageX 侧提前获取以下信息。
tplv-xxxxxxx-6.image
。在调用前,您已参考操作准备在 veImageX 侧获取到了以下配置信息。
ak=ak sk=sk Domain=imagex.example.com // 仅为示例 ServiceId=n9xxxxxxxz3 // 仅为示例 Template=tplv-n9xxxxxxxz3-69.jpeg // 仅为示例
各模型的调用示例如下。
# coding:utf-8 from volcengine.imagex.v2.imagex_service import ImagexService if __name__ == '__main__': service = ImagexService() service.set_socket_timeout(30) # 设置请求超时时间 service.set_ak('ak') # 传入账号的 AK service.set_sk('sk') # 传入账号的 SK query = { # 以下为火山引擎 veImageX 获取到的配置 # 参数 ServiceId,表示 veImageX 的服务 ID,需要为图像处理服务,可参考操作准备获取 'ServiceId': 'n9xxxxxxxz3' } body = { # 以下为火山引擎 veImageX 获取到的配置 # 参数 Domain,表示 veImageX 的服务下的域名,可参考操作准备获取 # 参数 Template,表示 veImageX 的图片处理模板配置,可参考操作准备获取 # 参数 Outputs,表示自定义的结果图文件名 "Domain": "imagex.example.com", "Template": "tplv-n9xxxxxxxz3-69.jpeg", "Outputs": [ "demo1.png" ], # 以下是火山方舟豆包 API 的参数,SDK 会进行透传 # 参数 ModelAction,表示所用豆包 API 的接口 Action,同步类型的取值有: # 1. CVProcess:[通用 2.0L-文生图](https://www.volcengine.com/docs/6791/1339374),[通用 1.4-文生图](https://www.volcengine.com/docs/6791/1278096),[动漫 1.3.X-文生图/图生图](https://www.volcengine.com/docs/6791/1213131)、[通用 2.0S-角色特征保持](https://www.volcengine.com/docs/6791/1361423)、[通用 1.4-角色特征保持](https://www.volcengine.com/docs/6791/1354010)、[通用 2.0L-指令编辑(SeedEdit)](https://www.volcengine.com/docs/6791/1384311) # 2. HighAesSmartDrawing:[通用 2.0S-文生图](https://www.volcengine.com/docs/6791/1333839),[通用 1.3-文生图](https://www.volcengine.com/docs/6791/1213132),[通用 1.2-文生图](https://www.volcengine.com/docs/6791/1213130)、[单图写真(pv版)](https://www.volcengine.com/docs/6791/1213737) # 3. Text2ImgXLSft:[通用 XL pro-文生图](https://www.volcengine.com/docs/6791/1330195) # 4. Img2ImgOutpainting:[outpainting智能扩图](https://www.volcengine.com/docs/6791/1223722) # 5. Img2ImgXLSft:[通用XL pro-图生图](https://www.volcengine.com/docs/6791/1330203) # 参数 ModelVersion,表示所用豆包 API 的接口 Version,取值固定为 2022-08-31 # 参数 ReqJson,表示所用豆包 API 的接口的请求参数。需要根据对应接口文档参数描述进行传值,每个接口各不相同。 "ModelVersion": "2022-08-31", "ModelAction": "CVProcess", "ModelVersion": "2022-08-31", "ReqJson": { "req_key": "high_aes_general_v20_L", "prompt": "雨后,出现一道彩虹,飞过一群鸟儿" }, } resp = service.get_cv_text_generate_image(query, body) print(resp)
# coding:utf-8 from volcengine.imagex.v2.imagex_service import ImagexService if __name__ == '__main__': service = ImagexService() service.set_socket_timeout(30) # 设置请求超时时间 service.set_ak('ak') # 传入账号的 AK service.set_sk('sk') # 传入账号的 SK query = { # 以下为火山引擎 veImageX 获取到的配置 # 参数 ServiceId,表示 veImageX 的服务 ID,需要为图像处理服务,可参考操作准备获取 'ServiceId': 'n9xxxxxxxz3' } body = { # 以下为火山引擎 veImageX 获取到的配置 # 参数 Domain,表示 veImageX 的服务下的域名,可参考操作准备获取 # 参数 Template,表示 veImageX 的图片处理模板配置,可参考操作准备获取 # 参数 Outputs,表示自定义的结果图文件名 "Domain": "imagex.example.com", "Template": "tplv-n9xxxxxxxz3-69.jpeg", "ImageUrl": "http://test.img.com/A.png", "Outputs": [ "demo2.png" ], # 以下是火山方舟豆包 API 的参数,SDK 会进行透传 # 参数 ModelAction,表示所用豆包 API 的接口 Action,取值固定为 CVProcess # 参数 ModelVersion,表示所用豆包 API 的接口 Version,取值固定为 2022-08-31 # 参数 ReqJson,表示所用豆包 API 的接口的请求参数。需要根据对应接口文档参数描述进行传值,每个接口各不相同。 "ModelAction": "CVProcess", "ModelVersion": "2022-08-31", "ReqJson": { "req_key": "img2img_water_ink_style", "image_urls": [ "http://test.img.com/B.jpeg"] } } resp = service.get_cv_image_generate_result(query, body) print(resp)
说明
“Doubao-文生图模型“为模型名称,本章节列举的功能实际使用了模型的图生图能力。
# coding:utf-8 from volcengine.imagex.v2.imagex_service import ImagexService if __name__ == '__main__': service = ImagexService() service.set_socket_timeout(30) # 设置请求超时时间 service.set_ak('ak') # 传入账号的 AK service.set_sk('sk') # 传入账号的 SK query = { # 以下为火山引擎 veImageX 获取到的配置 # 参数 ServiceId,表示 veImageX 的服务 ID,需要为图像处理服务,可参考操作准备获取 'ServiceId': 'n9xxxxxxxz3' } } body = { # 以下为火山引擎 veImageX 获取到的配置 # 参数 Domain,表示 veImageX 的服务下的域名,可参考操作准备获取 # 参数 Template,表示 veImageX 的图片处理模板配置,可参考操作准备获取 # 参数 Outputs,表示自定义的结果图文件名 "Domain": "imagex.example.com", "Template": "tplv-n9xxxxxxxz3-69.jpeg", "Outputs": [ "demo3.png" ], # 以下是火山方舟豆包 API 的参数,SDK 会进行透传 # 参数 ModelAction,表示所用豆包 API 的接口 Action,同步类型的取值固定为 CVProcess # 参数 ModelVersion,表示所用豆包 API 的接口 Version,取值固定为 2022-08-31 # 参数 ReqJson,表示所用豆包 API 的接口的请求参数。需要根据对应接口文档参数描述进行传值,每个接口各不相同。 "ModelAction": "CVProcess", "ModelVersion": "2022-08-31", "ReqJson": { "req_key": "img2img_anime_accelerated_maintain_id_for_smart_drawing_anime", "image_urls": ["http://test.img.com/A.png"] } } resp = service.get_cv_anime_generate_image(query, body) print(resp)
veImageX 提供了多种语言的服务端 SDK,具体如下所示:
您可通过设置超时时间来处理,以下为各语言设置超时的代码:
service.set_socket_timeout(30)
instance.Client.SetTimeout(30)
instance.setSocketTimeout(30)
const res = await Client.GetCVTextGenerateImage(requestParam, params:{timeout: 30})