【AIGC】prompt工程从入门到精通--图片生成专题

本文为系列教程【AIGC】prompt工程从入门到精通的子教程。

一、介绍

与文本提示相比,找到最佳的提示词来生成完美的图片并没有那么成熟。这可能是因为创建对象自身的挑战,这些对象基本上是主观的并且往往缺乏良好的准确性度量方法。

本指南涵盖了基本的图像提示技术,并且我们强烈建议您查看本章末尾的优秀资源。

二、大模型作图工具

图片生成工具主要由Midjourney(MJ)、Stable Diffusion(SD)与DALL-E三个主流算法延伸而来,他们的区别可以参考以下两篇文章:
Stable Diffusion、DALL-E 2、MidJourney的区别是什么?
理解DALL·E 2, Stable Diffusion和 Midjourney的工作原理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、DALL-E 3 重视逻辑

作图资源:官网
基于 GPT 架构,适合大部分日常工作流中,随时进行配图生成的创作。基于 GPT,允许我们以对话的形式去一步步生成我们想要的图像。而基于 GPT 的优秀理解能力,DALL-E 3 能理解复杂的细节对图像进行迭代。

DALL-E 2使用数以百万计的图片数据进行训练,其输出结果更加成熟,非常适合企业使用。当有两个以上的人物出现时,DALL-E 2产生的图像要比Midjourney或Stable Diffusion好得多。

2、Midjourney 重视创意

作图资源:官网
生成的图片极具美感,适合创意专业人士,比如艺术家、设计师等。MJ 由独立研究实验室Midjourney Inc.开发,利用生成对抗网络,架构在 Discord平台,能理解各种不同的艺术风格,不论是超现实主义、还是抽象化画作,都能通过文本提示进行生成。

Midjourney则是一个以其艺术风格闻名的工具。Midjourney使用其Discord机器人来发送以及接收对AI服务器的请求,几乎所有的事情都发生在Discord上。由此产生的图像很少看起来像照片,它似乎更像一幅画。

3、Stable Diffusion 重视控制

作图资源: r/StableDiffusion
适合批量生成相同风格类型的图片,比如淘宝店家的人像模特等。SD 基于潜在扩散模型,通过升噪降噪生成图像,能通过不同的大模型、lora、cn,对生成的图像风格、主体、服饰、动作、深度等做出强有力的控制。

Stable Diffusion 是一个开源的模型,人人都可以使用。它对当代艺术图像有比较好的理解,可以产生充满细节的艺术作品。然而它需要对复杂的prompt进行解释。Stable Diffusion比较适合生成复杂的、有创意的插图。但在创作一般的图像时就显得存在些许不足。

三、图片生成prompt

三大主流模型都是国外的,所以用英文写prompt是必备技能。

1. 风格校准器(Style Modifiers)

通常在rendered in(渲染)后填入需要渲染的风格。常用风格有:

photorealistic: 逼真的
by greg rutkowski: 作者:格雷格·鲁特科斯基
by christopher nolan: 克里斯托弗·诺兰
painting: 绘画
digital painting: 数字绘画
concept art: 概念艺术
octane render: 辛烷渲染
wide lens: 广角镜头
3D render: 3D渲染
cinematic lighting: 电影灯光
trending on ArtStation: ArtStation 上的热门话题
trending on CGSociety: CGSociety 上的趋势
hyper realist: 超现实主义者
photo: 照片
natural light: 自然光
film grain: 胶片颗粒

示例( DALLE):

pyramid

在这里插入图片描述

A pyramid made of glass, rendered in Unity and tinted red

在这里插入图片描述

2. 质量增强器(Quality Boosters)

“质量增强器”是添加到提示中以提高生成图像的某些非样式类型的质量术语,例如:“amazing”、“beautiful”和“good quality”都是质量增强器,可以用于改善生成图像的质量。

3. 重复

在提示中重复相同的词语或者类似短语会导致模型在生成的图片中强调该词语。但注意这种方法并不完美,使用权重(下一篇文章)通常是一个更好的选择。

A beautiful painting of a mountain next to a waterfall.

在这里插入图片描述

A very very very very very very very very very very very very very very very very very very very very very very beautiful painting of a mountain next to a waterfall.

在这里插入图片描述

A planet with aliens

在这里插入图片描述

A planet with aliens aliens aliens aliens aliens aliens aliens aliens aliens aliens aliens aliens

在这里插入图片描述

4. 加权

一些模型(如 Stable Diffusion、Midjourney 等)允许你对提示中的词语进行加权。这可以用于强调生成图片中的某些词语或短语。它还可以用于减弱生成的图片中某些词语或短语的影响。
示例(Stable Diffusion )

mountain

在这里插入图片描述

# 把树的权重设置为负数,所以它们不会出现在生成的图片中
mountain | tree:-10

在这里插入图片描述

A planet in space:10 | bursting with color red, blue, and purple:4 | aliens:-10 | 4K, high qualit

在这里插入图片描述

5. 修复变形生成

变形生成在许多模型中都是一个常见问题,特别是在人体部位(如手、脚)上。通过良好的negative prompt,可以在一定程度上解决这个问题。但是注意:这个技术并不是一直奏效,因此您可能需要多次尝试才能获得满意的结果。 未来,这种提示技术应该是不必要的,因为模型会不断改进。
在这里插入图片描述

示例(Stable Diffusion v1.5 ):

studio medium portrait of Brad Pitt waving his hands, detailed, film, studio lighting, 90mm lens, by Martin Schoeller:6

在这里插入图片描述
最新版:
在这里插入图片描述

studio medium portrait of Brad Pitt waving his hands, detailed, film, studio lighting, 90mm lens, by Martin Schoeller:6 
negative prompt: disfigured, deformed hands, blurry, grainy, broken, cross-eyed, undead, photoshopped, overexposed, underexposed, lowres, bad anatomy, bad hands, extra digits, fewer digits, bad digit, bad ears, bad eyes, bad face, cropped: -5

在这里插入图片描述
新版(反而有问题):
在这里插入图片描述

使用类似的反向提示语也可以帮助处理其他身体部位。

6. 镜头(shot)类型

镜头类型是指电影制作中用于捕捉场景内不同视角和视觉效果的各种摄像机角度和构图。场见的镜头类型包括:

Wide Shot/Establishing Shot: 广角镜头/定场镜头
Long Shot: 长镜头
Full Shot: 全景图
Medium Shot: 中景
Cowboy Shot: 牛仔镜头
Medium Close-Up: 中景特写
Close-Up: 特写
Extreme Close-Up: 极端特写
Two-Shot: 两次镜头
Over-the-Shoulder Shot: 过肩镜头
Point-of-View Shot (POV): 视点拍摄 (POV)
Reaction Shot: 反应镜头
Insert Shot: 插入镜头
Cutaway Shot: 剖面镜头
Low Angle Shot: 低角度拍摄
High Angle Shot: 高角度拍摄
Dutch Angle/Tilted Shot: 荷兰角/倾斜镜头
Aerial Shot: 空中拍摄
Tracking Shot: 追踪镜头
Dolly Shot: 多莉镜头
Steadicam Shot: 斯坦尼康拍摄
Crane Shot: 起重机镜头
Handheld Shot: 手持拍摄
Whip Pan Shot: 鞭盘镜头
Zoom Shot: 变焦拍摄
Rack Focus Shot: 机架对焦拍摄
Split Screen Shot: 分屏截图
Freeze Frame Shot: 定格拍摄
Slow Motion Shot: 慢动作镜头
Fast Motion Shot: 快速动作拍摄
Montage Shot: 蒙太奇镜头
Cross-Cutting Shot: 横切镜头
Bird's Eye View Shot: 鸟瞰图
Worm's Eye View Shot: 虫眼视图拍摄
Reverse Shot: 反向镜头
Reaction Shot: 反应镜头
Panning Shot: 平移拍摄
Tilt Shot: 倾斜拍摄
Follow Shot: 跟拍
Static Shot: 静态镜头
Establishing Drone Shot: 建立无人机拍摄
Underwater Shot: 水下拍摄
POV Drone Shot: POV 无人机拍摄
Crash Zoom Shot: 崩溃变焦镜头
Snorricam Shot: 斯诺里卡姆镜头
Tracking POV Shot: 追踪 POV 镜头
Vertigo Shot (Dolly Zoom): 眩晕镜头(移动变焦)
Flashback Shot: 闪回镜头
Flashforward Shot: 快闪镜头
Static Long Take Shot: 静态长镜头
astronaut standing in the street, Shot type, HD, 4K, --no blur, --no distortion

把上面"Shot type"替换后:
在这里插入图片描述

7. Midjourney使用

属于一个专门的专题,直接看原网页(或者后期我看需要单独出一版)。
注意其他绘图引擎的prompt技巧(比如前面讲的6点)同样适用于Midjourney.

使用连接:

https://learnprompting.org/docs/tooling/IDEs/intro#image-only-ides

NameHosted SolutionOpen SourceResearch FocusedBusiness ModelLaunchedModalitiesSupported Providers
DALL·EBuy CreditsText2ImageOpenAI DALLE
Dream StudioBuy CreditsText2ImageStable Diffusion
PatienceBuy CreditsText2ImageStable Diffusion, OpenAI
getimg.aiText2Image, AIEditor

三、 进阶方案

3.1 利用文本LLM生成作图llm的prompt

可参考:chatGPT生成Midjourney的prompt

参考

Image Prompting
Azure AI Services

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

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

相关文章

.NET 8 中 Android 资源生成的改进和变化

作者:Dean Ellis 排版:Alan Wang 随着 .NET 8 的发布,我们引入了一个新系统,用于生成访问 Android 资源的 C# 代码。 在 Xamarin.Android、.NET 6 和 .NET 7 中生成 Resource.designer.cs 文件的系统已经被弃用。 新系统生成一个名…

No Chromedriver found that can automate Chrome ‘x.x.xxxx‘的解决办法

一、前置说明 在使用Appium对Android设备自动化测试时,切换WebView时抛出异常: selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: No Chromedriver foun…

交叉验证以及scikit-learn实现

交叉验证 交叉验证既可以解决数据集的数据量不够大问题,也可以解决参数调优的问题。 主要有三种方式: 简单交叉验证(HoldOut检验)、k折交叉验证(k-fold交叉验证)、自助法。 本文仅针对k折交叉验证做详细解…

基于ssm vue个人需求和地域特色的外卖推荐系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项…

利用管道、信号量、信号、共享内存和消息队列进行多进程通信

一.管道(分为命名管道和匿名管道) 管道的特点: ①无论是命名管道还是匿名管道,写入管道的数据都存放在内存之中。 ②管道是一种半双工的通信方式(半双工是指终端A能发信号给终端B,终端B也能发信号给终端…

软件开发安全指南

2.1.应用系统架构安全设计要求 2.2.应用系统软件功能安全设计要求 2.3.应用系统存储安全设计要求 2.4.应用系统通讯安全设计要求 2.5.应用系统数据库安全设计要求 2.6.应用系统数据安全设计要求 软件开发全资料获取:点我获取

Linux 网络协议

1 网络基础 1.1 网络概念 网络是一组计算机或者网络设备通过有形的线缆或者无形的媒介如无线,连接起来,按照一定的规则,进行通讯的集合( 缺一不可 )。 5G的来临以及IPv6的不断普及,能够进行联网的设备将会是越来越多&#xff08…

vue 商品列表案例

my-tag 标签组件的封装 1. 创建组件 - 初始化 2. 实现功能 (1) 双击显示,并且自动聚焦 v-if v-else dbclick 操作 isEdit 自动聚焦: 1. $nextTick > $refs 获取到dom,进行focus获取焦点 2. 封装v-focus指令 (2) 失去焦点,隐藏…

用Rust刷LeetCode之66 加一

66. 加一[1] 难度: 简单 func plusOne(digits []int) []int { length : len(digits) // 从最低位开始遍历&#xff0c;逐位加一 for i : length - 1; i > 0; i-- { if digits[i] < 9 { digits[i] return digits } d…

【Mac】brew提示arch -arm64 brew以及uname返回x86_64的问题

背景 使用MacBook 14 M1 Pro两年了&#xff0c;自从使用了第三方Shell工具WindTerm后&#xff0c;使用brew时会提示我使用arch -arm64 brew安装&#xff0c;一开始没太在意&#xff0c;直到今天朋友问我uname -a返回的是什么架构&#xff0c;我才惊讶的发现竟然返回的是x86_64…

优化系统性能:深入性能测试的重要性与最佳实践

目录 引言 1. 为什么性能测试重要&#xff1f; 1.1 用户体验 1.2 系统稳定性 1.3 成本节约 1.4 品牌声誉 2. 性能测试的关键步骤 2.1 制定性能测试计划 2.2 确定性能测试类型 2.3 设计性能测试用例 2.4 配置性能测试环境 2.5 执行性能测试 2.6 分析和优化 2.7 回…

QT----Visual Studio打开.ui文件报错无法打开

问题 在我安装完qt后将它嵌入vs&#xff0c;后新建的文件无法打开ui文件 解决方法 右击ui文件打开方式,添加,程序找到你qt的安装目录里的designer.exe。点击确定再次双击就能够打开。

VMware提示:此虚拟机似乎正在使用中,取得该虚拟机的所有权失败错误的解决方案

当你遇到这个的时候是不是很疑惑&#xff0c;现在给你解决方案 step1: 先找到配置文件目录 D:\centOs7_mini\ 这里写成你的这个 step2: 在这个地方查找最后面是 .vmx.lck文件夹,然后进行修改、删除、移动都可以 step3: 去虚拟机那边重新启动就行

RabbitMQ-学习笔记(初识 RabbitMQ)

本篇文章学习于 bilibili黑马 的视频 (狗头保命) 同步通讯 & 异步通讯 (RabbitMQ 的前置知识) 同步通讯&#xff1a;类似打电话&#xff0c;只有对方接受了你发起的请求,双方才能进行通讯, 同一时刻你只能跟一个人打视频电话。异步通讯&#xff1a;类似发信息&#xff0c…

【mysql】下一行减去上一行数据、自增序列场景应用

背景 想获取if_yc为1连续账期数据 思路 获取所有if_yc为1的账期数据下一行减去上一行账期&#xff0c;如果为1则为连续&#xff0c;不等于1就为断档获取不等于1的最小账期&#xff0c;就是离当前账期最近连续账期 代码 以下为mysql语法&#xff1a; select acct_month f…

查看Linux的Ubuntu的版本

我的Ubuntu版本是 Jammy x86_64&#xff0c;即 Ubuntu 22.04.3 LTS&#xff0c;代号为"Jammy Jellyfish"&#xff0c;架构是 x86_64&#xff08;64位&#xff09;。

NLP自然语言处理学习笔记

参考&#xff1a;NLP&#xff08;自然语言处理&#xff09;介绍 - 知乎 (zhihu.com) 一、NLP是什么 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自…

最新版本——Hadoop3.3.6单机版完全部署指南

大家好&#xff0c;我是独孤风&#xff0c;大数据流动的作者。 本文基于最新的 Hadoop 3.3.6 的版本编写&#xff0c;带大家通过单机版充分了解 Apache Hadoop 的使用。本文更强调实践&#xff0c;实践是大数据学习的重要环节&#xff0c;也能在实践中对该技术有更深的理解&…

105.长度最小的子数组(力扣)|滑动窗口

代码演示 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int result INT_MAX; // 用于存储最小子数组的长度int sum 0; // 滑动窗口的长度int i 0; // 滑动窗口的起始位置int sumlength 0; // 当前子数…

深度学习与逻辑回归模型的融合--TensorFlow多元分类的高级应用

手写数字识别 文章目录 手写数字识别1、线性回归VS逻辑回归Sigmoid函数 2、逻辑回归的基本模型-神经网络模型3、多元分类基本模型4、TensorFlow实战解决手写数字识别问题准备数据集数据集划分 特征数据归一化归一化方法归一化场景 标签数据独热编码One-Hot编码构建模型损失函数…