SuperAPI AI Directory

short-drama-storyboard

Design & creation

View repository

Updated 10-16 09:45

About this skill

Short-Drama Storyboards and Frozen Keyframes

Turn the script and visual facts into shots with shot responsibilities, spatial continuity, and a freezable starting point 剧集/<EP>/分镜.md. Use a level-two heading for each shot ## SHOT-..., and under the same shot use ### 冻结关键帧提示词 to write the starting-frame body; add ### 收尾关键帧提示词 when needed to write the ending body.

Quick Start

用 $short-drama-storyboard 完成 EP001 的正式分镜和每镜冻结关键帧

Entry

The current script plus the necessary visual facts is enough to enter directly. Asset image prompts and storyboards are sibling branches and do not wait on each other. Only when a key scene truly has multiple viable directing options should options be compared in context coverage; ordinary scenes are designed directly.

Creator-readable explanations follow the project language; the copyable body of a frozen keyframe follows short-drama.json#/format/prompt_language. When there is no short-drama.json , the body uses enby default. Before assigning shot durations, read short-drama.json#/creator_authority/production_profile/choices/native_duration_seconds. If a target model has been declared but has no native duration, fill in this one choice first; if no target model has been declared, design according to narrative rhythm as usual and do not guess vendor limitations. When also reading short-drama.json#/creator_authority/rhythm_profile:status as accepted , shot length follows Where shot length comes from derived from sound events and target_avg_shot_seconds , the proportion of close-up-type shots in the full series is no less than close_shot_share_min; when the profile is missing or has not been accepted, do not check these values.

Before the frozen keyframe is finished, who will appear in this frame has not yet been decided. So all three bases are backfilled after the keyframe, reading the finished image, not the shot intention.

The user not manually naming reference images does not mean choosing text-to-video. After the frozen keyframe, first judge consistency needs based on the visible characters, location, key props, and starting composition of this shot, then check the real images already in the project. Only images that are currently readable and whose content and purpose can be verified may be automatically bound; when a filename looks like a certain character but the content has not been verified, it is still treated as not ready.

When there is not a single one in the project, the creator has three paths. State all three clearly at once and then let him choose; do not give only "generate reference images first" and "switch to text-to-video": put the images already at hand into the project and bind them as REF-...; generate images in your own tool and for this round first use PLAN-... to write the image-hanging plan; or explicitly switch to text-to-video. Generating images with this suite's production skill is only one way to do the first path, and requires an adapter and credentials outside the project; it is not the only entry point.

Before starting the storyboard, read the current content of 剧集/<EP>/剧本.md . When the creator says "the script has been confirmed for adoption," that refers to that file, not an earlier draft in the conversation; when the two are inconsistent, the file prevails, and state the difference.

Workflow

  1. Read the accepted target model's native duration range, then confirm which shots carry each scene's action, dialogue, sound, on-screen text, and turn.

  2. Determine when the audience knows what, who they align with, how space reveals it, and which visible action the turn lands on. When the script or Brief limits first appearance, release, or prohibition using relative time such as “first half / second half / first third / last N seconds,” first convert the accepted set length into explicit time boundaries before storyboarding; for example, a “first appearance in the second half” for a 60-second work must not be earlier than 30 seconds.

  3. For each shot, write clearly its sole responsibility, source, duration, shot size/camera position, camera movement, starting point, sole main action, ending point, and sound; use 起点 → 唯一动作 → 终点 to directly explain how the characters, both hands, and held objects complete the state transition of this shot. Leave the three bases for step 6. Choose “camera movement” shot by shot according to the purpose of this shot, write the behavior and reason, and write the reason even when it is fixed; see Choose camera movement shot by shot. When there is dialogue, VO, or OS, first estimate the complete vocal duration based on the original text and the character’s way of speaking, then arrange actions, pauses, and ending reactions that cannot overlap; write the basis for the estimate briefly in this shot’s “sound.” For the specific method, see Dialogue timing estimation. For dialogue scenes, first place cut points according to Default dialogue coverage ; shot length is not converted according to script word count.

  4. Lock the characters’ facing, positions, lines of sight, held objects, entrances and exits, screen direction, and necessary states; when an upstream persistent relationship that limits action space already exists, project the relationship into the starting point and ending point of this shot.

  5. A frozen keyframe projects only the shot’s starting point; delete text, actions, poses, or prop states that appear only at the ending point. When the shot’s responsibility lands on the final beat, separately write ### 收尾关键帧提示词 Projectending point—the other end of the same frame image, the rule is completely symmetrical: delete things that exist only at the starting point and are no longer present at the ending point. It is optional; for how to write it and how to choose, see Start and end as a pair。

  6. After the keyframe is finalized, first read from the finalized text the characters, locations, and props in this frame that need to maintain identity, styling, or geography, then use the same checklist to fill all three bases at once:

    • Visual basis: write each item in the checklist as an entry reference to 《视觉设定.md》; this is a required field;
    • Image prompt item: if the checklist already has a suitable IMG-... entry, write it; if not, leave “None”;
    • Input reference image: according to the checklist, search for matching images in the inputs provided by the user,剧集/<EP>/制作成果/ , and other visible media already pointed to by the document; if matched, write REF-.... If none match, write “None (reference images to be added: <missing starting frame, characters, locations, props for this shot>)”; if only some match, after the existing REF-... append “; reference images to be added: <still missing images>”, using only 、 between gaps. When the creator says they will prepare the images themselves elsewhere, write this checklist as PLAN-... slots, and this shot is ready; only when the creator explicitly says images are not used, write “None (the creator has explicitly chosen text-to-video).”

    The three bases read the same frame image, so they cannot contradict each other: any character or prop named in the keyframe must appear in the visual basis.

  7. A full-episode request completes the full episode, and at the end reports once on coverage, pacing, and genuinely unresolved choices.

Shot requirements

  • Each shot has a unique responsibility, a clear source, visible start and end states, and a reasonable duration. The "source" begins with a scene ID that actually exists in "Script.md"; the ID may be followed by a necessary short quotation; shots spanning multiple scenes are written with 、 to write multiple entries in sequence;creator_markdown_check.py will verify that every ID resolves.

  • "Source" short quotations should correspond to the action or sound this shot carries. When the body text mentions an off-screen character, you may write in the visual basis ;画外:<类别>「<名称>」; this only declares that they are not in frame and cannot substitute for the fulfillment of a necessary action. An action that needs to be seen should be carried by another shot, or explain why it is omitted.

  • Every scene in the script must be carried by shots. If you truly decide not to shoot a certain scene, write a line at the beginning of the body text of "Storyboard.md" - 未拍场次:<场景 ID>(理由:……), connect multiple items with ; . SHT-01 has always allowed omission with reasons, but omission and missed shooting look exactly the same in the final document, so the reason must be written down, not left in the conversation.

  • When a native duration has been declared, each shot still has its own unique responsibility, start and end boundaries, and frozen keyframe as usual; the shot length is first determined by narrative need. For shots shorter than the minimum seconds, propose to the creator to pack several adjacent shots of the same scene into a multi-shot container, declared in the delivery file; when the target dialect requires it, every cut of the container must have an accepted keyframe image; whether it can be packed and how it is packed is determined by the dialect of $short-drama-video-prompts . When the creator has not declared a multi-shot container, or the dialect does not support it, the shot falls within the minimum seconds and holds the endpoint after the action completes. Actions longer than the upper limit are split into shots at visible state closure points, and each split shot still has its own unique responsibility and credible boundary.

  • "Unique action" writes the visible state chain from this shot's start point to its endpoint; when handover, exchange of hands, placement, or retrieval is involved, write the contact person, contact method, and object landing point in the same chain; legal endpoints must not be connected by off-screen teleportation.

  • A cut must bring a change in information, power, emotion, space, or rhythm; delete synonymous repeated shots.

  • Relative time words constrain the moment an event is first visible or audible, and are not released early just because a preceding action has already completed; the storyboard timeline directly writes that boundary, and does not treat narrative order such as "later" or "after the handover" as a substitute for numerical time.

  • The same action does not repeat across shots; declared at the peakimpact repetitionexcept; the endpoint should be able to become the next shot's credible starting point.

  • The readability of key information takes priority over decorative camera movement; vertical-screen composition prioritizes ensuring the subject and reaction are visible.

  • For complex group scenes, first lock the spatial anchor and screen direction, then decide the changes in shot size.

  • In addition to each person's posture, the start and end boundaries must also clearly state the body—object—space relationships this shot depends on. When the relationship does not change within the shot, both ends retain it; when it truly must change, the process and endpoint must have script basis.

  • A frozen keyframe writes only what can be seen at that instant; text, fingers, reflections, and occlusion must be generatable.

  • When close-up keyframes are generated with a location board attached, the image is often stretched into a medium-long shot; write the specific framing in the body text (where the frame cuts, where the face is in the frame, camera distance), and if the generated image is still too wide, do not attach the location board for this shot and write the background into the body text.

  • The keyframes of an episode must look like they belong to the same film: each main text uses the same phrasing for art style (if it is realistic, write realistic; do not mix in words like "comic drama" or "illustration" that would pull some images toward an illustration face), and each scene writes the same phrasing for light and color temperature; when generating, first produce one medium-to-long shot of that scene as the tone-setting image and accept it, then use it as the last reference for the remaining shots, taking only the color tone, lighting, and texture, not the composition.

  • The continuity locks in "Visual Settings.md" are written verbatim into the frozen keyframe main text on the shots where they take effect; lock aspects are not omitted on the grounds that "the reference image will convey them."

  • If an omission is found during checking, directly fix the document; do not generate a coverage table to prove that you checked. The "visual basis" in a shot block is this shot's basis field, not the coverage table mentioned here.

Visual basis and images

  • IMG-... is theprompt entry IDin "Image Prompts.md", and does not mean the image has been generated, provided, or is usable.
  • When "Image Prompts.md" already exists and this shot needs an entry from it, write "Image prompt entry": the ID must match a visible second-level heading in that document, and also write the Chinese name and the identity, styling, geography, composition, or other boundary it controls. The ID is only used for lookup; do not let the English slug carry meaning.
  • When there is no "Image Prompts.md" or no suitable entry, write "Image prompt entry: none", then point in Chinese to the character, location, or prop entry and its control scope in "Visual Settings.md". This is a normal direct entry point; do not fabricate an ID just to continue storyboarding, and do not invent another stage.
  • "Visual basis" is a required field for every shot: after the frozen keyframe is finalized, trace back from the actual image the visible characters, locations, and props that need to maintain identity, styling, or geographymustbe written item by item as 《视觉设定.md》·<人物|造型|地点|道具>「<名称>」(控制:<范围>), with multiple items joined by ; , and the name must be findable as a same-named heading in "Visual Settings.md". Small-scale or background characters remain in scope as long as their identity needs to be recognized; off-screen voices and unrecognizable partial areas do not count; when this shot truly has no such entries, write "Visual basis: none".
  • If the name of an entry appears in the keyframe main text, but it truly is not in the image for this shot (the owner has left the scene, the name appears only on on-screen text, or it is homographic with some word), append at the end of "Visual basis" ;画外:<类别>「<名称>」. This is a truthful record, not writing an absent person as present.
  • If the name of an entry is not reliable at all in the main text (道具「手机」 will collide with "phone store",人物「小雨」 will collide with "it is drizzling"), write 画面代称:无on that entry in "Visual Settings.md", and mechanical checking will no longer look for it by name; whether this shot depicts it is still answered truthfully by "Visual basis".
  • The three bases all describe the same frame, not the shot's asset roster. "Control" only writes the scope that this frame can bear: a close-up of the back of a hand does not write "this episode's styling", and a shot showing only a screen and one finger does not write "posture". A binding from the previous shot does not carry over to the next shot just because "the character is still in this scene".
  • Characters, locations, or props named in the keyframe main text (entry names in "Visual Settings.md" or the "on-screen aliases" it declares) must appear in this shot's "Visual basis"; creator_markdown_check.py will mechanically check this item. It only catchesthe category that is named: when the main text only describes without naming ("a boy in a hooded jacket"), the machine stays silent, and who is in the image still has to be read out by this step yourself; do not wait for an error.
  • A visible object that this shot must keep consistent but that has no entry yet in Visual Settings.md (props appearing across shots are especially common) cannot be treated as not needing consistency just because "it cannot be written into the visual basis". A pen and a coat that appear in all four shots are the same kind of problem. Do two things: in the main text, pin it down shot by shot using the exact same description, and name it in this round's final report, recommending $short-drama-assets add an entry. Do not add entries to Visual Settings.md yourself, and do not stuff it into "visual basis" to pass it off as an existing entry.
  • "Input reference images" is a separate axis: actual images that the creator has already provided, or that have been confirmed as produced and are currently readable, referenced with a stable IMG-... slot different from REF-... . Each slot must simultaneously state the explicit order, the project-relative path separated only by / , the Chinese name, "purpose", "controls", and "must not control" scope; when there are none, you must distinguish between "reference image to be added" and "the creator has explicitly chosen text-to-video"; when only some are prepared, keep the existing REF-... and append "; reference image to be added: ...". Do not write prompt entries, images not yet generated, or descriptions from the conversation as REF-...——REF-... means "the file is currently in the project". Images that the creator will mount themselves at generation time go under the following PLAN-...: it likewise does not claim the files exist, and only spells out clearly which images are to be mounted for this shot.
  • Each REF-... must follow the single format verbatim:REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名称>》(用途:<用途>;控制:<范围>;不得控制:<范围>). Note the full-width colon after "Order:" and the middle dot ·before the path; do not use / in place of the field separator. For multiple images, connect only with the Chinese semicolon ; ; if some images are missing, append ;待补参考图:<缺口>after the last complete slot, and separate gaps with 、 . After writing, read it back once according to this format before delivering.
  • 用途 can only be one of 身份、造型状态、地理、构图、尺度、效果、起始帧、结束帧、风格 ; for what each one can control, see $short-drama 's "Reference Roles". For this shot, write the starting frame image as 用途:起始帧, a character image as 用途:身份 or 造型状态, a scene image as 用途:地理, and a prop state image according to the item it determines. If one image serves two purposes, split it into two slots; one shot may have at most one 起始帧 and one 结束帧, and when writing 结束帧 there must also be 起始帧. Downstream video prompts rely on 用途 to make clear "which storyboard starting frame is sent for this shot, and which character/prop/scene images"; therefore, slots missing 用途 do not count as ready.
  • When this shot does not yet have a starting frame image, there are two paths. The creator produces it with this kit:用途:起始帧 that image is generated by $short-drama-produce using this shot's frozen keyframe main text; for the job, write source as 剧集/<EP>/分镜.md、source_entry write this shot's SHOT-..., the output lands in 剧集/<EP>/制作成果/images/, and after obtaining the actual file, bind it as REF-.... The creator produces it in their own tool: copy the frozen keyframe main text over to generate the image, then place the file into the project and bind it as REF-..., or write it first in this round as PLAN-SHOT-START(顺序:<n>)· <本镜 SHOT-...>《本镜冻结关键帧》(用途:起始帧;……). If neither path is taken, it remains only one item under "reference image to be added".
  • When the creator generates images outside the project and the images do not enter the project, use the PLAN-... slot: the syntax is verbatim the same as REF-... , only replacing the project-relative path with IMG-... or SHOT-... entry ID,IMG-... The Chinese name must match the title of "图片提示词.md". It declares "this image is mounted by the creator in generation in this order"; it does not claim a file exists in the project, so it is not "to be added", nor can it be used for production. Once the real file enters the project, rewrite it as REF-.... The two kinds of slots can be mixed,顺序 uniformly and continuously numbered.
  • Automatic binding is not stuffing all images into one shot. Select only the images visible in this shot whose identity, styling, geography, key prop state, or starting composition genuinely need to be stable; for each image, state clearly its purpose, what it can control, and what it must not control.
  • The two axes can be combined independently: when there is a valid image prompt entry, the input reference image can still be "to be added" or the text-to-video explicitly chosen by the creator; when the creator provides a real reference image, the image prompt entry can also be "none".

On-demand knowledge

By default, only read this SKILL, the current script, and necessary visual facts. When encountering the corresponding problem, open only one:

Revision

Keep unaffected shot IDs. When splitting, merging or changing shot responsibility, explain which downstream video prompts need refreshing, but do not automatically rewrite files the user did not name.

Complete

The original text within the named scope all has shot realization, each shot's responsibility is not duplicated, space and state are continuous, start and end boundaries are producible, keyframes can be frozen, each shot's "source" resolves to a real scene in 《剧本.md》, every scene in the script has shot coverage or has been recorded in "unshot scenes", and the visible characters, locations, and props in each shot's keyframes are all in this shot's "visual basis", then it is complete. Visible objects needed by the picture but not yet having an entry in 《视觉设定.md》 are named one by one in the report at the end. When this request simultaneously modifies 《图片提示词.md》 and 《分镜.md》, refresh the references of affected shots in that round; do not create a separate override table. Video prompts, production and review start only when the user names them. After the five creation documents are complete, you may switch to $short-drama to perform a mechanical check of the cross-document structure; content quality is still reviewed by the creator.

Installation and maintenance

Run only when installing, upgrading or troubleshooting python3 scripts/selftest.py。