Skip to content

Releases: akai-katto/dandere2x

3.7: Async Frame Writing, Customizable Max Frames Ahead

23 Oct 21:15
59079ba
Compare
Choose a tag to compare

This introduces async frame writing, meaning that dandere2x should be able to extract frames faster, as well as being able to customize how many frames you can be max ahead by, allowing for "theoretically" faster performance. Will need feedback to see if it works or not.

Also fixes config file that was designed for RealSR and not waifu2x-ncnn-vulkan, and left a note in the root directory for those using RealSR.

3.7.1 edit:

Patch 3.7.1 fixes a bug where framerate was incorrectly counted. For the time being, a brute force, 100% accuracy solution is being put into place, albeit makes the upscaling process slightly slower.

3.7.2 edit

I found the source of the bug in master branch, eliminating the need for the slower-counting-method.

3.7.3 edit

Added support for "pix_fmt" detection and integration. This means the output video will now be the same format as the input video.

3.7.5

Hotpatch intended for 3.7.4. Fixes bug where if video is irregular, a keyerror would arise.

3.7.5

Fixed keyerror in multiprocessing

mac release

15 Jul 00:12
Compare
Choose a tag to compare

experimental, tested on m1 mbp

3.6 re-encoding dependency removed

07 Jul 02:56
Compare
Choose a tag to compare
Pre-release

This release removes the need for "re-encoding". This release is to be treated as a beta.

Essentially, before, the entire video would be re-processed in order to conform to "safe" video standards. Now, a "less than safe but faster" method is being experimented with, allowing this to be bypassed entirely.

A great thanks to Tremeschin for his R&D into this.

Ncnn vulkan 4x support

17 Oct 19:23
ed335de
Compare
Choose a tag to compare
  • Fixed GUI where realSR took over waifu2x-cpp
  • Updated waifu2x-ncnn-vulkan to latest.
  • Enabled 4x support on waifu2x-ncnn-vulkan.

edit:

  • built main.exe on python3.8.8 for a user who requested it

realSR test flight

04 Sep 21:50
Compare
Choose a tag to compare

This release is meant only for realSR testing, as the bleed is set to 3 (usually 1) which is needed for realSR.

Notes

  • Re-added realSR
  • Changed the way noise is added to video, now using a separate ffmpeg process to allow the input video not to be pre-noised.
  • Dandere2xCPP now uses the separately noised image.
  • Added "bleed" config in order to allow realSR to run.

PyAV Test

I'm trying a new python wrapper out, that uses ffmpeg rather than cv2 to extract frames from an image.

"Fade" Fix

06 Jul 02:34
Compare
Choose a tag to compare

Fixed the bug where "fade" wasn't being updated in memory correctly, causing fade-to-black scenes having visual distortions.

CPP Overhaul

24 Jun 02:48
Compare
Choose a tag to compare

todo

I need to clean up the old cpp files and add the new ones, waiting to do this before merging to master.

CPP Rework

16 May 23:45
Compare
Choose a tag to compare
CPP Rework Pre-release
Pre-release

Massive Wall of Text

After literally over a year (I put this on hold and resumed it in 2021, so not really a year) the c++ rework is looking ready to be merged into master. I wish this would have been released faster, just issues with perfectionism and life issues that got in the way.

Over the rework, I found numerous bugs, some new and some existing for a while:

  • I realized that I had commented out "fade" many months ago, resulting in the fade plugin not being activated on the python part of things. This lead to poorer looking videos.

  • I had a typo in the SSIM code where the pixels were iterating over the wrong values, meaning that SSIM's were being incorrectly computed (I have no idea how I let this slip by).

Problems I've noticed that I'm worried about:

  • New C++ compiler is having anti-virus issues, hoping this isn't a problem.

  • Pyinstaller behavior seems to be acting different on my windows machine, I'm not sure if a windows security update changed behavior somewhere of how pyinstaller works, but I had to debug for a few days what was going wrong before I gave up and just hard-coded a solution.

The new features that are useful to me as a developer are:

  • Dandere2x_CPP now has a log file. This is incredibly important since the original c++ code was written when I was 20 or something, and everything worked with print statements.

  • Dandere2x_CPP can now be modular-ly set which loss function to use, i.e SSIM or MEAN-SQUARED-ERROR. I prefer mean squared error for it's speed.

  • The code can change color space if need be, but I had poor results with this.

  • Compression of images for constant quality rate loss for dandere2x is now done in-house using c++, eliminating the python dependency.

  • Block matching algorithms can be modularly hot-swapped (more on this later, can't get block matching to work but further work can be done now)

Changes that were made during this:

  • Mean Squared Error is the default loss function (higher quality)

  • PNG is now the default file type for image processing.

  • Disabled "fade" plugin due to bugs I haven't figured out the origin of.

  • SSIM seems to be buggy, but thank god it's modular and can be changed to MSE whenever.

Work Needing to be Done Still:

  • Figuring out how to code up "noise=c0s=8:c0f=u" into c++ code. I would like to ideally remove the ffmpeg requirement of adding noise to normalize the lum layers of a video, but manually coding this up never resulted in any deliverable results.

  • Since I can't figure out the above bullet point, re-encoding two separate videos, one for purely computations, and one for purely upscaling, this way realSR can work (since realSR doesn't work right now since we have to add noise to the LUM layer in order to balance out temporal noise)

  • Doing the above would also allow for better block matching, but holding off on research since it's a time sink.

0.3.3.1 Changes

Fixed bug causing dandere2x to crash entirely on redraw frames.

0.3.3.2 Changes

Improved the math used for determining if a frame is a redraw frame or not.

0.3.3.3 Changes

  • Fixed severe bug where frames weren't being updated in the right memory place.

  • re-enabled fade now that the issue with blockiness was solved for many cases.

0.3.3.4 Changes

  • Fixed severe memory leak in dandere2x_cpp

Virus Total:

https://www.virustotal.com/gui/file-analysis/ZTc3NTFkMGY0MzIwZTgwYzZkNDUyMTE5MDFhODNlZjk6MTYyMTIwOTAxOQ==/detection

Some false positives due to pyinstaller being automatically flagged

General Improvements

16 Feb 03:22
b659aa8
Compare
Choose a tag to compare

Changes

  • If waifu2x-ncnn-vulkan fails an upscale, the error is caught at a lower level, and the error messege is printed to console.
  • Added hwencoding in ffmpeg for both re-encode video and pipe-ing to video. Will see if I'll leave it in for pipe-ing to video, as it uses GPU, but who knows, it may be faster. Expect faster dandere2x re-encoding videos now.
  • Prints out ffmpeg windows when re-encoding video, since users have been asking if dandere2x crashed.
  • Better console logging, now with a "root" logger, for all dandere2x logs that don't belong to a specific video.

3.1 Release

09 Feb 04:19
ff2cb80
Compare
Choose a tag to compare

Changes from 3.0,

  • 1x Support for Vulkan
  • Command line fixes
  • New pixel format + settings (read about it here #153)
  • Added support for audio output options.
  • Fixed bug where audio migrations was re-encoding videos rather than copying the video.