Livideo2D:让 LLM 看、改、再看


Papyrus 首轮研究:关键帧拆层 → 可编辑 mesh → 普通渲染 → 视觉诊断与补丁。

__DATE__ · 100 帧 / 772×720 / 27 fps / 3.70 秒 · 13 个候选 · 1 次 agent 研究轨迹

目录

结果与边界

__LPIPS__测试人物 LPIPS ↓
__IMPROVEMENT__相对静止基线下降
7固定纹理图层
2内置图像生成调用

已完成可回放、可编辑的混合模型。最终 11 号候选由验证集选出,冻结后在 20 个留出帧上评分。主体像素来自开发帧 0,眼/嘴来自开发帧 90,生成背景补不可见区域;运行时无需原视频或在线模型。

外观指标提高,运动仍未解决。开发集帧差 MAE 比静止基线高,尾巴快速转向和局部网格翻折仍存在。这里的“人物”是粗矩形并集,包含背景;单片段交错留帧只检验插值,不能证明跨视频泛化或方法统计优势。

对照原视频

左:原始 PNG 帧序列;右:最终模型。两侧编码进同一个视频,时间严格同步。视频为 H.264 展示副本;指标来自无损 PNG。
滑动分界线:左原图 / 右重建
模型重建
原始帧
◀▶

区域按钮按固定坐标裁切原图与重建;帧列表均来自开发集。全部帧的效果见上方完整视频,测试分数见下表。

直接改变模型

播放时间轴、拖尾尖、移动骨点、开关图层、看线框或改变表情。下载的 scene JSON 保存控制轨迹;这是可操作模型,并非原视频换壳播放。

独立打开编辑器 下载离线模型 重建视频

所有候选与指标

LPIPS ↓ 越低越好。悬停查看精确值;测试集只评估冻结的三组对照。
决定
评估协议与公式

开发:帧号末位不为 2、4、8;验证:末位 2;测试:末位 4、8。纹理提取、关键姿态观察、局部 LK 测量和背景中值均仅使用开发集。最终模型和对照哈希在测试读取前冻结,之后没有根据测试结果修改模型。

像素 RGB 归一化到 [0,1]。PSNR = −10 log10(max(MSE, 10⁻¹²));SSIM 使用 scikit-image 的原分辨率空间图;LPIPS = Alex v0.1 spatial 的原分辨率图按固定区域取平均,输入 [-1,1]。表格为逐帧指标的均值。

帧差 MAE = mean |(重建ₜ−重建ₜ₋₁)−(原图ₜ−原图ₜ₋₁)| / 255,仅在同 split 的相邻帧计算。开发集有 39 对;验证/测试没有相邻对,显示“—”,不能以缺失值宣称时间一致性。

固定框:脸 (375,158)–(565,300),尾巴 (20,405)–(330,652),头发 (280,0)–(650,370),身体 (165,280)–(715,720)。人物为头发、尾巴、身体的并集。区域有重叠且含背景,LPIPS 网络感受野也跨越边界。

三姿态基线同时缺少后续素材与身体修正,不能将其与最终版的全部差距归因于“多轮 agent”。相邻候选用于局部归因;同一 agent 的渐进修改不等于独立运行。

概要 JSON · 冻结记录 · 选型规则

Agent 做了什么:证据 → 假设 → 补丁

LLM 不是只写脚本:它观察原始姿态、检查误差图、识别跟踪失败、决定尾巴运动路径和睁眼事件。工具负责精确落地;每次实验先给出 ROI 判断。

图像模型产生的人物拆件
第一次图像生成:角色拆件。造型可用,但直接重组与原片相差过大;此失败保留在 01 号候选。
生成的干净背景
第二次图像生成:补全背景。混合模型仅在遮挡区域使用生成内容,其余尽量保留已观察像素。
多轮观察证据:失败、修正、转向
早期重建误差
05 号:耳部无效零位移造成形变,眼睛仍闭合。LLM 据此修复轨迹并增添表情。
尾巴原纹理对照
07 号:源纹理改善颜色;背景中值残影被进一步定位。
尾巴中间姿态开发网格
11 号新增观测:十帧间隔漏掉转向,中间帧由 LLM 明确给出八点路径。

研究方向与实现

选择“视觉 agent 操作可检查工具”的路线。生成拆件只解决一部分不可见内容,不能保证保真;因此先验证素材,再为大幅摆尾建立带状 mesh,最后补小幅身体运动和表情。计算脚本不自动搜索场景参数,不最小化渲染图像损失,不做反向传播。

任务负责方本轮实现
语义结构 / 遮挡 / 异常诊断LLM层级与多边形、尾巴 21 个姿态、侧发轨迹、表情时刻、实验取舍
像素与局部位移测量代码工具alpha / 去底色 / 重采样;有前后向一致性检查的局部 LK,失效样本由 agent 剔除
动画与绘制代码工具固定距离权重蒙皮;时间线性插值;空间 Catmull–Rom;普通 WebGL alpha 合成
判断与迭代LLM + 工具证据区域指标、原图/重建/误差拼图;保存补丁、回滚和冻结记录
调研来源与取舍

VIGA 与 BlenderAlchemy 提供可参考的视觉检查 / 程序修改思路。本项目借用反馈组织方式,没有运行其系统或宣称复现论文成绩。

Animation2Code 提示重建应同时检查外观与动作;这里分别报告外观指标与帧差。See-through、Bunraku 为后续分层方向候选,本轮未执行。

大型分层/扩散模型暂缓:现有视觉证据首先指向纹理漂移、跟踪失败和关键姿态密度。先用低成本工具验证这些问题,避免引入难以解释的新系统。

剩余问题:头部与头发遮挡不精确;生成背景有轮廓残留;眼/嘴是贴片淡入而非完整眼睑模型;尾巴全矩形网格每帧最多 10 个翻折三角形(包含透明区,尚未测量可见比例)。几何约束消融降至 4,但外观退步,未选入最终模型。

下一轮优先:局部头发/头部遮挡、尾巴弯曲时的宽度与时刻、眼睑参数化。随后用第二段视频与独立 agent 运行检验稳定性。当前结果不足以证明通用自动建模已解决。

复现、成本和完整产物

代码 / 场景 / 纹理 / 逐帧指标 实验环境 浏览器验证

# 在项目目录使用已有环境 .venv/bin/python -m unittest discover -s tests -v .venv/bin/python -m livideo2d verify-source .venv/bin/python -m livideo2d serve --port 8765 # 打开 http://127.0.0.1:8765/artifacts/export/index.html # 复跑明确保存的候选,不自动调参 .venv/bin/python experiments/run_batch.py experiments/scenes/*.json --split dev .venv/bin/python experiments/report.py

2 次内置图像生成;无外部收费 API。生成原图已保存,不需要重新采样即可复现实验。LLM token 与图像生成服务端耗时未完整采集,不推断总费用;缓存中保留的渲染/评分秒数不是整个会话总时长。

模型 ZIP 包含固定素材与播放器,解压后 python -m http.server 8765 即可离线运行。研究包不附原始视频或 100 张目标帧;评分需放入原始 Papyrus 数据,路径见 README。测试帧不进入模型资产。

只读约束:。静止原帧重放、导出像素一致性、编辑下载重放、375px 移动端布局已检查;浏览器无脚本异常。当前只是一次研究轨迹,没有多随机种子或独立重复实验。