最近开源社区里最火的项目肯定有Stable Diffussion
一个席位。作为一个AI通过文本描述绘画
的开源项目,其优秀的生成结果和极快的生成速度也让它在AI绘画
项目中一夜封神。
不过遗憾的是,这类AI项目要在苹果公司的自研芯片m1/m2上运行有点麻烦。虽然技术社区有一些文档和教程,但要真正跟着教程把项目所需的环境部署好,还是要爬很多坑的。我把整个爬坑的过程记录下来,希望能对所有使用m1/m2芯片mac的朋友有所帮助。大家都应该体验下这个如此有趣的项目。
注意:学会科学上网是必须的,不然各种依赖的安装速度能慢哭你。
我们需要Python3.10
来运行Stable Diffusion
。如何确定你电脑中Python
的版本呢?
打开终端输入:
python3 -V
#output Python 3.10.6
如果输出的Python
版本是3.10及以上的话,就可以继续下一步了。如果还不是的话,就需要我们更新Python
。
我们可以通过安装Homebrew来安装或更新Python。
brew update
brew install python
在进行下面的步骤前,请务必确保你电脑中Python
版本大于3.10。
首先我们需要克隆Stable Diffusion
这个项目仓库
git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git
cd stable-diffusion
mkdir -p models/ldm/stable-diffusion-v1/
然后创建并激活python
的虚拟环境
python3 -m pip install virtualenv
python3 -m virtualenv venv
source venv/bin/activate
注意以下这行代码
source venv/bin/activate
每次我们打开终端想要运行Stable Diffusion
的时候,都需要先使用它!
接下来,安装此项目所需的依赖
pip install -r requirements.txt
在安装过程中如果看到一些错误类似Failed building wheel for onnx
,我们可以通过brew安装这些系统包来解决
brew install Cmake protobuf rust
前往 Hugging Face repository ,点击Access repository
按钮。(可能需要先注册一个账号)
然后在该页面上下载sd-v1-4.ckpt
(约4 GB大小),将其重命名为model.ckpt
并保存至上面创建的目录models/ldm/stable-diffusion-v1
中。
*请确保以下路径的有效性models/ldm/stable-diffusion-v1/model.ckpt
如果以上步骤都没有报错(这不太可能!),那么我们就可以在终端中输入以下内容让AI为我们绘画了
python scripts/txt2img.py \
--prompt "a monkey riding a horse in outer space, like a knight" \
--n_samples 1 --n_iter 1 --plms
其中prompt
参数最为关键,AI会通过这个参数中的文字描述来进行绘画,你怎么描述,它就怎么画!
比如:
python scripts/txt2img.py \
--prompt "Asia girl, glossy eyes, face, long hair, fantasy, elegant, highly detailed, digital painting, artstation, concept art, smooth, illustration, renaissance, flowy, melting, round moons, rich clouds, very detailed, volumetric light, mist, fine art, textured oil over canvas, epic fantasy art, very colorful, ornate intricate scales, fractal gems, 8 k, hyper realistic, high contrast" \
--plms --ddim_steps 100 --H 512 --W 512 --seed 8
我的m1 max 64G内存需要花20秒左右,在运行结束之后,就可以去outputs/txt2img-samples/
查看AI绘制的画作了。
下面所有的图都是AI通过这个描述画出来的,我觉得这个技术可以称之为“脑补技术”。
在pip install -r requirements.txt
这一步里,安装依赖taming-transformers
时始终报错。
解决办法:不管它,直接开始运行。
手动安装所有遗漏的依赖
由于pip install -r requirements.txt
时报错了,所以有一些依赖没有安装上。在运行的时候会这些缺失的依赖会一一提示
ModuleNotFoundError: No module named 'PIL'
每当遇到这类问题的时候,我们都手动安装一下依赖包
pip install pillow
需要注意的是,提示缺失的依赖包名称和安装时的名称并不完全一致,比如PIL
实际的包名称叫pillow
,imwatermark
叫做invisible-watermark
等。
3. `NotImplementedError: The operator 'aten::index.Tensor' is not current implemented for the MPS device`
遇到这个问题时,我们需要设置一个环境变量`PYTORCH_ENABLE_MPS_FALLBACK`,值为1
export PYTORCH_ENABLE_MPS_FALLBACK=1
微信里搜 “大帅老猿” ,分享更多有趣的前沿技术