基于NAS部署可更换模型的FC Stable Diffusion进行AI绘画创作

本文介绍如何在函数计算中结合NAS搭建可切换模型的Stable DiffusionWebUI框架实现文本生成图片。同时将SD公共模型库转存至函数计算下的NAS文件系统。

背景信息

阿里云函数计算FCServerless架构的一种形态,面向函数编程,基于事件驱动提供阿里云云服务之间端到端的解决方案。借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。

阿里云文件存储 NAS是一种分布式的网络文件存储,为ECS、HPC、Docker、BatchCompute等提供安全、无限容量、高性能、高可靠、简单易用的文件存储服务。阿里云文件存储NAS支持与函数计算无缝集成。这使您的函数可以像访问本地文件系统一样访问存储在NAS文件系统上的文件。

Stable Diffusion(简称SD)是一个可通过文本生成图像的扩散模型,基于CLIP模型从文字中提取隐变量,并通过UNet模型生成图片;最后通过逐步扩散、逐步处理图像,优化图像质量。

AIGC(Artificial Intelligence Generated Content)是指人工智能生成内容。“文生图”技术是指使用AI绘画创作图片。

重要
  • 阿里云不对第三方模型的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。

  • 您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。

前提条件

费用说明

  • 部署Stable Diffusion应用框架,并使用其生成图片将产生部分费用,包括GPU资源使用、vCPU资源使用、内存资源使用、磁盘资源使用和公网出流量以及函数调用的费用。具体信息,请参见计费概述

    说明

    无论是否生成图片,进入Stable Diffusion WebUI使用界面就会耗费GPU资源。所以在不需要使用Stable Diffusion WebUI生成图片的时候,请及时关闭Stable Diffusion WebUI使用界面。

  • 使用NAS存储AIGC的模型,NAS将根据文件系统类型、存储容量及时长收取文件存储费用,建议搭配NAS资源包使用。更多计费信息,请参见计费概述

  • 使用在线迁移服务将SD公共模型库转存至NAS时,在线迁移服务将根据迁移类型和迁移场景收取源端请求费用。更多信息,请参见新版计费项

步骤一:部署可更换模型的FC Stable Diffusion

  1. 登录函数计算控制台,单击右上角返回函数计算2.0

  2. 在左侧导航栏,单击应用

    1. 如果您首次使用函数计算的应用中心,或您的账号下没有创建任何应用,在左侧导航栏,单击应用后,将自动进入创建应用页面。

      image.png

    2. 如果您之前使用过应用中心,在左侧导航栏,单击应用,然后在应用页面单击创建应用

      image.png

  3. 创建应用页面,选择通过模版创建应用,然后在应用列表中选择人工智能页签,并将光标移至AI数字绘画stable-diffusion自定义模型版卡片单击立即创建

    image.png

  4. 应用配置页面,配置以下参数,然后单击创建应用

    参数

    示例值

    说明

    地域

    cn-beijing

    选择部署应用的地域。支持部署应用到华东1(杭州)、华东2(上海)、华北2(北京)和华南1(深圳)地域。

    重要

    如果部署异常,例如AIGC公共镜像拉取耗时长,拉取失败,请切换到其他地域重试。

    服务名

    fc-stable-diffusion-plus

    当您有多个挂载NASStable Diffusion应用时,相同的服务名可以挂载在同一个目录。

    函数名

    sd

    如果同一个服务下部署了多个Stable Diffusion,需要通过函数名区分开,否则会覆盖部署。

    绘图类型

    动漫风格

    根据需要选择绘图类型,应用中心内置了SD1.5动漫风格真人风格的绘图类型。

    为了方便您使用,函数计算提供基于开源项目stable-diffusion-webui构建的镜像,您可以直接使用。如果您想自定义Stable Diffusion镜像,请参见如何构建并使用stable-diffusion-webui镜像

    角色名

    AliyunFCServerlessDevsRole

    • 首次登录用户,需要单击前往授权配置角色权限。

      image.png

    • 如果您的角色名称已有相关权限,则无需设置。

      image.png

  5. 在弹出的活动应用创建提醒对话框,仔细阅读提示内容,勾选已知当前收费项复选框,然后勾选我已经了解上面的内容,并同意上述描述复选框,最后单击同意并继续部署

    等待几分钟后,应用部署完成,页面跳转至应用详情。您可以查看应用的基本信息、项目详情和资源信息等。

  6. 应用详情页面,单击模型管理域名右侧的初始化模型管理

  7. 在弹出的初始化模型管理对话框,仔细阅读提示内容,勾选我已阅读,并了解上述创建资源的目的以及部分资源可能产生的费用。我已知晓对应的计费规则,并决定继续部署该应用复选框,然后单击确认

  8. 配置NAS文件系统。

    • 自动配置:系统自动为您创建一个新的通用型NAS文件系统。

      如您再次选择自动配置,系统查询到前一次选择自动配置时创建的通用型NAS文件系统后,将不会再重新创建。关于费用详情,请参见通用型NAS计费

    • 手动配置:您需要手动配置如下参数才能配置NAS文件系统。

      • 专有网络:请务必选择与NAS一样的专有网络。如需创建新的专有网络,单击下方的创建专有网络,跳转到专有网络控制台手动创建。

      • 交换机:选择专有网络下的交换机。如需创建新的交换机,单击下方的创建交换机,跳转到专有网络控制台手动创建。

      • 安全组:选择专有网络的安全组。

      • 文件系统:选择已创建的NAS文件系统。如需创建新的NAS文件系统,单击下方的创建文件系统,跳转到文件存储控制台手动创建。仅支持NFS协议类型的NAS文件系统,不支持SMB协议类型。

      • 挂载点:选择NAS文件系统后,会自动生成挂载点,包括NAS目录和FC目录。

  9. 单击确认

步骤二:将公共模型库转存到NAS存储

  1. 登录函数计算控制台,单击右上角返回函数计算2.0

  2. 在左侧导航栏,单击应用

  3. 找到您需要转存模型库的应用,并单击应用名称,进入应用详情页面。

  4. 项目详情区域,单击模型管理域名右侧的域名。

  5. 模型管理页面,选择模型库,然后将光标放置您感兴趣的模型卡片,单击下载模型

  6. 在弹出的文件下载确认对话框,单击下载选择的模型

    您可以单击传输列表,查看模型下载进度。下载完成后,您可以进入文件管理查看下载的模型( /mnt/auto/sd/models/Stable-diffusion),重启Stable Diffusion即可使用模型进行文生图的体验。

    说明

    模型会被下载至文件管理(NAS)进行存储,NAS将根据您的NAS文件系统类型、存储容量和时长进行收费,详细的计费信息,请参见计费概述

步骤三:验证模型推理

  1. 登录函数计算控制台

  2. 在左侧导航栏,选择应用

  3. 找到目标应用,单击应用名称,进入应用详情页面。

  4. 项目详情区域,单击WebUI 域名,进入Stable Diffusion WebUI操作界面,在文生图页签下的输入框中,填入相应的提示词,然后单击右侧的生成按钮即可生成描述提示词的图片。

    例如,在Stable Diffusion模型(ckpt)下拉列表中切换模型为dreamshaper_7,切换完成后,在文生图页面输入如下信息,然后单击生成

    • 提示词:photo of the warrior Aragorn from Lord of the Rings, film grain

    • 反向提示词:BadDream, (UnrealisticDream:1.2)

    • 采样方法(Sampler):DPM++ SDE Karras

    • 采样步数(steps):30

    • 提示词引导系数:4

    • 图像生成种子:82742

      image.png

后续操作

  • 释放FC资源

    如您暂时不需要使用Stable Diffusion应用生成图片,请及时删除对应资源。如您需要长期使用Stable Diffusion应用,请忽略此步骤。

    1. 返回函数计算控制台概览页面,在左侧导航栏,单击应用

    2. 单击目标应用右侧操作列的删除应用,在弹出的删除应用对话框,勾选我已确定资源删除的风险,依旧要删除上面已选择的资源,然后单击删除应用及所选资源image.png

  • 释放NAS资源

    如您暂时不需要使用NAS存储模型库数据,请及时删除文件系统实例。如您需要长期使用文件系统存储数据,请忽略此步骤。关于如何删除NAS文件系统的操作,请参见删除文件系统