Stable Diffusion Controlnet常用控制类型解析与实战课程 2

stable diffusion 控制空间构图 -ControlNet Depth Depth深度检测在 Stable Diffusion 的 ControlNet 中扮演着至关重要的角色,它不仅能够传递空间信息以指导图像生成,还广泛应用于多种场景,如空间场景生成、风格转换、人体透视、矫正手指以及艺术字创作等。通过合理选择预处理器和控制权重,可以在保持原始构图的同时,实现高度可控且富有创意的图像生成效果,为我们提供了更多的可能性和灵感。 阅读详情

本节内容,给大家带来的是stable diffusion Controlnet常用控制类型解析与实战的第二节课程。在上期课程中,我们已经了解了关于线稿类控制类型的特征和用法,本节课程,我们将继续讲解一些常用的控制类型。

一:OpenPose

先看一看openpose控制类型,我们之前演示的线稿尤其是canny这种细致的线稿控制类型可能会限制AI的创作力。很多时候,我们只希望对某些要素进行控制。比如openpose控制类型可以用来对人物姿势进行控制,openpose通过关键点检测,根据提供的图片提取姿态信息,从而控精确地复制人物动作和姿势。相比线稿预处理器,openpose图像生成更自由。openpose也是stable diffusion中受欢迎程度非常高的一个控制类型。

我们演示一下,文生图标签页,启用controlnet unit 0,控制类型选择openpose,填写正向提示词1girl与反向提示词(badhandv4,  easynegative, nfsw),采样方式使用euler a,采样步数设置为30,

上传一幅之前我们使用过的女孩图像,点击预览图标,可以看到预处理器提取的是人体姿势的预览图。

在生成图片之前我们还补充一些实际应用中非常重要的知识

我们这里的参考图中的人物是半身图像,人物脸部占据画面的比例比较少,

选择openpose控制类型后,预处理自动设置为openpose_full,该预处理器将检测身体姿势,面部表情,手部细节,此时如果直接生成图像,很有可能脸部会出现崩坏的情况。比如生成这样的图像。

所以在生成之前,我们还需要一些额外的操作

1: 参考图是1024*1024,此时建议生成的图像分辨率也设置为1024 * 1024,或者使用512*512,但开启高清修复选项,使最终生成图片的分辨率也为1024*1024.

2: 针对脸部崩坏的情况,我们可以使用一个非常重要的插件ADetailer,我们不在课程中再讲述该插件的安装方法,如果还不熟悉插件的安装,可以参考之前的课程。插件安装后在选项中将增加Adetailer项目,点击展开,勾选启用,然后选择合适的模型即可,我们也可以根据需求调整一些相关的参数

执行以上操作后,再点击生成,可以看到stable diffusion绘制了新的人物图像,图像大部分元素已经发生了较大的变化,但是人物姿态与参考图是一致的。

再强调一下,对于人脸占比比较小的图像,建议开启ADetailer来对脸部进行修复,但对于人脸占比特别小的图像,即使开启了ADetailer仍然可能会绘制出奇怪的脸部,此时我们可以借助局部重绘来对脸部细节进一步修复。

我们回到openpose控制类型

openpose有几个细分预处理器。我们通过预处理器预览图对比一下

1.1 dw_openpose_full

1: dw_openpose_full是使用比较多的姿势处理器,无论是手部识别,面部识别,体态识别,或是一些其他的特征物识别,dw_openpose_ful的表现都非常优秀。他也比另外一个全身姿势识别预处理器openpose_full要更胜一筹。

2:openpose姿态:

主要检测身体的姿势,不会关注脸部细节

3: openpose_face

除了检测身体姿势,也会对脸部表情细节进行检测

4: openpose_faceonly

该预处理器仅检测脸部表情细节

5: openpose_full

检测身体姿势,面部表情,手部细节,但是细节程度不及dw_openpose_full

6:openpose_hand

检测身体姿势和手部细节

我们刚刚演示了文生图中openpose controlnet的使用,我们还可以使用图生图结合openpose实现一键换衣。

我们演示一下

先使用局部重绘,将衣服部分遮罩起来,

修改一下正向提示词

Best quality, masterpiece, ultra high res, raw photo, beautiful and aesthetic,deep shadow, dark theme,(photorealistic:1.4), 1girl, (((long skirt))), striking perspective,

culottes, sleeveless blouse, wedges

提示词中增加了裙子元素,将人物的服装更换为裙子。

如果不使用openpose,可以看到,服装根据提示词发生了变化,但重绘的同时,人物姿势也发生了变化,而由于AI的随机性,有的时候重新绘制的身体部分与头部可能缺乏统一性。

我们可以加入openpose控制来尽可能避免此类问题

启用openpose并使用openpose_full控制图片生成,人物的衣服同样实现了更换,并且人物姿势没有变化,身体与头部也会更加的协调。

openpose的应用非常广,比如一些视频转绘扩展插件也会利用到openpose来保证人物姿势的一致性。

二:Depth

讲解完openpose,我们继续讲解另外一个控制模型depth

depth也是实用价值很高的控制类型,他可以根据参考图像分析图像中各个区域与物品的深度与距离信息,然后基于这些信息取控制图片的生成。我们演示一下,文生图中,选择depth控制类型,上传一张人物风景图,预处理器选择depth_leres++,

点击预览,解析出的是元素深度信息图,颜色越浅表示离镜头越近,颜色越深则代表离镜头越远。

填写好提示词

正向:masterpiece,(best quality:1.3),ultra high res, raw photo, Landscape photos of characters, Long distance character photography, style: realistic pictures, 1girl

反向:nsfw, mutated hands and fingers, deformed, bad anatomy, disfigured, poorly drawn face, mutated, extra , ugly, poorly drawn hands, missing , floating , disconnected limbs, malformed hands, out of focus, long neck, long body

点击生成,stable diffusion会根据深度信息图绘制新的图像

depth也有多个细分预处理器,区别在于其采用的深度信息估算算法有一定的差异,最终呈现的效果也会有所差异。

我们对比一下这些预处理器解析出的深度信息图

depth_midas是非常灵活和高效一种预处理器,其深度信息估算算法可以从图像中推断出场景中物体的距离信息,从而表达物体的远近关系。midas的计算成本低,但细节没那么完整。midas更擅长处理前景。对于主体与背景,midas分离得更清晰。(以刚刚的图像为例)所以可以看到使用depth_midas,解析出的背景信息是比较少的。

depth_leres其深度信息估算算法可以检测图片的景深和光影的深度,相对于midas,其精度通常更高,细节也更多,但出图时间也可能更长。

depth_leres++则提供了更精确以及效率更高的算法,提取的信息更加的细致,可以看到,其提取的背景信息明显多于midas

depth_zoe预处理器采用的深度信息估算方法结合了相对深度和绝对深度,可以估计图像中每个像素的深度信息。比如对于包含人脸的图片,depth_zoe能估算出人脸五官信息的深度图,从而更好地还原人物的五官特征。

depth控制类型对于房屋内部的场景与物品等要素可以把控和还原得非常好,我们可以用来实现房屋设计方案的复刻与重绘制。这是depth预处理器比较典型的应用场景。

我们刚刚提到的depth_leres++预处理器,增加了两个可选项,Remove Near %和Remove Background,通过调整这两个选项可以设置保留前景和背景的程度

这两个选项在某些场景会特别有用,比如我们可以提高Remove Background比例(65~78)来减少背景的保留,然后添加背景提示词来更好地实现背景更换

我们演示一下,在文生图模式中,修改正向提示词(1girl ,(((field)))), 反向提示词填入river。更换了背景提示词为field-田野,并增加了其权重。打开controlnet unit 0,选择depth控制类型,(采样方法使用euler a),分辨率与原图相同1024*1024,预处理器使用depth_leres++,将Remove Background设置为75,

另外为了人物变化不要太大,我们在controlnet unit 1再开启一个reference控制类型,该控制类型我们会在下节课程中讲解,点击生成,可以看到图像的背景实现了更换。

当然,实现换背景,最好还是使用在图生图的课程中已经演示过的局部重绘(上传蒙版)方式,这样能保证人物不会发生变化。

三:Segmentation

讲述完depth控制类型,我们接着学习另外一个控制类型-segmentation。

segmentation预处理器可以分析图片中物品种类并以不同的颜色进行分割和区分,进而控制图像的生成。

segmentation能根据规则识别图片中的物品,从而有效约束图像构成,同时又赋予了AI更大的创作空间,

我们演示一下,文生图模式,启用controlnet,选择segmentation,上传参考图,点击预览,可以看到预处理后得到的是一张以色块标注区分物品的预览图,

segmentation有一个物体与色块对应表,对应表放在我们的课后文档中。

stable diffusion会根据对应表,再基于预处理结果去生成图像,比如这里,蓝色是沙发,黄色是灯

点击生成,stable diffusion会依据相应的规则重新绘制一幅客厅图像。

segmentation也有几个细分预处理器:

这几个预处理器的命名遵循一定的规则,

of和of部分代表的是算法

of则代表使用oneformer算法

uf表示使用uniformer算法

ade20k和coco则代表的是不同的数据集标记和注释方法,这两个数据集采用的颜色标示规则也有一定区别,

这里是不同预处理器处理得出的数据集标记预览图。

ade20k识别的物体种类更多,所以细节相比coco更丰富。一般情况我们更多会选择seg_ofade20k这个预处理器。

好了,本节课的课程到这里就结束了,我们做一下总结。本节课程我们继续讲解了controlnet的几个常用控制类型,我们首先讲述了使用度非常高的openpose姿态控制类型,接着我们讲解了depth深度控制类型与segmentation语义分割控制类型,这些控制类型在stable diffusion中都具备一定的实战应用价值,比如openpose对人物姿态的控制可以实现换装应用,depth和segmentation可以用于建筑物装修设计等等。在下节课程中我们将继续讲解一些图像风格约束类的控制类型,包括shuffle,reference和normalmap。这些控制类型可以通过提取图片的风格,包括颜色,角色,光影特征,从而控制图片的绘制。

Stable Diffusion进阶指南:图生图与ControlNet控图全解析 本文深入解析Stable Diffusion的进阶功能,包括图生图基础流程、局部重绘技巧、高清放大方案及ControlNet精准控图方法。重点讲解了重绘幅度、蒙版模式等关键参数配置,对比三种放大方案优劣,并详细介绍ControlNet各类模型的应用场景。通过核心参数优化和功能组合,实现从风格转换到细节重构的全流程控制,帮助创作者突破文生图限制,掌握"以图生图"的进阶创作能力。文章强调实践中的参数平衡与功能适配,为AI绘画爱好者提供系统性的技术指导。 阅读详情

相关推荐

Stable Diffusion人物形态精准控制:从提示词到ControlNet的完整工作流

在AI图像生成领域,扩散模型通过逐步去噪将随机噪声转化为图像,其核心价值在于将文本描述转化为视觉内容。然而,仅凭文本提示词难以实现精确控制,尤其在人物形态、姿态等细节上常出现偏差。为解决这一工程实践难题,需要引入额外的视觉引导信息。ControlNet等技术通过注入姿态、深度、边缘等结构约束,让生成过程从“随机采样”变为“可控构建”,极大地提升了AI绘图在角色设计、概念艺术等场景下的实用性和可靠性。本文以Stable Diffusion为例,系统拆解了结合提示词工程、图生图、姿态控制与模型微调(LoRA)的

weixin_33947521的博客 1262

Stable Diffusion【ControlNet】:ControlNet模型之Openpose,实现人物姿势控制

OpenPose是一种用于检测人物骨骼肢体动作的技术,可以检测出人体关键点,比如头部、肩膀、手的位置等。它非常适用于模仿人体姿势,而不需要模仿服装、发型和背景等其他细节。ControlNet 目前集成了 Openpose 预处理器和模型。

2401_85688943的博客 2355

〔008〕Stable Diffusion 之 ControlNet 篇

让AI绘画向生产力工具进步的神级工具

国内某知名游戏公司小菜鸡工程师 2363

为SD Web UI Controlnet使用的DWPose:令人震惊的手势识别技术。

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

白帽阿叁的博客 3326

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据,气候数据

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据 b_china_mon_avg_data_pressure月平均气象 b_china_mon_avg_data_rain月平均降水 b_china_mon_avg_data_rhu月平均相对湿度 b_china_mon_max_data_rain月最大降水 b_china_mon_max_min_data_tem月最高温度最低温度 b_china

无极低码 2万+

渲染TA实战:冰面效果制作分享

这里画一张图:我们可以看到,如果深度图的范围没有进过缩放,那就是0-1,但是归一化的-viewDir的向量长度为1,如果-viewDir不和表面垂直(这是绝大多数的情况),那么viewDir.z的分量就是一个不定值,我们不好确定需要走多少步,viewDir才能和底面相交。然后我们需要冰面的Alpha图:因为冰是透明物体,所以相对于Albedo,我们更需要的是一张冰面裂纹的蒙版图,这张图需要记录冰面的裂纹走向和深浅、冰封的气泡、以及因为压力或气体等原因产生的类似雾的效果。

qq_41166022的博客 1026

稳定扩散ControlNet v1.1 权威指南

ControlNet是用于控制稳定扩散模型的神经网络模型。你可以将 ControlNet 与任何稳定扩散模型一起使用。使用稳定扩散模型的最基本形式是文本到图像。它使用文本提示作为条件来引导图像生成,以便生成与文本提示匹配的图像。ControlNet 除了文本提示之外,还增加了一个条件。额外的调节可以在ControlNet中采取多种形式。让我向你展示ControlNet可以执行的操作的两个示例:使用(1)边缘检测和(2)人体姿势检测来控制图像生成。

新缸中之脑 1983

飞塔防火墙之Link Monitor

Link Monitor类似于SLA,飞塔防火墙线路质量探测的一个功能。

weixin_41903258的博客 2405

Ai绘画工具,Stable Diffusion ControlNet使用攻略(三)

Depth模型的主要功能是捕捉画面深度,获取图片前后景关系。图像当中只有黑白二色,图片颜色越浅的区域,代表距离镜头越近;图片越是偏黑色,则代表这部分区域距离镜头越远。NormalMap 算法根据输入图片生成一张记录凹凸纹理信息的法线贴图,通过提取输入图片中的3D法线向量,并以法线为参考重新生成一张新图,同时给图片内容进行更好的光影处理。法线向量图指定了一个表面的方向。在ControlNet中,它是一张指定每个像素所在表面方向的图像,法线向量图像素代表的不是颜色值,而是表面的朝向。

qq_41314882的博客 2180

青龙面板实战:用快手极速版脚本日赚XX元的核心参数解析

本文深入解析了青龙面板运行快手极速版脚本的核心参数配置,旨在帮助进阶用户提升收益稳定性。重点剖析了设备标识符(did)的获取原理、多账号Cookie的精准拼接规则,以及如何通过科学设置定时任务频率来量化并优化收益,实现细水长流的稳定收益。

weixin_29310605的博客 1073

别再让地图加载慢吞吞!GeoServer + GeoWebCache 缓存配置实战(附性能对比)

本文详细介绍了如何通过GeoServer和GeoWebCache优化地图服务性能,实现地图加载速度的显著提升。从缓存机制解析到实战配置流程,再到高级性能调优技巧,帮助开发者构建高效地图缓存系统,解决地图加载慢的问题。

weixin_42525369的博客 405

Stable Diffusion【进阶篇】:手部修复的实现方式

dw-openpose应用在预处理阶段,也就是说明AI的理解识别能力更强大,可以对手部识别的更加细节具体。总结:dw_openpose_full预处理器对于手部的识别能力相当于是openpose-hand的识别手部能力的增强,但是不是生成的图片效果手部姿势都是满足要求的,还是需要生成多张图片抽签选择。我们先来看一下openpose_full和dw_openpose_full之间在手部识别方面的差异。我们来体验一下使用dw_openpose_full预处理器生成的手部效果。

m0_64365896的博客 1178

Coze智能体实战:接口需求分析和接口调试

AI智能体的需求:能根据接口文档提取接口信息以及设计接口测试点,并进行接口调试返回接口测试结果。

十二测试录 282

stable diffusion Controlnet常用控制类型解析与实战课程1

本节课程,我们讲述了ControlNet中的5个控制类型,这几个控制类型均是通过提取图像中的线稿,进而控制图像的绘制。这5种类型各自有各自的特色,canny提取的线稿比较细,识别出的线条多,从而能更贴近地还原图像中的元素。Lineart可以对动漫,素描,写实,黑白线稿等不同类型的图片有针对性地提取线稿。softedge提取的线条比较柔和,适合毛发等细节的提取,MLSD则只提取直线部分线稿,适合建筑、家装等应用场景。scribble提取的线条比较粗放,从而给予AI发挥的空间更大。

HuggingAI的博客 1418

第170篇 因子图优化入门——图模型在状态估计中的应用

本文系统介绍了从滤波方法到因子图优化的思维转变,重点解析了因子图的原理与应用。首先对比了递推式滤波(卡尔曼滤波等)与全局优化的区别,指出优化方法能利用所有信息且适合处理稀疏结构。然后详细阐述了因子图的二部图结构(变量节点和因子节点)及其将复杂概率分布分解为小因子乘积的优势。文章讲解了因子图优化如何转化为最小二乘问题,并介绍高斯-牛顿法和LM方法等求解技术。最后对比了g2o、Ceres和GTSAM三大主流框架的特点及适用场景,强调了初始化和鲁棒核函数的重要性,为SLAM相关面试提供了实用建议。

郑伟强dev的专栏 374

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

stable diffusion Controlnet常用控制类型解析与实战课程 3

本节课程我们主要讲述了shuffle、reference和normalmap这三个与风格约束相关的控制类型,这些控制类型可以基于参考图片的颜色,角色,光影等特征,控制图片的绘制

HuggingAI的博客 1395

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Stable Diffusion Controlnet常用控制类型解析与实战课程 5

本节课程,我们将继续讲解revision,instructp2p,ip-adapter,t2i-adapter这几种控制类型,这些控制类型提供了丰富的图像控制视角,也为stable diffusion增加了更多维度的应用能力。

HuggingAI的博客 1273

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Stable Diffusion Controlnet常用控制类型解析与实战课程 4

本节课程我们陆续讲解了放大图像时可以增强细节的tile控制类型,可以给黑白老照片上色的recolor控制类型,以及能够帮助图像融合更加自然的局部重绘控制类型。这些控制类型为非常多的实际应用场景提供了有针对性的解决方案

HuggingAI的博客 1312

Stable Diffusion基础:ControlNet之人体姿势控制

如果你是真正有耐心想花功夫学一门技术去改变现状,我可以把这套AI教程无偿分享给你,包含了。

HJS123456780的博客 1197

一篇搞定!Stable Diffusion中ControlNet的所有控制类型全掌握

介绍SD(Stable Diffusion)中,ControlNet绝对是一个绕不开的神器!它不仅能让你生成的图片更符合预期,还能控制线条、姿势、色彩等多种细节,真正做到“所想即所得”。今天这篇文章,一图流展示ControlNet的各种控制类型和效果。简单易懂,帮你快速掌握ControlNet控制类型!文章有点长,建议码住。温馨提示🔔:本节生图时均用基础大模型且没有添加复杂文本提示词,只为展示各控制类型效果,便于小白也能跟着实操!线条控制。

z19981的博客 2566

Stable Diffusion系列课程二:ControlNet

ControlNet直译过来就是控制网,本质上是stable diffusion的扩展插件。在ControlNet出现之前,基于扩散模型的AI绘画是非常难以控制的,这样在一些有具体需求的场景下就变得难以接受。ControlNet实现了很多前所未有的控制效果,有效的解决了这一难题。ControlNet的本质,是输入一些额外的信息来引导扩散模型进行定向生成。

qq_56591814的博客 6670

Stable Diffusion基础:精准控制之ControlNet

在中精确控制图片的生成是一件比较困难的事情,炼丹师们经常需要大量抽卡才能得到一张满意的图片,不过随着 ControlNet 的诞生,这一问题得到了很大的缓解。ControlNet 提供了十几种控制,有的可以控制画面的结构,有的可以控制人物的姿势,还有的可以控制图片的画风,这对于提高绘画质量、提升生图速度特别有用;基于 ControlNet 的能力,炼丹师们还可以将AI绘画拓展到更多的应用场景,比如、光影文字、线稿上色、老照片修复、图片风格转绘等等。

weixin_55154866的博客 2159

ControlNet原理解析:如何让Stable Diffusion听懂你的指令

你是否曾在使用Stable Diffusion时遇到这样的困扰:输入的文字描述与生成图像之间总是存在偏差?ControlNet的出现,正是为了解决这一核心痛点。作为一个神经网络结构,ControlNet能够通过添加额外条件来控制文本到图像的扩散模型,让AI真正"听懂"你的创作指令。本文将深入解析ControlNet的工作原理,帮助你理解它如何与Stable Diffusion协同工作,以及如何利用...

gitblog_01122的博客 1124

Stable Diffusion教程|Controlnet插件详解和实战

ControlNet是一种能够嵌入任意训练好的扩散模型,并为这些扩散模型提供更多控制条件的神经网络结构。ControlNet的基本结构如图ControlNe的基本结构由一个对应的原先网络的神经网络模块和两个“零卷积”层组成。在之后的训练过程汇总,会“锁死”原先网络的权重,只更新ControlNet基本结构中的网络“副本”和零卷积层的权重。这些“副本”将学会如何让模型按照新的控制条件来生成结果,而被“锁死”的网络则会保留原先网络已经学会的所有知识。

libaiup的博客 1950
上一篇: stable diffusion Controlnet常用控制类型解析与实战课程1
下一篇: stable diffusion Controlnet常用控制类型解析与实战课程 3
盐焗AI
博客等级 码龄2年 334粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值