stable-diffusion基础问题记录

news2024/12/26 12:07:18

一、windows安装

1、启动

如果自己是anaconda,python版本不是3.10.6

conda create -n python_3_10_6 python=3.10.6,创建一个这样的环境

修改webui-user.bat set PYTHON=D:/software/Anaconda3/envs/python_3_10_6/python,把python换成这个版本

然后再启动bat

2、下载gfpgan的时候,如果遇到这种情况:使用国内的网会卡住,使用国外的网会下载不成功,具体参考下这篇文档

RuntimeError: Couldn‘t install gfpgan.

首先前面的步骤中stable-diffusion已经创建了一个虚拟环境,拿到这个虚拟环境的python路径,比如是:D:\ai\stable-diffusion-webui\venv\Scripts\Python.exe

在执行上面那篇文章中的命令时,要变成

D:\ai\stable-diffusion-webui\venv\Scripts\Python.exe -m pip install basicsr facexlib
D:\ai\stable-diffusion-webui\venv\Scripts\Python.exe -m pip install -r requirements.txt
D:\ai\stable-diffusion-webui\venv\Scripts\Python.exe setup.py develop

这样就安装好了这个包

3、启动好,tex2img,点击generate后看不到下面框的进度条,或者一直看到waiting,有两个原因

(1)、Stable Diffusion搭建问题记录

就是你开了代理,把代理关掉

(2)、刚启动时,不要太着急,因为模型还有个缓冲时间,点击一次generate后,就多等等,比如看看gpu的内存是不是上去了

再在启动的ui界面看看进度条有没有起来,我这边有5次进度条,代表我点击了generate 5次,生成了5个图片

二、上面是在windows上的安装记录,下面记录下载mac上的安装记录

1、总体安装记录

基本按照官网来就好了,可能遇到一些小问题,再百度搜下就行

官网:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon?spm=ata.21736010.0.0.1e45437alM8VCm#downloading-stable-diffusion-models

官网的翻译:Mac安装Stable Diffusion教程【超详细教程】附带安装包

在启动过程中,可以正常启动,但是执行text2img的时候,报错:RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half'

解决办法:在启动的时候 ./webui.sh --no-half,把半精度禁止掉,就可以正常使用了。这个是因为mac支持不了这种优化

还有一篇调优速度的文章:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/7453

2、如果安装了controlNet插件包,再启动的时候,会报错

Failed to build pycairo

stderr:   error: subprocess-exited-with-error

  × Building wheel for pycairo (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [12 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-12-arm64-cpython-310
      creating build/lib.macosx-12-arm64-cpython-310/cairo
      copying cairo/__init__.py -> build/lib.macosx-12-arm64-cpython-310/cairo
      copying cairo/__init__.pyi -> build/lib.macosx-12-arm64-cpython-310/cairo
      copying cairo/py.typed -> build/lib.macosx-12-arm64-cpython-310/cairo
      running build_ext
      'pkg-config' not found.
      Command ['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycairo
ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

解决办法:ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

brew install cairo pkg-config

"/Users/**/code/stable-diffusion-webui/venv-torch-nightly/bin/python3.10" -m pip install pycairo

"/Users/zhouheng/code/stable-diffusion-webui/venv-torch-nightly/bin/python3.10" -m pip install svglib --prefer-binary

这时候再启动上面的stable diffusion,就不会报错了

3、下载两个插件

GitHub - dtlnor/stable-diffusion-webui-localization-zh_CN: Simplified Chinese translation extension for AUTOMATIC1111's stable diffusion webui

https://github.com/Mikubill/sd-webui-controlnet

其中controlnet安装好了后,要重新启动一次sd:https://github.com/Mikubill/sd-webui-controlnet/issues/1381

这些软件没有那么智能,你安装了后并不会自动应用,需要看上面两个git的说明 看怎么应用

三、在ubuntu上安装

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

bash webui.sh

1、可能会遇到不是root的报错,注释掉launch.py中下面这部分

2、按照电脑的python版本不是3.10的来做,如果是3.8的话,在创建虚拟环境并且下载一些依赖包的时候,会遇到pip找不到一些包的来源,所以还是按照官方推荐的3.10来做。这里记录下下载anaconda

wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

sh Anaconda3-2023.03-1-Linux-x86_64.sh,手动指定一个目录来存储anaconda3,执行:eval "$(/code/anaconda3_new/bin/conda shell.bash hook)",执行:conda init,这样就完成安装了,这个版本刚好是3.10的版本,所以不需要再创建虚拟环境

然后在webui-user.sh中修改下面这样
# python3 executable
# python_cmd="python3"
python_cmd="/code/anaconda3_new/bin/python"

ubuntu和上面的mac一样,安装了controlnet后,都会遇到cairo的问题,这里提前解决下:apt-get install libcairo2 libcairo2-dev

如果前面不小心启动过,记得把sd的虚拟环境那个目录删除掉:rm -rf venv/

这个版本的conda对应的pip的版本有点高,在下载的时候会遇到一些包管理的问题,需要降低下版本

pip install pip==21.3.1,覆盖掉22这个版本

然后启动:bash webui.sh —xformers

然后安装两个插件包,重新启动bash webui.sh —xformers,这时候再启动的时候,可能会遇到pycairo、svglib的问题,前面已经处理过,大概率不会遇到,要是遇到,就再处理下

再启动可能会报错PyTorch、torchvision cuda版本的问题,解决办法是:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/10331,有详细介绍,但是应该运行到第4步就够了,不用升级到pytorch2.0+,我测过两个版本的耗时没有优化

四、记录下一些安装模型的技巧

1、启动sd后左上角的模型,是绘画模型

一般去https://civitai.com/models/4823/deliberate这个地址下面,但是需要翻墙,这里给出来一个常见模型(deliberate_v2)的地址。这个模型用来绘画任务比较好

链接:https://pan.baidu.com/s/1w2imBPGZPsqBET1tTI4j6Q

提取码:g24e

下载在stable-diffusion-webui/models/Stable-diffusion下面

2、模型格式理解

3、controlnet模型

下载地址:hugging face,比如下载openpose lllyasviel/sd-controlnet-openpose

放在:stable-diffusion-webui/extensions/sd-webui-controlnet/models

------------------------------------------------

我最近在做一个项目:给指定模特 穿 指定衣服,对这个方向真的喜欢,并且有实力的朋友,欢迎加微信平时交流下bug和经验:ranksearch(微信号)

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

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

相关文章

【走进Linux的世界】Linux---基本指令(3)

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【Linux专栏】🎈 本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌 目录 date指令cal指…

12代CPU启用SR-IOV vGPU,实现一台电脑当七台用

背景 虚拟桌面基础设施(VDI)技术一般部署在服务器,可以实现多个用户连接到服务器上的虚拟桌面。随着桌面计算机性能的日益提升,桌面计算机在性能在很多场景下已经非常富余,足够同时满足多个用户同时使用的需求。实际项…

Redis的持久化详解

目录 一、Redis的持久化二、RDB(Redis DataBase)1、RDB快照原理2、RDB配置3、redis.conf 其他一些配置4、RDB的备份恢复5、RDB优缺点 三、AOF(Append Of File)1、AOF原理2、AOF配置3、AOF的备份恢复4、重写流程5、AOF优缺点 四、A…

MySQL | Windows服务器部署ZIP免安装版MySQL8.0+数据库笔记

Windows服务器部署ZIP免安装版MySQL8.0数据库笔记 文章目录 Windows服务器部署ZIP免安装版MySQL8.0数据库笔记下载MySQL压缩包编写配置文件环境变量初始化数据库安装MySQL服务安装错误:VCRUNTIME140_1.dll 登录 MySQL 下载MySQL压缩包 打开官网的下载页面&#xff…

POI报表的入门

POI报表的入门 理解员工管理的的业务逻辑 能够说出Eureka和Feign的作用 理解报表的两种形式和POI的基本操作熟练使用POI完成Excel的导入导出操作 员工管理 需求分析 企业员工管理是人事资源管理系统中最重要的一个环节,分为对员工入职,转正,离…

chatgpt赋能python:Python如何处理AI文件

Python如何处理AI文件 什么是AI文件? AI文件是Adobe Illustrator的标准文件格式。它包含了图形设计师所创建的矢量图形,这些矢量图形可以根据需要进行缩放和文件大小的调整。AI文件是专业印刷和设计领域中最常用的格式之一。 为什么要处理AI文件&…

深入ReentrantReadWriteLock

ReentrantReadWriteLock出现的原因 首先synchronized和ReentrantLock都是互斥锁,一个线程在获取锁资源之后另一个线程只能等待假设有一种情况是读多写少,并且确保线程安全。可以使用ReentrantReadWriteLock实现ReentrantReadWriteLock的特点是读读不互斥…

基于随身wifi的Tiny linux debian搭建教程

基于随身wifi的Tiny linux debian搭建教程 基于随身wifi的Tiny linux debian搭建教程基本信息进9008miko备份Qualcomm Premium Tool全分区备份 开adb刷debianssh连接扩展应用原版镜像测速ServerBox自动登录校园网 bug 基于随身wifi的Tiny linux debian搭建教程 基本信息 12芯…

Java8环境安装及配置

Java8环境安装及配置 一、下载JDK8二、安装三、环境变量配置四、验证 一、下载JDK8 本教程使用的是8u202版本,若需要其他版本可点击下方链接跳转下载。 Oracle下载,点击跳转选择版本 如下图所示,选择自己需要的版本下载 点击8u202版本 下载…

JavaSE进阶(day14,复习自用)

XML、XML解析、设计模式等 XMLXML概述XML的创建、语法规则XML文档约束方式一-DTD约束[了解]XML文档约束方式二-schema约束[了解] XML解析技术XML解析技术概述Dom4J解析XML文件Dom4J解析XML文件-案例实战 XML检索技术:Xpath设计模式:工厂模式设计模式&am…

C++算法:排序之一(插入、冒泡、快速排序)

C算法:排序 排序之一(插入、冒泡、快速排序) 文章目录 C算法:排序前言一、十大排序法性能二、各算法实现1、插入排序2、冒泡排序3、快速排序 原创文章,未经许可,严禁转载 前言 排序算法很多,一…

chatgpt赋能python:Python备份一个列表:最简单的方式和最佳实践

Python备份一个列表:最简单的方式和最佳实践 在Python编程中,经常需要将数据存储在列表中。但是,由于数据的重要性,我们需要确保数据不会丢失或损坏。因此,备份列表是我们需要考虑的一件事情。在这篇文章中&#xff0…

chatgpt赋能python:Python实现文件夹备份:让你的数据永不丢失

Python实现文件夹备份:让你的数据永不丢失 数据备份对于每个人都非常重要。如果你有很多个人或工作文件保存在计算机上,那么定期备份可以保证你的数据不会因为计算机出现故障而丢失。Python作为一种强大的编程语言,可以帮助你轻松地实现文件…

Linux开发工具gcc/g++篇

文章目录 🍇0. 前言🍈1. 背景知识🍉2. gcc/g使用🍊2.1 预处理操作🍋去注释🍋头文件展开🍋条件编译 & 宏展开 🍊2.2 编译操作🍊2.3 汇编操作🍊2.4 链接 &a…

chatgpt赋能python:Python多段分段函数的介绍

Python多段分段函数的介绍 在Python编程中,有许多种不同类型的函数,其中之一是多段分段函数。多段分段函数的特点在于,在输入域上,函数定义被划分为不同的段,每个段都求值并返回结果。在本文中,我们将深入…

Java性能权威指南-总结5

Java性能权威指南-总结5 垃圾收集入门垃圾收集概述分代垃圾收集器 垃圾收集入门 很多时候没有机会重写代码,又面临需要提高Java应用性能的压力,这种情况下对垃圾收集器的调优就变得至关重要。 现代JVM的类型繁多,最主流的四个垃圾收集器分别…

使用RP2040自制的树莓派pico—— [2/100] HelloWorld! 和 点亮LED

使用RP2040自制的树莓派pico—— [2/100] HelloWorld! 和 点亮LED 开发环境HelloWorld!闪烁 LED 灯代码 由于比较简单就放在一起写了 开发环境 软件:Thonny HelloWorld! 要想使串口打印HelloWorld! 只需要一行代码 print("HelloWorld!")保…

c++与c中多组输入的使用

我们现在看看c中多组输入的使用 int main() {int a;//1while (~scanf("%d", &a)){}//2while (scanf("%d", &a) ! EOF){}return 0; } 这两个是等同的 我们需要知道的是scanf的返回值是成功读取的个数,我们来验证一下 我们可以看到&am…

chatgpt赋能python:Python在Mac上的运行方法

Python在Mac上的运行方法 如果你是一名使用Mac系统的Python开发人员,你肯定希望能够尽可能方便地运行Python。幸运的是,Mac系统已经预先安装了Python,但是你可能需要对其进行配置,以便更好地管理Python模块和环境。 检查Python版…

chatgpt赋能python:Python地区分析:如何使用Python进行地理数据分析

Python地区分析:如何使用Python进行地理数据分析 简介 Python是一种广泛使用的编程语言,它提供了许多强大的工具来处理大量数据。其中包括地理数据,地理数据是指地球表面的空间信息。Python中有一些强大的地图库,包括Folium和Ba…