您当前的位置: 首页 >  编程语言

使用 Macbook Air M2 (mem16GB) 创建环境并尝试 Stable-Diffusion (2022/8/24 版)

很长,总结一下 复制并粘贴我通过反复试验写的笔记。如果阅读困难,请见谅。 Macbook Air M2(内存 16GB),(可能)使用 GPU,学习模型使用 sd-v1-4.ckpt。 第一次输入以下命令后,大约1小时(约57分钟)输出了6张图片。 % python scripts/txt2img.py --prompt "一张猫入瓶子的照片" --plms 参考页 稳定扩散官方 Git 稳定扩散的apple-silicon-mps-support分支 学习数据分发站点 git 是必需的。还需要 Rust 进行编译
% brew install git rust
我试过迷你康达
% brew install miniconda
% conda -V
4.12.0
% conda init zsh
% source ~/.zshrc
% conda install -c conda-forge onnx
确保在源代码加载后您现在处于 miniconda 的(基本)环境中。你的 shell 提示符应该是 (base)。 使用 anaconda,您可能不会遇到这么多麻烦。 (嫌疑犯) 在基础环境中将 onnx 作为 conda 包安装。当我尝试使用 pip 从源安装 onnx 时,它会崩溃(我认为这是版本依赖,但我没有关注它,因为它很麻烦)。 克隆 M1/M2 Macbook 的稳定扩散分支
% git clone https://github.com/magnusviri/stable-diffusion.git
% cd stable-diffusion
% git checkout apple-silicon-mps-support
检查配置文件。重写(水印错误措施) 检查“environment-mac.yaml”的内容,如果不在“-pip:”条目中列出的模块中,则添加“invisible-watermark” 例如,您可能想在“--opencv-python”行下方添加“--invisible-watermark”。 如果您收到错误“importError: cannot import name 'WatermarkEncoder' from 'imWatermark'”,可能是因为没有包含“invisible-watermark”库。它似乎不是“imwatermark”库。 ……是陷阱吗? 使用配置文件构建环境。并切换
% conda env create -f environment-mac.yaml
% conda activate ldm
由于创建了目录“/opt/homebrew/Caskroom/miniconda/base/envs/ldm”并搭建了环境,如果搭建环境时出错,请删除该ldm目录重试。 在切换到 ldm 环境时将 shell 提示从 (base) 更改为 (ldm) 将单独下载的学习模型放置到位
% mkdir ./models/ldm/stable-diffusion-v1/
% mv ~/Downloads/sd-v1-4.ckpt ./models/ldm/stable-diffusion-v1/models.ckpt
txt2img.py 脚本执行失败,手工重写 我本可以使用 Patch 命令,但这次我手动重写了它。具体参考当前文件夹中“Patchfile”的内容 受制于: /opt/homebrew/Caskroom/miniconda/base/envs/ldm/lib/python3.10/site-packages/torch/nn/functional.py 在第 2511 行附近 路径可能略有不同,请自行查找

改变之前

return torch.layer_norm(input, normalized_shape, weight, bias, eps, torch.backends.cudnn.enabled)

更改后(仅重写部分输入 Honyalara)

return torch.layer_norm(input.contiguous(), normalized_shape, weight, bias, eps, torch.backends.cudnn.enabled)
让我们跑吧
% python scripts/txt2img.py -e "a photograph of a cat into a bottle" -plms
所需时间 Macbook Air M2(内存 16GB),使用 GPU,使用学习模型 sd-v1-4.ckpt。生成 1 组 6 张图像大约需要 1 小时的课程 您可以看到活动监视器中正在使用内置GPU,但似乎还有一些电量。 我使用了大约 18GB 的​​内存,所以换到 SSD 是速度变慢的主要原因。 去做 使用 anaconda 而不是 miniconda 构建环境可能更容易 使用torch的nightly build后,看来Macbook的GPU可以通过重写源代码来使用,所以我下次试试 使用单精度而不是双精度可能更快。是否有可能已经优化了一些分支? “我下次试试。” 我想知道的 什么是 plms 选项?

原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308624520.html