Repository navigation
Releases
Releases · qingyabailu-git/SketchNarrator
SketchNarrator v0.1.6
Changes
- Keep the annotation panel usable on large projects. Four hot paths that scaled with project size were reworked after measuring the panel on real multi-hundred-caption projects:
- Sample the board paper colour by copying the four corner pixels into a single 4x1 scratch canvas and reading them back once, instead of drawing the whole board into an image-sized canvas and issuing four separate 1x1 readbacks that each force a GPU-to-CPU sync. The sampled colour is unchanged.
- Build the element editor's subtitle option list once per caption list and afterwards only move the selection, instead of re-parsing and re-laying out hundreds of
<option>nodes on every element selection. - Assign
canvas.width/canvas.heightonly when the scene canvas size actually changed, instead of reallocating the multi-megapixel backing store and resetting the 2D context on every repaint. - Throttle canvas drags to at most one repaint per animation frame and defer change diffing, draft persistence, and timeline rebuilding to pointer release. A click that only selects a region without moving it now performs no bookkeeping at all.
- Treat a filesystem that accepts
os.symlink()without reporting the result as a link as unsupported in the release-manifest test, so the suite passes on Windows drives without reparse-point support. - Publish GitHub releases automatically: pushing a
v*tag now verifies the release manifest, builds the deterministic public ZIP, and attaches it to a release named after the tag, using the matchingCHANGELOG.mdsection as the release notes.
SketchNarrator v0.1.5
Changes
- Reserve the shared title card area in the visual layout plan: scenes with a card record
layout_plan.title_card_region, preset native layouts start at y=0.16, and board generation stays out of that area. Custom regions that intrude into the reservation fail Gate 2 with an explicit conflict instead of silently moving approved objects. - Fit the approved card into the same reserved area when rendering: the overlay is scaled proportionally, never cropped and never upscaled, so the card text stays inside its reserved space at every output size.
- Reject an empty, non-numeric, or non-positive
title_card_profile.max_text_charswith an actionable message instead of an unhandled exception, and report card text, style, and position problems together. - Pin the final AAC track to 48 kHz so the delivered mix keeps a single sample rate.
Verification
- Renderer tests: 84 passed.
- Workflow tests: 244 passed, 1 skipped, 1 sandbox-only failure (
test_symbolic_links_are_never_release_filescannot observe a real symlink whereos.symlinkis stubbed; the file is untouched by this release). - Release manifest check: OK.
- Deterministic release package:
sketch-narrator-0.1.5.zip. - Package SHA256:
60910d8b84856252e84aa7d26fdd8a45b2fbdb234025b564dbb6c5bae74ddca2.
SketchNarrator v0.1.4
Changes
- Fix compact ink stroke erosion during Zhang-Suen skeletonization: recover isolated compact ink components (such as eye pupils, dots, and small facial features) via
_recover_compact_ink_strokesand promote core short strokes toshort_identityin semantic stroke planning. - Add
ink_color_mode(default"source", fallback"monochrome"): sample original artwork RGB colors for line drawing in light whiteboard mode, faithfully preserving golden sparks, red warnings, green neural paths, and blue accents instead of forcing monochrome thresholding. - Integrate
ink_color_modeacrossstream_render.py,render_stream_whiteboard.py, andworkflow.pyrender pipelines with deterministic cache invalidation. - Align documentation and project contract: update
references/project-contract.mdwithrenderer_profile.ink_color_modeschema and clarify binary threshold edge boundaries vs. original RGB line color sampling.
Verification
- Renderer tests: 82 passed.
- Workflow tests: 240 passed, 1 skipped.
- Release manifest check: OK.
- Deterministic release package:
sketch-narrator-0.1.4.zip. - Package SHA256:
b994aee4a587a89b26c924149615b506a463094da1b6f865f80d4436ce1f363a.
SketchNarrator v0.1.3
Changes
- Add an explicit opening-anchor beat to every shot so the first drawing starts about 100ms after the scene begins.
- Recommend opening strokes within 200ms and reject plans or annotations whose first visible element starts later than 500ms.
- Mirror the check in board QA: advisory between 200ms and 500ms, hard error beyond 500ms.
- Update the skill contract, visual-production guide, final QA guide, and project file schema.
Verification
- Renderer tests: 77 passed.
- Workflow tests: 240 passed, 1 skipped.
- Release manifest check: OK.
- Deterministic release package:
sketch-narrator-0.1.3.zip. - Package SHA256:
ed2484ef86368736589644a31f4c894718fe235324d0b28bc90be4f47a21a731.
SketchNarrator v0.1.2
新增与改进 (Features & Improvements)
- 自适应手绘节奏求解器 (Adaptive Duration Pacing):
- 新增
scripts/pacing.py及workflow.py pace-annotations命令。 - 根据分镜词级时间戳智能拉长元素绘制时间(默认预算比例 92%,留出 250~500ms 观察留白),彻底消除 1.2 秒过快闪电画完与数秒死板静止的问题。
- 新增
- 分镜空窗期质检告警 (Idle Pacing QA Advisory):
- 在
board_qa.py中增加对元素绘制时长偏短(可用窗口 ≥ 3 秒但绘制占比 < 55%)的质检预警。
- 在
- 场景标题卡支持 (Scene Title Cards):
- 将可选的场景标题卡提升进入分镜、Gate 2 确认、视觉计划、渲染缓存与面板预览。
验证 (Verification)
- 单元测试套件 236 项全量通过(0 failure, 0 error)。
- 在真实医学科普长视频项目(6 场景,131.77 秒)中全流程实机验证通过,笔画动作平缓饱满延伸至句尾。
- 发布清单全量校验通过,包含 153 个确定性打包文件。
Assets & Checksum
- Package:
sketch-narrator-v0.1.2.zip - SHA256:
3cb3f066a72531decf96eeda2891e958f70922f9cdac0725c27023f9cfc10383 - Size: 30,244,169 bytes
SketchNarrator v0.1.1
修复
- 修复多场景项目在 Gate 2 被错误阻断的问题。
- 单幕诊断现在保留完整
words.json与全局词锚点,只把全片覆盖检查交给最终全片编译。 - 正式编译仍严格检查词条遗漏、重复和交叉。
验证
- 使用真实失败项目只读复核:6 幕、474 个词、6 个镜头成功编译。
- 上层 228 项测试通过,1 项按设计跳过。
- 渲染器 76 项测试通过。
- 发布清单检查通过,公开 ZIP 未包含私人资产或本机路径。
Fix
Fixes a Gate 2 validation failure that blocked every multi-scene project. Per-scene diagnostics now preserve global word anchors, while final compilation continues to enforce complete, ordered narration coverage.
SHA256: 9282a05114b2afc62a943e6be18425e0f0c8b7927677c835305610e598a586c2
SketchNarrator v0.1.0
SketchNarrator v0.1.0
SketchNarrator 的首个公开版本。它把中文主题、文案或参考视频整理为按真实旁白时间驱动的手绘讲解视频,并把分镜、画板、标注、动画计划、渲染和成片 QA 串成可复核的本地工作流。
主要能力
- 三次确认流程:口播、视觉分镜、工作台画面与执行计划。
- 工作台支持逐幕拖拽、缩放、新增、删除、排序和撤回;用户确认拥有最终执行权。
- 同一语义对象 ID 贯穿分镜、标注、动画计划和渲染,执行直接读取已批准版本。
- 时间计划按真实音频形成,并确定性编译到目标帧率。
- 10 种内置手绘风格参考图,以及可替换的公开 CC0 轻量音效预设。
- 使用宿主 Agent 自带的生图能力,无需另接图片生成 API。
- 面向 Codex、Antigravity、WorkBuddy、豆包办公等具备文件操作、命令执行和生图能力的 Agent。
- 私人角色、字体、音效与片头片尾通过仓库外的本地配置接入,不包含在公开包中。
安装
下载本 Release 的 sketch-narrator-0.1.0.zip,解压后按照 README 的对应平台说明安装。也可以直接克隆仓库。
发布校验
- 公开清单:150 个源文件。
- Release ZIP:151 个文件(含
release-manifest.json)。 - ZIP SHA256:
f9248af5d634ac41cb2b742f40bb216ac162e8890b5323996c06b7b74e02a048。 - 发布清单校验、公开边界检查、本地验证和 GitHub Actions 均已通过。