D136+: HLDP编码提示词引擎 — ⊢锚点+属性编码+翻译区
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled

buildPrompt()完全重构为HLDP编码结构:
  ⊢ CHAR/PROP/空间 · 锁定    ← 最高权重·AI注意力锚点
    · 属性: 值 | 值 | 值      ← 精确key-value·不可稀释
  → 自然语言翻译              ← 编码后的汉字·辅助确认
  ⊢ 风格约束                  ← 全局约束

原理: AI模型对结构化标记(⊢/·/|)的注意力权重 > 自然语言
      编码先于翻译·AI先理解结构再理解内容

冰朔: '编码的结构有更高的权重。AI照编码去找翻译的汉字。'
This commit is contained in:
冰朔 2026-06-21 17:10:31 +08:00
parent 4c3623344c
commit 00b95ac19e

View File

@ -64,76 +64,86 @@ async function main() {
function buildPrompt(shot, encoding) {
const locks = encoding.continuity_locks;
const parts = [];
// === D136+ 分层提示词引擎 ===
// 冰朔: "用编码告诉他这是什么意思" → HLDP编号不是标签是优先级排序
//
// 提示词分层:
// L0 主体(人物+道具) ← AI注意力第一落点·不可稀释
// L1 空间(克制描述) ← 只给必要信息·不抢人物焦点
// L2 动作 ← 具体行为
// L3 风格/约束 ← 全局修饰
// ═══ D136+ HLDP编码提示词引擎 ═══
// 冰朔: "编码的结构肯定有更高的权重。AI拿到编码后去组合编码
// 然后照着编码去找你后面给他翻译的汉字。"
//
// 原理: HLDP的 ⊢ / · / | / → 这些标记符号天然构成层级结构。
// AI模型的注意力机制对结构化输入敏感——
// 每个 ⊢ 是一个锚点,每个 · 是一个属性分支。
// 编码权重 > 自然语言翻译权重。
//
// 结构:
// ⊢ CHAR · 锁定 ← 最高权重·不可变
// ⊢ PROP · 锁定 ← 紧随其后
// ⊢ 空间 ← 克制描述
// → 动作(自然语言翻译) ← 编码后的汉字辅助
let desc = '';
// ─── L0: 主体锁定 ───
// 人物和道具的描述放在最前面确保AI第一注意力在这里
const l0Parts = [];
let prompt = '';
// ─── 编码区: CHAR锁定 ───
if (shot.char_ref && locks?.characters?.[shot.char_ref]) {
const charLock = locks.characters[shot.char_ref];
l0Parts.push(charLock.locked_desc);
prompt += `⊢ CHAR-003 · 苏白 · 锁定: 全镜一致不可变\n`;
prompt += ` 外貌: 18岁亚洲男性 | 五官俊秀·剑眉·明亮大眼 | 自信笑容露齿\n`;
prompt += ` 服饰: 白色长衫·腰间束带·袖口挽起 | 黑色长发半束半披\n`;
prompt += ` 身形: 175cm·挺拔·肩膀开阔\n`;
prompt += ` 气质: 开朗·自信·略带痞气·穷但不自卑\n`;
prompt += charLock.locked_desc + '\n';
}
// ─── 编码区: PROP锁定 ───
if (shot.prop_ref && locks?.props?.[shot.prop_ref]) {
const propLock = locks.props[shot.prop_ref];
l0Parts.push(propLock.locked_desc);
prompt += `⊢ PROP · ${shot.prop_ref} · 锁定: 不可变\n`;
prompt += ` 方向: ${propLock.orientation} | 材质: ${propLock.material}\n`;
prompt += ` 文字: ${propLock.text}\n`;
prompt += propLock.locked_desc + '\n';
}
if (shot.prop_ref_2 && locks?.props?.[shot.prop_ref_2]) {
const propLock2 = locks.props[shot.prop_ref_2];
l0Parts.push(propLock2.locked_desc);
prompt += `⊢ PROP · ${shot.prop_ref_2} · 锁定: 不可变\n`;
prompt += ` 方向: ${propLock2.orientation} | 材质: ${propLock2.material}\n`;
prompt += ` 文字: ${propLock2.text}\n`;
prompt += propLock2.locked_desc + '\n';
}
// 如果没人也没道具(纯环境镜)→不生成L0
if (l0Parts.length > 0) {
desc += l0Parts.join('。');
}
// ─── L1: 空间定位 ───
// 克制描述。不给灵霄宗鎏金大字——除非是S1-01建立镜
// ─── 编码区: 空间 ───
if (shot.env && locks?.environments?.[shot.env]) {
const envLock = locks.environments[shot.env];
// 有主体时用简短版·没有主体时用完整版
if (l0Parts.length > 0) {
// 简短版: 去掉"灵霄宗鎏金大字"细节,只留位置和光线
desc += `。背景: 修仙广场边缘角落,人群远处,金色阳光`;
const hasChar = !!(shot.char_ref && locks?.characters?.[shot.char_ref]);
if (hasChar) {
// 有主体时的克制空间描述
prompt += `⊢ 空间 · 锁定: 不可喧宾夺主\n`;
prompt += ` 位置: 修仙广场·人群边缘角落\n`;
prompt += ` 光线: 白天·金色阳光\n`;
prompt += ` 景别: ${shot.framing}\n`;
} else {
desc += envLock.locked_desc;
// 纯环境镜使用完整锁定文本
prompt += `⊢ 空间 · 锁定: ENV-002百宗会广场\n`;
prompt += locks.environments[shot.env].locked_desc + '\n';
}
}
// ─── L2: 动作 ───
// ─── 翻译区: 动作描述 ───
if (shot.action) {
desc += `${shot.action}`;
prompt += `${shot.action}\n`;
}
// 关键信息追加
if (shot.text_elements) desc += `。画面中可见文字: ${shot.text_elements}`;
if (shot.prop_state) desc += `${shot.prop_state}`;
// 文字标注
if (shot.text_elements) {
prompt += `→ 画面中可见文字: ${shot.text_elements}\n`;
}
parts.push(desc);
// ─── 风格约束 ───
prompt += `⊢ 风格约束:\n`;
prompt += ` 真人写实·电影级光影·亚洲面孔\n`;
prompt += ` 景别: ${shot.framing}`;
if (shot.emotion?.type) prompt += ` | 氛围: ${shot.emotion.type}`;
prompt += `\n`;
prompt += ` 禁止: 卡通·3D渲染·现代元素·水印·字幕`;
// ─── L3: 风格 ───
parts.push('景别: ' + shot.framing);
if (shot.emotion?.type) parts.push('氛围: ' + shot.emotion.type);
// 风格锁定(不再是第一行)
parts.push('真人写实风格,电影级光影,亚洲面孔');
parts.push('不要卡通·不要3D渲染·不要现代元素·不要水印·不要字幕');
return parts.join('。');
return prompt;
}
main().catch(e => { console.error(e); process.exit(1); });