Page 1 of 1

Sugestions on how to remove green screen from hair

PostPosted: Mon Dec 26, 2016 7:37 pm
by Edwin Rivera
Hi guys hope you doing good on the holidays

I was trying to remove the chroma key from an actor's hair but i cannot find my way around it

My best choice was an ultrakey since the green screen footage i was given is not well lighten and used a poly mask to just focus on the actor's hair and after working with the spills inside the ultrakey i used a matte control to get rid of most of it

But some parts of the hair are completly lost and some weird white and/or black noise from the keying appears all of a sudden and i don't know what to do

What are your sugestions?

Thank you and have a nice day

Re: Sugestions on how to remove green screen from hair

PostPosted: Mon Dec 26, 2016 7:44 pm
by Sander de Regt
Can you show us some stills from the footage? Keying is a very specific art, the more specific your request, the better people can help.

Re: Sugestions on how to remove green screen from hair

PostPosted: Mon Dec 26, 2016 8:36 pm
by Bob Place
I completely agree that a still would help a lot. I hate keying hair on a bad green screen. But have found a lot of success with hair by ignoring your typical keyers, and using masks and CC tools to create a matte.

Not sure if that process would work with your video.

Re: Sugestions on how to remove green screen from hair

PostPosted: Tue Dec 27, 2016 8:07 am
by Lee Gauthier
Need to see the footage, but some best practices are:

-Garbage matte aggressively so you don't waste time keying empty space;

-Do a separate keying pass and beauty pass. Don't try to hold correct colors while cutting a key, concentrate on the matte.

-Remove green spill by reducing green in pixels. If you can do channel math, set G<min of R or B. (Adobe After Effects has a very nice plug-in called Advanced Spill Suppression which automates some channel math. Check 3:30 on the linked video.)

Re: Sugestions on how to remove green screen from hair

PostPosted: Tue Dec 27, 2016 3:32 pm
by RichardJolly
Lee, when you say do a separate pass, do you mean a separate layer? Doing relatively crude keying on PPro with difficult black (Indian) hair and clothes which kept showing key through, I had good success using a couple of layers, each optimised for a particular problem area and the sum of the two giving a much improved result.

Sent from my SM-N9005 using Tapatalk

Re: Sugestions on how to remove green screen from hair

PostPosted: Tue Dec 27, 2016 6:10 pm
by Lee Gauthier
RichardJolly wrote:Lee, when you say do a separate pass, do you mean a separate layer? Doing relatively crude keying on PPro with difficult black (Indian) hair and clothes which kept showing key through, I had good success using a couple of layers, each optimised for a particular problem area and the sum of the two giving a much improved result.

Sent from my SM-N9005 using Tapatalk


Yes. You make a dupe of the greenscreen footage, key one for the matte, color correct the other for beauty, then apply the matte to the beauty pass. You don't care if the keying pass mangles the FG color, and you don't care if the beauty pass would key well. This is SOP in any VFX house.

This page gives kind of an overview of the many steps of professional keying.

With black shiny hair, you should be doing a core matte. That fills in the center of the FG, so all you have to worry about are the edges. You can make a core matte procedurally, by using a basic keyer with fill and choke. Or you can do it with roto.

I posted a link to a video in another thread.

Re: Sugestions on how to remove green screen from hair

PostPosted: Tue Dec 27, 2016 7:07 pm
by Kel Philm
Edwin Rivera wrote:Hi guys hope you doing good on the holidays

I was trying to remove the chroma key from an actor's hair but i cannot find my way around it

My best choice was an ultrakey since the green screen footage i was given is not well lighten and used a poly mask to just focus on the actor's hair and after working with the spills inside the ultrakey i used a matte control to get rid of most of it

But some parts of the hair are completly lost and some weird white and/or black noise from the keying appears all of a sudden and i don't know what to do

What are your sugestions?

Thank you and have a nice day


Check the matte generated from the key, this is prob creating the noise you are seeing, it may be a noisy alpha channel. If the footage is a compressed codec there is not a lot you can do (maybe try setting the loader to 16 bit), if its sensor noise, try running some noise reduction (this may help compressed footage a little).

Often with GS footage I try to get a solid key on the hair and then I add a seperate layer for the fine edge detail, in some cases I use a solid colour matched to the hair with the alpha channel if I am having colour problems with fringing that I cannot correct easily.

Lightwrap from the BG will also help tie the comp and edges in as well.

Re: Sugestions on how to remove green screen from hair

PostPosted: Thu Dec 29, 2016 6:43 pm
by Rony Soussan
Without having read the entire thread, perhaps a matte tool with spill from the image tab?
Here are some great tools to help as well.


Here is a clean plate generator and a 3 level + edge correction lightwraper (two sets of codes)
Code: Select all
{
   Tools = ordered() {
      CleanPlater1 = MacroOperator {
         CtrlWZoom = false,
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Input",
            },
            Input1 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "ScreenColor",
               Default = 1,
            },
            Input14 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "preCC",
               Default = 0,
            },
            Input2 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "darksR",
               Default = 0,
            },
            Input3 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "darksG",
               Default = 0,
            },
            Input4 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "darksB",
               Default = 0,
            },
            Input5 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "lightsR",
               Default = 1,
            },
            Input6 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "lightsG",
               Default = 1,
            },
            Input7 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "lightsB",
               Default = 1,
            },
            Input8 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Treshold",
               Default = 0,
            },
            Input9 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Grow",
               Default = 0,
            },
            Input10 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Expand",
               Default = 0,
            },
            Input11 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Shrink",
               Default = 0,
            },
            Input12 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Fill",
               Default = 0,
            },
            Input13 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "UseInputAlpha",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Out",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 356, 123 } },
         Tools = ordered() {
            PreCC = ColorCorrector {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Channel = Input { Value = 3, },
                  MasterRedGain = Input { Expression = "CleanPlater.lightsR", },
                  MasterRedBrightness = Input { Expression = "CleanPlater.darksR", },
                  MasterGreenGain = Input { Expression = "CleanPlater.lightsG", },
                  MasterGreenBrightness = Input { Expression = "CleanPlater.darksG", },
                  MasterBlueGain = Input { Expression = "CleanPlater.lightsB", },
                  MasterBlueBrightness = Input { Expression = "CleanPlater.darksB", },
                  ColorRanges = Input {
                     Value = ColorCurves {
                        Curves = {
                           {
                              Points = {
                                 { 0, 1 },
                                 { 0.4, 0.2 },
                                 { 0.6, 0 },
                                 { 1, 0 }
                              }
                           },
                           {
                              Points = {
                                 { 0, 0 },
                                 { 0.4, 0 },
                                 { 0.6, 0.2 },
                                 { 1, 1 }
                              }
                           }
                        }
                     },
                  },
                  Input = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -907.5, 43.15 } },
            },
            REDin1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -742.5, 43.15 } },
            },
            GREENin1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -742.5, 109.15 } },
            },
            Maximum2 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 4, },
                  Background = Input {
                     SourceOp = "REDin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BLUEin1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -632.5, 76.15 } },
            },
            Substract2 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "GREENin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Maximum2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -522.5, 109.15 } },
            },
            Substract1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "REDin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Maximum3",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -522.5, 43.15 } },
            },
            Maximum3 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 4, },
                  Background = Input {
                     SourceOp = "GREENin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BLUEin1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -632.5, 142.15 } },
            },
            Maximum1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 4, },
                  Background = Input {
                     SourceOp = "REDin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "GREENin1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -632.5, 10.15 } },
            },
            Substract3 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "BLUEin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Maximum1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -522.5, 175.15 } },
            },
            BLUEin1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 3, },
                  Background = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -742.5, 175.15 } },
            },
            SWgb = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Mix = Input { Expression = "CleanPlater.ScreenColor", },
                  Background = Input {
                     SourceOp = "Substract1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Substract2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -412.5, 43.15 } },
            },
            Dissolve1_2_1 = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               Inputs = {
                  Mix = Input {
                     Value = 0,
                     Expression = "1-SWgb.Mix",
                  },
                  Background = Input {
                     SourceOp = "SWgb",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Substract3",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -412.5, 175.15 } },
            },
            CleanPlater = BrightnessContrast {
               PassThrough = true,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Smooth = Input { Value = 3, },
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  Gain = Input { Value = 1, },
                  Gamma = Input { Value = 1, },
                  High = Input { Value = 1, },
                  Saturation = Input { Value = 1, },
                  Treshold = Input { Value = 0.0619047619047619, },
                  Grow = Input { Value = 0.0238095238095238, },
                  Expand = Input { Value = 20, },
                  Shrink = Input { Value = 0, },
                  Fill = Input { Value = 359.52380952381, },
               },
               ViewInfo = OperatorInfo { Pos = { -1017.5, 208.15 } },
               UserControls = ordered() {
                  Gain = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Gamma = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Contrast = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Brightness = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  PreDividePostMultiply = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  ClipWhite = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  ClipBlack = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  High = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Low = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Saturation = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  ScreenColor = {
                     { MBTNC_AddButton = "Blue" },
                     { MBTNC_AddButton = "Green" },
                     LINKS_Name = "Screen Color",
                     INPID_InputControl = "MultiButtonControl",
                     IC_ControlPage = 0,
                     MBTNC_StretchToFit = true,
                     LINKID_DataType = "Number",
                     INP_Default = 1,
                  },
                  preCC = {
                     IC_ControlGroup = 2,
                     IC_ControlPage = 0,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs = 6,
                     LBLC_NestLevel = 1,
                     INPID_InputControl = "LabelControl",
                     INP_Default = 0,
                  },
                  darksR = {
                     INPID_InputControl = "SliderControl",
                     INP_MinScale = -0.5,
                     INPS_Name = "darks R",
                     LINKID_DataType = "Number",
                     IC_ControlID = 1,
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.5,
                     INP_Default = 0,
                  },
                  darksG = {
                     LINKID_DataType = "Number",
                     INP_MinScale = -0.5,
                     INP_MaxScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     IC_ControlID = 2,
                     IC_ControlPage = 0,
                     INPS_Name = "darks G",
                     INP_Default = 0,
                  },
                  darksB = {
                     INP_MinScale = -0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 3,
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.5,
                     INP_Default = 0,
                  },
                  lightsR = {
                     INP_MinScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 4,
                     IC_ControlPage = 0,
                     INP_MaxScale = 1.5,
                     INP_Default = 1,
                  },
                  lightsG = {
                     INP_MinScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 5,
                     IC_ControlPage = 0,
                     INP_MaxScale = 1.5,
                     INP_Default = 1,
                  },
                  lightsB = {
                     INP_MinScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 6,
                     IC_ControlPage = 0,
                     INP_MaxScale = 1.5,
                     INP_Default = 1,
                  },
                  Treshold = {
                     INPID_InputControl = "SliderControl",
                     LINKS_Name = "Key Treshold",
                     IC_ControlPage = 0,
                     LINKID_DataType = "Number",
                     INP_Default = 0.08,
                  },
                  Grow = {
                     LINKS_Name = "Key Grow",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.2,
                     INP_Default = 0,
                  },
                  Expand = {
                     LINKS_Name = "Color Expand Filter",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 20,
                     INP_Default = 2,
                  },
                  Shrink = {
                     LINKS_Name = "Remove Fringe",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.1,
                     INP_Default = 0.002,
                  },
                  Fill = {
                     LINKS_Name = "Fill Black",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 500,
                     INP_Default = 200,
                  },
                  UseInputAlpha = {
                     INP_Integer = true,
                     INPID_InputControl = "CheckboxControl",
                     LINKS_Name = "Use Input Alpha",
                     IC_ControlPage = 0,
                     LINKID_DataType = "Number",
                     INP_Default = 0,
                  }
               }
            },
            scTreshold = BrightnessContrast {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  Alpha = Input { Value = 1, },
                  Low = Input {
                     Value = 0.0619047619047619,
                     Expression = "CleanPlater.Treshold",
                  },
                  High = Input {
                     Value = 0.0629047619047619,
                     Expression = "CleanPlater.Treshold+0.001",
                  },
                  ClipBlack = Input { Value = 1, },
                  ClipWhite = Input { Value = 1, },
                  Input = Input {
                     SourceOp = "Dissolve1_2_1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -302.5, 175.15 } },
            },
            SwitchMatte = MatteControl {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  MultiplyGarbageMatte = Input { Value = 0, },
                  Background = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "scTreshold",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -192.5, 208.15 } },
            },
            SwitchUseAlpha = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Mix = Input {
                     Value = 0,
                     Expression = "CleanPlater.UseInputAlpha",
                  },
                  Background = Input {
                     SourceOp = "SwitchMatte",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "MatteControl3",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -82.5, 208.15 } },
            },
            MatteControl3 = MatteControl {
               CtrlWShown = false,
               Inputs = {
                  InvertMatte = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -192.5, 274.15 } },
            },
            ErodeDilate1 = ErodeDilate {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  XAmount = Input {
                     Value = -0.0238095238095238,
                     Expression = "-CleanPlater.Grow",
                  },
                  Input = Input {
                     SourceOp = "SwitchUseAlpha",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 27.5, 208.15 } },
               Colors = {
                  TileColor = { R = 0.545098039215686, G = 0.537254901960784, B = 0.0470588235294118 },
                  TextColor = { R = 0, G = 0, B = 0 },
               }
            },
            Mmult = MatteControl {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  PostMultiplyImage = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "ErodeDilate1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 137.5, 208.15 } },
            },
            scExpand = Blur {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  XBlurSize = Input {
                     Value = 20,
                     Expression = "CleanPlater.Expand",
                  },
                  Passes = Input { Value = 1, },
                  Input = Input {
                     SourceOp = "Mmult",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 247.5, 208.15 } },
            },
            DIVIDE = ChannelBoolean {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Operation = Input { Value = 7, },
                  ToRed = Input { Value = 8, },
                  ToGreen = Input { Value = 8, },
                  ToBlue = Input { Value = 8, },
                  ToAlpha = Input { Value = 8, },
                  Background = Input {
                     SourceOp = "scExpand",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 357.5, 208.15 } },
            },
            ErodeDilate2 = ErodeDilate {
               CtrlWShown = false,
               Inputs = {
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  XAmount = Input { Expression = "-CleanPlater.Shrink", },
                  Input = Input {
                     SourceOp = "DIVIDE",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 467.5, 208.15 } },
               Colors = {
                  TileColor = { R = 0.545098039215686, G = 0.537254901960784, B = 0.0470588235294118 },
                  TextColor = { R = 0, G = 0, B = 0 },
               }
            },
            BWalpha = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  LowMatteThreshold = Input { Value = 0.3377483, },
                  High = Input { Value = 0.3377483, },
                  Background = Input {
                     SourceOp = "ErodeDilate2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 577.5, 208.15 } },
            },
            MMult2 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  PostMultiplyImage = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "BWalpha",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 687.5, 208.15 } },
            },
            MatteControl12 = MatteControl {
               CtrlWShown = false,
               Inputs = {
                  Background = Input {
                     SourceOp = "MMult2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 797.5, 208.15 } },
            },
            BlurFill = Blur {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  XBlurSize = Input {
                     Value = 359.52380952381,
                     Expression = "CleanPlater.Fill",
                  },
                  Input = Input {
                     SourceOp = "MatteControl12",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 907.5, 208.15 } },
            },
            Out = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Background = Input {
                     SourceOp = "DIVIDE_1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
                  EffectMask = Input {
                     SourceOp = "Mmult",
                     Source = "Output",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 1017.5, 307.15 } },
            },
            DIVIDE_1 = ChannelBoolean {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Operation = Input { Value = 7, },
                  ToRed = Input { Value = 3, },
                  ToGreen = Input { Value = 3, },
                  ToBlue = Input { Value = 3, },
                  Background = Input {
                     SourceOp = "BlurFill",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BlurFill",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 1017.5, 208.15 } },
            }
         },
      }
   },
   ActiveTool = "CleanPlater1"
}

And now the lightwrap

Code: Select all
{
   Tools = ordered() {
      CleanPlater1 = MacroOperator {
         CtrlWZoom = false,
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Input",
            },
            Input1 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "ScreenColor",
               Default = 1,
            },
            Input14 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "preCC",
               Default = 0,
            },
            Input2 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "darksR",
               Default = 0,
            },
            Input3 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "darksG",
               Default = 0,
            },
            Input4 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "darksB",
               Default = 0,
            },
            Input5 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "lightsR",
               Default = 1,
            },
            Input6 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "lightsG",
               Default = 1,
            },
            Input7 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "lightsB",
               Default = 1,
            },
            Input8 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Treshold",
               Default = 0,
            },
            Input9 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Grow",
               Default = 0,
            },
            Input10 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Expand",
               Default = 0,
            },
            Input11 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Shrink",
               Default = 0,
            },
            Input12 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "Fill",
               Default = 0,
            },
            Input13 = InstanceInput {
               SourceOp = "CleanPlater",
               Source = "UseInputAlpha",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Out",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 356, 123 } },
         Tools = ordered() {
            PreCC = ColorCorrector {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Channel = Input { Value = 3, },
                  MasterRedGain = Input { Expression = "CleanPlater.lightsR", },
                  MasterRedBrightness = Input { Expression = "CleanPlater.darksR", },
                  MasterGreenGain = Input { Expression = "CleanPlater.lightsG", },
                  MasterGreenBrightness = Input { Expression = "CleanPlater.darksG", },
                  MasterBlueGain = Input { Expression = "CleanPlater.lightsB", },
                  MasterBlueBrightness = Input { Expression = "CleanPlater.darksB", },
                  ColorRanges = Input {
                     Value = ColorCurves {
                        Curves = {
                           {
                              Points = {
                                 { 0, 1 },
                                 { 0.4, 0.2 },
                                 { 0.6, 0 },
                                 { 1, 0 }
                              }
                           },
                           {
                              Points = {
                                 { 0, 0 },
                                 { 0.4, 0 },
                                 { 0.6, 0.2 },
                                 { 1, 1 }
                              }
                           }
                        }
                     },
                  },
                  Input = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -907.5, 43.15 } },
            },
            REDin1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -742.5, 43.15 } },
            },
            GREENin1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -742.5, 109.15 } },
            },
            Maximum2 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 4, },
                  Background = Input {
                     SourceOp = "REDin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BLUEin1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -632.5, 76.15 } },
            },
            Substract2 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "GREENin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Maximum2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -522.5, 109.15 } },
            },
            Substract1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "REDin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Maximum3",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -522.5, 43.15 } },
            },
            Maximum3 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 4, },
                  Background = Input {
                     SourceOp = "GREENin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BLUEin1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -632.5, 142.15 } },
            },
            Maximum1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 4, },
                  Background = Input {
                     SourceOp = "REDin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "GREENin1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -632.5, 10.15 } },
            },
            Substract3 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  CombineOp = Input { Value = 2, },
                  Background = Input {
                     SourceOp = "BLUEin1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Maximum1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -522.5, 175.15 } },
            },
            BLUEin1 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 3, },
                  Background = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "PreCC",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -742.5, 175.15 } },
            },
            SWgb = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Mix = Input { Expression = "CleanPlater.ScreenColor", },
                  Background = Input {
                     SourceOp = "Substract1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Substract2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -412.5, 43.15 } },
            },
            Dissolve1_2_1 = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               Inputs = {
                  Mix = Input {
                     Value = 0,
                     Expression = "1-SWgb.Mix",
                  },
                  Background = Input {
                     SourceOp = "SWgb",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Substract3",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -412.5, 175.15 } },
            },
            CleanPlater = BrightnessContrast {
               PassThrough = true,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Smooth = Input { Value = 3, },
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  Gain = Input { Value = 1, },
                  Gamma = Input { Value = 1, },
                  High = Input { Value = 1, },
                  Saturation = Input { Value = 1, },
                  Treshold = Input { Value = 0.0619047619047619, },
                  Grow = Input { Value = 0.0238095238095238, },
                  Expand = Input { Value = 20, },
                  Shrink = Input { Value = 0, },
                  Fill = Input { Value = 359.52380952381, },
               },
               ViewInfo = OperatorInfo { Pos = { -1017.5, 208.15 } },
               UserControls = ordered() {
                  Gain = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Gamma = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Contrast = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Brightness = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  PreDividePostMultiply = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  ClipWhite = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  ClipBlack = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  High = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Low = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  Saturation = { INPID_PreviewControl = "", IC_ControlPage = 0, INPID_InputControl = "", },
                  ScreenColor = {
                     { MBTNC_AddButton = "Blue" },
                     { MBTNC_AddButton = "Green" },
                     LINKS_Name = "Screen Color",
                     INPID_InputControl = "MultiButtonControl",
                     IC_ControlPage = 0,
                     MBTNC_StretchToFit = true,
                     LINKID_DataType = "Number",
                     INP_Default = 1,
                  },
                  preCC = {
                     IC_ControlGroup = 2,
                     IC_ControlPage = 0,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs = 6,
                     LBLC_NestLevel = 1,
                     INPID_InputControl = "LabelControl",
                     INP_Default = 0,
                  },
                  darksR = {
                     INPID_InputControl = "SliderControl",
                     INP_MinScale = -0.5,
                     INPS_Name = "darks R",
                     LINKID_DataType = "Number",
                     IC_ControlID = 1,
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.5,
                     INP_Default = 0,
                  },
                  darksG = {
                     LINKID_DataType = "Number",
                     INP_MinScale = -0.5,
                     INP_MaxScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     IC_ControlID = 2,
                     IC_ControlPage = 0,
                     INPS_Name = "darks G",
                     INP_Default = 0,
                  },
                  darksB = {
                     INP_MinScale = -0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 3,
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.5,
                     INP_Default = 0,
                  },
                  lightsR = {
                     INP_MinScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 4,
                     IC_ControlPage = 0,
                     INP_MaxScale = 1.5,
                     INP_Default = 1,
                  },
                  lightsG = {
                     INP_MinScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 5,
                     IC_ControlPage = 0,
                     INP_MaxScale = 1.5,
                     INP_Default = 1,
                  },
                  lightsB = {
                     INP_MinScale = 0.5,
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlID = 6,
                     IC_ControlPage = 0,
                     INP_MaxScale = 1.5,
                     INP_Default = 1,
                  },
                  Treshold = {
                     INPID_InputControl = "SliderControl",
                     LINKS_Name = "Key Treshold",
                     IC_ControlPage = 0,
                     LINKID_DataType = "Number",
                     INP_Default = 0.08,
                  },
                  Grow = {
                     LINKS_Name = "Key Grow",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.2,
                     INP_Default = 0,
                  },
                  Expand = {
                     LINKS_Name = "Color Expand Filter",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 20,
                     INP_Default = 2,
                  },
                  Shrink = {
                     LINKS_Name = "Remove Fringe",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 0.1,
                     INP_Default = 0.002,
                  },
                  Fill = {
                     LINKS_Name = "Fill Black",
                     INPID_InputControl = "SliderControl",
                     LINKID_DataType = "Number",
                     IC_ControlPage = 0,
                     INP_MaxScale = 500,
                     INP_Default = 200,
                  },
                  UseInputAlpha = {
                     INP_Integer = true,
                     INPID_InputControl = "CheckboxControl",
                     LINKS_Name = "Use Input Alpha",
                     IC_ControlPage = 0,
                     LINKID_DataType = "Number",
                     INP_Default = 0,
                  }
               }
            },
            scTreshold = BrightnessContrast {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  Alpha = Input { Value = 1, },
                  Low = Input {
                     Value = 0.0619047619047619,
                     Expression = "CleanPlater.Treshold",
                  },
                  High = Input {
                     Value = 0.0629047619047619,
                     Expression = "CleanPlater.Treshold+0.001",
                  },
                  ClipBlack = Input { Value = 1, },
                  ClipWhite = Input { Value = 1, },
                  Input = Input {
                     SourceOp = "Dissolve1_2_1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -302.5, 175.15 } },
            },
            SwitchMatte = MatteControl {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  MatteCombine = Input { Value = 4, },
                  MultiplyGarbageMatte = Input { Value = 0, },
                  Background = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "scTreshold",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -192.5, 208.15 } },
            },
            SwitchUseAlpha = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Mix = Input {
                     Value = 0,
                     Expression = "CleanPlater.UseInputAlpha",
                  },
                  Background = Input {
                     SourceOp = "SwitchMatte",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "MatteControl3",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -82.5, 208.15 } },
            },
            MatteControl3 = MatteControl {
               CtrlWShown = false,
               Inputs = {
                  InvertMatte = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -192.5, 274.15 } },
            },
            ErodeDilate1 = ErodeDilate {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  XAmount = Input {
                     Value = -0.0238095238095238,
                     Expression = "-CleanPlater.Grow",
                  },
                  Input = Input {
                     SourceOp = "SwitchUseAlpha",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 27.5, 208.15 } },
               Colors = {
                  TileColor = { R = 0.545098039215686, G = 0.537254901960784, B = 0.0470588235294118 },
                  TextColor = { R = 0, G = 0, B = 0 },
               }
            },
            Mmult = MatteControl {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  PostMultiplyImage = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "ErodeDilate1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 137.5, 208.15 } },
            },
            scExpand = Blur {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  XBlurSize = Input {
                     Value = 20,
                     Expression = "CleanPlater.Expand",
                  },
                  Passes = Input { Value = 1, },
                  Input = Input {
                     SourceOp = "Mmult",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 247.5, 208.15 } },
            },
            DIVIDE = ChannelBoolean {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Operation = Input { Value = 7, },
                  ToRed = Input { Value = 8, },
                  ToGreen = Input { Value = 8, },
                  ToBlue = Input { Value = 8, },
                  ToAlpha = Input { Value = 8, },
                  Background = Input {
                     SourceOp = "scExpand",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 357.5, 208.15 } },
            },
            ErodeDilate2 = ErodeDilate {
               CtrlWShown = false,
               Inputs = {
                  Red = Input { Value = 0, },
                  Green = Input { Value = 0, },
                  Blue = Input { Value = 0, },
                  XAmount = Input { Expression = "-CleanPlater.Shrink", },
                  Input = Input {
                     SourceOp = "DIVIDE",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 467.5, 208.15 } },
               Colors = {
                  TileColor = { R = 0.545098039215686, G = 0.537254901960784, B = 0.0470588235294118 },
                  TextColor = { R = 0, G = 0, B = 0 },
               }
            },
            BWalpha = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  LowMatteThreshold = Input { Value = 0.3377483, },
                  High = Input { Value = 0.3377483, },
                  Background = Input {
                     SourceOp = "ErodeDilate2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 577.5, 208.15 } },
            },
            MMult2 = MatteControl {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  PostMultiplyImage = Input { Value = 1, },
                  Background = Input {
                     SourceOp = "BWalpha",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 687.5, 208.15 } },
            },
            MatteControl12 = MatteControl {
               CtrlWShown = false,
               Inputs = {
                  Background = Input {
                     SourceOp = "MMult2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 797.5, 208.15 } },
            },
            BlurFill = Blur {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  XBlurSize = Input {
                     Value = 359.52380952381,
                     Expression = "CleanPlater.Fill",
                  },
                  Input = Input {
                     SourceOp = "MatteControl12",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 907.5, 208.15 } },
            },
            Out = Dissolve {
               Transitions = {
                  [0] = "DFTDissolve"
               },
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Background = Input {
                     SourceOp = "DIVIDE_1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "CleanPlater",
                     Source = "Output",
                  },
                  EffectMask = Input {
                     SourceOp = "Mmult",
                     Source = "Output",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 1017.5, 307.15 } },
            },
            DIVIDE_1 = ChannelBoolean {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Operation = Input { Value = 7, },
                  ToRed = Input { Value = 3, },
                  ToGreen = Input { Value = 3, },
                  ToBlue = Input { Value = 3, },
                  Background = Input {
                     SourceOp = "BlurFill",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BlurFill",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 1017.5, 208.15 } },
            }
         },
      }
   },
   ActiveTool = "CleanPlater1"
}

Re: Sugestions on how to remove green screen from hair

PostPosted: Fri Dec 30, 2016 12:20 am
by Edwin Rivera
OG.PNG
OG.PNG (644.82 KiB) Viewed 5870 times


flow.PNG
i just repeated the same thing for both only inverted the ,masking
flow.PNG (25.24 KiB) Viewed 5870 times



merge.PNG
result
merge.PNG (562.58 KiB) Viewed 5870 times

Re: Sugestions on how to remove green screen from hair

PostPosted: Fri Dec 30, 2016 1:48 am
by Edwin Rivera
So what i basically did was a copy of the ultrakey and the matte control and just inverted the masking roto to select each one separately and it got me somewhere near a good key.

the issue is that the guys hair (at the bottom) disappeared most of its edges on the left side

was my method something good or was it unnecessary? what could i do better?

let me know please and thanks a lot for your feedback

Re: Sugestions on how to remove green screen from hair

PostPosted: Fri Dec 30, 2016 3:54 pm
by Ryan Bloomer
The tools Rony shared seam to do a great job averaging out the green in a shot, however, I'm not sure how to implement into a keying workflow. Any tips or suggestions?

Edwin, I think averaging the green levels in the bottom left corner will help pull a better key for you. As Kel mentioned, try separating the beauty from the matte, color correct the bottom left of the hair to help create a cleaner matte, then use the corrected source as a luma matte for the beauty.

Re: Sugestions on how to remove green screen from hair

PostPosted: Sun Jan 01, 2017 8:02 pm
by Glenn Sakatch
you are probably going to have to break this down into several little keyers.

Hair can be very tough, and you may not get it all to key properly, but by masking out different parts of the head, and using different key settings on different sections, and combining them together, you might be able to start bringing the hair back in. You are most likely going to lose the fine-ist fringes of hair.

Do a search for Simon Ubsdell keying techniques. He has a couple of really good techniques that he shares. One he builds his own keyer from scratch. It is a bit complicated, but I've used it to bring some tough hair keys back from the dead.