下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-hmnmm3a1--creatok-generate-video.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-hmnmm3a1/creatok-generate-video。AI 视频生成、文生视频和图生视频工具。支持 Seedance、Sora、Veo 等主流视频模型,可通过文字提示词、图片、首尾帧或参考素材生成 TikTok 短视频、商品广告、产品展示、数字人口播和创意视频。可搭配 LibTV、小云雀、TapNow 等 AI 创作工具,完成从素材准备到视频生成的创作流程,并支持画面比例、生成参数设置和任务续查。
阅读全文 (展开查看完整说明)
概述
generate-video
Constraints
- Platform: TikTok only.
- The model's final user-facing response should match the user's input language, default English.
- Must request user confirmation before triggering any paid/high-cost video generation call.
- After confirmed, must call CreatOK Open Skills proxy and wait until completion.
- Preserve any explicit user-provided prompt verbatim. Follow
Explicit Prompt Preservationin./references/common-rules.md; generation confirmation never authorizes prompt changes. - Avoid technical wording in the user-facing reply unless the user explicitly needs details for debugging or to share with a developer.
- Do not expose internal skill or CLI implementation boundaries in normal user-facing replies. Avoid terms such as "skill scope", "V1", "CLI capability", or installed skill names unless the user is explicitly debugging the integration.
- For English replies, use "avatar" rather than "digital human" unless the user uses that exact wording. Use "avatar" for exact technical field names.
- Follow shared guidance in
./references/common-rules.md. - Unless the user explicitly asks for a live-action shoot version, the model should assume the goal is to generate an AI video, not to prepare a human filming plan.
Chinese Terminology
For Chinese user-facing replies:
- Before applying this glossary, verify the Chinese in this section is readable; if not, follow
./references/common-rules.mdChinese Content Integrity and re-read before proceeding. - Translate
avataras数字人. - Translate
avatar assetas数字人素材. - Translate
reference image assetas参考图素材. - Use
是否使用数字人出镜/口播?when asking about avatar usage. - Do not use
人物形象/头像for avatar unless explicitly explaining internal technical fields. - In confirmation summaries, write:
数字人:不使用- or
数字人:使用 <name>,素材 <n>
- In selection lists, use labels like:
数字人素材预览图
- Do not add extra technical columns in normal avatar or asset selection lists.
The creatok CLI
All API interaction goes through the creatok CLI. Never call HTTP endpoints directly.
- Auth is channel-specific: stable CLI uses
CREATOK_API_KEY; preview CLI usesCREATOK_API_KEY_PREVIEW. These keys are parallel, and preview does not read or fall back toCREATOK_API_KEY. - Every command prints a single JSON envelope to stdout; human logs go to stderr.
- On error, common
error.kindvalues includeauth,notfound,invalid,server,timeout,network,outdated_cli,input_rejected,payment_required,credits_exceeded, andcomposition_full. - Commands:
creatok doctor,creatok capabilities,creatok assets create --type image|video --file "<path>",creatok estimate --service video_generation …,creatok video …,creatok status --task <id> --type video_generation [--wait]. - Avatar commands may be used when needed:
creatok avatars list,creatok avatars get <uid>,creatok avatars register <uid> --model "<model>". - The video result on success is at
data.result.video_url. - Do not create or edit helper scripts, local JavaScript files, curl wrappers, or ad hoc API clients for normal generation, retry, polling, upload, avatar, or real-person fallback flows. Use the CLI commands above directly.
Model Selection Rules
The skill must read model list, defaults, and hard limits from creatok capabilities at runtime instead of hardcoding them locally.
Keep the local client thin:
- use the returned default model unless the user explicitly chooses another supported model
- validate only hard execution constraints such as definition, duration, orientation, reference-image cap, and first/end-frame support
- keep user-facing model explanation minimal and avoid depending on provider, family, or hint-style metadata
If a chosen plan conflicts with model limits, the model should explain the limitation, suggest a workable plan, and wait for user confirmation before generating.
Model list, defaults, and hard limits such as supported definitions, durations, orientations, reference image caps, and frame_input support must be read from creatok capabilities at runtime instead of being hardcoded in this skill. Create each local reference image as a formal Asset with creatok assets create --type image --file "<path>", then pass the returned data.asset.object_key values through referenceImageKeys. Create local first/last-frame images the same way, then pass their formal keys through firstFrameKey and endFrameKey.
- Reference video support must be read from each model's
reference_video_input. Never infer support from a provider or model family, never auto-switch models, and never pass reference videos to a model that advertisesmax_count: 0or noreferencemode. - Validate every locally readable reference-video field against the advertised count, type, size, duration, total duration, dimensions, pixel count, aspect ratio, and fps constraints. Missing local metadata is deferred to authoritative server validation.
- Create each valid local reference video as a formal Asset with
creatok assets create --type video --file "<path>", preserve input order, and pass the returned keys throughreferenceVideoKeys.
Avatar image assets are already stored in CreatOK and are passed via --options as referenceImageKeys; do not pass avatar keys through --ref.
- Use
firstFrameKeyonly when the chosen model'sframe_input.first_frameis true. UseendFrameKeyonly whenframe_input.end_frameis true; if only first frame is supported, submit onlyfirstFrameKey. - Do not combine frame inputs with ordinary reference images or reference videos for the same generation. Choose frame inputs or reference media.
Avatar
- At the confirmation gate, if this request is not already using an avatar, briefly and explicitly ask whether the user wants to use an avatar before offering final confirmation. In Chinese, ask this as
是否使用数字人出镜/口播?Do this even when the user only says "generate a video". - If reference images are involved and any may contain a real person, ask whether the user wants to use or create an avatar for stronger identity preservation.
- If the user wants to use an existing avatar, run
creatok avatars list; when the target video model is already known, append--model "<model>". - Before planning generation, use a two-step avatar selection flow.
- Step 1: present an avatar-only selection list with a short avatar selection number, avatar name, and avatar description when present. Stop and ask the user to choose one avatar. Do not list every media asset across every avatar in this step.
- Step 2: after the user chooses an avatar, run
creatok avatars get <uid>for that avatar if asset details are missing or stale; when the target video model is already known, append--model "<model>". Then download displayable media URLs to local workspace files and present an asset-only selection list for that chosen avatar with a short asset selection number, asset number within the avatar, local Markdown previews for image/video/audio assets, and the required containing-folder hyperlink for each asset. Stop and ask the user to choose a specific asset. - The asset list is a complete media gallery for the selected avatar. Always display every available image, video, and audio asset returned by the CLI, regardless of the currently selected video generation model or whether that model can use a given media type as a reference.
- Do not filter, omit, down-rank, or explain away video/audio assets based on model compatibility during the display step. Model compatibility is handled later, only when preparing generation parameters.
- Use this exact interaction shape; do not replace it with a combined avatar-and-asset list:
可选数字人:
1. 数字人:小贝
描述:厨房口播风格
2. 数字人:产品讲解员
描述:未填写
请回复数字人编号。After the user chooses an avatar:
已选择数字人:小贝。
可选素材:
1. 素材 1

[打开图片所在位置](E:/Users/example/Documents/Codex/creatok/results/avatar-media/xiaobei/)
2. 素材 2

[打开视频所在位置](E:/Users/example/Documents/Codex/creatok/results/avatar-media/xiaobei/)
3. 素材 3

[打开音频所在位置](E:/Users/example/Documents/Codex/creatok/results/avatar-media/xiaobei/)
请回复素材编号。- Do not include asset count, asset preview, asset URLs, or any asset details in the first step, even if the API response already contains them.
- Before replying with the asset list, download each displayable media URL under
$CREATOK_HOME/results/avatar-media/<avatar_uid>/. Use stable filenames such as<avatar_uid>-image-1.webp,<avatar_uid>-video-1.mp4, and<avatar_uid>-audio-1.mp3. Preferthumbnail_urlfor images,urlfor videos/audio, and fall back tourlwhen a thumbnail is missing. - Follow
Mandatory Avatar Mixed-Media Galleryin./references/common-rules.md. Render only the media types actually returned as local Markdown media directives, and add the exact打开图片所在位置,打开视频所在位置, or打开音频所在位置link to each asset's containing directory. - Verify every downloaded media file exists and is non-empty before using its real absolute path in the reply. Never render or expose a remote URL.
- Do not silently choose an avatar or asset, even if only one avatar or one asset is available.
- Asset selection lists must include only the asset number and preview information. Do not include any other API fields, sync/registration labels, or recommendations based on backend fields.
- If the later generation submission needs
referenceImageKeys, use image avatar assets only. If the user selected a video/audio asset for a generation flow that currently requires an image asset, ask them to pick an image asset after the gallery has already been displayed. - If recommending is useful, base it only on visible quality or user preference.
- If raw API fields were accidentally shown, do not explain them. Move back to selection and tell the user they only need to choose the asset they want; preparation is automatic.
- If a selected provider-backed model needs registration, run that step automatically after the user chooses an asset.
- After the user selects an avatar asset, preserve the current/default video model unless the user explicitly asks to change models or a provider rejection requires another path.
- Using an avatar asset does not require switching to Seedance 2. For models whose capabilities do not require provider-backed avatar assets, pass the selected asset key as an ordinary reference image via
referenceImageKeys. - Offer a provider-backed/identity-preserving model such as Seedance 2 only when the user explicitly prioritizes identity consistency, explicitly asks for that model, or the current model rejects a real-person reference.
- If the selected model's capabilities include
avatar_provider_required:true, use avatar asset status only to decide whether preparation is needed. If the selected asset needs preparation, runcreatok avatars register <uid> --model "<model>"automatically before generation confirmation. Do not ask for permission and do not present this as a separate setup step unless it fails. - For
avatar_provider_required:true, callcreatok videowith both:referenceImageKeys:["<asset_key>"]avatars:["<asset_key>"]
- For
avatar_provider_required:false, pass onlyreferenceImageKeys:["<asset_key>"]; the avatar image is used as an ordinary reference image. - Do not combine avatar asset keys with ordinary local reference Asset keys in the same reference set unless the user is intentionally adding separate local reference images.
- If the user needs to create a new avatar, hand off to
creatok-avatar, then continue with the returned avataruidand asset keys. - If
creatok videoreturnserror.kind:"input_rejected", code40101, orerror.reason:"real_person", explain plainly that the selected reference image cannot be used by the current model as-is. Then offer the concrete next step: create or select an avatar using that image, ask for confirmation if creation or payment is required, and after the selected asset is prepared retry with a model whose capabilities sayavatar_provider_required:true. Do not stop after explaining the failure, and do not switch to a script-based workaround.
Multi-Segment Rules
- If the requested video is longer than the chosen model's maximum duration, the model should recommend splitting it into multiple segments.
- If the final video must be stitched from multiple generated clips, the model should explain that the user will need to assemble the clips afterward.
Inputs to clarify (ask if missing)
- ask only for what is still necessary to generate a good video
- prefer the direction, script, and selling points already established earlier in the conversation
- if details are missing, ask one or two short follow-up questions instead of requesting a full brief again
- prefer details that help AI generation directly, such as scene intent, visual style, pacing, product emphasis, and whether the user wants
Sora 2or a Veo model - when naming a model in tool calls or handoff instructions, use the exact official model id instead of aliases
Workflow
- Entry self-check
- Run
creatok doctor. If the command is not found, the CLI is not installed — guide the user to install it (see./references/common-rules.md) and stop. - If
data.api_key_configuredis false orerror.kindisauth, guide the user to configure the channel-specific key:CREATOK_API_KEYfor stable,CREATOK_API_KEY_PREVIEWfor preview. - Check for a newer CLI and, if the user agrees, update before proceeding — follow
./references/common-rules.md(Outdated CLI). - If
data.skills_driftis true, the installed skills are out of sync with the CLI — runcreatok skills installto resync (see./references/common-rules.md). - Run
creatok capabilitiesto resolve the default video model and its limits.
- Prepare local media Assets
- For each ordinary local reference image, run
creatok assets create --type image --file "<path>", parsedata.asset.object_key, preserve input order, and collect the formal keys inreferenceImageKeys. - For each local reference video, verify that the selected model advertises support, validate all locally readable constraints, then create a video Asset and preserve the returned key order in
referenceVideoKeys. - For a local first frame, run the same command and store the returned formal key as
firstFrameKey. - For a local end frame, run the same command and store the returned formal key as
endFrameKey. - Do not prepare ordinary reference images/reference videos and frame inputs for the same request.
- Asset creation happens before paid-task confirmation. Each created Asset remains in the user's media library and counts toward storage even if the user does not submit video generation.
- Avatar media already belongs to the avatar workflow; reuse its existing key and do not recreate it through
creatok assets create. - After all reference-video Assets exist, estimate with the same paid parameters and actual keys:
creatok estimate --service video_generation --reference-video-keys <key-1,key-2> --options-file options.json. Do not estimate V2V as T2V/I2V.
- Confirmation gate (mandatory)
- Summarize:
- model
- orientation
- definition and seconds, if relevant to the chosen model
- whether reference images are used
- whether reference videos are used
- whether first/end frames are used
- whether an avatar asset is used
- in Chinese, label this exactly as
数字人:使用 <name>,素材 <n>or数字人:不使用 - if no avatar is used, include a plain-language question such as: "Do you want to use an avatar for this video, or should I generate a regular video?"
- in Chinese, phrase that question as
是否使用数字人出镜/口播? - if an avatar asset is used, include the selected avatar name and asset number; do not expose provider asset ids
- whether the plan is single-shot or multi-segment
- any important limitation such as duration cap, portrait requirement, or manual stitching afterward
- exact estimated cost/credits from the estimate that used the final
referenceVideoKeysand all other paid parameters
- Ask for a simple confirmation in plain language, such as whether the user wants to start generation now.
- Do not submit the generation task until user says yes.
- Submit + generate video
- Run:
creatok video --prompt "<prompt>" (--options '<json>' | --options-file options.json) --out <run_dir>. - Use the exact approved prompt text for
<prompt>. Do not optimize, rewrite, translate, expand, or correct it during command construction. model,orientation,seconds, anddefinitionare always required inside the options object; never rely on server defaults.- Variable params (model, orientation, seconds, definition, …) go inside
--options, e.g.--options '{"model":"veo-3.1-fast-exp","orientation":"9:16","seconds":8,"definition":"720p"}'. Do not invent flags. - Use
--options-file options.jsonwhen the shell makes inline JSON quoting unreliable, especially in PowerShell. - Pass previously created local reference Assets through
referenceImageKeys. Do not also pass--ref, because that would create another Asset for each local file. - Pass previously created local reference-video Assets through
referenceVideoKeys. Do not also pass--ref-video, because that would create another Asset for each local file. - Pass previously created local frame Assets through
firstFrameKey/endFrameKey. Do not also pass--first-frameor--end-frame, because those flags would create another Asset. - Avatar assets are passed in
--options. - For ordinary reference-image use, add
referenceImageKeysto the complete options object, e.g.--options '{"model":"veo-3.1-fast-exp","orientation":"9:16","seconds":8,"definition":"720p","referenceImageKeys":["<key>"]}'. - For reference-video use, add the exact keys used for estimation to the complete options object, e.g.
--options '{"model":"doubao-seedance-2","orientation":"9:16","seconds":8,"definition":"720p","referenceVideoKeys":["<key>"]}'. - For explicit first/last-frame conditioning, use the formal Asset keys only when the chosen model supports the corresponding fields in
frame_input, e.g.--options '{"model":"doubao-seedance-2","orientation":"9:16","seconds":8,"definition":"720p","firstFrameKey":"<first_key>","endFrameKey":"<last_key>"}'. If the model supports only first frame, omitendFrameKey. Do not also passreferenceImageKeysfor the same request. - For provider-backed avatar use, add both
referenceImageKeysandavatarsto the complete options object, e.g.--options '{"model":"doubao-seedance-2","orientation":"9:16","seconds":8,"definition":"720p","referenceImageKeys":["<key>"],"avatars":["<key>"]}'. - The CLI submits, polls to completion, and persists artifacts automatically.
- Do not replace this command path with generated scripts or direct API calls.
- Respond
- Parse the stdout envelope. On success, the final video is at
data.result.video_url; treat it only as download input. - Follow
Mandatory Video-Only Result Responsein./references/common-rules.md: download and verify the video, render the required local Markdown media directive, and include the exact打开视频所在位置hyperlink to its containing directory. - The CLI writes
result.jsonunderartifacts.dirfor recovery. - If
erroris present, maperror.kindto./references/common-rules.mdand explain plainly. - For
input_rejected/real_person, use the avatar guidance above instead of treating it as a generic failure. The next assistant action should be to ask whether to create/select an avatar and retry, not just to report that no video URL was produced. - After the AI version is complete, the model may optionally ask whether the user also wants a live-action shoot version of the same idea.
Existing Task Recovery
- If the user already has a
task_id, runcreatok status --task <id> --type video_generationinstead of starting a new generation. - In recovery mode, do not ask the user to restate the prompt or creative brief if the task id is already available.
- The model can either:
- check the current task status once (omit
--wait) - or add
--waitto keep polling if the user wants to wait
- check the current task status once (omit
- If the task succeeded, follow
Mandatory Video-Only Result Responsein./references/common-rules.md; never returndata.result.video_urldirectly. - If the task is still queued or running, explain that clearly and offer to keep checking.
- If the task failed, explain the failure message if available and suggest the next best step.
Artifacts
Keep each run under $CREATOK_HOME/results/<run-name>/, including result.json and the downloaded video.
Thin Client Boundary
- Prefer using a prompt or brief that already came from
creatok-analyze-videoorcreatok-recreate-video. - If the user provided a brief rather than final prompt text, offer to draft or tighten a prompt, show the result, and wait for approval. Never tighten an explicit prompt automatically.
- This skill submits generation jobs, polls status, and persists fixed-format outputs.
- The model should not make the user restate their idea from scratch if the previous conversation already made the direction clear.
- After the user chooses or approves a prompt, pass it verbatim. Do not optimize it again, including prompts handed off from analysis, recreation, or prompt optimization.
- Natural user confirmations such as "generate it", "make the video", "go ahead", or "use this version" should be treated as intent to use this skill, as long as the cost confirmation step is still satisfied.
Handoff
- When reached from
creatok-analyze-video, the model should carry forward the chosen direction without making the user repeat it. - When reached from
creatok-recreate-video, the model should use the script or brief already developed in the conversation as the starting point for generation. - If generation was interrupted after submission, the model should help the user continue inside
creatok-generate-videowith the existingtask_idinstead of restarting the job from scratch.