[AI]从零开始的ComflyUI安装教程
一、前言
AI画图如今已经进化到了让人难以想象的地步。早在2022年各大视频网站上就出现了许多真人使用AI绘制二次元形象的视频。在那个时期,也有人凭借AI画图狠狠的吃到了一波AI红利。在现在,对于普通人来说,AI画图仍然是非常值得探索的。不管你是想绘制一些符合自己心意的图片,或者是想绘制自己的二次元形象,亦或是使用AI生成一些动态的视频,你都可以使用ComfyUI来完成。当然,在使用ComfyUI之前,我们首先就需要安装一个ComfyUI,本次教程就是为了教大家如何正确安装ComfyUI并且正常的出图,如果你准备好了,那我们就开始吧!
二、谁适合本次教程
本次教程中,我们的ComfyUI采用纯手动安装,即本次安装教程不依赖任何整合包,是直接从开源网站拉取源码并且运行。当然,不是说那些大佬做的整合包不好,在我看来,手动安装更能让我们理解这个程序是如何运作了,当我们理解了程序运行的基本原理以后,我们去配置插件以及加载模型就会轻松许多。因为本次安装采用纯手动安装,这里需要大家具备一定的python基础,如果你并不具备python基础但是又想使用ComfyUI的话,可以尝试去搜索一些整合包。
三、对配置的要求
在本次教程中,我会教大家两种部署ComfyUI的方法。一种是基于显卡算力跑在本地的方案,另一种则是通过腾讯云免费的“高新能工作空间”部署的方案。如果你的电脑显卡性能在1080ti以下亦或是没有显卡都不推荐本地部署,否则出图会非常慢,慢到不能接受的那种。目前,至少在我发这篇教程时,腾讯云每月会赠送10000分钟的免费GPU算力,因此我们还可以白嫖算力来部署ComfyUI。所以,总的来说,不管你的计算机性能的好坏,至少现在你都可以部署ComfyUI。
四、在本地安装ComfyUI
这里我们就先来为大家讲解如何在本地安装ComfyUI,如果你想使用云端部署,这里可以直接跳过第四点,直接到后面的云端安装教程即可。如果你还在说明你已经确保自己的计算机能够运行ComfyUI,首先我们需要准备部署ComfyUI运行所需的环境。这里再次声明,大家想要本地部署ComfyUI,需要确保自己的显卡性能在1080ti以上。
1.Conda的安装
首先为了我们ComfyUI的环境不与其它的环境冲突,我们这里需要使用到Conda创建一个虚拟环境,Conda的安装教程在很久以前我已经发过了,所以,这里也就不多说了,大家直接看下面教程即可:
MiniConda的安装:[python]我们应该如何安装Miniconda虚拟环境?(详细)_miniconda创建虚拟环境-CSDN博客
在安装好Conda以后,在Conda的终端中输入下面的命令,有下面图中的输出就表示安装完成了:
conda
这里需要注意的是,本教程逻辑性非常强,必须在完成了前面的步骤以后才能进行后面的操作,所以这里一定要确保自己已经安装好了Conda的环境。conda的安装教程距离现在已经有一段时间了,不管是Conda的官网或者是Conda在菜单中的位置都可能不一样了,但是,道理都是一样了。在出现问题时,可以尝试自己摸索一下或者是去论坛中寻找解决方案,这里就不多说了。
2.pytouch的安装
这里我们首先需要创建一个虚拟环境,直接在conda的终端中使用下面的命令:
conda create --name ComfyUI python=3.9
我们使用这段代码创建了一个名为“ComfyUI”的虚拟环境,并且python版本为3.9。具体的内容在Conda的安装中就已经讲过了,这里就不多说了。
当我们虚拟环境创建好以后,使用下面的命令进入这个虚拟环境:
conda activate ComfyUI
我们输入命令以后,我们终端前面的名字已经变成我们虚拟环境的名字了,这样我们才成功进入虚拟环境了:
进入虚拟环境以后,我们就可以准备安装pytouch了。这里我们需要安装N卡版本的pytouch,注意,一定是N卡版本的。pytouch的安装教程在很久之前我就已经写过了,这里我们需要借助pytouch安装教程中的CUDA安装教程,这里大家直接将自己的CUDA驱动安装到最新即可:
pytouch安装教程:[python]如何正确的安装pytorch?(详细)_pytorch安装-CSDN博客
大家安装好CUDA驱动以后,这里我们直接使用下面命令安装pytouch:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu126
这里拉取可能比较慢,大家可以尝试更换网络环境或者是使用正向代理手段。ComfyUI对pytouch的版本要求比较高,这里一定要使用我的安装链接。
在安装完成以后,我们直接使用下面的命令查看以下已经安装的包:
pip list
如果看到有pytouch在列表中并且后面跟了一个CUDA版本,就表示安装成功了:
安装完成以后,我们可以在终端中依次输入下面三条命令进行测试,注意这里是依次输入:
python
import torch
torch.cuda.is_available()
如果出现以下输出,就表示pytouch是没有问题的:
只有在这里输出“True”时才能进行下一步,不然都是有问题的。如果你这里输出出错,可以尝试重新进行上面的步骤。
3.ComfyUI项目源码拉取
这里当我们安装好pytouch以后,我们就可以拉取ComfyUI源码了,这里需要我们已经安装好git,这里git的安装并不难,所以就不过多讲解了,如果有不会的小伙伴可以在网络上寻找git的安装教程。在安装好git以后我们可以直接使用下面的命令来拉取ComfyUI的项目源码:
git clone https://github.com/comfyanonymous/ComfyUI.git
拉取完成以后,就得到了以下文件夹:
当然,我们也可以直接前往ComfyUI的开源主页下载源码压缩包,这里我们可以直接在浏览器搜索ComfyUI Github:
这里我们搜索到的第一个就是ComfyUI的开源主页了:
进入ComfyUI的开源主页以后,就能看到以下界面了:
然后我们再点击右上角的“Code”:
然后再点击“Download ZIP”:
点击了以后,过一会儿浏览器就会弹出下载了:
大家将这个压缩包下载到自己能找到的地方即可。解压以后就能得到和拉取的一样的文件夹了。
4.剩余依赖的安装
当我们已经安装好pytouch以及将ComfyUI拉取过来以后就可以安装剩余的依赖了。这里我们还是要回到ComfyUI的虚拟环境中:
然后,我们需要在终端中将路径切换到ComfyUI的项目目录,如图:
这里大家的路径可能和我的不一样,我就不放代码了。大家自行切换即可。切换到ComfyUI的项目目录以后,我们输入“ls”命令,可以看到以下输出:
只有当我们看到以下输出以后才表示路径已经切换对了,在可以进行下一步。
这里我们直接使用下面的命令来安装剩余的依赖:
pip install -r .\requirements.txt
输入完成以后回车,依赖就开始安装了:
这里我们等待安装完成即可。
这里没有出现错误并且安装了非常多的包,这样ComfyUI所需的依赖就安装完成了:
5.开放外部访问(非必须)
当我们已经安装好ComfyUI所需的依赖以后,按理来说我们已经可以直接启动ComfyUI了,但是考虑有的小伙伴可能是远程的服务器或者是云服务器会涉及到远程访问ComfyUI的界面,所以我们就需要开放ComfyUI的外部访问,当然,如果你就在启动ComfyUI的设备上访问ComfyUI的Web页面,那就不需要开放外部访问了,可以直接跳过此步。
好的,剩下的小伙伴都是需要开放外部访问的,那就让我们开始吧。这里我们首先还是进入ComfyUI的项目目录:
然后进入“comfy”目录:
然后我们再打开“cli_args.py”文件:
然后我们在文件的第38行左右,可以找到一个“default”,注意,这里一定是被我框出来的“default”:
我们将“default”中的内容改为“0.0.0.0”,如图所示:
修改好以后,我们的ComfyUI就可以使用启动它的设备的IP地址直接访问它了。
6.ComfyUI模型的下载
ComfyUI的模型和SD的模型是通用的,这里大家直接下载的SD模型可以直接使用。如果你之前没下载过SD的模型,可以去B站等平台搜索并下载一些SD的模型。这里我们可以前往C站(需要代理)下载:
C站:Civitai: The Home of Open-Source Generative AI
当大家选择好自己喜欢的模型以后,直接点击下载即可:
正常模型的大小一般在几个G并且以“safetensors”和“ckpt”为后缀。一般几百个M的是LORA模型。这里我们需要的是那种几个G的基础模型。
我们模型下载下来以后如图所示:
这里我们将下载好的模型复制到ComfyUI项目目录下的“models\checkpoints”目录下:
当我们完成上面的步骤以后,我们的模型就已经可以被ComfyUI加载了。每次ComfuUI启动时都会加载模型。
7.ComfyUI的加载及出图
当我们完成上面所有的步骤以后,我们就可以启动ComfuUI了,这里我们需要启动ComfyUI的虚拟环境,并且将目录切换到ComfyUI的项目目录下,如图:
这里我们输入下面的命令,就可以启动ComfyUI了:
python .\main.py
回车以后,就能看到许多日志了:
如果在启动时有错误的话,极有可能是pytouch版本有问题:
这里我们直接通过浏览器访问这个网址即可。如果你没有开放外部访问,那么这里就是127.0.0.1,如果你开放了外部访问,那这里就是0.0.0.0,开放了外部访问的小伙伴直接使用启动ComfyUI的IP地址加端口号访问即可,假如我内网中启动ComfyUI的设备的IP地址是192.168.112.35,那么我访问都链接就应该是“192.168.112.35:8188”
这里可以看到,我们已经访问到了:
它让我们下载模型,我们这里已经额外下载了模型了,这里直接关掉即可。
ComfyUI自身有一套工作流,我们可以直接拿来用:
这里我们需要将模型加载器这里切换为我们刚刚复制过去的模型:
确保模型没问题以后,我们直接点击“执行”:
执行了以后,我们就可以看到图片了:
这里我没有特殊加提示词,所以出图就只是一个瓶子。目前,至少ComfyUI已经是正常运行了。
五、在腾讯云安装ComfyUI
来到这里的小伙伴,可能自己设备的性能就没有那么尽人意了。那我们就可以直接白嫖腾讯云的算力来绘图,至少目前,腾讯云的算力还是可以白嫖的。在未来,可能会发生变化,这个谁都说不定。那么现在,我们就开始吧!
这里我们首先点击下方的链接进入腾讯云的官网:
腾讯云:https://cloud.tencent.com/
进入以后就能看到下面的界面了:
这里大家自己点击右上角的登录,然后使用微信登录一下。
登录完成以后,我们点击右上角的“控制台”:
然后再点击“工具”:
然后我们再点击“CloudStudio”:
然后点击左边栏的“高性能工作空间”:
进来以后,我们点击“立即创建”:
这里我们直接选择免费基础型:
创建了以后,过一会儿就可以看到创建好了,我们直接点击即可:
进来以后,我们就能看到以下界面了:
然后我们点击“终端”:
然后再点击“新建终端”:
这里我们在终端中输入下面的命令拉取以下“ComfyUI工具”:
git clone https://github.com/damoshen123/comfyuiTool.git
拉取以后,就得到了以下文件夹:
我们使用下面的命令进入这个文件夹:
cd comfyuiTool/
进入这个文件夹以后,我们使用下面的命令启动一个脚本文件:
bash comfyuiTool.sh
输入了命令以后,就出现了以下界面:
这里我们输入“1”进行安装。
安装完成以后,我们输入“4”退出即可。
这里我们再输入下面的命令,打开管理面板:
bash manage.sh
打开以后,就可以看到以下界面了:
这里我们首先输入“3”去下载一个模型,这里需要我们提供下载链接:
我们点击下方的链接来到C站,我们点击模型的Download下载模型:
C站模型链接:https://civitai.com/models/404154/wai-ani-nsfw-ponyxl
点击了模型的下载以后,浏览器会弹出下载,我们将下载停掉,右键复制链接:
我们将这个链接复制到刚才需要我们放链接的地方,回车以后就开始下载了:
模型下载完成以后,我们直接输入菜单中的“5”启动ComfyUI:
启动以后,我们的访问链接就出来了,当然,这里我们不能使用这个链接进行访问。我们直接复制浏览器中这个界面的链接(注意是当前界面的链接,在浏览器的顶上),复制以后,应该是下面这样的:
https://fsbwlv.ap-guangzhou.cloudstudio.work/
我们需要再“.ap”前面加上“--8188”,修改以后,就变成了下面这样:
https://fsbwlv--8188.ap-guangzhou.cloudstudio.work/
我们直接访问这个新链接即可。访问以后,就可以看到ComfyUI的链接了:
这里我们在模型加载器中选择我们已经下载好的模型:
选择好以后,我们直接点击“执行”:
随后,我们就可以看到生成的图片了:
这里我就随便选择了一个模型进行生成。可以看到,我们的ComfyUI已经可以正常生成了。
至此,我们在腾讯云安装ComfyUI就已经完成了。
六、结语
ComfyUI是一个非常强大的AI图像生成工具,剩下更多有趣的玩法就交给大家自行探索吧,那么最后,感谢大家的观看!
相关文章:
[AI]从零开始的ComflyUI安装教程
一、前言 AI画图如今已经进化到了让人难以想象的地步。早在2022年各大视频网站上就出现了许多真人使用AI绘制二次元形象的视频。在那个时期,也有人凭借AI画图狠狠的吃到了一波AI红利。在现在,对于普通人来说,AI画图仍然是非常值得探索的。不管…...
文本对抗样本系列的论文阅读笔记(整理合订)
文本对抗样本系列的论文阅读笔记 以前调研文本对抗样本时的论文笔记梳理,论文都很经典,有现成的框架(TextAttack)可以直接用,论文中部分内容直接是截取自论文,所以存在中英混合笔记的情况。 BERT-Attack …...
鸿基智启:东土科技为具身智能时代构建确定性底座
人类文明的每一次跨越都伴随着工具的革新。从蒸汽机的齿轮到计算机的代码,生产力的进化始终与技术的“具身化”紧密相连。当大语言模型掀起认知革命,具身智能正以“物理实体自主决策”的双重属性重新定义工业、医疗、服务等领域的运行逻辑。在这场革命中…...
javascript-es6 (六)
编程思想 面向过程 面向过程 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次 调用就可以了 就是按照我们分析好了的步骤,按照步骤解决问题 面向对象 面向对象 是把事务分解成为一个个对象&am…...
【leetcode hot 100 19】删除链表的第N个节点
解法一:将ListNode放入ArrayList中,要删除的元素为num list.size()-n。如果num 0则将头节点删除;否则利用num-1个元素的next删除第num个元素。 /*** Definition for singly-linked list.* public class ListNode {* int val;* Lis…...
微信小程序将markdown内容转为pdf并下载
要在微信小程序中将Markdown内容转换为PDF并下载,您可以使用以下方法: 方法一:使用第三方API服务 选择第三方API服务: 可以选择像 Pandoc、Markdown-PDF 或 PDFShift 这样的服务,将Markdown转换为PDF。例如,PDFShift 提供了一个API接口,可以将Markdown内容转换为PDF格式…...
【贪心算法】将数组和减半的最小操作数
1.题目解析 2208. 将数组和减半的最少操作次数 - 力扣(LeetCode) 2.讲解算法原理 使用当前数组中最大的数将它减半,,直到数组和减小到一半为止,从而快速达到目的 重点是找到最大数,可以采用大根堆快速达到…...
【面试】Kafka
Kafka 1、为什么要使用 kafka2、Kafka 的架构是怎么样的3、什么是 Kafka 的重平衡机制4、Kafka 几种选举过程5、Kafka 高水位了解过吗6、Kafka 如何保证消息不丢失7、Kafka 如何保证消息不重复消费8、Kafka 为什么这么快 1、为什么要使用 kafka 1. 解耦:在一个复杂…...
PHP MySQL 创建数据库
PHP MySQL 创建数据库 引言 在网站开发中,数据库是存储和管理数据的核心部分。PHP 和 MySQL 是最常用的网页开发语言和数据库管理系统之一。本文将详细介绍如何在 PHP 中使用 MySQL 创建数据库,并对其操作进行详细讲解。 前提条件 在开始创建数据库之…...
通义万相 2.1 × 蓝耘智算:AIGC 界的「黄金搭档」如何重塑创作未来?
我的个人主页 我的专栏: 人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!! 点赞👍收藏❤ 引言 在当今数字化浪潮席卷的时代,AIGC(生成式人工智能)领域正…...
【面试题系列】:使用消息队列怎么防止消息重复?从原理到实战……
一、消息队列的核心价值与挑战 消息队列(MQ)作为现代分布式系统的基础设施,其核心价值在于解耦、削峰填谷和异步通信。但在追求高可靠性的过程中,消息重复成为必须攻克的技术难题。根据调研数据,在生产环境中消息重复…...
Damage与Injury
### “Damage”和“Injury”的区别 “Damage”和“Injury”都有“损害”或“伤害”的意思,但它们的用法、语境和侧重点有所不同。以下是从词性、适用对象、语义侧重和具体场景四个方面详细对比两者的区别: --- #### 1. **词性** - **Damage**…...
18 HarmonyOS NEXT UVList组件开发指南(五)
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 第五篇:UVList组件最佳实践与实际应用案例 文章目录 第五篇:UVList组件最佳实践与实际应用案例1. 最佳实践总结1.1 组件设计…...
vue3组合式API怎么获取全局变量globalProperties
设置全局变量 main.ts app.config.globalProperties.$category { index: 0 } 获取全局变量 const { appContext } getCurrentInstance() as ComponentInternalInstance console.log(appContext.config.globalProperties.$category) 或是 const { proxy } getCurrentInstance…...
华为机试牛客刷题之HJ14 字符串排序
HJ14 字符串排序 描述 对于给定的由大小写字母混合构成的 n 个单词,输出按字典序从小到大排序后的结果。 从字符串的第一个字符开始逐个比较,直到找到第一个不同的位置,通过比较这个位置字符对应的(A<⋯<Z<a<⋯<…...
CPU 负载 和 CPU利用率 的区别
简单记录下 top 命令中,CPU利用率核CPU负载的概念, (1)CPU利用率:指在一段时间内 表示 CPU 实际工作时间占总时间的百分比。表示正在执行进程的时间比例,包括用户空间和内核空间程序的执行时间。通常包含以…...
SSM框架
SSM 框架是 Java Web 开发中广泛使用的经典组合,由 Spring、Spring MVC 和 MyBatis 三个开源框架整合而成,适用于构建中大型企业级应用。 1. SSM框架组成 框架作用核心特性Spring管理业务层(Service)和持久层(DAO&am…...
maven无法解析插件 org.apache.maven.plugins:maven-jar-plugin:3.4.1
解决流程 1.修改maven仓库库地址 2.删除本地的maven仓库 maven插件一直加载有问题: 无法解析插件 org.apache.maven.plugins:maven-jar-plugin:3.4.1 开始以为maven版本有问题,重装了maven,重装了idea工具。结果问题还是没解决。研究之后发现…...
如何修复“RPC 服务器不可用”错误
远程过程调用(Remote Procedure Call, RPC)是允许客户端在不同计算机上执行进程的众多可用网络进程之一。本文将深入探讨RPC如何在不同的软件系统之间实现无缝消息交换,同时重点介绍与RPC相关的常见错误的一些原因。 什么是远程过…...
晋升系列4:学习方法
每一个成功的人,都是从底层开始打怪,不断的总结经验,一步一步打上来的。在这个过程中需要坚持、总结方法论。 对一件事情长久坚持的人其实比较少,在坚持的人中,不断的总结优化的更少,所以最终达到高级别的…...
单链表-代码精简版
单链表核心知识详解 单链表是一种动态存储的线性数据结构,其特点是逻辑上连续,物理上非连续,每个节点包含数据域和指向下一个节点的指针域。以下是核心知识点与完整实现代码: 一、单链表的结构定义 单链表节点通过结构体自引用…...
关于前后端整合和打包成exe文件的个人的总结和思考
前言 感觉有很多东西,不知道写什么,随便写点吧。 正文 前后端合并 就不说怎么开发的,就说点个人感觉重要的东西。 前端用ReactViteaxios随便写一个demo,用于CRUD。 后端用Django REST Framework。 设置前端打包 import { …...
基于muduo+mysql+jsoncpp的简易HTTPWebServer
一、项目介绍 本项目基于C语言、陈硕老师的muduo网络库、mysql数据库以及jsoncpp,服务器监听两个端口,一个端口用于处理http请求,另一个端口用于处理发送来的json数据。 此项目在实现时,识别出车牌后打包为json数据发送给后端服务…...
Java/Kotlin逆向基础与Smali语法精解
1. 法律警示与道德边界 1.1 司法判例深度剖析 案例一:2021年某游戏外挂团伙刑事案 犯罪手法:逆向《王者荣耀》通信协议,修改战斗数据包 技术细节:Hook libil2cpp.so的SendPacket函数 量刑依据:非法经营罪ÿ…...
C++:入门详解(关于C与C++基本差别)
目录 一.C的第一个程序 二.命名空间(namespace) 1.命名空间的定义与使用: (1)命名空间里可以定义变量,函数,结构体等多种类型 (2)命名空间调用(…...
CI/CD—GitLab钩子触发Jenkins自动构建项目
GitLab钩子简介: 项目钩子 项目钩子是针对单个项目的钩子,会在项目级别的特定事件发生时触发。这些事件包括代码推送、合并请求创建、问题创建等。项目钩子由项目管理员或具有相应权限的用户进行配置,仅对特定项目生效。 使用场景:…...
RPA 职业前景:个人职场发展的 “新机遇”
1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…...
【CSS3】金丹篇
目录 标准流概念元素类型及排列规则块级元素行内元素行内块元素 标准流的特点打破标准流 浮动基本使用清除浮动额外标签法单伪元素法双伪元素法(推荐)overflow 法 Flex 布局Flex 组成主轴对齐方式侧轴对齐方式修改主轴方向弹性盒子伸缩比弹性盒子换行行对…...
Git(一)
一、介绍 二、Git代码托管服务 三、Git常用命令 全局设置: 获取Git仓库: 工作区、暂存区、版本库概念: Git工作区文件的状态: 本地仓库操作: 远程仓库操作: 分支操作: 标签操作: 四…...
Python大数据可视化:基于spark的短视频推荐系统的设计与实现_django+spider
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 热门视频界面 用户界面 用户反馈界面 论坛交流界面 系统…...
面试题之react useMemo和uesCallback
在面试中,关于 React 中的 useMemo 和 useCallback 的区别 是一个常见的问题。 useMemo 和 useCallback 的区别 1. 功能定义 useMemo: 用于缓存计算结果,避免在每次组件渲染时重新计算复杂的值。它接受一个计算函数和一个依赖数组࿰…...
K8S学习之基础十九:k8s的四层代理Service
K8S四层代理Service 四层负载均衡Service 在k8s中,访问pod可以通过ip端口的方式,但是pod是由生命 周期的,pod在重启的时候ip地址往往会发生变化,访问pod就需要新的ip地址,这样就会很麻烦,每次pod地址改变就…...
C++:string容器(下篇)
1.string浅拷贝的问题 // 为了和标准库区分,此处使用String class String { public :/*String():_str(new char[1]){*_str \0;}*///String(const char* str "\0") // 错误示范//String(const char* str nullptr) // 错误示范String(const char* str …...
sudo systemctl restart docker 重启docker失败
一般会使用如下命令,进行docker重启。 sudo systemctl daemon-reload sudo systemctl restart docker 重启失败时,会提示:Job for docker.service failed because the control process exited with error code. See "systemctl status…...
Linux基本操作指令3
1、wget: 这是一个用于从网络上下载文件的命令行工具。它支持 HTTP、HTTPS 和 FTP 协议。 wget http://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run 2、下载完成后,你可以通过以下命令使文件可执行并运行安装程序: ch…...
React:类组件(上)
kerwin老师我来了 类组件的创建 class组件,js里的类命名首字符大写,类里面包括构造函数,方法 组件类要继承React.Component才有效 必须包含render方法 import React from react class App extends React.Component{render() {return <…...
sqli-lab靶场学习(七)——Less23-25(关键字被过滤、二次注入)
前言 之前的每一关,我们都是在末尾加上注释符,屏蔽后面的语句,这样我们只要闭合了区间之后,差不多就是为所欲为的状态。但如果注释符不生效的情况下,又该如何呢? Less23(注释符被过滤ÿ…...
虚函数和虚表的原理是什么?
虚函数是一个使用virtual关键字声明的成员函数,在基类中声明虚函数,在子类中可以使用override重写该函数。虚函数根据指针或引用指向的实际对象调用,实现运行时的多态。 虚函数表(虚表)是一个用于存储虚函数地址的数组…...
RReadWriteLock读写锁应用场景
背景 操作涉及一批数据,如订单,可能存在多个场景下操作,先使用读锁,从redis缓存中获取操作中数据 比如 关闭账单, 发起调账, 线下结算, 合并支付 先判断当前操作的数据,是否在…...
【面试】MySQL
MySQL 1、数据库三范式2、什么是关系型数据库,什么是非关系型数据库3、什么是数据库存储引擎4、MySQL5.x和8.0有什么区别5、char 和 varchar 的区别6、in 和 exists 的区别7、MySQL 时间类型数据存储建议8、drop、delete 与 truncate 区别9、一条 Sql 的执行顺序10、…...
Trae AI 开发工具使用手册
这篇手册将介绍 Trae 的基本功能、安装步骤以及使用方法,帮助开发者快速上手这款工具。 Trae AI 开发工具使用手册 Trae 是字节跳动于 2025 年推出的一款 AI 原生集成开发环境(IDE),旨在通过智能代码生成、上下文理解和自动化任务…...
表格columns拼接两个后端返回的字段(以umi框架为例)
在用组件对前端项目进行开发时,我们会遇到以下情况:项目原型中有取值范围这个表字段,需要存放最小取值到最大取值。 而后端返回给我们的数据是返回了一个最小值和一个最大值, 在columns中我们需要对这两个字段进行拼接࿰…...
常见的算法题python
字符串倒序 def func1(str):return str[::-1] def func2(str):new_str ""for i in str:new_str inew_strreturn new_str if __name____main__:str"linda"print(func2(str))合并两个有序的列表 def func3(list1,list2):for i in list1:list2.append(i)li…...
linux学习(十)(磁盘和文件系统(索引节点,文件系统,添加磁盘,交换,LVM公司,挂载))
Linux 磁盘文件系统 Linux 使用各种文件系统来允许我们从计算机系统的硬件(例如磁盘)存储和检索数据。文件系统定义了如何在这些存储设备上组织、存储和检索数据。流行的 Linux 文件系统示例包括 EXT4、FAT32、NTFS 和 Btrfs。 每个文件系统都有自己的…...
k8s v1.28.15部署(kubeadm方式)
k8s部署(kubeadm方式) 部署环境及版本 系统版本:CentOS Linux release 7.9.2009 k8s版本:v1.28.15 docker版本:26.1.4 containerd版本:1.6.33 calico版本:v3.25.0准备 主机ip主机名角色配置1…...
Python开发Scikit-learn面试题及参考答案
目录 如何用 SimpleImputer 处理数据集中的缺失值? 使用 StandardScaler 对数据进行标准化的原理是什么?与 MinMaxScaler 有何区别? 如何用 OneHotEncoder 对类别型特征进行编码? 解释特征选择中 SelectKBest 与 VarianceThreshold 的应用场景。 如何通过 PolynomialFe…...
Java在小米SU7 Ultra汽车中的技术赋能
目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…...
蓝队第三次
1.了解什么是盲注 盲注(Blind SQL Injection)是SQL注入的一种形式,攻击者无法直接通过页面回显或错误信息获取数据,而是通过观察页面的布尔状态(真/假)或时间延迟来间接推断数据库信息。例如,通…...
Element Plus中的树组件的具体用法(持续更新!)
const defaultProps {//子树为节点对象的childrenchildren: children,//节点标签为节点对象的name属性label: name, } 属性 以下是树组件中的常用属性以及作用: data:展示的数据(数据源) show-checkbox:节点是否可…...
nodejs使用WebSocket实现聊天效果
在nodejs中使用WebSocket实现聊天效果(简易实现) 安装 npm i ws 实现 创建 server.js /*** 创建一个 WebSocket 服务器,监听指定端口,并处理客户端连接和消息。** param {Object} WebSocket - 引入的 WebSocket 模块,…...