Music Video No Music Creation — Open Skill

Music Video No Music Creation

Music Video No Music Creation is a public Open Skill on Digen. Open it to see what this workflow creates.

@MaverickF2

MV

114 7 83

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/1651550/2026-08-18/7aks64gp.jpg

# Music Video

Turn a one-line idea, lyrics, or character/scene images into a **music video**. Write a 60-second visual script first, generate **every on-screen character, location, and signature prop**, then a full song. Unless the user asks otherwise, **one episode visualizes the first 60 seconds** as **six 10-second silent videos**, each driven by that chapter's assets (not by song audio), then **mixed into one ~60s cut** with the original song as the only soundtrack. Run through assets and song without stopping, then generate **only the first video** and wait. After the user confirms that clip, generate **all remaining videos in one go**, then mix.

This Skill has **no** structured project state. Keep this episode’s facts in Markdown and reuse canvas asset URLs. Do not assume a `characters` collection you can update.

**Never generate storyboard images.** The only images are **script assets**: one picture per on-screen character, per location, and per signature prop. Video generation uses **ref2v only**. There is **no TTS**. **Never pass the song into `generate_video`** (`audio_url` is forbidden). On-screen people **do not sing or speak**; mouths stay closed. The song is added only at mix, on muted picture.

## Global Language Lock (mandatory, highest priority — overrides every reference)

[Language Protocol] Follow the language of the **user's typed sentences**, not platform chrome.

**Chrome trap (lock only `typed_user`):** strip the slash-invoke line (CJK or English; it names this Skill after `/`), the whole `<untrusted_skill_content>` dump, `[session_assets]`, tool traces, and injected English such as "The synthesis failed…". **CJK wrapper ≠ `zh-CN`. English Skill dump ≠ `en`.** Count Han only in leftover `typed_user`. Zero Han → not Chinese (English words → `en`) and **zero CJK** in every user-visible string. Majority Han → `zh-CN`/`zh-TW` even though this handbook is English. English request + Chinese reply is a failure. Chinese request + English reply / English buttons / `name="Part 1"` is a failure. Translate user copy at runtime — never paste handbook English, and **never put Han characters into this Skill**.

**Three layers, never mixed:** `user_lang` (everything the user can read), `dialogue_lang` (sung lyrics only, in the song and the lyric column), MODEL English (`generate_image` / `generate_music` body / RM35). Full algorithm: `references/00-language.md`.

On the **first user message**, silently `read_skill_file` `references/00-language.md` once, then lock both languages **before any user-visible sentence and before any `generate_*` / `create_document`**. Do not re-read it every stage. Do not re-detect after tools, English files, memory tools, `[session_assets]`, or "next episode".

**No process narration (hard):** a turn that only calls `read_skill` / `read_skill_file` / `write_todos` / `memory_whoami` / `memory_query` / `list_models` must output **zero user-visible text**. Do not say you are confirming channels, listing a production flow, checking preferences, archiving a brief, or transcribing lyrics.

The first user-visible sentence must already be in `user_lang` and must be about **who / look / story / song / pictures**.

This Skill and `references/` are English (handbook only) and must contain **zero Han / CJK characters**. Handbook English is not a reason to avoid English replies. If the user typed English, reply in English.

| Layer | Scope | Language |
|---|---|---|
| **User-facing** | Replies, story, buttons, todos, asset `name`, canvas document body | `user_lang` (sung lines use `dialogue_lang`) |
| **Video / image / music-instruction** | RM35 six sections, `generate_image`, `generate_music` body | **English always**; only `Lyrics:` keeps `dialogue_lang` |

`zh-CN` vs `zh-TW` is a lock. One turn = one `user_lang`. English `user_lang` → zero CJK. Other `user_lang` → no leftover English production jargon (translate buttons, todos, and `name` at runtime). If a mix is found, rewrite before send; do not