{
  "schema": "airi-video-poc-20261019.1",
  "version": "airi-black-v1-fullclips-20261019",
  "provenance": {
    "trial": "20261019-airi-black-v1",
    "generationModel": "doubao-seedance-2-0-260128",
    "sourceType": "native generated videos followed by black-background cleaning derivative",
    "derivation": "edge-connected dark RGB max<=24 to black before uniform scale+pad to 720x1480, fps30, H264; no subject regeneration; no audio; this page copies the complete derivative files unchanged",
    "comparisonVersion": "output/avatar-video-validation/actual-v1",
    "additionalPaidCallsByThisPage": 0,
    "blackMasterModel": "gpt-image-2",
    "sourceManifest": "output/avatar-video-poc/20261019-airi-black-v1/manifest.json"
  },
  "assets": {
    "idle_neutral": {
      "label": "待机",
      "file": "media/idle_neutral.mp4",
      "sha256": "0cbd887617717896d171efe537c61cd42a307766a12a66651d63884f18189bfc",
      "sourceFile": "output/avatar-video-poc/20261019-airi-black-v1/device/idle_neutral.mp4",
      "bytes": 2249068,
      "width": 720,
      "height": 1480,
      "codec": "h264",
      "fps": 30,
      "durationSeconds": 5.033333,
      "audioStreams": 0,
      "kind": "full_device_derivative",
      "speakingLoopQualified": false,
      "deviceVerified": false,
      "liveTTSSync": false,
      "nativeSha256": "7baae75ac8a4eac740d9f159aae8f05177b7b501fd18e21db7997708b73dbb4a",
      "sourceModel": "doubao-seedance-2-0-260128",
      "backgroundScreening": {
        "region": "outer 8 percent left and right image bands, every decoded frame",
        "decoded_rgb_max_threshold": 8,
        "worst_frame_black_fraction": 1.0,
        "worst_frame_mean_rgb": 0.0,
        "screening_pass": true,
        "note": "Outer-band screening only. Inspect all background, hair edges and gaps between limbs visually. RGB uses the decoder color conversion; YUV limited-range black is not rejected for having Y=16."
      }
    },
    "talk_neutral": {
      "label": "中性说话",
      "file": "media/talk_neutral.mp4",
      "sha256": "f090d3b1b1d738c0dd1a135af322acdb3908633188f6a38ec948805920b80c9e",
      "sourceFile": "output/avatar-video-poc/20261019-airi-black-v1/device/talk_neutral.mp4",
      "bytes": 2127765,
      "width": 720,
      "height": 1480,
      "codec": "h264",
      "fps": 30,
      "durationSeconds": 5.033333,
      "audioStreams": 0,
      "kind": "full_device_derivative",
      "speakingLoopQualified": false,
      "deviceVerified": false,
      "liveTTSSync": false,
      "nativeSha256": "a63c433514cef54b17ef425dba3405ae0518793554b91cac71cee4585d3d6acd",
      "sourceModel": "doubao-seedance-2-0-260128",
      "backgroundScreening": {
        "region": "outer 8 percent left and right image bands, every decoded frame",
        "decoded_rgb_max_threshold": 8,
        "worst_frame_black_fraction": 1.0,
        "worst_frame_mean_rgb": 0.0,
        "screening_pass": true,
        "note": "Outer-band screening only. Inspect all background, hair edges and gaps between limbs visually. RGB uses the decoder color conversion; YUV limited-range black is not rejected for having Y=16."
      }
    },
    "talk_happy": {
      "label": "开心说话",
      "file": "media/talk_happy.mp4",
      "sha256": "d248a44093da4ba1d340e879a57dbd72314b4ceb1ed1b513170047313ae0e7f7",
      "sourceFile": "output/avatar-video-poc/20261019-airi-black-v1/device/talk_happy.mp4",
      "bytes": 1654860,
      "width": 720,
      "height": 1480,
      "codec": "h264",
      "fps": 30,
      "durationSeconds": 5.033333,
      "audioStreams": 0,
      "kind": "full_device_derivative",
      "speakingLoopQualified": false,
      "deviceVerified": false,
      "liveTTSSync": false,
      "nativeSha256": "0b30b9bafb88c7a88cceb69f22f026cf5a8a067fb88136a8e70f0ee48ca79f76",
      "sourceModel": "doubao-seedance-2-0-260128",
      "backgroundScreening": {
        "region": "outer 8 percent left and right image bands, every decoded frame",
        "decoded_rgb_max_threshold": 8,
        "worst_frame_black_fraction": 1.0,
        "worst_frame_mean_rgb": 0.0,
        "screening_pass": true,
        "note": "Outer-band screening only. Inspect all background, hair edges and gaps between limbs visually. RGB uses the decoder color conversion; YUV limited-range black is not rejected for having Y=16."
      }
    },
    "anchor_sequence": {
      "label": "片尾锚点顺序对照",
      "file": "media/idle-talk-idle-happy-idle.mp4",
      "sha256": "63c2874c7b1b5a071f42a6ff35f2f483543941ca93a9e1f95eaadf409abcfe3e",
      "sourceFile": "output/avatar-video-validation/actual-v1/idle-talk-idle-happy-idle.mp4",
      "bytes": 4174714,
      "width": 720,
      "height": 1480,
      "codec": "h264",
      "fps": 30,
      "durationSeconds": 25.166016,
      "audioStreams": 0,
      "kind": "offline_hardcut_comparison",
      "speakingLoopQualified": false,
      "deviceVerified": false,
      "liveTTSSync": false,
      "sourceModel": "offline concat of original generated derivatives; no new model calls"
    },
    "midclip_stress": {
      "label": "中途硬切压力测试",
      "file": "media/midclip-cut-stress-test.mp4",
      "sha256": "109c3bbe3e5513b26b482223a84afa2c3ff9607b3bcb199b50bdecc9538a48c5",
      "sourceFile": "output/avatar-video-validation/actual-v1/midclip-cut-stress-test.mp4",
      "bytes": 1868624,
      "width": 720,
      "height": 1480,
      "codec": "h264",
      "fps": 30,
      "durationSeconds": 10.0,
      "audioStreams": 0,
      "kind": "offline_hardcut_comparison",
      "speakingLoopQualified": false,
      "deviceVerified": false,
      "liveTTSSync": false,
      "sourceModel": "offline concat of original generated derivatives; no new model calls"
    }
  },
  "limits": [
    "No real-time TTS or phoneme lip sync",
    "No RK3566 or hologram chamber acceptance",
    "Full talking clips contain significant closed-mouth windows; not qualified continuous speaking loops",
    "Frame prewarming preserves old frame until the new frame is ready; it does not guarantee matching pose or motion",
    "Hard cuts only; no crossfade"
  ],
  "comparisonTimelineSeconds": {
    "anchor_sequence": [
      0,
      5.033,
      10.066,
      15.099,
      20.132,
      25.165
    ],
    "midclip_stress": [
      0,
      2,
      4,
      6,
      8,
      10
    ]
  }
}
