Paint with Frequency Separation in Resolve

Learn how to paint with color separately from details or texture to retouch and clean up a video clip in DaVinci Resolve using this powerful frequency separation technique, which professional VFX artists use. Follow along with the footage in the cutting club. You’ll learn how to paint a clean plate without Photoshop or Affinity.

The five chapters for this workflow are:

  1. Planar Tracking - to match move a modified freeze frame

  2. Frequency Separation Setup - so we can paint color separate from texture or detail

  3. Color Paint

  4. Texture Paint using Copy Polyline instead of a brush

  5. Multiply Mask, apply Planar Transform, and Merge

DaVinci Resolve Fusion Frequency Separation Node Tree


Planar Tracking

Step one is to create tracking data using the planar tracker that will be used to match move a freeze frame. The planar tracker works off of a single reference frame, so that should be a frame you intend to paint on because all motion is distorted from that frame. I like to choose the sharpest and largest area for the reference frame and perpendicular to the camera. Click the set button on the reference frame, and draw a polygon shape around texture that exists on the same physical plane (make sure not to include shadows, reflections, or foreground occlusions).

After completing the track in both directions, click the create planar transform button in the inspector to bake out the tracking data for use on the freeze frame. At this point, the planar tracker node is no longer needed.

To create a Frame Hold, Freeze Frame, use the Time Speed node with your playhead parked on the reference frame used for planar tracking and click “freeze frame” in the inspector. This will hold the same frame for the entire duration of the fusion composition.

Frequency Separation Setup

Step two is to isolate the higher-frequency pixel data from the lower-frequency data. The higher-frequency data contains the details and texture, and the lower frequency holds more of the image's overall color. To isolate the high-frequency information, create a blur node and a channel booleans node set to subtract (with alpha doing nothing). You will subtract the blurred version from the original still freeze frame. Pull another output from the TimeSpeed freeze frame to manipulate the color frequencies - the color can either be aggressively blurred or, in our case with this freeze frame, painted with a paint node using color samples.

Color Paint

To paint with color samples, create a new paint node that branches off from the freeze frame. Load the node into the viewer, and with it selected, click the stroke tool in the tool list above the viewer so that all paint strokes apply to all frames. To sample and start brushing, use the option or alt-click the image to sample a color and paint like an artist. The goal is to get overall color values to blend and match the original plate, but you usually don’t have to get too precise.

Texture Paint

To paint and clone with the high-frequency texture details, create a new paint node that branches off of the channel booleans doing the subtract, minus operation. oad this paint into the viewer, but this time, consider using the copy polyline tool. opy polyline allows you to click to draw out an area with a polygon and then move the source in the inspector for the area it is cloning (or copying/pasting) from.

The copy polyline information is stored as modifiers in the paint inspector tool, and one is built on top of the other.

After the texture and color paint are complete, combine both streams with a simple add operation using another Channel Booleans tool. The order for this add operation or the colors piped into the node do not matter because addition is commutative.

Multiply Mask & Planar Transform

Finally, you will need to isolate your cleaned-up patch—the “clean plate.” A great way to mask out the cleaned-up area is with a polygon tool connected to a brightness contrast node with the inspector set to “multiply by mask.” Multiply by mask multiplies the black alpha values that are zero and removes all RGB color values where the mask is zero—it’s doing literal multiplication to create transparency!

The rest of the flow is as simple as using a merge to merge the cleaned-up still frame over the original footage, inserting the planar transform right before the merge of the clean plate (you can hold shift to insert a node), and then sending the final merge back to MediaOut1 for viewing and rendering on the edit page timeline.

Next
Next

Save Magic Mask 2 in Resolve 20