comfyui_vfx-flow
Connect your ComfyUI workflows directly to Autodesk Flow (formerly ShotGrid). Browse projects, select shots, assign tasks, and publish versions—all from within ComfyUI.
VFX Flow for ComfyUI
Autodesk Flow (ShotGrid) Integration | Production Pipeline | Version Control
</div>Connect your ComfyUI workflows directly to Autodesk Flow (formerly ShotGrid). Browse projects, select shots, assign tasks, and publish versions—all from within ComfyUI.
Installation
Via ComfyUI Manager (Recommended)
- Open ComfyUI Manager
- Search for "VFX Flow"
- Click Install
- Restart ComfyUI
Manual Installation
cd ComfyUI/custom_nodes
git clone https://github.com/beverlyhillscop90210/comfyui_vfx-flow
cd comfyui_vfx-flow
pip install -r requirements.txt
Authentication
User Login (Recommended) ✅
The simplest way to connect—use your own Flow/ShotGrid account:
- Set
auth_methodto user - Enter your Flow login (email)
- Enter your password
This is the recommended method for artists working interactively. Each user logs in with their own credentials, so permissions and tracking work correctly.
Script API Key (For Automation)
For render farms, batch processing, or automated pipelines where no user is present:
- Go to Admin → Scripts in Flow
- Create new script:
comfyui_vfx_flow - Copy the API key
- Set
auth_methodto script - Enter
script_nameandapi_key
Optionally set environment variables:
export FLOW_SITE_URL="https://your-studio.shotgrid.autodesk.com"
export FLOW_SCRIPT_NAME="comfyui_vfx_flow"
export FLOW_API_KEY="your_api_key_here"
Nodes
Flow Login
Establishes a connection to your Flow/ShotGrid instance. Supports both user-based and script-based authentication.
Inputs:
site_url(STRING): Your Flow site URL (e.g., https://studio.shotgrid.autodesk.com)auth_method(COMBO): user (recommended) or scriptlogin(STRING): Your email (for user auth)password(STRING): Your password (for user auth)script_name(STRING): API script name (for script auth)api_key(STRING): API key (for script auth)
Outputs:
session(FLOW_SESSION): Active connection for downstream nodesstatus(STRING): Connection status message
Project Browser
Browse and select active projects from your Flow instance. Filters to show only active projects.
Inputs:
session(FLOW_SESSION): Connection from Flow Loginproject_name(STRING): Filter by project name (partial match)
Outputs:
pipe(FLOW_PIPE): Pipeline context with selected projectinfo(STRING): Project details
Shot Browser
Browse shots within the selected project. Optionally sets shot status to "In Progress" and retrieves the latest published version path.
Inputs:
pipe(FLOW_PIPE): Pipeline context from Project Browsershot_code(STRING): Filter by shot code (partial match)set_in_progress(BOOLEAN): Automatically set shot status to "In Progress"
Outputs:
pipe(FLOW_PIPE): Updated pipeline context with shot infolatest_version_path(STRING): Path to the most recent published versioninfo(STRING): Shot details
Task Selector
Select a task on the current shot and optionally assign it to yourself.
Inputs:
pipe(FLOW_PIPE): Pipeline context from Shot Browsertask_name(STRING): Task name to select (e.g., "comp", "roto", "paint")assign_to_me(BOOLEAN): Assign the task to the current user
Outputs:
pipe(FLOW_PIPE): Updated pipeline context with task and user infoinfo(STRING): Task details
Publish to Flow
Uploads a rendered file as a new version in Flow. Includes a safety toggle to prevent accidental publishes during workflow development.
Inputs:
pipe(FLOW_PIPE): Pipeline context from Task Selectorfile_path(STRING): Path to the file to publishdescription(STRING): Version description/notesdo_publish(BOOLEAN): Safety toggle - must be enabled to actually publishstatus(COMBO): Version status - Pending Review, Approved, etc.
Outputs:
version_id(INT): ID of the created version (0 if not published)info(STRING): Publish result or skip message
Filename from Pipe
Generates a consistent filename based on the current pipeline context. Ensures all saves follow studio naming conventions.
Inputs:
pipe(FLOW_PIPE): Pipeline contextsuffix(STRING): Optional suffix (e.g., "_beauty", "_comp")
Outputs:
filename(STRING): Generated filename (e.g., "ProjectX_SEQ01_SH010_comp_v003")folder_suggestion(STRING): Recommended output folder pathinfo(STRING): Filename breakdown
Custom Types
| Type | Description | |------|-------------| | FLOW_SESSION | Active connection to Flow/ShotGrid instance | | FLOW_PIPE | Pipeline context carrying project, shot, task, and user data |
The FLOW_PIPE Structure
All pipeline data flows through the pipe:
{
"session": <ShotGrid connection>,
"project": {"id": 123, "name": "Project_X"},
"shot": {"id": 456, "code": "SH010", "sequence": "SEQ01"},
"task": {"id": 789, "name": "comp"},
"user": {"id": 42, "name": "Peter Schings"},
"version_number": 3,
"resolved_filename": "ProjectX_SEQ01_SH010_comp_v003"
}
Workflow Example
┌─────────────────────────────────────────────────────────────────────────────┐
│ VFX FLOW VFX BRIDGE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Flow Login │
│ ↓ │
│ Project Browser │
│ ↓ pipe │
│ Shot Browser ─────────────────→ folder_path ──→ EXR Hot Folder Loader │
│ ↓ pipe ↓ │
│ Task Selector [Processing...] │
│ ↓ pipe ↓ │
│ Filename from Pipe ───────────→ filename ───────→ EXR Save Node │
│ │ output_folder ─────────↗ ↓ │
│ ↓ pipe saved_path │
│ Publish to Flow ←─────────────────────────────────────────┘ │
│ ↓ │
│ [Version in ShotGrid] ✓ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Integration with VFX Bridge
This package is designed to work seamlessly with VFX Bridge.
Load Shot → Process → Save → Publish
Direct connections:
| VFX Flow Output | → | VFX Bridge Input |
|-----------------|---|------------------|
| Shot Browser folder_path | → | EXR Hot Folder Loader folder_path |
| Filename from Pipe filename | → | EXR Save filename |
| Filename from Pipe output_folder | → | EXR Save output_folder |
| EXR Save saved_path | → | Publish to Flow file_path |
Quick Setup
- Load: Shot Browser's
folder_pathconnects directly to EXR Hot Folder Loader - Process: Your ComfyUI workflow (denoise, upscale, color grade, etc.)
- Save: Filename from Pipe outputs connect to EXR Save Node
- Publish: EXR Save's
saved_pathconnects to Publish to Flow
All naming is automatic based on your Flow context!
Requirements
- ComfyUI 0.8+
- Python 3.10+
- shotgun_api3 >= 3.3.0
Roadmap
- [x] Flow Login with user/script auth
- [x] Project Browser
- [x] Shot Browser with status updates
- [x] Task Selector with assignment
- [x] Publish to Flow with safety toggle
- [x] Filename from Pipe with output folder
- [x] Thumbnail upload
- [x] Add Note
- [x] Direct VFX Bridge integration
- [ ] Asset Browser
- [ ] Playlist creation
- [ ] Sequence Browser
License
MIT License - see LICENSE for details.
<div align="center"> <sub>Built for the VFX community by peterschings</sub> </div>