Quick test with inpainting through VSGAN, proPainter should be better, but for that resolution is too high:
![[Image: grafik.png]](https://i.ibb.co/xjRc62L/grafik.png)
Not that good, but tunning multiple Inpainting calls with multiple masks probably would work even when using this inpainting model.
Another 1pass cv based inpainting examples using https://github.com/dnjulek/VapourSynth-cv_inpaint:
InpaintFSR:
![[Image: Inpaint-FSR.png]](https://i.ibb.co/t2GtCGB/Inpaint-FSR.png)
InpaintNS:
![[Image: Inpaint-NS.png]](https://i.ibb.co/5vjmcNq/Inpaint-NS.png)
InpaintShiftMap:
![[Image: Inpaint-Shiftmap.png]](https://i.ibb.co/J75vWYw/Inpaint-Shiftmap.png)
InpaintTelea:
![[Image: Inpaint-Telea.png]](https://i.ibb.co/mDxtbTy/Inpaint-Telea.png)
like I wrote multiple inpainting passes with different masks will probably help more.
Cu Selur
Ps.: https://forum.doom9.org/showthread.php?t=184485 might also be interessting.
# Imports
import vapoursynth as vs
import os
import sys
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = 'F:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libimwri.dll")
# Import scripts
import mvsfunc
# Loading C:\Users\Selur\Desktop\photo_1.png using vsImageReader
clip = core.imwri.Read(["C:/Users/Selur/Desktop/nR0xQ2PL3Utd.png"])
clip = core.std.Loop(clip=clip, times=100)
# Input color space is assumed to be RGB24
# resizing using VSGAN
from vsgan import ESRGAN
mask = core.imwri.Read(["C:/Users/Selur/Desktop/mask.png"])
mask = core.std.BinarizeMask(mask,threshold=16)
mask = core.std.Maximum(mask)
mask = core.std.Maximum(mask)
green = core.std.BlankClip(clip, color=[0,255,0])
clip = core.std.MaskedMerge(clip, green , mask) # masked clip
org = clip
vsgan = ESRGAN(clip=clip,device="cuda")
model = "F:/Hybrid/64bit/vsgan_models/1x_NMKD-YandereInpaint_375000_G.pth"
vsgan.load(model)
vsgan.apply()
clip = vsgan.clip
clip = core.std.StackHorizontal([org, clip])
# Output
clip.set_output()
![[Image: grafik.png]](https://i.ibb.co/xjRc62L/grafik.png)
Not that good, but tunning multiple Inpainting calls with multiple masks probably would work even when using this inpainting model.
Another 1pass cv based inpainting examples using https://github.com/dnjulek/VapourSynth-cv_inpaint:
InpaintFSR:
![[Image: Inpaint-FSR.png]](https://i.ibb.co/t2GtCGB/Inpaint-FSR.png)
InpaintNS:
![[Image: Inpaint-NS.png]](https://i.ibb.co/5vjmcNq/Inpaint-NS.png)
InpaintShiftMap:
![[Image: Inpaint-Shiftmap.png]](https://i.ibb.co/J75vWYw/Inpaint-Shiftmap.png)
InpaintTelea:
![[Image: Inpaint-Telea.png]](https://i.ibb.co/mDxtbTy/Inpaint-Telea.png)
like I wrote multiple inpainting passes with different masks will probably help more.
Cu Selur
Ps.: https://forum.doom9.org/showthread.php?t=184485 might also be interessting.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.