【Python】Mac 本地部署 stable-diffusion

news2024/11/20 20:29:01

其实要在本地部署 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.coloradmin.cn/o/1442387.html

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

相关文章

开发JSP应用程序

开发JSP应用程序 问题陈述 TecknoSoft Pvt Ltd.公司的首席技术官(CTO)John Barrett将创建一个应用程序的任务委托给了开发团队,该应用程序应在客户访问其账户详细信息前验证其客户ID和密码。客户ID应是数字形式。John希望如果所输入的客户ID或密码不正确,应向客户显示错误…

2.7日学习打卡----初学RabbitMQ(二)

2.7日学习打卡 JMS 由于MQ产品很多,操作方式各有不同,于是JAVA提供了一套规则 ——JMS,用于操作消息中间件。JMS即Java消息服务 (JavaMessage Service)应用程序接口,是一个Java平台中关于面 向消息中间件的…

ssm+vue的医药垃圾分类管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的医药垃圾分类管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结…

在本地运行大型语言模型 (LLM) 的六种方法(2024 年 1 月)

一、说明 (开放)本地大型语言模型(LLM),特别是在 Meta 发布LLaMA和后Llama 2,变得越来越好,并且被越来越广泛地采用。 在本文中,我想演示在本地(即在您的计算机上&#x…

Android 粒子喷泉动效

一、前言: 在学习open gl es实现动效的时候,打算回顾了一下用普通的2D坐标系实现粒子效果和 open gl 3d 坐标系的区别,以及难易程度,因此本篇以Canvas 2D坐标系实现了一个简单的demo。 粒子动效原理: 粒子动效本质上…

504. Base 7(七进制数)

题目描述 给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 问题分析 按照二进制转换的方式进行转换即可 代码 char* convertToBase7(int num) {int count 0;char *x (char *)malloc(sizeof(char)*32);char *y (char *)malloc(sizeof(c…

【Redis】深入理解 Redis 常用数据类型源码及底层实现(3.详解String数据结构)

【Redis】深入理解 Redis 常用数据类型源码及底层实现(1.结构与源码概述)-CSDN博客 【Redis】深入理解 Redis 常用数据类型源码及底层实现(2.版本区别dictEntry & redisObject详解)-CSDN博客 紧接着前两篇的总体介绍,从这篇开始&#x…

windows安装sqlite

windows安装sqlite比linux麻烦很多 1.下载 下载链接:链接 下载dll的zip文件 2.解压并放到文件夹 将压缩包内的文件解压,放到C://sqlite下 3.编辑环境变量 添加到系统变量的path中 4.验证 打开命令提示符,输入 sqlite3有结果就行

JavaWeb02-MyBatis

目录 一、MyBatis 1.概述 2.JavaEE三层架构简单介绍 (1)表现层 (2)业务层 (3)持久层 3.框架 4.优势 (1)JDBC的劣势 (2)MyBatis优化 5.使用 &#…

Golang的for循环变量和goroutine的陷阱,1.22版本的更新

先来看一段golang 1.22版本之前的for循环的代码 package mainimport "fmt"func main() {done : make(chan bool)values : []string{"chen", "hai", "feng"}for _, v : range values {fmt.Println("start")go func() {fmt.P…

Gemini 下一章节即将拉开帷幕

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

树与二叉树---数据结构

树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点: 1)树的根结点没有前驱,除根结点外的所有结点有 且只有一个前驱。 2)树中所有结点可以有零个或多个后继。 树结点数据结构 满二叉树和完全二…

洛谷使用指南

详细看——洛谷的规则 1.注册账号 1.打开洛谷首页 这样就对了!!! 2.点击注册 当显示以上页面时表示进入了注册页面。 3.登录 当注册好后就可以登陆了。 当显示以上页面时表示进入了登录页面。 2.题库使用 当单击题库后,会出…

算法练习-二叉搜索树中的搜索(思路+流程图+代码)

难度参考 难度:中等 分类:二叉树 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。且所在课程未提供测试平台,故实现代码主要为自行测试的那种,以下内容均为个人笔记,旨…

二、OpenAI开发者快速入门

启动并运行OpenAI API OpenAI API 为开发者提供一个简单的接口,使其能够在他们的应用中创建一个智能层,由OpenAI最先进的模型提供支持。聊天补全端点为ChatGPT提示支持,一种简单的方法是:输入文本,使用GPT-4模型输出。…

在JSP中实现JAVABEAN

在JSP中实现JAVABEAN 问题陈述 创建Web应用程序以连接数据库并检索作者名、地址、城市、州及邮政编码等与作者的详细信息。JavaBean组件应接受作者ID、驱动程序名及URL作为参数。信息要从authors表中检索。 解决方案 要解决上述问题,需要执行以下任务: 创建Web应用程序。创…

macbookair怎么清理内存 ?如何利用 CleanMyMac X 进行系统清理

macbookair怎么清理内存 清理MacBook Air的内存可以通过以下几种方法: 优化储存空间。在MacBook Air上,可以通过“优化储存空间”来释放空间。这包括将文件储存在iCloud中,如桌面、文稿和iCloud信息,以及自动移除在iCloud中观看…

Lombok 高级说明

优质博文:IT-BLOG-CN 一、痛点 【1】代码臃肿:POJO中的getter/setter/equals/hashcode/toString等; 【2】样板式代码:I/O流的关闭操作等; Lombok是一个可以通过注解简化Java代码开发的工具,能够在我们编…

2.8日学习打卡----初学RabbitMQ(三)

2.8日学习打卡 一.springboot整合RabbitMQ 之前我们使用原生JAVA操作RabbitMQ较为繁琐&#xff0c;接下来我们使用 SpringBoot整合RabbitMQ&#xff0c;简化代码编写 创建SpringBoot项目&#xff0c;引入RabbitMQ起步依赖 <!-- RabbitMQ起步依赖 --> <dependency&g…

关节点检测

https://www.bilibili.com/video/BV19g4y1777q/?p2&spm_id_frompageDriver 关节点检测全流程 YOLO:单阶段&#xff0c;快&#xff1b; MMPose&#xff1a;双阶段&#xff0c;准&#xff1b; 标注工具Labelme 用Labelme标注样本数据集