方案概览
当您想要独立部署和使用Stable Diffusion,您可能面临显卡成本高、购买难、并发处理能力有限以及多模型切换难等问题。函数计算推出了Stable Diffusion API Serverless版解决方案,帮助您通过函数计算快速部署基于Stable Diffusion模型的AI服务。使用本方案可以充分利用Stable Diffusion和Serverless技术优势,为开发者在AI绘画和其他AI应用领域的创新和商业化提供支持。
为了便于用户直观体验Stable Diffusion Serverless API解决方案的效果,函数计算团队基于此方案搭建了一个AI 艺术字创作应用,供用户快速体验生成AI艺术字。
本方案的技术架构包括以下基础设施和云服务:
函数计算:用于提供Stable Diffusion模型的应用服务,提供GPU和CPU算力。
对象存储 OSS:用于存储Serverless API生成的图像。
表格存储 Tablestore:用于存储异步队列信息。
专有网络 VPC:用于配置专有网络,让函数计算通过私网安全的访问文件存储 NAS。
文件存储 NAS:用于存储共享配置和Stable Diffusion模型。
部署Stable Diffusion Serverless API
登录函数计算3.0控制台,在左侧导航栏,单击应用。
当右上角显示返回函数计算2.0时,表示当前控制台为3.0控制台。
在应用页面,单击创建应用,选择通过模板创建应用,在人工智能页签下找到AI 数字绘画 Stable Diffusion,光标移至该卡片,然后单击立即创建。
在创建应用页面,设置以下配置项,然后单击创建应用。
重点配置项说明如下,如果您没有特殊要求,其余配置项保持默认值即可。
配置项名称
说明
示例值
配置项名称
说明
示例值
角色名
创建应用所需的权限。首次创建应用的用户,需要单击前往授权创建AliyunFCServerlessDevsRole角色。
AliyunFCServerlessDevsRole
地域
创建应用所在的地域。
由于当前模板涉及GitHub以及HuggingFace等网站访问,国内部分地域可能无法直接使用。
华东1(杭州)
命名空间
设置命名空间名称。如果您第一次创建Stable Diffusion应用,使用默认值即可;如果非第一次创建Stable Diffusion应用,建议手动设置命名空间名称,便于和其他应用区分。
sd-api
镜像选择
按需选择绘图风格,本文以艺术字为例。
艺术字
在弹出的对话框,仔细阅读应用创建提醒信息,勾选涉及的计费项和我已经了解上面的内容,并同意上述描述,然后单击同意并继续部署。
部署完成后,页面自动跳转到应用详情页。
在应用详情页,单击Serverless API页签,单击初始化 Serverless API,在弹出的对话框,根据界面提示确认已开通对应产品,勾选我已阅读,并了解上述创建资源的目的以及部分资源可能产生的费用。我已知晓对应的计费规则,并决定继续部署该应用,然后单击下一步。
在初始化Serverless API对话框,确认角色AliyunFCServerlessDevsRole的权限满足条件,勾选启用Serverless API复选框,配置Tablestore实例和OSS实例,然后单击确认。
如果您的账号下未创建过Tablestore实例和OSS实例,可选择自动创建。
初始化Serverless API大约需要30~40秒。
在应用详情页面,单击Serverless API页签,复制Serverless API域名用于后续调用API实现AI绘画或其他AI应用领域的创作。
使用Serverless API进行创作
方式一:部署API
Stable Diffusion API Serverless版支持非推理类和推理类两类API接口,您可以通过多种方式部署并调用这些接口实现不同的功能。
非推理类接口:用于结果和进度查询、模型管理、应用重启等。例如获取模型列表接口
/models
。推理类接口:用于实现文生图、图生图、图片放大等。例如文生图接口
/txt2img
和图生图接口/img2img
。
更多支持的API列表及更多信息,请参见Stable Diffusion API Serverless版支持的API详情。
使用该方式前,需先初始化模型管理,具体操作,请参见创建自己的模型库并自定义模型。
本文以使用Postman工具部署并调用接口/txt2img
为例,进行演示如何基于Stable Diffusion API Serverless版实现AI的创作。
在Postman工具界面,填写步骤7复制的域名,并拼接接口/txt2img,选择请求方式POST,填写Body内容,然后单击Send。
Body的示例如下所示,更多参数设置,请参见api.yaml。
{ "stable_diffusion_model": "sd-v1-5-inpainting.ckpt", // 选择sd主模型 "prompt": "Mountain landscape during sunset", // 设置提示词 "negative_prompt": "Avoid mountains" // 设置反向提示词 }
出图完成后,下方返回结果中返回图片的URL,你可以复制此URL获取生成的图片。
方式二:部署AI艺术字创作应用
为了便于您直观体验该解决方案的效果,您可以使用函数计算团队基于Stable Diffusion Serverless API解决方案搭建的AI 艺术字创作应用,快速体验部署AI艺术字。
返回应用中心,在应用页面,单击创建应用,选择通过模板创建应用,在人工智能页签下找到AI 艺术字创作,光标移至该卡片,然后单击立即创建。
在创建应用页面,设置以下配置项,然后单击创建应用。
重点配置项说明如下,如果您没有特殊要求,其余配置项保持默认值即可。
配置项名称
说明
示例值
配置项名称
说明
示例值
角色名
创建应用所需的权限。首次创建应用的用户,需要单击前往授权创建AliyunFCServerlessDevsRole角色。
AliyunFCServerlessDevsRole
地域
创建应用所在的地域。
由于当前模板涉及GitHub以及HuggingFace等网站访问,国内部分地域可能无法直接使用。
华东1(杭州)
StableDiffusion域名
输入步骤7复制的Serverless API域名。
http://sd-****--proxy.fcv3.1034354********.cn-hangzhou.fc.devsapp.net
部署完成后,单击访问域名,就可以跳转到头像生成页面开始生成头像。
在头像生成页面,输入需要生成头像的文字内容,本文以2024年生肖龙字为例,单击生成,开始出图。
您可以在右侧查看出图进展,预估的进度和剩余时间仅供参考。
首次出图需要先启动程序,由于大模型较大,需要一定的冷启动时间,因此,第一张图生成较慢,第二张之后生成速度会明显变快。
默认一次会出4张图,可以在下方出图区域依次将鼠标悬浮在图片上,查看每张图的细节。
由于AIGC出图存在不确定性,需要您多次尝试来达到最好的效果。页面最下方提供了最近的出图历史,方便您挑选。
(可选)设置高级选项,生成质量更佳的图像。
如果您对图像风格有特殊的要求,在默认的参数基础上,您还可以单击高级设置,进行精细配置,然后根据高级设置反复调试图像质量。
文字内容高级设置
参数名称
说明
参数名称
说明
文字内容
图像中要展示的文字,建议不要太长。
字体
使用的文字字体,您可以选择您本地字体、使用内置字体或者自行加载字体。
前景色/背景色
文字和背景的颜色,这将影响页面的整体色调。
x/y
文字在图像中的横向和纵向的位置。
字体大小
文字大小。
边缘发光
部分字体棱角过于分明,渲染时不够自然,通过边缘发光可以柔化文字边缘。
其他操作
是否将图像中的文字居中。
Stable Diffusion参数高级设置
参数名称
说明
参数名称
说明
每次出图数量
并发出图数。
提示词
希望图像中出现哪些元素。
反向提示词
不希望图像中出现哪些元素。
模型
使用的基础模型。
迭代步数
模型渲染的步数。通常步数越多,图像会越精细,但花费的时间更长。
文字生效步骤
控制文字开始介入图像生成的步骤。介入的范围越大,文字越明显,但图像会更不自然。
文字权重
文字模型(ControlNet Tile)的权重。
人脸修复
是否开启Adetailer进行脸部修复。
高清放大倍数
出图结果要放大多少倍。默认是512 * 512大小,建议放大2倍到1024 * 1024,图像会更清晰。
高清放大步数
放大过程中需要执行多少步骤。适当调高生成的图像会更加自然、好看。
清理资源
在本方案中,您部署Stable Diffusion应用和AI艺术字创作应用,创建了函数资源。创建模型管理使用了文件存储 NAS产品,增加了NAS挂载点。初始化Serverless API时,创建了Tablestore实例和OSS Bucket。
函数计算的函数不调用不会计费,如果调用,则会收取函数调用费用和资源使用费用,详情请参见计费概述。
文件存储 NAS只要有模型存储在NAS文件系统下,就会收费,详情请参见计费概述。
OSS Bucket中存放的图片,下载时需要收取流量费用和请求费用,详情请参见计费概述。
Tablestore按量实例中创建的表会进行计量计费,详情请参见计费概述。
因此,如果您后续不再使用Stable Diffusion生成AI图像,请及时删除以下四部分资源,避免继续产生费用。
删除Stable Diffusion使用的函数
登录函数计算控制台,在左侧导航栏,单击应用。
在应用页面,找到2个目标应用,单击右侧操作列的删除应用。
在弹出的对话框,勾选我已确定资源删除的风险,依旧要删除上面已选择的资源,然后单击删除应用及所选资源。
删除模型管理使用的NAS
登录NAS文件存储控制台,在左侧导航栏选择 。
在文件系统列表,找到目标文件系统,在其右侧操作列,单击
,然后单击删除。
在弹出的对话框,单击移除,移除挂载点,然后单击删除。
删除OSS存储资源
登录OSS对象存储控制台,在左侧导航栏,单击Bucket 列表。
在Bucket 列表页面,单击目标Bucket,在目标Bucket页面左侧导航栏,单击删除 Bucket,然后根据界面提示手动删除必删文件后删除Bucket。
删除Tablestore文件存储资源
登录表格存储控制台,在左侧导航栏,单击概览。
在概览页面,单击目标实例右侧操作列的释放,然后在弹出的对话框,单击确定。
- 本页导读 (1)
- 方案概览
- 部署Stable Diffusion Serverless API
- 使用Serverless API进行创作
- 方式一:部署API
- 方式二:部署AI艺术字创作应用
- 清理资源
- 删除Stable Diffusion使用的函数
- 删除模型管理使用的NAS
- 删除OSS存储资源
- 删除Tablestore文件存储资源