AI 画师 - 搭建 Stable Diffusion 本地运行环境 (通用篇)

分享讨论IT相关的内容
回复
头像
BobMaster
锋芒初露
锋芒初露
帖子: 1186
注册时间: 2020年 12月 7日 08:05
来自: 神秘的东方
我的状态: 🎯
为圈友点赞: 338 次
被赞次数: 177 次
联系:

AI 画师 - 搭建 Stable Diffusion 本地运行环境 (通用篇)

帖子 BobMaster »

前期说明与准备

最近 AI 作画大火,很多人都想尝试,但苦于硬件条件不支持,这篇文章给你一个解决方案!
此教程为普适教程,哪怕你没有独立显卡,或独立显卡专用显存<4G,但也想跑 Stable Diffusion 模型。
  1. 无独立显卡的设备,如只有CPU+核显的笔记本
  2. 有独立显卡的设备,但显卡不支持Cuda或显存<4G,如英伟达mx150/250等
  3. 有amd独立显卡且显存大于4G的,但不会或不能在GNU/Linux下使用rocm的
简单的说,就是硬件配置不行,但也想本地将模型跑起来。(缺点就是生成速度相较有cuda加速的英伟达独立显卡慢了很多)
以下教程使用到的工具和软件
  1. Python 3.10.8
  2. Pycharm
你还需要安装如下库
  1. keras-cv
  2. tensorflow
  3. tensorflow-datasets
  4. 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
在线观看:https://cloud.bobmaster.cyou/s/zqXb4BGADpsLZG8 (windows下演示,101MB,24:18 全程无剪辑,建议多倍速观看)

第一步:创建工程文件

打开 pycharm ,在左上角处点击 File -> New Project,设置项目名称,然后点 create
图片

第二步:安装所需要的库文件

点击左上角处 File -> Settings -> Project:你创建的项目名称 -> Python Interpreter
图片
点击+号,分别搜索和安装 keras-cvtensorflowtensorflow-datasetsmatplotlib
图片

第三步:模型初始化

在工程目录下创建一个 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_noiseTensor of shape(形状张量),默认值为 None
seed用于生成随机噪点,默认值为 None
一般需要你变动的就是 prompt 提示词,其它参数默认即可,当然你可以根据需要进行修改,总之就是多玩。
每次修改完再次运行 main.py 即可。

macOS 下演示

如果你会用homebrew的话,可以忽略下面的安装步骤,自行安装 pythonpycharm 即可
下载 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 diffusionNovelAi 等第三方模型的使用,会用到流行的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/
人生如音乐,欢乐且自由
回复
  • 猜你喜欢
    回复总数
    阅读次数
    最新帖子

在线用户

正浏览此版面之用户: 没有注册用户 和 0 访客