support pai zh model
本项目提供了基于PAI-EAS的diffusers api 云服务实现。
经PAI-Blade优化后,显著提升模型推理性能: (A10 显卡) | image size | sample steps | Time of Pytorch(s) | Time of PAI-Blade(s) | speedup | Pytorch memory(GB) | PAI-Blade memory(GB) | | ————– | —————- | ———————- | ———————— | ———– | ———————- | ———————— | | 1024x1024 | 50 | OOM | 14.36 | - | OOM | 5.98 | | 768x768 | 50 | 14.88 | 6.45 | 2.31X | 15.35 | 5.77 | | 512x512 | 50 | 6.14 | 2.68 | 2.29X | 6.98 | 5.44 |
您可以参考本项目实现:
直接基于本项目提供镜像,在PAI-EAS上部署已支持功能的服务。已支持的主流功能如下:
(在服务部署时通过指定–func_name 进行不同类型的服务部署)
参考项目源码,快速进行二次开发,部署实现任意的diffusers api服务。
基于PAI-Blade 进行推理优化
扩展和兼容diffusers API和Web UI,以适配社区可下载的模型
基于PAI-EAS,提供异步推理及弹性调度能力
内置翻译模型,支持中/英文prompt输入
简单的API实现,方便进行二次开发
⚠️ 项目提供了EAS上部署SD model服务的自定义实践,对SD-WebUI具有一定的兼容性,相比SD-WebUI的api更适合二次开发。
您亦可参考WebUI使用文档,在PAI-EAS部署基于SDWEBUI的前/后端服务。
PAI-SDWEBUI解决方案为您提供了:
您可使用预置镜像或通过Dockerfile自行搭建。(目前Blade推理优化仅支持A10/A100显卡,及PAI上推出的GU系列显卡)
# EAS部署时 根据您所部署服务的region的不同 region可替换为hangzhou/shanghai等 该镜像下载自带加速 服务部署快 eas-registry-vpc.cn-{region}.cr.aliyuncs.com/pai-eas/diffuser-inference:2.2.1-py38-cu113-unbuntu2004-blade-public # 公开镜像 registry.cn-shanghai.aliyuncs.com/pai-ai-test/eas-service:2.2.1-py38-cu113-unbuntu2004-blade-public
自定义processor开发
您可修改预测服务主文件app.py 进行自定义processor的开发。这里我们简单梳理本服务的流程,便于您进行二次开发。
更多PAI-EAS的自定义processor开发请参考官方文档。
本地服务部署测试可直接运行 (更多命令参数请参考 部署文档 的详细说明)
# 使用 --local_debug 开启本地测试 # 本地测试时 --model_dir 指定模型位置 --save_dir 指定出图位置 (EAS部署时 通过json挂载指定,无需额外输入) # 本地测试时 --oss_save_dir --region参数用于生成保存的oss链接,可忽略(任意输入) # --func_name base/controlnet # 本地调试请加入 export BLADE_AUTH_USE_COUNTING=1 我们提供了一定次数的试用权限。您可再PAI上无限次使用PAI-Blade推理优化。 python /home/pai/app.py --func_name base --oss_save_dir oss://xxx --region hangzhou --model_dir=your_path_to_model --save_dir=your_path_to_output --use_blade --local_debug
接口定义:param.md
同步调用:
base服务调用:sync_example_base.py
controlnet服务调用:sync_example_control.py
异步调用:
对于aigc而言,通常推理时间较长,同步返回结果易超时。
可部署EAS异步服务,调用时分别 发送请求 和 订阅结果。
"metadata": { "type": "Async" },
以python SDK为例,可参考以下脚本,更多EAS异步推理SDK见:参考文档
发送请求:async_example_post.py
订阅结果:async_example_get.py
⚠️:异步推理暂时不支持使用base64进行图像返回。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
Service for diffusers api
项目概述
本项目提供了基于PAI-EAS的diffusers api 云服务实现。
经PAI-Blade优化后,显著提升模型推理性能: (A10 显卡) | image size | sample steps | Time of Pytorch(s) | Time of PAI-Blade(s) | speedup | Pytorch memory(GB) | PAI-Blade memory(GB) | | ————– | —————- | ———————- | ———————— | ———– | ———————- | ———————— | | 1024x1024 | 50 | OOM | 14.36 | - | OOM | 5.98 | | 768x768 | 50 | 14.88 | 6.45 | 2.31X | 15.35 | 5.77 | | 512x512 | 50 | 6.14 | 2.68 | 2.29X | 6.98 | 5.44 |
功能概览
您可以参考本项目实现:
直接基于本项目提供镜像,在PAI-EAS上部署已支持功能的服务。已支持的主流功能如下:
(在服务部署时通过指定–func_name 进行不同类型的服务部署)
参考项目源码,快速进行二次开发,部署实现任意的diffusers api服务。
Features
基于PAI-Blade 进行推理优化
扩展和兼容diffusers API和Web UI,以适配社区可下载的模型
基于PAI-EAS,提供异步推理及弹性调度能力
内置翻译模型,支持中/英文prompt输入
简单的API实现,方便进行二次开发
WebUI
⚠️ 项目提供了EAS上部署SD model服务的自定义实践,对SD-WebUI具有一定的兼容性,相比SD-WebUI的api更适合二次开发。
您亦可参考WebUI使用文档,在PAI-EAS部署基于SDWEBUI的前/后端服务。
PAI-SDWEBUI解决方案为您提供了:
快速开始
Step1: 环境搭建。
您可使用预置镜像或通过Dockerfile自行搭建。(目前Blade推理优化仅支持A10/A100显卡,及PAI上推出的GU系列显卡)
Step2: 服务开发/部署。
自定义processor开发
您可修改预测服务主文件app.py 进行自定义processor的开发。这里我们简单梳理本服务的流程,便于您进行二次开发。
更多PAI-EAS的自定义processor开发请参考官方文档。
本地服务部署测试可直接运行 (更多命令参数请参考 部署文档 的详细说明)
Step3: 服务调用。
接口定义:param.md
同步调用:
base服务调用:sync_example_base.py
controlnet服务调用:sync_example_control.py
异步调用:
对于aigc而言,通常推理时间较长,同步返回结果易超时。
可部署EAS异步服务,调用时分别 发送请求 和 订阅结果。
以python SDK为例,可参考以下脚本,更多EAS异步推理SDK见:参考文档
发送请求:async_example_post.py
订阅结果:async_example_get.py
⚠️:异步推理暂时不支持使用base64进行图像返回。