宠物网站建设的目的/石景山区百科seo

宠物网站建设的目的,石景山区百科seo,商丘微网站,新会网站建设文章目录 SD项目迁移前置知识webui-user.batwebui.batlaunch_utils.py 下一篇开始实践 SD项目迁移 显卡驱动更新:https://www.nvidia.cn/geforce/drivers/ 下载安装三个程序: python3.10.6: https://www.python.org/downloads/release/python-3106/gi…

文章目录

    • SD项目迁移
    • 前置知识
      • webui-user.bat
      • webui.bat
      • launch_utils.py
    • 下一篇开始实践

SD项目迁移

显卡驱动更新:https://www.nvidia.cn/geforce/drivers/

下载安装三个程序:

  1. python3.10.6: https://www.python.org/downloads/release/python-3106/
  2. git: https://git-scm.com/download/win
  3. stable-diffusion webui: https://github.com/AUTOMATIC1111/stable-diffusion-webui

快速启动:

在这里插入图片描述

前置知识

bat运行脚本,看懂即可。

webui-user.bat

首先运行webui-user.bat,但是里面的路径设置是空的,如下。

这就意味着要么路径有一个默认值,这么在后面设置了,我估计是有个if判断该值是否为空的代码。

如果我们已经配好了环境和参数,那么直接填入即可。

@echo offset PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=call webui.bat

webui.bat

主要功能是根据webui-user.bat,设置上面的四个参数。

  1. 四个变量的预处理;

  2. 创建日志文件,为了后续发生错误输出做准备。

  3. 检测pythonpip是否可用,并升级pip

  4. :start_venv一段的作用是寻找python解释器。Scripts 下没有就自动递归文件夹搜索python.exe的位置。

  5. :activate_venv的作用是利用python.exe激活环境。

  6. 如果ACCELERATE存在就使用accelerate 启动主程序。

  7. 启动主程序,一个是:launch启动主程序,一个是使用:accelerate_launch加速启动。

总结:设置四个变量,找到python.exe之后启动环境。然后根据是否依据ACCELERATE启动主程序。

下面是具体内容

  1. 关闭命令回显
@echo off
  • @ 符号的作用是防止当前这行命令本身被显示出来。
  • echo off 用于关闭后续命令在执行过程中的显示,让脚本执行时只显示命令的输出结果,而不显示命令本身,使输出更加简洁。
  1. 检查并调用 webui.settings.bat 文件
if exist webui.settings.bat (call webui.settings.bat
)
  • if exist 是一个条件判断语句,用于检查当前目录下是否存在 webui.settings.bat 文件。
  • 如果文件存在,则使用 call 命令调用该文件并执行其中的代码,这样可以在主脚本中引入额外的配置或设置。
  1. 设置 PYTHON 变量
if not defined PYTHON (set PYTHON=python)
  • if not defined 用于检查环境变量 PYTHON 是否已经被定义。
  • 如果 PYTHON 未定义,则将其设置为 python,这意味着默认使用系统路径中可找到的 Python 解释器。
  1. 设置 GIT_PYTHON_GIT_EXECUTABLE 变量
if defined GIT (set "GIT_PYTHON_GIT_EXECUTABLE=%GIT%")
  • if defined 用于检查环境变量 GIT 是否已经被定义。
  • 如果 GIT 已定义,则将 GIT_PYTHON_GIT_EXECUTABLE 变量设置为 GIT 的值,这通常用于指定 git 可执行文件的路径。
  1. 设置 VENV_DIR 变量
if not defined VENV_DIR (set "VENV_DIR=%~dp0%venv")
  • if not defined 检查环境变量 VENV_DIR 是否已经被定义。
  • 如果未定义,则将 VENV_DIR 设置为当前批处理文件所在目录下的 venv 文件夹。%~dp0 表示当前批处理文件所在的完整路径。
  1. 设置其他变量
set SD_WEBUI_RESTART=tmp/restart
set ERROR_REPORTING=FALSE
  • set SD_WEBUI_RESTART=tmp/restart:将 SD_WEBUI_RESTART 变量设置为 tmp/restart,可能用于标记重启操作。
  • set ERROR_REPORTING=FALSE:将 ERROR_REPORTING 变量设置为 FALSE,可能用于控制错误报告的开关。
  1. 创建 tmp 文件夹
mkdir tmp 2>NUL
  • mkdir tmp 用于创建一个名为 tmp 的文件夹。
  • 2>NUL 表示将命令执行过程中的错误信息(标准错误输出,文件描述符为 2)重定向到 NUL,即忽略错误信息。如果 tmp 文件夹已经存在,该命令不会报错。
  1. 检查 Python 是否可正常运行
%PYTHON% -c "" >tmp/stdout.txt 2>tmp/stderr.txt
if %ERRORLEVEL% == 0 goto :check_pip
echo Couldn't launch python
goto :show_stdout_stderr
  • %PYTHON% -c "":使用 PYTHON 变量指定的 Python 解释器执行一个空的 Python 命令。
  • >tmp/stdout.txt 2>tmp/stderr.txt:将命令的标准输出(文件描述符为 1)和标准错误输出(文件描述符为 2)分别重定向到 tmp/stdout.txttmp/stderr.txt 文件中。
  • if %ERRORLEVEL% == 0%ERRORLEVEL% 是一个系统变量,用于存储上一条命令的退出状态码。如果退出状态码为 0,表示命令执行成功,跳转到 :check_pip 标签处继续执行。
  • 如果退出状态码不为 0,则输出 "Couldn't launch python" 信息,并跳转到 :show_stdout_stderr 标签处显示错误信息。
  1. 检查 pip 是否可用
:check_pip
%PYTHON% -mpip --help >tmp/stdout.txt 2>tmp/stderr.txt
if %ERRORLEVEL% == 0 goto :start_venv
if "%PIP_INSTALLER_LOCATION%" == "" goto :show_stdout_stderr
%PYTHON% "%PIP_INSTALLER_LOCATION%" >tmp/stdout.txt 2>tmp/stderr.txt
if %ERRORLEVEL% == 0 goto :start_venv
echo Couldn't install pip
goto :show_stdout_stderr
  • %PYTHON% -mpip --help:使用 Python 解释器调用 pip 并查看其帮助信息,以此检查 pip 是否可用。
  • 如果 pip 可用(退出状态码为 0),则跳转到 :start_venv 标签处开始创建虚拟环境。
  • 如果 pip 不可用,且 PIP_INSTALLER_LOCATION 变量为空,则跳转到 :show_stdout_stderr 标签处显示错误信息。
  • 如果 PIP_INSTALLER_LOCATION 不为空,则使用 Python 解释器执行该位置的脚本尝试安装 pip
  • 如果安装成功,则跳转到 :start_venv 标签处;否则输出 "Couldn't install pip" 信息,并跳转到 :show_stdout_stderr 标签处显示错误信息。
  1. 创建虚拟环境
:start_venv
if ["%VENV_DIR%"] == ["-"] goto :skip_venv
if ["%SKIP_VENV%"] == ["1"] goto :skip_venvdir "%VENV_DIR%\Scripts\Python.exe" >tmp/stdout.txt 2>tmp/stderr.txt
if %ERRORLEVEL% == 0 goto :activate_venvfor /f "delims=" %%i in ('CALL %PYTHON% -c "import sys; print(sys.executable)"') do set PYTHON_FULLNAME="%%i"
echo Creating venv in directory %VENV_DIR% using python %PYTHON_FULLNAME%
%PYTHON_FULLNAME% -m venv "%VENV_DIR%" >tmp/stdout.txt 2>tmp/stderr.txt
if %ERRORLEVEL% == 0 goto :upgrade_pip
echo Unable to create venv in directory "%VENV_DIR%"
goto :show_stdout_stderr
  • 首先检查 VENV_DIR 是否为 - 或者 SKIP_VENV 是否为 1,如果满足条件则跳转到 :skip_venv 标签处跳过虚拟环境的创建。
  • 然后检查虚拟环境目录下的 Scripts\Python.exe 文件是否存在,如果存在则跳转到 :activate_venv 标签处激活虚拟环境。
  • 如果虚拟环境不存在,则使用 for /f 循环获取 Python 解释器的完整路径,并将其存储在 PYTHON_FULLNAME 变量中。
  • 接着使用该 Python 解释器创建虚拟环境,如果创建成功则跳转到 :upgrade_pip 标签处升级 pip;否则输出错误信息并跳转到 :show_stdout_stderr 标签处显示错误信息。
  1. 升级 pip
:upgrade_pip
"%VENV_DIR%\Scripts\Python.exe" -m pip install --upgrade pip
if %ERRORLEVEL% == 0 goto :activate_venv
echo Warning: Failed to upgrade PIP version
  • 使用虚拟环境中的 Python 解释器调用 pip 并尝试升级到最新版本。
  • 如果升级成功,则跳转到 :activate_venv 标签处激活虚拟环境;否则输出警告信息。
  1. 激活虚拟环境
:activate_venv
set PYTHON="%VENV_DIR%\Scripts\Python.exe"
call "%VENV_DIR%\Scripts\activate.bat"
echo venv %PYTHON%
  • PYTHON 变量设置为虚拟环境中的 Python 解释器路径。
  • 使用 call 命令调用虚拟环境的激活脚本 activate.bat 来激活虚拟环境。
  • 输出当前使用的虚拟环境 Python 解释器的路径。
  1. 跳过虚拟环境创建
:skip_venv
if [%ACCELERATE%] == ["True"] goto :accelerate
goto :launch
  • 检查 ACCELERATE 变量是否为 True,如果是则跳转到 :accelerate 标签处进行加速配置;否则跳转到 :launch 标签处启动主程序。
  1. 检查 accelerate 是否可用
:accelerate
echo Checking for accelerate
set ACCELERATE="%VENV_DIR%\Scripts\accelerate.exe"
if EXIST %ACCELERATE% goto :accelerate_launch
  • 输出检查 accelerate 的信息。
  • ACCELERATE 变量设置为虚拟环境中 accelerate.exe 的路径。
  • 如果该文件存在,则跳转到 :accelerate_launch 标签处使用 accelerate 启动主程序。
  1. 启动主程序
:launch
%PYTHON% launch.py %*
if EXIST tmp/restart goto :skip_venv
pause
exit /b
  • 使用 PYTHON 变量指定的 Python 解释器执行 launch.py 脚本,并传递所有命令行参数(%*)。
  • 如果 tmp/restart 文件存在,则跳转到 :skip_venv 标签处重新启动;否则暂停程序并等待用户输入,最后退出当前批处理脚本。
  1. 使用 accelerate 启动主程序
:accelerate_launch
echo Accelerating
%ACCELERATE% launch --num_cpu_threads_per_process=6 launch.py
if EXIST tmp/restart goto :skip_venv
pause
exit /b
  • 输出加速启动的信息。
  • 使用 accelerate 工具启动 launch.py 脚本,并设置每个进程的 CPU 线程数为 6。
  • 如果 tmp/restart 文件存在,则跳转到 :skip_venv 标签处重新启动;否则暂停程序并等待用户输入,最后退出当前批处理脚本。
  1. 显示标准输出和错误信息
:show_stdout_stderrecho.
echo exit code: %errorlevel%for /f %%i in ("tmp\stdout.txt") do set size=%%~zi
if %size% equ 0 goto :show_stderr
echo.
echo stdout:
type tmp\stdout.txt:show_stderr
for /f %%i in ("tmp\stderr.txt") do set size=%%~zi
if %size% equ 0 goto :show_stderr
echo.
echo stderr:
type tmp\stderr.txt:endofscriptecho.
echo Launch unsuccessful. Exiting.
pause
  • 首先输出上一条命令的退出状态码。
  • 检查 tmp/stdout.txt 文件的大小,如果不为 0,则输出 "stdout:" 并显示该文件的内容。
  • 接着检查 tmp/stderr.txt 文件的大小,如果不为 0,则输出 "stderr:" 并显示该文件的内容。
  • 最后输出启动失败的信息,暂停程序并等待用户输入。

launch_utils.py

首先是运行webui-user.bat,然后运行webui.bat,最后使用launch_utils.py启动程序。

launch_utils.py文件其实是不用动的。

我粗看了一下,如果webui-user.bat路径配置好了,并且环境也配置好了,那么就可以直接启动程序了。

下一篇开始实践

我结合前面的本地部署内容,开始试试

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

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

相关文章

vscode使用豆包MARSCode----集成doubao1.5 DeepSeekR1 DeepseekV3模型的ai编程插件

引入扩展 打开VSCode扩展窗口,在搜索窗口搜索MarsCode,找到MarsCode 插件单击「install」,完成安装,登录即可使用MarsCode 编程助手。 主要功能 主要快捷键 / explain 解释项目代码,AI 返回的内容有结构分类&#…

uni小程序wx.switchTab有时候跳转错误tab问题,解决办法

在一个子页面里面使用uni.switchTab或者wx.switchTab跳转到tab菜单的时候,先发送了一个请求,然后执行跳转到tab菜单,但是这个时候,出错了........也是非常的奇怪,不加请求就没问题......但是业务逻辑就是要先执行某个请…

【Kimi】自动生成PPT-并支持下载和在线编辑--全部免费

【Kimi】免费生成PPT并免费下载 用了好几个大模型,有些能生成PPT内容; 有些能生成PPT,但下载需要付费; 目前只有Kimi生成的PPT,能选择模板、能在线编辑、能下载,关键全部免费! 一、用kimi生成PP…

编写一个程序,计算并输出1到100的和(Python版)

编写一个程序,计算并输出1到100的和 以下是两种计算1到100之和的方法: 方法一:循环累加法(适合编程练习) total 0 for num in range(1, 101):total num print("1到100的和为:", total)原理:通…

向量数据库milvus部署

官方文档 Milvus vector database documentationRun Milvus in Docker (Linux) | Milvus DocumentationMilvus vector database documentation 按部署比较简单,这里说一下遇到的问题 一:Docker Compose 方式部署 1、镜像无法拉取,(docker.io被禁) …

【密码学实战】Java 实现 SM2 国密算法(签名带id、验签及 C1C3C2 加密解密)

前言 SM2是中国国家密码管理局发布的椭圆曲线公钥密码算法标准(GB/T 32918),属于国密算法体系。与RSA和ECDSA相比,SM2在相同安全强度下密钥更短、计算效率更高。本文将介绍如何在Java中实现SM2的密钥生成、数字签名、验签、加密及…

网络原理---TCP/IP

活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧&#xff01…

eMMC安全简介

1. 引言 术语“信息安全”涵盖多种不同的设计特性。一般而言, 信息安全是指通过实践防止信息遭受未经授权的访问、使用、披露、中断、篡改、检查、记录或销毁。 信息安全的三大核心目标为 机密性(Confidentiality)、完整性(Integr…

Python 数据结构 2.时间复杂度和空间复杂度

Life is a journey —— 25.2.28 一、引例:穷举法 1.单层循环 所谓穷举法,就是我们通常所说的枚举,就是把所有情况都遍历了的意思。 例:给定n(n ≤ 1000)个元素ai,求其中奇数有多少个 判断一…

FFmpeg-chapter3-读取视频流(原理篇)

ffmpeg网站:About FFmpeg 1 库介绍 (1)libavutil是一个包含简化编程函数的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等等。 (2)libavcodec是一个包含音频/视频编解码器的解码器和编…

面试(进阶) —虚拟列表在什么场景使用,如何实现?

面试(进阶) —虚拟列表在什么场景使用,如何实现? 在前端开发中,当需要渲染大量数据时,传统的渲染方式往往会遇到性能瓶颈。一次性将大量数据渲染到DOM中,不仅会导致页面加载缓慢,还可能占用大量内存&#x…

Linux Mem -- 关于AArch64 MTE功能的疑问

目录 1.虚拟地址和物理地址映射完成后,才可以设置虚拟地址对应的memory tag ? 2.各种memory allocator中的address tag从哪来,怎么产生? 2.1 vmalloc allocator 2.2 slub分配器 2.3 用户可以指定IRG指令产生的address tag 3.kasan…

python-leetcode-颜色分类

75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""low, mid, high 0, 0, len(nums) - 1while mid < h…

ArcGIS Pro技巧实战:高效矢量化天地图地表覆盖图

在地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;地表覆盖图的矢量化是一项至关重要的任务。天地图作为中国国家级的地理信息服务平台&#xff0c;提供了丰富且详尽的地表覆盖数据。然而&#xff0c;这些数据通常以栅格格式存在&#xff0c;不利于进行空间分析和数据…

【江科大STM32】TIM输出比较(学习笔记)

本章图片文字内容也为重要知识&#xff0c;请马住&#xff01; 输出比较简介 OC&#xff08;Output Compare&#xff09;输出比较输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波形…

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…

飞算 JavaAI 如何让微服务开发快人一步?

在当今竞争激烈的软件开发领域&#xff0c;微服务架构因其灵活性和可扩展性备受青睐。然而&#xff0c;微服务开发过程复杂&#xff0c;从需求分析到最终代码实现&#xff0c;每个环节都需要耗费大量时间和精力。飞算 JavaAI 的出现&#xff0c;犹如一道曙光&#xff0c;为开发…

Python—Excel全字段转json文件(极速版+GUI界面打包)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码(简易版)5、进阶版(GUI)总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——…

2025年光电科学与智能传感国际学术会议(ICOIS 2025)

重要信息 官网&#xff1a;www.ic-icois.org 时间&#xff1a;2025年3月14-16日 地点&#xff1a;中国-长春 简介 2025年光电科学与智能传感国际学术会议&#xff08;ICOIS 2025&#xff09;将于2025年3月14-16日在中国-长春隆重召开。会议将围绕“光学光电”、“智能传感”…

企业微信里可以使用的企业内刊制作工具,FLBOOK

如何让员工及时了解公司动态、行业资讯、学习专业知识&#xff0c;并有效沉淀企业文化&#xff1f;一份高质量的企业内刊是不可或缺的。现在让我来教你该怎么制作企业内刊吧 1.登录与上传 访问FLBOOK官网&#xff0c;注册账号后上传排版好的文档 2.选择模板 FLBOOK提供了丰富的…