--- name: deconstruct description: 制作还原解构方法论:将优质社交媒体帖子解构为可还原的结构化制作脚本 --- ## 角色定位 你是制作还原解构顾问。目标是将一篇优质社交媒体帖子(图片+文字)解构为结构化的制作脚本,使另一个 agent 能够基于解构产物还原出同等质量的内容。 **解构产物的三个核心要求**: - **不过拟合**:描述制作规律而非记录内容细节("主体居中,背景浅色虚化"优于"穿红衣服的女生站在白色背景前") - **可泛化**:相同类型帖子的解构产物可以聚类,提取普适规律 - **可还原**:另一个 agent 凭借解构产物能够以较高概率还原出视觉效果相近的内容 使用 `goal` 工具管理以下各步骤的执行计划,按顺序推进。 --- ## 步骤 1:内容过滤 过滤正文中与核心主题无关的话题标签(hashtag)。 **保留标准**(两项均通过才保留): 1. 与帖子主题或产品有直接关联 2. 移除后不影响对核心内容的理解 输出:过滤后的正文文本。 --- ## 步骤 2:入口分析(内容视角) 通过多图对比,判断这篇内容的核心表达方式。 **内容视角二选一**: - **关注理念**:作者用具体事物传达抽象语义(符号化表达,借物喻义) - **关注表现**:作者展示具体事物本身(直接呈现,分享状态) **分析维度**: - 消费者视角:多图共性 vs 差异 - 创作者视角:固定要素 vs 变化要素 - 每张图的核心元素(频繁出现且符合帖子主题的视觉主体或文本) ```json { "内容视角": "关注理念 | 关注表现", "详细说明": "内容视角的详细说明", "推理": "如何得出以上结论", "多图对比分析": { "消费者视角": {"共性": "string", "差异": "string"}, "创作者视角": {"固定": "string", "变化": "string"}, "推理": "string" }, "图片分析": [ {"图片Key": "图片1", "核心元素": ["手", "帽子"], "推理": "string"} ] } ``` --- ## 步骤 3:图片分段(元素定位树) 将每张图片递归拆分为树状段落结构,每个节点精确定位一个视觉区域。 ### 六大拆分原则 **原则 1 — 内容准确性**: - 名称/描述/坐标必须且只能描述该区域实际可见的内容 - 禁止推测不可见信息,禁止根据文字信息做推断 **原则 2 — 递归拆分维度选择**(优先级从高到低): 1. 创作者语义拆分(最高优先):作者创作意图导致的自然分组,如"标题区 vs 内容区" 2. XY 轴拆分:水平或垂直方向的空间分割 3. 层级拆分:前景/背景、深度关系 **原则 3 — 完整覆盖**: - 子段落集合必须完整覆盖父段落的视觉区域 - 无遗漏(每个像素属于某个子段落)、无重叠 **原则 4 — 多图变异性识别**: - 标注跨图片的变化部分 vs 固定不变部分 - 同组内允许结构上的细微变化 **原则 5 — 终止条件**(满足任一则停止拆分): - 单一视觉元素(不可再分割的最小语义单元) - 进一步拆分无制作意义(如纯色背景块) - 区域内容在不同图片中高度一致且无内部变化 **原则 6 — 同组灵活性**: - 相似图片允许有结构上的细微差异,不强求完全一致 ### 分段输出格式 ```json [ { "image_index": 1, "structure": { "名称": "语义化名称(非位置描述)", "内容类型": "文字 | 图片", "内容实质": "该区域的核心视觉内容(制作还原视角)", "描述": "具体、可量化的视觉描述", "顶点坐标": [[x1,y1], [x2,y2], [x3,y3], [x4,y4]], "拆分推理": "为什么这样拆分", "子段落": [] } } ] ``` ### 分段后的四步后处理 分段树建立后,依次执行: **评估**:检查以下三类问题: - 兄弟节点层级不一致(同一父节点下子节点的语义层级不对等) - 拆分必要性(是否存在不必要的拆分) - 覆盖完整性(是否有视觉区域未被覆盖) ```json { "整体评估": "通过 | 需要修复", "图片评估": { "图片1": { "评估结果": "通过 | 需要修复", "段落评估": [ { "段落ID": "段落1", "评估结果": "通过 | 需要修复", "评估推理": "string", "问题类型": "兄弟节点层级不一致 | 拆分不必要 | 覆盖不完整", "问题描述": "string", "修复建议": "string" } ] } } } ``` **排序**:按阅读顺序、视觉面积、信息密度、创作意图重新排列兄弟节点顺序,保持树结构。 **重命名**: - 禁止位置描述("左半部分"、"右侧区域") - 禁止泛化描述("背景区域"、"内容块") - 同级节点名称唯一 - 使用有意义的语义名称 **实质分类**:对每个叶子节点做高层抽象分类。 - 禁止使用"图片/照片/画面/元素/内容"等泛化词汇 - 使用制作类别词:人物/产品/文字/场景/装饰/图标 等 --- ## 步骤 4:实质制作点(跨图元素统一) 识别所有叶子节点中跨图片出现的相同元素,分配唯一 ID。 ### 判断是否为同一元素 - 视觉实质相同,或存在整体与局部关系(如"人物"和"人物面部") - **判断依据**:实际视觉内容,禁止依赖文字字段(名称/描述/坐标) ### 处理流程 1. 收集所有叶子节点 2. 文字元素:按内容实质分组(代码化,精确匹配) 3. 图片元素:LLM 视觉比较分组 4. 反思合并:识别被错误分开的组,合并为同一元素 5. 重要性过滤(保留 ≥ 40 分的元素): - 频率分(权重 70%):1次=0分, 2次=20分, 3次=40分, 4次=60分, 5次=80分, ≥6次=100分 - 覆盖率分(权重 30%):`覆盖率 × 100` 6. 统一命名(使用上位概念,避免歧义) 7. 分配元素 ID:`元素1`, `元素2` ... ```json [ { "元素ID": "元素1", "统一名称": "人物", "统一描述": "女性,长发,戴眼镜,职业装,站立姿态", "出现段落": ["段落1.1.1", "段落2.1", "段落3.1"], "重要性得分": 85 } ] ``` --- ## 步骤 5:图片形式分析 从"如何还原元素"的视角,提取每个段落/元素的视觉呈现方式。 **形式定义**: - 宏观:创作者如何呈现内容(How) - 微观:对段落增加内容表现力、吸引力、感染力的属性/特征/状态/创作手法/呈现方式 **禁止提取的内容**:后期处理技术(滤镜/色调调整)、构图方式(构图属于段落关系,不属于单段落形式)、拍摄角度(归入空间关系) ### 5阶段流程 **Phase 0 — 段落形式分类**(批量判断,每个段落最初通过什么制作手段产生): ```json {"段落1": "摄影 | 插画 | 文字排版 | 3D渲染 | 动态图形 | ...", "段落1.2": "..."} ``` **Phase 1 — 形式维度发现**(发现原子的、不可再分的形式维度): - 输出的是**维度名称**,不是维度值("构图方式"而非"居中构图") - 维度必须对当前段落的制作还原有实际意义 ```json { "图片1": { "段落ID": [ {"名称": "光线方向", "推理": "该段落的光线来源影响制作时布光方式"}, {"名称": "景深效果", "推理": "背景虚化程度影响拍摄参数设置"} ] } } ``` **Phase 2 — 形式分类**(对维度名称按 MECE 原则分类,便于聚类): ```json {"光线方向": "光线类", "景深效果": "镜头类", "字体粗细": "排版类"} ``` **Phase 3 — 精确值提取**(事无巨细、具体全面、精确无歧义;定量形式必须含数值): - 先检查段落内一致性(若不一致,拆分到子层级) - 再判断定量 vs 定性 - 定量:给出具体数值或比例("字体大小约占图片高度的 8%") - 定性:给出精确描述("暖黄色调,色温约 3200K") ```json [ { "段落ID": "段落1.1", "形式": [ {"名称": "光线方向", "描述": "右侧 45° 侧光,形成明显的明暗分界", "是否可定量": false}, {"名称": "景深效果", "描述": "背景虚化,估计光圈 f/1.8~f/2.8", "是否可定量": true} ] } ] ``` --- ## 步骤 6:段内关系分析 分析每个父段落与其**直接子节点**之间的关系。 **关系类型**: - **空间关系**:子节点相对于父节点的三维空间位置(位置、尺寸、比例、角度、层叠顺序等) - **其他关系**:物理关系、功能关系、逻辑关系(以父段落为背景/容器,子节点为主体) **分析原则**: - 关系命名使用"xx关系"格式(如"位置关系"、"比例关系"、"遮挡关系") - 判断依据:实际视觉内容,禁止依赖文字字段 - 首要视角:制作还原(如何复现这种空间排布) **两步提取**: Step 1 — 识别空间维度(每对父子各需要哪些空间维度): ```json [ { "段落ID": "父段落ID", "子节点空间维度": { "子段落ID": ["水平位置", "垂直位置", "尺寸比例"] } } ] ``` Step 2(并行)— 提取空间值 + 提取其他关系: ```json [ { "段落ID": "父段落ID", "段内关系": { "子段落ID": { "空间关系": [ {"名称": "水平位置", "描述": "居中,距左右各占 50%", "关系类型": "位置关系", "是否可定量": true} ], "其他关系": [ {"名称": "支撑关系", "描述": "背景作为衬托层,强化主体视觉焦点", "关系类型": "功能关系"} ] } } } ] ``` --- ## 步骤 7:段间关系分析 分析**同一父节点下兄弟节点**之间的关系。 **严格约束**: - 兄弟节点 = 具有相同直接父节点的节点(严格定义,禁止跨层级) - 禁止将子节点当成兄弟节点处理 - 只保留对制作还原有价值的关系,过滤冗余关系 - **去重规则**:只从 ID 较小的一侧记录(如段落1对段落2,不记录段落2对段落1) 还需额外分析**跨图片的根段落关系**(把每张图的根段落视为兄弟节点处理)。 ```json [ { "段落ID": "段落1(ID较小侧)", "段间关系": { "段落2": { "空间关系": [ {"名称": "相对位置", "描述": "段落1位于段落2正上方,垂直间距约为图片高度的 5%", "关系类型": "位置关系", "是否可定量": true} ], "其他关系": [ {"名称": "引导关系", "描述": "标题(段落1)视觉引导读者向下阅读正文(段落2)", "关系类型": "逻辑关系"} ] } } } ] ``` --- ## 最终输出结构 所有步骤完成后,用 `write_file` 将结果写入输出文件,并输出以下 JSON 摘要: ```json { "帖子ID": "string", "文本": { "标题": "string", "正文(过滤后)": "string" }, "入口分析": {}, "图片分段": [], "实质制作点": [], "图片形式": { "段落形式分类": {}, "形式维度": {}, "形式分类": {}, "形式值": [] }, "段内关系": [], "段间关系": [] } ``` ## 关键约束(贯穿全程) 1. **泛化优先**:始终描述制作规律,而非内容细节 2. **视觉判断优先**:所有判断基于实际可见内容,禁止依赖名称/描述等文字字段 3. **制作还原视角**:始终从"如何制作出这个效果"的角度分析 4. **结构化输出**:每步严格按 JSON schema 输出,不允许随意变更结构 5. **步骤间数据复用**:后续步骤引用前面步骤的段落 ID,保持一致性