@oh-story/dsh 0.1.3 → 0.1.5
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 +58 -12
- package/lib/client.js +2970 -537
- package/lib/client.js.map +4 -4
- package/lib/drama/manifest.json +218 -178
- package/lib/drama/skills/short-drama/SKILL.md +110 -117
- package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +26 -77
- package/lib/drama/skills/short-drama/references/creator-documents.md +204 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +73 -63
- package/lib/drama/skills/short-drama/references/knowhow-index.md +5 -0
- package/lib/drama/skills/short-drama/references/look-development.md +2 -3
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
- package/lib/drama/skills/short-drama/references/reference-roles.md +32 -135
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +16 -19
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +1002 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +485 -5
- package/lib/drama/skills/short-drama-assets/SKILL.md +59 -170
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +116 -0
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +6 -12
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +21 -2
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +12 -105
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
- package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +45 -155
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +8 -65
- package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +8 -8
- package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +4 -2
- package/lib/drama/skills/short-drama-produce/SKILL.md +67 -15
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +65 -8
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +85 -0
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +27 -10
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +362 -3
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +627 -40
- package/lib/drama/skills/short-drama-produce/scripts/selftest.py +5 -4
- package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +27 -19
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
- package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +116 -238
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +12 -7
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +19 -4
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +27 -62
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +21 -23
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +16 -71
- package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +123 -230
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +6 -1
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +17 -1
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +24 -6
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +154 -0
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +35 -27
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +13 -10
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +41 -0
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +66 -0
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +17 -73
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +115 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +1 -1
- package/lib/drama/skills/short-drama-write/SKILL.md +74 -268
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
- package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +1 -1
- package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +2 -2
- package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +1 -1
- package/lib/index.js +971 -46
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/LICENSE +21 -0
- package/lib/novel-to-game/README.md +180 -0
- package/lib/novel-to-game/README_ZH.md +178 -0
- package/lib/novel-to-game/VERSION +1 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +217 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/.vercelignore +3 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +130 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +1105 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +2539 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +18 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +147 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +332 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +7472 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +13077 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +3028 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +32 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +10 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/vercel.json +23 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +161 -0
- package/lib/novel-to-game/examples/jin-ping-mei/example.json +12 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +31 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +99 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +41 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +129 -0
- package/lib/novel-to-game/manifest.json +508 -0
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +73 -0
- package/lib/novel-to-game/skills/game-art-direction/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +119 -0
- package/lib/novel-to-game/skills/game-build/SKILL.md +84 -0
- package/lib/novel-to-game/skills/game-build/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +109 -0
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +56 -0
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +81 -0
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +37 -0
- package/lib/novel-to-game/skills/game-concept/SKILL.md +72 -0
- package/lib/novel-to-game/skills/game-concept/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +94 -0
- package/lib/novel-to-game/skills/game-qa/SKILL.md +50 -0
- package/lib/novel-to-game/skills/game-qa/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-qa/references/qa-contract.md +66 -0
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +45 -0
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +63 -0
- package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +59 -0
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +53 -0
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +84 -0
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +56 -0
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +124 -0
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +77 -0
- package/lib/novel-to-game/skills/novel-game-analyze/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +71 -0
- package/lib/novel-to-game/skills/novel-to-game/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +42 -0
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +51 -0
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +65 -0
- package/lib/oh-story/manifest.json +419 -309
- package/lib/oh-story/roles/character-designer.md +4 -4
- package/lib/oh-story/roles/consistency-checker.md +1 -1
- package/lib/oh-story/roles/narrative-writer.md +41 -42
- package/lib/oh-story/roles/story-architect.md +19 -23
- package/lib/oh-story/roles/story-explorer.md +8 -5
- package/lib/oh-story/skills/browser-cdp/SKILL.md +1 -1
- package/lib/oh-story/skills/story/SKILL.md +16 -9
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-cover/SKILL.md +1 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +10 -5
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-import/SKILL.md +21 -8
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +9 -10
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +2 -2
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +251 -0
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +4 -4
- package/lib/oh-story/skills/story-long-scan/SKILL.md +1 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +35 -21
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +7 -3
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +6 -6
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +1 -1
- package/lib/oh-story/skills/{story-setup/references/agent-references/hooks-chapter.md → story-long-write/references/long-chapter-hooks.md} +5 -5
- package/lib/oh-story/skills/story-long-write/references/{quality-checklist.md → long-chapter-quality.md} +2 -1
- package/lib/oh-story/skills/story-long-write/references/long-format.md +42 -0
- package/lib/oh-story/skills/{story-setup/references/agent-references/genre-catalog.md → story-long-write/references/long-genre-catalog.md} +11 -97
- package/lib/oh-story/skills/story-long-write/references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/story-long-write/references/{reversal-toolkit.md → long-reversal.md} +18 -32
- package/lib/oh-story/skills/story-long-write/references/{hooks-suspense.md → long-suspense.md} +6 -6
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +32 -27
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +5 -4
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +17 -11
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +54 -54
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +251 -0
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +303 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-review/SKILL.md +26 -17
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-review/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-review/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-review/references/{quality-checklist.md → review-quality.md} +22 -21
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +85 -41
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +72 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +9 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +1 -1
- package/lib/oh-story/skills/{story-short-analyze/references/hooks-chapter.md → story-setup/references/agent-references/long-chapter-hooks.md} +5 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
- package/lib/oh-story/skills/{story-long-write/references/genre-catalog.md → story-setup/references/agent-references/long-genre-catalog.md} +11 -97
- package/lib/oh-story/skills/story-setup/references/agent-references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +40 -0
- package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-setup/references/agent-references/long-reversal.md} +18 -32
- package/lib/oh-story/skills/{story-short-write/references/hooks-suspense.md → story-setup/references/agent-references/long-suspense.md} +6 -6
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/{emotional-methods.md → short-emotional-methods.md} +4 -4
- package/lib/oh-story/skills/{story-long-write/references/genre-writing-formulas.md → story-setup/references/agent-references/short-genre-formulas.md} +32 -44
- package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +39 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/{reversal-toolkit.md → short-reversal.md} +29 -23
- package/lib/oh-story/skills/story-setup/references/agent-references/{hooks-suspense.md → short-suspense.md} +31 -31
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +55 -55
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +28 -28
- package/lib/oh-story/skills/story-short-analyze/references/{character-basics.md → analysis-character-basics.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{character-design-methods.md → analysis-character-design.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{character-relations.md → analysis-character-relations.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{hooks-paragraph.md → analysis-paragraph-hooks.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{genre-readers.md → analysis-reader-profile.md} +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +45 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
- package/lib/oh-story/skills/story-short-analyze/references/{genre-writing-techniques.md → analysis-writing-techniques.md} +21 -19
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +21 -28
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +17 -17
- package/lib/oh-story/skills/story-short-analyze/references/{quality-checklist.md → source-story-quality.md} +28 -49
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +2 -2
- package/lib/oh-story/skills/story-short-scan/SKILL.md +1 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +78 -55
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +32 -44
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +20 -18
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +18 -18
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/short-format.md +38 -8
- package/lib/oh-story/skills/story-short-write/references/{quality-checklist.md → short-prose-quality.md} +22 -21
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +355 -0
- package/lib/oh-story/skills/{story-short-analyze/references/hooks-suspense.md → story-short-write/references/short-suspense.md} +31 -31
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +31 -22
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +212 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
- package/lib/types/client/drama-production-view.d.ts +34 -0
- package/lib/types/client/drama-production-view.d.ts.map +1 -0
- package/lib/types/client/drama-production.d.ts +92 -0
- package/lib/types/client/drama-production.d.ts.map +1 -0
- package/lib/types/client/file-activity.d.ts +9 -2
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-intents.d.ts +9 -0
- package/lib/types/client/production-intents.d.ts.map +1 -0
- package/lib/types/client/production-prompts.d.ts +9 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -0
- package/lib/types/client/production-runtime.d.ts +58 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -0
- package/lib/types/client/video-studio.d.ts +41 -0
- package/lib/types/client/video-studio.d.ts.map +1 -0
- package/lib/types/client/workbench-ui.d.ts +5 -0
- package/lib/types/client/workbench-ui.d.ts.map +1 -0
- package/lib/types/game-verification.d.ts +16 -0
- package/lib/types/game-verification.d.ts.map +1 -0
- package/lib/types/index.d.ts +5 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/production-intent.d.ts +21 -0
- package/lib/types/production-intent.d.ts.map +1 -0
- package/lib/types/production-tool.d.ts +5 -0
- package/lib/types/production-tool.d.ts.map +1 -0
- package/lib/types/reference-tool.d.ts +6 -0
- package/lib/types/reference-tool.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +3 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts +7 -0
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts +42 -0
- package/lib/types/video-project.d.ts.map +1 -0
- package/lib/types/workspace-request-trust.d.ts +6 -0
- package/lib/types/workspace-request-trust.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts +20 -0
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +282 -0
- package/lib/video-recap/LICENSE +21 -0
- package/lib/video-recap/README.en.md +257 -0
- package/lib/video-recap/README.md +255 -0
- package/lib/video-recap/manifest.json +684 -0
- package/lib/video-recap/skills/video-assemble/SKILL.md +97 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +15 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +88 -0
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +345 -0
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +34 -0
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +305 -0
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +94 -0
- package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +205 -0
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +555 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +261 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +767 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +111 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +24 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_templates.py +37 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +191 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +75 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +394 -0
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +239 -0
- package/lib/video-recap/skills/video-assemble/scripts/media.py +243 -0
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +477 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +46 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +486 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +376 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +88 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +248 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +89 -0
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +512 -0
- package/lib/video-recap/skills/video-cut/SKILL.md +90 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +67 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +320 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +545 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +348 -0
- package/lib/video-recap/skills/video-cut/scripts/lib.py +77 -0
- package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +341 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +249 -0
- package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +745 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +216 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +61 -0
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +225 -0
- package/lib/video-recap/skills/video-recap/references/data-schema.md +534 -0
- package/lib/video-recap/skills/video-recap/references/research-guide.md +74 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +23 -0
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +251 -0
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +483 -0
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +737 -0
- package/lib/video-recap/skills/video-recap/scripts/lib.py +242 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +457 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +95 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +18 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_contract.py +9 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +371 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +201 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +227 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +362 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +129 -0
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +338 -0
- package/lib/video-recap/skills/video-recap/scripts/recap.py +9 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +140 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +550 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +77 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +654 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +335 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +217 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +795 -0
- package/lib/video-recap/skills/video-script/SKILL.md +248 -0
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +225 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +75 -0
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +399 -0
- package/lib/video-recap/skills/video-script/scripts/agent_text.py +410 -0
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +403 -0
- package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +332 -0
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +442 -0
- package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +237 -0
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +492 -0
- package/lib/video-recap/skills/video-script/scripts/lib.py +327 -0
- package/lib/video-recap/skills/video-script/scripts/narration.py +12 -0
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +678 -0
- package/lib/video-recap/skills/video-script/scripts/review.py +42 -0
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +262 -0
- package/lib/video-recap/skills/video-script/scripts/review_response.py +761 -0
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +200 -0
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +204 -0
- package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +199 -0
- package/lib/video-recap/skills/video-script/scripts/validate.py +164 -0
- package/lib/video-recap/skills/video-understanding/SKILL.md +75 -0
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +299 -0
- package/lib/video-recap/skills/video-understanding/references/prompt-templates.md +37 -0
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +74 -0
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +399 -0
- package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +410 -0
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +260 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +12 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +403 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +332 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +442 -0
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +647 -0
- package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +237 -0
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +513 -0
- package/lib/video-recap/skills/video-understanding/scripts/extract.py +62 -0
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +470 -0
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +678 -0
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +204 -0
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +507 -0
- package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +199 -0
- package/lib/video-recap/skills/video-understanding/scripts/understand.py +9 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +216 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +327 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +367 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +162 -0
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +705 -0
- package/lib/video-recap/skills/video-voiceover/SKILL.md +81 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +637 -0
- package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +109 -0
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +421 -0
- package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +113 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +782 -0
- package/package.json +57 -41
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
- package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +0 -241
- package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +0 -169
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +0 -444
- package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +0 -247
- package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +0 -582
- package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +0 -147
- package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +0 -490
- package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +0 -425
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +0 -453
- /package/lib/oh-story/skills/{story-long-write/references/hooks-chapter.md → story-setup/references/agent-references/short-chapter-hooks.md} +0 -0
- /package/lib/oh-story/skills/{story-long-write/references/hooks-paragraph.md → story-setup/references/agent-references/short-paragraph-hooks.md} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Seedance 2.0 提示词方言
|
|
2
|
+
|
|
3
|
+
只在目标档案明确写 `target_video_model: seedance-2.0` 时使用。推荐档案:
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"target_video_model": "seedance-2.0",
|
|
8
|
+
"video_prompt_dialect": "seedance-2.0",
|
|
9
|
+
"video_prompt_language": "zh-CN",
|
|
10
|
+
"native_duration_seconds": {"min": 4, "max": 15},
|
|
11
|
+
"supported_generation_modes": ["text", "reference", "extend"],
|
|
12
|
+
"audio_generation": "same_pass"
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
这是正文方言,不是固定模板。仍以分镜的起点、唯一动作和终点为内容权威。
|
|
17
|
+
|
|
18
|
+
## 正文组织
|
|
19
|
+
|
|
20
|
+
- 用中文写“主体 + 动作细节 + 场景 + 光色 + 运镜 + 视觉形态 + 约束”。具体可见事实优先,质量词只保留必要项。
|
|
21
|
+
- 单镜直接按动作先后写。一次生成含多个镜头时才用 `镜头1:`、`镜头2:`;每个内部镜头都写
|
|
22
|
+
“谁、在哪、做什么、镜头怎么动”,不强塞逐秒时间码。
|
|
23
|
+
- 每个可辨对白事件都必须写成 `{角色用中文说:“逐字台词”}`,不能只留下普通引号或把说话要求散落
|
|
24
|
+
在括号外;对白全文只用一种口语语言,专名除外,不在台词前增加外语暖场。
|
|
25
|
+
- 每个音效事件写 `<声音>`,音乐写 `(音乐)`。字幕只有创作者明确开启时才用 `【字幕】`;默认禁字幕时正文
|
|
26
|
+
明写“全程保持无字幕,不生成对白文字叠加”,并且不出现任何 `【】` 字幕指令。画内获准文字仍逐字说明承载面和位置。
|
|
27
|
+
|
|
28
|
+
## 参考与续写
|
|
29
|
+
|
|
30
|
+
- 每次提及素材都重复绑定:`人物 @图片1`、`参考 @视频1 的运镜`、`参考 @音频1 的音色`,不要只在开头列素材清单。
|
|
31
|
+
- 普通参考任务才写“参考 @视频1”。若任务是接着上一段实际结果生成,写“向后延长 @视频1”,并用
|
|
32
|
+
`@图片1` 指向该视频的实际尾帧,说明它是新段开场的可见状态;不要再把任务写成“参考上一段视频”。
|
|
33
|
+
- 实际视频与实际尾帧缺一时不宣称连续生成。素材序号来自当次 job 的真实绑定,不沿用文档里的 REF ID 猜序号。
|
|
34
|
+
|
|
35
|
+
## 时长与边界
|
|
36
|
+
|
|
37
|
+
Seedance 2.0 原生整数时长是 4–15 秒。镜头进入本阶段前就应落在区间内。短于 4 秒的叙事动作放进
|
|
38
|
+
至少 4 秒的镜头,并让终点成为可见 hold;长于 15 秒的动作在分镜阶段按状态闭合点拆开,不能在这里
|
|
39
|
+
截断或跨镜省略交接。
|
|
40
|
+
|
|
41
|
+
依据:Seedance 2.0 官方提示词指南与火山引擎视频生成 API。
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Seedance 2.5 提示词方言
|
|
2
|
+
|
|
3
|
+
只在目标档案明确写 `target_video_model: seedance-2.5` 时使用。推荐档案:
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"target_video_model": "seedance-2.5",
|
|
8
|
+
"video_prompt_dialect": "seedance-2.5",
|
|
9
|
+
"video_prompt_language": "zh-CN",
|
|
10
|
+
"native_duration_seconds": {"min": 4, "max": 30},
|
|
11
|
+
"supported_generation_modes": ["text", "reference", "edit", "extend"],
|
|
12
|
+
"audio_generation": "same_pass"
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2.5 沿用中文自然指令和 `@图片N`、`@视频N`、`@音频N` 绑定,但不能直接套 2.0:它支持 30 秒长叙事、
|
|
17
|
+
基于时间戳的精确控制,以及明确的参考、编辑、延长三类全模态任务。
|
|
18
|
+
|
|
19
|
+
## 生成与参考
|
|
20
|
+
|
|
21
|
+
- 短单镜按“主体 + 动作 + 场景 + 光色 + 运镜 + 风格 + 约束”写。
|
|
22
|
+
- 多镜或长叙事按 `镜头 1 [0:00–0:03]:` 顺序写;每段时间不重叠、不留无意空档,最后一个终点
|
|
23
|
+
等于总时长。时间戳服务于 2.5 的长叙事控制,不能反过来改写上游镜头状态链。
|
|
24
|
+
- 每次使用素材时重复绑定 `人物 @图片1`、`@视频1 的表演节奏` 等具体职责。普通参考任务说明保留和
|
|
25
|
+
借用什么,不让一个素材顺手控制身份、动作、构图等所有维度。
|
|
26
|
+
|
|
27
|
+
## 编辑与延长不是普通参考
|
|
28
|
+
|
|
29
|
+
提示词意图必须与 job 的 `omni_reference_task_type` 一致:
|
|
30
|
+
|
|
31
|
+
- `reference`:基于素材生成新视频,写“参考 @视频1 的运镜/动作”或具体素材职责。
|
|
32
|
+
- `edit`:直接点名 @视频1,写“保留 A、B,只修改 C”;不写成“参考它生成另一段”。该模式的 API
|
|
33
|
+
参数必须是 `ratio: adaptive`、`duration: -1`。
|
|
34
|
+
- `extend`:写“在 @视频1 的基础上续写 N 秒”,再从输入视频的实际终点描述唯一动作和新终点;
|
|
35
|
+
API 使用 `ratio: adaptive`。连续创作可另绑实际尾帧为 `@图片1`,只控制新段开场可见状态。
|
|
36
|
+
|
|
37
|
+
若提示词写的是编辑而 job 标成参考,或反过来,2.5 仍会根据语义复判并报任务类型不匹配;因此任务
|
|
38
|
+
类型是创作选择,不由 adapter 从若干关键词猜。
|
|
39
|
+
|
|
40
|
+
## 对白、声音与文字
|
|
41
|
+
|
|
42
|
+
- 每个可辨对白事件都必须整体写进 `{角色用中文说:“逐字台词”}`,不能只用普通引号;同一句带花括号
|
|
43
|
+
的逐字对白在单镜正文只出现一次,放进完整声音时间线。视觉时间线只写口型同步这一事件,不再重复
|
|
44
|
+
花括号和台词。每个音效事件写进 `<声音>`,音乐写进 `(音乐)`。明确开启的字幕才用 `【字幕】`。
|
|
45
|
+
中文对白不添加语言前缀;非中文对白才在台词前明确语言。
|
|
46
|
+
- 同轨声音按事件闭合。上游已限定只有中文并明确排除外语前导、语气词、额外人声或重复时,在完整
|
|
47
|
+
声音时间线末尾直接写“对白直接从指定中文首字开始;不生成外语前导、语气词、额外人声或重复对白”,
|
|
48
|
+
只写一次。没有这些上游边界时不自行追加固定负面后缀。
|
|
49
|
+
- 默认禁字幕时明确写“全程无字幕、无对白文字叠加”,且正文不出现 `【】`;画内获准文字仍独立说明。
|
|
50
|
+
|
|
51
|
+
## 连续容器
|
|
52
|
+
|
|
53
|
+
同一连续时空的相邻正式生成段默认组成连续链;`one-shot-per-generation` 只表示每次提交一个镜头,
|
|
54
|
+
不取消连续关系。第一段按已接受起点生成,第二段起固定走 `extend`,不能因上一段尚未生成就改成
|
|
55
|
+
独立文生视频。创作者明确要求独立重生成,或上游存在时间/地点跳变时才重新起链。
|
|
56
|
+
真实输入尚不存在时,在容器元信息写“待续接、不可提交:等待上一容器实际视频与从该视频抽取的实际
|
|
57
|
+
尾帧”,正文只作为下一段内容草案;不绑定 `@视频1`、`@图片1`,也不声称已经延长。两项真实素材
|
|
58
|
+
存在后才把正文转成可提交版本:写“在 @视频1 的基础上续写 N 秒”,并明确 `@图片1` 只控制新段开场
|
|
59
|
+
可见状态。逐镜提示词是容器成员依据,不是另一条生产路由。
|
|
60
|
+
|
|
61
|
+
## 时长
|
|
62
|
+
|
|
63
|
+
Seedance 2.5 原生整数时长是 4–30 秒。项目采用一镜一生成时每镜均落在此区间;采用 30 秒多镜容器时,
|
|
64
|
+
先按交付形态确认容器,不把若干独立镜头擅自合并。短动作到达终点后 hold,超长动作按状态闭合点拆分。
|
|
65
|
+
|
|
66
|
+
依据:火山引擎《Doubao Seedance 2.5 教程》《Doubao Seedance 2.5 提示词指南》和视频生成 API。
|
|
@@ -1,69 +1,10 @@
|
|
|
1
1
|
# 视频提示词阶段契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本阶段只拥有 `剧集/<EP>/视频提示词.md` 中的 `MOTION-...` 项与按需的时间线音乐章节。它继承镜头
|
|
4
|
+
起点、终点、时长、对白和冻结帧,不回写分镜或视觉设定。
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- [制作形态需要什么](#制作形态需要什么)
|
|
8
|
-
- [参考媒体与补拍](#参考媒体与补拍)
|
|
9
|
-
- [本阶段规则](#本阶段规则)
|
|
10
|
-
|
|
11
|
-
本文件是本技能的自包含契约:预检、所有权、形态输入与规则表都在这里,
|
|
12
|
-
不需要读取其他技能的文件。
|
|
13
|
-
|
|
14
|
-
## 独立运行与项目集成
|
|
15
|
-
|
|
16
|
-
本技能可以单独安装并运行;下面几条说明项目工具存在时怎样集成。
|
|
17
|
-
|
|
18
|
-
1. **读取直接输入**:只读取用户明确提供或当前任务实际需要的文件,不批量加载整个项目。
|
|
19
|
-
2. **可选项目集成**:若存在 `short-drama.json` 且 core 项目工具可用,可以运行
|
|
20
|
-
`python3 <core>/scripts/project_tool.py status <project>`,使用返回的目录布局和语言设置;
|
|
21
|
-
core 不可用时,直接基于已提供输入产出本阶段文件。
|
|
22
|
-
3. **可选发布生命周期**:项目工具可用时,用 `publish` 原子发布并用 `--input <path>`
|
|
23
|
-
声明直接输入;`accept`、`review` 与 `package` 继续承担确认、复核与交付。
|
|
24
|
-
4. **保持职责分离**:创作者确认、内容修订和复核是不同动作;reviewer 提修改要求,负责人改文件。
|
|
25
|
-
|
|
26
|
-
## 所有权边界
|
|
27
|
-
|
|
28
|
-
- **本阶段拥有**:运动顺序、表演路径、摄影与声音的实现;交付容器的成员、顺序与容器时长。
|
|
29
|
-
成员的已接受时长是分镜的只读投影,容器时长等于它们之和。
|
|
30
|
-
- **本阶段继承**:镜头目的、起止边界、已接受时长、形态运动预算、逐字对白。
|
|
31
|
-
- **本阶段不越权**:不回写镜头或资产权威;结束报告只用于比较,不是第二个终点取值权威。
|
|
32
|
-
需要改时长、终点、对白或下一镜开场时,发修订请求给对应负责人。
|
|
33
|
-
|
|
34
|
-
## 制作形态需要什么
|
|
35
|
-
|
|
36
|
-
视觉风格不是贴在提示词前面的标签。创作者已接受的视觉方向与制作形态由项目层决定并传入,
|
|
37
|
-
**本技能不加载形态卡,也不自行选择形态**;本节只说明本阶段需要形态回答什么、以及拿到
|
|
38
|
-
答案后投影成哪些字段。
|
|
39
|
-
|
|
40
|
-
形态决定属于 `craft_default`:创作者说明理由即可覆盖。形态不能创造新的
|
|
41
|
-
`structural_invariant`,也不能改写身份、地理、持物归属与可读文字政策。审查者不得单凭
|
|
42
|
-
形态偏好阻断交付。
|
|
43
|
-
|
|
44
|
-
不要用“加一句风格前缀”处理形态差异。前缀只改变检索标签;形态改变的是**必须出现和
|
|
45
|
-
可以省略的字段**,只有后者会被执行,也只有后者能被审查。
|
|
46
|
-
|
|
47
|
-
本阶段要向形态决定问:**运动层、接触、节奏、声源与结果**在本形态下怎么写。
|
|
48
|
-
|
|
49
|
-
运动段的默认值随形态改变(默认全动作 / 默认保持姿态并声明例外 / 一镜一因果 / 把全动作
|
|
50
|
-
预算集中给情绪转折镜)。拿到形态运动预算后,本阶段只负责把它落成有因果顺序的动作与
|
|
51
|
-
可比较的终点,不重新选择形态。
|
|
52
|
-
|
|
53
|
-
本阶段新增:运动层、接触、节奏、声源与结果。
|
|
54
|
-
|
|
55
|
-
## 参考媒体与补拍
|
|
56
|
-
|
|
57
|
-
- **参考图能决定什么要逐张写明**:每张参考的用途、可以照搬什么、不可以照搬什么。身份参考
|
|
58
|
-
不自动决定构图;构图、尺度或效果参考不自动带入图中人物、服装、文字、道具与故事状态。
|
|
59
|
-
- **像素主张需要证据**:关于参考图上可见内容(尤其文字、水印、标牌、界面)的断言,必须
|
|
60
|
-
来自创作者/参考图权利人的可核对说明,或运行环境获授权后形成的输入参考观察记录,并绑定
|
|
61
|
-
被检查的字节。两者都没有时保持 `unverified`,负面提示词不能代替证据。
|
|
62
|
-
- **观众揭示时机**:某一事实何时可被观众看到,由已接受的可见性决定绑定其来源、载体、
|
|
63
|
-
权限、触发与保护方式。构图既不能提前泄露该事实,也不能遮掉本环节必须传达的载体。
|
|
64
|
-
- **母版、补拍与替代**:补拍默认只补充、不替代母版。普通母版不增加版本范围字段;只有
|
|
65
|
-
补拍/替代版才声明 `pickup | alternate`,用同一文件内稳定的记录 ID 说明母版与补充关系,并把每项原文要求对应到当前字段或说明
|
|
66
|
-
去向。只有下游审查结论才能批准替代,不得回写形成循环引用。
|
|
6
|
+
每项正文只描述从当前冻结起点到终点的变化;多镜打包、补拍或替代关系确有需要时,也写在同一文档
|
|
7
|
+
的可读章节中,不建立 motion spec、container、readiness、QA 或接受记录。
|
|
67
8
|
|
|
68
9
|
## 本阶段规则
|
|
69
10
|
|
|
@@ -73,26 +14,28 @@
|
|
|
73
14
|
|---|---|---|
|
|
74
15
|
| VID-01 | structural_invariant | Motion reads but cannot rewrite shot start/end/duration/dialogue and next-shot state. |
|
|
75
16
|
| VID-02 | craft_default | Write start anchor, ordered subject motion, camera behavior, timing, and end report; add performance change and environment/audio only when this shot actually carries them. |
|
|
76
|
-
| VID-03 |
|
|
17
|
+
| VID-03 | structural_invariant | Choose image-to-video only when the matching storyboard's reference set is complete, declares readable REF inputs, and is copied unchanged. No REF is not by itself consent to text-to-video: first discover and bind matching real project images; preserve any verified partial bindings, but if required images remain missing, report them and stop before the final motion document. Choose text-to-video only after the creator explicitly selects it, and carry a non-empty static visual anchor in the copyable text. Only image-to-video may omit appearance/composition already carried by its real reference frame. |
|
|
77
18
|
| VID-04 | structural_invariant | Explicit segment timing sums exactly to its shot's accepted duration—neither exceeding it nor leaving an unallocated remainder. |
|
|
78
19
|
| VID-05 | reviewed_invariant | Untimed action load must be feasible enough to preserve the intended performance and story change. |
|
|
79
20
|
| VID-06 | structural_invariant | Locked and moving camera instructions cannot govern the same interval without an explicit transition. |
|
|
80
21
|
| VID-07 | taste_option | Camera may be locked or moving; audio/lip-sync detail follows the chosen production profile. |
|
|
81
22
|
| VID-08 | reviewed_invariant | Structured motion names this shot's exact subjects, actions, contacts, and results rather than reusable placeholders; when a performance path is present, it names only the actors and visible changes this shot actually carries. |
|
|
82
|
-
| VID-09 | structural_invariant |
|
|
23
|
+
| VID-09 | structural_invariant | The next start names an existing `SHOT-...` or is explicitly unresolved; never invent a hidden source key, record or hash. |
|
|
83
24
|
| VID-10 | craft_default | Resolve one accepted production profile for the current delivery scope; local variants may coexist when their range and precedence are explicit, without overriding source coverage or exact-readable obligations. |
|
|
84
25
|
| VID-11 | reviewed_invariant | A selective transform names its trigger, exact target scope, end geometry/state, and preserve set so non-target people, props, text surfaces, and spatial anchors do not change with it. |
|
|
85
|
-
| VID-12 | reviewed_invariant | A pickup
|
|
86
|
-
| VID-13 | structural_invariant | A delivery
|
|
26
|
+
| VID-12 | reviewed_invariant | A pickup or alternate names stable `MOTION-...` IDs and maps each source requirement to this version, the master, another pickup, or a requested storyboard revision; it never silently replaces the master. |
|
|
27
|
+
| VID-13 | structural_invariant | A multi-shot delivery group contains contiguous shots from one scene with one geography/asset chain. Its duration equals the sum of member shots, and grouping changes neither shot boundaries nor per-shot reviewability. |
|
|
87
28
|
| VID-14 | craft_default | Music intent may be annotated per shot as a relative entry/exit/duck against neighbours, but its realization belongs to the timeline layer; no deliverable—single-shot or multi-shot container—carries a baked-in music bed unless the project accepted otherwise or the source is diegetic. Dialogue, off-screen sources, ambience, and event effects stay with the deliverable. |
|
|
88
|
-
| VID-15 | structural_invariant | Within one episode a shot belongs to at most one
|
|
29
|
+
| VID-15 | structural_invariant | Within one episode a shot belongs to at most one delivery group; grouped and loose shots account for the visible shot set exactly once. |
|
|
89
30
|
| VID-16 | reviewed_invariant | When performance changes, multi-character motion differentiates the actors who actually carry it and keeps each chosen signal readable in the accepted framing; it does not require an arc for non-performing shots, force every craft field, or duplicate one emotion across the cast. |
|
|
90
|
-
| VID-17 | reviewed_invariant |
|
|
91
|
-
| VID-18 | reviewed_invariant |
|
|
31
|
+
| VID-17 | reviewed_invariant | Multiple references use stable visible IDs and an explicit order, so reordering cannot silently change which reference controls which property. |
|
|
32
|
+
| VID-18 | reviewed_invariant | Readiness is reported from the current visible inputs and real blocking gaps, not persisted as a motion fact; text readiness never claims generated identity, performance, lip-sync, mix, edit or market quality. |
|
|
92
33
|
| VID-19 | reviewed_invariant | When the creator profile declares required literal tokens for a delivery route, that route's delivery text preserves them byte-for-byte and outside the verbatim-dialogue fence. Paraphrase, translation, reordering, or omission is treated as a defect because a literal-matching surface has no reason to reject the rewritten text—the failure is silent rather than reported. The suite asserts no specific surface's behaviour, and whether a given result took the route is returned adherence, provable only by a bound production observation. Tokens declare a route and never substitute for the start state, action, or endpoint. Absent a declared token list the suite invents none; until the profile exposes a machine-readable list at a pinned field path, the reviewer cites the profile against the delivery text rather than claiming mechanical enforcement. |
|
|
93
34
|
| VID-20 | reviewed_invariant | Packing routes change delivery granularity only, leaving shot boundaries, shot purpose, and per-shot reviewability intact. A single long-form generation carrying several accepted shots *is* a multi-shot container and is billed under VID-13 and VID-15; it introduces no separate accounting and no exemption from the contiguity, binding-chain, and scene-boundary constraints. A continuation route instead starts from a previously generated result, which is observation evidence and not an accepted artifact: the accepted shot start boundary stays the sole authority, and any claim about the observed state binds a production observation record or remains `unverified`. |
|
|
94
35
|
| VID-21 | craft_default | When the project's accepted production profile has generated imagery carry the frame, actions are written as high-frequency, whole-body or single-limb movements common in everyday footage; precise interception, invisible internal states, negative actions, and three-or-more-step two-handed choreography are rewritten into equivalent common-action combinations, with the dramatic information carried by combination and timing. The rule is inactive for live action or an undeclared profile, and a rewrite may never change accepted shot boundaries, terminal states, or screenplay fact. |
|
|
95
|
-
| VID-22 | reviewed_invariant |
|
|
36
|
+
| VID-22 | reviewed_invariant | Copyable text carries only what will be filmed. IDs, workflow status, hashes, file paths and craft notes stay outside the prompt; negative action intent is rewritten as a visible positive state. Unless explicitly authored, the copyable prompt directly prohibits non-diegetic subtitles, captions and dialogue-text overlays at every moment rather than naming an abstract empty layer; this never erases an exact-readable in-scene text obligation, which stays a closed allow-list of exact glyph, language, carrier and placement. A prompt that only recites constraints renders as nothing. |
|
|
37
|
+
| VID-23 | reviewed_invariant | When the target model is declared to generate audio in the same pass, the copyable body treats all allowed dialogue, VO, OS, non-verbal vocalization, SFX, ambience and silence as a closed event set. Each spoken event keeps its source, speaker, spoken language and verbatim text boundary; gaps return to declared ambience or silence instead of leaving an undefined vocal channel for the execution end to fill. |
|
|
38
|
+
| VID-24 | structural_invariant | An image-to-video shot carries the storyboard's REF slots unchanged, each with its 用途, so the motion document itself answers which start frame and which identity, geography, and prop pictures this shot sends. The reference mode — first frame, first and last frame, or multi-slot reference — is read from that 用途 combination and translated by the matched model dialect; where a model makes frame and reference conditioning mutually exclusive, the start frame joins the reference group rather than splitting the request. |
|
|
96
39
|
|
|
97
40
|
### `CON`
|
|
98
41
|
|
|
@@ -101,9 +44,10 @@
|
|
|
101
44
|
| CON-01 | structural_invariant | Linked end and next start states match or have an explicit owner revision. |
|
|
102
45
|
| CON-02 | reviewed_invariant | Knowledge, injury, ownership, weather, light, or physical state does not teleport/regress without story cause. |
|
|
103
46
|
| CON-03 | craft_default | Track downstream-relevant deltas, not the whole 设定集 in every shot. |
|
|
104
|
-
| CON-04 | structural_invariant | A
|
|
47
|
+
| CON-04 | structural_invariant | A continuity change states before, after, cause/source scene, effective range, and affected visible IDs. |
|
|
105
48
|
| CON-05 | taste_option | Declared montage, ellipsis, dream, or subjective imagery may intentionally break ordinary continuity. |
|
|
106
|
-
| CON-06 | structural_invariant | A
|
|
49
|
+
| CON-06 | structural_invariant | A continuity change names every existing downstream document it affects; future work is described, not pre-created. |
|
|
50
|
+
| CON-07 | structural_invariant | A continuity lock declared in `视觉设定.md` fixes one verbatim surface plus its shot and image scope; every in-scope frozen keyframe, motion prompt, and named image prompt carries that surface unchanged. |
|
|
107
51
|
|
|
108
52
|
规则分级由高到低:`structural_invariant`(结构缺陷,阻断)、
|
|
109
53
|
`reviewed_invariant`(需证据判断)、`craft_default`(常用做法,可覆盖)、
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# 目标模型能力档案
|
|
2
|
+
|
|
3
|
+
## 目录
|
|
4
|
+
|
|
5
|
+
- [这份档案解决什么](#这份档案解决什么)
|
|
6
|
+
- [九条会改变正文的能力轴](#九条会改变正文的能力轴)
|
|
7
|
+
- [声音同轨生成](#声音同轨生成)
|
|
8
|
+
- [参考条件方式](#参考条件方式)
|
|
9
|
+
- [未声明时怎么写](#未声明时怎么写)
|
|
10
|
+
- [自检](#自检)
|
|
11
|
+
|
|
12
|
+
## 这份档案解决什么
|
|
13
|
+
|
|
14
|
+
本套件的模型相关规则一律写成“按目标模型确认”,但“确认”在实践中经常没有落点:没人知道要确认
|
|
15
|
+
哪几件事,于是提示词按最保守的写法交出去,执行端再靠自己补——补出来的往往就是漂移。
|
|
16
|
+
|
|
17
|
+
本文只做一件事:把**需要确认什么**列成有限的几条。通用档案不猜供应商能力;已核对官方契约的
|
|
18
|
+
模型可以由本技能的版本化方言文件提供推荐值。每一条取值都由创作者按自己接入的执行端声明一次,
|
|
19
|
+
本集共用。生产端具体接哪个供应商、用什么字段,属于 `$short-drama-produce` 的 adapter 档案,不进入创作文档。
|
|
20
|
+
|
|
21
|
+
**`craft_default`**: 能力轴是**声明**出来的,不是推断出来的。没有声明就按“未声明时怎么写”写;
|
|
22
|
+
不要因为某个执行端“据说支持”某种写法就改写已接受的镜头边界、时长或起止状态。
|
|
23
|
+
|
|
24
|
+
档案写在 `short-drama.json#/creator_authority/production_profile/choices`。最小结构如下;未知字段留空,
|
|
25
|
+
不能从模型简称补全:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"target_video_model": "versioned-model-profile",
|
|
30
|
+
"video_prompt_dialect": "dialect-id",
|
|
31
|
+
"video_prompt_language": "zh-CN",
|
|
32
|
+
"native_duration_seconds": {"min": 4, "max": 15},
|
|
33
|
+
"supported_generation_modes": ["text", "reference"],
|
|
34
|
+
"audio_generation": "same_pass"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 九条会改变正文的能力轴
|
|
39
|
+
|
|
40
|
+
| 能力轴 | 声明什么 | 声明后正文允许怎么变 |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| 模型版本 | 项目使用的版本化模型档案键;账号侧 Endpoint / model ID 留在生产配置 | 只路由到该版本的方言;不因名称相近套用另一版本 |
|
|
43
|
+
| 提示词方言 | 通用自然语言 / 目标原生结构及版本 | 命中已有方言时按其字段、素材标记和声音语法写;语言标签不能代替方言 |
|
|
44
|
+
| 单次原生时长 | 一次生成能覆盖的最短与最长秒数 | 分镜规划时就让每个投产镜头落在区间内;短动作在合法镜长内到达终点后 hold,长动作按闭合状态拆镜 |
|
|
45
|
+
| 参考条件方式 | 无 / 首帧 / 首尾帧 / 多槽参考(及槽位数上限) | 见下节 |
|
|
46
|
+
| 声音是否同轨生成 | `same_pass` 或 `separate` | 见下节 |
|
|
47
|
+
| 画幅与分辨率 | 执行端实际接受的画幅与分辨率集合 | 只写项目已接受的那一个;不在正文里罗列备选 |
|
|
48
|
+
| 正文长度上限 | 一次能接受的字符数 | 超限时先删已被真实参考帧承载的重复描述;《视觉设定.md》连续性锁的锁面、逐字对白和已批准文字显示位置不得删 |
|
|
49
|
+
| 运镜词汇 | 执行端是否接受具名运镜术语 | 不接受时把运镜写成可见的画面关系变化(主体占画比、边缘进出、前后景遮挡关系),不是换一个术语 |
|
|
50
|
+
| 视频提示词正文语言 | 目标视频模型本次使用 `zh-CN`、`en` 或其他明确语言 | 视频可复制正文使用该语言;逐字对白、VO、OS 仍保留原口语语言,不翻译、不加外语开场 |
|
|
51
|
+
|
|
52
|
+
## 声音同轨生成
|
|
53
|
+
|
|
54
|
+
有些执行端只产出画面,声音在后期补;有些执行端在同一次生成里同时产出对白、环境声与音乐。
|
|
55
|
+
两者对正文的要求不同,而且**这是本套件里最容易被忽略的一条**:
|
|
56
|
+
|
|
57
|
+
- **不同轨**(默认假设):声音段落写本镜的声音**职责**——谁说话、什么环境声承担信息、
|
|
58
|
+
转场声落在哪里。它服务于后期与审查,不需要写成可执行指令。
|
|
59
|
+
- **同轨**:声音段落变成会被真的生成出来的东西。可复制正文写完本镜的完整声音时间线:需要的
|
|
60
|
+
对白、VO、OS、非语言发声、SFX 与相对时机,以及各事件之间承接的 ambience 或静默。逐字对白
|
|
61
|
+
仍按 [交付形态](delivery-profile.md) 的围栏处理。没有定义的时间与通道会被执行端自行填满,
|
|
62
|
+
和没写终点的动作会被自行补动作是同一件事。
|
|
63
|
+
|
|
64
|
+
有对白、VO 或 OS 时,把本镜所有允许的发声列成封闭事件集合,每句带口语语言和逐字起止边界,
|
|
65
|
+
事件间及首尾明确回到已声明环境声或静默。必要的叹气、笑声、拟声或重叠也必须有来源并进入集合。
|
|
66
|
+
Brief、剧本或声音方向若已经点名排除外语前导、语气词、额外人声、重复或其他发声,完整时间线末尾
|
|
67
|
+
必须用正文语言把这些已确认边界合并写一次;“允许事件只有这些”不能替代模型需要的直接指令。
|
|
68
|
+
一句“以上为完整声音时间线”闭合并结束声音段落;其后不再重复同一组排除项,也不自行添加上游没有
|
|
69
|
+
提出的声音禁令。
|
|
70
|
+
|
|
71
|
+
非画内字幕、caption 和对白文字叠加是独立文字层:除非剧本或创作者明确要求,每条可复制正文
|
|
72
|
+
都用项目提示词语言直接声明全镜任何时刻不生成这些内容,不能只写抽象的“文字层为空”,让对白只
|
|
73
|
+
通过声音与口型发生。这个默认不受画内文字影响。旗帜、标牌、
|
|
74
|
+
屏幕等表面确有 `exact_readable` 义务时,正文逐字保留准确字符、语言、承载面和位置,同时继续关闭
|
|
75
|
+
字幕层;没有画内可读文字义务时,才使用全局无文字要求(`VID` 与 `IMG` 的文字策略优先级不变)。
|
|
76
|
+
|
|
77
|
+
本套件不规定这些排除写成什么字样。字样属于本镜和项目已声明的提示词语言;不要跨项目搬运一句
|
|
78
|
+
固定后缀,也不要把它当成质量分。
|
|
79
|
+
|
|
80
|
+
## 参考条件方式
|
|
81
|
+
|
|
82
|
+
| 声明 | 正文承担什么 |
|
|
83
|
+
|---|---|
|
|
84
|
+
| 无参考 | 文生视频:静态视觉锚点必须自足,写清人物、造型、地点、构图与光线中本镜必要的事实 |
|
|
85
|
+
| 首帧 | 只写从该起点开始的变化;静态外观由参考帧与视觉设定共同拥有 |
|
|
86
|
+
| 首尾帧 | 终点帧只能投影 `SHOT-...` 已写明的终点,不得发明新结果 |
|
|
87
|
+
| 多槽参考 | 每张按 `REF-...` 槽位记账,绑定顺序、路径、中文名、用途与控制/不得控制范围;槽位数不超过声明上限,超出时按重要性取舍并写明放弃了哪些 |
|
|
88
|
+
|
|
89
|
+
无论哪一种,《视觉设定.md》连续性锁的锁面都留在正文里:参考帧只约束它自己画到的部分,
|
|
90
|
+
跨镜不变的颜色、材质与形制仍然要逐镜带走。
|
|
91
|
+
|
|
92
|
+
参考条件方式由本镜各槽位的 `用途` 读出,不由“想不想用多模态”决定:只有一张 `起始帧` 是首帧,
|
|
93
|
+
`起始帧` 加 `结束帧` 是首尾帧,`起始帧` 与身份/地理/道具图同时存在或只有这些图时是多槽参考。
|
|
94
|
+
不少执行端把首/尾帧输入与多槽参考输入设为互斥,这时整组统一走多槽参考,起始帧也按参考素材送入——
|
|
95
|
+
不要把一次请求拆成“首帧 + 参考图”。正文里的素材标签按同类素材的 `顺序` 编号,与生产端绑定顺序一致;
|
|
96
|
+
文档手写编号和执行端实际编号不一致时,模型收到的是两套互相矛盾的素材说明,而接口通常不会报错。
|
|
97
|
+
|
|
98
|
+
“上一段实际视频”和“实际尾帧”描述的是两个通用职责,不等于供应商 role。命中版本化方言时再翻译:
|
|
99
|
+
例如 H3 的 full-reference 使用 `reference_video + reference_image`,不能把实际尾帧误写成与参考模式
|
|
100
|
+
互斥的 `first_frame`。生产 adapter 必须执行同一翻译,不能让文档和请求体使用两套模式。
|
|
101
|
+
|
|
102
|
+
## 未声明时怎么写
|
|
103
|
+
|
|
104
|
+
按已接受的镜头边界写完整、自足、不依赖任何执行端特性的正文:视频正文语言回退到项目
|
|
105
|
+
`format.prompt_language`;独立任务没有项目配置时沿用用户当前语言,不固定为英文。写声音职责而不是可执行声音指令,
|
|
106
|
+
不做分段,不罗列画幅备选,用可见的画面关系而不是术语描述运镜。这样的正文在任何执行端上都成立,
|
|
107
|
+
只是没有针对性收敛。**未声明不是缺陷**,不能作为审查阻断理由。
|
|
108
|
+
|
|
109
|
+
## 自检
|
|
110
|
+
|
|
111
|
+
- 每条能力轴的取值是创作者声明的,还是我推断的?
|
|
112
|
+
- 视频正文语言来自目标模型档案还是项目回退值?逐字人声是否仍保留原口语语言?
|
|
113
|
+
- 声音同轨时,允许的声音事件、口语语言及事件间底声/静默是否组成完整时间线?
|
|
114
|
+
- 收敛写法有没有顺手改掉已接受的时长、起点或终点?
|
|
115
|
+
- 删重复描述时,锁面、逐字对白和已批准文字显示位置留住了吗?
|
|
@@ -321,7 +321,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
321
321
|
except CheckError as error:
|
|
322
322
|
print(f"{type(error).__name__}: {error}", file=sys.stderr)
|
|
323
323
|
return 2
|
|
324
|
-
print(json.dumps(result, ensure_ascii=
|
|
324
|
+
print(json.dumps(result, ensure_ascii=True, sort_keys=True))
|
|
325
325
|
return 0 if result["status"] == "pass" else 1
|
|
326
326
|
|
|
327
327
|
|
|
@@ -319,7 +319,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
319
319
|
except (OSError, UnicodeError, ValidationError) as exc:
|
|
320
320
|
print(str(exc), file=sys.stderr)
|
|
321
321
|
return 2
|
|
322
|
-
print(json.dumps(result, ensure_ascii=
|
|
322
|
+
print(json.dumps(result, ensure_ascii=True, sort_keys=True))
|
|
323
323
|
return 0
|
|
324
324
|
|
|
325
325
|
|