@aswless_854771076/ai_short_studio_cli 0.1.98 → 0.1.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -313
- package/dist/base-command.d.ts +0 -6
- package/dist/base-command.js +1 -39
- package/dist/client/api-client.js +2 -19
- package/dist/commands/auth/login.d.ts +1 -2
- package/dist/commands/auth/login.js +2 -5
- package/dist/commands/auth/logout.d.ts +0 -1
- package/dist/commands/auth/signup.d.ts +0 -1
- package/dist/commands/auth/status.d.ts +0 -1
- package/dist/commands/canvas/apply.d.ts +0 -1
- package/dist/commands/canvas/asset/get.d.ts +0 -1
- package/dist/commands/canvas/asset/list.d.ts +0 -1
- package/dist/commands/canvas/asset/select.d.ts +1 -3
- package/dist/commands/canvas/asset/select.js +3 -22
- package/dist/commands/canvas/asset/upload.d.ts +0 -14
- package/dist/commands/canvas/asset/upload.js +3 -43
- package/dist/commands/canvas/continuity/analyze.d.ts +0 -1
- package/dist/commands/canvas/edge/connect.d.ts +0 -1
- package/dist/commands/canvas/edge/disconnect.d.ts +0 -1
- package/dist/commands/canvas/edge/list.d.ts +0 -1
- package/dist/commands/canvas/edge/list.js +1 -4
- package/dist/commands/canvas/episode/create.d.ts +0 -1
- package/dist/commands/canvas/episode/list.d.ts +0 -1
- package/dist/commands/canvas/folder/copy-cross-project.d.ts +0 -1
- package/dist/commands/canvas/folder/create.d.ts +0 -1
- package/dist/commands/canvas/folder/delete.d.ts +0 -1
- package/dist/commands/canvas/folder/list.d.ts +0 -1
- package/dist/commands/canvas/folder/move.d.ts +0 -1
- package/dist/commands/canvas/folder/rename.d.ts +0 -1
- package/dist/commands/canvas/folder/restore.d.ts +0 -1
- package/dist/commands/canvas/get.d.ts +0 -1
- package/dist/commands/canvas/inspect.d.ts +0 -1
- package/dist/commands/canvas/node/add.d.ts +1 -1
- package/dist/commands/canvas/node/add.js +2 -2
- package/dist/commands/canvas/node/delete.d.ts +0 -1
- package/dist/commands/canvas/node/edit-resource.d.ts +0 -2
- package/dist/commands/canvas/node/edit-resource.js +1 -9
- package/dist/commands/canvas/node/edit-shot.d.ts +0 -1
- package/dist/commands/canvas/node/get.d.ts +0 -1
- package/dist/commands/canvas/node/list.d.ts +0 -5
- package/dist/commands/canvas/node/list.js +2 -43
- package/dist/commands/canvas/node/run.d.ts +0 -15
- package/dist/commands/canvas/node/run.js +6 -142
- package/dist/commands/canvas/node/types.d.ts +0 -1
- package/dist/commands/canvas/node/update-many.d.ts +0 -1
- package/dist/commands/canvas/node/update.d.ts +0 -1
- package/dist/commands/canvas/settings/get.d.ts +0 -1
- package/dist/commands/canvas/settings/set.d.ts +0 -24
- package/dist/commands/canvas/settings/set.js +1 -60
- package/dist/commands/config/get.d.ts +0 -1
- package/dist/commands/config/set.d.ts +0 -2
- package/dist/commands/config/set.js +2 -55
- package/dist/commands/preflight.d.ts +0 -1
- package/dist/commands/preflight.js +1 -9
- package/dist/commands/project/create.d.ts +0 -1
- package/dist/commands/project/delete.d.ts +0 -1
- package/dist/commands/project/get.d.ts +0 -1
- package/dist/commands/project/list.d.ts +0 -1
- package/dist/commands/project/update.d.ts +0 -1
- package/dist/commands/skill/install.d.ts +0 -1
- package/dist/commands/skill/install.js +0 -1
- package/dist/commands/skill/path.d.ts +0 -1
- package/dist/commands/skill/path.js +0 -1
- package/dist/commands/skill/status.d.ts +0 -1
- package/dist/commands/skill/status.js +0 -1
- package/dist/commands/task/cancel.d.ts +0 -1
- package/dist/commands/task/get.d.ts +0 -1
- package/dist/commands/task/wait.d.ts +0 -2
- package/dist/commands/task/wait.js +1 -6
- package/dist/domain/vvicat-api.d.ts +3 -63
- package/dist/domain/vvicat-api.js +9 -74
- package/dist/output/formatter.d.ts +0 -11
- package/dist/output/formatter.js +0 -20
- package/dist/preflight.d.ts +0 -1
- package/dist/preflight.js +1 -14
- package/dist/skill/command-flags.js +4 -7
- package/dist/skill/skill-manager.d.ts +2 -75
- package/dist/skill/skill-manager.js +15 -60
- package/package.json +3 -4
- package/scripts/postinstall.mjs +12 -7
- package/skills/using-vvicat-ai-short-studio-cli/SKILL.md +67 -27
- package/skills/using-vvicat-ai-short-studio-cli/references/commands/canvas.md +4 -3
- package/skills/using-vvicat-ai-short-studio-cli/references/commands/project.md +2 -26
- package/skills/using-vvicat-ai-short-studio-cli/references/commands.md +2 -2
- package/skills/using-vvicat-ai-short-studio-cli/references/editing-delivery.md +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/references/h3-video-delivery.md +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/references/humanizer/humanizer.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/SKILL.md +447 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/brief.md +93 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/project-files.md +246 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/reference-video.md +266 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/script-and-time.md +253 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/transformations.md +141 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/distribution.md +176 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/local-tools.md +411 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/model-and-provider.md +275 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/profile.md +286 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/asset-and-shot-preproduction.md +193 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/b-roll.md +94 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/caption-tracking.md +125 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/captions.md +252 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/conversation-images.md +218 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-base-prompt-writing.md +222 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-reference-prompt-writing.md +341 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/image-direction.md +123 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/generated-dependencies.md +38 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/graphic-compositions.md +85 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/h3-prompt-writing.md +54 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/image-direction.md +95 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/motion-graphics.md +68 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/recreation-policy.md +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/screen-demonstrations.md +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/shot-production-contracts.md +161 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/sound-mix.md +76 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/video-direction.md +433 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-and-performance.md +224 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-direction.md +99 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/narration-led-demo.md +87 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/presenter-led-explainer.md +160 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/ranking-listicle.md +71 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/reference-recreation-canvas.md +8 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama-workflow.md +165 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama.md +88 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/street-interview.md +92 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/talking-head.md +82 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/two-person-podcast.md +101 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/index.md +77 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/audio-presentation.md +49 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/authoring.md +228 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/browser-capture.md +112 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/builds.md +330 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-authoring.md +156 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-presentation.md +66 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-design.md +217 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-sharing.md +150 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-visuals.md +152 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/detail.svrun +8 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/direction.svs +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/look.svs +6 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/material.svrun +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svml +73 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svrun +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/visuals.ts +62 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/fonts-and-text.md +138 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/image-operations.md +102 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/index.md +73 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media-presentation.md +111 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media.md +246 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/performance.md +114 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/prompt-kits.md +165 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/rendering.md +141 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/review.md +211 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/runs.md +151 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/script-syntax.md +236 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/snapshots.md +90 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/sound.md +75 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/source-syntax.md +163 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/spatial.md +189 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio-companions.md +186 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio.md +249 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/system.md +169 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timeline.md +74 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timing.md +96 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/track-authoring.md +215 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/tracks.md +67 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/video-downloads.md +47 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/vocabulary.md +119 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/project-and-canvas.md +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/README.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/SKILL.md +102 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/art-styles.json +585 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-images.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles/character-profile-output.schema.json +99 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-drama-art-style.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-prop-assets.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-scene-assets.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-art-styles.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-assets.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.en.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.zh.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.en.txt +61 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.zh.txt +79 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.en.txt +101 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.zh.txt +150 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.en.txt +114 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.zh.txt +89 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.en.txt +114 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.zh.txt +389 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.en.txt +40 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.zh.txt +40 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.en.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.zh.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.en.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.zh.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.en.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.zh.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.en.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.zh.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.en.txt +36 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.zh.txt +36 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.en.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.zh.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.en.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.zh.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.en.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.zh.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.en.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.zh.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.en.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.zh.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.en.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.zh.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.en.txt +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.zh.txt +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.en.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.zh.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.en.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.zh.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.en.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.zh.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.en.txt +67 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.zh.txt +67 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.en.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.zh.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.en.txt +16 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.zh.txt +16 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.en.txt +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.zh.txt +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.en.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.zh.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.en.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.zh.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.en.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.zh.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.en.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.zh.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.en.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.zh.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.en.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.zh.txt +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.en.txt +29 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.zh.txt +29 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.en.txt +77 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.zh.txt +77 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.en.txt +109 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.zh.txt +109 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.en.txt +23 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.zh.txt +23 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.en.txt +42 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.zh.txt +42 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.en.txt +55 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.zh.txt +55 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.en.txt +49 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.zh.txt +52 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.en.txt +37 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.zh.txt +37 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.en.txt +28 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.zh.txt +28 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.en.txt +57 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.zh.txt +169 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.en.txt +64 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.zh.txt +117 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.en.txt +34 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.zh.txt +34 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.en.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.zh.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.en.txt +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.zh.txt +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.en.txt +28 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.zh.txt +42 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.en.txt +35 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.zh.txt +35 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.en.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.zh.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.en.txt +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.zh.txt +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.en.txt +49 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.zh.txt +48 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.en.txt +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.zh.txt +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.en.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.zh.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.en.txt +48 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.zh.txt +46 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/plan-drama-assets.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/codex-contracts.md +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/comfly-provider.md +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/controlled-vocabulary.json +115 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/analyze-drama-source.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/define-drama-brief.md +8 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/design-drama-bible.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/humanizer.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/outline-drama-series.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/short-drama.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-director-book.md +6 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-episode.md +6 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/director-composition.md +794 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-deliver-drama.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-drama-timeline.md +22 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/remotion-best-practices.md +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing-workflow.md +56 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/feature-completeness.md +111 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/configure-generation-providers.md +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/design-drama-audio.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/drama-generation-service.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-drama-videos.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-storyboard-images.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/monitor-drama-tasks.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/transform-drama-media.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/write-drama-video-prompts.md +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/market-report.schema.json +46 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/methodology.md +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market.md +47 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market/market-inspiration.schema.json +109 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/module-map.json +595 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/music-catalog-providers.md +16 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/manage-drama-projects.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/orchestrate-short-drama.md +20 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/recover-drama-pipeline.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/short-drama-skill-index.md +29 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/use-short-drama-studio.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/pipeline.md +85 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/project-spec-v1.md +217 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/prompt-skill-index.md +62 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/recreation/publish-drama-references/litterbox.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-script.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-shots.md +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/runninghub-provider.md +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/starrouter-provider.md +53 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/build-drama-storyboard.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/design-fight-video.md +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/action-previz.md +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/direction-contract.md +96 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/weapons-vfx.md +23 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/generate-blender-previz.md +20 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-drama-production.md +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-shot-continuity.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/revise-drama-storyboards.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/usage-guide.md +107 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/special-workflows.md +2 -8
- package/skills/using-vvicat-ai-short-studio-cli/references/troubleshooting.md +0 -1
- package/dist/auth/login-provider.d.ts +0 -2
- package/dist/auth/login-provider.js +0 -3
- package/dist/commands/canvas/node/quote.d.ts +0 -17
- package/dist/commands/canvas/node/quote.js +0 -13
- package/dist/commands/config/ai-provider/capabilities.d.ts +0 -60
- package/dist/commands/config/ai-provider/capabilities.js +0 -124
- package/dist/commands/config/ai-provider/get.d.ts +0 -22
- package/dist/commands/config/ai-provider/get.js +0 -21
- package/dist/commands/config/ai-provider/list.d.ts +0 -21
- package/dist/commands/config/ai-provider/list.js +0 -19
- package/dist/commands/config/ai-provider/models.d.ts +0 -22
- package/dist/commands/config/ai-provider/models.js +0 -21
- package/dist/commands/config/ai-provider/set.d.ts +0 -41
- package/dist/commands/config/ai-provider/set.js +0 -65
- package/dist/commands/config/ai-provider/test.d.ts +0 -25
- package/dist/commands/config/ai-provider/test.js +0 -24
- package/dist/commands/project/provider/get.d.ts +0 -15
- package/dist/commands/project/provider/get.js +0 -12
- package/dist/commands/project/provider/set.d.ts +0 -16
- package/dist/commands/project/provider/set.js +0 -18
- package/dist/commands/project/provider/test.d.ts +0 -15
- package/dist/commands/project/provider/test.js +0 -12
- package/dist/domain/ai-provider-capabilities.d.ts +0 -109
- package/dist/domain/ai-provider-capabilities.js +0 -180
- package/dist/domain/ai-provider-command-helpers.d.ts +0 -27
- package/dist/domain/ai-provider-command-helpers.js +0 -55
- package/skills/using-vvicat-ai-short-studio-cli/references/b-roll-and-screen.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/caption-and-graphics-direction.md +0 -11
- package/skills/using-vvicat-ai-short-studio-cli/references/composition-and-shot-review.md +0 -17
- package/skills/using-vvicat-ai-short-studio-cli/references/craft-index.md +0 -20
- package/skills/using-vvicat-ai-short-studio-cli/references/drama-canvas.md +0 -19
- package/skills/using-vvicat-ai-short-studio-cli/references/format-relationships.md +0 -15
- package/skills/using-vvicat-ai-short-studio-cli/references/h3-prompts.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/image-and-reference-direction.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/licensed-music.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/licenses/oh-my-short-drama-MIT.txt +0 -21
- package/skills/using-vvicat-ai-short-studio-cli/references/licenses/short-drama-MIT.txt +0 -21
- package/skills/using-vvicat-ai-short-studio-cli/references/media-provenance-and-review.md +0 -22
- package/skills/using-vvicat-ai-short-studio-cli/references/paid-plan.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/production-specialties.md +0 -25
- package/skills/using-vvicat-ai-short-studio-cli/references/recreation.md +0 -21
- package/skills/using-vvicat-ai-short-studio-cli/references/reference-analysis-and-timing.md +0 -19
- package/skills/using-vvicat-ai-short-studio-cli/references/remotion-editing.md +0 -18
- package/skills/using-vvicat-ai-short-studio-cli/references/shot-production.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/sound-and-captions.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/sources.md +0 -6
- package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/canvas-production.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/guide.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/index.md +0 -13
- package/skills/using-vvicat-ai-short-studio-cli/references/video-and-performance-direction.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/voice-and-sound-direction.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/writing-polish.md +0 -15
- /package/skills/using-vvicat-ai-short-studio-cli/references/{licenses/humanizer-MIT.txt → short-drama/assets/modules/humanizer/LICENSE} +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/compliance-checklist.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/genre-guide.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/hook-design.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/opening-rules.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/paywall-design.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/rhythm-curve.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/satisfaction-matrix.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/villain-design.md +0 -0
package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-deliver-drama.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# 验收与交付
|
|
2
|
+
|
|
3
|
+
只接收 `edit-drama-timeline` 按 [本地 Remotion 剪辑方案](../editing-workflow.md) 完成并通过审片的渲染版本。用 `media-tools.mjs qc` 核对分辨率、画幅、帧率、实际时长、编码、采样率、声道、响度和黑帧/冻结/静音事件;目标时长不要求逐秒命中,默认约 ±15% 的自然偏差不作为失败,超出时核对叙事理由和用户确认。从头到尾观看并听完,复核叙事、画面、声音、全部切点、字幕和片尾。交付前必须特别确认字幕不是默认黑底贴纸、说话人层级清楚、文字处于安全区;逐切点检查动作方向、视线、环境声和空间轴是否连续,并抽检淡化精确起始帧,避免仅靠长黑帧检测漏掉单帧黑闪。任何关键动作仅靠生成模型“应该会发生”而未在画面中实际成立,均不得标记为通过。
|
|
4
|
+
|
|
5
|
+
批准版视频、UTF-8 SRT 和 ASS 放入 `delivery/<episode-key>/` 后,运行 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/editing-store.mjs" manifest <项目> <episode-key> <成片> <SRT> <ASS>`;脚本会重新校验该集时间线与完整审片记录,计算文件哈希,并以独占方式建立 `delivery/<episode-key>/manifest.json`。所有选中剧集均登记本 Skill 的 manifest 证据并通过 delivery 门禁后,执行 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/workflow.mjs" complete <项目>` 固化项目终态。交付不得夹带临时缓存、未批准候选或覆盖既有 manifest。
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# 使用 Remotion 编辑短剧时间线
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
先运行 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/preflight.mjs" editing <项目目录>`,完整执行插件内置 `remotion-best-practices`,再读取 [本地剪辑方案](../editing-workflow.md)。剪辑门禁沿用成熟 CLI 方案:只导入逐镜四项验收通过的 selected 视频及其音轨,在项目 `editing/<episode-key>/` 中建立候选 `timeline.json`;用 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/editing-store.mjs" put-timeline <项目> <timeline.json>` 按 `episode_key` 校验每段选版、验收、路径、切点、转场和字幕后落盘,不覆盖源素材。
|
|
5
|
+
|
|
6
|
+
需要裁剪、换声、稳定、降噪、调色、局部修复、补帧、对口型或超分时,先切换到 `transform-drama-media` 执行统一媒体操作;时间线不得直接引用刚生成的候选。候选必须完成对应专项观察、结构化 QC 与完整观看,并由 `review_media_operation` 批准成为 selected 后才可导入。`dialogue_sync=lip-synced` 必须指向 provenance 为 `operation=lip-sync` 的同一 selected 版本,且 `.short-drama/shot-reviews.json` 中该精确 `asset@version` 必须是已批准的 `review_type=media-operation`、`operation=lip-sync` 记录;不能用原镜普通验收或另一版口型报告代替。对口型专项审核未通过时不得标记 `lip-synced`;超分专项审核未验证分辨率、时长帧率、音轨、脸手文字和运动伪影时,不得把高分辨率文件当成正式镜头。
|
|
7
|
+
|
|
8
|
+
字幕必须来自实际音轨转写并人工复核,不能用提示词冒充;有字幕时 timeline 必须写 `subtitle_source:{method:"asr"|"manual-transcription",reviewed:true,source_assets:[...]}` 并绑定 selected 实际音轨。模型提示词刻意禁字、但剧情依赖手机界面、倒计时、消息、地点或时间信息时,必须把这些内容作为确定性的 Remotion 图形层纳入时间线与完整审片。任何镜头的源区间与时间线区间相差超过 ±10% 时必须写 `retime_exception:{confirmed:true,reason}`;对白覆盖的镜头必须写 `dialogue_sync` 为 `native`、`lip-synced`、`offscreen` 或 `no-visible-speech`。超过 5 秒无任何音轨的区间必须补声音或写 `silence_exceptions`;只有对白/旁白而没有环境、音乐、音效或原生声轨时必须补声音设计或写 `sound_design_exception`。实际总时长超过目标 ±15% 必须写用户确认的 `duration_exception:{user_confirmed:true,reason}`。时间线按 [剪辑合同](../editing-workflow.md) 保存并由 `editing-store.mjs put-timeline` 硬校验。用 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/render-edit.mjs" scaffold <项目> <episode-key>` 生成确定性 Remotion 工程并物化渲染时间线后,每次渲染候选前执行 `freeze-edit-candidate.mjs create`(timeline 参数取 scaffold 生成的 `editing/<episode-key>/remotion/public/timeline.json`,remotion 目录取 `editing/<episode-key>/remotion`);先渲染审片版,用 `media-tools.mjs qc <文件>` 生成结构化报告,将完整 JSON 放进审片记录 `qc`,再完整观看和听完后 `put-review`。只有 `qc.passed=true` 且六维审片通过才可交付。
|
|
9
|
+
|
|
10
|
+
第三方配音字幕必须由最终 selected 音频的词级 alignment 构建,每条写入 `audio_binding={asset_key,version_id,sha256,line_index,speech_timing_version,dubbing_contract_version}`;`subtitle_source.audio_bindings`、dialogue/voiceover 音轨和 lip-sync provenance 必须逐字段一致。配音重生或换版后,旧字幕和旧口型即使文件仍存在也视为 stale,必须重新对齐、重建字幕、重做口型并复审,禁止通过改文件名继续沿用。
|
|
11
|
+
|
|
12
|
+
字幕按正常电影样式制作,不做综艺/新闻花字:每条字幕保留 `speaker`(或双人对白的 `speakers`)供 SRT 元数据与审片使用,但默认 `show_speaker: false` 不在画面上显示说话人;只有画外音、电话等需要辨识声源的镜头才对该条设 `show_speaker: true`,双人对白带“- ”前缀。正文单一白色高对比字色、细黑描边加轻投影,不使用全片统一厚重黑色圆角贴纸或不透明底盒;下三分之一安全区不得遮挡脸、手和关键道具。每条最多 2 行,长句必须由时间线显式写入语义换行,Remotion 使用 `whiteSpace: pre-line` 保留,禁止自动换行产生单字/短词孤行;不要写句末 `。`/`.`(导出也会自动省略)。中文常规阅读速度控制在约 6–12 字/秒,停留不短于 700ms,快速回声可在不改变事实与语气的前提下压缩为等义短句。字幕入出点对齐帧栅格、按语音起止留 2–4 帧余量,连续对白按说话人切换而不是固定时长。候选冻结后用 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/export-edit-subtitles.mjs" export <冻结timeline> <候选.srt> <候选.ass>` 生成同版本外置字幕;导出逐条校验,任一不通过即整体拒绝并列出每条错误(超长、超字/秒、停留过短、重叠、越界等),修正时间线后重新导出,禁止手改 SRT/ASS 或复用旧候选文件。镜头衔接审查必须逐切点记录“上一镜动作/视线/声音如何把下一镜带入”;若计划写了转场但实现仍为硬切,必须修改时间线或计划,不能仅保留名义字段。涉及后期补画的剧情动作,必须在时间线记录 `effect`/`graphics`,并在全片审片中单独验证其空间方向、接触关系和遮挡边界。
|
|
13
|
+
|
|
14
|
+
导入时间线前检查所有候选镜头的分辨率、帧率、色彩空间和像素长宽比;低分辨率修复镜头先以可追溯的本地转码副本统一到成片规格,允许轻量 Lanczos 放大、锐化和色彩匹配,但不得覆盖资产库原文件。转码参数和来源版本必须进入剪辑记录,避免在 Remotion 渲染时临时、不可复现地处理。
|
|
15
|
+
|
|
16
|
+
未来来电、监听器和录音回放使用独立音轨覆盖原生对白区间:基础声纹必须与当前角色一致,只叠加约 300–3400 Hz 电话窄带、轻压缩/限幅和 2–4 帧淡入淡出。时间线记录被静音的原生区间与替换音轨来源,防止原声和替换声叠加;处理后逐角色 A/B 试听当前声与未来声是否仍能识别为同一人。
|
|
17
|
+
|
|
18
|
+
目录配乐进入 `audio_tracks` 时必须绑定当前 selected audio-plan 的 `track_key`;音轨资产版本、`license_receipt` 和 `intended_use` 必须逐项等于该计划,且资产 provenance 必须指向同一不可变许可证收据。剪辑入口会按 commercial、paid_ad、client_project、broadcast 校验用途,缺一项许可就阻断;署名文本进入交付说明,`content_id_risk=true` 时保留下载证明并在目标平台发布前复核,不因“免版税”字样跳过。
|
|
19
|
+
|
|
20
|
+
多镜时间线必须为每个边界写 `edit_points[]`,明确 `cut_ms`、两帧内的 `anchor:{type,time_ms,evidence}`、`transition_reason` 与 `audio_bridge`。锚点可来自音乐节拍、动作冲击/峰值、对白意群、声音提示、气氛变化、视线落点或构图匹配;不能用一句“节奏需要”代替证据,也不能把所有镜头机械吸附到鼓点。转场字段必须落到 Remotion:`fade`/`dissolve` 使用 6–12 帧帧确定性 opacity 曲线,前一画面必须覆盖完整淡化区间,原生环境声同步做 constant-power 交叉淡化,不能出现“画面柔和、声音硬跳”;`action-cut` 只允许前后镜动作方向、主体姿态、空间位置与道具状态能连续承接,若同一造型人物跨地点或道具状态突变,应补建立镜头、重排或用有明确时空含义的短淡化,不能把“瞬移”标成动作切;`hard-cut`/`eyeline-cut` 保持零帧硬切,J/L-cut 通过独立音轨重叠实现。不得把所有切点统一套淡化。对每次转场至少抽取切点前一帧、精确帧、淡化中点和完成帧,复核没有单帧黑闪、跳轴、声音跳变或动作断裂。
|
|
21
|
+
|
|
22
|
+
多镜时间线必须设 `audio_tracks_complete:true`,且独立音轨无缝覆盖全片;只有合同成立时镜头组件才静音,全部对白、环境、动作和音乐从 `audio_tracks` 独立混音,避免内嵌音轨与正式音轨重复叠加。旧单镜时间线没有该声明时继续保留镜头内嵌声音,不得在迁移前把合法旧成片变成无声片。`ambient`、`native` 与 `bgm` 音轨必须写 `fades:{in_ms,out_ms,curve:"constant-power"}`;constant-power 声音桥要求前后两条环境/原生音轨按 `duration_ms` 真实重叠,并分别使用等长淡出和淡入。BGM 的 `volume_envelope` 必须覆盖首尾并表达铺底、推进、高潮与收束层级。BGM 和对白/旁白重叠时,`mix.bgm_ducking` 必须显式配置 `enabled:true`、负值 `reduction_db`、`attack_ms` 与 `release_ms`,由脚手架编译为逐帧包络;禁止只给整轨一个固定音量。
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Remotion 短剧剪辑规范
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
本 Skill 是剪辑阶段的必经实现层。先运行 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/preflight.mjs" editing <项目目录>`,再读取 [本地剪辑与交付规范](../editing-workflow.md)。只接收逐镜四项验收通过且已 selected 的本地资产;保留源文件,每集时间线由 `editing/<episode-key>/timeline.json` 驱动并由 `editing-store.mjs` 校验。
|
|
5
|
+
|
|
6
|
+
没有 Remotion 工程时,用 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/render-edit.mjs" scaffold <项目目录> <episode-key>` 从插件内置模板(`assets/remotion-template/`)生成确定性工程到 `editing/<episode-key>/remotion/`:自动把 selected 媒体复制进 `public/media/`、生成带 `file` 字段与 `subtitle_layout` 的 `public/timeline.json` 和可打包的 `src/timeline.generated.ts`;已有工程直接复用。禁止手搓 `npx create-video` 或绕过内置模板散落硬编码。素材放入工程 `public/`,用 `staticFile()` 引用;视频用 `OffthreadVideo`、音频用 `Audio`(均从 `remotion` 引入,时间裁切用 `trimBefore`/`trimAfter` 帧字段),图片使用 `<Img>`。依赖版本由模板 `package.json` 固定,`render-edit.mjs render` 首次自动 `npm install`,不要在工程内 `npx remotion add` 漂移版本。composition 的 `durationInFrames` 必须从 timeline 实际尾点计算,不能把“一分钟短剧”硬编码为 60 秒;目标时长默认允许约 ±15% 自然浮动,平台明确限长除外。
|
|
7
|
+
|
|
8
|
+
所有动画和时间逻辑必须帧确定:使用 `useCurrentFrame()`、`useVideoConfig()`、`interpolate()`、`Easing` 和 `<Sequence>`;禁止 CSS transition、CSS animation 与 Tailwind 动画类。素材路径、入出点、音量、字幕和转场参数集中来自 timeline,不散落硬编码。剧情依赖而生成模型禁止或无法可靠绘制的手机 UI、倒计时、消息、地点和时间信息,必须由 timeline 驱动的 Remotion 图形层补齐并在完整审片中逐项核对;图形按语义分层,来电/倒计时使用不遮挡主体的顶部或侧边 HUD;回传信息若与对白字幕同时出现,只显示“目标/状态”等非重复信息的状态 HUD,只有独立无对白插入镜头才使用完整叙事卡片。图形优先锚定剧情载体附近的非人脸区域,但不得遮挡载体本身,不能所有类型套同一个居中大黑卡。`segments[]` 驱动画面;多镜时间线设 `audio_tracks_complete:true` 后视频组件静音,`audio_tracks[]` 独立驱动全部声音、可重叠 J/L-cut、constant-power 淡化与 BGM ducking,旧单镜未迁移时间线仍保留内嵌声音。`edit_points[]` 绑定每个切点的声音/动作/气氛/节拍依据,`labels[]` 驱动角标和标题。转场保存为 `{type,duration_frames}`;以硬切、动作切、视线切、构图匹配和 J/L-cut 为主,常规淡化只在明确语义下使用 6–12 帧,并用帧确定曲线避免机械线性闪变。实现交叉溶解时,前一画面最后一帧冻结在上层并完整淡出,露出下方不透明的下一镜,禁止重播尾部动作或让新旧两镜同时对黑底淡化;对应原生环境声必须真实重叠并做等长恒功率淡出/淡入。每个切点先判断叙事因果、动作峰值、对白落点、声音瞬态和气氛变化,再决定切点与声音桥;不得靠连续淡化掩盖素材逻辑断裂。画面统一只允许可追溯的轻量色彩匹配,参数必须进入 timeline 或剪辑记录。
|
|
9
|
+
|
|
10
|
+
字幕必须从实际成片音轨转写并人工复核,内部统一使用 Remotion `Caption` JSON:`text`、`startMs`、`endMs`、`timestampMs`、`confidence`,可附 `speaker` 和样式;同时输出烧录字幕、UTF-8 SRT 和 ASS。字幕走正常电影样式,不做综艺/新闻花字:默认不显示说话人(只有画外音、电话等需要辨识声源的镜头在 Caption 上设 `show_speaker: true`),说话人名条用小号浅灰次级文字;双人对白用 `speakers: ["甲","乙"]`,每行以“- ”开头且不叠名条。烧录样式必须与 `export-edit-subtitles.mjs` 生成的 ASS 完全一致:PlayRes 取成片宽高,字号约画面高 1/28(1080×1920 为 69px、名条 39px),左右下外边距约 8%,白色正文加细黑描边(约 2px)和 1px 轻投影,不要任何不透明底盒或黑色圆角贴纸;名条描边 1px、无投影。每条最多 2 行、单行容量按分辨率换算(1080×1920 约 13 字),时间线中的语义换行用 `whiteSpace: pre-line` 保留,不能把长句交给浏览器自动折行而产生孤字;句末不显示 `。`/`.`。中文常规阅读速度约 6–12 字/秒,导出器拦截超过 12 字/秒和短于 700ms 的停留,短时回声只能等义压缩,不能为了塞入时间码改写剧情事实;入出点对齐帧栅格、相对语音留 2–4 帧余量。字幕不能遮脸、手、关键道具或画内文字,必须在缩小预览和安全区内复核。每条独立音轨记录 selected 资产版本、源/时间线范围、角色和 `volume_envelope`;混音固定 `target_lufs` 与 `true_peak_dbtp`。H3 原生整轨只允许轻量、可逆的增益、EQ、降噪、压缩、限幅与短交叉淡化,不得用外部 TTS/BGM 覆盖失败。
|
|
11
|
+
|
|
12
|
+
预览用 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/render-edit.mjs" render <项目目录> <episode-key> --preview`(底层 `remotion studio --no-open`),审片版与交付版统一用 `node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/render-edit.mjs" render <项目目录> <episode-key> [--out <path>]`(底层 `npx remotion render` 出片,默认 `delivery/<episode-key>/final.mp4`);QC 响度不达标时用 `render-edit.mjs loudness` 做 loudnorm 后处理。完整观看和听完、保存六项审片结论后才渲染交付版。成片目标与转场、响度、角标、画面连续性和交付清单以 `editing-workflow.md` 为准。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 本地 Remotion 剪辑与交付
|
|
2
|
+
|
|
3
|
+
本方案保留成熟 CLI 流程的 selected 版本、逐镜四项验收、独立字幕、声音平衡、时间线 manifest 和全片验收门禁;执行层改为本地 Remotion。剪辑只读取本地 `assets.json` 中已选且通过逐镜验收的视频、音频和图片版本。涉及 Remotion 工程、React 标记、字幕或渲染时先使用 `remotion-best-practices`,按需读取其中 create、markup、captions 和 render 指南。
|
|
4
|
+
|
|
5
|
+
## 1. 入库与时间线
|
|
6
|
+
|
|
7
|
+
- 保留源文件,不原地修改。
|
|
8
|
+
- 项目中的单集时长是策划目标而非精确截止;默认允许实际成片约 ±15% 自然浮动,超出时记录叙事理由并重新确认。Remotion composition 必须读取时间线实际总时长,不能硬编码 60 秒;动作完成、对白可读和结尾呼吸优先于机械卡点。
|
|
9
|
+
- 用 `media-tools.mjs probe` 记录分辨率、帧率、时长、编码、采样率与声道。
|
|
10
|
+
- 在项目 `editing/<episode-key>/` 下维护该集候选 `timeline.json`;`segments[]` 记录镜头选版、入出点和 `{type,duration_frames}` 转场,`edit_points[]` 为每个相邻镜头边界记录卡点依据、转场理由和声音桥,`audio_tracks[]` 独立记录对白/旁白/环境/BGM/SFX/原生声轨、音量包络与淡化,`subtitles[]` 使用 Caption 合同,`labels[]` 记录人物角标、标题与片尾,`graphics[]` 记录必须由后期补齐的 phone-call/countdown/message 剧情图形层,`mix` 固化目标响度和 BGM ducking。多镜时间线必须设 `audio_tracks_complete:true` 且独立音轨无缝覆盖全片,只有此时渲染器才静音镜头内嵌声音;旧单镜时间线不声明该字段时仍保留内嵌声音。用 `node scripts/editing-store.mjs put-timeline <项目> <timeline.json>` 按 `episode_key` 统一校验并落盘。
|
|
11
|
+
- `segments[]` 的 `shot_key` 与视频 `asset_key` 都必须使用 `shot-epNNN-NNN`;进入交付前必须按当前已选制作计划的镜号和顺序完整覆盖,不能漏镜、增镜或重排。
|
|
12
|
+
- Remotion 素材复制或链接到工程 `public/`,使用 `staticFile()`;视频用 `OffthreadVideo`、音频用 `Audio`(均从 `remotion` 引入,时间裁切用 `trimBefore`/`trimAfter` 帧字段),图片使用 `<Img>`。
|
|
13
|
+
- 候选渲染前用 `freeze-edit-candidate.mjs create` 在 `editing/<episode-key>/candidates/<candidate-key>/` 冻结 timeline、Remotion 源码/依赖清单和全部引用媒体哈希;历史 manifest 只能指向该冻结快照,不能指向持续修改的工作时间线。
|
|
14
|
+
|
|
15
|
+
## 2. 粗剪、字幕与转场
|
|
16
|
+
|
|
17
|
+
- 先按叙事因果建立粗剪,再裁掉无效开头、重复动作、动作回弹和空白尾帧;不得截断对白、呼吸、拟音或转场余量。
|
|
18
|
+
- 优先在动作峰值、视线落点、对白意群结束、声音瞬态或构图匹配点切换。action-cut 必须同时连续承接动作方向、主体姿态、空间位置和道具状态;同一造型人物跨地点或道具突变时补建立镜头、重排或使用有明确时空含义的短淡化。J/L-cut 必须保持说话者清晰、口型不冲突。
|
|
19
|
+
- 字幕以实际音轨转写并人工复核,使用 Remotion `Caption` JSON:`text`、`startMs`、`endMs`、`timestampMs`、`confidence`,可附 `speaker`(字符串)、`speakers`(1–2 人,双人对白)和 `show_speaker`(布尔,默认 false)。候选冻结后用 `export-edit-subtitles.mjs` 从该候选的冻结 timeline 同步生成 UTF-8 SRT 和 ASS,禁止复用其他版本文件;导出逐条校验,任一字幕不通过就整体拒绝并返回每条的错误码,不生成半截文件。
|
|
20
|
+
- 电影字幕基线:默认不显示说话人(`show_speaker` 仅用于画外音、电话等需要辨识声源的镜头);SRT 始终保留说话人元数据行,ASS 烧录默认隐藏。双人对白每条物理行前加“- ”且不叠名条。ASS 布局按时间线实际分辨率生成:PlayResX/Y 等于成片宽高,字号约画面高 1/28,左右下外边距约 8%;正文白色、细黑描边、轻投影(BorderStyle 1,无底盒),禁用厚重黑色圆角贴纸。每条最多 2 行,单行容量按分辨率换算(1080×1920 约 13 字),长句必须在时间线显式语义断行并由 Remotion `whiteSpace: pre-line` 保留,禁止自动折行产生孤字;导出自动省略每行句末的 `。`/`.`。中文常规阅读速度约 6–12 字/秒,导出拦截超过 12 字/秒和短于 700ms 的停留,快速回声只能等义压缩;入出点对齐帧栅格并相对语音留 2–4 帧余量(不对齐出警告,由人工修时间线)。字幕放在下三分之一安全区,不能遮住脸、手、关键道具或画内文字。
|
|
21
|
+
- 剧情图形按语义选择布局:来电人与倒计时使用顶部/侧边安全区 HUD;回传信息与对白字幕并存时只显示“目标/状态”等非重复信息,独立无对白插入镜头才用完整叙事卡片。图形可锚定手机、屏幕等剧情载体附近的非人脸区域,但不能遮住载体本身;不得所有 phone-call/countdown/message 图形共用居中大黑卡遮挡人物或关键道具。
|
|
22
|
+
- 硬切、动作/视线/构图匹配优先;短淡化只用于时间、地点或情绪变化。常规淡化约 6–12 帧,使用帧确定的缓出曲线,不给所有镜头统一套转场;剪辑前先确认动作因果和视线落点,不能用淡化掩盖生成镜头的逻辑断裂。
|
|
23
|
+
- 每个切点都要有可核对的动作、视线、声音或空间轴依据;`transition` 字段不得替代真实实现。后期效果必须记录空间方向、遮挡边界和实际验收观察。
|
|
24
|
+
- 多镜时间线必须逐边界填写 `edit_points[]`:`cut_ms` 精确等于镜头边界;`anchor.type` 只能是 `music-beat|action-impact|motion-apex|dialogue-boundary|sound-cue|ambience-shift|eyeline|composition`,`anchor.time_ms` 与切点相差不超过两帧,并写可核对 evidence。动作切只绑定动作冲击/峰值,视线切和构图匹配绑定对应锚点;J/L Cut 必须由同类型重叠音轨实现。卡音乐节拍不是所有镜头机械对齐鼓点,优先让剧情动作、对白落点和气氛变化共同决定切点。
|
|
25
|
+
- Remotion 实现约束:`fade` 只能用 6–12 帧帧确定性 opacity 曲线,并让前一画面在底层覆盖完整淡化区间;首尾相接的 Sequence 不能只淡入新镜头,否则切点会暴露黑底。原生环境声同步延长并做等长交叉淡化,动作/硬切保持零帧,J/L-cut 由独立音轨重叠表达;每个淡化至少复核切点前一帧、精确切点、淡化中点和完成帧,不能只依赖按秒联系表或长黑帧检测。
|
|
26
|
+
|
|
27
|
+
## 3. 声音与画面
|
|
28
|
+
|
|
29
|
+
- 先保证对白和旁白可懂,再平衡环境音、动作音和 BGM。只做可逆增益、EQ、降噪、压缩、限幅和短淡化。
|
|
30
|
+
- `ambient`、`native` 和 `bgm` 音轨必须声明 `fades:{in_ms,out_ms,curve:"constant-power"}`,避免片段边界爆点或中点响度下陷。BGM 还必须用覆盖轨道首尾的 `volume_envelope` 明确基础层级;与对白/旁白重叠时在 `mix.bgm_ducking` 写 `enabled:true`、`reduction_db`、`attack_ms`、`release_ms`,渲染前编译成逐帧音量自动化。ducking 只降低 BGM,不改对白音轨,也不能替代完整试听与手工修正。
|
|
31
|
+
- 无平台专门标准时,全片参考 -14 至 -16 LUFS,true peak 不高于 -1 dBTP,最终以完整试听无削波、泵动和人声遮盖为准。
|
|
32
|
+
- 统一画幅、帧率、色彩空间和像素长宽比;裁切不得伤及脸、手、关键道具、画内文字和字幕安全区。全片轻量色彩匹配参数必须写入 timeline 或剪辑记录,不能只硬编码在 Remotion 组件中。
|
|
33
|
+
- 低分辨率候选镜头先生成可追溯的本地规范化副本,再进入 Remotion;可使用 Lanczos 放大、轻微锐化和色彩匹配,不覆盖资产账本中的原始媒体,并记录输入版本与转码参数。
|
|
34
|
+
- 所有镜头级变换统一走 `submit_media_operation`,结果先作为未选候选保存。裁剪审核记录范围内、范围外、时长和音轨;替换音轨记录范围内、范围外、同步、声纹和时长;稳定、降噪、调色、遮罩模糊、补帧与局部重绘记录范围内、范围外、身份和时序连续;对口型记录同步时点、身份、口腔伪影、非目标脸和时长;超分记录分辨率、时长帧率、音轨、脸手文字、运动伪影和色彩裁切。每类操作都先保存 `media-tools.mjs qc` 完整输出并完整观看,再由 `review_media_operation` 选版;不得仅因任务成功或文件分辨率变大就导入时间线。
|
|
35
|
+
- 同角色的未来来电与当前对白共享同一基础声纹;电话感只用约 300–3400 Hz 窄带、轻压缩/限幅和短淡入淡出表达。替换电话音轨时必须静音原生对白的同一区间,记录来源和区间,并逐角色 A/B 验证。
|
|
36
|
+
|
|
37
|
+
## 4. Remotion 实现与交付
|
|
38
|
+
|
|
39
|
+
- 动画使用 `useCurrentFrame()` 与 `interpolate()`;禁止 CSS transition、CSS animation 和 Tailwind 动画类。
|
|
40
|
+
- 片段用 `<Sequence>` 表达帧起止,时间线参数集中由 `timeline.json` 驱动,不能把素材路径和切点散落在组件中。
|
|
41
|
+
- 预览用 `node scripts/render-edit.mjs render <项目> <episode-key> --preview`(底层 `remotion studio --no-open`),审片版与交付版统一用 `node scripts/render-edit.mjs render <项目> <episode-key> [--out <path>]`(底层 `npx remotion render`);不要绕过脚手架手搓裸 `npx remotion render` 或 `npx create-video`。
|
|
42
|
+
- 完整观看并听完最终文件,先把 `node scripts/media-tools.mjs qc <成片>` 的完整 JSON 原样写入审片记录 `qc`,再用 `node scripts/editing-store.mjs put-review <项目> <episode-key> <审片.json>` 保存六项结论。QC 硬检音视频流、黑帧、长静音、长冻结、BT.709、响度和真峰值;批准记录必须 `qc.passed=true`。最后用 `node scripts/editing-store.mjs manifest <项目> <episode-key> <成片> <SRT> <ASS>` 生成不可覆盖 manifest;脚本核对 QC 成片哈希、分辨率和时长。后续审计发现 P0/P1 时必须再次 `put-review` 写入失败结论,使旧 manifest 因 review 哈希变化而失效。
|
|
43
|
+
|
|
44
|
+
最小时间线骨架:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"episode_key": "ep-001", "fps": 24, "width": 1080, "height": 1920,
|
|
49
|
+
"segments": [{ "shot_key": "shot-ep001-001", "asset_key": "shot-ep001-001", "version_id": "v001", "source_in_ms": 0, "source_out_ms": 5000, "timeline_start_ms": 0, "timeline_end_ms": 5000, "transition": { "type": "none", "duration_frames": 0 } }],
|
|
50
|
+
"edit_points": [], "audio_tracks_complete": true,
|
|
51
|
+
"audio_tracks": [{ "asset_key": "audio-ep001-linwan", "version_id": "v001", "role": "dialogue", "source_in_ms": 0, "source_out_ms": 5000, "timeline_start_ms": 0, "timeline_end_ms": 5000, "volume_envelope": [{ "time_ms": 0, "gain_db": 0 }, { "time_ms": 5000, "gain_db": 0 }] }],
|
|
52
|
+
"subtitles": [{ "text": "台词", "startMs": 100, "endMs": 900, "timestampMs": 100, "confidence": 1, "speaker": "林晚" }],
|
|
53
|
+
"graphics": [{ "type": "countdown", "title": "剩余时间", "text": "00:10", "startMs": 100, "endMs": 900 }],
|
|
54
|
+
"labels": [], "mix": { "target_lufs": -15, "true_peak_dbtp": -1, "bgm_ducking": { "enabled": true, "reduction_db": -12, "attack_ms": 180, "release_ms": 350 } }
|
|
55
|
+
}
|
|
56
|
+
```
|
package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/feature-completeness.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# 独立短剧插件能力审计
|
|
2
|
+
|
|
3
|
+
当前制作仅使用 Hypit Runtime 中的 StarRouter;公网参考素材统一走 TempFile.org。下文保留的历史设计合同不表示已停用的远端能力仍可提交。
|
|
4
|
+
|
|
5
|
+
审计基线为原项目的标准短剧制作链、内置短剧提示词和相关资产/任务流程。原项目当前包含 284 个 API route,其中大量属于账号、团队、管理后台、支付、积分、云存储和在线资产库;这些不是本地短剧制作能力,不移植。
|
|
6
|
+
|
|
7
|
+
## 已保留并本地化
|
|
8
|
+
|
|
9
|
+
| 制作能力 | 插件实现 | 结论 |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| 源时间线情感配音 | `speech-timing.mjs`、`dubbing-compiler.mjs`、`dubbing-fit.mjs`、`dubbing-performance-review.mjs`、`subtitles-from-audio.mjs` | 原声证据、完整表演合同、三轮上限、八维审核和字幕/口型同源性均为硬门禁 |
|
|
12
|
+
| 项目、分集与版本 | `manage-drama-projects`、`project-store.mjs`、`project-spec-v1.md` | 固定目录、统一配置、来源归档、不可变版本、显式选版 |
|
|
13
|
+
| 小说/要求分析到剧本 | analysis、brief、bible、outline、`short-drama`、episode Skills | 文本由 Codex 完成;剧本强制经过短剧方法论、Humanizer 与复核 |
|
|
14
|
+
| 导演本 | `write-drama-director-book` | 场次导演合同单独保存 |
|
|
15
|
+
| 剧本自然化与复核 | `humanizer`、`review-drama-script` | 新版本落盘,复核版本必须匹配所选剧本;合规清单形成硬门禁 |
|
|
16
|
+
| 人物、场景、道具分析 | `plan-drama-assets`、三类资产 Skills | 证据化提取、版本和未决项门禁 |
|
|
17
|
+
| 人物/场景/道具设定板 | 各资产生成 Skill、`character-appeal.mjs`、`character-appeal-review.mjs` | 人物含脸部、三主视图与辅助设定;成年魅力、儿童可爱保护、专属妆造和记忆锚点使用不可互相补偿的生成与选版门禁;场景含九视角、平面/轴测;道具含主视图、三视图与结构细节 |
|
|
18
|
+
| 分镜与镜头修订 | storyboard/revision Skills | 资产白名单、来源覆盖、连续性与版本化 |
|
|
19
|
+
| 镜头组、跨镜空间与尾帧承接 | `shot_group`、`plan-shot-continuity`、`hypit-runtime.mjs`、`prepare_previous_tail` | 校验叙事组连续性;按 previous-tail 链派生生成组,不同组并行、同组串行;只从已审核 selected 上一镜派生带 SHA-256 来源链的首帧 |
|
|
20
|
+
| 分镜图、视频提示词、镜头视频 | storyboard image/video Skills | 视频提示词按 Seedance 2.0、MiniMax H3 或已确认通用协议编译并本地版本化;由 Provider 实时能力控制参数 |
|
|
21
|
+
| 原生声音与外部音频 | `design-drama-audio`、`native-audio-audit.mjs` | native-first 路由、电影感旁白、CosyVoice 声音设计/克隆、七维复听和已授权外部音频;七维后配兜底和口型驱动仍停用 |
|
|
22
|
+
| 授权配乐目录 | `music-catalog`、`music-license-ledger.mjs`、`register_licensed_music` | 剧情条件编译、官方入口、本地试听下载边界、不可变许可证收据与时间线用途校验 |
|
|
23
|
+
| 生成服务 | `drama-generation-service`、Hypit Runtime | StarRouter 图片、视频、语音、音乐与转写;模型和参数由项目确认,媒体版本保留 provenance |
|
|
24
|
+
| 临时参考素材发布 | `publish-drama-references`、TempFile.org 适配器 | 公网 HTTPS URL、逐项确认、哈希绑定、本地上传收据、有效收据复用和跨会话查询;不作为资产库 |
|
|
25
|
+
| 异步任务与恢复 | task ledger、monitor/recover Skills | 跨进程安全账本、输入去重、统一输出和结果对账 |
|
|
26
|
+
| 剪辑与交付 | `remotion-best-practices`、timeline/delivery Skills | 吸收成熟 CLI 的选镜、切点、字幕、角标、转场、响度与完整审片规则,并用 Remotion 实现 |
|
|
27
|
+
| 媒体能力主编排 | `workflow-stages.mjs`、`orchestrate-short-drama` | 明确人物门禁、连续性/尾帧、原生声音、授权音乐、本地媒体修复和交付顺序;旧兜底、口型与远端超分节点已禁用 |
|
|
28
|
+
| 跨会话恢复与环境 | SessionStart hook、`RESUME.md`、`AGENTS.md`、`preflight.mjs` | 项目内恢复当前阶段、选版和任务;初始化及媒体/剪辑阶段留下无密钥环境报告 |
|
|
29
|
+
|
|
30
|
+
## 从原系统能力转换而来
|
|
31
|
+
|
|
32
|
+
- 数据库项目、剧集、分镜和资产表转换为项目目录、JSON 版本和 SHA-256 资产账本。
|
|
33
|
+
- 在线任务服务转换为本地任务账本;Provider 任务 ID 只作为外部回执,不是资产。
|
|
34
|
+
- 提示词数据库与 seed 转换为各原子 Skill 自带的中英文模板;固定词表集中在 `controlled-vocabulary.json`,动态项目上下文在调用时生成。
|
|
35
|
+
- 原项目 Provider 调用转换为独立 MCP 生成服务;文本不再绕到外部文本模型。
|
|
36
|
+
- 原 CLI 的 selected 版本、逐镜验收、字幕、声音平衡、时间线 manifest 和全片验收门禁保留,执行层使用本地 Remotion。
|
|
37
|
+
|
|
38
|
+
## 明确不保留
|
|
39
|
+
|
|
40
|
+
- 登录、用户、团队、邀请、权限、管理员后台。
|
|
41
|
+
- 支付、积分、套餐、价格发布和用量计费。
|
|
42
|
+
- 永久云对象存储、在线素材市场、全局共享资产库和业务数据库同步。只保留为模型传输服务的可选临时参考图发布。
|
|
43
|
+
- 在线模板 CRUD、提示词管理后台、通知、SSE 和 Web 页面状态。
|
|
44
|
+
- 无限画布、节点编辑器及其节点 ID 合同。
|
|
45
|
+
|
|
46
|
+
原项目四组制作提示词共有 45 个唯一 stem:38 个按原能力映射,`character_reference_to_sheet` 合并优化为人物完整 `character_asset_sheet`,`panel_h3_video` 重构为独立于画布的 `h3_video`;`character_voice_recommend_cosy` 已去除单一供应商耦合并吸收到通用 `character_voice_recommend`,而 `director_snapshot_render`、`project_cover_generation` 仍不进入标准短剧插件。插件另补 source analysis、brief、director book、production plan、script review、画风/资产完整设定板和 Seedance 2.0 等标准制作模板,当前合计 52 组中英文模板。
|
|
47
|
+
|
|
48
|
+
人物视觉不是普通美观评分:`audience_appeal` 先从明确年龄证据区分 `adult-charisma` 与 `child-cuteness`;定妆图逐项审查年龄、身份、妆造服装、`memory_anchors`、观众吸引力及保护标记。任何一项失败都禁止选版。跨镜引用用档案 SHA、`appearance_id` 和 `identity_constraints` 绑定,连续性计划用 `visual_identity` 阻止无剧情证据的换脸、换妆造或换装。
|
|
49
|
+
|
|
50
|
+
这些能力服务原产品 SaaS,不是“从本地素材到本地成片”的必要步骤;引入它们会重新耦合原系统。
|
|
51
|
+
|
|
52
|
+
## 当前边界
|
|
53
|
+
|
|
54
|
+
- StarRouter 当前声明图片、视频、同步语音、音乐、语音转写和翻译能力;长文本异步语音返回 TAR,尚未开放为可直接剪辑的音频资产。
|
|
55
|
+
- CosyVoice 自定义音色设计/克隆只用于独立 TTS,必须使用当前目标模型生成的真实音色 ID,并通过试听和审核;不得覆盖 H3 原生对白。七维后配兜底、SeedVR2.5 超分及 MuseTalk 口型驱动仍缺少已验证的统一生产入口,当前明确禁用。
|
|
56
|
+
- 音乐目录不提供抓站下载器。在线结果只打开官方搜索入口,登录、试听、下载和当次许可证判断由用户在站点完成;插件只接收本地文件与证据,并在 audio-plan 和时间线两次核对用途。
|
|
57
|
+
- 插件不内置大型模型价格表或替用户估价;生成前读取实时 Provider 目录并要求用户确认完整制作计划。
|
|
58
|
+
- TempFile.org 临时参考地址对持有链接者公开,有效期按上传收据核对;不保证长期可用,也不替代本地资产。
|
|
59
|
+
- Remotion 工程按项目创建,不在插件里复制固定业务工程;这样可保持素材路径、画幅、字幕和交付规格可追溯。
|
|
60
|
+
|
|
61
|
+
## 外部项目对照审计
|
|
62
|
+
|
|
63
|
+
2026-09-09 至 2026-09-10 对照 [OSideMedia/higgsfield-ai-prompt-skill](https://github.com/OSideMedia/higgsfield-ai-prompt-skill) `c0b73ab` 与 [eternityspring/shuohao-skills](https://github.com/eternityspring/shuohao-skills) `4322897e`。本插件只吸收可泛化的制作纪律,不复制平台目录、实现代码或原文。
|
|
64
|
+
|
|
65
|
+
| 结论 | 吸收或跳过原因 |
|
|
66
|
+
|---|---|
|
|
67
|
+
| 吸收剧本动作可生成性与相邻节拍状态复核 | 补入 `short-drama`,并由 `review-drama-script` 的制作可行性维度复核 |
|
|
68
|
+
| 吸收目标—阻力—策略与倾听对象 | 补强 `director_book`;逐镜 `agent_acting_direction` 已有同类结构,不重复建 Skill |
|
|
69
|
+
| 吸收症状—机制—单变量修复的审片纪律 | 补入 `review-drama-shots`,连续两次无效即停止盲重试 |
|
|
70
|
+
| 跳过固定 2–5 秒切镜、固定语速折算 | 与当前 Provider 4–15 秒素材合同及多语言表演节奏冲突,由制作计划逐镜决定 |
|
|
71
|
+
| 跳过 Higgsfield 模型目录、价格、CLI 与记忆库 | Provider 不同;实时模型能力、请求快照和本地账本已有唯一事实来源 |
|
|
72
|
+
| 跳过每个 Skill 自带脚本与独立 HTML 报告 | 当前集中审计、集成自检和 Studio 已覆盖,复制会增加维护面 |
|
|
73
|
+
|
|
74
|
+
### 二轮反向缺口矩阵
|
|
75
|
+
|
|
76
|
+
| 对照能力 | 当前处理 | 收敛依据 |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| 分阶段路由、选版与上游变更失效 | 已有且保留 | 本插件九阶段工作流、不可变版本和哈希失效链比两个对照项目更完整 |
|
|
79
|
+
| 结构化文档硬门禁 | 已吸收 | 资产计划、剧本复核、导演本、分镜和视频提示词在写入及选版时统一复验;磁盘篡改不能绕过门禁 |
|
|
80
|
+
| 资产证据、版本和派生态 | 已吸收 | 资产计划要求来源定位与原文证据;场景、道具派生版本必须以母版为身份参考且只允许证据支持的变化 |
|
|
81
|
+
| Seedance 长镜头时间段连续性 | 已吸收 | 13–15 秒提示词要求从 0 开始、无间隙无重叠并覆盖完整时长,保存时执行确定性校验 |
|
|
82
|
+
| 表演目标、阻力、策略、倾听与潜台词 | 已吸收 | 导演本与逐镜表演指令共同承载,不增加重复 Skill |
|
|
83
|
+
| 失败分类、单变量修复与停止条件 | 已吸收 | 复用已有任务失败分类,补入症状—机制—单变量修复和两次无效后停止盲重试 |
|
|
84
|
+
| 固定 2–5 秒切镜与固定语速阈值 | 明确拒绝 | 当前一个生成镜头可为 4–15 秒,剪辑切点另由时间线控制;多语言对白不能共用固定字数语速 |
|
|
85
|
+
| 剧本文本的确定性字段解析 | 暂不引入 | 当前剧本合同允许 JSON、Markdown 和纯文本;若未来统一为结构化剧本,再增加逐行时长和角色引用硬门禁 |
|
|
86
|
+
| Higgsfield 模型目录、价格、过滤词和 CLI | 明确拒绝 | 与当前 Provider 不同且易过期;实时能力目录、请求快照和本地账本是唯一事实来源 |
|
|
87
|
+
| Shuohao 独立 HTML 报告与 Higgsfield 记忆数据库 | 明确拒绝 | Studio 和项目内请求、任务、提示词、资产账本已覆盖,复制会形成第二事实来源 |
|
|
88
|
+
| 每个工具的可执行自检 | 已吸收为集中入口 | 保留现有最小自检,由 `integration-self-check.mjs --self-check` 统一执行,不复制一套测试框架 |
|
|
89
|
+
| 营销工作室、无限画布和平台专属应用 | 范围外 | 不属于“本地素材到本地短剧成片”的标准制作链 |
|
|
90
|
+
|
|
91
|
+
### 三轮专业知识审计
|
|
92
|
+
|
|
93
|
+
| 专业面 | 已吸收或纠正 | 明确边界 |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| 场景导演 | 从场尾关系/信息变化反读共同事件;每名在场角色以各自动机、目标、策略和身体通道参与 | 不把主题或观众效果写成演员任务,不补造来源动作 |
|
|
96
|
+
| 表演指导 | 沉默听者也有判断、隐瞒、等待或维持局面的任务;困难回答先判断再开口,持续体力状态不跨镜重置 | 不照搬 FACS/AU 编码,不把无证据微动作固化成表演 |
|
|
97
|
+
| 调度与关系 | 接近、退让、占据空间和地位翻转必须对应节拍;三人以上锁人数、左右顺序、朝向和肢体归属 | 不使用模型无法稳定兑现的精确米数,不把群体全貌、双人戏和手部交互塞进一镜 |
|
|
98
|
+
| 摄影与焦点 | 由叙事焦点和关系决定单人清晰、多人共同清晰或拉焦;特写默认固定但可为动作/揭示而移动 | 删除“景别自动决定景深”“所有对白只允许说话者清晰”等伪硬规则,设备数字不能代替可见结果 |
|
|
99
|
+
| 镜头语言 | 镜头运动响应主体动作、信息权力和场级视点;逐列检查景别、机位、运动与覆盖单调 | 删除 80%、70/30、连续三镜等无普适依据比例,不机械远—中—近或套用荷兰角/环绕 |
|
|
100
|
+
| 视觉层级与美术 | 每镜一个首要可读信息;光源必须有场景动机;角色具备远景可认的轮廓身份;强调色绑定剧情对象 | 不用随机霓虹、烟雾、轮廓光或乌鸦/时钟等通用象征制造“电影感”,单色方案不强造强调色 |
|
|
101
|
+
| 参考帧与物理生成 | 首帧缺关键元素时补分镜或绑定资产;接触动作写前/中/后状态、邻接不变量和稳定完成态 | 仅明确画外进入时允许首帧缺席,不让模型暗中发明元素位置 |
|
|
102
|
+
| 动作与连续性 | 防动作倒放/回弹;步行保持落脚、重心、方向和同行位置;跨镜打斗用尾帧接首帧并在运动中切接 | 精细步态只在剧情需要时写,不把经验性物理提示升级为所有镜头固定词串 |
|
|
103
|
+
| 对白与屏幕 | 允许有动机的画外对白;多人对白按 Provider 能力、非重叠时段和嘴部状态决定;精确 UI 交后期 | 不再强制所有说话者入画,不让视频模型随机生成屏幕文字或界面 |
|
|
104
|
+
|
|
105
|
+
复审继续清理了会覆盖正文规则的旧示例:摄影示例不再把特写绑定极浅景深或要求每镜填写 T 值,表演示例不再用堆叠微动作暗示“越多越专业”,接触微震改为事件同步而不是模型难以兑现的固定帧数。复杂打斗在缺少可信运动参考时改写为身体位置、蓄力、接触、受力结果和反应;只有参考能约束轨迹时才保留精确招式。
|
|
106
|
+
|
|
107
|
+
再次复审补齐离画人物的连续性:导演台账记录离画边、最后姿态、运动方向和持物状态,分镜转场合同把状态保留到下一次入画,视频提示词不得任意选择回场方向,审片核对是否从错误一侧返回。未引入独立试镜流程;当前角色图候选、逐镜表演合同和付费前确认已覆盖标准制作,只有项目出现可复现的“静态角色正确但入戏表演持续失败”时才值得增加低成本动态试演阶段。
|
|
108
|
+
|
|
109
|
+
## 验证口径
|
|
110
|
+
|
|
111
|
+
`node scripts/audit-plugin.mjs` 必须同时验证 Skill 归属、全部中英文模板、变量对称、系统变量注入、无未替换变量、项目规范、Seedance/H3 专属合同、UI 元数据和原系统字段隔离。`node scripts/integration-self-check.mjs --self-check` 必须先执行全部脚本与 Provider 合同自检,再跑通九阶段门禁、来源归档、并发任务账本、资产 provenance 与选版、视频提示词版本、逐镜验收、时间线、完整审片、交付 manifest 和全项目校验;插件与每个 Skill 必须通过官方结构校验。
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# 配置生成模型
|
|
2
|
+
|
|
3
|
+
原创短剧与原生复刻是两条链路。短剧只使用 Hypit Runtime 的 StarRouter 配置;参考片复刻请使用原生 `hypit recreate`。制作开始前由用户确认图片、视频、语音、音乐的模型和关键参数,不替用户决定付费模型。
|
|
4
|
+
|
|
5
|
+
`hypit short-drama init` 会在项目内生成并选中 `hypit.runtime.json`:`starrouter.video` 使用 `@hypit/provider-starrouter`、`platform` 凭据和 `publicHosting: "tempfile"`。旧项目缺少该文件时运行 `hypit runtime init --workspace <项目目录>`;已存在的 Runtime 不会被初始化命令覆盖。凭据通过 Hypit 安装主机的 Runtime Store 管理,运行 `hypit auth login starrouter.video --workspace <项目目录>`;短剧插件、Dashboard 和项目文件都不保存 API Key。公网素材统一使用 tempfile.org,上传前仍须确认素材权利和公开风险。
|
|
6
|
+
|
|
7
|
+
在 Dashboard 选择模型与参数,或使用 `project-store.mjs update-project` 保存不含密钥的配置。图片、视频、语音及音乐都选 `starrouter`;模型必须属于 `list_generation_providers` 当前目录。随后运行:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.}}/scripts/provider-setup.mjs" <项目目录>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
命令只做非付费连接探测,写入 `.short-drama/provider-setup.json`,并绑定项目模型、参数和 Runtime 文件哈希。更改模型、参数或 Runtime 后重新探测。旧项目中的 RunningHub、Comfly 直连、百炼、MuseTalk 及自定义远端厂商配置不得继续制作,先改为 StarRouter 并重新确认。
|
|
14
|
+
|
|
15
|
+
StarRouter 已列出的主要模型包括图片 `gpt-image-2`,视频 `MiniMax-H3`、`MiniMax-H3-Max` 与 Seedance,语音 `speech-2.8-hd`、`speech-2.8-turbo`,音乐 `suno_music`,转写 `qwen3-asr-flash`、`whisper-1`。具体可用性以 Runtime 探测和用户确认的制作计划为准。
|
|
16
|
+
|
|
17
|
+
StarRouter 当前未验证 CosyVoice 自定义音色设计/克隆、SeedVR2.5 超分和 MuseTalk 口型驱动的等价能力;相关远端操作暂时禁用并提示用户。短剧最终视频统一通过 `hypit short-drama production plan/build` 执行现有审核与付费门禁。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 短剧声音设计
|
|
2
|
+
|
|
3
|
+
优先在视频模型支持时保留原生对白、环境声和动作声。逐镜审核语言、说话者、文本、可懂度、时间同步、环境动作声和未声明音乐。失败时记录实际区间与原因;合格部分不重复生成。
|
|
4
|
+
|
|
5
|
+
独立语音先用 `voice_analysis` 分离说话人与台词,再由用户在实时目录中选择模型、音色、语速和格式,并写入 audio-plan。需要复用原声时,使用 `voice-clone` 生成真实音色 ID;需要新声音时使用 `voice-design`。生成前核对逐字文本和使用权,输出作为未选候选逐条试听、审核后再选版。普通语音模型可用于已确认参数的配音;模型可用性由实时目录和 Hypit Runtime 探测。已授权的外部音频可以导入项目并按同样流程审核。
|
|
6
|
+
|
|
7
|
+
CosyVoice 自定义音色设计/克隆在独立 TTS 流程中可用,但必须使用与目标模型匹配的真实音色 ID,并经过试听和审核;它不能覆盖 H3 原生对白。MuseTalk 与旧 RunningHub 口型驱动仍暂时禁用。旧 audio-plan 中的失效配置不得继续提交付费任务;向用户说明缺失能力,并先重新确认当前可用模型和制作方案。不得把临时音色或未通过审核的配音默认为正式结果。
|
|
8
|
+
|
|
9
|
+
现有 `cinematic-tts` 和 `generate_audio_fallback` 合同暂存以读取旧项目,但因自定义音色能力未验证,调用会明确拒绝。重新设计时先从当前 selected 原声资产建立对齐证据;最多三轮,每轮必须经八维审核并绑定最终 selected 音频,禁止自动追加第四次。
|
|
10
|
+
|
|
11
|
+
`character_voice_recommend`、`character_voice_description` 可辅助写人物声音档案,`music_track_design` 用于音乐计划;这些文本提示词不构成已验证的自定义音色生成能力。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 短剧媒体生成入口
|
|
2
|
+
|
|
3
|
+
原创短剧的远端媒体生成统一经 Hypit Runtime 的 StarRouter 配置。项目开始时先让用户确认厂商、模型、关键参数和预计付费任务;每次提交仍遵循制作计划与现有审核门禁。复刻请使用原生 `hypit recreate`,不进入短剧插件。
|
|
4
|
+
|
|
5
|
+
图片、语音、音乐和转写请求由短剧 Gateway 读取项目 Runtime Profile,并从 Hypit 主机凭据仓库获取 `starrouter.video` 的密钥。插件不再读取单独的 StarRouter 环境变量或本机凭据文件。最终视频使用 `hypit short-drama production plan/build`;旧 `submit_video` 与整集 MCP 视频提交入口已停用。
|
|
6
|
+
|
|
7
|
+
参考素材只取当前 selected 且未失效的资产版本。需要公网 URL 时,经 TempFile.org 临时发布;发布前确认素材权利、公开暴露和使用范围。请求快照与任务账本保存模型、参数、文档引用、资产版本和任务 ID,禁止记录密钥。一次提交结果未知时先核对原任务,不自动重试;失败镜头可在重新确认后单独重建。
|
|
8
|
+
|
|
9
|
+
同一依赖层的图片目标可批量提交;派生资产等母资产审核选版后进入下一层。并发由 Runtime Endpoint 和现有任务门禁控制,不通过切换厂商绕开限流。模型目录以项目配置探测为准,当前主要包括 `gpt-image-2`、`MiniMax-H3`、Seedance、`speech-2.8-hd`、`speech-2.8-turbo`、`suno_music` 和 `qwen3-asr-flash`。
|
|
10
|
+
|
|
11
|
+
StarRouter 尚无已验证的 CosyVoice 自定义音色设计/克隆、SeedVR2.5 超分和 MuseTalk 口型驱动等价能力。这些操作暂时禁用,调用时明确报错。旧项目中保存的 RunningHub、Comfly 直连、百炼或 MuseTalk 配置不能继续提交付费任务,需先改为 StarRouter 并重新确认计划。
|
|
12
|
+
|
|
13
|
+
如果 MCP 工具列表出现缺失或占位,停止提交并修复配置;不得绕过 Hypit Runtime 直接调用旧插件适配器。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# 生成原创短剧视频
|
|
2
|
+
|
|
3
|
+
只对审核通过的原创短剧镜头执行正式视频生成。先运行 `hypit short-drama production plan <ep-NNN> --runtime <项目 Runtime>`,检查每镜的 StarRouter 模型、画幅、时长、分辨率、提示词文档和参考资产版本。用户确认计划后才运行 `hypit short-drama production build <ep-NNN> --runtime <项目 Runtime> --confirmed`。
|
|
4
|
+
|
|
5
|
+
Author/Run Source 使用当前 selected 的人物、场景、道具、分镜和主运动参考资产。StarRouter 需要公网参考时由 Runtime 的 TempFile.org 配置临时发布;不得静默丢弃参考,也不得用原片关键帧替换已批准资产。`MiniMax-H3` 可承载经批准的 Ref2VA 运动参考;H3-Max 与多格分镜板的能力边界仍按模型合同校验。
|
|
6
|
+
|
|
7
|
+
Build 使用唯一提交标题和待提交检查点。提交结果未知时先核对原 Build,不自动重试。成功 Output 登记为未选候选,逐镜完整观看并通过画面、声音和连续性审核后才选版;失败镜头定位原因后单独重建。旧 MCP 视频提交及 RunningHub、Comfly 直连入口已经停用,旧项目必须重新确认 StarRouter 模型、参数与 Runtime。
|
|
8
|
+
|
|
9
|
+
主运动参考在合同中记作 `reference_video`,必须绑定当前 selected 版本。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 生成分镜图片
|
|
2
|
+
|
|
3
|
+
处理制作计划中的全部镜头,包括另有 Blender 白模的镜头。先读取每镜 `storyboard_strategy.primary_board_type`、`required_board_types` 和 `selection_basis`,只生成合同声明的板型;`selection_basis` 缺失、主类型不在 `required_board_types` 或证据不足时退回 production-plan,不得直接出图。视频镜头至少生成两张独立参考板:`board-epNNN-temporal-NNN` 使用 `panel_grid_image`,按时间顺序固定动作阶段与精确状态;`board-epNNN-shot-NNN` 使用 `panel_storyboard_image`,按叙事节拍固定景别、调度、轴线和构图。若 `required_board_types` 额外包含 `narrative`、`blocking`、`action`、`choreography`、`comprehensive` 或 `director-track`,使用 `@hypit/gpt-image-kits/storyboard` 的对应 `board-type` 生成独立主类型资产,并以 `board-epNNN-{type}-NNN` 登记;`previz-3d` 仍由 Blender 模块生成。两张必需视频板和所有额外板均使用 `image_strategy.panel_grid_size`,默认 6 格,Codex 可按不可合并的动作或叙事节拍选择 2–16 格;不得用同一图片或同一资产版本冒充不同板型。Blender 是额外的空间和运动预演,不替代双板。
|
|
4
|
+
|
|
5
|
+
严格填充 [提示词索引](../prompt-skill-index.md) 的变量;`style` 必须传项目当前完整 `creative.art_style` 对象,交给 `render-prompt.mjs` 编译 renderingContract,不得只传画风名或一句风格短语。多格图根据计划中的 `panel_grid_size` 选择可读布局并同时提供 `grid_layout`,不得减少、留空、重复格子或把相邻镜头剧情画进当前镜头。宫格切单格后只允许用 `panel_grid_enhance` 保真高清化,不得重构图。
|
|
6
|
+
|
|
7
|
+
分镜构图合同的 code 必须先编译成可见几何再出图:图片提示词只写主体位置、视线留白、前中后景、光源方向与剧内来源、遮挡、动作方向与镜尾状态,不罗列构图 code 或模式目录;拿不准 code 的画面结构、证据门槛或 ai_risks 防控时按需查阅 [导演构图模式参考](../director-composition.md)。evidence 需要 set_dressing/weather_atmosphere/action_blocking(含 `+` 复合证据,逐组件成立)时,set_dressing/weather_atmosphere 元素必须有原文或已选资产支撑,action_blocking 还可由已确认调度事实支撑,但调度事实不能替代天气/陈设证据;均无据的元素是阻塞性冲突:不调用出图,按模板把缺失证据写入 unresolved 并退回分镜,不得让模型自补雨、雪、雾、霓虹、镜面、烟尘、门窗廊柱、武器或多余人物。
|
|
8
|
+
|
|
9
|
+
整集所有门禁已通过的镜头必须把两张板作为两个独立 `generate_image` 目标全量提交;请求统一使用 Hypit Runtime 的 StarRouter 凭据,按当前并发配置排队。两者都传 `{kind:"storyboard",episode_key,version_id,shot_number}`,但必须分别使用上述目标 key 和对应模板,实际 prompt 等于本阶段已留痕的 Provider 提示词输出。本地参考图统一放入 `reference_paths`;`reference_manifest` 与路径等长且逐项包含 `{type:"image",order,asset_key,version_id,role}`。参考资产的画风审核哈希必须与当前 renderingContract 一致;旧画风资产先失效重做,不让新提示词与旧媒介参考互相拉扯。提交前只展示模型、数量、尺寸、参考用途与制作计划,不计算具体价格。两张板分别完成八维审核并选版后,才进入视频提示词与生成。
|
|
10
|
+
|
|
11
|
+
使用 StarRouter 时明确从以下枚举取值:`model=gpt-image-2`;`resolution ∈ {1K,2K,4K}`;`aspect_ratio ∈ {1:1,16:9,9:16,4:3,3:4}`;`quality ∈ {auto,low,medium,high}`;`background ∈ {auto,opaque,transparent}`;`moderation ∈ {auto,low}`;`output_format ∈ {png,jpeg,webp}`;`n=1..4`。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 监控短剧任务
|
|
2
|
+
|
|
3
|
+
每个任务记录 `taskId`、本地目标 key、type、Provider、输入指纹、模型、提交时间、状态、尝试次数和输出版本;type 只能是 image、video、audio。付费调用前先登记 `submitting`,同一目标与输入指纹已有 submitting/queued/running 任务时禁止重提。“已提交”与“Provider 完成”都不等于本地资产已就绪。
|
|
4
|
+
|
|
5
|
+
生成 MCP 会在调用 Provider 前自动保存请求快照,并在响应后把任务与 `requestPath`、`requestSha256`、`inputFingerprint` 绑定,无需手工复制提示词或参数。轮询结果用 `update` 更新,恢复时用 `list` 回读;媒体任务完成时必须传已落盘的本地 `outputVersionId`。手工接入新 Provider 时先用 `task-ledger.mjs snapshot` 保存同样结构,再用 `put` 绑定任务;脚本会拒绝快照缺失、任务不一致、重复在途输入或本地完成版本不存在。
|
|
6
|
+
|
|
7
|
+
整集视频等待默认调用 `await_episode_tasks`(`project_root`、`episode_key`,可选 `timeout_seconds` 默认 480/上限 540、`poll_interval_seconds`):MCP 在服务端按任务记录的 Provider/taskId 并发轮询该集全部 queued/running 视频任务,每次查询都会把 pending 写回为 running 并刷新本地时间;completed 时自动处理统一 `outputs[]`、下载导入为本地候选版本并原子回写 `outputVersionId`(同时跑成片宫格检测打标);不自动选版,须先完成验收。超时后返回 pending 清单;`automation_mode=true` 时必须立即用相同参数续调,直到全部任务进入终态,不能把超时或无变化当作停止条件,也不能向用户重复询问;关闭全托管时才可返回等待状态。轮询瞬断不判失败。单镜恢复或图片/音频任务才按 Provider、taskId、type(作为 `media_type`)和 `project_root` 调用 `get_generation_task`。`submitting` 表示进程可能在远端调用期间中断,必须人工核对 Provider 后再标记失败,不能直接重提。无变化时退避。网络或外部任务短暂丢失最多重试原目标三次;401/403、余额、审核、schema、模型能力和语言门禁错误立即停下。取消先停调度器,再取消明确的 queued/running task ID,并回读到零。
|
|
8
|
+
|
|
9
|
+
Provider 状态与本地账本不一致时按 task ID、输入指纹和本地文件哈希对账;不能靠时间顺序猜测,也不能用重复提交修复状态。远端完成但文件尚未保存本地时保持 running,不得记为 completed。
|
|
10
|
+
|
|
11
|
+
Hypit Build 已进入终态且 Output 已落盘登记后,不得继续把该 Build 当作进度源反复轮询。立即运行 `hypit short-drama production compile <episode> --workspace <绝对项目目录>`:`generation_groups.status=waiting-review` 时转入候选验收,`waiting-tail` 时准备上一镜当前选版尾帧,`ready` 时才计划该组前沿镜头,`complete` 时进入阶段检查。心跳自动化必须保存绝对项目目录;没有文件、账本、审核或队列变化时保持安静,不重复报告同一终态。
|
|
12
|
+
|
|
13
|
+
需要定位制作耗时时,在插件根目录运行 `node scripts/task-timing-report.mjs <绝对项目目录>`,只读汇总逐镜、逐类型、逐目标的尝试次数、失败阶段与 P50/P95 耗时。旧任务缺少时间事件时对应阶段为 `null`。远端排队和生成时长取自本地轮询观察,包含轮询间隔;下载完成到登记审核的区间也包含等待时间,不代表人工实际观看时长。下载或本地校验失败会登记失败事件并保留原任务状态,以便从同一远端任务继续回收。
|
|
14
|
+
|
|
15
|
+
参考片复刻使用原生 `hypit recreate` 链路;本插件的任务账本与耗时报告仅统计原创短剧项目。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# 媒体变换
|
|
2
|
+
|
|
3
|
+
本地剪裁、换音轨、稳定、降噪和调色仍按项目媒体操作合同执行:只处理当前 selected 资产,保留来源、范围、参数和候选版本,审核通过后才选版。
|
|
4
|
+
|
|
5
|
+
远端 SeedVR2.5 超分、MuseTalk/PainterAV2V 口型驱动及其他依赖旧厂商的媒体变换暂时禁用。StarRouter 当前目录没有已验证的等价能力;即使旧项目保存了 RunningHub 或 MuseTalk 配置,也不能继续提交。调用 `submit_media_operation` 的远端操作会在上传和付费前直接给出停用提示。
|
|
6
|
+
|
|
7
|
+
如果用户需要这些效果,先确认 StarRouter 上可用的准确模型、接口能力和参数,再更新制作计划与 Runtime,完成针对该模型的真实验收后恢复能力。不得用本地修饰或未审核运算结果冒充已通过的正式镜头。
|
|
8
|
+
|
|
9
|
+
旧提示词模板 `2d_to_live_action` 和 `image_prompt_modify` 保留作历史项目读取,不授予远端生成权限。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# 编写视频提示词
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
先读取已批准制作计划和 Provider 实时能力,按“节点/镜头显式覆盖 → 制作计划 `prompt_profile` → 模型识别”确定唯一编译路径:
|
|
5
|
+
|
|
6
|
+
- Seedance 2.0/2.0 Fast 使用 `seedance2_video`。
|
|
7
|
+
- StarRouter `MiniMax-H3` 使用 `h3_video`;H3-Max 无法承载完整参考包,不得进入正式制作计划。
|
|
8
|
+
- 其他已确认模型才按参考图类型使用 `panel_grid_video` 或 `panel_storyboard_video`;无法确认提示词协议时停止,不把通用模板冒充模型专属模板。
|
|
9
|
+
|
|
10
|
+
所有模板都填充 `base_prompt`、`storyboard_context_json`、`grid_layout`、`panel_grid_size`、`camera_move`、`shot_type`、`style`、`duration_constraints` 和 `reference_manifest_json`。`style` 必须是项目当前完整 `creative.art_style` 对象,由 `render-prompt.mjs` 编译为包含 medium、rendering_method、surface_language、image_formation 与 forbidden_substitutions 的 renderingContract;禁止只传画风名、一行 prompt 或从参考图猜媒介。引用清单只包含已选本地资产、版本、用途及提交顺序,不包含密钥或临时 URL。Seedance 的每个图片/视频引用还必须按素材实际内容声明 `person_reference: true|false`;音频不得声明,Runtime 不按用途猜测。
|
|
11
|
+
|
|
12
|
+
每个 `char-*` 引用必须带 `identity_binding:{profile_name,profile_sha256,appearance_id}` 和 `identity_constraints:{age_class,grooming_and_makeup,costume_signature,memory_anchors}`。提交前执行 `assertCharacterReadyForVisuals` 并精确核对人物档案 SHA、规范名、appearance 与全部可见约束,不得从 asset key 猜人物。模板只把妆发、服装标识和记忆锚点编译进可见描述,不暴露绑定元数据;连续性 `visual_identity` 有冲突或换装缺少剧情证据时写入 errors。
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
每镜引用清单还必须含至少一个 `image/character_identity` 人物参考,以及各一个独立的 `image/temporal_storyboard` 故事版、`image/shot_board` 分镜板和 `audio/audio_reference` 音频参考;音频参考必须是当前镜头时间范围对应的已选片段,不得用整集音轨或其他镜头音频代替。两类分镜不得指向同一版本。人物、场景、道具设定板按风险以 `image/asset_board` 追加。任一必选项缺失都不得批准提示词或提交视频。
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
每次模板编译统一输出严格 JSON `{prompt_profile,input_mode,prompt,duration,references,continuity,audio_policy,errors}`。Seedance 2.0 固定 `full-reference`,`prompt` 必须为中文自然语言,并让 `@图片N/@视频N/@音频N` 与引用清单及提交数组一一对应;总素材不超过 12 个,图片≤9、视频≤3且合计2–15秒、音频≤3且合计≤15秒,时长4–15秒。H3 固定 `Ref2VA`,英文六段必须严格按 `subject_definitions → summary → retention_analysis → detailed_description → overall_soundscape → non_diegetic_music` 排列,仅对白、歌词和画内文字保留原语言。不得混用两套语法。
|
|
19
|
+
|
|
20
|
+
`continuity.mode=previous-tail` 时仍使用 `full-reference`/`Ref2VA`,由 `prepare_previous_tail` 生成的 `other-transition-*` 作为第一个 `image/first_frame` 语义连续性锚点,其余人物、双分镜板和音频参考不得省略。编译前核对其来源版本与 SHA-256 仍对应上一镜当前 selected 视频;来源镜换版后必须重新派生尾帧。
|
|
21
|
+
|
|
22
|
+
保存前把逐镜编译结果包装为顶层严格合同 `{episode_key,source_versions,shots,unresolved,approved}`;每个 `shots` 项在上述八个模板字段外,必须从已选制作计划原样补入 `shot_number`、`production_plan_version`、`storyboard_version`、`provider` 和 `model_or_workflow`。任一镜 `errors` 非空时同步写入 `unresolved` 且 `approved=false`,禁止省略 `errors`、伪造空数组或手写占位文档。
|
|
23
|
+
|
|
24
|
+
提示词必须覆盖完整时长、人物动作、相机曲线、逐字台词/旁白、声音策略和镜尾转场,并原样保留连续性与声音合同。每个引用必须定义用途;没有参考素材时不得伪造标签。声音时间表放不下台词时回到剧本/分镜调整,不加速硬塞。
|
|
25
|
+
|
|
26
|
+
声音编译前按已批准 audio-plan 的 `audio_strategy` 选择 Provider:默认使用原生音频;未锁定时,在满足全部画面参考能力的候选中优先 `video.native-audio`;只有用户明确要求后配或锁定的 Provider 明确不支持时才记录 `provider-no-native-audio`,不得静默转 TTS。逐镜 `audio_policy` 原样复制匹配本镜的三层声音行及时间范围,并把同一镜头的 `audio/audio_reference` 放入实际 Provider 输入。native 行生成逐字对白或旁白,旁白必须编译 tone arc、每个 emotion beat、pace、breath and pause、distance and space;post_dub/external_audio 行只生成环境声和动作声。所有原生声音提示词明确 no undeclared BGM;BGM 始终走独立授权配乐流程。正式提交原生音频镜头必须显式 `generate_audio=true`,非原生镜头不得开启。
|
|
27
|
+
|
|
28
|
+
视频提示词只决定声音生成意图,不把 `post_dub` 或 `external_audio` 偷换成模型直出对白,也不在提示词阶段假定后续一定能对口型。需要口型时保留可见说话者、无歧义脸部归属和精确台词范围,生成后再由声音与媒体变换流程依据实际 selected 音频决定是否调用 `transform.lip-sync`;旁白、画外音和合格原生对白不预留虚假的对口型任务。
|
|
29
|
+
|
|
30
|
+
分镜构图合同(`visual_plan.composition`、`composition_contract` 或 `photographyPlan.composition`)只作为编译输入:按 [导演构图模式参考](../director-composition.md) 中该模式的画面结构与竖屏提示,把 primary/secondary code 翻译为主体位置、视线留白、前中后景、光源方向与剧内来源、遮挡比例、动作屏幕方向、镜尾状态等可见几何和逐时间点动作;仅在拿不准 code 含义、证据要求或 ai_risks 时按需查阅该参考。禁止把构图 code、模式名称或模式目录抄进任何模型提示词,也不得只复读名称而不给可见执行项。
|
|
31
|
+
|
|
32
|
+
人物离画后,把离画边、最后姿态、运动方向和持物状态作为画外连续性继续传递,直到其重新入画或场景明确重置。重新入画不得仅凭当前画面任意选边,必须与该记录、当前轴线和空间入口相容。
|
|
33
|
+
|
|
34
|
+
编译前逐项对照起始参考与本镜所需人物、道具和空间结构。关键元素若应从首帧就在场却缺失,必须退回对应图片/白模分镜补齐或改用能绑定该资产的参考模式;只有剧本明确要求从画外进入时,才可写明首帧缺席、进入方向和出现路径。除有意空镜或 hold 外,首帧应已有可读主体或动作起势,不消耗成片时长等待主体到场。多人镜锁定准确人数、画面左右顺序、朝向和每只参与动作的手部归属;复杂交互无法清楚归属时拆镜。
|
|
35
|
+
|
|
36
|
+
画内手机、电视、电脑或招牌的内容必须来自 source_text 或已批准图形合同;没有内容证据时让屏幕关闭、空白或不可辨读,不允许模型自行填充随机文字和 UI。剧情依赖的精确消息、倒计时、地点或界面交给 Remotion 图形层实现,视频素材只保留可跟踪的屏幕平面、遮挡和光照。
|
|
37
|
+
|
|
38
|
+
提示词编译不能修饰一个不合格分镜;若一个 panel 仍含多个独立动作,先退回 `build-drama-storyboard` 拆镜。H3 Ref2VA 的参考清单中 `role` 是供应商协议角色,素材的中文用途另存为 `purpose`(或保留在同一用途字段的审计文本),两者不能混淆;提交数组顺序、清单顺序和正文 `<Picture N>` 必须完全一致。所有动作必须用可观察的时间点和完成状态描述,禁止只写“镜头表现/随后发生”这类不可验收句。
|
|
39
|
+
|
|
40
|
+
动作结果必须在镜尾前成为清晰可见且短暂稳定的状态;若剪辑必须提前切走,下一镜从该结果已经成立的状态开始。步行镜仅在剧情需要时细化落脚、重心转移和地面接触;同行者还要锁定并排/前后关系与共同速度。跨镜动作或打斗优先让前镜尾帧成为后镜首帧,并在运动中切接,避免每段回到静止预备姿势。
|
|
41
|
+
|
|
42
|
+
自然感必须落实为逐主体时间合同,不能只追加“自然、真实、电影感”。每个可见人物写一个当前主要动作、注意对象、反应触发和未参与状态;除剧情明确要求同步外,多人用不同起始时刻、动作幅度、视线和反应延迟错开,禁止集体同时转头、点头、眨眼、起步或重复同一手势。景别可读时,静止人物保留少量不规则且不同步的眨眼、眼动/重新对焦、呼吸、轻微重心调整和连续表情过渡,画外音期间闭嘴但不冻结。身体运动写支撑脚、重心、髋肩、关节路径、加减速、惯性跟随和恢复;头发、衣摆、宽松袖口、饰物与道具只由已存在的风、加速、重力或接触驱动,以略滞后的小幅运动跟随并衰减停稳。环境只响应有证据的力,不为增加动态虚构天气、特效或事件。每镜只保留一个叙事主动作和少量因果次级运动;指令过载或多人交互归属不清时先拆镜。
|
|
43
|
+
|
|
44
|
+
人物参考除 `identity_constraints` 外必须携带与当前人物档案 SHA 绑定的 `performance_constraints`,完整包含 `center_of_gravity`、`gait`、`habitual_actions`、`eyeline_behavior`、`blink_rhythm`、`stress_response` 与 `forbidden_performance`;保存值与档案不一致时提交门禁拒绝。心理戏不能直接写“悲伤、震惊、腹黑、内心复杂”,应沿时间写成刺激或信息、注意/眼神转移、试图维持的表情面具、短暂泄露、决定/动作和镜尾残留。眼神具名注视对象、画面方向、持续/扫视/回避/返回及眼睛与头部启动顺序,听者有独立注意和反应。微表情只在近景/特写可读时使用,一次优先一至两个面部区域的低幅起势—峰值—释放;FACS/AU 只用于理解可见肌肉变化,不作为模型提示词编码。中远景改用头部、呼吸、姿态、停顿、人物距离与走位。长期习惯仅在其档案触发条件成立时出现,禁止跨镜机械复现。
|
|
45
|
+
|
|
46
|
+
复杂打斗先核对所选 Provider 与运动/视频参考是否支持精确招式。缺少可验证支持时,不用招式名称代替编排;拆成地理建立、蓄力、双方身体位置、接触点、受力结果和反应镜头。只有参考素材能约束运动轨迹时才保留精确招式,并继续核对轴线、肢体归属和结果连续性。
|
|
47
|
+
|
|
48
|
+
同一角色跨当前/未来时空的对白必须共享音色身份合同。若视频模型不能保证跨镜声纹一致,提示词仍保留说话人身份,但制作计划必须标记 `post-dub` 或可审计的后期电话处理,不能让每镜原生音频各自随机生成后再假定为同一角色。
|
|
49
|
+
|
|
50
|
+
不得把故事板的铅笔、炭笔、单色、纸张质感、分格、箭头、编号、水印或 UI 生成进成片;故事板只传递构图、轴线和动作顺序,提示词必须重申项目成片媒介。每个无错镜头的 `prompt` 必须原样包含模板规定的固定反宫格声明和固定禁生成文字声明(中文模板用中文句、H3 用英文句,按模板要求放置);禁止模型在源视频中生成字幕、标题、标签、Logo、水印、UI 文字或其他可读文字,获批文字统一交给后期图形层。`project-store.mjs` 会逐镜校验,缺失即校验失败,不得改写或用近义句替代。多格分镜板(`panel_grid_size > 1`)整张作为语义参考引用时,prompt 还必须原样包含模板中的分镜板时间顺序条款(画格只表示动作时间顺序,禁止画格边框/分割线/编号/多格并排),MCP 提交前逐镜校验;多格板只能配 `full-reference`/`Ref2VA`/`reference_image`,禁止配首帧/尾帧像素模式。用 `project-store.mjs put-episode-document <项目目录> video-prompts <episode-key> <version> <JSON>` 保存不可变版本,再显式选定;每镜记录制作计划版本、分镜版本、模型、提示词协议、引用资产版本和最终 prompt。修改任一上游版本必须生成新版本,不覆盖旧提示词。
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Short drama market report v2",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["schema_version", "report_id", "generated_at", "snapshot_ids", "coverage", "filters", "summary", "topic_metrics", "topic_cooccurrence", "supply_demand_quadrants", "platform_preferences", "platform_matrix", "company_concentration", "new_title_watch", "evidence", "limitations"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema_version": {"const": "market-report.v2"},
|
|
9
|
+
"report_id": {"type": "string", "pattern": "^[A-Za-z0-9+_-]{1,80}$"},
|
|
10
|
+
"generated_at": {"type": "string", "minLength": 1},
|
|
11
|
+
"snapshot_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9+_-]{1,80}$"}},
|
|
12
|
+
"coverage": {"$ref": "#/$defs/coverage"},
|
|
13
|
+
"filters": {"type": "object", "additionalProperties": false, "properties": {"audience": {"$ref": "#/$defs/filterValue"}, "era": {"$ref": "#/$defs/filterValue"}, "format": {"$ref": "#/$defs/filterValue"}, "topic": {"$ref": "#/$defs/filterValue"}, "rankingTypes": {"$ref": "#/$defs/filterValue"}}},
|
|
14
|
+
"summary": {"$ref": "#/$defs/summary"},
|
|
15
|
+
"topic_metrics": {"type": "array", "items": {"$ref": "#/$defs/topicMetric"}},
|
|
16
|
+
"topic_cooccurrence": {"type": "array", "items": {"$ref": "#/$defs/topicCooccurrence"}},
|
|
17
|
+
"supply_demand_quadrants": {"type": "array", "items": {"$ref": "#/$defs/supplyDemandQuadrant"}},
|
|
18
|
+
"platform_preferences": {"type": "array", "items": {"$ref": "#/$defs/platformPreference"}},
|
|
19
|
+
"platform_matrix": {"type": "array", "items": {"$ref": "#/$defs/platformEntry"}},
|
|
20
|
+
"company_concentration": {"$ref": "#/$defs/companyConcentration"},
|
|
21
|
+
"new_title_watch": {"type": "array", "items": {"$ref": "#/$defs/newTitle"}},
|
|
22
|
+
"evidence": {"type": "array", "items": {"$ref": "#/$defs/evidence"}},
|
|
23
|
+
"limitations": {"type": "array", "items": {"type": "string", "minLength": 1}}
|
|
24
|
+
},
|
|
25
|
+
"$defs": {
|
|
26
|
+
"filterValue": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"type": "string"}}]},
|
|
27
|
+
"coverage": {"type": "object", "additionalProperties": false, "required": ["sample_count", "successful_ranking_types", "analysis_ranking_types", "failed_ranking_types", "low_confidence_topic_count"], "properties": {"sample_count": {"type": "integer", "minimum": 0}, "successful_ranking_types": {"$ref": "#/$defs/stringList"}, "analysis_ranking_types": {"$ref": "#/$defs/stringList"}, "failed_ranking_types": {"$ref": "#/$defs/stringList"}, "low_confidence_topic_count": {"type": "integer", "minimum": 0}}},
|
|
28
|
+
"summary": {"type": "object", "additionalProperties": false, "required": ["formula_version", "methodology", "topic_count", "trend"], "properties": {"formula_version": {"const": "topic-opportunity-v1"}, "methodology": {"type": "string", "minLength": 1}, "topic_count": {"type": "integer", "minimum": 0}, "trend": {"oneOf": [{"type": "null"}, {"type": "object", "additionalProperties": false, "required": ["sample_count_delta", "unique_title_delta", "new_key_count", "removed_key_count", "elapsed_hours", "period_kind"], "properties": {"sample_count_delta": {"type": "integer"}, "unique_title_delta": {"type": "integer"}, "new_key_count": {"type": "integer", "minimum": 0}, "removed_key_count": {"type": "integer", "minimum": 0}, "elapsed_hours": {"type": ["number", "null"], "minimum": 0}, "period_kind": {"enum": ["instant", "daily", "unknown"]}}}]}}},
|
|
29
|
+
"topicMetric": {"type": "object", "additionalProperties": false, "required": ["topic", "ranking_types", "audiences", "formats", "eras", "ranking_heat", "supply_count", "rank_strength", "demand_strength", "growth_strength", "new_title_rate", "platform_coverage", "persistence_strength", "crowding", "opportunity_score", "metric_coverage", "confidence", "confidence_detail"], "properties": {"topic": {"type": "string", "minLength": 1}, "ranking_types": {"$ref": "#/$defs/stringList"}, "audiences": {"$ref": "#/$defs/stringList"}, "formats": {"$ref": "#/$defs/stringList"}, "eras": {"$ref": "#/$defs/stringList"}, "ranking_heat": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["ranking_type", "demand_strength", "sample_count"], "properties": {"ranking_type": {"type": "string"}, "demand_strength": {"$ref": "#/$defs/unitOrNull"}, "sample_count": {"type": "integer", "minimum": 0}}}}, "supply_count": {"type": "integer", "minimum": 0}, "rank_strength": {"$ref": "#/$defs/unitOrNull"}, "demand_strength": {"$ref": "#/$defs/unitOrNull"}, "growth_strength": {"$ref": "#/$defs/unitOrNull"}, "new_title_rate": {"$ref": "#/$defs/unitOrNull"}, "platform_coverage": {"$ref": "#/$defs/unitOrNull"}, "persistence_strength": {"$ref": "#/$defs/unitOrNull"}, "crowding": {"$ref": "#/$defs/unit"}, "opportunity_score": {"oneOf": [{"type": "number", "minimum": 0, "maximum": 100}, {"type": "null"}]}, "metric_coverage": {"$ref": "#/$defs/metricCoverage"}, "confidence": {"enum": ["high", "medium", "low"]}, "confidence_detail": {"type": "object", "additionalProperties": false, "required": ["supply_count", "platform_coverage", "source_tag_ratio", "metric_coverage"], "properties": {"supply_count": {"type": "integer", "minimum": 0}, "platform_coverage": {"$ref": "#/$defs/unit"}, "source_tag_ratio": {"$ref": "#/$defs/unit"}, "metric_coverage": {"$ref": "#/$defs/unit"}}}}},
|
|
30
|
+
"metricCoverage": {"type": "object", "additionalProperties": false, "required": ["rank_strength", "demand_strength", "growth_strength", "new_title_rate", "platform_coverage", "persistence_strength"], "properties": {"rank_strength": {"$ref": "#/$defs/unit"}, "demand_strength": {"$ref": "#/$defs/unit"}, "growth_strength": {"$ref": "#/$defs/unit"}, "new_title_rate": {"$ref": "#/$defs/unit"}, "platform_coverage": {"$ref": "#/$defs/unit"}, "persistence_strength": {"$ref": "#/$defs/unit"}}},
|
|
31
|
+
"topicCooccurrence": {"type": "object", "additionalProperties": false, "required": ["topics", "cooccurrence_count", "evidence"], "properties": {"topics": {"type": "array", "minItems": 2, "maxItems": 2, "uniqueItems": true, "items": {"type": "string", "minLength": 1}}, "cooccurrence_count": {"type": "integer", "minimum": 1}, "evidence": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/evidence"}}}},
|
|
32
|
+
"supplyDemandQuadrant": {"type": "object", "additionalProperties": false, "required": ["topic", "quadrant", "demand_strength", "supply_count", "evidence"], "properties": {"topic": {"type": "string", "minLength": 1}, "quadrant": {"enum": ["high-demand-high-supply", "high-demand-low-supply", "low-demand-high-supply", "low-demand-low-supply", "unknown"]}, "demand_strength": {"$ref": "#/$defs/unitOrNull"}, "supply_count": {"type": "integer", "minimum": 0}, "evidence": {"type": "array", "items": {"$ref": "#/$defs/evidence"}}}},
|
|
33
|
+
"platformPreference": {"type": "object", "additionalProperties": false, "required": ["ranking_type", "topic_preferences"], "properties": {"ranking_type": {"type": "string"}, "topic_preferences": {"type": "array", "items": {"$ref": "#/$defs/topicPreference"}}}},
|
|
34
|
+
"topicPreference": {"type": "object", "additionalProperties": false, "required": ["topic", "sample_count", "share", "evidence"], "properties": {"topic": {"type": "string", "minLength": 1}, "sample_count": {"type": "integer", "minimum": 1}, "share": {"$ref": "#/$defs/unit"}, "evidence": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/evidence"}}}},
|
|
35
|
+
"evidence": {"type": "object", "additionalProperties": false, "required": ["snapshot_id", "ranking_type", "playlet_id", "key"], "properties": {"snapshot_id": {"type": "string"}, "ranking_type": {"type": "string"}, "playlet_id": {"type": ["string", "number"]}, "key": {"type": "string"}}},
|
|
36
|
+
"ranking": {"type": "object", "additionalProperties": false, "required": ["ranking_type", "ranking"], "properties": {"ranking_type": {"type": "string"}, "ranking": {"type": ["number", "null"]}, "heat_value": {"type": ["number", "null"]}, "observed_at": {"type": ["string", "null"]}, "topic_source": {"type": ["string", "null"]}}},
|
|
37
|
+
"platformEntry": {"type": "object", "additionalProperties": false, "required": ["key", "title", "topics", "topic_sources", "ranking_types", "platform_coverage", "rankings", "evidence"], "properties": {"key": {"type": "string"}, "title": {"type": "string"}, "topics": {"$ref": "#/$defs/stringList"}, "topic_sources": {"$ref": "#/$defs/stringList"}, "ranking_types": {"$ref": "#/$defs/stringList"}, "platform_coverage": {"type": "integer", "minimum": 0}, "rankings": {"type": "array", "items": {"$ref": "#/$defs/ranking"}}, "evidence": {"type": "array", "items": {"$ref": "#/$defs/evidence"}}}},
|
|
38
|
+
"companyConcentration": {"type": "object", "additionalProperties": false, "required": ["total_with_company", "company_count", "cr3", "companies", "by_role"], "properties": {"total_with_company": {"type": "integer", "minimum": 0}, "company_count": {"type": "integer", "minimum": 0}, "cr3": {"$ref": "#/$defs/unit"}, "companies": {"$ref": "#/$defs/companyList"}, "by_role": {"type": "object", "additionalProperties": false, "required": ["platform", "contractor", "copyrightHolder", "producer"], "properties": {"platform": {"$ref": "#/$defs/roleConcentration"}, "contractor": {"$ref": "#/$defs/roleConcentration"}, "copyrightHolder": {"$ref": "#/$defs/roleConcentration"}, "producer": {"$ref": "#/$defs/roleConcentration"}}}}},
|
|
39
|
+
"roleConcentration": {"type": "object", "additionalProperties": false, "required": ["total_with_company", "company_count", "cr3", "companies"], "properties": {"total_with_company": {"type": "integer", "minimum": 0}, "company_count": {"type": "integer", "minimum": 0}, "cr3": {"$ref": "#/$defs/unit"}, "companies": {"$ref": "#/$defs/companyList"}}},
|
|
40
|
+
"companyList": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["company", "playlet_count", "share"], "properties": {"company": {"type": "string"}, "playlet_count": {"type": "integer", "minimum": 0}, "share": {"$ref": "#/$defs/unit"}}}},
|
|
41
|
+
"newTitle": {"type": "object", "additionalProperties": false, "required": ["key", "title", "topics", "rankings", "evidence"], "properties": {"key": {"type": "string"}, "title": {"type": "string"}, "topics": {"type": "array", "items": {"type": "string"}}, "rankings": {"type": "array", "items": {"$ref": "#/$defs/ranking"}}, "evidence": {"type": "array", "items": {"$ref": "#/$defs/evidence"}}}},
|
|
42
|
+
"stringList": {"type": "array", "uniqueItems": true, "items": {"type": "string"}},
|
|
43
|
+
"unit": {"type": "number", "minimum": 0, "maximum": 1},
|
|
44
|
+
"unitOrNull": {"oneOf": [{"$ref": "#/$defs/unit"}, {"type": "null"}]}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 市场报告方法说明
|
|
2
|
+
|
|
3
|
+
市场报告基于剧查查可公开访问的八类 Top 30 榜单:热力榜、动态漫榜、真人 AI 榜、沙雕漫榜、抖音热播榜、快手热播榜、红果榜和短剧收入榜。它是公开样本分析,不代表平台全量内容、付费转化、投放效果或实际收益。
|
|
4
|
+
|
|
5
|
+
每次刷新保存原始响应快照;报告从快照归一化作品字段并以 `snapshot_id`、`ranking_type`、`playlet_id` 回链证据。题材优先使用来源标签;只能在标签缺失时使用受控标题关键词推断,并将其标为低置信度。相同作品跨榜单保留多条观测,计算供给和公司集中度时按稳定作品 key 去重。
|
|
6
|
+
|
|
7
|
+
不同榜单的热度量纲不可直接相加或排序。报告先在每个榜单内将排名、热度和增长计算稳健百分位,再聚合为题材指标。持久度按 30 天截尾归一化,平台覆盖等于该题材覆盖的成功榜单数除以当前成功榜单数,拥挤度等于题材去重作品数除以样本全部去重作品数。
|
|
8
|
+
|
|
9
|
+
机会分仅是透明筛选指标:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
opportunity = 100 × clamp(
|
|
13
|
+
0.28 × demand_strength
|
|
14
|
+
+ 0.22 × growth_strength
|
|
15
|
+
+ 0.16 × new_title_rate
|
|
16
|
+
+ 0.18 × platform_coverage
|
|
17
|
+
+ 0.16 × persistence_strength
|
|
18
|
+
- 0.20 × crowding,
|
|
19
|
+
0,
|
|
20
|
+
1
|
|
21
|
+
)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
置信度由样本量、成功榜单覆盖率和题材标签来源共同决定,分为 high、medium、low。趋势只在两个快照都存在实际内容且成功榜单集合相同时生成;否则报告必须明确趋势不可用或不可比。任何结论都应同时展示失败榜单、低置信题材和公开 Top 30 边界。
|