



This is a collection of some image processing nodes that I have written both
for my own use and curiosity.
The resampling nodes handle resizing images using nearest-neighbour and
filter-based resampling methods. The process of resampling can be applied to
images, masks, and latents. This is done through the use of one of the base
resampling nodes:
These nodes takes an input as well as a *resampler* and *scaler*. The
*resampler* provides the resampling method to be used for resampling, and the
*scaler* provides the method for determining the size of the output.
We provide the following *resampler*s:
We provide the following *scaler*s:
| Scaler | Description |
|-|-|
| Scaler \| Side | Scale both sides by a single multiplier. |
| Scaler \| Sides Unlinked | Scale each side by their own multiplier. |
| Scaler \| Fixed | Scale the image to a fixed resolution. |
| Scaler \| Pixel Deltas | Each side has a delta added to their length. |
| Scaler \| Area | Scale the area of the image by a multiplier while maintaining the aspect-ratio of the image. |
| Scaler \| Megapixels | Scale the area of the image to a set number of megapixels while maintaining the aspect-ratio of the image. |
The Color Grading node provides the following color grading operations:
| Operation | Associated Input |
|-|-|
| *Color Filter* | red, green, blue |
| *Exposure Adjustment* | exposure |
| *Saturation Adjustment* | saturation |
| *Contrast Adjustment* | contrast |
| *Tonemapping* | tonemap |
Each of the color grading operations in done in a HDR colorspace, which is why
a final tonemapping operation is required to return the image to an SDR
colorspace.
The inpainting nodes provide the operation necessary for mask-crop inpainting,
i.e. inpainting where you crop to some bounding box around the to-be-inpainted
area before running it through the model. The two main nodes are **Mask-Crop
Inpaint \| Pre and Mask-Crop Inpaint \| Post**, which together handle
croping and resizing of the image and mask before inpainting, and the resizing
and compositing of the inpainted area back on to the original image after
inpainting.
| Input | Description |
|-|-|
| image | The image to be inpainted. |
| mask | The mask of the area to be inpainted. |
| resampler | The *resampler* to be used to resize the cropped region. |
| scaler | The *scaler* to be used to determined the resized size of the cropped region. |
| square | Whether the bounding-box of the mask should be forced to be square. |
| area_mult | How much the area of the bounding-box of the mask should be multiplied by to determine the cropped region. |
| color_shift | To what the average value of the cropped region should be adjusted (0.0 disables this). |
| Output | Description |
|-|-|
| image | The cropped and resized region. |
| mask | The mask similarly cropped and resized. |
| latent_mask | The above mask properly resized for use for masking the latent. |
| context | The context that Mask-Crop Inpaint \| Post requires for the post inpaniting operations. |
| Input | Description |
|-|-|
| image | The inpainted image. |
| mask | The mask to be used for compositing the inpainted area onto the original image. |
| context | The context from the Mask-Crop Inpaint \| Pre node. |
| resampler | The *resampler* to be used to resize the inpainted output before compositing. |
| Output | Description |
|-|-|
| image | The result of compositing the resized, inpainted area back on to the original image. |
| Node | Description |
|-|-|
| Latent Zero Mask | Zeros a masked area of a latent to prepare it for full-denoise inpainting. |
| Blur Mask | Blurs and expands a mask to facilitate better compositing of inpainted areas. |
| Mask-Crop \| Pre and Mask-Crop \| Post | Stripped down versions of the main inpainting nodes that do no resizing or color shifting for use with other tools and workflows. |