[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93486":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},93486,"handdraw-story-video","xiejunjie524\u002Fhanddraw-story-video","xiejunjie524","Turn hand-drawn story illustrations into 35–45 second line-reveal and gradual-coloring videos with HyperFrames.",null,"Python",609,93,105,0,99,468,666,99.83,"MIT License",false,"main",true,[],"2026-07-22 04:02:09","# Handdraw Story Video\n\n把 7–9 幅手绘故事母图制作成 35–45 秒竖屏短视频：先从左到右显现黑白线稿，再沿相同方向逐步填入低饱和色彩。项目包含故事配置校验、线稿提取、HyperFrames 页面生成，以及可安装的 Codex Skill。\n\n![“凌晨四点的豆浆”示例预览](examples\u002Fsoy-milk-at-4am\u002Fpreview.jpg)\n\n新手直接看：[中文使用方法](docs\u002Fusage.md) · [生图模型接入](docs\u002Fimage-generation.md) · [固定画风提示词](docs\u002Fprompts.md)\n\n想直接按主题批量生成：[一键成片配置](config.example.json)\n\n## 特点\n\n- 默认 40 秒、720×960、30 fps，适合竖屏平台\n- 每幕使用一张独立彩色母图，本地提取完全对齐的线稿\n- 线稿和颜色统一从左向右推进，不重复调用生图模型\n- 支持可选故事字幕和画面内道具文字\n- 自动检查时长、重复素材、字幕行数与字号范围\n- 不绑定生图服务、音乐来源或私有 API\n\n## 环境要求\n\n- Python 3.10+\n- Node.js 18+\n- FFmpeg\n- [HyperFrames](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fhyperframes)\n- GSAP 3（通过 npm 安装，遵守其许可条款）\n\n## 快速开始\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fxiejunjie524\u002Fhanddraw-story-video.git\ncd handdraw-story-video\npython -m venv .venv\n# Windows: .venv\\Scripts\\activate\n# macOS\u002FLinux: source .venv\u002Fbin\u002Factivate\npip install -r requirements.txt\nnpm install gsap\n```\n\n1. 复制模板并填写故事：\n\n```bash\ncp templates\u002Fstory-template.json story.json\n```\n\n2. 每幕只生成一张 1K 彩色母图，再提取对齐线稿：\n\n```bash\npython scripts\u002Fmake_lineart.py assets\u002Fimages\u002Fscene-01-color.png assets\u002Fimages\u002Fscene-01-line.png\n```\n\n3. 准备 HyperFrames 目录和 GSAP：\n\n```bash\nmkdir -p hyperframes\u002Fassets\u002Fvendor\ncp node_modules\u002Fgsap\u002Fdist\u002Fgsap.min.js hyperframes\u002Fassets\u002Fvendor\u002Fgsap.min.js\n```\n\nWindows PowerShell 可使用：\n\n```powershell\nNew-Item -ItemType Directory -Force hyperframes\u002Fassets\u002Fvendor | Out-Null\nCopy-Item node_modules\u002Fgsap\u002Fdist\u002Fgsap.min.js hyperframes\u002Fassets\u002Fvendor\u002Fgsap.min.js\n```\n\n4. 把图片和已获授权的 BGM 放到 `hyperframes\u002Fassets\u002F`，确保路径与 `story.json` 一致，然后生成页面：\n\n```bash\npython scripts\u002Fbuild_story.py story.json hyperframes\u002Findex.html --check-assets\nnpx hyperframes check hyperframes\u002Findex.html --json\nnpx hyperframes render hyperframes\u002Findex.html --output renders\u002Fstory-v1.mp4 --workers 1\n```\n\n不要覆盖旧成片；每次使用新的输出文件名。\n\n## 故事配置\n\n最小场景结构：\n\n```json\n{\n  \"id\": \"scene-1\",\n  \"duration\": 5,\n  \"caption_lines\": [\"凌晨四点，\", \"他总会经过那家早餐店。\"],\n  \"line_image\": \"assets\u002Fimages\u002Fscene-01-line.png\",\n  \"color_image\": \"assets\u002Fimages\u002Fscene-01-color.png\",\n  \"crop\": {\"scale\": 1, \"x\": 0, \"y\": 0}\n}\n```\n\n完整字段和分镜规则见 [docs\u002Fstory-spec.md](docs\u002Fstory-spec.md)，可运行示例见 [examples\u002Fsoy-milk-at-4am\u002Fstory.json](examples\u002Fsoy-milk-at-4am\u002Fstory.json)。\n\n## 画面原则\n\n- 8 幕通常各约 5 秒，每幕必须是不同构图，不能靠裁切或缩放凑时长。\n- 主体通常位于画面下方 45%–55%，保留大面积纸白留白。\n- 单帧最多 2–3 人、两个关键背景锚点，避免人群、密集建筑和大块黑线。\n- 字幕最多 3 行，每行不超过约 18 个中文字符。\n- 音乐按故事选择，不把某一首 BGM 固定进模板。\n\n## Codex Skill\n\n仓库根目录本身符合 Codex Skill 结构。可将仓库复制或链接到 `$CODEX_HOME\u002Fskills\u002Fhanddraw-good-deed-story`，然后用类似“做一个 40 秒线稿逐渐上色的暖心故事”触发。\n\n## 素材与许可\n\n代码以 MIT 许可发布。生成图片、字体、GSAP、音乐及其他第三方素材不自动获得 MIT 授权，使用者须遵守各自提供方和素材来源的条款。仓库不包含 API 密钥、浏览器会话、参考视频、下载音乐或完整渲染历史。\n",2,"2026-07-19 02:30:06","CREATED_QUERY"]