ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenMontage 手绘动画实战:用 AnimatedDrawings 让用户画作与照片随真实动作起舞

OpenMontage 手绘动画实战:用 AnimatedDrawings 让用户画作与照片随真实动作起舞 OpenMontage 手绘动画实战用 AnimatedDrawings 让用户画作与照片随真实动作起舞【免费下载链接】OpenMontageWorlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMontage本篇指南讲解 OpenMontage 中/animated-drawing这条创意技能路径它调用 Meta 开源的 AnimatedDrawings 工具把用户提供的人形画作或照片自动绑定 16 关节骨架再通过 As-Rigid-As-PossibleARAP网格变形将 BVH 动捕片段重定向到这张图上输出透明 GIF 或 MP4。读完你将领会如何在 OpenMontage 的 agent 工作流中正确选择角色来源、在「开箱即用」与「Docker 自动绑定」两种模式间取舍、为不同 BVH 骨架配对正确的 retarget 配置并把动起来的角色经 HyperFrames 合成进一支完整视频同时避开 GIF 冻结、字体回退、管线豁免等已知坑位。适用场景与能力边界先分清/animated-drawing与/ink-art/animated-drawing是一条栅格raster路径它的适用场景非常明确用户已经有一张人形角色的画作或照片并且希望这张图本身动起来跳舞 / 走路 / 跳跃 / 挥手输出是把原画扭曲变形到动作上的透明 GIF 或 MP4。其核心流程是自动绑定预测 16 关节骨架→ 将 BVH 动捕片段重定向到骨架上 → 对扁平纹理做 ARAP 网格变形。它只负责让一张已经画好的图动起来没有「边画边自我展示」的 reveal 效果——那是/ink-art矢量、从零创作的职责。OpenMontage 把这两个命令定位为**创意入口creative entry points**而非 Rule-Zero 管线这在 AGENT_GUIDE.md 中有明确记载/animated-drawing与/ink-art是跨界工具入口运行时不存在对应的.yaml清单不要为了找清单而卡住流程详见skills/creative/ink-theater.md中的「Pipeline-exempt」说明。两者的对比关系如下维度/animated-drawing本文/ink-art矢量路径输入已存在的画作 / 照片从零绘制的矢量涂鸦输出栅格 GIF透明/ MP4H.264avc1白色墨线矢量动画带自绘 reveal渲染方式ARAP 网格变形像素级扭曲矢量形状 数学Ink Theater 引擎角色仅限人形任意简笔角色相关引擎Meta AnimatedDrawingsink-theater/ink-theater.js Ink Puppet若用户的诉求是「画一幅会自己动起来的矢量涂鸦」应转用/ink-art与 Ink Theater 引擎仓库中的ink-theater/mocap/catalog.json自带 12 个 CMU 来源的动作walk、run、dance_spin、wave 等正是那条路径的动作库。选择角色来源先问绝不静默复用捆绑角色该工具会动画化你给它的任何图但它需要一张人形画作有头、双臂、双腿、四肢分离、纯浅色背景。正式动手前agent必须向用户呈现以下选项并让用户选择其一当用户没有任何素材时默认走「生成新角色」。这一步既是需求澄清也是避免每条视频都像同一个吉祥物的关键用户上传自己的画作—— 效果最好因为是用户自己的角色。用户上传照片 / 任意图片—— 先用image_selectorimg2imgFLUX/Recraft做「涂鸦化」提示词如turn this into a simple childs crayon doodle of a humanoid, full body, plain white bg然后再绑定。「手绘感」来自这一步——直接扭曲原始照片的效果很差。生成一个新角色⭐推荐默认—— 用image_selectorFLUX/Imagen生成a childs crayon drawing of a character, full body, front-facing, A-pose with arms and legs separated, plain white background, no shadow, no text。每条视频都独一无二。抓取一个图库角色—— 用pixabay_image/pexels_image过滤到「纯背景上的手绘人形」。命中率看运气图库多为照片优先推荐方案 3。捆绑示例角色仅用于演示不得作为用户角色对外交付。注意选项 1–4 全部依赖下面的auto-rig Docker 服务若该服务未启动必须如实告知用户。这条「绝不静默复用捆绑角色」的纪律与 Ink Theater 路径中「读catalog.json挑动作、绝不循环同一 clip」的原则一脉相承见skills/creative/ink-theater.md——区别在于前者约束角色来源后者约束动作多样性。两种运行模式开箱即用 vs Docker 自动绑定模式 A · 捆绑角色 预设动作无需 DockerWindows 已验证git clone --depth 1 https://github.com/facebookresearch/AnimatedDrawings.git cd AnimatedDrawings # 仓库锁定 Python 3.8 旧 wheel用 uv 装 3.8 uv python install 3.8 uv venv --python 3.8 .venv uv pip install --python .venv -e . uv pip install --python .venv setuptools81 # 仓库 import 了 pkg_resources 但未声明依赖 .venv/Scripts/python -c from animated_drawings import render; render.start(./examples/config/mvc/export_gif_example.yaml)关键点仓库隐式依赖pkg_resources来自旧版 setuptools却未在依赖中声明因此必须显式固定setuptools81。纯 CPU 即可运行每个片段约10–12 秒无需 GPU、Docker 或模型下载。模式 B · 自动绑定新画作重量级Docker 约 670 MB 模型 约 16 GB 内存python image_to_animation.py drawing.png out_dir # detect → segment → rig → retarget → render该模式需要仓库docker/目录下的 TorchServe 容器容器会下载drawn_humanoid_detector.mar311 MB与drawn_humanoid_pose_estimator.mar357 MB两个模型。Windows 上只应通过该容器运行绑定链路OpenMMLab 在实践中仅支持 Linux。这条「检测→分割→绑定→重定向→渲染」的流水线与 OpenMontage 另一条手绘动捕路径在思想上一脉相承ink-theater/mocap/bvh2clip.mjs同样在离线阶段把 3D BVH 动捕文件转换为紧凑的 2D cliphips 相对姿态 rootY 垂向根运动按固定身高 520px 缩放并通过ALIAS别名表兼容 fair1 / CMU / Mixamo 三套骨架——它证明了「BVH 动捕→2D 角色」这一技术路线在仓库中是经过真实工程化的/animated-drawing只是其栅格版形态详见ink-theater/README.md。输入要求自动绑定模式一张清晰绘制的人形大致呈 T/A-pose四肢分离、不重叠背景为纯浅色分割基于阈值 floodfill图中恰好一个人物。Agent 生成的配置全部为 YAML自动绑定会产出一组 YAML 配置文件理解它们是把控输出的关键char_cfg.yaml附带texture.png、mask.png由image_to_annotations.py自动生成—— 角色定义纹理、遮罩与骨架映射。运动motion配置—— 指定 BVH 文件、帧范围frames与地面平面groundplane。重定向retarget配置—— 把 BVH 关节映射到角色关节骨架无差异时可复用捆绑的fair1_ppf/cmu1_pfp。MVC 配置—— 渲染控制器controller.MODE: video_render、OUTPUT_VIDEO_PATH可选WINDOW_DIMENSIONS、CLEAR_COLOR、BACKGROUND_IMAGE、CAMERA_POS。其中WINDOW_DIMENSIONS直接决定输出分辨率示例为 500×500CLEAR_COLOR: [0,0,0,0]则是后续 HyperFrames 透明合成的关键开关见下文。预设动作 → retarget 配置骨架必须匹配每个捆绑 BVH 属于不同的骨架族用错 retarget 配置会直接崩溃ValueError: RightArm is not in list。必须严格配对动作BVH 目录retarget 配置dab、wave_hello、jumping、zombiebvh/fair1/fair1_ppfjumping_jacksbvh/cmu1/cmu1_pfpjesse_dancebvh/rokoko/mixamo_fff其他 BVH 需自行匹配其骨架或编写新的 retarget 配置。另外两个实战提示用end_frame_idx截断长片段例如wave_hello有 839 帧不截断会让渲染跑好几分钟。接地类片段ground-contact如dab、wave_hello渲染约慢 8 倍规划时长时需预留余量。这条「不同骨架必须配不同 retarget」的教训在仓库的bvh2clip.mjs中以另一种形式复现其ALIAS别名表hips: [Hips, mixamorig:Hips, Hip]等就是为了让同一套转换逻辑能识别不同来源的关节命名遇到未识别骨架会打印WARN ... unmapped joints ... (skeleton not recognized — extend ALIAS)——提前暴露问题而不是在渲染时才崩溃。角色多样性动画化用户自己的画作捆绑角色只是演示素材。真实使用中角色就是用户提供的任何东西——每条视频都应独一无二。对于「随便帮我做个视频」且没有画作的请求用图像生成创建新角色提示词参考上文方案 3输出为纯浅色背景上的 PNG走 Docker 路径自动绑定auto-rig得到每次都不一样的角色。绝不在多条视频间复用捆绑角色否则所有输出都像同一个吉祥物。这条约束同样呼应 OpenMontage 整体的 taste 治理AGENT_GUIDE.md中的「Composition Authoring Mode」明确反对复用会让视频千篇一律的创作组件手绘角色同理。合成进 HyperFrames成为一支真正视频的后半段AnimatedDrawings 只输出「动起来的角色」。要得到真正的视频背景、气球、音乐必须在 HyperFrames 中合成透明输出在 MVC 配置中设置view.CLEAR_COLOR: [0,0,0,0]渲染透明帧。GIF 会在确定性 HyperFrames 渲染中冻结务必先转成带 alpha 的 VP9 WebMffmpeg -i char.gif -c:v libvpx-vp9 -pix_fmt yuva420p char.webm。注意ffprobe会误报为yuv420p——alpha 通道实际完好。视频契约linter 强制运行npm run checkvideo必须是场景stage的直接子元素并带自己的id不能嵌套在带计时的div里嵌套会冻结每个片段需要独立的data-track-index淡出需要末尾硬杀tl.set(el,{opacity:0})。文字 /气泡使用 HTML 覆盖层 div并加载完整的ink-theater/assets/patrickhand.ttf字体详见 Ink Theater 的字体内嵌陷阱切勿用 Google Fontscss2API 的子集 woff2其缺少 basic-latin 会导致全英文静默回退为衬线体。管线豁免/animated-drawing与/ink-art是创意入口而非 Rule-Zero 管线没有.yaml清单不要在合成阶段寻找不存在的 manifest。这段契约与skills/core/hyperframes.md中描述的确定性渲染规则完全一致每条时间线必须同步注册到window.__timelines、禁用repeat:-1、先lint后validate再render。透明 WebM 角色以video直挂 stage 下的写法正是 HyperFrames 播放带 alpha 媒体所要求的形态。输出与诚实的限制输出格式GIF透明/ MP4H.264avc1分辨率由WINDOW_DIMENSIONS决定示例 500×500。明确的边界仅栅格扭曲的是画作像素放大可见纹理拉伸仅人形无法动画化非人形物体无自绘 reveal不做「边画边动」背景简陋角色背后是简单纯色背景复杂场景需靠 HyperFrames 补。它的定位是「让你的涂鸦活过来」的趣味能力auto-rig 路径背后依赖 Docker 服务。它不是通用矢量引擎——需要白色墨线、自绘展开的矢量涂鸦时请使用/ink-artInk Theater见skills/creative/ink-theater.md与ink-theater/README.md。会话评估中的示例渲染产物位于.tmp/animated-drawings/out/如char3_dab.gif、char1_zombie.mp4可作为自检参考与验收基线。仓库层面ink-theater/THIRD_PARTY_NOTICES.md明确注明不捆绑任何 Meta / FAIRAnimatedDrawings动捕数据——/animated-drawing是独立能力文档与 Ink Theater 的 CMU 动作库互不混淆授权边界清晰CMU 数据免费可用于研究与商业见ink-theater/mocap/NOTE.md。小结一条完整的执行清单问用户上传画作 / 上传照片涂鸦化 / 生成新角色默认/ 图库角色选模式捆绑角色走模式 A10–12 秒/片段无需 Docker新角色走模式 BDocker 670 MB 模型 16 GB 内存配参数生成char_cfg.yaml、motion、retarget、MVC 四类配置retarget 必须与 BVH 骨架配对长片段用end_frame_idx截断转透明素材view.CLEAR_COLOR: [0,0,0,0] GIF 转 VP9 WebMyuva420pHyperFrames 合成video直挂 stage 带独立id与data-track-index淡出加硬杀文字气泡用完整 patrickhand.ttf运行npm run check交付透明 GIF / MP4记住它「仅栅格、仅人形、无 reveal」的能力边界需要自绘矢量动画时切换/ink-art。【免费下载链接】OpenMontageWorlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMontage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表