-
Notifications
You must be signed in to change notification settings - Fork 54
chore: Convert sample job templates to use task chunking for After Effects, Blender, Houdini and KeyShot #181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Cherie-Chen
wants to merge
4
commits into
aws-deadline:mainline
Choose a base branch
from
Cherie-Chen:chunking_convert
base: mainline
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,21 +1,48 @@ | ||
| # After Effects Render - one task | ||
|
|
||
| ## Use case for this job | ||
|
|
||
| This is an After Effects job bundle that allows the user | ||
| to submit a job that uses aerender to render a frame range | ||
| as a single task. This means the entire workload will render | ||
| on one worker as one command. | ||
|
|
||
| It accepts the following job parameters that modify the render: | ||
| * Project file | ||
| * Comp name | ||
| * Input directory | ||
| * Output directory | ||
| * Start frame | ||
| * End frame | ||
|
|
||
| This job bundle expects a user to specify an input directory that | ||
| contains all the file references that are required to render. | ||
| Generally, the project file should be within this directory to | ||
| ensure relative paths are preserved. | ||
| # After Effects Render with Contiguous Chunks | ||
|
|
||
| This job bundle renders After Effects compositions using aerender with the [Task Chunking](https://github.com/OpenJobDescription/openjd-specifications/blob/mainline/rfcs/0001-task-chunking.md) extension. | ||
|
|
||
| ## Task Chunking | ||
|
|
||
| This job bundle uses the [Task Chunking](https://github.com/OpenJobDescription/openjd-specifications/blob/mainline/rfcs/0001-task-chunking.md) extension with `rangeConstraint: CONTIGUOUS` for efficient rendering. Chunking reduces scheduling overhead by grouping frames together, and the single `Frames` parameter accepts ranges (`1-50`), individual frames (`5,7,32`), stepped ranges (`1-100:2`), or combinations (`1-10,15,20-30:2`). | ||
|
|
||
| ## Parameters | ||
|
|
||
| | Parameter | Description | Default | | ||
| |-----------|-------------|---------| | ||
| | Project file | After Effects project file (.aep, .aepx) | - | | ||
| | Comp name | Composition to render | - | | ||
| | Input directory | Directory containing input files | - | | ||
| | Output directory | Render output directory | - | | ||
| | Frames | Frame range (e.g., `0-100`) | `0-50` | | ||
| | Chunk Size | Number of frames per chunk | `10` | | ||
| | Target Runtime | Target seconds per chunk (0 to disable) | `300` | | ||
|
|
||
| ## Task Chunking | ||
|
|
||
| This template uses the `TASK_CHUNKING` extension: | ||
|
|
||
| ```yaml | ||
| extensions: | ||
| - TASK_CHUNKING | ||
|
|
||
| steps: | ||
| - name: RenderComp | ||
| parameterSpace: | ||
| taskParameterDefinitions: | ||
| - name: Frame | ||
| type: CHUNK[INT] | ||
| range: "{{Param.Frames}}" | ||
| chunks: | ||
| defaultTaskCount: "{{Param.ChunkSize}}" | ||
| targetRuntimeSeconds: "{{Param.TargetRuntime}}" | ||
| rangeConstraint: CONTIGUOUS | ||
| ``` | ||
|
|
||
| Each chunk expands to a contiguous range like `"0-9"` or `"10-19"`, which maps directly to aerender's `-s` (start) and `-e` (end) arguments. | ||
|
|
||
| Reference: [After Effects Automated Rendering](https://helpx.adobe.com/after-effects/using/automated-rendering-network-rendering.html) | ||
|
|
||
| ## Usage | ||
|
|
||
| This job bundle expects a user to specify an input directory that contains all the file references required to render. Generally, the project file should be within this directory to ensure relative paths are preserved. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| # Blender Render | ||
|
|
||
| This job bundle renders Blender scenes using the [Task Chunking](https://github.com/OpenJobDescription/openjd-specifications/blob/mainline/rfcs/0001-task-chunking.md) extension. | ||
|
|
||
| ## Task Chunking | ||
|
|
||
| This job bundle uses the [Task Chunking](https://github.com/OpenJobDescription/openjd-specifications/blob/mainline/rfcs/0001-task-chunking.md) extension with `rangeConstraint: CONTIGUOUS` for efficient rendering. Chunking reduces scheduling overhead by grouping frames together, and the single `Frames` parameter accepts ranges (`1-50`), individual frames (`5,7,32`), stepped ranges (`1-100:2`), or combinations (`1-10,15,20-30:2`). | ||
|
|
||
| ## Parameters | ||
|
|
||
| | Parameter | Description | Default | | ||
| |-----------|-------------|---------| | ||
| | Blender Scene File | Blender scene file (.blend) to render | - | | ||
| | Frames | Frame range (e.g., `1-10,15,20-100:2`) | `1-10,15,20-100:2` | | ||
| | Chunk Size | Number of frames per chunk | `5` | | ||
| | Target Runtime | Target seconds per chunk (0 to disable) | `600` | | ||
| | Output Directory | Render output directory | `./output` | | ||
| | Output File Pattern | Output filename pattern | `output_####` | | ||
| | Output File Format | Image format | `JPEG` | | ||
|
|
||
| ## Task Chunking | ||
|
|
||
| This template uses the `TASK_CHUNKING` extension with `rangeConstraint: NONCONTIGUOUS`: | ||
|
|
||
| ```yaml | ||
| extensions: | ||
| - TASK_CHUNKING | ||
|
|
||
| steps: | ||
| - name: RenderBlender | ||
| parameterSpace: | ||
| taskParameterDefinitions: | ||
| - name: Frame | ||
| type: CHUNK[INT] | ||
| range: "{{Param.Frames}}" | ||
| chunks: | ||
| defaultTaskCount: "{{Param.ChunkSize}}" | ||
| targetRuntimeSeconds: "{{Param.TargetRuntime}}" | ||
| rangeConstraint: NONCONTIGUOUS | ||
| ``` | ||
|
|
||
| Each chunk expands to an arbitrary frame set like `"1-3,5,7-10:2"`. A Python script converts this to Blender's `--render-frame` format (e.g., `1,3,5,9..11,15`). | ||
|
|
||
| Reference: [Blender Command Line Arguments](https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we keep both one task and chunking to help the reader know they all work?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"One task" in the original title was misleading, in my opinion. The old sample had 1 step rendering frames 0–50, which produced 51 tasks. The new sample preserves exactly the same frame range (0–50) and the same step and task count — nothing about what the job template does has changed. The only addition is the
TASK_CHUNKINGextension element in the template, which enables the chunking capability.The title change was meant to more clearly reflect what this job template sample actually demonstrates.