文章目录
一、前言
最近有幸参与了腾讯云举办的 高性能应用服务HAI
体验活动。在这个过程中,通过了解 HAI
的产品和实践,让我受益非浅,原来搭建一个大模型这么简单,在看到活动的介绍和微信群的讲解后,我马不停蹄地开始了自己摸索。今天我们要构建的应用是标签提示词应用,为什么会需要这个呢?我们发现在 SD
作图的过程中,老是需要去找各种提示词,去翻译,毕竟 SD
还不能理解中文,那能不能找很多基础的提示词,作为原子提示词,然后我们只需要通过点击提示词就构成最终的提示词,并且还能实时预览,在没遇到 HAI
之前,我还在天天折腾怎么搭建 SD
,导致应用的开发耽误了很长时间,这次使用 HAI
发现只要不到 1小时就能把整个程序构建起来
下面就来整理,分享一下我的操作和感悟,希望能够帮助到其他同学。
二、什么是高性能应用服务HAI
什么是高性能应用服务HAI?倒不如说为什么HAI会诞生,在AIGC的浪潮下,AI应用部署及使用难,中小企业、开发者望尘莫及,公司没有AI开发者该如何让AI赋能企业呢?AI开发者如何更高效地进行AI应用开发?
我们平时搭建一个AI应用往往很复杂,流程也很繁琐,像一开始需要进行:GPU
选型、驱动安装、CUDA
安装、版本兼容、软件部署扩缩策略、Linux运维、云架构搭建、数据集/模型维护… 让很多开发者望而却步,这个时候 HAI
这根救命稻草就出现了,HAI 将底层 GPU
、网络
、存储
等一系列环境都进行屏蔽,作为开发者,我们可以聚焦在业务开发上,随时可以1分钟搭建一个私人模型或私人GPU空间
高性价比云资源,按量付费,无需关心云上运维
HAI的应用场景
- AI作画
- AI对话/写作
- 数据科学
- AI开发测试
- …
HAI的使用流程
三、文章内容介绍
预览效果如下:
本次我们使用 腾讯云高性能应用服务 HAI 体验快速搭建并使用AI模型 StableDiffusion ,实现思路如下:
1、基于 高性能应用服务HAI 一键部署 StableDiffusion AIGC
2、通过 JupyterLab
链接算力进行 StableDiffusion API
的部署
3、构建SD
标签提示词应用实时获取SD图片
4、通过腾讯云 Cloud Studio
云端构建
四、基于HAI创建SD实例
HAI官方网站:https://cloud.tencent.com/act/pro/hai
,目前还处于内测阶段,想提前体验的可以申请资格喔
进入 高性能应用服务 HAI 控制台
点击 新建 选择 AI模型,参照下图进行配置
创建完成,查看相关状态
五、设置 StableDiffusionWebUI为中文
- 算力连接
HAI
可以通过多种方式进行 实例链接,如 NoteBook
、WebUI
、传统终端
等等
这里我们可以通过 HAI
提供给我们的 Gradio WebUI
进行算力连接,在线体验 SD
模型
使用 高性能应用服务HAI 部署的 StableDiffusionWebUI
配置简体中文语言包,我们需要通过 SD
中文扩展实现 Web UI
中文化
SD扩展可以在 Extension
选项卡里面通过加载官方插件列表直接安装,点击 Extension
选项卡,选择 Avaliable
子选项卡,取消勾选 localization
,再把其他勾上,然后点击 Load form
,如下图,加载插件时,请耐心等待
在输入框中查找插件关键字: zh_CN
确认插件安装完成后,重启服务
重启后,选择 Settings 中 User Interface 选项,下拉选择语言 zh_CN ,点击 Apply settings 保存设置 ,并 Reload UI 重启服务。
整个交互界面就变成中文了
六、构建SD API
我们通过 Jupyterlab
进行算力连接
进入终端后,执行以下命令开启 API
服务
cd /root/stable-diffusion-webui
python launch.py --nowebui --xformers --opt-split-attention --listen --port 7862
开启后,我们需要添加 高性能应用服务HAI
的端口配置,才能让外部网络能够顺利地访问该服务器提供的API服务
来源:0.0.0.0
协议端口:TCP:7862
配置完成后输入 服务器IP地址:端口号 /docs
可查看相关的 API
接口 swagger
使用指南
官方提供的api常用的有几个:
/sdapi/v1/txt2img 文字生图 POST
/sdapi/v1/img2img 图片生图 POST
/sdapi/v1/options 获取设置 GET | 更新设置 POST(可用来更新远端的模型)
/sdapi/v1/sd-models 获取所有的模型 GET
查看相关接口示例 ( /sdapi/v1/txt2img ) :
常用参数输入如下
{
"denoising_strength": 0,
"prompt": "puppy dogs",
"negative_prompt": "",
"seed": -1,
"batch_size": 2,
"n_iter": 1,
"steps": 50,
"cfg_scale": 7,
"width": 512,
"height": 512,
"restore_faces": false,
"tiling": false,
"sampler_index": "Euler"
}
参数描述
名称 | 说明 |
---|---|
prompt | 提示词 |
negative_prompt | 反向提示词 |
seed | 种子,随机数 |
batch_size | 每次张数 |
n_iter | 生成批次 |
steps | 生成步数 |
cfg_scale | 关键词相关性 |
width | 宽度 |
height | 高度 |
restore_faces | 脸部修复 |
tiling | 可平铺 |
sampler_index | 采样方法 |
- 通过 postman 测试一下
API
测试成功后就可以构建我们的应用进行对接了。
七、搭建标签提词平台
我们的应用核心就是解决提示词每次都需要去查找,那么有没有一些原子提示词,然后使用者只需要选择就可以呢?今天我们构建的标签组合提示词应用就是这样,通过构建多个人物部分的标签词,然后直接对接 HAI
的 SD
模型,在线选配、在线生成,
效果如下:
为了方便大家部署以及体验,我将代码已经放到github
中:https://github.com/TestsLing/ai-prompt-generator
,如果大家想自己部署的可以通过 腾讯云 cloud studio
进行一键部署:https://ide.cloud.tencent.com/
,云端IDE、云端环境,0配置直接在线预览
如果不想部署的小伙伴可以访问我的 cloud studio
预览地址:https://ecqkua-todjez-8080.app.myide.io/#/
- 进入
cloud studio
控制台,新建工作空间
仓库地址填我提供的就可以了,环境我们需要 node
,选择 18
版本,点击新建即可进入环境
- 安装项目依赖
进入之后我们需要先把依赖安装一下,执行以下命令进行依赖安装
npm install
- 预览
依赖安装完成后,就可以进行预览了,执行以下命令进行预览
npm run serve
我在预览的时候发现提示非法的主机头,只是一个安全策略,我们需要在 vue.config.js 中配置一下,因为我这里是 vue3,配置的是:
allowedHosts: 'all',
有些其他的可能是配置:
disableHostsCheck: true
配置好后,我们重新启动,执行 npm run serve
即可正常预览
- 配置 SD API 地址
为了能够正常出图,我们需要把 HAI
的 SD API
地址配置在 proxy
中,根据自己的 HAI
实例去配置即可
配置完成后,我们通过
cloud studio
的预览地址访问,发现这个时候就已经可以在线体验 SD
出图
这边通过 JupyterLab
终端也可以看到每次出图的日志信息
总结
高性能应用服务 HAI
总体体验下来还是非常不错,本来这个应用我搭建环境都得好长时间,并且也没有足够的 GPU
资源,通过 HAI
全部搞定。通过HAI
可以非常轻松地构建一个标签提取和组合提示词的应用,并实时调用StableDiffusion API
进行图像生成预览。整个部署流程非常顺畅,也不需要自己配置环境和维护模型。
HAI
为我们提供了极大的便利,使我们能更加专注于模型和业务的创新,而不用花费大量时间在基础环境和流程的配置上。我相信HAI
一定会让更多的开发者、中小企业受益。目前看只是支持的模型数是比较有限的,希望以后能支持更多的模型,还有就是在启动效率如果能更近一步做到遥遥领先那就非常完美了,期望未来的HAI能越来越好!