{
  "title": "一只瓶子，20种看法",
  "complete": true,
  "source_plans": [
    "plans/original-three.json",
    "plans/a.json",
    "plans/b.json",
    "plans/c.json"
  ],
  "groups": [
    {
      "key": "original",
      "label": "原故事加强版",
      "count": 3
    },
    {
      "key": "story",
      "label": "生活 / 角色剧情",
      "count": 6
    },
    {
      "key": "design",
      "label": "视觉设计",
      "count": 6
    },
    {
      "key": "motion",
      "label": "动态 / 3D 方法",
      "count": 5
    }
  ],
  "videos": [
    {
      "id": "01",
      "title_zh": "以为是摆件，原来是瓶子",
      "title_en": "Decor, or bottle?",
      "path": "final/01-decor-or-bottle.mp4",
      "poster": "previews/01-decor-or-bottle.jpg",
      "short_style": "误认与揭晓",
      "description_zh": "一致性加强版：从真实闭盖物件特写提出“摆件还是瓶子”，接原女主的好奇与微笑；真实已开盖瓶口揭晓身份，实拍与原照片展示挂件、绳结和黑白轮廓。",
      "method_zh": "保留原版女主与误认故事。AI人物仅使用[30,140,310,551]脸部裁框，生成瓶子完整排除；实际商品全部是原视频/照片。原片已经开盖，没有编造拧开动作。局部照片各1.5秒，末4秒真实运动商品与CTA。",
      "ownership_zh": "商品仅来自原实拍与原照片；沿用原样片的人物局部，经逐帧检查与裁切排除全部生成商品。旧完整 AI 版独立保留作对照。",
      "models_zh": "veo_3_1-fast-fl：复用原样片人物脸部或头肩裁框，逐帧排除生成商品。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 11550014
      }
    },
    {
      "id": "02",
      "title_zh": "桌面布置的最后一件",
      "title_en": "The finishing touch",
      "path": "final/02-the-finishing-touch.mp4",
      "poster": "previews/02-the-finishing-touch.jpg",
      "short_style": "桌面最后一件",
      "description_zh": "一致性加强版：手把本子和笔对齐，为桌面留出空位；随后原片里的真实瓶子站稳，原挂件与双圆外形成为桌面布置的最后一个细节。",
      "method_zh": "全新Omni Flash10s无商品桌面整理镜头，区别于08的打包俯拍。生成画面仅白桌、笔记本、笔、手和背景植物，留白处始终无瓶无杯。商品放稳、挂绳、渐变与最后CTA均来自原片或原照片。",
      "ownership_zh": "商品来自原实拍、原照片或原 RGB 透明前景；AI 只负责不含该商品的人物与环境，英文文字由本地合成。",
      "models_zh": "omni_flash-10s：仅生成不含该商品的人物或环境；商品另接原素材。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 10917039
      }
    },
    {
      "id": "03",
      "title_zh": "出门前，又回头拿了它",
      "title_en": "One more thing",
      "path": "final/03-one-more-thing.mp4",
      "poster": "previews/03-one-more-thing.jpg",
      "short_style": "出门前回头",
      "description_zh": "一致性加强版：保留原玄关男主出门停步、回望的故事；原片真实握瓶接人物转身与最后一眼，实物轮廓、挂件、原Logo承担所有商品证明。",
      "method_zh": "原03-pause仅用[380,80,340,604]人物裁框；03-carry仅用6–9秒[420,30,220,390]头肩裁框，生成瓶子全部排除，未模糊Logo充数。真实抓握、挂件和末4秒产品动作均取原视频/照片。",
      "ownership_zh": "商品仅来自原实拍与原照片；沿用原样片的人物局部，经逐帧检查与裁切排除全部生成商品。旧完整 AI 版独立保留作对照。",
      "models_zh": "veo_3_1-fast-fl、omni_flash-10s-fl：复用原样片人物脸部或头肩裁框，逐帧排除生成商品。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 12176773
      }
    },
    {
      "id": "04",
      "title_zh": "给自己五分钟离线",
      "title_en": "Five minutes, offline.",
      "path": "final/04-five-minutes-offline.mp4",
      "poster": "previews/04-five-minutes-offline.jpg",
      "short_style": "雨天咖啡馆",
      "description_zh": "咖啡馆窗边的人把手机翻面，停下来望雨；空手伸向画外后切到真实瓶身，短暂回到人物放松的表情，最后实拍细节邀请观众选一个安静角落。",
      "method_zh": "Veo 3.1 Lite 全新无商品人物视频＋真实手持瓶身；跨镜头画外伸手转实拍，不伪造人物持瓶。暖米色画幅与 Didot 书页字体。",
      "ownership_zh": "商品来自原实拍、原照片或原 RGB 透明前景；AI 只负责不含该商品的人物与环境，英文文字由本地合成。",
      "models_zh": "veo_3_1-lite：仅生成不含该商品的人物或环境；商品另接原素材。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 14552747
      }
    },
    {
      "id": "05",
      "title_zh": "黑白穿搭的最后一个细节",
      "title_en": "Black. White. One more detail.",
      "path": "final/05-black-white-one-more-detail.mp4",
      "poster": "previews/05-black-white-one-more-detail.jpg",
      "short_style": "黑白时装编辑",
      "description_zh": "黑白造型已经穿好，角色理一下外套；实拍商品黑白渐变与挂绳呼应服装，再回到整理外套与抬眼的动作，最后把选择交给观众。",
      "method_zh": "Omni Flash 10s 新拍黑白穿搭角色，无商品；交叉剪辑原片手持与短暂闭盖原照片，窄体时装标题、黑白硬切和大留白。",
      "ownership_zh": "商品来自原实拍、原照片或原 RGB 透明前景；AI 只负责不含该商品的人物与环境，英文文字由本地合成。",
      "models_zh": "omni_flash-10s：仅生成不含该商品的人物或环境；商品另接原素材。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 13052492
      }
    },
    {
      "id": "06",
      "title_zh": "手终于停下的那一分钟",
      "title_en": "When your hands finally stop.",
      "path": "final/06-when-your-hands-stop.mp4",
      "poster": "previews/06-when-your-hands-stop.jpg",
      "short_style": "工作日的一次停顿",
      "description_zh": "键盘上的手一直很忙，忽然停住，肩膀放松；转入真实瓶口和轮廓的近距离观察，再回到人物小歇，最后以真实手持动作结束。",
      "method_zh": "Veo 3.1 Lite 工作人物镜头，无可读电脑屏幕；真人物叙事转原片已开盖瓶口，不声称开盖、饮水或恢复专注。Menlo 打字机字与暖纸色便笺构图。 生成画面右边意外出现杯子，最终成片已以608×1080裁框完整去除。 末镜原片0.85倍速，结束时保留Logo与完整双圆轮廓。",
      "ownership_zh": "商品来自原实拍、原照片或原 RGB 透明前景；AI 只负责不含该商品的人物与环境，英文文字由本地合成。",
      "models_zh": "veo_3_1-lite：仅生成不含该商品的人物或环境；商品另接原素材。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 14389072
      }
    },
    {
      "id": "07",
      "title_zh": "两道圆线，一次发现",
      "title_en": "Two curves. One discovery.",
      "path": "final/07-two-curves-one-discovery.mp4",
      "poster": "previews/07-two-curves-one-discovery.jpg",
      "short_style": "画册中的形状发现",
      "description_zh": "画家在纸上画抽象的上下两个圆圈，画到一半停下；切到实拍瓶身，原来两圆母题能在日常物件中找到；画纸与实物交替，最后邀请观众看轮廓。",
      "method_zh": "Omni Flash 10s 生成手绘抽象圆圈动作，明确是插画母题，不描画或重建商品。真实手持转动和原照片细节完成揭晓。奶油画册底与手写/衬线文字。 末镜原片约0.82倍速，让两圆与原Logo保持到最后一帧。",
      "ownership_zh": "商品来自原实拍、原照片或原 RGB 透明前景；AI 只负责不含该商品的人物与环境，英文文字由本地合成。",
      "models_zh": "omni_flash-10s：仅生成不含该商品的人物或环境；商品另接原素材。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 13002573
      }
    },
    {
      "id": "08",
      "title_zh": "出门前还空着一个位置",
      "title_en": "One empty space.",
      "path": "final/08-one-empty-space.mp4",
      "poster": "previews/08-one-empty-space.jpg",
      "short_style": "晨间打包清单",
      "description_zh": "手整理笔记本和墨镜，停在空位上；真实瓶子作为心中想到的下一件出现，回到空位动作，再用实物细节收尾。没有展示或暗示瓶子已经装入包内。",
      "method_zh": "Veo 3.1 Fast 全新俯拍整理物件镜头，无杯无瓶；画外联想剪辑到原片。绿色纸感清单文字、俯拍与手持角度转换，原照片仅作挂件短特写。",
      "ownership_zh": "商品来自原实拍、原照片或原 RGB 透明前景；AI 只负责不含该商品的人物与环境，英文文字由本地合成。",
      "models_zh": "veo_3_1-fast：仅生成不含该商品的人物或环境；商品另接原素材。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 13071037
      }
    },
    {
      "id": "09",
      "title_zh": "小小向导，认真带看",
      "title_en": "Tiny guide. Big opinions.",
      "path": "final/09-tiny-guide-big-opinions.mp4",
      "poster": "previews/09-tiny-guide-big-opinions.jpg",
      "short_style": "纸星角色导览",
      "description_zh": "一个折纸小星星成为认真带看的向导：先看轮廓、再看绳结与小葫芦、再看黑白渐变，最后让观众选最喜欢的细节。所有商品始终来自原视频或原照片。",
      "method_zh": "内置 ImageGen 新生成透明折纸星星（非商品），本地设计入场、轻微身体动作和换位。商品主画面100%真实视频，原照片挂件特写1.8秒；没有AI重绘商品或3D商品。",
      "ownership_zh": "商品来自原实拍与原照片；纸星是 AI 生成的虚构向导，英文文字与角色动作由本地合成。",
      "models_zh": "内置 ImageGen：仅生成透明纸星角色；工具未披露底层具体型号。",
      "metadata": {
        "duration": 20.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 12683805
      }
    },
    {
      "id": "10",
      "title_zh": "漫画分格：这轮廓有反转",
      "title_en": "A shape with a plot twist",
      "path": "final/10-plot-twist-panels.mp4",
      "poster": "previews/10-plot-twist-panels.jpg",
      "short_style": "波普漫画分格",
      "description_zh": "漫画页里的真实视频先抛出轮廓疑问，再分格看瓶口、渐变和挂绳，最后邀请观众选最先注意到的细节。",
      "method_zh": "原始动态视频被放进粗黑边漫画分格，波普黄蓝平面、分格切换和本地大字承担漫画节奏；商品未做漫画化或重绘。",
      "ownership_zh": "商品来自原实拍与原照片；纸张、网点、胶片边框、指示与英文排字均为本地设计。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 21.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 11047473
      }
    },
    {
      "id": "11",
      "title_zh": "纸张手账：把小细节记下来",
      "title_en": "A little detail journal",
      "path": "final/11-little-details-journal.mp4",
      "poster": "previews/11-little-details-journal.jpg",
      "short_style": "纸张手账拼贴",
      "description_zh": "像翻开一本随手记录的小手账：完整轮廓、黑白渐变、真实小葫芦特写，最后记下最喜欢的一处。",
      "method_zh": "斜放的动态实拍卡片、纸胶带和手写字构成手账；纸张为程序纹理，挂件只用原照片短暂特写，其余时间由真实视频承载动作。",
      "ownership_zh": "商品来自原实拍与原照片；纸张、网点、胶片边框、指示与英文排字均为本地设计。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 21.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 10707646
      }
    },
    {
      "id": "12",
      "title_zh": "留白编辑：双圆的形状研究",
      "title_en": "A study in curves",
      "path": "final/12-a-study-in-curves.mp4",
      "poster": "previews/12-a-study-in-curves.jpg",
      "short_style": "留白衬线编辑",
      "description_zh": "以杂志编辑页的节奏，从轮廓到渐变，再到细节与整体，留白让真实商品本身成为视觉重点。",
      "method_zh": "大号衬线字与勃艮第红细线留出呼吸空间，竖向实拍、双栏动态画面和两秒原照片交替；没有改变商品颜色或材质。",
      "ownership_zh": "商品来自原实拍与原照片；纸张、网点、胶片边框、指示与英文排字均为本地设计。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 21.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 8653506
      }
    },
    {
      "id": "13",
      "title_zh": "胶片接触印样：值得再看一遍",
      "title_en": "The second-look reel",
      "path": "final/13-second-look-reel.mp4",
      "poster": "previews/13-second-look-reel.jpg",
      "short_style": "胶片接触印样",
      "description_zh": "把一次观察剪成连续胶片：整体、瓶口、绳结、双圆轮廓来回呼应，短镜头逐渐累积成“再看一眼”的记忆。",
      "method_zh": "黑色胶片边框、真实视频双窗口、快切和短暂片门擦过构成影院式节奏；仅处理周围版式，商品影像保持原色。",
      "ownership_zh": "商品来自原实拍与原照片；纸张、网点、胶片边框、指示与英文排字均为本地设计。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 21.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 10314783
      }
    },
    {
      "id": "14",
      "title_zh": "侦探证据板：寻找小葫芦",
      "title_en": "The case of the little detail",
      "path": "final/14-case-of-the-little-detail.mp4",
      "poster": "previews/14-case-of-the-little-detail.jpg",
      "short_style": "侦探证据板",
      "description_zh": "把观察做成一场轻松的细节侦探游戏：先看轮廓，沿着黑绳找线索，用真实照片揭晓小葫芦，再回到整体。",
      "method_zh": "档案纸、证据框、短促翻页和红色指示圈由本地绘制；指示圈在原照片上准确圈住小葫芦，商品主体始终来自原素材。",
      "ownership_zh": "商品来自原实拍与原照片；纸张、网点、胶片边框、指示与英文排字均为本地设计。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 21.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 10618505
      }
    },
    {
      "id": "15",
      "title_zh": "动态字体：记住一个细节",
      "title_en": "Remember one detail",
      "path": "final/15-remember-one-detail.mp4",
      "poster": "previews/15-remember-one-detail.jpg",
      "short_style": "大字记忆挑战",
      "description_zh": "用大字与画面开合做一次视觉记忆挑战：轮廓、绳结、小葫芦依次出现，最后问观众最先记住了什么。",
      "method_zh": "超大窄体字、移动分区和真实视频窗口轮流占据视线；小葫芦只用1.8秒原照片，未用剪影重着色或AI补画商品。",
      "ownership_zh": "商品来自原实拍与原照片；纸张、网点、胶片边框、指示与英文排字均为本地设计。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 21.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 9087540
      }
    },
    {
      "id": "16",
      "title_zh": "换一个场景，还是会多看一眼",
      "title_en": "A window somewhere new",
      "path": "final/16-a-window-somewhere-new.mp4",
      "poster": "previews/16-a-window-somewhere-new.jpg",
      "short_style": "动态舞台与实拍窗口",
      "description_zh": "咖啡窗边的环境在轻轻变化，原实拍画面像一扇移动的展窗进入新舞台。手持转动、挂绳和原 Logo 都留在完整实拍画幅中。最后用设计偏好提问收束。",
      "method_zh": "先测试 macOS Vision 动态前景：首样将绿植并入前景并截断细绳，因此弃用该蒙版。正式片用完整原实拍视频窗口与已批准的无商品 Veo 环境视频合成，窗口连续推近、平移；这不是动态抠像。",
      "ownership_zh": "商品保留在完整原实拍画幅内；无商品环境视频只作外部舞台。没有把视频瓶体单独抠出。",
      "models_zh": "veo_3_1-lite：复用既有无商品环境视频；正式片未用 Vision 动态抠像。",
      "metadata": {
        "duration": 22.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 14757549
      }
    },
    {
      "id": "17",
      "title_zh": "给它一座立体小展厅",
      "title_en": "A gallery of its own",
      "path": "final/17-a-gallery-of-its-own.mp4",
      "poster": "previews/17-a-gallery-of-its-own.jpg",
      "short_style": "3D 展厅与实拍平面",
      "description_zh": "镜头穿过一座薄荷绿的立体小展厅。画面中的“展品”是一块播放原实拍视频的竖向平面，随着三维镜头位置变化产生透视，片中商品始终是原素材。",
      "method_zh": "Three.js 0.186 的真实透视相机、几何框架、地面和灯光；原实拍剪辑作为 VideoTexture 放在等比例 PlaneGeometry 上，Chrome / Puppeteer 逐帧确定性渲染。瓶体没有三维重建，也没有生成未知视角。",
      "ownership_zh": "展厅、框架、地面与灯光为真实 3D 场景；商品只在播放原实拍的平面里，没有瓶体三维重建。",
      "models_zh": "Three.js 0.186.0、Chrome / Puppeteer：本地 3D 场景渲染；未调用商品生成模型。",
      "metadata": {
        "duration": 22.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 14669941
      }
    },
    {
      "id": "18",
      "title_zh": "从情绪板上跳出来",
      "title_en": "Off the page",
      "path": "final/18-off-the-page.mp4",
      "poster": "previews/18-off-the-page.jpg",
      "short_style": "逐格纸片拼贴",
      "description_zh": "原照片抠图以逐格跳动从纸面上滑入，马上接到真实手持视频。纸片、胶带与画面框在节拍中换位；静态商品只作开场和一次短暂回看，主体由原视频继续讲述。",
      "method_zh": "Pillow 以 10fps 的离散位置绘制纸片舞台，原 RGB 透明照片只显示 1.7 秒与 1.1 秒，其余 19.2 秒显示动态原实拍；FFmpeg 30fps 输出。无 AI 商品图、无镜像和产品重着色。",
      "ownership_zh": "开场与短暂回看使用原 RGB 透明照片，其余以原实拍为主；纸片舞台与逐格位置由本地绘制。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 22.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 12362178
      }
    },
    {
      "id": "19",
      "title_zh": "两路实拍，同时看见形与细节",
      "title_en": "Two views. One obsession.",
      "path": "final/19-two-views-one-obsession.mp4",
      "poster": "previews/19-two-views-one-obsession.jpg",
      "short_style": "多路动态分屏",
      "description_zh": "完整实拍先给出形状，接着两路不同时间的真实动态画面并排播放，再切换到三层横向局部。瓶身、绳结与 Logo 的观看节奏互相接力，末段重新回到完整画幅。",
      "method_zh": "两条独立原实拍 EDL 同时解码；双竖屏、三层横幅局部和完整画幅之间切换，所有裁切都从真实运动帧取样，不拼造未拍到的角度。",
      "ownership_zh": "商品与细节全部取自原实拍或原照片；分屏、局部裁切、标注与英文文字由本地制作。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 22.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 10674408
      }
    },
    {
      "id": "20",
      "title_zh": "一份只讲看得见的细节观察",
      "title_en": "The detail study",
      "path": "final/20-the-detail-study.mp4",
      "poster": "previews/20-the-detail-study.jpg",
      "short_style": "纪实细节观察",
      "description_zh": "以干净的观察记录逐一看双圆轮廓、分离的环盖、颈圈与挂绳。短暂使用原闭盖照片明确展示小挂件，然后回到真实手持画面，邀请观众选择自己先注意的细节。",
      "method_zh": "动态原视频为主体，以核对过的动态局部裁切突出分离的环盖与颈圈，标注仅描述可见外形。挂件细节用原 RGB 照片 1.8 秒，不画内部结构、不标虚构尺寸，也不把分离的盖子描述为拧开动作。",
      "ownership_zh": "商品与细节全部取自原实拍或原照片；分屏、局部裁切、标注与英文文字由本地制作。",
      "models_zh": "Pillow / FFmpeg 本地设计与剪辑；未调用生成模型。",
      "metadata": {
        "duration": 22.0,
        "width": 1080,
        "height": 1920,
        "fps": "30/1",
        "codec": "h264",
        "pixel_format": "yuv420p",
        "audio_streams": 0,
        "bytes": 9072241
      }
    }
  ]
}
