SD教程 ControlNet 之MLSD 室内设计

你是否已经厌倦了传统的室内设计方式,想探索新方法来增强作品设计感?本期小编就同大家分享一个新武器,用Stable Diffusion的ControlNet来打造一个室内设计全新工作流。无论你是经验丰富的室内设计师还是初学小白,都将使你的日常工作如虎添翼、告别爆肝,焕发出令甲方爸爸们赞叹的设计感。
在这里插入图片描述

ControlNet将毛坯房照片转换为高清室内装饰效果图

ControlNet介绍

ControlNet是一种通过添加额外条件来控制扩散模型的AI神经网络结构,它提供了一种增强稳定扩散的方法。在文本生成图像的过程中,使用诸如涂鸦、边缘映射、分割映射、pose关键点等条件输入,可使生成图像更接近输入图像,对比传统图像到图像的生成方式有大幅的改进。

对初识Stable Diffusion的小伙伴们来说,看到ControlNet有这么多预处理器选项,一定很抓狂。
在这里插入图片描述

是的,随着ControlNet插件的不断更新,在v1.1.227版本,已经内置了15种预处理器。但没关系,为了方便大家使用,小编对每种预处理器的功能给出了简单的描述,并会在后续的分享中结合实例,演示具体的使用方法:

○ **Canny 硬边缘:**黑色背景带有白色边缘的单色图像;

○ **Depth 深度:**灰度图像,黑色代表深区域,白色代表浅区域;

○ **Normal 常规:**法线图,表示物体的凹凸纹理,常用在3D模型的绘制上;

○ OpenPose 姿态**:**生成角色动作姿态的骨架图;

○ **MLSD 直线:**黑色背景上带有白色直线的单色图像;

○ **Lineart 线稿:**黑色背景上带有白色线稿单色图像;

○ **SoftEdge 软边缘:**黑色背景上带有白色软边缘的单色图像;

○ Scribble 涂鸦**:**黑色背景上带有白色轮廓的手绘单色涂鸦图像;

○ **Seg 语义分割:**根据原图中不同素材以相应颜色进行区分的彩色图像;

○ **Shuffle 随机洗牌:**通过使用随机流的方式来洗牌原图像,在控制稳定扩散的前提下重构出新图;

○ **Tile 分块:**将原图分割为一块一块的小区域(Tile/瓦块),然后分别对每个瓦块进行图生图放大,最后集合所有放大后的瓦块,拼成完整的大图;

○ **Inpaint 局部重绘:**用于蒙版部分重绘,能在统一整体效果的前提下,补全蒙版部分的内容;

○ **IP2P 像素对像素指令:**该模型会自动识别像素对应提示词与新输入提示词的关系,并选择性的向新提示词迁移;比如把图片的光照调暗,让白天变为夜晚,在正向提示词中加入(make it night:1.3)、(night:1.3)即可;

○ **Reference 参考:**根据给定的参考图,画同一张图,但是有一定的变化,常用来保持人物角色的一致性;

○ **T2IA 自适应:**提取图片色彩或边缘,用于风格迁移;

到这里小编感觉一定有很多小伙伴们要开始抱怨了,这么多的预处理器,用哪个啊。别担心,本篇中的演示只会运用到两种最具代表性的预处理器,MLSD(直线)和Seg(语义分割),选择它们两个,并按照小编的步骤,即便你只有一张随手拍摄的毛胚房照片,也能完成一副有高级既视感的室内装饰效果图。光看文字有点晦涩,让我们先来看下这两种预处理器的实际效果。

在这里插入图片描述

可以看到两种预处理器的处理方式完全不同,接下来就告诉大家具体的使用步骤。

MLSD的使用方法

在日常设计流程中,根据不同的需求,可选择不同的预处理器,也可将几种预处理器组合在一起使用。比如,只想保留原图中屋子的结构线,不需要地毯、家具装饰等细节,而是让AI去自由发挥这些,那么MLSD预处理器就很适合。

  1. 首先用手机拍摄一张毛胚房照片,并将照片文件导入ControlNet中;
    在这里插入图片描述

  2. 控制类型选择MLSD(直线),系统会自动把预处理器和模型都设置为MLSD对应的选项;
    在这里插入图片描述

  3. 然后点击启用(让ControlNet生效)、低显存优化(GPU显存8G以下推荐开启)、完美像素****模式(Pixel Perfect),允许预览(Allow Preview),最后点击中间的“爆炸”按钮,就可以预览预处理器生成的线稿图。
    在这里插入图片描述

勾选“完美像素模式”系统将会自动检测底图像素。相较未开启,生成的预处理图线条会更加细致,这边推荐大家开启哦!

  1. 最后我们也可以调整**“MLSD Value Threshold”和“MLSD Distance Threshold”**来改变图片线条的细节程度,这两个参数大家可以理解为调整线条的细节程度。

到这里ControlNet的参数我们已基本设定好了。接下来便是调整Stable Diffusion的基础参数。Stable Diffusion的基础参数设定并不是固定的,更多是靠各位设计师通过尝试各种创意,绘制出最适合的风格。这里小编就手把手教大家如何设置Stable Diffusion的基础参数。

首先设置Stable Diffusion模型,模型风格有很多种,比如二次元、写实风、插画、中国风等,小编推荐采用以下四个写实类风格的常用模型:

○ anything-v4.5

○ realisticVisionV20

○ PrimeMix_V2.1

○ chilloutmix_NiPrunedFp32Fix;

接下来是输入正向提示词和反向提示词:

○ **正向提示词包括:**best quality, ultra high res, 8K, Interior Design, Warm, simple, High-rise landscape;

○ **反向提示词包括:**low quality,worst quality,bad anatomy,bad composition;

接着我们设置采样迭代步数Ste****ps,默认为20,视不同图片尺寸和Stable Diffusion模型而定,通常设置在15-40左右,小编用10、15、20、25四个参数做演示。

最后设置采样方法Sa****mpler,从界面中可选择的采样方法类型有很多,不同的采样方法生成图片的过程各不相同,这里小编列举了四个常用的采样方法:Eulera、DPM++ 2S a Karras、DPM++ 2M Karras、DPM++ SDE Karras。

到这里设计师们可能会问,上面列了那么多组参数,生成的图片都有啥区别呢?

要回答这样的问题,少不了各种模型间的对比测评。如果使用中低阶GPU卡来完成这类对比测评任务,可能要花好几个小时。但作为LoveGPU的小编,当然要好好利用一下平台的资源优势,给大家带福利咯。使用地表最强出图卡Nvidia GeForce RTX 4090,短短十几分钟,小编就完成了这组测试。下面就给大家看一下anything-v4.5、realisticVisionV20、PrimeMix_V2.1、chilloutmix_NiPrunedFp32Fix四种模型的对比效果。

在这里插入图片描述
anything-v4.5
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过对比可以看出,不管是哪个参数都对出图的效果和质量有一定程度的影响。有了完整的测试效果支持,最终小编推荐选择下面这组Stable Diffusion参数设置:

○ **StableDiffusion模型:**majicMIX_realistic_麦橘写实_v7 ;

○ **正向提示词:**best quality, ultra high res, 8K, Interior Design, Warm, simple, High-rise landscape;

○ **反向提示词:**low quality,worst quality,bad anatomy,bad composition;

○ **采样迭代步数(Steps):**25;

○ **采样方法(Sampler):**DPM++ SDE Karras;

最后一步是调整图像分辨率,点击预处理图下方最右边的箭头符号。

在这里插入图片描述

可以看到Stable Diffusion基础参数里的宽度和高度已经和ControlNet中放入的图片尺寸同步了。

现在所有的参数都调好了,让我们来看一下出图效果吧!
realisticVisionV20
在这里插入图片描述
majicMIX_realistic_麦橘写实_v7
在这里插入图片描述

哇!甲方爸爸梦想中的大平层出现了,还不错是吧!但房间有点空哦,能放些家具进去就更好了。那么如何添加家具呢?这就与下面要介绍的控制权重(Control Weight)和关键词填写有关。

先解释一下**控制权重(Control Weight)的作用,权重越高则代表被原图约束越强。如果我们需要AI帮我们自由发挥一下,通常会适当地减低权重值,当然如果权重太小了,则会距离原图效果越远。通过以下的几组图例,大家可参考一下控制权重(Control Weight)**对出图效果的影响。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过对比,我们更能直观感受到当权重设置越低,AI的创造力更强。上图权重为0.1时,生成的图片与原图基本无关;当权重逐渐提升,生成的图片与原图越来越接近。小编我希望AI为我们在图中添加沙发和地毯,因此我们适当的降低权重到0.7。

接下来我们看下关键词对出图的影响。在正向提示词中添加sofa****(沙发),carpet**(地毯)。点击生成后,我们可以看到地毯已经生成出来了,但是沙发并没有生成出来。看来关键词sofa被忽略了,我们需要提高关键词sofa的权重值。鼠标选择sofa关键词,按住ctrl键+方向键上,就可以提高关键词的权重值。现在将关键词sofa权重提升到1.3**,沙发就生成出来了。
在这里插入图片描述

在这里插入图片描述

然而,单靠关键词帮我们添加家具,最后摆放的位置往往是随机的。如果我们要在指定的位置安放家具,可用Photoshop甚至手绘的方式来先自行修改**MLSD(直线)**图,这样就能按照自己的想法来设计房间布置了!是不是已经迫不及待地想要给房间添加新家具了?小编来为大家简单演示一下。

右键保存**MLSD(直线)**图,将保存的图片导入Photoshop。然后在需要的位置简单勾勒出床的轮廓,大家也可以根据自己的喜好画,并不需要画的非常细致,只要大致描绘出轮廓就行了。

在这里插入图片描述

将绘制好的图片重新拖到ControlNet中,把关键词sofa改为bed,因为这已经是预处理好的图片了,所以预处理器选择none。这次,我希望生成图片的布局和我修改过的MLSD(直线)图一致,所以我把控制权重调高至1。

在这里插入图片描述

在这里插入图片描述

现在设置完毕啦,点击生成让我们来看一下设计效果吧!
在这里插入图片描述

可以看床已经放到我们想要的位置,而且生成图片的内容和结构都遵循了手动修改过后的线稿图。看到这里,我相信大家已经理解了ControlNet中**MLSD(直线)**的用途和使用方法了!但到这里还仅仅是本篇的一半内容,后面更精彩哦。

Seg语义分割的使用方法

我们知道MLSD是通过线条去识别物体的。大家有没有想过,当两件物体的外形是一样的,比如一个衣柜和一个冰箱,它们都是长方体,仅仅通过线条来识别,并不能很好的区分它们。显然,此时仅有MLSD已经无法胜任了,这时就需要用到Seg(语义分割), Seg可分割并用颜色标记原图物体,通过颜色对应物体的方式来引导Stable Diffusion生成希望获得的物体。以下小编就为大家介绍Seg的具体使用方法。

1.保存刚才生成的效果图,将它重新导入ControlNet中;
在这里插入图片描述

2.控制类型选择Seg(语义分割),在预处理器栏中我们可以看到有**seg_**ofade20k、seg_ofcoco、seg_ufade20k三种预处理器可供选择。

在这里插入图片描述

seg_ofade20k和seg_ufade20k都使用了ADE20k协议,所以这两种预处理器识别图片中素材所用标记颜色是相同的。区别在于它们采用了不同的算法:OneFormer算法会在颜色不同处使用白线分割;而UniFormer算法没有分割线。

seg_ofcoco则采用了COCO协议,所以它的标记颜色和ADE20k协议有所区别。另外它采用了OneFormer算法,因此在颜色不同处也会有白线分割。

光看文字比较抽象,小编直接上效果图:
在这里插入图片描述

从三种预处理器的效果来看,都可以很好地分割原图中的各类素材区域。

  1. 这里小编选择预处理器seg_ufade20k,点击启用、低显存模式(GPU显存8G以下推荐开启)、完美像素模式(Pixel Perfect)、允许预览(Allow Preview),点击“爆炸”按钮,我们可以看到图片中各素材已用不同的颜色标记出来了;
    在这里插入图片描述

  2. 这里小编分享一个ADE20k协议的色号表,里面记录了不同的颜色所对应的材质或物件,大家也可以到LoveGPU官网内下载并使用。
    在这里插入图片描述

  3. 现在我们想在床边添加一张桌子,先保存S****eg预处理效果图,并将其导入Photoshop,简单画出桌子的轮廓,颜色参考ADE20k色号表,选择将第34行“desk桌子”,将它的色号**#0AFF47**复制出来,填充进轮廓中。

在这里插入图片描述

  1. 回到Stable Diffusion,在正向提示词里添加desk,然后将Photoshop处理过的图片放入ControlNet中,预处理器选择none, 其他参数保持不变;

在这里插入图片描述

7.点击生成,让我们品鉴一下最终的设计效果吧!
在这里插入图片描述

太棒啦!已经顺利将桌子添加到预设位置。

文章使用的AI工具SD整合包、各种模型插件、提示词、AI人工智能学习资料都已经打包好放在网盘中了,无需自行查找,有需要的小伙伴文末扫码自行获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908878.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓬勃发展:移动开发——关于软件开发你需要知道些什么

一、前言 移动开发一直都是软件开发领域中最有趣的领域之一,这是因为: 1、移动开发为“只有一个人”的开发团队提供了一个非常独特的机会,让他可以在相对较短的时间内建立一个实际的、可用的、有意义的应用程序; 2、移动开发也代…

性能测试 —— MySQL性能测试方案设计!

01、慢查询 查看是否开启慢查询 mysql> show variables like %slow%’; 如图所示: 系统变量log_slow_admin_statements 表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志 启用log_slow_extra系统变量 (从MySQL 8.0.14开始提…

每日OJ题_牛客_爱吃素_数学_C++_Java

目录 牛客_爱吃素_数学 题目解析 C代码 Java代码 牛客_爱吃素_数学 爱吃素 (nowcoder.com) 描述: 牛妹是一个爱吃素的小女孩,所以很多素数都害怕被她吃掉。 一天,两个数字aaa和bbb为了防止被吃掉,决定和彼此相乘在一…

Vue 自定义icon组件封装SVG图标

通过自定义子组件CustomIcon.vue使用SVG图标&#xff0c;相比iconfont下载文件、重新替换更节省时间。 子组件包括&#xff1a; 1. Icons.vue 存放所有SVG图标的path 2. CustomIcon.vue 通过icon的id索引对应的图标 使用的时候需要将 <Icons></Icons> 引到使用的…

MySQL-如果你在添加外键时忘加约束名,如何找到系统默认的约束名

问题 在你添加约束的时候&#xff0c;一般都会为其取名以方便后期的修改&#xff0c;但是如果你忘记了呢&#xff0c;如何找到系统默认的约束名 解决方法 -- 查找约束名 SELECTCONSTRAINT_NAME FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERETABLE_NAME emp ANDREFERENCED_T…

KP8530X系列KP85301SGA 650V耐压 集成自举二极管的半桥栅极驱动器 北欧双线灯调色解决方案

KP8530X同系列选型参考&#xff1a; KP85301SGA兼容IR2103 KP85302SGA兼容IR2106、IR2001、IR2005、IR2186 KP85303SGA兼容IR2104 KP85304SGA兼容IR2304 KP85305SGA兼容IR21857 KP8530X系列KP85301SGA是一款 650V 耐压&#xff0c;集成自举二极管的半桥栅极驱…

IPC-A-610J-中文版 CHINESE-中文版 2024 电子组件的可接受性

IPC-A-610J-中文版 CHINESE-中文版 2024 电子组件的可接受性.pdf 链接: https://pan.baidu.com/s/1UreAzlB_P7tGH_WoFL2Ybg?pwd1234 提取码: 1234 https://share.weiyun.com/eQCyAPYh 通过网盘分享的文件&#xff1a;IPC-A-610J-中文版 CHINESE-中文版 2024 电子组件的可接受性…

JAVA设计模式之【建造者模式】

1 定义 建造者模式&#xff08;Builder Pattern&#xff09;使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 2 类图 产品类&#xff08;Product&#xff09;&#xff1a;表示被创建的复杂…

SQL server 列转行

在 SQL Server 中&#xff0c;将列转换为行的操作通常被称为“透视”&#xff08;Pivot&#xff09;的逆操作&#xff0c;即“反透视”&#xff08;Unpivot&#xff09;。SQL Server 提供了 UNPIVOT 关键字来实现这一功能。假设你有一个表 EmployeeDetails&#xff0c;其中包含…

分类算法——决策树 详解

决策树的底层原理 决策树是一种常用的分类和回归算法&#xff0c;其基本原理是通过一系列的简单决策&#xff0c;将数据集划分为多个子集&#xff0c;从而实现分类。决策树的核心思想是通过树形结构表示决策过程&#xff0c;节点代表特征&#xff0c;边代表决策&#xff0c;叶子…

【小白学机器学习31】 大数定律,中心极限定理,标准正态分布与概率的使用

目录 1 正态分布相关的2个相关定理 1.1 大数定律&#xff1a;(证明了)分布的稳定性 1.2 中心极限定理&#xff1a;(证明了)分布的收敛性 2 使用标准差和概率的2种思路 2.1 标准正态分布的曲线 2.2 两种使用方式 2.3 第1种&#xff1a;按整数倍标准差δ 作为标准使用 2.…

Sourcetree 启动问题(完美解决)

概述 sourcetree 之所以打开就闪退&#xff0c;是因为没有关闭 sourcetree 关机或者系统自动更新等没有关闭sourcetree就直接关机的行为导致缓存信息不匹配&#xff0c;删除的目的是为了重新加载缓存。 下方直接上图&#xff0c;按顺序操作&#xff1a; 1.找到 sourceTree 安…

Sigrity Power SI VR noise Metrics check模式如何进行电源噪声耦合分析操作指导

SSigrity Power SI VR noise Metrics check模式如何进行电源噪声耦合分析操作指导 Sigrity Power SI的VR noise Metrics check模式本质上是用来评估和观测器件的电源网络的耦合对于信号的影响,输出S参数以及列出具体的贡献值。 以下图为例

安科瑞Acrel-2000ES储能柜能量管理系统的详细介绍-安科瑞 蒋静

Acrel-2000ES储能柜能量管理系统具备全面的储能监控和管理功能。它包括了储能系统设备&#xff08;如PCS、BMS、电表、消防、空调等&#xff09;的详细信息&#xff0c;并实现了数据采集、处理、存储、数据查询与分析、可视化监控、报警管理和统计报表等功能。此外&#xff0c;…

细腻的链接:C++ list 之美的解读

细腻的链接&#xff1a;C list 之美的解读 前言&#xff1a; 小编在前几日刚写过关于vector容器的内容&#xff0c;现在小编list容器也学了一大部分了&#xff0c;小编先提前说一下学这部分的感悟&#xff0c;这个部分是我学C以来第一次感到有难度的地方&#xff0c;特别是在…

百度集度嵌入式面试题及参考答案

linux 系统之间通信机制有哪些&#xff1f; Linux 系统之间存在多种通信机制&#xff0c;以下是一些常见的通信机制及其详细介绍。 管道&#xff08;Pipe&#xff09; 原理&#xff1a;管道是一种半双工的通信方式&#xff0c;数据只能单向流动。它基于文件描述符&#xff0c;在…

使用vite+react+ts+Ant Design开发后台管理项目(五)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…

MATLAB计算朗格朗日函数

1. 朗格朗日函数介绍 朗格朗日函数&#xff08;Lagrange function&#xff09;通常用于优化问题&#xff0c;尤其是带有约束的优化问题。其一般形式为&#xff1a; 其中&#xff1a; f(x) 是目标函数。 是约束条件。 是拉格朗日乘子。 为了编写一个MATLAB代码来计算和绘制…

微信全新体验来袭,让你的微信再升级

在这个信息爆炸的时代&#xff0c;微信作为我们日常生活中不可或缺的社交工具&#xff0c;每一次的更新都牵动着亿万用户的心。 最近&#xff0c;微信再次发力&#xff0c;为安卓、iOS、鸿蒙以及PC端的用户带来了全新的功能体验。今天&#xff0c;就让我们一起走进这些新功能&…

ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录 一、搭建SkyWalking 1.1 版本选择 1.2 下载安装 1.3 配置启动 1.4 SkyWalking UI介绍 二、Springboot项目使用 2.1 Agent下载 2.2 Agent配置skywalking oap地址 2.3 IDEA配置Agent地址 2.4 生成的ES索引介绍 三、在kibana上查看日志 四、问题和解决 3.1 日志…