Quote: I tested it and is working, finally the CRASH in vspipe are gone!
Newer dev Hybrid versions add
os.environ['TLLM_LOG_LEVEL'] = 'error'
which also seems to fix the problem.
I like videoFreds scripts, but I doubt you will be able to reproduce his results without lots of work and understanding of video and Avisynth.
(to me that has nothing to do with DeepEnhancer)
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Hi zspeciman and Selur,
I just wanted to sincerely thank you both for discussing Fred’s scripts, especially in the following thread: https://forum.doom9.org/showthread.php?t=174298
I've been waiting for years for the release of his full 2017 script, but unfortunately, there hasn’t been any official update since then. I tried to recreate it myself based on the steps he described, but without much success. Here's the version I managed to put together:
# Load the source video
video = AVISource("path_to_your_video.avi")
# Apply RemoveDirtSMC to clean the video
video = video.RemoveDirtSMC()
# Apply GamMac for gamma and color correction
video = video.GamMac()
# Stabilize the video using DePanStabilize
video = video.DepanStabilize()
# Adjust colors with Tweak (6x tweak() to isolate color ranges with startHue and endHue)
video = video.Tweak(sat=1.0, hue=0.0, bright=0.0, cont=1.0, coring=false, startHue=0, endHue=360, maxSat=255, minSat=0)
video = video.Tweak(sat=1.0, hue=0.0, bright=0.0, cont=1.0, coring=false, startHue=60, endHue=180, maxSat=255, minSat=0)
video = video.Tweak(sat=1.0, hue=0.0, bright=0.0, cont=1.0, coring=false, startHue=180, endHue=240, maxSat=255, minSat=0)
video = video.Tweak(sat=1.0, hue=0.0, bright=0.0, cont=1.0, coring=false, startHue=240, endHue=300, maxSat=255, minSat=0)
video = video.Tweak(sat=1.0, hue=0.0, bright=0.0, cont=1.0, coring=false, startHue=300, endHue=360, maxSat=255, minSat=0)
video = video.Tweak(sat=1.0, hue=0.0, bright=0.0, cont=1.0, coring=false, startHue=0, endHue=60, maxSat=255, minSat=0)
# Color adjustment with RgbAdjust
video = video.RgbAdjust(r=1.0, g=1.0, b=1.0)
# Apply McDegrainSharp for denoising and sharpening
video = video.McDegrainSharp()
# Special sharpening with UnsharpMask and blur
video = video.UnsharpMask(radius=3)
video = video.Blur(1.0)
video = video.UnsharpMask(radius=2)
video = video.Blur(1.0)
video = video.Sharpen(0.5)
# Return the processed video
return video
Thanks again for keeping Fred’s work alive and for all your efforts. If you happen to have more parts of his original script or additional notes, I’d be truly grateful to see them!
Best regards,
Hi zspeciman and Selur,
The result is absolutely incredible. The clarity, the motion smoothness, the overall aesthetic — it’s all simply breathtaking. It genuinely brings tears to my eyes, like watching history come alive with an almost surreal realism.
Do you happen to know if this was achieved solely using Fred’s script? Or were there other tools, filters, or enhancements involved? I’ve tried to reproduce something close based on his public notes, but unfortunately, I haven't been able to match this level.
Any insights or suggestions would mean a lot. Thank you both for keeping this legacy alive.
11.04.2025, 20:26 (This post was last modified: 11.04.2025, 21:06 by Selur.)
He, probably use specially adjusted values, since his source is already a really nice capture (no halo, color shift, strong distortions,...) it's hard to reproduce the same result with less proper captured content.
(Sadly there is no TemporalRepair port for Vapoursynth)
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Assuming that you are able to download from YouTube the clip: film restoring 1967 2 videofred.mp4
You should obtain a clip with: color space: YUV420P8, bit depth: 8, resolution: 2560x954, frame rate: 18fps
In this post I attached the following files:
- film_restoring_videofred_simple.zip: contains
1) a simplified version of FRED script using VapourSynth: film_restoring_videofred_simple.vpy
2) the restored clip using the provided VapourSynth script : film_restoring_videofred_simple.mp4
- Fred_Avisynth_dll.zip: contains the Avisynth dll for ColorYUV and Autolevels
Unfortunately it is missing in VapourSynth a true replacement for these filters and is necessary to use them since most of the "magic" is performed by these filters.
I put them in the folder "./Hybrid/64bit/Fred" fell free to put the dll where you want, but you need to adjust the path in the Vapoursynth script.
In Hybrid there are better cleaning filters, in this case I used RealESRGAN x2plus with TensorRT enabled (the first time it will take about 5min to generate the RT file cache)
The result is very near to the one provided by FREAD on YouTube (see film_restoring_videofred_simple.mp4)
I didn't see a link to the source.
What is your source?
Are you using the left side of the youtube clip as source? If you do, I would not be surprised that you can't reproduce the effect.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
What a fantastic result again—you always work your magic, Mr. Dan! ✨
Thank you so much for the test using the film_restoring_videofred_simple.vpy script and for providing the restored clip.
Your VapourSynth adaptation really captures the essence of the original Avisynth version (01_C_Film_Restoring_Blending_Cleaning_Only.avs).
That said, this script goes back to 2012—since then, Fred actually developed a newer, unpublished version around 2017, where he shared the processing steps in this post:
🔗 https://forum.doom9.org/showthread.php?t=174298
According to Fred, the improved chain was:
RemoveDirtSMC()
GamMac() (wonderful filter—thanks to Stainlesss!)
DePanStabilize()
Tweak() (6x, separate hues using starthue and endhue)
RgbAdjust()
McDegrainSharp()
Special sharpening sequence:
UnsharpMask(radius=3)
blur
UnsharpMask(radius=2)
blur
Sharpen() (final pass)
Also, I've attached a screenshot (from one of Fred’s videos) showing the plugins used in his Avisynth setup for reference.
Thanks again for your generous help and for breathing new life into these old scripts!
Best regards,
Also, here's an excellent source video available up to 2K in Fred Vimeo showcasing results:
🔗 https://vimeo.com/202913632
(Yesterday, 12:43)Selur Wrote: I didn't see a link to the source.
What is your source?
Are you using the left side of the youtube clip as source? If you do, I would not be surprised that you can't reproduce the effect.
Cu Selur
The only source is the clip on YouTube, and yes, I'm using the left side of the clip.