generate-cut-images
Skill1 starsChanged 3 months agoApache-2.0View on GitHub
Makes each shot's start image, and the end image a first_last shot needs, from its characters' sheet panels, place and props; stops before the video prompt. Use when images are requested or the episode order reaches them.
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- autoproduceSkill
- brandingSkill
- channelSkill
- compose-blenderSkill
- datagoSkill
- edit-speechSkill
- generate-cut-videosSkill
- grow-instagramSkill
- grow-threadsSkill
- grow-youtubeSkill
- ingestSkill
- inspect-contentSkill
- introSkill
- platform-guideSkill
- produceSkill
- project-initSkill
- publishSkill
- review-cameraSkill
- review-contextSkill
- review-cut-imagesSkill
- review-cut-videosSkill
- review-recentSkill
- setup-instagramSkill
- setup-threadsSkill
- setup-youtubeSkill
- storyboardSkill
- topic-scoutSkill
- upscale-videoSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 3 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Check that crop names actual frame boundaries rather than repeating subject or an action.
- Distinctive: line 31
Read the neighbouring ending/opening states before a batch: preserve anatomical hand, prop ownership and screen sides, or describe the …
- Very specific: line 46
Only legacy front-only sheets may reuse imageUrl with a warning.
- Very specific: line 58
Keep size and view.crop consistent: MS is waist up, MCU chest up, CU face and shoulder tops, and FS head to toe.
- Distinctive: line 102
Check hand/prop continuity against its neighbours as well as the single-frame composition.
- Very specific: line 107
When the saved shot is correct but the model drew the wrong crop, use shot_image {editExisting:true, reframe:true, frame:"start", ...}.
- Very specific: line 118
Keep each failed version and its observation.
- Very specific: line 121
If a text-only reframe keeps the wrong body extent, inspect that new image and pass sourceCrop:{x,y,width,height} with reframe:true.
- Very specific: line 136
Write only the requested change in prompt.
- Distinctive: line 143
Keep confirmed identity attributes in their original language when no faithful English translation is available.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Generate Cut Images
For dialogue images, apply dialogue coverage. An OTS shows the speaking far face and the silent near listener; a two-speaker two-shot needs both mouths readable. Inspect the actual image, including portrait crops, before handing it to video prompting. Correct the plan first if the intended coverage cannot fit.
Step 6 of the production order (user directive
2026-10-31): after every shot has its icon attributes and the props and backgrounds exist,
make each picture shot's start image with shot_image, then — only for a first_last
shot — its end image with frame:"end". Read still generation
and image routing.
For each shot, read its story, characters, lines and icon attributes with storyboard_read
and apply content-led opening views. Before making
a new image, the board author sets visual.camera.view with shot_icons: subject, crop,
viewpoint and the content-specific reason, plus a real set target for body inserts. A missing
view on an older board warns and keeps its legacy behaviour; do not treat that as an authored
decision for new production. Keep the prompt consistent with this view rather than writing
a second camera direction in prose. For a built set, inspect its target and camera first;
a missing detail target is corrected from the opening blocking, never replaced with a face.
Check that crop names actual frame boundaries rather than repeating subject or an action.
Read the neighbouring ending/opening states before a batch: preserve anatomical hand,
prop ownership and screen sides, or describe the motivated change of axis. The starting
image must leave the planned action to happen. A background panel supplies appearance
and directional geography; its full room and all landmarks need not fit a tight crop.
Then write prompt in English: who is where, doing what, facing which way, with which
expression and light, at the moment the shot opens (for an end image, the closing moment
and what changed). Name the place with location (an SB_DOC.locations id) and the props
seen in the frame with props; later calls keep them. Read the location's front/back
layout and the shot's visual.camera.backgroundView before calling. Set the opening
camera direction with shot_icons.backgroundView during icon authoring (or correct it
there before generation): front for the establishing direction, back for the opposite
side. shot_image selects SB_DOC.locations[].panels.front or .back, defaulting to front;
character facing, shot height and camera motion do not choose a background direction.
Without a built set, a missing back panel or a missing selected panel on a directional
sheet stops with background_view_missing; complete that view within existing authorization.
Only legacy front-only sheets may reuse imageUrl with a warning. Built sets use the
selected direction relative to their establishing camera; an opposing subject view reports
background_view_conflict before rendering. Correct the direction, view or blocking. Follow asset sheets. An end image keeps the start image's
place (location is refused) and records its own props in frames.endProps, so a prop that
appears only at the end goes in the end call. Each prop goes in through the prop ledger
(prop continuity):
hidden ones stay out, the picture matches its condition at that end of the shot, and its
description and state ride on its Image N line; a prop without a picture is a warning. Only still_camera and generated_video cuts
take images. The tool adds the size, angle, depth
and technique words, the episode style and an Image N line for every input, then runs
image_plan → image_execute with the saved model and the existing spending authorization.
Keep size and view.crop consistent: MS is waist up, MCU chest up, CU face and
shoulder tops, and FS head to toe. Explicit contradictions return shot_framing_conflict
before generation; correct the icons or the second framing instruction in prompt.
For an object or body detail with a character in the cast, set view.subjectType to
object or detail so person crop words do not compete with the intended subject.
Flexible-size models default to 864×1536 for 9:16 and 1536×864 for 16:9. A fixed-size
GPT model or a differently proportioned explicit size reports image_aspect_mismatch;
inspect the actual delivery crop before using that image as a video input.
One character's inputs are its face, headless front and headless back panels; two
characters take each face, then each front. The place goes first as the picture to edit.
A model that takes fewer pictures than the frame composes refuses
(image_references_unsupported): report it and ask which model to use — gpt-image takes up
to 16, astra-genai-native and an MLX Qwen-Image-2.1 pack up to 10, MLX FLUX.2 klein and
Mage-Flow Edit up to 4; never switch silently. GPT Image takes one format per request, so a
mixed PNG/JPEG set goes up as PNG copies in storyboard/images/inputs/. A host selection
returns the inputs, save path and requestId without replacing the active frame. Generate
with the selected host tool, save the exact requested file, inspect it, then call
shot_image {path, id, frame, action:"complete", requestId} without generation options.
Completion decodes the output and verifies that the saved request still matches its inputs;
it does not generate or charge again. If the request is stale, retain the candidate file
and plan from the current shot. A failed or unfinished generation keeps the old frames.
Each completed generation writes a new versioned file under storyboard/images/ and records
visual.frames.start and visual.bg (or frames.end), visual.references, locationId
and props. A new start image takes the shot's end image off the shot with a warning,
because the end was edited from the old start; make the end image again. Look at every
image you make before moving on; regenerate a wrong one with a
better view/blocking/prompt within the attempt and spending limits. Check the visible subject,
crop, profile/three-quarter/rear side, camera height and action against the saved view;
face-reference inputs do not justify a visible face in a hand-only insert. Text in an image follows the GPT
Image 2 rule. Stop before the video prompt; review-cut-images runs only when the user asks.
storyboard_read.imageFraming reports whether a start image's recorded inputs are
current, stale or unknown, separately from file availability. Current is not a visual pass. Inspect the actual file at
delivery aspect: FS must retain both feet, MS its waist boundary, MCU its chest boundary,
and CU the intended face/shoulder crop; object/detail shots must retain their named evidence.
Compare the result with the opening action as well as the label. Correct the earliest
wrong input and regenerate within existing authorization; never mark unviewed pixels as
verified. An edit inherits its source's framing status and cannot turn stale source
evidence into current evidence. Use normal generation when changed shot inputs need
new references, blocking or a different place.
Inspect the exact returned version, not an older preview or contact-sheet thumbnail. Check hand/prop continuity against its neighbours as well as the single-frame composition. In a requested review, record the inspected path and file hash with the finding so later replacement cannot inherit a review of different pixels. File existence, input freshness and visual judgment are separate evidence; none stands in for the other two.
When the saved shot is correct but the model drew the wrong crop, use
shot_image {editExisting:true, reframe:true, frame:"start", ...}. This uses the
generated image as the sole reference and recompiles the saved size, crop and viewpoint
at the current delivery aspect.
Describe the opening action and the observed correction in prompt: for example,
"Zoom in until the bottom edge cuts through mid-chest; leave a narrow margin above
the hair. Eyes look slightly camera-left, lips closed and relaxed." Do not change the
icons to excuse a wider generated image. For a CU, inspect whether the crown and
shoulder tops meet the authored boundaries; retaining a whole chest is not a CU.
Preserve visible identity and clothing while correcting expression copied from a
reference sheet. Inspect the new file again and repeat within existing authorization.
Keep each failed version and its observation; a delivered image is not verified by
its label, request receipt or imageFraming.current alone.
If a text-only reframe keeps the wrong body extent, inspect that new image and pass
sourceCrop:{x,y,width,height} with reframe:true. Coordinates are pixels in the
saved source, not in a scaled preview. Choose the rectangle from visible anatomical
boundaries, keep it inside the source and match the output aspect. The tool prepares
a separate cropped reference with a source hash and rectangle receipt, then calls
the saved image model to generate the final image. The crop itself is not delivered
as generated output. In this call, describe the opening action/expression in prompt
without asking for another zoom. Inspect the model's output again: it can still
widen the crop or alter identity. If the needed view lies outside the source, use
normal generation or a text-only reframe; never cut away required feet or hands to
fit a rectangle. Do not guess coordinates without viewing the actual source.
Targeted revisions
For a correction to an existing frame, call shot_image with editExisting:true.
Write only the requested change in prompt; use preserve for explicit invariants.
The saved frame is the sole image input, its dimensions are reused unless size is
specified, and the output is a new version. Omit location and props; update their
storyboard metadata first if the revision changes them. A start revision still makes
its old end image stale. A plain edit does not reassemble the scene; reframe:true
explicitly reapplies the saved opening composition and is only for a start image.
Keep confirmed identity attributes in their original language when no faithful English translation is available. Do not delete clothing because its description mentions a head, hood or other body part. Describe the intended crop separately. Known Qwen edit routes use concise character reference roles instead of repeating the sheet's appearance. Scene lighting is authored per shot; the compiler does not add uniform brightness.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

