Files
ai-toy-patent-workflow/src/lib/templates.ts

1143 lines
51 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { AssetTemplate, CharacterSpec, PackKind, TextTemplate } from './types';
export const FILENAME_SCHEMA = '{sessionId}_{characterSlug}_{pack}_{view}_{version}.{ext}';
export const TEMPLATE_FREEZE_VERSION = 'toy-pack-templates-v01';
export const PACK_LABELS: Record<PackKind, string> = {
patent: '专利包',
production: '生产打样包',
marketing: '宣发包',
accessories: '配件包',
};
export const PACK_ORDER: PackKind[] = ['patent', 'accessories', 'production', 'marketing'];
export const VIDEO_TEMPLATES = [
{
id: 'video_turntable',
title: '360 度旋转展示',
description: '45 秒,用于电商和内部评审,展示整体体积、正背侧轮廓。',
duration: 45,
ratio: '16:9',
promptTemplate: '生成 45 秒 360 度旋转展示视频:{character}. 白底或浅灰棚拍,镜头稳定,产品缓慢旋转,展示正面、侧面、背面、顶部细节,材质、表面质感、情绪屏和配件必须严格贴合角色设定。产品尺寸按 40cm+ 智能陪伴机器人摆件表现,正面宽约 28cm、侧深约 22cm镜头中要能感知 40cm 以上实体体量。音乐氛围可参考韩流电子节奏和潮流鼓点,但不要使用真实受版权保护歌曲。',
},
{
id: 'video_unboxing',
title: '开箱短片',
description: '45 秒,用于新品宣发,展示包装到玩具出现的过程。',
duration: 45,
ratio: '9:16',
promptTemplate: '生成 45 秒玩具开箱短片:{character}. 竖版社媒风格,从礼盒或包装打开到产品出现,温暖但克制的棚拍光线,突出礼物感、收藏感、角色识别点和配件陈列。产品为 40cm+ 智能陪伴机器人摆件,包装和手部比例必须支持 40cm 以上尺寸。音乐氛围可参考韩流电子节奏和潮流鼓点,但不要使用真实受版权保护歌曲。',
},
{
id: 'video_touch_detail',
title: '触感细节',
description: '45 秒,展示材质、情绪屏、表面纹理和配件细节。',
duration: 45,
ratio: '9:16',
promptTemplate: '生成 45 秒玩具细节短片:{character}. 近景镜头,展示角色设定中的核心材质、橙色 visor 情绪屏、表面软壳或短绒触感、手脚细节、标志性配件和包装小物,节奏清楚,避免加入设定外材质或无关部件。必须体现 40cm+ 产品的厚实体量、柔和触感和稳定站立尺度。音乐氛围可参考韩流电子节奏和潮流鼓点,但不要使用真实受版权保护歌曲。',
},
{
id: 'video_story_intro',
title: '角色故事介绍',
description: '45 秒,用于 IP 设定和社媒发布。',
duration: 45,
ratio: '16:9',
promptTemplate: '生成 45 秒玩具角色故事介绍视频:{character}. 轻剧情镜头,围绕角色设定的核心使用场景登场,展示情绪屏变化、标志性配件、色彩气质和陪伴感,适合新品发布。故事中产品始终是 40cm+ 智能陪伴机器人摆件,可以被双手抱住或稳放在家居空间,不要缩成桌面小摆件。音乐氛围可参考韩流电子节奏和潮流鼓点,但不要使用真实受版权保护歌曲。',
},
{
id: 'video_factory_preview',
title: '工厂预览短片',
description: '45 秒,用于打样前内部沟通,展示外观、尺寸、材料、拆件和包装要点。',
duration: 45,
ratio: '16:9',
promptTemplate: '生成 45 秒工厂预览概念短片:{character}. 16:9面向内部沟通展示外观、尺寸、材料、拆件和包装要点镜头清楚克制不做消费者营销话术。尺寸基准写死为成品高度 40cm+,正面宽约 28cm侧面深约 22cm必须保持 40cm 以上实体产品尺度。音乐氛围可参考韩流电子节奏和潮流鼓点,但不要使用真实受版权保护歌曲。',
},
] as const;
export const CHARACTER_SPEC_FIELDS: Array<{ key: keyof CharacterSpec; label: string; hint: string }> = [
{ key: 'name', label: '名称', hint: '玩具/IP 名称' },
{ key: 'oneLiner', label: '一句话定位', hint: '面向谁、解决什么情绪或场景' },
{ key: 'targetUser', label: '目标用户', hint: '儿童、潮玩、礼品、品牌客户等' },
{ key: 'speciesShape', label: '物种/形态', hint: '动物、人形、怪兽、机甲、食物拟人等' },
{ key: 'bodyRatio', label: '身体比例', hint: '头身比、胖瘦、坐姿/站姿' },
{ key: 'faceFeatures', label: '五官表情', hint: '眼睛、嘴巴、腮红、表情、眉毛' },
{ key: 'colorPalette', label: '配色', hint: '主色、辅色、强调色、禁用色' },
{ key: 'materials', label: '材料', hint: '毛绒、刺绣、印花、塑料件、织带、金属件' },
{ key: 'accessories', label: '配件', hint: '衣服、帽子、背包、吊牌、电子件等' },
{ key: 'signatureElements', label: '识别元素', hint: '最能形成识别度的 3-5 个元素' },
{ key: 'manufacturingNotes', label: '生产提醒', hint: '避免过细尖角、过多小件等' },
{ key: 'patentFocus', label: '专利重点', hint: '希望保护的外观特征' },
{ key: 'marketingAngle', label: '营销角度', hint: '陪伴、治愈、收藏、科技感、礼物等' },
{ key: 'negativePrompt', label: '禁忌项', hint: '不要出现的元素' },
{ key: 'sourceImageId', label: '源图 ID', hint: '选中方案来源' },
{ key: 'sourceImageUrl', label: '源图链接', hint: '选中方案来源' },
{ key: 'lockedAt', label: '锁定时间', hint: '角色设定生成时间' },
];
const patentChecklist = [
'白底或浅灰底,产品居中',
'无营销文案、场景道具、水印和价格信息',
'五官、配色、配件位置与源图保持一致',
'视角和比例清楚,外观重点可见',
];
const productionChecklist = [
'有清晰标注线和中文说明',
'尺寸单位默认 cm小部件可用 mm',
'材料、工艺、颜色或结构信息足以支持工厂沟通',
'不混入营销海报和场景背景',
];
const marketingChecklist = [
'角色与锁定设定一致',
'画面明确服务一个渠道或卖点',
'文案不遮挡产品关键外观',
'镜头、色温、背景质感与同包素材统一',
];
const textChecklist = [
'围绕锁定 CharacterSpec不改核心外观设定',
'文字可直接复制给专利代理、工厂或宣发同事',
'不要编造真实商标、认证编号、价格和不存在的法律结论',
'保留待人工确认的尺寸、材料、色号或合规项',
];
export const TEXT_TEMPLATES: TextTemplate[] = [
{
id: 'text_project_design_brief',
kind: 'project',
title: '项目设计总说明',
description: '概括玩具定位、核心外观、目标用户和三类输出包用途。',
required: true,
outputFormat: 'paragraph',
filenamePart: 'project-design-brief',
promptTemplate: '根据角色设定生成项目设计总说明:{character}. 说明产品定位、目标用户、整体外观、材料倾向、专利/生产/宣发三类用途,中文 300-500 字。',
checklist: textChecklist,
},
{
id: 'text_character_setting',
kind: 'project',
title: '角色设定说明',
description: 'IP 名称、性格、故事背景、识别元素和禁忌项。',
required: true,
outputFormat: 'bullets',
filenamePart: 'character-setting',
promptTemplate: '根据角色设定生成 IP 角色设定说明:{character}. 输出名称、性格、故事背景、3-5 个识别元素、禁忌项和后续生成一致性要求。',
checklist: textChecklist,
},
{
id: 'text_patent_product_name',
kind: 'patent',
title: '外观设计产品名称',
description: '用于专利申请的产品名称建议。',
required: true,
outputFormat: 'paragraph',
filenamePart: 'patent-product-name',
promptTemplate: '根据角色设定生成外观设计专利产品名称建议:{character}. 名称应简洁、客观、避免营销词,给出 3 个候选和推荐理由。',
checklist: textChecklist,
},
{
id: 'text_patent_product_use',
kind: 'patent',
title: '产品用途说明',
description: '外观设计专利“产品用途”字段草稿。',
required: true,
outputFormat: 'paragraph',
filenamePart: 'patent-product-use',
promptTemplate: '根据角色设定生成外观设计专利产品用途说明:{character}. 用客观语言说明该产品用于玩具、摆件、陪伴礼品或收藏展示等用途,中文 80-150 字。',
checklist: textChecklist,
},
{
id: 'text_patent_design_points',
kind: 'patent',
title: '设计要点说明',
description: '外观设计专利“设计要点”字段草稿。',
required: true,
outputFormat: 'paragraph',
filenamePart: 'patent-design-points',
promptTemplate: '根据角色设定生成外观设计专利设计要点:{character}. 聚焦形状、图案、色彩或其结合,说明最应保护的外观特征,避免功能性表述,中文 100-200 字。',
checklist: textChecklist,
},
{
id: 'text_patent_representative_view',
kind: 'patent',
title: '最能表明设计要点的图片',
description: '建议指定主视图或立体图作为代表图。',
required: true,
outputFormat: 'paragraph',
filenamePart: 'patent-representative-view',
promptTemplate: '根据角色设定和专利视图清单,生成“最能表明设计要点的图片”建议:{character}. 从主视图、前侧立体图、局部图中推荐一个,并说明理由。',
checklist: textChecklist,
},
{
id: 'text_patent_view_brief',
kind: 'patent',
title: '各视图简要说明',
description: '对应主视图、后视图、左右视图、俯仰视图、立体图和局部图。',
required: true,
outputFormat: 'table',
filenamePart: 'patent-view-brief',
promptTemplate: '根据角色设定生成外观设计专利各视图简要说明表:{character}. 覆盖主视图、后视图、左视图、右视图、俯视图、仰视图、前侧立体图、后侧立体图、局部放大图、使用状态图、成套产品图。',
checklist: textChecklist,
},
{
id: 'text_patent_color_claim',
kind: 'patent',
title: '色彩保护说明',
description: '是否请求保护色彩的说明建议。',
required: false,
outputFormat: 'paragraph',
filenamePart: 'patent-color-claim',
promptTemplate: '根据角色设定生成外观设计专利色彩保护建议:{character}. 判断是否建议请求保护色彩,说明理由,并标记需由专利代理最终确认。',
checklist: textChecklist,
},
{
id: 'text_production_brief',
kind: 'production',
title: '工厂打样总说明',
description: '给工厂的打样目标、尺寸、材料、结构和注意事项。',
required: true,
outputFormat: 'paragraph',
filenamePart: 'production-brief',
promptTemplate: '根据角色设定生成工厂打样总说明:{character}. 说明目标尺寸档、整体形态、材料倾向、软硬度、配件固定、缝线和待确认事项,中文 300-500 字。',
checklist: textChecklist,
},
{
id: 'text_production_cmf',
kind: 'production',
title: 'CMF 材料颜色工艺说明',
description: '颜色、材料、表面工艺、刺绣/印花和填充说明。',
required: true,
outputFormat: 'table',
filenamePart: 'production-cmf',
promptTemplate: '根据角色设定生成 CMF 表格:{character}. 列出部位、建议材料、颜色/色号占位、工艺、风险和待确认项。',
checklist: textChecklist,
},
{
id: 'text_production_bom',
kind: 'production',
title: 'BOM 部件清单',
description: '头、身体、四肢、顶部冠盖、侧面模块、肩带、扣件和包装等部件清单。',
required: true,
outputFormat: 'table',
filenamePart: 'production-bom',
promptTemplate: '根据角色设定生成软壳/毛绒智能玩具 BOM 部件清单:{character}. 包含部件名称、数量、材料、工艺、尺寸占位、供应/打样注意事项;不要默认加入动物耳朵、鼻子或尾巴。',
checklist: textChecklist,
},
{
id: 'text_production_qc',
kind: 'production',
title: '打样验收标准',
description: '尺寸偏差、颜色、刺绣、缝线、配件牢固度和安全提醒。',
required: true,
outputFormat: 'bullets',
filenamePart: 'production-qc',
promptTemplate: '根据角色设定生成工厂打样验收标准:{character}. 按尺寸、外观一致性、颜色、材料、刺绣印花、缝线、配件固定、包装和安全风险列出检查项。',
checklist: textChecklist,
},
{
id: 'text_accessory_brief',
kind: 'accessories',
title: '配件设计说明',
description: '说明独立配件清单、外观特点、组合关系和保护/打样重点。',
required: true,
outputFormat: 'bullets',
filenamePart: 'accessory-brief',
promptTemplate: '根据角色设定生成配件设计说明:{character}. 列出所有独立配件、每个配件的外观特点、与主娃娃的组合关系、是否可拆、专利保护重点和打样注意事项。',
checklist: textChecklist,
},
{
id: 'text_accessory_bom',
kind: 'accessories',
title: '配件 BOM 与工艺清单',
description: '独立配件的材料、数量、尺寸、连接方式和工艺。',
required: true,
outputFormat: 'table',
filenamePart: 'accessory-bom',
promptTemplate: '根据角色设定生成配件 BOM 与工艺清单:{character}. 表格列出配件名称、数量、材料、颜色、尺寸占位、连接方式、工艺、安全风险和待确认项。',
checklist: textChecklist,
},
{
id: 'text_marketing_core_copy',
kind: 'marketing',
title: '核心卖点文案',
description: '主标题、副标题、3-5 个卖点和短描述。',
required: true,
outputFormat: 'bullets',
filenamePart: 'marketing-core-copy',
promptTemplate: '根据角色设定生成宣发核心文案:{character}. 输出主标题 5 个、副标题 5 个、3-5 个卖点、短描述 3 版,适合电商和社媒。',
checklist: textChecklist,
},
{
id: 'text_marketing_detail_page',
kind: 'marketing',
title: '电商详情页文字结构',
description: '详情页模块标题、正文、卖点、尺寸、材料和包装说明。',
required: true,
outputFormat: 'table',
filenamePart: 'marketing-detail-page',
promptTemplate: '根据角色设定生成电商详情页文字结构:{character}. 按模块输出标题、正文、配图建议、卖点、尺寸/材料/包装说明,中文。',
checklist: textChecklist,
},
{
id: 'text_marketing_social_posts',
kind: 'marketing',
title: '社媒发布文案',
description: '小红书、朋友圈、短视频标题和标签。',
required: false,
outputFormat: 'bullets',
filenamePart: 'marketing-social-posts',
promptTemplate: '根据角色设定生成社媒发布文案:{character}. 输出小红书标题 10 个、正文 3 版、短视频标题 10 个、标签建议,避免夸大宣传。',
checklist: textChecklist,
},
{
id: 'text_video_script_pack',
kind: 'video',
title: '视频脚本文字包',
description: '旋转展示、开箱、触感、角色故事、工厂预览的旁白和字幕。',
required: false,
outputFormat: 'script',
filenamePart: 'video-script-pack',
promptTemplate: '根据角色设定生成视频脚本文字包:{character}. 覆盖 360 旋转、开箱、触感细节、角色故事、工厂预览,每条包含镜头、字幕、旁白、时长和画面说明。',
checklist: textChecklist,
},
];
export const PATENT_TEMPLATES: AssetTemplate[] = [
{
id: 'patent_front',
kind: 'patent',
view: 'front',
title: '主视图',
description: '正面外观,是外观保护的核心视角。',
required: true,
aspectRatio: '1:1',
filenamePart: 'front',
promptTemplate: '生成外观设计专利主视图:{character}. 正面正交视角,白底,产品居中,比例统一,无文字无水印无场景道具,清楚展示五官、身体比例、配色和配件。',
checklist: patentChecklist,
},
{
id: 'patent_back',
kind: 'patent',
view: 'back',
title: '后视图',
description: '展示背部、后脑、背部装甲/软壳结构、标签和后侧配件。',
required: true,
aspectRatio: '1:1',
filenamePart: 'back',
promptTemplate: '生成外观设计专利后视图:{character}. 背面正交视角,白底,产品居中,比例与主视图一致,无文字无水印,清楚展示背部装甲/软壳结构、背部肩带走向、标签位和后侧配件;不要加入尾巴或动物器官。',
checklist: patentChecklist,
},
{
id: 'patent_left',
kind: 'patent',
view: 'left',
title: '左视图',
description: '展示侧面厚度、头盔轮廓、侧面模块和四肢外凸关系。',
required: true,
aspectRatio: '1:1',
filenamePart: 'left',
promptTemplate: '生成外观设计专利左视图:{character}. 左侧正交视角,白底,比例统一,无文字无水印,突出头部厚度、头盔轮廓、侧面圆形模块、肩带和手脚位置;不要加入鼻子、耳朵或尾巴。',
checklist: patentChecklist,
},
{
id: 'patent_right',
kind: 'patent',
view: 'right',
title: '右视图',
description: '确认侧面对称性或非对称外观。',
required: true,
aspectRatio: '1:1',
filenamePart: 'right',
promptTemplate: '生成外观设计专利右视图:{character}. 右侧正交视角,白底,比例统一,无文字无水印,确认侧面轮廓、配件和四肢关系。',
checklist: patentChecklist,
},
{
id: 'patent_top',
kind: 'patent',
view: 'top',
title: '俯视图',
description: '展示头顶冠盖、品牌识别条和顶部装甲/软壳轮廓。',
required: true,
aspectRatio: '1:1',
filenamePart: 'top',
promptTemplate: '生成外观设计专利俯视图:{character}. 从正上方观察,白底,产品居中,无文字无水印,展示头顶冠盖、竖向品牌识别条、侧面模块和顶部轮廓;不要加入动物耳朵、角、鼻子或尾巴。',
checklist: patentChecklist,
},
{
id: 'patent_bottom',
kind: 'patent',
view: 'bottom',
title: '仰视图',
description: '展示脚底、底部标签、底盘和坐姿稳定结构。',
required: true,
aspectRatio: '1:1',
filenamePart: 'bottom',
promptTemplate: '生成外观设计专利仰视图:{character}. 从正下方观察,白底,产品居中,无文字无水印,展示脚底、底部标签、底盘形态和底部轮廓。',
checklist: patentChecklist,
},
{
id: 'patent_perspective_front',
kind: 'patent',
view: 'perspective_front',
title: '前侧立体图',
description: '45 度前侧展示整体体积和外观印象。',
required: true,
aspectRatio: '1:1',
filenamePart: 'perspective-front',
promptTemplate: '生成外观设计专利前 45 度立体图:{character}. 白底,产品居中,无文字无水印,展示整体体积、正面五官、身体厚度和主要配件。',
checklist: patentChecklist,
},
{
id: 'patent_perspective_back',
kind: 'patent',
view: 'perspective_back',
title: '后侧立体图',
description: '45 度后侧补充背部和体积信息。',
required: false,
aspectRatio: '1:1',
filenamePart: 'perspective-back',
promptTemplate: '生成外观设计专利后 45 度立体图:{character}. 白底,产品居中,无文字无水印,展示背面轮廓、背部肩带走向、后侧配件和整体厚度;不要加入尾巴或动物器官。',
checklist: patentChecklist,
},
{
id: 'patent_detail_face',
kind: 'patent',
view: 'detail_face',
title: '脸部局部放大',
description: '放大眼睛、嘴巴、腮红和表情细节。',
required: false,
aspectRatio: '1:1',
filenamePart: 'detail-face',
promptTemplate: '生成外观设计专利脸部局部放大图:{character}. 白底,无文字无水印,只放大脸部区域,清楚展示眼睛、嘴巴、腮红、表情和刺绣/印花边界。',
checklist: patentChecklist,
},
{
id: 'patent_detail_accessory',
kind: 'patent',
view: 'detail_accessory',
title: '配件局部放大',
description: '放大肩带、扣件、徽章、侧面模块或机械/软壳识别部件。',
required: false,
aspectRatio: '1:1',
filenamePart: 'detail-accessory',
promptTemplate: '生成外观设计专利配件局部放大图:{character}. 白底,无文字无水印,放大最具识别度的肩带、扣件、胸前徽章、侧面模块或机械/软壳部件;不要加入尾巴或动物器官。',
checklist: patentChecklist,
},
{
id: 'patent_use_state',
kind: 'patent',
view: 'use_state',
title: '使用状态参考图',
description: '当有可拆、可变形、互动结构时,展示使用或组合状态。',
required: false,
aspectRatio: '1:1',
filenamePart: 'use-state',
promptTemplate: '生成外观设计专利使用状态参考图:{character}. 白底或浅灰底,无营销文案无水印,展示可拆卸配件、可互动结构、摆放或抱持状态;画面仅用于说明产品外观状态,不加入场景道具。',
checklist: patentChecklist,
},
{
id: 'patent_set_view',
kind: 'patent',
view: 'set_view',
title: '成套产品图',
description: '当娃娃与配件/包装成套申请时,展示组合状态。',
required: false,
aspectRatio: '1:1',
filenamePart: 'set-view',
promptTemplate: '生成外观设计专利成套产品图:{character}. 白底,无文字无水印,将主娃娃、核心配件和包装/说明卡按成套申请视角整齐摆放,比例统一,清楚表达组合外观。',
checklist: patentChecklist,
},
];
export const PRODUCTION_TEMPLATES: AssetTemplate[] = [
{
id: 'prod_front_spec',
kind: 'production',
view: 'front_spec',
title: '正面打样图',
description: '标注总高、头宽、身体宽和手脚位置。',
required: true,
aspectRatio: '1:1',
filenamePart: 'front-spec',
promptTemplate: '生成软壳/毛绒智能玩具生产正面打样图:{character}. 正面正交视角,白底,带清晰尺寸标注线和中文标注:总高 40cm+、正面宽约 28cm、头宽、身体宽、手长、腿长、关键配件位置。',
checklist: productionChecklist,
},
{
id: 'prod_back_spec',
kind: 'production',
view: 'back_spec',
title: '背面打样图',
description: '标注背部结构、背部肩带、标签位和拼接线。',
required: true,
aspectRatio: '1:1',
filenamePart: 'back-spec',
promptTemplate: '生成软壳/毛绒智能玩具生产背面打样图:{character}. 背面正交视角,白底,带中文标注:后脑、背部装甲/软壳拼接、背部肩带、标签位、拼接线和后侧配件;不要加入尾巴。',
checklist: productionChecklist,
},
{
id: 'prod_left_spec',
kind: 'production',
view: 'left_spec',
title: '左侧打样图',
description: '标注侧面厚度、头盔轮廓、侧面模块和肩带关系。',
required: true,
aspectRatio: '1:1',
filenamePart: 'left-spec',
promptTemplate: '生成软壳/毛绒智能玩具生产左侧打样图:{character}. 左侧正交视角,白底,带中文尺寸标注:头部厚度、身体厚度、侧面模块位置、肩带侧面走向、四肢侧面位置、侧深约 22cm不要加入鼻子、耳朵或尾巴。',
checklist: productionChecklist,
},
{
id: 'prod_right_spec',
kind: 'production',
view: 'right_spec',
title: '右侧打样图',
description: '确认侧面对称性或非对称细节。',
required: true,
aspectRatio: '1:1',
filenamePart: 'right-spec',
promptTemplate: '生成软壳/毛绒智能玩具生产右侧打样图:{character}. 右侧正交视角,白底,带中文尺寸标注,确认侧面厚度、侧面模块、配件位置和非对称细节,侧深约 22cm不要加入动物器官。',
checklist: productionChecklist,
},
{
id: 'prod_top_spec',
kind: 'production',
view: 'top_spec',
title: '俯视打样图',
description: '标注头顶结构、顶部配件和俯视轮廓。',
required: true,
aspectRatio: '1:1',
filenamePart: 'top-spec',
promptTemplate: '生成软壳/毛绒智能玩具生产俯视打样图:{character}. 从正上方观察,白底,带中文尺寸标注:头顶冠盖、竖向品牌识别条、侧面模块、顶部配件、头部宽深比例;不要加入动物耳朵、角或尾巴。',
checklist: productionChecklist,
},
{
id: 'prod_bottom_spec',
kind: 'production',
view: 'bottom_spec',
title: '仰视打样图',
description: '标注脚底、防滑布、底部标签和底部结构。',
required: true,
aspectRatio: '1:1',
filenamePart: 'bottom-spec',
promptTemplate: '生成软壳/毛绒智能玩具生产仰视打样图:{character}. 从正下方观察,白底,带中文标注:脚底、防滑材料、底部标签、底盘结构、站立稳定接触面。',
checklist: productionChecklist,
},
{
id: 'prod_dimension_overall',
kind: 'production',
view: 'dimension_overall',
title: '整体尺寸图',
description: '标注总高、坐高、臂展和头身比。',
required: true,
aspectRatio: '1:1',
filenamePart: 'dimension-overall',
promptTemplate: '生成软壳/毛绒智能玩具整体尺寸图:{character}. 白底,技术说明风格,标注总高 40cm+、正面宽约 28cm、侧面深约 22cm、臂展、头身比、头宽、身体宽单位 cm。',
checklist: productionChecklist,
},
{
id: 'prod_dimension_parts',
kind: 'production',
view: 'dimension_parts',
title: '部件尺寸图',
description: '标注头顶冠盖、侧面模块、肩带、扣件、徽章和四肢尺寸。',
required: true,
aspectRatio: '4:5',
filenamePart: 'dimension-parts',
promptTemplate: '生成软壳/毛绒智能玩具部件尺寸图:{character}. 技术说明版式,拆出头顶冠盖、侧面模块、肩带、扣件、胸前徽章、手臂、腿脚和脚底,标注长宽厚和数量,单位 cm小部件可用 mm不要加入动物耳朵、角、鼻子或尾巴。',
checklist: productionChecklist,
},
{
id: 'prod_scale_reference',
kind: 'production',
view: 'scale_reference',
title: '比例参考图',
description: '用手持或常见物辅助工厂理解尺寸。',
required: false,
aspectRatio: '4:5',
filenamePart: 'scale-reference',
promptTemplate: '生成玩具比例参考图:{character}. 手持、桌面或 22cm 水瓶对比,只用于生产沟通,清楚表达 40cm+ 实体产品尺寸感,不加入营销海报元素。',
checklist: productionChecklist,
},
{
id: 'prod_material_board',
kind: 'production',
view: 'material_board',
title: '材料工艺板',
description: '说明面料、刺绣、印花、塑料件和填充。',
required: true,
aspectRatio: '4:5',
filenamePart: 'material-board',
promptTemplate: '生成软壳/毛绒智能玩具材料工艺板:{character}. 干净版式,包含短绒/软硅胶/软壳样块、橙色 visor 透明件或发光屏说明、深灰结构件、织带、扣件说明、填充软硬度和站立稳定要求,中文标注。',
checklist: productionChecklist,
},
{
id: 'prod_color_board',
kind: 'production',
view: 'color_board',
title: '颜色板',
description: '主色、辅色、五官、衣服和配件色。',
required: true,
aspectRatio: '4:5',
filenamePart: 'color-board',
promptTemplate: '生成软壳/毛绒智能玩具颜色板:{character}. 包含白色主体、深灰结构、黑色肩带、橙色 visor/功能扣、红色小点缀、徽章色,给出 HEX 色值和建议 Pantone 占位,中文标注。',
checklist: productionChecklist,
},
{
id: 'prod_embroidery_detail',
kind: 'production',
view: 'embroidery_detail',
title: '刺绣印花细节',
description: '放大眼睛、嘴、腮红、图案和 Logo 工艺。',
required: true,
aspectRatio: '4:5',
filenamePart: 'embroidery-detail',
promptTemplate: '生成软壳/毛绒智能玩具标识/印花细节图:{character}. 放大橙色 visor 边界、胸前 M 徽章、头顶 MEEY 品牌条、肩带纹理和小标识,标注印刷/贴片/刺绣线色、边界、线宽占位和工艺注意事项。',
checklist: productionChecklist,
},
{
id: 'prod_seam_map',
kind: 'production',
view: 'seam_map',
title: '缝线拼接图',
description: '标注头身、侧面模块、四肢和配件连接方式。',
required: true,
aspectRatio: '4:5',
filenamePart: 'seam-map',
promptTemplate: '生成软壳/毛绒智能玩具拼接线图:{character}. 白底技术图风格,用虚线或彩色线标注头身连接、侧面模块连接、四肢连接、肩带/扣件固定点和开口返口位置,中文说明;不要加入动物耳朵或尾巴。',
checklist: productionChecklist,
},
{
id: 'prod_filling_spec',
kind: 'production',
view: 'filling_spec',
title: '填充说明图',
description: '说明软硬度、重心、坐姿稳定和填充区域。',
required: true,
aspectRatio: '4:5',
filenamePart: 'filling-spec',
promptTemplate: '生成软壳/毛绒智能玩具填充说明图:{character}. 剖面/分区技术说明风格,标注软壳包覆、短绒覆盖层、内部支撑/填充区域、软硬度、重心、站立稳定要求和不可过硬区域。',
checklist: productionChecklist,
},
{
id: 'prod_part_breakdown',
kind: 'production',
view: 'part_breakdown',
title: '拆件图',
description: '拆分头盔/软壳、身体、四肢、侧面模块、肩带和扣件。',
required: true,
aspectRatio: '4:5',
filenamePart: 'part-breakdown',
promptTemplate: '生成软壳/毛绒智能玩具拆件图:{character}. 技术图风格,白底,将头盔/软壳、身体、四肢、侧面模块、肩带、扣件、胸前徽章、脚底分开展示,带中文部件名称和数量标注;不要加入动物耳朵、鼻子或尾巴。',
checklist: productionChecklist,
},
{
id: 'prod_accessory_sheet',
kind: 'production',
view: 'accessory_sheet',
title: '配件单页',
description: '独立展示帽子、背包、吊牌、可拆物等。',
required: false,
aspectRatio: '4:5',
filenamePart: 'accessory-sheet',
promptTemplate: '生成玩具配件单页:{character}. 将头顶冠盖、侧面模块、肩带、橙色功能扣、胸前徽章、吊牌、电子件或装饰件独立展示,标注数量、材料、连接方式和尺寸建议,中文技术版式。',
checklist: productionChecklist,
},
{
id: 'prod_packaging_structure',
kind: 'production',
view: 'packaging_structure',
title: '包装结构图',
description: '礼盒、吊卡、内托和说明卡草案。',
required: false,
aspectRatio: '4:5',
filenamePart: 'packaging-structure',
promptTemplate: '生成玩具包装结构草图:{character}. 展示礼盒、吊卡、内托、说明卡和包装尺寸建议,干净白底,中文标注,适合给工厂沟通。',
checklist: productionChecklist,
},
{
id: 'prod_label_tag',
kind: 'production',
view: 'label_tag',
title: '标签吊牌图',
description: '吊牌、水洗标和品牌标位置与内容草案。',
required: false,
aspectRatio: '4:5',
filenamePart: 'label-tag',
promptTemplate: '生成玩具标签吊牌说明图:{character}. 展示吊牌、水洗标、品牌标的位置和内容草案,包含尺寸建议和中文标注,白底技术版式。',
checklist: productionChecklist,
},
];
export const ACCESSORY_TEMPLATES: AssetTemplate[] = [
{
id: 'acc_inventory_sheet',
kind: 'accessories',
view: 'inventory_sheet',
title: '配件总览清单',
description: '识别并汇总所有独立配件、可拆件、包装随附物。',
required: true,
aspectRatio: '4:5',
filenamePart: 'inventory-sheet',
promptTemplate: '生成玩具配件总览清单图:{character}. 白底技术版式,识别并摆放所有独立配件、可拆件、头顶冠盖、侧面模块、肩带、扣件、徽章、吊牌、包装随附物,标注名称、数量、是否可拆和用途。',
checklist: productionChecklist,
},
{
id: 'acc_front',
kind: 'accessories',
view: 'front',
title: '配件主视图',
description: '独立配件正面视图。',
required: true,
aspectRatio: '1:1',
filenamePart: 'front',
promptTemplate: '生成独立配件外观主视图:{character}. 仅展示最核心独立配件或配件组,正面正交视角,白底,产品居中,无营销文案,比例统一。',
checklist: patentChecklist,
},
{
id: 'acc_back',
kind: 'accessories',
view: 'back',
title: '配件后视图',
description: '独立配件背面视图。',
required: true,
aspectRatio: '1:1',
filenamePart: 'back',
promptTemplate: '生成独立配件外观后视图:{character}. 仅展示最核心独立配件或配件组,背面正交视角,白底,产品居中,无营销文案,展示背部结构、连接点和标签位。',
checklist: patentChecklist,
},
{
id: 'acc_left',
kind: 'accessories',
view: 'left',
title: '配件左视图',
description: '独立配件左侧厚度和连接关系。',
required: true,
aspectRatio: '1:1',
filenamePart: 'left',
promptTemplate: '生成独立配件外观左视图:{character}. 左侧正交视角,白底,产品居中,无营销文案,展示配件厚度、扣件、绑带、卡扣或缝合连接结构。',
checklist: patentChecklist,
},
{
id: 'acc_right',
kind: 'accessories',
view: 'right',
title: '配件右视图',
description: '独立配件右侧厚度和非对称细节。',
required: true,
aspectRatio: '1:1',
filenamePart: 'right',
promptTemplate: '生成独立配件外观右视图:{character}. 右侧正交视角,白底,产品居中,无营销文案,确认配件侧面轮廓、厚度、扣件和非对称细节。',
checklist: patentChecklist,
},
{
id: 'acc_top',
kind: 'accessories',
view: 'top',
title: '配件俯视图',
description: '独立配件顶部轮廓。',
required: true,
aspectRatio: '1:1',
filenamePart: 'top',
promptTemplate: '生成独立配件外观俯视图:{character}. 从正上方观察配件,白底,产品居中,无营销文案,展示顶部轮廓、开口、扣件或装饰。',
checklist: patentChecklist,
},
{
id: 'acc_bottom',
kind: 'accessories',
view: 'bottom',
title: '配件仰视图',
description: '独立配件底部和固定结构。',
required: true,
aspectRatio: '1:1',
filenamePart: 'bottom',
promptTemplate: '生成独立配件外观仰视图:{character}. 从正下方观察配件,白底,产品居中,无营销文案,展示底部结构、固定点、标签或接触面。',
checklist: patentChecklist,
},
{
id: 'acc_perspective_front',
kind: 'accessories',
view: 'perspective_front',
title: '配件前侧立体图',
description: '45 度展示配件整体体积。',
required: true,
aspectRatio: '1:1',
filenamePart: 'perspective-front',
promptTemplate: '生成独立配件前 45 度立体图:{character}. 白底,产品居中,无营销文案,展示配件整体体积、正面细节、厚度和连接结构。',
checklist: patentChecklist,
},
{
id: 'acc_perspective_back',
kind: 'accessories',
view: 'perspective_back',
title: '配件后侧立体图',
description: '45 度展示配件背部和连接点。',
required: false,
aspectRatio: '1:1',
filenamePart: 'perspective-back',
promptTemplate: '生成独立配件后 45 度立体图:{character}. 白底,产品居中,无营销文案,展示配件背部轮廓、固定点、扣件、绑带或缝合连接结构。',
checklist: patentChecklist,
},
{
id: 'acc_detail_connection',
kind: 'accessories',
view: 'detail_connection',
title: '配件连接结构放大',
description: '放大卡扣、绑带、魔术贴、缝线或磁吸等连接方式。',
required: true,
aspectRatio: '1:1',
filenamePart: 'detail-connection',
promptTemplate: '生成配件连接结构局部放大图:{character}. 白底技术说明风格,放大卡扣、绑带、魔术贴、缝线、磁吸或插扣连接位置,中文标注连接方式和打样注意事项。',
checklist: productionChecklist,
},
{
id: 'acc_dimension_spec',
kind: 'accessories',
view: 'dimension_spec',
title: '配件尺寸标注图',
description: '标注配件长宽厚、连接点和安全尺寸。',
required: true,
aspectRatio: '4:5',
filenamePart: 'dimension-spec',
promptTemplate: '生成配件尺寸标注图:{character}. 技术图版式,标注每个独立配件的长、宽、厚、连接点距离、卡扣/绑带尺寸和安全圆角要求,单位 cm/mm。',
checklist: productionChecklist,
},
{
id: 'acc_material_process',
kind: 'accessories',
view: 'material_process',
title: '配件材料工艺说明图',
description: '说明配件材料、颜色、工艺和安全风险。',
required: true,
aspectRatio: '4:5',
filenamePart: 'material-process',
promptTemplate: '生成配件材料工艺说明图:{character}. 列出独立配件的材料、颜色、表面工艺、固定方式、边缘处理、安全风险和待确认项,中文标注。',
checklist: productionChecklist,
},
{
id: 'acc_with_doll_assembly',
kind: 'accessories',
view: 'with_doll_assembly',
title: '配件与主娃娃组合图',
description: '展示配件安装到主娃娃后的组合状态。',
required: true,
aspectRatio: '4:5',
filenamePart: 'with-doll-assembly',
promptTemplate: '生成配件与主娃娃组合说明图:{character}. 展示配件安装到主娃娃前后对比、安装位置、连接方向、组合状态和拆卸状态,白底,中文标注。',
checklist: productionChecklist,
},
];
export const MARKETING_TEMPLATES: AssetTemplate[] = [
{
id: 'mkt_hero_kv',
kind: 'marketing',
view: 'hero_kv',
title: '主视觉 KV',
description: '一眼讲清角色、气质和核心卖点。',
required: true,
aspectRatio: '16:9',
filenamePart: 'hero-kv',
promptTemplate: '生成玩具新品主视觉 KV{character}. 高级商业摄影,干净但有情绪的背景,突出角色核心卖点,可加入简洁中文标题占位,但不要遮挡产品。',
checklist: marketingChecklist,
},
{
id: 'mkt_white_front',
kind: 'marketing',
view: 'white_front',
title: '白底正面商品图',
description: '电商基础商品图。',
required: true,
aspectRatio: '1:1',
filenamePart: 'white-front',
promptTemplate: '生成电商白底商品图:{character}. 正面,产品居中,柔和阴影,高清质感,无多余文字,适合主图。',
checklist: marketingChecklist,
},
{
id: 'mkt_white_45',
kind: 'marketing',
view: 'white_45',
title: '白底 45 度商品图',
description: '展示体积和可爱感。',
required: true,
aspectRatio: '1:1',
filenamePart: 'white-45',
promptTemplate: '生成电商白底 45 度商品图:{character}. 前侧 45 度,产品居中,柔和阴影,展示整体体积、软壳/短绒触感和主要配件。',
checklist: marketingChecklist,
},
{
id: 'mkt_white_back',
kind: 'marketing',
view: 'white_back',
title: '白底背面商品图',
description: '展示背部和后侧细节。',
required: true,
aspectRatio: '1:1',
filenamePart: 'white-back',
promptTemplate: '生成电商白底背面商品图:{character}. 背面,产品居中,柔和阴影,展示背部结构、背部肩带、标签和后侧配件;不要加入尾巴。',
checklist: marketingChecklist,
},
{
id: 'mkt_detail_face',
kind: 'marketing',
view: 'detail_face',
title: '脸部细节图',
description: '展示 visor 情绪屏、边框和面部结构。',
required: true,
aspectRatio: '4:5',
filenamePart: 'detail-face',
promptTemplate: '生成玩具面部情绪屏细节宣发图:{character}. 近景特写,突出橙色弧形 visor、深灰面部底层、黑色边框、发光纹理和温暖情绪反馈可加入简短卖点文案。',
checklist: marketingChecklist,
},
{
id: 'mkt_detail_material',
kind: 'marketing',
view: 'detail_material',
title: '面料触感图',
description: '展示软壳、短绒、填充和触感卖点。',
required: true,
aspectRatio: '4:5',
filenamePart: 'detail-material',
promptTemplate: '生成玩具面料触感宣发图:{character}. 微距商业摄影,突出短绒覆盖、软壳触感、柔软填充、可抱触感,同时保留机甲设计边界,可加入简短中文卖点。',
checklist: marketingChecklist,
},
{
id: 'mkt_detail_accessory',
kind: 'marketing',
view: 'detail_accessory',
title: '配件卖点图',
description: '突出服装、配件、机关或标志性部件。',
required: true,
aspectRatio: '4:5',
filenamePart: 'detail-accessory',
promptTemplate: '生成玩具配件/机关细节宣发图:{character}. 近景商业摄影,突出最具识别度的肩带、灰色扣件、橙色功能扣、胸前 M 徽章、侧面模块或机械/软壳件,可加入简短卖点文案;不要加入尾巴或动物器官。',
checklist: marketingChecklist,
},
{
id: 'mkt_scene_bedroom',
kind: 'marketing',
view: 'scene_bedroom',
title: '卧室陪伴场景',
description: '床头、儿童房或治愈陪伴场景。',
required: true,
aspectRatio: '4:5',
filenamePart: 'scene-bedroom',
promptTemplate: '生成玩具卧室陪伴场景图:{character}. 温暖床头或儿童房场景,柔和自然光,突出陪伴、治愈和礼物感。',
checklist: marketingChecklist,
},
{
id: 'mkt_scene_desk',
kind: 'marketing',
view: 'scene_desk',
title: '桌面陪伴场景',
description: '办公桌、学习桌或创作桌场景。',
required: true,
aspectRatio: '4:5',
filenamePart: 'scene-desk',
promptTemplate: '生成玩具桌面陪伴场景图:{character}. 办公桌/学习桌/创作桌场景,清爽自然光,突出日常陪伴、桌搭和收藏展示感。',
checklist: marketingChecklist,
},
{
id: 'mkt_scene_gift',
kind: 'marketing',
view: 'scene_gift',
title: '礼物开箱场景',
description: '礼物、节日、开箱和赠送场景。',
required: true,
aspectRatio: '4:5',
filenamePart: 'scene-gift',
promptTemplate: '生成玩具礼物/节日/开箱场景图:{character}. 温暖礼物氛围,展示包装、打开瞬间和产品露出,突出送礼、惊喜和治愈感。',
checklist: marketingChecklist,
},
{
id: 'mkt_size_lifestyle',
kind: 'marketing',
view: 'size_lifestyle',
title: '尺寸对比图',
description: '用手持、桌面或沙发对比表达尺寸。',
required: true,
aspectRatio: '4:5',
filenamePart: 'size-lifestyle',
promptTemplate: '生成玩具尺寸对比宣发图:{character}. 手持、沙发或 22cm 水瓶生活方式场景,体现 40cm+ 真实大小和可抱感,可加入尺寸文案占位。',
checklist: marketingChecklist,
},
{
id: 'mkt_social_square',
kind: 'marketing',
view: 'social_square',
title: '社媒方形封面',
description: '社媒 1:1 封面图。',
required: false,
aspectRatio: '1:1',
filenamePart: 'social-square',
promptTemplate: '生成社媒 1:1 方形封面图:{character}. 强视觉中心,适合小红书/微博/朋友圈,留出短标题区域,产品不变形,整体风格与宣发包统一。',
checklist: marketingChecklist,
},
{
id: 'mkt_social_vertical',
kind: 'marketing',
view: 'social_vertical',
title: '竖版社媒封面',
description: '小红书、短视频封面3:4 或 9:16。',
required: false,
aspectRatio: '9:16',
filenamePart: 'social-vertical',
promptTemplate: '生成竖版社媒封面图:{character}. 9:16适合小红书/短视频,强视觉中心,留出标题区域,产品不变形,风格统一。',
checklist: marketingChecklist,
},
{
id: 'mkt_packaging_render',
kind: 'marketing',
view: 'packaging_render',
title: '包装渲染图',
description: '展示包装外观、开窗、内托和礼盒质感。',
required: false,
aspectRatio: '4:5',
filenamePart: 'packaging-render',
promptTemplate: '生成玩具包装商业渲染图:{character}. 展示礼盒、开窗、内托、吊卡或说明卡,商业摄影质感,包装风格与角色一致,可加入品牌占位但不要真实商标。',
checklist: marketingChecklist,
},
{
id: 'mkt_character_story',
kind: 'marketing',
view: 'character_story',
title: '角色故事图',
description: '表达 IP 性格、故事和情绪价值。',
required: false,
aspectRatio: '4:5',
filenamePart: 'character-story',
promptTemplate: '生成 IP 角色故事宣发图:{character}. 结构化版式,包含角色名字、性格关键词、故事短句、陪伴场景和核心识别元素,中文文案占位。',
checklist: marketingChecklist,
},
{
id: 'mkt_ecommerce_longpage',
kind: 'marketing',
view: 'ecommerce_longpage',
title: '电商详情页模块',
description: '整合概念、尺寸、材质、卖点和包装。',
required: false,
aspectRatio: 'long',
filenamePart: 'ecommerce-longpage',
promptTemplate: '生成电商详情页长图模块:{character}. 结构化版式,包含角色故事、核心卖点、尺寸、材质、细节、包装展示,中文标题和短文案占位。',
checklist: marketingChecklist,
},
{
id: 'video_turntable',
kind: 'marketing',
view: 'video_turntable',
title: '360 度旋转视频脚本',
description: '电商 360 度转台展示分镜。',
required: false,
aspectRatio: '16:9',
filenamePart: 'video-turntable',
promptTemplate: '生成 360 度旋转展示短视频分镜板:{character}. 16:9包含 6 个镜头缩略画面和中文脚本:正面、左前 45 度、侧面、背面、右前 45 度、回到正面,适合电商展示。',
checklist: marketingChecklist,
},
{
id: 'video_unboxing',
kind: 'marketing',
view: 'video_unboxing',
title: '开箱视频脚本',
description: '包装到娃娃展示的开箱流程。',
required: false,
aspectRatio: '16:9',
filenamePart: 'video-unboxing',
promptTemplate: '生成玩具开箱短视频分镜板:{character}. 16:9包含包装特写、打开、取出、细节、抱持展示、结尾定格中文脚本和镜头时长占位。',
checklist: marketingChecklist,
},
{
id: 'video_touch_detail',
kind: 'marketing',
view: 'video_touch_detail',
title: '触感细节视频脚本',
description: '揉捏、触感和细节特写分镜。',
required: false,
aspectRatio: '16:9',
filenamePart: 'video-touch-detail',
promptTemplate: '生成玩具触感细节短视频分镜板:{character}. 16:9展示揉捏、毛绒触感、刺绣细节、配件互动和恢复形态中文脚本占位。',
checklist: marketingChecklist,
},
{
id: 'video_story_intro',
kind: 'marketing',
view: 'video_story_intro',
title: '角色设定短片脚本',
description: '社媒角色介绍短片分镜。',
required: false,
aspectRatio: '9:16',
filenamePart: 'video-story-intro',
promptTemplate: '生成竖版角色设定短片分镜板:{character}. 9:16适合社媒包含角色登场、性格关键词、陪伴场景、卖点定格和结尾 CTA中文脚本占位。',
checklist: marketingChecklist,
},
{
id: 'video_factory_preview',
kind: 'marketing',
view: 'video_factory_preview',
title: '工厂预览视频脚本',
description: '打样前内部沟通概念展示分镜。',
required: false,
aspectRatio: '16:9',
filenamePart: 'video-factory-preview',
promptTemplate: '生成工厂预览概念短片分镜板:{character}. 16:9面向内部沟通展示外观、尺寸、材料、拆件和包装要点中文说明占位不做消费者营销话术。',
checklist: marketingChecklist,
},
];
function withPackAnchor(templates: AssetTemplate[], rootTemplateId: string): AssetTemplate[] {
return templates.map(template => ({
...template,
anchorTemplateId: template.id === rootTemplateId ? undefined : rootTemplateId,
}));
}
export const PACK_TEMPLATES: Record<PackKind, AssetTemplate[]> = {
patent: withPackAnchor(PATENT_TEMPLATES, 'patent_front'),
accessories: withPackAnchor(ACCESSORY_TEMPLATES, 'acc_inventory_sheet'),
production: withPackAnchor(PRODUCTION_TEMPLATES, 'prod_front_spec'),
marketing: withPackAnchor(MARKETING_TEMPLATES, 'mkt_white_front'),
};
export const PACK_TEMPLATE_SUMMARY = PACK_ORDER.map(kind => ({
kind,
label: PACK_LABELS[kind],
totalCount: PACK_TEMPLATES[kind].length,
requiredCount: PACK_TEMPLATES[kind].filter(template => template.required).length,
optionalCount: PACK_TEMPLATES[kind].filter(template => !template.required).length,
}));
export const TEMPLATE_SLOT_SUMMARY = {
templateFreezeVersion: TEMPLATE_FREEZE_VERSION,
imageAssetCount: PACK_TEMPLATE_SUMMARY.reduce((sum, pack) => sum + pack.totalCount, 0),
requiredImageAssetCount: PACK_TEMPLATE_SUMMARY.reduce((sum, pack) => sum + pack.requiredCount, 0),
optionalImageAssetCount: PACK_TEMPLATE_SUMMARY.reduce((sum, pack) => sum + pack.optionalCount, 0),
textAssetCount: TEXT_TEMPLATES.length,
requiredTextAssetCount: TEXT_TEMPLATES.filter(template => template.required).length,
optionalTextAssetCount: TEXT_TEMPLATES.filter(template => !template.required).length,
videoTaskCount: VIDEO_TEMPLATES.length,
storyboardAssetCount: MARKETING_TEMPLATES.filter(template => template.id.startsWith('video_')).length,
totalReservedSlotCount: PACK_TEMPLATE_SUMMARY.reduce((sum, pack) => sum + pack.totalCount, 0) + TEXT_TEMPLATES.length + VIDEO_TEMPLATES.length,
packSummary: PACK_TEMPLATE_SUMMARY,
};
export function getPackTemplates(kind: PackKind): AssetTemplate[] {
return PACK_TEMPLATES[kind];
}
export function renderCharacterSummary(spec: CharacterSpec): string {
return [
`${spec.name}${spec.oneLiner}`,
`目标用户:${spec.targetUser}`,
`形态:${spec.speciesShape}`,
`比例:${spec.bodyRatio}`,
`五官:${spec.faceFeatures}`,
`配色:${spec.colorPalette.join('、')}`,
`材料:${spec.materials.join('、')}`,
`配件:${spec.accessories.join('、')}`,
`识别元素:${spec.signatureElements.join('、')}`,
`专利重点:${spec.patentFocus.join('、')}`,
`营销角度:${spec.marketingAngle.join('、')}`,
`生成约束:${spec.negativePrompt}`,
].join('');
}