【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?

news/2024/11/15 3:33:36/

作者:寒斜

上一篇讲了如何使用 Serverless Devs 和函数计算快速体验部署 Stable Diffusion,本篇继续聊聊如何解决动态模型加载的问题,从玩起来到用起来。

思路

其实很简单, 我们只需要将镜像里面的动态路径映射到 NAS [ 1] 文件存储里面即可,利用 NAS 独立存储文件模型,扩展,语言包等,并且我们可以为管理 NAS 单独配置一个可视化的后台,用简单的文件上传删除的方式管理我们的文件,为此我们需要展开打镜像的脚本,为了完成全套的流程我们接下来盘一下整体的准备项。

准备项

  1. 开通阿里云函数计算 [ 2]

  2. 文件存储 NAS(可以根据情况自己创建性能更好的实例)

  3. 开通阿里云容器镜像服务 ACR [ 3]

  4. 安装 Serverless Devs [ 4]

$ npm install @serverless-devs/s -g
  1. 使用 Serverless Devs 配置阿里云密钥信息 [ 5]

快速开始

初始化应用模板

s init fc-stable-diffusion-plus

选择 region:cn-hangzhou

输入镜像:registry.cn-hangzhou.aliyuncs.com/serverlessdevshanxie/sd-auto-nas:v1

部署应用模板

cd fc-stable-diffusion-plus && s deploy

部署需要花费一些时间(预估 5 分钟),之后你会收到两个域名返回。

fc-nas-init: region:   cn-hangzhouservice: name: fc-stable-diffusion-plusfunction: name:       nas-initruntime:    python3.9handler:    index.handlermemorySize: 3072timeout:    1200cpu:        2diskSize:   512
fc-nas-filemgr: region:   cn-hangzhouservice: name: fc-stable-diffusion-plusfunction: name:       adminruntime:    customhandler:    index.handlermemorySize: 3072timeout:    7200cpu:        2diskSize:   512url: system_url:          https://xxx.cn-hangzhou.fcapp.runsystem_intranet_url: https://xxx.cn-hangzhou-vpc.fcapp.runcustom_domain: - domain: http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.nettriggers: - type: httpname: httpTrigger
keep-warm: region:   cn-hangzhouservice: name: fc-stable-diffusion-plusfunction: name:       keep-warmruntime:    python3handler:    index.handlermemorySize: 128timeout:    120cpu:        0.1diskSize:   512triggers: - type: timername: timerTrigger
stable-diffusion-sd-server: region:   cn-hangzhouservice: name: fc-stable-diffusion-plusfunction: name:       sdruntime:    custom-containerhandler:    index.handlermemorySize: 32768timeout:    600cpu:        8diskSize:   10240url: system_url:          https://xxx.cn-hangzhou.fcapp.runsystem_intranet_url: https://xxx.cn-hangzhou-vpc.fcapp.runcustom_domain: - domain: http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.nettriggers: - type: httpname: defaultTrigger

其中:

http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.net 是后台管理页面

http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.net 是 Stable Diffusion 的操作界面

上传模型

因为上面容器镜像中移除了模型部分,所以你现在还无法启动 Stable Diffusion 的操作界面,需要上传自己的模型,之后再去启动 Stable Diffusion 操作界面,上传模型有两个方法:

方法一

通过可视化界面上传,访问 http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.net,点点点,配好登录密码之后,进来到这个界面:文件管理,然后在路径栏里输入"/mnt/auto/sd"

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

你就看到自己熟悉的本地目录了~

在这里插入图片描述

然后再访问 models/Stable-diffusion/ 把模型拖进来就行。

不过值得注意的是,这种方式上传的模型超过 2、3 个 G 的时候会不稳定。所以如果你的模型很大,可以考虑用我们提供的 nas 指令。

方法二

使用 nas 指令上传,进入项目根目录,执行↓

s fc-nas-init nas upload -r <你的模型地址> /mnt/auto/sd/models/Stable-diffusion/

就可以,剩下的就是等待,可能要花费 30 分钟。

注: 其他的如 controlNet,extension 可以按照类似的方式,不过注意对应的 nas 地址变一下。

页面预览

准备就绪后我们开始使用页面了,打开这个地址↓

http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.net 冷启动会有一定的加载时间。

文生图

在这里插入图片描述

图生图

在这里插入图片描述

其他的自己可以多摸索摸索。

有奖体验

阿里云将提供免费 Serverless 函数计算产品资源,邀请你,体验一把 AIGC 级的毕加索、达芬奇、梵高等大师作画的快感。下面请尽情发挥你的想象空间!!双重奖品设置,完成体验场景可得社区 1000 积分兑换奖品,还可参加 AI 生成图像比赛赢取 Airpods、500 元猫超卡及社区定制抱枕!

🌏 体验地址:

https://developer.aliyun.com/topic/aigc

你也可以轻松做出下方画作👇👇

在这里插入图片描述

相关链接:

[1] NAS

https://www.aliyun.com/product/nas?spm=5176

[2] 函数计算

https://www.aliyun.com/product/fc?spm=5176.devs

[3] 容器镜像服务 ACR

https://www.aliyun.com/product/acr?spm=5176.28055625.J_3207526240.121.1d22154aWn0gl1&scm=20140722.M_4776670._.V_1

[4] Serverless Devs

https://docs.serverless-devs.com/serverless-devs/quick_start

[5] 配置阿里云密钥信息

https://docs.serverless-devs.com/serverless-devs/command/config#config-add-%E5%91%BD%E4%BB%A4

点击此处进入体验


http://www.ppmy.cn/news/74222.html

相关文章

UnityEngine.EventSystems详解

介绍 UnityEngine.EventSystems是Unity中的一个核心模块&#xff0c;用于处理用户输入事件和交互。它提供了许多接口和类来处理UI元素&#xff0c;例如按钮、滑动条、文本框等。使用该模块可以方便地实现用户界面的交互和响应。 方法 接口 IPointerClickHandler 当用户点击…

亚马逊产品开发

【一、找产品灵感】 需要不停的去找产品灵感&#xff0c;发起需求&#xff0c;我们到底是要做什么产品?当你看到一个产品&#xff0c;看到一个东西&#xff0c;应该先来考虑这个东西它的尺寸重量&#xff0c;以及在物流方面大概的成本会是多少&#xff0c;你能不能承受?然后…

自动构建之CMake

CMake 链接: 自动构建之MakeFile CMake也是一种用于自动化构建软件项目的工具。Cmake可以自动输出MakeFile文件&#xff0c;并且CMake是一个跨平台的构建系统&#xff0c;对于复杂的、跨平台的项目&#xff0c;CMake可能是一个更好的解决方案。 CMake的脚本文件是在CMakeLis…

DM8_dminit初始化工具介绍及使用

dminit介绍&#xff1a; dminit 是 DM 数据库初始化工具。在安装 DM 的过程中&#xff0c;用户可以选择是否创建初始 数据库。如果当时没有创建&#xff0c;那么在安装完成之后&#xff0c;可以利用创建数据库工具 dminit 来创建。可以利用 dminit 工具提供的各种参数&#xff…

smb配置,详细图文及配置

samba :网络文件共享服务 ​ Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件&#xff0c;而SMB是Server Message Block的缩写&#xff0c;即为服务器消息块&#xff0c;SMB主要是作为Microsoft的网络通讯协议&#xff0c;后来Samba将SMB通信协议应用到了Linux系统上…

我们为什么还要学习Altium Designer?

Altium Designe&#xff08;简称“AD”&#xff09;是电子设计领域中备受推崇的软件工具之一&#xff0c;拥有强大的功能和灵活的设计环境&#xff0c;也是要用最广泛的EDA工具之一&#xff0c;为电子工程师提供了无限可能&#xff0c;但很多工程师学完AD基本操作就转投其他EDA…

elementUI,自定义表头,多层级表头,表头合并,行内容一致的合并行

先上效果&#xff1a; 1.自定义表头&#xff1a; 通过设置 slot"header" 来自定义表头。 slot-scope"scope" 这一行千万不要因为没有再template中使用到scope&#xff0c;vscode报红而删除&#xff0c;这会导致input框不能输入任何内容&#xff01; &l…

react函数组件常用的几个钩子函数

react框架 react框架包括包括两大类&#xff1a;类组件函数组件。 类组件构成&#xff1a;constructor自定义方法。调用方法通过this.方法名()。constructor(superstate)构造器里面必有super字段。render()方法里面写页面布局。 函数组件构成&#xff1a;各种钩子函数return()方…