@oh-story/dsh 0.1.9 → 0.1.11
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 +14 -14
- package/lib/client.js +209 -73
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +248 -168
- package/lib/drama/skills/short-drama/SKILL.md +16 -4
- package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +3 -0
- package/lib/drama/skills/short-drama/references/creator-documents.md +3 -0
- package/lib/drama/skills/short-drama/references/knowhow-index.md +15 -0
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +14 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +131 -0
- package/lib/drama/skills/short-drama-assets/SKILL.md +2 -1
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +2 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +10 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +6 -9
- package/lib/drama/skills/short-drama-assets/references/era-anchors.md +37 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
- package/lib/drama/skills/short-drama-develop/SKILL.md +10 -4
- package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -1
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +8 -0
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +80 -13
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +95 -12
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +9 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/263/273/347/273/237/346/265/201.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +10 -7
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +15 -9
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -2
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +14 -7
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +7 -3
- package/lib/drama/skills/short-drama-edit/SKILL.md +65 -44
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +49 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +4 -2
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Overlay.tsx +31 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +5 -5
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +68 -69
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +39 -29
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/rules.mjs +188 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +26 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/Card.tsx +72 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/CornerChip.tsx +39 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/ScreenText.tsx +36 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/SystemPanel.tsx +44 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/TaskPanel.tsx +100 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/chrome.tsx +197 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/tokens.ts +62 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +1 -0
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +6 -4
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +26 -67
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +31 -56
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +42 -78
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +44 -92
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +14 -16
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1272 -125
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +113 -9
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +3 -3
- package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +2 -2
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +8 -4
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +10 -3
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +25 -1
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +5 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +14 -20
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +8 -26
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +142 -1
- package/lib/drama/skills/short-drama-review/SKILL.md +4 -5
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +6 -19
- package/lib/drama/skills/short-drama-review/references/review-method.md +6 -1
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +11 -0
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +77 -3
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +24 -35
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +23 -11
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +2 -2
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +139 -34
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +5 -3
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +15 -12
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +29 -0
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +4 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +4 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +52 -39
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +24 -21
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +9 -23
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +14 -26
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +34 -9
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -2
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +8 -1
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +103 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +8 -7
- package/lib/drama/skills/short-drama-write/SKILL.md +10 -7
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +1 -1
- package/lib/drama/skills/short-drama-write/references/script-craft.md +56 -3
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +4 -0
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +48 -2
- package/lib/index.js +346 -98
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +7 -12
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +13 -14
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +13 -15
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +6 -7
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +9 -5
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +12 -16
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +4 -10
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +9 -21
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +5 -8
- package/lib/oh-story/manifest.json +607 -327
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/character-designer.md +1 -2
- package/lib/oh-story/roles/consistency-checker.md +15 -13
- package/lib/oh-story/roles/narrative-writer.md +36 -38
- package/lib/oh-story/roles/story-architect.md +9 -61
- package/lib/oh-story/roles/story-explorer.md +20 -125
- package/lib/oh-story/roles/story-researcher.md +0 -1
- package/lib/oh-story/skills/story/SKILL.md +15 -9
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +59 -73
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +5 -0
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +22 -5
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-import/SKILL.md +64 -584
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +47 -0
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-import/references/import-report.md +64 -0
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +34 -0
- package/lib/oh-story/skills/story-import/references/import-tracking.md +95 -0
- package/lib/oh-story/skills/story-import/references/length-routing.md +1 -1
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +79 -0
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +24 -0
- package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +98 -92
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +24 -12
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +15 -11
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +332 -0
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +132 -27
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +81 -270
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +252 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +3 -3
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +19 -0
- package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +11 -0
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +138 -64
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +229 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +33 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +55 -128
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +6 -6
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1145 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +45 -194
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +19 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +45 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +28 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +35 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +27 -0
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +6 -2
- package/lib/oh-story/skills/story-long-write/SKILL.md +49 -81
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +47 -0
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +24 -202
- package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +7 -11
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +7 -15
- package/lib/oh-story/skills/story-long-write/references/long-format.md +0 -8
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +14 -69
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/project-files.md +19 -13
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +13 -5
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +5 -6
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +9 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +15 -11
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +81 -121
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +41 -139
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +157 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +57 -67
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -253
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +142 -0
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +6 -4
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +19 -65
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +260 -0
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +226 -25
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +132 -27
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +7 -2
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +7 -4
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +304 -46
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-review/SKILL.md +31 -302
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +184 -0
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-review/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-review/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-review/references/batch-review.md +19 -0
- package/lib/oh-story/skills/story-review/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-review/references/review-quality.md +6 -11
- package/lib/oh-story/skills/story-review/references/review-tracking.md +10 -0
- package/lib/oh-story/skills/story-review/references/solo.md +52 -0
- package/lib/oh-story/skills/story-review/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +15 -11
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-setup/SKILL.md +71 -452
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +22 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +1 -1
- 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/long-emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +7 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +0 -15
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -58
- 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/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +19 -65
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +56 -110
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +42 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +97 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +80 -0
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
- package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +611 -0
- package/lib/oh-story/skills/story-short-scan/SKILL.md +35 -65
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +36 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +24 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +21 -0
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +38 -0
- package/lib/oh-story/skills/story-short-write/SKILL.md +23 -175
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +13 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +1 -21
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +0 -15
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +17 -47
- package/lib/oh-story/skills/story-short-write/references/scene-craft.md +40 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +7 -43
- package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -1
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +5 -10
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +21 -13
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +116 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +99 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +7 -119
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +7 -2
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +16 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/client/video-studio.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts +5 -3
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +53 -1
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-identity.d.ts +17 -0
- package/lib/types/role-identity.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +60 -1
- package/lib/video-recap/README.en.md +348 -137
- package/lib/video-recap/README.md +340 -136
- package/lib/video-recap/manifest.json +406 -251
- package/lib/video-recap/skills/video-assemble/SKILL.md +30 -15
- package/lib/video-recap/skills/video-assemble/references/audio-modes.md +63 -0
- package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +75 -0
- package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +118 -0
- package/lib/video-recap/skills/video-assemble/references/narration-adoption.md +103 -0
- package/lib/video-recap/skills/video-assemble/references/packaging.md +45 -0
- package/lib/video-recap/skills/video-assemble/references/pair-media.md +74 -0
- package/lib/video-recap/skills/video-assemble/references/source-score.md +147 -0
- package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +202 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +10 -46
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +378 -119
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +29 -12
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +95 -44
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +75 -32
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +11 -11
- package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +293 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +71 -78
- package/lib/video-recap/skills/video-assemble/scripts/jianying/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_builders.py → jianying/builders.py} +39 -67
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_model.py → jianying/model.py} +3 -11
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_optional.py → jianying/optional.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/jianying/schema.py +53 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_templates.py → jianying/templates.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_timeline_contract.py → jianying/timeline_contract.py} +34 -13
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_writer.py → jianying/writer.py} +7 -17
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +37 -4
- package/lib/video-recap/skills/video-assemble/scripts/media.py +12 -21
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +64 -34
- package/lib/video-recap/skills/video-assemble/scripts/packaging.py +122 -0
- package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +216 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +1 -3
- package/lib/video-recap/skills/video-assemble/scripts/source_score.py +469 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +25 -9
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_core.py → subtitles/core.py} +13 -6
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_render.py → subtitles/render.py} +5 -4
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +324 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +30 -46
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +91 -7
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +22 -8
- package/lib/video-recap/skills/video-cut/SKILL.md +34 -16
- package/lib/video-recap/skills/video-cut/references/shot-review.md +50 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -28
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +58 -62
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +21 -106
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +14 -9
- package/lib/video-recap/skills/video-cut/scripts/lib.py +39 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +2 -155
- package/lib/video-recap/skills/video-cut/scripts/narrative_selection.py +244 -0
- package/lib/video-recap/skills/video-cut/scripts/shot_review.py +357 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +86 -42
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +126 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +12 -8
- package/lib/video-recap/skills/video-recap/references/data-schema.md +44 -33
- package/lib/video-recap/skills/video-recap/references/resource-library.md +151 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +1 -1
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +123 -30
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +22 -75
- package/lib/video-recap/skills/video-recap/scripts/lib.py +3 -3
- package/lib/video-recap/skills/video-recap/scripts/library.py +509 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +63 -91
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +8 -70
- package/lib/video-recap/skills/video-recap/scripts/project_binding.py +286 -0
- package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +1 -0
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_client.py → qc/mimo_client.py} +1 -1
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_evidence.py → qc/mimo_evidence.py} +33 -66
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_observations.py → qc/mimo_observations.py} +3 -11
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_payload.py → qc/mimo_payload.py} +4 -7
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_report.py → qc/mimo_report.py} +17 -28
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_runner.py → qc/mimo_runner.py} +2 -2
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -19
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +119 -50
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +32 -114
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +9 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +387 -334
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +23 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_source.py +278 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +25 -12
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +59 -52
- package/lib/video-recap/skills/video-recap/scripts/resource_lock.py +162 -0
- package/lib/video-recap/skills/video-script/SKILL.md +16 -13
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +9 -5
- package/lib/video-recap/skills/video-script/references/promotional-copy.md +68 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +1 -1
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +24 -76
- package/lib/video-recap/skills/video-script/scripts/lib.py +10 -87
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-script/scripts/review.py +0 -2
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +35 -59
- package/lib/video-recap/skills/video-script/scripts/review_response.py +66 -128
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +12 -20
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-script/scripts/validate.py +53 -42
- package/lib/video-recap/skills/video-understanding/SKILL.md +6 -4
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +50 -156
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +85 -65
- package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +2 -5
- package/lib/video-recap/skills/video-understanding/scripts/briefing/__init__.py +1 -0
- package/lib/video-recap/skills/{video-script/scripts/agent_brief.py → video-understanding/scripts/briefing/builder.py} +38 -35
- package/lib/video-recap/skills/video-understanding/scripts/{brief_context.py → briefing/context.py} +4 -35
- package/lib/video-recap/skills/{video-script/scripts/brief_inputs.py → video-understanding/scripts/briefing/inputs.py} +9 -31
- package/lib/video-recap/skills/{video-script/scripts/brief_timeline.py → video-understanding/scripts/briefing/timeline.py} +5 -6
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +65 -116
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +31 -40
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +30 -86
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +17 -79
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +14 -40
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +64 -46
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +31 -11
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +19 -14
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +80 -108
- package/lib/video-recap/skills/video-voiceover/SKILL.md +29 -19
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +31 -0
- package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +51 -59
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +8 -44
- package/lib/video-recap/skills/video-voiceover/scripts/providers/__init__.py +1 -0
- package/lib/video-recap/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +212 -134
- package/package.json +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -58
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -38
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -530
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -559
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +0 -678
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +0 -561
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +0 -98
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +0 -225
- package/lib/video-recap/skills/video-recap/references/research-guide.md +0 -74
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +0 -250
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +0 -348
- package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +0 -399
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +0 -327
- /package/lib/video-recap/skills/video-assemble/scripts/{jianying_tracks.py → jianying/tracks.py} +0 -0
- /package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_contract.py → qc/mimo_contract.py} +0 -0
- /package/lib/video-recap/skills/video-voiceover/scripts/{fish_audio.py → providers/fish_audio.py} +0 -0
|
@@ -31,8 +31,7 @@ non_diegetic_music: ...
|
|
|
31
31
|
|
|
32
32
|
- `integrated_multimodal_description` 按 `[Shot 1]`、`[Shot 2]` 写画面、动作、说话人、逐字对白和同步声音;
|
|
33
33
|
单镜也保留 `[Shot 1]`。第一镜不加切镜时间戳,后续切镜用 `[Shot 2] At 00:03.500, ...`,时间递增且落在本次生成时长内。
|
|
34
|
-
|
|
35
|
-
对得上的多镜容器,用这种写法。
|
|
34
|
+
小样本观察到切点接近要求,但仍有偏差;交付要求精确时应检查实际切点并在剪辑中调整。
|
|
36
35
|
- `overall_soundscape` 汇总环境声、物理音效和非语言人声,不重复对白;对白事件留在上面的主时间线。
|
|
37
36
|
无非画内配乐时写 `non_diegetic_music: N/A`,不要留空让模型补乐——这一条有实测支撑,见
|
|
38
37
|
[无对白镜](#无对白镜)。
|
|
@@ -40,35 +39,13 @@ non_diegetic_music: ...
|
|
|
40
39
|
|
|
41
40
|
## 无对白镜
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
在 `overall_soundscape` 写清全镜的环境声、音效或静默。
|
|
43
|
+
**`craft_default`**:优先描述需要的声轨;必要时可以补「无对白」,不因用了否定句判错。
|
|
44
|
+
人物嘴部状态按实际表演写,不能把无对白一律改成全程闭嘴。
|
|
46
45
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
选正面写法的理由是它同时交代了这一镜该有什么声音,排除句只说了不要什么。
|
|
51
|
-
|
|
52
|
-
正面写法有两处,缺一处都不算写满:
|
|
53
|
-
|
|
54
|
-
- `overall_soundscape` 写这条声轨**由什么组成、覆盖多长**,只列已声明的 ambience 与音效。例如
|
|
55
|
-
`overall_soundscape: A faint wind outside the window is the only sound present, continuous from the first frame to the last.`
|
|
56
|
-
- 主时间线(`integrated_multimodal_description` 或 `detailed_description`)把「不说话」写成**可见状态**,
|
|
57
|
-
绑到本镜真正在场的人身上。它是表演描述,说的是画面里看得见的事。例如
|
|
58
|
-
`Both keep their lips closed and their mouths still for the full shot.`
|
|
59
|
-
|
|
60
|
-
### 配乐通道必须显式关掉
|
|
61
|
-
|
|
62
|
-
这一条有实测支撑,且比上面一条重要得多:正文写了 `non_diegetic_music: N/A` 的 14 次生成没有一次
|
|
63
|
-
自带配乐;完全不提配乐的 3 次里有 2 次返回了自造的背景音乐(持续谐波音床,随镜头变化换和弦)。
|
|
64
|
-
**所以 `non_diegetic_music` 这一行不能省。** 语音通道目前没有观察到同样的现象,配乐通道有。
|
|
65
|
-
|
|
66
|
-
### 时间线完整声明
|
|
67
|
-
|
|
68
|
-
主时间线闭合时只声明**本镜实际有的**声音层:无对白镜写
|
|
69
|
-
`The audio timeline is complete after the listed ambience and effects.`,
|
|
70
|
-
把 `timed dialogue` 加进这句是有对白时才成立的写法。无对白镜枚举 `timed dialogue` 是一句与本镜事实
|
|
71
|
-
不符的话;实测未观察到它单独导致生成台词,但正文不该写与本镜不符的内容。
|
|
46
|
+
无非画内配乐时保留 `non_diegetic_music: N/A`。小样本中省略这一层出现过额外配乐,
|
|
47
|
+
显式写空可作为 H3 的默认写法,不保证所有生成都遵守。
|
|
48
|
+
时间线总结只列本镜实际存在的声音层,不照抄包含对白的模板。
|
|
72
49
|
|
|
73
50
|
## 选哪一种模式
|
|
74
51
|
|
|
@@ -107,7 +84,8 @@ non_diegetic_music: ...
|
|
|
107
84
|
|
|
108
85
|
**这六段是一条提示词,一次整体提交。** 它们是同一个 `MOTION-...` 的可复制正文,从第一段到最后一段
|
|
109
86
|
一起放进那一次生成的提示词框,不是六次生成、也不是只提交第一段。三段结构的 Base / 首帧 / 首尾帧同理。
|
|
110
|
-
|
|
87
|
+
默认一镜一次生成,下一镜换成它自己那条完整正文;几个镜头装进同一次生成的条件见
|
|
88
|
+
[多镜容器](#多镜容器每切一张关键帧)。
|
|
111
89
|
|
|
112
90
|
### 素材标签怎么编号
|
|
113
91
|
|
|
@@ -144,11 +122,10 @@ REF-STUDY-PLATE(顺序:3;用途:地理) -> <Picture 3>
|
|
|
144
122
|
|
|
145
123
|
`用途` 决定这一张在正文里被要求保留什么,具体到哪几项由该槽位自己写下的 `控制` 范围决定。
|
|
146
124
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
不是对模型的开关。
|
|
125
|
+
需要保留构图时,在 `控制` 中点名构图、站位或机位高度。
|
|
126
|
+
`不得控制` 记录不应照搬的内容,生成后仍需检查实际参考影响,不能把文字声明当成模型保证。
|
|
127
|
+
本镜没有起始帧时,地点图会把景别拉宽,要在 `detailed_description` 里写具体取景,见
|
|
128
|
+
[目标模型能力档案](target-model-profile.md#参考条件方式)。
|
|
152
129
|
|
|
153
130
|
`起始帧` 只锚定开场构图与姿态,`身份` 锚定这个人跨镜不变的长相与体态(角色板同时固定本集造型时,
|
|
154
131
|
`控制` 里会写明),
|
|
@@ -180,7 +157,29 @@ non_diegetic_music: N/A
|
|
|
180
157
|
```
|
|
181
158
|
|
|
182
159
|
三张图各自只负责一件事:`<Picture 1>` 给构图,`<Picture 2>` 给身份,`<Picture 3>` 给地理。
|
|
183
|
-
把这条差异写进 `retention_analysis
|
|
160
|
+
把这条差异写进 `retention_analysis`,生成后检查身份、构图与地理是否分别保留。
|
|
161
|
+
|
|
162
|
+
### 多镜容器:每切一张关键帧
|
|
163
|
+
|
|
164
|
+
**`taste_option`**:几个相邻镜头可以装进同一次 full-reference 生成,每切挂它自己的已接受关键帧。
|
|
165
|
+
**`craft_default`**:装容器的条件是三条都满足:
|
|
166
|
+
|
|
167
|
+
- 每个成员镜头都有已接受的起始帧图片(`REF-...` 或 `PLAN-...`,`用途:起始帧`);缺一张就逐镜生成;
|
|
168
|
+
- 成员已接受时长之和在 4–15 秒内,且成员资格与容器算术按 [交付形态](delivery-profile.md) 的多镜容器记账;
|
|
169
|
+
- 容器用一份参考清单:各切关键帧按切的顺序排在前面,共用的身份、地点图接在后面,
|
|
170
|
+
`<Picture N>` 按这份清单的 `顺序` 编号,不照抄逐镜时的编号。
|
|
171
|
+
|
|
172
|
+
正文第一行、`subject_definitions` 之前,写一句对齐句把每张关键帧钉到它那一切的起点:
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
<Picture 1> aligns with the 0.00-second mark as the opening frame of [Shot 1]; <Picture 2> aligns with the 3.00-second mark as the frame of [Shot 2]; <Picture 3> aligns with the 6.00-second mark as the frame of [Shot 3].
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
`detailed_description` 里后续各切照常写 `[Shot 2] At 00:03.000, ...`,秒数与对齐句一致;
|
|
179
|
+
`retention_analysis` 为每张关键帧写它负责的那一切。一组 9 秒三切的小样本(要求 3.0/6.0 秒切):
|
|
180
|
+
每切挂关键帧,切点落在 2.88–3.04 / 6.00–6.04 秒,各切与关键帧的构图相似度接近三次逐镜首帧生成,
|
|
181
|
+
生成次数为三分之一;只挂第一切的关键帧时,切点偏到 2.92–3.88 / 5.88–6.21 秒,第 2、3 切的构图
|
|
182
|
+
明显偏离关键帧,还出现过一次多出来的切。所以没有逐切关键帧时不装容器。
|
|
184
183
|
|
|
185
184
|
## 素材数量上限
|
|
186
185
|
|
|
@@ -221,8 +220,8 @@ full-reference:
|
|
|
221
220
|
|
|
222
221
|
**`craft_default`**:按 [对白预算](performance-action-timing.md#对白预算) 先核对完整发声需要多久,
|
|
223
222
|
再给主时间线安排开口、停顿与落点。分镜镜长够长但开口太晚,一样会赶词。
|
|
224
|
-
|
|
225
|
-
|
|
223
|
+
H3 中文小样本可参考约 4.1 个可发声字/秒;用实际可发声区间估算,生成后核对台词完整性。
|
|
224
|
+
样本出现过赶词与静默截断,不能据此确定通用截断阈值。
|
|
226
225
|
口语语言、声线与语速描述放在 `<d>` 外;`<d>` 内只放语言标签和逐字台词,不放秒数或表演指令。
|
|
227
226
|
稳定说话人用 `(S1)`、`(S2)`;full-reference 中说话人物同时写 `<Subject N> (Sx)`。
|
|
228
227
|
|
|
@@ -235,6 +234,20 @@ H3 官方接口未提供独立 `speech_rate` 参数,也没有公布「中文
|
|
|
235
234
|
保证两个独立 job 的音频无缝衔接。`<cutoff>` 表示视频结束时有意截断发声,只用于剧本已要求的截断,
|
|
236
235
|
不用于处理装不下的完整台词。
|
|
237
236
|
|
|
237
|
+
### 说话人绑定
|
|
238
|
+
|
|
239
|
+
**`craft_default`**:说话人第一次出现时,在 `<d>` 外交代他在画内还是画外、以及音色(年龄、性别、高低),
|
|
240
|
+
台词跟在他的可见动作句后面(仍只出现一次),不集中列在正文末尾:
|
|
241
|
+
`<Subject 1> (S1), the boy on-screen with a clear high voice, opens his mouth and calls out: <d>[Chinese] ...</d>`。
|
|
242
|
+
台词期间画里还有别人的正脸时,把那个人明写成不说话:
|
|
243
|
+
`The messenger does not speak; his lips remain completely closed.`——与官方画外音写法
|
|
244
|
+
`while his lips remain completely closed` 是同一句式。
|
|
245
|
+
|
|
246
|
+
一镜实测(远处小孩喊一句,近处骑手不说话,骑手在台词期间仍正对镜头):现行写法 3 次中 2 次口型落在骑手、
|
|
247
|
+
小孩闭嘴;加上述两条后 3 次全部落在小孩。19 条样本的发声基频都在儿童区间——模型没有选错声音,
|
|
248
|
+
只是把口型放到画面里最显眼的正脸上。骑手已出画或背对时,两种写法 12 次全部正确。所以分镜能安排时,
|
|
249
|
+
先让不说话的人出画或背身;不能时才靠这两条兜底,生成后仍核对口型落在谁脸上。
|
|
250
|
+
|
|
238
251
|
### 有配音或参考音频时
|
|
239
252
|
|
|
240
253
|
**`craft_default`**:已有同句同表演音频时,先测实际发声与停顿,再确定镜长。没有现成音频仍可按文本估计
|
|
@@ -102,7 +102,8 @@ reviewer 结合完整故事义务决定,不能让未承担内容随更短提
|
|
|
102
102
|
真实参考帧已作为输入并包含脸、服装全貌、墙面材料等内容时不重复。**`craft_default`** 是“图生视频
|
|
103
103
|
只重述动作所需条件,不重述整份视觉设定”。文生视频没有这种省略资格,必须提供足以独立建立本镜
|
|
104
104
|
人物、造型、地点、构图与光线的静态视觉锚点;若提示词离开参考帧会把左右手或物体搞错,图生视频
|
|
105
|
-
|
|
105
|
+
也应保留这些局部事实。没有起始帧、只挂身份或地点图时也没有这种省略资格:取景要写具体,见
|
|
106
|
+
[目标模型能力档案](target-model-profile.md#参考条件方式)。
|
|
106
107
|
|
|
107
108
|
## 3. 运动说明的七个部分
|
|
108
109
|
|
|
@@ -130,7 +131,7 @@ reviewer 结合完整故事义务决定,不能让未承担内容随更短提
|
|
|
130
131
|
|
|
131
132
|
先把起点中的持续关系翻译成动作自由度:用正向状态写清贯穿本镜的支撑、固定、接触或空间关系,
|
|
132
133
|
再只安排允许的身体/物件通道。关系变化必须来自已接受动作并落到已接受终点;否则按 `VID-01`
|
|
133
|
-
|
|
134
|
+
保持只读。可复制正文写清持续状态和允许动作,避免重复约束;必要的排除条件可以保留。
|
|
134
135
|
成稿后在正文内直接改掉残留的这类否定结构,不另建检查步骤或报告。
|
|
135
136
|
|
|
136
137
|
**`craft_default`**:一条运动提示词优先只有一个主导的戏剧变化,必要反应、环境与摄影
|
|
@@ -147,13 +148,17 @@ reviewer 结合完整故事义务决定,不能让未承担内容随更短提
|
|
|
147
148
|
|
|
148
149
|
1. **触发**:外部声音/动作/台词或内部决定(来源可追溯);
|
|
149
150
|
2. **接收**:注意被什么抓住;
|
|
150
|
-
3.
|
|
151
|
+
3. **处理**:一个读得出的信号,而非面部部件清单;外放到什么程度见下文的表演强度;
|
|
151
152
|
4. **决定**:角色采取/抑制什么行动;
|
|
152
153
|
5. **结果**:到达已确认终点的情绪与身体状态。
|
|
153
154
|
|
|
154
155
|
- **`craft_default`**:把副词换成节奏和行为,“愤怒地说”可具体为先压低音量、吞回半句话、最后直呼对方全名——前提是符合台词与人物。
|
|
155
156
|
- **`reviewed_invariant`**:不能发明新信息、关系转变或角色意图。审查者对照镜头目的和剧本资料判断。
|
|
156
157
|
- **`taste_option`**:强度与外显程度可从克制到爆发,由导演选择,不强制“先微表情后爆发”。
|
|
158
|
+
- **`craft_default · VID-26`**:没有导演选择时,表演强度跟随制作形态与题材。漫剧和爽文的峰值,关键姿态和表情
|
|
159
|
+
外放:表情变化大到一眼读得出,手势用整条手臂,情绪落在上身和整张脸上,仍按[可生成性](generability.md)写成
|
|
160
|
+
常见的整体动作,剧情不压在微表情上。AI 真人剧保持生活化的克制,但峰值也要有一个读得出的表演拍,例如一次
|
|
161
|
+
明显的变脸、一次猛地停住或转身,不让整集只剩静脸。形态读 `视觉设定.md` 的制作形态,或已接受节奏档案的 `form`。
|
|
157
162
|
|
|
158
163
|
### 3.4 摄影机 `camera`
|
|
159
164
|
|
|
@@ -172,13 +177,10 @@ reviewer 结合完整故事义务决定,不能让未承担内容随更短提
|
|
|
172
177
|
1. 按发生顺序列出本镜全部对白、VO、OS、必要非语言发声和 SFX;
|
|
173
178
|
2. 每条台词同时标说话人、声源性质、口语语言和逐字文本,发声从原文首字开始、到末字结束;
|
|
174
179
|
3. 所列事件之外只保留已声明的 ambience 或静默;相邻两句之间若有停顿,也明确回到这一底声;
|
|
175
|
-
4.
|
|
176
|
-
实际有的层,不枚举本镜没有的层。
|
|
180
|
+
4. 用实际存在的声音层总结时间线,避免模板与本镜内容矛盾。
|
|
177
181
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
dialogue。不用 `no dialogue`、`无对白` 关闭语音通道:正面句同时说清了这一镜该有什么声音,排除句
|
|
181
|
-
只说了不要什么。非画内配乐层另外显式写空——这一层不写,实测会被模型补上一段自造配乐。
|
|
182
|
+
无对白镜写清底声或静默及覆盖区间。必要的「无对白」声明可以保留,
|
|
183
|
+
人物嘴部状态由本镜表演决定。非画内配乐的空形式按目标方言填写。
|
|
182
184
|
|
|
183
185
|
确有叹气、吸气、笑声或重叠说话时,把它作为有来源的事件列入。声音不同轨时仍只写后期职责。
|
|
184
186
|
|
|
@@ -187,12 +189,14 @@ dialogue。不用 `no dialogue`、`无对白` 关闭语音通道:正面句同
|
|
|
187
189
|
默认把这几秒写成一条读得出先后的节拍链:
|
|
188
190
|
|
|
189
191
|
```text
|
|
190
|
-
|
|
192
|
+
首先<起手状态>;接着<动作、方向与终点接触>;随后<这个动作造成的结果>;与此同时<另一条通道>;最终<结束状态>
|
|
191
193
|
```
|
|
192
194
|
|
|
193
|
-
-
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
- **动作停在哪里,用接触点或画面里的地标写**。“指尖碰到杯沿后停住”“视线落到桌面签名处”
|
|
196
|
+
“右手停在伞柄上”说的是本镜要拍成什么样,直接写,不必等上游先给数字。厘米和度数不写:
|
|
197
|
+
H3 一镜的小样本里,写「约二十厘米后停住」的 4 次中 3 次仍伸到杯子并接触,
|
|
198
|
+
写「指尖碰到杯沿后停住」的 4 次全部停在杯沿。写不出终点接触什么、停在哪个地标,
|
|
199
|
+
通常说明这一拍还没想清楚——先把动作想清楚,再回来写这一句。
|
|
196
200
|
- **可以钉一到两个锚点秒数**:起手保持多久、终点定格多久、一次运镜走多久(“起手不动约半秒”
|
|
197
201
|
“结束姿态定住约一秒”)。锚点是写在正文里的散文标注——不拆成 `timing_plan` 分段、不把
|
|
198
202
|
`mode` 写成 `explicit`、不参与 `VID-04` 求和。所有锚点相加应当明显小于镜头时长,链条其余
|
|
@@ -204,7 +208,7 @@ dialogue。不用 `no dialogue`、`无对白` 关闭语音通道:正面句同
|
|
|
204
208
|
|
|
205
209
|
- **`structural_invariant`**:明确标注的非重叠段落时长相加必须**等于**已接受的镜头时长;重叠段必须写明重叠关系,而不是靠猜。
|
|
206
210
|
- **超出**:落在时长之外的部分被截断,段尾动作、逐字对白和终点姿态一起丢失。
|
|
207
|
-
-
|
|
211
|
+
- **不足同样是缺陷**:执行端可能不停在最后一段的秒点上,而是把已写的动作整体拉长去占满镜头,写下的秒点于是整体后移,计划里的时间就不再描述成片。H3 一个 8 秒单人镜的小样本里,秒段只写到 5 秒、补「定住终点」到 8 秒、只写相对顺序三种写法各 4 次,都没有出现计划外动作;三种写法的放杯都落在 6–7 秒,补写的 3 秒定格也没有出现。把余量分配给已有阶段,让写下的节奏与镜长一致;秒点只是计划记账,不是精确落点,需要按秒剪辑或对齐时以生成结果的实测为准,落幅保持靠剪辑余量而不是一段定格描述。
|
|
208
212
|
- 两个方向都由 `VID-04` 管辖;审查者引用该编号时,超出与不足都算违约。
|
|
209
213
|
- **`reviewed_invariant`**:即使数学不超时,台词、动作、反应是否可完成仍由审查者结合语言、强度和物理路径判断。
|
|
210
214
|
- 不设通用“每秒几字/几个动作”硬门槛。
|
|
@@ -239,7 +243,7 @@ reported_end 不同:mismatch + 请求修改分镜
|
|
|
239
243
|
### 可复制的写法骨架
|
|
240
244
|
|
|
241
245
|
```text
|
|
242
|
-
从[最少但够用的起点信息]开始。首先[起手状态,可含一个锚点秒数];接着[
|
|
246
|
+
从[最少但够用的起点信息]开始。首先[起手状态,可含一个锚点秒数];接着[动作、方向与终点接触];
|
|
243
247
|
随后[这个动作造成的结果与随之而来的可见处理];与此同时[另一条通道上并行的一件事];
|
|
244
248
|
最终[已确认终点的可见状态]。摄影机[写死构图并说明保持多久,或一次有动机的移动,含触发、路径与终点景别]。
|
|
245
249
|
[必要的环境运动]。对白/声音:[准确来源与表演/空间意图]。
|
|
@@ -252,26 +256,25 @@ reported_end 不同:mismatch + 请求修改分镜
|
|
|
252
256
|
| 必须写出来 | 缺了会发生什么 |
|
|
253
257
|
|---|---|
|
|
254
258
|
| 起手状态(这一拍从哪个姿态开始) | 执行端自选起点,接不上前一镜的终点 |
|
|
255
|
-
|
|
|
256
|
-
| 至少一处量级(约五厘米/约三十度/约一掌) | 幅度由执行端决定,同一动作逐条漂移 |
|
|
259
|
+
| 串行链:接着→随后,每一步带方向,终点落到接触点或地标 | 动作糊成一团,看不出先后,也不知道停在哪 |
|
|
257
260
|
| 一条并行通道,用「与此同时」标出 | 要么全片只有一个人在动,要么所有人一起动 |
|
|
258
261
|
| 结束状态(终点姿态定在哪) | 收尾被自由发挥,下一镜起点失效 |
|
|
259
262
|
| 摄影机:锁定写死构图与保持多久,移动写触发、路径、终点景别;两种都补一句**这次要让观众看清什么** | 空着会被读成可以自由漂移;没有理由的运镜是装饰,执行端换一种也说得通,于是真换 |
|
|
260
263
|
| 有台词时把台词逐字挂在它发生的那一拍上 | 口型对不上,或台词被当成画面内容渲染 |
|
|
261
264
|
|
|
262
|
-
|
|
265
|
+
**写短**:这段是给生成器的执行指令,不是给人读的散文。上表六项在**两百字上下**就能写满,
|
|
263
266
|
超过三百字基本可以确定有冗余。省字的办法是合并而不是删项——压到一百八十字以内时,
|
|
264
267
|
最先掉的是台词挂载与声音这两项,把它们挤掉换来的字数不值:
|
|
265
268
|
把景别、机位、角度、焦段并进一句(「固定中近景,轴线左侧平视,中焦」),把并行通道挂在它
|
|
266
|
-
|
|
269
|
+
真正发生的那一拍后面而不另起一句。
|
|
267
270
|
形容词、情绪解释、把同一个动作换个说法再说一遍都不改变生成结果,只增加成本;
|
|
268
271
|
参考帧已经表达的长相、服装、场景装修一律不重复。
|
|
269
272
|
|
|
270
|
-
|
|
273
|
+
写出来是这样(合成材料,约两百字覆盖上表全部六项):
|
|
271
274
|
|
|
272
275
|
```text
|
|
273
276
|
从她双手交叠压膝、视线在脚边水洼的起点开始。首先保持不动约半秒;接着右手离膝向伞柄
|
|
274
|
-
|
|
277
|
+
伸出,指节碰到伞柄;随后扣住伞柄,把伞立起点在地面;与此同时水洼被风推出一层细纹;
|
|
275
278
|
最终她站直,右手持伞垂在身侧,视线抬到对面门口。摄影机固定,平视,取头肩,轴线左侧,
|
|
276
279
|
全程不动——让观众看清她起身前后手上的变化,而不是跟着她走。台词在「接着」这一拍:「我不等了。」
|
|
277
280
|
```
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
2.6–4.0s:说完后停住,右手仍握笔,落到 accepted end
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
-
区间不可无意重叠;显式非重叠总量/最大终点不得超 duration。总量小于 duration
|
|
145
|
+
区间不可无意重叠;显式非重叠总量/最大终点不得超 duration。总量小于 duration 时也要处理:把余量分配给已有阶段(原因见 [motion-recipe.md](motion-recipe.md) 3.6)。不要为了塞进数学窗口而静默删掉 exact dialogue。
|
|
146
146
|
|
|
147
147
|
### 对白预算
|
|
148
148
|
|
|
@@ -157,31 +157,17 @@
|
|
|
157
157
|
8–10 秒(含句内停顿),即使写成「0–7 秒」也不成立。请求分镜按至少 11 秒重新安排,或按语义拆镜,
|
|
158
158
|
待上游修订后同步本镜时长、正文时序和生成设置。不要用更快语速、截断标记或静默删词让算术看起来成立。
|
|
159
159
|
|
|
160
|
-
###
|
|
160
|
+
### H3 中文的估算参考
|
|
161
161
|
|
|
162
|
-
**`craft_default
|
|
163
|
-
|
|
162
|
+
**`craft_default`**:一次同镜头、20 次生成的中文对照中,自然语速约 4.1 个可发声字/秒。
|
|
163
|
+
短镜装入更多台词时先出现赶词,较长输入还出现未报错的截断;延长镜头改善了该组表现。
|
|
164
|
+
样本不能确定通用截断阈值,其他声音、表演和模型需要另行校准。
|
|
164
165
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
| ≤ 约 4.1 字/秒 | 自然语速,完整 |
|
|
168
|
-
| 约 4.1–9 字/秒 | **完整但明显赶**,最快到自然语速的 2.5 倍 |
|
|
169
|
-
| > 约 9 字/秒 | **静默截断**:超出的部分根本不发声 |
|
|
166
|
+
无录音时可用约 4.1 字/秒辅助估算实际可发声区间,并另计开口等待、停顿和顺序动作。
|
|
167
|
+
这不是按整个镜长计算的保证容量;有音频时以实际发声区间为准,生成后回听是否完整。
|
|
170
168
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
- **接口不会报错**。截断时任务照样返回成功、画面正常,只是台词后半段没有了
|
|
174
|
-
(实测送 78 字只说了 46 字,送 108 字同样只说了 46 字)。文字审查看不出来,
|
|
175
|
-
秒段加总也仍然"正确"——**算术通过从来不是台词说得完的证据**。
|
|
176
|
-
- **延长镜头确实管用**,这一条也实测过:37 字从 5 秒改到 10 秒,语速由 7.0 回到 4.3 字/秒;
|
|
177
|
-
50 字从 5 秒改到 13 秒,由 9.6 回到 4.2 字/秒,都恢复自然且完整。所以下面第 3 项不是敷衍的建议。
|
|
178
|
-
|
|
179
|
-
估算按 **容量 ≈ 4.1 × 镜长(秒)字**:5 秒镜约 20 字,10 秒镜约 40 字。
|
|
180
|
-
样本为同一镜 20 次生成(7/15/20/29/37/50/78/108 字,镜长 5/10/13 秒)。
|
|
181
|
-
|
|
182
|
-
**这里的「字」是可发声字,不含标点。** 写作阶段 `duration_estimate.py` 报的
|
|
183
|
-
`dialogue_characters` 是另一个口径(标点计入),拿它乘 4.1 会高估约两成;按秒核对容量时
|
|
184
|
-
以可发声字数为准。
|
|
169
|
+
这里的字数不含标点。`duration_estimate.py` 的 `dialogue_characters` 包含标点,
|
|
170
|
+
不能直接按这一语速换算发声时长。
|
|
185
171
|
|
|
186
172
|
对白太长时选项:
|
|
187
173
|
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
先写不绑定供应商的核心动作说明,再决定交付格式。它只回答:从哪个已接受的镜头起点
|
|
46
46
|
出发,谁因什么触发做什么,摄影机和声音怎样服务本镜目的,最后落到哪个已接受的镜头
|
|
47
47
|
终点。构图、景别、机位、焦段、光线、情绪标尺或位置式引用只有项目确实需要时才加入,
|
|
48
|
-
|
|
48
|
+
不为凑齐栏目重复参考帧已经承载的事实。没有起始帧、只挂身份或地点参考图时,取景就是
|
|
49
|
+
确实需要的一项,写法见 [target-model-profile.md](target-model-profile.md#参考条件方式)。
|
|
49
50
|
|
|
50
51
|
### 可选的自然语言写法
|
|
51
52
|
|
|
@@ -59,20 +60,20 @@
|
|
|
59
60
|
```
|
|
60
61
|
|
|
61
62
|
拟声词与实景距离(房间尺度、两处地点的间隔这类空间事实)取自上游内容或已接受项目方案。
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
动作的方向、终点接触与锚点秒数属于另一类:它们是本环节自己写的这一拍的组成部分,正常写——
|
|
64
|
+
“指尖碰到杯沿后停住”“起手不动约半秒”说明的是这个动作往哪去、停在哪、停多久,是本次的动作
|
|
65
|
+
决定,不需要上游先给数字;终点用接触点或地标而不用厘米、度数(见
|
|
66
|
+
[motion-recipe.md](motion-recipe.md) 3.6)。摄影机的角度与轴线侧属于镜头
|
|
65
67
|
记录,按 `framing.angle` 已接受的值写。越权只发生在这些量替上游做决定的时候:改写已接受
|
|
66
68
|
时长、改掉镜头已接受的机位角度或轴线侧、声称一个未被接受的空间尺寸、给参考帧里没有的
|
|
67
69
|
地理定尺。
|
|
68
|
-
可比较的方向、接触、占画关系与相对阶段同样好用,与量级并列,按哪一种更能消除执行歧义来选。
|
|
69
70
|
|
|
70
71
|
### 多段交付格式(仅项目已有明确要求时)
|
|
71
72
|
|
|
72
73
|
交付格式可以要求片段编号、明确时间、位置式参考或文字策略,但这些只是外层格式,不
|
|
73
74
|
改变创作者确认的镜头边界,也不创造额外动作。每个片段只写执行所需的起点状态;明确
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
区间不得重叠冲突,且各段相加要正好用完已接受时长(`VID-04`,两个方向的后果见
|
|
76
|
+
[motion-recipe.md](motion-recipe.md) 3.6)。若项目使用位置式引用,映射保持稳定且不侵入逐字对白;
|
|
76
77
|
没有该要求就不生成这些槽位。分段与槽位各自要回答什么,见
|
|
77
78
|
[delivery-profile.md](delivery-profile.md)。
|
|
78
79
|
|
|
@@ -244,13 +245,8 @@
|
|
|
244
245
|
**`VID-22 · reviewed_invariant`**:交给执行端的那段文本里,只能出现要被拍出来的画面内容。
|
|
245
246
|
任何描述“我们内部怎么做这件事”的流程词都不得进入。本条同样管关键帧的交付文本。
|
|
246
247
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
同一个人。「把否定罗列里的名词当成应当出现的物件」这一条常被当作定论,但本套件的定向实测
|
|
250
|
-
没有复现:向 H3 送入含 `There is no red balloon anywhere in the room.` 的正文 3 次,没有一次
|
|
251
|
-
画出气球。下面的禁入清单按“交付文本只含交付内容”成立,不依赖这个未复现的机制。这类缺陷和动作超载不是同一种问题:
|
|
252
|
-
超载只是难以完成,工艺词进入交付文本会直接让画面长出没有人要过的东西,而且是最难在
|
|
253
|
-
文字审查中被发现的一类——它读起来“信息很全”。
|
|
248
|
+
可复制正文只保留生成所需的画面、动作、声音和限制条件。
|
|
249
|
+
内部流程备注留在正文外,避免与生成内容混淆;不假定出现某个词就一定被模型画出来。
|
|
254
250
|
|
|
255
251
|
不得进入交付文本:
|
|
256
252
|
|
|
@@ -258,18 +254,10 @@
|
|
|
258
254
|
2. 内部锁定标记、规则 ID、`hash`、字段路径与状态词(`accepted`、`stale`、`provisional`);
|
|
259
255
|
3. 走位草图、示意图、分镜板格号的指代(“按草图第二格”“沿用上次走位”);
|
|
260
256
|
4. 任务备注、重投说明、失败记录与待办(“这次重生成”“上次手部崩坏”“重点修手”);
|
|
261
|
-
5.
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
只做常见的整体动作,不做精确拦截、不可见内部状态、否定式动作或三步以上双手编排。`
|
|
266
|
-
——镜头 ID、角色记录 ID、内部工艺词(“戏剧目的”“表演者”)与 `VID-21` 的禁令原文一次踩齐。
|
|
267
|
-
它读起来“很规范”,但整段没有一个可以画出来的名词:谁、在哪、什么光、手里有什么,一个都没有。
|
|
268
|
-
判据只有一句:**把这段文本交给一个没读过规格的人,他能不能画出一张确定的画**。
|
|
269
|
-
|
|
270
|
-
这些内容留在 Markdown 卡片、规格字段和审查记录里;交付文本只承接它们的**结果**:否定
|
|
271
|
-
意图改写成正向状态,参考图约束改写成可见事实,重投经验改写成本次要保持的状态,而不是
|
|
272
|
-
失败史。
|
|
257
|
+
5. 与本镜无关或重复的否定罗列。必要的排除条件可以保留,文字限制须服从本镜的文字政策。
|
|
258
|
+
6. 把规则说明原样抄入正文,却没有描述主体、环境和具体动作。
|
|
259
|
+
|
|
260
|
+
将参考范围与修订要求落实为本镜需要的状态和动作;失败记录、规则 ID 和维护说明留在正文外。
|
|
273
261
|
|
|
274
262
|
### 合成反例与改写
|
|
275
263
|
|
|
@@ -40,7 +40,7 @@ Finding 必须含文件与 `MOTION-...` / `SHOT-...`、必要短引文、影响
|
|
|
40
40
|
|
|
41
41
|
- 每个 `MOTION-...` 唯一对应真实 `SHOT-...`,并继承相同时长;
|
|
42
42
|
- 起点、主要变化、分段时序、声音、运镜和终点没有互相冲突;
|
|
43
|
-
-
|
|
43
|
+
- 显式分段的并集既不超时,也不短于镜长(`VID-04`);重叠必须说明;
|
|
44
44
|
- 固定和运动摄影机不在同一区间同时生效;
|
|
45
45
|
- 终点逐项对齐分镜,下一镜仍读取分镜自己的起点;
|
|
46
46
|
- 同一镜头最多进入一个交付分组;分组加散镜恰好覆盖点名范围一次;
|
|
@@ -21,9 +21,8 @@
|
|
|
21
21
|
- 单镜直接按动作先后写。一次生成含多个镜头时才用 `镜头1:`、`镜头2:`;每个内部镜头都写
|
|
22
22
|
“谁、在哪、做什么、镜头怎么动”。官方说明 2.0 响应镜头序号、不响应时间戳;秒数可作为内部预算,
|
|
23
23
|
正文用动作顺序与相对停顿表达,不把逐秒时间码当作执行保证。
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
(`VID-13`),不要把容器交给 2.0**——改用会响应时间戳的方言,或一镜一生成。
|
|
24
|
+
三次小样本的切点没有按两镜均分。需要精确成员边界时,评估独立生成再剪或其他方言,
|
|
25
|
+
并核对实际输出;容器时长算术正确不代表切点准确。
|
|
27
26
|
- 每个可辨对白事件都必须写成 `{角色用中文说:“逐字台词”}`,不能只留下普通引号或把说话要求散落
|
|
28
27
|
在括号外;对白全文只用一种口语语言,专名除外,不在台词前增加外语暖场。
|
|
29
28
|
- 每个音效事件写 `<声音>`,音乐写 `(音乐)`。字幕只有创作者明确开启时才用 `【字幕】`;默认禁字幕时正文
|
|
@@ -19,16 +19,40 @@
|
|
|
19
19
|
## 生成与参考
|
|
20
20
|
|
|
21
21
|
- 短单镜按“主体 + 动作 + 场景 + 光色 + 运镜 + 风格 + 约束”写。
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- 多镜或长叙事按 `镜头 1 [0:00–0:03]:` 顺序写;每段时间不重叠、不留无意空档,最后一个终点
|
|
27
|
-
等于总时长。官方时间戳以整数秒为单位;时间段塞入过多内容仍可能造成过度剪切或剧情遗漏。
|
|
28
|
-
实测切点精度约 ±0.4 秒(要求第 4 秒切,三次落在 3.71/4.29/4.46 秒),比 H3 松、比 2.0 可控。
|
|
29
|
-
时间戳服务于 2.5 的长叙事控制,不能反过来改写上游镜头状态链,也不是音节级同步保证。
|
|
22
|
+
- 单镜内部的动作时机先写清先后与触发;散文秒数不保证精确落点。
|
|
23
|
+
- 多镜或长叙事按 `镜头 1 [0:00–0:03]:` 写时间段,不重叠、不留无意空档,最后终点等于总时长。
|
|
24
|
+
时间戳仍有生成偏差,不能作为音节同步或精确剪辑点的保证。
|
|
25
|
+
|
|
30
26
|
- 每次使用素材时重复绑定 `人物 @图片1`、`@视频1 的表演节奏` 等具体职责。普通参考任务说明保留和
|
|
31
27
|
借用什么,不让一个素材顺手控制身份、动作、构图等所有维度。
|
|
28
|
+
- 多镜容器使用一份参考清单,各镜的 `@图片N` 重新映射到这份清单,不能照抄独立生成时的编号。
|
|
29
|
+
- 多镜容器不自动保证跨镜一致性。一组对照没有改善,但容器的起始帧锚点也更少,不能归因于
|
|
30
|
+
一次生成本身。按当前参考输入检查结果,不把该次观察变成禁用规则。
|
|
31
|
+
- 多镜容器包含切口;一镜到底是连续画面。按叙事目的选择,并保留生成后剪辑的余地。
|
|
32
|
+
|
|
33
|
+
### 两端都锚:`用途:起始帧` 与 `用途:结束帧`
|
|
34
|
+
|
|
35
|
+
接口提供 `first_frame` 与 `last_frame` 两个位置,各自只收一张。
|
|
36
|
+
终点状态重要时可增加尾帧约束,仍需检查生成后的中间动作与节奏。
|
|
37
|
+
|
|
38
|
+
按分镜已接受的终点制作尾帧并绑定 `用途:结束帧`;套件内生产入口见
|
|
39
|
+
`$short-drama-storyboard` 的「首尾成对」。未提供尾帧时,在正文中说明终点。
|
|
40
|
+
|
|
41
|
+
两个帧位仍然各占一个图片序号,所以 `@图片N` 的编号按素材出现顺序连续往下数,不跳过它们。
|
|
42
|
+
|
|
43
|
+
首尾帧与其他参考能否混用,按目标接口核对并验证。H3 的互斥规则不能直接套到 2.5,
|
|
44
|
+
2.5 的素材角色共用一个 `content` 数组也不能证明任意组合都被接受。
|
|
45
|
+
|
|
46
|
+
### 音色参考
|
|
47
|
+
|
|
48
|
+
目标接口支持 `reference_audio` 时,可用已接受的角色参考音频辅助约束声音。
|
|
49
|
+
参考可以来自预置音色合成或已授权录音,选型由视觉设定记录,生成后回听确认。
|
|
50
|
+
|
|
51
|
+
当前 creator-first 的 `输入参考图` 只接受图片,封闭用途表也没有「音色」。
|
|
52
|
+
不要在该字段塞入音频或写 `用途:音色`;这会被校验器拒绝。
|
|
53
|
+
内置 adapter 可处理音频 role,但从五文档准备带音频的 job 尚无完整绑定路径。
|
|
54
|
+
需要该能力时使用已支持音频绑定的外部执行流程,并记录角色、音频来源和实际 role;
|
|
55
|
+
不能仅凭正文提到音频就声称已经绑定。
|
|
32
56
|
|
|
33
57
|
## 编辑与延长不是普通参考
|
|
34
58
|
|
|
@@ -51,7 +75,8 @@
|
|
|
51
75
|
| `生成方式` | 这一镜送不送图 | `文生视频` / `图生视频` | 由「输入参考图」是否为空机械推出,`creator_markdown_check.py` 会核对 |
|
|
52
76
|
| `任务类型` | 这一次是参考、编辑还是延长 | `reference` / `edit` / `extend` | 创作决定,本套件不推断 |
|
|
53
77
|
|
|
54
|
-
|
|
78
|
+
`edit` 与 `extend` 使用视频素材,不一定有图片;不能把“送素材”一律写成“图生视频”。
|
|
79
|
+
现有五文档的图片字段不足以表达纯视频输入,准备 job 时需核对实际绑定。`edit` 与 `extend`
|
|
55
80
|
在 API 上还各自要求 `ratio: adaptive`(`edit` 另要求 `duration: -1`),送错会被 2.5 判为任务
|
|
56
81
|
类型不匹配。目标模型不是 2.5 时不写这一行——其余方言没有这个概念。
|
|
57
82
|
|
|
@@ -38,10 +38,11 @@
|
|
|
38
38
|
| 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. |
|
|
39
39
|
| 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`. |
|
|
40
40
|
| 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. |
|
|
41
|
-
| VID-22 | reviewed_invariant | Copyable text
|
|
42
|
-
| VID-23 | reviewed_invariant |
|
|
41
|
+
| VID-22 | reviewed_invariant | Copyable text describes the intended image and action. IDs, workflow status, hashes and file paths stay outside it. Prefer observable states where they clarify execution; necessary negative constraints are allowed. Unless explicitly authored, prohibit non-diegetic subtitles, captions and dialogue overlays while preserving approved in-scene text and its exact content, carrier and placement. |
|
|
42
|
+
| VID-23 | reviewed_invariant | For models generating audio with video, specify the intended dialogue, VO, OS, vocalizations, effects, ambience and silence. Keep source, speaker, language and verbatim dialogue boundaries. Summaries must match the actual sound layers; follow model-specific music syntax without assuming missing layers will always be generated. |
|
|
43
43
|
| VID-24 | structural_invariant | An image-to-video shot carries the storyboard's `REF-...` and `PLAN-...` slots unchanged, each with its 用途, so the motion document itself answers which start frame and which identity, geography, and prop pictures this shot sends — and, for `PLAN-...`, in which order the creator attaches them. 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. |
|
|
44
44
|
| VID-25 | structural_invariant | Quoted Chinese in a copyable body is delivered, not authored. Every run of four or more Han characters inside a `<d>` tag or quotation marks resolves, ignoring punctuation and spacing, to text that already exists in `剧本.md`, `视觉设定.md` or `分镜.md`. A line the shot wishes the character had said belongs upstream in the screenplay, not in the prompt. Runs of three characters or fewer are in-frame labels and interjections far more often than lines, so they stay with review rather than the mechanical check. |
|
|
45
|
+
| VID-26 | craft_default | Absent a director's choice, performance intensity follows form and genre. At motion-comic and wish-fulfilment peaks, key poses and expressions go outward—an expression change readable at a glance, whole-arm gestures, emotion carried by the upper body and the whole face—still written as common whole-body actions, never with the plot resting on a micro-expression. AI live action keeps a subtler realism but still gives each peak one readable performance beat. An inferred inner state is not deleted but translated into a visible expression or movement. |
|
|
45
46
|
|
|
46
47
|
### `CON`
|
|
47
48
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|---|---|---|
|
|
42
42
|
| 模型版本 | 项目使用的版本化模型档案键;账号侧 Endpoint / model ID 留在生产配置 | 只路由到该版本的方言;不因名称相近套用另一版本 |
|
|
43
43
|
| 提示词方言 | 通用自然语言 / 目标原生结构及版本 | 命中已有方言时按其字段、素材标记和声音语法写;语言标签不能代替方言 |
|
|
44
|
-
| 单次原生时长 | 一次生成能覆盖的最短与最长秒数 |
|
|
44
|
+
| 单次原生时长 | 一次生成能覆盖的最短与最长秒数 | 分镜规划时就让每次生成落在区间内:默认一镜一生成,短动作在合法镜长内到达终点后 hold;创作者在[交付形态](delivery-profile.md)里声明多镜容器、且命中的方言支持时,短于下限的镜头可与同场相邻镜头装进一次生成,按方言写(例如 [H3](minimax-h3.md#多镜容器每切一张关键帧) 要求每切都有已接受关键帧)。长动作按闭合状态拆镜 |
|
|
45
45
|
| 参考条件方式 | 无 / 首帧 / 首尾帧 / 多槽参考(及槽位数上限) | 见下节 |
|
|
46
46
|
| 声音是否同轨生成 | `same_pass` 或 `separate` | 见下节 |
|
|
47
47
|
| 画幅与分辨率 | 执行端实际接受的画幅与分辨率集合 | 只写项目已接受的那一个;不在正文里罗列备选 |
|
|
@@ -90,6 +90,13 @@ Brief、剧本或声音方向若已经点名排除外语前导、语气词、额
|
|
|
90
90
|
无论哪一种,《视觉设定.md》连续性锁的锁面都留在正文里:参考帧只约束它自己画到的部分,
|
|
91
91
|
跨镜不变的颜色、材质与形制仍然要逐镜带走。
|
|
92
92
|
|
|
93
|
+
**`craft_default`**:只挂身份或地点参考图、没有起始帧时,正文写具体取景:画面下沿切在哪
|
|
94
|
+
(腰、胸口、膝),主体占画多高,头顶落在画面哪一段,机位高度与离主体多远。只写景别名称不够,
|
|
95
|
+
取景会被地点图拉宽。一组 H3 小样本里,只写「Medium shot」加地点图的 8 次出了远景 3、中远景 3、
|
|
96
|
+
中景 2;换成上述取景字段的 8 次出了中景 7、中远景 1、没有远景。Wan 3.0 一组只写「双人中景」的 6 次
|
|
97
|
+
也都出成全身远景(未做无地点图或取景字段的对照)。在参考说明里写「不继承它的构图」本身挡不住这种漂移。有起始帧时构图由起始帧
|
|
98
|
+
承担,不需要这一步。
|
|
99
|
+
|
|
93
100
|
参考条件方式由本镜各槽位的 `用途` 读出,不由“想不想用多模态”决定:只有一张 `起始帧` 是首帧,
|
|
94
101
|
`起始帧` 加 `结束帧` 是首尾帧,`起始帧` 与身份/地理/道具图同时存在或只有这些图时是多槽参考。
|
|
95
102
|
不少执行端把首/尾帧输入与多槽参考输入设为互斥,这时整组统一走多槽参考,起始帧也按参考素材送入——
|