LIVIDEO2D / EXPERIMENT 03 / __DATE__

全生成拆件,接上骨骼动画


身体改为 40 个生成部件,尾巴重新生成。脸、帽子、耳朵等 8 层继续使用 V2 原始生成 atlas,后发单独重画。最终动画的角色和背景均使用生成纹理。

50角色部件
45控制骨骼
53最终纹理,含背景和表情
100帧 / 27 fps

本轮保留原始生图、处理后 RGBA、alpha、动作与全部修正记录。原视频只供观察和对照,未提供动画纹理。未进行可微渲染、参数 fitting 或图像 loss 搜索。

检查全部分层 检查骨骼与形变 打开可编辑模型 下载模型

动画与结果

V3:生成角色、生成背景、骨骼与网格。片段 3.70 秒,循环播放的首尾尚未做无缝衔接。

本轮改变

手掌与五指、衣身与衣领、袖子与袖口、裙子与衣摆分别控制。尾巴使用 8 节骨链;脸使用闭眼、半睁、睁眼三张生成纹理,在一个图层内混合。

首版拼装后发现后发截断、袖口重复、胸口接缝和动作幅度不足。两轮检查后保留好部件,只补生后发与两片上臂衣袖,再改遮挡顺序和姿态。

透明背景解决抠背景,部件的结构和接缝仍需要检查。袖子即使有正确 alpha,也可能已经画上了重复袖口。

服装有明显变化:首个身体生成请求被工具拦截,后续采用完整着装参考,最终有遮胸布料、长裙、象牙色袜层和远侧手套。这里评估的是生成角色的可动性与拼装质量。

与原视频同步对照

原视频V2 · 含原像素V3 · 全生成

三列编码在同一条视频内,帧同步。V2 保留用于查看变化;V2 与 V3 的纹理来源、衣着、背景不同,像素分数不能单独说明可用性。

Bone / Mesh Deformation · 骨骼与网格形变

并排查看绑定姿态与动画中的实际姿态,检查支点、父子关系、网格弯曲和连接处。两边使用同一套生成贴图、网格与蒙皮算法,左边取消所有骨骼动作;绑定姿态不等于视频第 0 帧。

当前 50 个角色部件中,49 个整片绑定单根骨骼,尾巴使用 8 根骨骼混合。单骨骼部件会整体运动;在本段没有骨骼缩放的动画中,其内部网格边长不变。网格数量多不代表具有局部形变。

V3 绑定姿态与第20帧的骨骼、网格并排预览
绑定姿态与第 20 帧。加载下方交互视图,可选择每个部件、逐帧检查和慢速播放。

如何读这张图
  • 父子连线表示控制层级,不代表角色的解剖骨长。选择单个部件时,也会显示驱动它的祖先骨骼。
  • 网格和骨骼透视显示,不做遮挡剔除。只绘制生成贴图 alpha 有效的三角形,其边缘仍可能延伸到少量透明区域。
  • 局部拉伸 / 压缩用三角形三条边中最大的相对长度变化着色。越深变化越大,30% 及以上使用最深色;数值仍报告真实最大值。平移、旋转不会改变该数值。
  • 位移箭头从绑定顶点指向当前顶点,包含整体移动。绑定网格、箭头和两侧画面使用同一坐标系;放大部件时取整段动作的固定范围,避免自动追随掩盖移动。
  • 这些视图展示当前 V3 的实际控制结构,帮助区分绑定、局部形变和轨迹问题。这里尚未修改骨骼、权重或动画。

全部分层图:处理前 / 处理后 / alpha

共 __CARD_COUNT__ 张处理图:53 张用于最终模型,3 张保留为修正前对照。50 个角色绘制层,加 1 个背景层;脸的另外两张表情共用同一层。左右均按画面视角命名。

处理前显示原始生成图中对应部件区域,完整 atlas 在下一节。处理后仅对生成图按独立部件的 alpha 分离、去孤立噪点、收紧边界和对齐表情。未分割原视频人物。棋盘格表示透明;点击图片放大。

全部原始生图

11 次成功生图:完整着装参考 1 次,7 组身体部件,尾巴 1 次,表情 1 次,接缝修补 atlas 1 次。另有 1 次被拦截,未产生图片。复用的 V2 头部 atlas 与生成背景也列在下方。原始 PNG 未覆盖,提示词和 SHA-256 可下载。

查看 13 张完整原图(含 2 张复用图)

本实验使用当前会话的 Codex 内置生图工具;返回数据没有提供可核验的模型版本标识,因此不把结果标记为已确认的 image-2。

LLM 检查 → 工具调整:两轮记录

初次拼装
初次拼装:后发有平底,袖口重复,脖颈有缝。
第一轮遮挡修正
第一轮:补重叠、调袖口顺序。平底和重复袖口仍在纹理里。
第二轮生成修复和运动调整
第二轮:针对性生图修复三个部件,重接前臂,补低头与抬头动作。
为什么多生一次,而不是继续改位置

原后发底部被画成平直截面,旧袖子已经包含袖口。移动和旋转能藏住部分问题,却不能产生缺失的发尖、删掉袖子内部已画上的重复结构。一次三格修补 atlas 同时解决三个已观察到的问题,保留其余生成结果,预期收益高于重画整个人物。

完整观察与决策 JSON

可编辑模型

可逐层查看,控制骨骼、播放、切换表情,也能下载修改后的场景。模型页画布上方可直接勾选「显示骨骼」「显示网格」,叠加范围可选全部可见部件或当前部件。先点击加载;模型在浏览器本地渲染。

新窗口打开

拖动父骨骼,子部件随之移动。下载场景后,将模型目录中的 scene.json 备份,再用下载的 scene-edited.json 替换它,即可重放。纹理路径保持不变。原视频和在线模型服务均非运行依赖。

研究方向与实验 ROI

工作负责方式本轮取舍
决定该拆哪些部件、判断接缝问题LLM 看图先把身体拆细,针对观察到的三个坏部件补生。
alpha、裁图、坐标变换、哈希确定性 Python 工具保留原生透明;仅无 alpha 的纯色底图才适用颜色去底。本轮输出均有 alpha。
关节姿态与运动方向LLM 语义关键帧显式编写骨骼局部姿态,复用先前观察的尾巴方向;长度固定,无图像目标函数。
父子变换、蒙皮、插值、表达混合普通 2D WebGL 渲染可编辑、可导出。面部混合使用预乘 alpha,单图层处理。
比较原视频同步视频 + 描述性分数视觉检查驱动修正,分数在最终版完成后才计算。

接下来优先改衣片连接和独立手指的比例,预期收益高于增加关键帧密度。较大的视角变化需要更多生成姿态;当前单套贴图只支持这个片段附近的动作。

验证与局限

123 / 123只读源文件哈希一致
397姿态检查,间隔 0.25 帧
0检测到的网格翻折

20 项核心测试通过,覆盖骨骼父子变换、静止姿态、权重、透明表情混合、图像路径和打包。V1/V2 冻结场景、纹理及原渲染器保持一致。检查覆盖当前动作,不保证编辑器里任意大幅拉扯仍无翻折。

新旧表情 alpha 轮廓交并比约 95.5%,轮廓并非完全一致。表情过渡仍有短暂的嘴眼重影,第 82 帧可见。衣片、袖口与手指接缝仍有拼装感,面部和衣着比例也偏离原片。零翻折不等于自然运动或视觉无瑕。

查看动作与表情检查图
表情过渡检查,第82帧有短暂重影
80、82、84、86、89、99 帧:过渡中的重影保留为已知问题。
二十个动作检查帧
20 个分布在整段视频中的动作检查帧。
描述性分数:原视频相似度

同一组 10 个既有 validation 帧,772 × 720,AlexNet LPIPS。数值越低越接近原像素。区域是固定矩形范围,不是真值分割。该视频此前已被观察,本轮没有新测试集或泛化结论。V3 分数变差符合更换生成纹理和服装的事实,未据此回退原像素。

固定区域V2 LPIPSV3 LPIPSV3 SSIM
逐帧分数
验证记录

源文件、纹理来源和 397 姿态检查 · 100 帧渲染记录 · 最终场景与运行代码哈希 · 浏览器与保存重放检查 · 骨骼与形变视图检查 · 独立审查和修复记录

独立审查解压研究包重建,最终场景与全部 56 张处理图逐字节一致。审查发现保存后无法再次显示隐藏部件,已修复并重新核对保存重放。

下载与复现

独立模型包 研究代码与生成资产 V3 视频

独立模型包解压后,在目录中运行下面命令,再打开 localhost:8765。无需原视频、API 或 ML 模型。研究包包含提示词、所有生成原图、处理脚本、场景和报告数据;不包含只读原视频。图像来源审计和与原视频打分需要原项目目录中的对应文件。

python -m http.server 8765
项目内重放命令
.venv/bin/python experiments/generated_v3/prepare.py .venv/bin/python experiments/generated_v3/build.py .venv/bin/python experiments/generated_v3/refine.py .venv/bin/python experiments/generated_v3/refine.py --round2 .venv/bin/python -m livideo2d render experiments/generated_v3/scenes/02_motion.json artifacts/generated_v3/replay --frames all .venv/bin/python -m livideo2d verify-source

V2 报告与旧分层审计 · V1 报告

放大部件
打开原文件