苹果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


相关文章
|
人工智能 机器人 测试技术
使用LM Studio在本地运行LLM完整教程
GPT-4被普遍认为是最好的生成式AI聊天机器人,但开源模型一直在变得越来越好,并且通过微调在某些特定领域是可以超过GPT4的。
7312 1
|
存储 SQL Java
bigdata-18-Hive数据结构与存储格式
bigdata-18-Hive数据结构与存储格式
347 0
|
安全 数据安全/隐私保护
【密码学】一文读懂线性反馈移位寄存器
在正式介绍线性反馈移位寄存器(LFSR)之前,先来看一个小故事,相传在遥远的古代,住着4个奇怪的人。
2126 0
【密码学】一文读懂线性反馈移位寄存器
|
数据采集 XML 数据库
使用Python爬取网站数据并进行图像处理
在互联网时代,网站数据是一种宝贵的资源,可以用于分析、挖掘、展示等多种目的。但是,如何从海量的网页中提取我们需要的数据呢?Python是一种强大而灵活的编程语言,它提供了许多用于爬虫和图像处理的库和工具,可以帮助我们实现这一目标。本文将介绍如何使用Python爬取网站数据并进行图像处理的基本步骤和方法。
1078 0
使用Python爬取网站数据并进行图像处理
|
编解码 Dart 网络协议
Flutter如何玩转超低延迟RTSP/RTMP播放,跨平台视频流体验大升级,让你的应用秒变直播神器!
【9月更文挑战第3天】Flutter作为谷歌推出的跨平台移动UI框架,凭借高性能和丰富的生态系统广受好评。本文详细介绍如何在Flutter应用中实现低延迟的跨平台RTSP/RTMP播放,并提供具体示例代码。首先介绍了如何使用`flutter_vlc_player`播放RTSP流,然后讨论了优化视频播放以降低延迟的方法,包括调整播放器配置等。通过选用合适的播放器插件并进行优化,Flutter可在视频流播放领域提供卓越的用户体验。随着生态的发展,Flutter有望成为视频流媒体开发的首选框架。
1920 6
|
机器学习/深度学习 存储 人工智能
从16-bit 到 1.58-bit :大模型内存效率和准确性之间的最佳权衡
通过量化可以减少大型语言模型的大小,但是量化是不准确的,因为它在过程中丢失了信息。通常较大的llm可以在精度损失很小的情况下量化到较低的精度,而较小的llm则很难精确量化。
457 0
|
网络协议 关系型数据库 MySQL
群晖NAS 安装 MySQL 远程访问连接
群晖NAS 安装 MySQL 远程访问连接
881 0
|
Ubuntu Linux 虚拟化
如何实现VMware下Ubuntu系统和Windows系统文件之间的复制和粘贴?
解决办法非常简单,只需要在虚拟机上安装一下VMware Tools即可。 第一步,打开虚拟机(我使用的虚拟机是ubuntu-16.04-desktop-amd64) 第二步,点击 VMware菜单栏 中的 虚拟机 --> 安装VMware Tools。
4759 0
|
人工智能 小程序 索引
用Python给我设计一个井字棋,对手是AI
用Python给我设计一个井字棋,对手是AI
388 0
|
资源调度 JavaScript 前端开发
Bun 1.0 正式发布,爆火的前端运行时,速度遥遥领先!
Bun 1.0 正式发布,爆火的前端运行时,速度遥遥领先!
812 0

热门文章

最新文章