图像生成的提示结构:主体、风格与约束
蝶语森林
4 min read
图像生成的提示不是形容词堆砌,而是分层描述"画什么、怎么画、不画什么"。把这三层写清楚,比塞一堆华丽词更可控。很多失败出图,根因不是模型弱,而是提示本身信息冲突或主体模糊。
主体:先定对象,再定细节
主体要具体到"数量、形态、材质、姿态、所处环境"。模糊主体会触发模型的随机补全,每次出图差异巨大。例如"一只陶瓷材质的猫,蹲姿,置于木质窗台,侧光"比"可爱的猫"稳定得多。主体描述要放在提示最前面,权重最高,因为它决定了画面到底在表达什么。
主体里最容易漏的是"环境关系"。只写"一个水杯"会得到悬浮的水杯;补上"置于石质桌面,背景虚化",模型才知道怎么安置它。环境不是装饰,而是帮模型消除歧义的坐标。
风格:讲特征,不抄作品
风格用可观察的视觉特征描述:光照(侧光、柔光、硬阴影)、镜头(广角、微距、景深)、质感(低多边形、水墨、胶片颗粒)、色彩倾向(冷调、高对比)。描述风格特征而非指向具体画作,既能表达意图,也避免落到对特定作品的模仿上——那类描述既不稳定,也带来不必要的归属争议。
一个实用做法是给风格定"参考维度"而不是"参考名字":先想清楚要"写实还是抽象""明亮还是阴郁""近景还是全景",再翻译成特征词。这样比扔一个流派名词更可控,也更容易在多次出图间保持一致。
约束:比例、构图与排除项
约束层负责"收边":
- 画幅与比例:明确横/竖、宽高比,避免被默认比例带偏。
- 构图重心:主体位置、留白、是否居中。
- 负向提示(negative prompt):列出不要的元素,如变形肢体、多余手指、水印、模糊。负向提示对遏制常见瑕疵效果明显。
def build_prompt(subject, style, constraints, negative):
pos = f"{subject}, {style}, {constraints}"
return {
"prompt": pos,
"negative_prompt": ", ".join(negative),
"aspect_ratio": constraints.get("ratio", "1:1"),
}
边界条件
- 长提示不等于好提示。信息过多会互相打架,模型在冲突描述间取平均,结果四不像。先保证主体清晰,再加风格,末尾再补约束。
- 提示无法精确控制微观细节。手指数量、文字内容、特定标识这类,生成器仍会出错,关键处要靠后处理或多次筛选,别指望一次命中。
- 负向提示有边界:列太多会让画面干涩、丢细节;只列真正高发的瑕疵即可,把负向词当成"急救清单"而非"愿望清单"。
- 风格词之间可能互斥("极简"配"繁复纹理"),写之前先想清楚冲突,否则模型被迫折中,两边都不像。
- 同一提示在不同模型上产出差异很大,提示是和模型耦合的,换模型要重新调,不能把一套提示当作通用资产。
多次生成的筛选策略
单次出图命中率低时,与其反复改提示,不如固定提示批量出若干张再筛。批量能暴露提示的"稳定产出范围":如果十张里只有两张可用,说明提示约束力弱,该补约束;如果十张都偏离,说明主体或风格描述本身有问题。把批量出图当成对提示的探针,比单张反复试错更高效,也更能看清模型在这套提示下的真实表现。批量的另一好处是能横向比较——同一套提示的产出方差,本身就是提示质量的一个信号,方差越大越说明描述没定住。
图像提示的本质,是用最少且无冲突的信息,把主体的确定性和风格的边界同时给定住。提示工程的价值不在"写得多",而在"写得准"。
1 view
0 likes
0 comments