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

news2025/1/19 2:54:50

本文为系列教程【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.coloradmin.cn/o/1293690.html

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

相关文章

【libcurl库】OpenSSL 库、多线程、断点续传(二)

一、libcurl函数库常用字段解读 1、curl_global_init():初始化libcurl2、curl_easy_init():得到easy interface型指针,拿到句柄3、curl_easy_setopt(CURL *handle, CURLoption option, parameter):设置传输选项 第二个参数CURLop…

Linux——进程状态

我们都知道进程信息被放到了PCB(task_struct)中,可以理解为进程属性的集合。 PCB中包含了进程的ID,时间片,pc指针,所有的寄存器,进程状态、优先级、I/O状态信息等等...有兴趣的可以去看看源码&…

【Flink系列六】Flink里面的状态一致性

状态一致性 有状态的流处理,内部每个算子任务都可以有自己的状态,对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确。一条数据不应该丢失,也不应该重复计算。再遇到有故障时可以恢复状态…

2024年度AI策略报告:AI浪潮扬帆起航,传媒应用百花齐放

今天分享的人工智能系列深度研究报告:《2024年度AI策略报告:AI浪潮扬帆起航,传媒应用百花齐放》。 (报告出品方:兴业证券) 报告共计:52页 1、行情回顾:板块处于较低区间&#xff0…

粒子库particles.vue3在项目中的使用

一、particles.vue3是什么 particles.vue3 是一个 Vue 3 的组件库,用于在 Vue 3 项目中创建和管理粒子效果。它基于 tsparticles 引擎,提供了一系列的 Vue 组件,使我们能够轻松地在应用程序中添加动态的粒子效果。   如果您正在开发一个 V…

【Python源码保护】02 - pyc

1. python编译过程 Python虽然是一门解释型语言,但Python程序执行时,也需要将源码进行编译生成字节码,然后由Python虚拟机进行执行,因此Python解释器实际是由两部分组成:编译器和虚拟机。 Python程序执行过程和Java类…

函数声明、调用的过程

【 一 】函数声明、调用的过程详述 1. 函数必须先定义后调用,没有定义函数是一定不能够调用的 2. 函数在定义阶段,只检测语法是否错误,不检测逻辑是否有问题 3. 逻辑上的错误只会在调用阶段检测 4. 函数一定是被调用之后才会执行函数内部的代…

C#科学绘图库ScottPlot

文章目录 安装和准备初步使用简单的设置 安装和准备 ScottPlot是基于.Net的一款开源免费的交互式可视化库,支持Winform和WPF等UI框架,本文示例在WPF环境中运行。在VS的菜单栏->工具->NuGet包管理器->管理解决方案的NuGet程序包->在浏览选项…

JS基础面试题之手写bind

JS基础面试题之手写bind 手写bind返回函数的模拟实现传参的模拟实现构造函数效果的模拟实现构造函数效果的优化实现最终版 手写bind bind()方法会创建一个新的函数。当这个函数被调用时,bind()的第一个参数将作为它的运行时的this,之后的一序列参数将会在…

在vue中深度选择器的使用

一、为什么要使用深度选择器 在vue中,当我们使用了第三方库中的组件时,想要更改一些样式,达到我们想要的效果,由于scoped的影响直接编写同名样式时,是覆盖不了组件内的样式的。 为了达到我们想要的效果,…

JavaSE基础50题:12. 编写代码模拟三次密码输入的场景。

概述 编写代码模拟三次输入的场景,最多能输入三次密码,密码正确,提示 “登录成功” ,密码错误,可重新输入,最多输入三次,三次均错,则提示退出程序。 代码 import java.util.Scann…

读者和写者问题

它可以解决的问题: 可以支持多个读者访问,通过count计数 来实现多个读者访问的时候是互斥的,不会出现不符合进程同步的问题:设置mutex互斥锁,保证count或count--和if Pv(mutex)是一气呵成的 读写公平,通过…

“分割“安卓用户,对标iOS,鸿蒙崛起~

近期关于**“华为于明年推出不兼容安卓的鸿蒙版本”**的消息传出,引起了业界的热议关注。自从2019年8月,美国制裁下,华为不再能够获得谷歌安卓操作系统相关付费服务,如此情况下,华为“备胎”鸿蒙操作系统一夜转正。 华…

如何掌握构建 LMS 网站的艺术

目录 什么是学习管理系统 (LMS) 在线课程和 LMS 网站的好处 为什么 WordPress 对于 LMS 网站很重要 统一学习中心 多功能性和可扩展性 提高教育参与度 简化管理和监控 节省时间和费用 技能评估和绩效监督 持续学习和技能提升 使用 WordPress 插件构建成功的 LMS 课程 专注于您的…

PyQt6 QDateEdit日期控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计39条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

拨号连接bat命令和拨号错误623,系统无法找到此连接的电话簿项的解决方法

一、拨号bat命令 1、首先创建一个拨号连接,注意连接名称要使用英文 2、创建一个bat文件,里面内容 echo off chcp 65001rem 定义连接参数,第一个是用户名,第二个是密码 set usernameS11111111111 set passwords11111111111 set…

ORA-600 kcbzib_kcrsds_1一键恢复

一个19c库由于某种原因redo损坏强制打开库报ORA-600 kcbzib_kcrsds_1错误 SQL> startup mount pfile?/database/pfile.txt; ORACLE instance started. Total System Global Area 859830696 bytes Fixed Size 9034152 bytes Variable Size 5…

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

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

ES6中的继承,String类型方法的拓展

ES6中的继承: 主要是依赖extends关键字来实现继承,使用了extends实现继承不一定要constructor和super,因为没有的话会默认产生并调用它们。 在实现继承时,如果子类中有constructor函数,必须得在constructor中调用一下s…

linux搭建nacos集群

准备 检查是否安装jdk [roothao /usr/local/software/elk/logstash]# java -version java version "1.8.0_341" Java(TM) SE Runtime Environment (build 1.8.0_341-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)配置nacos 去github下载…