Magos DWP Editor
Magos DWP Editor
- keyframe_data
- source_images
- nlf_model
- keyframe_data
- pose_data
- camera_matrices
- nlf_poses
You know the drill: you run a WanAnimate or ControlNet pose workflow, and the generated skeleton has a hand fused into the hip, or the legs do the same thing every frame, or a joint flickers for three frames. Most pose tools let you shrug and re-roll. This one lets you open the skeleton in a full-screen editor and drag the joints until they're actually right. That's the whole pitch: it's the frame-by-frame pose editor from Magos Digital Studio's open-source pack, and it's the node you'll spend the most time inside.
Magos Digital Studio is a VFX/broadcast animation outfit that open-sourced these nodes because stock pose tools couldn't get AI animation up to production standards. The Editor is their flagship. Where the standard pipeline is extract → generate, this one is extract → edit → render, and the editing is the point.
How it works
The Editor is a pop-up overlay (a ComfyUI web extension) that reads keyframe_data - the skeleton the Magos DWP Extractor produced - and lets you manipulate it with a real animation toolset. It's not a toy slider panel. There's a timeline with keyframes, a dope sheet (diamond view of every keyframe, copy/paste, trim), a graph editor with Catmull-Rom / Linear / Step / Ease interpolation per joint, multiple viewports (Front, Back, Top, Side, Orbit 3D, and Camera), and an animated camera you can keyframe. Hands get IK/FK toggles, there's a 70-point face group, and if you've got the optional NLF model running you can edit the 3D SMPL skeleton too.
The important part for beginners: run the workflow once before you open the editor. It needs the Extractor to have processed frames first. Click "Open Temporal Editor," drag joints, then click Apply Changes and re-queue - your edits are baked into the node widget and survive ComfyUI restarts. You can also Save/Load the whole edit session as a JSON project.
The inputs and outputs that matter
Only one input is required: keyframe_data, straight from the Extractor. The rest are mostly set-and-forget:
source_images- wire in the original video frames so you're editing over the actual footage as a canvas backdrop. Do it; editing blind is misery.render- the projection mode on output.Editor Front(default) gives a flat 2D pose;Editor CameraandEditor Camera Orthoproject through your animated camera;Retargeterleaves the skeleton unprojected so you can wire it into the Magos Pose Retargeter for camera-aware work.export_format-dwpose(default) ornlf_3dto swap in NLF body data.editor_state_json- internal storage for your edits. Don't hand-edit it.
Outputs: keyframe_data (your edited skeleton, for chaining or the Retargeter), pose_data (a POSEDATA you feed into the Renderer or Retargeter), camera_matrices (per-frame camera extrinsics/intrinsics, only if you added a camera), and nlf_poses (NLFPRED, only if an NLF model was used).
Install
This is part of the ComfyUI-Magos-Nodes pack, so install the whole pack once and you get all six nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/MagosDigitalStudio/ComfyUI-Magos-Nodes
Restart ComfyUI. You'll find it under MAGOS Nodes → Temporal Editor. It needs Kijai's ComfyUI-WanAnimatePreprocess installed (that's where the POSEDATA type and the detection models come from), so grab that too.
Common issues
- Empty editor / no skeleton - you opened it before running the workflow once. Queue it, then open.
- Editor reset itself - the node auto-resets when the footage changes resolution or frame count. Re-extract, then re-edit.
- Edits didn't apply - you skipped Apply Changes before re-queueing. That's the single most common mistake, and honestly the one everyone makes once.
The manual lives in the pack's MANUAL.md and is worth reading if you're going deep - there are keyboard shortcuts (F1 in the editor shows the full list) and a proper dope-sheet workflow in there. It's a learning curve, but it's the difference between "praying the skeleton works" and actually fixing it.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| keyframe_data | KEYFRAME_DATA | — | |
| source_imagesopt | IMAGE | — | |
| editor_state_jsonopt | STRING | {} | — |
| nlf_modelopt | NLF_MODEL | — | |
| renderopt | COMBO | Editor Front | Editor Front = flat 2D rendered here. Editor Camera = perspective projection through camera keyframes, rendered here. Editor Camera Ortho = parallel projection, rendered here. Retargeter = leave unprojected; wire pose_data + keyframe_data + camera_matrices into MagosPoseRetargeter for camera-view retargeting. |
| export_formatopt | COMBO | dwpose | 2 options: dwpose, nlf_3d |
| debug_logopt | BOOLEAN | false | Write a timestamped debug .txt log to <plugin>/logs/ for each run |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| keyframe_data | KEYFRAME_DATA | — |
| pose_data | POSEDATA | — |
| camera_matrices | CAMERA_MATRICES | Batched extrinsic [N,4,4] + intrinsic [N,3,3] matrices. None if no camera added. |
| nlf_poses | NLFPRED | SCAIL-Pose compatible NLFPRED dict (joints3d_nonparam, [N,24,3] mm). None if no NLF model was used. |