Stable Diffusion如何生成高质量的图-prompt写法介绍

news/2024/5/16 21:32:57

文章目录

  • Stable Diffusion
  • 使用
    • 尝试下效果
    • prompt的编写技巧
      • prompt 和 negative prompt
      • Prompt格式
      • Prompt规则细节
      • 优化
      • Guidance Scale
  • 总结

Stable Diffusion

Stable Diffusion是一个开源的图像生成AI系统,由Anthropic公司开发。它基于 Transformer模型架构,可以通过文字描述生成高质量的图像。
Stable Diffusion的主要特点包括:

  • 强大的图像生成能力。它可以根据文本描述生成非常逼真的图像,包括人物、风景、动物等各种主题。
  • 对文本的理解能力强。它可以捕捉文本描述的关键信息,转换为视觉上的表现。
  • 生成图像分辨率高。它可以生成512x512甚至1024x1024像素的高分辨率图像。
  • 开源且易于使用。它建立在开源框架PyTorch等基础上,可以轻松地在GPU及普通电脑上运行。
  • 训练数据量大。它的训练数据集包含大量高质量图像,这是它强大能力的重要基础。
  • 结果多样化。每次输入相同提示,它都可以生成略有不同的结果,增加了结果的多样性。
  • 控制能力强。用户可以通过调整文字提示、超参数等方式控制生成结果。

Stable Diffusion是一种潜在扩散模型(Latent Diffusion Model),能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。简单地说,我们只要给出想要的图片的文字描述在提Stable Diffusion就能生成符合你要求的逼真的图像。Stable Diffusion作为新兴的AI生成模型,拥有强大的图像生成能力,是目前最先进的开源生成模型之一,值得关注。它的出现将推动创作界发生革命性的变化。

使用

尝试下效果

prompt:beautiful girl,bikini,sea,beach,sunshine

生成的效果如下:
在这里插入图片描述

效果不太好,我们来学习下prompt如何编写,再看看改善效果。

prompt的编写技巧

prompt 和 negative prompt

在这里插入图片描述

描述语分为正向/负向描述,它们也叫tag(标签)或prompt(提示词)
正面提示词:相比Midjourney,SD需要写得更精准和细致,描述少就给AI更多自由发挥空间。
负面提示词:不想让SD生成的内容。
正向:masterpiece, best quality, 画质词,画面描述。
反向:根据画面产出加不想出现的画面。

Prompt格式

第一段:画质tag,画风tag
第二段:画面主体,主体强调,主体细节概括(主体可以是人、事、物、景)画面核心内容
第三段:画面场景细节,或人物细节,embedding tag。画面细节内容
第二段一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等

Prompt规则细节

  1. 提示词的顺序决定了权重的大小,越靠前的词汇权重越大,会对图像生成产生更直接的影响。
  2. 生成图片分辨率越大,需要的提示词量也越多,否则不同的提示词会产生不一致的效果,相互干扰。
  3. 使用括号可以精确调整单个词的权重值,提高或降低其对图像生成的影响程度。常用的权重调整范围建议控制在0.25到1.5之间,避免超出这个范围带来负面效果。
    方法如下:
    (word) - 将权重提高 1.1 倍
    ((word)) - 将权重提高 1.21 倍(= 1.1 * 1.1)
    [word] - 将权重降低至原先的 90.91%
    (word:1.5) - 将权重提高 1.5 倍
    (word:0.25) - 将权重减少为原先的 25%
    请注意,权重值最好不要超过 1.5

优化

根据上面的规则我们来改下下prompt

A beautiful young girl standing in the shallow seawater on a sunny tropical beach. She has long wavy blonde hair flowing in the ocean breeze. She's wearing a red floral bikini which compliments her tanned skin tone. Her fit athletic body is perfectly framed in this scene. She has a bright, energetic smile on her face as she's enjoying the warm ocean water washing over her feet. The background is a picturesque tropical beach scene with white sand, palm trees, and turquoise blue water sparkling in the bright sunlight stretching out to the horizon. This is a perfect summer beach day. The overall color tone is vibrant and cheerful. The girl looks natural, elegant, and carefree. This is a high quality, photorealistic image.

报错

“Unsafe content found”

继续优化

"A cheerful young woman smiling and having fun at the beach. She has long, dark brown hair blowing casually in the tropical breeze. She's dressed appropriately in a blue floral one-piece swimsuit. Posing happily on the shore, with one hand up to her forehead to shade her eyes. Behind her is a beautiful scenic view of bright turquoise waves gently lapping against the sandy shore. In the background, the wide open clear blue sky meets the ocean horizon. Palm trees and green vegetation dot the landscape. The sunlight is bright and warm. This is a high quality, idyllic summer beach scene."

主要修改的点包括:

  1. 使用积极正面词语 como “cheerful”,“having fun”,“happily”,移除可能引起歧义的词汇。
  2. 将比基尼改为更保守的连体泳衣。
  3. 去掉只描写女孩的语句,加上与海滩景色的衔接。
  4. 增加阳光、植被等宁静自然的元素。
  5. 使用专业的视觉描述词语如“idyllic”,“scenic”等。
  6. 强调图像质量要高,内容要正面积极。
  7. 避免可能引起歧义或联想的表达。

看效果
在这里插入图片描述
很明显,改善很明显…… 哈哈哈哈哈哈哈 (如果被吓到实在不好意思,我也有点看恐怖片的感觉)

上面这些图是因为我Guidance Scale的参数设置太低了。

Guidance Scale

Stable Diffusion 模型中的 Guidance Scale 参数是调整文本提示(Text Prompt)对图像生成影响力的一个重要超参数。
Guidance Scale 参数的主要作用是:

  1. 控制文本提示的重要性:
  • 参数值越高,文本提示的影响就越大,生成图片会越关注文本提示的要求。
  • 参数值越低,文本提示影响减弱,生成图片会更具原创性和多样性。
  1. 平衡文本提示和训练数据:
  • 参数值越高,依赖文本提示的信息更多,训练数据的影响被压制。
  • 参数值越低,训练数据的信息起主导作用,文本提示只起辅助影响。
  1. 调节生成图片质量:
  • 适当的Guidance Scale可以帮助生成更高质量的图片。
  • 参数过大或过小,都可能导致生成图片质量下降。
    通常Guidance Scale的取值范围在1-20之间。默认值是7,这是一个比较平衡的设置。使用时可以通过调整这个参数,来实现对生成图片的精细控制。
    Guidance Scale直接影响文本提示的作用强度,是Stable Diffusion中非常重要的一个生成控制超参数。

我们来调整下Guidance Scale参数
在这里插入图片描述

改后的效果如图(我实在不知道怎么修改CSDN才不违规了,一个连体泳衣都违规,其他平台都正常显示,只能马赛克了):

在这里插入图片描述

在这里插入图片描述

总结

想要用Stable Diffusion生成高质量的图片,避免生成低质量的“烂图片”,可以注意以下几点:

  1. 使用合理的提示词(Prompt)
  • 提示词要简洁明确,避免歧义。important信息前置。
  • 添加合适的描述词帮助生成细节。如大小,颜色,质感等。
  • 使用正确的英文语法和拼写。
  • 避免使用负面和敏感词汇。
  1. 调整超参数
  • 适当调高 Guidance Scale,加强提示词影响力。
  • 调整 Steps(迭代次数)不要过少,一般100-200。
  • 调试不同的 Sampler,如DDIM较平滑。
  1. 使用高质量训练数据
  • 大型模型效果更好,如Stable Diffusion v2。
  • 尝试不同主题的训练数据,匹配生成目标。
  1. 生成分辨率不要过低
  • 分辨率过低会造成图片质量下降。
  • 一般选择512x512 或更高分辨率。
  1. 复核和选择图片
  • 生成多张样本图片,挑选效果最佳的。
  • 检查合理性,删除离题图像。
    通过以上方法,可以最大程度地避免Stable Diffusion生成不理想的低质量图片。但过程中也需要一定的试错尝试,以找到最佳设置。

http://www.mrgr.cn/p/22374345

相关文章

学习笔记|大模型优质Prompt开发与应用课(二)|第五节:只需3步,优质Prompt秒变应用软件

原作者:依依│百度飞桨产品经理 一乔│飞桨开发者技术专家 分享内容 01:大模型应用简介 02:LLM应用开发范式 03: Al Studio大模型社区 04:AI对话类应用开发技巧 大模型技术爆发,各类应用产品涌现 文心产业级知识增强大模型 工作中的“超级助手”—…

一文谈谈Git

"And if forever lasts till now Alright" 为什么要有git? 想象一下,现如今你的老师同时叫你和张三,各自写一份下半年的学习计划交给他。 可是你的老师是一个极其"较真"的人,发现你俩写的学习计划太"水&…

MySQL5.7 与 MariaDB10.1 审计插件兼容性验证

这是一篇关于发现 MariaDB 审计插件导致 MySQL 发生 crash 后,展开适配验证并进行故障处理的文章。 作者:官永强 爱可生DBA 团队成员,擅长 MySQL 运维方面的技能。热爱学习新知识,亦是个爱打游戏的宅男。 本文来源:原创…

简单认识redis高可用实现方法

文章目录 一、redis群集三种模式二、 Redis 主从复制1、简介2、作用:3、流程:4.配置主从复制 三、Redis 哨兵模式1、简介2、原理:3、作用:4、哨兵结构由两部分组成,哨兵节点和数据节点:5、故障转移机制:6、…

软件外包开发的后台开发语言

在软件外包开发中,后台语言的选择通常取决于项目需求、客户偏好、团队技能和开发效率。今天和大家分享一些常用的后台语言及选择它们的原因,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。…

【利诱和强制分享下载】规则修改指引

代码审核环节,将会对小程序运营的内容进行核实是否存在阻断功能,损害用户体验。 常见利诱诱导类型: 1、利诱下载APP 小程序内出现不断弹窗、频繁提示诱导用户下载APP,强制用户必须下载APP才能体验完整功能服务。 示例&#xf…

数字化时代,如何做好用户体验与应用性能管理

引言 随着数字化时代的到来,各个行业的应用系统从传统私有化部署逐渐转向公有云、行业云、微服务,这种变迁给运维部门和应用部门均带来了较大的挑战。基于当前企业 IT 运维均为多部门负责,且使用多种运维工具,因此,当…

【Spring】Spring 中事务的实现

事务定义:将⼀组操作封装成⼀个执⾏单元(封装到⼀起),要么全部成功,要么全部失败 Spring 中的事务操作分为两类: 编程式事务(⼿动写代码操作事务)。声明式事务(利⽤注解…

【hive】Install hive using mysql as hive metadata service

文章目录 一. Requirements二. Installing Hive from a Stable Release三. Running Hive四. Running Hive CLI五.Running HiveServer2 and Beeline1. 下载安装mysql2. 下载mysql驱动3. 配置hive-site.xml4. 初始化元数据库5. 通过beeline进行连接 一. Requirements Users are s…

php 生成连续递增的Excel列索引 可以控制多少列

今天遇到需要生成对应的下拉&#xff0c;下拉的类 需要PHP 输出一个数组 如 A、B、C、D 到Z 列后 Excel 的列就变成 AA 、AB、 AC 依次类推 查询得知 Excel 最大列数 16384 最大行数 1048576 下面演示3000列或行 <?php$idx [idx > 0];for ($i …

OpenCV4.3 Java 编程入门:透明度与抠图

1. 基础知识 JPG 格式图片有损压缩和不支持半透明&#xff0c;如果想在图片上添加透明通道&#xff0c;一定不要用 JPG 格式的图片&#xff1b;PNG&#xff1a;既支持3通道RGB图像&#xff0c;也支持4通道RGBA图像&#xff08;红色、绿色、蓝色和透明度&#xff09;&#xff1…

NOSQL之Redis配置及优化

目录 一、关系型数据库 二、非关系型数据库 三、关系型数据库和非关系型数据库区别 1、数据存储方式不同 2、扩展方式不同 3、对事务性的支持不同 四、Redis简介 五、Redis优点 &#xff08;1&#xff09;具有极高的数据读写速度 &#xff08;2&#xff09;支持丰富的…

AI 绘画Stable Diffusion 研究(一)sd整合包v4.2 版本安装说明

部署包作者:秋葉aaaki 免责声明: 本安装包及启动器免费提供 无任何盈利目的 大家好&#xff0c;我是风雨无阻。众所周知&#xff0c;StableDiffusion 是非常强大的AI绘图工具&#xff0c;需要详细了解StableDiffusion的朋友&#xff0c;可查看我之前的这篇文章&#xff1a; 最…

9条建议告诉你如何正确处理PCB设计布线

一、关于PCB布线线宽 1、布线首先应满足工厂加工能力&#xff0c;首先向客户确认生产厂家&#xff0c;确认其生产能力&#xff0c;如图1所示。如客户无要求&#xff0c;线宽参考阻抗设计模板。 图1 PCB板厂线宽要求 2、阻抗模板&#xff0c;根据客户提供的板厚及层数要求&…

页面生成图片或PDF node-egg

没有特别的幸运&#xff0c;那么就特别的努力&#xff01;&#xff01;&#xff01; 中间件&#xff1a;页面生成图片 node-egg 涉及到技术node egg Puppeteer 解决文书智能生成多样化先看效果环境准备初始化项目 目录结构核心代码 完整代码https://gitee.com/hammer1010_ad…

[论文笔记] CLRerNet: Improving Confidence of Lane Detection with LaneIoU

Honda, Hiroto, and Yusuke Uchida. “CLRerNet: Improving Confidence of Lane Detection with LaneIoU.” arXiv preprint arXiv:2305.08366 (2023). 2023.05 出的一篇车道线检测的文章, 效果在CULane, CurveLanes SOTA 文章目录 简介LaneIoULineIoU存在问题为什么使用LaneIo…

06. 管理Docker容器数据

目录 1、前言 2、Docker实现数据管理的方式 2.1、数据卷&#xff08;Data Volumes&#xff09; 2.2、数据卷容器&#xff08;Data Volume Containers&#xff09; 3、简单示例 3.1、数据卷示例 3.2、数据卷容器示例 1、前言 在生产环境中使用 Docker&#xff0c;一方面…

记一次sql注入分析与绕过【一】

下面是来自今天的项目&#xff0c;简单记录一下 手工注入 加单引号sql报错 sql语句如下&#xff0c;可见参数id原本未被引号包裹 SELECT DISTINCT u.* FROM t_user u WHERE u.name like %1% and u.account like %1% and u.state ? order by id desc limit 0,20 多方尝试…

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GRNN广义回归神经网络多输入单输出回归…

Android 面试题 应用程序结构 九

&#x1f525; 核心应用程序 Activity五个状态&#x1f525; Starting-> running-> paused-> stopped-> killed 启动状态&#xff08;Starting&#xff09;&#xff1a;Activity的启动状态很短暂&#xff0c;当Activity启动后便会进入运行状态&#xff08;Running…