自学AI绘画01:初见Stable Diffusion,一键玩转AI绘画

前言

在摩托车追焦群看到了机甲风的AI照片,觉得甚是炫酷。偶然看到了Stable Diffusion实现AI绘画的文章,所以就从一个使用者的角度,来开始学习Stable Diffusion。

我理解的AI绘画,会涉及卷积网络以及数学的知识。我深知自己几斤几两,所以不求甚解,学完知道Stable Diffusion是什么,有哪些组件以及组件功能。到后来如何安装使用Stable Diffusion实现AI绘画,这就是我的个人小目标。

关于Stable Diffusion

我是在家里的电脑上安装完Stable Diffusion Webui之后,从博客再到官方文档学习的Stable Diffusion的原理。虽然说webui封装了Stable Diffusion,底层模型对于用户透明,使用者不用再通过编码的方式去调用API使用模型。

但是webui上的组件、参数,我个人觉得还是研究一下比较有意思。当你以后和别人谈论起这个技术的时候,可以用自己的理解去互相交流。

在学习初期,晚上回家通过copy模板化的参数去实践。白天就学习Stable Diffusion的基本概念,以及实践中遇到的一些问题。

Stable Diffusion是什么

首先,Stable Diffusion属于一个被称作扩散模型的深度学习模型,而且是一个生成模型,用来生成与训练中看到的类似的新数据,这里的数据指的是图像。

Stable Diffusion是一个生成AI图片的潜在扩散模型(Latent diffusion model)。扩散模型有很多,例如OpenAI的DALL-E模型,Google的Imagen模型。

Stable Diffusion能干什么

  1. 文生图(txt2img):用的最多的就是文生图,根据输入的文本提示(text prompt),来生成相应的风格图片。
  2. 图生图(img2img):输入一张图片,然后根据输入的文本提示(text prompt),就可以得到另一张图片。可以实现图片细节的优化、图片风格转变等。如图:

  1. 照片编辑:可以修复老的或者残缺的照片。
  2. 制作视频:比如AI换脸。

在后面研究Stable Diffusion的过程中,只对1和2的文生图和图生图进行深入学习。

为什么要选择Stable Diffusion

上面提到过,扩散模型或者说AI绘画技术那么多,为什么要选择Stable Diffusion?

Stable Diffusion同样作为扩散模型,优势在于Latent,在学习Stable Diffusion原理的过程中,总是围绕着latent。部分扩散模型在图像空间(Image Space)进行运算,而上面提到的Imagen和DALL-E扩散模型都在像素空间(Pixel Space)中,来使模型更快。

如果模型在图像空间和像素空间进行的,一个512×512的图像,有三个颜色通道(红绿蓝),就是一个786432维度的空间,个人电脑上GPU是不可能提供足够的计算能力。

但是Stable Diffusion会将图片进行编码(encode),然后放到一个4×64×64的潜在空间(Letent Space)计算,这也就是为什么普通的个人电脑可以运行Stable Diffusion的原因。换句话说:不是我不选择其他的,是选择了也用不了

如何使用Stable Diffusion

我在学习Stable Diffusion的过程中,看到官网提供了很多online的免费网站(例如:Playground AI、Dream Studio等)可以去使用AI绘画功能,但是很可惜都是在外网,所以访问不了。

而国内的一些基本上都是需要充值才能使用。所以对于大部分人来说,自己动手搭建一套Stable Diffusion是比较最佳方案。

Stable Diffusion部署后,如果想直接使用还是有些难度的。国内一名大佬秋葉aaaki提供了Stable Diffusion的集成客户端/安装包,同时基于Stable Diffusion部署后,如果想直接使用还是有些难度的。

国内一名大佬秋葉aaaki基于开源Stable Diffusion WebUi,简称AUTOMATIC1111,集成了Stable Diffusion的客户端/安装包,同时基于只要配置环境、下载之后,就可以一键使用启动器傻瓜式运行。所以对使用者来说,甚至不了解Stable Diffusion,都可以使用。

所以大部分人,学到这里就可以去下载Stable Diffusion WebUi,去玩AI绘画了。

整合包安装

2024年1月更新了v4.6版本,无需下载python、git和cuda就能解压即用,我之前用的是v3版本,配置cuda费了挺多的时间。

cuda是Nvidia开发的一种编程接口,安装之后stable diffusion才能使用GPU(显卡)进行计算。同时还安装了一个用于深度神经网络的GPU加速库cudnn。最后就是安装python的torch和tensorflow-cpu模块。

不过有了v4.6版本之后,上面的步骤都去掉了(我之前鼓捣了一晚上,泪崩!),直接下载解压,一键启动。

启动之后,就会自动在浏览器打开web页面,一共两页才能翻到底。

从页面里可以看到有模型、VAE、Clip、提示词等众多参数,如何配置才能生成我们想要图片?为什么这样配置?这都是我们要思考和学习的,所以抱着这种目的开始找资料学习stable diffusion。

上面在讲stable diffusion功能时,用了一个苹果的案例,看看在webui中如何复现。我从网上随便找了一个苹果图片,然后使用prompt(apple,green,4k)和controlNet完成了图生图。

prompt、vae、controlNet都是stable diffusion学习中比较常用的名词,我在接下来的学习过程中就要去了解学习。

结语

这算是一个反向学习的过程,从需求结果出发,然后去开始学习理论。不过我刚开始就是学的理论,去看博客、找资料,整体地了解了Stable Diffusion是一个什么样的架构,工作流程和原理是怎么样的后来就是结合webui接着学的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值