Used for the CapCut "Digital Human" panel. Stock digital humans and custom real-person materials use different authorization paths; any upload, voice cloning, or paid generation must be precisely approved.
When to use
- Select the digital human avatar, voice, script, background, and category.
- Use stock digital humans, or upload authorized photos, videos, and voices to create a custom digital human.
- Preview, submit, query, resume, verify, and add the output to the draft.
Capability boundaries
- ✅ Can do: stock filtering, request/preview planning, authorization gating, idempotent tasks, cost and output verification.
- ⚠️ Requires conditions: custom real persons require portrait/voice rights and upload approval; paid Providers require budget and handshake.
- ❌ Should not use: do not clone unauthorized voices, do not upload irrelevant files, do not treat queued/succeeded as final video acceptance.
Quick start
You can directly say: "Pick a professional female anchor and a Mandarin female voice to make a preview", "Use this authorized photo to create a digital human, cost no more than 5 yuan", "Continue querying the last task, do not resubmit". On first use, load feature flow。
Run contract
- Trigger conditions: the user requests a digital human, AI anchor, digital avatar, voice selection/cloning, or digital human talking-head video.
- Required capability:
runtime.entitlement_verify、runtime.control_catalog、runtime.controls、media.tts_provider、render.native_task。 - Minimum CLI version:
1.6.19; keep it disabled when remote Provider, upload, cost, or native task capability has not obtained a real handshake. - Default risk:
external_native_execution。 - Input facts: avatar/voice resources, script summary, background, purpose, Provider, rights, portrait/voice authorization, upload scope, budget, and validity period.
- Confirmation points: real-person material upload, voice cloning, paid submission, retry, and applying to draft each use separate approval.
- Success evidence:
native_export; task queued/succeeded or the existence of an output file is not sufficient to replace identity, audio-video, and native export acceptance. - Prohibited actions: do not substitute a Pro subscription for portrait/voice rights, do not upload unapproved materials, record secrets, silently resubmit ambiguous requests, or reuse mismatched approvals.
Workflow
Step 1 — Search and authorization
Search the stock catalog and save candidates, filtering rationale, and resource rights; for custom sources, verify authorization first.
Step 2 — Construct preview
Construct a stable request summary and the preview plan in feature flow .
Step 3 — Approve submission
Submit only after the user reviews the avatar, voice, script, background, cost, and upload scope.
Step 4 — Query and resume
Use a stable request/task ID to query or resume; do not create a new request for an uncertain state.
Step 5 — Verify and apply
Verify output identity, duration, audio-video sync, and cost receipt, apply to an isolated draft, then complete cold reopen, playback, and the required native export.
Rules
- Portrait rights, voice rights, upload, and cost are approved separately.
- The request ID is generated from a stable summary; the same request must not be silently resubmitted.
- Credentials only reference environment variable names and do not enter the task body.
- Final delivery evidence must reach the playback/native export level required by the user.
Gotchas
- Pro subscription treated as authorization: A subscription does not replace portrait and voice rights.
- Preview script and submission script drift: a digest change must be re-approved.
- Billing again after timeout: first query the provider status using the task ID.
- Unclear purpose of stock audio: verify the channel and commercial use.
- Claiming completion just because an artifact exists: identity, audio-video, billing, and CapCut acceptance are still required.
Security and Data
Real-person photos, videos, and voices are sensitive materials; by default they are not uploaded, shared, or retained long-term. Only after precise approval are they sent to the specified Provider, and minimal summaries and audit information are retained.
For the minimal Job, see examples/minimal-job.json。