{ "contract_schema_version": "storyboard_change_report_v1", "summary": "已从结构化脚本切分 16 个分镜(复用权威资产表)。", "generation": { "source_text_hash": "eacc1e16ea45934fe9b0ee1f27910ab9e202ffe4d2d46ff9b2a52650cf6cdd77", "shot_count": 16, "character_count": 2, "scene_count": 4, "prop_count": 8, "source_type": "structured_script_asset_first", "structured_parse": { "is_structured": true, "episode_count": 1, "raw_shot_count": 4, "generated_segment_count": 16 }, "asset_extraction_skipped": false, "reused_authoritative_asset_tables": false, "composite_voiceover_alignment": { "mode": "skipped", "source_unit_count": 0, "matched_unit_count": 0, "repaired_shot_count": 0 }, "generation_route": "structured_asset_first", "asset_first": { "unit_count": 1, "max_episodes_per_unit": 8, "max_chars_per_unit": 24000, "llm_request_count": 10, "llm_concurrency": 500, "thinking_enabled": false, "character_count": 2, "scene_count": 4, "prop_count": 8, "elapsed_sec": 42.64, "asset_prompt_quality": { "status": "warning", "checked_assets": 14, "repaired_assets": 14, "issue_count": 12, "issues": [ { "asset_type": "character", "asset_id": "char_000_var_002", "field": "visual_features", "issue": "too_short" }, { "asset_type": "character", "asset_id": "char_000", "field": "visual_features", "issue": "missing_visual_dimension:footwear" }, { "asset_type": "character", "asset_id": "char_001_var_004", "field": "visual_features", "issue": "too_short" }, { "asset_type": "character", "asset_id": "char_001", "field": "visual_features", "issue": "missing_visual_dimension:footwear" }, { "asset_type": "prop", "asset_id": "prop_001", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_002", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_003", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_004", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_005", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_006", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_007", "field": "description", "issue": "too_short" }, { "asset_type": "prop", "asset_id": "prop_008", "field": "description", "issue": "too_short" } ] }, "global_context": { "status": "completed", "llm_request_count": 1, "elapsed_sec": 4.644, "confidence": "high" }, "character_detail": { "status": "completed", "selected_count": 2, "failed_count": 0, "llm_request_count": 2, "elapsed_sec": 3.65 }, "global_enrichment": { "status": "completed", "batch_size": 12, "batch_count": 3, "failed_batch_count": 0, "llm_request_count": 3, "asset_types": [ "character", "scene", "prop" ], "parallel_groups": [ [ "character_detail", "scene", "prop" ], [ "character_enrichment" ] ], "elapsed_sec": 32.679 }, "shot_split": { "source_shot_count": 4, "atomic_unit_count": 66, "local_fallback_subshot_count": 15, "local_uncompacted_subshot_count": 16, "local_density_compaction": { "enabled": true, "target_chars_per_shot": 110, "source_body_chars": 1629, "requested_target_subshot_count": 15, "initial_subshot_count": 16, "final_subshot_count": 15, "hard_section_count": 4 }, "script_density_profile": { "profile": "standard_screenplay", "episode_count": 1, "source_shot_count": 4, "shots_per_episode": 4.0, "average_source_shot_chars": 423.5, "screenplay_format_line_ratio": 1.0, "dialogue_line_ratio": 0.4545, "dialogue_turn_count": 20, "dialogue_speaker_count": 2, "standalone_speaker_cue_ratio": 0.0, "explicit_subshot_ratio": 0.75 }, "batched_by_asset_units": true, "parallel_with_asset_extraction": true, "duration_balancing": "coarse_count_with_sparse_shot_reduction", "status": "completed", "mode": "llm_semantic_cuts_with_local_constraints", "llm_request_count": 1, "request_unit_count": 1, "successful_unit_count": 1, "local_fallback_unit_count": 0, "semantic_cut_count": 25, "subshot_count": 16, "density_guard": { "enabled": true, "profile": "standard_screenplay", "max_expansion_ratio": 1.05, "local_subshot_count": 15, "unconstrained_semantic_subshot_count": 18, "maximum_allowed_subshot_count": 16, "per_source_allowed_subshot_count": 19, "global_allowed_subshot_count": 16, "final_subshot_count": 16, "fallback_source_shot_count": 2, "fallback_source_shot_indices": [ 0, 1 ] }, "units": [ { "unit_id": "asset_unit_001", "episode_ids": [ "ep_001" ], "status": "completed", "atomic_unit_count": 66, "semantic_cut_count": 25, "subshot_count": 18, "hydrate_elapsed_sec": 0.225 } ], "elapsed_sec": 5.925 }, "units": [ { "unit_id": "asset_unit_001", "asset_type": "character", "episode_ids": [ "ep_001" ], "source_chars": 1814, "source_shot_count": 4, "asset_count": 2, "elapsed_sec": 6.71, "status": "completed", "payload_shape_repaired": false, "error_type": "" }, { "unit_id": "asset_unit_001", "asset_type": "scene", "episode_ids": [ "ep_001" ], "source_chars": 1814, "source_shot_count": 4, "asset_count": 4, "elapsed_sec": 9.836, "status": "completed", "payload_shape_repaired": false, "error_type": "" }, { "unit_id": "asset_unit_001", "asset_type": "prop", "episode_ids": [ "ep_001" ], "source_chars": 1814, "source_shot_count": 4, "asset_count": 8, "elapsed_sec": 7.518, "status": "completed", "payload_shape_repaired": false, "error_type": "" } ] }, "prompt_template": { "template_id": "storyboard_user_template", "version": "5.15.0x", "source": "builtin" } }, "performance": { "storyboard_generation": { "elapsed_sec": 42.644, "route": "structured_asset_first" }, "reference_image_understanding": { "elapsed_sec": 0.0, "image_count": 0 }, "reference_image_binding": { "elapsed_sec": 0.0 }, "final_prompt_generation": { "elapsed_sec": 0.0 }, "reference_binding_workflow_total": { "elapsed_sec": 0.003 }, "text_workflow_total": { "elapsed_sec": 42.825 } }, "workflow_detection": { "requested_workflow_mode": "auto", "requested_source_text_type": "script", "initial_resolved_workflow": "narrative", "voiceover_detection_allowed": false, "explicit_episode_headings": true, "reference_image_count": 0, "detected_voiceover": false, "resolved_source_text_type": "script" }, "source_preprocessing": { "source_mode": "visual_script_section", "removed_section_titles": [ "正文剧本" ], "requested_source_text_type": "auto", "original_source_hash": "60eebb1333b694b47773180e4bdb7583d57bb85bbdb3622d99e3f82e75795a40", "generation_text_hash": "eacc1e16ea45934fe9b0ee1f27910ab9e202ffe4d2d46ff9b2a52650cf6cdd77", "original_char_count": 1885, "original_non_whitespace_char_count": 1738, "generation_char_count": 1876, "generation_non_whitespace_char_count": 1732, "voiceover_char_count": 0, "visual_script_char_count": 1865, "voiceover_unit_count": 0, "voiceover_units_covered_by_visual_script": 0, "voiceover_coverage_ratio": 1.0, "missing_voiceover_units": [], "timed_visual_segment_count": 0, "timed_visual_total_duration": 0.0 }, "final_reference_normalization_report": { "status": "completed", "stats": { "asset_ref_rewrite_count": 0, "asset_ref_prune_count": 0, "image_ref_rewrite_count": 0, "image_ref_prune_count": 0, "scalar_ref_rewrite_count": 0, "scalar_ref_prune_count": 0 }, "rewrites": [], "pruned_refs": [] }, "final_reference_consistency_report": { "status": "passed", "errors": [], "stats": { "checked_asset_type_count": 3, "invalid_ref_count": 0 }, "checked": [ { "asset_type": "character", "asset_count": 2, "image_count": 0, "asset_error_count": 0, "image_error_count": 0 }, { "asset_type": "scene", "asset_count": 4, "image_count": 0, "asset_error_count": 0, "image_error_count": 0 }, { "asset_type": "prop", "asset_count": 8, "image_count": 0, "asset_error_count": 0, "image_error_count": 0 } ] }, "duration_enforcement": { "status": "passed", "min_duration": 4, "max_duration": 12, "preferred_min_duration": 4, "duration_unit": "integer_seconds", "speech_chars_per_second": 4.5, "recalculated_from_content": false, "preserved_existing_timeline": false, "dialogue_is_authoritative": false, "integer_rounding_mode": "per_shot_content_ceil", "estimated_spoken_characters": 394, "allocated_total_duration": 174, "effective_spoken_chars_per_second": 2.264, "shot_count": 16, "adjusted_count": 0, "adjusted_shot_ids": [], "speech_adjusted_count": 1, "speech_adjusted_shot_ids": [ "ep_001_shot_010" ], "speech_overflow_count": 1, "speech_overflow_shot_ids": [ "ep_001_shot_010" ], "action_timeline_adjusted_count": 0, "action_timeline_adjusted_shot_ids": [], "action_timeline_overflow_count": 0, "action_timeline_overflow_shot_ids": [], "all_integer": true, "all_in_bounds": true, "below_preferred_count": 0 }, "final_prompt_generation": { "mode": "rule", "llm_generated": false, "shot_count": 16 }, "workflow": "narrative", "workflow_result_schema_version": "storyboard_workflow_result_v1", "workflow_stage_contract": { "required": [ "script_cutting", "asset_extraction", "registry_generation" ], "forbidden": [ "existing_storyboard_rewrite", "voiceover_image_matching" ] }, "old_version_id": null, "new_version_id": "v000", "version_info": { "old_version_id": null, "new_version_id": "v000" }, "pending_assets": [ { "asset_type": "character", "registry_id": "char_000", "asset_id": null, "asset_group": null, "name": "苏星晚", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_001", "ep_001_shot_002", "ep_001_shot_003", "ep_001_shot_004", "ep_001_shot_005", "ep_001_shot_006", "ep_001_shot_007", "ep_001_shot_008", "ep_001_shot_010", "ep_001_shot_011", "ep_001_shot_012", "ep_001_shot_013", "ep_001_shot_014", "ep_001_shot_015", "ep_001_shot_016" ], "stale_image_refs": [] }, { "asset_type": "character", "registry_id": "char_001", "asset_id": null, "asset_group": null, "name": "陆霆川", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_002", "ep_001_shot_005", "ep_001_shot_006", "ep_001_shot_007", "ep_001_shot_008", "ep_001_shot_009", "ep_001_shot_011", "ep_001_shot_012", "ep_001_shot_013", "ep_001_shot_014", "ep_001_shot_015", "ep_001_shot_016" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_001", "asset_id": null, "asset_group": null, "name": "通讯话筒", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_001" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_002", "asset_id": null, "asset_group": null, "name": "手机", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_004", "ep_001_shot_005" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_003", "asset_id": null, "asset_group": null, "name": "棕色挎包", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_006" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_004", "asset_id": null, "asset_group": null, "name": "车钥匙", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_011", "ep_001_shot_012" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_005", "asset_id": null, "asset_group": null, "name": "手表", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_012" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_006", "asset_id": null, "asset_group": null, "name": "黑色行李箱", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_014" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_007", "asset_id": null, "asset_group": null, "name": "红色结婚证", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_014" ], "stale_image_refs": [] }, { "asset_type": "prop", "registry_id": "prop_008", "asset_id": null, "asset_group": null, "name": "指纹门锁", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_016" ], "stale_image_refs": [] }, { "asset_type": "scene", "registry_id": "scene_001", "asset_id": null, "asset_group": null, "name": "中南航空管制中心", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_001", "ep_001_shot_002", "ep_001_shot_003" ], "stale_image_refs": [] }, { "asset_type": "scene", "registry_id": "scene_002", "asset_id": null, "asset_group": null, "name": "酒店走廊", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_004", "ep_001_shot_005" ], "stale_image_refs": [] }, { "asset_type": "scene", "registry_id": "scene_003", "asset_id": null, "asset_group": null, "name": "餐厅包厢及门口走廊", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_006", "ep_001_shot_007", "ep_001_shot_008", "ep_001_shot_009", "ep_001_shot_010", "ep_001_shot_011", "ep_001_shot_012", "ep_001_shot_013" ], "stale_image_refs": [] }, { "asset_type": "scene", "registry_id": "scene_004", "asset_id": null, "asset_group": null, "name": "别墅门口", "reason": "文本生成的新资产需要生成参考图", "required_action": "needs_new_reference_image", "affected_segments": [ "ep_001_shot_014", "ep_001_shot_015", "ep_001_shot_016" ], "stale_image_refs": [] } ], "validation_report": { "status": "passed", "errors": [], "warnings": [ "speech_content_exceeds_max_duration_capacity" ], "checks": [ { "name": "shot_duration_contract", "status": "passed", "detail": { "status": "passed", "min_duration": 4, "max_duration": 12, "preferred_min_duration": 4, "duration_unit": "integer_seconds", "speech_chars_per_second": 4.5, "recalculated_from_content": false, "preserved_existing_timeline": false, "dialogue_is_authoritative": false, "integer_rounding_mode": "per_shot_content_ceil", "estimated_spoken_characters": 394, "allocated_total_duration": 174, "effective_spoken_chars_per_second": 2.264, "shot_count": 16, "adjusted_count": 0, "adjusted_shot_ids": [], "speech_adjusted_count": 1, "speech_adjusted_shot_ids": [ "ep_001_shot_010" ], "speech_overflow_count": 1, "speech_overflow_shot_ids": [ "ep_001_shot_010" ], "action_timeline_adjusted_count": 0, "action_timeline_adjusted_shot_ids": [], "action_timeline_overflow_count": 0, "action_timeline_overflow_shot_ids": [], "all_integer": true, "all_in_bounds": true, "below_preferred_count": 0 } }, { "name": "final_reference_consistency", "status": "passed", "detail": { "checked_asset_type_count": 3, "invalid_ref_count": 0, "asset_ref_rewrite_count": 0, "asset_ref_prune_count": 0, "image_ref_rewrite_count": 0, "image_ref_prune_count": 0, "scalar_ref_rewrite_count": 0, "scalar_ref_prune_count": 0 } } ] }, "semantic_validation": {}, "final_content_source": "storyboard_bundle_manifest" }