在stable diffussion中控制生成图片的光线
在摄影中,光线起着至关重要的作用,它对图像的整体质量和氛围有着显著的影响。您可以使用光线来增强主题,创造深度和维度,传达情感,以及突出重要细节。
在这篇文章中,我会告诉你如何在stable diffussion中控制生成图片的光线。
软件
我们将使用 AUTOMATIC1111 Stable Diffusion GUI 来创建图像。
使用光线关键词
最简单的控制光线的方法就是在提示中添加光线关键词。
我将使用以下基础提示和负面提示来说明效果。
正向提示词:
masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,
负向提示词:
lowers,monochrome,grayscales,skin spots,acnes,skin blemishes,age spot,6 more fingers on one hand,deformity,bad legs,error legs,bad feet,malformed limbs,extra limbs,
模型:majicmixRealistic_v7
宽度:512
高度:768
CFG 刻度:7
下面是使用基础提示词生成的图片,他们看起来还不错,但是光线就不怎么样了。
Volumetric lighting是在图像上明显的光束。它在摄影中用于增加体积感。
在提示中添加关键词Volumetric lighting:
rim lighting为主题添加了明亮的轮廓。它可能会使主题变暗。您可以与其他光线术语结合使用以照亮主题。
在提示中添加关键词rim lighting:
Sunlight为图像添加了阳光。它倾向于呈现自然背景。
在提示中添加关键词Sunlight。
Backlight将光源置于主题之后。通过添加这个关键词,您可以产生一些时尚的效果。
在提示中添加Backlight。
众所周知,Stable Diffusion 在没有引导的情况下不会产生黑暗的图像。
解决这个问题的方法有很多,包括使用模型和 LoRA。但更简单的方法是添加一些昏暗的光线关键词。
在提示中添加dimly lit。
Crepuscular rays在云层中添加了光线穿透的光线。它可以创造出令人惊叹的视觉效果。
这个提示和肖像宽高比通常呈现全身图像,添加Crepuscular rays会放大。
技巧:
如果您没有看到效果,请增加关键词的权重。
这些光线关键词并不总是有效。一次生成几张图像进行测试。
在提示生成器中找到更多的光线关键词。
控制特定区域的光线
提示中的光线关键词适用于整个图像。这里我会告诉你如何控制特定区域的光线。
这里你需要安装一个插件叫做regional Prompter。
下载地址如下: https://github.com/hako-mikan/sd-webui-regional-prompter.git
安装好之后,可以在工作区的下方发现这个Regional Prompter的区域。
在这个例子中,我们将对图像的上部和下部应用不同的光线。
在txt2img页面上,展开regional Prompter部分。
按我上面的选择进行设置。
基本上含义就是把图片按2:3的比例分割成两部分,来分别进行promot设置。
regional Prompter是一个非常强大的工具,可以产出非常惊艳的效果。我会在后续的文章中详细介绍regional Prompter。
这里只是作为一个使用场景。
我们改下输入提示:
正向提示词:
masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,
BREAK
( hard light:1.2),(volumetric:1.2),well-lit,
BREAK
(dimly lit:1.4),
负面提示词保持不变。
这样我们的到了一个上面光亮,下面昏暗的图片。
现在尝试交换光线分配。
masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,
BREAK
(dimly lit:1.4),
BREAK
( hard light:1.2),(volumetric:1.2),well-lit,
光线相应地交换。
技巧:
如果您没有看到效果,请调整关键词的权重。
区域提示并不总是100%有效。可以多尝试一些图片看看效果。
使用 ControlNet 控制光线
除了上面的提示词和regional Prompter来控制光线之外。我们还可以使用controlNet来对图片的光线进行更加精确的控制。
controlNet是一个单独的插件,所以你需要先安装它。
Txt2img 设置
安装好controlNet之后,在txt2img页面上,像平常一样生成图像。
点击发送到 img2img。
这个操作会把所有的提示,负面提示,图像大小和种子值拷贝到 img2img 页面。
Img2img 设置
在img2img页面上,导航到 ControlNet 部分。
将您刚刚保存的图像上传到ControlNet 单元 0。
大家可以使用我的配置选项。
这里我们需要选择Depth模型,在preprocessor中选择depth_zoe,model选择control_xxxx_depth。
向上滚动到img2img 画布。删除图像。
然后使用画图工具绘制一个黑白的模板图。
白色代表光线。
如下所示:
把这个图像上传到img2img 画布。
将调整大小模式设置为仅调整大小。
将去噪强度设置为 0.9。
点击生成。
您应该得到带有横向光源的图像。
如果你不想创建自己的光源,那么可以baidu一下黑白光源图片:
比如第一张光源图片,我们可以得到下面的图片:
备注
不一定必须使用深度控制模型。其他模型,如 canny 和lineart模型,也可以工作。你可以尝试使用预处理器,看看哪一个适合你。
如果您看到不自然的颜色,请减少Controlnet 权重。
调整去噪强度并观察效果。
点我查看更多精彩内容:www.flydean.com
在stable diffussion中控制生成图片的光线的更多相关文章
- Java经典实例:在正则表达式中控制大小写
默认是:区分大小写的: 传递标志参数:Pattern.CASE_INSENSITIVE,以说明匹配时忽略大小写:如果你的代码运行在不同的地区那么你应该再添加一个Pattern.UNICODE_CASE ...
- android开发之在activity中控制另一个activity的UI更新
转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法: 遇到一个问题,需要在一个activity中控制另一个acitivit ...
- <td style="word-break:break-all"> 在html中控制自动换行
在html中控制自动换行 其实只要在表格控制中添加一句 <td style="word-break:break-all">就搞定了. 其中可能对英文换行可能会分开一 ...
- 深度分析如何在Hadoop中控制Map的数量
深度分析如何在Hadoop中控制Map的数量 guibin.beijing@gmail.com 很多文档中描述,Mapper的数量在默认情况下不可直接控制干预,因为Mapper的数量由输入的大小和个数 ...
- 在代码中控制UI界面
虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者完全抛弃XML布局文件,完全在Java代码中控制UI界面. 实例:用编程的方式开发UI界面 packa ...
- JFinal配合Shiro权限控制在FreeMarker模板引擎中控制到按钮粒度的使用
实现在FreeMarker模板中控制对应按钮的显示隐藏主要用到了Shiro中的hasRole, hasAnyRoles, hasPermission以及Authenticated等方法,我们可以实现T ...
- 【Spark篇】---Spark中控制算子
一.前述 Spark中控制算子也是懒执行的,需要Action算子触发才能执行,主要是为了对数据进行缓存. 控制算子有三种,cache,persist,checkpoint,以上算子都可以将RDD持久化 ...
- C#的winform中控制TextBox中只能输入数字
C#的winform中控制TextBox中只能输入数字 private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPr ...
- 在C#中控制ListBox某一行的字体颜色
例1 private void Form1_Load(object sender, EventArgs e) { listBox1.Items.Add("红色"); listBox ...
- 直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章
直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章_e-works数字化企业网 http://articles.e-works.net.cn/Component/Article ...
随机推荐
- 拆解LangChain的大模型记忆方案
之前我们聊过如何使用LangChain给LLM(大模型)装上记忆,里面提到对话链ConversationChain和MessagesPlaceholder,可以简化安装记忆的流程.下文来拆解基于Lan ...
- C++11标准库<chrono><future> <atomic><condition_variable><mutex><thread>梳理 (5万字)
<chrono> C++11中提供了日期和时间相关的库chrono. chrono库主要包含三种类型的类:时间间隔duration.时钟clocks.时间点time point. 时间间隔 ...
- Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯
巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信. 通过使用巴图 ...
- oeasy教您玩转vim - 5 - # 插入模式
插入模式 回忆上节课内容 我们总结了,模式切换的方式 命令模式 Normal mode 底线命令行模式 Command mode 帮助文件的正确打开方式 :h 在文档中使用鼠标 set mouse=a ...
- JVM系列(一) -浅谈虚拟机的成长史
一.摘要 众所周知,Java 经过多年的发展,已经从一门单纯的计算机编程语言,发展成了一套成熟的软件解决方案.从互联网到企业平台,Java 是目前使用最广泛的编程语言. 以下这段内容是来自 Java ...
- 暑假java自学进度总结03
一.今日所学: 1.标识符命名规则: 必须: 1>由数字,字母,下划线,美元符组成: 2>不能以数字开头: 3>不能是关键字: 4>区分大小写: 建议: 1>命名方法,变 ...
- pip升级导致报错:pip消失
pip升级导致报错:pip消失 在安装Jupyter Notebook的时候需要用首先更新pip,如下: 使用以下命令更新pip和安装Jupyter pip3 install --upgrade pi ...
- (二)MongoDB的在SpringBoot中的应用
我来填之前MongoDB的坑了,项目中又用到MongoDB的我又想起来了,我这拖延症也是没谁了. 1.在pom.xml中引入依赖 <dependency> <groupId>o ...
- 从.net开发做到云原生运维(六)——分布式应用运行时Dapr
1. 前言 上一篇文章我们讲了K8s的一些概念,K8s真的是带来了很多新玩法,就像我们今天这篇文章的主角Dapr一样,Dapr也能在K8s里以云原生的方式运行.当然它也可以和容器一起运行,或者是CLI ...
- jax框架的官方编译版本 —— 预编译发行版本(release 列表)
jax框架的Google官方给出的预编译版本,支持CUDA和CUDNN的,带有python版本号,CUDA版本号,CUDNN版本号的: https://storage.googleapis.com/j ...