首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人工智能,丹青圣手,构建Stable-Diffusion-WebuiAI绘画教程(Python3.10/Pytorch1.13)

世间无限丹青手,遇上AI画不成。最近一段时间,可能所有人类画师都得发出一句“既生瑜,何生亮”的感叹,因为AI 绘画通用算法Stable Diffusion已然超神,无需美术基础,也不用经年累月的刻苦练习,只需要一台电脑,人人都可以是丹青圣手。

本次我们全平台构建基于Stable-Diffusion算法的Webui可视化图形界面服务,基于本地模型来进行AI绘画操作。

本地安装Stable-Diffusion-Webui

如果系统之前安装过Python3.10或者使用过Pytorch深度学习框架,那么推荐直接本地安装Stable-Diffusion-Webui,因为Stable-Diffusion的核心依赖库也是Pytorch。

首先拉取官方的项目:

随后进入项目的目录:

官方文档建议直接在目录中运行shell脚本:

但事实上,shell脚本很容易在过程中报错,该项目的核心代码其实是launch.py,所以理论上,我们只需要正常运行launch.py文件即可。

首先确保本机的Python版本号大于等于3.10.9

关于Python3.10的安装,请移玉步至:一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境[1],这里不再赘述。

另外确保Pytorch的版本号大于等于13.1.0,关于Pytorch,请移步:闻其声而知雅意,M1 Mac基于PyTorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)[2]

随后安装相关的依赖库:

依赖文件中,有一个库可能会出问题,就是GFPGAN,它是腾讯开源的人脸识别模块,这里推荐使用GFPGAN官方网站(https://github.com/TencentARC/GFPGAN)的安装方式:

安装成功后,最好验证一下:

所有依赖安装成功后,就可以直接运行launch.py文件即可:

程序返回:

Stable-Diffusion-Webui服务会运行在系统的7860端口上。

需要注意的是,如果本地系统不支持cuda模式,需要修改运行命令:

这里使用CPU来进行模型训练。

另外如果是M系列的Mac,其实是支持MPS模式的,但Stable Diffusion目前的最新版并不支持MPS,所以需要单独设置环境变量,关闭MPS模式:

最后访问http://127.0.0.1:7860即可,本地构建Stable-Diffusion-Webui服务就完成了。

Docker构建Stable-Diffusion-Webui

如果不想太折腾,也可以使用Docker容器来构建Stable-Diffusion-Webui,同样地,需要拉取线上的Docker配置文件项目:

随后进入项目的目录:

接着运行命令下载相关的依赖镜像:

下载完成后,运行命令构建容器:

这里需要注意的是,模型数据和输出文件夹会以/data和/output的形式挂载到容器中,如果想在宿主机往容器内传入模型或者其他图片,需要写入项目中的data目录。

过程中,可能会报错:

这是因为容器内找不到NVIDIA的显卡驱动。

这里需要单独再启动一个容器服务:

总的来说,安装过程简单,但是调试比较费劲,一旦启动出问题,就得进入容器内部修改代码,或者反复修改Dockerfile文件,所以Docker比较适合封装业务改动频繁的容器,而不是依赖环境繁多并且版本需要反复调整的场景。

Stable-Diffusion-Webui图像绘制

配置好Stable-Diffusion-Webui环境之后,访问http://127.0.0.1:7860:

在Prompt文本框中填入引导词:

随后点击右侧Generate生成按钮即可,这里引导词的意思是:高楼林立,人群熙熙攘攘,车水马龙,光影交错,城市之美尽显眼前。

注意引导词需要使用逗号分隔。

后端开始进行训练:

片刻之间,挥毫落纸如云烟。

遗憾的是,引导词不支持中文,但可以配置权重,数值从0.1~100,默认状态是1,低于1就是减弱,大于1就是加强:

Stable-Diffusion-Webui也支持Negative prompt(反向引导词)。

就是用文字描述你不想在图像中出现的东西:

对图片进行去噪处理,使其看起来更像你的提示词;同样使其看起来更像你的反向提示词。

同时观察正方向两者之间的差异,并利用它来产生一组对噪声图片的改变,将最终结果移向前者而远离后者。

默认通用反向引导词:

除了引导词,还可以调整采样迭代步数 (Sampling Steps)。

系统先随机生成一个基础的图片,然后一步步的调整图片,向引导词 Prompt 靠拢

Sampling Steps参数就是告诉人工智能,这样的步骤应该进行多少次。

次数越多,每一步训练也就越小越精确。当然了,成本也会越高,同时每一次训练的时间也会成同比增长。

除了迭代步数,也可以自由地选择采样方法(Sampling method)

也就是让Stable-Diffusion-Webui具体使用用什么算法来训练图片模型。

默认算法是Euler a :富有创造力,不同步数可以生产出不同的图片。 但是超过30步左右基本就没有实质化的增益效果。

Euler算法:最简单的算法,训练速度也是最快的。

LMS算法:Euler的延伸算法,相对更稳定一点,30步就比较稳定了

PLMS:优化过的LMS算法

其他的一些参数:

生成批次Batch count/n_iter:同样的配置,循环跑几次

每批数量 Batch size:同时生成多少个图像,增加这个值可以并行运行,但也需要更多的显卡显存。

提示词相关性 CFG Scale:图像与引导词匹配程度。增加这个值将导致图像更接近引导词,但过高会让图像色彩过于饱和。一般在5~15之间为好,7,9,12是3个常见的设置值。

宽度 X 高度 Width X Height:单位是像素,适当增加尺寸,后台会试图填充更多的细节进来。

Stable-Diffusion-Webui定制化模型

Stable-Diffusion-Webui默认下载的基础模型在项目目录的models/Stable-diffusion文件夹中:

模型名称是v1-5-pruned-emaonly.safetensors,体积是4.27GB。

如果需要一些比较有个性定制化模型,可以在civitai.com平台进行挑选和下载,需要注意的是,该平台上的模型鱼龙混杂,良莠不齐,不能说是蔚为大观,但多多少少有点泥沙俱下的意思,所以最好不要在比较正式的公共(工作)环境打开该平台,否则结果可能会令人非常尴尬。

这里我们选择相对比较潮流的赛博朋克风格模型:synthwavepunk

将下载的模型放入models/Stable-diffusion目录。

随后重启Stable-Diffusion-Webui服务:

在页面表单中的Stable Diffusion checkpoint选项里选择对应的模型:

引导词:

concept art, 4k, intricate, pinup, a woman, beautiful face, embroidery, lace, hyper-realistic, highly detailed, octane render, concept art, smooth, 8k, dancing princess, snthwve style, nvinkpunk, by jeremy mann, by sandra chevrier, by dave mckean and richard avedon and maciej kuciara

训练结果:

好了,现在,你已经知晓那些网络上的漂亮小姐姐是怎么生成的了。

结语

也许我们只是偶尔被网络上那些酷炫而猎奇的AI生成图所吸引,但如果你真的动手去搭建、调试、甚至开始训练属于自己的绘画模型,相信我,你马上就会深陷其中,不能自拔,AI仿若可以满足你所有的幻想,欲望满溢,又欲言又止,分寸把握之精确,妙入毫颠。什么?你还在玩那些无聊的电子游戏?相信我,Stable-Diffusion-Webui才是最高级的精神享受,没有之一,也不可替代。

引用链接

一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境:https://v3u.cn/a_id_200

闻其声而知雅意,M1 Mac基于PyTorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10):https://v3u.cn/a_id_272

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230303A00XHR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券