【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.hqwc.cn/news/455696.html

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

相关文章

Mac 下JDK环境变量配置 及 JDK多版本切换

一、推荐官网下载: 二、环境变量配置 1、查看JDK地址,在终端输入以下命令: /usr/libexec/java_home -V 我的路径: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home /Library/Java/JavaVirtualMachines/zulu-11.j…

鸿蒙开发系列教程(十二)--布局应用:Flex布局

相关属性参数与css3的flex布局参数相似 排列方向:direction: FlexDirection.Row, 换行:wrap: FlexWrap.NoWrap, 水平垂直对齐方式: justifyContent: FlexAlign. SpaceBetween, alignItems: ItemAlign.Center Entry Component struct Flex…

Redis核心技术与实战【学习笔记】 - 21.Redis实现分布式锁

概述 在《20.Redis原子操作》我们提到了应对并发问题时,除了原子操作,还可以通过加锁的方式,来控制并发写操作对共享数据的修改,从而保证数据的正确性。 但是,Redis 属于分布式系统,当有多个客户端需要争…

C++多线程:this_thread 命名空间

std::this_thread 是 C 标准库中提供的一个命名空间,它包含了与当前线程相关的功能。这个命名空间提供了许多与线程操作相关的工具,使得在多线程环境中更容易进行编程。 源码类似于如下: namespace std{namespace this_thread{//...........…

JAVA面试汇总总结更新中ing

本人面试积累面试题 多线程微服务JVMKAFKAMYSQLRedisSpringBoot/Spring 1.面向对象的三个特征 封装,继承,多态,有时候也会加上抽象。 2.多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种…

苹果手机如何录屏?这里告诉你答案!

苹果公司的iPhone以其卓越的性能和用户体验受到了全球消费者的喜爱,而录屏功能作为手机的一项重要功能,能够帮助我们记录手机屏幕上的操作,分享游戏技巧、制作教程视频等。本文将为您介绍苹果手机如何录屏,帮助您更好地掌握录屏技…

国内唯一!通义灵码入选全球智能编码助手使用率 TOP 榜单

近日,在国内知名科技媒体 InfoQ 研究中心发布的《中国软件技术发展洞察和趋势预测报告 2024》中提到,随着 AI 和大模型技术的普及,开发者智能编码助手的使用习惯已经养成,其中,开发者使用的智能编码助手产品使用率超过…

C语言:内存函数

创作不易,友友们给个三连吧!! C语言标准库中有这样一些内存函数,让我们一起学习吧!! 一、memcpy函数的使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 1.1 使…

2.6作业

两个线程实现同步 #include <myhead.h> //定义条件变量 pthread_cond_t cond; //定义互斥锁 pthread_mutex_t mutex; //生产者 void *task1(void *arg) {int num 3;while(num--){sleep(1);printf("做了一顿饭\n");//唤醒等待队列中的所有线程pthread_cond_s…

Linux环境下配置mysql主从复制

主从配置需要注意的地方 1、主DB server和从DB server数据库的版本一致 2、主DB server和从DB server数据库数据一致[这里就会可以把主的备份在从上还原&#xff0c;也可以直接将主的数据目录拷贝到从的相应数据目录] 3、主DB server开启二进制日志,主DB server和从DB serve…

linux 自动定时清理缓存

文章目录 1&#xff0c;查看内存占用情况&#xff1a;1.1、free和available的区别&#xff1f;1.2、交换分区的作用&#xff1f; 2&#xff0c;手动清理命令3&#xff0c;定时自动清理3.1&#xff0c;创建文件夹3.2&#xff0c;新建文件cleanBuffer.sh3.3&#xff0c;添加内容3…

jsp教材管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 教材管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…