# VFXReview Connector for Nuke A dockable PySide-based panel for Foundry Nuke that integrates with the VFXReview platform to streamline shot setup, review publishing, render management, and compositing workflows for VFX production pipelines. --- # Overview The Nuke Connector is designed around a single principle: > Artists should not spend time building standard node graphs, locating plates, configuring write nodes, or publishing reviews. The connector automates these repetitive tasks and standardises shot structure across the project. --- # Configuration The connector uses the following global configuration variables. | Variable | Description | | ------------ | --------------------------- | | TOKEN | API authentication token | | BASE_URL | VFXReview platform URL | | PROJECT_CODE | Project identifier | | PROJECT_ROOT | Root project directory | | FOOTAGE_ROOT | Source footage location | | EXPORT_ROOT | Published render location | | PICLOCK_ROOT | Picture lock location | | NK_ROOT | Nuke script location | | OCIO_CONFIG | Facility OCIO configuration | Example: ```python TOKEN = "xxxxx" BASE_URL = "https://review.twotalesvfx.com" PROJECT_CODE = "UNG_S1" PROJECT_ROOT = "X:/shared_projects_2026/UNGO_VFX" FOOTAGE_ROOT = PROJECT_ROOT + "/production/plates" EXPORT_ROOT = PROJECT_ROOT + "/production/renders" PICLOCK_ROOT = PROJECT_ROOT + "/production/piclocks" NK_ROOT = PROJECT_ROOT + "/production/nuke" OCIO_CONFIG = PROJECT_ROOT + "/config/aces/config.ocio" ``` --- # Panel Layout The panel is divided into six sections. 1. Shot Builder 2. Publishing 3. References 4. Utilities 5. Color Management 6. Status --- # Shot Builder --- ## Episode Dropdown Queries: ```http GET /api/ext/projects/{PROJECT_CODE}/episodes ``` Displays: ```text UNG_101 UNG_102 UNG_103 ... ``` --- ## Shot Dropdown Queries: ```http GET /api/ext/projects/{PROJECT_CODE}/shots?episode={episode} ``` Displays: ```text UNG_106_010_020 UNG_106_010_030 UNG_106_010_040 ``` --- ## Build Shot Creates a complete Nuke script for the selected shot. ### Process 1. Retrieve shot metadata from VFXReview. 2. Locate latest plate sequences. 3. Create Read nodes. 4. Create project Backdrop. 5. Configure project settings. 6. Create standard Write nodes. 7. Create Review branch. 8. Create Viewer. 9. Save script. ### Script Structure ```text PLATES Read_Plate | OCIOColorSpace | Dot | -------------------------------- | | COMP REVIEW | | Write_EXR ReviewSlate | Write_MOV ``` ### Script Settings ```python fps = 24 format = UHD colorManagement = OCIO ``` ### Save Location ```text {NK_ROOT}/{episode}/{shotCode}/{shotCode}_comp_v001.nk ``` --- ## Build Cleanup Script Creates a prebuilt cleanup template. ### Graph ```text Read | FrameHold | RotoPaint | Merge | Write ``` Used for: * Reflection removal * Wire removal * Crew cleanup * Sign removal * Set extensions --- ## Build Projection Script Creates a standard projection setup. ### Graph ```text Read | Project3D | Card | ScanlineRender ``` Additional nodes: ```text Camera Axis Scene ``` --- ## Build Screen Comp Script Creates a standard monitor replacement setup. ### Graph ```text Read | PlanarTracker | CornerPin | Merge ``` Creates placeholders for: * Screen source * Reflection source * Grade stack --- # Publishing --- ## Publish EXR Creates or updates: ```text Write_EXR ``` ### Settings ```text Datatype: 16-bit half Compression: ZIP Colorspace: ACEScg ``` ### Output ```text {EXPORT_ROOT}/{shotCode}/{exrOutput}.####.exr ``` --- ## Publish Review MOV Creates: ```text Write_Review ``` ### Output ```text {EXPORT_ROOT}/{shotCode}_cmp_TT_v001.mov ``` ### Review Slate Automatically inserts: ```text ReviewSlate ``` Populated from API metadata. Fields: * Shot Name * Description * Notes * Episode * Scene * Date * Version * Artist --- ## Publish to VFXReview One-click publish. ### Process 1. Render review MOV. 2. Generate thumbnail. 3. Upload MOV. 4. Upload thumbnail. 5. Update review status. 6. Attach version notes. ### API ```http POST /api/ext/reviews ``` --- ## Version Up Automatically increments: ```text UNG_106_010_020_comp_v001.nk ``` to ```text UNG_106_010_020_comp_v002.nk ``` Updates: * Script filename * Write nodes * Review paths * Slate version --- # References --- ## Pull Picture Lock Retrieves picture lock reference. ### Process 1. Query sequence timecodes. 2. Locate offline. 3. Create Read node. 4. Set frame range. 5. Place in REFERENCE backdrop. ### Graph ```text Read_Piclock ``` Positioned separately from comp graph. --- ## Pull Latest Plate Scans: ```text FOOTAGE_ROOT ``` Imports latest available plate version. Creates: ```text Read_Plate ``` --- ## Pull Latest Render Scans render folder. Creates Read nodes for: ```text beauty matte atmos fx comp ``` where available. --- ## Pull Client Notes Queries VFXReview. Displays: * Description * Notes * Latest review comments * Client feedback inside panel. --- # Utilities --- ## Auto Cryptomatte Setup Scans channels. Automatically creates: ```text Cryptomatte_Object Cryptomatte_Material Cryptomatte_Asset ``` where available. --- ## Auto Shuffle Setup Creates shuffles for common passes. Examples: ```text rgba depth motion position normal specular diffuse emission ``` --- ## Import Render Package Imports all render layers from a render directory. Creates: ```text Read nodes Backdrop ``` Organised automatically. --- ## Fix Paths Searches entire script. Updates: ```text old path ``` to ```text current project path ``` Useful when artists move between machines. --- ## Script Health Check Scans script for: * Missing footage * Missing renders * Missing OCIO config * Disabled Write nodes * Broken file paths Returns report. --- # Color Management --- ## Configure OCIO Sets: ```python nuke.root()["colorManagement"].setValue("OCIO") ``` Loads facility OCIO config. --- ## Configure Project Sets: ```text FPS = 24 Format = UHD Viewer = ACES 1.0 SDR Video ``` or project-specific viewer process. --- ## Apply Colorspaces Automatically assigns colorspaces to Read nodes based on: * Metadata * Filename conventions * Folder structure Examples: ```text plates = ACES2065-1 cg = ACEScg jpg = Utility - sRGB mov = Rec709 ``` --- # API Reference All requests include: ```http Authorization: Bearer {TOKEN} Accept: application/json ``` --- ## Endpoints ### Episodes ```http GET /api/ext/projects/{PROJECT_CODE}/episodes ``` ### Shots ```http GET /api/ext/projects/{PROJECT_CODE}/shots ``` ### Shot Lookup ```http GET /api/ext/shots/lookup ``` ### Publish Review ```http POST /api/ext/reviews ``` ### Update Status ```http POST /api/ext/shots/status ``` --- # Shot Metadata Fields | Field | Purpose | | ---------------- | -------------------- | | shotCode | Canonical identifier | | exrOutput | EXR publish filename | | description | Review slate | | notes | Review slate | | episode | Metadata | | scene | Metadata | | seqTimecodeStart | Picture lock | | seqTimecodeEnd | Picture lock | | status | Tracking | | artist | Review metadata | --- # Standard Node Backdrops The connector automatically creates the following backdrops: ```text INPUTS REFERENCE COMP REVIEW WRITE UTILITIES ``` This ensures every artist works with a consistent node graph layout. --- # Status Panel The bottom panel displays: ### Line 1 ```text Current Shot ``` Example: ```text UNG_106_010_020 ``` ### Line 2 ```text Current Script Version ``` Example: ```text v012 ``` ### Line 3 ```text Last Action ``` Example: ```text Published review successfully ``` ### Line 4 ```text Warnings ``` Examples: ```text Missing Cryptomatte Missing Plate Broken Read Node ``` --- # Future Features * Farm submission * Deadline integration * Render progress tracking * Automatic review generation * AI-assisted cleanup setup * AI-assisted screen comp setup * AI-assisted roto setup * Automatic shot diagnostics * Direct VFXReview note syncing * Multi-show support * Nuke Studio integration The primary goal of the connector is to allow an artist to open a shot and begin compositing immediately with all infrastructure, references, review outputs, and publish paths already configured.