编写 Prompt 的基础框架
指导项 | 详细说明 |
---|---|
1. 明确描述主题 | 使用具体的名词和动词。例如:a futuristic cityscape at sunset 比单纯的 city 更具表现力。包含你想要的主要对象或场景,确保主体清晰、明确。 |
2. 添加细节 | 尽量描述细节,如环境、色彩、光线、情绪等。例如:a serene forest with golden sunlight streaming through trees in autumn 。描述材质(如 metallic , wooden )以还原图像质感。 |
3. 使用形容词丰富描述 | 添加多个形容词修饰主体,使图像更符合想象。如 beautiful , intricate , dynamic , ethereal 。结合情绪词,如 peaceful , mysterious , dramatic 来控制图像氛围。 |
4. 指定风格或艺术流派 | 指定特定风格,如 in the style of impressionism 或 cyberpunk style 。或使用艺术流派词汇,如 retro , minimalist , surrealist ,帮助模型产生符合特定美感的图像。 |
5. 控制颜色和光线 | 描述色调和光线效果,例如 warm lighting , monochromatic , high contrast ,可增加图像吸引力。指定主色调,如 blue and gold color scheme 控制整体颜色风格。 |
6. 提供构图或场景位置 | 有构图需求时提及 close-up , wide shot , bird's eye view ,调整视角和布局。描述布局或位置,如 central focus on the character 或 background of snowy mountains 。 |
7. 逐步优化和微调 | 初始用简洁描述生成初步结果;观察图像后不断加入细节或更改措辞逐步优化。避免过于复杂或矛盾的描述,每次改进集中于一个方面。 |
8. 尝试指定模型理解的词汇 | 一些 AI 生成模型对 hyper-realistic , photorealistic , 3D render 等词敏感,会倾向生成逼真效果。反复试验找到最佳词汇组合。 |
基本原则
原则一:prompt 不是越长越好
很多人刚学习 prompt 时,会觉得 prompt 越长越好,但实际上这是不对的。精准表达你的意图才是最重要的,而不是堆积非常多无用的词语。
另外,长度最好保持在 75 个 token(或约 60 个字)以内。
原则二:越重要的词放在靠前的位置
很多人在写 prompt 时,会较常忽略这一点。比如说,如果你想要生成一张猫的图片,那么你应该将「猫」这个词放在靠前的位置,而不是放在靠后的位置。
原则三:善用符号
- 使用逗号分隔:虽然 SDXL 在语意理解上已经有了很大的提升,但是在使用 prompt 时,还是建议使用逗号来分隔不同的意图。
- 使用 () 调整权重:你可以输入
(keyword:weight)
方式来控制关键词的权重,比如(hight building: 1.2 )
就意味着 hight building 的权重变高,如果填写的权重数小于 1,则意味着这个词的权重会变低,生成的图与这个词更不相关。
学习Prompt的方法
其实了解完 prompt 的基本原则和模板后,你就已经可以写 prompt 并生成图片了。但是,我认为绝大数人(包括我)其实很难一次就生成你脑海中满意的图片。原因是:
- 绝大多数人缺乏对美的认知:这是一个很大的问题,因为你不知道你想要的图片是什么样的,所以你也不知道该怎么写 prompt。
- 绝大多数人缺乏美术相关知识:即使你知道什么是美,但是你不知道该怎么表达出来,比如如果你根本不知道世界上有一名画家叫「梵高」,那你不可能会在 prompt 里写出「梵高风格」这样的词语。
那有没有解决方案呢?
我觉得最佳的方法是「先模仿后超越」。 先去看别人怎么写,然后根据自己的需求进行修改,并且通过控制变量的方式去多尝试,比如一次只改一个词,这样你就能知道每个词对生成图片的影响。
我推荐几个不错的学习网站:
- Civitai:大名鼎鼎的 C 站,这个应该是目前全球最大的 AI 图片社区,我在那学到了非常多东西。
- PromptHero:这也是一个很不错的 AI 图片社区,但感觉比 Civitai 小一些。
- Learning Prompt:虽然我当年写的教程是针对 Midjourney 的,但里面场景案例对于学习 Stable Diffusion 依然有参考意义。下面是编写 Prompt 的指导内容以表格形式呈现: