结构化图像提示词
定义
结构化图像提示词,是指不再只靠一整段自然语言去“笼统描述”画面,而是把图像生成需求拆成显式字段,用结构化数据表达画面的组成方式。在本文语境中,它特指 Ideogram 4 支持的 JSON 提示形式。
它与普通文本提示词的核心区别,不是“写得更规范”或“更像程序”,而是把原本隐含在自然语言里的图像结构直接显式化,例如:
- 整体主题是什么;
- 风格信息如何单独定义;
- 背景与前景元素如何拆开描述;
- 每个元素放在什么位置;
- 每个元素允许使用哪些颜色;
- 哪些元素是对象,哪些元素是文字;
- 文字元素具体要渲染什么文本,以及它自己的局部样式。
因此,结构化图像提示词本质上是一种文生图中的结构化布局控制方式:它让模型不只理解“画什么”,还理解“每一部分在哪里、用什么颜色、以什么样式出现”。
在本文档中的具体语境
在本文对应的来源里,Ideogram 4 被描述为一款完全基于 JSON 结构提示词训练的文生图模型。来源同时指出:普通文本提示词也能生成图像,但如果改用 JSON 结构提示词,就可以获得“全方位精准控制”。
这种能力尤其面向以下类型任务:
- 海报生成;
- 版式设计;
- 含清晰文字内容的图像;
- 需要明确元素位置和颜色约束的合成画面。
换言之,这里的“结构化图像提示词”不是泛指一切带字段的提示工程技巧,而是特指 Ideogram 4 这类模型原生理解的 JSON 图像描述格式。
与普通文本提示词的区别
普通文本提示词通常把所有要求混在一段话里,例如同时描述主体、构图、背景、配色、字样和氛围。模型需要从自然语言里自行推断层级关系、布局意图和局部约束,因此在以下场景里容易失真:
- 多元素海报中各对象相对位置容易跑偏;
- 指定颜色可能只部分生效,甚至串到错误元素上;
- 文字内容容易拼错、漏字或风格不稳定;
- 某个局部的样式需求会被整体风格覆盖。
结构化图像提示词则把这些约束拆出来,直接告诉模型:
- 全局高层描述是什么;
- 风格描述是什么;
- 背景是什么;
- 画面中有哪些元素;
- 每个元素属于 object 还是 text;
- 每个元素的边界框 bbox 在哪里;
- 每个元素自己的说明 desc 是什么;
- 每个元素自己的 color_palette 是什么。
所以它的实际价值在于精确控制元素位置、颜色约束、文本内容和局部样式,而不只是“表达更整齐”。
核心字段层级
来源给出的 JSON 模板包含一套比较清晰的层级结构,核心字段包括:
high_level_descriptionstyle_descriptioncompositional_deconstructionbackgroundelements
把它展开来看,可以理解为以下结构:
{
"high_level_description": "",
"style_description": {
"aesthetics": "",
"lighting": "",
"photo": "",
"medium": "",
"color_palette": []
},
"compositional_deconstruction": {
"background": "",
"elements": [
{
"type": "obj",
"bbox": [],
"desc": "",
"color_palette": []
},
{
"type": "text",
"text": "",
"bbox": [],
"desc": "",
"color_palette": []
}
]
}
}
其中最重要的思想是:全局描述、风格描述、背景描述和元素描述被拆到了不同层级,不再全部揉成一句提示词。
各层字段的作用
high_level_description
high_level_description 用于描述整张图最上层的主题与意图,相当于告诉模型“这是一张什么图”“整体要表达什么”。它解决的是全局语义问题,而不是具体局部位置问题。
例如,一个海报是科技招聘海报、音乐节主视觉、产品宣传页,通常应先在这一层确定,而不是完全依赖后面的局部元素拼凑。
style_description
style_description 用于承载整张图的风格信息。来源中明确列出的可承载子项包括:
aesthetics:审美倾向、气质、风格印象;lighting:光照方式、明暗氛围;photo:摄影感、镜头感、照片属性;medium:媒介类型,如插画、摄影、平面设计等;color_palette:全局颜色方案。
也就是说,风格不是简单写一句“现代、好看、高清”就结束,而是可以被进一步拆成多个维度。这样做的意义在于,模型能区分:哪些是全局风格约束,哪些是元素本身的内容说明。
来源还给出了颜色约束方面的重要限制:每张图像最多支持 16 种十六进制颜色,而每个元素最多支持 5 种颜色。这说明 color_palette 不是无限制自由填充,而是有明确上限的受控调色板机制。
compositional_deconstruction
compositional_deconstruction 可以理解为对构图的拆解层。它不是描述风格,而是把画面结构分解成背景与若干元素。
这一层下面至少包括:
background:背景描述;elements:元素数组。
这种设计把“场景底板”与“前景对象/文字”分离开来,有利于模型分别处理大面积环境和可定位元素。
background
background 用于描述背景区域的内容与状态,例如背景环境、纹理、氛围、底色或衬底图形。它属于构图拆解的一部分,而不是某个独立元素。
如果把背景写进各个对象描述里,模型可能把背景错误地与主体绑定;单列 background 则能减少这种语义混淆。
elements
elements 是结构化提示词最关键的部分之一,用于列出画面中的具体元素。来源明确展示了至少两类元素:
object类型,模板中以obj表示;text类型。
这意味着结构化图像提示词不只是“摆物体”,也能把文本作为一等元素纳入布局控制。
elements 的元素类型与绑定字段
object 元素
对象元素用于描述画面中的可视对象,例如人物、产品、图标、装饰图形、容器、插图主体等。来源模板中,这类元素至少可以绑定以下字段:
type:对象类型,模板示例为obj;desc:对象描述;bbox:对象位置范围;color_palette:该对象允许或期望使用的颜色。
这意味着对象不仅能被定义“是什么”,还能被限定“出现在哪里”和“用哪些颜色”。