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 = { 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 = { 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(';'); }