After Effects Render Plan
Decide how your frames feed AE — footage, replacement, or precomp
- ae_render_plan_json
- manifest_line
- summary_json
The After Effects bridge in MKRShift Nodes gives you two ways to hand results back: a lightweight image-output lane and a render lane. After Effects Render Plan is the plan half of the render lane - the node that decides how your generated asset feeds into an AE comp before a single frame is written. It builds the ae_render_plan_json that MKRAfterEffectsRenderOutput consumes, and the interesting decisions live in the import mode.
This is the "render roundtrip" path, and it's aimed at people doing actual comp work: you generate footage in ComfyUI - background plates, matte paintings, style frames - and you need it to land in the right comp, in the right role, without re-importing by hand.
How it works
Three required inputs define the plan. asset_path is where your generated image (or frame sequence) will live on disk. target_comp_name defaults to "Comp 1" and names the comp the asset feeds. The meaningful choice is import_mode, with three options:
footage- bring the asset in as new footage; the safe default, drops it into the project for you to place.replace_layer- swap the source of an existing layer. This is the iteration mode: re-run your workflow, and the same layer updates instead of a new piece of footage piling up. It's how you iterate a plate 20 times without trashing the timeline.precomp_source- feed the asset as the source of a pre-composition, for when the result needs to live inside a nested comp.
The optional transport_plan_json attaches a network transport plan (endpoint, webhook, watch folder) if you want the handoff to travel over one of the pack's transport lanes rather than a plain local file path - attach_transport_plan degrades gracefully when you leave it empty.
Outputs
ae_render_plan_json- the full plan, wired into MKRAfterEffectsRenderOutputmanifest_line- a comma-joined line (comp, import mode, asset path) for manifestssummary_json- target comp, whether a path is set, transport status, warnings
Installation
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart ComfyUI, or search "MKRShift Nodes" in ComfyUI Manager. No pip dependencies - it's JSON construction.
Common issues
The plan-vs-runtime split is where newcomers stumble: this node only emits JSON. Without MKRAfterEffectsRenderOutput wired to it, nothing is written to disk and nothing reaches AE. Second, replace_layer and precomp_source are contracts with the AE addon, not guarantees - they only work if the target comp actually contains a layer (or precomp) the addon can bind to. If the names don't match the timeline exactly, the addon no-ops and you get silence, not an error; check target_comp_name against the real comp, and keep in mind the addon scaffold's naming conventions. Third, an empty asset_path yields a plan with a warning and a fallback filename in the working directory - set it explicitly. And one more thing worth knowing: footage is the honest default for a first run. Get the loop working as footage, then switch to replace_layer for iteration speed once the addon side is proven. Build the plan, wire the runtime, and AE becomes a destination you can aim at.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| asset_path | STRING | — | |
| import_mode | COMBO | footage | 3 options: footage, replace_layer, precomp_source |
| target_comp_name | STRING | Comp 1 | — |
| transport_plan_jsonopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| ae_render_plan_json | STRING | — |
| manifest_line | STRING | — |
| summary_json | STRING | — |