【Python】Mac 本地部署 stable-diffusion

其实要在本地部署 stable-diffusion 不难,只要有“魔法”一切都水到渠成,如下图:

(base) MacBook-Pro python % git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui  
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 31021, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 31021 (delta 13), reused 14 (delta 8), pack-reused 30997
Receiving objects: 100% (31021/31021), 33.57 MiB | 1.53 MiB/s, done.
Resolving deltas: 100% (21751/21751), done.

如果没有魔法就建议到 gitee 中找一下是否有对应的镜像仓库,我在 gitee 中找到的是:

https://gitee.com/ai-liam/AUTOMATIC1111-stable-diffusion-webui.git

接着就是通过 brew 进行必要软件的安装了…这个 homebrew 应该大家都有安装的吧,没有装的话可以到

https://github.com/Homebrew/brew/releases/tag/4.2.7

找到 Homebrew-4.2.7.pkg 进行下载安装。

之所以到 github 上找安装包安装是因为在 brew 官网是推荐使用脚本进行安装的,问题是这个脚本是需要“魔法”才能够访问的,因此还是上 github 找安装包吧。如果还是访问不了 github 就可以到以下的 gitee 地址进行安装

https://gitee.com/cunkai/HomebrewCN.git

安装完成之后就能够进行 stable-diffusion 项目所需的插件安装,如下图:

(base) MacBook-Pro python % brew install cmake protobuf git wget
Running `brew update --auto-update`...
Warning: Treating cmake as a formula. For the cask, use homebrew/cask/cmake
Warning: cmake 3.28.2 is already installed and up-to-date.
To reinstall 3.28.2, run:brew reinstall cmake
Warning: protobuf 25.2 is already installed, it's just not linked.
To link this version, run:brew link protobuf
Warning: git 2.43.0 is already installed and up-to-date.
To reinstall 2.43.0, run:brew reinstall git
Warning: wget 1.21.4 is already installed and up-to-date.
To reinstall 1.21.4, run:brew reinstall wget

由于我已经安装过了,因此显示的都是 reinstall 的提示。

再之后就可以下载训练好的模型放到指定的文件夹内。我这边推荐的是 Hugging Face 的 model(相对来说多而全),至于 Hugging Face 也是要“魔法”才能够访问。但是这难不倒万能的网友,我找到了一个国内 Hugging Face 的镜像网站

https://hf-mirror.com/

通过搜索就能够找到所需资源,如下图:

image.png
之后选择“Files and versions”就能够找到所需的模型直接下载即可,如下图:
image.png
我是选择后缀为 .safetensors 的来下载的。下载之后需要放入到以下路径:

${pwd}/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned.safetensors

即可,至此所有前期工作都已经完成。 如果你有其他想要的模型也可以使用相同的方式进行操作,这真的非常 nice!!

接下来就需要执行项目中的 webui.sh 脚本进行下一步的自动安装,一般到了这一步没有“魔法”基本都会报错,因为需要安装墙外的资源,这里就需要对脚本进行修改,具体的就是将国内源替换一下就好。

项目安装完毕,页面也可以正常打开了,但是运行时也许会报错,这大几率是因为项目没有检测到 cuda 驱动引起的(毕竟人家默认就是要使用 Nvidia 显卡来生图),但 Mac 是无法使用 Nvidia GPU,因此需要在启动的时候还需增加参数,如下图:

./webui.sh --skip-torch-cuda-test --precision full --no-half

这样就能够正常运行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端JavaScript篇之setTimeout、Promise、Async/Await 的区别

目录 setTimeout、Promise、Async/Await 的区别**setTimeout**:思路需要注意的 **Promise**:思路需要注意的 **Async/Await**:思路需要注意的 总结 setTimeout、Promise、Async/Await 的区别 setTimeout: 概念:setTimeout是JavaScript中的一个函数,用于…

Leetcode 3036. Number of Subarrays That Match a Pattern II

Leetcode 3036. Number of Subarrays That Match a Pattern II 1. 解题思路2. 代码实现 3036. Number of Subarrays That Match a Pattern II 1. 解题思路 这一题其实有点水,因为本质上还是一道套路题目,和前两周的两道题目一样,都是考察的…

c++求三个数中最大数

#include<iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个数字"<<endl;//end后面为小写的L cin>>a>>b>>c; if(a>b&&a>c) cout<<"最大数为a:"<<a<<e…

【MySQL】——数值函数的学习

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Z1fAnfrxGD7I5gqp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

人工智能:从概念到现实的辉煌历程

引言 自20世纪中叶以来&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一门前沿科技领域&#xff0c;其发展进程犹如一部波澜壮阔的史诗。本文将带领读者走进AI的世界&#xff0c;探索它从最初的梦想设想&#xff0c;历经坎坷与突破&#xff0c…

JAVA设计模式之访问模式详解

访问者模式 1 访问者模式介绍 访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式. 访问者模式(Visitor Pattern) 的原始定义是&#xff1a;允许在运行时将一个或多…

Java集合 LinkedList

目录 LinkedList实例 LinkedList LinkedList是Java中的一个重要的数据结构&#xff0c;它实现了List接口&#xff0c;提供了链表数据结构的实现。LinkedList类中包含了各种常用的链表操作&#xff0c;如添加、删除、查找等。 LinkedList的特点是元素可以动态地添加到链表的任…

关于创建vue项目报错command failed: npm install --loglevel error

一、首先 在这个目录下有个文件叫.vuerc 二、其次 进去之后把里面的"useTaobaoRegistry": false,修改下&#xff0c;我之前是true&#xff0c;后来改成了false才成功。

我的2024新年-新Flag

一&#xff0c;缘由 新年新气象&#xff0c;这么多年来&#xff0c;自己也没有弄过什么年度flag&#xff0c;这次立flag&#xff0c;是自己的首次。都说&#xff1a;“没有理想&#xff0c;那跟咸鱼就没有区别”&#xff0c;试下不当咸鱼看看是什么感觉。其实&#xff0c;自己…

【数据结构】11 堆栈(顺序存储和链式存储)

定义 可认为是具有一定约束的线性表&#xff0c;插入和删除操作都在一个称为栈顶的端点位置。也叫后入先出表&#xff08;LIFO&#xff09; 类型名称&#xff1a;堆栈&#xff08;STACK&#xff09; 数据对象集&#xff1a; 一个有0个或者多个元素的有穷线性表。 操作集&#…

Window中出现 结束服务又自动重启的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 长期使用Linux操作系统,对于Window进程如何关闭开启,推荐阅读:Window命令行 如何查看以及关闭进程 而现在遇到进程无法强制kill,过一会自动启动! 对这种方式如何强制关闭,可看下文 1. 问题所示 起初在驱动某个服务的…

单片机与外设的交互

单片机与外设的交互是嵌入式系统中非常重要的一个基础知识点。单片机是一个集成在同一芯片上的中央处理器、存储器和输入/输出接口,它可以根据用户编写的程序与各种外部设备即外设进行交互。单片机与外设之间的交互主要通过单片机上的输入/输出口(I/O口)来实现。 I/O口的工作原…

Springboot 2.5.x如何集成Nacos 2.x的配置管理功能?

文章目录 什么是nacos安装单机版nacos物理机安装docker安装springboot如何集成Nacos?增加maven依赖在application.yml中增加配置在启动类中增加nacos注解如何读取配置如何使用配置?调用示例总结什么是nacos Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service…

【MySQL】-21 MySQL综合-8(MySQL默认值+MySQL非空约束+MySQL查看表中的约束)

MySQL默认值MySQL非空约束MySQL查看表中的约束 MySQL默认值在创建表时设置默认值约束在修改表MySQL默认值在创建表时设置默认值约束在修改表时添加默认值约束删除默认值约束删除默认值约束 MySQL非空约束在创建表时设置非空约束在修改表时添加非空约束删除非空约束 MySQL查看表…

Pytorch 复习总结 1

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》 本文主要内容为&#xff1a;Pytorch 张量的常见运算、线性代数、高等数学、概率论。 Pytorch 张量的常见运算、线性代数、高等数学、概率论 部分 见 Pytorch 复习总结 1&…

一个适用于后渗透期间的信息收集工具

介绍 Pillager是一个适用于后渗透期间的信息收集工具&#xff0c;可以收集目标机器上敏感信息&#xff0c;方便下一步渗透工作的进行。 支持 注&#xff1a;✅表示经过测试&#xff0c;&#x1f6a7;表示理论上支持但未经测试&#xff0c;❌表示无此功能或不支持 后续将会陆续…

CSP-202006-1-线性分类器

CSP-202006-1-线性分类器 解题思路 通过比较第一个训练数据点的类别和直线函数值的正负来确定标准类别和标准函数值的正负。循环遍历训练数据中的每个点&#xff0c;计算直线函数值并与标准函数值比较&#xff0c;以确定该点所在的类别。 如果当前点的类别与标准类别一致&…

Lua: 一门轻量级、高效的脚本语言

Lua: 一门轻量级、高效的脚本语言 在当今软件开发的领域中&#xff0c;寻找一门既灵活又高效的脚本语言&#xff0c;一直是开发者们追求的目标。Lua作为一门小巧、高效、可嵌入的脚本语言&#xff0c;已经成为了众多开发者的首选之一。无论是游戏开发、嵌入式系统、Web 开发还是…

程序设计语言的组成

程序设计语言的组成 程序设计语言基本上由数据、运算、控制、传输组成 数据成分 数据是程序操作的对象&#xff0c;具有存储类别、类型、名称、作用域和生存期等属性 从不同角度可将数据进行不同的划分。 数据类型的分类如下&#xff1a; 按程序运行过程中数据的值能否改…

ncc匹配提速总结

我们ncc最原始的匹配方法是&#xff1a;学习模板w*h个像素都要带入ncc公式计算 第一种提速&#xff0c;学习模板是w*h&#xff0c;而我们支取其中的w/2*h/2,匹配窗口同理&#xff0c;计算量只有1/4。 另外一种因为ncc是线性匹配&#xff0c;我们在这上面也做了文章&#xff0…