前期说明与准备
最近 AI 作画大火,很多人都想尝试,但苦于硬件条件不支持,这篇文章给你一个解决方案!此教程为普适教程,哪怕你没有独立显卡,或独立显卡专用显存<4G,但也想跑 Stable Diffusion 模型。
- 无独立显卡的设备,如只有CPU+核显的笔记本
- 有独立显卡的设备,但显卡不支持Cuda或显存<4G,如英伟达mx150/250等
- 有amd独立显卡且显存大于4G的,但不会或不能在GNU/Linux下使用rocm的
以下教程使用到的工具和软件 你还需要安装如下库
- keras-cv
- tensorflow
- tensorflow-datasets
- matplotlib
代码: 全选
import keras_cv
import matplotlib.pyplot as plt
def plot_images(images):
plt.figure(figsize=(10, 10))
for i in range(len(images)):
ax = plt.subplot(1, len(images), i+1)
plt.imshow(images[i])
plt.axis("off")
def main():
model = keras_cv.models.StableDiffusion(img_width=512, img_height=512)
# model.text_to_image("文本提示词", batch_size=生成图片的数量, num_steps模型训练步长,缺省默认为25)
# 如 "photograph of an astronaut riding a horse"
# 如 "Cluttered house in the woods, anime, oil painting"
images = model.text_to_image("A Magic Moon + by Dustin Nguyen + Intricate --ar 100:235", batch_size=1, num_steps=20)
plot_images(images)
plt.show()
if __name__ == "__main__":
main()
windows 下演示
点击三角形展开内容python 和 pycharm 安装教程(已安装好的请跳过该步骤)
下载 python 3.10.8 : https://www.python.org/ftp/python/3.10. ... -amd64.exe下载 pycharm: https://www.jetbrains.com/pycharm/downl ... s&code=PCC
分别双击软件的安装包,安装 python 和 pycharm
视频教程
视频里改系统 Host 的原因是国内经常连不上 Github,在你没有配置学术上网环境的情况下,只能向大家展示这么一个“ugly”的临时解决方案了代码: 全选
140.82.121.3 github.com
185.199.111.133 raw.githubusercontent.com
第一步:创建工程文件
打开 pycharm ,在左上角处点击File
-> New Project
,设置项目名称,然后点 create
第二步:安装所需要的库文件
点击左上角处File
-> Settings
-> Project:你创建的项目名称
-> Python Interpreter
点击+号,分别搜索和安装
keras-cv
、tensorflow
、tensorflow-datasets
、matplotlib
第三步:模型初始化
在工程目录下创建一个 python 文件,随便取名,比如叫main.py
将前面提供的公共代码粘贴上去
点击右上角的
Run 'main.py'
按钮初次运行,会进行模型的下载、初始化等一些列操作,耐心等待
一些关于cuda的警告和错误可以忽略,因为在没有英伟达独显的情况下,我们只能用CPU跑
出现诸如URL fetch failure、getaddrinfo failed等错误,且有github字样的,是因为国内网络防火墙的缘故,你解析 Github 域名得到了错误或被阻断的ip,在没有学术上网的条件下,你只能改host解决这个问题
windows host 修改教程
在C:\Windows\System32\drivers\etc
目录下的hosts
文件中添加如下字段
代码: 全选
140.82.121.3 github.com
185.199.111.133 raw.githubusercontent.com
如果保存遇到权限问题,可以先将host文件拷贝到桌面,修改桌面上的拷贝,修改完后再将其复制并粘贴覆盖
C:\Windows\System32\drivers\etc
目录下的hosts
文件第四步:模型运算和参数修改
前面那一步如果正常完成了的话,未来继续跑该模型不需要再次下载了,将直接进入模型运算迭代的步骤。参数解析:
model.text_to_image(prompt, batch_size, num_steps, unconditional_guidance_scale, diffusion_noise, seed)
参数 | 解析 |
---|---|
prompt | 提示词,比如 prompt=""a magic moon" |
batch_size | 生成图片的数量,默认值为 1 |
num_steps | 每张图片生成所需要的步长,即模型迭代次数,用于控制图像质量,默认值为 25 |
unconditional_guidance_scale | 控制生成图像与提示词的依赖关系,越大生成图像与提示词越接近,但是噪点会增加,默认值为 7.5 |
diffusion_noise | Tensor of shape(形状张量),默认值为 None |
seed | 用于生成随机噪点,默认值为 None |
prompt
提示词,其它参数默认即可,当然你可以根据需要进行修改,总之就是多玩。每次修改完再次运行
main.py
即可。
macOS 下演示
如果你会用homebrew的话,可以忽略下面的安装步骤,自行安装python
和 pycharm
即可下载 Python : https://www.python.org/ftp/python/3.10. ... acos11.pkg
下载 pycharm: https://www.jetbrains.com/pycharm/download/#section=mac (下载社区版即可)
然后创建工程的步骤和前面基本相同。
视频教程(由于意外,录制不小心中断了,因此分为了两个部分)
part1: https://cloud.bobmaster.cyou/s/bXWBb4E2p9XgyT4 (macOS 下演示,时长 15:31,建议倍速播放 61.3MB)
part2: https://cloud.bobmaster.cyou/s/FopxLfxrGL3cXSz (macOS 下演示,时长 2:04,建议倍速播放 8.8MB)
GNU/Linux 下演示
代码和上面完全相同,装好相关库,跑起来就行,这里就不做重复的演示工作了总结
感谢 Google 的 keras_team 团队将 stable diffusion 进行了移植,使其能在CPU上跑起来,没有他们的贡献,就没有这篇教程。本篇文章主要针对普适设备,有 CPU 就可以跑起来,当然想要最好的体验还是得有一颗性能强劲的 GPU 。下篇文章将会介绍除
stable diffusion
外 ,其它的 waifu diffusion
、NovelAi
等第三方模型的使用,会用到流行的stable-diffusion-webui这个项目,当然前提是你有一颗性能足够的英伟达独立显卡,或支持 rocm
的 AMD 独显。此外关于如何书写提示词,可以参考这篇教程:Stable Diffusion: Prompt Guide and Examples
别人写好的提示词: https://prompthero.com/stable-diffusion-prompts
有英伟达独立显卡的可以阅读:keras-cv windows 下 cuda 配置教程及小专用内存显卡优化
参考资料:
1. https://keras.io/guides/keras_cv/genera ... diffusion/