Selur's Little Message Board
Deoldify Vapoursynth filter - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Talk, Talk, Talk (https://forum.selur.net/forum-5.html)
+--- Forum: Small Talk (https://forum.selur.net/forum-7.html)
+--- Thread: Deoldify Vapoursynth filter (/thread-3595.html)



RE: Deoldify Vapoursynth filter - Selur - 16.03.2024

You should really overthing all those color space conversions in your code.
They are neither free (in speed) nor lossless, especially with limited range (and additionally changing bit depths, round errors sum up,...).

Loading MiscFilters.dll is no problem in Hybrid, like I wrote, for testing you can load it through a custom section.
If you share vsdeoldify version which when a specific parameter needs it I can add it.

Cu Selur


RE: Deoldify Vapoursynth filter - Selur - 16.03.2024

Updated the download to a version where Hybrid will always load MiscFilters for DeOldify.


RE: Deoldify Vapoursynth filter - Dan64 - 16.03.2024

I updated the filter with the color stabilizer.
There is a new list of parameters called "color_stabilizer"

color_stabilizer: list = [False, 21, 'left', False]

:param color_stabilizer:   parameters for the temporal color stabilizer
                                 [0] : colstab_enabled (bool), if true the filter is enabled
                                 [1] : colstab_nframes, number of frames to be used in the stabilizer, range[3-31]
                                 [2] : colstab_mode, type of average used by the stabilizer: range['left', 'center', 'right']
                                 [3] : colstab_scenechange, if true the futures frames will not be used in case of scene change detection, range [True,False]

I don't know how Vapoursynth can use the future frames if they has not been colored yet.
To be conservative, as default I adopted the "left average".

I also changed the name of parameter "ddcolor_weight" in "merge_weight".

I attached the new source code.

Dan


RE: Deoldify Vapoursynth filter - Selur - 16.03.2024

Quote:I don't know how Vapoursynth can use the future frames if they has not been colored yet.
in your code vs_clip_color_stabilizer is always processed after the colorization

Will look at the changes and adjust Hybrid.

Cu Selur


RE: Deoldify Vapoursynth filter - Selur - 16.03.2024

Quote: if true the futures frames will not be used in case of scene change detection
Where does this come from?
Normally for AverageFrames "scenechange can be set to avoid averaging frames over scene changes".
=> Okay, forget that I didn't read it properly.

Cu Selur


RE: Deoldify Vapoursynth filter - Selur - 16.03.2024

Updated the download link with an adjusted version.

Cu Selur


RE: Deoldify Vapoursynth filter - Dan64 - 17.03.2024

I performed some small changes, I hope that are the final ones.

The changes are:

1) changed the default value for color_stabilizer ( I have faith in the future)

color_stabilizer: list = [False, 11, 'center', True]

2) changed the also the tweak defaults

dd_tweak_bright: float = 0.05, dd_tweak_gamma: float = 1.5


3) changed the default value for dark_darkness

dark_darkness: list = [False, 0.2, 0.4, 0.8, -0.10]

I changed also the code in dark_darkness , now "dark_sat" can only be < 1 and "dark_bright" < 0.



Thanks,
Dan


RE: Deoldify Vapoursynth filter - Dan64 - 17.03.2024

for your fun I tried to compare "Lost in Time" with "DDeoldify"
As reference I used the clip Around The World in 1896 Colorized

here a comparison using the frame 692:

https://imgsli.com/MjQ3ODQ5

In this case the image colored by "Lost in Time" is de-saturated respect to "DDelodify"
But not all the clip is de-saturated.
I think that they split the movie in small chunk, and for every chunk selected the most appropriate colorization.  

Dan


RE: Deoldify Vapoursynth filter - Selur - 17.03.2024

Updated the download.
About the chroma stabilization.
Atm. the stabilization is applied after the merge.
Have you tested whether it would help to use stabilization before the merge on one/both of the clips and additionally after the merge?


Cu Selur


RE: Deoldify Vapoursynth filter - Dan64 - 17.03.2024

I updated the filter, now it is possible to apply the "Chroma Stabilizer", after Deoldify, DDColor and Merge, for this I added 2 more boolean parameters.

color_stabilizer: list = [True, False, False, 11, 'center', True]


:param color_stabilizer:   parameters for the temporal color stabilizer
                                 [0] : colstab_merge_enabled (bool), if true the filter will be applied after the merge of Deoldify and DDColor
                                 [1] : colstab_deoldify_enabled (bool), if true the filter will be applied after Deoldify
                                 [2] : colstab_ddcolor_enabled (bool), if true the filter will be applied after DDColor
                                 [3] : colstab_nframes, number of frames to be used in the stabilizer, range[3-31]
                                 [4] : colstab_mode, type of average used by the stabilizer: range['left', 'center', 'right']
                                 [5] : colstab_scenechange, if true the futures frames will not be used in case of scene change detection, range [True,False]

 I also changed the meaning of parameter "Brightness" in the "Darkness" filter. I modified the code and now the Darkness effect is obtained by the reducing the "V" component in "HSV" color-space, so it is more appropriate call it "Darkness" , the range is not more [-1, 0] but [0, 1].

dark_darkness: list = [False, 0.2, 0.4, 0.8, 0.10]

:param dark_darkness:      parameters for dark the portion of the clip with luma below a given threshold
                                 [0] : darkness_enabled (bool), if true the filter is enabled
                                 [1] : dark_threshold, luma threshold to select the dark area, range [0-1] (0.01=1%) 
                                 [2] : white_threshold, if > dark_threshold will be applied a gradient till white_threshold, range [0-1] (0.01=1%) 
                                 [3] : dark_sat: amount of desaturation to apply to the dark area, range [0-1]
                                 [4] : dark_bright (float): darkness parameter it used to reduce the "V" component in "HSV" colorspace, range [0, 1]

you should change the name also in the GUI, "Brightness" -> "Darkness".

Thanks,
Dan

Just for fun, you can find the colorized movie of Around The World in 1896

Around The World in 1896 (DDeoldify)

I have used the default settings, I don't have tried to optimize the DDeoldify parameters.