【Python】Mac 本地部署 stable-diffusion

news/2024/7/10 20:09:04 标签: python, macos, 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.niftyadmin.cn/n/5367124.html

相关文章

linux内核版本和发行版本

在 Linux 系统中,“内核版本” 和 “发行版本” 是两个重要但不同的概念。 Linux 内核版本 Linux 内核是 Linux 操作系统的核心。它负责管理系统的硬件资源,提供程序运行的基础服务。内核版本指的是 Linux 内核软件本身的版本号。Linux 内核由 Linus T…

k8s -ingress

概念 Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由,ingress能代理集群为内部的网络,将集群外部的HTTP/HTTPS网络请求转发至不同的service,其本质就是创建一个NodePort类型的svc,和一个nginx 组成 k8s中的ingress 其实是指…

ElasticSearch查询语句用法

查询用法包括:match、match_phrase、multi_match、query_string、term 1.match 1.1 不同字段权重 如果需要为不同字段设置不同权重,可以考虑使用bool查询的should子句来组合多个match查询,并为每个match查询设置不同的权重 {"query&…

【软件使用】【edge】如何让edge的某个网页作为应用安装

【背景】 有些常用网页希望用双击快捷方式的形式打开更加效率,我的浏览器主要是edge,研究了两种方法来实现这个需求。 【Edge自带方法】 点击Edge的右上角三点水-》应用-》将此站点作为应用安装。 点击安装,可以选择是否加到开始屏幕等。 …

【Git】合并多次commit提交

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、git rebase合并二、git reset合并 前言 在开发阶段,由于我们会频繁的修改代码,会存在多次提交同一个修改&am…

寒假作业2月5号

第四章 堆与拷贝构造函数 一 、程序阅读题 1、给出下面程序输出结果。 #include <iostream.h> class example {int a; public: example(int b5){ab;} void print(){aa1;cout <<a<<"";} void print()const {cout<<a<<endl;} …

Stable Diffusion 模型下载:RealCartoon3D - V14

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十下载地址模型介绍 RealCartoon3D 是一个动漫卡通混合现实风格的模型,具有真实卡通的 3D 效果,当前更新到 V14 版本。 RealCartoon3D 是我上传的第一个模型。我仍在学习这些东西,但…

双面板设计的一套经验规则-笔记

过大的分布电感导致信号地干扰也就是地弹(专业名词) 还有就是输出瞬态电流导致的地弹 图中可以看到最高 0.5V 的信号地干扰&#xff0c;这只是单一块开发板的测试结果。如果接上外围电路&#xff0c;甚至面包板电路可以想象噪声水平可能会更高。 双面电路板 经验规则 下面来…