【腾讯云HAI域探秘】构建SD绘画标签组合提示词应用

在这里插入图片描述

一、前言

最近有幸参与了腾讯云举办的 高性能应用服务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 可以通过多种方式进行 实例链接,如 NoteBookWebUI传统终端等等
在这里插入图片描述
这里我们可以通过 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 测试成功后就可以构建我们的应用进行对接了。

七、搭建标签提词平台

我们的应用核心就是解决提示词每次都需要去查找,那么有没有一些原子提示词,然后使用者只需要选择就可以呢?今天我们构建的标签组合提示词应用就是这样,通过构建多个人物部分的标签词,然后直接对接 HAISD 模型,在线选配、在线生成,

效果如下:
在这里插入图片描述在这里插入图片描述
为了方便大家部署以及体验,我将代码已经放到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 地址

为了能够正常出图,我们需要把 HAISD API 地址配置在 proxy 中,根据自己的 HAI 实例去配置即可

在这里插入图片描述配置完成后,我们通过 cloud studio 的预览地址访问,发现这个时候就已经可以在线体验 SD 出图

在这里插入图片描述

这边通过 JupyterLab 终端也可以看到每次出图的日志信息
在这里插入图片描述

总结

高性能应用服务 HAI 总体体验下来还是非常不错,本来这个应用我搭建环境都得好长时间,并且也没有足够的 GPU 资源,通过 HAI 全部搞定。通过HAI 可以非常轻松地构建一个标签提取和组合提示词的应用,并实时调用StableDiffusion API进行图像生成预览。整个部署流程非常顺畅,也不需要自己配置环境和维护模型。

HAI为我们提供了极大的便利,使我们能更加专注于模型和业务的创新,而不用花费大量时间在基础环境和流程的配置上。我相信HAI一定会让更多的开发者、中小企业受益。目前看只是支持的模型数是比较有限的,希望以后能支持更多的模型,还有就是在启动效率如果能更近一步做到遥遥领先那就非常完美了,期望未来的HAI能越来越好!

猜你喜欢

转载自blog.csdn.net/qq_24694139/article/details/134187332