当前位置: 首页 > news >正文

Linux-Ubuntu安装Stable Diffusion Forge

SD Forge在Win上配置起来相对简单且教程丰富,而在Linux平台的配置则稍有门槛且教程较少。本文提供一个基于Ubuntu24.04发行版(对其他Linux以及SD分支亦有参考价值)的Stable Diffusion ForgeUI安装配置教程,希望有所帮助

本教程以NVIDIA显卡为例介绍安装方法,AMD显卡没尝试过,或许也有用。

先决条件

安装NVIDIA显卡驱动

命令终端运行

nvidia-smi

若显示以下画面,代表已安装显卡驱动,可跳过本步骤

若未安装,在应用栏找到软件和更新—附加驱动,安装专有驱动,重启电脑。若无版本依赖,建议与本教程一致

安装CUDA 驱动和 cuDNN

为顺利进行后续步骤,安装的CUDA版本应不低于12.1。若无版本依赖,建议与本教程保持一致(12.8版本)。执行“nvidia-smi”命令可查看驱动支持的最高版本。例如,上图所示的显卡驱动最高可支持CUDA12.9版本。

本文的重点是Forge安装,CUDA安装的相关教程丰富且详细,请自行查阅,这里就不赘述了

安装CUDA后,终端运行以下代码查看是否安装成功

nvcc -V

若终端输出以下字样则安装成功,否则检查一下是否未正确配置环境变量

安装cuDNN后,终端运行以下代码查看是否安装成功

# cuda版本需修改为与实际一致
cat /usr/local/cuda-12.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 

若终端输出以下字样则安装成功(cannot警告不必理会),否则检查一下cudnn的文件位置是否正确

克隆项目

选取合适位置打开终端运行以下代码将SD Forge压缩克隆到本地并解压。如果下载速度缓慢,可能需要配置网络

sudo apt update
sudo apt install git
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git

配置Python虚拟环境

安装并配置pyencv

为避免污染Ubuntu24自带的Python环境,SD Forge的Python依赖及Pytorch均需在虚拟环境安装。本教程的虚拟环境基于pyenv配置,pyencv的安装与使用可参考像在Windows里面一样丝滑使用Ubuntu24.04里面的“安装vscode并配置python虚拟环境”章节(教程里面vscode安装配置部分不用管)

除非比较了解conda(如果这么做,需自行修改后续教程的部分配置方法),否则建议与本教程保持一致——使用pyencv创建虚拟环境

安装Python3.10.2

进入“stable-diffusion-webui-forge”目录,打开终端运行以下代码下载并配置Python3.10.2(SD Forge依赖Python3.10,其他版本可能会有依赖问题(3.10子版本则没有限制)。若无版本依赖,建议同本教程保持一致)

pyenv install 3.10.2
pyenv virtualenv 3.10.2 ForgeEnv
pyenv activate ForgeEnv

成功安装并激活Python3.10.2虚拟环境后在用户名前会显示(ForgeEnv) 字样。勿关闭该终端,后面还会用到

安装依赖

在上一节配置的虚拟环境中运行以下代码安装SD Forge依赖。如果下载缓慢,可参考像在Windows里面一样丝滑使用Ubuntu24.04中“安装vscode并配置python虚拟环境”章节的其他说明(2),手动添加清华镜像源加速下载

pip install --upgrade pip
pip install -r requirements_versions.txt

安装pytorch与xformers

pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1
pip install xformers==0.0.27

注意,torch, torchvision, torchaudio与xformers有版本依赖。除非清楚其匹配关系,否则不要修改上述代码中的版本号。

启动文件配置(重点)

打开stable-diffusion-webui-forge文件夹,找到“webui-user.sh”文件不是webui.sh,别搞混了)

用文件编辑器打开webui-user.sh,将全文替换为以下代码并根据实际情况修改后保存关闭(看注释,部分配置必须结合实际情况修改

#!/bin/bash##########################################################                     虚拟环境自动激活                   ########################################################### 本部分代码用于运行webui.sh文件时自动激活配置的python激活环境
# 本部分代码删除后不影响使用,但每次打开Forge前都必须在控制台手动输入pyenv activate ForgeEnv激活虚拟环境
# 自动激活只适用PYENV配置的虚拟环境,conda用户需根据实际情况修改本部分代码(或直接删除,每次打开采用手动激活)# 配置虚拟环境路径
PYENV_ROOT="$HOME/.pyenv"
VENV_NAME="ForgeEnv"# 加载 Shell 配置
source ~/.bashrc# 显式初始化 Pyenv 和 Pyenv-Virtualenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"                
eval "$(pyenv virtualenv-init -)"   # 激活虚拟环境
pyenv activate "$VENV_NAME" || { echo "错误:虚拟环境激活失败!"; exit 1; }##########################################################                      常规配置                          ########################################################### 路径配置
install_dir="/home/$(whoami)" # 使用默认用户目录, 如果不是,需指定# SD目录名
clone_dir="stable-diffusion-webui-forge" # 若不是这个名字,需根据实际修改# python3 executable
python_cmd="$HOME/.pyenv/shims/python"  # 解释器如果不在这里,需根据实际情况修改# git executable
# export GIT="git" # git配置可以不管# python3 venv without trailing slash (defaults to ${install_dir}/${clone_dir}/venv)
venv_dir="$HOME/.pyenv/versions/ForgeEnv"  # 虚拟环境如果不是这个,需根据实际情况修改# script to launch to start the app
export LAUNCH_SCRIPT="launch.py" # 不需修改# 安装指定版本的深度学习框架, 若需修改, 需保证与xformers版本匹配
export TORCH_COMMAND="pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1" # 这是一个版本组合, 请勿单独修改某一项的版本# 依赖项, 一般不需修改,若遇到依赖问题, 或需修改txt文件里面的库版本号
export REQS_FILE="requirements_versions.txt"# Fixed git repos  # git配置可以不管
# export K_DIFFUSION_PACKAGE=""
# export GFPGAN_PACKAGE=""# Fixed git commits  # git配置可以不管
# export STABLE_DIFFUSION_COMMIT_HASH=""
# export CODEFORMER_COMMIT_HASH=""
# export BLIP_COMMIT_HASH=""# 启用加速
export ACCELERATE="True"  # 不需修改# 内存相关,懒得配置TCMALLOC了,直接关
export NO_TCMALLOC="True"# 设置过网络环境的需加上
export ALL_PROXY=''
export all_proxy=''##########################################################                启动参数配置(含模型共享)                ##########################################################MODEL_DIR="/除controlnet外的其他模型位置/models" # 如果不需共享模型,删除本行、下行及COMMANDLINE_ARGS里面从--ckpt-dir(含上一行末尾的\符号)直到倒数第二个引号的内容
CONTROLNET_DIR="controlnet模型位置/extensions"  # 注意,controlnet相关模型在插件里#  如果共享失败,检查源文件位置(尤其是大小写)以及除号和反除号是否设置正确
# ckpt, vae,lora;clip, esrgan,gfpgan;controlnet这三类模型共享参数配置不一样,注意区分
export COMMANDLINE_ARGS="--xformers \
--server-name 127.0.0.1 \
--port 7860 \
--enable-insecure-extension-access \
--ckpt-dir=\"$MODEL_DIR/Stable-diffusion\" \
--clip-models-path=\"$MODEL_DIR/CLIP\" \
--vae-dir=\"$MODEL_DIR/VAE\" \
--esrgan-models-path=\"$MODEL_DIR/ESRGAN\" \
--gfpgan-models-path=\"$MODEL_DIR/GFPGAN\" \
--lora-dir=\"$MODEL_DIR/Lora\" \
--controlnet-dir=\"$CONTROLNET_DIR/sd-webui-controlnet\"" # 配置显存优化, ip地址与端口,插件等启动参数。如果需安装多个sd, 每个sd的ip端口号不能相同
# 为防止路径有空格,路径加了引号转义
###########################################

启动SD Forge

启动前建议先手动下载或共享大模型到指定目录,否则等待时间特别长

文件运行授权

stable-diffusion-webui-forge文件夹打开终端,执行以下命令添加运行权限(仅初次运行需授权)

chmod +x webui.sh
chmod +x webui-user.sh

激活虚拟环境

若在启动文件正确配置了虚拟环境自动激活,本步骤可跳过,否则每次打开ForgeUI前都需在stable-diffusion-webui-forge文件夹打开终端述运行下述代码以激活虚拟环境

pyenv activate ForgeEnv

运行启动文件

若没有在启动文件配置虚拟环境自动激活,则需在虚拟环境(上一节打开的终端中)运行下述代码以打开Forge

./webui.sh

若已在启动文件正确配置了虚拟环境自动激活,则在stable-diffusion-webui-forge文件夹打开终端述运行上述代码即可

启动后终端会显示“Running on local URL:http://127.0.0.1:7860”字样,按住ctrl后点击“http://127.0.0.1:7860”即可打开SD Forge的UI网页

最后的说明

完成上述所有配置步骤后,以后只需在stable-diffusion-webui-forge文件夹打开终端述执行启动文件即可启动SD ForgeUI

未配置虚拟环境自动激活

pyenv activate ForgeEnv
./webui.sh

已正确配置虚拟环境自动激活

./webui.sh

ok,SD Forge安装配置全部结束,May this guide serve as your gateway to a seamless and empowering journey with SD Forge on Linux, where creativity meets cutting-edge technology

放张图

1girl,violet evergarden,full body,solo,blonde hair,blue eyes,sky,red ribbon,hair between eyes,jewelry,blue jacket,ribbon,outdoors,day,hair ribbon,looking at viewer,jacket,blue sky,brooch,cloud,bangs,blur,white,background intakes,bride,brideDusk,facing the audience,long legs,white silk,
Negative prompt: (worst quality, low quality:1.4),(depth of field, blurry:1.2),(greyscale, monochrome:1.1),3D face,cropped,lowres,text,(nsfw:1.3),(worst quality:2),(low quality:2),(normal quality:2),normal quality,((grayscale)),skin spots,acnes,skin blemishes,age spot,(ugly:1.331),(duplicate:1.331),(morbid:1.21),(mutilated:1.21),(tranny:1.331),mutated hands,(poorly drawn hands:1.5),blurry,(bad anatomy:1.21),(bad proportions:1.331),extra limbs,(disfigured:1.331),(missing arms:1.331),(extra legs:1.331),(fused fingers:1.61051),(too many fingers:1.61051),(unclear eyes:1.331),lowers,bad hands,missing fingers,extra digit,bad hands,missing fingers,(((extra arms and legs))),
Steps: 28, Sampler: DPM++ 2M, Schedule type: Karras, CFG scale: 7, Seed: 3605002200, Size: 1024x1024, Model hash: 30953ab0de, Model: 动漫MeinaMix_MeinaV8, Denoising strength: 0.42, Clip skip: 2, ADetailer model: face_yolov8n.pt, ADetailer confidence: 0.3, ADetailer dilate erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 24.9.0, Hires Module 1: Use same choices, Hires CFG Scale: 7, Hires upscale: 2, Hires steps: 5, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: f2.0.1v1.10.1-previous-662-g0ced1d0c, Module 1: vae-ft-mse-840000-ema-pruned

相关文章:

Linux-Ubuntu安装Stable Diffusion Forge

SD Forge在Win上配置起来相对简单且教程丰富,而在Linux平台的配置则稍有门槛且教程较少。本文提供一个基于Ubuntu24.04发行版(对其他Linux以及SD分支亦有参考价值)的Stable Diffusion ForgeUI安装配置教程,希望有所帮助 本教程以N…...

LoRA(Low-Rank Adaptation)原理详解

LoRA(Low-Rank Adaptation)原理详解 LoRA(低秩适应)是一种参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)技术,旨在以极低的参数量实现大模型在特定任务上的高效适配。其核心思想基于低秩分解假设,即模型在适应新任务时,参数更新矩阵具有低秩特性,可用少量参…...

分享一个可以用GPT打标的傻瓜式SD图片打标工具——辣椒炒肉图片打标助手

一、打标效果展示 请参考下图,了解最终的打标效果: 打标速度提升百分之300; 打标成本: gpt4o每百张图约5毛rmb; gpt4o-mini价格更低; 更有claude,grok,gemini,豆包等…...

实战项目2(03)

目录 任务场景一【重点】 【sw1配置】 【sw2配置】 任务场景二【重点】 【sw1配置】 【sw2配置】 【sw3配置】 任务场景一【重点】 掌握基于SVI实现跨VLAN通信——某公司网络为了减少广播包对网络的影响,网络管理员对网络进行了VLAN划分,完成VLA…...

PyCharm软件下载和配置Python解释器

以下是详细的PyCharm下载及解释器环境配置步骤: 有什么问题可以留评论(看见会回复的) 一、PyCharm下载 1. 访问官网 进入JetBrains官网:https://www.jetbrains.com/pycharm/ 2. 选择版本 Community版(免费&…...

《从零构建一个简易的IOC容器,理解Spring的核心思想》

大家好呀!今天我们要一起探索Java开发中最神奇的魔法之一 —— Spring框架的IOC容器!🧙‍♂️ 我会用最最最简单的方式,让你彻底明白这个看似高深的概念。准备好了吗?Let’s go! 🚀 一、什么是IOC容器&…...

差分与位移算子

差分与位移算子是数值分析和离散数学中处理序列或离散函数的重要工具。它们通过算子代数简化差分的计算和分析,以下是关键概念和关系的总结: 1. 位移算子(Shift Operator) 定义: 位移算子 ( E ) 将函数 ( f(x) ) 沿自变…...

Robot之VideoMimic:《Visual Imitation Enables Contextual Humanoid Control》翻译与解读

Robot之VideoMimic:《Visual Imitation Enables Contextual Humanoid Control》翻译与解读 导读:这篇论文介绍了VIDEOMIMIC,一个基于视觉模仿的真实到模拟到真实流水线,用于训练人形机器人执行上下文相关的全身动作。该方法通过分…...

【Java学习日记34】:this关键字和成员变量

为什么不需要加 this? 作用域规则: Java编译器在查找变量时遵循“就近原则”。 先在当前方法内查找局部变量或参数。 若找不到,则去类的成员变量中查找。 getName() 的上下文: 该方法没有参数或局部变量名为 name,因…...

包名查看器APP:高效管理手机应用的实用工具

包名查看器APP是一款功能强大的文件查看软件,专为安卓用户设计,能够帮助用户快速了解手机上安装和未安装的APK包信息。作为酷安首发的APK信息查看工具,它提供了比系统设置更详细的信息,如版本号、包名、MD5等,帮助用户…...

左右括号的最小处理次数

1、题目描述 多多君在处理一个由左结号(和右语号&#xff09;组成的字符串&#xff0c;多多君每次处理时可以顺序读取一个字符或者一个有效括号子串&#xff0c;求问多多的最小处理次数。 输入描述&#xff1a; 第一行为一个整数N&#xff0c;表示字符串长度&#xff08;1<…...

22.第二阶段x64游戏实战-分析周围对象类型

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;21.第二阶段x64游戏实战-分析采集物偏移 上一个内容里发现采集物的名字通过我们…...

【C/C++】无符号调试:GDB解栈实战指南

文章目录 无符号调试&#xff1a;GDB解栈实战指南1 生成并加载 Core Dump2 查看原始堆栈信息&#xff08;地址形式&#xff09;3 确认加载的共享库地址范围4 手动转换地址为函数名5 反汇编关键代码段6 加载外部符号文件&#xff08;如有&#xff09;7 结合系统库文档分析8 示例…...

梦熊联盟:202505基础语法-题解

202505基础语法-题解 T1 - 九的倍数 解法&#xff1a; 对于 9 的倍数&#xff0c;只需要判定其各位的数码和是否为 9 的倍数即可。 例如判断一个数是不是 9 的倍数&#xff0c;只要判断其各位数字之和是不是 9 的倍数&#xff0c;因为一个数能被 9 整除当且仅当它的各位数字之和…...

Java SE(11)——内部类

1.内部类 定义&#xff1a;Java中的内部类(Inner Class)是指在一个类的内部定义的类。 使用场景&#xff1a;当一个类的内部&#xff0c;存在一个部分需要完成的结构进行描述&#xff0c;而该内部结构只为外部类提供服务&#xff0c;那么这个内部结构就可以使用内部类&#xff…...

优化审核模块响应时间从8s降至1.2s的数据库解决方案

优化审核模块响应时间从8s降至1.2s的数据库解决方案 要优化审核模块的数据库性能&#xff0c;需要从多个层面进行分析和优化。以下是具体的SQL语句设计和优化方案&#xff1a; 1. 分析当前性能瓶颈 首先需要找出慢查询&#xff1a; -- 查看慢查询日志中的审核模块相关查询 …...

YOLO-World:基于YOLOv8的开放词汇目标检测

文章目录 前言1、出发点2、方法2.1.TextEncoder2.2.ReparmVLPAN2.3.输出头 3、实验3.1.数据集3.2.LVIS测试集 总结 前言 本文介绍一篇来自腾讯的开放词汇检测工作&#xff0c;发表自CVPR2024&#xff0c;论文链接&#xff0c;开源地址。 1、出发点 GroundingDINO在开放词汇检测…...

NX989NY104美光科技芯片NY109NY113

NX989NY104美光科技芯片NY109NY113 存储市场新势力&#xff1a;美光科技的崛起与技术突围 在半导体行业波澜壮阔的浪潮中&#xff0c;美光科技宛如一颗璀璨的明珠&#xff0c;以其独特的技术实力和敏锐的市场洞察力&#xff0c;在存储领域占据了重要的一席之地。尤其是其旗下…...

LabVIEW的PID参数自适应控制

在工业控制领域&#xff0c;PID 控制凭借结构简单、稳定性好、工作可靠等优点被广泛应用。然而&#xff0c;传统固定参数的 PID 控制在面对复杂多变的工况时&#xff0c;控制效果往往难以达到最优。基于 LabVIEW 实现 PID 控制根据情况选择参数&#xff08;即参数自适应调整&am…...

Quartus与Modelsim-Altera使用手册

目录 文章内容&#xff1a; 视频内容&#xff1a; Quartus&#xff1a; ModelSim&#xff1a; 顶层设计与子模块&#xff1a; 只是对所查阅的相关文章的总结与视频总结 文章内容&#xff1a; 这篇对基础操作很详细&#xff1a; 一、Quartus II软件的使用_quartus2软件上…...

设计模式之工厂模式(二):实际案例

设计模式之工厂模式(一) 在阅读Qt网络部分源码时候&#xff0c;发现在某处运用了工厂模式&#xff0c;而且编程技巧也用的好&#xff0c;于是就想分享出来&#xff0c;供大家参考&#xff0c;理解的不对的地方请多多指点。 以下是我整理出来的类图&#xff1a; 关键说明&#x…...

数据可视化大屏——智慧社区内网比对平台

综述分析&#xff1a; 智慧社区内网数据比对信息系统 这段代码实现了一个智慧社区内网数据比对信息系统的前端界面&#xff0c;采用三栏式布局展示各类社区安全相关数据。界面主要由左侧数据统计、中间地图展示和右侧数据分析三部分组成&#xff0c;使用了多种图表可视化技术…...

Spark任务调度流程详解

1. 核心调度组件 DAGScheduler&#xff1a;负责将Job拆分为Stage&#xff0c;处理Stage间的依赖关系。 TaskScheduler&#xff1a;将Task分配到Executor&#xff0c;监控任务执行。 SchedulerBackend&#xff1a;与集群管理器&#xff08;如YARN、K8s&#xff09;通信&#x…...

LeetCode 215题解 | 数组中的第K个最大元素

数组中的第K个最大元素 一、题目链接二、题目三、算法原理四、编写代码 一、题目链接 数组中的第K个最大元素 二、题目 三、算法原理 法一&#xff1a;排序 法二&#xff1a;优先级队列&#xff08;堆&#xff09; 重点看法二&#xff1a; 默认建大堆&#xff0c;意味着以…...

探秘 Cursor 核心:解锁系统提示词的进阶之路

在 AI 编程领域&#xff0c;Cursor 无疑是一颗耀眼的明星&#xff0c;其母公司 Anysphere 在短短三个月内&#xff0c;估值从 25 亿美元狂飙至 100 亿美元&#xff0c;这样的发展速度令人咋舌。而 Cursor 强大功能背后的核心 —— 系统提示词&#xff0c;始终笼罩着一层神秘的面…...

ElasticSearch入门详解

1.ElasticSearch 1.1 ElasticSearch(简称es) Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。 能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0c;快速&#xff0c;安装使用方便。 客户端支持Java、.NET&#xff08;C#&#xff09;、PHP、Py…...

【计算机网络01】 网络组成与三种交换方式

【参考资料】 《自顶向下的计算机网络第八版》湖科大计算机网络&#xff08;b站&#xff09;王道考研&#xff08;b站&#xff09; 文章目录 一、网络基础概念解析1.1 网络、互联网与因特网 二、因特网发展三阶段&#xff08;了解&#xff09;三、ISP3.1 ISP基本概念3.2 基于I…...

计算机网络——以太网交换机

目录 交换机的作用 以太网交换机的自学习功能 因为以太网交换机有自学习功能&#xff0c;所以以太网交换机支持即插即用 交换机的作用 它工作在数据链路层&#xff0c;为结点转发帧&#xff0c;并且可以根据一个帧的目的MAC地址去进行相应的转发&#xff0c;以及交换机的每…...

机器视觉开发教程——C#如何封装海康工业相机SDK调用OpenCV/YOLO/VisionPro/Halcon算法

目录 引言前期准备Step1 创建工程Step2 创建接口2.1定义操作相机实例接口方法2.2定义设置相机参数接口方法&#xff08;部分&#xff09; Step3 创建基类3.1定义操作相机实例&&设置相机参数的抽象层3.2定义操作相机实例&&设置相机参数的公用方法1.获取当前帧图…...

c++STL-string的模拟实现

cSTL-string的模拟实现 string的模拟实现string的模拟线性表的实现构造函数析构函数获取长度&#xff08;size&#xff09;和获取容量&#xff08;capacity&#xff09;访问 [] 和c_str迭代器&#xff08;iterator&#xff09;交换swap拷贝构造函数赋值重载&#xff08;&#x…...

HTTP 和 WebSocket 的区别

✅ 一、定义对比 协议简要定义HTTP一种基于请求-响应模式的、无状态的应用层协议&#xff0c;通常用于客户端与服务器之间的数据通信。WebSocket一种全双工通信协议&#xff0c;可以在客户端和服务器之间建立持久连接&#xff0c;实现实时、低延迟的数据传输。 ✅ 二、通信方式…...

【Tools】Visual Studio使用经验介绍(包括基本功能、远程调试、引入第三方库等等)

这里写目录标题 1. VS基本使用1.1. 快捷键1.2. 查看变量地址1.3. 查看代码汇编1.4. visual studio 热重载功能的使用1.5. vs远程服务器调试1.6. 引入第三方库VLD1.7. release debug模式 1. VS基本使用 1.1. 快捷键 ctrl c :复制光标所在行 注意&#xff1a;只需要光标在这…...

一周内学完计算机网络课程之二:计算机网络物理层的理解

消失人口回归&#xff0c;重新开始学习新知识。再次伟大。 物理层详解 需要理解的几个概念&#xff1a; 曼彻斯特编码、差分曼彻斯特编码 码元&#xff1a;构成信号的基本单元 调制&#xff1a; 通信中的调制是一种将原始信号&#xff08;如音频、视频、数据等&#xff09;转…...

Python OpenCV性能优化与部署实战指南

在计算机视觉领域&#xff0c;OpenCV作为开源视觉库的标杆&#xff0c;其性能表现直接影响着从工业检测到AI模型推理的各类应用场景。本文结合最新技术趋势与生产实践&#xff0c;系统性梳理Python环境下OpenCV的性能优化策略与部署方案。 一、性能优化核心技术矩阵 1.1 内存…...

深度解析:可视化如何重塑销售策略制定与执行

为什么你的销售策略总是“听起来挺对&#xff0c;做起来却没用”&#xff1f; 你有没有遇到过这样的情况&#xff1a; 销售团队天天跑客户&#xff0c;但业绩还是上不去&#xff1b;市场部说数据在增长&#xff0c;销售部却觉得“根本没转化”&#xff1b;高层开会时信心满满…...

opencv关键点检测

python 使用opencv进行图片关键点检测 功能&#xff1a; 在一张图片中裁剪出一块小图 使用cv2中 cv2.SIFT_create() SIFT检测器检测关键点 匹配原图和小图的关键点 import cv2 import numpy as np # 读取图像 img1 cv2.imread(rE:\234947.jpg, cv2.IMREAD_GRAYSCALE) img…...

C#游戏开发中的注意事项

目录 一、性能优化:提升游戏运行效率 1. 避免不必要的循环和迭代 2. 减少字符串拼接 3. 利用Unity的生命周期函数 4. 使用对象池(Object Pooling) 二、内存管理:避免内存泄漏和资源浪费 1. 及时释放非托管资源 2. 避免空引用异常 3. 合理使用引用类型和值类型 4. …...

MySQL的锁

锁 概述&#xff1a;锁是计算机协调多个线程或进程并发访问某一资源的机制。如何保证数据库中并发的一致性&#xff0c;有效性&#xff0c;这就是锁的作用。 分类&#xff1a; 全局锁 对数据库实例加锁&#xff0c;加锁之后&#xff0c;处于只读状态&#xff0c;后续的DML语句…...

学习黑客5 分钟小白弄懂Windows Desktop GUI

5 分钟小白弄懂Windows Desktop GUI &#x1f5a5;️ 大家好&#xff01;今天我们将深入浅出地探索Windows桌面图形用户界面(GUI)——这是我们每天与计算机交互的"门面"。无论你是刚开始接触计算机&#xff0c;还是想在TryHackMe等平台上提升安全技能&#xff0c;理…...

机器人运动控制原理浅析-UC Berkeley超视觉模态模型

加州伯克利发布的超视觉多感知模态融合(FuSe, Fuse Heterogeneous Sensory Data)模型&#xff0c;基于视觉、触觉、听觉、本体及语言等模态&#xff0c;利用自然语言跨模态对齐(Cross-Modal Grounding)优调视觉语言动作等通用模型&#xff0c;提高模型任务成功率。 总体框架 …...

【计算机网络】网络IP层

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;传输层协议TCP 下篇文章&#xff1a;数据链路层 文章摘要&#xff1…...

Nginx重写功能

目录 一 . 简介 二. if指令 2.1基本语法 2.2 举例说明 2.3 配置实例 三. return 3.1 基本语法 3.2 配置实例 四. set指令 4.1 基本语法 4.2 举例说明 4.3 配置实例 五.break指令 5.1 作用 5.2 举例说明 5.3 配置实例 六.rewrite指令 6.1 基本语法 6.2 配…...

2025-05-11 项目绩效域记忆逻辑管理

好的&#xff0c;我们可以用一个故事来帮助记忆这些规划绩效域的要素&#xff0c;同时通过逻辑关系来串联它们。以下是一个故事化的版本&#xff1a; 《项目管理的奇幻之旅》 在一个遥远的王国里&#xff0c;有一个勇敢的项目经理名叫小K。小K被国王赋予了一个艰巨的任务&…...

全模态具身智能:从 VLM 到 MLLM

写在前面 人工智能的感知边界正在以前所未有的速度扩展。最初,我们惊叹于大型语言模型(LLM)对文本的深刻理解和流畅生成。很快,视觉语言模型(Vision-Language Models, VLM) 登场,让 AI 第一次真正“看见”了世界,能够理解图像内容并将其与语言关联,实现了“看图说话”…...

C++入门小馆: 二叉搜索树

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…...

C++.IP协议通信

C++IP协议通信 1. TCP协议通信1.1 服务端实现创建套接字绑定地址监听连接接受连接数据传输关闭连接1.2 客户端实现创建套接字连接服务器数据传输关闭连接1.3 示例代码服务端代码示例客户端代码示例绑定地址接收数据发送数据关闭套接字2.2 客户端实现创建套接字发送数据接收数据…...

虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框

虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框1. 退出编辑器时弹出的“Save Content”窗口2. File 菜单中的保存选项3. 区别总结 1. 退出编辑器时弹出的“Save Content”窗口 退出时…...

【KEIL】更新AC6编译器

看过部分的文章&#xff0c;Arm Compiler 6&#xff08;AC6&#xff09;编译器&#xff0c;相比AC5在编译速度和代码优化上提升了。因此&#xff0c;笔者决定升级到AC6的最新版本。可以更新keil5到最新版本&#xff0c;上面集成AC6编译器的版本&#xff0c;与最新版相差不远。假…...

Mosquitto MQTT库实战指南

目录 1. MQTT协议简介2. Mosquitto概述3. 开源MQTT实现对比4. 为什么选择Mosquitto5. Mosquitto的交叉编译6. MQTT发布订阅实战7. 进阶应用与最佳实践8. 总结 1. MQTT协议简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种基于发布/订阅模式的轻…...

C语音学习---函数指针

目录 1. 函数指针解析 2. 自定义实现&#xff08;函数指针赋值&#xff09; 利用下面一段例子来解析&#xff1a; int (*set_slave)(modbus_t *ctx, int slave); 1. 函数指针解析 set_slave 是一个 函数指针&#xff0c;指向一个函数。 该函数接受两个参数&#xff1a; mo…...