AI 作画火了,如何用 Serverless 函数计算部署 Stable Diffusion?

Posted 阿里系统软件技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI 作画火了,如何用 Serverless 函数计算部署 Stable Diffusion?相关的知识,希望对你有一定的参考价值。

AIGC 领域目前大火, 除了 Chatgpt,在文生图领域 Stable Diffusion 大放异彩,深刻的地影响着绘画、视频制作等相关领域。利用这项技术,普通人也可以制作出令人惊叹的艺术作品。今天我们将使用阿里云函数计算来部署一套 Stable Diffusion WebUi,给大家展示一下这项技术的魅力。在进入技术教程之前,我们先看一下笔者生成的相关图片内容。

作者:寒斜

立即体验基于函数计算部署 Stable Diffusion:

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

AIGC 领域目前大火, 除了 Chatgpt,在文生图领域 Stable Diffusion 大放异彩,深刻的地影响着绘画、视频制作等相关领域。利用这项技术,普通人也可以制作出令人惊叹的艺术作品。今天我们将使用阿里云函数计算来部署一套 Stable Diffusion WebUi,给大家展示一下这项技术的魅力。 在进入技术教程之前,我们先看一下笔者生成的相关图片内容。

Stable Diffusion WebUi:

https://github.com/AUTOMATIC1111/stable-diffusion-webui

画廊

sd+ mdjrny/ChilloutMix

Cheese Daddy

国风

daclefo_painting

函数计算的优势

  • 开箱即用,通过应用中心或者 Serverless Devs 一键部署快速体验,无需进行复杂的环境配置
  • 用时消费,通过 Serverless 弹性策略在您启动服务的才开始计费
  • 支持 GPU 渲染,出图快,花费低

准备项

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

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

  3. 下载 Serverless Devs [ 3]

  4. 使用 Serverless Devs 配置**阿里云秘钥信息 [ 4]**

快速开始

一行指令部署

  • 创建一个本地文件目录如 stable-diffusion
  • 在 stable-diffusion 目录下创建一个 s.yaml 文件,内容如下
edition: 1.0.0
name: fc-stable-diffusion
access: default
services:
  cn-shanghai-stable-diffusion-sd:
    component: devsapp/fc
    props:
      region: cn-shanghai
      service:
        description: stable-diffusion部署到函数计算
        internetAccess: true
        name: stable-diffusion
      function:
        handler: index.handler
        timeout: 600
        diskSize: 10240
        caPort: 7860
        instanceType: fc.gpu.tesla.1
        runtime: custom-container
        cpu: 8
        customContainerConfig:
          args: \'\'
          accelerationType: Default
          image: registry.cn-shanghai.aliyuncs.com/vipas/stable-diffusion-web:v2
          accelerationInfo:
            status: Preparing
          command: \'\'
          webServerMode: true
        instanceConcurrency: 1
        memorySize: 32768
        environmentVariables: 
        gpuMemorySize: 16384
        name: sd
        asyncConfiguration: 
      triggers:
        - name: defaultTrigger
          description: \'\'
          type: http
          qualifier: LATEST
          config:
            methods:
              - GET
              - POST
              - PUT
              - DELETE
            authType: anonymous
            disableURLInternet: false
      customDomains:
        - domainName: auto
          protocol: HTTP
          routeConfigs:
            - path: /*
  • 执行部署指令
s deploy

效果预览及操作

执行完部署指令后,很快就能拿到访问地址,如下面↓

http://sd.stable-diffusion.xxxxxx.cn-shanghai.fc.devsapp.net 内容(xxxxxx为您自己账号 uid)

cn-shanghai-stable-diffusion-sd: 
  region:   cn-shanghai
  service: 
    name: stable-diffusion
  function: 
    name:       sd
    runtime:    custom-container
    handler:    index.handler
    memorySize: 32768
    timeout:    600
  url: 
    system_url:    https://sd-stable-iffusion-zulpjlkgaj.cn-shanghai.fcapp.run
    custom_domain: 
      - 
        domain: http://sd.stable-diffusion.xxxxxx.cn-shanghai.fc.devsapp.net
  triggers: 
    - 
      type: http
      name: defaultTrigger

函数计算初次启动要花费 3-4 分钟,需要完成镜像拉取,冷启动等操作。

最后画面如下:

我们提供的默认镜像自带了 sd 基础模型。

部署成功之后您可以输入一些文字描述进行图片生成,如上图 sd 生成了一只可爱的小狗

普通人如何用AI帮你干活——娱乐1

案例描述:

一天朋友突然发信息跟我说:看你朋友全最近总在显摆AI作画,看起来好像有点牛逼;我家小朋友最近在参加一个国家绘画比赛,能不能让你的AI帮忙画几张有趣的有创意的画。给小朋友做灵感启发,小朋友可以参考AI画的画去创造更有想法的话。”接着她就传给我一张图(天书要求)...

与我而言,牛逼已经吹出去了,并且还在朋友圈频繁的骚乱好友们。处于脸面和无奈我只好硬着头皮接下了这活。真所谓吹牛逼一时爽啊,填坑火葬场啊。自己吹的牛逼跪着也要填完...

背景交代完毕,我得到信息:

1.要我帮忙用AI生成画

2.给一张图,上面有文本要求描述

接下来讲我的实现思路:

1.把天书做ocr翻译成文本信息

2.把翻译好的文本信息用AI作信息抽取(摘要、关键词)

3.把AI理解好的关键词用AI生成适合AI作画的咒语

4.在生成咒语的同时,用AI生成的关键词检索合适的画的风格

5.开始把咒语和风格组合成最终让AI作画的咒语

1.OCR把天书解码得到文本

这边我用了简单几行代码完成,其实完全可以用无代码拖图的结果玩法,具体网页:

https://huggingface.co/spaces/awacke1/Image-to-Multilingual-OCR

世界那么大 美丽我的家8(0/##8[山 4州[「[「|0#00~1 #|7|叫 咋 [媛5

「联合国粮农组织驻华代表处参与主办"美在万物生"

艾瑞卡儿童画国际巡展中:美:法:意:俄:日等多国同步征集征集时间

2023年2月208-4月208|泉州站海外巡展|城市待定线上巡展巡展期间将同步推出线上720云实景展投稿邮箱

20_8<<0@126.<绘画建议1.野生动植物2.海洋。森林。湿地等多样性生态系统征集范围面向世界各国12岁以下儿童 , 个人。集体均可投稿投稿要求1.画作尺寸: 420 >2859 (大8开)

2.送交作品不装裱。不装框3.作品需备注姓名年龄。国家及地区。联系方式

4.网上提交作品,入选后通知作者快递作品5。入选作品组委会拥有使用权评选标准绘画要求富有童真。

童趣围绕 "生物多样性保护" 主题,内容积极健康作品返还巡展结束后。

2024年4月前返还作品,颁发参展证书主办单位「40 @几4

(联合国粮农组织驻华代表处)中国晚报摄影学会中国儿童画国际巡展组委会支持单位中国关心下一代工作委员会儿童发展研究中心协办单位世界文化交流联盟启今集团~幸~0^公益支持业之峰装饰集团裒 堕 % /撑 少三 !关注"中德嘉美"公众号获取儿童画国际巡展相关信息守护生物多样

自然之美

2.把得到的文本信息作摘要和关键词抽取

这边我用了chatgpt来做;需要其实不用chatgpt写几行简单代码也行

如果考虑做AI应用产品的可以考虑代码来实现,链路更好串接。

3.把AI理解好的关键词用AI生成适合AI作画的咒语

这边我也是用chatgpt来直接把中文翻译成了英文,然后同步的让chatgpt帮忙生成了适合AI作画的描述方式

4.在生成咒语的同时,用AI生成的关键词检索合适的画的风格

到best prompt里面搜风格:

可以在百度文心搜索风格

5.开始把咒语和风格组合成最终让AI作画的咒语

不加关键词检索合适风格,直接用chatgpt生成的咒语作出来的画,如下所示:

加上关键词搜索合适风格后,做出来的画如下:

小结:

坑填上了,问题也给了个不算完美但是可以接受的解决。里面其实有很多细节是可以优化和精进的,比如画风选择,指定角色个数、色系修改。然而这篇文章重点不在于给大家介绍如何打造精细稳定的工业流水线,这些事交给天天996的人就好了。我只是想跟大家介绍,作为一般的人没有太多编程技巧,对计算机和各种奇淫技巧的算法了解也不多的一般人。可以如何去利用AI,可以如何把问题作简单拆解和流程拆解让AI为我们服务。

其实看下来也不复杂,Ai无非就是信息抽取能力、随机生成能力、非结构化的信息解析能力。我们要做的就是怎么把一个实际问题(更系统、更复杂)解耦开来,让AI为我们服务,人机协同。

以上是关于AI 作画火了,如何用 Serverless 函数计算部署 Stable Diffusion?的主要内容,如果未能解决你的问题,请参考以下文章

QT5 如何用两个事件作画?

普通人如何用AI帮你干活——娱乐1

AI作画:十分钟快速搭建自己的text-to-image diffusion models

如何用阿里云函数计算结合API网关构建自己的serverless服务

换模型更简单如何用 Serverless 一键部署 Stable Diffusion?

如何用一个插件解决 Serverless 灰度发布难题?