Single-Task Multi-Process Orchestrator (STMPO) for Adobe After Effects running on AWS Deadline Cloud.
This repo extends the official AWS Deadline Cloud for After Effects integration with:
- A custom ScriptUI submitter (
DeadlineCloudSubmitter_STMPO.jsx) - A STMPO-enabled job template bundle
- A small collection of worker-side helper scripts
Together, they let a single Deadline task fan out into multiple parallel aerender.exe processes on a large multi-core worker, with optional NUMA-aware CPU affinity and automatic font deployment.
One Deadline task β many local
aerenderworkers, with optional core pinning and AE Multi-Frame Rendering awareness.
-
π§ STMPO orchestration
- Splits a taskβs frame range into N sub-ranges.
- Spawns N child
aerender.exeprocesses in parallel on the worker. - Tracks children, aggregates logs, and enforces a configurable fail-fast policy.
-
π§΅ Multi-Frame Renderingβaware
- Uses AEβs
-mfrflag per child. - Supports explicit on/off for MFR.
- Auto-mode can choose a concurrency based on logical cores and MFR settings.
- Uses AEβs
-
βοΈ NUMA / CPU affinity (optional)
- Reads a JSON NUMA map (
numa_map.json) to understand physical CPU layout. - Slices CPU pools into affinity blocks and pins each
aerenderchild to its own block. - Graceful fallback: if affinity or topology fails, STMPO logs a warning and continues without pinning.
- Affinity is disabled by default (opt-in with
--enable_affinity) and remains off by default on Windows hosts with more than 64 logical CPUs to avoid processor-group pinning errors (WinError 87).
- Reads a JSON NUMA map (
-
π Job template integration
- OpenJD job templates for both video and image sequence renders.
- STMPO controls exposed in the AWS Deadline Cloud submission UI.
- Job environment that creates output directories on the worker before rendering.
-
π€ Font deployment
- Detects fonts used on the submitter machine, attaches them to the job, and installs them on the worker at job start.
- Cleans up fonts at job end, so workers stay tidy.
From the repo root:
.
ββ DeadlineCloudSubmitter_STMPO.jsx
ββ DeadlineCloudSubmitter_Assets/
ββ JobTemplate/
ββ template.json
ββ image_template.json
ββ video_template.json
ββ job_environments_fragment.json
ββ parameter_definitions_image_fragment.json
ββ parameter_definitions_video_fragment.json
ββ step_image_fragment.json
ββ step_video_fragment.json
ββ scripts/
ββ call_aerender.py
ββ create_output_directory.py
ββ font_manager.py
ββ get_user_fonts.py
ββ numa_map.json
ββ stmpo_wrapper.py