Between Grade and VFX

I recently worked on the color grade for the feature film The Runaways. There were a few areas where changes were discussed with the client that went beyond your typical color grading tasks and fall more in the realm of visual effects. I had the opportunity to work with advanced VFX software to work out fixes for three of these.

Aging an Actor

The most fascinating of these was the need to age one of the actors in several shots as they were filmed several years before the rest of the coverage and this age gap wasn't part of the story. I did some reasearch online on the changes to the human face and experimented with these. 


The changes were made with SilhouetteFX and Resolve. In Silhouette a pin-warp node helped elongate the face, pinch the nose and open the eyes. The face was tracked with a planar tracker linked to the pin warp to make sure the warp effect was honoring face movements.


(pin warp and overall nodegraph in SilhouetteFX)

(node graph in Resolve putting all the external mattes together)

In addition the SilhouetteFX roto tools were used to create external mattes for all the key sections of the face, including lips, eyeshadows, cheeks, and forehead so they could be re-colored separately and adjust the make-up to be more in line with the rest of the shots - specifically in the eye shadow and the lips.

And finally, the SilhouetteFX paint node along with a Mocha tracker and auto-paint was used to remove all the acne in the face to avoid having to soften the image too much to smoothen the skin for an older appearance.

In the process I got to learn about the SilhouetteFX software which has some really amazing features. The paint node is the only clone brush I have found that allows for complex inter-frame painting, cloning from neighboring frames and also grading and warping the clone source of a neighboring face while matching everything.

Complex Dust Busting

Another set of clips had some lens dust on them. Generally that's not a huge problem, and Resolve has tools to deal with that. Except in this case the dust was smack in the actors face and was moving around with her movement, traversing her neckline, and moving over her mouth and nose, delicate borders where the usual clone & blend just creates a mess without more individualized control.


(left actor, in this frame dust spot is center of cheek)

I had tried numerous tools from Resolve Patch to other automated tools, and to paining frame-by-frame in Photoshop. Nothing would really be satisfactory when the spot moved over the boundary areas, or was creating too obvious a clean-up.

So it was fortuante that I listened to the webinar on the new release of Mocha Pro 2019 and its remove tool. I was familair with the Mocha tracker but not the remove tool. It was clear that this cleanup would require significant cleanplates. And while Silhouette can handle cleanplates and cloning from a single cleanpalte to multiple frames to avoid the boiling of just cloning the frame by frame, it's a very complex node tree that is very manual. Mocha Pro's remove tool makes it every easy to work with numerous clean plates and then blending the frames in between. Out of the 200 some odd frames, I think I ended up sing 40 clean plates and the rest was blended together and automated.

Recoloring Hair

The last of the problems involved some hair coloring. There were several clips where the hair color was off and too dull, mostly due to lighting on set. But in one scene the actress' hair color is part of the dialog, so it was important to get it closer. The attempts to to key the hair were unsatisfactory because there were too many similar tones in the frame. And constraining the key with a tracked power window in Resolve was still not getting me quite there.

Since I had just worked with Mocha Pro 2019 on the remove tool, I created an external matte for the hair that was much more accurate. By using multiple tracked rotos for the hair and bouncing locks, while also exclusing the hair band, making full use of the planar nature Mocha, I got a detailed matte within a reasonable amount of time.


Screenshot of Mocah Pro drawing the different roto masks.

In the end it takes a lot of tools to work together to make this all happen. A fun but very time consuming endavour. And a reminder that while 'fix it in post' is often possible, a few minutes on set to fix something can spare hours in post to work around it. Fixing it on set is always the preferred option, unless it's literally impossible or it means not getting the shot at all due to other constraints.

A Well Formatted End Crawl

A basic end crawl can be done with built-in title generators in Resolve or Premiere. 

But formatting a complex and good looking end crawl can be an exercise in frustration. After several different attempts I settled on designing it in Illustrator and animating it in Fusion.

Using Fusion gives more control over the timing and animation. Yet the text controls in Fusion are also limited. Nothing really comes close to a real design application like Illustrator when you need font and placement control.

So it starts with a vertically oversized artboard with transparent background. A layer of black can be added for ease of formatting and then disabled prior to export. For this endcrawl the text object was about 8,000px tall:

That is then exported as a transparent PNG image and imported into a Fusion comp via loader:


The trick to a good render of an end crawl is to animate it at an even multiple of pixels per frame. So a bit of math is required. In this case we wanted to the end crawl to finish just under one minute. At 23.976 frame rate and an animation height of 8,043px the closest multiple to stay within one minute was 1/7th, which gets to 1,149 frames on the comp timeline. Rounded up to 1,170 to let it run a few extra frames to allow the last line to end in the middle of the screen rather than at the bottom.

The animation then happens by adding a transform tool and setting the Y center as an expression of frame number and 1/x of the frame count:  Point(0.5,time * 0.0008547008547 - 0.5).

That advances the animation 7 pixels at every frame. It's actually quite fast, but getting such a long end crawl into less than a minute ends up in a fast crawl.

Render out and then bring into the NLE for final assembly.


The other challenges - finding fonts that render well on different screens and resolution. This endcrawl uses a one pretty thin font which leads to uneven anti-aliasing on smaller screens. Word is that at times different end crawl fonts have to be rendered for different screens. Which is why people build an entire business around this: https://endcrawl.com/.


Recreating Sky

On a recent grade I was faced with sizeable number of clips who had blown out sky and that needed to be made look good. If the sky is just peaking through in a few places, bringing down exposure and adding some color may be enough. But if the sky is prominent in the shot the lack of any texture will be glaring.

For one clip in I went down a more complicated path and it was worth it because it was one clip the client upon review called out as being beautiful.

This is the final clip, nicely highlighting the parrot in full color:

This is what the original footage looked like:


This type of work is beyond what can be easily done with Resolve and effects. So I used Fusion Connect to bring this clip into VFX software where it's easier to layer different parts together. The first step was to put a luma keyer on it to isolate the blown out sky:


Then I used the DaySky tool which can create a natural looking sky by date and latitutde/longtitude. But it's a blue sky with horizon color distortions. For a bit more realism I threw in some fast noise to create moving clouds, do some color tweaking and merge it with the keyed clip:


A little color and exposure matching in Resolve, a tracked vignette on the main bird, and things look a lot better...