本文为系列教程【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(渲染)后填入需要渲染的风格。常用风格有:
python
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):
python
pyramid
python
A pyramid made of glass, rendered in Unity and tinted red
2. 质量增强器(Quality Boosters)
"质量增强器"是添加到提示中以提高生成图像的某些非样式类型的质量术语,例如:"amazing"、"beautiful"和"good quality"都是质量增强器,可以用于改善生成图像的质量。
3. 重复
在提示中重复相同的词语或者类似短语会导致模型在生成的图片中强调该词语。但注意这种方法并不完美,使用权重(下一篇文章)通常是一个更好的选择。
python
A beautiful painting of a mountain next to a waterfall.
python
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.
python
A planet with aliens
python
A planet with aliens aliens aliens aliens aliens aliens aliens aliens aliens aliens aliens aliens
4. 加权
一些模型(如 Stable Diffusion、Midjourney 等)允许你对提示中的词语进行加权。这可以用于强调生成图片中的某些词语或短语。它还可以用于减弱生成的图片中某些词语或短语的影响。
示例(Stable Diffusion )
python
mountain
python
# 把树的权重设置为负数,所以它们不会出现在生成的图片中
mountain | tree:-10
python
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 ):
python
studio medium portrait of Brad Pitt waving his hands, detailed, film, studio lighting, 90mm lens, by Martin Schoeller:6
最新版:
python
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)类型
镜头类型是指电影制作中用于捕捉场景内不同视角和视觉效果的各种摄像机角度和构图。场见的镜头类型包括:
python
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: 静态长镜头
python
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
Name | Hosted Solution | Open Source | Research Focused | Business Model | Launched | Modalities | Supported Providers |
---|---|---|---|---|---|---|---|
DALL·E | ✅ | ❌ | ❌ | Buy Credits | ✅ | Text2Image | OpenAI DALLE |
Dream Studio | ✅ | ❌ | ❌ | Buy Credits | ✅ | Text2Image | Stable Diffusion |
Patience | ✅ | ❌ | ❌ | Buy Credits | ✅ | Text2Image | Stable Diffusion, OpenAI |
getimg.ai | ✅ | ❌ | ❌ | ✅ | Text2Image, AIEditor |
三、 进阶方案
3.1 利用文本LLM生成作图llm的prompt
可参考:chatGPT生成Midjourney的prompt