An After Effects render queue for ShotGrid Toolkit.

Overview

AEQueue

An After Effects render queue for ShotGrid Toolkit.

Features

  • Render multiple comps to locations defined by templates in your Toolkit config.
  • Compress full-res renders as MP4 and GIF using ffmpeg.
  • Copy compressed renders to a review folder.
  • Upload renders to ShotGrid for review.

Installing

To install AEQueue make the changes in the example_config directory to your own toolkit config. This includes the following:

  1. Modify env/app_locations.yml to include tk-aftereffects-queue.
  2. Add env/includes/settings/tk-aftereffects-queue.yml to configure AEQueue. (See info.yml for details on configuration values.)
  3. Modify env/includes/settings/tk-aftereffects.yml to include AEQueue in your asset_step and shot_step sections for the tk-aftereffects engine.

TODO

  • Make UI dpi-aware.
  • Add Publish step to publish the base render (and aep?)
  • Add pre and post render hooks.
Comments
  • AEQueue encoding error on Mac

    AEQueue encoding error on Mac

      anim_seqa_031_v028
      queued [  0%] Flow initialized...
       ├ waiting [  0%] rendering initialized...
       ├ waiting [  0%] encoding MP4 initialized...
       ├ waiting [  0%] encoding GIF initialized...
       ├ waiting [  0%] copying MP4 initialized...
       ├ waiting [  0%] copying GIF initialized...
       ├ waiting [  0%] uploading initialized...
      queued [  0%] Waiting for requirements...
      rendering [  0%] Upstream Dependencies satisfied...
      rendering [  0%] Status changed from WAITING to RUNNING.
      rendering [  0%] Setting context...
      rendering [  0%] Starting...
       ├ running [  0%] Status changed from WAITING to RUNNING.
       ├ running [  0%] Preparing output path...
       ├ running [ 40%] Setting Full Flat Path: /Volumes/GoogleDrive/Shared drives/22-XXX-TestA/animation/renders/ae/seqA/seqa_031/anim_seqa_031_v028.mov
       ├ running [ 40%] Rendering [BNS - ProRes 4444+]
       └ success [100%] Status changed from RUNNING to SUCCESS.
      encoding MP4 [ 16%] Setting context...
      encoding MP4 [ 16%] Starting...
       ├ running [  0%] Status changed from WAITING to RUNNING.
       └ failed [  0%] Task failed to execute...
    Traceback (most recent call last):
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/tasks/core.py", line 226, in run
        self.result = self.execute()
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/tasks/encode.py", line 73, in execute
        self.dst_file,
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/vendor/ffmpeg_lib/__init__.py", line 125, in encode
        **platform_kwargs
      File "/Applications/Shotgun.app/Contents/Resources/Python3/lib/python3.7/subprocess.py", line 800, in __init__
        restore_signals, start_new_session)
      File "/Applications/Shotgun.app/Contents/Resources/Python3/lib/python3.7/subprocess.py", line 1551, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    PermissionError: [Errno 13] Permission denied: 'ffmpeg'
       └ failed [  0%] Status changed from RUNNING to FAILED.
      encoding MP4 [ 16%] Status changed from RUNNING to FAILED.
    
    bug 
    opened by danbradham 1
  • Permissions error updating existing Version.

    Permissions error updating existing Version.

       └ failed [ 50%] Creating or updating Version in ShotGrid...
       └ failed [ 50%] Task failed to execute...
    Traceback (most recent call last):
      File "/Users/--------/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.6.2/python/aequeue/tasks/core.py", line 234, in run
        self.result = self.execute()
      File "/Users/--------/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.6.2/python/aequeue/tasks/sgupload.py", line 76, in execute
        version = self.create_version(sg, version_data)
      File "/Users/-------/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.6.2/python/aequeue/tasks/sgupload.py", line 117, in create_version
        sg.update('Version', version['id'], version_data)
      File "/Users/-------/Library/Caches/Shotgun/brandnewschool/p4348c3598.basic.adobe/cfg/install/core/python/tank_vendor/shotgun_api3/shotgun.py", line 1401, in update
        record = self._call_rpc("update", params)
      File "/Users/--------/Library/Caches/Shotgun/brandnewschool/p4348c3598.basic.adobe/cfg/install/core/python/tank/authentication/shotgun_wrapper.py", line 63, in _call_rpc
        return super(ShotgunWrapper, self)._call_rpc(*args, **kwargs)
      File "/Users/--------/Library/Caches/Shotgun/brandnewschool/p4348c3598.basic.adobe/cfg/install/core/python/tank_vendor/shotgun_api3/shotgun.py", line 3360, in _call_rpc
        self._response_errors(response)
      File "/Users/-------/Library/Caches/Shotgun/brandnewschool/p4348c3598.basic.adobe/cfg/install/core/python/tank_vendor/shotgun_api3/shotgun.py", line 3665, in _response_errors
        raise Fault(sg_response.get("message", "Unknown Error"))
    tank_vendor.shotgun_api3.shotgun.Fault: API update() CRUD ERROR #4: The field is not editable for this user: [Version.user]. Rule: Artist -- PermissionRule 4910: DENY update_field FOR entity_type => Version, field_name => user, field_value => 
    

    Looks like fields were being modified that should not have been, namely the user field. Fix by reducing the fields to update to the bare minimum.

    bug 
    opened by danbradham 0
  • Copy file before bg render.

    Copy file before bg render.

    Make a copy of the AE project and pass the copy to aerender for background rendering. Ensures that the bg render process has a static and up-to-date copy of the AE project to work with!

    Addresses a bug where starting a bg render would not get the latest changes in your scene.

    bug 
    opened by danbradham 0
  • Stability

    Stability

    • Suppress dialogs while rendering directly in AE. Users should no longer need to accept dialogs for overwriting renders or warnings about color bit depth.

    • Fix issue where a Failed task was not propagated to all depedent jobs, causing the dialog to get stuck running, when it should Fail.

    • Fix failure caused by rendering to Google Drive on some fresh installs of ShotGrid. Solved by fixing the following two related issues.

      • Fix path generation ensuring that paths point to the correct output folders.
      • Fix BNS output module templates. Please remove the existing templates
    • Improved reliability of background rendering.

    • Set default background rendering threads to 4.

    opened by danbradham 0
  • AEQueue render error on Mac OS 12 (Monterey)

    AEQueue render error on Mac OS 12 (Monterey)

    anim_ae_demo_v003_TEST
      queued [  0%] Flow initialized...
        waiting [  0%] rendering initialized...
        waiting [  0%] encoding MP4 initialized...
        waiting [  0%] encoding GIF initialized...
        waiting [  0%] copying MP4 initialized...
        waiting [  0%] copying GIF initialized...
        waiting [  0%] uploading initialized...
      rendering [  0%] Waiting for requirements...
      rendering [  0%] Upstream Dependencies satisfied...
      rendering [  0%] Status changed from WAITING to RUNNING.
      rendering [  0%] Setting context...
      rendering [  0%] Starting...
        running [  0%] Status changed from WAITING to RUNNING.
        running [  0%] Preparing output path...
        running [ 40%] Setting Full Flat Path: /Volumes/GoogleDrive/Shared drives/22-XXX-TestA/animation/renders/ae/ae/ae_demo/anim_ae_demo_v003_TEST.mov
        running [ 40%] Rendering [BNS - ProRes 422]
        failed [ 60%] Task failed to execute...
    
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/tasks/core.py", line 224, in run
        self.result = call_in_main(self.execute)
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/tasks/core.py", line 717, in call_in_main
        raise exc_value.with_traceback(exc_traceback)
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/tasks/core.py", line 692, in event
        result = event.fn(*event.args, **event.kwargs)
      File "/Users/Edit/Library/Caches/Shotgun/bundle_cache/github/nybrandnewschool/tk-aftereffects-queue/v0.3.0/python/aequeue/tasks/aerender.py", line 54, in execute
        raise AERenderFailed('Failed to render queue item: %s' % self.comp)
    
    
        failed [ 60%] Status changed from RUNNING to FAILED.
      rendering [ 10%] Status changed from RUNNING to FAILED.
    
    bug 
    opened by danbradham 0
Releases(v0.6.3)
  • v0.6.3(Dec 9, 2022)

    What's Changed

    • Fix permissions error when updating existing Version. by @danbradham in https://github.com/nybrandnewschool/tk-aftereffects-queue/pull/13

    Full Changelog: https://github.com/nybrandnewschool/tk-aftereffects-queue/compare/v0.6.2...v0.6.3

    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Oct 3, 2022)

    What's Changed

    • Copy project file before bg rendering. by @danbradham in https://github.com/nybrandnewschool/tk-aftereffects-queue/pull/11
    • Fix ensure_optimal_context. Ensure optimal context now correctly handles an edge case where a shot that has multiple tasks for a single pipeline step. by @danbradham https://github.com/nybrandnewschool/tk-aftereffects-queue/pull/11

    Full Changelog: https://github.com/nybrandnewschool/tk-aftereffects-queue/compare/v0.6.1...v0.6.2

    Source code(tar.gz)
    Source code(zip)
  • v0.6.1(Jun 17, 2022)

    What's Changed

    • Fix AttributeError in app teardown. by @danbradham in https://github.com/nybrandnewschool/tk-aftereffects-queue/pull/9
    • Ensure flows reach 100% when status changes to Done.

    Full Changelog: https://github.com/nybrandnewschool/tk-aftereffects-queue/compare/v0.6.0...v0.6.1

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Jun 17, 2022)

    What's Changed

    • Stability by @danbradham in https://github.com/nybrandnewschool/tk-aftereffects-queue/pull/7

    • Suppress dialogs while rendering directly in AE. Users should no longer need to accept dialogs for overwriting renders or warnings about color bit depth.

    • Fix issue where a Failed task was not propagated to all dependent jobs, causing the dialog to get stuck running, when it should Fail.

    • Fix failure caused by rendering to Google Drive on some fresh installs of ShotGrid. Solved by fixing the following two related issues.

      • Fix path generation ensuring that paths point to the correct output folders.
      • Fix BNS output module templates. Please remove the existing templates
    • Improved reliability of background rendering.

    • Set default background rendering threads to 4.

    Full Changelog: https://github.com/nybrandnewschool/tk-aftereffects-queue/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Jun 14, 2022)

  • v0.4.0(Jun 14, 2022)

  • v0.3.1(Jun 14, 2022)

Owner
Brand New School
Brand New School
Slientruss3d : Python for stable truss analysis tool

slientruss3d : Python for stable truss analysis tool Desciption slientruss3d is a python package which can solve the resistances, internal forces and

3 Dec 26, 2022
This library is an ongoing effort towards bringing the data exchanging ability between Java/Scala and Python

PyJava This library is an ongoing effort towards bringing the data exchanging ability between Java/Scala and Python

Byzer 6 Oct 17, 2022
Basic code and description for GoBigger challenge 2021.

GoBigger Challenge 2021 en / 中文 Challenge Description 2021.11.13 We are holding a competition —— Go-Bigger: Multi-Agent Decision Intelligence Challeng

OpenDILab 183 Dec 29, 2022
OCR-ID-Card VietNamese (new id-card)

OCR-ID-Card VietNamese (new id-card) run project: download 2 file weights and pu

12 Jun 15, 2022
Sigma coding youtube - This is a collection of all the code that can be found on my YouTube channel Sigma Coding.

Sigma Coding Tutorials & Resources YouTube • Facebook Support Sigma Coding Patreon • GitHub Sponsor • Shop Amazon Table of Contents Overview Topics Re

Alex Reed 927 Jan 08, 2023
Task dispatcher for Postgres

Features a task being ran as an OS process supports task queue with priority and process limit per node fully database driven (a worker and task can b

2 Dec 06, 2021
Projeto job insights - Projeto avaliativo da Trybe do Bloco 32: Introdução à Python

Termos e acordos Ao iniciar este projeto, você concorda com as diretrizes do Código de Ética e Conduta e do Manual da Pessoa Estudante da Trybe. Boas

Lucas Muffato 1 Dec 09, 2021
The last walk-through project in code institute diploma course

Welcome Rocky.C, This is the Code Institute student template for Gitpod. We have preinstalled all of the tools you need to get started. It's perfectly

Rocky.C 1 Jan 31, 2022
A minimalist production ready plugin system

pluggy - A minimalist production ready plugin system This is the core framework used by the pytest, tox, and devpi projects. Please read the docs to l

pytest-dev 876 Jan 05, 2023
A student information management system in Python

Student-information-management-system 本项目是一个学生信息管理系统,这个项目是用Python语言实现的,也实现了图形化界面的显示,同时也实现了管理员端,学生端两个登陆入口,同时底层使用的是Redis做的数据持久化。 This project is a stude

liuyunfei 7 Nov 15, 2022
LinkScope allows you to perform online investigations by representing information as discrete pieces of data, called Entities.

LinkScope Client Description This is the repository for the LinkScope Client Online Investigation software. LinkScope allows you to perform online inv

108 Jan 04, 2023
Fast STL (ASCII & Binary) importer for Blender

blender-fast-stl-importer Fast STL (ASCII & Binary) importer for Blender based on https://en.wikipedia.org/wiki/STL_(file_format) Technical notes: flo

Iyad Ahmed 7 Apr 17, 2022
Ml-design-patterns - Source code accompanying O'Reilly book: Machine Learning Design Patterns

This is not an official Google product ml-design-patterns Source code accompanying O'Reilly book: Title: Machine Learning Design Patterns Authors: Val

Google Cloud Platform 1.5k Jan 05, 2023
Backups made easy, automated, monitored and SECURED with an audited encryption

Backup Controller Backups made easy, automated, monitored and SECURED with an audited encryption. Schedules backup tasks executed by Backup Maker, upl

RiotKit 1 Jan 30, 2022
A python script to search for k-uniform Euclidean tilings.

k-uniform-solver A python script to search for k-uniform Euclidean tilings. This project's aim is to replicate and extend the list of k-uniform Euclid

3 Dec 06, 2022
The bidirectional mapping library for Python.

bidict The bidirectional mapping library for Python. Status bidict: has been used for many years by several teams at Google, Venmo, CERN, Bank of Amer

Joshua Bronson 1.2k Dec 31, 2022
Location of public benchmarking; primarily final results

CSL_public_benchmark This repo is intended to provide a periodically-updated, public view into genome sequencing benchmarks managed by HudsonAlpha's C

HudsonAlpha Institute for Biotechnology 15 Jun 13, 2022
Serverless demo showing users how they can capture (and obfuscate) their Lambda payloads in Datadog APM

Serverless-capture-lambda-payload-demo Serverless demo showing users how they can capture (and obfuscate) their Lambda payloads in Datadog APM This wi

Datadog, Inc. 1 Nov 02, 2021
Data on COVID-19 (coronavirus) cases, deaths, hospitalizations, tests • All countries • Updated daily by Our World in Data

COVID-19 Dataset by Our World in Data Find our data on COVID-19 and its documentation in public/data. Documentation Data: complete COVID-19 dataset Da

Our World in Data 5.5k Jan 03, 2023
The ROS publisher/subscriber example packaged as a snap

publisher-subscriber The ROS publisher/subscriber example packaged as a snap, based on ROS Noetic and Ubuntu Core 20. Strictly confined. This example

3 Dec 03, 2021