{
  "blueprintId": "blueprint-38",
  "kind": "workflow",
  "slug": "three-product-launch-with-end-card",
  "mode": "image-to-video",
  "modelId": "MiniMax-H3",
  "evidenceClass": "local-post-production-fixture-model-not-executed",
  "assets": [
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/01-lamp-overview.png",
      "sourcePath": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/01-lamp-overview.svg",
      "role": "first_frame",
      "shotId": "01-lamp-overview",
      "label": {
        "en": "01 · Original fictional lamp overview",
        "zh": "01 · 原创虚构台灯整体"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/02-bottle-detail.png",
      "sourcePath": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/02-bottle-detail.svg",
      "role": "first_frame",
      "shotId": "02-bottle-detail",
      "label": {
        "en": "02 · Original fictional bottle detail",
        "zh": "02 · 原创虚构水瓶细节"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/03-pouch-context.png",
      "sourcePath": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/03-pouch-context.svg",
      "role": "first_frame",
      "shotId": "03-pouch-context",
      "label": {
        "en": "03 · Original fictional pouch context",
        "zh": "03 · 原创虚构收纳包场景"
      }
    }
  ],
  "artifacts": [
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/manifest.json",
      "label": {
        "en": "Complete bilingual shot/source manifest",
        "zh": "完整双语镜头与来源清单"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/shot-list.csv",
      "label": {
        "en": "Three-shot handoff list",
        "zh": "三镜头命名交接表"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/export-checklist.csv",
      "label": {
        "en": "Final export checklist",
        "zh": "最终导出检查表"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/end-card.en.svg",
      "label": {
        "en": "Editable English end card",
        "zh": "可编辑英文字卡"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/end-card.zh.svg",
      "label": {
        "en": "Editable Chinese end card",
        "zh": "可编辑中文字卡"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/end-card.en.png",
      "label": {
        "en": "English card raster export",
        "zh": "英文字卡 PNG"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/end-card.zh.png",
      "label": {
        "en": "Chinese card raster export",
        "zh": "中文字卡 PNG"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/demo-disclosure-overlay.svg",
      "label": {
        "en": "Persistent fixture disclosure source",
        "zh": "全片示范说明源图层"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/assemble-demo.py",
      "label": {
        "en": "Reproducible Python + FFmpeg assembly",
        "zh": "可复现 Python + FFmpeg 拼装脚本"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/render-assets.mjs",
      "label": {
        "en": "Optional existing-Sharp SVG rasterizer",
        "zh": "可选现有 Sharp SVG 栅格化脚本"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/README.en.md",
      "label": {
        "en": "English reproduction and handoff instructions",
        "zh": "英文复现与交接说明"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/README.zh.md",
      "label": {
        "en": "Chinese reproduction and handoff instructions",
        "zh": "中文复现与交接说明"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/assembled-demo.mp4",
      "label": {
        "en": "Actual local assembly demonstration, not model output",
        "zh": "真实本地拼装示范，非模型输出"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/execution-receipt.json",
      "label": {
        "en": "Actual local execution and hash receipt",
        "zh": "真实本地执行与哈希回执"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/stream-and-decode-report.txt",
      "label": {
        "en": "Actual full-decode stream report",
        "zh": "实际完整解码报告"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/01-overview.png",
      "label": {
        "en": "Keyframe 1: overview",
        "zh": "关键帧 1：整体"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/02-detail.png",
      "label": {
        "en": "Keyframe 2: detail",
        "zh": "关键帧 2：细节"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/03-context.png",
      "label": {
        "en": "Keyframe 3: context",
        "zh": "关键帧 3：场景"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/04-end-card.png",
      "label": {
        "en": "Keyframe 4: end card",
        "zh": "关键帧 4：结束卡"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/three-product-launch-practice-package.zip",
      "label": {
        "en": "Complete editable reproduction package",
        "zh": "完整可编辑复现素材包"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/assembled-demo.mp4",
      "label": {
        "en": "Actual English-end-card local edit, not model output",
        "zh": "真实英文字卡本地剪辑，非模型输出"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/execution-receipt.json",
      "label": {
        "en": "Actual English local execution receipt",
        "zh": "真实英文本地执行回执"
      }
    },
    {
      "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/workflow-brief.json",
      "label": {
        "en": "Complete editable bilingual workflow brief",
        "zh": "完整可编辑双语工作流简报"
      }
    }
  ],
  "shots": [
    {
      "shotId": "01-lamp-overview",
      "sourceSvg": "01-lamp-overview.svg",
      "sourcePng": "01-lamp-overview.png",
      "demoSeconds": 3,
      "demoTimelineStart": 0,
      "demoTimelineEnd": 3,
      "sourceClass": "original-fictional-product-vector",
      "plannedModelStage": "not-executed",
      "purpose": {
        "en": "Show the complete desk-lamp silhouette.",
        "zh": "展示台灯整体轮廓。"
      },
      "plannedPrompt": {
        "en": "Use this original fictional desk-lamp illustration as the first frame. Preserve the illustrated style, shade outline, visible stem and base. The lamp stays still. The camera makes a very small slow push-in while keeping the entire shade and base visible, then settles. Keep lighting steady. Do not add a person, product claims, a label, or new parts.",
        "zh": "用这张原创虚构台灯插画作为首帧，保留插画风格、灯罩轮廓、可见支柱和底座。台灯静止，摄影机缓慢小幅推进，始终完整露出灯罩与底座，再停稳。照明稳定，不增加人物、商品功能宣称、标签或新部件。"
      }
    },
    {
      "shotId": "02-bottle-detail",
      "sourceSvg": "02-bottle-detail.svg",
      "sourcePng": "02-bottle-detail.png",
      "demoSeconds": 3,
      "demoTimelineStart": 3,
      "demoTimelineEnd": 6,
      "sourceClass": "original-fictional-product-vector",
      "plannedModelStage": "not-executed",
      "purpose": {
        "en": "Inspect the bottle-cap connection and visible shoulder.",
        "zh": "检查瓶盖连接与可见瓶肩。"
      },
      "plannedPrompt": {
        "en": "Use this original fictional bottle illustration as the first frame. Keep the illustrated bottle, cap, camera and base stationary. Only a soft narrow reflection on the bottle changes slightly and then settles. Preserve the visible cap-to-neck connection and shoulder outline. Do not open the cap, infer hidden parts, add a logo or invent product performance.",
        "zh": "用这张原创虚构水瓶插画作为首帧。插画瓶身、瓶盖、机位和底部静止，只有瓶身上一条柔和窄反光轻微变化后停稳。保留可见瓶盖与瓶颈的连接、瓶肩轮廓。不打开瓶盖，不推测隐藏部件，不加标志，不编造商品性能。"
      }
    },
    {
      "shotId": "03-pouch-context",
      "sourceSvg": "03-pouch-context.svg",
      "sourcePng": "03-pouch-context.png",
      "demoSeconds": 3,
      "demoTimelineStart": 6,
      "demoTimelineEnd": 9,
      "sourceClass": "original-fictional-product-vector",
      "plannedModelStage": "not-executed",
      "purpose": {
        "en": "Show the pouch beside a notebook without implying size or capacity measurements.",
        "zh": "展示收纳包与笔记本的场景关系，不暗示尺寸或容量实测。"
      },
      "plannedPrompt": {
        "en": "Use this original fictional canvas-pouch illustration as the first frame. Hold the same quiet tabletop composition with the pouch and blank notebook still. Preserve the pouch outline, visible zipper and notebook placement. Keep the camera fixed and lighting steady, with a calm held ending. Do not unzip the pouch, add hands, add wording, or claim dimensions, capacity or material performance.",
        "zh": "用这张原创虚构帆布收纳包插画作为首帧，保持安静的桌面构图，收纳包和空白笔记本都静止。保留包的轮廓、可见拉链和笔记本位置。固定机位，照明稳定，以安静停留结束。不打开拉链，不加手、不加文字，不宣称尺寸、容量或材料性能。"
      }
    }
  ],
  "execution": {
    "passedScenarios": [
      "fullDecodePassed",
      "expectedFrameCount",
      "expectedDuration",
      "expectedResolution",
      "expectedFrameRate",
      "h264Video",
      "noAudioStream",
      "persistentDisclosureWasComposited",
      "modelGenerationWasNotCalled",
      "sourceFramesAreOriginalIllustrations"
    ],
    "productionTaskRun": false,
    "modelGenerationStage": "not-executed",
    "localEditingStage": "passed",
    "receiptPath": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/execution-receipt.json",
    "localLanguageRuns": [
      "en",
      "zh"
    ],
    "receiptsByLocale": {
      "en": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/execution-receipt.json",
      "zh": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/execution-receipt.json"
    }
  },
  "demonstration": {
    "path": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/assembled-demo.mp4",
    "type": "local-static-frame-editing-assembly",
    "notModelGeneratedVideo": true,
    "notRealProductFootage": true,
    "width": 1280,
    "height": 720,
    "fps": 24,
    "seconds": 12,
    "language": "zh",
    "keyframes": [
      "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/01-overview.png",
      "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/02-detail.png",
      "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/03-context.png",
      "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/04-end-card.png"
    ],
    "pathsByLocale": {
      "en": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/assembled-demo.mp4",
      "zh": "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/assembled-demo.mp4"
    },
    "keyframesByLocale": {
      "en": [
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/01-overview.png",
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/02-detail.png",
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/03-context.png",
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo-en/04-end-card.png"
      ],
      "zh": [
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/01-overview.png",
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/02-detail.png",
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/03-context.png",
        "/learning-assets/pseo-batch2-20261014/three-product-launch-with-end-card/verified-demo/04-end-card.png"
      ]
    }
  },
  "locales": {
    "en": {
      "title": "MiniMax H3 three-product launch: separate shots and an exact editable end card",
      "description": "Prepare three products separately, review each shot, then hand off exact copy through an editing layer. Includes original fictional product art, shot data, reproducible FFmpeg assembly, an actual local MP4 and execution receipt.",
      "goal": "Deliver three different shot roles—overview, detail and context—followed by an editable end card. The actual evidence in this package is a local still-frame editing fixture. Model generation has not been executed; the illustrations are not product photographs, and the fixture proves neither H3 quality nor product performance.",
      "preparation": [
        "Three self-authored fictional ARC collection practice inputs: a desk-lamp overview, bottle detail, and canvas-pouch context. Each includes SVG source and PNG. They teach handoffs and are not a real product catalogue.",
        "English and Chinese editable end-card SVGs and PNGs, a persistent demonstration overlay, shot-list.csv and manifest.json. Exact wording belongs to the end-card file rather than model generation.",
        "Local reproduction requires Python 3 and an FFmpeg build supporting libx264. The included PNGs are ready to use; no website dependency installation or model call is needed.",
        "For a real launch, obtain authorized material and approved wording for each actual product. When changing an illustration to a photograph, rewrite the prompt style and product details to match that source."
      ],
      "prompt": "Use this original fictional desk-lamp illustration as the first frame. Preserve the illustrated style, shade outline, visible stem and base. The lamp stays still. The camera makes a very small slow push-in while keeping the entire shade and base visible, then settles. Keep lighting steady. Do not add a person, product claims, a label, or new parts.",
      "steps": [
        {
          "title": "01.1 Assign different purposes to the three shots",
          "body": "The lamp shows the full outline; the bottle checks the cap and shoulder connection; the pouch explains the tabletop context. Avoid three identical premium-ad briefs. Retain the three shot IDs so a failed clip can be replaced individually. Deliver: shot-list.csv and three first frames."
        },
        {
          "title": "01.2 Separate product sources from exact copy",
          "body": "Record visible structure, permitted source material and approved wording separately. ARC is an invented practice brand. Before an actual launch, verify the real brand, dates and claims; do not infer dimensions, capacity or performance from art or a model result. Deliver: manifest.json and editable end cards."
        },
        {
          "title": "02.1 Prepare a separate image-to-video task for each product",
          "body": "If model motion is needed, upload only the matching first frame in each task, use that shot's bilingual brief in manifest.json, and check current controls and cost. These three model tasks have not been run here, and the local fixture cannot replace their review. Deliver later: reviewed 01/02/03-accepted.mp4 files with actual task IDs."
        },
        {
          "title": "02.2 Review each shot before the next handoff",
          "body": "Keep the lamp shade and base visible; inspect the bottle cap-to-neck connection; compare the pouch zipper and notebook placement. Replace a clip that contaminates another product, changes shape or adds a mark. An end card must not hide that defect. Deliver: a per-shot review record or remake decision."
        },
        {
          "title": "03.1 Reproduce the supplied local edit first",
          "body": "Download the package and run assemble-demo.py with the FFmpeg path and language. It holds three still images and an end card for three seconds each, joins them with hard cuts, and composites the demonstration label throughout, without audio. This 12-second fixture contains neither simulated camera motion nor model outputs. Deliver: assembled-demo.mp4, four keyframes and execution-receipt.json."
        },
        {
          "title": "03.2 Hand reviewed clips into the real edit",
          "body": "For an actual project, replace the stills with your three reviewed clips, set timing and transitions from the brief, and add the edited, approved end card. The fixture's three-second segments and 1280×720 at 24 fps are reproduction settings, not model parameters or universal release requirements. Deliver: the real edit project and export version."
        },
        {
          "title": "04.1 Read the card and check sequence and sound",
          "body": "Play the actual export from start to end. Check overview, detail, context and end-card order against the shot list. Read every word at normal viewing size; inspect missing glyphs, clipping and margins. If delivery should be silent, inspect tracks and listen to the exported file. Deliver: completed export-checklist.csv."
        },
        {
          "title": "04.2 Hand off facts and the scope of the evidence",
          "body": "Provide source files, approved copy, accepted clip IDs, editing settings and final files. The fixture receipt proves that this local still edit decodes fully, lasts 12 seconds and has 288 frames; it does not prove model quality or actual product information. Deliver: material inventory, final export and the actual execution receipt."
        }
      ],
      "acceptance": [
        "The three shot purposes match their own source IDs; one product does not morph into another as a transition.",
        "Practice artwork, actual product sources and model results are labelled separately; no illustration is described as real footage or a tested model result.",
        "Any actual model clips have their own task records and reviews. The supplied fixture explicitly records that the model stage was not executed.",
        "The end-card wording comes from editable SVG and is verified in the actual export, rather than trusted to generated typography.",
        "The local fixture follows overview, detail, context and end card: four three-second segments, 12 seconds and 288 frames.",
        "The local fixture is 1280×720, 24 fps, H.264, fully decodable and without audio; a real release is checked against its own format brief.",
        "The demonstration disclosure is visible throughout; static assembly is not presented as model-generated video.",
        "Real product shape errors return to shot review; accurate text cannot substitute for a product-authenticity check."
      ],
      "troubleshooting": [
        {
          "symptom": "The second shot contains the first product.",
          "change": "Separate the three generation tasks, uploaded source lists and filenames. Supply only the matching first frame and check output ownership before editing. Do not use morphing to hide contamination."
        },
        {
          "symptom": "Overview, detail and context all communicate the same thing.",
          "change": "Return to the shot purposes: complete shape, visible structure, then a setting. Similar framing does not automatically require regeneration; first check whether each shot conveys different information."
        },
        {
          "symptom": "Chinese characters are missing or end-card wording is clipped.",
          "change": "Use a font containing the required glyphs, adjust the SVG layout and export a new PNG. Inspect the ending keyframe and then the full video. A wording change requires a new card export."
        },
        {
          "symptom": "The generated product changes shape although the end card is accurate.",
          "change": "Review structure and wording separately. Replace the incorrect shot and retain approved copy; correct wording is not evidence of correct product geometry."
        },
        {
          "symptom": "assemble-demo.py cannot find FFmpeg or a PNG.",
          "change": "Pass the actual executable with --ffmpeg and keep the extracted package intact. After SVG edits, export same-named PNGs again. The script does not install tools or contact a paid service."
        },
        {
          "symptom": "The exported MP4 does not decode or has the wrong duration.",
          "change": "Read the real execution error and stream-and-decode-report.txt, then compare the four PNGs with the manifest. Retry in a new output folder; do not rename a failed file or manually invent a passing receipt."
        }
      ],
      "ending": "This delivery is a reproducible still-frame editing fixture. A real launch still needs authorized product material, independent shot reviews and correct commercial copy. Keep shot naming and copy sources so only the failing part has to be replaced.",
      "assetCaption": "Self-authored fictional-brand product illustrations and editing cards. The MP4 is an actually executed local still-frame assembly with a persistent model-not-executed notice; it is neither real product footage nor an H3-generated result.",
      "chapters": [
        {
          "number": 1,
          "id": "inputs",
          "title": "01. Inventory the inputs and exact copy",
          "steps": [
            {
              "title": "01.1 Assign different purposes to the three shots",
              "body": "The lamp shows the full outline; the bottle checks the cap and shoulder connection; the pouch explains the tabletop context. Avoid three identical premium-ad briefs. Retain the three shot IDs so a failed clip can be replaced individually. Deliver: shot-list.csv and three first frames."
            },
            {
              "title": "01.2 Separate product sources from exact copy",
              "body": "Record visible structure, permitted source material and approved wording separately. ARC is an invented practice brand. Before an actual launch, verify the real brand, dates and claims; do not infer dimensions, capacity or performance from art or a model result. Deliver: manifest.json and editable end cards."
            }
          ]
        },
        {
          "number": 2,
          "id": "shots",
          "title": "02. Prepare and review each separate shot",
          "steps": [
            {
              "title": "02.1 Prepare a separate image-to-video task for each product",
              "body": "If model motion is needed, upload only the matching first frame in each task, use that shot's bilingual brief in manifest.json, and check current controls and cost. These three model tasks have not been run here, and the local fixture cannot replace their review. Deliver later: reviewed 01/02/03-accepted.mp4 files with actual task IDs."
            },
            {
              "title": "02.2 Review each shot before the next handoff",
              "body": "Keep the lamp shade and base visible; inspect the bottle cap-to-neck connection; compare the pouch zipper and notebook placement. Replace a clip that contaminates another product, changes shape or adds a mark. An end card must not hide that defect. Deliver: a per-shot review record or remake decision."
            }
          ]
        },
        {
          "number": 3,
          "id": "assembly",
          "title": "03. Assemble the edit and add the ending card",
          "steps": [
            {
              "title": "03.1 Reproduce the supplied local edit first",
              "body": "Download the package and run assemble-demo.py with the FFmpeg path and language. It holds three still images and an end card for three seconds each, joins them with hard cuts, and composites the demonstration label throughout, without audio. This 12-second fixture contains neither simulated camera motion nor model outputs. Deliver: assembled-demo.mp4, four keyframes and execution-receipt.json."
            },
            {
              "title": "03.2 Hand reviewed clips into the real edit",
              "body": "For an actual project, replace the stills with your three reviewed clips, set timing and transitions from the brief, and add the edited, approved end card. The fixture's three-second segments and 1280×720 at 24 fps are reproduction settings, not model parameters or universal release requirements. Deliver: the real edit project and export version."
            }
          ]
        },
        {
          "number": 4,
          "id": "delivery",
          "title": "04. Inspect the final export and hand it off",
          "steps": [
            {
              "title": "04.1 Read the card and check sequence and sound",
              "body": "Play the actual export from start to end. Check overview, detail, context and end-card order against the shot list. Read every word at normal viewing size; inspect missing glyphs, clipping and margins. If delivery should be silent, inspect tracks and listen to the exported file. Deliver: completed export-checklist.csv."
            },
            {
              "title": "04.2 Hand off facts and the scope of the evidence",
              "body": "Provide source files, approved copy, accepted clip IDs, editing settings and final files. The fixture receipt proves that this local still edit decodes fully, lasts 12 seconds and has 288 frames; it does not prove model quality or actual product information. Deliver: material inventory, final export and the actual execution receipt."
            }
          ]
        }
      ]
    },
    "zh": {
      "title": "MiniMax H3 三商品发布短片：独立镜头与准确结束字卡交付",
      "description": "三件商品分开准备、逐镜审核，再用后期字卡交接准确文案。附原创虚构商品练习素材、镜头表、可复现 FFmpeg 拼装脚本、真实本地成片与执行回执。",
      "goal": "交付整体、细节、场景三个有不同职责的商品镜头，再接可编辑结束字卡。本包的实际证据是本地静帧后期拼装；模型生成尚未执行，插画不是商品实拍，示范不证明 H3 效果或商品性能。",
      "preparation": [
        "三张本站自行绘制的虚构 ARC 练习系列素材：台灯整体、水瓶细节、帆布收纳包场景。每张有 SVG 源文件与 PNG。它们用于学习交接，不是真实商品目录。",
        "中英文结束字卡 SVG、导出的 PNG、持续示范说明层、shot-list.csv 和 manifest.json。准确文字由字卡文件负责，不交给模型生成。",
        "完整本地复现需要 Python 3 与支持 libx264 的 FFmpeg；配套 PNG 已可直接使用，不要求安装网站依赖或调用模型。",
        "真实商品发布另备三件商品的授权来源、正确名称与审核文案。插画换实拍时，必须按素材改写提示词中的插画风格和商品细节，不得直接沿用。"
      ],
      "prompt": "用这张原创虚构台灯插画作为首帧，保留插画风格、灯罩轮廓、可见支柱和底座。台灯静止，摄影机缓慢小幅推进，始终完整露出灯罩与底座，再停稳。照明稳定，不增加人物、商品功能宣称、标签或新部件。",
      "steps": [
        {
          "title": "01.1 给三个镜头分配不同目的",
          "body": "台灯镜头展示完整外形，水瓶镜头检查盖与肩部连接，收纳包镜头说明桌面场景。不要把三镜都写成“高级广告”；在镜头表中保留三组名称，便于分别替换失败片段。交付：shot-list.csv 与三张首帧。"
        },
        {
          "title": "01.2 分离商品来源与准确文案",
          "body": "把可见结构、合法素材来源和已审核文案分别登记。练习的 ARC 是虚构品牌；真正上线前核对实际品牌、日期与声明。不要从插画或生成结果推断尺寸、容量或功能。交付：manifest.json 和可编辑结束字卡。"
        },
        {
          "title": "02.1 每件商品单独准备图生视频",
          "body": "需要模型运动时，一次任务只上传对应商品首帧，使用 manifest 中该镜头的中英提示词，并确认当前界面与费用。本站这三个生成任务没有执行；本地示范不能替代它们的审核。交付：未来经人工审核的 01/02/03-accepted.mp4，附实际任务 ID。"
        },
        {
          "title": "02.2 按镜头验收，不把错误传给下一步",
          "body": "台灯要完整保留灯罩和底座；水瓶重点看盖与瓶颈连接；收纳包对照拉链与笔记本位置。商品串入别镜、变形或新增标记时，先替换该镜，不用结束字卡盖住错误。交付：逐镜验收记录或重做决定。"
        },
        {
          "title": "03.1 先复现已经提供的本地剪辑",
          "body": "下载素材包后运行 assemble-demo.py，指定 FFmpeg 和语言。脚本把三张静帧和字卡各停留 3 秒，硬切连接，持续叠加示范说明，无声音。该 12 秒视频没有平移假动画，也没有模型结果。交付：assembled-demo.mp4、四张关键帧与 execution-receipt.json。"
        },
        {
          "title": "03.2 真实剪辑用通过的片段接力",
          "body": "真实项目中，用经审核的三个片段替换静帧，按简报决定时长和转场，再加入修改并审核过的字卡。示范 3 秒分段和 1280×720/24fps 只是复现格式，不能当作模型参数或默认发布要求。交付：实际剪辑工程与导出版本。"
        },
        {
          "title": "04.1 读结束卡，查顺序与声音",
          "body": "完整播放实际导出文件，按镜头表检查整体、细节、场景、字卡的顺序。正常观看大小逐字读文案，检查缺字、裁切与安全边界。若计划无声，核对音轨并听导出文件。交付：export-checklist.csv 的检查结果。"
        },
        {
          "title": "04.2 交接事实与证据范围",
          "body": "交接来源文件、审核文案、通过片段 ID、剪辑设置与最终文件。配套回执只证明当前静帧夹具能完整解码、为 12 秒和 288 帧，不证明模型质量或真实商品信息。交付：素材清单、成片和真实执行回执。"
        }
      ],
      "acceptance": [
        "三个镜头职责和素材 ID 可一一对应，没有用一件商品变形成另一件来连接。",
        "练习插画、真实商品来源和模型结果在记录里分别标明，没有把任何练习图叫作实拍或模型实测。",
        "需要模型生成的三份片段各自有实际任务与逐镜审核；当前配套示范明确记为模型阶段未执行。",
        "结束字卡文案来自可编辑 SVG，实际导出仍可逐字核对，正确文字没有依赖生成画面。",
        "本地夹具顺序是整体、细节、场景、结束卡；四段各 3 秒，共 12 秒、288 帧。",
        "本地夹具为 1280×720、24fps、H.264，可完整解码且没有音轨；真实发布格式须按自己的简报核对。",
        "示范说明在全片可见，没有把静帧拼装伪装成模型视频。",
        "真实商品片段结构错误时会退回镜头审核，字幕或字卡不能代替商品真实性检查。"
      ],
      "troubleshooting": [
        {
          "symptom": "第二镜串入了第一件商品。",
          "change": "分开三个生成任务、上传清单和文件命名。每任务只给对应首帧，先检查输出归属再剪辑，不用连续变形掩盖串商品。"
        },
        {
          "symptom": "同系列短片里整体、细节和场景看不出区别。",
          "change": "返回镜头目的：第一镜完整外形、第二镜可见结构、第三镜使用场景。相似的构图不是必须重生成；先判断每镜是否提供不同信息。"
        },
        {
          "symptom": "结束字卡中文缺字或字被裁掉。",
          "change": "换包含所需字符的字体，在 SVG 中重新排版并导出 PNG。查看配套结束关键帧，再完整播放检查；改文字后必须重新生成字卡导出。"
        },
        {
          "symptom": "生成商品轮廓变了，字卡却看起来很准确。",
          "change": "商品结构与文案分开验收。替换错误镜头，保持审核过的字卡；不要把正确文案当作结构正确的证据。"
        },
        {
          "symptom": "assemble-demo.py 找不到 FFmpeg 或 PNG。",
          "change": "用 --ffmpeg 提供实际 FFmpeg 路径。保持解压目录完整；修改 SVG 后重新导出同名 PNG。脚本不会安装工具或访问付费服务。"
        },
        {
          "symptom": "导出 MP4 无法解码或时长不符。",
          "change": "查看真实执行报错和 stream-and-decode-report.txt，核对四张 PNG 与 manifest。用新输出目录重跑，不把失败文件改后缀，也不要手填通过回执。"
        }
      ],
      "ending": "练习交付是可复现的静帧后期夹具；真正的三商品发布还需要授权真实素材、独立镜头审核与正确商业文案。保留镜头命名和字卡来源，后续只替换有问题的部分。",
      "assetCaption": "本站原创虚构品牌商品矢量插画与后期字卡。MP4 为真实执行的本地静帧拼装示范，持续标明模型生成未执行；不是真实商品实拍，也不是 H3 生成结果。",
      "chapters": [
        {
          "number": 1,
          "id": "inputs",
          "title": "01. 输入清单与准确文案",
          "steps": [
            {
              "title": "01.1 给三个镜头分配不同目的",
              "body": "台灯镜头展示完整外形，水瓶镜头检查盖与肩部连接，收纳包镜头说明桌面场景。不要把三镜都写成“高级广告”；在镜头表中保留三组名称，便于分别替换失败片段。交付：shot-list.csv 与三张首帧。"
            },
            {
              "title": "01.2 分离商品来源与准确文案",
              "body": "把可见结构、合法素材来源和已审核文案分别登记。练习的 ARC 是虚构品牌；真正上线前核对实际品牌、日期与声明。不要从插画或生成结果推断尺寸、容量或功能。交付：manifest.json 和可编辑结束字卡。"
            }
          ]
        },
        {
          "number": 2,
          "id": "shots",
          "title": "02. 逐镜准备、审核与命名交接",
          "steps": [
            {
              "title": "02.1 每件商品单独准备图生视频",
              "body": "需要模型运动时，一次任务只上传对应商品首帧，使用 manifest 中该镜头的中英提示词，并确认当前界面与费用。本站这三个生成任务没有执行；本地示范不能替代它们的审核。交付：未来经人工审核的 01/02/03-accepted.mp4，附实际任务 ID。"
            },
            {
              "title": "02.2 按镜头验收，不把错误传给下一步",
              "body": "台灯要完整保留灯罩和底座；水瓶重点看盖与瓶颈连接；收纳包对照拉链与笔记本位置。商品串入别镜、变形或新增标记时，先替换该镜，不用结束字卡盖住错误。交付：逐镜验收记录或重做决定。"
            }
          ]
        },
        {
          "number": 3,
          "id": "assembly",
          "title": "03. 汇总后期与结束字卡",
          "steps": [
            {
              "title": "03.1 先复现已经提供的本地剪辑",
              "body": "下载素材包后运行 assemble-demo.py，指定 FFmpeg 和语言。脚本把三张静帧和字卡各停留 3 秒，硬切连接，持续叠加示范说明，无声音。该 12 秒视频没有平移假动画，也没有模型结果。交付：assembled-demo.mp4、四张关键帧与 execution-receipt.json。"
            },
            {
              "title": "03.2 真实剪辑用通过的片段接力",
              "body": "真实项目中，用经审核的三个片段替换静帧，按简报决定时长和转场，再加入修改并审核过的字卡。示范 3 秒分段和 1280×720/24fps 只是复现格式，不能当作模型参数或默认发布要求。交付：实际剪辑工程与导出版本。"
            }
          ]
        },
        {
          "number": 4,
          "id": "delivery",
          "title": "04. 最终验收与证据交接",
          "steps": [
            {
              "title": "04.1 读结束卡，查顺序与声音",
              "body": "完整播放实际导出文件，按镜头表检查整体、细节、场景、字卡的顺序。正常观看大小逐字读文案，检查缺字、裁切与安全边界。若计划无声，核对音轨并听导出文件。交付：export-checklist.csv 的检查结果。"
            },
            {
              "title": "04.2 交接事实与证据范围",
              "body": "交接来源文件、审核文案、通过片段 ID、剪辑设置与最终文件。配套回执只证明当前静帧夹具能完整解码、为 12 秒和 288 帧，不证明模型质量或真实商品信息。交付：素材清单、成片和真实执行回执。"
            }
          ]
        }
      ]
    }
  }
}
