Welcome to WSL!

Make yourself at home, but before posting, please may I ask you to read the following topics.


Posting 101
Server space, screenshots, and you

Thank you!

PS. please pretty please:


Image

Removing wires

Moderator: SecondMan

mdharrington
Fusioneer
Posts: 145
Joined: Thu Sep 04, 2014 4:56 pm

Removing wires

#1

Post by mdharrington » Sat Sep 19, 2015 7:07 pm

took a timelapse of some wind turbines....and wasn't able to get an angle which eliminated the power lines running beside.

I am experimenting with different ways to get rid of them....painting them out with the wire brush would seem obvious, but it's not something I have a lot of experience with and the results so far are not the best. This shot will be held at least 15 seconds and there is no movement of the camera, so the lines coming from the wire paint fix are fairly visible.

I had also tried masking the lines, and using the source footage from a frame later and matching the position of the clouds so the background sky from the next frame in time is composited over the wires....the problem is the spinning turbine blade causes a lot of chaos with that technique, as the background sky movement is a predictable vector, and the turbine blade is not. For that to work I would have to track the turbine blade and mask it.....and being a timelapse, with 10 second intervals, the cadence of the blade rotation is not a linear thing...sorta hops around

Was hoping there may be a better way to do this....something more procedural maybe?
Or am I screwed :oops:
Lines.jpg
The attached photo is just a crop, there is some HDR ghosting of the blades which I will deal with later
You do not have the required permissions to view the files attached to this post.

mdharrington
Fusioneer
Posts: 145
Joined: Thu Sep 04, 2014 4:56 pm

Re: Removing wires

#2

Post by mdharrington » Sat Sep 19, 2015 7:59 pm

Directional blur with the blur angle perpendicular to the wire seemed to help quite a bit....

EDIT: only in that frame....when the turbine blade is also perpendicular to the wire

User avatar
loom
Posts: 43
Joined: Wed Aug 13, 2014 9:37 am

Re: Removing wires

#3

Post by loom » Sun Sep 20, 2015 7:19 am

Hmm... just a quick'n'dirty test.. Needs more tweaking - ist hard to say if this will work whitout the moving/fullRes footage - but maybe as a starting Point still better than nothing. Threat the Background on it's own. try to dial in the retoched pass on top of the original footage to Keep the details.

Cheers.
You do not have the required permissions to view the files attached to this post.

mdharrington
Fusioneer
Posts: 145
Joined: Thu Sep 04, 2014 4:56 pm

Re: Removing wires

#4

Post by mdharrington » Sun Sep 20, 2015 9:55 am

That's pretty good....only problem is having to roto the moving blade, and that it cuts out the clouds that will be in that area.

But it may work as a starting point...it's a pretty good technique for getting the lines off the blade

I was thinking possibly a custom filter, that took the darkest pixels in and interpolated the surrounding color over them....played with rank and others with some success

mdharrington
Fusioneer
Posts: 145
Joined: Thu Sep 04, 2014 4:56 pm

Re: Removing wires

#5

Post by mdharrington » Sun Sep 20, 2015 10:20 am

Ahhh hate to have to do this....

After effects, CC simple wire remover....works like a charm, some issues with artifacts on the turbine blade though....Used it before when I ran into some dead pixels on a shot.

Was hoping to do this in Fusion, but whatever works. Curious as to the algorithm technique behind this....seems it is a pinch displacement along a line
wire removed.jpg
You do not have the required permissions to view the files attached to this post.

User avatar
Chad
Fusionator
Posts: 1502
Joined: Fri Aug 08, 2014 1:11 pm
Been thanked: 12 times

Re: Removing wires

#6

Post by Chad » Sun Sep 20, 2015 10:49 am

You can do that in Fusion, too. I have done same for removing bad pixels or digital drop-outs in uncompressed footage.

First you need to key the areas you want to remove. Could be based on color or frequency or direction.
Then run a gradient filter on that. Like a Sobel, but without the clamping or summing of the gradients. Could also do a X/Y central differences. CreateBumpMap will also do this.
Then warp the non-artifact (inverse of the key) pixels using the vectors from the filter. VectorDistortion can do some of this. Vector blur might work too, but I find warping to be better.
You may need to expand the vectors, but you can at least see it interactively. If you run in 3D (X/Y/Time) it works even for moving objects, but you'll need to make your own warping tool for that with CT or a Fuse.

mdharrington
Fusioneer
Posts: 145
Joined: Thu Sep 04, 2014 4:56 pm

Re: Removing wires

#7

Post by mdharrington » Sun Sep 20, 2015 11:28 am

while I am at it I may as well re-align the dilithium crystals and increase the graviton field :shock:

Thanks Chad....I think I get it.
As always, it will take a few hours to digest what you just said :)

Give it a go this afternoon (stupid questions likely to follow)

User avatar
loom
Posts: 43
Joined: Wed Aug 13, 2014 9:37 am

Re: Removing wires

#8

Post by loom » Sun Sep 20, 2015 12:11 pm

Fort me the CC Method does not work verry well. I can still See some wires and jagged Rotors. The shot needs more Treatment. Maybe a Masken zoomblur helps

mdharrington
Fusioneer
Posts: 145
Joined: Thu Sep 04, 2014 4:56 pm

Re: Removing wires

#9

Post by mdharrington » Sun Sep 20, 2015 12:17 pm

loom wrote:Fort me the CC Method does not work verry well. I can still See some wires and jagged Rotors. The shot needs more Treatment.
totally agree....

was just a very quick mockup, using only 1 line per wire (since they are slightly curved they require a few segments)

the jagged rotors is an issue that would have to be dealt with....but in the open sky the CC wire removal works very good and preserves all the cloud detail (more detailed clouds enter the shot later)

User avatar
Kristof
Fusionista
Posts: 790
Joined: Thu Aug 07, 2014 1:30 pm
Answers: 2
Been thanked: 24 times

Re: Removing wires

#10

Post by Kristof » Tue Sep 22, 2015 8:13 am

I wrote a macro called edgeExtrude that creates vectors based on a matte and smudges the pixels accordingly.
Then there's also the old trick to blur the matte and divide the RGB with it. A macro by an ex-colleague does that (growcolor)

Both approaches have issues, so your luck may vary:

Code: Select all

{
	Tools = ordered() {
		Background1 = Background {
			Inputs = {
				Width = Input { Value = 953, },
				Height = Input { Value = 663, },
				TopLeftRed = Input { Value = 1, },
				TopLeftGreen = Input { Value = 1, },
				TopLeftBlue = Input { Value = 1, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1, },
							[1] = { 1, 1, 1, 1, },
						},
					},
				},
				EffectMask = Input {
					SourceOp = "Polygon1",
					Source = "Mask",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, 16.5, }, },
		},
		Polygon1 = PolylineMask {
			DrawMode = "ModifyOnly",
			DrawMode2 = "InsertAndModify",
			Inputs = {
				BorderWidth = Input { Value = 0.01, },
				Solid = Input { Value = 0, },
				MaskWidth = Input { Value = 2048, },
				MaskHeight = Input { Value = 1556, },
				PixelAspect = Input { Value = { 1, 1, }, },
				ClippingMode = Input { Value = FuID { "None", }, },
				Polyline = Input {
					SourceOp = "Polygon1Polyline",
					Source = "Value",
				},
				Polyline2 = Input {
					Value = Polyline {
					},
					Disabled = true,
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, -16.5, }, },
		},
		Polygon1Polyline = BezierSpline {
			SplineColor = { Red = 173, Green = 255, Blue = 47, },
			NameSet = true,
			KeyFrames = {
				[0] = { 0, Flags = { Linear = true, LockedY = true, }, Value = Polyline {
						Points = {
							{ Linear = true, X = -0.176195115558471, Y = 0.666445842297872, RX = -0.141163365312797, RY = -0.444119451169982, },
							{ Linear = true, X = -0.599685211496863, Y = -0.665912511212074, LX = 0.141163365312797, LY = 0.444119451169982, RX = 0.019237504071312, RY = -0.0108094500080912, },
							{ Linear = true, X = -0.541972699282927, Y = -0.698340861236348, LX = -0.019237504071312, LY = 0.0108094500080912, RX = 0.172787681861737, RY = 0.4683257831947, },
							{ Linear = true, X = -0.0236096536977156, Y = 0.706636488347751, LX = -0.172787681861737, LY = -0.4683257831947, RX = 0.104931790207067, RY = -0.0248868763296972, },
							{ Linear = true, X = 0.291185716923487, Y = 0.63197585935866, LX = -0.104931790207067, LY = 0.0248868763296972, RX = -0.208814262082503, RY = -0.417043735508705, },
							{ Linear = true, X = -0.335257069324021, Y = -0.619155347167457, LX = 0.208814262082503, LY = 0.417043735508705, RX = 0.0248338559179216, RY = -0.0140774248232489, },
							{ Linear = true, X = -0.260755501570256, Y = -0.661387621637203, LX = -0.0248338559179216, LY = 0.0140774248232489, RX = 0.230675061262334, RY = 0.415786822487086, },
							{ Linear = true, X = 0.431269682216744, Y = 0.585972845824056, LX = -0.230675061262334, LY = -0.415786822487086, },
						},
					}, },
			},
		},
		EdgeExtrude = MacroOperator {
			Inputs = ordered() {
				Comments = Input { Value = "edgeExtrude\r\nKristof Indeherberge\r\n2011", },
				MainInput1 = InstanceInput {
					SourceOp = "CutOut",
					Source = "Background",
				},
				Input1 = InstanceInput {
					SourceOp = "MultiplyOffset",
					Source = "Gain",
					Name = "Scale",
					Default = 15000,
				},
				MainInput2 = InstanceInput {
					SourceOp = "Matte",
					Source = "Image",
					Name = "Matte",
				},
				Input2 = InstanceInput {
					SourceOp = "Matte",
					Source = "Invert",
				},
			},
			Outputs = {
				MainOutput1 = InstanceOutput {
					SourceOp = "SolidAlpha",
					Source = "Output",
				},
			},
			ViewInfo = GroupInfo { Pos = { 275, 82.5, }, },
			Tools = ordered() {
				RemoveBorder = Crop {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XOffset = Input { Value = 1, },
						YOffset = Input { Value = 1, },
						XSize = Input {
							Value = 951,
							Expression = "ScreenXY.Width-2",
						},
						YSize = Input {
							Value = 661,
							Expression = "ScreenXY.Height-2",
						},
						KeepCentered = Input { Value = 1, },
						Input = Input {
							SourceOp = "CreateEdge",
							Source = "Output",
						},
						Comments = Input { Value = "Removing the side effects of the Laplacian filter.", },
					},
					ViewInfo = OperatorInfo { Pos = { -165, 76.15, }, },
				},
				RestoreSize = Crop {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XOffset = Input { Value = -1, },
						YOffset = Input { Value = -1, },
						XSize = Input {
							Value = 953,
							Expression = "ScreenXY.Width",
						},
						YSize = Input {
							Value = 663,
							Expression = "ScreenXY.Height",
						},
						KeepCentered = Input { Value = 1, },
						Input = Input {
							SourceOp = "RemoveBorder",
							Source = "Output",
						},
						Comments = Input { Value = "Restoring the canvas size.", },
					},
					ViewInfo = OperatorInfo { Pos = { -165, 109.15, }, },
				},
				CreateEdge = Filter {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						FilterType = Input { Value = 4, },
						Input = Input {
							SourceOp = "CutOut",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -165, 43.15, }, },
				},
				MapEdge = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ApplyMaskInverted = Input { Value = 1, },
						Operation = Input { Value = 12, },
						Background = Input {
							SourceOp = "ScreenXY",
							Source = "Output",
						},
						Comments = Input { Value = "Inserting coordinates to the edge.", },
						EffectMask = Input {
							SourceOp = "RestoreSize",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -165, 142.15, }, },
				},
				CutOut = ChannelBoolean {
					CtrlWZoom = false,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 12, },
						Background = Input {
							SourceOp = "Loader1",
							Source = "Output",
						},
						EffectMask = Input {
							SourceOp = "Matte",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 0, 10.15, }, },
				},
				ExpandEdge = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "MapEdge",
							Source = "Output",
						},
						Comments = Input { Value = "Creating a perpendicular motion using the blur.", },
					},
					ViewInfo = OperatorInfo { Pos = { -165, 175.15, }, },
				},
				ScreenXY = Background {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Width = Input {
							Value = 953,
							Expression = "CutOut.Background.Width",
						},
						Height = Input {
							Value = 663,
							Expression = "CutOut.Background.Height",
						},
						PixelAspect = Input { Expression = "Point(CutOut.Background.XScale, CutOut.Background.YScale)", },
						Depth = Input { Value = 4, },
						Type = Input { Value = FuID { "Corner", }, },
						TopLeftGreen = Input { Value = 1, },
						TopRightRed = Input { Value = 1, },
						TopRightGreen = Input { Value = 1, },
						BottomRightRed = Input { Value = 1, },
						Gradient = Input {
							Value = Gradient {
								Colors = {
									[0] = { 0, 0, 0, 1, },
									[1] = { 1, 1, 1, 1, },
								},
							},
						},
					},
					ViewInfo = OperatorInfo { Pos = { -330, 208.15, }, },
				},
				AddEdge = Merge {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						PerformDepthMerge = Input { Value = 0, },
						Background = Input {
							SourceOp = "ScreenXY",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "ExpandEdge",
							Source = "Output",
						},
						Comments = Input { Value = "Adding the result on a neutral canvas with coordinates.", },
					},
					ViewInfo = OperatorInfo { Pos = { -165, 208.15, }, },
				},
				CalcEdge = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 2, },
						Background = Input {
							SourceOp = "AddEdge",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "ScreenXY",
							Source = "Output",
						},
						Comments = Input { Value = "Substracting which give the offsets for the individual pixels.", },
					},
					ViewInfo = OperatorInfo { Pos = { -165, 241.15, }, },
				},
				OutToIn = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 12, },
						ToAlpha = Input { Value = 4, },
						Background = Input {
							SourceOp = "CalcEdge",
							Source = "Output",
						},
						Comments = Input { Value = "Removing the outward motion vectors.", },
						EffectMask = Input {
							SourceOp = "Matte",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -165, 274.15, }, },
				},
				VectorDisplace = VectorMotionBlur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "CutOut",
							Source = "Output",
						},
						Vectors = Input {
							SourceOp = "MultiplyOffset",
							Source = "Output",
						},
						XVectorChannel = Input { Value = 0, },
						YChannel = Input { Value = 1, },
						XScale = Input { Value = 300, },
						EffectMask = Input {
							SourceOp = "Matte",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 165, 307.15, }, },
				},
				MultiplyOffset = BrightnessContrast {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Gain = Input { Value = 300, },
						Input = Input {
							SourceOp = "OutToIn",
							Source = "Output",
						},
						Comments = Input { Value = "Scaling the offsets using gain only.", },
					},
					ViewInfo = OperatorInfo { Pos = { -165, 307.15, }, },
					Colors = {
						TileColor = { R = 0, G = 1, B = 0.250980392156863, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				Divide = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 7, },
						ToRed = Input { Value = 3, },
						ToGreen = Input { Value = 3, },
						ToBlue = Input { Value = 3, },
						ToAlpha = Input { Value = 4, },
						Background = Input {
							SourceOp = "VectorDisplace",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 165, 340.15, }, },
				},
				SolidAlpha = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToAlpha = Input { Value = 16, },
						Background = Input {
							SourceOp = "Divide",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 165, 373.15, }, },
				},
				Matte = BitmapMask {
					CtrlWZoom = false,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						OutputSize = Input { Value = FuID { "Custom", }, },
						MaskWidth = Input {
							Value = 953,
							Expression = "CutOut.Background.Width",
						},
						MaskHeight = Input {
							Value = 663,
							Expression = "CutOut.Background.Height",
						},
						PixelAspect = Input {
							Value = { 1, 1, },
							Expression = "Point(CutOut.Background.XScale, CutOut.Background.YScale)",
						},
						ClippingMode = Input { Value = FuID { "None", }, },
						Image = Input {
							SourceOp = "Background1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 330, 208.15, }, },
					Colors = { TileColor = { R = 0, G = 1, B = 0, }, },
				},
			},
		},
		Loader1 = Loader {
			Clips = {
				Clip {
					ID = "Clip1",
					Filename = "C:\\Users\\kristof.in\\Downloads\\Lines.jpg",
					FormatID = "JpegFormat",
					StartFrame = -1,
					LengthSetManually = true,
					TrimIn = 0,
					TrimOut = 0,
					ExtendFirst = 0,
					ExtendLast = 0,
					Loop = 0,
					AspectMode = 0,
					Depth = 5,
					TimeCode = 0,
					GlobalStart = 0,
					GlobalEnd = 0,
				},
			},
			Inputs = {
				Depth = Input { Value = 5, },
				EnableClipList = Input { Value = 0, },
			},
			ViewInfo = OperatorInfo { Pos = { 110, 115.5, }, },
		},
		GrowColor_1_1_2 = MacroOperator {
			Inputs = ordered() {
				Comments = Input { Value = "Grow Color v1.4 \nFelix Serwir\n2014", },
				Input1 = InstanceInput {
					SourceOp = "INVERTER_1",
					Source = "Invert",
				},
				Input2 = InstanceInput {
					SourceOp = "Masterdilate_1",
					Source = "LockXY",
					Name = "Master Dilate Lock X/Y",
					Default = 1,
				},
				Input3 = InstanceInput {
					SourceOp = "Masterdilate_1",
					Source = "XAmount",
					Name = "Master Dilate X Amount",
					Default = 0.003,
				},
				Input4 = InstanceInput {
					SourceOp = "Masterdilate_1",
					Source = "YAmount",
					Name = "Master Dilate Y Amount",
					Default = 0.003,
				},
				Input5 = InstanceInput {
					SourceOp = "SubDilate_1",
					Source = "LockXY",
					Name = "Sub Dilate Lock X/Y",
					Default = 1,
				},
				Input6 = InstanceInput {
					SourceOp = "SubDilate_1",
					Source = "XAmount",
					Name = "Sub Dilate X Amount",
					Default = 0.0005,
				},
				Input7 = InstanceInput {
					SourceOp = "SubDilate_1",
					Source = "YAmount",
					Name = "Sub Dilate Y Amount",
					Default = 0.0005,
				},
				Input8 = InstanceInput {
					SourceOp = "GrowColorA_1",
					Source = "LockXY",
					Name = "Grow color Lock X/Y",
					Default = 1,
				},
				Input9 = InstanceInput {
					SourceOp = "GrowColorA_1",
					Source = "XBlurSize",
					Default = 25,
				},
				Input10 = InstanceInput {
					SourceOp = "GrowColorA_1",
					Source = "YBlurSize",
					Name = "Grow color Y",
					Default = 25,
				},
				Input11 = InstanceInput {
					SourceOp = "GrowColorB_1",
					Source = "LockXY",
					Name = "Grow color 2 Lock X/Y",
					Default = 1,
				},
				Input12 = InstanceInput {
					SourceOp = "GrowColorB_1",
					Source = "XBlurSize",
					Name = "Grow color2 X",
					Default = 25,
				},
				Input13 = InstanceInput {
					SourceOp = "GrowColorB_1",
					Source = "YBlurSize",
					Name = "Grow color 2 Y",
					Default = 25,
				},
				Input14 = InstanceInput {
					SourceOp = "insideblur_1",
					Source = "XBlurSize",
					Name = "Inner edge Blur Size",
					Default = 0,
				},
				Input15 = InstanceInput {
					SourceOp = "OutsideBlur_1",
					Source = "XBlurSize",
					Name = "Outer Blur Size",
					Default = 0,
				},
				Input16 = InstanceInput {
					SourceOp = "Keyedgeblur_1",
					Source = "XBlurSize",
					Name = "Keyed Edge Blur Size",
					Default = 0,
				},
				Input17 = InstanceInput {
					SourceOp = "KeyedgeErode_1",
					Source = "LockXY",
					Name = "Keyed Edge Lock X/Y",
					Default = 1,
				},
				Input18 = InstanceInput {
					SourceOp = "KeyedgeErode_1",
					Source = "XAmount",
					Name = "Keyed Edge X Amount",
					Default = 0,
				},
				Input19 = InstanceInput {
					SourceOp = "KeyedgeErode_1",
					Source = "YAmount",
					Name = "Keyed Edge Y Amount",
					Default = 0,
				},
				Input20 = InstanceInput {
					SourceOp = "PostDefocus_1",
					Source = "XDefocusSize",
					Name = "Post Defocus Edge",
					Default = 0,
				},
				Input21 = InstanceInput {
					SourceOp = "OUTPUT_1_6",
					Source = "BlendClone",
					Default = 1,
				},
				MainInput1 = InstanceInput {
					SourceOp = "InRGB_1",
					Source = "Background",
					Name = "rgb",
				},
				MainInput2 = InstanceInput {
					SourceOp = "InAlpha_1",
					Source = "Background",
					Name = "Alpha",
				},
			},
			Outputs = {
				MainOutput1 = InstanceOutput {
					SourceOp = "OUTPUT_1_6",
					Source = "Output",
				},
			},
			ViewInfo = GroupInfo { Pos = { 275, 148.5, }, },
			Tools = ordered() {
				OUTPUT_1_6 = Merge {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						PerformDepthMerge = Input { Value = 0, },
						Background = Input {
							SourceOp = "PostDefocus_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -68.75, 1666.05, }, },
				},
				PREMULT_2 = ChannelBoolean {
					CtrlWZoom = false,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 6, },
						ToRed = Input { Value = 3, },
						ToGreen = Input { Value = 3, },
						ToBlue = Input { Value = 8, },
						ToAlpha = Input { Value = 4, },
						Background = Input {
							SourceOp = "COPY_3",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "COPY_3",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 343.75, 1330.15, }, },
				},
				Over_1 = Merge {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						PerformDepthMerge = Input { Value = 0, },
						Background = Input {
							SourceOp = "PREMULT_2",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "PREMULT_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 206.25, 1336.05, }, },
				},
				COPY_3 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToRed = Input { Value = 4, },
						ToGreen = Input { Value = 4, },
						ToBlue = Input { Value = 4, },
						Background = Input {
							SourceOp = "UNPREMULT_2",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "BC_2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 343.75, 1264.15, }, },
				},
				BC_2 = BrightnessContrast {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Red = Input { Value = 0, },
						Green = Input { Value = 0, },
						Blue = Input { Value = 0, },
						Alpha = Input { Value = 1, },
						Gamma = Input { Value = 0, },
						ClipBlack = Input { Value = 1, },
						ClipWhite = Input { Value = 1, },
						Input = Input {
							SourceOp = "COPY_4",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 563.75, 1231.15, }, },
				},
				COPY_4 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToGreen = Input { Value = 5, },
						ToBlue = Input { Value = 5, },
						ToAlpha = Input { Value = 5, },
						Background = Input {
							SourceOp = "CCV_4",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 536.25, 1171.05, }, },
				},
				CCV_4 = ColorCurves {
					PickColor = true,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Red = Input {
							SourceOp = "CCV_4Red",
							Source = "Value",
						},
						Green = Input {
							SourceOp = "CCV_4Green",
							Source = "Value",
						},
						Blue = Input {
							SourceOp = "CCV_4Blue",
							Source = "Value",
						},
						Alpha = Input {
							SourceOp = "CCV_4Alpha",
							Source = "Value",
						},
						NumberOfSamplesOnMatchCurve = Input { Value = 64, },
						Input = Input {
							SourceOp = "CCV_3",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 536.25, 1138.05, }, },
					Tools = {
						CCV_4Alpha = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 204, Green = 204, Blue = 204, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_4Green = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 0, Green = 255, Blue = 0, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_4Red = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 255, Green = 52, Blue = 52, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_4Blue = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 68, Green = 68, Blue = 255, },
							CtrlWShown = false,
							NameSet = true,
						},
					},
				},
				UNPREMULT_2 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 7, },
						ToRed = Input { Value = 3, },
						ToGreen = Input { Value = 3, },
						ToBlue = Input { Value = 8, },
						Background = Input {
							SourceOp = "GrowColorB_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "GrowColorB_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 343.75, 1165.15, }, },
				},
				CCV_3 = ColorCurves {
					PickColor = true,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Red = Input {
							SourceOp = "CCV_3Red",
							Source = "Value",
						},
						Green = Input {
							SourceOp = "CCV_3Green",
							Source = "Value",
						},
						Blue = Input {
							SourceOp = "CCV_3Blue",
							Source = "Value",
						},
						Alpha = Input {
							SourceOp = "CCV_3Alpha",
							Source = "Value",
						},
						NumberOfSamplesOnMatchCurve = Input { Value = 64, },
						Input = Input {
							SourceOp = "GrowColorB_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 536.25, 1105.05, }, },
					Tools = {
						CCV_3Red = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 255, Green = 52, Blue = 52, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_3Alpha = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 204, Green = 204, Blue = 204, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_3Green = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 0, Green = 255, Blue = 0, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_3Blue = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 68, Green = 68, Blue = 255, },
							CtrlWShown = false,
							NameSet = true,
						},
					},
				},
				GrowColorB_1 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XBlurSize = Input { Value = 10, },
						YBlurSize = Input { Value = 25, },
						Input = Input {
							SourceOp = "multRGB_3",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 371.25, 1072.05, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				multRGB_3 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 6, },
						Background = Input {
							SourceOp = "PREMULT_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "cAlpha_3",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 398.75, 1000.15, }, },
				},
				cAlpha_3 = BitmapMask {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1, }, },
						ClippingMode = Input { Value = FuID { "None", }, },
						Image = Input {
							SourceOp = "cEdge_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 398.75, 967.15, }, },
				},
				cEdge_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 2, },
						Background = Input {
							SourceOp = "ED_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "ED_2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 398.75, 934.15, }, },
				},
				ED_2 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XAmount = Input { Value = -0.002, },
						Input = Input {
							SourceOp = "PREMULT_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 453.75, 868.15, }, },
				},
				ED_1 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XAmount = Input { Value = 0.0034234, },
						Input = Input {
							SourceOp = "PREMULT_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 343.75, 868.15, }, },
				},
				PREMULT_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 6, },
						ToRed = Input { Value = 3, },
						ToGreen = Input { Value = 3, },
						ToBlue = Input { Value = 8, },
						ToAlpha = Input { Value = 4, },
						Background = Input {
							SourceOp = "COPY_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "COPY_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 123.75, 736.15, }, },
				},
				COPY_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToRed = Input { Value = 4, },
						ToGreen = Input { Value = 4, },
						ToBlue = Input { Value = 4, },
						Background = Input {
							SourceOp = "UNPREMULT_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "BC_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 123.75, 670.15, }, },
				},
				BC_1 = BrightnessContrast {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Red = Input { Value = 0, },
						Green = Input { Value = 0, },
						Blue = Input { Value = 0, },
						Alpha = Input { Value = 1, },
						Gamma = Input { Value = 0, },
						ClipBlack = Input { Value = 1, },
						ClipWhite = Input { Value = 1, },
						Input = Input {
							SourceOp = "COPY_2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 371.25, 643.05, }, },
				},
				COPY_2 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToGreen = Input { Value = 5, },
						ToBlue = Input { Value = 5, },
						ToAlpha = Input { Value = 5, },
						Background = Input {
							SourceOp = "CCV_2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 369.054, 610.05, }, },
				},
				CCV_2 = ColorCurves {
					PickColor = true,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Red = Input {
							SourceOp = "CCV_2Red",
							Source = "Value",
						},
						Green = Input {
							SourceOp = "CCV_2Green",
							Source = "Value",
						},
						Blue = Input {
							SourceOp = "CCV_2Blue",
							Source = "Value",
						},
						Alpha = Input {
							SourceOp = "CCV_2Alpha",
							Source = "Value",
						},
						NumberOfSamplesOnMatchCurve = Input { Value = 64, },
						Input = Input {
							SourceOp = "CCV_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 371.25, 577.05, }, },
					Tools = {
						CCV_2Red = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 255, Green = 52, Blue = 52, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_2Blue = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 68, Green = 68, Blue = 255, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_2Green = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 0, Green = 255, Blue = 0, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_2Alpha = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 204, Green = 204, Blue = 204, },
							CtrlWShown = false,
							NameSet = true,
						},
					},
				},
				CCV_1 = ColorCurves {
					PickColor = true,
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Red = Input {
							SourceOp = "CCV_1Red",
							Source = "Value",
						},
						Green = Input {
							SourceOp = "CCV_1Green",
							Source = "Value",
						},
						Blue = Input {
							SourceOp = "CCV_1Blue",
							Source = "Value",
						},
						Alpha = Input {
							SourceOp = "CCV_1Alpha",
							Source = "Value",
						},
						NumberOfSamplesOnMatchCurve = Input { Value = 64, },
						Input = Input {
							SourceOp = "GrowColorA_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 316.25, 544.05, }, },
					Tools = {
						CCV_1Blue = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 68, Green = 68, Blue = 255, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_1Green = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 0, Green = 255, Blue = 0, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_1Alpha = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 204, Green = 204, Blue = 204, },
							CtrlWShown = false,
							NameSet = true,
						},
						CCV_1Red = LUTBezier {
							KeyColorSplines = {
								[0] = {
									[0] = { 0, RH = { 0.000899585132503567, 0.333333333333333, }, Flags = { Linear = true, }, },
									[0.0026987553975107] = { 1, LH = { 0.00179917026500713, 0.666666666666667, }, RH = { 0.33513250359834, 1, }, Flags = { Linear = true, }, },
									[1] = { 1, LH = { 0.66756625179917, 1, }, Flags = { Linear = true, }, },
								},
							},
							SplineColor = { Red = 255, Green = 52, Blue = 52, },
							CtrlWShown = false,
							NameSet = true,
						},
					},
				},
				UNPREMULT_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 7, },
						ToRed = Input { Value = 3, },
						ToGreen = Input { Value = 3, },
						ToBlue = Input { Value = 8, },
						Background = Input {
							SourceOp = "GrowColorA_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "GrowColorA_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 123.75, 575.39, }, },
				},
				multRGB_2 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 6, },
						Background = Input {
							SourceOp = "InRGB_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "Keyedgeblur_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -398.75, 577.05, }, },
				},
				GrowColorA_1 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						LockXY = Input { Value = 0, },
						XBlurSize = Input { Value = 5, },
						YBlurSize = Input { Value = 2, },
						Input = Input {
							SourceOp = "multRGB_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -123.75, 445.05, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				multRGB_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 6, },
						Background = Input {
							SourceOp = "InRGB_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "cAlpha_1",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -123.75, 379.05, }, },
				},
				cAlpha_1 = BitmapMask {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1, }, },
						ClippingMode = Input { Value = FuID { "None", }, },
						Image = Input {
							SourceOp = "subtractMS_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 379.05, }, },
				},
				subtractMS_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 2, },
						Background = Input {
							SourceOp = "insideblur_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "OutsideBlur_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 68.75, 344.39, }, },
				},
				Keyedgeblur_1 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XBlurSize = Input { Value = 0, },
						Input = Input {
							SourceOp = "KeyedgeErode_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -371.25, 516.95, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				insideblur_1 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XBlurSize = Input { Value = 0, },
						Input = Input {
							SourceOp = "SubDilate_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 123.75, 241.15, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				OutsideBlur_1 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XBlurSize = Input { Value = 0, },
						Input = Input {
							SourceOp = "Masterdilate_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 13.75, 241.15, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				KeyedgeErode_1 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "cAlpha_2",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -371.25, 483.95, }, },
				},
				SubDilate_1 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XAmount = Input { Value = 0.0005, },
						Input = Input {
							SourceOp = "Masterdilate_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 123.75, 175.15, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				cAlpha_2 = BitmapMask {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Invert = Input { Value = 1, },
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1, }, },
						ClippingMode = Input { Value = FuID { "None", }, },
						Image = Input {
							SourceOp = "Masterdilate_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -371.25, 422.19, }, },
				},
				Masterdilate_1 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XAmount = Input { Value = 0.003, },
						YAmount = Input { Value = 0.003, },
						Input = Input {
							SourceOp = "INVERTER_1",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 13.75, 142.15, }, },
					Colors = {
						TileColor = { R = 1, G = 0.498039215686275, B = 0, },
						TextColor = { R = 0, G = 0, B = 0, },
					},
				},
				InRGB_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToRed = Input { Value = 4, },
						ToGreen = Input { Value = 4, },
						ToBlue = Input { Value = 4, },
						ToAlpha = Input { Value = 16, },
						Background = Input {
							SourceOp = "Loader1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -563.75, 280.05, }, },
				},
				InAlpha_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToRed = Input { Value = 8, },
						ToGreen = Input { Value = 8, },
						ToBlue = Input { Value = 8, },
						ToAlpha = Input { Value = 8, },
						Background = Input {
							SourceOp = "Background1_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 13.75, 10.15, }, },
				},
				INVERTER_1 = BitmapMask {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						MaskWidth = Input { Value = 2048, },
						MaskHeight = Input { Value = 1152, },
						PixelAspect = Input { Value = { 1, 1, }, },
						ClippingMode = Input { Value = FuID { "None", }, },
						Image = Input {
							SourceOp = "InAlpha_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 82.05, }, },
				},
				ED_5 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XAmount = Input { Value = 0.0009309, },
						Input = Input {
							SourceOp = "subtractMS_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -123.75, 808.05, }, },
				},
				Over_2 = Merge {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						PerformDepthMerge = Input { Value = 0, },
						Background = Input {
							SourceOp = "BLUR_3",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "multRGB_2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -398.75, 1369.05, }, },
				},
				PostDefocus_1 = Defocus {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XDefocusSize = Input { Value = 0, },
						Input = Input {
							SourceOp = "Over_2",
							Source = "Output",
						},
						EffectMask = Input {
							SourceOp = "Mrg_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -233.75, 1534.05, }, },
					Colors = { TileColor = { R = 1, G = 0.498039215686275, B = 0, }, },
				},
				Mrg_1 = Merge {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						PerformDepthMerge = Input { Value = 0, },
						Background = Input {
							SourceOp = "ED_5",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "BLUR_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -123.75, 940.05, }, },
				},
				BLUR_1 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "ED_5",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 874.05, }, },
				},
				BLUR_3 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XBlurSize = Input {
							Value = 4.5,
							Expression = "GrowColorB_1.XBlurSize*0.45",
						},
						Input = Input {
							SourceOp = "Over_1",
							Source = "Output",
						},
						EffectMask = Input {
							SourceOp = "multAlpha_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 1369.05, }, },
					Colors = { TileColor = { R = 0, G = 0.498039215686275, B = 0.745098039215686, }, },
				},
				setAlpha_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						ToRed = Input { Value = 8, },
						ToGreen = Input { Value = 8, },
						ToBlue = Input { Value = 8, },
						ToAlpha = Input { Value = 8, },
						Background = Input {
							SourceOp = "Over_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 41.25, 1303.05, }, },
					Colors = { TileColor = { R = 0, G = 0.498039215686275, B = 0.745098039215686, }, },
				},
				ED_6 = ErodeDilate {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XAmount = Input {
							Value = 0.007,
							Expression = "GrowColorB_1.XBlurSize*0.0007",
						},
						Input = Input {
							SourceOp = "multRGB_3",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 1105.05, }, },
					Colors = { TileColor = { R = 0, G = 0.498039215686275, B = 0.745098039215686, }, },
				},
				BLUR_2 = Blur {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						XBlurSize = Input {
							Value = 10,
							Expression = "GrowColorB_1.XBlurSize",
						},
						Input = Input {
							SourceOp = "ED_6",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 1138.05, }, },
					Colors = { TileColor = { R = 0, G = 0.498039215686275, B = 0.745098039215686, }, },
				},
				multAlpha_1 = ChannelBoolean {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Operation = Input { Value = 6, },
						Background = Input {
							SourceOp = "BLUR_2",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "setAlpha_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -13.75, 1336.05, }, },
					Colors = { TileColor = { R = 0, G = 0.498039215686275, B = 0.745098039215686, }, },
				},
			},
		},
		Background1_1 = Background {
			Inputs = {
				Width = Input { Value = 953, },
				Height = Input { Value = 663, },
				TopLeftRed = Input { Value = 1, },
				TopLeftGreen = Input { Value = 1, },
				TopLeftBlue = Input { Value = 1, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1, },
							[1] = { 1, 1, 1, 1, },
						},
					},
				},
				EffectMask = Input {
					SourceOp = "Polygon1_1",
					Source = "Mask",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, 181.5, }, },
		},
		Polygon1_1 = PolylineMask {
			DrawMode = "ModifyOnly",
			DrawMode2 = "InsertAndModify",
			Inputs = {
				BorderWidth = Input { Value = 0.005, },
				Solid = Input { Value = 0, },
				MaskWidth = Input { Value = 2048, },
				MaskHeight = Input { Value = 1556, },
				PixelAspect = Input { Value = { 1, 1, }, },
				ClippingMode = Input { Value = FuID { "None", }, },
				Polyline = Input {
					SourceOp = "Polygon1_1Polyline",
					Source = "Value",
				},
				Polyline2 = Input {
					Value = Polyline {
					},
					Disabled = true,
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, 214.5, }, },
		},
		Polygon1_1Polyline = BezierSpline {
			SplineColor = { Red = 173, Green = 255, Blue = 47, },
			NameSet = true,
			KeyFrames = {
				[0] = { 0, Flags = { Linear = true, LockedY = true, }, Value = Polyline {
						Points = {
							{ Linear = true, X = -0.176195115558471, Y = 0.666445842297872, RX = -0.141163365312797, RY = -0.444119451169982, },
							{ Linear = true, X = -0.599685211496863, Y = -0.665912511212074, LX = 0.141163365312797, LY = 0.444119451169982, RX = 0.019237504071312, RY = -0.0108094500080912, },
							{ Linear = true, X = -0.541972699282927, Y = -0.698340861236348, LX = -0.019237504071312, LY = 0.0108094500080912, RX = 0.172787681861737, RY = 0.4683257831947, },
							{ Linear = true, X = -0.0236096536977156, Y = 0.706636488347751, LX = -0.172787681861737, LY = -0.4683257831947, RX = 0.104931790207067, RY = -0.0248868763296972, },
							{ Linear = true, X = 0.291185716923487, Y = 0.63197585935866, LX = -0.104931790207067, LY = 0.0248868763296972, RX = -0.208814262082503, RY = -0.417043735508705, },
							{ Linear = true, X = -0.335257069324021, Y = -0.619155347167457, LX = 0.208814262082503, LY = 0.417043735508705, RX = 0.0248338559179216, RY = -0.0140774248232489, },
							{ Linear = true, X = -0.260755501570256, Y = -0.661387621637203, LX = -0.0248338559179216, LY = 0.0140774248232489, RX = 0.230675061262334, RY = 0.415786822487086, },
							{ Linear = true, X = 0.431269682216744, Y = 0.585972845824056, LX = -0.230675061262334, LY = -0.415786822487086, },
						},
					}, },
			},
		},
	},
}

User avatar
Farmfield
Fusionista
Posts: 366
Joined: Tue Feb 10, 2015 2:16 am
Location: Goteborg - Sweden
Contact:

Re: Removing wires

#11

Post by Farmfield » Tue Sep 22, 2015 4:45 pm

Norton Antiwires?

LOL, sorry, couldn't resist - almost 2 am here, I'm easily amused this time of night. :D

User avatar
Kristof
Fusionista
Posts: 790
Joined: Thu Aug 07, 2014 1:30 pm
Answers: 2
Been thanked: 24 times

Re: Removing wires

#12

Post by Kristof » Wed Sep 23, 2015 2:54 am

Hehe, I can appreciate that kind of humor. A French speaking colleague changed the name of the Ariston boiler in the kitchen to Ariston Ford, which made me chuckle. :)

User avatar
Dunn
Moderator
Posts: 494
Joined: Mon Aug 04, 2014 4:27 am
Location: Hamburg, Germany
Been thanked: 7 times
Contact:

Re: Removing wires

#13

Post by Dunn » Wed Sep 23, 2015 3:03 am

Kristof wrote:I wrote a macro called edgeExtrude that creates vectors based on a matte and smudges the pixels accordingly.
Wow! Awesome macro Kristof! Add it to my tool set. Thanx for sharing it ;)

User avatar
Kristof
Fusionista
Posts: 790
Joined: Thu Aug 07, 2014 1:30 pm
Answers: 2
Been thanked: 24 times

Re: Removing wires

#14

Post by Kristof » Wed Sep 23, 2015 3:15 am

You're welcome, Dunn. :) I need to update it and use Originalwidth and height to make sure it works in proxy mode. On a bigger canvas, you need to crank up the scale way up. I made this for adding DOF and fill in areas with color values that are only part of the "background".

I think I shared it on the pigsfly forum back in the day too.

User avatar
fusioner
Posts: 6
Joined: Tue Aug 05, 2014 8:14 pm
Location: India

Re: Removing wires

#15

Post by fusioner » Wed Sep 23, 2015 8:31 pm

Thanks Kristof for Macro. its save lot of time..