Stable Diffusion 提示词技巧

文章目录

  • 背景介绍
  • 如何写好提示词
    • 提示词的语法
    • 正向提示词
    • 负向提示词

随着AI技术的不断发展,越来越多的新算法涌现出来,例如Stable Diffusion、Midjourney、Dall-E等。相较于传统算法如GAN和VAE,这些新算法在生成高分辨率、高质量的图片方面表现更加卓越,把 AI 图像生成又提升了一个新的高度,AI图像生成对各行各业都带来了很重要的影响。如 Stable Diffusion 技术只需要通过设计好的文字来生成所需要的图片,而这些文字我们称为 提示词,故提示词的设计也决定着生成图片的质量。

背景介绍

Stable Diffusion是一个基于Latent Diffusion Model(LDM)的文生图AI模型,核心思想就是通过不断调整图像的隐式表示,逐渐接近真实图像。其具体实现方式是,将初始噪声向量通过一个潜空间网络转换为图像的隐式表示。然后,针对每个时间步,利用扩散过程逐渐优化该表示,使其逼近真实图像的隐式表示。最终,通过一个反向变换,将该隐式表示转换为生成的图像。

相比传统的生成模型,Stable Diffusion生成的图像质量更高、速度更快、成本更低。具体来说,Stable Diffusion能够在消费级显卡上实现图像生成,而且生成速度比传统的生成模型提高了30倍。这使得Stable Diffusion成为当前最先进的生成模型之一,并受到了广泛关注。
Demo体验:https://stablediffusionweb.com/#demo

如何写好提示词

一般情况下,Stable Diffusion模型的提示词都包含正向提示词和负向提示词,所谓提示词其实就是prompt,还有一些通俗的叫法如关键字、咒语、指令等。
在Stable Diffusion WebUI中可以看到下面两个框,就是用来填写正向提示词和负向提示词的。
在这里插入图片描述
所谓正向提示词就是告诉AI要生成哪些东西。而负向提示词 (Negative prompt) 告诉AI不要生成哪些东西。这里需要注意的一点是世界上的图片是无穷多的,所以生成出图片的风格及效果不仅仅和提示词有关系,和文生图模型的关系也很大,因此在使用提示词前要根据自己的需要挑选好适合的模型。

提示词的语法

在使用提示词进行图文生成时,会发现一些简单的提示词是由短语或单词构成的,而一些较复杂的提示词还包含一些括号,数字等,因此想更详细了解使用提示词,是需要掌握提示词的一些语法的。

1、首先需要注意的是所有的语法使用的符号都是英文字符,默认的提示词编写是使用逗号分分隔的。

2、越靠前的提示词权重越高,即生成的图片越符合前面提示词的要求,关键的提示词,要尽量往前放,但要注意关键词不要写太多,最多不超过75个。

3、英文括号表示增减权重,( ) 每用一次代表权重提高 1.1 倍,[ ] 每用一次代表权重降低 1.1 倍,当然可以在括号中实现降低权重的效果,即通过冒号 + 权重数值的方式。(需要注意的是括号是可以叠加的,但一般不建议)。
如:

(word) :将括号内的提示词权重提高 1.1 倍
((word)):将括号内的提示词权重提高 1.21 倍 (= 1.1 * 1.1)
[word]:将括号内的提示词权重降低 1.1 倍
(word:1.5):将括号内的提示词权重提高 1.5 倍
(word:0.25):将括号内的提示词权重减少4 倍(= 1 / 0.25)

tips:先选中要加权重的提示词,Ctrl + ⬆增加权重,Ctrl + ⬇减少权重。

4、控制生成不同内容的步数,语法为:[from:to:when]
其中,from表示前多少步采样的图片信息,to表示后多少步采样的信息,而when表示前者采样的步数,如果when的值为大于0的整数,则指的是步数,如果是大于0小于1的小数,则表示的是前者采样步数占总步数的百分比。(总步数就是通常为可选值)
举例:当采样步骤(Sampling steps)为20时,
[men:women:0.5]:表示前50%步(10步)画men,后50%步(10步)画women。
在这里插入图片描述

该用法的变体:

[to:when]//在设定的步数后开始绘制
[from::when]//在设定的步数后结束绘制
举例说明:

[tree:background:0.5]代表前50%步画树,后50%步画背景。
[tree:0.5]代表后50%步开始画树。
[tree::0.5]代表前50%步画树,然后到了50%步数就结束画树。

5、两个或多个提示词权重相同,用 大写 AND
在第2点中有说,越靠前的提示词权重越高,而AND可以使得两个或多个提示词权重保持一致。

a lion AND a bear

在这里插入图片描述

该语法支持指定权重值:默认权重值为 1,也可以指定每个提示词的权重,比如:

a lion :1.3 AND a cat :1.2 AND a bear :1.5

在这里插入图片描述

6、交替绘制
语法代表每隔一步换一个提示词交替绘制,此语法可以绘制出各种融合怪四不像。

如交替绘制狗和猫,可以用

[cat|dog]

在这里插入图片描述

正向提示词

想要写好正向提示词,一般需要考虑以下几个方面:
(1) 主体 subject
(2) 媒介 medium
(3) 画质 quality
(4) 风格 style
(5) 色调 color
(6) 光影 lighting
(7) 画家 Artist

1、考虑主体(subject)

角度:

低角度,广角,全景,全身,特写,无人机
low angle, wide-angle, panorama, full-body, close-up, drone

地点:

在一个空旷的广场上,在一座废墟城市里,在一个茂密的森林中
in an empty square, in a fallout city, in a dense forest

背景:

繁忙的大都市,日落余晖
Busy metropolis, Sunset glow

考虑面部表情,情绪

大笑、愤怒、伤心
laughing, contempt, angry

考虑氛围

mysterious, misty, spooky
神秘的,幽灵般的,模糊的

注意灵活使用脚本(Script)

X/Y plot:对比提示词,可以出多张图。可以横向对比多张图片,X/Y plot 需要选择Prompt S/R。
在这里插入图片描述

Matrix:在prompt中的某一个或多个词前面加| 并设置prompt Matrix,可以生成是否包含该关键词的两张或多张图片。
在这里插入图片描述

2、考虑媒介
什么样的画:比如油画、插图、电子画、照片
也可以用X轴去找不同的风格

插画,数码绘画,油画,摄影,木炭画,素描
illustration, digital painting, oil painting, photography, charcoal drawing, sketch

3、画质

4k, 8k, 64k, uhd, high quality

4、风格

印象派,超现实主义,波普艺术,超写实主义,现代主义,新艺术运动
impressionist, surrealist, pop art, hyperrealistic, Modernist,art nouveau

5、color

鲜艳的色彩,黑白
vivid color, black and white

6、Lighting

电影般的照明,柔和的照明,边缘光,昏暗照明
cinematic lighting, soft lighting, rim light, dimly lit

7、画家
Alphonse Mucha, greg rutkowski, rhads, trending on artstation, trending on deviant art

负向提示词

上面的例子中只写了正面提示词,但下面的负向提示词的字段都是空白。模型会尽可能地根据正面提示词画出想看到的内容,但如果不加负向提示词,模型还是会生成一些不想看到的内容。负面提示词和正面提示词是同等重要的,使用负面提示词也是生成迭代过程的一个重要环节。

故生图时常常还需要加入一些负向提示词,避免掉不好的结果。且AI绘图有时不会一次就算出好结果,所以还需要加上负向提示词来控制,尤其是大批量进行文生图的时候更为重要。

加入一些常见的「不好」的特征,例如:

丑陋,画得不好的手,画得很差的脚,画得差的脸,四肢多余,毁容,

ugly, poorly drawn hands, poorly drawn feet, poorly drawn face, extra limbs, disfigured,

加入影响画质特征的信息,例如:

变形, 低质、结构差、水印、签名、剪切、低对比度、曝光不足、曝光过度、艺术差、模糊

deformed, lowers, bad anatomy, , cut off, low contrast, underexposed, overexposed, bad art, blurry,

加入不想看到的东西加进去,例如:

not safe for word,武器,血液,签名,水印,

nsfw, weapon, blood, watermark, signature

值得参考的提示词网站
若使用的是SD模型,想生成真人,请看 Voldy整理的历史上有名的艺术家。

若使用动漫风的模型请看 Danbooru图库的标签决定要下哪些提示词。

Prompt Generator和 NovelAI魔导书可以协助你组合提示词。

Civitai除了下载模型外,还有很多现成的提示词搭配模型的范例可以照抄。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gazebo仿真环境下的强化学习实现

Gazebo仿真环境下的强化学习实现 主体源码参照《Goal-Driven Autonomous Exploration Through Deep Reinforcement Learning》 文章目录 Gazebo仿真环境下的强化学习实现1. 源码拉取2. 强化学习实现2.1 环境2.2 动作空间2.3 状态空间2.4 奖励空间2.5 TD3训练 3. 总结 1. 源码…

HTTP协议详解:互联网通信背后的规则与秘密

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、HTTP协议的基本概念 二、HTTP协议的主要特…

web题型

本文在别人的基础上对于一些地方做了一点补充 0X01 命令执行 漏洞原理 没有对用户输入的内容进行一定过滤直接传给shell_exec、system一类函数执行 看一个具体例子 cmd1|cmd2:无论cmd1是否执行成功,cmd2将被执行 cmd1;cmd2:无论cmd1是否执行成功,cm…

SpringBoot项目(jar)部署,启动脚本

需求 SpringBoot项目(jar)部署,需要先关闭原来启动的项目,再启动新的项目。直接输入命令,费时费力,还容易出错。所以,使用脚本启动。 脚本 脚本名:start.sh 此脚本需要放置在jar包…

【算法】递归的概念、基本思想

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

JavaScript Web APIs-01学习

复习&#xff1a; splice() 方法用于添加或删除数组中的元素。 **注意&#xff1a;**这种方法会改变原始数组。 删除数组&#xff1a; splice(起始位置&#xff0c; 删除的个数) 比如&#xff1a;1 let arr [red, green, blue] arr.splice(1,1) // 删除green元素 consol…

ASUS华硕VivoBook15笔记本V5200EA_X515EA原装出厂Win11预装OEM系统

华硕11代酷睿笔记本电脑VivoBook_ASUSLaptop X515EA_V5200EA原厂Windows11系统 自带显卡、声卡、网卡、蓝牙等所有驱动、出厂主题壁纸、Office办公软件、华硕电脑管家MyASUS、迈克菲等预装程序 链接&#xff1a;https://pan.baidu.com/s/1yAEdA7aiuHK4CTdGLlSOKw?pwdo45a …

Azure - AzCopy学习

使用 AzCopy 将本地数据迁移到云存储空间 azcopy login 创建存储账号 ./azcopy login --tenant-id 40242385-c249-4746-95dc-4a0b64d49dc5这里的—tenant-id 在下面的地方查看&#xff1a;目录 ID&#xff1b;需要拥有Storage Blob Data Owner 的权限账号下可能会有很多目录&am…

编译工具:CMake(六) | 使用外部共享库和头文件

编译工具&#xff1a;CMake&#xff08;六&#xff09; | 使用外部共享库和头文件 步骤引入头文件搜索路径为 target 添加共享库 步骤 在/Compilation_tool/cmake 目录建立 t4 目录 建立src目录&#xff0c;编写源文件main.c&#xff0c;内容如下&#xff1a; #include <…

RabbitMQ入门

1、RabbitMQ概念简介 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;用来通过普通协议在完全不同的应用之间共享数据&#xff0c;RabbitMQ是使用Erlang语言来编写的&#xff0c;并且RabbitMQ是基于AMQP协议的。 AMQP协议模型 AMQP全称&#xff1a;Advanced Message Q…

浅探Android 逆向前景趋势~

前段时间&#xff0c;我和朋友偶然间谈起安卓逆向&#xff0c;他问我安卓逆向具体是什么&#xff0c;能给我们带来什么实质性的东西&#xff0c;我也和朋友大概的说了一下&#xff0c;今天在这里拿出来和大家讨论讨论&#xff0c;也希望帮助大家来了解安卓逆向。 谈起安卓逆向…

Annual Inspection

机动车年检流程【交警12123】APP 到【检查地方】门口墙上贴着 然后上缴钥匙&#xff0c;等待&#xff0c;本次等待不到半小时搞定&#xff0c;速度很满意&#xff0c; 发现检测人员把你的里程数纠正了。 给你的行驶证&#xff0c;打印这些字样&#xff1a;检验有效期至XXXX 再给…

WebGPU助力客户端Crypto/ZK

1. 引言 前序博客&#xff1a; CUDA入门WebGPUZKP&#xff1a;客户端证明WebGPU入门 正如Personae Labs团队2022年11月博客 Efficient ECDSA & the case for client-side proving 中所指出&#xff1a; 仅适用于高端笔记本电脑的5分钟证明生成时长&#xff0c;远不是可行…

Leetcode: 1. 两数之和 【题解超详细】

前言 有人夜里挑灯看花&#xff0c;有人相爱&#xff0c;有人夜里开车看海&#xff0c;有人leetcode第一题都做不出来。 希望下面的题解可以帮助你们开始 你们的 leetcode 刷题 的 天降之路 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中…

【ES6】Promise的入门介绍

Promise 是 JavaScript 中的一个对象&#xff0c;用于处理异步操作。Promise 对象代表一个最终可能完成&#xff08;并得到结果&#xff09;或失败&#xff08;并被拒绝&#xff09;的操作&#xff0c;以及其结果的值。 一个 Promise 有三种状态&#xff1a; Pending&#xf…

基于costas环的载波同步系统matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................................ I_Dataroun…

Spring-5.0.x源码下载及本地环境搭建

一、Spring源码下载 从github上下载Spring的源代码 下载地址&#xff1a;https://github.com/spring-projects/spring-framework 访问地址之后&#xff0c;打开Spring的代码页面找到你想下载的版本&#xff0c;如5.0.x&#xff0c;如下图所示&#xff1a; 下载方式一&#x…

java+jsp+servlet+mysql蛋糕商城

项目介绍&#xff1a; 本系统为基于jspservletmysql的蛋糕商城&#xff0c;包含管理员和用户角色&#xff0c;用户功能如下&#xff1a; 用户&#xff1a;注册、登录系统&#xff1b;查看商品分类&#xff1b;查看热销、新品商品&#xff1b;查看商品详情&#xff1b;搜索商品…

电磁式电压互感器直流电阻测试

试验目的 测量电磁式电压互感器直流电阻的目 的是检查其一次、 二次绕组的质量及回路的完整性&#xff0c; 以发现各种原因所造成的导线断裂、 接头开焊、 接触不良、 匝间短路等缺陷。 试验设备 变压器直流电阻测试仪 厂家&#xff1a; 湖北众拓高试 试验方法 一次绕组直流…

C++信息学奥赛1177:奇数单增序列

#include<bits/stdc.h> using namespace std; int main(){int n;cin>>n; // 输入整数 n&#xff0c;表示数组的大小int arr[n]; // 创建大小为 n 的整型数组for(int i0;i<n;i) cin>>arr[i]; // 输入数组元素for(int i0;i<n;i){ // 对数组进行冒泡排序f…