EXTRACTION-SCHEMA.md 14 KB

AI 图片制作能力 / 工序抽取 Schema v5

本文档定义 capability / strategy 抽取结果的核心结构。目标是把 method 做成稳定、可聚类的 HOW 骨架,同时让 inputs / outputs 承载更细的接口语义。


1. 核心原则

method 只表达抽象流程接口,不写具体内容 what。

固定语法:

(流程角色)[模态]->主动作:动作方式->(流程角色)[模态]

多输入 / 多输出用 + 连接:

(流程角色)[模态]+(流程角色)[模态]->主动作:动作方式->(流程角色)[模态]

strategy 若包含多个步骤,顶层 method 是动作链:

第一步输入接口->步骤1主动作:动作方式->步骤2主动作:动作方式->...->最后一步输出接口

不同维度使用不同标记:

维度 标记 示例
流程角色 (...) (生成指令)(参考素材)(成品)
模态 [...] [文本][图片][特征点]
动作 主动作:动作方式 生成:局部重绘编辑:亮度调整

2. 维度定义

2.1 流程角色 role

流程角色回答:这个输入 / 输出在当前工序接口里“被怎么使用”。

它不回答:

  • 内容是什么:人物、浴室、雨天、白月光等不写进 role。
  • 文件类型是什么:文本、图片、模型等属于 modality。
  • 具体物件是什么:正向提示词、负面提示词、蒙版、LoRA 等属于 artifact_type。
  • 想达到什么效果:真实感、手机感、氛围感等放到 effects / apply_to / description。

建议词库:

输入侧:

生成指令
编辑指令
约束条件
参考素材
控制信号
区域控制
参数配置
模型资源
源素材
中间产物

输出侧:

成品
中间产物
模板
控制信号
区域控制
模型资源
评估结果

2.2 模态 modality

模态回答:这个对象以什么媒介 / 数据形态存在。

建议词库:

文本
图片
视频
音频
参数
模型
特征点
向量
表格

注意:

  • 蒙版、深度图、骨骼图通常是 artifact_type,模态可写 图片特征点
  • 蒙版更常对应 role=区域控制;深度图、骨骼图、姿势关键点更常对应 role=控制信号
  • LoRA、checkpoint、embedding 通常是 artifact_type,模态写 模型向量

2.3 动作 action

动作由两层组成:

主动作:动作方式

主动作回答:发生了哪一类操作。

建议词库:

生成
编辑
合成
提取
改写
模板化
排版
剪辑
转写
配音
匹配
增强
修复
扩展
训练
评估
导出

动作方式回答:这个动作内部采用的抽象机制是什么。它仍然是 HOW,不写具体内容 what,也不要复述输入 / 输出接口里的维度。

动作方式不要写:

  • 输入 / 输出模态:如 文本驱动图片驱动视频驱动
  • 输入 / 输出流程角色:如 提示词驱动参考素材驱动约束条件驱动
  • 具体内容 what:如 浴室自拍雨天少女白月光风格

常见动作方式:

直接生成
一致性保持
结构约束
质量收束
变体生成
动画化
镜头延展
局部重绘
扩图
换背景
换主体
换装
擦除
调色
提示词反推
模板化
多图融合
前后景融合
图文合成
音画合成
分层叠加
特征提取
蒙版提取
关键帧提取
字幕提取
风格提取
片段拼接
节奏压缩
转场编排
字幕对齐
音画同步
清晰化
降噪
补帧
超分
稳定化
质感增强
风格迁移
结构抽象
变量抽象
版式套用
格式转换
压缩导出

示例:

(生成指令)[文本]->生成:直接生成->(成品)[图片]
(参考素材)[图片]+(生成指令)[文本]->生成:一致性保持->(成品)[图片]
(控制信号)[特征点]+(生成指令)[文本]->生成:结构约束->(成品)[图片]
(区域控制)[图片]+(编辑指令)[文本]->编辑:局部重绘->(成品)[图片]
(源素材)[图片]+(编辑指令)[文本]->编辑:局部重绘->(成品)[图片]

3. inputs / outputs 结构

method 负责稳定聚类,inputs / outputs 负责解释接口细节。

type IOItem = {
  role: string;                 // 流程角色,如 "生成指令"
  modality: string;             // 模态,如 "文本"
  artifact_type?: string | null; // 具体工件类型,如 "正向提示词"、"负面提示词"、"蒙版"
  control_target?: string[];     // 控制目标,如 ["主体", "场景", "镜头"]
  target_scope?: string[];       // 作用范围,如 ["整图", "人物", "脸部", "背景", "局部区域"]
  constraint_strength?: string | null; // 硬约束 / 软约束 / 参考倾向 / 排除项
  source?: string | null;        // 来源,如 原帖文本 / 用户上传 / 上一步产物 / 外部资源
  lifecycle?: string | null;     // 原始输入 / 中间产物 / 最终成品 / 可复用模板
  description: string;           // 功能性描述,不堆具体 what
};

artifact_type 与 role / modality 的边界

artifact_type 容易和 rolemodality 重叠,因此定义要窄一些:

  • role:它在流程里承担什么职责。
  • modality:它是什么数据形态。
  • artifact_type:在该模态下,它是哪一种具体工件。

例子:

role modality artifact_type 说明
生成指令 文本 正向提示词 文本作为生成指令使用,具体工件是提示词的一种
约束条件 文本 负面提示词 负面提示词也是提示词,但在流程里承担排除 / 约束职责
参考素材 图片 角色参考图 图片作为参考素材使用,具体工件是角色参考图
区域控制 图片 蒙版 图片作为区域控制使用,具体工件是蒙版
控制信号 图片 深度图 图片作为控制信号使用,具体工件是深度图
控制信号 特征点 姿势关键点 特征点作为控制信号使用
模型资源 模型 LoRA 模型作为资源参与生成或编辑

规则:

  • artifact_type 可选;如果只是重复 role 或 modality,可以省略。
  • artifact_type 不写内容 what。例如写 角色参考图,不要写 浴室御姐参考图
  • 具体内容对象、风格、题材、场景进入 apply_tocontrol_target,不进入 method。

补充边界:

  • 正向提示词负面提示词编辑提示词结构化提示词 都属于提示词类工件;不要把 prompt负面提示词 当成平级概念。
  • 这些工件名原则上不直接进入 method 的 (流程角色)。method 中优先写它们承担的流程职责:(生成指令)(编辑指令)(约束条件)(区域控制)(模型资源)
  • 只有当一个词本身描述的是流程职责,而不是具体工件时,才适合作为 role。例如 区域控制 可以是 role,蒙版 更适合作为 artifact_type。

4. 顶层 schema

capability

type Capability = {
  method: string;
  inputs: IOItem[];
  outputs: IOItem[];
  body: string | null;
  effects: string[];
  stage: ("preprocess" | "generate" | "refine")[];
  tools: string[];
  criterion: string | null;
  apply_to_draft?: {
    "实质": string[];
    "形式": string[];
  };
  apply_to?: ApplyTo;
  unstructured_what: string[];
};

strategy

type Strategy = {
  method: string;
  inputs: IOItem[];   // 取第一步 inputs
  outputs: IOItem[];  // 取最后一步 outputs
  steps: StrategyStep[];
  effects: string[];
  stage: ("preprocess" | "generate" | "refine")[];
  tools: string[];
  criterion: string | null;
  apply_to_draft?: {
    "实质": string[];
    "形式": string[];
  };
  apply_to?: ApplyTo;
  unstructured_what: string[];
};

type StrategyStep = {
  order: number;
  method: string;     // 同样使用 "(流程角色)[模态]->主动作:动作方式->(流程角色)[模态]"
  body: string | null;
  inputs: IOItem[];
  outputs: IOItem[];
  tools: string[];
};

5. 示例

5.1 文本直接生成图片

{
  "method": "(生成指令)[文本]->生成:直接生成->(成品)[图片]",
  "inputs": [
    {
      "role": "生成指令",
      "modality": "文本",
      "artifact_type": "正向提示词",
      "control_target": ["主体", "场景", "镜头", "风格"],
      "target_scope": ["整图"],
      "constraint_strength": "硬约束",
      "source": "原帖文本",
      "lifecycle": "原始输入",
      "description": "用于触发图片生成的完整提示词"
    }
  ],
  "outputs": [
    {
      "role": "成品",
      "modality": "图片",
      "artifact_type": "静态图",
      "control_target": [],
      "target_scope": ["整图"],
      "constraint_strength": null,
      "source": "模型生成",
      "lifecycle": "最终成品",
      "description": "最终生成的静态图片"
    }
  ]
}

5.2 生成指令 + 约束条件

{
  "method": "(生成指令)[文本]+(约束条件)[文本]->生成:质量收束->(成品)[图片]",
  "inputs": [
    {
      "role": "生成指令",
      "modality": "文本",
      "artifact_type": "正向提示词",
      "control_target": ["主体", "场景", "动作"],
      "target_scope": ["整图"],
      "constraint_strength": "硬约束",
      "source": "原帖文本",
      "lifecycle": "原始输入",
      "description": "描述主体、场景和动作的生成指令"
    },
    {
      "role": "约束条件",
      "modality": "文本",
      "artifact_type": "负面提示词",
      "control_target": ["画质", "质感", "瑕疵排除"],
      "target_scope": ["整图"],
      "constraint_strength": "排除项",
      "source": "原帖文本",
      "lifecycle": "原始输入",
      "description": "用于约束生成结果质量和排除不希望出现的问题"
    }
  ],
  "outputs": [
    {
      "role": "成品",
      "modality": "图片",
      "artifact_type": "静态图",
      "control_target": [],
      "target_scope": ["整图"],
      "constraint_strength": null,
      "source": "模型生成",
      "lifecycle": "最终成品",
      "description": "满足指令和约束条件的生成图片"
    }
  ]
}

5.3 参考图驱动生成

{
  "method": "(参考素材)[图片]+(生成指令)[文本]->生成:一致性保持->(成品)[图片]",
  "inputs": [
    {
      "role": "参考素材",
      "modality": "图片",
      "artifact_type": "角色参考图",
      "control_target": ["身份一致性", "脸部特征"],
      "target_scope": ["人物", "脸部"],
      "constraint_strength": "参考倾向",
      "source": "用户上传",
      "lifecycle": "原始输入",
      "description": "用于保持主体外观一致性的参考图片"
    },
    {
      "role": "生成指令",
      "modality": "文本",
      "artifact_type": "正向提示词",
      "control_target": ["场景", "姿态", "光线"],
      "target_scope": ["整图"],
      "constraint_strength": "硬约束",
      "source": "原帖文本",
      "lifecycle": "原始输入",
      "description": "用于描述生成目标和画面要求的文本指令"
    }
  ],
  "outputs": [
    {
      "role": "成品",
      "modality": "图片",
      "artifact_type": "静态图",
      "control_target": [],
      "target_scope": ["整图"],
      "constraint_strength": null,
      "source": "模型生成",
      "lifecycle": "最终成品",
      "description": "依据参考素材和生成指令得到的图片"
    }
  ]
}

5.4 多步骤 strategy

{
  "method": "(源素材)[图片]+(编辑指令)[文本]->编辑:局部重绘->增强:清晰化->(成品)[图片]",
  "inputs": [
    {
      "role": "源素材",
      "modality": "图片",
      "artifact_type": "原始图片",
      "control_target": ["主体"],
      "target_scope": ["整图"],
      "constraint_strength": "硬约束",
      "source": "用户上传",
      "lifecycle": "原始输入",
      "description": "作为编辑起点的原始图片"
    },
    {
      "role": "编辑指令",
      "modality": "文本",
      "artifact_type": "编辑提示词",
      "control_target": ["局部区域"],
      "target_scope": ["局部区域"],
      "constraint_strength": "硬约束",
      "source": "原帖文本",
      "lifecycle": "原始输入",
      "description": "说明需要重绘或修改的区域和目标"
    }
  ],
  "outputs": [
    {
      "role": "成品",
      "modality": "图片",
      "artifact_type": "静态图",
      "control_target": [],
      "target_scope": ["整图"],
      "constraint_strength": null,
      "source": "模型生成",
      "lifecycle": "最终成品",
      "description": "经过局部编辑和清晰化增强后的最终图片"
    }
  ],
  "steps": [
    {
      "order": 1,
      "method": "(源素材)[图片]+(编辑指令)[文本]->编辑:局部重绘->(中间产物)[图片]",
      "body": "对原始图片的局部区域执行重绘。",
      "inputs": [],
      "outputs": [],
      "tools": []
    },
    {
      "order": 2,
      "method": "(中间产物)[图片]->增强:清晰化->(成品)[图片]",
      "body": "对重绘后的图片进行清晰化和细节增强。",
      "inputs": [],
      "outputs": [],
      "tools": []
    }
  ]
}

6. 抽取约束

  • method 中禁止出现具体 what:人物、服装、场景、风格、情绪、品牌、具体参数。
  • method 中的流程角色必须用 (...),模态必须用 [...]
  • 动作必须写成 主动作:动作方式;若动作方式无法从原文判断,可写较粗的 生成:直接生成 / 编辑:常规编辑,不要编造细节。
  • 动作方式不得复述输入 / 输出模态或流程角色;例如不要写 生成:文本驱动生成:图片驱动生成:提示词驱动
  • artifact_type 可具体到工件种类,但不要写内容对象。
  • control_target 可以写受控维度,如主体、身份、姿势、构图、光线、色彩、质感、质量、局部区域。
  • apply_to 负责映射内容树,表达“关于什么”和“如何呈现”;不要把内容树语义塞回 method。