Selur's Little Message Board

Full Version: Deoldify Vapoursynth filter
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Updated the torch add-on download to include v5.6.1.

Cu Selur
Since HAVC uses CLAHE, have you tried using zsmooth instead of cv2 for it?
No, but cv2 should be already optimized being written in C/C++.
In any case in the coloring pipeline, the bottleneck are elsewhere.

For example, recently I had to perform some color adjustment on a 1440x1080 clip already colored, using this code

Code:
clip = havc.HAVC_ColorAdjust(clip=clip, BlackWhiteTune="strong", BlackWhiteMode=4, BlackWhiteBlend="True", ReColor=False, chroma_resize=True)
clip = havc.HAVC_ColorAdjust(clip=clip, BlackWhiteTune="medium", BlackWhiteMode=3, BlackWhiteBlend="True", ReColor=False, chroma_resize=True)

The encoding speed was about 30fps and in this case are used both LUTs and CLAHE.
I admit that is not very fast, but given that in this case the CPU usage was 25% and the GPU usage was 9%, I think that the best option to increase the speed is using the chunk encoding as suggested in the chapter 4.0.4 of HAVC user guide.   


I tried to use Filtering->Filter Order/Queue->Use Filter Queue
To build a script calling 2 times HAVC_ColorAdjust, using these settings

[Image: attachment.php?aid=3364]
[Image: attachment.php?aid=3365]

The expected code to be generated is
Code:
clip = havc.HAVC_ColorAdjust(clip=clip, BlackWhiteTune="strong", BlackWhiteMode=4, BlackWhiteBlend="True", ReColor=False)
clip = havc.HAVC_ColorAdjust(clip=clip, BlackWhiteTune="medium", BlackWhiteMode=3, BlackWhiteBlend="True", ReColor=False)

But Hybrid instead of generated the following code

[Image: attachment.php?aid=3366]

Please, could you fix it.

Thanks,
Dan
Will look at it after work and try to reproduce it.
Had quick peek at it before work:
BlackWhiteBlend="True" doesn't show up, since it's the default.
chroma_resize=True <= that is an unknown option to Hybrid.
I will look into why 'BlackWhiteMode' isn't there.
Looking at the FilterQueue entry 'vsColorAdjustBWMode;ScaleAbs - LUT' is listed.
Okay, it was a mistake where I used:
Code:
if (this->getBool("vsColorAdjustBWTune", parameters)) {
instead of
Code:
if (this->getString("vsColorAdjustBWTune", parameters) != "none") {

=> Uploaded a new test version which should create:
Code:
# stabilize colors using ColorAdjust (HAVC)
clip = havc.HAVC_ColorAdjust(clip=clip, BlackWhiteTune="strong", BlackWhiteMode=4, ReColor=False)
# stabilize colors using ColorAdjust (HAVC)
clip = havc.HAVC_ColorAdjust(clip=clip, BlackWhiteTune="medium", BlackWhiteMode=3, ReColor=False)
as expected.


Cu Selur
Now it works as expected.

Thanks,
Dan
"I am having a problem with the current version. Reference-based colorization is not working. Normal colorization methods like DDcolor and Deep-Remaster are working correctly, but other methods, including DeOldify and reference-based colorization, are not working at all."

Script was successfully evaluated. Output video info:
Frames: 6174 | Time: 0:04:06.960 | Size: 2560x720 | FPS: 25/1 = 25 | Format: YUV420P8
2025-11-11 12:48:35.600
[VSE Server]: incoming connection
[VSE Server]: ConnectedState
[VSE Server]: socket is ready to be read
[VSE Server]: connection open: true
[VSE Server]: connection readable: true
[VSE Server] - Message received: changeTo ### C:\Users\Halloman\AppData\Local\Temp\tempPreviewVapoursynthFile12_48_35_600.vpy ###
2025-11-11 12:48:50.874
Failed to evaluate the script:
Python exception: 'NoneType' object has no attribute 'format'

Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 3378, in vapoursynth._vpy_evaluate
File "src/cython/vapoursynth.pyx", line 3379, in vapoursynth._vpy_evaluate
File "C:\Users\Halloman\AppData\Local\Temp\tempPreviewVapoursynthFile12_48_35_600.vpy", line 39, in
clip = havc.HAVC_main(clip, EnableDeepEx=True, DeepExMethod=3, ScFrameDir="E:/Colorization NEW/Mahamantri Timmarusu/new colour/akvis", DeepExModel=0, DeepExEncMode=0, DeepExMaxMemFrames=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Hybrid\64bit\Vapoursynth\Lib\site-packages\vsdeoldify\__init__.py", line 324, in HAVC_main
clip_colored = HAVC_main_colorizer(clip, Preset, ColorModel, CombMethod, VideoTune, ColorFix, ColorTemp,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Hybrid\64bit\Vapoursynth\Lib\site-packages\vsdeoldify\__init__.py", line 659, in HAVC_main_colorizer
clip_colored = HAVC_deepex(clip=clip, clip_ref=None, method=DeepExMethod, render_speed=DeepExPreset,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Hybrid\64bit\Vapoursynth\Lib\site-packages\vsdeoldify\__init__.py", line 1337, in HAVC_deepex
clip_ref, orig_fmt_r = convert_format_RGB24(clip_ref)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Hybrid\64bit\Vapoursynth\Lib\site-packages\vsdeoldify\havc_utils.py", line 64, in convert_format_RGB24
original_format = clip.format
^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'format'


https://gofile.io/d/UvhXiP
"No clue" from me without a debug output.
Maybe Dan has an idea
Cu Selur
(11.11.2025, 09:31)hallomanbh Wrote: [ -> ]"I am having a problem with the current version. Reference-based colorization is not working. Normal colorization methods like DDcolor and Deep-Remaster are working correctly, but other methods, including DeOldify and reference-based colorization, are not working at all."

Please provide the full script generated by Hybrid.

Dan
Assuming the folder exists and holds the expected files, the call:
Code:
clip = havc.HAVC_main(clip, EnableDeepEx=True, DeepExMethod=3, ScFrameDir="E:/Colorization NEW/Mahamantri Timmarusu/new colour/akvis", DeepExModel=0, DeepExEncMode=0, DeepExMaxMemFrames=0)
seems fine to me.