Live demo

Inpainting

Paint holes into a field. The backbone encodes only what is left, an irregular cloud of points, as one embedding of the whole field, and decodes every pixel from it, the holes included. The field is 256 × 256 pixels and always one partition, so the presets are fields one embedding represents accurately.

Checking the server…
Holes a preset, or paint your own on the input
Input a sample, your own image, or a painted field
The input with its holes, the Daedalus inpainting, a classical interpolation and the original appear here.
How it works

Encoding a point cloud with holes

Only the points outside the holes are encoded, as one partition: one embedding ζm of the whole field, from which every point is decoded.
1

Hide

A preset hides large holes over whole crests and troughs; with Paint your own, everything you paint on the input is hidden from the model.

2

One embedding

Only the observed pixels are passed to the model: an irregular point cloud, normalized and encoded as a single embedding ζm of the whole field.

3

Decode every pixel

The decoder answers any coordinate, so ζm is decoded at every pixel, observed or not: the holes are filled from the same embedding as the rest.

4

Compare

The baseline is the piecewise-linear interpolation of the same observed pixels. The peak signal-to-noise ratio (PSNR) is measured on the hidden pixels only.

The backbone was never trained to inpaint. One embedding captures only the lowest frequencies of a field, so the presets are smooth fields it represents accurately.