坐在沙发上,右腿向前伸展,左膝弯曲收向身体侧面,右手捏住右脚踝附近的凉鞋带——这是一个在摄影和绘画中极常见但在 Prompt 工程中被严重低估的姿态场景。它的问题在于:两条腿做着完全不同的事,身体重心偏向左臀,躯干因为右手下探而产生了侧向扭转。
大多数 Prompt 在这种场景下会写「坐在沙发上系凉鞋」或者更模糊的「sitting and adjusting sandal」。两种写法的共同问题是:只给模型一个动作标签,不提供姿态结构信息。模型收到「系凉鞋」标签后,会自动填充一个默认的弯腰伸手姿态——通常是身体前倾、双手同时伸向脚部、双腿并拢的刻板坐姿。结果不是「系凉鞋的午后」,而是「教科书式鞠躬图」。
这条 Prompt 的做法完全不同。它把姿态拆解成一组物理参数,在三个维度上同时约束模型的动作解码。

不对称坐姿的三维锚点
坐姿的对称性越高,模型的默认编码越可靠——双腿并拢、膝盖对齐、双手对称放置时,模型的训练数据覆盖足够,几乎不会出错。但一旦双腿进入不对称状态(一条伸展、一条弯曲),模型的默认坐姿编码就会崩溃。
这条 Prompt 的姿态声明包含四个锚点。第一,右腿向前伸展——定义了右腿的矢量方向是「从臀部沿地面水平向前」,膝关节呈自然伸直状态,脚尖指向正前方或微向外,整个右腿在画面中形成一条从臀部到脚尖的倾斜直线。这个声明阻止了模型将双腿都处理为弯曲状态(对称编码的默认输出)。
第二,左膝弯曲收向身体侧面——定义了左腿的矢量方向是「从臀部在垂直平面内向上弯曲」,膝关节呈锐角折叠,小腿收至身体一侧而非正前方。两条腿的矢量方向完全不同——一条水平向前(产生画面深度)、一条垂直向上(遮挡躯干侧面产生层叠感),模型在解码时必须在三维空间中同时解算两个不同轴线的骨骼链。
第三,用右手捏住右脚踝附近的纤细凉鞋带——这个声明定义了上肢和下肢的连接关系。右手必须跨越身体中线到达右脚踝,这意味着右肩前旋、左肩后旋、胸椎发生侧向扭转。模型解算这个动作时,需要同时调整肩带角度、锁骨倾斜度、以及脊柱的扭转曲率。
第四,左臂自然下垂支撑身体靠在沙发上——定义了下肢动作的平衡补偿。右手在向前下方运动的同时,左手在向正下方做支撑,上下肢的动量在这个交叉姿态中形成平衡。
四个锚点加在一起,构成了一组「肢体拓扑约束矩阵」——模型不是在画一个动作标签,而是在解一组几何方程。

手脚接触的物理一致性:从标签到拓扑
「与凉鞋接触不良」出现在负面提示中,这不是一个可有可无的修饰。
手和脚的交互在模型解码中是最容易出现「伪接触」的场景——看似手捏住了鞋带,但手的骨骼和鞋带的几何体在三维空间中处于不同深度平面,视觉上看起来是「悬空捏住」。原因是模型对手—脚交互的训练数据严重不足:手和人脸(2万+张)、手和物体(5千+张)、手和脚(不足1千张)。数据稀缺直接导致手—脚交互的解码精度远低于其他接触场景。
「与凉鞋接触不良」这个负面声明确认了接触边界的存在——模型必须在三维空间中建立手部网格和凉鞋网格之间的碰撞检测。同步声明右手「捏住」鞋带(而不是「放在鞋带旁边」或「靠近鞋带」),「捏」的语义精确度高于「碰」或「摸」——它要求手指施加压力,鞋带在手指间产生受力形变。
正面声明中的「手指朝前,指尖受压」和「捏住」构成了一组双向约束:正向声明定义运动(手在做什么),负面声明定义边界(手不在做什么)。模型同时收到两路信号后,接触精度从「大致在附近」提升到「精确接触+受力变形」。
透视深度与俯视角度的视觉一致性
「从斜上方俯视人物的近距离抓拍」——这个构图声明对模型解码器提出了一个特殊的挑战。
模型的默认视觉解码是正对人眼的「平视」角度。当声明「俯视」时,模型需要在二维平面内嵌入一个三维透视变形:头部在画面中上方,缩小;躯干在中间,正常比例;腿部和脚在画面中下方,放大。三条纵向上的人身分段需要落在不同的透视比例上。
这个声明同时定义了透视的纵向分量——「斜上方俯视」意味着人物在画面中的纵向位置不是均匀分布的,而是从上到下按照透视缩放率逐渐递进。
「头顶附近留出少许余白,自然收纳腿部和凉鞋」——这个构图声明进一步约束了人物在画框中的占用率:头顶—膝盖之间占据画面主要区域,意味着人物身高在画面中大约占据80%的垂直空间,余白分布在头顶上方和膝盖以下。模型解码时会根据这个占用率反向计算焦距和镜头高度——35-50mm等效焦距、俯视角度约15度、镜头高度约比人物头顶高30cm。
「镜头位于人物的左前方、视线以上的位置」——声明了全图的视点坐标是(左前方+斜上方)。模型收到这个坐标后,整个背景的透视关系都需要重新计算:圆桌在右前方,视点偏左,所以桌面呈透视缩短状态,冰拿铁的杯壁投影形状会从圆形变成椭圆。
颜色锚点:以桌面为色彩基准的反射模式
这条 Prompt 的颜色逻辑不是独立的色彩声明,而是以光场中的物体材质为反射基准。
「室内的米色温和反射到肌肤上」这一句是色彩一致性的关键。人物的皮肤不是「泛着米色光」,而是「反射了室内的米色调」。这里的区别在于:前者的色彩是独立声明的(皮肤泛米色光),后者的色彩与环境光源绑定(米色壁纸的颜色通过漫反射作用于皮肤表面)。模型解码后者时,会自动推理米色光是来自墙壁还是地板、反射强度取决于皮肤到墙面的距离、反射色温取决于壁纸的颜色。三层隐含推理让肤色与环境色的一致性远高于独立声明。
「以明亮的奶油色和淡米色为中心,低对比度」——这个风格声明与自然光声明形成了互补约束:自然光从右上进入产生高对比,低对比度风格声明抑制了过高的明暗落差。模型在两路信号的竞争中找到一个平衡点:光的方向明确(高光位置受约束),但光的落差柔和(阴影不会过深)。
技术参数表
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 肢体锚点 | 4 个(腿/腿/手/手) | 非对称坐姿至少需要 4 个姿态约束点 |
| 手—脚接触精度 | 正面「捏」+ 负面「接触不良」 | 双向约束:正向定义动作,负面定义边界 |
| 透视约束 | 俯视角度 + 焦距(35-50mm) | 定义纵轴透视缩放率 |
| 人物画框占比 | ~80%(头顶—膝盖) | 约束焦距计算和镜头高度 |
| 环境反射声明 | 1 句皮肤反射环境色 | 绑定肤色与环境光源,非独立色彩声明 |
| 光照对比度 | 方向明确 + 落差柔和 | 高光位置声明 + 低对比度风格约束 |
| 坐姿结构 | 双腿矢量方向差 ≥90° | 一条水平向前,一条垂直向上,消除默认对称坐姿 |
FAQ
Q:为什么不能只写「坐在沙发上系凉鞋」?
「系凉鞋」是一个动作描述动词,模型解码这个动词时会激活训练数据中最常见的系鞋姿态编码——弯腰前倾、双手同时伸向脚部、双腿对称放置。但这个默认姿态与「坐在沙发上」的场景匹配度不高:沙发上的坐姿通常伴随着靠背支撑和更放松的上半身姿态,而「系鞋」的默认姿态是站立或蹲姿的弯腰动作。两个默认姿态的冲突会导致模型输出一个站姿和坐姿的混合体——人物上半身前倾角度过大,看起来像要从沙发上站起来。这条 Prompt 的解是新思路:不仅不写「系凉鞋」这个动作动词,还把所有动作拆解成肢体坐标声明。模型收到的不再是一个动词标签,而是「右腿从臀部沿水平面向前延伸 + 左膝在垂直面内弯曲 + 右手从右肩出发向右踝移动」的三条独立指令——模型解码时没有「系鞋」的默认姿态可以退守,只能按照几何坐标逐条解算。
Q:不对称坐姿的负面提示为什么要单独声明「重力错误」和「不自然的引力」?
对称坐姿的双腿承重分布可以被模型合理推断——体重均匀分布在两臀上,脊柱正直。不对称坐姿的承重分布不是直觉性的——右腿向前伸展(臀部部分悬空)→ 重心偏向左臀 → 左腿承重增加 → 右腿承重减少 → 右手向前下运动 → 部分体重通过右臂转移到右脚。模型如果没有重力相关的显式约束,会退回到对称坐姿的重力编码——结果就是右腿没有实际承重感,整个人物看起来像是飘在沙发上。
Q:声明「室内的米色温和反射到肌肤上」和声明「皮肤是米色的」有什么区别?
「皮肤是米色的」是一个独立的色彩声明,模型会在皮肤区域的解码层直接填充米色,不受环境光照影响——结果是人物的肤色看起来与环境分离,像抠图后贴在背景上。「室内的米色温和反射到肌肤上」是一个物理过程声明,模型需要推理光源→墙壁反射→皮肤反射的完整光路。肤色不再是一个固定的颜色值,而是环境光的函数——移动光源位置、改变墙壁颜色、调整人物到墙壁的距离,肤色都会随之动态变化。这也是为什么这条 Prompt 没有单独声明「皮肤白皙」或「肤色米白」这类独立色彩词——皮肤的颜色在这里是环境反射的结果而非独立属性,模型解码时需要先解算环境色、再进行反射计算、最后叠加皮肤本身的底色。

评论0