Skip to content

Commit 1da5727

Browse files
committed
add. _posts\2024-09-22-Stable-Diffusion.md
1 parent deb61ae commit 1da5727

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed

_posts/2024-09-22-Stable-Diffusion.md

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: 「折腾」落后两年的 Stable Diffusion 搭建笔记
3+
date: 2024-08-31 15:00:53
4+
tags:
5+
- Python
6+
- AI_生图
7+
categories:
8+
- 电脑网络
9+
id: 685
10+
alias: 20220812894
11+
---
12+
13+
### 开场跑题是作者的定势
14+
15+
不管是电脑还是手机,好像我的设备都是略落后时代的,主力是 2016 年的华硕 R557L,姑且是原装 8GB 内存,电池很早就鼓包换掉了,硬盘先是换了全新的 1TB 机械,后来又换成了二手 500GB SSD;
16+
17+
<!--more-->
18+
19+
有收过一台 Surface Pro 4 作为备用,走的拍拍平台,,30 天保障期刚过就出屏幕闪烁问题,才知道是这代机子的通病,扯皮一通后没也给退,买了外接屏终究是不方便,后边用外甥的教育优惠买了官翻 Pro 7,旧机就扔给了外甥;
20+
21+
本想着苏菲当主力,华硕作为备用不需要太大硬盘,然而平板的散热实在捉急,又换回笔记本当主力,好在硬盘换固态后体验好了不少,1TB 外接使用;
22+
23+
其实更早已经淘汰的华硕 F81se 的硬盘有留着,加上 R557L 最早的那块,两块 500GB 机械想着利用起来,然后也时值小主机兴起;
24+
25+
先收了台 nuc4,不好说价格划不划算,卖家没出硬盘,另外收的,总共 550,又买了 mini dp 转 hdmi,自己的旧硬盘当数据盘,几年下来不好说发挥了啥作用,总之能开机;
26+
27+
所以这时候是一个「如果」,如果当时能接受它加两块 500GB 机械硬盘,一块塞进去一块外接,甚至两块都外接使用。。。
28+
29+
然而我想着能把两块到塞进去使用,然后再用上系统的软 RAID,为此收了台华硕 VC66,1200 块带内存和 256GB 系统盘,翻车,「不要怕,还在保」,,然而售后被拒。。
30+
31+
其实当时京东上微星也有款双 2.5 盘位的主机,1900 块,「如果当时能加 700 预算.jpg」
32+
33+
还有就是,最早那两块 500GB 硬盘并不支持组 RAID,不过不久后我哥换电脑把旧的给我了,联想 e450,换了块京东京造的 ssd,最终三块机械两块外接在 e450 上组阵列,剩下那块塞 nuc4 里,,,关键我还用的 RAID 1,BT 下载有啥用镜像的必要么?然而看完就删也更用不到 1TB 的 RAID 0。。。。。
34+
35+
最后的前不久,剁手了机械师的小主机,补贴加优惠后 2944.41,,其实也想过要买游戏本的话预算至少要加两千,然而仔细又仔细考虑,实在没有需求,,,甚至机械师这台目前除了 win11 不习惯外还还算满意,,,然而问题就是好像用不上。。。。
36+
37+
「- -」这一节马上就说完了.jpg「- -」
38+
39+
当前因为 Pro 4 买的便携屏姑且作为笔记本的外接屏使用,后边各种小主机管理时也是用它,然而把新的小主机当主力机的话双屏体验就没了。。所以买小主机时一并买了硬件采集卡,想着串流屏幕到笔记本上,然而实际效果还不用远程控制,,这已经是硬件方案了。。。正好昨天又了解到 Sunshine + MoonlightSetup,效果更是不太行。。
40+
41+
总之现在还是向日葵远程为主,,外接屏同时有 Type-C 接口,也支持触摸可以需要时切换使用。。。没有屏幕的设备远程使用也很麻烦,所以会有显卡欺骗器这种东西,VC66 也买了,然而问题是我为毛要买 DVI 接口的,现在只有 HDMI 和 DP 也用不上,虽然现在 C 口接显示器也是一样效果;
42+
43+
### 本文主题
44+
45+
> VSCode 中,ctrl + k O 可以在新窗口打开当前文件,好像现在这个窗口现在不是独立,工作区切换后也会关掉,说这个是因为我先在一个文件里记录了装 sd 的笔记,然后要换工作区整理成博文。。
46+
47+
因为我并没有按 ¥5000+ 的预算,所以是没有独显的,所以本文以此为前提。。另外本人姑且有 Git,Python 之类的基础知识,浏览器有代理。。。
48+
49+
1、使用的部署项目如下:
50+
51+
> AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
52+
>
53+
> [https://github.com/AUTOMATIC1111/stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui "AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI")
54+
55+
2、项目指定了 Python 3.10.6,直接 exe 安装:
56+
57+
- [https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe](https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe "Python 3.10.6")
58+
- 好像是因为更高版本不支持 `torch` ← 这个东西在安装时也是比较费时;
59+
60+
3、克隆项目到本地:
61+
62+
```bash
63+
git clone git@github.com:AUTOMATIC1111/stable-diffusion-webui.git _sd
64+
65+
```
66+
4、修改脚本参数:
67+
68+
依赖安装及程序运行理论上都只需要运行 `webui-user.bat` 就好,然而这里先对其进行修改,另外后续步骤是我在处理各种错误后复盘整理而来,建议先手动解决后再执行;
69+
70+
↓↓ 在原始文件内添加 `--skip-torch-cuda-test --no-half` 参数,如果你在 GPU 可以不改 ↓↓
71+
72+
```bash
73+
@echo off
74+
75+
set PYTHON=
76+
set GIT=
77+
set VENV_DIR=
78+
set COMMANDLINE_ARGS=--skip-torch-cuda-test --no-half
79+
80+
call webui.bat
81+
82+
```
83+
84+
**重要:无论是否修改都先不要执行,因为有各种报错需要手动处理**
85+
86+
5、下载并安装 `CLIP`
87+
88+
> 脚本安装会下载不到,所以浏览器下载后安装,下边链接是脚本执行时出现的:
89+
>
90+
> `https://codeload.github.com/openai/CLIP/zip/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1`
91+
92+
下载后保存为 `clip.zip` 到项目根目录,然后执行:
93+
94+
```bash
95+
# PowerShell,虽然不清楚用 venv 和全局命令有什么区别
96+
.\venv\Scripts\python.exe -m pip install clip.zip --prefer-binary
97+
98+
```
99+
100+
6、下载 `openai/clip-vit-large-patch14`
101+
102+
```bash
103+
# 直接在根目录下执行
104+
git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git openai/clip-vit-large-patch14
105+
106+
```
107+
108+
如果缺少这个会报下边错误:
109+
110+
> OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'. If you were trying to load it from `https://huggingface.co/models`, make sure you don't have a local directory with the same name. Otherwise, make sure 'openai/clip-vit-large-patch14' is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.
111+
112+
7、提前下载好一个模型:
113+
114+
好像可以到「[ModelScope](https://www.modelscope.cn/home "魔塔社区")」平台下载,我参考的教程推荐了「[chilloutmix\_NiPrunedFp32Fix](https://www.modelscope.cn/models/TheKernelZ/chilloutmix_NiPrunedFp32Fix/files "chilloutmix\_NiPrunedFp32Fix")
115+
116+
```bash
117+
# 这里使用平台的 CLI 工具下载,另外这个 CLI 好像本身好像就能执行模型调用??
118+
pip install modelscope
119+
120+
# 模型的下载 · 文档中心
121+
# https://modelscope.cn/docs/%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%B8%8B%E8%BD%BD
122+
123+
# 指定下载路径时好像不会额外创建子文件夹,把模型名再加一遍
124+
modelscope download --model TheKernelZ/chilloutmix_NiPrunedFp32Fix --local_dir './local_dir/chilloutmix_NiPrunedFp32Fix'
125+
126+
# 下载后移动模型文件夹到 _sd\models\Stable-diffusion 内
127+
# 或者直接指定下载路径:--local_dir './models/chilloutmix_NiPrunedFp32Fix
128+
129+
```
130+
131+
8、最后执行 `webui-user.bat`
132+
133+
· 其他报错:
134+
135+
如果没有上边「第 4 步」的修改,执行时就会报下边错误 ——
136+
137+
> RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
138+
139+
> RuntimeError: "addmm_impl_cpu_" not implemented for 'Half'
140+
141+
142+
### 另一个文生图工具
143+
144+
其实之前知道了一个开箱即用的工具,把一些东西进行了封装,基本上下载然后解压就行,只是窗口设计上不科学的地方实在略多,连运行计时都没有;
145+
146+
> 万象生图
147+
>
148+
> [https://support.qq.com/product/637894](https://support.qq.com/product/637894 "万象生图")
149+
150+
还有就是使用网盘提供下载,没会员的话实在是难受,,姑且提供了一个 Resilio Sync 分享:
151+
152+
> 正好发现它刚更新了程序,下载后会更新到分享里;
153+
>
154+
> BNYMP5JH5HMFMUPTX5TVSXDIGCNUQBOR3
155+
156+
### 发电赞助
157+
158+
> 沉冰浮水正在创作和 Z-BlogPHP 相关或无关的各种有用或没用的代码 | 爱发电
159+
>
160+
> [https://afdian.com/a/wdssmq](https://afdian.com/a/wdssmq "沉冰浮水正在创作和 Z-BlogPHP 相关或无关的各种有用或没用的代码 | 爱发电")

0 commit comments

Comments
 (0)