{ Tools = ordered() { SpillMerge = MacroOperator { CustomData = { HelpPage = "http://www.vfxpedia.com/index.php?title=Settings_and_Macros/SpillMerge_Description", }, Inputs = ordered() { MainInput1 = InstanceInput { SourceOp = "INPUT", Source = "Background", Name = "Input", }, MainInput2 = InstanceInput { SourceOp = "BACKGROUND", Source = "Background", }, RemoveColorCast = InstanceInput { SourceOp = "NeutralGrade", Source = "RemoveColorCast", Default = 0, }, Neutralize = InstanceInput { SourceOp = "NeutralGrade", Source = "Neutralize", Default = 0, }, RevertNeutralize = InstanceInput { SourceOp = "NeutralGrade", Source = "RevertNeutralize", Default = 1, }, WhiteRed = InstanceInput { SourceOp = "NeutralGrade", Source = "WhiteRed", ControlGroup = 1, Default = 1, }, WhiteGreen = InstanceInput { SourceOp = "NeutralGrade", Source = "WhiteGreen", ControlGroup = 1, Default = 1, }, WhiteBlue = InstanceInput { SourceOp = "NeutralGrade", Source = "WhiteBlue", ControlGroup = 1, Default = 1, }, Blank1 = InstanceInput { SourceOp = "NeutralGrade", Source = "Blank1", }, ScreenColor = InstanceInput { SourceOp = "CT_DespillMatte", Source = "ScreenColor", Default = 1, }, DespillMode = InstanceInput { SourceOp = "CT_DespillMatte", Source = "DespillMode", Default = 1, }, Finetuning = InstanceInput { SourceOp = "CT_DespillMatte", Source = "NumberIn1", }, RestoreLuma = InstanceInput { SourceOp = "RestoreLuma", Source = "Blend", Name = "Restore Luma", Default = 0.5, }, Blank2 = InstanceInput { SourceOp = "RestoreLuma", Source = "Blank1", }, ColorCorrectSpillArea = InstanceInput { SourceOp = "TintSpillArea", Source = "ColorCorrectSpillArea", }, WheelHue = InstanceInput { SourceOp = "TintSpillArea", Source = "WheelHue1", ControlGroup = 16, }, WheelSaturation = InstanceInput { SourceOp = "TintSpillArea", Source = "WheelSaturation1", ControlGroup = 16, Default = 1, }, WheelTintAngle = InstanceInput { SourceOp = "TintSpillArea", Source = "WheelTintAngle1", ControlGroup = 16, }, WheelTintLength = InstanceInput { SourceOp = "TintSpillArea", Source = "WheelTintLength1", ControlGroup = 16, }, WheelRangeDummy = InstanceInput { SourceOp = "TintSpillArea", Source = "WheelRangeDummy1", ControlGroup = 16, Default = 0, }, TintMode = InstanceInput { SourceOp = "TintSpillArea", Source = "TintMode", Default = 1, }, Hue = InstanceInput { SourceOp = "TintSpillArea", Source = "Hue1", }, Saturation = InstanceInput { SourceOp = "TintSpillArea", Source = "Saturation1", Default = 1, }, MatteBlur = InstanceInput { SourceOp = "AdjustSpillMatte", Source = "MatteBlur", Default = 0, Page = "Adjust Spill Matte", }, MatteContractExpand = InstanceInput { SourceOp = "AdjustSpillMatte", Source = "MatteContractExpand", Default = 0, }, MatteGamma = InstanceInput { SourceOp = "AdjustSpillMatte", Source = "MatteGamma", Default = 1, }, LowMatteThreshold = InstanceInput { SourceOp = "AdjustSpillMatte", Source = "LowMatteThreshold", ControlGroup = 15, Default = 0, }, High = InstanceInput { SourceOp = "AdjustSpillMatte", Source = "High", ControlGroup = 15, Default = 1, }, ProcessInLogSpace = InstanceInput { SourceOp = "SpillMergeOutput", Source = "ProcessInLogSpace", Default = 1, Page = "Adjust BG", }, AdditionalBGCorrection = InstanceInput { SourceOp = "AdjustBackground", Source = "AdditionalBGCorrection", }, BGGain = InstanceInput { SourceOp = "AdjustBackground", Source = "Gain", Default = 1, }, BGLift = InstanceInput { SourceOp = "AdjustBackground", Source = "Lift", Default = 0, }, BGGamma = InstanceInput { SourceOp = "AdjustBackground", Source = "Gamma", Default = 1, }, BGContrast = InstanceInput { SourceOp = "AdjustBackground", Source = "Contrast", Default = 0, }, BGBrightness = InstanceInput { SourceOp = "AdjustBackground", Source = "Brightness", Default = 0, }, BGSaturation = InstanceInput { SourceOp = "AdjustBackground", Source = "Saturation", Default = 1, }, BGLow = InstanceInput { SourceOp = "AdjustBackground", Source = "Low", ControlGroup = 27, Default = 0, }, BGHigh = InstanceInput { SourceOp = "AdjustBackground", Source = "High", ControlGroup = 27, Default = 1, }, ClipBlack = InstanceInput { SourceOp = "AdjustBackground", Source = "ClipBlack", Default = 0, }, ClipWhite = InstanceInput { SourceOp = "AdjustBackground", Source = "ClipWhite", Default = 0, }, }, Outputs = { Output = InstanceOutput { SourceOp = "SpillMergeOutput", Source = "Output", }, }, ViewInfo = GroupInfo { Pos = { 0, 0, }, }, Colors = { TileColor = { R = 0.443137254901961, G = 0.372549019607843, B = 0.545098039215686, }, TextColor = { R = 0.862745098039216, G = 0.862745098039216, B = 0.862745098039216, }, }, UserControls = ordered() { OutputMode = { { MBTNC_AddButton = "Despilled Source", }, { MBTNC_AddButton = "Spill", }, { MBTNC_AddButton = "Merged Result", }, LINKID_DataType = "Number", LINKS_Name = "Output Mode:", MBTNC_StretchToFit = true, INPID_InputControl = "MultiButtonControl", INP_Default = 2, IC_ControlPage = -1, }, }, Tools = ordered() { PipeRouter3 = PipeRouter { Inputs = { Input = Input { SourceOp = "NeutralGrade", Source = "Output", }, }, ViewInfo = PipeRouterInfo { Pos = { 880, -82.5, }, }, }, NeutralGrade = ColorGain { NameSet = true, Inputs = { Blend = Input { Value = 0, Expression = "Neutralize", }, GainRed = Input { Value = 1, Expression = "1 / WhiteRed * LumaCorrectionFactor", }, GainGreen = Input { Value = 1, Expression = "1 / WhiteGreen * LumaCorrectionFactor", }, GainBlue = Input { Value = 1, Expression = "1 / WhiteBlue * LumaCorrectionFactor", }, LiftNest = Input { Value = 0, }, GammaNest = Input { Value = 0, }, ColorRanges = Input { Value = ColorCurves { Curves = { { Points = { { 0, 1, }, { 0.125, 0.75, }, { 0.375, 0.25, }, { 0.5, 0, }, }, }, { Points = { { 0.5, 0, }, { 0.625, 0.25, }, { 0.875, 0.75, }, { 1, 1, }, }, }, }, }, }, Input = Input { SourceOp = "INPUT", Source = "Output", }, Comments = Input { Value = "neutralizes white balance while keeping overall luminance", }, LumaCorrectionFactor = Input { Value = 1, Expression = "WhiteRed * 0.299 + WhiteGreen * 0.587 + WhiteBlue * 0.114", }, }, ViewInfo = OperatorInfo { Pos = { 770, -16.5, }, }, UserControls = ordered() { RemoveColorCast = { LINKS_Name = "Remove Color Cast", LINKID_DataType = "Number", LBLC_DropDownButton = true, INPID_InputControl = "LabelControl", LBLC_NumInputs = 5, LBLC_NestLevel = 1, INP_Default = 0, }, Neutralize = { LINKS_Name = "Neutralize Before Despill", LINKID_DataType = "Number", INPID_InputControl = "CheckboxControl", INP_Default = 0, ICD_Width = 0.5, }, RevertNeutralize = { LINKS_Name = "Revert After Despill", LINKID_DataType = "Number", INPID_InputControl = "CheckboxControl", INP_Default = 1, ICD_Width = 0.5, }, WhiteRed = { INPID_InputControl = "ColorControl", CLRC_ColorSpace = 0, IC_ControlGroup = 2, CLRC_ShowWheel = false, LINKID_DataType = "Number", IC_ControlID = 0, INP_Default = 1, LINKS_Name = "Pick Color That Should Be Neutral", }, WhiteGreen = { INPID_InputControl = "ColorControl", CLRC_ColorSpace = 0, IC_ControlGroup = 2, CLRC_ShowWheel = false, LINKID_DataType = "Number", IC_ControlID = 1, INP_Default = 1, }, WhiteBlue = { INPID_InputControl = "ColorControl", CLRC_ColorSpace = 0, IC_ControlGroup = 2, CLRC_ShowWheel = false, LINKID_DataType = "Number", IC_ControlID = 2, INP_Default = 1, }, LumaCorrectionFactor = { LINKID_DataType = "Number", LINKS_Name = "Luma Correction Factor", INPID_InputControl = "ScrewControl", INP_Default = 0, }, }, }, INPUT = ChannelBoolean { NameSet = true, ViewInfo = OperatorInfo { Pos = { 605, -16.5, }, }, Colors = { TileColor = { R = 0.862745098039216, G = 0.823529411764706, B = 0.211764705882353, }, TextColor = { R = 0, G = 0, B = 0, }, }, }, CT_DespillMatte = Custom { NameSet = true, Inputs = { NumberIn7 = Input { Expression = "ScreenColor", }, NumberIn8 = Input { Expression = "DespillMode", }, LUTIn1 = Input { SourceOp = "CT_DespillMatteLUTIn1", Source = "Value", }, LUTIn2 = Input { SourceOp = "CT_DespillMatteLUTIn2", Source = "Value", }, LUTIn3 = Input { SourceOp = "CT_DespillMatteLUTIn3", Source = "Value", }, LUTIn4 = Input { SourceOp = "CT_DespillMatteLUTIn4", Source = "Value", }, Intermediate1 = Input { Value = "max(r1 * 2*(n1+0.5), if(n7 == 1, b1, g1) * 2*(0.5-n1))", }, Intermediate2 = Input { Value = "(r1 + if(n7 == 1, b1, g1)) * (n1 + 1) / 2", }, Intermediate3 = Input { Value = "min(r1 * 2*(n1+0.5), if(n7 == 1, b1, g1) * 2*(0.5-n1))", }, Intermediate4 = Input { Value = "if(n8 == 0, i1, if(n8 == 1, i2, i3) )", }, RedExpression = Input { Value = "c1", }, GreenExpression = Input { Value = "if(n7 == 1, min(c1 , i4), c1)", }, BlueExpression = Input { Value = "if(n7 == 0, min(c1 , i4), c1)", }, AlphaExpression = Input { Value = "max(0, if(n7 == 1, g1, b1) - i4)", }, NumberControls = Input { Value = 1, }, NameforNumber1 = Input { Value = "Finetuning", }, NameforNumber7 = Input { Value = "Screen Color", }, NameforNumber8 = Input { Value = "Despill Mode", }, Image1 = Input { SourceOp = "NeutralGrade", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 935, -16.5, }, }, Colors = { TileColor = { R = 0.454901960784314, G = 0.792156862745098, B = 0.164705882352941, }, TextColor = { R = 0, G = 0, B = 0, }, }, UserControls = ordered() { 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, }, DespillMode = { { CCS_AddString = "Rare (Limit to Max of Channels)", }, { CCS_AddString = "Well-Done (Limit to Avg of Channels)", }, { CCS_AddString = "Burnt (Limit to Min of Channels)", }, INP_Integer = true, INPID_InputControl = "ComboControl", INP_Default = 1, IC_ControlPage = 0, LINKID_DataType = "Number", LINKS_Name = "Despill Mode", }, }, }, CT_DespillMatteLUTIn1 = LUTBezier { KeyColorSplines = { [0] = { [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, }, [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, }, }, }, SplineColor = { Red = 204, Green = 0, Blue = 0, }, }, CT_DespillMatteLUTIn2 = LUTBezier { KeyColorSplines = { [0] = { [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, }, [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, }, }, }, SplineColor = { Red = 0, Green = 204, Blue = 0, }, }, CT_DespillMatteLUTIn3 = LUTBezier { KeyColorSplines = { [0] = { [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, }, [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, }, }, }, SplineColor = { Red = 0, Green = 0, Blue = 204, }, }, CT_DespillMatteLUTIn4 = LUTBezier { KeyColorSplines = { [0] = { [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, }, [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, }, }, }, SplineColor = { Red = 204, Green = 204, Blue = 204, }, }, SpillDifference = ChannelBoolean { NameSet = true, Inputs = { Operation = Input { Value = 2, }, ToAlpha = Input { Value = 4, }, Background = Input { SourceOp = "PipeRouter3", Source = "Output", }, Foreground = Input { SourceOp = "CT_DespillMatte", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1100, -82.5, }, }, }, AntiNeutralGrade = ColorGain { NameSet = true, Inputs = { Blend = Input { Value = 0, Expression = "NeutralGrade.Neutralize * NeutralGrade.RevertNeutralize", }, GainRed = Input { Value = 1, Expression = "1.0 / NeutralGrade.GainRed", }, GainGreen = Input { Value = 1, Expression = "1.0 / NeutralGrade.GainGreen", }, GainBlue = Input { Value = 1, Expression = "1.0 / NeutralGrade.GainBlue", }, LiftNest = Input { Value = 0, }, GammaNest = Input { Value = 0, }, ColorRanges = Input { Value = ColorCurves { Curves = { { Points = { { 0, 1, }, { 0.125, 0.75, }, { 0.375, 0.25, }, { 0.5, 0, }, }, }, { Points = { { 0.5, 0, }, { 0.625, 0.25, }, { 0.875, 0.75, }, { 1, 1, }, }, }, }, }, }, Input = Input { SourceOp = "CT_DespillMatte", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1155, -16.5, }, }, }, DesaturateSpillDifference = BrightnessContrast { NameSet = true, Inputs = { Saturation = Input { Value = 0, }, Input = Input { SourceOp = "SpillDifference", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1210, -82.5, }, }, }, RestoreLuma = ChannelBoolean { NameSet = true, Inputs = { Blend = Input { Value = 0.5, }, Operation = Input { Value = 1, }, ToAlpha = Input { Value = 4, }, Background = Input { SourceOp = "AntiNeutralGrade", Source = "Output", }, Foreground = Input { SourceOp = "DesaturateSpillDifference", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1320, -16.5, }, }, }, AdjustSpillMatte = MatteControl { CtrlWZoom = false, NameSet = true, Inputs = { Background = Input { SourceOp = "RestoreLuma", Source = "Output", }, Filter = Input { Value = FuID { "Multi-box", }, }, }, ViewInfo = OperatorInfo { Pos = { 1320, 214.5, }, }, }, PipeRouter1 = PipeRouter { Inputs = { Input = Input { SourceOp = "AdjustSpillMatte", Source = "Output", }, }, ViewInfo = PipeRouterInfo { Pos = { 1485, 214.5, }, }, }, PipeRouter2 = PipeRouter { Inputs = { Input = Input { SourceOp = "TintSpillArea", Source = "Output", }, }, ViewInfo = PipeRouterInfo { Pos = { 1595, 148.5, }, }, }, TintSpillArea = ColorCorrector { NameSet = true, Inputs = { TintMode = Input { Value = 1, }, 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 = "AdjustSpillMatte", Source = "Output", }, EffectMask = Input { SourceOp = "PipeRouter1", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1485, 313.5, }, }, UserControls = ordered() { ColorCorrectSpillArea = { LBLC_DropDownButton = true, INPID_InputControl = "LabelControl", LBLC_NumInputs = 8, INP_Default = 0, LINKID_DataType = "Number", LBLC_NestLevel = 1, LINKS_Name = "Color Correct Spill Area", }, }, }, LinLog_FG = CineonLog { NameSet = true, Inputs = { Blend = Input { Expression = "SpillMergeOutput.ProcessInLogSpace", }, Depth = Input { Value = 5, }, Mode = Input { Value = 1, }, Input = Input { SourceOp = "TintSpillArea", Source = "Output", }, Comments = Input { Value = "force float32", }, }, ViewInfo = OperatorInfo { Pos = { 1650, 313.5, }, }, }, Add_BG_to_FG = Merge { NameSet = true, Inputs = { Gain = Input { Value = 0, }, PerformDepthMerge = Input { Value = 0, }, Background = Input { SourceOp = "LinLog_FG", Source = "Output", }, Foreground = Input { SourceOp = "AdjustBackground", Source = "Output", }, EffectMask = Input { SourceOp = "PipeRouter1", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1760, 313.5, }, }, }, LogLin_FG = CineonLog { NameSet = true, Inputs = { Blend = Input { Expression = "SpillMergeOutput.ProcessInLogSpace", }, Depth = Input { Value = 4, Expression = "LinLog_FG.Input.Depth - 3", }, Input = Input { SourceOp = "Add_BG_to_FG", Source = "Output", }, Comments = Input { Value = "also restores input depth", }, }, ViewInfo = OperatorInfo { Pos = { 1870, 313.5, }, }, }, BACKGROUND = ChannelBoolean { NameSet = true, ViewInfo = OperatorInfo { Pos = { 1320, 445.5, }, }, Colors = { TileColor = { R = 0.862745098039216, G = 0.823529411764706, B = 0.211764705882353, }, TextColor = { R = 0, G = 0, B = 0, }, }, }, LinLog_BG = CineonLog { NameSet = true, Inputs = { Blend = Input { Expression = "SpillMergeOutput.ProcessInLogSpace", }, Depth = Input { Value = 5, }, Mode = Input { Value = 1, }, Input = Input { SourceOp = "BACKGROUND", Source = "Output", }, Comments = Input { Value = "force float32", }, }, ViewInfo = OperatorInfo { Pos = { 1485, 445.5, }, }, }, AdjustBackground = BrightnessContrast { NameSet = true, Inputs = { Low = Input { Value = 0.2, }, High = Input { Value = 0.75, }, Input = Input { SourceOp = "LinLog_BG", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 1595, 445.5, }, }, UserControls = ordered() { AdditionalBGCorrection = { LINKS_Name = "Additional Background Correction", LBLC_DropDownButton = true, INPID_InputControl = "LabelControl", LBLC_NumInputs = 5, LBLC_NestLevel = 1, LINKID_DataType = "Number", INP_Default = 0, }, }, }, PreviewSpillMatteRGB = ChannelBoolean { NameSet = true, Inputs = { Blend = Input { Value = 0, Expression = "SpillMerge.OutputMode == 1 and 1 or 0", }, ToRed = Input { Value = 3, }, ToGreen = Input { Value = 3, }, ToBlue = Input { Value = 3, }, ToAlpha = Input { Value = 4, }, Background = Input { SourceOp = "LogLin_FG", Source = "Output", }, Foreground = Input { SourceOp = "PipeRouter1", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 2035, 214.5, }, }, }, OutputDespillOnly = ChannelBoolean { NameSet = true, Inputs = { Blend = Input { Value = 0, Expression = "SpillMerge.OutputMode == 0 and 1 or 0", }, ToAlpha = Input { Value = 4, }, Background = Input { SourceOp = "PreviewSpillMatteRGB", Source = "Output", }, Foreground = Input { SourceOp = "PipeRouter2", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 2145, 148.5, }, }, }, SpillMergeOutput = ChannelBoolean { NameSet = true, Inputs = { Background = Input { SourceOp = "OutputDespillOnly", Source = "Output", }, }, ViewInfo = OperatorInfo { Pos = { 2310, 148.5, }, }, Colors = { TileColor = { R = 0.862745098039216, G = 0.823529411764706, B = 0.211764705882353, }, TextColor = { R = 0, G = 0, B = 0, }, }, UserControls = ordered() { ProcessInLogSpace = { INP_Default = 1, INPID_InputControl = "CheckboxControl", LINKID_DataType = "Number", LINKS_Name = "Process In Log Space", }, }, }, }, }, }, ActiveTool = "SpillMerge", }