苹果M1芯片上运行Stable Diffusion,生成图片只需15秒,几步搞定

简介: 苹果M1芯片上运行Stable Diffusion,生成图片只需15秒,几步搞定

最近由慕尼黑大学等机构新出的文本 - 图像模型 Stable Diffusion,可谓是火出了圈,生成的图片妥妥达到大片级别:

生物的进化

Stable Diffusion 可以在消费级 GPU 上的 10 GB VRAM 下运行,并在几秒钟内生成 512x512 像素的图像,无需预处理和后处理。

最重要的是,Stable Diffusion 是开源的,任何人都可以运行和修改它。

更是有研究者将其和 Web UI「拼在」一起,两者组合成绘画工具,让没有系统学习过 UI 知识的你,也可以上手操作。无需手动输入参数,调整滑块就可以了:

在城堡外面安排一名侍卫,并让一位骑马的战士奔向城堡

你可能也想上手体验一把 Stable Diffusion 带来的创作体验,但困于资源有限,实现不了?不用担心,在云上就能运行 Stable Diffusion,此外,对于有能力的小伙伴,也可以本地运行。

想要本地运行的话,可能就有点复杂了,比如在 M1 Mac 的 GPU 上工作就有点棘手。这里,本文将介绍一种简单指南来告诉你如何做到这一点。

实现过程

首先你需要带有 M1 或 M2 芯片的 Mac;其次是 16GB RAM,假如是 8GB RAM 的话,运行会非常慢;最后是 macOS 12.3 或更高版本。

先决条件准备好后,接下来就是设置 Python 了,版本为 Python 3.10。不知道 Python 版本的,可以运行 python -V 查看:



$ python3 -V                                                                                       !11338Python 3.10.6


假如你的 Python 是 3.10 或是更高版本,接下来的一步就可以跳过。否则你需要安装 Python 3.10,最简单的方法就是使用 Homebrew。安装方法如下:



brew updatebrew install python


克隆存储库并安装依赖项

Python 安装好后,接下来就是安装 Stable Diffusion:




git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.gitcd stable-diffusionmkdir -p models/ldm/stable-diffusion-v1/


这里需要先设置 virtualenv 来安装依赖项:



python3 -m pip install virtualenvpython3 -m virtualenv venv


然后激活 virtualenv:


source venv/bin/activate


激活后,安装依赖项:


pip install -r requirements.txt


如果你看到类似于「Failed building wheel for onnx」的错误,你可能还需要安装这些包:


brew install Cmake protobuf rust


下载权重

转到 Hugging Face 存储库,阅读许可证,然后单击「Access repository」。在该页面上下载 sd-v1-4.ckpt (~4 GB) ,并将其保存在 models/ldm/stable-diffusion-v1/model.ckpt 目录中。

Hugging Face 存储库地址:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

一切准备就绪,Stable Diffusion 就能运行起来了:




python scripts/txt2img.py \  --prompt "a red juicy apple floating in outer space, like a planet" \  --n_samples 1 --n_iter 1 --plms


输出结果保存在 outputs/txt2img-samples / 目录中,就像这样:


整个过程大约 15 秒就能生成 512x512 图像:

一些链接:

云运行 Stable Diffusion:https://replicate.com/blog/run-stable-diffusion-with-an-apistable-diffusion GitHub:https://github.com/magnusviri/stable-diffusion本文参考链接:https://replicate.com/blog/run-stable-diffusion-on-m1-mac


相关文章
|
存储 SQL Java
bigdata-18-Hive数据结构与存储格式
bigdata-18-Hive数据结构与存储格式
274 0
|
计算机视觉 iOS开发 MacOS
Alfred Clipboard History 回车自动粘贴失效
Alfred Clipboard History 回车自动粘贴失效
1931 0
Alfred Clipboard History 回车自动粘贴失效
|
机器学习/深度学习 虚拟化
|
9月前
|
Kubernetes 安全 虚拟化
VMware Fusion 13.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Fusion 13.6.3 发布下载,现在完全免费无论个人还是商业用途
17456 10
VMware Fusion 13.6.3 发布下载,现在完全免费无论个人还是商业用途
|
Java
Java“NullPointerException”解决
Java中的“NullPointerException”是常见的运行时异常,发生在尝试使用null对象实例的方法或字段时。解决方法包括:1. 检查变量是否被正确初始化;2. 使用Optional类避免null值;3. 增加空指针检查逻辑。
2097 2
|
数据采集 XML 数据库
使用Python爬取网站数据并进行图像处理
在互联网时代,网站数据是一种宝贵的资源,可以用于分析、挖掘、展示等多种目的。但是,如何从海量的网页中提取我们需要的数据呢?Python是一种强大而灵活的编程语言,它提供了许多用于爬虫和图像处理的库和工具,可以帮助我们实现这一目标。本文将介绍如何使用Python爬取网站数据并进行图像处理的基本步骤和方法。
990 0
使用Python爬取网站数据并进行图像处理
|
开发框架 供应链 JavaScript
一个简单、功能完整的开源WMS​仓库管理系统
一个简单、功能完整的开源WMS​仓库管理系统
1170 0
|
人工智能 异构计算 Python
Stable Diffusion云端部署只需三步, 不吃电脑配置, 模型快速部署
Stable diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。具体来说,得益于Stability AI的计算资源支持和LAION的数据资源支持,Stable Diffusion在LAION-5B的一个子集上训练了一个Latent Diffusion Models,该模型专门用于文图生成。
11676 3
|
前端开发 JavaScript Python
Web实战:基于Django与Bootstrap的在线计算器
Web实战:基于Django与Bootstrap的在线计算器
533 0
|
Docker 容器
教大家用云服务器搭建自己的云盘 可离线下载 可在线看片
随着迅雷远程离线下载的关闭,某度网盘不开会员又没速度,下载一些冷门资源的时候,看着几kb甚至几B的情况是不是很绝望? 别担心,小编教大家如何自建网盘,摆脱限速和无法远程离线下载的限制。
84368 0