For each Creative Claw tool call that exposes it, pass the optional skills_used array with creativeclaw-generate-video, any other Creative Claw skills actually followed, and guide entries in the form <skill-name>/<relative-guide-path> (for example, creativeclaw-generate-video/references/workflow-basics.md). Include only skills and guides followed for that call. Omit attribution if the user declines tracking or the field is unavailable. Never send other plugin names, private data, or local paths.
Not connected yet? If no Creative Claw tools (such as list_models or generate_image) are available, the plugin is installed but the server is not connected. Stop and tell the user to open the plugin's Connectors tab in their app (or the MCP server list in a terminal client), connect Creative Claw, sign in, and ask again. Do not substitute other tools or describe a result that was not generated.
Read video model selection, then only the selected model's guide. Model families are covered locally, with live-schema guidance for additional models; do not load every guide or require a sibling model skill. Read Review/Auto handling before submission.
Read shared execution guidance once per task before using tools. It covers existing authorization, model discovery, optional cost checks, imports, and recovery.
Create one controlled video clip from text, a start frame, an optional end frame, or other model-supported references. Use the planning, UGC, or film skills when the deliverable is a larger production. Use creativeclaw-render-html only when the user explicitly requests HTML/HyperFrames/code-driven rendering, or motion graphics, kinetic typography or animated titles instead of filmed-looking footage; use creativeclaw-edit-media for video bookends.
For a permanent watermark on a finished video or a sequence assembled from existing images, video clips, and optional audio, use merge_media through creativeclaw-edit-media. Read assembly guidance for overlay_images and compose_video. Preserve the existing media instead of generating replacement footage.
For worked production flows, read only the relevant recipe: product ad, consistent Character scene, or source edit, person replacement and extension. These explain asset preparation, shot prompting, assembly and output checks, without authorizing extra paid drafts.
Reference-first pipeline
Unless the user asked for direct text-to-video, supplied a ready shot image, or is editing footage, follow this before generate_video. New clips start from one keyframe image per shot, so the video model animates images the user has seen instead of inventing the face, product, outfit or location: tell the user how many images that is before making them.
- Anchors, reuse first:
search_assets,list_characters,get_theme. Person: Character sheet + face portrait (real person: also their best original photo). Product: real photo or packshot, plus a label/logo close-up when text matters. A recurring person or product with no anchor: create it first (creativeclaw-create-avatar, creativeclaw-product-photoshoot). - Look line: one sentence (palette, light, lens, medium), pasted into every keyframe and video prompt.
- Keyframe per shot:
generate_imagewith the same image model all project (defaultimage/nano-banana-2),aspect_ratio= the video's ratio, main anchor inimage_url, others inextras.image_urls, roles named. From shot 2 on, add the first approved keyframe (and the previous one when the scene continues) as a look reference alongside the anchors. One clean full-bleed frame; no text, grid or labels. - Compare it to the anchors (face, label, logo, colors); fix with one targeted edit.
- Show keyframes and the plan (model, duration, ratio) in one message. Review mode: call
generate_videonow; the card is the approval. Auto: ask once unless the user said go. - One mode per shot. People, several subjects or big motion:
image_urls= [keyframe, identity anchor, product anchor], 2–4 total;character_idis fine here. Exact opening (product hero, logo reveal):image_url= keyframe, noimage_urlsorcharacter_id. - Next shot: same anchors and look line, plus the earlier keyframes as references. A previous clip's last frame is only an extra composition cue.
Details: reference production. Image prompting: image model index and only the chosen guide.
Voices
Before choosing native dialogue, read the selected model's spoken-language guidance in get_model_params({ model }). For unsupported or unverified languages, use spoken languages: one image and one audio-driven generation for a single talking face; consistent character images from the same references and per-shot speech, then concatenation, only for requested multiple shots. Keep the normal workflow for documented languages.
When a Character speaks and the voice is unknown, ask one question: design a new voice from a description (design_voice, three auditions), use your own voice (recording plus consent, creativeclaw-clone-voice), or pick a stock voice. If the voice doesn't matter, pick a stock voice and name it. Design auditions use the Character's real lines. In ChatGPT the Voice Studio card saves the choice; read it back from list_characters rather than saving again.
Then pick one path per speaking shot from voice in video: native dialogue in a documented language for a one-off, or speech first for an exact or recurring voice (a dedicated talking-avatar route, a supported audio-reference model with output review, or video/sync-3 on a finished clip, the recommended lip-sync model; preserve an explicit model choice). Gemini Omni, the default, accepts no audio on the current route: don't make speech first for an Omni shot. Keep lines to at most 2.5 words per clip second.
Workflow
- Define the clip's purpose, aspect ratio, duration, subject, one primary action, camera move, visual continuity, dialogue or sound, and required end state.
- Unless the user asked for direct text-to-video, supplied a ready shot image, or is editing footage, follow the reference-first pipeline above before
generate_video. Import media the user referred to first. - When the user asks for examples, styles, or similar concepts, or an open brief would benefit from concrete directions, call
search_exampleswithoutput_type: "video", then load only the chosen result withsearch_examples({ id }). Do not search before every clip. - Use
list_models({ category: "video" })when choosing a model; for a known selection, useget_model_paramsdirectly. Reuse its current-task durations, resolutions, operations, and reference contract. - Use
estimate_generationwithoperation: "video"only when the user asks about cost, balance, affordability, or sets a budget. Treat returned alternatives as options; preserve explicitly chosen models, durations, and quality. Estimate-only requests do not authorize generation. - State consequential settings briefly and proceed within the requested scope, honoring a generation the user already requested or a production stage they approved.
- Write one chronological prompt: opening frame, subject action, camera behavior, environmental motion, audio or dialogue, ending frame, and exclusions.
- Call
generate_video; usecheck_jobonly when another tool needs the completed URL or no inline viewer is monitoring the job. - Inspect identity, anatomy, product fidelity, timing, camera motion, dialogue sync, and ending continuity. Deliver the result and describe any shortcomings. Suggest a focused revision, but do not generate another take without an explicit user request for that additional generation.
Authorization for additional videos
A request for one video authorizes one generation attempt, not repeated attempts until the agent considers it good enough. For an explicitly requested batch or approved film shot list, generate only the requested number of clips, once each.
Before another take, replacement, model comparison, extension, or generative repair, require an explicit request for that additional video. A complaint, a request to inspect or diagnose a problem, or the agent noticing a defect does not authorize generation. If "fix it" could mean editing existing footage or generating again, explain the proposed repair and ask before generating again. An unused budget, a failed job, a refund, or retryable: true does not grant permission for another attempt.
An explicit "generate another version" or "retry once" covers that one additional attempt. For "keep trying until perfect," agree on a finite attempt limit before starting further generations. Stop when the requested attempts finish and let the user decide what comes next.
Continue status checks, retrieval, inspection, and drafting revised prompts without creating another video. Correct and resubmit a rejected input only when it is confirmed that no generation job was accepted or started and no credits were charged. For timeouts or uncertain submissions, follow job recovery before considering any replacement.
Model routing
- Default to
video/gemini-omni-flashfor the best general balance of speed, quality, native audio, and reference-aware generation. - Use
video/seedance-2.5, the premium cinematic model, for high-end, reference-rich or long clips (up to 30 s). Review mode stages an initial 1080p request as a 480p draft; Auto renders 1080p directly. Explicit 480p creates a draft in either mode. Only 1080p can finalize the same draft throughextras.draft_job_id; 720p starts a new take. - Use
video/minimax-h3-maxfor fast cinematic motion and native-audio work. - Use
video/minimax-h3-max-turbo, presented as H3 Max Fast, for cheap, fast drafts and iteration. - Use
video/wan-3.0for native-audio clips of 2–30 s in one pass, or when a document or webpage drives the video. - Use Seedance Mini only when the user asks for it.
- Honor an explicit model request, and load its local guide from the model-selection index for exact prompt and reference syntax.
For existing footage, do not apply the general generation ranking blindly:
- For face/person swaps, prefer
video/kling-3.0-motion-control-pro; read Kling Motion Control Pro. Prepare an image of the source scene with only the target face replaced, then use it with the driving video, video orientation and one facial binding containing both image fields. Identify the target as@Element1. Inspect other people, clothing and delivered duration; exact preservation is not guaranteed. - For recorded performance transfer, also recommend Kling Motion Control Pro. Honor an explicit H3 Max Recast choice for multi-person or multi-shot recasting and read H3 Max Recast; it is an alternative, not the default face-swap model. Offer one preferred model for the requested job.
- To extend a clip, default to
video/minimax-h3-max-extend; it keeps the source's characters, setting, motion, and look. Use one source of 1.625–60 seconds invideo_urls, adurationof 5–15 seconds for the new footage, keepaspect_ratio: "auto"unless cropping was requested, and describe what happens next. Its defaultextras.output: "extended"returns the source plus new footage;"continuation"returns only the new segment. Usevideo/seedance-2.5extendonly for heavy references or a long continuation. - To replace an interval inside a clip with new footage, use
video/minimax-h3-max-insert: one source invideo_urls,extras.start_timewhere the new scene begins andextras.resume_timewhere the original resumes, both on the source timeline.durationsets the new scene's length. - Up to 10 seconds, prefer
video/gemini-omni-flashfor a targeted source edit. - From 4–30 seconds, prefer
video/seedance-2.5for a full source edit. - When the user wants the original left unchanged with new footage added, generate only the new continuation (with H3 Max Extend,
extras.output: "continuation") and merge it with the untouched original. - Never recommend or proactively route to an LTX or DreamActor model.
Reference rules
- For ordinary generation,
image_urlis the literal start frame. Kling Motion Control is an exception: its one image defines character appearance and scene; preferimage_urlsfor that reference. - For ordinary generation,
image_urlis only the literal start frame. It selects image-to-video and makes the supplied image frame zero.last_frame_urlis the desired end frame when the selected model exposes it. image_urls,video_urls, andaudio_urlsare model-specific reference arrays. If a supplied image should guide identity, style, character, product, or composition instead of becoming frame zero, useimage_urls, even for exactly one image. Use 2 to 4 strong references when supported; respect specialist limits such as Kling Motion Control's single character image.character_idappends the saved image toimage_urlsas a reference, never a start frame. Use it in reference mode; omit it withimage_url/last_frame_url(the server rejects that mix). For literal-frame animation, build identity into the approved frame and omit reference arrays.- Preserve exact quoted copy, reference labels, dialogue, timecodes, colors, and approved layout or edit constraints in the prompt.
- Discover transformation support on the selected model and connected tool schema. Do not assume a generic top-level
operationselector exists; use only currently exposed fields and model-supportedextrascontrols. Never silently switch an explicitly chosen model to obtain a transformation.
Prompt shape
Prefer one subject action and one camera idea per clip. Describe what happens over time, not a pile of adjectives. Include exact spoken words only when needed, and specify what must not change. For a multi-shot piece, plan it with creativeclaw-plan-video.
Conduct the workflow in the user's language and preserve quoted dialogue exactly. Confirm the chosen model supports the requested spoken language before relying on native audio.