You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-15Lines changed: 42 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,23 @@
1
1
# Corridor Key Toolbox
2
2
3
-
An FxPlug4 plug-in for Final Cut Pro that ports [CorridorKey](https://github.com/nikopueringer/CorridorKey)'s AI green-screen keying to Apple Silicon.
3
+
**Corridor Key Toolbox** is an Motion Template that brings [CorridorKey](https://github.com/nikopueringer/CorridorKey)'s keying power to Final Cut Pro.
4
+
5
+
Niko explains:
6
+
7
+
> When you film something against a green screen, the edges of your subject inevitably blend with the green background. This creates pixels that are a mix of your subject's color and the green screen's color. Traditional keyers struggle to untangle these colors, forcing you to spend hours building complex edge mattes or manually rotoscoping. Even modern "AI Roto" solutions typically output a harsh binary mask, completely destroying the delicate, semi-transparent pixels needed for a realistic composite.
8
+
>
9
+
> I built CorridorKey to solve this *unmixing* problem.
10
+
>
11
+
> You input a raw green screen frame, and the neural network completely separates the foreground object from the green screen. For every single pixel, even the highly transparent ones like motion blur or out-of-focus edges, the model predicts the true, un-multiplied straight color of the foreground element, alongside a clean, linear alpha channel. It doesn't just guess what is opaque and what is transparent; it actively reconstructs the color of the foreground object as if the green screen was never there.
12
+
>
13
+
> No more fighting with garbage mattes or agonizing over "core" vs "edge" keys. Give CorridorKey a hint of what you want, and it separates the light for you.
│ ├── CorridorKeyProApp.swift # SwiftUI app entry point
60
+
│ ├── CorridorKeyToolboxApp.swift # SwiftUI app entry point
51
61
│ ├── WelcomeView.swift
52
62
│ ├── Info.plist
53
63
│ ├── WrapperApp.entitlements
@@ -58,13 +68,13 @@ Source/
58
68
59
69
## Architecture overview
60
70
61
-
1.**FxPlug integration** – `CorridorKeyProPlugIn` conforms to both
71
+
1.**FxPlug integration** – `CorridorKeyToolboxPlugIn` conforms to both
62
72
`FxTileableEffect` (render callbacks) and `FxAnalyzer` (pre-render analysis).
63
73
Extensions split the class so each protocol responsibility lives in a
64
74
dedicated file.
65
75
2.**Parameter layer** – `ParameterIdentifiers.swift` assigns every UI control
66
-
a stable identifier. `CorridorKeyProPlugIn+Parameters.swift` builds the
67
-
inspector; `CorridorKeyProPlugIn+PluginState.swift` reads those values into
76
+
a stable identifier. `CorridorKeyToolboxPlugIn+Parameters.swift` builds the
77
+
inspector; `CorridorKeyToolboxPlugIn+PluginState.swift` reads those values into
68
78
a `PluginStateData` snapshot that the renderer owns for the duration of a
69
79
tile render.
70
80
3.**Render pipeline** – `RenderPipeline` orchestrates the per-frame Metal
@@ -86,7 +96,9 @@ Source/
86
96
87
97
## Building
88
98
89
-
Open `CorridorKeyPro.xcodeproj` in Xcode and build the `Corridor Key Toolbox` scheme. On first open Xcode will resolve the `mlx-swift` Swift package; this takes ~30 seconds over a cold network and is cached thereafter.
99
+
Open `CorridorKeyToolbox.xcodeproj` in Xcode and build the `Corridor Key Toolbox` scheme.
100
+
101
+
On first open Xcode will resolve the `mlx-swift` Swift package; this takes ~30 seconds over a cold network and is cached thereafter.
90
102
91
103
---
92
104
@@ -95,4 +107,19 @@ Open `CorridorKeyPro.xcodeproj` in Xcode and build the `Corridor Key Toolbox` sc
95
107
- Swift 6 with complete strict-concurrency enabled.
96
108
- Only first-party Apple + `mlx-swift` dependencies.
97
109
- All pixel maths in Metal compute shaders; the CPU side stays on the coordination hot path.
98
-
- Parameter identifiers are never renumbered: add new controls, never move existing ones.
110
+
- Parameter identifiers are never renumbered: add new controls, never move existing ones.
111
+
112
+
---
113
+
114
+
## Acknowledgements
115
+
116
+
Corridor Key Toolbox would NOT be possible without Niko's amazing [Corridor Key](https://github.com/nikopueringer/CorridorKey).
117
+
118
+
Niko's Corridor Key repo integrates several open-source modules for Alpha Hint generation.
119
+
120
+
We would like to also explicitly credit and thank the following research teams:
121
+
122
+
-**Generative Video Matting (GVM):** Developed by the Advanced Intelligent Machines (AIM) research team at Zhejiang University. The GVM code and models are heavily utilized in the `gvm_core` module. Their work is licensed under the [2-clause BSD License (BSD-2-Clause)](https://opensource.org/license/bsd-2-clause). You can find their source repository here: [aim-uofa/GVM](https://github.com/aim-uofa/GVM). Give them a star!
123
+
-**VideoMaMa:** Developed by the CVLAB at KAIST. The VideoMaMa architecture is utilized within the `VideoMaMaInferenceModule`. Their code is released under the [Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/), and their specific foundation model checkpoints (`dino_projection_mlp.pth`, `unet/*`) are subject to the [Stability AI Community License](https://stability.ai/license). You can find their source repository here: [cvlab-kaist/VideoMaMa](https://github.com/cvlab-kaist/VideoMaMa). Give them a star!
124
+
125
+
By using these optional modules, you agree to abide by their respective Non-Commercial licenses. Please review their repositories for full terms.
0 commit comments