欢迎重视微信大众号:FSA全栈行动
最近 AI 火的一塌糊涂,除了 ChatGPT 以外,AI 绘画领域也有很大的前进,以下几张图片都是 AI 制作的,你能看出来么?
一、环境搭建
上面的作用图其实是运用了开源的 AI 绘画项目 stable-diffusion
制作的,这是它的官方库房:
- github.com/CompVis/sta…
可是这个官方项目并不合适咱们这些新手直接运用,好在有一些基于 stable-diffusion
封装的 webui
开源项目,能够经过界面交互的方法来运用 stable-diffusion
,极大的降低了运用门槛,以下是几个比较火的 webui
项目:
- github.com/AUTOMATIC11…
- github.com/Sygil-Dev/s…
其中,AUTOMATIC1111
的 stable-diffusion-webui
是现在功用最多最好用的,强烈引荐,下面就来介绍怎么运用它。
1、下载项目
stable-diffusion-webui
没有发布可履行程序(比方:.exe
),咱们需求经过 git
的方法将整个工程源码拉下来运转:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
注:这个开源项目现在的更新频率很快,会不定期的修复一些 bug 或加入一些新功用,所以主张能够时常
git pull
拉取最新代码。
2、Python 环境
stable-diffusion-webui
主要是运用 Python 开发的,所以运转这个工程,需求装置一下 Python 环境并装备好环境变量,由于 Python 环境的装置很简单,这儿就不多说了,环境装备完结之后,能够经过以下指令检查 Python 的版别号,验证环境是否正常:
python --version
注意:官方引荐装置
Python 3.10.6
版别
别的,主张运用 Anaconda
管理多个 Python 环境,详见
- 官方的 conda 环境装置阐明:github.com/AUTOMATIC11…
- anaconda 常用指令:blog.csdn.net/ligous/arti…
3、CUDA 环境
默许 stable-diffusion-webui
运转运用的是 GPU 算力,也就是说需求用到 Nvidia 显卡(装备越高,绘图越快)。这儿咱们需求装置 CUDA 驱动,先确认一下电脑能装置的 CUDA 版别,桌面右下角->右键 NVIDIA 设置图标->NVIDIA 控制面板:
能够看到我的电脑的显示的是 NVIDIA CUDA 11.6.134 driver
,所以我的电脑要装置的 CUDA 版别不能超过 11.6。
注意:高版别显卡是能够装置低版别的 CUDA 驱动的,比方我也能够装置经典的 10.2 版别,可是装置 11.6 版别能够获得更高的 GPU 运转功率,所以一般来说引荐装置显卡支撑的最高 CUDA 版别。
在下面的网址中找到对应的 CUDA 版别进行装置:
- CUDA 官方归档:developer.nvidia.com/cuda-toolki…
直接选择 “精简” 装置就能够了,装置完结之后,能够运用如下指令检查 CUDA 版别,来验证 CUDA 是否装置成功:
nvcc --version
注:假如你没有 Nvidia 显卡,也能够经过给
stable-diffusion-webui
指定运转参数--use-cpu sd
,让其运用 CPU 算力运转,可是十分不主张你这么做,CPU 算力跟 GPU 算力比较简直天差地别,或许 GPU 只需求 10 秒就能制作完结,而 CPU 却要 10 分钟,这不是开玩笑的。别的,假如你的显卡内存不多,主张 4G 的显卡加上--medvram
发动参数,2G 的显卡加上--lowvram
发动参数。怎么装备发动参数咱们后边说。
4、发动项目
在装置装备好运转环境之后,直接运转工程下的 webui-user.bat
文件即可(假如是类 Unix 系统,则运转 webui-user.sh
)。首次发动会主动下载一些 Python 依靠库(具体哪些库请看工程下的 requirements.txt
) ,以及项目需求用到的装备和模型文件(比方:v1-5-pruned-emaonly.safetensors
,将近 4 个 G~),初始化一次之后,下次发动就快了。
Launching Web UI with arguments:
...
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
看到这个提示就阐明成功运转起来了,翻开网址就能够看到程序的运转界面了:
温馨提示:该项目是英文页面,能够运用浏览器的翻译功用转成中文来运用~
二、运用
stable-diffusion-webui
的功用许多,主要有如下 2 个:
- 文生图(
text2img
):依据提示词(Prompt)的描绘生成相应的图片。 - 图生图(
img2img
):将一张图片依据提示词(Prompt)描绘的特点生成另一张新的图片。
注:本文只解说文生图(
text2img
)功用,图生图(img2img
)后续有时机再出文章,喜欢的请多多点赞重视支撑一下 。
1、文生图(text2img
)
在开始运用文生图之前,有必要了解以下几个参数的含义:
参数 | 阐明 |
---|---|
Prompt | 提示词(正向) |
Negative prompt | 消极的提示词(反向) |
Width & Height | 要生成的图片尺寸。尺寸越大,越耗性能,耗时越久。 |
CFG scale | AI 对描绘参数(Prompt)的倾向程度。值越小生成的图片越违背你的描绘,但越契合逻辑;值越大则生成的图片越契合你的描绘,但或许不契合逻辑。 |
Sampling method | 采样方法。有许多种,但仅仅采样算法上有不同,没有好坏之分,选用合适的即可。 |
Sampling steps | 采样步长。太小的话采样的随机性会很高,太大的话采样的功率会很低,拒绝概率高(能够理解为没有采样到,采样的结果被放弃了)。 |
Seed | 随机数种子。生成每张图片时的随机种子,这个种子是用来作为确认分散初始状况的基础。不明白的话,用随机的即可。 |
以上对参数的解析源自以下文章:
- zhuanlan.zhihu.com/p/574063064
- baijiahao.baidu.com/s?id=175886…
接下来咱们来生成一张赛博朋克风格的猫咪图片,装备以下参数后,点击 “Generate” 即可:
Prompt:a cute cat, cyberpunk art, by Adam Marczyski, cyber steampunk 8 k 3 d, kerem beyit, very cute robot zen, beeple |
Negative prompt:(deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, flowers, human, man, woman
CFG scale:6.5
Sampling method:Euler a
Sampling steps:26
Seed:1791574510
注:提示词(Prompt)越多,AI 绘图结果会更加精准,别的,现在中文提示词的作用欠好,还得运用英文提示词。
重视
FSA全栈行动
微信大众号,回复 “赛博朋克猫咪” 可获得该原始作用图哦~❤️
2、模型文件
眼尖的你或许发现了,上面截图里左上角 Stable Diffusion checkpoint
的值怎么跟之前截图里的不相同?这是由于我换了一个模型文件,还记得前面提到那个将近 4 个 G 大小的模型文件(v1-5-pruned-emaonly.safetensors
)吗?那是 stable-diffusion-webui
的默许模型文件,用这个模型文件生成出来的图片比较丑,因此我换了另一个模型文件。模型文件下载的网站几个,比较出名的就是 civitai
,这上面共享的都是别人训练好的模型。
模型文件下载地址:
civitai
:civitai.com/- 默许的
v1-5-pruned-emaonly
:huggingface.co/runwayml/st…
依据你要生成的图片风格(比方:动漫、景色),选择合适的模型检查,前面那个文生图的比方,运用的就是这个 Deliberate
模型,直接点击 “Download Latest” 即可下载该模型文件。
注:模型文件有 2 种格局,分别是
.ckpt
(Model PickleTensor) 和.safetensors
(Model SafeTensor),据说.safetensors
更安全,这两种格局stable-diffusion-webui
都支撑,随意下载一种即可。
将下载好的模型文件放到 stable-diffusion-webui\models\Stable-diffusion
目录下:
放置好模型文件之后,需求重启一下 stable-diffusion-webui
(履行 webui-user.bat
)才能识别到。
这些模型文件一般会顺便一组作用图,点击恣意一张,就能够看到生成该作用图的一些参数装备:
把这些参数装备到 stable-diffusion-webui
中,点击 “Generate” 就能够生成类似作用的图片了。
注:由于 AI 绘图带有随机性质,所以生成出来的图片跟作用图不一定彻底相同。
文生图功用有许多东西能够发掘,你能够用它来生成世界上独一无二的图片,而要用好文生图功用,提示词(Prompt)是必须掌握的重中之重,它是有语法规则的,在此引荐两篇对 Prompt 具体阐明的文章:
- 全网 Stable Diffusion Prompt 运用技巧:www.bilibili.com/read/cv1990…
- Prompt 工具網站:www.accucrazy.com/prompt-tool…
三、工程装备
前面提到,stable-diffusion-webui
是能够装备发动参数的,这是官方的 wiki:
- 装备参数文档:github.com/AUTOMATIC11…
1、常用参数
这儿列几个常用的参数阐明一下:
参数 | 阐明 |
---|---|
–listen | 默许发动绑定的 ip 是 127.0.0.1 ,只能是你自己电脑能够拜访 webui,假如你想让同个局域网的人都能够拜访的话,能够装备该参数(会主动绑定 0.0.0.0 ip)。 |
–port xxx | 默许端口是 7860 ,假如想换个端口,能够装备该参数,例如:--port 8888 。 |
–gradio-auth username:password | 假如你期望给 webui 设置登录暗码,能够装备该参数,例如:--gradio-auth GitLqr:123456 。 |
–use-cpu | 默许运用 GPU 算力(需求 Nvidia 显卡),假如没显卡,能够装备该参数,改用 CPU 算力。 |
–medvram | 为低显存(比方:4G)启用模型优化,会牺牲一点速度。 |
–lowvram | 为极低显存(比方:2G)启用模型优化,会牺牲许多速度。 |
–autolaunch | 发动时主动翻开浏览器拜访 webui。 |
要装备这些参数很简单,翻开 webui-user.bat
,把你需求装备的参数添加到 COMMANDLINE_ARGS
后边即可:
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--listen --port 8888 --gradio-auth GitLqr:123456 --autolaunch
call webui.bat
2、API 接口服务
除了上述几个常用的参数外,还有一个特别的参数 --api
,能够在发动 stable-diffusion-webui
的一起,发动一个接口服务,在 COMMANDLINE_ARGS
后边追加上 --api
:
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--listen --port 8888 --gradio-auth GitLqr:123456 --autolaunch --api
call webui.bat
重启后在 url 后边加上 /docs
即可看到 api 请求阐明文档:
这样咱们就能够经过编写程序的方法,运用文生图、图生图等功用了,关于接口传参格局等要求,拜见官方 wiki:
- 官方 api 阐明文档:github.com/AUTOMATIC11…
假如文章对您有所协助, 请不惜点击重视一下我的微信大众号:FSA全栈行动, 这将是对我最大的鼓励. 大众号不仅有Android技术, 还有iOS, Python等文章, 或许有你想要了解的技能知识点哦~