Skip to content

攻击提示词含装备形状先验,非大剑角色会被凭空塞一件宽面长条物 #310

Description

@johnnyzhang-eng

现象

非大剑角色(法杖、空手、四足动物)生成攻击时,模型会凭空长出一个宽面长条物,或做出该身体做不到的动作。

原因

prompt/prompts/attack.md 两节(side / front)都写着:

  • 第 8 / 18 行:the leading arm sweeping through one smooth downward crescent arc
  • 第 9 / 19 行:anything held in that hand ... with its broad side facing the viewer the whole way

leading arm + crescent arc + broad side 三者合起来断言了:双足、有手臂、手里握着一个有宽面的长条物。喂一个不满足这些前提的角色,模型为了调和图文矛盾,最省力的解法就是把缺的东西画出来。

master_prep.py 的 docstring 记着 #195 的教训:姿势描述里不写装备名词,否则空手角色会被凭空塞武器,而母版是整条链的身份来源,污染会带到该角色所有动作。

#195 只清掉了名词,没清掉形状先验。 同一个坑从名词层退到了形状层,更隐蔽但后果一样。

master_poses.md 的 attack 母版姿态(发力手拉到身后腰际的横挥蓄力)同样只对一类身体成立,对远程施法与四足扑咬在物理上不成立。

方向

不问「他拿的是什么武器」,问「这具身体怎么发力」。按运动拓扑分四支,而不是按武器名分支——后者既错在断言装备存在,也错在需要一个不存在的可靠武器识别器。

适用 要点
sweep 长条持物 横挥、下劈
thrust 短持物 / 空手 直出、戳刺、出拳
project 远程 身体前压、双臂前送到位、终态保持;不写接触弧
lunge 非双足 整体前扑、头部或前肢领先

约束(每支都要满足):

  1. 零装备名词、零形状名词;持物用存在无关措辞。
  2. 主语用「发力的那个部位」,不用「手臂」——四足角色没有 arm。
  3. 必须带身体整体位移词。i2v 强跟身体、弱跟持物,只写持物会让它自己乱飘。
  4. 默认支必须是 thrust绝不能是 sweep——sweep 是唯一需要宽面长条物的一支,默认选它等于对所有未知角色断言持剑。

master_poses.md 的 attack 节需同步拆四支:母版姿态决定动作,提示词只能微调。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions