Seedance + Waoo 短视频流水线
by @wusyu
自动化短视频工作流(story-to-video pipeline):从剧本/分镜到生成、字幕 ASR、TTS、合并交付,支持 Seedance / Vidu / MiniMax 多厂商路由。
clawhub install seedance-waoo-video-pipeline📖 About This Skill
name: seedance-waoo-video-pipeline description: 自动化短视频工作流(story-to-video pipeline):从剧本/分镜到生成、字幕 ASR、TTS、合并交付,支持 Seedance / Vidu / MiniMax 多厂商路由。
Seedance + waoowaoo Video Pipeline
Overview
Use this skill for story-to-short-video work where:
Seedance upstream must support its own independent configuration for:
This upstream configuration must remain decoupled from downstream image / video / TTS / ambience settings.
This skill is not tied to one video vendor. Model/provider choice stays configurable. Do not force Vidu unless the user explicitly asks for it.
When to use
Typical triggers:
Trigger rules
Auto-trigger
Trigger this skill immediately when:
Conditional trigger
Use this skill but enter mid-pipeline when the user already has part of the chain ready, such as:
In that case, resume from the highest reliable completed stage instead of forcing a full restart.
Do not trigger
Do not use this skill for:
Core principle
先保主条目,再扩张;先保真实状态,再汇报完成。
默认从 0 开始。 If the user gives only one short idea / one sentence / one文案, this skill must start from the Seedance pre-production side:
Do not jump directly into middle-stage project APIs, image regeneration, or video submission unless the user explicitly says they already have script/storyboard/panels ready.
Treat the pipeline as 7 execution phases instead of abstract layers:
0. 剧本前置思考 / Story Intent Brief 1. 目标确认 2. 素材确认 3. 视频生成 / 获取 4. 单条完善 5. 多条拼接 6. 交付汇报
Default execution policy
When the user does not specify otherwise:
1. Prefer one fully finished main clip over many half-finished clips 2. Treat database/project state as source of truth 3. Do not count probe tasks as formal deliverables 4. Subtitle text is authoritative unless the user explicitly overrides it 5. Ambience must sound like environment, not generic music bed 6. If quota is tight, finish the current main clip end-to-end before expanding 7. Lipsync is an optional downstream stage, not a default requirement
User modes
Before running, decide which mode the user is asking for.
Mode A — 单条保交付模式
Use when the user wants one clip fully usable before anything else.Default behavior:
Mode B — 逐步确认模式
Use when the user wants to inspect intermediate outputs.Typical checkpoints:
Mode C — 配额敏感直跑模式
Use when the user says “直接做 / 不要一步步问 / 额度有限”.Default behavior:
Read: references/checkpoint-policy.md
Human-in-loop checkpoints (only two)
The pipeline should run internally end-to-end, but it must pause for user decision at only two checkpoints:
1) 四件套确认(剧本阶段) 2) 首图确认(首图阶段)
If user provides modification hints at either checkpoint, do not handcraft edits manually; route hints back into workflow driver via revision approvals.
Exception:
runtime.pipelineMode=vidu_simple, the flow may run direct video generation from topic without mandatory pre-production checkpoints (unless user explicitly asks for checkpoint mode).Unified workflow driver approvals
When scheduling with scripts/run-seedance-workflow.cjs, continue actions must map to stage-specific approvals:
seedance-four-pack-confirm--approval four-pack-approved
- revise: --approval revise-four-pack --revision-note "<用户修改意见>"
first-image-confirm / first-image-internal-generated / first-image-asset-confirm--approval first-image-approved
- revise: --approval revise-first-image --revision-note "<用户修改意见>"
first-image-asset-blocked (配置补齐后重试首图)--approval retry-first-imageIf approval value and stage do not match, the driver must stop with explicit error instead of silently continuing.
First-run configuration
On first run, do not force internal words like provider on the user.
Use only:
Auto-detect runtime.pipelineMode:
minimax_full (full upstream + downstream)vidu_simple (direct video-first, minimal keys)seedance_simple (direct video-first, minimal keys)Use capability-based routing (not hardcoded model names):
text->video providerimage+text->video providertext->image firstDefault routing rule (image + text input):
first_frame binding and skip first-image asset generation.Runtime overrides:
--video-vendor --image-vendor --prompt-mode --prompt-style "..."--prompt-camera "..."--prompt-scenario --prompt-auto-fallback (默认 true)--prompt-min-score <0-100>(默认 80)Prompt engineering overlay (now built-in):
run-seedance-workflow.cjs --action start will generate prompt-pack.result.jsonpromptQuality(score/level/suggestions)用于快速判断可用性promptFallback reportscripts/build-seedance-prompt-pack.cjsASR routing (subtitle alignment):
volc_asr_auc (X-Api-Key + volc.seedasr.auc)volc_vc (appid + token, resource vc.async.default)faster-whisperWhen user explicitly requests “按剧本锁定/严格按剧本”: prefer Seedance strict-script profile
content: text + image_url(first_frame)duration / resolution / generate_audio / camera_fixed / draft / seed / return_last_framefirst_frame/last_frame with reference_image in one request bodyAdapter note (current release):
minimax / vidu / seedancedownstream.waoo.video/image) or multi-map (downstream.waoo.videos.*, downstream.waoo.images.*)If configuration is incomplete, run-seedance-workflow.cjs --action start must return a structured configuration-guidance result instead of throwing or silently continuing.
Hard rule for formal Seedance execution:
E01_前置思考.md / E01_剧本.md count as formal Seedance outputs only when upstream.seedance is independently configured with a real 厂商 / 接口地址 / 模型名 / API Key.upstream.seedance is missing, placeholder-only, or uses demo credentials, explicitly say that formal Seedance pre-production is not yet runnable and switch to configuration guidance mode.Read:
references/first-run-guidance.mdreferences/configuration-template.mdPhase 0 — 剧本前置思考 / Story Intent Brief
When the user starts from only a topic /一句文案, do not jump directly into script body or production calls. First build a compact Story Intent Brief that locks:
This brief is part of the formal Seedance pre-production stage, not an optional private thought.
It should be reflected forward into E01_剧本.md, E01_素材清单.md, and E01_分镜.md.
User confirmation rule:
E01_前置思考.md, E01_剧本.md, E01_素材清单.md, E01_分镜.md), surface that pack to the user for confirmation.Read:
references/story-pack-spec.mdreferences/pipeline-overview.mdPhase 0.5 — Prompt Engineering Overlay(已并入)
Before first-image or video submit, apply Seedance prompt-engineering guardrails:
1) Declare mode first: Text-only / First-Frame / First+Last / All-Reference.
2) Add explicit Assets Mapping (@image1/@video1/@audio1 each controls what).
3) Use timecoded beats (one major action per segment).
4) Keep prompt concise and controllable; add Negative Constraints when needed.
5) For strict-script requests, prioritize identity continuity + camera continuity.
If user asks for style-rich cinematic prompts, generate from the prompt playbook and then map into panel execution context (instead of freeform rewriting every time).
Read:
references/seedance-prompt-engineering.mdPhase 1 — 目标确认
Before generating anything, lock the exact target:
If the target is ambiguous, resolve it first. Do not generate against a guessed panel.
Phase 2 — 素材确认
Resolve the active inputs:
srtSegment or equivalent)If multiple versions exist, choose the current main clip explicitly.
Before a new generation or first-image approval, run a guard pass for:
Read:
references/waoo-input-spec.mdreferences/clip-state-contract.mdreferences/panel-order-guard.mdPhase 3 — 视频生成 / 获取
If the clip does not exist yet: 1. prepare valid input media 2. submit video task 3. poll status 4. retrieve file / real media URL 5. download the actual file 6. classify the result
Possible classifications:
If the clip already exists, do not regenerate unless the user asks.
Read:
references/model-routing.mdreferences/runtime-policy.mdreferences/output-contract.mdreferences/failure-fallbacks.mdPhase 4 — 单条完善
For a single clip, finish in this order: 1. subtitle alignment 2. TTS / dialogue decision 3. ambience decision 4. optional lipsync 5. final single-clip export
Subtitle rule
The active subtitle text wins unless the user explicitly changes it. Do not borrow text from neighboring panels.Audio rule
Audio strategy must match the user’s request:Read:
references/audio-policy.mdLipsync rule
Lipsync is optional and should only be used when clearly requested. Do not assume lipsync belongs in the main path.If lipsync is used:
Read:
references/lipsync-decision-tree.mdPhase 5 — 多条拼接
Only merge clips after each included clip has an honest state label.
Before merging:
Merged output should not be reported as “完整成片” if one included clip is still experimental.
Read:
references/rhythm-rules.mdreferences/audio-policy.mdPhase 6 — 交付汇报
Always distinguish:
Never call a clip “final” if:
Result reporting policy
Always report in this structure:
Never blur these categories:
References to load when needed
references/pipeline-overview.mdreferences/story-pack-spec.mdreferences/waoo-input-spec.mdreferences/model-routing.mdreferences/runtime-policy.mdreferences/output-contract.mdreferences/failure-fallbacks.mdreferences/checkpoint-policy.mdreferences/clip-state-contract.mdreferences/audio-policy.mdreferences/lipsync-decision-tree.mdreferences/rhythm-rules.mdreferences/panel-order-guard.mdScripts provided
Keep deterministic helper scripts small and single-purpose.
Current scripts:
scripts/get-panel-context.tsscripts/guard-panel-order.tsscripts/guard-merge-order.tsscripts/prepare-video-submit.tsscripts/submit-official-video.tsscripts/merge-final-videos.tsscripts/poll-official-video.tsscripts/download-official-video.tsscripts/generate-tts.ts (TTS 选择后子脚本级配置检查,缺失返回结构化 configuration-guidance)scripts/check-asr-config.ts (ASR 选择后子脚本级配置检查,缺失返回结构化 configuration-guidance)scripts/prepare-ambience.ts (环境音选择后子脚本级配置检查,AI 模式缺失返回结构化 configuration-guidance)scripts/mix-final-video.tsscripts/build-delivery-manifest.tsscripts/self-test-workflow-driver.cjs (用于校验 workflow driver 的阶段/审批映射)scripts/run-video-submit-chain.cjs (首图确认后统一调度 提交/轮询/下载)scripts/build-dispatch-plan.cjs (只产出调度指令与检查点,不执行)scripts/diagnose-environment.cjs (新机器首跑环境自检)Guardrails
Success definition
A clip is fully delivered only if all are true: 1. the target clip/panel is correctly identified 2. the video file is formally generated or formally accepted 3. subtitles match the clip content 4. narration/dialogue policy matches the user’s request 5. ambience is correct for the scene and audible 6. final mp4 is exportable and sendable 7. delivery status is reported truthfully
If any item is missing, report the clip as partial, not complete.