Stable Diffusion Controlnet常用控制类型解析与实战课程 4
本节内容,是stable diffusion Controlnet常用控制类型解析与实战的第四节课程。上节课程,我们陆续讲解了几个与图像风格约束相关的控制类型,本节课程我们再学习一些实用价值较高的控制类型,看一看他们提供了哪些控制思路。
一:Tile
我们先看一下tile控制类型,这是一个非常重要的控制类型,tile的中文翻译是地砖,瓦片。该控制类型采用分块处理的方式,将图像分割为多块区域,同时tile控制类型会主动识别单独块中的语义信息,并对这些分块的区域分别采样处理。最后进行整合生成图像。
这样的方式有哪些作用呢?我们在之前的课程中讲到过,可以使用图生图中的SD upscale,来增加图像分辨率,比如我们这里使用了一张512x512看起来有点模糊的图片
我们使用SD upscale,并且调整重绘幅度设置为0.3,填好一个简单的提示词(1 girl),选择SD upscale,放大算法设置为R-ESRGAN 4x+,点击生成,可以绘制出放大后的图像。
但是如果我们将重绘幅度调整为默认值0.75,仍然使用SD upscale,点击生成,可以看到,生成了奇怪的图像。
这是因为如果设置了较高的重绘幅度,放大算法在放大图像像素时可能出现难以预料的变化,从而导致最终合成出了奇异的图像。
我们可以借助tile控制类型的分块重采样方式来对放大算法进行约束。比如,重绘幅度仍然设置为0.75,启用controlnet,选择tile控制类型,预处理器默认使用tile_resample , 这里不勾选Upload independent control image选项,则代表使用上面所上传的参考图片作为控制类型的参考图。
点击生成,可以看到生成的图片虽然增加了一些细节,但还是很好地还原了原图。
这是因为tile会逐块去解析语义信息、从而限制全局提示词对分块采样绘制的影响,在还原图片时则会表现得更加准确。
如同上面演示的例子,使用放大算法放大图像的同时使用Tile控制类型进行控图,这是tile控制类型最典型的使用方法。
该方式不仅可以优化图像细节的同时不会影响画面结构。并且由于采用了分块重采样与放大的方式,也能有效减少绘制图片过程中的显存占用,是绘制高分辨率图像的重要手段。
需要注意的是tile控制类型在分块采样绘制图像时,也会增加一些细节,所以与原图并不是完全一致。比如这里生成的图片中人物的眼睛就变大了。
另外,虽然我们经常会在图生图模式中使用tile结合放大算法来生成高清图像,但在文生图模式中我们同样可以使用tile控制类型来控制绘图过程。
tile控制类型不仅仅适合人物,对物品的细节处理也非常优秀,只需要选择好合适的基础模型即可。
我们举例演示一下,
比如这里有一幅低分辨率的行李箱图片,图片原始分辨率为512*512,我们可以通过tile_resample结合sd upscale去提升图片分辨率,
使用写实模型,填写简单的提示词bright background, a Luggage,重绘幅度设置为为0.3,启用tile_resample与sd upscale,sd upscale放大倍数调整为4。
点击生成,stable diffusion将绘制出高分辨率的行李箱图片
tile提供了多个细分预处理器。
我们通过在文生图模式下使用tile控制类型控制图像生成来做一下对比
我们填写简单的提示词1girl,启用controlnet,并上传控制图像,
先使用tile_resample预处理器,点击生成,可以看到生成的图片人物衣服的颜色可能发生较大偏移。
将预处理器更换为tile_colorfix,这个预处理则主要用于解决颜色偏移的问题,tile_colorfix 可以更好的控制颜色偏移程度)。tile_colorfix 增加了一个名为 Variation 的参数,可以控制每个tile之间的色彩变化,值越小,tile色彩变化越小,值越大瓦片的色彩变化越大,我们可以根据所需要的颜色变化力度来设置该值。比如我们这里使用较小的Variation,点击生成,出图时与原图的颜色偏差就会比较小。
tile_colorfix有时候生成的某些图像细节可能会过于柔和,
使用tile_colorfix+sharp可以使生成的图像更加锐利。
tile_colorfix+sharp增加了一个Sharpness选项可以控制图像的锐化程度,我们这里调整为0.8,点击生成,看一下效果。
在tile项的预处理下拉列表中还有一个blur_guassian预处理器。
可以在预览图中看到预处理过程会将原图高斯模糊处理,然后再据模糊处理后的图片像素去控制图片绘制过程。
绘制图片时,AI也会尽可能从模糊的像素中去还原图片,该预处理可以通过sigma选项调整高斯噪声效果。
我们可以利用该预处理器实现一个有趣的功能,比如我们上传的图片背景是比较模糊的,我们可以使用该预处理器将整体图像高斯模糊预处理后再控制图像绘制,通过调整sigma选项,可以使绘制出的图像背景与背景中的元素变得清晰。
我们演示一下
还是使用刚才的人物图作为控制图像,可以看到该图像背景是比较模糊的,我们使用blur_guassian预处理器,提示词和参数不变,然后将sigma值调整为5,
点击生成,可以看到绘制的图片背景内容变得更加清晰。
使用blur_guassian预处理器,图片整体构成不会发生太大变化,但是颜色和某些细节可能会有较大的偏移,我们可以调整sigma参数平衡出图结果。
二:Recolor
讲解完tile,我们再学习一个控制类型Recolor。顾名思义,recolor控制类型可以对图片重新上色,我们可以使用该预处理器给黑白照片上色,也可以给彩色照片重新上色,重新上色时还需要提示词来配合。
recolor需要自行下载对应的模型文件,下载地址为
https://huggingface.co/lllyasviel/sd_control_collection/tree/main
还需要特别注意的是recolor模型文件分为SD1.5版本和SDXL版本,
其中ioclab_sd15_是sd1.5版本,sdi_xl_recolor是SDXL版本,且SDXL版本有128lora和256lora两个模型,这两者都可以使用,带有lora字样,是指该模型在训练时引入了lora训练方法。
我们继续演示recolor的使用,文生图中,启用controlnet,上传参考图,选择recolor后,模型部分还需要自己去选择,因为使用的是基于SD1.5的大模型,我们选择下载好的SD1.5 iolab_sd15_recolor这个模型,点击预览按钮,可以看到预处理后的图片已经去除了颜色信息。
点击生成,可以看到,stable diffusion给照片重新上了颜色,
recolor的一个有价值的用途就是给黑白老照片上色,我们可以上传黑白老照片,然后让recolor帮我们给黑白老照片上色,
比如我们这里有一张黑白老照片,文生图模式下,启用recolor控制类型,并上传老照片作为控制图片,这里控制参考图像的分辨率为640*456,点击上传图片与预览图片下方的箭头图标可以快捷设置目标图像的分辨率为控制图像的分辨率
这里可以不填写任何提示词,点击生成,可以看到,stable diffusion给老照片上了颜色。
我们可以使用stable diffusion进一步帮上色后的老照片提升分辨率,使图片更加清晰,提升分辨率的方法有很多,我们在之前的课程中已经讲述,这里就不再演示。
recolor有两个细分预处理器,recolor_luminance和recolor_intensity我们看一下对比
recolor_luminance 提取图像特征信息时注重颜色的亮度,
recolor_intensity,提取图像特征信息时更注重颜色的饱和度。
我大部分情况下使用recolor_luminance效果更好。
提示词污染与打断提示词
这里,我们补充一个关于提示词污染和打断提示词的知识点,我们在使用recolor时有时会借助提示词来引导上色。但很多时候recolor无法保证颜色准确出现在特定位置上,可能会出现相互污染的情况,比如控制类型使用recolor, 提示词中添加颜色信息引导AI绘制颜色,(1 girl, green clothes, red hair),
这里的提示词增加了绿色衣服,红色头发描述,但是此时生成的图像,人物头发可能会出现了绿色,
这就是提示词污染。针对提示词污染问题,我们可以设计打断提示词:
1 girl, green clothes, BREAK red hair,
提示词中增加了BREAK关键字对不同部分进行打断,该技巧能有效减少提示词污染的概率。点击生成,可以看到头发区域的绿色基本没有了。
recolor增加了一个选项Gamma Correction
翻译成中文是伽马修正,该选项用于调整预处理时检测的图像亮度,我们可以看一下对比,可以看到随着Gamma Correction数值减小,预处理后的图像亮度会增加,生成的图像也会更亮。
三:局部重绘控制类型
本节课程最后,我们再讲解一个控制类型-局部重绘
该控制类型与图生图里的局部重绘功能是类似的,但是controlnet的局部重绘通过更优秀的算法将重绘的地方与原图融合得更好。controlnet的局部重绘通常与图生图局部重绘配合使用,
我们演示一下,图生图模式中,上传一幅图片,该图片中包含了草原,大树,和人物,但是我们想把人物从这张图中擦除,我们可以使用局部重绘,将人物涂刷,修改提示词grassland big tree ,反向提示词中添加human,引导AI在生成的图像不要绘制人物元素,点击生成,可以看到,重绘后,人物的确没有了,但是重绘的区域与原图融合效果并不好,有时候甚至会多出一些完全不协调的元素。
这个时候我们可以使用controlnet的局部重绘控制类型,其中controlnet并选择局部重绘,预处理器选择inpaint_global_harmounious,这里我们不需要上传图片,stable diffusion默认会使用原图做参考,
点击生成,可以看到,此时绘制的图片融合效果明显要优于未使用controlnet局部重绘时生成的图片。
局部重绘根据采用的算法不同,提供了几种细分预处理器,我们对比一下使用这几种预处理器绘制的图像
一般来说inpaint_global_harmounious效果比较好,也使用得最多,
inpaint_only 融合能力通常不如inpaint_global_harmounious
inpaint_only + lamas融合能力比 inpaint_only要更加优秀,在某些场景,也可以实现较好的效果。
好了,本节课的课程到这里就结束了,我们做一下总结,本节课程我们陆续讲解了放大图像时可以增强细节的tile控制类型,可以给黑白老照片上色的recolor控制类型,以及能够帮助图像融合更加自然的局部重绘控制类型。这些控制类型为非常多的实际应用场景提供了有针对性的解决方案。下期课程,我们继续探讨另外几个controlnet控制类型,包括revision,instructp2p,ip-adapter,t2i-adapter,这些控制类型不仅各具特色,提供独特的图像控制方法,同时也从多个角度增强了Stable Diffusion的应用能力。
相关文章:
Stable Diffusion Controlnet常用控制类型解析与实战课程 4
本节内容,是stable diffusion Controlnet常用控制类型解析与实战的第四节课程。上节课程,我们陆续讲解了几个与图像风格约束相关的控制类型,本节课程我们再学习一些实用价值较高的控制类型,看一看他们提供了哪些控制思路。 一&…...
[ShaderLab] 【Unity】【图像编程】理解 Unity Shader 的结构
在计算机图形学领域,开发者经常面临着管理着色器复杂性的挑战。正如大卫惠勒(David Wheeler)所说:“计算机科学中的任何问题都可以通过增加一层抽象来解决。” Unity 提供了这样一层抽象,即 ShaderLab,它通过组织和定义渲染过程的各个步骤,简化了编写着色器的过程。 什…...
Source Insight的使用经验汇总
01-Add All"和“Add Tree”有何区别? 在 Source Insight 中,“Add All”和“Add Tree”是两种向项目(Project)中添加文件的操作选项,它们的区别在于处理文件和目录的方式不同: 1. Add All 范围&am…...
CentOS 7.9 更换 YUM:解决宝塔安装困境的探索之旅
在进行网站搭建工作时,我满怀期待地准备安装宝塔面板,然而却遭遇了安装失败的挫折。经过一番排查与思考,我将目光聚焦到了系统的 YUM 上,怀疑它可能是导致问题的“罪魁祸首”。于是,我毅然决定对 CentOS 7.9 的 YUM 进…...
28. Three.js案例-创建圆角矩形并进行拉伸
28. Three.js案例-创建圆角矩形并进行拉伸 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 3D 场景的主要渲染器。 构造器 WebGLRenderer( parameters : Object ) 参数类型描述parametersObject渲染器的配置参数,可选。 …...
最佳实践:编写和配置 Stylelint 自定义插件,Stylelint 自定义规则
前言 在前端开发中,代码质量和一致性是至关重要的。Stylelint 作为一个强大的 CSS 代码检查工具,能够帮助开发者发现代码中的问题,并保持代码风格的一致性。然而,内置的规则和插件有时无法完全满足特定项目的需求。在这种情况下&…...
vscode借助插件调试OpenFoam的正确的.vscode配置文件
正确的备份文件位置: /home/jie/桌面/理解openfoam/正确的调试爆轰单进程案例/mydebugblastFoam 调试爆轰案例流体 并且工作区和用户区都是openfoam-7版本 问题:F5以debug模式启动后不停在断点 解决方法: 这里备份一下.vsode正确的配置&…...
Towards Frame Rate Agnostic Multi-object Tracking—迈向帧率无关的多目标跟踪
Towards Frame Rate Agnostic Multi-object Tracking—迈向帧率无关的多目标跟踪 发表在IJCV 2023年 作者:Weitao Feng, Lei Bai, Yongqiang Yao, Fengwei Yu & Wanli Ouyang 研究目标:多目标跟踪的帧率无关性研究 IJCV 在计算机视觉领域的影响力非常…...
视频网站中重磅推荐模块(附加源码)
写在开头 上期代码主要实现省市区三级联动效果,开发久了很多功能都是通过框架组件库来完成,但是如果组件满足不了开发需求,还需要开发人员手动封装组件,专门出这样一期文章,通过原生js实现一些特定功能,功能…...
Flink keyBy算子的分区规则
demo代码 String worlds "flink,spark,hadoop,zk,kafka";streamSource.flatMap(new RichFlatMapFunction<String, String>() {Overridepublic void flatMap(String value, Collector<String> collector) throws Exception {String[] worlds value.spl…...
jvm内存优化方式
1. JVM(Java Virtual Machine): • 定义:Java虚拟机,是运行Java字节码的抽象计算机。 • 内存管理:负责内存的分配和回收,是JVM内存优化的核心。 2. 堆(Heap):…...
顺序表的实现
大家好,今天给大家分享一下最基础的数据结构--顺序表的实现,其实顺序表与我们的数组相似,但是顺序表存储数据必须是连续的,不能像数组一样存储在任意下标,那么我们就来看看顺序表的代码。 SeqList.h SeqList.c 那么今…...
优化Go语言中的网络连接:设置代理超时参数
网络连接优化的重要性 在分布式系统和微服务架构中,网络请求的效率直接影响到整个系统的响应速度。合理的超时设置可以防止系统在等待网络响应时陷入无限期的阻塞,从而提高系统的吞吐量和用户体验。特别是在使用代理服务器时,由于增加了网络…...
活动|华院计算董事长宣晓华出席第十五届田长霖论坛会议
12月11日,2024年光谷田长霖中心科技文化交流大会暨第十五届田长霖论坛会议举行,300多位院士专家、大学校长、青年学者和优秀企业家齐聚光谷。 华院计算技术(上海)股份有限公司(以下简称“华院计算”)创始人…...
qt-C++语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到全局坐标系
qt-C语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到全局坐标系 code review! 文章目录 qt-C语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到…...
设计一个高效的Java多线程应用程序及案例
《剑来》 勇敢追梦:“如果真的有那么喜欢苏姑娘,既然这辈子到最后也没能说出口喜欢她,没关系,以后数十年百余年,哪怕找遍人间,你都要去再见她一次,大声告诉她,自己喜欢她。” 正视困…...
基于最新的Apache StreamPark搭建指南
一、StreamPark 的介绍 官方文档:Apache StreamPark (incubating) | Apache StreamPark (incubating) 中文文档:Apache StreamPark (incubating) | Apache StreamPark (incubating)Github地址:https://github.com/apache/incubator-streampark Apache StreamPark™ 是一个…...
迎接全新的 Kotlin 支持 – K2 模式:基本信息
K2 模式有什么作用? K2 模式是 IntelliJ IDEA 中 Kotlin 支持的新实现,它可以提高 IDE 的稳定性,同时也会为支持未来 Kotlin 语言功能奠定基础。 K2 模式与 Kotlin K2 编译器有什么区别? K2 编译器负责编译 Kotlin 语言 2.0 或…...
阿里云元宇宙
在数字经济时代,技术的迅猛发展带来了前所未有的机遇与挑战,元宇宙正逐步成为全球科技与商业创新的热点。作为中国云计算和人工智能领域的领导者,阿里云通过其强大的技术能力,推出了全面的阿里云元宇宙解决方案,为全球…...
题目 1688: 数据结构-字符串插入
第一种方式字符串 #include<iostream> #include<cstring> #include<algorithm> using namespace std; int main(){string s1,s2;int n;cin>>s1>>s2>>n;s1.insert(n-1,s2);cout<<s1<<endl;return 0; } 第二种方式字符数组 …...
MetaGPT中的教程助手:TutorialAssistant
1. 提示词 COMMON_PROMPT """ You are now a seasoned technical professional in the field of the internet. We need you to write a technical tutorial with the topic "{topic}". """DIRECTORY_PROMPT (COMMON_PROMPT "…...
如何将Python程序打包发布,实现一键安装
哈喽,大家好,我是木头左! 编写完Python脚本后,如何将其高效地发布并安装到其他计算机上,。本文将详细介绍如何将Python程序打包发布,实现一键安装,让程序的分发与部署变得轻松便捷。 一、准备工作 1. 编写和测试程序 在开始打包之前,首先要确保你的Python程序已经编…...
Java 接口
1. 接口概述 (1) Java提供了一个关键字 interface,用这个关键字可以定义接口; (2)格式: public interface 接口名{ //成员变量(常量) //成员方法(抽象方法) } public interface A {//成员变量(接口默认为常量-public static final)String NA…...
RTMP推流平台EasyDSS在无人机推流直播安防监控中的创新应用
无人机与低空经济的关系密切,并且正在快速发展。2024年中国低空经济行业市场规模达到5800亿元,其中低空制造产业占整个低空经济产业的88%。预计未来五年复合增速将达到16.03%。 随着科技的飞速发展,公共安防关乎每一个市民的生命财产安全。在…...
【Flutter_Web】Flutter编译Web第一篇(插件篇):Flutter_web实现上传TOS上传资源,编写web插件
前言 由于Flutter在双端的开发体验几乎接近的情况下,尝试将Flutter代码转Web端进行部署和发布,在其中遇到的所有问题,我都会通过这种方式分享出来。那么第一个要解决的就是上传资源到TOS上,在双端中都是通过插件的方式在各端通过…...
SpringBoot 项目使用 EasyExcel 插件构建 Excel 表格格式(行高、列宽和字体等)工具类
本文主要讲了如何使用 EasyExcel 插件,在导出 Excel 时,设置行高,列宽,表头格式,内容字体大小等工具类。 1、代码使用的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyex…...
数据优化带来的问题
原因大概可以猜到 等待进一步深究(必须一个是浮点型) double x 1 / 2;double x2 static_cast<double> (1 / 2);double x3 (double)1 / (double)2;double x4 (double)1 / 2;double x5 1 / (double)2;double nTotalDataCount 78182;double n…...
2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长
2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长 《春烂漫:新平摄影作品选》作者新平,2019.12.25年读完的小书,当时就觉得挺不错,今…...
RabbitMQ个人理解与基本使用
目录 一. 作用: 二. RabbitMQ的5中队列模式: 1. 简单模式 2. Work模式 3. 发布/订阅模式 4. 路由模式 5. 主题模式 三. 消息持久化: 消息过期时间 ACK应答 四. 同步接收和异步接收: 应用场景 五. 基本使用 ÿ…...
每天40分玩转Django:Django视图和URL
Django视图和URL 一、课程概述 学习项目具体内容预计用时视图基础函数视图、类视图、视图装饰器90分钟URL配置URL模式、路由系统、命名URL60分钟请求处理请求对象、响应对象、中间件90分钟 二、视图基础 2.1 函数视图 # blog/views.py from django.shortcuts import render…...
ModbusTcp获取数据
ModbusTcp获取数据 记录一个用 pymodbus 库来获取数据的代码。 注意: 1.读取寄存器地址是16进制的。2.大小端转换通过代码知道原理。读取数据时,切记频率别太高,否则会出现连接被关闭问题。 from pymodbus.client.sync import ModbusTcpCli…...
汽车车牌识别数据集,支持YOLO,COCO,VOC格式的标注,8493张图片,可识别多种环境下的车牌
汽车车牌识别数据集,支持YOLO,COCO,VOC格式的标注,8493张图片,可识别多种环境下的车牌 数据集分割 训练组82% 6994图片 有效集12% 999图片 测试集6% 500图片 预处理 自动…...
YOLOv5+pyqt5+摄像头在特定条件下进行目标检测并采集原始数据
项目介绍 项目地址 GitHub - biabu0/Yolov5_D435i: 通过YOLOV5与pyqt5实现一个使用D435i深度摄像头采集特定需求与场景下的深度数据的小程序 通过YOLOV5对指定的区域进行检测,当检测到目标进入特定区域时,开始保存数据,摄像头采用D435i深度…...
代码随想录-算法训练营-番外(图论02:岛屿数量,岛屿的最大面积)
day02 图论part02 今日任务:岛屿数量,岛屿的最大面积 都是一个模子套出来的 https://programmercarl.com/kamacoder/0099.岛屿的数量深搜.html#思路往日任务: day01 图论part01 今日任务:图论理论基础/所有可到达的路径 代码随想录图论视频部分还没更新 https://programmercar…...
C# 23种设计模式(3)工厂(SimpleFactory)模式
一、工厂模式介绍 工厂模式(Factory Pattern)是一种在软件开发中常用的创建型设计模式。它的主要目的是将对象的创建逻辑与使用逻辑分离,使得增加新的对象类型时不需要修改使用对象的代码。这样做提高了系统的可扩展性和可维护性。 工厂模式…...
安卓主板_MTK联发科android主板方案
在当前智能设备的发展中,安卓主板的配置灵活性和性能优化显得尤为重要。安卓主板的联发科方案,在芯片上,搭载联发科MTK6761、MT8766、MT6765、MT6762、MT8768、MT8390、MTK8370以及MT8788等型号,均基于64位的四核或八核架构设计。…...
中企出海 - 平行账 - Parallel Ledger
以中国企业出海美国,为同时满足中国和美国的会计核算要求,请给出SAP 平行账的实施方案及国家科目表(alternative account)实施海外国家的注意事项 中国企业在美国开展业务需同时满足中国和美国的会计准则,这通常包括《中国企业会计准则》&am…...
Pyside6 --Qt设计师--简单了解各个控件的作用之:Item Views
目录 一、List View二、Tree View三、Table View四、Column View 一、List View 学习方法和Buttons一样,大家自己在qt设计师上面在属性编辑区进行相应的学习! 我就先紧着qt设计师的页面进行讲解,部分内容查自AI。 后面有什么好用的控件或者…...
智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能
前言: 在当今社会的高速运转之下,夜幕低垂之时,许多辛勤工作的父母尚未归家。对于肩负家庭责任的他们而言,确保孩童按时用餐与居家安全成为心头大事。此时,家居留言录音提示功能应运而生,恰似家中的一位无形…...
算法2(蓝桥杯19)-合并两个有序链表
问题:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路: 创建一个虚拟节点,循环比较l1、l2链表各节点的大小,将较小的节点追加到虚拟节点后,返回新链表 1、…...
OpenAI 正式赋予 ChatGPT 通过视频实时与用户互动的能力
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【Email】基于SpringBoot3.4.x集成发送邮件功能
【Email】基于SpringBoot3.4.x集成发送邮件功能 摘要本地开发环境说明pom.xml启动类application.yaml写一个邮件模板定义模板引擎工具类定义一个邮件发送对象封装一个邮件发送器单元测试邮件模板单元测试发送邮件单元测试 邮件效果参考资料 摘要 在业务系统开发过程中…...
debian12学习笔记
前置条件 基于debian12官网的qcow2格式文件进行操作 安装ssh 登录虚拟机后安装ssh服务端 apt install openssh-server配置国内源 新增/etc/apt/sources.list.d/tsinghua.list 使用清华大学的源 https://www.cnblogs.com/shanhubei/p/18104430 deb https://mirrors.tuna.t…...
(补)算法刷题Day16:BM39 序列化二叉树
题目链接 描述 思路: 自行序列化和反序列化。元素用逗号分隔。 序列化: 使用队列层序遍历。遍历每一层节点,并访问其左右孩子,如果是空则序列化成#,如果是数字,则序列化成str。 反序列化: 使…...
科研绘图系列:R语言绘制热图和散点图以及箱线图(pheatmap, scatterplot boxplot)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载图1图2图3系统信息参考介绍 R语言绘制热图和散点图以及箱线图(pheatmap, scatterplot & boxplot) 加载R包 library(magrittr) library(dplyr) library(ve…...
docker 安装mysql 5.7 详细保姆级教程
1. 安装mysql(5.7) docker pull mysql:5.7 若是拉取不了,可以配置下 docker 源 2. 查看是否安装成功 docker images 下图就是成功了 3.创建mysql专用目录、数据挂载目录、配置文件目录 ,演示目录在于/home/下 //命令逐条执行cd /home/ mkdir mysql …...
PostgreSql
PostgreSql 1.物化视图1.1 创建物化视图1.2 查询物化视图1.3 使用物化视图1.4 刷新物化视图1.5 删除物化视图 1.物化视图 物化视图是一种存储查询结果的数据库对象。与普通视图不同,物化视图将查询结果实际存储在磁盘上,而不是在每次查询时动态计算结果…...
优化移动端H5:常见问题与解决方案
移动端H5开发中的“坑”与解决方案 本文介绍了开发中遇到的几个关于移动端H5开发中的小问题,以及解决的方法。 一、iOS滑动不流畅问题 在iOS设备上,H5页面的滑动效果有时会出现不流畅的情况,特别是在页面高度超过一屏时。这通常是由于iOS的…...
AWS Glue实现RDS到RDS的数据同步
使用 在AWS上,AWS Glue 是一个完全托管的ETL(Extract, Transform, Load)服务,可以轻松地将数据从一个源系统提取出来,转换数据格式,然后将其加载到目标系统。本文将详细介绍如何使用AWS Glue将数据从一个RDS(关系型数据库服务)实例同步到另一个RDS实例,而无需手动编写…...
【Redis】Redis缓存击穿
1. 概述 缓存击穿:缓存击穿问题也叫热点key问题,一个高并发的key或重建缓存耗时长(复杂)的key失效了,此时大量的请求给数据库造成巨大的压力。如下图,线程1还在构建缓存时,线程2,3&…...