AI Avatar · Open Skill 公开技能
AI Avatar
**AI Avatar · Script to Look to Voice to Spoken Cut · ref2v Native · TTS-Driven** *The agent skill for hosts and creators who want a finished **portrait presenter video**—not a storyboard grid, a mute talking-head reel, or speech invented inside the video prompt with no real voice track* **AI Avatar** is a production-native Agent Skill for Digen. It orchestrates a complete **reference-to-video (ref2v)** pipeline for one spoken presenter episode: **Idea → speakable script → text shots → character look + designed or cloned voice → one 10s audio-driven ref2v final cut** No storyboard grids. No contact sheets. No per-shot i2v chain. No six-clip stitch. Speech is **generated as audio** with `generate_tts`, then passed as `audio_url`. The video model lip-syncs to that track. One episode, one video—front-facing medium and close-up windows inside a single 10s render. ## What you get | For creators | For the production stack | | --- | --- | | **Beginner-first** — no script? the agent writes a 10-second presenter arc and runs to the cut without stopping | **Opinionated pipeline** — 3–6 in-clip shots, front-facing lock, one look plate, one dialogue track, multi-ref prompt encoded in-skill | | **Spoken-host first** — synopsis and shot list as **what is said and how the host is framed**, not a silent mood board | **ref2v-first** — no accidental i2v / t2v / storyboard / per-shot video chains | | **Identity of face and voice** — a character look plate plus a designed or cloned timbre lock the host across the whole clip | **Audio-driven cut** — `generate_tts` → `audio_url`; never put audio inside `input_urls` | | **Living presenter grammar** — medium and close-up, camera-facing, face large in frame, same studio light in one coherent 10s timeline | **Dense prompts** — six-section English scaffold + `[Shot N]` time windows + verbatim `<d>` lines in speaking language | | **Delivery that continues** — after the cut, buttons are **Finish creation / Edit dialogue or visuals**, already in your language | **Progressive disclosure** — craft lives in `references/`, not bloated context | | **Plain host voice** — short lines about the topic, the lines, and the clip; no pipeline jargon unless you ask | **Marketplace-ready** — clear triggers, defaults, and tool contracts | ## Pipeline | Stage | Output | | --- | --- | | **Intake** | Lock language + **9:16** + **10s** + **single host** + 1 episode (no orientation question) | | **Script** | Speakable lines for this episode — 3–6 sentences; ~26 characters or ~22 words for 10s; overflow becomes the next episode | | **Text shots** | 3–6 presenter cards — medium / close-up only, front-facing, per-shot seconds summing to 10 | | **Look** | One vertical character plate (`t2i` / `i2i`). User face upload beats AI when provided | | **Voice** | One episode dialogue track (`tts.design` or `tts.clone`). Short English timbre line; `Speed: Medium-fast` | | **ref2v** | One six-section prompt + look refs + `audio_url` → **10s** `final_videos` cut. Lips follow the TTS track | | **Sequel** | Next episode in this thread — reuse look and voice, new lines, new shot list, one new 10s video | ## Production stack | Parameter | Default | Notes | | --- | --- | --- | | **Episode** | **10 seconds** | One `ref2v` video. Overflow → next-episode seed, not jammed in. User asks longer → explicit duration or more 10s chapters | | **Engine** | `ref2v` · `reference_to_video` | Multi-ref identity lock. Forbidden: `i2v` / `ai2v` / `t2v` / `fl2v` / director | | **Clip duration** | **10 seconds** | Always set. Shots inside the clip are 3–6 windows, not separate videos | | **Video orientation** | Portrait · **9:16** | Landscape only if you ask. Look plate stays vertical even if the cut is landscape | | **Presenter** | **Single host** | Dual / co-host / podcast duo only when the brief asks. Portrait dual = A/B cuts, not a two-shot | | **Image refs** | Character look required; user scene photo optional | User uploads preferred. No storyboard stills, no grids, no prop sheets | | **Ref order** | Character look(s), then optional scene | Subject labels in the prompt must match `input_urls` exactly | | **Speech** | **TTS-driven, audio-locked** | `generate_tts` on the full episode script. Pass the URL as `audio_url`. Forbidden: in-prompt `EXACT LINE` as the only speech, mute ref2v, audio inside `input_urls` | | **Timbre** | **Short design line** | One English line, 10–16 words, `Male,` / `Female,` / `Neutral,` + `Speed: Medium-fast`. Clone if you upload a sample | | **Framing lock** | **Medium or close-up** | Front-facing camera. Face about 35–55% of frame height. Forbidden: wide, back view, walking away | | **Dialogue** | **On** | Spoken presenter lines required. No on-screen subtitles / captions burned into pixels | | **Cut grammar** | **Inside one clip** | Time windows in one 10s render. No storyboard grids, no per-shot i2v chain, no default stitch | | **Confirm** | **After delivery** | First episode auto-runs; pause only if you ask, then buttons after the video | | **Series** | **Next episode** | Reuse look and voice when unchanged; new script + shots + TTS + cut each time | | **Language** | **User-typed lock** | Replies in your language; spoken lines and TTS stay in narration language; image / video / timbre prompts are English | ## Modes | Mode | You bring | Agent delivers | | --- | --- | --- | | **Full auto-run** | Nothing — or “make a presenter video” | Invent a 10s host script → look → voice → one spoken cut | | **Idea-first** | Topic + one-line premise | Expand to speakable lines → full pipeline | | **Script-first** | Verbatim lines or pasted host copy | Lock script → text shot table → look → TTS → ref2v | | **Face-driven** | A person photo + brief | Bind the upload as the look; do not redraw the face you uploaded | | **Voice clone** | A voice sample + brief | `tts.clone` from your audio; skip voice design | | **Dual podcast** | Two hosts / co-host brief | Two look plates; portrait A/B cuts; one dominant-speaker track | | **Single-stage edit** | “Change the lines” / “Redraw the host” / “Redo the voice” / “Regen video” | That stage only, then remake the cut | | **Same-thread sequel** | “Next episode” / “continue the series” | Continue from end-state · look/voice reuse · one new 10s video | | **Landscape on request** | “16:9 / horizontal” | Override the 9:16 default for this run only | ## Example prompts **Full auto-run** > Make a portrait presenter video, 10 seconds, with spoken lines. **Script-first** > Use this verbatim copy only — do not rewrite: “Three habits that keep your mornings calm. Start with water, then light, then one quiet task.” **Face-driven** > This image is the host. Build a 9:16 talking-head from it. Topic: weekend travel tips. **Voice clone** > Clone this voice sample. The host explains a 10-second productivity tip. Portrait. **Dual podcast** > Two hosts, a short tech briefing. Portrait, 10 seconds, they take turns — not a two-shot. **Series** > Continue the last episode — episode 2 is the recap close. **Non-English narration** > Reply to me in English, but the spoken lines in the video must stay in Japanese. **Landscape override** > Same host, landscape 16:9, 10 seconds. ## When to use - Vertical talking-head, host, podcast, pitch, or news-style presenter cuts - One-line topics, pasted host scripts, or a face / voice sample to lock identity - Creators who want a **real TTS track** driving lip-sync, not prompt-only speech - Dual-host portrait videos that cut A/B inside one 10s clip - Anyone tired of storyboard grids, mute presenter reels, or six separate talking-head clips stitched after the fact > **Not the right tool when** you need a 60-second six-clip mix, a product-only pack-shot ad with no on-camera host, lip-sync to a generated song, first-person POV walkthrough, storyboard grids for client sign-off, horror / gore, prompt-only in-clip speech with no `audio_url`, or a drama series with many unrelated locations per minute. ## Invoke ``` /ai-avatar ``` Or: *"Turn this into a 10-second portrait presenter video — spoken lines, host locked, TTS audio, one ref2v cut."* **Your lines · Your host · One coherent ten seconds.**
SocialAd
142 11 112
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3325120/2026-08-17/vz8tyetb.jpg
# AI Avatar DIGEN skill for presenter videos. Turn a user script or brief into a talking-head video: write spoken lines and a text storyboard, generate a character look and voice, then produce one episode with multi-reference video. There is no structured project state; progress uses the conversation, canvas assets, and `write_todos`. ## Global Language Lock (mandatory, highest priority) This Skill and every file under `references/` are **English only**. **Forbidden:** Han / CJK characters anywhere in these source files (locale codes such as `zh-CN` are allowed). **Document language is not the user-facing output language.** Headings, tables, and JSON examples are internal hints. Translate them into the locked `user_lang` before showing anything to the user. Do not treat document English as the default reply language, and do not paste English templates as-is when `user_lang` is not English. ### Two language layers (must not override each other) | Layer | Scope | Language | |---|---|---| | Reply language `user_lang` | All user-visible text: body, table headers and helper cells, confirmations, `set_guidance` `text` and `action.content`, human-readable canvas document titles | Locked on turn 1; same language for the whole session | | Spoken language `speak_lang` | Speakable lines, TTS `text`, `<d>…</d>` inside the video prompt | Default = `user_lang`; split only when the user explicitly sets a narration language | | Model prompts | `generate_image` / `generate_video` prompt body (six-section video prompt) | **Always English**. Exception: dialogue inside `<d>` stays `speak_lang` verbatim | Do not translate the proper names **DIGEN** and **AI Avatar**. Specs such as 16:9 / 9:16 may stay. Keep user-supplied names, brands, and spoken lines verbatim. ### Initial lock (before the first reply) 1. Detect `user_lang` from the user's **first creative description** (IETF: `zh-CN` / `en` / `ja` / `ko` / `fr`, etc.). Strip system injections first: `[user_uploaded …]`, default conversation titles, upload metadata — these do not indicate user language. 2. Mixed input follows the **main creative request**, not button copy or a Chinese system shell. 3. Explicit "reply in Chinese / reply in English" → follow that instruction. 4. Short Latin-letter titles (e.g. `Paris Getaway`, `AI tips`) with no Han characters → `en`. **Forbidden** to set `user_lang=zh-CN` only because some other UI chrome is Chinese. 5. Han characters present, or the user explicitly wants Chinese replies → `zh-CN`. 6. Undeterminable → `en`. 7. **From the first reply onward**, everything user-facing uses `user_lang`. Greeting in one language then switching is forbidden. 8. `speak_lang`: do not set it unless the user named a narration language; runtime then equals `user_lang`. ### After lock - Source of truth is the locked `user_lang`. Progress pings, button clicks, or error reports in another language **do not** change the reply language. - Only switch: the user clearly says "reply in X from now on / switch to X". Change `user_lang` only; do not auto-translate existing dialogue unless they ask for a rewrite. - Changing `speak_lang` affects new lines and TTS only; existing `slot_dialogues` are not auto-translated unless requested. - **Do not mix languages in the same user-facing turn** (except proper names and spec numbers). If `user_lang=en`, user-visible text **must contain no Han characters** (including buttons). If `user_lang` is not English, translate the English templates in this skill; do not paste English button labels such as "Confirm dialogue". - Before every user-facing output, self-check body, headers, button `text`, and `action.content` are all `user_lang`; rewrite if mixed. - Do not speak field names such as `user_lang`, `zh-CN`, or `input_class` to the user. Detection details: `references/intake.md`. Button language: `references/guidance.md`. ## Talking to the user (mandatory; outranks any intro) User-visible replies may contain **only** (and must be `use