Kronos

Kronos (NukeX and Nuke Studio only) is a retimer, designed to slow down or speed up footage. It works by calculating the motion in the sequence in order to generate motion vectors, which in turn, enables you to generate an output image at any point in time throughout the sequence by interpolating along the direction of the motion. Kronos also contains a number of controls to allow you to trade off render time versus accuracy of vectors.

See also OFlow, TimeWarp, and Retime.

Inputs and Controls

Connection Type

Connection Name

Function

Input

FgVecs

BgVecs

 

If the motion in your input sequence has been estimated before (for example, using VectorGenerator), you can supply one or more vector sequences to Kronos to save processing time.

Note:  The BgVecs input appears as an arrowhead on the side of the node.

MoSrc

An alternate Motion Source input, for example, if your Source sequence is very noisy and interfering with the motion estimation.

Matte

An optional matte of the foreground, which may improve the motion estimation by reducing the dragging of pixels that can occur between foreground and background objects.

Source

The sequence to retime.

Control (UI)

Knob (Scripting)

Default Value

Function

Kronos Tab

Local GPU

gpuName

N/A

Displays the GPU used for rendering when Use GPU if available is enabled. Local GPU displays Not available when:

Use CPU is selected as the default blink device in the Preferences.

no suitable GPU was found on your system.

it was not possible to create a context for processing on the selected GPU, such as when there is not enough free memory available on the GPU.

You can select a different GPU, if available, by navigating to the Preferences and selecting an alternative from the default blink device dropdown.

Note:   Selecting a different GPU requires you to restart Nuke before the change takes effect.

Use GPU if available

useGPUIfAvailable

enabled

When enabled, rendering occurs on the Local GPU specified, if available, rather than the CPU.

Note:  Enabling this option with no local GPU allows the script to run on the GPU whenever the script is opened on a machine that does have a GPU available.
You should also select this if you wish to render from the command line with the --gpu option.

See Windows, Mac OS X and macOS, or Linux for more information on the GPUs Nuke supports.

Input Range

input.first

N/A

The first frame of input to use.

When you first create the node, this is automatically set to the first frame of the Source clip. After that, it is only updated if you click Reset.

input.last

N/A

The last frame of input to use.

When you first create the node, this is automatically set to the last frame of the Source clip. After that, it is only updated if you click Reset.

Reset

resetInputRange

N/A

Resets Input Range to the frame range of the current Source input. This can be useful if the clip in the Source input has changed.

Channels

retimedChannels

all

Sets the channels affected by the retime.

Method

interpolation

Motion

Sets the interpolation algorithm to use:

Frame - the nearest original frame is displayed.

Blend - a mix between two frames is used for the in-between frame. This is quick to render and is useful when tweaking the timing on a curve before setting the method to motion.

Motion - vector interpolation is used to calculate the in-between frame.

Timing

timing2

Output Speed

Sets how to control the new timing of the clip:

Output/Input Speed - describes the retiming in terms of overall output duration. For example, double speed halves the duration of the clip and half speed doubles the duration of the clip.

Frame - describes the retiming in relative terms, for example, ’at frame 100 in the output clip, display frame 50 of the source clip‘. You’ll need to set at least 2 key frames for this to retime the clip.

Output Speed

timingOutputSpeed

0.5

This control is only active if Timing is set to Output Speed.

Values below 1 slow down the clip and vice versa. For example, to slow down the clip by a factor of two (half speed), set this value to 0.5.

Note:  Retimes can be difficult to control using Output Speed, because you're retiming output frames. Altering a keyframe alters the relative position of all later frames. However, Output Speed keyframes do allow you to use negative speed values, unlike Input Speed retimes.

Input Speed

timingInputSpeed

0.5

This control is only active if Timing is set to Input Speed.

Values below 1 slow down the clip and vice versa. For example, to slow down the clip by a factor of two (half speed), set this value to 0.5.

Note:  Retimes can be easier to control using Input Speed, because keyframes are set against the source frames, rather than the output frames. However, Input Speed keyframes do not allow you to use negative speed values, unlike Output Speed retimes.

Frame

timingFrame2

1

This control is active only if Timing is set to Frame.

Use this to specify the source frame at the current frame in the timeline. For example, to slow down a 50 frame clip by half, key the Frame to 1 at frame 1 and the Frame to 50 at frame 100.

Motion

motionEstimation

Dependent on script

Sets the method of calculating motion estimation vectors:

Local - uses local block matching to estimate motion vectors. This method is faster to process, but can lead to artifacts in the output. This option is for legacy compatibility.

Regularized - uses semi-global motion estimation to produce more consistent vectors between regions.

Note:  Scripts loaded from previous versions of Nuke default to Local motion estimation for backward compatibility. Adding a new Kronos node to the Node Graph defaults the Method to Regularized motion estimation.

Vector Detail

vectorDetail

0.3

Adjust this to vary the density of the vector field. A value of 1 generates a vector at each pixel, whereas a value of 0.5 generates a vector at every other pixel.

Higher values pick up finer movement, but also increase processing time.

Strength

strength

1.5

This control is only active if Method is set to Regularized.

Sets the strength in matching pixels between frames. Higher values allow you to accurately match similar pixels in one image to another, concentrating on detail matching even if the resulting motion field is jagged. Lower values may miss local detail, but are less likely to provide you with the odd spurious vector, producing smoother results.

Note:  The default value should work well for most sequences.

Smoothness

smoothness

0.5

This control is only active if Method is set to Local.

A high smoothness can miss lots of local detail, but is less likely to provide you with the odd spurious vector, whereas a low smoothness concentrates on detail matching, even if the resulting field is jagged.

Note:  The default value should work well for most sequences.

Resampling

resampleType

Bilinear

Sets the type of resampling applied when retiming:

Bilinear - the default filter. Faster to process, but can produce poor results at higher zoom levels. You can use Bilinear to preview a retime before using one of the other resampling types to produce your output.

Lanczos4 and Lanczos6 - these filters are good for scaling down, and provide some image sharpening, but take longer to process.

Shutter

Shutter Samples

shutterSamples

1

Sets the number of in-between images used to create an output image during the shutter time. Increase this value for smoother motion blur, but note that it takes much longer to render.

Shutter Time

shutterTime

0

Sets the equivalent shutter time of the retimed sequence. For example, a shutter time of 0.5 is equivalent to a 180 degree mechanical shutter, so at 24 frames per second the exposure time will be 1/48th of a second.

Imagine a gray rectangle moving left to right horizontally across the screen. The figures below show how Shutter Time affects the retimed rectangle.

Automatic Shutter Time

autoShutterTime

disabled

When enabled, Kronos automatically calculates the shutter time throughout the sequence.

Note that this only produces motion blur when the retimed speed is greater than the original speed.

Output

output

Result

Sets the final output display for the retimed image. Selecting anything other than Result is only useful when a Matte Channel is used.

Result - displays the retimed Source image.

Matte - displays the retimed Matte input.

Foreground - displays the retimed foreground. The background regions outside the matte input may show garbage.

Background - displays the retimed background. The foreground regions inside the matte input may show garbage.

Matte Channel

matteChannel

None

Where to get the (optional) foreground mask to use for motion estimation:

None - do not use a matte.

Source Alpha - use the alpha of the Source input.

Source Inverted Alpha - use the inverted alpha of the Source input.

Matte Luminance - use the luminance of the Matte input.

Matte Inverted Luminance - use the inverted luminance of the Matte input.

Matte Alpha - use the alpha of the Matte input.

Matte Inverted Alpha - use the inverted alpha of the Matte input.

Advanced

Flicker Compensation

flickerCompensation

disabled

When enabled, Kronos takes into account variations in luminance and overall flickering, which can cause problems with your output.

Examples of variable luminance include highlights on metal surfaces, like vehicle bodies, or bodies of water within a layer that reflect light in unpredictable ways.

Note:  Using Flicker Compensation increases rendering time.

Legacy Mode

legacymodeNuke9

Dependent on Nuke version

Scripts loaded from previous versions of Nuke default to Legacy Mode for backward compatibility. Adding a new Kronos node to the Node Graph hides this control.

When enabled, Kronos reverts to the legacy method for calculating Output Speed using the Local motion estimation method.

Advanced > Tolerances

Weight Red

weightRed

0.3

For efficiency, much of the motion estimation is done on luminance only - that is, using monochrome images. The tolerances allow you to tune the weight of each color channel when calculating the image luminance. These parameters rarely need tuning. However, you may, for example, wish to increase the red weighting Weight Red to allow the algorithm to concentrate on getting the motion of a primarily red object correct, at the cost of the rest of the items in a shot.

Weight Green

weightGreen

0.6

Weight Blue

weightBlue

0.1

Vector Spacing

vectorSpacing

20

Sets the spacing between motion vectors displayed on the Viewer when Overlay Vectors is enabled. The default value of 20 means every 20th vector is drawn.

Overlay Vectors

showVectors

disabled

When enabled, the motion vectors are displayed in the Viewer. Forward motion vectors are drawn in red, and backward motion vectors in blue.

Note:  Motion vectors displayed in the Viewer are added to your output if you don’t turn off the overlay before rendering.

Step-by-Step Guides

Kronos