文档

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

更新时间:

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

背景信息

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

阿里云文件存储 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

    当您有多个挂载NAS的Stable 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文件系统类型、存储容量和时长进行收费,详细的计费信息,请参见计费概述

方案二:通过数据迁移服务,将公共模型库转存到NAS

  1. 登录在线迁移服务控制台(旧版)

  2. 在左侧导航栏,单击数据地址

  3. 配置源地址(OSS)。

    1. 在管理数据地址页面,单击创建数据地址

    2. 创建数据地址面板,配置以下参数,并单击确定

      主要配置项说明如下,其余配置项保持默认值即可。

      参数

      示例

      说明

      数据类型

      OSS

      SD模型库的数据类型。

      数据名称

      ossmodel

      输入3~63位字符。不支持短划号(-)和下划线(_)之外的特殊字符。

      数据所在区域

      华东1(杭州)

      选择SD模型所在区域。

      OSS Endpoint

      http://oss-cn-hangzhou-internal.aliyuncs.com

      根据您数据所在区域,选择一个Endpoint。建议使用内网,以HTTP方式上传或下载数据。

      • http://oss-cn-endpoint.aliyuncs.com:表示使用HTTP协议的外网Endpoint访问OSS。

      • https://oss-cn-endpoint.aliyuncs.com:表示使用HTTPS协议的外网Endpoint访问OSS。

      • http://oss-cn-qingdao-internal.aliyuncs.com:表示使用HTTP协议的内网Endpoint访问OSS。

      • https://oss-cn-qingdao-internal.aliyuncs.com:表示使用HTTPS协议的内网Endpoint访问OSS。

      Access Key Id

      LTAI5tKe2ba65Dq2KGTJ****

      输入用于迁移账号的访问密钥。建议使用RAM用户进行迁移。关于创建RAM用户并授予相关权限,请参见准备工作

      Access Key Secret

      cGsbh4ZdghhLx1AsmV1q6b68Yw****

      OSS Bucket

      sdmodel-hangzhou

      输入对应region下模型库的Bucket名称。例如,本次迁移地域为华东1(杭州),则Bucket名称为sdmodel-hangzhou。

      OSS Prefix

      data-oss

      SD模型库的迁移数据路径。

  4. 配置目的地址(NAS)。

    1. 再次单击创建数据地址。

    2. 在创建数据地址页面,配置以下参数,并单击确定

      说明

      首次使用数据迁移的用户,数据类型选择为NAS时,需要进行授权,请根据对话框中的提示,完成数据迁移服务(MGW)授权。

      参数

      示例

      说明

      数据类型

      NAS

      NAS

      数据名称

      fcnas

      输入3~63位字符。不支持短划号(-)和下划线(_)之外的特殊字符。

      数据所在区域

      华东1(杭州)

      选择SD模型所在区域。

      NAS来源

      阿里云

      选择阿里云

      文件系统

      0749d4****

      选择步骤一部署的NAS文件系统。

      您可以登录函数计算控制台,在应用页面,单击目标模型应用名称前的图标,然后单击默认环境,在基础资源区域,查看NAS挂载点和文件系统ID。

      挂载点

      0749d4****-c****.cn-hangzhou.nas.aliyuncs.com

      选择目标NAS对应的挂载点。

      重要

      目前只支持挂载在VPC网络上的NAS,经典网络暂时不支持。

      子目录

      fc-stable-diffusion-plus/sd

      填写子目录后可将迁移的数据存放在指定的文件目录。若不填写,则默认为根目录“/”。

  5. 配置迁移任务,实现模型库转存至NAS。

    1. 在左侧导航栏,选择迁移任务

    2. 在迁移任务列表页面,单击创建迁移任务

    3. 在创建迁移任务面板,阅读迁移服务条款协议,选中我理解如上条款,并开通数据迁移服务,单击下一步

    4. 在弹出的费用提示对话框,单击确认,继续创建

    5. 在配置任务页签,配置以下参数,单击下一步

      主要配置参数说明如下,其余配置项保持默认值即可。

      参数

      示例

      说明

      任务名称

      osstofcnas

      输入3~63位小写字母、数字、短划线(-),且不能以短划线(-)开头或结尾。

      源地址

      ossmodel

      选择已创建的源地址。

      目的地址

      fcnas

      选择已创建的目的地址。

      指定目录

      包含,models/

      设置迁移时包含或排除指定目录下的文件和子目录。

      文件覆盖方式

      不覆盖

      源地址中文件和目的地址中文件同名时,迁移过程中执行的覆盖方式。包括如下选项:

      • 最后修改时间优先:对于同名文件,判断两个文件的LastModified,即最后修改时间。

        • 如果源地址中文件的LastModified晚于目的地址中文件的LastModified,则执行覆盖。

        • 如果源地址中文件的LastModified早于目的地址中文件的LastModified,则执行跳过。

        • 如果两个文件的LastModified相同,则继续判断两个文件的Size和Content-Type是否均相同。

          如果两个文件的Size和Content-Type均相同,则执行跳过;如果两个文件的Size或者Content-Type中存在至少一个不同,则执行覆盖。

      • 条件覆盖:对于同名文件,判断两个文件的LastModified、Size和Content-Type是否相同。

        • 如果两个文件的LastModified、Size和Content-Type均相同,则执行跳过。

        • 如果两个文件的LastModified、Size和Content-Type中存在至少一个不同,则执行覆盖。

      • 全覆盖:对于同名文件,不进行任何判断,直接执行覆盖。

      • 不覆盖:对于同名文件,不进行任何判断,直接执行跳过。

    6. 性能调优页签的数据预估区域,填写待迁移存储量待迁移文件个数

      说明

      为了迁移任务的顺利进行,请尽量准确进行数据预估。更多信息,请参见预估迁移数据

      • 待迁移存储量:70 GB

      • 待迁移文件个数:50

    7. 可选:性能调优页签的流量控制区域,设置限流时间段最大流量,然后单击添加

      说明

      为了不影响您在线业务的访问,建议您根据业务访问的波峰和波谷来设置迁移时的限流时间段最大流量

    8. 单击创建,等待迁移任务完成。

      迁移过程大概需要10分钟,当迁移任务的任务状态为已完成时,您可以单击操作列的管理,查看任务迁移的详情。同时,您也可以前往函数计算控制台,找到您的应用,并单击链接访问Stable DiffusionWebUI。WebUI页面的左上角下拉菜单查看已经迁移过来的模型文件。

步骤三:验证模型推理

  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文件系统的操作,请参见删除文件系统

  • 本页导读 (1)
文档反馈