About sweety-handdraw-video
sweety-handdraw-video is a skill for producing hand-drawn explainer videos, including narration, illustrations, captions, and review records. Its staged workflow checks visual, audio, timing, and subtitle requirements before delivery.
Key features
- 01Narration and storyboard planning
- 02Segmented voice generation and alignment
- 03Illustration planning and validation
- 04Video rendering and delivery checks
- 05Caption synchronization and duplication checks
Use cases
- 01Producing a narrated educational video
- 02Adapting an existing script or recording
- 03Checking a video before delivery
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ threerocks/ sweety-handdraw-video --skill sweety-handdraw-videoAfter installing, type/sweety-handdraw-videoin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlassets/hosted-manifest.jsonproduction-options.htmlprovenance.jsonstyle-picker.htmlassets/hands/art-direction.jsoncatalog.jsonassets/hands/briefs/cardigan-fountain.jsonchild-pencil.jsondiamond-woman.jsonnavy.jsonpen-only.jsonteacher-pen.jsonwaner-brush.jsonassets/hands/prompts/cardigan-fountain-r2.txtchild-pencil.txtdiamond-woman-r2.txtnavy.txtpen-only.pyteacher-pen.txtwaner-brush.txtassets/hanzi/ARPHICPL.TXTNOTICE.txtassets/style-previews/manifest.jsonassets/voices/catalog.jsongentle-intellectual-woman.txtmagnetic-narrator.txtscholarly-young-man.txtsuspense-storyteller.txtdependencies/hand-drawn-styles/.github/workflows/check-skill.ymlDetails
From the project README主题手绘视频
交付可播放成片、封面、字幕、口播稿和检查记录。默认简体中文、1080×1920(9:16)、30fps;用户的语言、尺寸、画风、声音和复用要求优先。片长随内容和实际配音变化,不固定页数、布局或每页秒数。
先读依赖路由,再按需读取内置指南。主体内容由模型设计;脚本只执行已确定的素材与时间线,并用客观指标拦截错误。只有主题、故事、正文、附件全部缺失时才暂停索要;其余偏好都有默认值,不构成阻碍。宿主无法生成图片时停止并告诉用户,不能静默降级成纯文字视频。
流程
开场单独设计。 写口播前读取黄金5秒开场,从六种方法中按内容选主策略,写入 design.json.opening_hook;封面、首句和第一笔共同传达继续看的理由。配音后按真实时间戳核对成片0–5秒(含1秒封面),分镜优先画出承载钩子的关键对象或关系,编排后单独预览开头及其正文衔接,终审核对承诺兑现。完整步骤见该指南;已锁定的原稿或录音先优化画面与编排,不擅自改词。
- 讲清因果。 确定受众、要解决的问题、机制、必要反例与行动,写入
design.json。改编文章先读全文,保留限定、署名与来源;时效或有争议的事实核实一手资料。用户给了稿子就改错不改意:只修事实错误和不顺口处,保留作者观点与有意的简化,篇幅增长不超过约20%,改动记入script_changes。详见创作与分镜。 - 开始时给可选项(原生,不弹网页)。 先问配置类型:
模型推理(默认)或主动选择。模型推理:按内容写options/defaults.json(默认比例 9:16、风格 inferred、pen-only、默认声、无广告水印),脚本直接完成。主动选择:用宿主原生选项或终端数字菜单逐项问 比例 → 风格(文字列表,无预览)→ 声音 → 字幕;每项最多60秒。风格列表不约束模型推理。揭示画风只能由用户明确接受(reveal_accepted)。广告/水印默认不加。详见可选制作设置。 - 旁白先行,按段落生成。 先写完整口播稿,再按语义段落(每段不超过约100字,只在句末切)逐段生成;每段通过噪声门禁(嗡声、底噪、削波)才保留,不通过换种子重试;拼成母带时用实测停顿,并自动生成
alignment.json,不手写时间戳。本地 VoxCPM2 或 VoiceStudio 是主力;火山豆包、Gemini TTS 只在用户自己配置了密钥时作为选项。用户自带录音用align.py对齐。默认不加背景音乐;用户明确要求配乐时提供原始音乐即可,构建自动循环接续、淡入淡出并随旁白压低(见声音与收尾)。详见连续旁白、声音与依赖、VoxCPM2 要点。 - 分镜先算预算,再生图。 导演先在
design.json写入presentation.mode(picture_book / focus_diagram / dense_infographic / accumulating_board / step_sequence / narrative_comic)及 reason——这是密度导演,不是用户选项:儿童绘本单页少内容,知识科普/黑板报单页多内容或板书累积。板书模式先规划整页boards的区域位置、作用和 visual,再生图;同一块板必须在一张物理页面按阅读顺序逐项补齐,不每句话清场。再按句设计镜头,写storyboard.json(同步 presentation);密集信息图和板书每镜写composition:布局、焦点 visual、至少两个辅助元素及其解释作用;同一幅图内的场景部位也可作为辅助元素,不用装饰凑数。运行storyboard_lint.py JOB --budget,脚本按 mode 调整 hold、视觉数、每镜 hero 上限与画完停留。图按可用时间设计;约 3 倍人速画完就停,笔忙占比受 mode 约束且不超过70%;已完成图片的静态阅读时间另行实测至少30%,不含片头空白和结尾静音,任意单幅停留不足1秒均警告。长片按章节推进,用plan_status.py找下一个镜头。 - 出图:可画、可认、可分部位。 每次生图或改图前都执行美术指导(见下节)。先写
drawing-plan.json(主体、部位、顺序、identity_cues)并运行出图前检查。逐笔绘制的图要连续干净的墨线、部位交界闭合、平涂不加纹理线,复杂度符合档位,见可绘制约定。先做一张代表图,核对主体、构图和部位可分性,再扩展同片素材;新主题重新设计,修订本片或用户明确复用时保留已通过的图。封面 AI 只出主视觉,准确标题用可编辑文字图层合成。出图后依次:看图填写叙事核对(咬伤、断裂、接触、得失等必须真实可见);drawing_contract.py JOB --thumbnails缩略图1秒内叫得出名字;lineart_gate.py线稿门槛;region_marks.py看编号叠图把区域分给部位,交界不闭合时改用部位多边形。所有生成图执行clean_image.py隐私清理。 - 编排与代表段。 按运行格式写
job.json:动作带visual,一个镜头通常是跨句的visual_group,from_beat让元素在对应句开始时起笔;页面可设镜头关键帧与转场。中文按标准笔顺书写(GB2312 内汉字),其余字符按字形描线。字幕按字幕设计,收尾按声音与收尾。固定封面1秒(前0.5秒静止、后0.5秒渐隐)后开始正文。先渲染覆盖文字、插画、上色、字幕与转场的代表段,其中至少一幅插画从头画到尾,按播放尺寸看,再渲染整片。构建报告的storyboard.composition.pages给出实际图片与内容范围,排除近白/透明留白、字幕及底纹;主体太小先放大或补充相关场景,不靠多写标题填空。刻意留白需在该页每镜的composition.negative_space_reason写明讲解作用。判断标准是“像不像正在画”:先看画面怎样形成(笔尖带出线条、先轮廓后上色、没有整块显现、方向顺手),再看成图是否好看;出现碎线、飞白、灰斑就先改图,不要先批量出图。 - 核对后交付。
build先在旁白上检查字幕同步和字幕避让(插画像素不得压进字幕区),不等渲染后才发现;verify对成片做工程检查、声音门禁与字幕同步复核;再按质量检查看画面与内容。连续播放和听音在review.json单独记录(continuous_playback、listening),没做就写not_done和原因,回执会把它列为未完成,不并进“通过”;不把解码、ASR 或文件存在说成观感保证。finalize只接受与当前视频匹配的检查记录。用户拒绝成片时运行handdraw_video.py reject JOB --reason "用户原话":回执改为“用户已拒绝,需要返工”,这一版视频不能再 finalize。交付时告知:默认未加背景音乐;成片已写入 AI 生成隐式标识,发布时仍须在平台声明“AI 生成”。
构建和渲染会拒绝:未锁定旁白与时间戳、缺少 storyboard 或其检查失败、绘制窗口短于图像的 minimum_seconds、线稿门槛失败、部位不匹配或整人单块、声音门禁失败、检查记录过期。模型修正对应层后继续;偏好未选不触发这些门槛。脚本只核对结构、哈希、像素与声学指标,不能替代模型看图判断和真人试听。
所有生图必须先经过美术指导
每次调用生图或图片编辑工具前,完整读取并应用 dependencies/sweety-image-art-direction/GUIDE.md;这是用户对本项目的明确授权,不受它独立使用时“仅手动触发”的限制。封面、正文、角色、道具、新手部、候选、变体、局部修改和返工全部适用。库内画风保留完整配方;独立推理和自定义画风只用各自的风格说明。
先把本图简报(含分镜给出的绘制秒数和复杂度档位)与完整提示词存进任务目录,在美术记录登记 brief_file、prompt_file,运行 python scripts/art_direction.py bind-evidence <记录路径> 绑定哈希,再调用图像工具;禁止先出图再补记录。生成后实际看图,记录清理后哈希和视觉结论。缺记录、哈希失配、未通过看图或图片被替换,构建、渲染和交付都会停止。复用已验收且字节不变的素材可沿用原记录。
字幕唯一性是交付硬门槛
同一句旁白同一时刻只显示一份字幕:画面烘焙、字幕事件、MP4 字幕轨、网页 <track> 和播放器自动加载的字幕文件不能叠加。只从无字幕素材和独立字幕层重新合成;编辑用字幕只放 outputs/editing/。交付检查 MP4 无额外字幕轨、同目录无 SRT/ASS/VTT,并实际看解码画面的长句、换句和片尾,出现双字幕直接判 FAIL。
声音
目录有六款:逼真男声、逼真女声(原片参考,只在本机个人声音库,需先导入)和四款随包的合成声音——磁性解说男声(默认)、儒雅青年、温柔知性女声、悬疑故事解说。本机个人库里已验收的主力音色优先,用户本次的明确选择最优先。用户可添加任意数量的自定义声音:本人录音声明 consent: self,他人声音须获授权并声明 consent: authorized;参考在导入和每次使用时都要过门禁。不克隆公众人物、主播或平台音色,不用合成试听冒充原片音色。来源与授权见声音来源。不自动购买服务、下载模型、改全局引擎或交付无声片。
手部和广告
六款手臂:navy 深蓝袖马克笔、diamond-woman 碎钻长甲、child-pencil 儿童彩铅、waner-brush 上官婉儿灵感毛笔、teacher-pen 白衬衫中性笔、cardigan-fountain 针织袖钢笔;另有 pen-only:navy 同一支笔去掉手臂(角度、笔尖、尺度不变)。模型按内容选默认,锚点在 assets/hands/catalog.json。手臂按笔尖到手腕校准,裁切边留在画外。
hand.pen_text 只在笔杆加广告,最多16个字符,默认空,保持用户原文。watermark.text 生成低不透明度缓慢浮动的文字水印,默认空,避开字幕。参数见可选制作设置。
运行与边界
首次使用运行 scripts/setup.sh 安装依赖(macOS、Linux;Codex 与 Claude Code 均可)。scripts/handdraw_video.py 提供 doctor / build / render / verify / finalize / reject;doctor 列出可用的配音后端、字体覆盖和渲染条件,缺什么报告什么。任务数据放独立目录,不写入安装目录。手部、画风预览和合成声音随包分发;原片录音与个人声音库只存本机。
质量优先:工程门槛保证顺序与完整性,模型仍要审查语义分区、画风和叙事。真实手写自然度、情感和学习效果须分别评价。不承诺任意主题一次稳定生成,不发布视频、不开通服务、不改全局模型配置。