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

news2024/9/23 1:26:21

作者:寒斜

上一篇讲了如何使用 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-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       nas-init
    runtime:    python3.9
    handler:    index.handler
    memorySize: 3072
    timeout:    1200
    cpu:        2
    diskSize:   512
fc-nas-filemgr: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       admin
    runtime:    custom
    handler:    index.handler
    memorySize: 3072
    timeout:    7200
    cpu:        2
    diskSize:   512
  url: 
    system_url:          https://xxx.cn-hangzhou.fcapp.run
    system_intranet_url: https://xxx.cn-hangzhou-vpc.fcapp.run
    custom_domain: 
      - 
        domain: http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.net
  triggers: 
    - 
      type: http
      name: httpTrigger
keep-warm: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       keep-warm
    runtime:    python3
    handler:    index.handler
    memorySize: 128
    timeout:    120
    cpu:        0.1
    diskSize:   512
  triggers: 
    - 
      type: timer
      name: timerTrigger
stable-diffusion-sd-server: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       sd
    runtime:    custom-container
    handler:    index.handler
    memorySize: 32768
    timeout:    600
    cpu:        8
    diskSize:   10240
  url: 
    system_url:          https://xxx.cn-hangzhou.fcapp.run
    system_intranet_url: https://xxx.cn-hangzhou-vpc.fcapp.run
    custom_domain: 
      - 
        domain: http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.net
  triggers: 
    - 
      type: http
      name: 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.coloradmin.cn/o/506345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么调度也需要“血缘分析”和“影响分析”?

摘要&#xff1a;数据治理中经常要遇表或者字段级“血缘分析”和“影响分析”&#xff0c;但是真正在数据ETL调度操作过程中使用影响和血缘分析频繁&#xff0c;看白鲸开源的WhaleStudio如何解决这个难题。 提到“血缘分析”和“影响分析”&#xff0c;普通开发者第一印象就是数…

【Java EE 初阶】线程池简介及实现过程

目录 1.线程池是什么&#xff1f; 2.为什么要使用线程池&#xff1f; 3.如何使用线程池 1.JDK给我们提供了一些方法来创造线程池 4.设计模式之工厂模式 1.工厂模式用途 5.自定义一个线程池 1.可以提交任务到线程池&#xff0c;那么就会有一种数据结构来保存我们提交的任…

java lambda表达式详解

一、Lambda初识 我们知道&#xff0c;在Java中&#xff0c;接口是不能实例化的&#xff0c;但是接口对象可以指向它的实现类对象。如果接口连实现对象都没有呢&#xff1f;那还可以使用匿名类的方式&#xff0c;如下: public class JavaTest { public static void main(Strin…

jenkins,gitlab,实时构建推送

首先jdk&#xff0c;jenkins安装好&#xff0c;新版jenkins不支持jdk8 然后安装环境maven&#xff0c;git 环境配置 插件安装 gitlab插件 Build Authorization Token Root插件 插件环境整好之后新建个任务 源码管理&#xff0c;填入仓库https地址&#xff0c;添加git…

大势智慧软硬件技术答疑第一期

1.重建大师生成的实景三维模型&#xff0c;模型周边的道路植物被压平了&#xff0c;怎么保留植物道路原有形状&#xff1f; 答&#xff1a;这个是单体化生成的地理实体场景&#xff0c;会把地物压平&#xff0c;可以用模方将单体化的模型加入到osgb中。 2.直接导入空三的话这个…

采用docker部署时kafka共享zookeeper的网络配置

采用docker部署kafka、zookeeper&#xff0c;一般的做法是创建一个docker网络&#xff0c;然后kafka、zookeeper都使用这个网络。问题是&#xff0c;我部署到生产环境的时候&#xff0c;这种做法被禁止了。原因是添加了这个docker网络以后&#xff0c;服务器就无法访问了。该服…

Es读写调优、深度分页

写入 ES支持四种对文档的数据写操作 create&#xff1a;如果在PUT数据的时候当前数据已经存在&#xff0c;则数据会被覆盖&#xff0c;如果在PUT的时候加上操作类型create&#xff0c;此时如果数据已存在则会返回失败&#xff0c;因为已经强制指定了操作类型为create&#xf…

Spring核心 AOP

1.什么是AOP&#xff1f; AOP&#xff08;Aspect Orient Programming&#xff09;&#xff0c;直译过来就是面向切面编程。AOP是一种编程思想&#xff0c;是面向对象编程&#xff08;OOP&#xff09;的一种补充。面向对象编程将程序抽象成各个层次的对象&#xff0c;而面向切面…

【笔试强训选择题】Day9.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录…

open3d Image和numpy互转,PointCloud和numpy互转

目录 1. open3d.geometry.Image转numpy 2. numpy 转 open3d.geometry.Image 3. numpy转PointCloud 4. PointCloud转numpy 1. open3d.geometry.Image转numpy np_x np.asarray(x) # (h,w,3) import numpy as np import matplotlib.pyplot as plt import matplotlib.image…

鸿蒙Hi3861学习十-Huawei LiteOS-M(消息队列)

一、简介 消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;实现了接收来自任务或中断的不固定长度的消息&#xff0c;并根据不同的接口选择传递消息是否存放在自己空间。任务能够从队列里面读取消息&#xff0c;当队列中的消息是空时&#xff0c;挂起读取任务…

EC6108V9/V9C-Hi3798MV100-当贝纯净桌面-卡刷固件包

EC6108V9&#xff0f;V9C-Hi3798MV100-当贝纯净桌面-卡刷固件包-内有教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软…

C#学习笔记--实现一个可以重复权重并且能够自动排序的容器--MultiplySortedSet

目录 前言SortedSetC#自带类型自定义类SortedSet权值重复 需求自定义容器 -- MultiplySortedSet核心实现思路 MultiplySortedSet 使用C#自带类型自定义类 前言 最近需要在C#中实现一个功能 有一个容器&#xff0c;该容器能自动对里面的元素进行排序&#xff0c;类似C的优先队列…

fast中user_id如何显示user表中的名称_关联模型

问题&#xff1a;编辑框内的user_id显示的是nickname 列表里如何显示nickname或是username 解决方案如下&#xff1a; 需要更改3个地方&#xff0c;控制器&#xff0c;模型&#xff0c;js文件 1.控制器index list($where, $sort, $order, $offset, $limit) $this->build…

ES6D: 利用对称性进行高效的6D姿态检测

利用对称性进行高效的6D姿态检测 本文参考自CVPR2022的这篇文章&#xff1a;ES6D: A Computation Efficient and Symmetry-Aware 6D Pose Regression Framework Github链接为&#xff1a;https://github.com/GANWANSHUI/ES6D 介绍 在6D姿态检测中&#xff0c;一些具备对称性的…

米哈游的春招实习面经,问的很基础

米哈游的春招实习面经&#xff0c;主要考察了java操作系统mysql网络&#xff0c;这四个方面。 面试流程&#xff0c;共1小时&#xff0c;1min自我介绍&#xff0c;20min写题&#xff0c;剩下问题基础知识。 Java String&#xff0c;StringBuilder&#xff0c; StringBuffer区…

注意力模型

如果拿机器翻译来解释这个分心模型的Encoder-Decoder框架更好理解&#xff0c;比如输入的是英文句子&#xff1a;Tom chase Jerry&#xff0c;Encoder-Decoder框架逐步生成中文单词&#xff1a;“汤姆”&#xff0c;“追逐”&#xff0c;“杰瑞”。 在翻译“杰瑞”这个中文单词…

低代码/0代码(无代码)开发平台如何选型?这篇文章告诉你

随着数字化转型的加速&#xff0c;越来越多的企业开始寻求低代码或零代码开发平台来加速应用程序的开发和部署。选对合适的平台是至关重要的&#xff0c;因为这将决定企业能否在数字化转型中保持竞争优势。 市面上的低/零代码平台五花八门&#xff0c;在选型的时候需要考虑哪些…

搭建本地仓库源

一、如何搭建仓库源 之前讲了定制ISO的方法&#xff1a;使用chroot定制系统&#xff0c;但有时候我们想自定义的安装包不在上游的仓库源中&#xff0c;在我们本地应该怎么办呢&#xff1f;如果我们将deb包拷贝到iso目录再安装有点过于麻烦了&#xff0c;而且还可能需要手动处理…

Linux 常见命令与常见问题解决思路

Linux 常见命令 Linux 基础命令目录相关查看文件&#xff08;日志&#xff09;查看普通的文件查看压缩的文件 解压压缩Linux 系统调优topvmstatpidstatps vi/vim 编辑文件查找文件属性相关定时任务scp 复制文件和目录awk 分隔cutsort 与 uniq常见问题处理思路CPU 高系统平均负载…