如何在阿里云快速启动Stable Diffusion轻松玩转AI绘画-阿里云(云淘科技)
阿里云计算巢提供了Stable Diffusion快速部署及下载自定义模型功能,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解Git、Python、Docker等技术,只需要在控制台图形界面点击几下鼠标就可以快速启动Stable Diffusion服务进行绘画,非技术同学也能轻松搞定。
什么是Stable Diffusion
Stable Diffusion Web UI 是一个基于 Stable Diffusion 的基础应用,利用 gradio 模块搭建出交互程序,可以在低代码 GUI 中立即访问 Stable Diffusion。它支持文字生成图片,图片转图片,使用各种各样的模型来达到你想要的效果,还能训练自己的专属模型。本文向您介绍如何在阿里云上快速的启动stable-diffusion服务进行AI绘画。
先看效果:
前提条件
- 已开通阿里云账号
- 确保账户余额超过100元
操作步骤
重要 使用阿里云资源,需要收费,请仔细阅读阿里云控制台的订单信息,然后再进行下一步操作。
(可选项)若想要将生成图片的结果(包括prompt等参数及生成的图片)存储到RDS,可以开启RDS插件功能。
重要 开启RDS插件配置功能,需要收费,请根据控制台提示进行选择。参数说明在创建服务实例的过程中,需要配置服务实例信息。下表介绍stable-diffusion服务实例输入参数的详细信息。
参数组 | 参数项 | 示例 | 说明 |
服务实例名称 | test | 实例的名称 | |
地域 | 部署地域 | 新加坡 | 选中服务实例的地域,因为一些模型在国内无法下载访问,建议选择中国香港或海外地域 |
可用区配置 | 部署区域 | 可用区I | 地域下的不同可用区域 |
付费类型配置 | 付费类型 | 按量付费 或 包年包月 | |
ECS实例配置 | 实例类型 | ecs.gn6i-c4g1.xlarge | 实例规格,可以根据实际需求选择 |
ECS实例配置 | 实例密码 | 设置实例密码。长度8,30个字符,必须包含三项(大写字母、小写字母、数字、()`!@#$%^&*-+={}[]:;’,.?/ 中的特殊符号) | |
登录信息 | 软件登录名 | admin | 设置软件登录名,默认为admin |
登录信息 | 软件登录名密码 | 设置软件登录密码 | |
网络配置 | 专有网络IPv4网段 | 192.168.0.0/16 | VPC的ip地址段范围 |
网络配置 | 交换机子网网段 | 192.168.0.0/24 | 交换机子网网段 |
登录信息 | 软件登录名 | admin | 软件登录名称 |
登录信息 | 软件登录密码 | 设置实例密码。长度830个字符,必须包含三项(大写字母、小写字母、数字、()`!@#$%^&*-+={}[]:;’,.?/ 中的特殊符号) | |
RDS插件配置 | 开启RDS插件 | true | 是否开启RDS插件,默认开启,如不需要可关闭 |
RDS实例配置 | 实例规格 | mysql.n2.medium.1 | RDS数据库实例规格,根据实际需求选择(优惠ing) |
RDS实例配置 | 实例存储 | 20 | RDS数据库存储空间,默认20GB(优惠ing) |
RDS实例配置 | 数据库账号 | rdsuser | RDS数据库的访问账号名 |
RDS实例配置 | 数据库密码 | RDS数据库的访问密码,可登录数据库查看AI数据 |
点击去列表页查看,可以看到刚刚创建的服务实例以及服务部署进度。
等待状态变为”已部署”后,点击详情,进入对应的服务实例后,可以在页面上获取Endpoint以访问服务。
点击Endpoint后面的链接,输入第1步设置的软件登录名及密码。
下载模型
CHECKPOINT模型示例:
Lora模型示例:
注意:CHECKPOINT、LORA、VAE三种方式不需要输入存储目录,其他模型可在模型类型选择“OTHER”, 自行修改文件存储目录:
参数输入完成后,点击下一步。
等待下载完成(等待过程中也可以继续下载其他模型),当执行状态变为成功,表示已经下载完成。
CHECKPOINT模型示例:
点击上面的刷新按钮,就可以看到我们刚刚下载的CHECKPOINT模型了。
Lora模型:点击右面Lora按钮,然后点击Refresh,此时就可以看到我们刚刚下载的Lora模型了。在这里我们可以看到,直接下载模型的没有预览图的,此时可以通过上述下载方式自行上传一张图片到模型文件中,这里以上传本地文件的Lora模型预览图为例。依次点击确定、创建,等待执行状态变为成功。再次点击Refresh,可以看到,预览图也已经加载出来啦!
如何节约成本
ECS节约成本
GPU资源费用较高,使用完毕后可以通过下述两种方式来节省成本:
注意:此模式可能关机再开机后公网IP可能发生变化,若原IP地址访问不了可在详情-资源选项中查看IP地址进行访问。
关机:
等待关机结束:
开机:
等待开机结束:
高级功能
API访问
通过计算巢创建的Stable Diffusion默认开启了API访问,您可以通过API调用来更好地集成我们的服务。
通过上述步骤4中获取的Endpoint+/docs# 可以看到所有可访问的API列表,如访问 http://48.xxx.xx.163:8080/docs# 可以看到
以下是一个通过Python调用Stable Diffusion API的示例:import requests
import io
import base64
from PIL import Image, PngImagePlugin
if __name__ == ‘__main__’:
url = “http://48.xxx.xx.163:8080”
payload = {
“prompt”: “puppy dog”,
“steps”: 5
}
token = “admin:password”
encoded_token = base64.b64encode(token.encode(“utf-8”)).decode(“utf-8”)
headers = {
“Content-Type”: “application/json”,
“Authorization”: f’Basic {encoded_token}’
}
response = requests.post(url=f'{url}/sdapi/v1/txt2img’, json=payload, headers=headers)
r = response.json()
for i in r[‘images’]:
image = Image.open(io.BytesIO(base64.b64decode(i.split(“,”, 1)[0])))
png_payload = {
“image”: “data:image/png;base64,” + i
}
response2 = requests.post(url=f'{url}/sdapi/v1/png-info’, json=png_payload)
pnginfo = PngImagePlugin.PngInfo()
pnginfo.add_text(“parameters”, response2.json().get(“info”))
image.save(‘output.png’, pnginfo=pnginfo)更多API访问信息可查看API访问向导了解
启用RDS持久化AI数据
好不容易生成的prompt和图片还有参数, 都是关键数据不能丢。可以启用RDS持久化AI数据功能,将这些关键数据持久化存储在RDS中,以便后续更加方便的查询和使用这些数据, RDS数据库服务在数据可靠性和可用性上都有高保障。
配置步骤:
前提:需要保证快速启动步骤1中开启了RDS插件
现在这些关键数据已经保存到RDS了,接下来我们看一下如何查询刚刚保存的数据,一共有两种方式:
CREATE TABLE `generated_images` (
`id` int PRIMARY KEY AUTO_INCREMENT, /*id*/
`prompt` text, /*图片生成的 prompt */
`negative_prompt` text, /*图片生成的 negative_prompt */
`steps` varchar(255) DEFAULT NULL, /*图片生成的 steps */
`seed` varchar(255) DEFAULT NULL, /*图片生成的 seed */
`sampler` varchar(255) DEFAULT NULL, /*图片生成的 sampler */
`cfg_scale` varchar(255) DEFAULT NULL, /*图片生成的 cfg_scale */
`size` varchar(255) DEFAULT NULL, /*图片生成的 size,例如 512×512 */
`model_hash` varchar(255) DEFAULT NULL, /*图片生成的 model 的 hash 值 */
`model` varchar(255) DEFAULT NULL, /*图片生成的 model */
`image_base64` mediumtext, /*图片数据,base64格式 */
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
了解更多
- 本文通过计算巢服务完成了StableDiffusion的快速部署,什么是计算巢服务?计算巢是一个开放给企业应用服务商、IT集成服务商、交付服务商、管理服务提供商(以上都统称为服务商)和最终用户的服务管理PaaS平台。服务商能通过计算巢服务更好地在阿里云上部署服务、交付服务及管理服务。最终用户能通过计算巢管理在阿里云上订阅的各类服务商提供的服务。计算巢为服务商和用户提供了更高效、便捷、安全的服务使用体验。点击计算巢服务官方文档了解更多。
- 本文通过运维编排服务完成了模型的快速下载,什么是运维编排服务?运维编排服务(简称OOS)是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,也可提供重要运维场景的审批、通知等功能。点击运维编排服务官方文档了解更多。
参考资料
计算巢服务官方文档运维编排服务官方文档
用户反馈
感谢您对我们产品的使用和支持!我们非常重视用户的反馈,现诚邀您填写计算巢Stable Diffusion用户反馈。问卷填写大概需要花费您5分钟。非常欢迎您给我们提意见,产品团队会认真评估每一条建议,后续为您提供更好的服务!
发表评论