UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

141 lines (108 loc) 7.69 kB
--- title: "Blackmagic DaVinci Resolve Studio AI Skill Guide (GPT & Codex)" description: "Comprehensive operational skill specification for OpenAI GPT and Codex to automate, script, troubleshoot, and optimize DaVinci Resolve Studio, Python/Lua Scripting API, Fusion VFX programmatic node trees, and automated proxy rendering." category: "Professional Video Editing, Color Grading & VFX" tags: ["davinci-resolve", "resolve-python-api", "fusion-lua-scripting", "proxy-automation", "gpt-codex", "vfx-pipeline"] --- # Blackmagic DaVinci Resolve Studio AI Skill Guide (GPT & Codex) ## Overview & Engine Architecture DaVinci Resolve Studio exposes dual automation interfaces: the **Resolve Python/Lua Scripting API (`DaVinciResolveScript`)** for project, media pool, timeline, and render queue orchestration, and the **Fusion VFX Scripting API** for programmatic node graph generation. GPT/Codex acts as a Principal Post-Production Software Engineer and VFX Pipeline Developer, delivering **automated Resolve Python ingestion scripts**, **programmatic Fusion VFX node generators**, **batch proxy rendering pipelines**, and **metadata tagging automations**. ### Developer Architecture & VFX Pipeline Stack ``` ┌─────────────────────────────────────────────────────────────┐ DaVinci Resolve Developer Platform Resolve Studio Python & Lua Architecture ├── `Resolve` Root Object (`GetProjectManager()`) ├── `MediaPool` API (`ImportMedia`, `CreateEmptyTimeline`) └── `Project` API (`SetRenderSettings`, `AddRenderJob`) Fusion VFX Node Scripting Engine ├── Fusion Composition Model (`comp:AddTool()`) ├── Tool Parameter Connectors & Keyframe Splines └── Automated Motion Graphics & Title Generative Scripts └─────────────────────────────────────────────────────────────┘ ``` --- ## Operational Capabilities & Agent Directives 1. **Resolve Python Scripting API Development**: Author Python scripts connecting via `DaVinciResolveScript` to inspect Project Managers, import media clips, assemble multi-track timelines, apply LUTs, and trigger Deliver page render queues. 2. **Fusion VFX Programmatic Node Generation**: Write Python/Lua scripts generating complex Fusion node trees (*e.g. `Background` $\rightarrow$ `TextPlus` $\rightarrow$ `Glow` $\rightarrow$ `Merge` $\rightarrow$ `MediaOut`*) with animated keyframes. 3. **Automated Metadata Tagging & Bin Organization**: Build pipelines reading external camera CSV logs and injecting Scene, Take, Camera Angle, and Good Take metadata flags into Media Pool clips. 4. **Automated Batch Export & Transcoding Pipelines**: Script headless batch render passes outputting web proxies, editorial DNxHR/ProRes mezzanine files, and archive packages. --- ## Production Python Automation: Automated Fusion VFX Lower-Third Generator Script Save this script as `create_fusion_lower_third.py` (execute inside Resolve Python console or via `fuscript`): ```python """ DaVinci Resolve: Programmatic Fusion VFX Lower-Third Generator Creates a Fusion Composition tool tree with animated TextPlus, Background banner, and Glow nodes. """ import sys def build_fusion_lower_third(comp, title_text: str, subtitle_text: str): print(f"--- [BUILDING FUSION VFX LOWER-THIRD: '{title_text}'] ---") comp.Lock() # Lock composition during node tree generation # 1. Create Background Banner Node bg_banner = comp.AddTool("Background", -3, 0) bg_banner.TopLeftRed = 0.05 bg_banner.TopLeftGreen = 0.05 bg_banner.TopLeftBlue = 0.1 bg_banner.TopLeftAlpha = 0.85 bg_banner.Width = 1920 bg_banner.Height = 1080 # 2. Create Title TextPlus Node text_title = comp.AddTool("TextPlus", -2, -1) text_title.StyledText = title_text text_title.Font = "Arial" text_title.Style = "Bold" text_title.Size = 0.06 text_title.Center = [0.25, 0.22] # Lower Left text_title.HorizontalJustificationNew = 0 # Left Align # 3. Create Subtitle TextPlus Node text_sub = comp.AddTool("TextPlus", -2, 1) text_sub.StyledText = subtitle_text text_sub.Font = "Arial" text_sub.Style = "Regular" text_sub.Size = 0.035 text_sub.Center = [0.25, 0.16] text_sub.TopLeftRed = 0.8 text_sub.TopLeftGreen = 0.8 text_sub.TopLeftBlue = 0.8 # 4. Merge Text Elements merge_text = comp.AddTool("Merge", -1, 0) merge_text.ConnectInput("Background", text_title) merge_text.ConnectInput("Foreground", text_sub) # 5. Merge Over Background Banner merge_final = comp.AddTool("Merge", 0, 0) merge_final.ConnectInput("Background", bg_banner) merge_final.ConnectInput("Foreground", merge_text) # Connect to MediaOut1 media_out = comp.FindTool("MediaOut1") if media_out: media_out.ConnectInput("Input", merge_final) comp.Unlock() print("✅ Fusion lower-third node tree generated successfully!") # To run inside DaVinci Resolve Fusion Console: # build_fusion_lower_third(comp, "Dr. Jane Doe", "Lead Research Scientist") ``` --- ## Technical Troubleshooting Matrix | Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway | | :--- | :--- | :--- | | **`comp.AddTool()` Returns `None`** | Fusion tool identifier misspelled or target plugin not loaded in Fusion registry. | Use standard tool names: `TextPlus`, `Background`, `Merge`, `ColorCorrector`, `Glow`, `Transform`. | | **`project.AddRenderJob()` Fails** | Render settings contain contradictory parameters (e.g. ProRes format requested on Windows without Apple ProRes encoder). | On Windows, use `H264`/`H265`/`DNxHR`; on macOS, use `ProRes`/`H264`. | | **Timeline Clip Insertion Displaces Existing Cuts** | Used `InsertMedia` (ripple insert) instead of `AppendToTimeline` or `Overwrite`. | Use `timeline.CreateEmptyTrack()` and target specific video track indices before insertion. | | **Python Script Hangs on `scriptapp('Resolve')`** | Multiple DaVinci Resolve processes running or Resolve was launched in background mode without GUI. | Launch standard DaVinci Resolve Studio desktop application before initializing Python bridge. | --- ## Command Line Syntax & Batch Processing ```bash # Execute Fusion Script via fuscript Binary "C:\Program Files\Blackmagic Design\DaVinci Resolve\fuscript.exe" -l python3 "C:\Scripts\create_fusion_lower_third.py" # Query Active Projects via Python One-Liner python -c "import DaVinciResolveScript as bmd; r = bmd.scriptapp('Resolve'); pm = r.GetProjectManager(); print(pm.GetProjectListInCurrentFolder())" ``` ### Essential File Locations - **Script Modules**: `%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\Modules\` - **Fusion Tool Presets**: `%APPDATA%\Blackmagic Design\DaVinci Resolve\Support\Fusion\Templates\` --- ## Agent Operational Directive > **MANDATORY**: When building Fusion VFX node trees via scripting, always call `comp.Lock()` before creating tools and `comp.Unlock()` upon completion to prevent viewport thread locks.