Compare commits

...

11 commits

Author SHA1 Message Date
Aidan Gauland a71e399df5 styler00dollar-vsgan-trt: init at unstable-2022-09-19 2022-12-09 21:09:27 -07:00
Aidan Gauland 042be9b782 vs-mlrt: init at 10 2022-12-09 21:09:27 -07:00
Aidan Gauland 182802150a havsfunc: Remove duplicate dependency 2022-12-09 21:03:31 -07:00
Aidan Gauland 18135db24a havsfunc: 33 -> unstable-2022-09-08 2022-12-09 21:03:31 -07:00
Aidan Gauland 7599e41398 dfmderainbow: init at unstable-10-17-2022 2022-12-09 20:57:17 -07:00
Aidan Gauland 3d0f0f2fe5 minideen: init at 2 2022-12-09 20:57:17 -07:00
Aidan Gauland 9da59ca532 temporalmedian: init at 1 2022-12-09 20:57:17 -07:00
Aidan Gauland f13b913fdc astdr: init at 4 2022-12-09 20:57:17 -07:00
Aidan Gauland 3c959c4701 motionmask: init at unstable-2021-07-20 2022-12-09 20:57:17 -07:00
Aidan Gauland cad7e80c00 temporalsoften2: init at unstable-2019-03-25 2022-12-09 20:57:17 -07:00
Aidan Gauland 9efdaa04ef decross: init at 1 2022-12-09 20:57:17 -07:00
13 changed files with 499 additions and 15 deletions

View file

@ -26,6 +26,7 @@ in
d2vsource = prev.callPackage ./plugins/d2vsource { };
dctfilter = prev.callPackage ./plugins/dctfilter { };
deblock = prev.callPackage ./plugins/deblock { };
decross = prev.callPackage ./plugins/decross { };
descale = prev.callPackage ./plugins/descale { };
dfttest = prev.callPackage ./plugins/dfttest { };
eedi2 = prev.callPackage ./plugins/eedi2 { };
@ -42,7 +43,9 @@ in
knlmeanscl = prev.callPackage ./plugins/knlmeanscl { };
lsmashsource = prev.callPackage ./plugins/lsmashsource { };
median = prev.callPackage ./plugins/median { };
minideen = prev.callPackage ./plugins/minideen { };
miscfilters-obsolete = prev.callPackage ./plugins/miscfilters-obsolete { };
motionmask = prev.callPackage ./plugins/motionmask { };
msmoosh = prev.callPackage ./plugins/msmoosh { };
mvtools = prev.vapoursynth-mvtools;
nnedi3 = prev.callPackage ./plugins/nnedi3 { };
@ -57,15 +60,20 @@ in
scxvid = prev.callPackage ./plugins/scxvid { };
subtext = prev.callPackage ./plugins/subtext { };
tcanny = prev.callPackage ./plugins/tcanny { };
temporalmedian = prev.callPackage ./plugins/temporalmedian { };
temporalsoften2 = prev.callPackage ./plugins/temporalsoften2 { };
tnlmeans = prev.callPackage ./plugins/tnlmeans { };
ttempsmooth = prev.callPackage ./plugins/ttempsmooth { };
vivtc = prev.callPackage ./plugins/vivtc { };
vstrt = prev.callPackage ./plugins/vstrt { };
wwxd = prev.callPackage ./plugins/wwxd { };
znedi3 = prev.callPackage ./plugins/znedi3 { };
acsuite = callPythonPackage ./plugins/acsuite { };
adjust = callPythonPackage ./plugins/adjust { };
astdr = callPythonPackage ./plugins/astdr { };
debandshit = callPythonPackage ./plugins/debandshit { };
dfmderainbow = callPythonPackage ./plugins/dfmderainbow { };
edi_rpow2 = callPythonPackage ./plugins/edi_rpow2 { };
finedehalo = callPythonPackage ./plugins/finedehalo { };
mt_lutspa = callPythonPackage ./plugins/mt_lutspa { };
@ -87,4 +95,10 @@ in
};
getnative = callPythonPackage ./tools/getnative { };
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(python-final: python-prev: {
styler00dollar-vsgan-trt = callPythonPackage ./tools/styler00dollar-vsgan-trt { };
})
];
}

64
plugins/astdr/default.nix Normal file
View file

@ -0,0 +1,64 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, python
, vapoursynthPlugins
, vapoursynth
}:
let
plugins_native = with vapoursynthPlugins; [
awarpsharp2
fft3dfilter
hqdn3d
mvtools
ctmf
fluxsmooth
decross
temporalsoften2
motionmask
];
plugins_python = with vapoursynthPlugins; [
adjust
];
in
buildPythonPackage rec {
pname = "astdr";
version = "4";
src = fetchFromGitHub {
owner = "dubhater";
repo = "vapoursynth-astdr";
rev = "v${version}";
sha256 = "sha256-We3vhTZCGYZPMOAfWGif3yAxBUAPUk9zm9JQdlWhn8E=";
};
format = "other";
propagatedBuildInputs = plugins_native ++ plugins_python;
installPhase = ''
runHook preInstall
install -D ASTDR.py $out/${python.sitePackages}/ASTDR.py
runHook postInstall
'';
checkInputs = [ (vapoursynth.withPlugins plugins_native ) ];
checkPhase = ''
PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
'';
pythonImportsCheck = [ "ASTDR" ];
meta = with lib; {
description = "A VapourSynth derainbow function";
longDescription = ''
This is a port of the Avisynth function of the same name, version 1.74.
'';
homepage = "https://github.com/dubhater/vapoursynth-astdr";
license = licenses.unfree; # no license
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,40 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, cmake
, pkg-config
, vapoursynth
}:
stdenv.mkDerivation rec {
pname = "vapoursynth-decross";
version = "1";
src = fetchFromGitHub {
owner = "dubhater";
repo = pname;
rev = "v${version}";
sha256 = "sha256-BrtxBS1/q1rldVh8P9eHCeBoo/EueZ3TOrhaotV8l6g=";
};
nativeBuildInputs = [
meson
ninja
cmake
pkg-config
];
buildInputs = [ vapoursynth ];
mesonFlags = [ "--libdir=${placeholder "out"}/lib/vapoursynth" ];
meta = with lib; {
description = "A rainbow reduction filter plugin for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-decross";
license = licenses.gpl2;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,57 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, python
, vapoursynthPlugins
, vapoursynth
}:
let
plugins_native = with vapoursynthPlugins; [
minideen
msmoosh
mvtools
temporalmedian
temporalsoften2
];
in
buildPythonPackage rec {
pname = "dfmderainbow";
version = "unstable-10-17-2022";
src = fetchFromGitHub {
owner = "dubhater";
repo = "vapoursynth-dfmderainbow";
rev = "44dc6545bced8fc25672bdda717943a02c6b5d71";
sha256 = "sha256-0+DnuQKLaO4AHSK7o0LRpYI1oaYVe8qVgfq1K555afI=";
};
format = "other";
propagatedBuildInputs = plugins_native;
installPhase = ''
runHook preInstall
install -D dfmderainbow.py $out/${python.sitePackages}/dfmderainbow.py
runHook postInstall
'';
checkInputs = [ (vapoursynth.withPlugins plugins_native ) ];
checkPhase = ''
PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
'';
pythonImportsCheck = [ "dfmderainbow" ];
meta = with lib; {
description = "A VapourSynth derainbow function";
longDescription = ''
This is a port of the Avisynth function of the same name, version 20140223.
'';
homepage = "https://github.com/dubhater/vapoursynth-astdr";
license = licenses.unfree; # no license
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -1,17 +1,6 @@
{ lib, buildPythonPackage, fetchFromGitHub, vapoursynthPlugins, python, vapoursynth }:
buildPythonPackage rec {
pname = "havsfunc";
version = "33";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = pname;
rev = "r${version}";
sha256 = "14132gcy0zw348c40y2i8c7n3i1ygcnv9xrf83jp6m3b9v557z7p";
};
propagatedBuildInputs = with vapoursynthPlugins; [
let
plugins_native = with vapoursynthPlugins; [
addgrain
adjust
bm3d
@ -25,7 +14,6 @@ buildPythonPackage rec {
fft3dfilter
fluxsmooth
fmtconv
fmtconv
hqdn3d
knlmeanscl
miscfilters-obsolete
@ -37,14 +25,33 @@ buildPythonPackage rec {
ttempsmooth
znedi3
];
plugins_python = with vapoursynthPlugins; [
vsutil
];
in
buildPythonPackage rec {
pname = "havsfunc";
version = "unstable-2022-09-08";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = pname;
rev = "2c6d3fedc3c4c3f3ed2460f7014d1227fe2fe207";
sha256 = "sha256-YJl/X9niJelgovwUK6S50lvQUe/yYAbXEHWBbMqfXz0=";
};
format = "other";
propagatedBuildInputs = plugins_native ++ plugins_python;
installPhase = ''
runHook preInstall
install -D havsfunc.py $out/${python.sitePackages}/havsfunc.py
runHook postInstall
'';
checkInputs = [ (vapoursynth.withPlugins propagatedBuildInputs) ];
checkInputs = [ (vapoursynth.withPlugins plugins_native ) ];
checkPhase = ''
PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
'';

View file

@ -0,0 +1,42 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, vapoursynth
}:
stdenv.mkDerivation rec {
pname = "vapoursynth-minideen";
version = "2";
src = fetchFromGitHub {
owner = "dubhater";
repo = pname;
rev = "v${version}";
sha256 = "sha256-nwKK/dojmYEG/8d3shxyynNh0BbZbMk5ilvWtFBYzms=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [ vapoursynth ];
NIX_CFLAGS_COMPILE = [
"-O3"
];
mesonFlags = [ "--libdir=${placeholder "out"}/lib/vapoursynth" ];
meta = with lib; {
description = "Spatial denoising plugin for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-minideen";
license = licenses.isc;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/src/minideen.cpp b/src/minideen.cpp
index d138888..2b81d6e 100644
--- a/src/minideen.cpp
+++ b/src/minideen.cpp
@@ -119,7 +119,7 @@ static void process_plane_sse2_8bit(const uint8_t *srcp, uint8_t *dstp, int firs
__m128i magic_hi = zeroes;
for (int i = 0; i < 8; i++) {
- uint16_t e_lo = _mm_extract_epi16(counter_lo, i);
+ uint16_t e_lo = _mm_extract_epi16(counter_lo, 0);
uint16_t e_hi = _mm_extract_epi16(counter_hi, i);
magic_lo = _mm_insert_epi16(magic_lo, magic[e_lo], i);
magic_hi = _mm_insert_epi16(magic_hi, magic[e_hi], i);

View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, vapoursynth
}:
stdenv.mkDerivation rec {
pname = "vapoursynth-motionmask";
version = "unstable-2021-07-20";
src = fetchFromGitHub {
owner = "dubhater";
repo = pname;
rev = "ed86b06688c2db1b05d7026f66a2574e64c9e69e";
sha256 = "sha256-wYb3L8aETt4FfpWugiOHMmgBSLN0Xuo1vxkQLULQUoE=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [ vapoursynth ];
mesonFlags = [ "--libdir=${placeholder "out"}/lib/vapoursynth" ];
meta = with lib; {
description = "MotionMask plugin for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-motionmask";
license = licenses.mit;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, vapoursynth
}:
stdenv.mkDerivation rec {
pname = "vapoursynth-temporalmedian";
version = "1";
src = fetchFromGitHub {
owner = "dubhater";
repo = pname;
rev = "v${version}";
sha256 = "sha256-UMYBA0kAGiNdcacV25O0pFgbt8bYbhS19u6edZfugYE=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [ vapoursynth ];
mesonFlags = [ "--libdir=${placeholder "out"}/lib/vapoursynth" ];
meta = with lib; {
description = "Temporal denoising plugin for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-temporalmedian";
license = licenses.isc;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, vapoursynth
}:
stdenv.mkDerivation rec {
pname = "vapoursynth-temporalsoften2";
version = "unstable-2019-03-25";
src = fetchFromGitHub {
owner = "dubhater";
repo = pname;
rev = "a133670676a311dde31b0eb1a771bbd94ffb1235";
sha256 = "sha256-RxFSDmwzBuO7EfxryV2UZRAjGCW3JcGtcCX+mDnAYb8=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [ vapoursynth ];
mesonFlags = [ "--libdir=${placeholder "out"}/lib/vapoursynth" ];
meta = with lib; {
description = "TemporalSoften filter plugin for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-temporalsoften2";
license = licenses.lgpl2;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

55
plugins/vstrt/default.nix Normal file
View file

@ -0,0 +1,55 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, vapoursynth
, cudatoolkit
, cudaPackages
}:
stdenv.mkDerivation rec {
pname = "vstrt";
version = "10";
src = fetchFromGitHub {
owner = "AmusementClub";
repo = "vs-mlrt";
rev = "v${version}";
sha256 = "sha256-fnnVaWPvT/eqr1WEwyhX8zi26IK3Ndm7UHLkSLI1nFk=";
};
sourceRoot = "source/vstrt";
patches = [
./no-git-call-in-cmake.patch
];
nativeBuildInputs = [
cmake
];
buildInputs = [
vapoursynth
cudatoolkit
cudaPackages.tensorrt
];
cmakeFlags = [
"-DVCS_TAG=v${version}"
"-DCMAKE_CXX_FLAGS=-I${vapoursynth}/include/vapoursynth"
"-DCMAKE_SKIP_RPATH=ON"
];
postInstall = ''
mkdir $out/lib/vapoursynth
ln -s $out/lib/libvstrt.so $out/lib/vapoursynth
'';
meta = with lib; {
description = "TensorRT-based GPU Runtime";
homepage = "https://github.com/AmusementClub/vs-mlrt";
license = licenses.gpl3;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,15 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,12 +61,6 @@ target_include_directories(vstrt PUBLIC
"${PROJECT_BINARY_DIR}"
)
-find_package(Git REQUIRED)
-execute_process(
- COMMAND ${GIT_EXECUTABLE} describe --tags --long --always
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- OUTPUT_VARIABLE VCS_TAG
-)
string(STRIP ${VCS_TAG} VCS_TAG)
configure_file(config.h.in config.h)

View file

@ -0,0 +1,63 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, python3
# Needed to explicitly get the VapourSynth *Python* package.
, python3Packages
, numpy
, torch
}:
let
pythonPackageName = "styler00dollar";
in
buildPythonPackage rec {
pname = "styler00dollar-vsgan-trt";
version = "unstable-2022-09-19";
src = fetchFromGitHub {
owner = "styler00dollar";
repo = "VSGAN-tensorrt-docker";
rev = "cf9c45cdacba9f19b25e26d0e4767bcfe5d48db0";
sha256 = "sha256-L2HwE5r9OMiuupolJJbvPRIzWIRXc9uDSPC2WTZwWl8=";
};
format = "other";
propagatedBuildInputs = [
numpy
torch
python3Packages.vapoursynth
];
postPatch = ''
sed --in-place 's/src\./${pythonPackageName}./' convert_*_to_onnx.py
'';
installPhase = ''
runHook preInstall
mkdir -p $out/${python3.sitePackages}
# "src" is the actual name of the subdirectory from upstream.
cp -r src $out/${python3.sitePackages}/${pythonPackageName}
mkdir -p $out/examples
cp convert_*_to_onnx.py $out/examples
runHook postInstall
'';
meta = with lib; {
description = "VSGAN utility modules from styler00dollar";
longDescription = ''
Various utility modules by styler00dollar for working with TensorRT.
This can be used to convert ESRGAN models to to ONXX models, which is
required if you want to use ESRGAN models with TensorRT.
'';
homepage = "https://github.com/styler00dollar/VSGAN-tensorrt-docker";
license = licenses.bsd3;
maintainers = with maintainers; [ aidalgol ];
platforms = platforms.all;
};
}