feat: add zodiac fantasy pig video templates
This commit is contained in:
2
RULES.md
2
RULES.md
@@ -9,7 +9,7 @@
|
||||
## 部署事实
|
||||
- 平台:个人 VPS `76.13.31.179`,Docker Compose,接入现有 Coolify Traefik
|
||||
- 发布状态:VPS 生产已发布,仅个人使用
|
||||
- 最近生产数据同步:2026-05-31,`有你家族 · 生肖幻装系列` session `s_zodiac_fantasy_20260531_main` 已同步到 VPS `data/`,包含 12 张专业投影六视图专利图、18 张系列/单款宣发图、6 份专业文字资产;产品尺度统一按 50cm+ 具身 AI 智能陪伴机器人处理,视频暂缓未生成。本轮使用 `scripts/generate-zodiac-fantasy-series-assets.mjs` 以桌面参考图 `1400a0c9-6501-4a8f-942a-59d5e82edacd.png` 为视觉锚点生成。
|
||||
- 最近生产数据同步:2026-05-31,`有你家族 · 生肖幻装系列` session `s_zodiac_fantasy_20260531_main` 已同步到 VPS `data/`,包含 12 张专业投影六视图专利图、18 张系列/单款宣发图、6 份专业文字资产、3 条亥猪 C 位 45 秒 Seedance 分段拼接视频(展示视频、触感细节、群体快闪);产品尺度统一按 50cm+ 具身 AI 智能陪伴机器人处理。本轮使用 `scripts/generate-zodiac-fantasy-series-assets.mjs` 以桌面参考图 `1400a0c9-6501-4a8f-942a-59d5e82edacd.png` 为视觉锚点生成图片,视频使用 `scripts/seedance-60s-compose.mjs` 的 `zodiac_fantasy_pig_*` 模板生成。
|
||||
- 最近生产部署:2026-05-31,`有你家族 · 亥猪` 模板约束已发布并完成生产:视频任务统一改为 45 秒;图片包模板移除默认动物鼻子、尾巴、耳朵等提示,改为 40cm+ AI 陪伴机器人摆件、正面宽约 28cm、侧面深约 22cm、软壳/短绒触感但不改变基础机甲结构。生产 session `s_mpsn5ef3_edc352` 已完成 64 张基础图片、4 张十二生肖装甲组合图、5 条 45 秒亥猪视频和 2 条 30 秒十二生肖集合视频。
|
||||
- 上一轮生产部署:2026-05-30,视频 provider 改为默认 Seedance(`VIDEO_PROVIDER=seedance`),OpenAI Sora 仅作为可选回退;实测 Ark / Seedance `doubao-seedance-2-0` R2V 不接受 `duration=60`,当前 Seedance 单任务按 15 秒提交。若仍需 60 秒成片,需要分段拼接,或回退 OpenAI Sora 的延展链路。
|
||||
- 最近生产数据同步:2026-05-30,`有你家族 · 糯糯猪` session `s_mps3u047_48e383` 已同步到 VPS `data/`,包含专利包、配件包、生产打样包、宣发包共 64 张图片;Seedance 生产环境 Key 已换新并作为当前默认视频 provider。
|
||||
|
||||
@@ -15,6 +15,10 @@ if (!sessionId) fail('Usage: node scripts/seedance-60s-compose.mjs run --session
|
||||
const SEGMENT_SECONDS = clampNumber(args['segment-seconds'], 15, 3, 15);
|
||||
const TARGET_SECONDS = clampNumber(args['target-seconds'] || args.seconds, 45, SEGMENT_SECONDS, 180);
|
||||
const SEGMENT_COUNT = Math.ceil(TARGET_SECONDS / SEGMENT_SECONDS);
|
||||
const PRODUCT_SIZE_LABEL = args['product-size'] || (sessionId.includes('zodiac_fantasy') ? '50cm+' : '40cm+');
|
||||
const PRODUCT_SIZE_TEXT = sessionId.includes('zodiac_fantasy')
|
||||
? '主角始终是“有你家族 · 亥猪”50cm+ 具身 AI 智能陪伴机器人,必须明显是家庭空间级真实产品体量;可用成人手部、沙发、展台、包装盒或其他生肖机器人衬托比例,不能像桌面小摆件、掌心玩偶、挂件或盲盒。'
|
||||
: '主角始终是“有你家族 · 亥猪”40cm+ AI 陪伴机甲摆件,高度必须超过 40cm,正面宽约 28cm,侧面深约 22cm。';
|
||||
const TEMPLATE_IDS = [
|
||||
'video_turntable',
|
||||
'video_unboxing',
|
||||
@@ -73,6 +77,24 @@ const VIDEO_TEMPLATE_BLUEPRINTS = {
|
||||
ratio: '16:9',
|
||||
prompt: character => `生成 ${TARGET_SECONDS} 秒十二生肖装甲走秀短片:${character}. 以亥猪基型为领队,十二套外观像产品发布走秀一样在白色科技展台上轮换展示。颜色可以更丰富,但基础形象不能变:橙色 visor 情绪屏、胸前 M 徽章、斜挎黑色能量肩带、灰橙扣件和短胖站姿全部保留。每个生肖只通过可换装甲区域、色彩符号和表面短绒/软壳材料区分,禁止真实动物器官、禁止重装战斗化。镜头要有节奏感、旋转台、局部特写和集合收束,音乐为原创韩流感电子鼓点,不使用真实歌曲。`,
|
||||
},
|
||||
zodiac_fantasy_pig_showcase: {
|
||||
title: '亥猪 C 位展示视频',
|
||||
description: `${TARGET_SECONDS} 秒,亥猪作为 C 位主角,其它 11 款生肖幻装作为背景阵列。`,
|
||||
ratio: '16:9',
|
||||
prompt: character => `生成 ${TARGET_SECONDS} 秒“有你家族 · 生肖幻装系列 · 亥猪 C 位展示视频”:${character}. 亥猪必须始终是画面 C 位和视觉焦点,粉色猪系毛绒幻装、粉紫情绪 visor、M 家族徽章、斜挎能量肩带、圆润机甲基型必须清晰保留。其它 11 款生肖机器人只能作为背景阵列、舞台两侧、虚化陈列或后景灯箱出现,不抢主角。镜头结构:开场亥猪 visor 点亮,随后 360 度慢旋展示正面、侧面、背面和顶部,再用展台灯光扫过背景十二生肖阵列,最后亥猪回到正中定格。硬性尺度:全系列都是 50cm+ 具身 AI 智能陪伴机器人,不是小手办。画面风格酷炫、干净、女性向高级感,原创韩流感电子节奏,不使用真实受版权保护歌曲。`,
|
||||
},
|
||||
zodiac_fantasy_pig_touch_detail: {
|
||||
title: '亥猪 C 位触感细节',
|
||||
description: `${TARGET_SECONDS} 秒,展示亥猪毛绒软壳、visor、徽章、肩带和脚底细节。`,
|
||||
ratio: '9:16',
|
||||
prompt: character => `生成 ${TARGET_SECONDS} 秒“亥猪 C 位触感细节视频”:${character}. 竖版近景,亥猪是唯一主角,其他生肖只作为远处柔焦背景或镜面反射,不抢画面。重点展示粉色短绒毛绒外层、软壳机甲基体、粉紫 visor 情绪屏呼吸光、胸前 M 徽章、斜挎肩带、猪系胸扣、侧面圆形模块、圆润手臂、稳定脚底。需要有手部轻触、指尖划过短绒、按压软壳边缘、visor 亮起回应的细节,但手部比例必须证明这是 50cm+ 大体量陪伴机器人。禁止把亥猪拍成小玩偶、钥匙扣或桌面小公仔。音乐是原创韩流电子节奏和干净鼓点,不使用真实歌曲。`,
|
||||
},
|
||||
zodiac_fantasy_pig_group_flash: {
|
||||
title: '亥猪 C 位群体快闪',
|
||||
description: `${TARGET_SECONDS} 秒,十二生肖群体快闪,亥猪领舞/领队/C 位收束。`,
|
||||
ratio: '16:9',
|
||||
prompt: character => `生成 ${TARGET_SECONDS} 秒“十二生肖群体快闪视频”:${character}. 亥猪必须是 C 位领队,先单独登场,再由其它 11 款生肖幻装机器人从左右和后方快闪入场形成阵列。其它角色只做背景节奏、队形变化和颜色补充,不改变亥猪主角身份。镜头节奏:快速灯光点亮、生肖角色依次闪现、亥猪向前一步、全员 visor 同步呼吸光、群体 3 排阵列收束。所有角色都是 50cm+ 具身 AI 智能陪伴机器人,体量接近家居摆件/陪伴设备,不是盲盒。风格要酷炫、潮流、女性向高级,原创韩流感电子鼓点,不使用真实受版权保护歌曲。`,
|
||||
},
|
||||
};
|
||||
|
||||
const env = {
|
||||
@@ -83,7 +105,7 @@ const apiKey = env.SEEDANCE_API_KEY;
|
||||
if (!apiKey) fail('SEEDANCE_API_KEY missing');
|
||||
const apiBase = env.SEEDANCE_API_BASE || 'https://ark.cn-beijing.volces.com/api/v3';
|
||||
const model = env.SEEDANCE_MODEL || 'doubao-seedance-2-0-260128';
|
||||
const publicAppUrl = env.PUBLIC_APP_URL || env.NEXT_PUBLIC_APP_URL || 'https://ai-toy.kang-kang.com';
|
||||
const publicAppUrl = args['public-app-url'] || env.PUBLIC_APP_URL || env.NEXT_PUBLIC_APP_URL || 'https://ai-toy.kang-kang.com';
|
||||
const sessionPath = path.join(root, 'data', 'sessions', `${sessionId}.json`);
|
||||
const trackerDir = path.join(root, 'data', 'video-segments');
|
||||
const trackerPath = path.join(trackerDir, `${sessionId}-${runLabel}.json`);
|
||||
@@ -504,8 +526,8 @@ function segmentPrompt(prompt, part) {
|
||||
'',
|
||||
`这是 Seedance 分段生成的第 ${part}/${SEGMENT_COUNT} 段,每段 ${SEGMENT_SECONDS} 秒,最终会拼成 ${TARGET_SECONDS} 秒完整视频。`,
|
||||
partCue(part),
|
||||
'硬性尺寸约束:主角始终是“有你家族 · 亥猪”40cm+ AI 陪伴机甲摆件,高度必须超过 40cm,正面宽约 28cm,侧面深约 22cm。',
|
||||
'必须明显是 40cm 以上的实体产品:可用成人双手、包装盒、展台、桌面或家居物件证明比例;不能像掌心小玩偶、桌面迷你摆件、挂件或钥匙扣。',
|
||||
`硬性尺寸约束:${PRODUCT_SIZE_TEXT}`,
|
||||
`必须明显是 ${PRODUCT_SIZE_LABEL} 以上的实体产品:可用成人双手、包装盒、展台、桌面或家居物件证明比例;不能像掌心小玩偶、桌面迷你摆件、挂件或钥匙扣。`,
|
||||
'参考图里的中文和数字只用于理解尺寸比例;成片画面中不要生成任何数字、厘米文字、箭头尺寸标注或文字海报,避免出现错误读数。',
|
||||
'必须保留白色圆润头盔、橙色弧形 visor 情绪屏、深灰面部底层、头顶 MEEY 竖条、胸前 M 徽章、斜挎黑色能量肩带、灰橙功能扣、侧面圆形模块、短胖站立比例。',
|
||||
'外部可呈现亲肤短绒、软壳或软硅胶复合触感,但不能改变基础机甲设计。禁止猪鼻子、猪尾巴、写实猪耳、猪蹄、四足身体、其它动物主体、武器和攻击性重装机甲。',
|
||||
@@ -552,7 +574,20 @@ function findAnchor(session) {
|
||||
}
|
||||
|
||||
function findVideoReferenceUrls(session, fallbackUrl) {
|
||||
if (session.id?.includes('zodiac_fantasy') || sessionId.includes('zodiac_fantasy')) {
|
||||
return [
|
||||
findAssetUrl(session, 'zodiac_fantasy_pig_sku_card'),
|
||||
findAssetUrl(session, 'patent_pig_six_view'),
|
||||
fallbackUrl,
|
||||
].filter(Boolean).filter((url, index, urls) => urls.indexOf(url) === index);
|
||||
}
|
||||
const preferredTemplateIds = [
|
||||
'zodiac_fantasy_pig_sku_card',
|
||||
'zodiac_fantasy_collection_kv',
|
||||
'zodiac_fantasy_retail_grid',
|
||||
'zodiac_fantasy_patent_overview',
|
||||
'zodiac_fantasy_female_lifestyle',
|
||||
'patent_pig_six_view',
|
||||
'zodiac_hero_lineup',
|
||||
'zodiac_armor_grid',
|
||||
'zodiac_material_palette',
|
||||
|
||||
Reference in New Issue
Block a user