在 Stable Diffusion 中控制光线的三种方式

2024-06-17 13:12

本文主要是介绍在 Stable Diffusion 中控制光线的三种方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

光线在摄影中扮演着至关重要的角色,并对图像的整体质量和意境产生重要影响。你可以利用光线来增强主题,创造深度和立体感,传达情感,并突出重要细节。

在本文中,你将了解通过以下方法来控制光线:

  • 光线提示词
  • 区域光线控制
  • ControlNet img2img

软件

我们将使用 AUTOMATIC1111 的 Stable Diffusion GUI 来进行图片生成。你可以在 Google ColabWindows 或者 Mac 上使用这个 GUI

使用光线提示词

最简单的方法是将 光线提示词 添加到提示中。

我将使用以下基本提示和负面提示来说明效果。

fashion photography, a woman

disfigured, ugly, bad, immature, cartoon, anime, 3d, painting, b&w, nsfw

  • Model: DreamShaper v6 (c249d7853b)
  • Width: 512
  • Height: 768
  • CFG scale: 7
  • Seed: 94858136 – 94858143

使用基本提示生成的示例图像。它们的光线充足,外形美观,但照明效果并不有趣。

Volumetric lighting(立体光线)是指图像上的明显光线束。在摄影中,它被用于增加体积感。

向提示中添加提示词 volumetric

使用 Rim lighting(边缘光线)为主体添加了一个发亮的轮廓。这可能会使主体变暗。你可以与其他光线提示词结合使用以突出主体。

向提示中添加提示词 rim lighting

使用 Sunlight(阳光)在图像中添加阳光效果。它通常用于渲染大自然背景。

向提示中添加提示词 sunlight

Backlight(背光)会将光源放在图片主体后面。通过添加这个提示词,你可以产生一些时尚的效果。

向提示中添加 backlight

众所周知,Stable Diffusion 不会无人指导地生成暗图像。解决这个问题的方法有很多,包括使用模型和 LoRA。但一个更简单的方法是添加一些昏暗的光线提示词。

向提示中添加 dimly lit

Crepuscular rays(晨光射线)用于添加光线穿过云层,产生的光线效果。它可以创造出令人惊叹的视觉效果。

该提示和纵横比通常用于生成全身图像,添加 crepuscular rays 会放大图像。我使用 crepuscular rays, face 略微放大了面部。

提示:

  • 如果未看到效果,请增加提示词的权重。
  • 这些光线提示词并不总是有效的。尝试一次生成几张图像进行测试。

区域光线控制

提示中的光线提示词适用于整个图像。你可以使用工具进一步调整光线效果以适应特定区域。

你需要安装 Regional Prompter 扩展。请查阅文章以了解安装说明。

在这个例子中,你将为图像的上部和下部应用不同的光线。

txt2img 页面上,展开 Regional Prompter 部分。

  • Active: Yes
  • Use common prompt: Yes
  • Split mode: Vertical
  • Divide Ratio: 2,3

点击 visualize and make template,确认图像被分为两个垂直区域。

输入提示:

fashion photography, a woman
BREAK
( hard light:1.2), (volumetric:1.2), well-lit
BREAK
(dimly lit:1.4)

并使用下面的负面提示:

disfigured, ugly, bad, immature, cartoon, anime, 3d, painting, b&w, nsfw

其他参数保持不变。

你将得到一些在顶部光线良好但底部较暗的图像。

现在试试交换光线分配。

fashion photography, a woman
BREAK
(dimly lit:1.4)
BREAK
( hard light:1.2), (volumetric:1.2), well-lit

光线相应地交换了。

提示:

  • 如果未看到效果,请调整提示词的权重。
  • 区域提示并不总是百分之百有效。生成多一些的图片,并挑选出最好的结果。

使用 ControlNet 控制光照

现在,任何教程都离不开提到 ControlNet… 所以本文也不可避免!

这种方法允许你精确控制光线。

Txt2img 设置

txt2img 页面上,按照通常的方式生成图像。

选择要添加光线的图像。

将其保存到本地存储(我们稍后会用到 ControlNet)。

点击 Send to img2img

Img2img 设置

你的提示、负面提示、图像大小和种子值现在已经传输到 img2img 页面。

img2img 页面上,导航到 ControlNet 部分。

上传刚才保存的图像到 ControlNet Unit 0

使用以下设置。

  • Enable: Yes
  • Pixel Perfect: Yes
  • Allow preview: Yes
  • Control Type: Depth
  • Preprocessor: depth_zoe
  • Model: control_xxxx_depth
  • Control Weight: 0.6

滚动到 img2img canvas,删除图像。

我们将使用以下图像来控制光线。该图像指定了靠近顶部的聚光灯。

将此图像上传到 img2img canvas

resize mode 设置为 Just Resize

denoising strength 设置为 0.95

按下 Generate

你应该得到带有光源在顶部的图像。

你可以使用位于右上角的 Edit Tool(铅笔图标)来放大 img2img 画布中的某个区域。

点击铅笔图标后,拖动突出显示区域的角来调整大小。目前该工具中存在一些问题,你可能需要执行两次。

例如,下面的截图显示了将相同的图像裁剪,以便光源位于左上角。

请参考面部和帽子的左侧,比之前的图像更亮。

同样地,使用光源位于左下角,从底部左侧照亮图像。

或者使用更高对比度的对角光。

以下是一些光源图案的示例。

使用它们就可以不需要针对某个区域进行修改而实现所需的光线效果。

你可以不使用深度控制模型。而可以使用其他模型,如 cannyline art realistic。尝试不同的预处理器,看看哪个适合你。

如果看到不自然的颜色,请降低 Controlnet weight。调整降噪强度并观察效果。

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

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

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

这篇关于在 Stable Diffusion 中控制光线的三种方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069541

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处