@lemoncat7/dsh-partner 2.4.2 → 2.7.0
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 +8 -0
- package/docs/THIRD_PARTY_LICENSES.md +13 -0
- package/docs/attachment-storage.md +18 -0
- package/docs/director-skills.md +24 -0
- package/docs/long-task-continuation.md +51 -0
- package/docs/releases/2.5.0.md +13 -0
- package/docs/releases/2.6.0.md +11 -0
- package/docs/releases/2.7.0.md +21 -0
- package/lib/agent-runtime.d.ts +9 -1
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +117 -17
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/attachments-api.d.ts.map +1 -1
- package/lib/api/features/attachments-api.js +31 -1
- package/lib/api/features/attachments-api.js.map +1 -1
- package/lib/api.d.ts +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +1 -1
- package/lib/api.js.map +1 -1
- package/lib/attachments/grouped-storage.d.ts +5 -0
- package/lib/attachments/grouped-storage.d.ts.map +1 -0
- package/lib/attachments/grouped-storage.js +47 -0
- package/lib/attachments/grouped-storage.js.map +1 -0
- package/lib/attachments/service.d.ts +17 -0
- package/lib/attachments/service.d.ts.map +1 -1
- package/lib/attachments/service.js +100 -8
- package/lib/attachments/service.js.map +1 -1
- package/lib/attachments/shared-storage.d.ts +7 -0
- package/lib/attachments/shared-storage.d.ts.map +1 -0
- package/lib/attachments/shared-storage.js +44 -0
- package/lib/attachments/shared-storage.js.map +1 -0
- package/lib/attachments/storage-admin.d.ts +6 -0
- package/lib/attachments/storage-admin.d.ts.map +1 -0
- package/lib/attachments/storage-admin.js +43 -0
- package/lib/attachments/storage-admin.js.map +1 -0
- package/lib/attachments/storage-types.d.ts +33 -0
- package/lib/attachments/storage-types.d.ts.map +1 -0
- package/lib/attachments/storage-types.js +2 -0
- package/lib/attachments/storage-types.js.map +1 -0
- package/lib/attachments/tool.d.ts.map +1 -1
- package/lib/attachments/tool.js +16 -5
- package/lib/attachments/tool.js.map +1 -1
- package/lib/channels/delivery-policy.d.ts.map +1 -1
- package/lib/channels/delivery-policy.js +7 -4
- package/lib/channels/delivery-policy.js.map +1 -1
- package/lib/channels/direct/message-format.js +418 -281
- package/lib/channels/direct/message-format.js.map +4 -4
- package/lib/channels/manager.d.ts +7 -3
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +73 -38
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/weixin/api.d.ts.map +1 -1
- package/lib/channels/weixin/api.js +7 -2
- package/lib/channels/weixin/api.js.map +1 -1
- package/lib/channels/weixin/errors.d.ts +14 -0
- package/lib/channels/weixin/errors.d.ts.map +1 -0
- package/lib/channels/weixin/errors.js +29 -0
- package/lib/channels/weixin/errors.js.map +1 -0
- package/lib/channels/weixin/poll.d.ts +14 -0
- package/lib/channels/weixin/poll.d.ts.map +1 -0
- package/lib/channels/weixin/poll.js +50 -0
- package/lib/channels/weixin/poll.js.map +1 -0
- package/lib/client-api.d.ts +1 -23
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client-controller.d.ts.map +1 -1
- package/lib/client-controller.js +3 -3
- package/lib/client-controller.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1078 -679
- package/lib/client.js.map +4 -4
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +32 -8
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/domain.d.ts +8 -0
- package/lib/collaboration/domain.d.ts.map +1 -1
- package/lib/collaboration/domain.js.map +1 -1
- package/lib/collaboration/service.d.ts.map +1 -1
- package/lib/collaboration/service.js +38 -5
- package/lib/collaboration/service.js.map +1 -1
- package/lib/concern-notification.d.ts.map +1 -1
- package/lib/concern-notification.js +2 -1
- package/lib/concern-notification.js.map +1 -1
- package/lib/concern-tool.js +1 -1
- package/lib/concern-tool.js.map +1 -1
- package/lib/execution/reply-progress.d.ts.map +1 -1
- package/lib/execution/reply-progress.js +4 -2
- package/lib/execution/reply-progress.js.map +1 -1
- package/lib/execution/service.d.ts +1 -1
- package/lib/execution/service.d.ts.map +1 -1
- package/lib/execution/service.js +4 -7
- package/lib/execution/service.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -1
- package/lib/index.js.map +1 -1
- package/lib/memory-reflection.js +2 -2
- package/lib/memory-reflection.js.map +1 -1
- package/lib/message-source.d.ts +25 -0
- package/lib/message-source.d.ts.map +1 -0
- package/lib/message-source.js +8 -0
- package/lib/message-source.js.map +1 -0
- package/lib/observation-loop.js +4 -4
- package/lib/observation-loop.js.map +1 -1
- package/lib/pendant/reader.js +1 -1
- package/lib/pendant/reader.js.map +1 -1
- package/lib/pendant/settings-panel.js +1 -1
- package/lib/pendant/settings-panel.js.map +1 -1
- package/lib/persona/service.js +1 -1
- package/lib/persona/service.js.map +1 -1
- package/lib/requirements/attachments.d.ts +7 -0
- package/lib/requirements/attachments.d.ts.map +1 -0
- package/lib/requirements/attachments.js +26 -0
- package/lib/requirements/attachments.js.map +1 -0
- package/lib/requirements/domain.d.ts +1 -1
- package/lib/requirements/domain.d.ts.map +1 -1
- package/lib/requirements/service.d.ts.map +1 -1
- package/lib/requirements/service.js +4 -1
- package/lib/requirements/service.js.map +1 -1
- package/lib/scheduler/channel-origin.d.ts +7 -0
- package/lib/scheduler/channel-origin.d.ts.map +1 -0
- package/lib/scheduler/channel-origin.js +27 -0
- package/lib/scheduler/channel-origin.js.map +1 -0
- package/lib/scheduler/continuations.d.ts +29 -0
- package/lib/scheduler/continuations.d.ts.map +1 -0
- package/lib/scheduler/continuations.js +286 -0
- package/lib/scheduler/continuations.js.map +1 -0
- package/lib/scheduler/domain.d.ts +40 -0
- package/lib/scheduler/domain.d.ts.map +1 -1
- package/lib/scheduler/final-reply.d.ts +13 -0
- package/lib/scheduler/final-reply.d.ts.map +1 -0
- package/lib/scheduler/final-reply.js +21 -0
- package/lib/scheduler/final-reply.js.map +1 -0
- package/lib/scheduler/service.d.ts +2 -0
- package/lib/scheduler/service.d.ts.map +1 -1
- package/lib/scheduler/service.js +30 -1
- package/lib/scheduler/service.js.map +1 -1
- package/lib/scheduler/wakeup-context.d.ts +7 -0
- package/lib/scheduler/wakeup-context.d.ts.map +1 -0
- package/lib/scheduler/wakeup-context.js +14 -0
- package/lib/scheduler/wakeup-context.js.map +1 -0
- package/lib/scheduler/wakeup.d.ts +11 -0
- package/lib/scheduler/wakeup.d.ts.map +1 -0
- package/lib/scheduler/wakeup.js +52 -0
- package/lib/scheduler/wakeup.js.map +1 -0
- package/lib/skills/builtin-resources.d.ts +6 -0
- package/lib/skills/builtin-resources.d.ts.map +1 -0
- package/lib/skills/builtin-resources.js +47 -0
- package/lib/skills/builtin-resources.js.map +1 -0
- package/lib/skills/builtin.d.ts +2 -5
- package/lib/skills/builtin.d.ts.map +1 -1
- package/lib/skills/builtin.js +11 -0
- package/lib/skills/builtin.js.map +1 -1
- package/lib/skills/director-builtins.d.ts +8 -0
- package/lib/skills/director-builtins.d.ts.map +1 -0
- package/lib/skills/director-builtins.js +65 -0
- package/lib/skills/director-builtins.js.map +1 -0
- package/lib/skills/drama-builtin.d.ts +3 -0
- package/lib/skills/drama-builtin.d.ts.map +1 -0
- package/lib/skills/drama-builtin.js +49 -0
- package/lib/skills/drama-builtin.js.map +1 -0
- package/lib/skills/long-task-continuation.d.ts +4 -0
- package/lib/skills/long-task-continuation.d.ts.map +1 -0
- package/lib/skills/long-task-continuation.js +43 -0
- package/lib/skills/long-task-continuation.js.map +1 -0
- package/lib/skills/service.d.ts.map +1 -1
- package/lib/skills/service.js +8 -3
- package/lib/skills/service.js.map +1 -1
- package/lib/skills/viora-canvas-builtin.d.ts +3 -0
- package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
- package/lib/skills/viora-canvas-builtin.js +19 -0
- package/lib/skills/viora-canvas-builtin.js.map +1 -0
- package/lib/storage/migrate-layout.d.ts.map +1 -1
- package/lib/storage/migrate-layout.js +13 -4
- package/lib/storage/migrate-layout.js.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2 -0
- package/lib/store.js.map +1 -1
- package/lib/tasks/context.js +1 -0
- package/lib/tasks/context.js.map +1 -1
- package/lib/tasks/continuation-yield.d.ts +4 -0
- package/lib/tasks/continuation-yield.d.ts.map +1 -0
- package/lib/tasks/continuation-yield.js +27 -0
- package/lib/tasks/continuation-yield.js.map +1 -0
- package/lib/tasks/continuation.d.ts +13 -0
- package/lib/tasks/continuation.d.ts.map +1 -0
- package/lib/tasks/continuation.js +106 -0
- package/lib/tasks/continuation.js.map +1 -0
- package/lib/tasks/domain.d.ts +2 -0
- package/lib/tasks/domain.d.ts.map +1 -1
- package/lib/tasks/scheduling.d.ts.map +1 -1
- package/lib/tasks/scheduling.js +7 -0
- package/lib/tasks/scheduling.js.map +1 -1
- package/lib/tasks/service.d.ts +2 -1
- package/lib/tasks/service.d.ts.map +1 -1
- package/lib/tasks/service.js +19 -1
- package/lib/tasks/service.js.map +1 -1
- package/lib/ui/attachment-storage.d.ts +2 -0
- package/lib/ui/attachment-storage.d.ts.map +1 -0
- package/lib/ui/attachment-storage.js +59 -0
- package/lib/ui/attachment-storage.js.map +1 -0
- package/lib/ui/capability-editor.js +1 -1
- package/lib/ui/capability-editor.js.map +1 -1
- package/lib/ui/companion-access-panel.js +1 -1
- package/lib/ui/companion-access-panel.js.map +1 -1
- package/lib/ui/companion-create.js +1 -1
- package/lib/ui/companion-create.js.map +1 -1
- package/lib/ui/companion-picker.js +1 -1
- package/lib/ui/companion-picker.js.map +1 -1
- package/lib/ui/identity-editor.js +1 -1
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/mcp-capabilities.js +1 -1
- package/lib/ui/mcp-capabilities.js.map +1 -1
- package/lib/ui/mcp-panel.js +1 -1
- package/lib/ui/mcp-panel.js.map +1 -1
- package/lib/ui/memory/concern-board.js +2 -2
- package/lib/ui/memory/concern-board.js.map +1 -1
- package/lib/ui/memory/concern-deletion.d.ts +1 -1
- package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
- package/lib/ui/memory/concern-deletion.js +9 -4
- package/lib/ui/memory/concern-deletion.js.map +1 -1
- package/lib/ui/memory/concern-panel.js +1 -1
- package/lib/ui/memory/concern-panel.js.map +1 -1
- package/lib/ui/memory/memory-library.js +1 -1
- package/lib/ui/memory/memory-library.js.map +1 -1
- package/lib/ui/memory/memory-panel.js +1 -1
- package/lib/ui/memory/memory-panel.js.map +1 -1
- package/lib/ui/partner-components.js +1 -1
- package/lib/ui/partner-components.js.map +1 -1
- package/lib/ui/requirement-board.js +1 -1
- package/lib/ui/requirement-board.js.map +1 -1
- package/lib/ui/requirement-dialog.js +1 -1
- package/lib/ui/requirement-dialog.js.map +1 -1
- package/lib/ui/requirement-tasks-panel.js +1 -1
- package/lib/ui/requirement-tasks-panel.js.map +1 -1
- package/lib/ui/schedule-panel.d.ts.map +1 -1
- package/lib/ui/schedule-panel.js +20 -4
- package/lib/ui/schedule-panel.js.map +1 -1
- package/lib/ui/skills-panel.js +1 -1
- package/lib/ui/skills-panel.js.map +1 -1
- package/lib/ui/storage-settings.d.ts.map +1 -1
- package/lib/ui/storage-settings.js +2 -1
- package/lib/ui/storage-settings.js.map +1 -1
- package/lib/ui/task-board-stage.js +1 -1
- package/lib/ui/task-board-stage.js.map +1 -1
- package/lib/ui/workspace-components.js +1 -1
- package/lib/ui/workspace-components.js.map +1 -1
- package/lib/ui/workspace-navigation.d.ts +16 -16
- package/lib/ui/workspace-navigation.js +1 -1
- package/lib/ui/workspace-navigation.js.map +1 -1
- package/package.json +55 -41
- package/resources/skills/cinematic-director/manifest.json +205 -0
- package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
- package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
- package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
- package/resources/skills/cinematic-director/upstream/README.md +507 -0
- package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
- package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
- package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
- package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
- package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
- package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
- package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
- package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
- package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
- package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
- package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
- package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
- package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
- package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
- package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
- package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
- package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
- package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
- package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
- package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
- package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
- package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
- package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
- package/resources/skills/director-skills/manifest.json +541 -0
- package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
- package/resources/skills/director-skills/upstream/LICENSE +21 -0
- package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
- package/resources/skills/director-skills/upstream/README.md +251 -0
- package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
- package/resources/skills/director-skills/upstream/SKILL.md +114 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
- package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
- package/resources/skills/drama-production/manifest.json +933 -0
- package/resources/skills/drama-production/upstream/LICENSE +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
- package/resources/skills/viora-canvas-production/manifest.json +23 -0
- package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
- package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
- package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
- package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
# AI Video Tool Adapters
|
|
2
|
+
|
|
3
|
+
Load this file when you reach Step 9 (tool adapter selection) or Step 10 (AI video prompt construction), when the user names a video model or says "I'm generating in X", or when a clip has failed and the tool is part of the diagnosis.
|
|
4
|
+
|
|
5
|
+
**Staleness warning, before anything else.** Both capability matrices below and every per-tool block describe capability *classes as of writing*, not a live feature list. Vendors ship, rename, and remove controls constantly, and different surfaces of the same product expose different ones. Nothing on this page is a fact you can quote to a client — re-check it against current documentation, and read the panel in front of you before you promise a user a control. **Capability snapshot: 2026-08.** Anything older than about two release cycles is a prior, not a fact — confirm on the panel before you rely on it.
|
|
6
|
+
|
|
7
|
+
## The capability-first rule
|
|
8
|
+
|
|
9
|
+
Do not memorize tools. Tools rename features, ship new versions, and drop capabilities every few weeks. What is stable is the **set of control surfaces** a tool exposes. So:
|
|
10
|
+
|
|
11
|
+
1. Ask (or infer) which control surfaces the user's tool exposes: does it take a first frame? a last frame? a character reference? an existing clip as the driving input? does it have a camera slider, a motion-strength number, a negative-prompt field, native audio?
|
|
12
|
+
2. Map those surfaces to one of four **prompt shapes** below. The one surface that is not a prompt shape — video-to-video — is chosen here, at this step; see the section after the shapes.
|
|
13
|
+
3. Write the prompt in that shape's slot order. Move any instruction into a UI control if a UI control exists for it — a slider always beats an adjective.
|
|
14
|
+
4. Only then apply the tool-specific notes.
|
|
15
|
+
|
|
16
|
+
Corollary: never put the same instruction in two places. If you set a camera slider, delete the camera sentence. If the tool has a negative field, the positive prompt carries zero exclusions. Duplicated instructions produce doubled motion.
|
|
17
|
+
|
|
18
|
+
## The four prompt shapes
|
|
19
|
+
|
|
20
|
+
### S1 — Motion-only (image-to-video with a strong first frame)
|
|
21
|
+
|
|
22
|
+
Use when the still already fixes identity, costume, set, light, and framing. The text writes time, not appearance. This is the default shape for character work.
|
|
23
|
+
|
|
24
|
+
Slot order:
|
|
25
|
+
|
|
26
|
+
1. Camera behavior (or "the camera does not move")
|
|
27
|
+
2. Subject start state, visible in the frame
|
|
28
|
+
3. One primary action, with pace and direction
|
|
29
|
+
4. One environmental motion
|
|
30
|
+
5. End state — a nameable pose or composition
|
|
31
|
+
6. Continuity lock — a stability instruction, never a description
|
|
32
|
+
7. Exclusions (only if the tool has no negative field)
|
|
33
|
+
|
|
34
|
+
Rule: describe change, not appearance. "She wears a red coat" is a description and re-renders the coat; "the coat does not change" is a lock and holds it. Anything the still already fixes gets a lock clause at most.
|
|
35
|
+
|
|
36
|
+
### S2 — Full description (text-to-video)
|
|
37
|
+
|
|
38
|
+
Use when there is no input image. The prompt carries the entire frame.
|
|
39
|
+
|
|
40
|
+
Slot order:
|
|
41
|
+
|
|
42
|
+
1. Format register (aspect, and one grounded look reference such as "shot on 35mm anamorphic", not "cinematic")
|
|
43
|
+
2. Subject with specific, repeatable identity details
|
|
44
|
+
3. Location, time of day, weather, atmosphere
|
|
45
|
+
4. Primary action
|
|
46
|
+
5. Shot size, angle, focal length
|
|
47
|
+
6. Camera move (one)
|
|
48
|
+
7. Lighting — name the source, not the mood
|
|
49
|
+
8. Audio, if the tool generates it
|
|
50
|
+
9. Constraints
|
|
51
|
+
|
|
52
|
+
Rule: slots 5-7 are where mood words creep in. Write geometry and hardware there instead. See [cinematic-language.md](cinematic-language.md) for the vocabulary and [lighting-and-color.md](lighting-and-color.md) for source-naming.
|
|
53
|
+
|
|
54
|
+
### S3 — Keyframe pair (first + last frame)
|
|
55
|
+
|
|
56
|
+
Use for controlled transformation, a guaranteed endpoint, or a designed transition between two compositions.
|
|
57
|
+
|
|
58
|
+
Slot order:
|
|
59
|
+
|
|
60
|
+
1. Bridge statement: "Starting from the first image and ending on the second image…"
|
|
61
|
+
2. The single transformation that connects them (only one: pose, or camera position, or light state)
|
|
62
|
+
3. The camera path between the two framings
|
|
63
|
+
4. Timing and easing (steady / decelerating into the last frame)
|
|
64
|
+
5. What must not change across the interpolation
|
|
65
|
+
6. Exclusions (only if the tool has no negative field)
|
|
66
|
+
|
|
67
|
+
The emittable skeleton for these six slots is the S3 block in SKILL.md Step 10 and Template 2 in [../assets/video-prompt-template.md](../assets/video-prompt-template.md); both fill exactly this list in this order, so a prompt written from either one can be audited against the slots here.
|
|
68
|
+
|
|
69
|
+
Rule: the model interpolates, it does not reason. If the two frames differ in more than one of {subject pose, camera position, light state}, it will morph rather than move. Too far apart? Build a middle keyframe and make it two clips.
|
|
70
|
+
|
|
71
|
+
### S4 — Multi-shot timestamped
|
|
72
|
+
|
|
73
|
+
Use only on tools that respect timestamped segments. Otherwise you get one shot that ignores your structure, or three shots that look like three different films.
|
|
74
|
+
|
|
75
|
+
Slot order:
|
|
76
|
+
|
|
77
|
+
1. Global block: style, aspect, palette, per-character identity locks, continuity rules, cut rule
|
|
78
|
+
2. Per segment `[mm:ss-mm:ss]`: shot size + angle | action | camera | light or sound cue
|
|
79
|
+
3. Global exclusions
|
|
80
|
+
|
|
81
|
+
Rule: every identity, palette, and lighting fact lives in the global block. Per-segment lines carry action, camera, and at most one light or sound cue — never an identity, wardrobe, palette, or lighting restatement, and never an emotion word. The moment you re-describe a character inside segment 2, the model recasts them.
|
|
82
|
+
|
|
83
|
+
### The same scene in all four shapes
|
|
84
|
+
|
|
85
|
+
One beat, written four ways, so you can see what each shape carries and what it drops: *a person stands at a closed apartment door holding something they intend to give away, hesitates, and leaves without knocking.*
|
|
86
|
+
|
|
87
|
+
S1, motion-only from a keyframe that already shows her at the door (score 3):
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
The camera is locked. She stands square to the closed door, the folded coat held against her chest
|
|
91
|
+
in both hands. She lowers the coat to waist height, slowly, then turns her head left, away from the
|
|
92
|
+
door. The overhead strip light flickers once. End with her chin turned off-frame left, the coat
|
|
93
|
+
still in both hands. Her face, her clothes, the door, and the corridor light do not change.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
S2, text-to-video with no input image (score 3):
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
16:9, shot on 35mm spherical, mild halation on the highlights. A woman in her thirties, dark hair
|
|
100
|
+
pinned back, charcoal wool coat, holding a folded grey coat against her chest. Narrow apartment
|
|
101
|
+
corridor, late evening, brown carpet, a numbered door. She lowers the folded coat to waist height
|
|
102
|
+
and does not knock. Medium shot, eye level, 50mm. The camera is locked. Light is one overhead
|
|
103
|
+
fluorescent strip behind her plus a warm gap under the door. Audio: corridor hum, one distant lift
|
|
104
|
+
chime, no music. One continuous shot, no cuts, the same face throughout.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
S3, keyframe pair — frame 1 square to the door, frame 2 three-quarters turned away (score 2):
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
Starting from the first image and ending on the second image. The only change is her body
|
|
111
|
+
orientation: she rotates from square-on to the door to a three-quarter turn away from it. The
|
|
112
|
+
camera holds its position and the framing is identical in both frames. Steady, decelerating into
|
|
113
|
+
the last frame. Face, hair, both coats, door number, and corridor light are identical throughout.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
S4, multi-shot timestamped (each segment scored separately, ≤3 each):
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
Overall: late evening, narrow apartment corridor, brown carpet, one overhead fluorescent strip.
|
|
120
|
+
Woman, mid-thirties, dark hair pinned back, charcoal wool coat, carrying a folded grey coat. Same
|
|
121
|
+
face, same coats, same corridor light in every segment. Hard cuts only, no dissolves.
|
|
122
|
+
[00:00-00:03] Medium, eye level. She stops at the door and lifts the folded coat slightly. Camera locked.
|
|
123
|
+
[00:03-00:06] Close on her free hand rising toward the door, then stopping short. Camera locked.
|
|
124
|
+
[00:06-00:10] Wide from down the corridor. She turns and walks away from camera. Slow push in.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Note what changes between them: S1 spends nothing on appearance because the still holds it; S2 spends more than half its words there; S3 buys a guaranteed endpoint by permitting exactly one change; S4 buys three shots by giving up per-shot control. Pick the cheapest shape your tool supports.
|
|
128
|
+
|
|
129
|
+
## Video-to-video: the fifth control surface
|
|
130
|
+
|
|
131
|
+
Video-to-video takes an existing clip as the driving input instead of a still or a sentence. It is chosen at the **adapter** step, not the prompt-shape step: there is no S5. You still write whichever of S1–S4 the shot wanted, and add one line naming what is held from the source clip and what is replaced.
|
|
132
|
+
|
|
133
|
+
Two surfaces travel under the one name, and a family often exposes one and not the other:
|
|
134
|
+
|
|
135
|
+
- **Restyle / relight / regrade / reframe** — the source clip supplies motion, blocking, and timing; the model replaces the look. Reach for it when the take is right and the picture is wrong.
|
|
136
|
+
- **Performance transfer** — a driving clip supplies the motion (a face's expression, a body's movement) and a separate reference supplies the subject. Reach for it when the performance is right and the person is wrong.
|
|
137
|
+
|
|
138
|
+
What it cannot do:
|
|
139
|
+
|
|
140
|
+
- It cannot invent a new angle. The camera stays where it was, so a restyled wide is still a wide; a shot you wish were closer is a new generation, not a pass.
|
|
141
|
+
- It inherits the take's blocking and timing exactly, including the beat that lands half a second late. If the performance is wrong, the source clip is wrong and no restyle reaches it.
|
|
142
|
+
- Identity risk moves from generation to conform. The face is no longer being invented, it is being re-rendered frame by frame, so drift arrives as flicker and boil across the take rather than as one wrong face — and it arrives on a clip you already approved, which is what makes it easy to sign off. Check the identity landmark on the first, middle, and last frames of the output, never on a thumbnail.
|
|
143
|
+
|
|
144
|
+
When a v2v pass is cheaper than rebuilding the keyframe, and when it is not, is repair economics — owned by the cost ladder in [failure-modes.md](failure-modes.md). Read it there rather than re-deriving it from the per-tool budgets on this page.
|
|
145
|
+
|
|
146
|
+
Worked instance: a 5s clip is approved for performance and comes back beautified — blacks lifted to grey, wet pavement nobody wrote, every source pulled to one white balance. The keyframe is right and the take is right, so rebuilding either throws away work that already passed. Restyle the delivered clip instead, carrying the positive facts from *Night exteriors get beautified* below, hold face, wardrobe, and framing, and check the landmark on the first, middle, and last frames before you conform it.
|
|
147
|
+
|
|
148
|
+
## Control-surface matrix
|
|
149
|
+
|
|
150
|
+
This matrix describes **capability classes as of writing, not a live feature list.** Vendors ship, rename, and remove features constantly, and different surfaces of the same product (web UI, app, API) expose different controls. Verify against current documentation before promising a user a specific control — no cell here is a fact you can quote to a client. Legend: `yes` / `part` (exists but limited, or only on some surfaces) / `no` (not exposed on the surfaces we looked at — treat as "check", not as "impossible") / `varies` (differs by surface, tier, or release often enough that only the docs can answer). Length classes are deliberately coarse, because published limits move constantly: `short` is a few seconds, `std` is the common single-generation length most tools default to, `graph` means you set it yourself as frame count over fps. Read the class as a planning bucket, never as a ceiling you can quote.
|
|
151
|
+
|
|
152
|
+
| Capability | Runway | Veo | Kling 可灵 | Luma | 即梦 / Seedance | 万相 Wanxiang |
|
|
153
|
+
|---|---|---|---|---|---|---|
|
|
154
|
+
| Text-to-video | yes | yes | yes | yes | yes | yes |
|
|
155
|
+
| Image-to-video, first frame | yes | yes | yes | yes | yes | yes |
|
|
156
|
+
| Last-frame slot | part | part | yes | yes | yes | yes |
|
|
157
|
+
| Keyframe interpolation, 3+ frames | no | no | no | part | part | part |
|
|
158
|
+
| Video-to-video, existing clip as driver | yes | varies | part | varies | part | part |
|
|
159
|
+
| Character / subject reference | yes | part | part | yes | yes | part |
|
|
160
|
+
| Style reference | part | part | part | yes | yes | part |
|
|
161
|
+
| Explicit camera-control UI | yes | part | yes | part | part | part |
|
|
162
|
+
| Numeric motion strength | yes | no | part | no | yes | part |
|
|
163
|
+
| Motion brush / region control | yes | no | yes | no | no | no |
|
|
164
|
+
| Native audio | part | yes | part | part | part | part |
|
|
165
|
+
| Dialogue + lip-sync | part | yes | yes | no | part | part |
|
|
166
|
+
| Single-generation length class | std | std | std | short-std | short-std | std |
|
|
167
|
+
| Extend / continue | yes | part | yes | yes | part | part |
|
|
168
|
+
| Loop | part | no | no | yes | no | no |
|
|
169
|
+
| Multi-shot timestamps | no | part | part | no | part | yes |
|
|
170
|
+
| Seed control | yes | part | part | part | yes | yes |
|
|
171
|
+
| Negative-prompt field | varies | part | yes | varies | part | yes |
|
|
172
|
+
| Aspect-ratio control | yes | yes | yes | yes | yes | yes |
|
|
173
|
+
|
|
174
|
+
Same legend, same caveat — these are classes as of writing, to be re-checked against current documentation:
|
|
175
|
+
|
|
176
|
+
| Capability | Sora-class | Hailuo / MiniMax | Pika | Vidu | Midjourney Video | OSS / ComfyUI |
|
|
177
|
+
|---|---|---|---|---|---|---|
|
|
178
|
+
| Text-to-video | yes | yes | yes | yes | varies | yes |
|
|
179
|
+
| Image-to-video, first frame | part | yes | yes | yes | yes | yes |
|
|
180
|
+
| Last-frame slot | varies | part | part | yes | no | yes |
|
|
181
|
+
| Keyframe interpolation, 3+ frames | no | no | no | part | no | yes |
|
|
182
|
+
| Video-to-video, existing clip as driver | part | part | part | varies | no | yes |
|
|
183
|
+
| Character / subject reference | part | yes | part | yes | part | yes |
|
|
184
|
+
| Style reference | part | part | part | part | part | yes |
|
|
185
|
+
| Explicit camera-control UI | no | part | yes | part | no | part |
|
|
186
|
+
| Numeric motion strength | no | no | yes | part | part | yes |
|
|
187
|
+
| Motion brush / region control | no | no | part | no | no | part |
|
|
188
|
+
| Native audio | yes | part | part | part | varies | part |
|
|
189
|
+
| Dialogue + lip-sync | yes | part | part | part | varies | part |
|
|
190
|
+
| Single-generation length class | std | std | short | short-std | short | graph |
|
|
191
|
+
| Extend / continue | part | part | yes | part | yes | yes |
|
|
192
|
+
| Loop | part | no | part | no | part | yes |
|
|
193
|
+
| Multi-shot timestamps | part | no | no | no | no | no |
|
|
194
|
+
| Seed control | varies | part | yes | part | part | yes |
|
|
195
|
+
| Negative-prompt field | varies | part | yes | part | part | yes |
|
|
196
|
+
| Aspect-ratio control | yes | part | yes | part | part | yes |
|
|
197
|
+
|
|
198
|
+
If the user's tool is not in this matrix, ask three questions and route from the answers: does it take an input image? does it have a last-frame slot? does it have a negative field or a motion number? That is enough to pick a shape.
|
|
199
|
+
|
|
200
|
+
## Per-tool adapters
|
|
201
|
+
|
|
202
|
+
Each block has the same nine parts: Best for, Surfaces to exploit, Language, Aspect, Priority, Template, Rules, Typical failure and fix, Budget. The last is a motion-budget **ceiling** — a number on the shared scoring model below, read after the duration multiplier and the modifiers have been applied. Duration is already priced there, so never discount for it a second time in a per-tool rule.
|
|
203
|
+
|
|
204
|
+
Three rules run across every block, so they are stated once here instead of twelve times:
|
|
205
|
+
|
|
206
|
+
- Vendor names. Each heading names a capability **class**; the name is shorthand for the class, not a promise that the product is on sale. Products get renamed, folded into a suite, moved behind a different tier, or withdrawn between snapshots. Confirm the product is still offered on the surface the user actually has before you plan a shoot around a block — and if it is gone, the block still routes: find whichever product now exposes that set of surfaces and read the block against it.
|
|
207
|
+
- Negative field. Where the surface exposes one, put every exclusion in it and keep the positive prompt free of the word "no". Where no negative field is exposed, convert every exclusion into a positive fact about the frame — "the platform behind her is empty", not "no extra people". Each block's Rules line says which case that family is usually in. Where the matrix reads `part` or `varies` the answer differs by surface and tier, so look at the panel in front of you; if you cannot confirm a field, write the prompt as though there is none, because that version is safe on both.
|
|
208
|
+
- Aspect. On image-to-video the input still's ratio governs the output whatever the tool's aspect control says, so the aspect decision is really made at Step 8 and the video tool inherits it — see [image-model-adapters.md](image-model-adapters.md). Each block's Aspect line therefore covers the text-to-video path and names ratio *classes* (landscape / portrait / square), never a preset list, because preset lists change.
|
|
209
|
+
|
|
210
|
+
### Runway family
|
|
211
|
+
|
|
212
|
+
- Best for — single-shot image-to-video off a still you already like; motion confined to a region; camera moves set numerically rather than described.
|
|
213
|
+
- Surfaces to exploit — motion brush (paint only what moves), camera-control sliders, reference images for identity, seed.
|
|
214
|
+
- Language — English, in the positive prompt and in any negative field; the training and the documentation are English-first, and craft terms are more stable in English here than anywhere.
|
|
215
|
+
- Aspect — landscape, portrait, and square classes on the text path. On image-to-video the input still's ratio governs, so compose the delivery ratio in the keyframe.
|
|
216
|
+
- Priority — subject motion, environmental motion, camera (only if not set by slider), pace, identity lock.
|
|
217
|
+
- Template — S1, one sentence per moving element, nothing else.
|
|
218
|
+
- Rules — if a camera slider is set, remove every camera word from the text or you get two superimposed moves. The negative field is `varies` here, so unless you can see one on the surface in front of you, convert every exclusion into a positive fact about the frame: "the street behind her stays empty" beats "no extra people". Brush the smallest region that tells the story. Turning a subject around is the most reliable way to get mush (F3 in [failure-modes.md](failure-modes.md)) — a brush does not save a rotation, so restage the turn as two clips or start from a still already part-way through it.
|
|
219
|
+
- Typical failure and fix — the whole frame drifts when you only wanted a hand to move. Fix: brush the hand alone, zero the camera slider, delete all camera language.
|
|
220
|
+
- Budget — ceiling 5. One brushed region with the camera slider at zero is the cheapest configuration on this page; spend the savings on length, not on a second moving element.
|
|
221
|
+
|
|
222
|
+
### Veo family
|
|
223
|
+
|
|
224
|
+
- Best for — picture and sound in one pass; dialogue-carrying shots; prompts written as an actual shot description.
|
|
225
|
+
- Surfaces to exploit — native audio, prompt-level timestamps, negative prompt where the API exposes it, image input, reference "ingredients" where the surface offers them.
|
|
226
|
+
- Language — English throughout, including the audio sentence and any negative field.
|
|
227
|
+
- Aspect — landscape and portrait classes; generate native rather than cropping a landscape result, because this family composes headroom and lead room for the ratio it was told.
|
|
228
|
+
- Priority — shot description (size / angle / lens), subject action, camera, light source, audio, constraints.
|
|
229
|
+
- Template — S2 with an explicit audio sentence; S4 for multi-shot.
|
|
230
|
+
- Rules — write audio as its own sentence naming sources, or expect a score composed under your scene: "Audio: rain on a tin awning, one distant dog, no music." Say "no music" whenever you intend to score in the edit — that is the one licensed negation in a positive prompt on this family, because it lands as an audio instruction rather than as a visual noun. The negative field is `part`: it exists on some API surfaces and not in most consumer ones, so unless you can confirm it, convert every visual exclusion into a positive fact about the frame. One speaker per clip if you need clean lip-sync; see [sound-and-dialogue.md](sound-and-dialogue.md).
|
|
231
|
+
- Typical failure and fix — an unrequested orchestral bed plus a camera move you never asked for. Fix: add "no music, no score" and state stillness positively — "the camera is locked and does not move."
|
|
232
|
+
- Budget — ceiling 6, but a clip carrying spoken dialogue spends 2 of it before you stage anything, so plan the picture against 4.
|
|
233
|
+
|
|
234
|
+
### Kling 可灵 family
|
|
235
|
+
|
|
236
|
+
- Best for — physical action with weight, body mechanics, multi-stage beats, end-frame-controlled transformation.
|
|
237
|
+
- Surfaces to exploit — where the UI exposes them: 首尾帧 (first/last frame), 运镜 (camera presets), 运动笔刷 (motion brush), the negative-prompt field, 对口型 (lip-sync) as a second pass, 延长 (extend).
|
|
238
|
+
- Language — Chinese, the whole prompt including craft terms (固定镜头, 中景, 逆光硬光), and Chinese in the negative field too. This is a Chinese-UI family; an English prompt is a translation the model has to undo first. Keep an English mirror in the shot plan and mark which one was sent.
|
|
239
|
+
- Aspect — landscape, portrait, and square classes on the text path. The 首尾帧 and image-to-video paths inherit the stills you supply, so set 9:16 in the keyframe rather than in the video panel, and never feed a pair whose two frames are different ratios.
|
|
240
|
+
- Priority — action progression in order, body mechanics, camera reaction to the motion, end pose, identity lock.
|
|
241
|
+
- Template — S1 or S3, with the action written as ordered stages.
|
|
242
|
+
- Rules — the negative field is real on this family: put every exclusion there and keep the positive prompt clean. Where a surface or tier does not expose it, convert every exclusion into a positive fact about the frame. Generate silent, then run lip-sync as a separate pass; asking for speech and performance in one generation tends to cost you both. A camera preset plus camera words is a double move — pick one. A body rotation is the most reliable way to get mush (F3 in [failure-modes.md](failure-modes.md)); this family holds weight better than most, but a full turn-around still wants a first/last pair or two clips rather than one prompt.
|
|
243
|
+
- Typical failure and fix — the action completes in the first second and the subject then idles or loops. Fix: write three ordered stages with a named end pose ("…ends with his weight fully on the back foot, head still turned"), and shorten the clip.
|
|
244
|
+
- Budget — ceiling 6. Because the multiplier already prices length, staged action at length busts the ceiling on arithmetic alone; extend a short clean take rather than asking for one long take.
|
|
245
|
+
|
|
246
|
+
### Luma Dream Machine family
|
|
247
|
+
|
|
248
|
+
- Best for — keyframe-driven transitions, true loops, character-reference binding, chained extends.
|
|
249
|
+
- Surfaces to exploit — start and end keyframe slots, character reference binding (an `@`-style tag typed into the prompt, where the UI exposes it), visual style reference, loop toggle, extend.
|
|
250
|
+
- Language — English, prompt and reference tags alike.
|
|
251
|
+
- Aspect — landscape, portrait, and square classes on the text path; keyframe-driven and loop work inherits the frames you supply, and a first/last pair at two different ratios is a guaranteed morph.
|
|
252
|
+
- Priority — character reference, one action, camera tag, environment, endpoint.
|
|
253
|
+
- Template — S3.
|
|
254
|
+
- Rules — the negative field is `varies` here, so assume there is none unless you can see one and write every exclusion as a positive fact about the frame. Keep both keyframes in one lens family and one light state; what comes back reads as an interpolation between the two frames rather than a re-lit scene, so a light change across the pair usually returns as a cross-fade. A loop only closes if the last frame genuinely matches the first, so design a returning pose. Each extend inherits the previous clip's drift — re-anchor with a fresh keyframe every two or three extends.
|
|
255
|
+
- Typical failure and fix — the face morphs across the interpolation. Fix: shrink the gap between keyframes (promote the midpoint to its own clip) and keep head size within roughly 20% between the two frames.
|
|
256
|
+
- Budget — ceiling 5, and each extend is scored from scratch against the same 5, so never stack a camera move onto an extend.
|
|
257
|
+
|
|
258
|
+
### 即梦 Jimeng / Dreamina / Seedance family
|
|
259
|
+
|
|
260
|
+
- Best for — Chinese-language ideation, first/last-frame work, vertical short-form, fast iteration, period-Chinese subject matter.
|
|
261
|
+
- Surfaces to exploit, where the UI exposes them — 首尾帧 (first/last frame), 运动幅度 (motion amplitude), 运镜 (camera presets), 种子 (seed), reference images and 角色参考 (character reference), 负向提示 (negative prompt) on some surfaces, multi-shot on the Seedance side. These surfaces are renamed and reshuffled often; read the panel in front of you rather than this list.
|
|
262
|
+
- Language — Chinese, the whole prompt including craft terms (固定镜头, 机位齐腰高度, 逆光), and Chinese in the negative field where one is exposed. Culturally specific nouns are the main reason: 旗袍, 弄堂, 蓑衣 resolve here and their English paraphrases do not.
|
|
263
|
+
- Aspect — vertical is first-class on this family: landscape, portrait, and square classes on the text path. The 首尾帧 and image-to-video paths inherit the stills, so a native 9:16 short is composed at Step 8, not chosen here.
|
|
264
|
+
- Priority — 镜头 (camera), 主体起始状态 (subject start state), one action, environmental detail, end state, consistency lock.
|
|
265
|
+
- Templates — both language variants below.
|
|
266
|
+
- Rules — 负向提示 is `part` on this family: it appears on some surfaces and tiers and not on others, and the whole negative strategy inverts on that one fact, so check the panel before you write. **Where the field is exposed, put every exclusion in it as a plain comma-separated list and keep the positive prompt free of 不 and 没有** — the one exception is a withheld action that *is* the beat, as 不敲门 (she does not knock) is in the example below. **Where no negative field is exposed, convert every exclusion into a positive fact about the frame**: 门始终关着 (the door stays closed) rather than 不要开门, 走廊里只有她一个人 (she is the only person in the corridor) rather than 不要出现别人. A negation inside the positive prompt is unreliable here and often summons the noun it names. Concise Chinese generally outperforms verbose English on the Chinese UI; for the working length, see the two windows below. On 运动幅度, the number of steps and the default both change between builds, so do not plan against a specific value: whatever scale your build exposes, set it to the lowest setting that still produces the action, and treat the default as too high for any shot where a face fills more than a third of the frame. Same for length — pick the shortest offered option that fits the action rather than assuming 3s is on the menu. Once a take is close, lock the seed and change exactly one clause per retry.
|
|
267
|
+
- Typical failure and fix — the face shifts subtly at high motion amplitude. Fix: lower the amplitude to the lowest setting that still moves, pick the shortest duration option that fits the action, restate 保持同一张脸 (keep the same face).
|
|
268
|
+
- Budget — ceiling 5 with a legible face in frame, 8 without one.
|
|
269
|
+
|
|
270
|
+
Prompt length, as two numbers rather than one. Count every character including punctuation — that is what a character counter in the panel shows you — and treat both as budgets for legibility, not as documented input limits:
|
|
271
|
+
|
|
272
|
+
- **80–130 characters** when the surface exposes 负向提示 and the exclusions live there. The prompt then carries slots 1-6 of S1 only.
|
|
273
|
+
- **130–180 characters** when exclusions must be written inline as slot 7. The extra 50 characters are the exclusion clause and nothing else; if you are over 180, you are re-describing something the input still already proves.
|
|
274
|
+
|
|
275
|
+
The 中文变体 in [../assets/video-prompt-template.md](../assets/video-prompt-template.md) is 157 characters and carries its exclusions inline, which puts it in the second band; the example below is 91 and carries none, which puts it in the first.
|
|
276
|
+
|
|
277
|
+
Filled on the door scene, 中文, 91 characters counting punctuation (79 of them Han) — inside the first window above, with exclusions assumed to be living in the negative field (score 3):
|
|
278
|
+
|
|
279
|
+
```text
|
|
280
|
+
固定镜头。她正面对着关着的房门,双手抱着叠好的外套;随后缓慢放低到腰间,
|
|
281
|
+
头向左转开,不敲门。头顶灯管闪了一下。结尾停在下巴转向画左、外套仍在手中。
|
|
282
|
+
保持同一张脸、同一套衣服、同一光线。
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
The same prompt in English, for the shot plan and for English-first surfaces:
|
|
286
|
+
|
|
287
|
+
```text
|
|
288
|
+
The camera is locked. She stands square to the closed door, the folded coat held in both hands,
|
|
289
|
+
then lowers it slowly to waist height and turns her head left, away from the door, without
|
|
290
|
+
knocking. The overhead strip light flickers once. End with her chin turned off-frame left and the
|
|
291
|
+
coat still in her hands. Same face, same clothes, same light.
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### 万相 Wanxiang family
|
|
295
|
+
|
|
296
|
+
- Best for — text-to-video with aesthetic controls, structured multi-shot descriptions, Chinese-language subject matter, and a working negative field.
|
|
297
|
+
- Surfaces to exploit, where the surface you are on exposes them — t2v and i2v, 首尾帧, negative prompt, seed, style/aesthetic controls, overall-plus-numbered-shots multi-shot input.
|
|
298
|
+
- Language — Chinese, the whole prompt including craft terms, and Chinese in the negative field. The multi-shot 整体描述 block is Chinese too; mixing an English identity lock into a Chinese overall block is the fastest way to have it ignored.
|
|
299
|
+
- Aspect — landscape and portrait classes on the text path; image-to-video and 首尾帧 inherit the stills.
|
|
300
|
+
- Priority — text-to-video: subject, scene, motion, aesthetic control, style. Image-to-video: motion and camera only.
|
|
301
|
+
- Templates — S2 for t2v; S4 for multi-shot.
|
|
302
|
+
- Rules — the negative field is real on this family: every exclusion goes there and the positive prompt stays clean. For image-to-video, strip every adjective describing something the image already shows; contradicting adjectives make it re-render the subject. In multi-shot, identity and palette locks belong in the overall block only, and so does the negative list — a per-segment exclusion is read as a segment topic.
|
|
303
|
+
- Typical failure and fix — shots 2 and 3 look like a different film. Fix: move identity, palette, and light into the overall block; reduce each shot line to action plus camera.
|
|
304
|
+
- Budget — ceiling 6 for a single shot. In a multi-shot prompt score each segment on its own against a ceiling of 3, because every segment is drawing on one shared generation pass.
|
|
305
|
+
|
|
306
|
+
Filled on the door scene. Note that every identity and lighting fact sits in 整体描述 and none of it repeats in the numbered shots:
|
|
307
|
+
|
|
308
|
+
```text
|
|
309
|
+
整体描述:夜晚,狭窄的公寓走廊,棕色地毯,头顶一支日光灯管。三十多岁女性,深色头发挽起,
|
|
310
|
+
炭灰色羊毛大衣,手里抱着一件叠好的灰外套。全片保持同一张脸、同一套衣服、同一走廊光线。只用硬切。
|
|
311
|
+
镜头 1 [0-3s]:中景 平视 她在门前停下,把叠好的外套微微抬起 固定镜头。
|
|
312
|
+
镜头 2 [3-6s]:特写 她空着的手抬向门板,又停住 固定镜头。
|
|
313
|
+
镜头 3 [6-10s]:远景 她转身背对镜头走开 缓慢推近。
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
English mirror for the shot plan (send the 中文 version to the tool):
|
|
317
|
+
|
|
318
|
+
```text
|
|
319
|
+
Overall: night, narrow apartment corridor, brown carpet, one overhead fluorescent strip. Woman in
|
|
320
|
+
her thirties, dark hair pinned up, charcoal wool coat, carrying a folded grey coat. Same face, same
|
|
321
|
+
clothes, same corridor light throughout. Hard cuts only.
|
|
322
|
+
Shot 1 [0-3s]: medium, eye level, she stops at the door and lifts the folded coat slightly, camera locked.
|
|
323
|
+
Shot 2 [3-6s]: close-up, her free hand rises toward the door and stops, camera locked.
|
|
324
|
+
Shot 3 [6-10s]: wide, she turns and walks away from camera, slow push in.
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Sora-class
|
|
328
|
+
|
|
329
|
+
- Best for — text-to-video with native sound and dense environmental detail, and concept exploration where you can tolerate the model directing itself.
|
|
330
|
+
- Surfaces to exploit — the prompt, image or cameo reference where exposed, aspect ratio, remix. Very few numeric knobs.
|
|
331
|
+
- Language — English, prompt and audio sentence alike.
|
|
332
|
+
- Aspect — landscape, portrait, and square classes, usually chosen before generation rather than exposed as a field you can revise; portrait is well supported, so generate native for vertical rather than cropping.
|
|
333
|
+
- Priority — single-shot instruction, shot description, action, camera, sound, what stays fixed.
|
|
334
|
+
- Template — S2, with the single-shot instruction in the first sentence.
|
|
335
|
+
- Rules — the negative field is `varies` and is absent on most consumer surfaces, so write every exclusion as a positive fact about the frame; this family in particular reads a bare negation as a topic and renders it. The behaviour to plan around, as of the snapshot date at the top of this file, is a tendency to cut to new angles unbidden; a release can retire it, so before you spend the single-shot instruction across a whole shot list, generate one clip without it and see whether the model still cuts. While it does, if you need one continuous take, say so first: "One continuous shot. No cuts, no angle changes." Write the soundscape explicitly or it invents dialogue and music. With little or no seed control, reproducibility comes from prompt precision, not from re-rolling.
|
|
336
|
+
- Typical failure and fix — your one shot comes back as a three-shot mini-scene. Fix: single-shot instruction up front, exactly one action, and a duration sized to that one action.
|
|
337
|
+
- Budget — ceiling 5 if you want single-shot control. Whatever you leave unspent, the model spends on cuts you did not ask for.
|
|
338
|
+
|
|
339
|
+
### Hailuo / MiniMax family
|
|
340
|
+
|
|
341
|
+
- Best for — subject consistency from a single portrait; action that resolves in one beat; bracketed camera instructions where the director-style variant supports them.
|
|
342
|
+
- Surfaces to exploit — subject reference from one clean portrait, bracketed camera commands where available, image-to-video.
|
|
343
|
+
- Language — match the surface you are on: the domestic UI wants Chinese including craft terms, the international one wants English. Do not mix — a Chinese subject description inside an English prompt on the international surface binds weakly. Bracketed camera commands stay in whichever language the documentation for that surface writes them in.
|
|
344
|
+
- Aspect — often fixed by model and tier rather than chosen, so treat it as `part`: on image-to-video the input still decides, which is the reliable lever, and for a native vertical short that is the one you use.
|
|
345
|
+
- Priority — subject reference, camera bracket, action, environment, end state.
|
|
346
|
+
- Template — bracketed camera commands inline, at the sentence they govern.
|
|
347
|
+
- Rules — the negative field is `part`: unless you can see one on your surface, write every exclusion as a positive fact about the frame. Where bracketed commands are supported they tend to land more reliably than prose camera description; use at most two per clip. The subject reference wants a frontal portrait, even light, no occlusion, no extreme expression.
|
|
348
|
+
- Typical failure and fix — the face over-performs, cycling through exaggerated expressions. Fix: name an expression endpoint instead of an emotion — "ends on a small held half-smile", not "she looks happy".
|
|
349
|
+
- Budget — ceiling 5; two bracketed camera commands already spend 1-2 of it.
|
|
350
|
+
|
|
351
|
+
```text
|
|
352
|
+
[Push in] She stands at the counter, hands flat on the wood, and slowly raises her eyes to the door.
|
|
353
|
+
[Static shot] She holds the look. Steam drifts from the cup beside her. Ends with her jaw set.
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### Pika family
|
|
357
|
+
|
|
358
|
+
- Best for — very short clips built on a single action, parameterized control, effect-driven shots, cheap iteration.
|
|
359
|
+
- Surfaces to exploit — parameter flags for motion strength, negative prompt, seed, aspect, camera; region modification; extend.
|
|
360
|
+
- Language — English, prose and flags alike.
|
|
361
|
+
- Aspect — an explicit aspect flag is exposed on the text path; set it rather than cropping. Image-to-video inherits the still.
|
|
362
|
+
- Priority — subject and action, camera parameter, motion strength, negatives.
|
|
363
|
+
- Template — a short prose sentence followed by flags; keep prose under about 25 words.
|
|
364
|
+
- Rules — the negative flag is real here: every exclusion goes in it and the 25-word prose sentence carries none. Parameters beat adjectives every time: set motion numerically rather than writing "subtle motion". Use the lowest motion setting for anything with a face. Extends compound artifacts, so extend at most once from a clean take.
|
|
365
|
+
- Typical failure and fix — the clip is three seconds and the action never completes. Fix: choose an action that genuinely fits three seconds — a look, a turn, a reach — and put the follow-through in the extend.
|
|
366
|
+
- Budget — ceiling 4.
|
|
367
|
+
|
|
368
|
+
### Vidu family
|
|
369
|
+
|
|
370
|
+
- Best for — binding several references at once (character, prop, and location from separate images) into one shot.
|
|
371
|
+
- Surfaces to exploit — multi-image reference binding, start and end frames, t2v and i2v.
|
|
372
|
+
- Language — the UI ships in both; write in the language of the surface you are on, and keep the reference-role labels in that same language so the binding phrase and the reference list match.
|
|
373
|
+
- Aspect — landscape and portrait classes on the text path; reference-bound and first/last work inherits the frames you supply, so bring every bound reference in at the delivery ratio.
|
|
374
|
+
- Priority — reference roles, the interaction between them, camera, end state.
|
|
375
|
+
- Template — S1 or S3 with each reference named by role.
|
|
376
|
+
- Rules — the negative field is `part`: where it is not exposed, convert every exclusion into a positive fact about the frame. Label references explicitly in the prompt ("the woman from reference 1 lifts the lantern from reference 2"). Background references tend to bind more weakly than subject references, so describe the location in words as well. Give bound characters clearly different hair, silhouette, and costume value.
|
|
377
|
+
- Typical failure and fix — two bound characters converge on one face. Fix: increase visual distinctness between the references and separate the characters in depth in the described blocking; see [blocking-and-staging.md](blocking-and-staging.md).
|
|
378
|
+
- Budget — ceiling 5. The global `+1 per bound reference beyond the first` modifier already prices the binding, so do not also lower the ceiling; three bound references leave almost nothing for camera.
|
|
379
|
+
|
|
380
|
+
### Midjourney Video
|
|
381
|
+
|
|
382
|
+
- Best for — animating a still whose look you want preserved above everything else.
|
|
383
|
+
- Surfaces to exploit — image-first animation, a low/high motion setting rather than a numeric one, extend.
|
|
384
|
+
- Language — English.
|
|
385
|
+
- Aspect — inherited from the still, and only from the still: this family has no meaningful aspect decision of its own, so the delivery ratio is composed at Step 8 and the animation pass follows it.
|
|
386
|
+
- Priority — what moves, how much, nothing else.
|
|
387
|
+
- Template — S1 with slots 3 and 4 only: one subject motion, one environmental motion. Leave the camera slot empty rather than filling it with words the tool will not honour.
|
|
388
|
+
- Rules — the negative field is `part` on the animation pass and should be assumed inert: put the exclusion in the still instead, where the image model does have one, and write the video prompt as positive facts only. Treat it as a look-preserver, not a director. Low motion for any shot containing a face; high motion only for environment, weather, or abstract texture. Prose camera direction tends to land weakly here, so do not plan camera-led shots on this surface; if the panel has grown a camera control since the snapshot date, that is the first claim to retest — one clip — before you route a camera-led shot back to it. Assume you are budgeting a full sound pass in the edit, and check the current documentation before promising anyone a native audio track.
|
|
389
|
+
- Typical failure and fix — you ask for a dolly-in and get a generic slow drift. Fix: bake the camera position into the still (generate the framing you want) and use video only for micro-motion; or move that shot to a tool with camera control.
|
|
390
|
+
- Budget — ceiling 3.
|
|
391
|
+
|
|
392
|
+
### Open-source / ComfyUI class (Wan, HunyuanVideo, LTX)
|
|
393
|
+
|
|
394
|
+
- Best for — repeatability, exact seeds, LoRA-locked identity, first-last-frame nodes, and any control you are willing to build yourself.
|
|
395
|
+
- Surfaces to exploit — seed, CFG, sampler and steps, the flow-shift control where the model exposes one, LoRA strength, first-last-frame nodes, pose/depth/edge conditioning, masks, frame count and fps.
|
|
396
|
+
- Language — decided by the text encoder the graph loads, not by you: English for most, while Chinese-native bases (Wan, Hunyuan) take Chinese directly and lose less on culturally specific nouns. Check which encoder is in the graph before assuming, and never switch language mid-comparison.
|
|
397
|
+
- Aspect — you set width and height as numbers, so any ratio you want; stay near the base model's training resolutions, because composition degrades before motion does when you stray far from them.
|
|
398
|
+
- Priority — the conditioning graph first, the prompt second. Prompt wording matters less here than anywhere else on this page.
|
|
399
|
+
- Template — S1 or S3 text, plus a recorded graph.
|
|
400
|
+
- Rules — negative conditioning is real and separately weighted here, so every exclusion goes in the negative node and the positive prompt carries none. Fix the seed and change one node per iteration; log the graph hash alongside the shot ID in the [continuity bible](continuity-bible.md). Duration is `frame_count / fps` — decide it as a number, not a wish. Pose or depth conditioning buys back motion budget that prompt words cannot.
|
|
401
|
+
- Typical failure and fix — frame 1 is excellent and quality degrades steadily past the midpoint. Fix: fewer frames per pass and chain them, or lower the motion conditioning strength.
|
|
402
|
+
- Budget — ceiling 6, raised to roughly 8 when motion is driven by pose or depth conditioning instead of by words: the conditioning supplies geometry the model would otherwise have to invent, which is what the budget was paying for.
|
|
403
|
+
|
|
404
|
+
## Cross-tool behaviours to plan around
|
|
405
|
+
|
|
406
|
+
These are model-class behaviours, not one vendor's bug. They appear on every surface in the matrices above, so they are not repeated in the per-tool blocks — check them whenever the shot matches, whatever tool the user named.
|
|
407
|
+
|
|
408
|
+
### Night exteriors get beautified
|
|
409
|
+
|
|
410
|
+
Ask for a night exterior and most models return a nicer night than the one you asked for: shadows lifted until the blacks read grey, every source pulled toward one white balance, wet reflective pavement nobody wrote, fog or haze, and volumetric beams off every practical. It is the commonest reason a night plan comes back looking like a car commercial. It happens in the still and again in the clip, so suppress it in both the keyframe prompt and the video prompt or the video model will simply re-beautify a keyframe you approved.
|
|
411
|
+
|
|
412
|
+
Counter it positively, in the prompt itself:
|
|
413
|
+
|
|
414
|
+
- Name every source separately with its own colour and its own side — "sodium vapour from camera-left, cold mercury from camera-right, mixed colour temperatures, never balanced to each other". Unified grade is what the model defaults to when you name one light or none.
|
|
415
|
+
- State the ground: "dry pavement", "matte asphalt, no standing water", if the street is dry. Wet street is the single most-added element.
|
|
416
|
+
- Ask for noise: "deep black shadows with visible grain in them". Grain is what stops a model reading crushed blacks as an error to fix and lifting them.
|
|
417
|
+
- Give the frame its own darkness budget — say which part of the frame is allowed to be unreadable, or the model will make all of it readable.
|
|
418
|
+
|
|
419
|
+
Where a negative field is exposed, six targeted items suppress most of it: `fog`, `volumetric light beams`, `lens flare`, `wet reflective pavement`, `unified colour grade`, `warm cozy lighting`. Take only the ones this frame could actually produce — a bloated field dilutes each term ([prompt-lexicon.md](prompt-lexicon.md) owns the selection rule). Where no negative field is exposed, do not translate that list into "no fog, no flare" in the positive prompt; write the positive facts above instead, because naming the noun is how you get it.
|
|
420
|
+
|
|
421
|
+
Night-register style lenses carry their own additions to this set — see the `negative_prompt_adds` block in [19_michael_mann.md](director_styles/19_michael_mann.md), which extends this section rather than replacing it.
|
|
422
|
+
|
|
423
|
+
## The motion budget
|
|
424
|
+
|
|
425
|
+
Every clip has one finite budget of motion. Subject motion, camera motion, environmental motion, and duration all draw on the same pool. Exceed it and the model spends coherence instead: faces warp, hands multiply, costumes change, geometry slides. It is the single most useful predictor of whether a prompt will fail.
|
|
426
|
+
|
|
427
|
+
Score a clip before you generate it.
|
|
428
|
+
|
|
429
|
+
| Component | 0 | 1 | 2 | 3 |
|
|
430
|
+
|---|---|---|---|---|
|
|
431
|
+
| Subject motion | none | breath, blink, head turn | walk in frame, reach, sit/stand | run, fall, fight, full turn |
|
|
432
|
+
| Camera motion | locked | slow single axis (push, pan ≤15°) | dolly with reframe, handheld follow | orbit, crane, whip, multi-axis |
|
|
433
|
+
| Environment motion | still | one element (rain, hair, curtain) | two elements or a small crowd | fire + smoke + crowd + water |
|
|
434
|
+
|
|
435
|
+
Apply it in this order, and only this order, or two scores stop being comparable:
|
|
436
|
+
|
|
437
|
+
1. Sum the three component rows, 0-3 each. Charge every motion once — a scattering crowd is the environment row, not also three extra people.
|
|
438
|
+
2. Multiply by duration: `×1.0` for ≤5s, `×1.3` for 6-10s, `×1.6` for >10s.
|
|
439
|
+
3. Then add the modifiers: `+1` per additional person with an independent action, `+1` if a face occupies more than a third of the frame (charged once, however many faces), `+1` if hands perform fine manipulation, `+1` per bound reference beyond the first.
|
|
440
|
+
|
|
441
|
+
Ceilings on the final number: **4** for close character work, **6** for medium and wide shots with people, **8** for environment, product, or anything with no legible face. Where an adapter block above states a per-tool ceiling, that one wins.
|
|
442
|
+
|
|
443
|
+
Reconciling with the style lenses: the `motion_budget` field in a director style module's `风格参数` block is the **camera row of this table only**, not the whole score — `none` = 0, `low` = 1, `medium` = 2, `high` = 3. A high-motion lens has therefore already spent 3 on camera before you stage anything, and must buy it back from the subject or environment rows.
|
|
444
|
+
|
|
445
|
+
### Worked example — over budget and rebalanced
|
|
446
|
+
|
|
447
|
+
Over budget:
|
|
448
|
+
|
|
449
|
+
```text
|
|
450
|
+
A woman in a red qipao runs down a rainy alley as paper lanterns swing overhead and a crowd
|
|
451
|
+
scatters behind her; the camera orbits her and cranes up to reveal the whole street. 10 seconds.
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Score: subject 3 (run) + camera 3 (orbit plus crane) + environment 3 (rain, swinging lanterns, scattering crowd) = 9; ×1.3 for 10s = 11.7; `+1` because the orbit holds her face large in frame through the first half = **12.7** against a ceiling of 6. The scattering crowd is already paid for in the environment row and is not charged a second time as extra people. It will warp, and the fix is not a better adjective, it is two clips.
|
|
455
|
+
|
|
456
|
+
Rebalanced as clip A — 5s, subject 2 + camera 0 + environment 2 = **4** against a ceiling of 6, with no face modifier at this size:
|
|
457
|
+
|
|
458
|
+
```text
|
|
459
|
+
Medium shot, the camera is locked. She stops at the mouth of the alley, chest heaving, and turns
|
|
460
|
+
her head left to look back the way she came. Rain falls steadily; one paper lantern swings above
|
|
461
|
+
her. End with her eyes fixed off-frame left, breath still ragged. Same face, same red qipao,
|
|
462
|
+
same wet alley, same lantern light.
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Rebalanced as clip B — 5s, subject 3 + camera 1 + environment 1 = **5** against a ceiling of 8, because she runs away from camera and no face stays legible:
|
|
466
|
+
|
|
467
|
+
```text
|
|
468
|
+
Wide shot, the camera pushes in slowly along one axis. She runs away from camera down the alley
|
|
469
|
+
into the depth of the frame. Rain streaks the foreground; the alley behind her is already empty.
|
|
470
|
+
End with her small at the far end, still moving. Same red qipao, same lantern light.
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
Note that the camera in B is a slow single-axis move, worth 1, not the crane in the original, which the table prices at 3 — swapping the move is most of the saving. Face load now lives in A where the camera is locked, and travel lives in B where no face is legible. Both come in under their ceilings, and cutting A to B buys a size change you would not have had from one clip.
|
|
474
|
+
|
|
475
|
+
### Worked example — a two-hander
|
|
476
|
+
|
|
477
|
+
Over budget: two men argue across a table, both gesturing, handheld camera whipping between them, candle flickering, ten seconds of dialogue. Score: subject 2 + camera 3 (whip) + environment 1 (candle) = 6; ×1.3 for 10s = 7.8; `+1` for the second man acting independently and `+1` for a face over a third of frame = **9.8** against a ceiling of 4.
|
|
478
|
+
|
|
479
|
+
Rebalanced: shoot singles. Clip A is a locked medium of the first man speaking, candle flickering, 5s: subject 2 + camera 0 + environment 1 = 3. Clip B is a locked medium of the second man listening and then answering, 4s: the same 3. Both sit well inside the ceiling of 6, and you have gained real coverage instead of one unusable whip-pan. Shoot the two singles from opposite sides of the axis so the eyelines oppose — two singles from the same side gives you two men looking the same way ([cinematic-language.md](cinematic-language.md) owns the geometry). Cut logic lives in [editing-and-assembly.md](editing-and-assembly.md).
|
|
480
|
+
|
|
481
|
+
## Duration strategy
|
|
482
|
+
|
|
483
|
+
- Why short beats long for character work. Identity error accumulates with frame index, so the earliest seconds are almost always the cleanest frames in a generation. For a face-carrying shot, generate 3-5s. For hands doing something specific, 3-4s. Generating 10s to use 4 costs more, not less, once you count retries; see [production-workflow.md](production-workflow.md).
|
|
484
|
+
- Where longer is safe. No legible human face; one dominant environmental motion; locked or very slow camera; product, landscape, weather, abstract texture, or a slow reveal with nothing structurally complex to warp. These tolerate 8-12s comfortably.
|
|
485
|
+
- Splitting one action across two clips. Find the **pivot** — the instant of commitment, the moment the outcome becomes inevitable. Clip A ends *at* the pivot with the motion still in progress; clip B starts *just after* it, already in motion. Change the angle by at least 30°, or — if the camera stays on the same axis — the shot size by at least two steps, so the cut reads as coverage rather than as a glitch (the 30-degree rule, owned by [cinematic-language.md](cinematic-language.md); one size step on an unchanged axis reads as a stutter, not a cut). Where B is the same angle at a different size, build its first frame by cropping and re-rendering A's last frame, so light and costume carry across for free. Where B is a genuinely new angle that crop is not available — generate a fresh still and carry the identity, costume, and light values over from the [continuity bible](continuity-bible.md).
|
|
486
|
+
- Worked split. Intended action: "he opens the door and steps into the hallway." Pivot = the latch releasing. Clip A, insert on his hand and forearm, locked, 3s: the hand closes on the handle, turns it, and the door begins to swing, ending with the door edge just clear of the jamb — subject 2 + camera 0 + environment 0, `+1` for fine hand work, so 3. Clip B, wide from inside the hallway, locked, 4s: the door swings toward camera and he steps through into frame, ending stopped and facing down the hall — subject 2 + camera 0 + environment 1 for the door, so 3. Cut on the door's motion. Two easy clips replace one hard one. Note that A and B sit on opposite sides of the door, which in a wider A would be a line crossing; an insert this tight carries no screen direction, so the reverse reads clean.
|
|
487
|
+
- Extend versus regenerate. Extend when the last frame of the take is clean and the continuation is low-motion. Regenerate from a new keyframe when the last frame already shows drift — extends inherit and amplify every existing artifact.
|
|
488
|
+
|
|
489
|
+
## Language choice
|
|
490
|
+
|
|
491
|
+
- Use Chinese when the tool's primary UI and documentation are Chinese (即梦 / Dreamina, 可灵, 万相, and most domestic short-form tools), and especially when the subject matter is culturally specific. Terms like 旗袍, 弄堂, 灯笼, 蓑衣, 皮影 resolve far more reliably in Chinese than through an English paraphrase, and Chinese is more compact per unit of meaning, which matters under a prompt-length cap.
|
|
492
|
+
- Use English when the tool's training and documentation are English-first (Runway, Veo, Luma, Sora-class, Pika, Midjourney), and for technical camera and lighting terms *inside an otherwise English or mixed-language prompt* — focal lengths, `dolly in`, `rack focus`, `key light`, `f/2` are more stable in English there, because caption corpora carry them in English.
|
|
493
|
+
- Mixed-language prompts, and where they are actually right. On an English-first tool with culturally specific subject matter, write subject, costume, set, and the untranslatable nouns in Chinese and keep camera and lighting terms in English inside the same prompt. On a Chinese-UI tool — 即梦 / Dreamina, 可灵, 万相 — do not do this: the whole prompt is Chinese, craft terms included (固定镜头, 逆光硬光, 中景, 机位齐腰高度), which is what every 中文 example on this page and in [../assets/video-prompt-template.md](../assets/video-prompt-template.md) shows, and what [prompt-lexicon.md](prompt-lexicon.md) means by writing native Chinese rather than translating word by word. Each per-tool block above states which case that family is in.
|
|
494
|
+
- Never write the whole prompt twice in one field — the duplicate competes with the original and dilutes every clause. Keep a mirror in the other language in your shot plan for team review, and mark which one was actually sent.
|
|
495
|
+
- Retry discipline. Once a take is close, do not switch prompt languages between retries. A language switch changes every token and invalidates the comparison. Change one clause, in the same language, and keep the seed.
|
|
496
|
+
|
|
497
|
+
## Negative constraints
|
|
498
|
+
|
|
499
|
+
Only tool-specific behavior lives here. The full negative-prompt library, EN/中文 pairs, and banned-word list are owned by [prompt-lexicon.md](prompt-lexicon.md) — do not duplicate them into a prompt from memory, read them from there.
|
|
500
|
+
|
|
501
|
+
- Tools that expose a real negative field (at the time of writing: Kling, 万相, Pika, open-source graphs, and Veo/Vidu on some surfaces — confirm on the surface in front of you): put every exclusion in the field, keep the positive prompt free of the word "no". Four to six targeted items beat a wall of thirty; a bloated negative field dilutes each term and can suppress things you wanted.
|
|
502
|
+
- Tools with no negative field, or where you cannot confirm one is exposed on the surface you are using (Runway, Luma, most consumer surfaces, Sora-class depending on the surface): convert each exclusion into a positive fact about the frame. "No extra people" becomes "the platform behind her is empty". "No text" becomes "the shop signage is blank cloth". Negation words inside a positive prompt are unreliable and sometimes summon the thing.
|
|
503
|
+
- Never negate what the image already prevents. On image-to-video, exclusions about costume, era, or set are wasted tokens — the still already holds them. Reserve exclusions for temporal failures: identity change, extra limbs, camera behavior, scene cuts.
|
|
504
|
+
|
|
505
|
+
## Decision table — user statement to prompt shape
|
|
506
|
+
|
|
507
|
+
| The user says | Route to | Slots to fill |
|
|
508
|
+
|---|---|---|
|
|
509
|
+
| "I have a keyframe I like, make it move" | S1 | camera, start state, one action, one environment element, end state, identity lock |
|
|
510
|
+
| "No images yet, generate from text" | S2 | format, subject, place/time, action, size/angle/lens, one move, light source, audio, constraints |
|
|
511
|
+
| "I have a start and end image" | S3 | bridge line, single transformation, camera path, easing, what must not change, exclusions if there is no negative field |
|
|
512
|
+
| Names a tool and a shot, says nothing about assets | S1 by default | assume image-to-video for any shot with a person, say so in one line, and append a two-line S2 variant; assume S2 only for plates, inserts, and shots with no legible face |
|
|
513
|
+
| "It supports timestamps / I want a sequence in one go" | S4 | global block with identity locks, then action + camera per segment |
|
|
514
|
+
| "My tool has a camera slider" | S1, camera slot empty | set the move in the UI, delete all camera words from text |
|
|
515
|
+
| "My tool has a motion brush" | S1, restricted | brush only the moving region, zero the global motion control |
|
|
516
|
+
| "My tool has a negative field" | any shape | move all exclusions out of the positive prompt into the field |
|
|
517
|
+
| "My tool has no negative field" | any shape | rewrite each exclusion as a positive statement about the frame |
|
|
518
|
+
| "It generates audio" | S2 or S4 | add an audio sentence naming sources; say "no music" if scoring later |
|
|
519
|
+
| "I need the character to look the same across shots" | S1 or S3 | bind a reference, lock the seed, log both in the continuity bible |
|
|
520
|
+
| "It keeps cutting to other angles" | S2 | put "one continuous shot, no cuts" first; drop to one action |
|
|
521
|
+
| "The clip is too short for my action" | S1 twice | split at the pivot; between clips change the angle by ≥30°, or by two size steps if the axis is unchanged |
|
|
522
|
+
| "I already have the clip, the look is wrong" | no shape change | video-to-video at the adapter step: hold the take, replace the look, then check identity on first, middle, and last frames |
|
|
523
|
+
| "It came out warped / melty" | rescore | run the motion budget; cut the highest-scoring component first |
|
|
524
|
+
| "It looks like a slideshow" | S1 | the still lacks implied motion — regenerate the keyframe mid-action, see [image-model-adapters.md](image-model-adapters.md) |
|
|
525
|
+
| "I don't know what my tool supports" | ask 3 questions | input image? last-frame slot? negative field or motion number? |
|
|
526
|
+
|
|
527
|
+
For symptom-driven repair beyond the table above, use [failure-modes.md](failure-modes.md). For the finished prompt-pack format, use [../assets/video-prompt-template.md](../assets/video-prompt-template.md).
|