Ir al contenido

persona.yaml options

Esta página aún no está traducida; aquí tienes la versión en inglés.

Everything that is taste rather than technique lives in one file. Copy the example and edit it:

Terminal window
cp persona.example.yaml persona.local.yaml # in the skill folder; git-ignored

The Mac app keeps the same settings under Settings; the skill reads persona.local.yaml. Any key you leave out keeps the default shown here.

Creator persona: every taste/brand/platform default the workflows read. Copy to persona.local.yaml (gitignored) and edit; it overrides these keys.

Section What it sets Keys
creator Your name and handle (covers, end cards) and the language you speak in your videos. name, handle, language
platforms Default platform and per-platform overrides deep-merged over the built-in profiles. default, xiaohongshu, youtube
speed Playback rates used when you just say “speed it up” (hook, body, B-roll). hook, body, fast_hook, fast_body, b_roll, cjk_max_intelligible
audio Delivery loudness, narration and music levels, pause squeezing. loudness_lufs, voice_lufs, music_lufs, pause_squeeze, pause_threshold
export Frame rate, quality, audio bitrate, colour tags and the H.264 encoder. fps, crf, audio_bitrate, colour
style The design theme every overlay, card and caption uses. theme
brand Your ink and ground colours. ink, ground
fonts Your own font files per role (cjk, cjk-bold, cjk-serif, serif, mono…), including one face of a .ttc.
subtitles Caption line length, keyword highlight markup and ASR term fixes. max_cjk_chars, max_en_chars, highlight_markup, term_fixes
voice Voice rules for scripts and post copy. persona, rules
publish Default hashtags, named tag sets and the chapter line format. tags, tag_sets, chapter_line
intake How the planner treats materials (for example burned-in captions). burned_captions
cleanup Default cleanup profile, crossfade, extra fillers and words never to cut. profile, crossfade, fillers_extra, never_cut
formats recurring formats (python -m vstudio.formats list): first-pass defaults per kind of post.
creator:
name: "" # used on covers/end cards when set
handle: ""
language: zh # subtitle + caption language for the creator's own speech
platforms:
# Full per-platform profiles (canvas, UI safe zones, caption band/size, length, LUFS, encode, cover,
# title/description limits) live in lib/vstudio/platform.py (sources: references/PLATFORMS.md).
# Anything under platforms.<name> is deep-merged over those defaults; per-orientation overrides go
# under platforms.<name>.orientations.<vertical|full|horizontal>.
default: xiaohongshu # xiaohongshu | douyin | tiktok | youtube | youtube-shorts | bilibili
xiaohongshu:
post_shape: vertical # shape when only "小红书" is said (intake / plans): vertical = 3:4 (1080x1440), full = 9:16
title_max: 20 # 小红书 counts CJK = 1, latin/digit/space = 0.5 (vstudio.config.xhs_len)
cover_aspect: "3:4" # vertical posts; horizontal posts show a 4:3 centre crop
safe_zone: {top: 240, bottom: 1660, right_lower_keepout: 160} # legacy form, 1080x1920 ("full") canvas
# orientations:
# vertical: {caption: {band: [1060, 1260], size: [56, 76]}} # e.g. bigger captions on 3:4
youtube:
title_max: 100
cover_aspect: "16:9"
# douyin:
# loudness: {lufs: -12, tp: -1.0} # a hotter short-form master, if you prefer
# length: {sweet: [20, 45]}
speed: # playback rates used when the creator just says "speed it up"
hook: 1.3
body: 1.1
fast_hook: 1.6
fast_body: 1.3
b_roll: 1.1 # inserted footage (e.g. a highlights montage)
cjk_max_intelligible: 1.4
audio:
loudness_lufs: -14 # delivery loudness (two-pass loudnorm)
voice_lufs: -16 # narration stem before mixing
music_lufs: -30 # bed level before carving under the voice
pause_squeeze: 0.06 # 气口 target gap in seconds
pause_threshold: 0.35 # gaps longer than this get squeezed
export:
fps: 30
crf: 18
# h264_encoder: libx264 # libx264 | h264_videotoolbox | h264_mf; env VSTUDIO_H264_ENCODER wins (lib/vstudio/h264.py)
audio_bitrate: 192k
colour: bt709
style:
theme: editorial # editorial | mono | soft | night | xhs-pop (classic = the old red look); see
# references/STYLE_RULES.md. Tokens can be tinted here, e.g. accent: "#3E5C76"
# Per client: client.yaml theme; per recipe: the project's theme param; per output:
# the output-edit `theme` op ("换成更高级的配色").
brand:
# accent / highlight follow style.theme. Setting brand.accent / highlight WITHOUT a style.theme keeps the
# old look (theme classic with these colours), e.g. accent: "#FF2442", highlight: "#FFD60A"
ink: "#ECEEF2"
ground: "#0B1020" # premium dark plate
# panel_theme: notes-red # legacy notes panel (notes-red | notes-yellow | teal | navy); default = the theme's card
fonts: {} # override any role with your own file, e.g. cjk-bold: ~/Fonts/MyFont.ttf
subtitles:
max_cjk_chars: 18
max_en_chars: 90
highlight_markup: "【】" # 【term】 is emphasised the theme's way (marker band / accent), one per line
term_fixes: {} # ASR corrections, e.g. {"cloud code": "Claude Code"}
voice: # style rules for scripts and post copy (see workflows/preproduction)
persona: "practitioner sharing what they figured out"
rules:
- no em-dashes
- no parentheses in spoken lines
- one 干货 reframe per piece
- no generic CTA
publish:
tags: [] # default hashtags appended to post copy (post_body use_persona_tags=True)
tag_sets: {} # named alternatives picked per post with tag_set:, e.g. {art: [看展, 艺术]}
# a post/spec can also set use_persona_tags: false to use only its own tags
chapter_line: "时间线在下面,按需跳👇"
intake: # one sentence + materials -> plan (python -m vstudio.intake)
burned_captions: band # a finished edit with burned-in captions, cut again: band = crop the old captions off,
# picture in a band, new captions below; keep = leave the old captions, add none
cleanup: # shared 气口 / filler / repeat tool (python -m vstudio.cleanup, references/CLEANUP.md)
profile: standard # default profile: gentle | standard | tight (vlog / photo-story speech clips use gentle)
crossfade: 0.02 # seconds (20 ms) equal-power crossfade at every join; keep within 0.01-0.03
fillers_extra: [] # your own 口头禅, treated like 那个 / 就是, e.g. [其实, 对不对]
never_cut: [] # tokens never flagged as filler / repeat, e.g. [然后]
# policy: true # answer low-risk confirm edits automatically (batch stages do by default); learned
# # answers live in ~/.config/vstudio/cleanup_policy.json (or policy_file: <path>)
formats: {} # recurring formats (python -m vstudio.formats list): first-pass defaults per kind of post.