Nodes

Nodes are used to represent all forms of computation in Noise Pilot. Nodes are connected by dragging edges between input and output handles.

Diagram showing input and output handles on a node

The data that a node outputs is sent to the input of whatever handle it is connected to.

Some handles have types, and handles can only be connected if they share a type. For example, if a node outputs an image, it can only be connected to handles that accept images.

Handle Types
Image
Prompt
Constant
Any

Any is a special handle type that will accept any type of input. If a node has input handles with type Any, they usually output the same type that is passed in.

Data

Data nodes are used for managing and inputting data into Noise Pilot.

Gaussian Noise

Inputs Outputs
  Out: Image

Generates an Image of pure random noise. This is often used as a starting point for diffusion, or to be blended into images when doing partial diffusion.

Sample Gaussian Noise image

Constant

Inputs Outputs
  Out: Constant

Represents numbers. These will generally be whole numbers, not decimal.

Prompt

Inputs Outputs
  Out: Prompt

Prompts are entered as strings of text.

Parameters

Parameter nodes are only useful when used with groups. The groups page contains a description of the Parameter (Input) and Parameter (Output) nodes.

Math

Math nodes allow you to do math operations on data. Most of the time math nodes accept any type of input. Some combination of input data types might result in errors.

Add

Inputs Outputs
In 1: Any Out: Any
In 2: Any  

Adds the two inputs.

Subtract

Inputs Outputs
In 1: Any Out: Any
In 2: Any  

Subtracts In 2 from In 1.

Out = In_1 - In_2

Multiply

Inputs Outputs
In 1: Any Out: Any
In 2: Any  

Multiplies the two inputs.

Out = In_1 * In_2

Divide

Inputs Outputs
In 1: Any Out: Any
In 2: Any  

Divides In 1 by In 2.

Out = In_1 / In_2

Square Root

Inputs Outputs
In: Any Out: Any

Takes the square root of the input.

Out = sqrt(In)

If an image is passed in, the square root of each pixel of the image is taken.

Operations

Operations represent image manipulation functions. These all only operate on image data.

Vertical Flip

Inputs Outputs
In: Image Out: Image

Flips the input image vertically

An image showing the results of a vertical flip

Linear Interpolate

Inputs Outputs
Image: Image Out: Image
Image: Image  
Alpha: Constant  

Blends between the two image inputs. If the Alpha parameter is 0, the output is complete the first image. If it is 1, the output is completely the second.

An image showing the results of a vertical flip

Blend

Inputs Outputs
A: Image Out: Image
B: Image  

Blend is a simple case of Lerp. It performs the same function, but the alpha is locked to 0.5 (blends each image 50/50).

Example of the blend node in use

Apply Mask

Inputs Outputs
Image: Image Out: Image
Image: Image  
Mask: Image  

Blends two images using a mask. The first input becomes the black part of the mask, and the second input becomes the white part.

Example of the mask node in use

Gaussian Blur

Inputs Outputs
Image: Image Out: Image
Sigma: Constant  

Blurs an image. The sigma parameter controls the strength of the blur.

Example of the blur node in use

Roll Image

Inputs Outputs
Image: Image Out: Image
X: Constant  
Y: Constant  

Shifts an image by the X and Y input values. The parts of the image that are shifted outside of the image bounds are copied to the other side of the image.

Example of the roll image node in use

Image to Channels

Inputs Outputs
Image: Image R: Image
  G: Image
  B: Image

Splits an image into 3 grayscale images, one for each of the R, G, and B channels.

Example of the image to channel node in use

Channels to Image

Inputs Outputs
R: Image Image: Image
G: Image  
B: Image  

Takes the R, G, and B channels of the inputs and combines them into a single image.

Example of the channels to image node in use

Grayscale

Inputs Outputs
Image: Image Grayscale: Image

Converts and RGB image into a Grayscale image. A grayscale image is still 3 channels, but each channel has the same values.

Example of the grayscale node in use

Upscale Image

Inputs Outputs
Image: Image Out: Image
Prompt: Prompt  

Uses a diffusion model to upscale a low resolution image to a high resolution image.

We recommend only using this at the end of your graph. Running the upscaler can take a long time (~30 seconds).

Example of the upscale image node in use

File

File nodes are useful when doing with file input and output. If you want to load files off of your local machine, you will need a file node.

Load Image

Inputs Outputs
  Image: Image

Loads an image from your local machine for use within Noise Pilot. To load the image, drag it from a folder on your computer into the target on the node.

Demonstration of the load image node

Display Image

Inputs Outputs
Image: Image  

Displays an image in the lower right corner of Noise Pilot. This is useful for visualizing the progress of your creations.

Debug Image

Inputs Outputs
Image: Image  

Similar to Display Image, but this shows the image on the node itself. This is useful when debugging what is happening at various parts of your graph.

Paint Image

Inputs Outputs
Image: Image  

Simple painting tool that can be used to draw masks or rough drawings. Double click the node to open the painting interface.

Demonstration of using Paint Image

Denoise

The denoise nodes perform functions related to the denoising process. These are essential for utilizing the diffusion model. See Iterative Denoise for more information on how the denoising process works.

Current Estimate

Inputs Outputs
  Image: Image

Outputs the current estimated image for a denoising process. This is necessary for doing noise to image diffusion. Iterative diffusion is a looping process that contually refines an image by taking noise away, and this node represents the current estimated image.

Estimate Noise

Inputs Outputs
Image: Image Noise: Image
Prompt: Prompt  
CFG Scale: Scalar (optional)  

This node calls the diffusion model which predicts the current noise in the image. The Image input should contain a noisy image, and the Prompt input instructs the diffusion model how to predict noise. The output is a noise estimate.

The optional CFG Scale input controls the strength of classifier-free guidance. Higher values produce images that more closely match the prompt, while lower values allow more variation. If not connected, the default value of 7 is used.

Remove Noise

Inputs Outputs
Image: Image Image: Image
Noise: Image  

Given the current estimate image, and an estimate of the noise within that image, attempt to subtract some of that noise from the estimate. This produces an image that is slightly closer to the desired image.

Next Estimate

Inputs Outputs
Image: Image  

Use this at the end of an iterative loop, to set the Current Estimate for the next time the loop runs. This node “connects” to Current Estimate behind the scenes, so you can think of this node as pushing the input value into the Current Estimate node.

Inject Noise

Inputs Outputs
Image: Image Out: Image
t: Constant  

Sometimes it is useful to add noise to an image. Use this node if you are adding noise outside of an iterative denoise process. The t parameter will scale how much noise is being added, based on the expectations of the diffusion model.

For instance, if you want to only partially diffuse an image, you can add noise for some t value, and then start the denoise process at that same t value.

Inject Current Noise

Inputs Outputs
Image: Image Out: Image

If you want to inject noise to an image during an iterative denoise loop, use this variable. It will use the current t value for the stage of iteration that you are on.

Group

Group nodes are nodes that contain their own graph. See more details of how to use them on the Groups page.

Every workspace comes with one group node pre-defined to handle iterative denoise for the workspace.

Iterative Denoise

Inputs Outputs
Initial Image: Image Result: Image
t_start: Constant  
t_end: Constant  
Prompt: Prompt  

The Intial Image parameter represents the starting point for the process. This is the first point of the walk through the diffusion process.

t_start and t_end represent the starting and stopping points for the walk, ranging from 0 to 32. If t_end is left blank, it will walk all the way to the end.

Prompt is a parameter (input) node that lets you input a parameter into the diffusion process.

Inside of the Iterative Denoise group is the following graph

iterative denoise graph

For more details on how this graph works and how it maps to the diffusion process, see the Iterative Denoise page.