abstract_patterns.py 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. """
  2. 27 个抽象 strategy pattern 定义 + 193 条具体 strategy 的分类映射。
  3. 用 (req_id, is_selected) 作为主键;REQ_034 / REQ_059 有多 alt,用 strategy_id 消歧。
  4. """
  5. # ═══════════════════════════════════════════════════════════
  6. # Pattern 定义
  7. # ═══════════════════════════════════════════════════════════
  8. PATTERNS = [
  9. # A 类:生成驱动
  10. ('P01', '结构化提示词单步直出套路', 'A',
  11. '精心构造单一 prompt(五维度/JSON/分段结构),一次性生成完整产出。无多节点工作流,依赖模型的深度语义理解。'),
  12. ('P02', 'Midjourney 风格码参数驱动套路', 'A',
  13. '利用 Midjourney 的 --sref / --oref / --cref 等风格参考码锚定画面风格或主体,批量生成变体。'),
  14. ('P03', 'Nano Banana / Gemini 多模态单模型直出套路', 'A',
  15. 'Nano Banana Pro 或 Gemini 3 的多模态能力,在单模型内完成图像理解+生成+编辑。'),
  16. # B 类:工作流/管线
  17. ('P04', 'Coze 工作流编排全自动套路', 'B',
  18. 'Coze 平台可视化节点串联 LLM→文案→批量生图→抠图→拼合,零代码全自动。'),
  19. ('P05', 'ComfyUI 节点链精控套路', 'B',
  20. 'ComfyUI 里 ControlNet / IP-Adapter / LoRA / KSampler 节点组合,高度可定制。'),
  21. ('P06', 'Lovart / 一站式 AI 设计平台套路', 'B',
  22. 'Lovart、Canva AI 等一站式 AI 设计平台的 end-to-end 方案,低门槛模板化产出。'),
  23. ('P07', 'QA 闭环自动优化套路', 'B',
  24. 'LLM 生成 → QA Agent 自动评分 → 迭代优化到满分,典型 HTML/CSS 输出 + Puppeteer 截图。'),
  25. # C 类:参考图/素材驱动
  26. ('P08', '参考图垫图控制套路', 'C',
  27. '上传参考图作为 AI 生成的锚点(风格/主体/构图),保留参考图关键特征。'),
  28. ('P09', '双图融合虚拟试穿套路', 'C',
  29. '双图输入(主体图 + 目标图),AI 完成融合/替换/换装。典型 CatVTON / IDM-VTON 工作流。'),
  30. # D 类:主体一致 + 变装/变景
  31. ('P10', 'IP 系列化角色一致性套路', 'D',
  32. '锁定角色 IP(毛色/服饰/特征),批量产出同角色在不同场景/情绪/姿态下的图片。'),
  33. ('P11', '图生图局部重绘套路', 'D',
  34. 'Inpaint 蒙版重绘局部区域,主体其他部分保持;特别用于手部、服饰、物品替换。'),
  35. ('P12', 'Character Sheet 多视角参考表套路', 'D',
  36. '一次生成正背侧多视角参考表,作为后续多场景生成的 visual anchor。'),
  37. # E 类:分层合成/拼贴
  38. ('P13', '多图层分层合成套路', 'E',
  39. '分别生成底图/人物/光效/文字,再在画板/PS/ComfyUI 逐层合成。'),
  40. ('P14', '智能抠图 + 拼贴排版套路', 'E',
  41. 'BiRefNet / RMBG 自动抠主体 → 多主体按布局拼贴为画板/长图/九宫格。'),
  42. ('P15', '网格/分镜一次性直出套路', 'E',
  43. '一个 prompt 直接生成九宫格/25宫格等完整网格图,而非分开生成再拼。'),
  44. # F 类:视频/动态
  45. ('P16', '图生视频动态化套路', 'F',
  46. '静态图作为首帧/尾帧,用 Runway/Kling/Seedance 等生成动态视频。'),
  47. ('P17', '多镜头故事视频全链路套路', 'F',
  48. 'LLM 写脚本 → 分镜 → 批量生图 → 图转视频 → 拼接成完整故事视频。'),
  49. ('P18', '唇形同步视频套路', 'F',
  50. '静态人像 + 音频 → 唇形同步动画视频(Hedra, Wav2Lip, HeyGen, LivePortrait)。'),
  51. # G 类:光影色调
  52. ('P19', '戏剧性光影与 Chiaroscuro 套路', 'G',
  53. '低调光、明暗对照、单光源聚焦,Rembrandt/Butterfly 等专业布光。'),
  54. ('P20', '色调锚定与胶片质感套路', 'G',
  55. '锁定主色调(暖调/冷调/单色),叠加胶片颗粒/柔焦/LUT 等光学质感。'),
  56. ('P21', '多光源分层打光套路', 'G',
  57. '主光/辅光/轮廓光/氛围光分层规划,模拟摄影棚或电影级布光。'),
  58. # H 类:空间/透视
  59. ('P22', '空间透视与广角畸变套路', 'H',
  60. '消失点、广角/鱼眼、仰拍俯拍、荷兰角等特殊透视控制。'),
  61. ('P23', '360 全景/VR 生成套路', 'H',
  62. 'equirectangular 投影、2:1 比例、无缝球形全景。'),
  63. # I 类:材质/质感
  64. ('P24', '专业摄影级材质质感套路', 'I',
  65. '摄影参数模拟 + 材质关键词(毛绒/石材/木纹/金属/玻璃)精准描述。'),
  66. ('P25', '人像皮肤 + 去 AI 感套路', 'I',
  67. '皮肤纹理/瑕疵/毛孔/次表面散射,消除塑料感,达到真实摄影级自然质感。'),
  68. # J 类:文字/排版
  69. ('P26', 'AI 图内文字渲染 + 排版套路', 'J',
  70. '利用 GPT-Image / Nano Banana 直接在画面中渲染文字,无需后期叠加。'),
  71. ('P27', '数据驱动模板化套版套路', 'J',
  72. '数据表(CSV/JSON/Excel)作为输入源,填入预设模板,批量产出同结构异内容。'),
  73. ]
  74. PATTERN_NAME = {pid: name for pid, name, _, _ in PATTERNS}
  75. PATTERN_CAT = {pid: cat for pid, _, cat, _ in PATTERNS}
  76. PATTERN_DESC = {pid: desc for pid, _, _, desc in PATTERNS}
  77. # ═══════════════════════════════════════════════════════════
  78. # 具体 strategy 到 pattern 的映射
  79. # ═══════════════════════════════════════════════════════════
  80. # 第一层:用 strategy_id 直接映射(针对多 alt req 或需特殊归类的)
  81. STRATEGY_ID_OVERRIDES = {
  82. # REQ_034 的 3 条(selected + 2 alts)
  83. 'strategy-3d9f49e4': 'P01', # 纯提示词驱动路线
  84. 'strategy-b328e670': 'P08', # 参考图复刻路线
  85. 'strategy-d7adce07': 'P13', # 混合素材增强路线(实景+AI分层合成)
  86. # REQ_059 的 3 条
  87. 'strategy-3d86771b': 'P22', # 鱼眼镜头夸张变形
  88. 'strategy-dfca9a9b': 'P22', # 极端仰拍透视冲击
  89. 'strategy-99acc1d0': 'P23', # 球形全景360度
  90. }
  91. # 第二层:(req_id, is_selected) -> pattern
  92. # 覆盖单 alt reqs。多 alt reqs 的 entries 会在 classifier 里先走 STRATEGY_ID_OVERRIDES
  93. REQ_SEL_MAPPING = {
  94. # ────── P01 结构化提示词单步直出 ──────
  95. ('REQ_001', True): 'P01', # 3D夸张风格路线
  96. ('REQ_006', True): 'P01', # 提示词驱动一步直出
  97. ('REQ_015', True): 'P01', # 多阶段精准控制流派
  98. ('REQ_015', False): 'P01', # 单阶段精准提示词文生图
  99. ('REQ_024', True): 'P01', # 直接生成路线
  100. ('REQ_025', True): 'P01', # 提示词工程直接生成
  101. ('REQ_033', True): 'P01', # 极简单步 AIGC 叠加
  102. ('REQ_043', True): 'P01', # 蓝图A:纯AI自动生成
  103. ('REQ_055', True): 'P01', # 提示词驱动极端特写
  104. ('REQ_058', True): 'P01', # 结构化Prompt五维度直出
  105. ('REQ_064', True): 'P01', # 高水准氛围插画
  106. ('REQ_083', True): 'P01', # 提示词工程驱动
  107. ('REQ_085', True): 'P01', # 提示词驱动单色调场景
  108. ('REQ_086', True): 'P01', # AI提示词驱动多色并置
  109. ('REQ_087', True): 'P01', # 禅意极简水墨
  110. ('REQ_088', True): 'P01', # 诗意提示词驱动·单图超现实
  111. ('REQ_098', True): 'P01', # 纯AI图文一体生成
  112. # ────── P02 Midjourney 风格码 ──────
  113. ('REQ_061', True): 'P02', # 风格锁定直出路线 --sref
  114. ('REQ_067', False): 'P02', # 提示工程驱动的梦境逻辑路线 MJ
  115. ('REQ_002', True): 'P02', # 人物×道具精准绑定路线(MJ --oref)
  116. ('REQ_037', True): 'P02', # 多姿态拼贴路线 JSON × Nano Banana Pro
  117. # ────── P03 Nano Banana 多模态单模型 ──────
  118. ('REQ_009', False): 'P03', # AI生成式拼贴工作流
  119. ('REQ_017', True): 'P03', # 基于ControlNet的多人姿态迁移
  120. ('REQ_031', True): 'P03', # Strategy-031 (真人→蟑螂人 via Nano Banana)
  121. ('REQ_033', False): 'P03', # 双工具协作精细化(Nano Banana + Firefly)
  122. ('REQ_049', True): 'P03', # 提示词直出网格路线(NanoBananaPro/即梦)
  123. ('REQ_084', True): 'P03', # 文本直驱全景生成(DiT360/混元3D)
  124. # ────── P04 Coze 工作流 ──────
  125. ('REQ_010', True): 'P04', # 工作流驱动模块化组装法
  126. ('REQ_030', False): 'P04', # 工作流自动化批量(Coze+DeepSeek)
  127. ('REQ_045', True): 'P04', # AI脚本驱动·批量生图·文字嵌入·宫格自动排版
  128. ('REQ_046', True): 'P04', # 全自动 Coze 工作流
  129. ('REQ_074', True): 'P04', # AI提示词驱动全自动食材百科
  130. ('REQ_079', False): 'P04', # 豆包Seedream提示词生图流派
  131. ('REQ_080', True): 'P04', # Canva AI 数据驱动全链路自动化
  132. # ────── P05 ComfyUI 节点链精控 ──────
  133. ('REQ_007', True): 'P05', # 高保真写实路线 realisticVisionV51
  134. ('REQ_017', False): 'P05', # 基于3D姿态参考的多人动态生成
  135. ('REQ_049', False): 'P05', # ComfyUI工作流精控网格 FLUX-Klein
  136. ('REQ_051', True): 'P05', # 工业化路线:角色资产先行+分镜批量
  137. ('REQ_055', False): 'P05', # 垫图+LoRA精准控制
  138. ('REQ_058', False): 'P05', # 3D白模参考图ControlNet引导
  139. ('REQ_062', False): 'P05', # ComfyUI 节点化工作流精准控制
  140. ('REQ_073', True): 'P05', # 高精度全自动 ComfyUI Flux 深度控制
  141. ('REQ_080', False): 'P05', # ComfyUI 工作流批处理
  142. ('REQ_094', False): 'P05', # ControlNet精准光影约束
  143. # ────── P06 Lovart 一站式 ──────
  144. ('REQ_021', False): 'P06', # Lovart AI 全流程一站式
  145. ('REQ_040', True): 'P06', # 全自动批量语义驱动 Lovart+Nano Banana
  146. ('REQ_050', True): 'P06', # 结构化信息图混排全自动化
  147. ('REQ_050', False): 'P06', # AI提示词驱动混合媒体拼贴
  148. # ────── P07 QA 闭环 ──────
  149. ('REQ_081', True): 'P07', # AI全自动图层合成流派(品牌规则+QA闭环)
  150. ('REQ_092', True): 'P07', # AI驱动HTML信息图全自动生成
  151. ('REQ_099', False): 'P07', # 结构化提示词驱动--变量锚点+字体层次
  152. ('REQ_099', True): 'P07', # 全自动化 AI 管线--品牌规则+QA 闭环
  153. # ────── P08 参考图垫图控制 ──────
  154. ('REQ_025', False): 'P08', # 人物固定+多角度换装
  155. ('REQ_042', True): 'P08', # 参考图引导生成(版式迁移)
  156. ('REQ_056', False): 'P08', # 参考图驱动型人脸一致性近景
  157. ('REQ_063', False): 'P08', # HEX 色板精准定调 + LUT 模板
  158. ('REQ_065', True): 'P08', # 极速直出路线:精准配色锚点
  159. ('REQ_065', False): 'P08', # 参考图驱动:GPT反向读图
  160. ('REQ_082', True): 'P08', # 参考图像锁定(Nano Banana Pro/Qwen)
  161. # ────── P09 双图融合虚拟试穿 ──────
  162. ('REQ_016', True): 'P09', # 双图垫图融合 + 手部专项修复
  163. ('REQ_022', True): 'P09', # 静态写真精准换装
  164. ('REQ_023', False): 'P09', # 纯图像超现实错位穿戴
  165. ('REQ_028', True): 'P09', # AI人宠合照专业模型
  166. ('REQ_029', True): 'P09', # 精准叠合:AI主体抠图+姿态锚点+局部重绘
  167. ('REQ_032', True): 'P09', # CatVTON局部重绘保面部
  168. # ────── P10 IP 系列化 ──────
  169. ('REQ_001', False): 'P10', # 写实高精度路线:人脸身份锁定+情绪矩阵prompt库
  170. ('REQ_027', True): 'P10', # 系统化三要素精细控制
  171. ('REQ_027', False): 'P10', # 轻量级提示词驱动路线
  172. ('REQ_068', True): 'P10', # 高精度拟人化四层结构流派
  173. ('REQ_068', False): 'P10', # 快速批量出图(场景×情绪矩阵)
  174. ('REQ_071', True): 'P10', # 统一IP系列化批量生产
  175. ('REQ_071', False): 'P10', # 单图精品直出流派
  176. # ────── P11 图生图局部重绘 ──────
  177. ('REQ_024', False): 'P11', # 分步合成路线(生成底图后局部重绘头部)
  178. ('REQ_026', False): 'P11', # AI换装路线(真实宠物照片,局部重绘)
  179. ('REQ_026', True): 'P11', # AI文生图路线(从零生成) — 按方法归 P11
  180. ('REQ_029', False): 'P11', # 风格统一 IP-Adapter + 图生图重绘
  181. ('REQ_072', False): 'P11', # 高一致性图生图局部重绘
  182. # ────── P12 Character Sheet 多视角 ──────
  183. ('REQ_037', False): 'P12', # 动态抓拍 MJ V7 Character Sheet
  184. ('REQ_051', False): 'P12', # 轻量直出:单Prompt多格叙事
  185. ('REQ_082', False): 'P12', # 结构化提示词(专业分镜术语)
  186. ('REQ_083', False): 'P12', # LoRA精确角度控制坐标系量化
  187. ('REQ_091', True): 'P12', # 3D场景叙事表情包
  188. ('REQ_091', False): 'P12', # 多表情一致性表情包
  189. # ────── P13 多图层分层合成 ──────
  190. ('REQ_005', True): 'P13', # 沉浸式花卉穹顶婚礼场景--三层立体空间
  191. ('REQ_005', False): 'P13', # 中式节日庆典喜庆场景--红金配色书法字牌
  192. ('REQ_008', True): 'P13', # 纯AI一键合成:人物→微缩场景融合
  193. ('REQ_008', False): 'P13', # 场景定制增强路线
  194. ('REQ_019', True): 'P13', # 直接融合生成路线
  195. ('REQ_019', False): 'P13', # 分层合成精修路线
  196. ('REQ_021', True): 'P13', # AI文生图 + 多元素分层合成
  197. ('REQ_041', True): 'P13', # AI 智能拼贴叙事流派(主线)
  198. # ────── P14 智能抠图 + 拼贴 ──────
  199. ('REQ_009', True): 'P14', # 模板化自动拼贴工作流
  200. ('REQ_028', False): 'P14', # AI图生图场景融合路线
  201. ('REQ_039', True): 'P14', # 多视角生活拼贴自动化
  202. ('REQ_041', False): 'P14', # 结构化叙事长图流派
  203. ('REQ_044', True): 'P14', # 路线A:提示词驱动的图文一体化
  204. ('REQ_044', False): 'P14', # 路线B:AI智能后处理叠加
  205. ('REQ_052', True): 'P14', # 结构化网格拼贴流派
  206. ('REQ_052', False): 'P14', # 叙事性场景拼贴 Bento-grid
  207. # ────── P15 网格/分镜一次性直出 ──────
  208. ('REQ_030', True): 'P15', # 单图驱动九宫格全自动生成
  209. ('REQ_010', False): 'P15', # 提示词驱动一步生成法
  210. ('REQ_032', False): 'P15', # 轻量提示词驱动 Google Whisk AI
  211. ('REQ_067', True): 'P15', # 极简符号化超现实路线:五维咒语 × 多主体场景
  212. ('REQ_070', True): 'P15', # Strategy-070 (25 宫格高密度)
  213. ('REQ_045', False): 'P15', # 长文自动分页为图片序列
  214. # ────── P16 图生视频动态化 ──────
  215. ('REQ_022', False): 'P16', # 动态故事动画流派
  216. ('REQ_023', True): 'P16', # 图转视频动态错位穿搭
  217. ('REQ_038', False): 'P16', # 动态视频生成 AI 文生视频
  218. ('REQ_088', False): 'P16', # 宇宙视角缩放·人物分层合成(含动态)
  219. # ────── P17 多镜头故事视频 ──────
  220. ('REQ_003', True): 'P17', # 多镜头拟人化故事视频全链路
  221. ('REQ_003', False): 'P17', # 精品单图拟人化角色生成
  222. # ────── P18 唇形同步(本次数据稀少,归并入 P17 也可;先独立保留)──────
  223. # (本次数据里没有单独唇形同步 strategy,此 pattern 保留作为未来占位)
  224. # ────── P19 戏剧性光影 Chiaroscuro ──────
  225. ('REQ_014', True): 'P19', # 分层精控路线--深色底图×霓虹光效
  226. ('REQ_014', False): 'P19', # 提示词直出路线--配色锁定
  227. ('REQ_062', True): 'P19', # Strategy-062(暗调点睛)
  228. ('REQ_089', True): 'P19', # 场景主导型科技活动海报(霓虹强化)
  229. ('REQ_094', True): 'P19', # 戏剧性光影对比(侧光/逆光/硬光)
  230. # ────── P20 色调锚定与胶片质感 ──────
  231. ('REQ_013', True): 'P20', # AI图文生成+色调控制
  232. ('REQ_013', False): 'P20', # AI插画生成+排版合成
  233. ('REQ_063', True): 'P20', # 主色调锚定+色彩脚本分层+胶片氛围
  234. ('REQ_064', False): 'P20', # 快速全自动管线路线(胶片质感)
  235. ('REQ_076', True): 'P20', # MidJourney 颗粒质感 + 纸张底图
  236. ('REQ_076', False): 'P20', # Risograph 孔版印刷风格
  237. # ────── P21 多光源分层打光 ──────
  238. ('REQ_095', True): 'P21', # 多光源分层打光三阶段
  239. ('REQ_095', False): 'P21', # AI提示词直出策略
  240. ('REQ_096', True): 'P21', # 体积光+霓虹双色对比
  241. # ────── P22 空间透视与广角畸变 ──────
  242. ('REQ_060', True): 'P22', # 水面倒影嵌套镜像
  243. ('REQ_060', False): 'P22', # 悬空矩形框画中画
  244. ('REQ_084', False): 'P22', # 超宽画幅空间营造
  245. # ────── P23 360 全景 ──────
  246. ('REQ_093', True): 'P23', # 结构锁定 x 风格迁移一体化路线
  247. ('REQ_093', False): 'P23', # 从零构建:平面图到3D空间
  248. # ────── P24 专业摄影级材质质感 ──────
  249. ('REQ_036', True): 'P24', # 工作室级产品摄影
  250. ('REQ_036', False): 'P24', # 高端产品爆炸图信息图
  251. ('REQ_057', True): 'P24', # 精准材质特写:镜头×材质×质量校验
  252. ('REQ_057', False): 'P24', # 高端产品广告级特写
  253. ('REQ_066', True): 'P24', # Strategy-066 (暖色调室内材质)
  254. ('REQ_077', True): 'P24', # 照片级材质生成(PBR技术)
  255. ('REQ_077', False): 'P24', # 场景级材质替换路线(AI图像生成+风格迁移)
  256. ('REQ_090', True): 'P24', # 精准还原--三要素全命中五阶段
  257. ('REQ_090', False): 'P24', # 氛围优先路线--禅意基底
  258. # ────── P25 人像皮肤 + 去 AI 感 ──────
  259. ('REQ_007', False): 'P25', # 结构化提示词抓拍路线
  260. ('REQ_018', True): 'P25', # 精准嘴唇衔花特写
  261. ('REQ_018', False): 'P25', # 创意身体部位融合多变体批量
  262. ('REQ_056', True): 'P25', # 情绪驱动型近景肖像
  263. # ────── P26 AI 图内文字渲染 + 排版 ──────
  264. ('REQ_011', True): 'P26', # 多模态AI指令驱动路线
  265. ('REQ_011', False): 'P26', # AI视觉理解 + 自动标注生成
  266. ('REQ_042', False): 'P26', # 提示词直接生成路线(从零快速起稿)
  267. ('REQ_043', False): 'P26', # 蓝图B:智能修复增强
  268. ('REQ_078', True): 'P26', # 在线工具自动化文字叠加(Canva/CapCut)
  269. ('REQ_089', False): 'P26', # 文字主导型科技活动海报(GPT-Image 2)
  270. ('REQ_097', True): 'P26', # 暴力美学电商大字报全自动生成
  271. ('REQ_097', False): 'P26', # AI提示词驱动全自动图文排版
  272. # ────── P27 数据驱动模板套版 ──────
  273. ('REQ_020', True): 'P27', # AI文案生成+模板组件+数据驱动批量
  274. ('REQ_020', False): 'P27', # 视觉规范先行+AI素材生成+参数化模板
  275. ('REQ_047', True): 'P27', # 数据驱动型全自动报告生成
  276. ('REQ_047', False): 'P27', # 视觉优先型 AI 图表美化
  277. ('REQ_048', True): 'P27', # AI全自动:自然语言→语义识别→SVG/HTML
  278. ('REQ_048', False): 'P27', # 参考图逆向复刻--草图→AI→可编辑图表
  279. ('REQ_098', False): 'P27', # AI底图生成+专项文字渲染
  280. # ─── 补余 ───
  281. # 占位 strategies(Phase 1 正规化的)
  282. ('REQ_004', True): 'P01', # Strategy-004: 提示词直出为主 + 细节强化
  283. ('REQ_053', True): 'P13', # Strategy-053: 三层空间分层生成
  284. ('REQ_066', True): 'P24', # 已归入 P24 材质类(上面已有)
  285. ('REQ_070', True): 'P15', # 已归入 P15(上面已有)
  286. # 单例余项(从 /tmp/strategy_clusters_v2.md 单例列表)
  287. ('REQ_012', True): 'P06', # 杂志报告风格图文混排--用 Lovart 类工具
  288. ('REQ_012', False): 'P06', # 产品展示型长图生成(电商)
  289. ('REQ_027', True): 'P10', # 已有
  290. ('REQ_035', True): 'P01', # AI图文生成+色调控制 — 归 P01 (提示词)
  291. ('REQ_035', False): 'P01', # 参数公式直出路线
  292. ('REQ_038', True): 'P25', # 静态高动态图像流派(人像肖像)
  293. ('REQ_048', True): 'P27', # 已有
  294. ('REQ_055', False): 'P05', # 已有
  295. ('REQ_059', True): 'P22', # will be overridden by strategy_id
  296. ('REQ_067', True): 'P15', # 已有
  297. ('REQ_072', True): 'P11', # 已有(将 False 改 True) — 等等,REQ_072 sel 是 P10/P11?查
  298. ('REQ_081', False): 'P07', # 模板驱动批量生成流派 — 归 P07 (或 P13)
  299. ('REQ_092', False): 'P06', # 科普长图模板化生成路线
  300. ('REQ_096', False): 'P19', # 霓虹粒子风暴+生物发光路线
  301. # REQ_006 alt
  302. ('REQ_006', False): 'P05', # 结构控制+风格迁移精准路线(ControlNet 风格)
  303. # REQ_002 alt
  304. ('REQ_002', False): 'P13', # 人物×场景深度融合路线
  305. # REQ_061 alt
  306. ('REQ_061', False): 'P01', # 多风格分层融合--风格基底×双色分层
  307. # REQ_034 alts by strategy_id override(在上方 STRATEGY_ID_OVERRIDES)
  308. # 单例补充:REQ_072 sel
  309. ('REQ_072', True): 'P11', # 高一致性图生图局部重绘(实际是 P11)
  310. # REQ_030 sel 已有(P15)
  311. # REQ_049 sel 已有(P03)
  312. # REQ_079 sel 已有(P04)
  313. # REQ_079 sel
  314. ('REQ_079', True): 'P04', # DeepSeek + MD2Card 文本生成排版
  315. # REQ_069
  316. ('REQ_069', True): 'P13', # 3D卡通机器人主体+悬浮全息数据图表(分层合成)
  317. ('REQ_069', False): 'P13', # 插画场景叙事+机器人协作+数据可视化
  318. # REQ_054(0-cap 未分配占位)
  319. ('REQ_054', True): 'P17', # Gemini分镜逻辑驱动的AI多格视频分镜
  320. ('REQ_054', False): 'P15', # ChatGPT代码解释器驱动的精准网格图文
  321. # REQ_062 alt 已有
  322. # REQ_075
  323. ('REQ_075', True): 'P19', # 戏剧性体积光四阶段流派
  324. ('REQ_075', False): 'P21', # 冷暖双极对立光晕流派(多光源)
  325. # REQ_067 alt 已有
  326. # ─── 最终补余(分类器验证后发现的 8 个 unmapped)───
  327. ('REQ_016', False): 'P01', # 结构化提示词多模型并行生成(零素材快速)
  328. ('REQ_040', False): 'P10', # 精品单卡语义匹配(Midjourney 图集 + 逐张匹配)- IP 系列化
  329. ('REQ_046', False): 'P26', # AI 提示词直出信息图:图文一体直出 (图内文字)
  330. ('REQ_073', False): 'P01', # 轻量快速路线:Midjourney提示词驱动蓝紫色调
  331. ('REQ_074', False): 'P27', # 放射状布局+系列模板混合(模板套版)
  332. ('REQ_085', False): 'P27', # 参数化单色模板批量生成
  333. ('REQ_086', False): 'P14', # 风格化拼贴构图路线
  334. ('REQ_087', False): 'P20', # 莫兰迪素雅插画(色调锚定)
  335. }
  336. def classify(strategy_id: str, req_id: str, is_selected: bool) -> str:
  337. """Return pattern_id or None if unmapped."""
  338. if strategy_id in STRATEGY_ID_OVERRIDES:
  339. return STRATEGY_ID_OVERRIDES[strategy_id]
  340. return REQ_SEL_MAPPING.get((req_id, is_selected))