Stable Diffusion学习指南【ControlNet上篇】- 功能介绍、安装和使用

article/2025/8/11 15:38:33

(注:文末扫码获取AI工具安装包和AI学习资料)

自 SD 系列教程发布这几个月,已被大家多次催更 ControlNet 的教程,相信很多朋友也都听说过这款神奇的控图工具。ControlNet
到底是什么?为什么作为一款插件它可以引起如此多的热议?究竟该如何正确使用?

今天的文章我将为你娓娓道来关于 ControlNet 的起源介绍、安装方法和使用技巧。

以下是正文部分

01

ControlNet 基础介绍

1.1 发展起源

ControlNet 的概念最早被提出,源自今年 2 月的一篇名为《Adding Conditional Control to Text-to-Image
Diffusion
Models》 的论文,文中介绍了可以额外引入一个框架来附加多种空间语义条件控制 SD 模型的生成过程。同日论文的作者 Lvmin Zhang 也在
GitHub 上将相关源代码进行了开源,而这位张教授就是 ControlNet 的开源创作者。

Lvmin Zhang 本名张吕敏,2021
年毕业于苏州大学,目前是一名斯坦福大学计算机科学在读华裔博士,他的研究涉及计算艺术与设计、互动内容创作、计算机图形处理等领域,但他个人最喜欢的是动漫。作为一名老二次元爱好者,早在
2018 年他便创立一个分享艺术创作技术的非商业研究小组,专注于开发名为 Style2Paint 的动漫绘图软件,该研究小组在 2018
年的美国动漫博览会上还发表过 Deep Learning for Artists 的演讲(该博览会是世界上最大的两个动漫展之一)。

感兴趣的朋友可以去访问下张教授的
GitHub
主页:https://github.com/lllyasviel

就在张教授论文发布 3 天后,支持 WebUI 的 ControlNet 插件也正式上线,可以说 ControlNet 的出现不亚于当初 Stable
Diffusion 刚开源时的火爆场面,立马在各大媒体平台都引起了广泛热议。

那 ControlNet 的具体作用是什么呢?如果用一句话来介绍
ControlNet,那就是**可以实现稳定控图的开源插件。**在之前的文章中,我们学习到图生图的本质是利用参考图在绘图过程添加更多约束,但图片中的信息有很多,并非所有信息都是我们想要的。比如有的时候我们只想参考原图中的角色动作或者表情,又或者是画面构图或角色轮廓,如果单纯靠
SD 模型是无法理解这些相对抽象的空间语义信息,而有了 ControlNet 就完全不一样。

ControlNet 迭代至今已有 14
种支持不同控制条件的官方模型,可以实现肢体表情、线稿描摹、深度结构等多个维度的控图效果,而且这些不同维度的模型还可以组合使用,像我们平时看到的制作艺术字、艺术二维码、线稿转
3D 等效果都是通过 ControlNet 来实现的。毫不夸张的说,ControlNet 是 AI 绘画界的革命性突破,它的存在可以说直接拉开了
Stable Diffusion 和其他 AI 绘图软件在控图上的巨大差距。

虽然 ControlNet 的出现是基于研究 Text-to-Image
文生图的控制效果,但它实际使用时更像是图生图,因为需要用到参考图来提供空间语义,甚至可以说熟练掌握了 ControlNet
插件,在多数场景下都可以替代图生图板块的大部分功能。

1.2 运作原理

ControlNet
直译后的名字叫做控制网络,即**通过调节神经网络来干预图像的去噪过程,使其按照既定方向生成稳定的图片。**如果之前你有认真研读【模型篇】的教程,会发现它在影响神经网络行为的方式上和
HyperNetwork 有相似之处,都是在主模型外训练了一个小的循环神经网络来微调原模型。

但不同于传统的绘图模型,完整的 ControlNet 包括 Annotator 注释器模型ControlNet 控图模型 2 个部分。

其中,Annotator 注释器也就是我们常提到的预处理器,它的作用是对原图进行提取加工,将画面中的空间语义信息检测出来转换成可视化的预览图
,比如边缘线稿图、深度图、涂鸦图、关键点等。该提取加工的过程我们称之为预处理,期间无需绘图模型介入,也不用设置任何提示词或参数,只需选择对应预处理器即可快速生成。

而 ControlNet 模型不同于我们之前学过的 Ckpt、LoRA
等绘图模型,它储存的并不是人物发色、肢体动作、表情等图像内容,而是用来处理线条、景深等更加底层信息的结构化约束。这里举个很形象的例子大家就明白了,普通人在看到一张人物照片时,关注的点大多会是颜值、着装、表情、动作等画面信息,所以即使对着原图临摹,画出来的画和原图往往也会相差甚远。但如果是专业画师,他们观察到的会是构图、人体结构、光影等底层逻辑,而这些才是真正影响画面的关键因素,所以他们只需寥寥几笔就能带给我们神还原的视觉感受。

理解了 ControlNet 的构成,我们也就能轻松理解它的运作过程,同样是分为 2
步进行操作:第一步将原图中的关键信息通过预处理器检测并提取出来,第二步是将这些关键信息添加到绘图过程中进行约束 ,期间 ControlNet
也提供了很多设置参数来辅助调节约束的控图效果。

有意思的是,我们还可以直接跳过第一步的预处理过程,自行上传包含了关键信息的预览图,同样可以实现控图效果。比如下面的案例中,我们使用别人分享或自己编辑的人体姿态图,同样可以实现稳定的控图效果。

1.3 插件的概念

前面提到 ControlNet 是搭载在 WebUI 上使用的一款插件,介于本篇是 Stable Diffusion
系列教程第一次提到插件,这里给不了解插件概念的小伙伴做个简单的科普。

插件又被称作 extension 扩展。我们可以将 WebUI
理解成一部刚出场的新手机,虽然能实现打电话、发短信、上网等基本功能,但是无法满足像修图、打游戏等定制功能,而插件就相当于手机中的软件 App,可以扩展
WebUI 这部手机的各项服务,从而实现更多有趣的功能。

目前开源社区里有非常多热心开发者自制的插件,有的可以美化 WebUI 界面(比如我本次使用的Lobe主题插件)、有的用于辅助编写提示词,还有一些可以拓展
WebUI 本身不具备的功能,而 ControlNet 就是其中最典型的一款**。**

你可能会问,为什么作者不直接在 WebUI 中直接内置好这些插件,用户自行下载安装不是很麻烦吗?

首先,插件一般都是按需下载,不是每个人都需要使用到所有插件功能,如果全部内置会导致 WebUI
程序包非常臃肿,造成资源浪费。其次社区插件是由热心群众为爱发电,功能千奇百怪,WebUI
作者也没法保证插件的有效性,干脆直接提供接口让用户自行筛选和使用。此外,插件可以极大的丰富和拓展 WebUI 的性能,让本就自由的 Stable
Diffusion 有了更多的可玩性,对推进开源社区的发展也有很多积极作用。

在 WebUI 界面下方还有一个脚本的功能项,有的朋友也会疑惑它和插件之间的区别。简单来说,脚本是 WebUI 中内置的辅助程序,原生的 WebUI
本身就自带这些功能,而插件则是需要通过单独下载安装才能使用的。

02

安装和使用

了解了 ControlNet 的基础概念和原理,下面就是如何安装和使用这款插件了。一般来说,如果你使用的是秋叶整合包,ControlNet
的插件和模型应该已经为你内置安装好了,但如果你之前采用的是手动安装,建议仔细看看以下具体的安装方法。

想正确使用 ControlNet 需要安装 2 个部分:ControlNet 插件和 ControlNet 模型,下面挨个给大家介绍。

2.1 插件安装

针对插件的安装方法有很多,下面的内容适用于大部分插件进行安装,大家可以做个统一参考,整个安装过程中建议保持可用的网络环境。

首先是最简单的自动下载安装 。WebUI 的扩展选项页已经为我们集成了市面上大多数插件的安装链接,打开扩展-可下载- 加载扩展列表,在其中搜索controlnet即可找到对应插件点击下载即可。

第二种方法是从 GitHub 网址进行安装 ,切换到从网址安装选项页,将下面 ControlNet
的插件包地址粘贴到输入框中,即可自动下载和安装好 ControlNet 插件。

ControlNet在GitHub 下载地址:

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

如果你在使用上面 2 种安装方法时出现以下报错,说明之前的安装目录下存在未下载完成的损坏文件,你需要到对应文件夹下手动删除旧的文件包再重新尝试安装。

当插件安装完成后,我们可以在Stable Diffusion WebUI -> 扩展中查看和控制插件是否启用,每次修改后都要点击应用并重新加载
WebUI 界面才会生效。

以上是官方推荐的 2 种插件安装方法,通过以上方法获取的 ControlNet 插件包在 500M
左右,虽然已经可以正常使用但其实程序并不完整,因为各控制类型配套的Annotator注释器模型并没有下载下来,当我们后续在调用预处理器时,ControlNet
还会通过 Python 代码从 huggingface 上自动下载这部分补充文件。

这些文件通常会自动下载到【\extensions\sd-webui-
controlnet\annotator\downloads】文件夹中,如果你是刚从拓展列表或 GitHub
上下载的插件包,会发现这里都是空的。需要额外下载的补充文件总体积在 6GB
左右,因为网络问题很容易卡顿很久或者出现报错等问题。因此你可以直接将我提供的【downloads】完整文件夹下载后进行替换,这样后续就不用额外下载了。

以上自行安装的过程适用于对插件安装流程比较熟悉的朋友。针对完全不了解的小白玩家,我也为大家直接准备好了完整的 ControlNet
插件包,只需下载解压后将其粘贴至【\extensions】文件夹,再重载 WebUI 界面即可正常使用,不用其他额外操作。

额外补充一句,我这里提供的插件包是 9 月 6 日更新的 ControlNet v1.1.405 版
,相比其他老旧版本更新了不少界面功能和操作方法,在后续的教程里如果发现你的界面和我的不一样,大概率是因为版本不同导致的,你可以在秋叶启动器中选择版本进行切换,也可以直接替换成我分享的插件包。

2.2 模型安装

第一步插件安装完成后,接下来你还需要安装用于控制绘图的 ControlNet 模型。前面提到 ControlNet 共提供了 14 种不同的控图模型,包括
11 个生产就绪模型和 3 个实验模型,每个模型大小都在 1.4G 左右,如果全部官方下载会需要很长时间,我也为大家打包好放在网盘里了。

官方 ControlNet 模型地址:

https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

不同于其他插件,ControlNet 因为有模型文件所以插件文件夹中额外提供了一个 model
文件夹。官方推荐的方法是将模型文件放在插件文件夹中\extensions\sd-webui- controlnet\models,但我更推荐大家将模型放在\models\ControlNet文件夹中,这样和 Ckpt、loRA
等其他模型文件放在一起,更方便后期进行管理和维护。

可能有朋友会奇怪这里为什么没有官方提到的【.yaml】文件,其实在 ControlNet 插件中已经内置了这部分文件,所以只需下载模型文件即可。

在 ControlNet 更新到 V1.1 版本后,作者对所有标准的 ControlNet
模型都使用了标准模型命名规则进行重新命名,方便大家使用和管理。通过下面这张图我们可以通过模型名称快速了解当前模型的版本、类型等信息,进行快速定位。

有时候我们还会看到一些【control-*-fp16】命名的模型文件,特点是体积会比官方模型小一倍,在 700MB 左右。这里的 FP16
表示半精度浮点数,是一种常用的数据类型,多用于表示不同的数值精度和存储需求,因此使用【fp16】作为后缀代表的是由官方模型转化得到的半精度模型。相较于我们正常的
FP32 单精度,半精度模型可以有效减少存储空间和计算开销,经过测试它们的实际绘图效果和原模型并没有太大区别,也是不错的模型选择。

半精度模型下载地址:

https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main

2.3 使用方法

下面我们来实操一个小案例,了解 ControlNet 是如何使用的,关于不同控图类型的差异我会在后面的内容进行详细拆解。

首先基础操作和我们平时使用文生图一样,选择好合适的主模型,然后填写提示词并设置参数,接着找到 ControlNet
的插件菜单上传一张我们准备好的图片到画布中,启用选项会自动勾选,我们再选中开启完美像素模式和允许预览。

接着在控制类型中选择想要的控制方向,这里我们选择 Canny
硬边缘,预处理器和模型会自动切换到Canny类型,点击后面的运行按钮,会生成一张经过提取后的注释图,该图用于辅助我们观察原图信息的提取效果。

当然你也可以不启用预处理器,直接点击生成按钮,ControlNet
插件同样会提取原图关键信息进行控图,只是我们无法观察到预处理器的处理效果,因此建议大家使用时,都先用预处理器提取后进行预览。

除了直接提取参考图的信息,你也可以直接上传其他渠道获取的预处理图像到 ControlNet
中,模型同样可以识别并应用到绘图过程中,记住此时预处理器不要选择任何选项,直接留空。

完成上述操作后点击文生图页面的生成按钮,即可看到我们的绘图结果,可以看到参考图的空间语义特征被完美的复刻到绘制图像中。

在实际使用时,单个控制类型有时无法满足我们的实际使用需求,因此也可以同时开启多个控制类型,来增强控图效果。

下面我们来实操一个小案例,了解 ControlNet 是如何使用的,关于不同控图类型的差异我会在后面的内容进行详细拆解。

首先基础操作和我们平时使用文生图一样,选择好合适的主模型,然后填写提示词并设置参数,接着找到 ControlNet
的插件菜单上传一张我们准备好的图片到画布中,启用选项会自动勾选,我们再选中开启完美像素模式和允许预览。

接着在控制类型中选择想要的控制方向,这里我们选择 Canny
硬边缘,预处理器和模型会自动切换到Canny类型,点击后面的运行按钮,会生成一张经过提取后的注释图,该图用于辅助我们观察原图信息的提取效果。

当然你也可以不启用预处理器,直接点击生成按钮,ControlNet
插件同样会提取原图关键信息进行控图,只是我们无法观察到预处理器的处理效果,因此建议大家使用时,都先用预处理器提取后进行预览。

除了直接提取参考图的信息,你也可以直接上传其他渠道获取的预处理图像到 ControlNet
中,模型同样可以识别并应用到绘图过程中,记住此时预处理器不要选择任何选项,直接留空。

完成上述操作后点击文生图页面的生成按钮,即可看到我们的绘图结果,可以看到参考图的空间语义特征被完美的复刻到绘制图像中。

在实际使用时,单个控制类型有时无法满足我们的实际使用需求,因此也可以同时开启多个控制类型,来增强控图效果。

03

关键参数解析

我们来仔细看下 ControlNet
插件的具体页面,这里同样提供了丰富的参数项供用户进行微调,下面为大家介绍关键的通用设置项,此外当我们选择不同预处理器后还会出现一些针对该控制类型的定制参数,这些我会在之后进行单独介绍。

3.1 启用选项

只有勾选启用后,在点击生成按钮进行绘图时,ControlNet
模型的控图效果才能生效,一般上传图像后ControlNet会自动勾选上。经常有小伙伴奇怪为什么设置了 ControlNet
插件后在绘图时没有生效,其实就是因为这里的按钮之前取消后忘记勾选了。

3.2 低显存模式

低显存模式是为显卡内存小的用户定制的功能,开启后整体绘图速度会变慢,但显卡支持的绘图上限有所提升。如果你的显卡内存小于 4GB,建议勾选开启。

3.3 完美像素和预处理器分辨率

先来看看 Preprocessor Resolution
预处理器分辨率,该项用于修改预处理器输出预览图的分辨率,由于都是一倍图且长宽被锁定,因此相当于设置的是预览图的横向尺寸。举个例子,原图尺寸和绘制图像的尺寸都统一为
512768,当我们预处理器分辨率分别设置为 128、256、512、1024 时,预处理后的图像尺寸相应的变为 128192(原图 0.25
倍)、256384(原图 0.5 倍)、512768(原图)、1024*1536(原图 2 倍)。

当预处理检测图和最终图像尺寸不一致时会导致绘制图像受损,比如下图预处理器分辨率设置为 128 时,最终绘制的画面中人物边缘出现明显的像素颗粒。

如果每次都通过手动设置【预处理器分辨率】未免太过繁琐,而【完美像素模式】就是对该功能的优化,当我们勾选它后【预处理器分辨率】会消失,此时再运行预处理器就会自动为我们适配最佳分辨率,每次绘图都能实现最佳的控图效果。强烈建议大家每次使用时都将【完美像素模式】勾选上。

3.4 预览窗口

预览窗口同样是必选的功能项,开启预览窗口后才能看到预处理器执行后反馈的预览图。

3.5 控制类型

控制类型用于选择不同的 ControlNet 控图方向,早期的 ControlNet
插件并没有该选项,只能手动在多个预控制器和模型中下拉选择,很不方便。在增加了该控制项后,下方的预处理器和模型会自动切换成所选的类型,而且还新增了许多社区控图模型功能,具体控制类型我会在后面的内容中详细介绍。

3.6 控制权重

学习过之前权重参数的朋友应该就知道,该参数用于设置 ControlNet 在绘图过程中的控制效果,数值越大则 ControlNet
对生成图像的控图效果越明显。

3.7 引导介入/终止时机

该参数和我们之前的绘制步数参数功能相同,用于设置 ControlNet 在整个迭代步数中作用的占比。如果整个迭代步数为 30 步,起始步数设置为 5
步,结束步数设置为 15 步,则表示 ControlNet 的控图引导从第 5 步开始,到 15 步 结束。

3.8 控制模式

该功能早期版本只有 Guess Mode 无提示词模式,现在优化成更好用的 Contorl Mode 控制模式。用于切换 ControlNet
和提示词的权重占比,默认使用平衡即可。如果选择 【Prompt 更重要】则 ControlNet 的控图效果会削弱,而选择【ControlNet 更重要】则
ControlNet 会被加强。

3.9 缩放模式和回送

裁剪模式和图生图中的图像处理模式功能相同,参考图和生产图比例不一致时,提供了拉伸、裁切、缩放 3 种处理方式。

回送开启后会自动将生成的图片回传到 ControlNet 中,用于迭代更新,平时基本不会使用。

3.10 预设

可将设置好的 ControlNet 参数保存为预设,下次使用时选择预设项,即可自动设置好相关参数。

在本篇中我为大家介绍了
ControlNet的发展起源和运作原理以及如何尝试使用这款神器控图插件,由于篇幅限制,我会在下一篇中为大家详细介绍ControlNet的14种官方控图模型和各类社区模型。下方扫码可获取完整
Stable Diffusion 资源包。

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

零基础AI绘画学习资源介绍

👉stable diffusion新手0基础入门PDF👈

(全套教程文末领取哈)
在这里插入图片描述

👉AI绘画必备工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉12000+AI关键词大合集👈

在这里插入图片描述

这份完整版的AI绘画全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.hkcw.cn/article/gQAXkGvTJd.shtml

相关文章

论文阅读 | CVPR | MambaOut:视觉任务真的需要 Mamba 吗?

文章目录 论文阅读 | CVPR | MambaOut:视觉任务真的需要 Mamba 吗?摘要引言创新点概念讨论Mamba到底适合处理什么样的任务?视觉任务具有很长的序列吗?如何计算Transformer 模块的浮点运算次数(FLOPs)?定义…

基于 Q-learning 的城市场景无人机三维路径规划算法研究,可以自定义地图,提供完整MATLAB代码

一、引言 随着无人机技术的不断发展,其在城市环境中的应用越来越广泛,如物流配送、航拍测绘、交通监控等。然而,城市场景具有复杂的建筑布局、密集的障碍物以及多变的飞行环境,给无人机的路径规划带来了巨大的挑战。传统的路径规…

Vivado IP核之定点数累加Accumulator使用说明

Vivado Accumulator IP核的使用说明 配置步骤 目录 前言 一、Accumulator IP配置步骤 二、仿真 三、仿真分析 总结 前言 在现代数字信号处理和通信系统中,对数据进行快速而精确的累加操作是至关重要的。Vivado Accumulator IP核提供了一种灵活、可配置的硬件累…

中科院自动化所万字长文最新综述!当无人机遇上大模型:低空机动性智能体的综述与展望

作者:Yonglin Tian, Fei Lin, Yiduo Li, Tengchao Zhang, Qiyao Zhang, Xuan Fu, Jun Huang, Xingyuan Dai, Yutong Wang, Chunwei Tian, Bai Li, Yisheng Lv, Levente Kovacs, Fei-Yue Wang 单位:中科院自动化所多模态人工智能系统国家重点实验室&…

(35)远程识别(又称无人机识别)(一)

文章目录 前言 1 更改 2 可用的设备 3 开放式无人机ID 4 ArduRemoteID 5 终端用户数据的设置和使用 6 测试 7 为OEMs添加远程ID到ArduPilot系统的视频教程 前言 在一些国家,远程 ID 正在成为一项法律要求。以下是与 ArduPilot 兼容的设备列表。这里(here)有一个关于远…

Uniapp 自定义TabBar + 动态菜单实现教程(Vuex状态管理详解)

大家好,我是一诺。今天跟大家分享一下uniapp 封装自定义底部导航栏(TabBar) 过程中的思考和实践。通过本文,你将学会如何打造一个功能完善、可自由定制的TabBar组件! 先看效果: 支持自定义图标和样式动态…

图数据库Neo4j和JDK安装与配置教程(超详细)

目录 前言 一、Java环境配置 (一)JDK的下载与安装 (二)JDK环境配置 (三)检测JDK17是否配置成功 二、Neo4j的安装与配置 (一)Neo4j的下载与安装 (二)N…

【机器人-基础知识】欧拉角、旋转矩阵和四元数

文章目录 1. 欧拉角1.1. 欧拉角的定义1.2. 欧拉角的公式1.3. 欧拉角的常见问题 2. 旋转矩阵2.1. 旋转矩阵的定义2.2. 常见旋转矩阵的公式1. 二维旋转矩阵2. 三维旋转矩阵 2.3. 旋转矩阵的示例1. 二维示例2. 三维示例 2.4. 旋转矩阵的问题 3. 四元数3.1. 四元数的定义3.2. 四元数…

arcane:Docker 管理的现代 Web 界面

arcane:Docker 管理的现代 Web 界面 arcane Simple and Elegant Docker Management UI written in Typescript and SvelteKit 项目地址: https://gitcode.com/gh_mirrors/arcane2/arcane 项目介绍 在容器化技术日益普及的今天,Docker 已经成为开…

对话肖风博士(上):美元稳定币立法是技术创新的胜利,但影响将非常复杂

【导言】随着美国参议院通过美元稳定币法案的投票动议,以及香港立法会通过港元稳定币条例草案,稳定币快速成为最热门的行业话题,并且吸引了更广泛的关注。人们普遍预期,随着美元稳定币法案的落地,区块链数字经济将迎来…

极氪能源三方桩规模突破130万枪 构建全域充电生态

5月30日,极氪能源宣布其接入的第三方充电桩规模已突破130万枪。这一成就源于极氪能源与近50家主流运营商的合作,形成了战略合作生态。目前,极氪能源三方规模已实现地级行政单位全覆盖,拥有5604座高速站点和7943座超快充站,显著提升了新能源出行效率和用户充电体验。极氪能…

成都通报男子伤人后自伤颈部 警方发布警情详情

新京报讯 5月30日,成都市公安局锦江区分局发布警情通报:编辑 毛天宇责任编辑:0764

清华大学发布李兆杰讣告 沉痛悼念国际法学者

5月29日晚,清华大学法学院发布讣告,沉痛悼念李兆杰教授。李兆杰教授于2025年5月29日在北京因病逝世,享年70岁。李兆杰是汉族,籍贯山东省东明县,1955年出生于吉林省长春市。他曾在北京大学国际法研究所和清华大学法学院任教。作为改革开放以来我国新一代国际法学者中的领军…

SMS凭据管理系统:实现跨平台特权账号安全管理的创新实践

引言:数字化转型中的特权账号管理困境 在数字化转型加速的今天,企业IT架构呈现混合云、多平台、异构数据库并存的复杂态势。据Gartner统计,超过75%的数据泄露事件与特权账号滥用相关,而传统静态密码管理方案已无法满足动态安全需…

端午将至民俗体验游热度上升 亲子家庭成出行主力

今年端午节假期恰逢儿童节,亲子家庭成为出行主力军。短途游和民俗体验游热度持续上升。端午节假期旅游市场主要以本地游和周边游为主,微度假与民俗体验相结合的旅游方式受到游客青睐。数据显示,今年端午节假期,周边游预订量同比增长23%,市场整体呈现稳步增长态势,端午民俗…

ResNet改进(44):深度可分离卷积在ResNet50中的应用

1.创新点分析 在深度学习领域,卷积神经网络(CNN)一直是计算机视觉任务的主力架构。 然而,随着模型复杂度的增加,如何在保持性能的同时减少计算量和参数数量成为了一个重要课题。本文将深入解析一个将深度可分离卷积(Depthwise Separable Convolution)应用于ResNet50的Pyth…

2025年 Java 面试八股文(20w字)

> 🍅我是小宋, 一个只熬夜但不秃头的Java程序员。 > 🍅关注我,带你**过面试,读源码**。提升简历亮点(14个demo) > 🍅我的面试集已有12W 浏览量。 > 号:…

《苍穹外卖》电商实战项目(java)知识点整理(P1~P65)【上】

史上最完整的《苍穹外卖》项目实操笔记,跟视频的每一P对应,全系列10万字,涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳,参考这篇,相信会带给你极大启发。 《苍穹外卖》项目实操笔记【中】:P66~P…

安装openjdk21

1、官网 官网地址:OpenJDK 下载地址:Archived OpenJDK GA Releases 2、下载openjdk > wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz --2024-12-21 11:40:20--…

创建SpringBoot项目报 错:java: 无效的目标发行版: 18

IDEA 创建SpringBoot项目运行报:java: 无效的目标发行版: 18解决方案 这是由于idea和jdk版本不一致导致的。若是遇到可以修改以下几个内容,使其保持一致即可。 1、点击Maven下的Runner,保证JRE和你的JDK版本一致,如下!图 2、点击Compiler中的…