Communitygithub.com

muyunxue/dance-mmd-subtitle-kit

Design and deliver subtitle style mockups and animated comparison samples for the MMD/K-pop dance videos — S1–S6 style catalogue (Y2K chrome, minimal kinetic, glitch, mix&match editorial, graphic emphasis, hand-marker), PIL/numpy effect recipes, font list, contact-sheet/comparison video conventions, and the parallel-subagent workflow used for S4 vs S6. Load this when asked 出几个静态帧方案/参考女团PV字幕/做个小样/对比几个风格, or when choosing a visual direction before building a full-length subtitle track.

dance-mmd-subtitle-kit 是什么?

dance-mmd-subtitle-kit is a Claude Code agent skill that design and deliver subtitle style mockups and animated comparison samples for the MMD/K-pop dance videos — S1–S6 style catalogue (Y2K chrome, minimal kinetic, glitch, mix&match editorial, graphic emphasis, hand-marker), PIL/numpy effect recipes, font list, contact-sheet/comparison video conventions, and the parallel-subagent workflow used for S4 vs S6. Load this when asked 出几个静态帧方案/参考女团PV字幕/做个小样/对比几个风格, or when choosing a visual direction before building a full-length subtitle track.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/muyunxue/dance-mmd-subtitle-kit/tree/HEAD/skills/style-frames-compare

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Subtitle Style Mockups / Static Frames / Comparison Samples

0. Research First, Then Deliver

Summary of public research on girl-group PV subtitles (2024 KCI paper + K-pop Y2K Seoul style guide):

  • Graphic Emphasis: large, irregular strokes with thick-thin contrast, decorative letters (Blackpink / XG poster style);
  • Mix & Match: serif + sans-serif + condensed + italic mixed, editorial magazine feel;
  • Minimalism: clean sans-serif, no decoration, white space, appearing with the beat (NewJeans / aespa kinetic typography);
  • Futurism: digital sans-serif + glitch / RGB offset / scan lines;
  • Y2K Chrome + Stickers: chrome bubble lettering, candy colors (hot pink + aqua), sticker collage, sparkle stars;
  • Handwritten Diary Feel: marker/highlighter + sticky notes + doodles (NewJeans youthful vibe).

1. Six Adapted Styles for Final Video (S1–S6)

CodeStyleKey ElementsBest For
S1Y2K Chrome + StickersBungee chrome gradient + pink badge + sparkle starsMost "girl-group" feel; pink/aqua can swap to violet-pink
S2Minimal DynamicAnton white large text, offset, thin lines, Silkscreen small textStandard lyrics version; safest, doesn't overpower background
S3Glitch FuturismRubikGlitch + Anton, RGB offset, scan lines, HUD cornersBreak / transitions
S4Mix & Match EditorialGeorgia Italic × Bebas Neue × Archivo Black, tape, GO! color blocks, sticky notesYouthful/editorial feel, paragraph transitions
S5Graphic EmphasisAnton giant text + white sticker outline + pink offset + stripesChorus burst, short words
S6Handwritten / MarkerPermanent Marker + pink fluorescent block + sticky notes + ♥★ arrowsInterlude / close-up embellishments

2. Generate Static Frames (PIL + NumPy, No AI Libraries)

Scripts:

  • 字幕\build\kpop_styles.py — S1–S6 six 2560×1080 static frames (2025 research version)
  • 字幕\build\art_frames.py — Early 6 artistic text schemes (glitch slices, neon breakdown, 3D giant text, collage, outline echo, vertical layout)
  • 字幕\build\gothic_art.py — Full-screen gothic (rejected by user, kept for archive)

Font directory: 字幕\build\fonts\ (Anton, ArchivoBlack, BebasNeue, Bungee, Monoton, PermanentMarker, RubikGlitch, Silkscreen, PirataOne, UnifrakturCook) + C:\Windows\Fonts (Georgia / Georgia Italic / Microsoft YaHei / Impact / Arial Black).

Download fonts (Google Fonts GitHub raw works):

https://raw.githubusercontent.com/google/fonts/main/ofl/<family>/<File>.ttf

Common Effect Functions (PIL / NumPy)

  • Text Layer: per-character rendering with tracking (text_img), stroke_width / stroke_fill for outline;
  • Chrome Text: vertical multi-segment gradient applied to alpha mask (gradient_fill) + diagonal highlight band;
  • Sticker Outline: dilate alpha with MaxFilter(3) N times, then recolor;
  • Offset / Glitch: translate RGB channels separately (chroma), random horizontal band displacement (glitch_slices), scan lines;
  • 3D Text: offset and layer the same text multiple times, with a deep-purple to lavender gradient from far to near;
  • Halftone: grid dot overlay (halftone);
  • Handwritten Highlighter: semi-transparent rounded rectangle behind text + GaussianBlur;
  • Sticky Notes / Tape: semi-transparent rectangle + thin line texture + rotation;
  • Sparkle Stars / Hearts: 4-point star polygon, double-circle + triangle heart shape;
  • Grain: np.random.normal overlay at 1–3 levels to prevent banding.

3. Dynamic Samples (ASS Animation)

  • 5s Three Styles: 字幕\build\styles_anim.py → 公众号/输出/字幕风格参考/小样_S2_5s.mp4 etc.;
  • S4/S6 30s: 字幕\输出\S4S6_30s\ (two sub-agents each produce one version, see below);
  • Flare FLARE: flare.py + flare_video.py; Neon: neon_wide.py;
  • Avoid Neon Completely: avoid_side2.py.

Animation Patterns: slam in (\fscx118→100 + \t + \blur), rotate-fall-in (\frz + \t), slide in (\move), fade in, color block zoom/wipe (\p1 + \fscx), sticky note slide up, beat pulse (every 0.447s for 134BPM beat).

4. Comparison Delivery Standards

  • Single Sample: 2560×1080 / 30fps / H.264 crf16 / faststart; 30s = 900 frames, 5s = 150 frames.
  • Comparison Video: vstack top/bottom, each strip scaled to 1280×540, output 1280×1080 (or 3 strips → 1280×1620), overlay labels with ASS.
  • Keyframe Table: 2×2 / 2×3 / 3×3 grid, each cell 853×360 or 1280×540, with style name and timestamp label.
  • Explanation md: style description + file table + timeline + known limitations.
  • Examples: 字幕\输出\字幕风格参考\ (6-style static + S2/S4/S6 5s comparison), 字幕\输出\S4S6_30s\ (two 30s versions + comparison).

5. Parallel Sub-Agent Workflow ("Sub-Agents Work Separately")

  1. Master agent prepares shared base footage (cropped + slightly darkened) → _base_30s.mp4; copies fonts/ to output directory; writes cue sheet (relative time).
  2. One sub-agent per style, prompt must include:
    • Absolute path to base footage, output directory, output filename (S4_30s.mp4 / S6_30s.mp4);
    • Font directory, ffmpeg path, hard ASS rules (time format, Style color values with no trailing &, fontsdir relative, ASCII filenames);
    • Line-by-line timeline (8 lines) + style description + "No Chinese / Don't cover faces" constraints;
    • Self-check requirements (ffprobe for 30s, extract frames to check text, no Chinese, faces clear).
  3. Each sub-agent writes only files with its own prefix, no overwriting; reports back layout/animation/encountered issues.
  4. Master agent collects all: runs s4s6_compare.py to produce comparison video + keyframe table + unified explanation md; then extracts frames itself for final acceptance check.

6. Selection Recommendations (Violet-Pink Neon Stage + Winged Character)

  • Safest: S2 Minimal Dynamic;
  • Most Girl-Group Flavor: S1 Y2K Chrome (swap colors to violet-pink theme);
  • Paragraph Transitions: S4 Mix & Match;
  • Burst: S5;
  • Interlude / Close-up: S6;
  • Break: S3.
  • User explicitly rejected: full-screen gothic, blood-red color scheme. Do not produce gothic-style directions.

7. Acceptance Checklist

  • Static frames are 2560×1080, no Chinese typos
  • Dynamic sample duration verified by ffprobe (5.000 / 30.000)
  • Frame extraction confirms subtitle presence, no face covering, no Chinese
  • Comparison video + keyframe table + explanation md all present
  • Style names / filenames unified (S4_30s.mp4, 对比_S4S6_30s.mp4)

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

muyunxue/dance-mmd-subtitle-kit

Hard rules, templates, ffmpeg commands and failure diagnosis for authoring ASS/SSA subtitles and burning them with libass on this machine. Load this before writing any ASS file, when a burn "succeeds" but no text appears, when text is misplaced/too big, when \p1 drawings are offset, or when you need the transparent-overlay export recipe. Contains the exact pitfalls hit in this project (timestamp format, style colour trailing ampersand, fontsdir, drawing anchor, chained \t, Permanent Marker sizing).

muyunxue/dance-mmd-subtitle-kit

Character-avoiding subtitle layout for the MMD dance videos — measure the dancer's per-frame bounding box, compute a per-cue union, place text in safe side/top columns, and verify zero overlap on every frame. Load this when asked 字幕不要挡住人物/完全不挡/避让, or when text overlaps wings/body and you need a verified-free layout with measured overlap counts.

muyunxue/dance-mmd-subtitle-kit

End-to-end recipe for making subtitles for the MMD dance videos in this workspace (字幕/ project) — probe the source, pick a segment, map LRC cues, choose a style, build ASS, burn, verify, and deliver. Load this when starting or resuming any subtitle task (静态稿/5s小样/30s小样/全片/透明叠加层), when a render "succeeded" but the video has no text, or when you need this project's paths, font list, cue sheet and acceptance criteria.

muyunxue/dance-mmd-subtitle-kit

Subject-aware colour grading for the MMD dance videos in this workspace — make the dancer stand out (background dim/cool/desat, subject lift/warm/sharpen/bloom) using either a soft stage-light ellipse or a hard character matte, with ffmpeg recipes, measured parameter sets and known failure modes (cast-shadow matte contamination, banding, truncated sources). Load this when asked to 调色/突出人物/压背景/统一色调, or when a graded clip shows weird bright blobs around the dancer.

相关技能