Skip to content

Releases: rlaphoenix/VSGAN

v1.6.4

25 Jan 21:02
Compare
Choose a tag to compare

Changed

  • Renamed GitHub Workflows from Distribution to CD and Version test to CI.
  • Now caching the VapourSynth installation in GitHub CI workflow.
  • Now directly loads a tensor from the VideoFrame data directly, without numpy as a middleman.
  • Reduced overall numpy use for Tensor<->VideoFrame operations.
  • The half parameter/options have been removed entirely and replaced with automatic infer based on
    input bit-depth. You must explicitly use RGBS if you want FullTensor (float32). Integer and RGBH
    inputs will be converted (if needed) to float16 (HalfTensor) automatically.

Removed

  • Removed EOL Python 3.6 from CI Workflow.
  • Removed unused infer_sequence method from EGVSR arch.
  • Removed unused options and code from frame_to_tensor.
  • All manual tensor deletion statements have been removed, they do not seem to help with VRAM.
  • The overlap reduction code per-recursion has been removed. The overlap will now always stay
    at the value first provided.

Fixed

  • Fixed a big Memory leak, that I still don't know exactly why it happened.
  • Fixed minimum Python version listed under Installation docs.
  • Improved the accuracy of clamping max size value to an equation on the exact bit depth.
    This fixes the accuracy of RGB 27, 30, 36, and 42.

v1.6.3

24 Jan 15:36
Compare
Choose a tag to compare

Added

  • Recursive tiling depth is now cached per-clip, rather than per-frame.

Changed

  • Updated numpy to version 1.21.1.

Removed

  • Dropped support for Python versions older than 3.7.

Fixed

  • Fix another regression with rejoined tensors defaulting creation on the default device.

v1.6.2

24 Jan 14:12
Compare
Choose a tag to compare

Fixed

  • Fix another regression due to incorrect overlap scaling calculation from within join_tiles().

v1.6.1

24 Jan 13:17
Compare
Choose a tag to compare

Fixed

  • Fix regression due to missing overlap specification to join_tiles() from within recursive_tile_tensor().

v1.6.0

24 Jan 07:58
Compare
Choose a tag to compare

Added

  • Add support for EGVSR, Arch and Network.
  • Add support for Real-ESRGAN-v2
    aka Anime Video Models (comp. vgg-style arch).
  • Ability to use half-precision (fp16, HalfTensor) via half parameter. This can help reduce VRAM.
  • Created tiling utilities to tile a tensor, merge tiled tensors, and automatically tile and execute
    recursively.

Changed

  • Moved the frame/numpy/tensor utility functions out of the VSGAN class and into utilities.py.
  • Renamed HISTORY to CHANGELOG, and updated changelog to be in Keep a Changelog standard.
  • Moved VSGAN class from __init__.py to vsgan.py.
  • Tiling mode is now always enabled, but will only tile if you wouldn't have otherwise had enough VRAM.
  • Overlap now defaults to 16.
  • Separated VSGAN class into two separate Network classes, ESRGAN, and EGVSR. VSGAN is no longer used
    and ESRGAN/EGVSR Network classes should now be imported and used instead.
  • The functions load_model and run have been renamed to load and apply.

Fixed

  • Don't require batch in tensor_to_clip.
  • Make change_order False by default in frame_to_tensor, improve rest of the param defaults.
  • Don't change order to (2,0,1) for ESRGAN models, was unnecessary and caused issues with Real-ESRGANv2.
  • Fixed support for Python versions older than 3.8.
  • Fixed example VapourSynth import paths casing.
  • Restore support for VapourSynth API 3.
  • Now detaches tiles from the GPU after super-resolution, to keep space for the next tile's super-resolution.

v1.5.0

24 Dec 00:01
Compare
Choose a tag to compare

Added

  • Add support for ESRGAN+ models, Real-ESRGAN models (including 2x and 1x if pixel-shuffle was used),
    and A-ESRGAN models.
  • Add support for Newer-New-arch in ESRGAN new-to-old state dict conversion.

Changed

  • Rework model/arch file system structure to /models, /models/blocks and /models/ESRGAN.
  • Rework ESRGAN architecture as a singular class, with all ESRGAN-specific operation done within it.
  • Move ESRGAN-specific blocks within ESRGAN.py.

Removed

  • Removed some unused blocks from RRDBNet.

Fixed

  • Ensure clip parameter of VSGAN is a VapourSynth VideoNode object (a clip).
  • Move RGB clip check to the constructor of VSGAN rather than run().

v1.1.0

23 Jan 11:38
Compare
Choose a tag to compare

Added

  • Added two GitHub Action workflows for CI/CD.

Changed

  • Moved the majority of documentation and info from the GitHub Wikis system to the README.

Fixed

  • Replace hardcoded in_nc, out_nc, nf, nb, and scale with values taken directly from the model state.
  • Check that a model has been loaded before execute can be called.

v1.4.1

21 Dec 18:22
Compare
Choose a tag to compare

Added

  • Created new sphinx documentation, replacing the old Jekyll documentation.
  • Added HISTORY.md file for recording history (now CHANGELOG.md).

Changed

  • Reword some error/warning messages, now less opinionated and more concise.
  • Some attributes have been renamed to be more ambiguous in the hopes more Model Architectures get
    supported in the future.

Fixed

  • Fix model chaining. It now gets the correct model and model scale values for each FrameEval call.
  • Fixed the pytorch extra group to correctly be optional and correctly reference a dependency.
  • Some type-hinting has been corrected.

v1.0.8

23 Jan 11:38
Compare
Choose a tag to compare

Changed

  • Change the RGB conversion check's kernel to Spline36.

v1.0.7

23 Jan 11:38
Compare
Choose a tag to compare

Removed

  • Removed the color-space conversion implemented in [1.0.3] as it can be a lossy operation.
    Let the user decide how/if to convert back to the original format. E.g., what algorithm,
    what matrix, and so on.

Fixed

  • Replaced unsafe assert in RRDBNet with an if and raise, as asserts may be removed when
    optimised as python byte code files.