在 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

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

前端form表单+ifarme方式实现大文件下载

// main.jsimport Vue from 'vue';import App from './App.vue';import { downloadTokenFile } from '@/path/to/your/function'; // 替换为您的函数路径// 将 downloadTokenFile 添加到 Vue 原型上Vue.prototype.$downloadTokenF

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注