diff --git a/assets/shaders/anime4k/Anime4K_AutoDownscalePre_x2.glsl b/assets/shaders/anime4k/Anime4K_AutoDownscalePre_x2.glsl new file mode 100644 index 00000000..d321b7d7 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_AutoDownscalePre_x2.glsl @@ -0,0 +1,36 @@ +// This is free and unencumbered software released into the public domain. + +// Anyone is free to copy, modify, publish, use, compile, sell, or +// distribute this software, either in source code form or as a compiled +// binary, for any purpose, commercial or non-commercial, and by any +// means. + +// In jurisdictions that recognize copyright laws, the author or authors +// of this software dedicate any and all copyright interest in the +// software to the public domain. We make this dedication for the benefit +// of the public at large and to the detriment of our heirs and +// successors. We intend this dedication to be an overt act of +// relinquishment in perpetuity of all present and future rights to this +// software under copyright law. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +// For more information, please refer to + +//!DESC Anime4K-v4.0-AutoDownscalePre-x2 +//!HOOK MAIN +//!BIND HOOKED +//!BIND NATIVE +//!WHEN OUTPUT.w NATIVE.w / 2.0 < OUTPUT.h NATIVE.h / 2.0 < * OUTPUT.w NATIVE.w / 1.2 > OUTPUT.h NATIVE.h / 1.2 > * * +//!WIDTH OUTPUT.w +//!HEIGHT OUTPUT.h + +vec4 hook() { + return HOOKED_tex(HOOKED_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_AutoDownscalePre_x4.glsl b/assets/shaders/anime4k/Anime4K_AutoDownscalePre_x4.glsl new file mode 100644 index 00000000..7ffa64d0 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_AutoDownscalePre_x4.glsl @@ -0,0 +1,36 @@ +// This is free and unencumbered software released into the public domain. + +// Anyone is free to copy, modify, publish, use, compile, sell, or +// distribute this software, either in source code form or as a compiled +// binary, for any purpose, commercial or non-commercial, and by any +// means. + +// In jurisdictions that recognize copyright laws, the author or authors +// of this software dedicate any and all copyright interest in the +// software to the public domain. We make this dedication for the benefit +// of the public at large and to the detriment of our heirs and +// successors. We intend this dedication to be an overt act of +// relinquishment in perpetuity of all present and future rights to this +// software under copyright law. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +// For more information, please refer to + +//!DESC Anime4K-v3.2-AutoDownscalePre-x4 +//!HOOK MAIN +//!BIND HOOKED +//!BIND NATIVE +//!WHEN OUTPUT.w NATIVE.w / 4.0 < OUTPUT.h NATIVE.h / 4.0 < * OUTPUT.w NATIVE.w / 2.4 > OUTPUT.h NATIVE.h / 2.4 > * * +//!WIDTH OUTPUT.w 2 / +//!HEIGHT OUTPUT.h 2 / + +vec4 hook() { + return HOOKED_tex(HOOKED_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_Clamp_Highlights.glsl b/assets/shaders/anime4k/Anime4K_Clamp_Highlights.glsl new file mode 100644 index 00000000..755130a8 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Clamp_Highlights.glsl @@ -0,0 +1,90 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v4.0-De-Ring-Compute-Statistics +//!HOOK MAIN +//!BIND HOOKED +//!SAVE STATSMAX +//!COMPONENTS 1 + +#define KERNELSIZE 5 //Kernel size, must be an positive odd integer. +#define KERNELHALFSIZE 2 //Half of the kernel size without remainder. Must be equal to trunc(KERNELSIZE/2). + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + + float gmax = 0.0; + + for (int i=0; iRGB matrix has 1 for every row... (which is the case for BT.709) + //Otherwise we would need to convert RGB to YUV, modify Y then convert back to RGB. + return HOOKED_tex(HOOKED_pos) - (current_luma - new_luma); +} \ No newline at end of file diff --git a/assets/shaders/anime4k/Anime4K_Restore_CNN_M.glsl b/assets/shaders/anime4k/Anime4K_Restore_CNN_M.glsl new file mode 100644 index 00000000..7f5ea9d8 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Restore_CNN_M.glsl @@ -0,0 +1,275 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.09991986, 0.13782342, -0.031251684, -0.06356843, -0.3437488, 0.05450952, 0.34347802, 0.46335372, 0.08607224, 0.044988394, 0.137179, 0.17976908, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.024212424, -0.09278509, -0.00040907756, 0.34552294, -0.13254678, 0.113105185, 0.005667946, -0.00036919137, -0.06375679, 0.009184115, 0.115518734, -0.115506776, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.14101827, 0.023523493, 0.044094566, -0.019271746, -0.44348842, -0.08818877, -0.4026149, -0.21995795, -0.15880394, -0.013732858, -0.020751135, 0.012719151, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.013001821, -0.34503505, 0.39219138, 0.18792126, 0.24760444, -0.016173402, 0.10154511, 0.15453082, -0.058132876, 0.016784398, -0.05808539, -0.11039915, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(0.37024534, 0.041440863, -0.3374568, -0.44994286, 0.19555596, 0.20855539, -0.27974075, -0.5372628, 0.21228147, -0.0295346, -0.56700057, 0.030042822, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.12940632, 0.057526, 0.090682045, -0.06985033, -0.13704006, -0.047685407, 0.44615674, -0.48056605, -0.06166251, -0.01883519, 0.2032237, -0.113287605, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.010856669, -0.35820737, 0.16757219, 0.082619876, -0.03967303, 0.038705572, 0.32652855, -0.012030017, 0.015120559, -0.15314877, 0.23442009, 0.09767922, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.046272673, -0.17752305, 0.082018286, -0.2512824, 0.58619463, -0.060903464, -0.022793597, 0.077803515, -0.17025311, 0.05136993, 0.029383298, -0.15475409, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.11212024, 0.13378005, -0.2027488, 0.08056421, -0.11176219, -0.048429377, -0.08396386, 0.10507829, 0.13326839, 0.0430627, 0.051362377, 0.06482755, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.061233472, 0.39222646, 0.029704979, 0.02586828); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_tf +//!SAVE conv2d_1_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.16410656, -0.40521824, 0.13121907, -0.02314597, 0.105412476, -0.060401272, -0.043063477, -0.13933973, 0.12558138, -0.020861467, 0.030370515, 0.13178016, -0.14220351, 0.20736893, 0.003321564, -0.29241714) * go_0(-1.0, -1.0); + result += mat4(0.18517321, 0.29162985, -0.26783395, 0.039760686, 0.025527012, -0.067319244, 0.055004176, 0.048916563, 0.12750523, -0.091435954, 0.13818842, 0.36704224, 0.0839921, 0.10186618, -0.17237376, 0.13282418) * go_0(-1.0, 0.0); + result += mat4(-0.1657887, 0.0131325135, -0.17222486, 0.091398895, -0.12756164, -0.08437298, -0.29052997, 0.3269337, 0.15870757, -0.013529402, -0.0581753, 0.11802371, 0.07099966, -0.024063632, 0.31834844, -0.11183859) * go_0(-1.0, 1.0); + result += mat4(0.46036887, -0.07654623, 0.22923063, 0.17463821, 0.10555414, -0.117430426, 0.12406777, -0.011399492, 0.028316498, 0.13684341, 0.009664087, 0.2022659, 0.04953974, -0.31342217, -0.6103131, -0.13605757) * go_0(0.0, -1.0); + result += mat4(0.03406955, -0.39819366, 0.61176, -0.46809456, -0.029321073, 0.46619493, 0.36700186, 0.02288561, 0.11464085, -0.10931452, -0.09154022, 0.07334147, -0.5609916, 0.31826234, -0.011012659, -0.46719545) * go_0(0.0, 0.0); + result += mat4(-0.056855045, 0.27037027, -0.09269696, -0.563572, -0.06816116, -0.22986612, 0.08693167, -0.16246101, 0.09954046, -0.05374176, 0.0071916827, -0.1788692, 0.3825241, -0.1609887, 0.055204768, 0.10213068) * go_0(0.0, 1.0); + result += mat4(0.0646626, 0.102358796, -0.45055822, 0.20557903, -0.23337309, 0.12633002, -0.19299199, -0.15085731, -0.13473304, 0.053790465, -0.10061193, -0.13393497, -0.04264752, -0.029740738, -0.07865285, 0.20883279) * go_0(1.0, -1.0); + result += mat4(0.010471527, -0.033218473, -0.46157447, 0.004866583, 0.23226471, -0.059343327, -0.1439596, 0.13619648, 0.013839963, 0.15930325, 0.043742355, 0.17467323, 0.33772305, 0.40261495, -0.08351293, 0.18129359) * go_0(1.0, 0.0); + result += mat4(-0.12493434, -0.1875134, -0.074943796, -0.0031701606, -0.037142616, 0.1667002, 0.16665547, -0.011248127, 0.0071619414, 0.0034872112, 0.120318964, -0.09625579, 0.14917047, -0.16310586, 0.07231737, 0.30447328) * go_0(1.0, 1.0); + result += mat4(0.093798615, 0.17074613, -0.08780678, -0.012520207, 0.118534856, 0.027508778, -0.2778478, -0.19509242, -0.34137097, 0.32000312, -0.22027159, 0.337515, 0.16220862, 0.108993016, 0.14070526, 0.12784284) * go_1(-1.0, -1.0); + result += mat4(-0.14325632, -0.1467453, -0.27502358, 0.09370837, 0.11821083, -0.012266484, -0.2100548, 0.4707502, -0.06766648, 0.58165014, -0.2512279, -0.33783755, 0.1318925, -0.04346277, 0.15454485, 0.044500057) * go_1(-1.0, 0.0); + result += mat4(-0.05683207, 0.0051946463, -0.108000524, 0.10133204, -0.50763863, 0.007308442, 0.8542404, 0.28387356, 0.022709515, 0.294523, -0.3822472, 0.66166407, 0.01404485, 0.031282708, -0.26756814, -0.123147786) * go_1(-1.0, 1.0); + result += mat4(-0.36455178, 0.3470555, -0.045303088, -0.03170764, -0.15802494, -0.0019141496, -0.25939587, -0.23875342, 0.130428, 0.03954273, -0.17985536, 0.105145946, 0.15804817, 0.12551713, 0.28371975, -0.085748516) * go_1(0.0, -1.0); + result += mat4(0.0060625463, 0.2443924, -0.017692259, -0.20214005, -0.09584515, -0.012805372, -0.13942227, 0.16143198, 0.12942013, 0.41785547, 0.046071563, 0.7030026, 0.10499644, -0.20566013, -0.031321276, 0.27830327) * go_1(0.0, 0.0); + result += mat4(-0.081274964, -0.14562319, 0.27200526, -0.20491314, 0.012910989, 0.024201397, 0.04816258, 0.21297328, -0.22015952, -0.44160756, -0.056035373, 0.33824417, -0.31645304, 0.15469243, 0.053187452, -0.20989445) * go_1(0.0, 1.0); + result += mat4(-0.046550367, 0.033185404, 0.33337244, 0.12853645, 0.23520172, -0.05909214, 0.0861368, 0.10706329, -0.07058717, -0.11759937, -0.18594047, 0.080006264, -0.055425353, -0.12506317, 0.15729053, -0.0915004) * go_1(1.0, -1.0); + result += mat4(0.042516407, 0.14844789, 0.16533111, 0.13502933, -0.0655417, -0.057256397, 0.076713726, -0.23448966, 0.12855926, 0.014219275, 0.051761385, 0.053433083, -0.2446715, -0.4008074, 0.19603717, -0.1796951) * go_1(1.0, 0.0); + result += mat4(0.14777803, 0.15524907, 0.043158617, -0.06996876, 0.19210646, -0.2144364, -0.47020787, -0.4207906, -0.18074386, -0.2163903, 0.0030754965, 0.36799973, -0.3837698, -0.0022661497, -0.37276733, -0.28934997) * go_1(1.0, 1.0); + result += vec4(-0.018297346, -0.080951825, -0.062163066, -0.08050014); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!SAVE conv2d_2_tf +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.31543177, 0.23095237, -0.06692611, -0.5867763, 0.003622504, 0.17948842, -0.14627707, 0.1745016, -0.052964583, -0.15551159, 0.05644786, -0.012665164, 0.13107763, 0.11369179, -0.09452995, -0.11973403) * go_0(-1.0, -1.0); + result += mat4(-0.2694661, -0.115382135, 0.3073268, -0.067228466, -0.25511482, -0.13922207, 0.36758214, -0.18821828, -0.022617863, 0.20333402, -0.11125889, 0.3552245, -0.013346653, -0.099095374, -0.25100616, 0.35521755) * go_0(-1.0, 0.0); + result += mat4(0.011012409, -0.13675085, 0.25642, -0.34851208, -0.23184675, 0.18012202, 0.57654136, 0.103173524, -0.16461405, 0.038177088, 0.1234096, 0.013202029, -0.19033363, 0.07469178, -0.017948546, 0.15287702) * go_0(-1.0, 1.0); + result += mat4(-0.05340533, 0.23797482, 0.20351392, -0.05333351, -0.12181174, -0.23363493, -0.20696607, 0.109941036, -0.11519453, 0.13842066, -0.10687832, 0.29040006, 0.022218632, 0.031238724, 0.2685182, 0.15300068) * go_0(0.0, -1.0); + result += mat4(0.22985318, -0.3103802, -0.22916415, 0.25238806, -0.11690287, -0.1947488, 0.118020535, 0.07814263, -0.06335474, -0.007870727, 0.076106325, 0.094677486, -0.16776285, -0.006570437, -0.29589584, 0.41413507) * go_0(0.0, 0.0); + result += mat4(0.43607962, -0.36456433, -0.123776875, -0.16634953, -0.091190875, 0.13035081, 0.28627968, 0.27249968, 0.12356344, -0.008616177, 0.09599816, -0.006144557, -0.23490307, 0.3013123, 0.14153156, 0.21837278) * go_0(0.0, 1.0); + result += mat4(0.060364585, 0.37860224, 0.039182413, -0.22805426, -0.089910224, -0.06817697, -0.2684275, -0.12528503, 0.036934495, -0.07826616, 0.06559976, -0.08253646, 0.13489649, 0.06237663, 0.126376, 0.21194184) * go_0(1.0, -1.0); + result += mat4(-0.12534817, 0.21225189, -0.27818045, -0.3070443, -0.006957577, -0.025105853, 0.12100924, -0.06916452, 0.23081483, 0.1802756, -0.18995638, 0.16603014, -0.2904096, -0.25292823, -0.21834068, 0.13719653) * go_0(1.0, 0.0); + result += mat4(0.017209655, 0.10757137, 0.21414296, -0.30885983, 0.10467716, -0.2184891, 0.100061476, -0.1527528, 0.2100472, -0.25768545, -0.22329919, -0.29153427, -0.06983842, -0.103854865, -0.051384352, 0.14629121) * go_0(1.0, 1.0); + result += mat4(0.0059623295, -0.26060802, 0.32115817, 0.021025505, 0.09783085, -0.15865178, 0.1473021, -0.24977303, -0.033508282, 0.17480391, -0.091310136, 0.09870876, 0.10504043, -0.06105686, 0.013493489, -0.11278855) * go_1(-1.0, -1.0); + result += mat4(0.14875248, -0.14859414, 0.19377062, -0.17456068, 0.101288855, -0.1113682, -0.48944646, 0.1018565, -0.037392337, 0.08539691, 0.1751306, -0.15428723, -0.059375558, 0.027663672, 0.051804014, -0.049813222) * go_1(-1.0, 0.0); + result += mat4(0.118846565, -0.19869871, -0.037388258, 0.08456728, -0.11662527, -0.43818352, -0.093285345, 0.038507205, -0.051991668, 0.21008292, 0.10792365, 0.2020924, 0.057021596, 0.09460527, 0.0016551288, -0.0015957063) * go_1(-1.0, 1.0); + result += mat4(0.11062174, -0.2639232, -0.060295466, -0.3217331, -0.050545212, 0.30989558, 0.30906132, 0.030323273, 0.028986752, 0.037429404, 0.20855664, -0.19848943, 0.034687653, -0.09599135, -0.06250494, -0.13215867) * go_1(0.0, -1.0); + result += mat4(-0.010391146, 0.07657845, 0.44491258, 0.0435906, 0.0075931503, 0.42632654, 0.47022533, 0.34737435, -0.15452717, -0.14613411, -0.45231065, 0.12094409, 0.0067911847, 0.057501152, 0.09876979, 0.044946447) * go_1(0.0, 0.0); + result += mat4(-0.15607435, 0.2293058, -0.09520331, 0.012836732, -0.15282455, 0.26437718, -0.1685477, -0.13211122, -0.055801593, -0.016778728, -0.34478986, -0.23228309, 0.12300962, -0.13235827, -0.13987203, -0.16550972) * go_1(0.0, 1.0); + result += mat4(0.13161735, -0.09039346, -0.033475474, -0.23686698, 0.1514885, 0.20977421, 0.031431954, -0.0049226107, 0.090661936, 0.15288061, -0.03316583, 0.09646573, -0.32651708, 0.18825398, -0.15777239, 0.17572704) * go_1(1.0, -1.0); + result += mat4(0.112157226, -0.08712878, 0.23453182, 0.1043877, -0.14686783, 0.28682423, -0.086443506, 0.059457052, -0.31530112, -0.2700583, -0.06028952, -0.070416875, 0.18053482, 0.16653341, 0.25215197, 0.061915852) * go_1(1.0, 0.0); + result += mat4(-0.20122242, 0.076313145, -0.0988483, 0.094337784, -0.35436687, 0.3762327, -0.07809558, 0.3055848, 0.10425242, -0.17087407, 0.030301496, -0.13911743, 0.01630275, 0.24247427, -0.006474477, 0.03842641) * go_1(1.0, 1.0); + result += vec4(-0.008952847, -0.0058945753, -0.08097229, 0.020968592); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!SAVE conv2d_3_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.2237721, -0.0064096362, -0.31808427, 0.73477733, 0.015353088, 0.23983319, 0.14967978, -0.34920225, -0.07456269, 0.093151815, -0.14331086, -0.24586205, -0.14183366, 0.06401045, -0.22044073, 0.29932275) * go_0(-1.0, -1.0); + result += mat4(-0.07968509, -0.3349146, 0.16529128, 0.08443499, 0.4095855, -0.17120704, 0.17425705, 0.15298946, 0.2981273, 0.2212369, 0.10392389, -0.28775454, -0.065247655, -0.15255849, 0.13094437, 0.18685219) * go_0(-1.0, 0.0); + result += mat4(0.015706737, -0.17755036, 0.2622526, 0.112057306, -0.15876788, -0.38466996, -0.33700845, -0.031711742, -0.023320962, -0.3145249, -0.21223734, -0.1314596, -0.1888095, -0.046370104, 0.09000896, -0.0046378844) * go_0(-1.0, 1.0); + result += mat4(-0.31127506, 0.31304324, -0.03965752, 0.03649018, -0.029851055, 0.05801377, 0.00040150844, -0.04422069, 0.18019931, 0.14415511, -0.09845236, 0.21895434, -0.013932474, -0.046454947, -0.3403935, -0.006705289) * go_0(0.0, -1.0); + result += mat4(-0.34878647, -0.5129283, 0.060250953, -0.16354133, 0.20644619, 0.08732273, -0.24118888, 0.24455065, 0.24449423, 0.44103387, 0.22455928, 0.25738943, -0.26914698, -0.21309987, 0.08386486, 0.021484816) * go_0(0.0, 0.0); + result += mat4(-0.057454903, -0.4121922, 0.022661546, 0.37178272, 0.03331408, 0.05044008, 0.04324371, 0.20727943, 0.2432641, 0.076906696, -0.20858039, 0.012439015, -0.19335061, 0.09217451, 0.1968369, -0.19435833) * go_0(0.0, 1.0); + result += mat4(-0.16960496, 0.24616167, 0.37977478, 0.14324574, -0.011531225, -0.11312143, -0.18141079, -0.23843932, 0.0086012175, -0.3564491, -0.12639481, 0.009799298, -0.29120612, 0.23756824, 0.18035695, -0.087133996) * go_0(1.0, -1.0); + result += mat4(-0.10081239, 0.29191494, 0.10434693, 0.08970636, 0.008997759, 0.104756236, 0.039641086, 0.02323888, -0.11627765, 0.023693223, -0.30801758, -0.120208986, 0.05086147, 0.18498175, 0.15595439, -0.09877306) * go_0(1.0, 0.0); + result += mat4(0.101321675, -0.2929976, 0.38810417, 0.5605376, -0.04073937, 0.030110704, -0.18147062, -0.09833952, 0.01927733, 0.15335669, -0.15384074, -0.110595055, -0.054297395, -0.077522054, 0.07918369, -0.068480626) * go_0(1.0, 1.0); + result += mat4(0.23263514, -0.11719232, 0.2903209, -0.007503795, -0.020222448, -0.17790157, -0.15600762, -0.08741775, 0.12529704, 0.25548857, -0.04585447, -0.10255033, 0.18350503, -0.29593533, 0.0868933, 0.027004737) * go_1(-1.0, -1.0); + result += mat4(-0.14958654, -0.006238835, -0.2928948, 0.1988557, -0.17057803, 0.12524141, 0.13978264, -0.019280292, 0.05967142, -0.07790818, -0.5893818, -0.022845713, -0.08596779, 0.07875358, -0.03316667, -0.4369282) * go_1(-1.0, 0.0); + result += mat4(0.19195688, -0.060883682, -0.25897828, 0.07063324, 0.090833396, 0.003422883, 0.109534174, 0.031180874, -0.05017118, 0.022862168, -0.270113, -0.057831235, 0.53920543, -0.10252776, -0.091807485, 0.004294343) * go_1(-1.0, 1.0); + result += mat4(-0.18494242, -0.119284816, 0.3821897, 0.07777979, 0.15568028, -0.2854859, -0.22441281, -0.049155876, -0.15292497, 0.21895619, -0.095677756, 0.15210424, 0.001643022, -0.026176987, 0.048463076, -0.4824009) * go_1(0.0, -1.0); + result += mat4(0.007215129, 0.17074333, 0.053930074, -0.027014816, -0.17180431, -0.15163863, -0.0012122132, -0.18934256, -0.08294297, -0.24580221, -0.46552867, -0.27923223, 0.4092668, 0.06288688, -0.1602188, -0.0030876845) * go_1(0.0, 0.0); + result += mat4(0.111870885, 0.03317145, 0.14155298, 0.20328505, -0.05104131, 0.13979794, 0.018966835, -0.07238511, 0.05493792, -0.14975783, -0.10293237, -0.21985306, 0.49054706, 0.18288186, -0.26925826, 0.35845932) * go_1(0.0, 1.0); + result += mat4(0.3747799, -0.096748486, -0.17139742, 0.25289854, -0.17421168, -0.018461818, 0.09747162, 0.01660535, -0.20580359, 0.56189656, 0.17151354, -0.26347768, 0.28350568, -0.21486014, -0.44330928, -0.008981037) * go_1(1.0, -1.0); + result += mat4(0.10169985, -0.18244018, 0.04760736, 0.41017643, -0.09468786, -0.024218475, 0.103733875, -0.22540338, 0.10630112, 0.3677178, -0.104170956, 0.057317447, 0.21764882, 0.0789158, -0.22041337, 0.15065216) * go_1(1.0, 0.0); + result += mat4(0.11633995, -0.008195114, -0.14501533, 0.07168025, 0.058413275, 0.055995367, 0.09362145, -0.13827963, 0.13760869, 0.040319785, 0.038895044, 0.2675253, -0.087339684, 0.1412073, -0.17166458, -0.2312994) * go_1(1.0, 1.0); + result += vec4(-0.059377354, -0.02055341, 0.07234869, -0.015452986); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!SAVE conv2d_4_tf +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.29012984, -0.13150147, 0.31015614, 0.05992291, -0.050289866, 0.14845313, -0.09608898, 0.27913308, 0.060307387, -0.04160452, 0.035932682, -0.08137563, -0.07999419, 0.11818284, -0.27512288, 0.21948813) * go_0(-1.0, -1.0); + result += mat4(0.12916058, -0.21759962, -0.33868533, 0.021636661, 0.053470243, 0.1412425, 0.043395396, -0.26751056, -0.01689101, -0.2623835, 0.010809152, 0.062962815, -0.20692012, -0.1677863, -0.23313859, -0.17402615) * go_0(-1.0, 0.0); + result += mat4(-0.08204112, -0.23672083, -0.0064437394, -0.13200696, -0.056692924, -0.02708657, 0.12536962, 0.004428919, 0.14137582, 0.15404348, -0.105753876, 0.047957454, 0.15734316, 0.16562423, -0.010160829, -0.06602983) * go_0(-1.0, 1.0); + result += mat4(0.025653997, -0.10877775, -0.31258908, 0.18841636, -0.36005193, 0.1816357, -0.34537643, -0.0741087, 0.4663994, 0.0065186517, 0.08109033, 0.2976773, -0.35774228, -0.041366056, -0.37852773, 0.050565656) * go_0(0.0, -1.0); + result += mat4(0.04392313, 0.11316681, -0.14421389, 0.17985669, -0.1651274, -0.5656209, -0.124100484, 0.42774054, -0.1153939, 0.16829851, 0.2025612, 0.054007456, -0.06868256, -0.56935954, -0.12227961, 0.17688861) * go_0(0.0, 0.0); + result += mat4(0.34041, 0.499, 0.15234196, 0.21353458, -0.2732667, -0.049950935, 0.03550811, -0.21051687, 0.2609023, 0.016438454, -0.29874632, 0.37994128, 0.049288407, -0.31126305, 0.029235512, -0.012256015) * go_0(0.0, 1.0); + result += mat4(-0.0046853204, 0.15391374, -0.040689662, 0.20186873, -0.08137621, 0.35905558, 0.23733845, 0.21794793, -0.066420384, 0.029600656, -0.31421044, -0.050773863, -0.06260773, 0.04634221, -0.10948491, -0.045498934) * go_0(1.0, -1.0); + result += mat4(-0.082953, -0.025837064, -0.09928303, -0.14300232, 0.275064, 0.07793617, 0.22240888, 0.06637834, -0.4382666, -0.2932182, -0.27243167, -0.14221182, 0.5695728, 0.20719238, 0.5575927, 0.40816882) * go_0(1.0, 0.0); + result += mat4(-0.18510929, -0.15052167, 0.25277212, 0.06804461, 0.016387, 0.20310035, 0.2903229, -0.0615877, -0.28987274, -0.11942605, 0.013498961, 0.3184152, 0.29543474, -0.042830903, -0.018111207, -0.13263674) * go_0(1.0, 1.0); + result += mat4(0.25749087, 0.0053866603, -0.09391162, -0.06129529, -0.094091184, -0.07419633, 0.0013858611, 0.012000353, -0.062903, -0.0204224, -0.12113313, 0.017942557, -0.073379934, 0.052201986, 0.35864577, 0.023564404) * go_1(-1.0, -1.0); + result += mat4(0.100115694, 0.19451359, 0.23252094, 0.19506809, -0.12470779, 0.0027281935, -0.17488572, -0.018721964, -0.15159339, 0.18457152, 0.057712987, -0.08191495, 0.19735703, 0.07326743, -0.28563106, 0.01642815) * go_1(-1.0, 0.0); + result += mat4(0.068062514, 0.28356665, 0.07377898, 0.42776972, 0.28725025, -0.13045293, -0.17525704, -0.05885591, -0.16676305, -0.2555945, -0.10078422, -0.053032875, 0.084470876, 0.06460686, 0.13824362, -0.05231353) * go_1(-1.0, 1.0); + result += mat4(0.22637829, -0.028969254, 0.1968254, -0.13331996, 0.038017053, -0.008854481, -0.2031639, 0.09237089, -0.3821112, 0.1108527, -0.11029933, -0.24542028, 0.22416145, -0.031492114, -0.19144306, -0.0996271) * go_1(0.0, -1.0); + result += mat4(0.10776744, 0.16363445, 0.14656505, -0.3737814, -0.06642015, 0.5616549, -0.008412252, -0.37266847, 0.12506576, -0.15329036, 0.037538245, -0.10810259, 0.01706349, 0.1813702, 0.035651788, -0.012786579) * go_1(0.0, 0.0); + result += mat4(-0.4023338, -0.2098614, -0.18285121, -0.02727653, 0.26107362, 0.041306913, -0.036515504, -0.045217298, -0.39958602, -0.21229339, -0.021053292, -0.13427502, 0.36178818, 0.20934913, 0.1500852, 0.2634554) * go_1(0.0, 1.0); + result += mat4(0.07794611, -0.25937587, -0.06822529, -0.056336135, 0.094220124, 0.21588847, -0.0455218, -0.10968329, -0.08068449, -0.31366697, 0.07799637, 0.24252681, 0.23963861, 0.13715535, 0.010329345, 0.09094301) * go_1(1.0, -1.0); + result += mat4(-0.20975718, -0.12550138, 0.14453574, -0.0020878632, -0.07153068, 0.3249998, -0.056577377, 0.18166828, 0.37204072, 0.17018336, 0.3752895, 0.32178587, 0.2571982, -0.27258632, -0.25971004, -0.40536007) * go_1(1.0, 0.0); + result += mat4(-0.3243907, -0.06300621, -0.09398436, -0.19549188, 0.14906861, 0.061537784, -0.055284478, 0.11281728, 0.12964857, 0.09979093, -0.1810159, -0.4104283, 0.05807971, -0.056371246, 0.08072554, 0.18479007) * go_1(1.0, 1.0); + result += vec4(-0.048888464, -0.0561434, 0.030690912, -0.030496685); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!SAVE conv2d_5_tf +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.15332128, 0.027258258, 0.14900503, -0.15982795, 0.17021236, -0.51046044, -0.15287271, -0.058167327, 0.51826185, -0.34817994, 0.004513167, 0.05395769, 0.1990321, -0.049979225, 0.11391989, -0.16062729) * go_0(-1.0, -1.0); + result += mat4(0.033682905, 0.019728886, 0.19931756, 0.17381927, 0.2585768, -0.2124572, -0.014632459, 0.39779893, -0.1146207, -0.2396625, 0.08960277, 0.38345298, 0.25497693, 0.11692859, -0.14207517, 0.12667973) * go_0(-1.0, 0.0); + result += mat4(-0.14911255, 0.08910706, 0.16136818, 0.03914566, 0.24204038, -0.03607149, -0.4571109, 0.10802461, -0.0021356856, 0.00885878, 0.22297303, 0.2367231, 0.045177583, 0.11120606, -0.009971904, -0.059262395) * go_0(-1.0, 1.0); + result += mat4(0.24565999, -0.2261384, 0.47373205, 0.024613412, -0.10923052, 0.039027315, -0.42707404, -0.3783373, 0.3544573, -0.5468578, -0.27599156, -0.09455918, 0.18760219, -0.19082001, 0.030565469, 0.20589156) * go_0(0.0, -1.0); + result += mat4(0.1973198, -0.03433863, 0.059960485, 0.045642868, 0.1819595, -0.14460869, 0.1286175, 0.2067575, -0.042632047, -0.11842967, -0.11224446, -0.18764776, -0.19563004, 0.027425969, 0.24056377, 0.5949649) * go_0(0.0, 0.0); + result += mat4(0.055027682, 0.16331595, -0.2608588, 0.12545955, 0.4588985, 0.03642909, 0.22187738, 0.45190734, -0.001210133, -0.057651415, -0.061199043, 0.11935476, -0.049561135, 0.27509886, 0.13778673, -0.124914035) * go_0(0.0, 1.0); + result += mat4(-0.02257459, 0.27705106, 0.044165276, -0.26521233, 0.05982374, -0.2824302, 0.3171142, 0.08430561, -0.10155528, 0.16182268, -0.09183147, -0.19447176, 0.3295707, -0.50616395, -0.036964044, 0.23166709) * go_0(1.0, -1.0); + result += mat4(-0.0232342, 0.07299799, -0.18038079, -0.13672702, -0.108305976, 0.15024792, -0.19531927, 0.0870979, -0.26488534, 0.19481428, 0.10737945, -0.14573483, -0.33094683, 0.24155116, -0.09850332, 0.2797003) * go_0(1.0, 0.0); + result += mat4(-0.24089853, 0.19506595, 0.4799156, -0.058313113, 0.36212957, -0.44844806, 0.23864488, 0.15477742, -0.07795971, -0.0033861927, -0.11216164, 0.033454563, -0.25893036, 0.23793478, -0.15769425, -0.00033481256) * go_0(1.0, 1.0); + result += mat4(0.05772507, -0.1640253, -0.13499664, -0.20460358, -0.024399966, 0.14966168, -0.090857334, -0.039677754, 0.00036956606, -0.24236615, -0.053542696, -0.0049544116, 0.026651502, 0.39019194, -0.2742246, -0.061242323) * go_1(-1.0, -1.0); + result += mat4(-0.016323274, -0.036179908, 0.029965919, 0.11151491, -0.00016685206, -0.29573023, 0.17996423, -0.20145437, 0.1324275, -0.18442132, -0.24618152, 0.061780427, -0.02770517, 0.28452995, 0.39804098, -0.1174389) * go_1(-1.0, 0.0); + result += mat4(-0.025068847, -0.053328387, -0.27053785, 0.26866457, -0.09866204, 0.057677213, 0.01850112, -0.18014707, -0.13319959, -0.14411181, -0.26355243, -0.022209354, -0.05062645, -0.036771543, 0.13294417, -0.18458557) * go_1(-1.0, 1.0); + result += mat4(-0.046194963, 0.038230438, -0.08993043, -0.07236354, 0.11031123, -0.16504908, -0.09517036, -0.16459833, -0.5279925, 0.12686682, -0.05726125, 0.055361677, 0.31593755, 0.027328093, 0.001839602, 0.30581662) * go_1(0.0, -1.0); + result += mat4(0.08608678, 0.03168437, 0.007713377, -0.26140293, -0.1268983, 0.13395861, -0.069848835, -0.24080403, 0.018839337, -0.049821075, -0.21461345, -0.14168301, -0.0872339, 0.47096667, 0.022512507, 0.14860632) * go_1(0.0, 0.0); + result += mat4(0.06293673, 0.22462969, 0.045494985, 0.021673543, 0.18227446, -0.2956555, 0.08010543, -0.01919729, -0.012190269, 0.241983, -0.046537094, -0.40094566, -0.3853647, 0.1081711, -0.16926058, 0.16138376) * go_1(0.0, 1.0); + result += mat4(-0.14854589, -0.17625804, -0.10849075, 0.221543, 0.099971965, 0.13901573, 0.29464146, 0.020068526, 0.054358527, -0.10351705, -0.0062914286, 0.24127026, -0.16914125, 0.12729423, -0.18377453, -0.6452375) * go_1(1.0, -1.0); + result += mat4(0.12603393, -0.10986093, 0.2314103, 0.16915044, -0.13619255, -0.09349073, 0.20594226, -0.34507084, 0.19077192, 0.052500796, 0.07185645, 0.029082738, -0.015576321, 0.08254907, -0.5501743, -0.38495848) * go_1(1.0, 0.0); + result += mat4(0.09300796, -0.079218306, 0.46825135, -0.08735625, 0.06321122, 0.16234867, 0.042932414, -0.013057422, 0.09697148, 0.23457524, 0.19417483, -0.16804664, 0.18379296, 0.17770062, -0.050235, -0.059676602) * go_1(1.0, 1.0); + result += vec4(0.011169491, 0.032399546, 0.138099, 0.023857072); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!SAVE conv2d_6_tf +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.22753362, -0.08612073, 0.33140692, 0.08699529, -0.18788953, -0.056579117, -0.12905197, -0.06694621, 0.054559365, 0.15031597, -0.13430363, 0.021646025, 0.14884405, -0.0694291, 0.26149413, 0.11270503) * go_0(-1.0, -1.0); + result += mat4(0.17876762, -0.09637848, 0.11285323, 0.2004893, 0.1317187, -0.036162686, 0.17958368, -0.069625, 0.28760737, -0.12505141, 0.12760694, 0.047717955, -0.16811855, -0.16340709, 0.13278298, -0.08403954) * go_0(-1.0, 0.0); + result += mat4(-0.21917523, 0.079711854, -0.28642535, 0.2822416, 0.03001489, -0.014772918, -0.3487396, 0.10597145, -0.013841082, 0.17034237, 0.10810282, -0.08089695, -0.22184245, -0.59067357, 0.44113398, 0.13045649) * go_0(-1.0, 1.0); + result += mat4(-0.29906932, 0.013923749, 0.2031124, -0.11846688, -0.13953634, 0.08003455, -0.10164494, -0.21218559, 0.10563715, 0.31033117, -0.075903505, 0.047310907, -0.37824214, -0.14506383, 0.11866701, -0.21384487) * go_0(0.0, -1.0); + result += mat4(-0.1353849, 0.19258606, 0.063908584, -0.2043788, 0.27244982, 0.1665306, -0.29357895, -0.22441709, 0.18514316, -0.17840464, 0.20986097, 0.14351055, -0.057732623, 0.42166704, -0.23182064, -0.4957248) * go_0(0.0, 0.0); + result += mat4(-0.34830126, 0.109066755, -0.28285867, -0.048280068, -0.12290918, 0.04291651, -0.047484186, -0.03702595, 0.23047262, 0.09398974, 0.022467108, 0.08271034, 0.3066665, -0.54077, 0.057771873, 0.23194093) * go_0(0.0, 1.0); + result += mat4(-0.17731948, -0.3175927, 0.1452728, 0.09396786, -0.16433562, -0.01833653, -0.22345604, -0.04161193, -0.14827462, 0.18544114, -0.15544125, -0.06179007, 0.16989979, -0.20985202, 0.16391534, -0.09447268) * go_0(1.0, -1.0); + result += mat4(-0.053878862, -0.21034616, 0.023831524, 0.19772215, 0.31647214, 0.0126534775, -0.19130844, -0.049282108, -0.21446131, 0.067189045, 0.09117449, -0.25548774, 0.12109098, 0.22009392, -0.3924665, -0.13340388) * go_0(1.0, 0.0); + result += mat4(-0.16096684, -0.18495405, 0.10410178, 0.0015673033, -0.00183498, -0.044303037, -0.062745355, -0.090802394, 0.043269135, 0.06924481, -0.21367405, -0.14619029, 0.11555763, -0.20292862, 0.5799557, 0.14739846) * go_0(1.0, 1.0); + result += mat4(-0.21030277, -0.09578802, 0.013482288, -0.21484336, 0.12995781, 0.40431052, -0.3347856, -0.18183486, 0.15550353, -0.04402301, 0.4603779, 0.14874357, -0.07694621, -0.053523075, -0.19607326, -0.10850742) * go_1(-1.0, -1.0); + result += mat4(-0.2347211, 0.2697403, -0.0634794, -0.17925987, 0.17231455, 0.24999185, -0.5208536, -0.10491828, -0.233575, 0.52950364, 0.0038063182, -0.1380038, 0.022935199, 0.19369157, 0.14586553, 0.1938704) * go_1(-1.0, 0.0); + result += mat4(-0.10245223, 0.34150192, 0.25862157, -0.20165509, 0.5597771, 0.114510864, -0.122526556, -0.04010975, 0.1704679, -0.23335956, -0.16771887, -0.03783455, -0.056995615, 0.24153493, -0.08082429, -0.24210933) * go_1(-1.0, 1.0); + result += mat4(-0.103466526, 0.15278348, -0.30526164, -0.080755696, 0.103505425, 0.15862796, 0.14696524, -0.008358076, -0.09180311, -0.12505089, 0.28052542, -0.13551563, 0.07528779, -0.09636086, -0.10369617, 0.23656134) * go_1(0.0, -1.0); + result += mat4(-0.25752836, 0.099439755, -0.30716348, 0.035077725, 0.023509016, 0.23106368, 0.05277125, 0.34910464, 0.088015385, 0.26995596, 0.1390645, -0.40671825, 0.18096298, -0.100688554, 0.5492049, 0.2482101) * go_1(0.0, 0.0); + result += mat4(0.41411775, -0.107200556, -0.13813478, 0.13768874, 0.27137747, 0.06313619, -0.08522967, 0.03218302, -0.03166121, -0.3415683, -0.52242, -0.1741813, -0.36956537, 0.179129, -0.09742935, -0.11696616) * go_1(0.0, 1.0); + result += mat4(-0.07975504, 0.17964838, 0.37122533, 0.16064765, 0.14309953, 0.29473078, 0.0926391, -0.22333665, 0.34612748, -0.3387473, 0.0077308523, -0.07239449, 0.18522519, -0.21297298, 0.11493978, 0.16117814) * go_1(1.0, -1.0); + result += mat4(-0.17402779, 0.10023144, 0.11712206, 0.031971734, 0.18713303, 0.08736295, 0.013007052, -0.06943139, -0.20102951, -0.010721135, -0.2562522, 0.34877458, -0.13732676, -0.40258047, 0.25824392, 0.15720639) * go_1(1.0, 0.0); + result += mat4(0.044494305, 0.3296108, 0.0017603852, 0.09362289, 0.38839245, 0.40015858, -0.13395199, -0.044521853, -0.56266373, 0.251378, 0.5005789, -0.13106057, -0.18491416, -0.046887, 0.067797676, -0.14694957) * go_1(1.0, 1.0); + result += vec4(0.013687534, -0.08185164, -0.04755438, 0.290178); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(M)-Conv-3x1x1x56 +//!HOOK MAIN +//!BIND MAIN +//!BIND conv2d_tf +//!BIND conv2d_1_tf +//!BIND conv2d_2_tf +//!BIND conv2d_3_tf +//!BIND conv2d_4_tf +//!BIND conv2d_5_tf +//!BIND conv2d_6_tf +//!SAVE MAIN +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +#define g_0 (max((conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_1 (max(-(conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_2 (max((conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_3 (max(-(conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_4 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_5 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_6 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_7 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_8 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_9 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_10 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_11 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_12 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_13 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.08837163, -0.065234736, -0.034704313, 0.0, 0.021405501, 0.013663729, 0.019249594, 0.0, 0.05328863, 0.03580334, 0.046457592, 0.0, -0.12216048, 0.022547891, 0.016400825, 0.0) * g_0; + result += mat4(0.061996464, 0.05631466, 0.06808407, 0.0, -0.005013109, -0.0044589997, -0.032367796, 0.0, 0.016481603, 0.13721058, 0.14924648, 0.0, 0.020035887, -0.07250003, -0.08034037, 0.0) * g_1; + result += mat4(0.24078514, 0.081361525, 0.053420708, 0.0, -0.009353794, -0.051077116, -0.058007747, 0.0, -0.14071098, 0.01035966, 0.005308949, 0.0, -0.1489842, -0.06711817, -0.05552926, 0.0) * g_2; + result += mat4(-0.13002375, 0.012733757, 0.017821986, 0.0, 0.17767483, 0.20204604, 0.1751779, 0.0, 0.12804912, 0.07381453, 0.05655911, 0.0, 0.17044514, 0.07301451, 0.06523978, 0.0) * g_3; + result += mat4(-0.1170986, -0.05130371, -0.027939914, 0.0, -0.16645707, -0.121526904, -0.09471366, 0.0, -0.04143118, 0.026693767, 0.034615446, 0.0, -0.084318705, -0.064990036, -0.054324172, 0.0) * g_4; + result += mat4(0.12094524, 0.09518409, 0.07387219, 0.0, 0.062216382, 0.053228356, 0.031372335, 0.0, 0.072797105, 0.026258165, 0.009804673, 0.0, 0.120719045, 0.073281154, 0.056623302, 0.0) * g_5; + result += mat4(-0.11141495, -0.11566289, -0.10398725, 0.0, -0.0651895, -0.06820691, -0.054204144, 0.0, -0.032746475, -0.008849683, -0.007610222, 0.0, -0.024655705, -0.048778858, -0.041144755, 0.0) * g_6; + result += mat4(0.058090195, 0.07538767, 0.059722915, 0.0, 0.044788487, 0.04212742, 0.027502589, 0.0, 0.04892866, 0.015416752, 0.008312418, 0.0, -0.011864114, -0.0074752793, -0.0060824654, 0.0) * g_7; + result += mat4(0.043446552, 0.061971307, 0.05758086, 0.0, -0.06379154, -0.053758245, -0.047204215, 0.0, 0.016307736, 0.03423424, 0.030179083, 0.0, 0.041445345, 0.03843772, 0.033059113, 0.0) * g_8; + result += mat4(-0.003803544, 0.0008906116, -0.00059585314, 0.0, 0.102071285, 0.11485224, 0.10007254, 0.0, -0.074306004, -0.08803551, -0.07972321, 0.0, -0.030704215, -0.021514274, -0.009049376, 0.0) * g_9; + result += mat4(0.0066058086, 0.0011408008, 0.0016199006, 0.0, -0.03916473, -0.042929266, -0.04018418, 0.0, -0.03153446, -0.039413508, -0.034767237, 0.0, 0.113516055, 0.12577052, 0.113335624, 0.0) * g_10; + result += mat4(0.02655948, 0.041905303, 0.03861737, 0.0, 0.048471425, 0.049788587, 0.050447535, 0.0, 0.12092813, 0.13564217, 0.12613249, 0.0, -0.0023508538, 0.0012828974, 0.0028730957, 0.0) * g_11; + result += mat4(0.0084758485, 0.008800083, 0.008206044, 0.0, -0.056123603, -0.06610845, -0.060320783, 0.0, -0.081793964, -0.101638645, -0.096699014, 0.0, -0.04402356, -0.04177539, -0.03829645, 0.0) * g_12; + result += mat4(0.10676299, 0.118409514, 0.10618478, 0.0, -0.05880252, -0.06488367, -0.06432695, 0.0, 0.019221924, 0.017602798, 0.017413978, 0.0, -0.07512528, -0.080483615, -0.066218294, 0.0) * g_13; + result += vec4(-0.010478934, -0.008364784, -0.010246552, 0.0); + return result + MAIN_tex(MAIN_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_Restore_CNN_UL.glsl b/assets/shaders/anime4k/Anime4K_Restore_CNN_UL.glsl new file mode 100644 index 00000000..ca17027c --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Restore_CNN_UL.glsl @@ -0,0 +1,1704 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.28293434, -0.10095658, -0.013867814, 0.08509398, -0.31489053, -0.26828897, 0.01152665, 0.18905516, -0.23013242, -0.18878274, -0.17923735, -0.32707638, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.3519405, -0.12639853, 0.0981044, -0.23800656, -0.1666394, 0.2548722, -0.09458217, 0.17642984, -0.0016840132, -0.12355663, -0.13711694, 0.25234836, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.14581299, -0.060752276, 0.06813433, 0.32616982, -0.29410994, 0.28217724, -0.2221963, -0.051627193, 0.10754401, 0.31993762, 0.25542948, -0.4268778, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.2716687, -0.13160354, -0.056812827, -0.00881874, 0.3249303, 0.05037425, -0.117648534, -0.26370025, 0.032854702, -0.14214379, 0.10036965, 0.17808898, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(0.004323515, 0.37651265, -0.39865002, -0.18153298, 0.5224921, -0.11810103, 0.56151056, -0.063698344, -0.17272837, -0.053013492, 0.062254835, 0.28695017, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.2776938, 0.22578415, 0.110299006, 0.27424663, 0.012712999, -0.22353122, -0.0010140019, 0.08163494, 0.3611274, 0.014346184, -0.26426178, -0.26777005, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.09010997, 0.19958799, 0.22421049, 0.054506898, -0.11822318, 0.23656984, 0.11197124, -0.4646639, 0.17118955, 0.33748102, 0.20479581, 0.6810799, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.2121316, -0.08664465, 0.2507115, -0.223455, 0.22042283, -0.20352642, 0.42714027, -0.5048447, -0.10270271, 0.11400399, -0.019575266, 0.40490857, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.091496244, -0.24679382, -0.3801941, -0.08482344, -0.17183328, -0.09308921, -0.059639163, 0.3321586, -0.19797249, -0.17941834, 0.015049101, -0.13793056, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.02313247, 0.016216148, -0.053347506, -0.023317637); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf1 +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.44157687, 0.1715858, -0.11000502, 0.062367063, 0.21790773, 0.15507151, 0.14760862, -0.2598815, 0.14098467, 0.14019097, -0.26298222, 0.10975315, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.15774319, -0.16769339, -0.49734345, -0.3935963, 0.115124024, -0.08045373, 0.55867237, 0.48593813, 0.058544844, -0.2705686, 0.3303555, 0.4181385, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.16588609, -0.013389144, 0.06600297, -0.09309111, -0.36321074, -0.13877828, 0.4099233, 0.20805255, 0.31892648, 0.16856939, -0.23898357, 0.11751563, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.39999864, 0.46407622, -0.12249342, -0.09798957, 0.122675434, 0.18265116, 0.030651823, 0.14682484, -0.42969155, 0.2486042, 0.13566706, -0.13458017, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.12757893, -0.19025628, -0.16728874, -0.10162156, -0.1577721, -0.174548, 0.29329458, 0.17963637, -0.43279588, 0.088979766, 0.06334896, -0.047701746, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.14359929, -0.12800618, -0.15429202, 0.034745168, 0.15794043, -0.086441815, -0.06520017, 0.26176664, -0.022253495, -0.34480432, -0.009120493, 0.08706416, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.1994137, 0.070990525, 0.3388379, 0.37502727, -0.116911314, 0.2160554, -0.1831974, -0.04184975, 0.2545874, -0.083908126, -0.19057468, -0.13382773, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.46475947, -0.23414738, -0.036689937, 0.018558737, -0.32609373, 0.15265512, -0.055894423, -0.3676328, 0.24501368, 0.12390915, 0.13458043, -0.30162823, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.12621075, 0.046852987, 0.17333286, 0.18997045, 0.3245911, -0.28809196, -0.3660882, -0.5916272, -0.11456223, -0.030912774, 0.17037971, -0.12640971, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.42778614, 0.054881692, -0.23388587, -0.031204376); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf2 +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(0.18228084, 0.25933146, 0.1764313, 0.23183075, -0.061067093, 0.34710985, -0.1785006, -0.06471029, -0.23235676, -0.43409523, -0.06639704, 0.30396065, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.31676784, 0.21897513, 0.06466065, 0.42289257, 0.12306216, -0.3928633, 0.09720577, -0.10426061, -0.030383142, 0.03775265, 0.34221298, 0.3827705, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.13229136, 0.37214845, -0.07046923, -0.17644346, 0.5591967, -0.5409525, 0.08944645, -0.047717415, 0.3754216, 0.2979604, -0.14149979, -0.1743562, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.07603316, 0.10389099, 0.07042061, 0.24759614, 0.05822713, 0.29799607, -0.21219468, 0.3884128, -0.010661014, -0.5209726, 0.20311587, -0.39393, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.17486575, -0.22572622, -0.13514778, 0.12839775, -0.25754005, 0.13090849, -0.16364887, 0.37675568, -0.05928962, 0.049174402, -0.37935108, -0.14333783, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.15858985, -0.47485206, 0.4509964, 0.3877553, -0.04848657, 0.22396515, 0.33325925, -0.20703658, 0.14929648, 0.25580746, 0.2795224, -0.0158565, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.030926622, 0.16219522, -0.26666775, -0.27920142, -0.2693319, -0.29130983, -0.2795281, 0.22597994, 0.32512712, 0.16784063, -0.0113234315, -0.10118217, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.32426193, 0.0072339224, 0.08070994, -0.07735796, -0.09247539, 0.23327915, 0.09039661, -0.11836084, -0.2726992, -0.16031814, -0.28027415, -0.029263943, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.20109104, -0.43383566, -0.33850962, -0.13422257, 0.040343326, -0.0819253, 0.26943803, -0.46652415, -0.3474102, 0.41198114, 0.14404535, 0.076806836, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.032911904, -0.0050934837, 0.021853646, -0.17256187); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_tf2 +//!SAVE conv2d_1_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.08648221, 0.012940912, 0.0694797, 0.021795172, 0.19547985, 0.019256733, -0.099714816, 0.08773751, 0.06443286, 0.08462334, 0.02924696, -0.07673487, 0.061156925, 0.12037308, -0.04778231, 0.010492923) * go_0(-1.0, -1.0); + result += mat4(0.00033161003, -0.19050376, -0.14713565, -0.20729654, -0.122199036, 0.0044957534, 0.19240627, -0.1515226, 0.05051369, -0.08790857, -0.05331543, -0.13356556, -0.019020412, 0.06989371, -0.07270814, 0.06541199) * go_0(-1.0, 0.0); + result += mat4(0.086689815, 0.08965917, 0.38167384, 0.31010604, 0.04204608, 0.095588356, -0.22810745, 0.112243816, 0.016992478, -0.16491304, -0.08901814, -0.038421903, -0.00041658967, -0.03551529, 0.097966395, -0.06240607) * go_0(-1.0, 1.0); + result += mat4(0.13955353, -0.27422932, 0.14655617, -0.07651906, -0.07335902, -0.05214342, 0.35741827, 0.043639295, 0.041774176, -0.08277867, -0.028840896, -0.14434154, 0.029840615, -0.1444494, 0.0417388, -0.05095746) * go_0(0.0, -1.0); + result += mat4(-0.06985613, 0.036354948, -0.22372876, -0.268865, -0.07852222, -0.20930836, 0.06419149, 0.19363879, -0.00020227236, 0.04876036, 0.16503128, -0.05324255, 0.06806321, 0.2646995, -0.04032264, 0.06421368) * go_0(0.0, 0.0); + result += mat4(-0.16930926, 0.10122267, 0.0043684123, 0.14429477, -0.026909696, 0.028725943, 0.20114274, 0.09308162, -0.21070556, -0.13116634, 0.12419461, 0.29118228, -0.052020956, 0.18702126, 0.049802206, 0.09010561) * go_0(0.0, 1.0); + result += mat4(0.08972355, -0.076947, 0.2612936, 0.1700236, 0.21013896, -0.033608798, -0.16835962, -0.17834496, 0.050899435, -0.031109938, 0.066931866, 0.20528825, -0.024127234, -0.23103325, -0.14034404, 0.036399297) * go_0(1.0, -1.0); + result += mat4(0.058897257, 0.24295428, 0.5273254, -0.075384885, -0.03951092, 0.01945271, 0.2180824, -0.10192471, 0.04884028, 0.10811269, -0.056086104, -0.0177891, -0.15046783, -0.02886977, 0.012827891, -0.06317297) * go_0(1.0, 0.0); + result += mat4(0.08919534, 0.0142748635, 0.010994716, -0.116783954, -0.04848956, 0.12802334, -0.42647192, -0.047026183, -0.105416335, 0.014229579, -0.16081032, -0.1652654, 0.04367904, -0.21464449, 0.019457433, -0.053815585) * go_0(1.0, 1.0); + result += mat4(-0.033339895, -0.30358142, 0.03728797, -0.019257398, 0.041582108, -0.042878296, -0.16212925, 0.015385118, 0.1854467, -0.14912623, -0.10073306, 0.029578004, 0.0026831278, -0.1968894, -0.1447477, 0.013980874) * go_1(-1.0, -1.0); + result += mat4(0.097215526, -0.27501073, 0.14077966, 0.07402363, 0.14528856, 0.26862413, -0.23837885, -0.19667485, 0.052117366, 0.012212545, 0.1311111, -0.05480854, 0.02206756, -0.09732581, -0.095444106, -0.12949228) * go_1(-1.0, 0.0); + result += mat4(-0.0737551, -0.35384682, 0.13346575, -0.12573321, 0.12401249, -0.19727409, -0.022039715, -0.36438647, -0.17826872, -0.097721264, 0.10780637, -0.06372213, 0.078226656, -0.2319627, 0.06871096, -0.35198233) * go_1(-1.0, 1.0); + result += mat4(0.016558306, -0.10755727, 0.07563601, 0.10631563, 0.006885377, 0.1507541, 0.028258704, 0.1609311, -0.026250815, 0.033572774, -0.0988431, 0.19565049, 0.024507977, 0.16839874, -0.19923483, 0.08130833) * go_1(0.0, -1.0); + result += mat4(-0.061187252, 0.09036177, -0.12626763, 0.036544666, 0.10568191, 0.087079406, 0.08745061, -0.10461285, 0.15552549, 0.25184712, -0.026420163, 0.028266618, 0.2387882, 0.20997152, -0.08588654, 0.19732232) * go_1(0.0, 0.0); + result += mat4(-0.057315756, 0.04398266, -0.203559, -0.10253955, -0.0009475058, -0.0786754, -0.051641934, -0.4047696, -0.057758473, -0.04819636, 0.053755116, -0.13864025, -0.165071, -0.14622927, 0.16270354, -0.11281594) * go_1(0.0, 1.0); + result += mat4(-0.023654325, 0.113905154, 0.0714336, 0.11184515, 0.12235184, 0.081852525, 0.2880535, 0.1926254, -0.01012154, 0.08924707, -0.06123374, 0.33078554, -0.14329071, 0.043857813, -0.09043615, 0.029145587) * go_1(1.0, -1.0); + result += mat4(0.023949241, 0.10680816, -0.07771331, 0.0008638595, 0.00088304427, 0.00707631, -0.029150054, 0.20421802, -0.051493708, 0.3196773, -0.0046316544, -0.08402997, -0.0020283381, 0.092219375, -0.21898057, 0.043405924) * go_1(1.0, 0.0); + result += mat4(0.10192696, 0.22852643, 0.024926228, 0.004321374, 0.1759848, -0.05959089, 0.03108929, -0.04175589, -0.032808244, -0.002723809, 0.11427024, -0.11884058, 0.085039005, -0.11861457, -0.041716687, 0.0049884217) * go_1(1.0, 1.0); + result += mat4(-0.08531041, 0.031572983, -0.010317835, -0.058514126, -0.028372116, 0.3587181, 0.07155074, -0.018486004, 0.11271158, 0.12346037, 0.14474016, -0.091422975, 0.046279423, -0.19440787, -0.040767148, -0.11089926) * go_2(-1.0, -1.0); + result += mat4(-0.118612625, 0.036904, 0.040823236, 0.0006029242, -0.055478334, 0.065328576, -0.26563334, 0.14299026, 0.039150115, 0.17624554, 0.085402936, -0.007749703, 0.045554906, -0.051315133, -0.0989155, 0.023874454) * go_2(-1.0, 0.0); + result += mat4(-0.08904957, 0.13246936, -0.1362266, 0.075549126, 0.015976984, -0.078003414, 0.27895245, -0.1714908, 0.05061789, 0.05510105, -0.011142018, 0.13279557, 0.122630805, 0.12880847, 0.2334916, 0.450533) * go_2(-1.0, 1.0); + result += mat4(0.13635479, 0.12008325, 0.13332775, -0.1923403, 0.061475966, 0.12471921, 0.1438346, -0.30003113, 0.16227812, -0.011259031, -0.15664785, 0.082009956, 0.15664162, -0.14316271, 0.10871211, -0.23067066) * go_2(0.0, -1.0); + result += mat4(-0.17403863, -0.100490384, -0.056628566, 0.056505267, 0.03132433, 0.02990612, -0.023741463, -0.2221617, -0.023024872, -0.17946845, -0.014884968, 0.09488175, -0.08467482, -0.18569513, -0.08882533, -0.096383005) * go_2(0.0, 0.0); + result += mat4(0.036448594, 0.008876679, 0.082974724, -0.07486944, -0.1466638, -0.17435108, -0.08396226, 0.05346215, -0.13232903, -0.07391497, 0.19908291, 0.059030067, -0.017662045, 0.020650625, -0.20734224, 0.20043914) * go_2(0.0, 1.0); + result += mat4(-0.03861711, 0.06406407, 0.05915599, -0.0029750194, 0.046107147, -0.23294666, 0.019285874, 0.11214502, -0.05762434, -0.043726444, 0.010243058, -0.013164875, 0.033796065, -0.027231356, 0.18135343, -0.06158567) * go_2(1.0, -1.0); + result += mat4(-0.0061139134, 0.08773726, 0.05263668, -0.017488463, -0.021532185, -0.06330985, 0.03339514, 0.29500782, 0.19531941, -0.0625388, -0.0988155, 0.029160276, -0.14122078, -0.18272889, 0.035498794, -0.09119196) * go_2(1.0, 0.0); + result += mat4(0.21229745, -0.13745296, -0.02434639, 0.018458553, 0.1591066, 0.057361145, -0.034690984, -0.06146371, -0.2245296, -0.14576864, 0.053850707, -0.08887415, -0.17651638, 0.14863127, -0.07008009, 0.009406358) * go_2(1.0, 1.0); + result += mat4(-0.09558068, 0.08203744, 0.09736194, -0.08479601, -0.07671097, -0.13729817, 0.15081742, -0.107025385, -0.13094948, -0.11489214, 0.08040859, 0.18286897, -0.06001431, -0.16890974, -0.034702767, 0.06418509) * go_3(-1.0, -1.0); + result += mat4(-0.057768498, 0.121774144, 0.09370627, 0.04913383, 0.07690142, 0.0735232, 0.22072591, 0.023539443, 0.05777623, 0.32322824, 0.3281115, 0.08541682, 0.027571213, 0.08204197, -0.036617927, -0.11496138) * go_3(-1.0, 0.0); + result += mat4(0.10667931, 0.060036145, 0.17550562, 0.0036066761, -0.1475781, -0.0125017725, 0.1585272, -0.30022824, 0.020694837, 0.041336745, 0.34374732, 0.11649956, 0.0702352, 0.10661717, -0.018115027, 0.066765435) * go_3(-1.0, 1.0); + result += mat4(-0.031910367, 0.08394783, -0.12302906, 0.080788575, 0.056613773, 0.13485114, 0.14046827, -0.0015214924, -0.27299604, 0.043092493, 0.0110908365, 0.0120844785, 0.13837345, 0.14274547, -0.07037318, 0.073410094) * go_3(0.0, -1.0); + result += mat4(0.11933822, -0.019749384, -0.14604573, 0.23067194, 0.07458434, 0.19018115, -0.09794594, -0.028165665, 0.34246337, -0.15636346, 0.2909177, 0.049812693, 0.002857417, -0.15300918, 0.28885588, -0.017372042) * go_3(0.0, 0.0); + result += mat4(0.017289294, -0.034632802, 0.21390542, -0.010042412, -0.041615892, -0.08253338, -0.30123362, -0.19299945, 0.25370637, 0.093409844, -0.09362771, -0.17982802, -0.031628486, -0.09360746, 0.13314822, -0.034462616) * go_3(0.0, 1.0); + result += mat4(0.106429726, 0.016680025, -0.0529926, -0.17085713, -0.22584449, -0.07722329, 0.30886117, 0.10528744, 0.010045352, 0.099818386, -0.1433606, -0.24887395, -0.04677741, 0.113051936, -0.062035765, -0.03359467) * go_3(1.0, -1.0); + result += mat4(-0.10257249, -0.16084161, -0.058020744, 0.096825816, 0.19502446, -0.12214713, 0.078723475, 0.124732524, -0.15987179, -0.110849984, 0.1198203, 0.018647604, 0.114340924, -0.027776286, -0.07801131, 0.022275787) * go_3(1.0, 0.0); + result += mat4(0.20298952, -0.069290765, 0.018832127, -0.17501442, 0.32367796, -0.20510589, 0.15283914, 0.16110845, 0.23468657, 0.12490908, 0.0031354423, 0.33064207, -0.089915626, 0.16466871, -0.2302326, 0.008596628) * go_3(1.0, 1.0); + result += mat4(0.07267445, 0.13096274, -0.22805755, -0.03723183, 0.055223588, -0.005618507, -0.022076515, -0.07149474, -0.121041514, 0.22917031, 0.066897914, -0.07756685, 0.024709817, 0.009276744, 0.014564059, 0.057168677) * go_4(-1.0, -1.0); + result += mat4(0.12088462, -0.21629183, -0.01628627, 0.13085558, 0.09959188, -0.26857927, 0.099242754, -0.014361698, -0.06972168, 0.01484912, -0.14507025, 0.036060054, 0.010170308, -0.038049888, -0.009749429, 0.02627631) * go_4(-1.0, 0.0); + result += mat4(0.014381424, -0.08200522, 0.016342247, -0.05138454, -0.048430134, 0.14594877, -0.3555319, 0.031946313, 0.10650339, 0.18046476, -0.24730566, 0.1373742, -0.119868465, 0.09006262, -0.043326948, 0.14803706) * go_4(-1.0, 1.0); + result += mat4(0.041357175, 0.018529125, -0.10729679, -0.048498925, -0.10630771, -0.1541114, -0.033143718, -0.22726057, -0.07868649, -0.13653874, 0.17372914, -0.12425049, 0.20172423, -0.13046068, 0.043416902, 0.022640392) * go_4(0.0, -1.0); + result += mat4(0.0996741, -0.2517156, 0.19852571, -0.0021035601, 0.10721118, -0.05211148, -0.19747794, -0.09467657, -0.023530629, -0.3026388, 0.18776762, -0.083951, -0.23070371, -0.29687774, 0.19042933, 0.082099915) * go_4(0.0, 0.0); + result += mat4(-0.14246128, -0.11360154, 0.042512555, 0.050347224, 0.15101464, 0.096761174, -0.09809747, 0.18949512, 0.08265103, 0.10818854, -0.06522224, 0.20080575, 0.04467876, 0.16536511, -0.17993684, 0.00630444) * go_4(0.0, 1.0); + result += mat4(-0.06804489, -0.08932311, 0.11452633, -0.1371827, -0.038583722, -0.044566132, 0.11590918, 0.06928946, 0.09499521, -0.28891554, -0.039033752, -0.24065344, -0.008447823, -0.22869939, -0.1481265, -0.14827704) * go_4(1.0, -1.0); + result += mat4(-0.040538706, -0.16607454, 0.066053875, -0.13771453, -0.26502058, -0.090013534, 0.10899838, 0.035818875, -0.025965845, -0.38602746, 0.11832495, -0.05114795, -0.0024577992, -0.131609, 0.031598363, 0.03701916) * go_4(1.0, 0.0); + result += mat4(-0.058901474, -0.32447273, -0.009171959, 0.0660178, -0.060969505, 0.032002755, 0.1673554, 0.08129589, -0.027818324, 0.11499822, 0.047595307, 0.1351946, -0.10076986, 0.109632365, -0.15808961, -0.082471184) * go_4(1.0, 1.0); + result += mat4(0.11876087, 0.01871506, -0.15440665, 0.030330261, 0.0027066949, -0.14246738, 0.07165973, 0.01423915, -0.06284659, -0.21748444, -0.09141415, 0.0077323355, 0.0007271684, 0.1327971, 0.021298295, 0.029493187) * go_5(-1.0, -1.0); + result += mat4(-0.10310914, -0.07170663, -0.2685449, -0.15668112, 0.10965974, -0.027063346, 0.15944144, -0.16771634, -0.08454698, -0.12480185, 0.17647612, 0.17139068, -0.09694541, 0.14676706, 0.1353608, 0.11373892) * go_5(-1.0, 0.0); + result += mat4(-0.0808586, -0.02986483, 0.23335268, -0.05220655, -0.21456684, 0.089947656, -0.2306551, 0.23438993, -0.26377395, -0.00432009, -0.002377239, -0.0024554976, -0.11019007, -0.0772975, -0.119338326, -0.42517295) * go_5(-1.0, 1.0); + result += mat4(0.10294163, -0.024664093, 0.019653833, 0.034689307, 0.05632113, -0.31289428, -0.08254052, 0.13217352, 0.15772913, -0.09128828, -0.012524978, -0.06561359, -0.13107683, 0.23463258, -0.18762761, 0.22209615) * go_5(0.0, -1.0); + result += mat4(0.06301127, 0.12489633, 0.025658585, -0.09527329, 0.009095258, -0.2463554, -0.0047031543, 0.119088694, 0.14065374, 0.19576642, 0.26679346, 0.03845879, 0.13757762, 0.10764672, -0.046270162, -0.11690896) * go_5(0.0, 0.0); + result += mat4(-0.04519331, 0.002319274, -0.0704514, 0.029526047, 0.13251334, 0.2868927, -0.06838931, 0.11092056, 0.15345666, 0.16911614, 0.06869024, -0.03073747, 0.065442406, 0.018865792, 0.081815384, -0.20803072) * go_5(0.0, 1.0); + result += mat4(0.06323602, -0.010242011, 0.10209268, -0.04929, -0.006704608, 0.30939466, 0.1744392, -0.10929571, -0.493058, -0.13673118, -0.12486283, -0.41315997, -0.036514506, 0.0937269, -0.16995876, 0.15627468) * go_5(1.0, -1.0); + result += mat4(-0.13764359, -0.028645532, 0.006338959, 0.058005866, 0.08327983, 0.17576805, 0.17758359, -0.16738725, -0.26176876, 0.07402525, -0.02212828, 0.16919926, 0.3348425, 0.032946147, 0.09707724, 0.10009711) * go_5(1.0, 0.0); + result += mat4(-0.2091657, 0.068191156, 0.09357867, -0.05217846, -0.1104997, 0.05062617, 0.016883407, -0.053662494, 0.24314725, 0.19810323, -0.065943204, 0.25030002, 0.08373754, -0.16690144, 0.03141188, -0.101124324) * go_5(1.0, 1.0); + result += vec4(-0.08736043, 0.2861529, -0.005863071, -0.004482026); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_tf2 +//!SAVE conv2d_1_tf1 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.04347682, -0.042527717, 0.057372455, 0.25276724, -0.057298373, 0.16023909, 0.21286428, -0.022668337, -0.21247427, -0.14335708, 0.19040126, 0.08368367, 0.0033008587, 0.03252031, -0.1777948, -0.082336985) * go_0(-1.0, -1.0); + result += mat4(-0.12568378, -0.08425814, 0.004957988, -0.12844385, 0.055799566, 0.21515216, -0.20364483, -0.05265174, -0.011742827, -0.053792574, -0.15443824, 0.007910115, -0.045762774, 0.03763922, 0.014743974, -0.07495264) * go_0(-1.0, 0.0); + result += mat4(0.095623426, 0.118021496, -0.3646953, 0.22952312, -0.06988015, 0.07823983, 0.10331074, 0.18235193, 0.10575183, 0.017832384, 0.099051595, -0.16202737, -0.065919116, -0.027154202, 0.19286686, -0.41187564) * go_0(-1.0, 1.0); + result += mat4(-0.18027067, -0.15459284, -0.5194294, 0.15895993, -0.19545266, 0.11350413, 0.08665067, 0.053280413, -0.07407145, -0.04798788, -0.13345626, 0.1258462, 0.047066033, -0.040642574, 0.08591159, -0.10039696) * go_0(0.0, -1.0); + result += mat4(-0.080157764, 0.22366004, 0.17739227, 0.033781976, -0.045201484, -0.047641475, -0.07896631, -0.08679443, 0.10642969, 0.06992287, 0.041175313, -0.16435929, 0.15798622, -0.004883945, 0.08247824, -0.056977544) * go_0(0.0, 0.0); + result += mat4(-0.05262759, 0.015417186, 0.108641304, 0.005705979, -0.013303744, -0.016400715, -0.24967128, -0.13471037, 0.07906222, 0.07200451, 0.12428817, -0.05694691, -0.022635266, -0.08490837, -0.01682493, 0.08025121) * go_0(0.0, 1.0); + result += mat4(0.4013514, -0.09885115, -0.13964225, 0.0066076894, 0.035656366, -0.061563164, 0.005582264, 0.03445424, -0.0898461, 0.07694695, -0.06430643, 0.26156837, -0.045181878, -0.16155554, -0.008806556, 0.023297746) * go_0(1.0, -1.0); + result += mat4(0.014314168, 0.03040408, 0.079562426, 0.104040965, 0.15035652, -0.11237077, -0.04587703, 0.0664186, 0.011188344, 0.27792045, 0.03491885, 0.047752786, -0.02133782, 0.19199622, 0.03265004, 0.112835735) * go_0(1.0, 0.0); + result += mat4(-0.22900657, 0.19636537, 0.024062308, 0.004805258, 0.19197865, -0.26876372, 0.22812407, -0.13273205, 0.1163973, -0.016603881, 0.11751584, 0.07571751, -0.016665185, -0.020726109, -0.15382238, -0.05721929) * go_0(1.0, 1.0); + result += mat4(0.047688257, -0.04328092, 0.00020037305, -0.0030449564, 0.21016575, -0.3156827, 0.109759815, -0.012477153, -0.037765514, -0.19186607, 0.11098016, -0.122981705, 0.030443244, -0.27449754, 0.12108516, 0.14917934) * go_1(-1.0, -1.0); + result += mat4(-0.015644934, 0.017102094, 0.068102054, 0.11661995, -0.13552219, 0.030102659, 0.14208834, 0.034298997, 0.06434777, -0.16380474, -0.10679716, -0.052865673, 0.03549326, -0.116048254, 0.16329505, 0.19959521) * go_1(-1.0, 0.0); + result += mat4(-0.007844256, -0.033616025, 0.040885374, 0.0077286726, -0.057888485, 0.05796843, 0.0665138, -0.189592, -0.02662338, 0.022530284, 0.08647752, 0.054335136, 0.031057479, 0.03635868, 0.0933932, 0.064375274) * go_1(-1.0, 1.0); + result += mat4(0.15531783, -0.21395409, -0.124851726, 0.049151056, -0.17787859, 0.07594992, 0.048780512, 0.0029584337, 0.013994473, -0.34576252, -0.05831177, 0.030209891, 0.009173122, -0.32105917, 0.026620382, 0.27054143) * go_1(0.0, -1.0); + result += mat4(0.031326182, 0.11699003, -0.1819442, -0.30510914, -0.21830374, 0.06375399, -0.11343298, 0.20248312, -0.032249533, 0.1300983, -0.23744828, -0.03899525, 0.095936954, 0.075583026, -0.18192224, 0.016086053) * go_1(0.0, 0.0); + result += mat4(-0.24321534, 0.1016422, 0.084550686, -0.007922614, -0.16052304, -0.09632171, 0.09476528, 0.03964334, -0.00061841257, 0.11085015, 0.16789092, 0.058375813, -0.021924267, 0.26049414, -0.04622306, 0.03622448) * go_1(0.0, 1.0); + result += mat4(0.05655466, -0.10016316, -0.026551498, 0.12944251, 0.06387257, 0.08759442, -0.040214762, -0.05403373, -0.001911277, -0.045361456, -0.29783988, -0.11533991, 0.07864674, -0.03580795, 0.09282203, 0.18479614) * go_1(1.0, -1.0); + result += mat4(-0.019557253, -0.01953009, 0.1073159, -0.077327915, -0.3287939, 0.08561906, -0.16314861, -0.14830309, -0.031493217, -0.050918207, 0.13767132, -0.25257835, 0.029513458, 0.1548974, -0.048502877, 0.0022710229) * go_1(1.0, 0.0); + result += mat4(0.0022606663, 0.048681643, -0.06014017, 0.23443368, -0.086114794, 0.017463014, -0.073657446, -0.0013138334, -0.053271778, 0.29075313, 0.07355574, 0.14009497, -0.15303768, 0.21335968, -0.17516625, 0.03268628) * go_1(1.0, 1.0); + result += mat4(-0.012742161, -0.041635115, 0.168062, -0.028525194, -0.030566072, -0.027266532, 0.0359287, -0.07139233, 0.061290823, -0.04036332, 0.04897623, 0.13846754, 0.039383594, 0.12339301, -0.026180696, -0.0051744552) * go_2(-1.0, -1.0); + result += mat4(-0.03748404, -0.026544569, 0.11102617, -0.22780292, 0.06731992, -0.15827416, 0.09802122, 0.11640033, 0.00039111794, 0.072100006, -0.053455148, 0.06592366, -0.09381082, 0.13634324, -0.08554314, 0.016439624) * go_2(-1.0, 0.0); + result += mat4(0.10113021, 0.08261971, -0.16603, -0.009958334, 0.03756299, -0.004461027, 0.08559942, -0.012674885, -0.03848595, 0.002108679, 0.021565402, -0.046234082, 0.04603834, 0.09276165, -0.29686695, -0.015194743) * go_2(-1.0, 1.0); + result += mat4(0.053909358, 0.0835715, -0.116176985, 0.22114189, 0.17204702, -0.17098549, -0.08065474, -0.015051904, 0.14268506, -0.117853105, -0.0038547963, -0.099558994, -0.12031682, 0.11549271, 0.0201697, 0.093561895) * go_2(0.0, -1.0); + result += mat4(-0.056914307, 0.18547982, -0.09208387, -0.00943169, -0.024476565, 0.020612689, 0.04417863, 0.14231037, -0.05794176, 0.19624077, -0.10561953, -0.1312564, -0.09621997, -0.055228855, -0.06481115, 0.07939849) * go_2(0.0, 0.0); + result += mat4(-0.09013716, -0.12869088, -0.14419042, -0.021643816, -0.123301044, 0.1077149, -0.058566347, 0.010407963, 0.009403472, -0.07660888, 0.09947006, -0.07434618, -0.014246012, -0.24914171, 0.0034662948, -0.05013118) * go_2(0.0, 1.0); + result += mat4(-0.070962735, 0.06716404, -0.15136454, 0.02027541, -0.107001044, 0.50334495, -0.039790098, 0.08286825, -0.0010944081, 0.1031829, -0.011431386, -0.08257687, -0.18531963, -0.14856398, 0.024649108, 0.047142852) * go_2(1.0, -1.0); + result += mat4(0.049574193, 0.07180735, 0.047850125, -0.051012892, -0.00040669146, 0.4140869, -0.088046245, -0.036824025, -0.03582775, 0.26769164, -0.06151275, -0.09666011, 0.2566442, -0.09799407, 0.097338095, -0.026725585) * go_2(1.0, 0.0); + result += mat4(0.1490444, -0.06516709, 0.10439169, -0.034240134, -0.041965652, -0.2079741, -0.09079767, 0.15088585, 0.022063766, -0.07552733, 0.0012785956, -0.16747397, 0.10525993, -0.09890853, 0.10660105, 0.21784192) * go_2(1.0, 1.0); + result += mat4(0.07042895, 0.16030453, 0.0030912263, -0.027933247, -0.3086125, -0.28822276, -0.400802, 0.2096595, 0.08857404, 0.34754908, -0.15951826, -0.35737038, -0.038460553, 0.007917597, 0.2774085, -0.08004489) * go_3(-1.0, -1.0); + result += mat4(-0.038472448, -0.0174679, -0.107170366, -0.037775494, -0.054595813, -0.21341673, 0.21892805, 0.12125601, 0.058354914, -0.35335168, -0.21329384, -1.0650489, 0.059367847, -0.02849481, 0.001276761, -0.30784246) * go_3(-1.0, 0.0); + result += mat4(-0.050561953, 0.0007092989, -0.13955325, -0.07106547, 0.12613517, -0.0822321, 0.14023048, -0.20781253, 0.0041748453, 0.157751, -0.14171253, -0.9330524, -0.0035482922, -0.17769572, -0.1528532, -0.32141888) * go_3(-1.0, 1.0); + result += mat4(-0.040014382, 0.24272937, 0.12577556, -0.10304328, 0.12054429, -0.14819793, -0.46691173, 0.12551397, 0.21042542, 0.040414993, 0.2664476, -0.0624471, -0.10776527, 0.03234498, -0.14870068, -0.05700082) * go_3(0.0, -1.0); + result += mat4(-0.15521951, -0.099391945, -0.31356367, -0.006449893, 0.059501357, 0.16860132, 0.2637131, -0.035344128, -0.20164591, -0.0771766, 0.22611247, -0.40267792, -0.060890198, 0.060215253, 0.093219444, -0.3483) * go_3(0.0, 0.0); + result += mat4(0.03416117, -0.1827499, -0.15668888, -0.10794011, -0.075220324, 0.12177839, -0.07486823, 0.21677534, -0.039297394, -0.14563735, 0.05120258, -0.00035666916, 0.12478138, 0.04741504, 0.2288785, -0.17462626) * go_3(0.0, 1.0); + result += mat4(-0.02980817, 0.087366745, 0.043035574, 0.040445086, 0.07882225, 0.030239558, -0.117186725, 0.19092828, -0.037465222, -0.10581845, -0.055081632, -0.15845117, 0.07946355, 0.14760616, -0.022140944, 0.11649563) * go_3(1.0, -1.0); + result += mat4(-0.19723393, 0.024121622, -0.27199838, 0.07334678, -0.07288629, 0.17650653, -0.22066317, -0.13322048, 0.0069257803, -0.24415702, 0.09925061, 0.33271804, 0.0033860113, -0.18174358, -0.13197216, -0.018403139) * go_3(1.0, 0.0); + result += mat4(-0.093481295, -0.28051332, -0.032411367, -0.14152545, 0.18546024, 0.26412115, 0.07146612, 0.036084935, -0.27073604, -0.010888752, -0.13251275, 0.052145492, -0.0332615, 0.06561024, -0.12152722, 0.25903332) * go_3(1.0, 1.0); + result += mat4(-0.14281613, 0.07859564, 0.0066864006, -0.15937181, -0.12278831, 0.311999, 0.025959859, 0.02308115, -0.03229773, 0.2645761, -0.13995989, 0.10817364, 0.07908819, 0.42388916, -0.17739546, 0.10429196) * go_4(-1.0, -1.0); + result += mat4(0.2201895, -0.2196956, 0.14305998, -0.3301203, 0.16685095, 0.09164033, 0.031294953, -0.05854433, -0.06691493, 0.1518185, 0.038523998, 0.05256842, -0.047954578, 0.1683237, 0.0048684916, -0.10664451) * go_4(-1.0, 0.0); + result += mat4(-0.026817175, -0.029176721, 0.24391933, 0.017680334, 0.15134846, -0.15139282, 0.29651865, 0.12128057, 0.044055674, 0.023059618, -0.054705862, -0.025505943, -0.019943522, -0.032058105, -0.30078474, 0.28300348) * go_4(-1.0, 1.0); + result += mat4(-0.15246257, 0.16519837, 0.030530507, 0.0019738604, -0.09898821, -0.10236442, -0.15473707, 0.1960111, 0.08083462, 0.1931143, 0.053789698, 0.063627414, -0.10000871, 0.1890801, -0.039166793, -0.035554815) * go_4(0.0, -1.0); + result += mat4(-0.008138058, -0.090632096, 0.09218409, -0.1870409, 0.006966406, -0.036867052, -0.1109265, 0.15594107, -0.06334745, -0.025499493, 0.16426682, 0.024393357, 0.0060975226, 0.08250694, -0.022282967, -0.09879987) * go_4(0.0, 0.0); + result += mat4(0.06807879, 0.127161, -0.20435798, -0.11276813, -0.035021268, -0.019755092, -0.17415504, 0.060618974, 0.12325889, -0.12290322, -0.05086793, 0.14947659, 0.023935383, -0.032783996, -0.029157335, -0.006670329) * go_4(0.0, 1.0); + result += mat4(-0.14423427, 0.07715571, 0.06842541, -0.24895051, -0.06428334, -0.07863047, 0.23238844, 5.274231e-05, 0.048996497, 0.17647398, 0.413201, -0.31975266, -0.030216858, 0.04867342, -0.30262446, -0.15375552) * go_4(1.0, -1.0); + result += mat4(0.23534048, 0.092139505, 0.012503786, 0.116008915, -0.0898572, -0.17778875, 0.16141091, 0.3644637, 0.043014687, -0.031378243, 0.11754703, -0.38509452, 0.1001422, 0.036844354, -0.0051652407, 0.036642574) * go_4(1.0, 0.0); + result += mat4(0.08065526, -0.14093323, -0.027013494, -0.112644374, -0.019306205, -0.10695108, -0.21220952, -0.039872676, -0.09730943, -0.47728395, -0.28284085, -0.07133749, -0.04755162, -0.14241156, -0.01632541, -0.009647049) * go_4(1.0, 1.0); + result += mat4(0.07490686, -0.06242466, 0.15567005, -0.16337247, -0.2887383, 0.2881797, -0.121348776, 0.060069725, -0.03536951, -0.24556357, -0.35177758, -0.11175104, -0.0073047564, -0.06645475, 0.014323825, 0.058212377) * go_5(-1.0, -1.0); + result += mat4(0.03256386, -0.05097925, 0.27179804, -0.09543428, 0.161455, 0.023938831, 0.10773267, -0.10486564, 0.076764554, 0.06358945, -0.18258472, 0.08324786, 0.06467844, -0.20269682, 0.046431858, -0.08359799) * go_5(-1.0, 0.0); + result += mat4(-0.086718775, 0.029116197, -0.020623617, -0.010007143, -0.0062927944, 0.028177656, -0.07210879, 0.06786677, 0.023476062, 0.17860489, -0.06256401, 0.061757386, -0.046495005, -0.055532746, 0.15595034, 0.12336579) * go_5(-1.0, 1.0); + result += mat4(0.08569872, -0.03291618, 0.18875046, -0.080043204, 0.19672358, 0.0756269, 0.02688733, 0.16277955, -0.060868777, -0.037449554, 0.020366343, -0.28260133, 0.30251002, -0.08898951, 0.002503838, -0.031098645) * go_5(0.0, -1.0); + result += mat4(0.09120409, -0.04983847, 0.07688438, 0.008763123, -0.09732479, 0.21332602, -0.13068666, -0.030675085, 0.31382635, 0.0012199014, -0.18128653, 0.30740625, -0.100602135, 0.08708379, 0.112137444, -0.03682313) * go_5(0.0, 0.0); + result += mat4(0.0709511, -0.04224951, -0.05609049, -0.0006408909, -0.030565612, -0.012263292, -0.009747451, -0.07244236, 0.054749947, -0.01405017, 0.009567654, -0.074202195, -0.06860078, 0.13089342, -0.06874847, -0.03219275) * go_5(0.0, 1.0); + result += mat4(0.1576853, -0.2683739, -0.025735255, -0.06460345, 0.075857066, -0.59675205, 0.11202596, 0.14385986, -0.06844365, -0.23115703, 0.12929395, -0.12881753, 0.009042129, 0.105781116, -0.055749435, -0.081277415) * go_5(1.0, -1.0); + result += mat4(0.13527077, -0.03984972, 0.018804315, 0.12699783, -0.17789197, -0.30242765, 0.09397843, 0.090828404, -0.059823766, 0.044621762, 0.25259614, -0.19707985, -0.13368398, 0.20000716, -0.009788325, -0.20149179) * go_5(1.0, 0.0); + result += mat4(-0.041884087, -0.059512906, -0.0896845, 0.06103581, 0.110947184, 0.10910047, -0.0047273464, 0.079314105, -0.121069044, 0.10926088, 0.13192393, 0.13567427, 0.109372094, 0.06015443, 0.100631915, -0.224153) * go_5(1.0, 1.0); + result += vec4(0.022030555, -0.05006568, 0.014002339, 0.023597209); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_tf2 +//!SAVE conv2d_1_tf2 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.09202538, -0.081250995, 0.13399354, -0.09287109, 0.075870514, -0.046435528, 0.06888035, 0.07559372, 0.047911238, 0.1541559, 0.016089845, -0.020714905, 0.034469247, 0.09413617, -0.06726056, 0.04964387) * go_0(-1.0, -1.0); + result += mat4(0.22596729, 0.02889021, -0.048012562, 0.14605793, -0.086510226, 0.09049988, -0.0024043226, 0.07370351, -0.02844908, 0.056516882, -0.12932102, -0.080092, -0.014557861, 0.2417015, 0.24414025, -0.08637478) * go_0(-1.0, 0.0); + result += mat4(-0.08709868, -0.15894723, 0.051107977, -0.007953947, -0.005816434, 0.15406336, -0.08382943, 0.06931645, 0.10049424, -0.10653088, 0.2009932, 0.15972902, 0.02209797, -0.008090025, 0.058555678, 0.044184227) * go_0(-1.0, 1.0); + result += mat4(-0.14687128, 0.08516212, -0.090116605, -0.053017177, -0.09254908, -0.043845087, -0.02666236, -0.12203544, -0.043807525, 0.14893356, -0.11529748, -0.06253818, -0.010695381, -0.10081673, -0.0314329, -0.044264063) * go_0(0.0, -1.0); + result += mat4(0.021610646, -0.16695172, -0.31326374, 0.05392923, 0.12519042, 0.12159836, -0.07893999, -0.10245254, 0.10427483, -0.042931017, -0.18065664, 0.01107328, 0.110220656, -0.06329314, -0.044132728, -0.004572783) * go_0(0.0, 0.0); + result += mat4(0.01665856, 0.121704906, -0.2353256, 0.16223833, 0.04024997, -0.01792505, 0.14950873, -0.06683434, 0.004776299, 0.011929818, 0.07254882, 0.03820532, 0.31055966, 0.08748786, 0.0073042163, 0.2684048) * go_0(0.0, 1.0); + result += mat4(-0.23074506, -0.06215829, 0.053791784, 0.22733828, -0.11443747, -0.15169612, 0.040388454, -0.007505497, 0.005672369, 0.0026797412, -0.001197972, 0.007488197, -0.0024618902, 0.10131061, -0.07500523, -0.013001146) * go_0(1.0, -1.0); + result += mat4(-0.0776098, -0.060467657, 0.063401155, -0.3178554, 0.046797205, -0.10740315, 0.02085142, 0.101416804, -0.1198098, -0.02295822, 0.039581314, -0.048711125, -0.06259446, -0.11206371, -0.0053890026, -0.070524804) * go_0(1.0, 0.0); + result += mat4(-0.12901165, 0.21051991, -0.1142095, 0.22749256, -0.023643937, -0.046942696, -0.060973406, -0.057919096, -0.22156318, -0.051061176, 0.0916328, 0.012217941, -0.17102586, -0.18390712, 0.006507473, -0.029991195) * go_0(1.0, 1.0); + result += mat4(-0.2522444, -0.03696223, -0.18561353, 0.13687257, 0.073648125, 0.13678576, 0.16931336, 0.00949838, -0.038437508, -0.059626862, 0.05821261, -0.07623236, -0.08685592, -0.17067757, 0.174131, -0.025060346) * go_1(-1.0, -1.0); + result += mat4(0.104338415, -0.096368395, -0.029887693, 0.032492615, 0.041827764, 0.24553889, 0.099045165, 0.059192423, 0.023159435, -0.043454442, 0.10354106, 0.17867453, -0.1752651, 0.16507833, -0.09264873, 0.038281262) * go_1(-1.0, 0.0); + result += mat4(0.06404952, 0.014349881, -0.08079635, -0.18684097, -0.021107968, 0.1474591, 0.02128032, 0.052345317, 0.19520657, -0.18109623, 0.12578261, 0.034501765, -0.1369868, -0.05843081, 0.16561405, -0.06775279) * go_1(-1.0, 1.0); + result += mat4(0.08673276, 0.14922544, 0.12579706, 0.12474029, -0.06912261, -0.104719676, 0.27239847, -0.13122962, -0.05688415, 0.1428628, 0.00895786, -0.032757584, 0.019906566, -0.17429581, -0.10528849, 0.13250664) * go_1(0.0, -1.0); + result += mat4(0.1025883, 0.16903317, 0.24479683, 0.08272392, -0.12168113, 0.09135378, 0.06919754, -0.24658537, 0.014526622, 0.08442609, -0.30363482, -0.03433778, 0.037446275, 0.030086113, -0.07519447, -0.068841174) * go_1(0.0, 0.0); + result += mat4(0.024311058, -0.08233637, -0.16022089, -0.1597245, 0.050970588, -0.10577119, -0.1112992, -0.052199256, -0.0849103, -0.3776085, -0.21930903, -0.20542654, -0.01871536, 0.10911211, 0.07675561, -0.024964388) * go_1(0.0, 1.0); + result += mat4(0.12411877, -0.00519536, 0.0480481, -0.10641975, -0.0010129698, -0.049957395, 0.0066010677, -0.07925235, 0.1930976, 0.5361102, -0.056495357, -0.05665149, -0.1270014, 0.041294765, -0.15627688, 0.018746065) * go_1(1.0, -1.0); + result += mat4(0.13720295, 0.085025266, 0.05471863, 0.038614765, -0.06960719, 0.16281144, -0.21186842, -0.1941425, 0.095628515, 0.084828205, 0.02530074, 0.11415585, 0.10537103, -0.0586968, 0.019073522, -0.055825945) * go_1(1.0, 0.0); + result += mat4(-0.21141429, 0.01108361, -0.14758278, 0.08792016, -0.0016714301, -0.0030396983, -0.12766738, -0.08827425, -0.07848207, -0.13752016, 0.013766901, 0.09635439, -0.079080686, -0.14922711, 0.06670641, -0.080326416) * go_1(1.0, 1.0); + result += mat4(0.20643076, -0.00499668, 0.23666923, -0.17106888, 0.12709226, 0.00981184, 0.028967496, 0.016210513, 0.12393452, 0.0043048155, 0.05266705, -0.094970286, 0.005504978, -0.050391, 0.10117381, 0.09549521) * go_2(-1.0, -1.0); + result += mat4(0.04931849, -0.0065390305, 0.08863048, -0.0947855, 0.15617795, -0.17475569, 0.10392811, 0.035971895, 0.03656791, -0.12339292, 0.010653483, 0.08514984, 0.15630373, 0.15763232, -0.012078789, -0.026336702) * go_2(-1.0, 0.0); + result += mat4(0.13140163, 0.07304222, 0.03644733, 0.09648337, -0.017975705, -0.072331324, 0.0029975558, -0.021666657, -0.020042133, 0.044821594, 0.037660487, 0.09642576, 0.06416202, 0.014092053, -0.043693382, -0.051554378) * go_2(-1.0, 1.0); + result += mat4(-0.23793697, -0.0014973939, -0.08946259, 0.067851745, -0.019646896, -0.19535433, 0.10289966, 0.0010244731, -0.20782173, 0.0020514326, -0.16879739, 0.17888409, -0.124513365, -0.07472942, -0.0588901, -0.2092017) * go_2(0.0, -1.0); + result += mat4(0.060483094, 0.059208773, 0.08345, 0.0010649676, -0.23659356, 0.3603475, 0.0053207604, -0.03345199, 0.020284697, -0.01113311, 0.11211144, 0.053414755, 0.1895607, -0.15760773, -0.23431808, 0.043709636) * go_2(0.0, 0.0); + result += mat4(0.080154695, -0.064768635, -0.12550141, -0.08824165, -0.07509624, -0.0713246, -0.22137038, 0.0921876, -0.025354594, -0.24898566, -0.028864942, -0.16679515, -0.08982522, 0.029950809, -0.06993633, 0.12565832) * go_2(0.0, 1.0); + result += mat4(-0.20841017, 0.06321075, -0.04099131, 0.07732559, -0.08110228, 0.20876545, -0.11388175, 0.27826598, -0.15344119, 0.09446656, 0.2735643, 0.079110265, -0.043845385, 0.029875547, 0.12783948, -0.10298459) * go_2(1.0, -1.0); + result += mat4(0.08580364, -0.08134692, -0.085382804, -0.09634259, -0.07509618, -0.12689087, 0.05720452, -0.1819075, 0.11217614, -0.16592574, -0.101749554, -0.018963661, 0.14723873, 0.12904182, -0.052782595, 0.05793788) * go_2(1.0, 0.0); + result += mat4(-0.0056530046, 0.05674741, 0.014994733, 0.11958239, 0.16446747, -0.049534798, -0.016570516, -0.21063349, -0.07496503, 0.0055008507, 0.11419655, 0.048011355, -0.04684853, 0.042691138, 0.09421025, 0.12923399) * go_2(1.0, 1.0); + result += mat4(-0.083864704, 0.07605092, -0.047560036, 0.16445905, -0.029962407, 0.18134072, -0.22724763, 0.023675185, -0.03332916, -0.04249084, 0.15973917, 0.007322849, -0.087714255, -0.153021, 0.030236037, -0.100231044) * go_3(-1.0, -1.0); + result += mat4(-0.17441258, -0.028744312, 0.05915575, -0.11824928, -0.04179886, -0.14449957, 0.04891911, -0.21351086, 0.3303812, 0.07433166, 0.503379, 0.2470829, 0.1322803, -0.04928455, -0.15583721, 0.106110215) * go_3(-1.0, 0.0); + result += mat4(-0.08065278, -0.00050983805, 0.027161239, 0.12555373, 0.017745659, 0.0479513, 0.10691591, -0.13202804, 0.38873398, 0.046141643, 0.07307728, 0.13692193, 0.18681903, 0.11005239, 0.15744549, 0.21892804) * go_3(-1.0, 1.0); + result += mat4(0.03978365, -0.023494922, -0.039753728, 0.27451408, 0.02140033, -0.013376269, 0.028383363, 0.059702866, -0.0071658283, -0.13848262, -0.1019017, -0.16829433, -0.018539641, 0.013991451, 0.099338084, -0.05775615) * go_3(0.0, -1.0); + result += mat4(-0.065350726, 0.11001335, 0.11902446, -0.21104746, 0.095098086, 0.02739781, -0.26015705, 0.22157612, -0.15288728, 0.2722011, 0.27105704, -0.24145271, -0.051725585, 0.06605028, -0.012332871, -0.17540309) * go_3(0.0, 0.0); + result += mat4(-0.2189158, -0.05287219, -0.04915249, -0.05357751, -0.12871711, -0.0061132344, -0.1406079, -0.18074436, -0.14702965, -0.22242828, 0.08177444, 0.3396842, -0.2632696, -0.06403873, -0.008123073, -0.030273361) * go_3(0.0, 1.0); + result += mat4(0.11255844, -0.057998642, -0.07679987, 0.049385145, 0.13984528, -0.07007145, 0.11060764, 0.12331489, -0.05268373, -0.15397486, 0.054913905, -0.1393604, 0.020389834, -0.17137636, 0.067205, 0.084197655) * go_3(1.0, -1.0); + result += mat4(0.27258077, -0.10924528, -0.1159478, 0.05647175, 0.13014089, 0.12746723, 0.0045503005, 0.07131271, 0.081193194, 0.018001271, -0.056847095, 0.19587554, -0.018607333, 0.1416207, -0.03856229, -0.0888815) * go_3(1.0, 0.0); + result += mat4(0.0946241, 0.059010573, 0.013680293, -0.042248886, -0.2995221, -0.095081195, 0.06510416, 0.043059137, 0.10425443, -0.1222804, -0.16180466, -0.3628854, -0.01679748, 0.112195894, -0.004974211, -0.055885002) * go_3(1.0, 1.0); + result += mat4(0.11798436, 0.1390635, 0.142733, -0.16162498, 0.034902234, -0.13497733, 0.097894885, 0.10681201, -0.047284793, 0.015005336, -0.09031815, 0.12383599, -0.091548845, -0.013705567, 0.049403854, 0.18155518) * go_4(-1.0, -1.0); + result += mat4(0.1806166, 0.08396095, -0.17600271, -0.029499372, 0.17163202, 0.18944095, -0.1755662, -0.008431973, -0.057935216, 0.1584788, -0.059633583, -0.1950766, -0.03091734, -0.045874756, -0.0051801866, -0.20533004) * go_4(-1.0, 0.0); + result += mat4(0.004201836, -0.15968263, 0.015041736, 0.17407048, -0.03530788, 0.09062685, 0.050316375, -0.058444653, -0.12015508, 0.11712405, -0.031137828, -0.049205493, 0.05515115, 0.06733773, 0.03607973, 0.05056488) * go_4(-1.0, 1.0); + result += mat4(0.006330765, -0.17457847, -0.021863922, -0.16448942, 0.059458453, 0.1486118, -0.22728927, 0.0058831032, -0.00180954, -0.34799471, -0.017039202, 0.03939159, -0.033589013, 0.32948977, 0.087067194, -0.113632225) * go_4(0.0, -1.0); + result += mat4(0.042377464, -0.030939378, -0.08917448, 0.2585585, -0.28696018, -0.04419827, 0.0057377038, 0.08444518, -0.009464956, -0.03967168, 0.05095106, -0.04785119, -0.05805417, -0.07269471, -0.18795604, -0.23612237) * go_4(0.0, 0.0); + result += mat4(-0.026615486, 0.1219551, 0.17111751, 0.12014681, -0.10403522, 0.13139823, 0.28612077, -0.17874514, 0.030061528, 0.31433544, 0.16948178, 0.10126, 0.0582159, -0.13620348, -0.026327167, 0.11529438) * go_4(0.0, 1.0); + result += mat4(-0.10999408, -0.1642254, -0.09659326, -0.085699454, 0.05962901, -0.07562989, 0.042366143, -0.1533413, -0.09869005, -0.21281542, 0.020441674, 0.17866766, -0.26933256, 0.049314983, 0.10039448, -0.13316467) * go_4(1.0, -1.0); + result += mat4(-0.22610307, -0.0013520997, 0.16817398, 0.037943725, -0.067527935, -0.15105802, -0.0973126, -0.05843863, 0.19214404, 0.092337616, -0.024034662, -0.007926626, -0.32222804, 0.082673185, 0.069847725, 0.027493093) * go_4(1.0, 0.0); + result += mat4(0.0014049035, -0.058899652, 0.060463455, -0.052001078, 0.19716045, 0.12879235, -0.026990427, 0.23919769, 0.0034248075, -0.0157977, -0.06720619, -0.013757762, -0.101808615, 0.029667001, 0.07381132, 0.092393965) * go_4(1.0, 1.0); + result += mat4(0.053514812, 0.14120969, -0.056737684, 0.017708244, -0.05407678, 0.103361025, -0.0924985, 0.053643283, -0.28559983, -0.12866977, -0.06750911, 0.027970003, 0.06481888, 0.06773354, -0.07627304, -0.07058017) * go_5(-1.0, -1.0); + result += mat4(0.10564813, 0.1891429, -0.085196435, 0.0073824013, 0.0039014777, 0.14679071, 0.09327677, -0.030248597, 0.18063113, -0.3115451, 0.06560229, -0.03190648, -0.1619295, -0.112393744, -0.10004008, 0.0023948452) * go_5(-1.0, 0.0); + result += mat4(-0.033827845, -0.12089327, 0.042195093, 0.025078757, -0.044261515, 0.09103579, -0.19070679, -0.1600237, 0.13683122, -0.072529055, 0.062436976, -0.29964364, -0.114442796, -0.047068417, -0.07223064, 0.05781626) * go_5(-1.0, 1.0); + result += mat4(-0.04086473, 0.029395554, 0.05157983, 0.013322953, -0.001428512, -0.103283875, 0.15795463, 0.21691218, 0.23493949, -0.18836173, 0.28818855, -0.07839693, -0.043874815, -0.011829423, 0.0825803, 0.18832965) * go_5(0.0, -1.0); + result += mat4(0.087384604, 0.2075869, 0.012306303, -0.06356627, -0.019742407, -0.256092, -0.089735925, 0.026248232, -0.22160976, -0.4420786, 0.033200428, -0.1376953, -0.3315224, 0.17343274, 0.3179911, 0.012785637) * go_5(0.0, 0.0); + result += mat4(-0.14358811, 0.052979786, 0.13841373, 0.07362653, 0.050186664, 0.11735455, 0.0032370305, -0.16536471, -0.005521641, 0.1040989, -0.07086791, 0.13729815, 0.0840539, 0.06547088, 0.22857827, -0.2079967) * go_5(0.0, 1.0); + result += mat4(-0.11850976, -0.026047882, 0.00785038, -0.19955018, 0.040088244, -0.10139797, 0.08621738, -0.26192454, 0.3888625, 0.33236128, 0.1412189, 0.10097289, 0.07574426, -0.15459102, -0.1557534, 0.03405655) * go_5(1.0, -1.0); + result += mat4(-0.15693793, -0.03326048, 0.110803954, 0.07044277, 0.1380442, -0.029729376, -0.26033366, 0.040598683, -0.23744181, 0.043091178, 0.18325818, 0.05989088, 0.099216335, -0.012825024, 0.20831011, -0.08420897) * go_5(1.0, 0.0); + result += mat4(0.031240137, -0.034582928, 0.0022927374, -0.06525183, -0.15711913, -0.04604516, 0.0605175, 0.15128267, 0.072712876, -0.015489105, -0.20996843, -0.24177326, 0.053063773, -0.08747667, 0.24771367, 0.1244199) * go_5(1.0, 1.0); + result += vec4(0.07754665, -0.09230884, 0.019135362, 0.035482828); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_1_tf2 +//!SAVE conv2d_2_tf +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.15677336, 0.18937011, -0.15614599, 0.15203404, 0.098624565, 0.023782162, -0.045496363, -0.014783688, 0.07303875, -0.075132, -0.019847363, -0.088889055, -0.11558432, -0.08860719, 0.16452459, -0.018188732) * go_0(-1.0, -1.0); + result += mat4(0.026749048, -0.0376324, -0.0994071, -0.00093872234, 0.014682955, 0.008369919, -0.046362195, -0.21044572, -0.013911088, -0.117338374, 0.14585997, -0.11355687, 0.04094843, -0.11326298, 0.08555518, 0.076577775) * go_0(-1.0, 0.0); + result += mat4(0.04918652, 0.10098061, -0.097193845, 0.011482707, -0.015221698, -0.06306758, 0.09985586, -0.0011515089, -0.09592504, 0.11805872, -0.053774815, 0.093555175, 0.11237289, -0.20694147, 0.255737, 0.0149322525) * go_0(-1.0, 1.0); + result += mat4(0.06269537, -0.28116295, 0.1405942, 0.00218229, -0.012810465, 0.11574089, 0.060055815, -0.14248852, 0.03755387, 0.03748404, 0.04481931, 0.086039774, -0.0707909, -0.053917676, -0.009349141, -0.06623982) * go_0(0.0, -1.0); + result += mat4(-0.002837983, -0.0649247, -0.14890024, 0.0011222209, 0.12083026, -0.16136795, -0.04910086, 0.060653802, 0.020444075, 0.0024171378, 0.06839313, -0.21157807, -0.1678213, -0.27503422, 0.0063047423, 0.03292154) * go_0(0.0, 0.0); + result += mat4(0.14229529, -0.002042125, -0.022892606, 0.08743759, 0.035437252, -0.12997083, -0.1851374, 0.33951423, -0.037205234, 0.03710803, 0.018455725, -0.052581675, -0.16795224, -0.14008522, 0.011014682, 0.07038518) * go_0(0.0, 1.0); + result += mat4(0.105874196, -0.21320704, -0.08445409, 0.052140422, -0.13498448, -0.0737051, -0.027274717, -0.06932614, -0.017584193, -0.13111684, -0.049095873, 0.08269069, -0.017520722, -0.08716905, 0.25897968, -0.1412353) * go_0(1.0, -1.0); + result += mat4(-0.016677873, -0.024665434, -0.11711789, 0.16085778, 0.017375777, 0.15644072, 0.11040864, 0.23371918, 0.10210983, 0.0039968346, -0.007850634, -0.026810693, 0.08863099, 0.094195805, 0.10420045, -0.19671428) * go_0(1.0, 0.0); + result += mat4(-0.016842589, -0.15904509, -0.038347725, 0.1279937, -0.00045717083, 0.13132372, -0.13027431, -0.058826704, -0.0029436084, 0.008283112, 0.10262298, -0.05013397, -0.02922706, 0.14453132, 0.18946488, -0.0966266) * go_0(1.0, 1.0); + result += mat4(-0.00050655927, 0.2318558, 0.025141997, -0.058849655, 0.05127902, -0.056867033, -0.06191942, -0.028451841, 0.038166817, -0.14328304, 0.06050816, -0.12157533, 0.058556214, -0.13964172, 0.026282474, 0.03329027) * go_1(-1.0, -1.0); + result += mat4(-0.06520211, 0.21877246, 0.017677024, -0.053116243, -0.018621214, -0.0063418522, -0.10306368, -0.07627847, -0.0035643768, -0.05579889, 0.07386847, -0.0084178485, 0.005625732, 0.10204069, -0.08501438, -0.013451101) * go_1(-1.0, 0.0); + result += mat4(-0.067369066, 0.17327416, 0.062035594, -0.1340041, 0.10289677, -0.0868232, 0.023330351, -0.072417624, -0.12027732, 0.11592929, 0.05090798, -0.06895359, -0.04391116, 0.18919718, 0.064172365, -0.051173057) * go_1(-1.0, 1.0); + result += mat4(-0.022913774, -0.021000199, -0.01890946, -0.079307556, -0.16522343, -0.3152304, -0.21007383, 0.01858985, 0.003152245, -0.009094366, -0.023845399, -0.06635666, 0.041294664, 0.12883614, -0.06389087, 0.005710572) * go_1(0.0, -1.0); + result += mat4(0.032583844, 0.16247992, 0.06764235, -0.2240413, -0.15760922, 0.20196813, 0.13201368, 0.106440805, -0.070570394, -0.19261852, 0.28010008, -0.0048360736, -0.14080645, -0.02105434, 0.023814693, -0.13861166) * go_1(0.0, 0.0); + result += mat4(0.071627796, 0.20605852, -0.2676727, -0.39509574, 0.22782667, 0.13424493, 0.08930976, 0.13314968, 0.045536704, -0.06271722, 0.01703984, 0.13352728, -0.07089344, 0.14776441, 0.11804898, -0.027061034) * go_1(0.0, 1.0); + result += mat4(-0.011638248, -0.016760292, 0.0593982, -0.100421235, 0.030956578, 0.13813019, 0.022237146, -0.091211095, 0.010232882, 0.0010010025, 0.16789608, -0.030847551, 0.027778173, -0.005418129, -0.16441783, 0.07580936) * go_1(1.0, -1.0); + result += mat4(0.08137598, -0.008976606, 0.00023393384, -0.19671111, -0.0068668523, 0.097364455, -0.0026000517, -0.11201763, 0.047109667, -0.043774106, 0.12344897, -0.13232613, 0.026984906, -0.13614078, 0.06604853, 0.10752554) * go_1(1.0, 0.0); + result += mat4(0.00047561026, 0.12248177, 0.05146918, -0.3956014, -0.12263068, 0.22729336, 0.03597535, 0.09500604, 0.06894016, 0.061162107, 0.13561803, -0.047466908, -0.0013999783, -0.068306796, -0.031758398, -0.046261873) * go_1(1.0, 1.0); + result += mat4(0.12310386, -0.046108138, -0.08357388, 0.02034243, 0.0024922634, 0.029359696, -0.04329755, -0.034257423, 0.08229037, -0.11810178, -0.1079754, 0.13327998, -0.09608102, -0.26294786, -0.056677792, -0.1958781) * go_2(-1.0, -1.0); + result += mat4(0.007982684, 0.020604203, -0.12702446, -0.02264998, -0.034644246, -0.00025684707, 0.037761245, -0.0041598473, -0.047972955, 0.039201785, -0.016598722, -0.044081174, 0.11861525, 0.01239671, -0.12192053, 0.08865015) * go_2(-1.0, 0.0); + result += mat4(-0.0018564354, -0.07618631, -0.09212719, 0.092056714, -0.16783315, 0.08645543, 0.24669226, -0.023520375, -0.04045034, -0.0023428998, -0.01612943, 0.014919031, 0.16028026, -0.020104371, -0.16949941, 0.18713622) * go_2(-1.0, 1.0); + result += mat4(0.19490379, -0.07592651, -0.200843, 0.07704469, -0.02736559, -0.054601975, -0.07240532, -0.03120134, -0.038438305, -0.12783389, -0.057655185, -0.009752765, 0.07110615, 0.033978693, -0.023724876, 0.11998657) * go_2(0.0, -1.0); + result += mat4(0.18834178, 0.23053586, -0.14430945, 0.32287082, -0.32185385, -0.15306619, -0.1573794, 0.005030648, 0.06912159, 0.009656687, -0.20743106, 0.03814172, 0.104378454, -0.07221508, -0.11348173, -0.019581677) * go_2(0.0, 0.0); + result += mat4(-0.017694198, 0.028853144, 0.1263284, 0.1820403, -0.05317991, -0.057951134, -0.04575081, 0.05769411, -0.11807033, 0.06413361, 0.06063185, 0.19433405, 0.0032539407, 0.021501997, -0.14744627, -0.095206425) * go_2(0.0, 1.0); + result += mat4(-0.0463219, -0.13988416, 0.07200895, -0.13444373, -0.2447483, -0.024709478, -0.08591721, -0.09281996, -0.046719797, -0.11321926, -0.061532497, -0.0044461554, -0.03174407, -0.0056026108, 0.0056006387, 0.08828445) * go_2(1.0, -1.0); + result += mat4(0.060374547, 0.062058832, -0.0390557, -0.047456663, -0.2227052, -0.03193117, -0.025358196, 0.08565629, 0.03657194, 0.13427348, -0.09266081, 0.23655434, 0.024580589, 0.01999063, -0.038653534, -0.023600115) * go_2(1.0, 0.0); + result += mat4(-0.0522313, 0.079263784, 0.10858985, -0.031472187, 0.072964184, -0.065342486, -0.03705779, 0.12809205, 0.09141905, 0.042783994, -0.028724866, -0.08221137, 0.13597457, 0.029334683, -0.12261823, -0.0052482346) * go_2(1.0, 1.0); + result += mat4(0.018523648, -0.21706165, -0.14580801, 0.038885653, -0.030849187, -0.06640324, 0.0011639405, 0.097421385, -0.10876752, 0.14631185, 0.014579094, 0.13907033, 0.1310694, -0.1287285, 0.03553917, 0.025316685) * go_3(-1.0, -1.0); + result += mat4(0.22148734, 0.01278849, -0.1596892, 0.17187239, -0.04219283, -0.064526156, 0.011610614, -0.0094766095, 0.028804665, 0.16347663, -0.09309108, 0.07097134, -0.014338763, 0.051742412, 0.059907336, -0.17768253) * go_3(-1.0, 0.0); + result += mat4(-0.06295463, -0.118564956, -0.016017804, 0.050398786, -0.07136999, 0.25657415, -0.035830878, -0.084443375, 0.12151532, -0.089734256, -0.064030536, 0.048108097, -0.01340212, -0.16572993, -0.093480445, 0.088874646) * go_3(-1.0, 1.0); + result += mat4(-0.059600584, -0.0052702287, 0.029479535, 0.20121074, -0.07113247, 0.1561413, 0.25110185, -0.060266465, -0.34369025, 0.14528714, 0.060928173, 0.008688357, 0.034280702, -0.004796254, 0.15269074, 0.056567237) * go_3(0.0, -1.0); + result += mat4(0.05273782, -0.10539872, -0.07192354, -0.083380386, 0.097994, -0.20134969, -0.5062206, 0.30952695, -0.041553877, -0.055801403, -0.037597038, -0.13394146, 0.027271803, 0.17738731, 0.3336375, -0.0035211574) * go_3(0.0, 0.0); + result += mat4(0.009962762, 0.11503034, 0.027571376, -0.018972939, 0.057955634, -0.039739445, -0.0676937, 0.09477686, 0.17910802, -0.28064108, -0.12184129, -0.028407406, 0.056930028, 0.024252843, 0.08959171, -0.027298026) * go_3(0.0, 1.0); + result += mat4(-0.010729545, -0.048747167, 0.03880723, -0.006755044, -0.011909068, 0.008659933, 0.0800407, -0.040333465, -0.25750905, 0.29087406, 0.04864783, 0.118413374, -0.03514928, -0.17206238, 0.2095635, 0.039926212) * go_3(1.0, -1.0); + result += mat4(0.0073815766, -0.030507097, 0.13367772, 0.04863103, -0.067190245, 0.039960794, -0.013012274, 0.15617093, -0.33983988, -0.05671963, 0.22061184, -0.03684452, 0.06304772, -0.08322253, 0.1117871, -0.2006011) * go_3(1.0, 0.0); + result += mat4(0.119437724, -0.009319272, -0.07218167, -0.20269917, 0.10248017, -0.009564983, -0.016272334, -0.042979773, 0.11264571, -0.15697405, 0.015802475, 0.11154868, -0.073011585, -0.07225136, 0.15061282, 0.027214698) * go_3(1.0, 1.0); + result += mat4(0.03921657, -0.0154446345, -0.01855873, -0.15813923, 0.11489257, -0.10245685, 0.090572976, -0.072605945, -0.069270656, 0.05171411, 0.045471992, -0.028802622, -0.19419885, 0.18310049, 0.06882923, -0.0005851153) * go_4(-1.0, -1.0); + result += mat4(0.04575681, -0.020910552, 0.051311508, -0.0004904971, 0.04239284, 0.024153773, 0.030940467, -0.107036866, -0.099398546, 0.30524835, 0.03902779, -0.05217122, 0.14969619, 0.084496036, -0.14226931, -0.07463564) * go_4(-1.0, 0.0); + result += mat4(0.05297294, 0.15384737, -0.0069473814, 0.055046722, 0.11697162, 0.2424236, 0.021053674, -0.004738062, 0.014129249, -0.2909751, -0.048418947, 0.014277387, 0.053296436, -0.12475984, 0.07531274, -0.022512587) * go_4(-1.0, 1.0); + result += mat4(-0.04752641, 0.0006545224, -0.00589135, -0.026285272, -0.043745905, 0.24044664, 0.027723765, -0.023630425, 0.00869218, 0.028710615, -0.013863237, 0.0809765, 0.06708566, 0.013517718, 0.0012386752, -0.022743834) * go_4(0.0, -1.0); + result += mat4(-0.12600644, 0.0116939265, 0.0491542, 0.06871389, -0.2096317, 0.050711762, -0.0455067, -0.11994795, -0.05030036, 0.20621927, 0.10951404, -0.05465143, 0.09614336, -0.22954291, 0.15239881, 0.04559428) * go_4(0.0, 0.0); + result += mat4(0.020940155, 0.16499193, 0.17525958, -0.051628407, -0.3068143, -0.14576466, 0.00672593, -0.1308778, 0.00072586804, -0.067010164, -0.093788825, 0.005219908, -0.020126363, -0.083521724, -0.0650657, 0.01836861) * go_4(0.0, 1.0); + result += mat4(0.072675996, 0.10010303, -0.1263988, -0.13888146, 0.13648619, 0.09535094, -0.0038582503, 0.10240531, -0.0014882578, -0.21053605, 0.16676606, -0.024605514, -0.06614438, 0.09575527, 0.116414934, -0.18538997) * go_4(1.0, -1.0); + result += mat4(-0.013467567, 0.11274834, 0.07675635, -0.054812886, -0.024862224, 0.044424616, -0.12858495, -0.120611496, -0.1295857, -0.029304063, -0.06629468, -0.22211547, 0.12577437, -0.015624684, -0.10307795, 0.09404936) * go_4(1.0, 0.0); + result += mat4(0.11430831, 0.11486887, -0.06219608, -0.018371167, 0.091516815, 0.0041821343, -0.043150745, -0.11775014, 0.07794832, -0.01944774, -0.031383686, 0.077408955, -0.124252975, 0.062118705, 0.009199536, 0.06538969) * go_4(1.0, 1.0); + result += mat4(0.22154011, -0.098727904, -0.08378975, -0.04167056, 0.019208338, -0.02245709, 0.13298267, -0.104098395, 0.053671844, 0.12845491, -0.003814564, 0.0665341, -0.07084713, 0.26803628, 0.09472736, 0.16825765) * go_5(-1.0, -1.0); + result += mat4(-0.21349828, -0.14917591, 0.12592548, -0.12721801, 0.086323306, -0.15409322, 0.07365807, 0.00620922, -0.0280901, 0.0957864, 0.10711525, 0.1165179, -0.08383744, 0.14757137, 0.024865197, -0.17536579) * go_5(-1.0, 0.0); + result += mat4(-0.044920437, -0.00016428503, 0.035227478, -0.026525848, -0.17628764, 0.044141084, 0.025941433, 0.18698089, 0.0069334265, 0.097304195, -0.08945912, -0.007168394, -0.054236215, -0.2604089, -0.14738831, -0.074961744) * go_5(-1.0, 1.0); + result += mat4(-0.043119818, -0.012245711, 0.030121213, -0.0032237277, -0.033457555, 0.052158665, 0.046546284, -0.0047129868, -0.08133807, 0.037123546, 0.08634659, 0.120436855, -0.02609943, 0.11368193, -0.06750012, 0.0007624448) * go_5(0.0, -1.0); + result += mat4(-0.20511842, 0.1999221, 0.099944666, -0.14691514, 0.012555328, -0.22190604, 0.12456348, 0.05391116, 0.031001683, -0.33920962, 0.13921735, 0.101068705, 0.28788915, 0.13809694, -0.10081831, -0.05679542) * go_5(0.0, 0.0); + result += mat4(-0.019705083, 0.08693377, 0.06884471, 0.032386675, 0.10256849, 0.22142375, 0.07398588, 0.03336761, 0.19134827, 0.12654771, -0.39008364, -0.29602188, -0.04149512, 0.018968705, 0.080247656, 0.0480814) * go_5(0.0, 1.0); + result += mat4(0.09539717, -0.10946926, -0.048939522, 0.030059233, -0.17243776, 0.021580435, 0.15642153, -0.10282692, -0.020257011, 0.060849674, 0.040640093, 0.05628088, -0.11358645, -0.16440971, 0.1787329, -0.02685428) * go_5(1.0, -1.0); + result += mat4(0.14034219, 0.21827984, -0.16170599, 0.03681219, -0.051667843, 0.019152328, 0.033406716, -0.025032328, 0.13413768, -0.09349573, 0.10037219, -0.0105256345, -0.17372406, -0.07619186, 0.068273135, 0.088958755) * go_5(1.0, 0.0); + result += mat4(-0.015460073, -0.04781314, -0.008159705, 0.117226824, -0.20293492, 0.019126927, 0.1074034, -0.10307512, 0.1356002, 0.108166546, -0.1275016, -0.023100886, -0.09334954, -0.14509954, 0.1668647, 0.13371155) * go_5(1.0, 1.0); + result += vec4(0.004647682, -0.04675001, -0.041206088, 0.07870823); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_1_tf2 +//!SAVE conv2d_2_tf1 +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.0116784945, -0.25090152, -0.17868316, 0.036498535, 0.015182224, 0.2023079, 0.011117134, 0.15237965, -0.015316299, 0.088544175, -0.06572522, -0.08057326, -0.22271864, -0.30610234, -0.12208543, -0.22944431) * go_0(-1.0, -1.0); + result += mat4(-0.11143165, -0.077543005, -0.061455075, -0.037597977, -0.0023224957, -0.10979736, -0.034990564, -0.008420816, -0.094636045, -0.030254573, -0.06455877, -0.020989688, 0.018324712, -0.3669934, -0.350233, 0.037510827) * go_0(-1.0, 0.0); + result += mat4(0.104956195, 0.015602951, -0.051957965, 0.13510315, 0.010418954, -0.054195777, 0.018231759, 0.045083612, 0.09856977, -0.10220956, -0.029939203, 0.01315078, -0.29208857, 0.0017958464, 0.08760539, -0.09646556) * go_0(-1.0, 1.0); + result += mat4(0.046938017, 0.08242743, 0.13486576, -0.087577604, 0.1157099, 0.101392664, 0.14847688, 0.037801757, 0.018798033, -0.25906846, 0.097656235, -0.009259822, 0.10044328, 0.33434513, -0.15681681, -0.07497045) * go_0(0.0, -1.0); + result += mat4(0.113606565, 0.15215175, 0.056206945, 0.03135906, -0.06457102, 0.028175417, -0.06261949, -0.015601963, -0.048961632, 0.07163545, 0.0147160115, 0.037389677, 0.092339285, 0.26372424, 0.1122662, -0.058904216) * go_0(0.0, 0.0); + result += mat4(-0.21457312, 0.1408831, -0.08713026, -0.06950515, 0.006483218, 0.028784987, -0.02613041, -0.06227427, 0.024932534, -0.02103815, 0.080908604, 0.078669965, 0.19956729, -0.035375793, -0.046653055, 0.07523847) * go_0(0.0, 1.0); + result += mat4(-0.11979529, -0.15300119, -0.06692378, 0.0982862, -0.05148871, -0.16330053, -0.045053672, 0.022939514, -0.013373179, 0.38319084, 0.11172139, -0.07044107, 0.09208871, -0.07254955, -0.03284103, 0.05421524) * go_0(1.0, -1.0); + result += mat4(-0.09024579, 0.022398917, -0.084611446, 0.1254619, -0.0028836168, -0.092541836, -0.06697658, -0.09709128, 0.10234711, -0.1247404, 0.031691026, 0.0087786, -0.09046125, 0.059536055, 0.2076767, 0.15046969) * go_0(1.0, 0.0); + result += mat4(-0.18603326, 0.0022851937, -0.10218833, 0.18102962, 0.030617537, -0.005931309, -0.06299933, -0.13356128, -0.03377612, -0.009710565, -0.10352098, -0.20960933, 0.10586698, 0.018833099, 0.16208176, -0.048466753) * go_0(1.0, 1.0); + result += mat4(-0.004165509, -0.112526424, -0.1481008, -0.09386717, 0.017359056, -0.16117403, 0.065114655, 0.15273894, 0.0850914, -0.6033039, -0.102531776, -0.09553129, 0.06812466, -0.17199127, 0.009345428, -0.117129266) * go_1(-1.0, -1.0); + result += mat4(0.19360402, -0.2172338, -0.025270093, 0.041762922, -0.06813442, -0.1315374, -0.03864256, -0.083543435, -0.14600715, -0.10248121, -0.039856248, 0.034162194, -0.06736031, 0.07872902, -0.06577812, -0.07003804) * go_1(-1.0, 0.0); + result += mat4(0.2596632, -0.06779467, -0.061247632, 0.09280383, 0.15697475, -0.06379218, 0.117600165, 0.19564915, -0.043823496, 0.2113048, 0.1236739, 0.05126704, 0.0036669953, 0.059754487, -0.031676155, 0.07585315) * go_1(-1.0, 1.0); + result += mat4(0.2750924, 0.07154958, -0.043717247, 0.11531165, 0.07236982, 0.112787254, 0.024018776, -0.0073595895, 0.037517104, -0.06963889, -0.13254988, -0.1347438, 0.08744426, 0.036659624, -0.010376286, -0.0011054546) * go_1(0.0, -1.0); + result += mat4(0.21909392, -0.15014122, -0.1724268, -0.11459151, 0.07886104, -0.039391857, -0.086656936, -0.18109863, 0.13549148, 0.24947289, -0.11073447, -0.012388639, -0.06299071, 0.094953805, -0.018513478, 0.11858225) * go_1(0.0, 0.0); + result += mat4(0.14019133, 0.289657, -0.13005698, 0.08418524, -0.15852125, 0.2049765, -0.18946235, -0.03330375, 0.057983503, 0.17226145, -0.16830897, -0.047264732, 0.027640691, -0.010081246, 0.14454436, 0.081710726) * go_1(0.0, 1.0); + result += mat4(0.1674246, 0.28778687, 0.19290589, 0.086525135, 0.09838388, 0.1437797, 0.18871532, -0.31380877, -0.13105413, -0.15920939, -0.049839422, 0.025027066, -0.042670842, -0.07288023, -0.03385935, 0.03853164) * go_1(1.0, -1.0); + result += mat4(0.26396382, -0.09383774, 0.10738164, 0.058519054, 0.01883401, 0.023963995, -0.09510717, 0.25038752, 0.004994643, 0.26613802, 0.11163109, -0.09746982, -0.08012294, 0.092731714, 0.024274494, 0.040725235) * go_1(1.0, 0.0); + result += mat4(0.024282128, 0.07086445, 0.04124535, -0.04565769, -0.043728314, -0.15438943, 0.06610379, 0.07666126, -0.046235953, 0.04901646, -0.045347054, -0.0908177, 0.03715751, -0.09512116, 0.024934331, 0.019330366) * go_1(1.0, 1.0); + result += mat4(-0.0610446, -0.00039494174, 0.11040924, 0.09711379, -0.033694427, 0.042628422, 0.04497454, -0.08639888, -0.006714255, -0.1956921, -0.07696048, -0.1440855, -0.036684107, 0.08872227, -0.014518533, -0.081829615) * go_2(-1.0, -1.0); + result += mat4(0.03242377, 0.2742694, 0.15646815, 0.12491848, -0.097658925, 0.04652564, -0.20971832, -0.22238888, -0.045453016, -0.10306553, -0.14868681, -0.03697577, 0.037367497, 0.106009305, 0.0006840817, -0.06331295) * go_2(-1.0, 0.0); + result += mat4(-0.09252423, -0.260707, 0.060529877, 0.1422387, 0.13040084, 0.060533516, -0.15988415, 0.093058884, -0.063219644, 0.16596133, -0.0858158, 0.0010563346, -0.05912638, -0.14902595, -0.0055698613, -0.19287406) * go_2(-1.0, 1.0); + result += mat4(0.050616026, 0.027293183, 0.1349355, 0.06430556, -0.0017233352, 0.05913591, 0.111860454, 0.05829484, -0.036098555, 0.065207146, -0.049812254, -0.14549483, -0.12424656, 0.1472102, 0.031858474, 0.017159335) * go_2(0.0, -1.0); + result += mat4(0.018377563, 0.13093959, 0.15379103, 0.12314944, 0.040771928, -0.066829674, -0.05734121, 0.105038896, 0.29102528, -0.015173645, -0.004220056, -0.13141808, -0.20211789, 0.16278313, 0.09339586, -0.06485214) * go_2(0.0, 0.0); + result += mat4(-0.000521399, -0.3693901, 0.17483166, 0.16742888, -0.06343791, 0.042411476, 0.13772172, 0.064281724, -0.034507953, 0.03691756, 0.13490774, 0.10946845, 0.12370677, -0.03205938, -0.02645649, -0.15375873) * go_2(0.0, 1.0); + result += mat4(0.023370143, 0.11848177, 0.005112462, 0.026092546, 0.034971926, -0.08103188, -0.20400497, 0.06226299, -0.060475063, 0.035214186, -0.13627078, 0.045491677, -0.07321337, -0.10956125, 0.056908336, -0.0032308386) * go_2(1.0, -1.0); + result += mat4(0.076967224, 0.117254384, 0.03186256, 0.2218116, 0.05217254, -0.13943173, 0.058474854, 0.13177274, -0.019476373, 0.14138101, -0.012791203, 0.12705484, -0.013589421, -0.10622012, -0.0021916716, 0.015177393) * go_2(1.0, 0.0); + result += mat4(-0.061352234, -0.032728117, -0.16315818, 0.08222588, 0.013996033, 0.057500184, -0.11674498, -0.10170402, -0.03012877, -0.14447689, 0.032117244, 0.11841102, -0.0070680035, -0.15353645, 0.14097273, -0.12609388) * go_2(1.0, 1.0); + result += mat4(-0.1366668, 0.022588843, -0.06960645, -0.019482136, 0.008831277, 0.005849642, -0.042811397, -0.10104664, -0.21647254, -0.055100426, 0.10582604, 0.091224626, 0.16348936, -0.04480947, -0.08394584, 0.14027816) * go_3(-1.0, -1.0); + result += mat4(-0.05215042, -0.22153285, -0.07402603, -0.1395589, -0.26351386, 0.060670085, 0.12676051, 0.0018233472, 0.09564221, -0.14353068, 0.23205271, -0.026433198, -0.04914892, 0.09260728, 0.016136972, -0.037016835) * go_3(-1.0, 0.0); + result += mat4(-0.09228144, 0.028619789, -0.011197684, 0.043782573, 0.061469227, 0.019487167, 0.046048775, -0.060745444, -0.24178508, -0.11117579, 0.1313642, -0.20273723, 0.081280276, -0.015113924, -0.008701512, 0.038079187) * go_3(-1.0, 1.0); + result += mat4(-0.092076614, -0.14906341, -0.013150191, -0.1445046, 0.023577487, -0.088496424, -0.03039066, -0.028063597, 0.033408202, 0.105900854, -0.098281376, 0.09988187, -0.04934366, 0.1647861, 0.15974896, 0.0484809) * go_3(0.0, -1.0); + result += mat4(0.043313354, -0.079856, -0.29574707, -0.23970212, -0.23463657, -0.061711017, -0.12481534, 0.21037807, -0.010700073, 0.14672308, 0.15071099, -0.03755617, 0.072450034, 0.083081506, -0.001196162, -0.055120632) * go_3(0.0, 0.0); + result += mat4(0.20737736, 0.008907195, -0.11623631, -0.038137514, 0.037122898, -0.10322798, -0.065684326, -0.010471773, -0.12765402, -0.117699586, -0.012870391, 0.071912766, -0.03260932, 0.12864828, -0.035069928, -0.08712889) * go_3(0.0, 1.0); + result += mat4(-0.05578123, 0.056912176, 0.01512389, -0.14807466, -0.012101421, 0.10860546, 0.034598228, 0.07160875, 0.15761101, -0.4777804, -0.24159615, -0.006523453, -0.28167522, -0.14714232, -0.1693888, -0.111417554) * go_3(1.0, -1.0); + result += mat4(0.25981572, 0.1301148, -0.01769167, -0.10818973, 0.16135831, 0.024396034, -0.06722463, -0.032221332, -0.12383674, 0.038760092, 0.052030306, 0.077312715, -0.007761604, -0.12031171, 0.018808518, -0.103885494) * go_3(1.0, 0.0); + result += mat4(0.048577465, 0.025990447, -0.07106119, 0.15832591, 0.019197416, 0.044232063, -0.030652093, 0.011447957, 0.18041368, -0.28076535, 0.022676598, -0.15350787, -0.1514482, -0.2362105, 0.14161605, 0.030001758) * go_3(1.0, 1.0); + result += mat4(0.2541123, 0.050012548, 0.1707829, 0.025630053, 0.078972176, 0.17645672, -0.020095231, 0.03378738, -0.1328695, 0.04409738, -0.23381121, -0.013347802, -0.049448222, 0.07035769, 0.105488785, 0.08659344) * go_4(-1.0, -1.0); + result += mat4(0.10455444, 0.28242826, 0.16516706, -0.046555575, 0.13230863, 0.07463435, -0.14748469, 0.11881527, 0.2279376, 0.14795774, 0.21520549, -0.05650647, 0.11728158, 0.048864357, 0.040869843, 0.1442246) * go_4(-1.0, 0.0); + result += mat4(0.21203394, -0.06565692, 0.03824069, 0.011281014, -0.033808656, 0.12499576, -0.13186213, -0.043884885, 0.017813649, 0.18413112, 0.046354674, -0.05213395, -0.051737677, -0.07141214, 0.03402196, -0.06220277) * go_4(-1.0, 1.0); + result += mat4(0.05735565, -0.12864622, 0.051514987, 0.03940558, -0.08701596, -0.1948226, 0.034218855, -0.03742723, 0.15607446, 0.0327541, 0.04040029, 0.0028771486, -0.08412264, -0.016660625, -0.058885157, 0.09373861) * go_4(0.0, -1.0); + result += mat4(0.069591254, 0.018901952, 0.008289076, 0.08653302, -0.009072406, -0.11095817, 0.20987292, 0.016384758, 0.05693833, -0.118542574, 0.11310585, 0.073924355, 0.10250452, -0.043420166, -0.07558694, -0.10898524) * go_4(0.0, 0.0); + result += mat4(-0.030319573, -0.3339516, -0.0689396, 0.01270701, 0.2504168, -0.08088952, 0.048351087, 0.013527536, -0.04373888, -0.27049688, 0.052563794, 0.010002367, 0.038096514, 0.0740455, -0.17847466, -0.1106183) * go_4(0.0, 1.0); + result += mat4(-0.041473575, 0.036192052, -0.20958827, 0.09255741, 0.043088675, -0.07332803, -0.1566315, 0.19757885, 0.04752265, 0.14642613, 0.021630943, -0.105035484, 0.015669389, 0.015701298, 0.124771506, 0.028875854) * go_4(1.0, -1.0); + result += mat4(-0.0017878636, 0.06815434, 0.03952396, 0.0008930589, 0.10052908, -0.010179957, 0.090537265, 0.26063922, -0.027913721, -0.27610707, -0.0935186, 0.103001356, -0.013015698, -0.13290603, -0.036786307, -0.120041944) * go_4(1.0, 0.0); + result += mat4(0.008112194, 0.101246096, 0.10216113, 0.012162128, 0.16638301, 0.03442679, -0.013482703, 0.22639573, -0.106342115, 0.16007386, 0.1562559, 0.031520694, -0.04781568, 0.061812893, 0.063238494, -0.112484284) * go_4(1.0, 1.0); + result += mat4(-0.07636386, 0.02620731, -0.04784259, -0.0068134456, -0.098476306, -0.25026417, -0.26229498, 0.07999187, 0.08054805, -0.13999973, 0.038135037, -0.017274393, -0.07507948, -0.19170132, -0.111937724, -0.07482982) * go_5(-1.0, -1.0); + result += mat4(-0.102867655, 0.041831665, -0.26580745, 0.072875075, 0.122495115, -0.24738726, 0.01103763, 0.010455935, 0.10415628, 0.071636476, 0.24413374, 0.036024485, -0.14325532, -0.028743692, 0.09872556, 0.019074876) * go_5(-1.0, 0.0); + result += mat4(-0.08356808, 0.031134086, -0.0018714333, 0.052166995, -0.050258227, 0.015659487, -0.010771479, -0.094513185, 0.120308846, -0.16520835, 0.24742663, 0.0097768335, -0.26430902, 0.00096495246, -0.010277926, -0.03203841) * go_5(-1.0, 1.0); + result += mat4(-0.08886612, 0.045868922, -0.23351108, -0.11945227, -0.08114231, 0.1866038, -0.014666174, 0.10560594, 0.23003237, -0.031111564, 0.08909732, -0.004926665, 0.14808343, 0.012070922, 0.26077467, -0.13846008) * go_5(0.0, -1.0); + result += mat4(0.02067818, 0.010505095, 0.1236986, 0.004310499, -0.23058774, 0.4539795, -0.1107521, 0.2687594, -0.088774115, 0.08556259, -0.28480148, 0.16472621, 0.22381066, 0.04922506, 0.03720699, -0.019955777) * go_5(0.0, 0.0); + result += mat4(0.02878623, 0.08478639, 0.2798358, 0.08889886, 0.094446555, 0.022878725, 0.04060367, 0.008747965, 0.074154414, -0.36745515, -0.22710432, -0.17041051, 0.16977836, 0.18033457, -0.1422643, -0.06097858) * go_5(0.0, 1.0); + result += mat4(-0.1882957, 0.07039768, 0.012633585, 0.0782871, 0.03383675, -0.07504364, -0.006248557, -0.0551174, 0.075581536, 0.091343425, 0.07753647, -0.0019186279, -0.016886314, 0.16758795, -0.060557626, -0.16569303) * go_5(1.0, -1.0); + result += mat4(-0.13320294, -0.055567943, 0.05735829, 0.12787667, 0.04922832, -0.012577599, -0.13878204, -0.014323274, 0.06648109, -0.026210563, 0.019616883, -0.27789673, 0.051355522, -0.13060455, 0.039109703, 0.036932684) * go_5(1.0, 0.0); + result += mat4(-0.10139845, -0.22758122, 0.044597298, 0.07907936, -0.025654264, -0.10633203, 0.04071873, 0.22363085, 0.12398309, 0.36964926, 0.21903247, -0.3217227, 0.030226095, 0.07867376, 0.045920413, 0.102684624) * go_5(1.0, 1.0); + result += vec4(-0.06939391, 0.017302405, 0.023963664, -0.011060264); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_1_tf2 +//!SAVE conv2d_2_tf2 +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.12172707, 0.08510432, 0.016999101, -0.03837886, -0.071940385, -0.028869554, -0.073142946, -0.018426571, -0.16583674, 0.02999741, -0.045404267, 0.07544135, -0.015742308, 0.051709145, 0.07165505, 0.15298915) * go_0(-1.0, -1.0); + result += mat4(-0.18608806, -0.08503095, -0.05690552, 0.20230335, 0.03255425, -0.07374758, 0.02050966, -0.0322938, 0.029025763, 0.045261286, 0.040862788, 0.0007141505, -0.040648397, -0.09871272, 0.06639088, -0.10357326) * go_0(-1.0, 0.0); + result += mat4(0.1160622, -0.021342635, -0.039825406, -0.19480887, 0.13462403, -0.06567422, 0.04279539, -0.012501501, -0.06882412, 0.24730788, -0.11261373, 0.15826169, -0.1942516, -0.011018759, -0.006282914, 0.15791936) * go_0(-1.0, 1.0); + result += mat4(-0.24771467, -0.029817501, -0.0072410326, 0.0049591805, 0.002406374, 0.06705227, 0.0746882, -0.021962378, 0.02235974, -0.09111428, 0.046035543, -0.05091351, 0.12882613, -0.0052345973, 0.20476472, -0.035007346) * go_0(0.0, -1.0); + result += mat4(0.07206948, 0.007837054, 0.004716684, 0.032783184, -0.1640229, 0.09656901, -0.024538686, -0.13850725, 0.0020381159, -0.119971916, -0.03598378, 0.098396435, 0.11248338, 0.013638009, -0.13411912, -0.091735974) * go_0(0.0, 0.0); + result += mat4(0.012680958, 0.0073848446, -0.15104567, -0.086190425, 0.017306415, -0.12165865, -0.030102974, -0.06412363, -0.048320986, 0.066044435, -0.037102707, -0.05550032, -0.022057295, -0.016380537, -0.023064991, 0.04324733) * go_0(0.0, 1.0); + result += mat4(0.014645644, 0.029250145, -0.19020447, 0.06094981, 0.06021305, 0.033002753, -0.08270684, -0.13078806, -0.078915745, 0.03234919, 0.0033177685, 0.025673114, -0.10040817, -0.11726593, 0.26478398, -0.021515043) * go_0(1.0, -1.0); + result += mat4(-0.03930199, -0.007856709, -0.010699159, -0.03138408, -0.25258276, -0.051078923, -0.17284779, 0.115362965, 0.20981595, -0.12642711, -0.07527823, -0.21674243, -0.05171349, -0.032929346, -0.11959963, 0.021577986) * go_0(1.0, 0.0); + result += mat4(-0.12679584, -0.00971076, -0.2065375, -0.10207124, 0.1189984, 0.13061368, 0.048184898, 0.009846873, 0.08049477, -0.052818604, 0.024915429, -0.089877605, 0.028596658, -0.049394336, 0.15412825, -0.25427133) * go_0(1.0, 1.0); + result += mat4(-0.042340282, 0.15739791, -0.0058195787, 0.11638454, -0.29605922, 0.04940588, -0.12277728, 0.06556332, -0.15141304, -0.007342225, -0.015176599, 0.19668026, -0.029852653, 0.1131092, 0.06274694, 0.19488528) * go_1(-1.0, -1.0); + result += mat4(0.17317021, 0.12034029, 0.023154281, -0.035767153, 0.023895182, 0.08562897, 0.010849429, 0.15511833, -0.071655706, 0.06762927, 0.110938646, -0.11194944, 0.088547744, 0.01826857, 0.10635028, 0.00079735904) * go_1(-1.0, 0.0); + result += mat4(0.1724684, 0.072277844, -0.07157608, 0.014533819, 0.21083286, -0.10260293, -0.042641845, -0.022131564, 0.15609416, -0.012785209, 0.1689822, 0.08156936, -0.05814626, 0.12873544, 0.013016528, 0.07162671) * go_1(-1.0, 1.0); + result += mat4(0.10265145, -0.15034834, -0.020390334, 0.051008113, 0.13483785, -0.036995072, 0.10197256, 0.07332627, 0.24034818, 0.041877862, 0.101294585, -0.038894523, -0.036132984, -0.09265928, -0.056219723, -0.02888855) * go_1(0.0, -1.0); + result += mat4(0.2652024, -0.01230703, 0.23594856, 0.0742723, 0.09739247, 0.0483161, 0.023852533, 0.17482124, -0.09551598, 0.07907358, 0.09280555, 0.27893403, -0.016893778, -0.15504459, 0.07111864, 0.17860727) * go_1(0.0, 0.0); + result += mat4(0.009993413, -0.034769267, 0.06733924, -0.026964549, 0.30227652, 0.0139632225, 0.049200308, -0.07578955, 0.061411507, 0.1924837, -0.008919774, -0.02543576, 0.08537961, 0.01291466, 0.07587885, -0.19892685) * go_1(0.0, 1.0); + result += mat4(0.079757795, -0.021056721, -0.119849935, -0.1829519, 0.25801504, 0.08255822, 0.09422877, -0.26859275, -0.17237917, 0.030880162, -0.073090166, 0.045552216, -0.15178613, 0.046667624, 0.05506945, 0.120318785) * go_1(1.0, -1.0); + result += mat4(0.13899504, 0.2106589, 0.09166694, -0.06926149, 0.13418478, 0.017007234, 0.027100448, -0.062565625, -0.021934774, 0.067251615, -0.10328445, 0.033577222, -0.050557505, -0.035202354, -0.062489368, -0.02470738) * go_1(1.0, 0.0); + result += mat4(0.15340589, 0.11806747, 0.20874004, 0.048173226, -0.05472843, 0.084544346, -0.043854542, -0.07571899, 0.036645986, 0.05016359, -0.074323095, -0.2529282, 0.13572234, -0.008771343, 0.11274458, 0.18037859) * go_1(1.0, 1.0); + result += mat4(0.021645557, 0.08299124, -0.051362146, 0.09342637, 0.0665058, 0.09216755, -0.0164684, 0.07281118, -0.0053016874, 0.032470454, 0.004089323, 0.009884544, -0.0046753073, -0.037279285, 0.12613527, 0.022236153) * go_2(-1.0, -1.0); + result += mat4(-0.06745298, -0.15038055, 0.11176774, -0.06209666, 0.017843692, 0.09113945, 0.10990877, -0.021071523, -0.111020654, 0.066645324, 0.04690986, -0.011084726, -0.15171939, 0.084783286, 0.24798997, -0.042696327) * go_2(-1.0, 0.0); + result += mat4(-0.05915715, -0.22595185, 0.061333664, -0.0924661, -0.013238295, 0.12872066, 0.076126665, 0.18921073, 0.01155994, 0.092524104, 0.07423282, 0.09467482, 0.070056126, -0.06073076, 0.030242696, -7.544676e-05) * go_2(-1.0, 1.0); + result += mat4(0.110107556, 0.0036358358, -0.013859793, 0.008409858, -0.021337144, -0.2092404, 0.054274913, 0.013595842, 0.058993395, 0.029181428, 0.15061715, -0.046964824, 0.044353873, -0.036482453, 0.22763032, -0.018364066) * go_2(0.0, -1.0); + result += mat4(0.20778932, -0.049483854, 0.24778971, -0.3266631, -0.11545233, -0.093305275, -0.4550674, 0.2352049, 0.0052719507, -0.045975342, -0.35826904, -0.058102172, -0.096291795, -0.11218896, 0.23879842, -0.03641578) * go_2(0.0, 0.0); + result += mat4(-0.109331824, 0.00814177, -0.08803353, 0.06688425, -0.09283131, 0.031705324, 0.040918272, 0.18237656, -0.07152109, 0.12277652, -0.059865803, -0.06869673, 0.11195339, -0.1325457, 0.1912906, -0.08553347) * go_2(0.0, 1.0); + result += mat4(-0.10984097, 0.15747224, -0.019459615, 0.24969575, -0.01159421, -0.027474519, -0.004108195, -0.062133413, -0.06384389, -0.08368246, 0.0023778875, 0.13171864, -0.05652675, 0.14332311, -0.15735596, 0.20150533) * go_2(1.0, -1.0); + result += mat4(0.078031205, -0.12403856, 0.04191835, -0.16050112, 0.11339027, 0.074540265, -0.15324953, -0.093895815, -0.0614043, -0.013293006, -0.12348063, 0.026803058, -0.1773178, -0.083579265, -0.054864556, 0.296814) * go_2(1.0, 0.0); + result += mat4(-0.053263642, -0.048648115, -0.010281689, 0.20099847, 0.190146, -0.0023872026, -0.010445226, -0.04350378, -0.017980015, -0.04147092, -0.08261166, -0.031094978, -0.046422567, 0.120881446, -0.054973155, -0.058380593) * go_2(1.0, 1.0); + result += mat4(-0.16745642, 0.07924586, -0.16717474, 0.06620602, 0.16495655, 0.0293633, 0.07890249, -0.30954084, 0.03467237, -0.20190205, 0.0014116743, -0.32280523, -0.14156029, -0.06447037, -0.21021147, 0.0687274) * go_3(-1.0, -1.0); + result += mat4(-0.04360317, 0.14327015, -0.06630513, -0.09011326, -0.0919624, -0.09085504, 0.024597472, 0.23315085, 0.039139662, -0.17370877, 0.048785537, -0.10094988, 0.010336257, -0.016844554, -0.05375775, -0.041789643) * go_3(-1.0, 0.0); + result += mat4(-0.04296336, -0.093379766, 0.005651271, -0.090673715, 0.021506978, -0.08289978, 0.16281237, -0.0939677, -0.10273288, -0.22043118, 0.062697254, -0.027947478, -0.08711271, 0.0077892793, -0.10296665, 0.049631704) * go_3(-1.0, 1.0); + result += mat4(-0.09388834, -0.02609863, -0.043841925, -0.020223266, -0.023729876, 0.07854283, -0.19361661, -0.02297985, -0.003995974, 0.03295993, -0.07480908, -0.03279157, 0.20216386, -0.06685853, -0.22405225, -0.22138701) * go_3(0.0, -1.0); + result += mat4(-0.041702025, 0.03686083, 0.051558632, 0.08093031, 0.0004725686, 0.0050831046, -0.31346506, 0.24020754, -0.012426937, 0.24121699, 0.0522848, 0.0524269, 0.0041041574, 0.20183508, 0.30658904, -0.099001035) * go_3(0.0, 0.0); + result += mat4(0.0057143304, 0.07863334, 0.030834159, -0.20045337, -0.14132334, -0.019685036, -0.041891463, 0.04859716, -0.19865768, -0.16805026, -0.21894583, 0.08326542, 0.1381732, 0.06524222, 0.14627486, 0.105718866) * go_3(0.0, 1.0); + result += mat4(-0.06811638, -0.07022535, -0.08053529, -0.019539276, -0.0013508294, -0.067808755, 0.14990425, -0.020371182, 0.2161962, 0.012578056, -0.07941276, -0.29615018, -0.11092915, 0.10959083, -0.38344857, -0.04684961) * go_3(1.0, -1.0); + result += mat4(0.05912716, -0.007058617, 0.0053731226, -0.20157285, -0.0039983774, 0.1626744, -0.15158534, -0.0880334, -0.095339596, -0.102986366, 0.16870484, 0.37301186, 0.046958193, -0.018308617, 0.2801249, -0.1583765) * go_3(1.0, 0.0); + result += mat4(0.03710428, 0.12427524, -0.15491271, 0.0521613, -0.104145944, -0.11358381, -0.11450005, -0.03948202, -0.022532975, 0.013648349, -0.05297846, -0.05551, 0.012648896, 0.013729304, 0.004389595, 0.033111174) * go_3(1.0, 1.0); + result += mat4(0.092548154, 0.12822087, 0.03935411, -0.03887123, 0.18817197, -0.010538254, -0.13670439, -0.073919185, 0.020497803, 0.030874884, 0.023953672, 0.0029225757, 0.1144403, -0.08691024, 0.05340699, -0.10702303) * go_4(-1.0, -1.0); + result += mat4(0.1613281, 0.05971506, 0.042405322, 0.005931725, -0.09373433, -0.06380234, -0.064201795, -0.014180793, 0.0671638, -0.01367733, 0.14260428, -0.11077721, -0.045686133, 0.056600757, -0.15297161, -0.005997308) * go_4(-1.0, 0.0); + result += mat4(0.24641256, 0.06483951, 0.060505014, -0.009762036, -0.04572455, 0.03593092, 0.03415938, -0.14721255, -0.107680336, 0.09697482, 0.016876915, 0.18656448, 0.016999245, -0.08490942, -0.040251363, -0.074220374) * go_4(-1.0, 1.0); + result += mat4(0.25207043, 0.11133333, 0.13421617, -0.10310646, -0.22712758, 0.11617119, 0.06397493, -0.011858522, -0.115762815, -0.050787542, 0.06386407, -0.1579078, -0.12903711, 0.084837236, 0.07354705, 0.02250288) * go_4(0.0, -1.0); + result += mat4(0.14158289, 0.07666087, -0.20075443, -0.010602763, -0.02820616, 0.0944957, 0.15453936, -0.15856305, 0.1749605, -0.12841891, -0.017792901, -0.10751241, -0.059640024, 0.13478336, -0.35048804, -0.20975049) * go_4(0.0, 0.0); + result += mat4(0.18300997, 0.0895379, 0.084789746, 0.092567876, -0.16524926, 0.1414963, -0.15058212, 0.13400394, -0.113864176, -0.05660036, -0.0001961134, 0.14347304, 0.16637255, -0.18054125, 0.009827294, 0.21254125) * go_4(0.0, 1.0); + result += mat4(0.11330536, 0.020117162, 0.049111363, 0.059246156, -0.17288256, -0.07703511, -0.064532675, 0.10420442, 0.100950584, -0.11876045, 0.013643637, -0.060119864, 0.16402918, -0.0701684, 0.10797075, 0.15408994) * go_4(1.0, -1.0); + result += mat4(0.034557853, -0.09076456, -0.06957025, 0.11215256, 0.09526117, -0.0033204784, -0.11551807, -0.03458551, -0.025462642, 0.0434891, 0.3050603, 0.053797644, 0.10751034, 0.060085565, 0.15370789, -0.2315563) * go_4(1.0, 0.0); + result += mat4(-0.046833776, -0.006102459, 0.1123578, 0.24187551, 0.03283197, -0.11041104, 0.20806998, 0.008368949, -0.1924367, 0.03361783, -0.045319956, -0.08859883, -0.2011492, 0.0912345, 0.048245467, -0.005335901) * go_4(1.0, 1.0); + result += mat4(-0.18253306, -0.0011128648, -0.044692483, -0.057080504, -0.05725425, -0.19065356, -0.03155062, 0.06648306, -0.014216424, -0.0038765708, -0.017490484, -0.15456702, -0.010514629, -0.08982491, 0.10435141, 0.030280044) * go_5(-1.0, -1.0); + result += mat4(0.01791952, 0.1946834, 0.16822097, 0.18846266, -0.075084575, -0.10975577, -0.12906383, 0.20190994, 0.10143081, -0.2725471, -0.035883784, -0.22165625, -0.15959083, -0.34200552, 0.15872408, -0.021841785) * go_5(-1.0, 0.0); + result += mat4(0.029525736, 0.04896955, -0.011629367, 0.011558814, 0.00933636, -0.12728998, 0.0053133606, 0.019774856, 0.099030845, -0.27376446, -0.08325353, -0.20274483, -0.26426545, -0.17067485, -0.14366214, -0.21118636) * go_5(-1.0, 1.0); + result += mat4(-0.009527981, -0.033085525, -0.00047734487, -0.040472545, 0.071459636, 0.0954099, -0.060635693, 0.036283012, 0.1324083, 0.050335824, -0.2460094, -0.04979816, -0.09456389, 0.09053007, 0.11540641, -0.21168198) * go_5(0.0, -1.0); + result += mat4(0.004067291, 0.1497142, 0.100381024, 0.083456755, 0.10807039, -0.05651095, 0.021606952, -0.005951023, -0.067543074, 0.21499002, -0.021271145, 0.20417792, 0.05860774, 0.20977509, -0.10931411, 0.16582364) * go_5(0.0, 0.0); + result += mat4(-0.05491801, 0.0055349297, 0.03950427, 0.007250093, -0.062947564, -0.14126986, -0.06730335, -0.034683496, -0.03981397, -0.21181524, 0.21769942, -0.103150204, -0.17016284, 0.048786215, -0.014319224, 0.17676318) * go_5(0.0, 1.0); + result += mat4(-0.14126709, -0.032334052, 0.05638739, 0.11381126, 0.30596843, -0.12634167, 0.23541147, 0.08096712, 0.09152563, 0.18567194, -0.25563926, -0.21220013, -0.10782045, -0.044764172, 0.14415121, 0.10968688) * go_5(1.0, -1.0); + result += mat4(-0.034708634, -0.037528913, -0.0846457, -0.24652602, -0.09284069, -0.103932016, 0.09996971, 0.04605858, 0.06597961, 0.06697364, -0.028432503, -0.032057744, 0.052634656, 0.02281619, 0.17896608, -0.1521084) * go_5(1.0, 0.0); + result += mat4(-0.0043455027, -0.07276675, 0.03043292, 0.07712516, -0.20799218, -0.25933886, -0.11458076, -0.0025673904, 0.08385744, 0.33315855, -0.035151098, -0.19899674, -0.005009251, 0.056176793, 0.045722242, 0.17721124) * go_5(1.0, 1.0); + result += vec4(-0.020202361, -0.0016936217, 0.023388062, 0.10373034); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!SAVE conv2d_3_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.2582688, 0.116867825, 0.009512264, -0.0022509228, 0.13270317, 0.019233711, 0.014508687, 0.01733284, -0.121534936, 0.2637504, -0.16833198, 0.08360115, 0.09262769, -0.09723933, -0.08402722, -0.06326682) * go_0(-1.0, -1.0); + result += mat4(0.32656944, 0.035490595, 0.014057071, 0.08615446, -0.001598092, 0.16362181, -0.10130158, 0.16792357, 0.03340437, 0.037359558, 0.09397945, 0.11016778, 0.08567979, 0.31809476, 0.085573055, -0.15427281) * go_0(-1.0, 0.0); + result += mat4(0.16257697, -0.03590016, -0.19049743, -0.13342945, 0.013655946, -0.11739747, -0.008941973, 0.015134444, -0.17258401, 0.17935902, 0.06434015, -0.06638789, 0.17013264, -0.171608, 0.07526482, 0.29814368) * go_0(-1.0, 1.0); + result += mat4(-0.14037174, -0.060715932, 0.012513121, 0.05294183, -0.05479372, -0.13937469, 0.01836811, -0.133735, -0.29546124, -0.14349708, 0.14202882, -0.03247825, -0.054209106, 0.002391278, -0.024334526, -0.10866433) * go_0(0.0, -1.0); + result += mat4(-0.098666176, 0.009357217, 0.14404769, -0.03864725, -0.21861532, 0.24275939, 0.3084927, -0.17814654, -0.06785066, -0.20976599, -0.010328756, -0.0075252843, -0.1265569, -0.3896638, -0.07620251, -0.17581807) * go_0(0.0, 0.0); + result += mat4(-0.028447198, 0.088148355, -0.11362386, 0.032440383, -0.017401151, 0.2062452, -0.1613577, -0.07957526, 0.31136703, -0.06775296, -0.019393584, -0.063142054, -0.12292114, 0.010548703, 0.03203177, -0.053964596) * go_0(0.0, 1.0); + result += mat4(0.108504035, -0.20656614, -0.04412517, -0.047383796, 0.038306333, -0.20189808, -0.07821153, -0.0229348, 0.10628414, -0.015934726, -0.08728048, -0.17359804, 0.17790003, 0.085666224, -0.11872538, -0.007298351) * go_0(1.0, -1.0); + result += mat4(0.024346102, -0.0066076764, -0.011155871, -0.057157155, -0.04878886, 0.121565156, 0.094774745, -0.021847744, 0.04866778, 0.07184023, 0.26012063, -0.07480458, -0.29240155, 0.12562081, 0.01449463, -0.028680477) * go_0(1.0, 0.0); + result += mat4(-0.12557116, 0.034923933, -0.095903516, -0.03958003, 0.26028237, -0.017168928, -0.13332075, 0.15662631, 0.065815985, -0.035664845, 0.045483954, -0.015463682, -0.093050554, 0.17345443, 0.069853716, 0.012629484) * go_0(1.0, 1.0); + result += mat4(-0.06156731, 0.07782055, -0.10174533, -0.020296015, -0.11969389, -0.060097698, 0.13305716, 0.16102178, 0.024139002, -0.02605331, -0.07594407, 0.19671421, -0.12202574, 0.14988048, 0.015957702, -0.04196926) * go_1(-1.0, -1.0); + result += mat4(-0.34706548, 0.043015823, 0.13185433, 0.10132207, 0.007556987, -0.043371882, -0.08854469, 0.1748955, -0.1481482, 0.031284038, 0.120617144, 0.21384451, -0.08435913, -0.049537454, 0.049118094, 0.01525446) * go_1(-1.0, 0.0); + result += mat4(0.09368386, -0.057292625, -0.17107973, 0.102038346, -0.21283975, 0.29275435, -0.039638165, -0.14761256, -0.0026279686, -0.1902631, -0.14120182, 0.26573882, 0.0017522989, -0.06337007, 0.14134108, -0.015992256) * go_1(-1.0, 1.0); + result += mat4(0.04090445, -0.15472308, 0.0086197965, -0.08812333, 0.079468906, -0.16199878, 0.15031399, -0.03220131, -0.08283918, 0.18892156, -0.11201425, 0.143803, 0.027449837, -0.15672483, -0.09222757, -0.0074415365) * go_1(0.0, -1.0); + result += mat4(0.10325783, 0.01752857, 0.10529392, -0.04568797, 0.017125184, -0.18414256, 0.109236374, -0.05950773, -0.07963555, 0.22193272, 0.009846993, -0.028046092, -0.28534588, -0.040712982, -0.018419487, 0.040993705) * go_1(0.0, 0.0); + result += mat4(-0.07601499, 0.14913873, -0.11738921, -0.21686155, -0.09468833, -0.10593258, -0.13899745, -0.08376532, -0.21147677, 0.0016611695, -0.12994987, 0.06078483, 0.007183634, 0.22829083, 0.054238643, 0.025317933) * go_1(0.0, 1.0); + result += mat4(-0.020357948, -0.06775977, 0.04134854, -0.19611607, 0.21193837, 0.19103523, 0.1623303, -0.07516307, 0.09373488, -0.18499903, 0.122855246, 0.06162072, -0.06930552, 0.040520284, 0.066090606, 0.06882486) * go_1(1.0, -1.0); + result += mat4(0.07091698, 0.027023822, 0.014318926, -0.096747, 0.2213003, -0.26515988, 0.027153777, -0.06498218, -0.1544758, -0.072314575, 0.060353238, 0.0008735325, 0.10359162, -0.040275127, 0.03365087, 0.067658685) * go_1(1.0, 0.0); + result += mat4(-0.010807538, -0.032808676, 0.0016953531, -0.07662512, 0.0726062, -0.018007128, -0.10622275, -0.25853804, 0.059124377, 0.1262254, -0.093686275, 0.013412181, 0.17268743, -0.0634091, -0.2380408, 0.061805595) * go_1(1.0, 1.0); + result += mat4(0.0589103, -0.13791196, -0.054214116, -0.10432153, -0.009462091, -0.06466445, -0.10792851, 0.0046791825, 0.034062322, 0.0810174, 0.112342946, 0.14306374, 0.0536091, -0.056520145, -0.14358906, 0.1730281) * go_2(-1.0, -1.0); + result += mat4(0.102546036, -0.0005907261, 0.06815491, 0.054100085, 0.012063651, 0.13010375, 0.076584436, 0.10106609, 0.07464082, 0.12651648, -0.13567902, 0.12329812, 0.036417592, -0.030062713, -0.07439, -0.06734716) * go_2(-1.0, 0.0); + result += mat4(-0.06956145, -0.0320128, 0.0069283135, 0.0010382348, -0.15168677, -0.07246775, -0.1870489, 0.081376776, -0.12240719, 0.040261835, -0.114711486, 0.11216043, 0.039739948, 0.064421944, -0.11448801, -0.11656052) * go_2(-1.0, 1.0); + result += mat4(-0.029262811, 0.07973898, 0.014937532, 0.17416446, -0.13320738, 0.09951435, -0.09681337, 0.24465284, 0.0027678797, 0.054772142, 0.11334623, -0.062660255, 0.06494805, -0.014957246, -0.016339006, 0.0065059843) * go_2(0.0, -1.0); + result += mat4(-0.19118161, 0.24356417, -0.17327957, 0.06050448, -0.097790115, -0.38453653, 0.045624297, 0.04574299, -0.15803054, -0.5270604, -0.04556698, -0.13112716, -0.026057608, 0.13840397, -0.04413626, -0.06273916) * go_2(0.0, 0.0); + result += mat4(0.029510414, -0.005691187, 0.05228498, 0.028585492, 0.18082422, -0.032805815, 0.007563971, 0.08991763, 0.105824, 0.02457178, 0.055056915, -0.060770642, -0.011407322, -0.11525285, -0.04518266, -0.04449915) * go_2(0.0, 1.0); + result += mat4(0.14025277, -0.18081227, 0.014395497, -0.09138814, -0.09448127, 0.2532618, 0.08094696, 0.050620202, 0.040627994, 0.17808948, 0.0933771, -0.04734779, -0.025526097, 0.0038422223, 0.05230542, -0.101145774) * go_2(1.0, -1.0); + result += mat4(-0.07215562, -0.058965042, 0.038303573, 0.0009963732, -0.059399143, 0.15957262, 0.035185594, 0.0719169, 0.08515627, 0.09775558, 0.13178122, -0.0837824, 0.014349278, 0.038491696, 0.071876876, 0.0345376) * go_2(1.0, 0.0); + result += mat4(0.040965024, -0.030738113, -0.05919069, -0.14155431, 0.09109957, -0.099060595, -0.10192779, 0.033825647, 0.11551892, -0.04282345, 0.020072978, 0.035168435, 0.10797329, -0.0584945, -0.024158757, -0.03585887) * go_2(1.0, 1.0); + result += mat4(0.11656172, -0.03488785, 0.090906724, -0.0032958854, 0.11268224, 0.070826046, 0.008982598, -0.14222313, 0.0025792273, -0.07585458, -0.021171344, -0.10144507, 0.24918565, 0.004032981, 0.032430686, -0.012328044) * go_3(-1.0, -1.0); + result += mat4(-0.22021858, 0.06875914, 0.004574366, -0.0694593, 0.11509186, -0.25873652, -0.08872615, -0.024206636, 0.15076822, -0.14054653, -0.045519873, -0.04547437, -0.22077747, -0.054121707, 0.049612578, 0.10545096) * go_3(-1.0, 0.0); + result += mat4(-0.069911204, 0.078573205, -0.073091984, 0.015637126, -0.23398215, 0.12185918, 0.08496631, -0.063231654, 0.14004779, 0.07965737, 0.14457273, -0.057528477, -0.0971965, 0.10445598, -0.054162677, -0.11529022) * go_3(-1.0, 1.0); + result += mat4(-0.12595661, 0.16308525, 0.09465576, -0.05046868, 0.1799443, 0.115778774, -0.13534002, 0.09609113, 0.107355125, -0.07263705, -0.04365324, 0.10355821, -0.023942605, 0.026093582, 0.009621531, 0.06096017) * go_3(0.0, -1.0); + result += mat4(0.1272364, -0.07220049, 0.041847665, 0.17912698, -0.03009012, 0.06394436, -0.03263169, -0.04573203, -0.07620046, 0.42576316, 0.042653862, 0.13744949, 0.23633486, 0.10078774, -0.121353894, 0.12101121) * go_3(0.0, 0.0); + result += mat4(0.03558598, -0.1297437, -0.05971473, 0.17683595, 0.1725135, 0.052228056, 0.08043958, -0.09891566, 0.03620246, -0.07612062, 0.0671727, 0.037559096, -0.14037324, 0.021277385, -0.04257818, 0.17619017) * go_3(0.0, 1.0); + result += mat4(-0.11092632, -0.00013030393, 0.12967736, -0.22887622, -0.08721344, 0.054407217, 0.07632402, -0.08394438, -0.071129434, 0.11594225, -0.058196247, 0.020942273, -0.123769015, -0.114318974, 0.03252267, 0.07218774) * go_3(1.0, -1.0); + result += mat4(-0.11842664, -0.044281907, 0.07725646, -0.09330976, -0.028858917, -0.10954367, 0.04575166, -0.026068112, -0.06559436, -0.2284913, -0.19561197, -0.0016185943, 0.11867088, -0.038570896, 0.08526274, 0.019519364) * go_3(1.0, 0.0); + result += mat4(0.0822196, -0.0037142867, 0.08382291, -0.013849318, -0.13749887, 0.044966772, 0.04564233, -0.00618037, -0.052107867, 0.033819627, -0.03494537, 0.024765901, -0.10504158, -0.028348709, -0.0089757275, 0.030026745) * go_3(1.0, 1.0); + result += mat4(0.053351242, 0.056979094, -0.060212657, 0.14301975, 0.17891912, -0.032538075, 0.011639607, 0.035919394, 0.04533616, -0.12939154, -0.041703038, 0.0071665174, -0.19303554, 0.018363694, 0.08923668, 0.020215489) * go_4(-1.0, -1.0); + result += mat4(0.038452573, 0.1614918, -0.022068001, 0.0030016324, -0.2680856, 0.21928017, 0.085351996, 0.049881425, 0.058913168, -0.044736963, 0.016097903, 0.21123125, 0.079624146, -0.16535924, 0.06877731, 0.1305827) * go_4(-1.0, 0.0); + result += mat4(0.05783186, -0.219528, 0.0816723, 1.3595931e-05, -0.02902699, -0.12913156, -0.40516803, -0.028480045, 0.12000909, 0.081304125, 0.053406257, -0.08878543, 0.02251961, 0.12547138, -0.20464425, -0.05598181) * go_4(-1.0, 1.0); + result += mat4(-0.15702735, 0.21000047, 0.08434562, 0.27938238, -0.03068116, -0.004006084, 0.19768693, 0.066732645, -0.055060755, -0.16314429, 0.028655436, 0.021063909, -0.028578848, -0.008238495, 0.12807982, -0.0071345936) * go_4(0.0, -1.0); + result += mat4(-0.17309058, -0.18169925, -0.14182782, 0.107684694, -0.1117235, 0.19443877, 0.101682656, 0.030993309, -0.12313995, -0.048883304, -0.11149261, 0.12847972, 0.28405818, 0.20219465, 0.015797788, 0.123306856) * go_4(0.0, 0.0); + result += mat4(-0.07962997, 0.06323938, 0.045708194, 0.0020409136, -0.0022456956, 0.010837137, 0.014872806, -0.060870074, 0.13772255, 0.005320253, 0.05848208, 0.14984395, -0.037590872, -0.07464743, -0.16873243, 0.019905593) * go_4(0.0, 1.0); + result += mat4(0.13775061, 0.032707028, 0.13456069, 0.05904891, 0.046821773, -0.22715594, 0.056300808, -0.15724476, -0.07337338, 0.19666758, -0.013393664, 0.04086994, 0.12254266, -0.08695188, -0.11076954, -0.15678991) * go_4(1.0, -1.0); + result += mat4(0.07177161, 0.01181348, -0.07497793, -0.085427515, 0.039396375, -0.0035293372, 0.20881353, -0.057439566, 0.15257393, 0.16040947, -0.027684899, 0.16330487, -0.054777898, 0.07572324, -0.03833461, -0.017093522) * go_4(1.0, 0.0); + result += mat4(0.000963837, -0.00780663, -0.023343472, 0.18377425, 0.32722053, -0.08156815, -0.11247523, -0.12714005, 0.18326895, -0.16434003, 0.052783884, 0.2168339, 0.03372009, 0.024008008, -0.1949321, -0.11585071) * go_4(1.0, 1.0); + result += mat4(0.07887302, -0.043003492, -0.16841368, 0.023287356, -0.15838705, 0.21706697, 0.16976407, 0.11461476, -0.062454503, 0.08966307, 0.10723603, -0.029792916, -0.03903073, -0.06255455, 0.025979951, -0.09530182) * go_5(-1.0, -1.0); + result += mat4(-0.0917689, 0.12646815, -0.11529587, 0.06925059, -0.18619959, -0.05243984, 0.16720963, -0.07121025, -0.04476961, 0.0074207215, 0.16076323, -0.14866208, 0.042807475, -0.08767046, -0.005694572, -0.11727041) * go_5(-1.0, 0.0); + result += mat4(-0.0062040854, -0.00097002264, -0.058491956, -0.035364915, 0.040115915, -0.10968144, 0.046607487, 0.23429875, -0.11210956, 0.034507494, -0.07195393, -0.16490693, 0.047223017, -0.044811487, -0.11060463, -0.14174072) * go_5(-1.0, 1.0); + result += mat4(-0.14469296, 0.0862561, 0.027785733, 0.005940194, -0.0062618204, -0.015266768, -0.067160904, -0.17241345, -0.060631767, 0.024863401, 0.056833714, -0.063885145, -0.14061876, -0.042549785, 0.036430426, 0.14348027) * go_5(0.0, -1.0); + result += mat4(0.3022943, -0.19899924, 0.19672908, -0.09840718, 0.14039348, 0.105976574, -0.14415087, -0.06547584, 0.3070416, 0.40989116, 0.009514016, 0.018336622, 0.08806178, 0.07710675, -0.03551256, -0.04064369) * go_5(0.0, 0.0); + result += mat4(0.16016869, -0.12516344, -0.011240568, -0.1443897, -0.009084668, -0.1618983, 0.06672594, -0.30417737, -0.09547601, -0.09057253, 0.08657728, 0.036226142, -0.0022018533, 0.12780087, 0.0029589643, 0.12111095) * go_5(0.0, 1.0); + result += mat4(-0.1765741, 0.03653064, -0.03139237, 0.057462048, 0.16041194, -0.2303424, -0.11946362, -0.1788824, 0.098096356, -0.18419504, 0.021373387, -0.1157983, 0.079671614, -0.03361971, 0.06394305, -0.0101026185) * go_5(1.0, -1.0); + result += mat4(-0.01576709, 0.11476761, -0.041474868, 0.13242105, -0.056526344, 0.024517184, -0.21629438, -0.010624098, -0.0053918827, -0.19187245, -0.12927179, -0.08489797, 0.055730473, -0.043147404, -0.03800261, 0.048107833) * go_5(1.0, 0.0); + result += mat4(-0.0014053301, -0.046847776, 0.004571536, 0.18300104, -0.053145096, 0.057801194, 0.2322556, 0.22864385, 0.0040904162, -0.037985127, 0.041369, -0.065972395, 0.16685532, -0.091719486, -0.1425869, -0.10230388) * go_5(1.0, 1.0); + result += vec4(0.00803133, -0.020707153, 0.0056995153, -0.052884795); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!SAVE conv2d_3_tf1 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.12893085, -0.12928686, 0.12365234, -0.021265296, 0.15424967, -0.0063038417, -0.027432516, -0.10297197, 0.118751466, -0.058228746, -0.10025376, 0.0027489034, 0.0073948866, 0.040659092, 0.08120041, -0.12702137) * go_0(-1.0, -1.0); + result += mat4(-0.02242042, 0.114516795, -0.042158883, -0.14150862, -0.18976203, 0.109531336, 0.03548168, -0.1681465, -0.13782959, 0.07437085, -0.045712702, -0.09431652, -0.0029079607, 0.05180383, 0.07098421, -0.2149384) * go_0(-1.0, 0.0); + result += mat4(0.3218102, 0.0013506162, 0.12795919, -0.10901241, -0.08859676, -0.06861104, -0.014102381, 0.0051467894, -0.16305672, 0.022653125, -0.019810826, -0.05701206, 0.1842382, -0.074959196, -0.07368022, -0.046023685) * go_0(-1.0, 1.0); + result += mat4(-0.099247254, -0.2161521, -0.095611826, -0.0179061, -0.0067561218, 3.99846e-05, 0.01254028, -0.056954045, -0.0075805853, -0.082335606, -0.053469665, 0.25761604, -0.049429264, -0.08763215, 0.051362507, -0.030518934) * go_0(0.0, -1.0); + result += mat4(0.13518652, 0.05463841, -0.07654066, 0.023629244, -0.23324661, 0.04781438, -0.20902736, 0.10330495, -0.16452856, 0.235407, -0.022236459, 0.036046103, -0.08613043, -0.012954787, 0.043111194, 0.021807853) * go_0(0.0, 0.0); + result += mat4(0.11316856, -0.027803158, -0.026492868, -0.0030439082, 0.063926555, -0.09612654, -0.22492981, -0.13748476, 0.06954571, -0.008035041, -0.04846681, -0.23352449, -0.06676289, 0.13268302, 0.037954323, -0.0342029) * go_0(0.0, 1.0); + result += mat4(-0.18148762, -0.06975972, -0.21924862, -0.03831989, 0.09057307, -0.06784279, 0.05716139, 0.032582354, 0.32728904, 0.03561464, -0.06930132, 0.13582717, -0.04723415, 0.053298444, -0.1580453, 0.029922115) * go_0(1.0, -1.0); + result += mat4(-0.13381054, 0.06294187, 0.04273711, -0.089835554, -0.042215306, 0.04515037, -0.01970211, 0.07447383, -0.12915656, 0.087721184, 0.122159, 0.17817122, 0.05233303, 0.053456925, -0.22769327, 0.17450784) * go_0(1.0, 0.0); + result += mat4(0.062324032, 0.056449406, 0.070776984, 0.070366256, 0.15072031, -0.20342071, 0.118405774, -0.11357599, 0.23603258, -0.17724364, 0.028237892, 0.07491812, 0.015638597, 0.20543055, -0.05863285, 0.06565301) * go_0(1.0, 1.0); + result += mat4(-0.07647028, 0.2292153, 0.019423103, -0.06965646, -0.107311614, -0.19989595, -0.06673964, -0.027954143, 0.0017375473, -0.048038438, 0.052211836, -0.042501964, -0.1372413, -0.2437919, -0.15933524, -0.07229055) * go_1(-1.0, -1.0); + result += mat4(-0.023719285, 0.05654754, 0.09026341, 0.020072227, -0.12716366, -0.013687293, -0.1312343, -0.06847118, 0.016806766, -0.10526531, -0.011248162, 0.12535807, -0.12538499, -0.042496204, -0.076355785, -0.0017766576) * go_1(-1.0, 0.0); + result += mat4(0.039450683, -0.049502935, -0.009162741, 0.015372251, -0.14449993, -0.06564991, -0.093242005, -0.018039258, -0.2410318, 0.020259766, -0.040783074, -0.05092842, -0.023994599, -0.037968505, 0.052206438, -0.10967312) * go_1(-1.0, 1.0); + result += mat4(0.13721816, -0.1571525, 0.09432105, 0.023277072, -0.073701076, -0.13941942, -0.02705892, 0.06508469, -0.17687775, -0.07433723, -0.11237514, -0.015321937, -0.31670073, -0.09665636, -0.11843665, -0.030077526) * go_1(0.0, -1.0); + result += mat4(-0.09092922, 0.088340946, 0.1001261, 0.05962185, 0.07731374, -0.09623944, -0.03218285, 0.04484794, -0.10394964, 0.111483194, -0.07343945, 0.15182221, 0.27208853, 0.024986237, -0.058641106, -0.039870527) * go_1(0.0, 0.0); + result += mat4(0.03685333, -0.014777545, -0.0064948527, 0.060336027, -0.04251398, -0.004589828, -0.025893224, -0.075040996, 0.007964778, 0.22512783, -0.033568367, 0.052608117, 0.2143682, 0.21318182, -0.06253117, -0.055562623) * go_1(0.0, 1.0); + result += mat4(0.07906376, -0.015447189, -0.045265637, 0.066810004, 0.07202818, -0.07874254, -0.071680374, 0.009017687, 0.07042464, 0.016754108, 0.017237889, 0.0106343115, -0.042138606, -0.11085673, 0.14738452, -0.10718694) * go_1(1.0, -1.0); + result += mat4(-0.07745664, 0.16073377, -0.01899363, 0.07030874, 0.058903817, -0.065876774, 0.020186676, 0.09385477, 0.14517148, 0.053237557, -0.16942556, -0.04716224, 0.13748227, 0.17071299, 0.12176032, 0.07409275) * go_1(1.0, 0.0); + result += mat4(0.09208682, 0.029487375, -0.057159107, 0.025398627, 0.12468226, 0.034707896, 0.010541767, -0.032418035, 0.11508723, 0.050812677, -0.08127881, 0.0052238777, 0.15403835, -0.17993934, 0.071115926, 0.0059663) * go_1(1.0, 1.0); + result += mat4(-0.053597223, -0.00758354, -0.011711322, 0.12876037, -0.022196915, 0.045487616, 0.02135921, 0.010447794, 0.063635394, 0.09686383, -0.05077074, 0.072695896, -0.02443565, -0.045984466, -0.025993166, -0.08304488) * go_2(-1.0, -1.0); + result += mat4(0.1321831, 0.017644621, 0.16513684, 0.0659792, 0.09676037, -0.07867503, 0.04669573, -0.04401741, 0.23034973, 0.10561144, -0.1184282, 0.13691261, -0.18894893, 0.21760973, 0.08807475, -0.19776659) * go_2(-1.0, 0.0); + result += mat4(-0.053137053, -0.07991928, -0.09902317, 0.017081713, -0.021857716, 0.011578801, -0.0009752623, 0.043588534, 0.11997389, 0.0027668865, -0.09973271, 0.065404624, -0.07151649, -0.017840967, -0.0188252, -0.14957094) * go_2(-1.0, 1.0); + result += mat4(0.13721272, 0.04459704, -0.0069692475, 0.07410797, -0.13855937, 0.021286163, -0.04160423, -0.05980007, 0.027626112, 0.092742406, -0.032267787, -0.00358655, 0.12470872, 0.09738248, 0.06565896, -0.1076945) * go_2(0.0, -1.0); + result += mat4(0.12965658, -0.110055126, -0.08762725, 0.031792786, 0.11524638, -0.09530289, 0.07955128, 0.0049232226, 0.07190261, -0.010207877, -0.26513076, 0.045152593, -0.16932993, 0.091321826, 0.11550899, -0.100929074) * go_2(0.0, 0.0); + result += mat4(-0.1674921, 0.0907835, -0.033396322, -0.03168371, 0.013580539, 0.047018647, 0.028963672, 0.04756761, -0.08714202, -0.2602012, -0.12279786, 0.18663418, -0.07781514, -0.013219039, 0.006731288, 0.005795019) * go_2(0.0, 1.0); + result += mat4(0.01206949, -0.047031406, -0.060451232, 0.027200127, -0.1178311, 0.14014901, 0.25840858, -0.14889579, -0.11640469, -0.01811908, -0.09255012, -0.08351582, 0.086520575, -0.021090247, 0.08717082, 0.043429427) * go_2(1.0, -1.0); + result += mat4(0.020278929, -0.15339202, 0.041678756, 0.07180138, -0.0635027, -0.088976234, -0.04092133, 0.07997308, -0.134963, -0.015960857, -0.060887713, -0.07916197, 0.20483045, -0.12640053, 0.10478231, 0.04803776) * go_2(1.0, 0.0); + result += mat4(-0.03549656, 0.033666074, 0.20228225, -0.096664, -0.00096604426, 0.20793179, 0.09613217, -0.053552672, 0.051677585, -0.018252494, 0.07543575, 0.006295734, 0.046456967, -0.16520908, 0.0120992735, -0.015491354) * go_2(1.0, 1.0); + result += mat4(0.09486195, 0.0862073, 0.04189838, 0.0026638226, 0.09820532, 0.1007168, -0.022186898, -0.05491984, -0.13535279, 0.046514615, 0.09563633, 0.021364952, -0.23145446, 0.05070801, -0.022965223, -0.18874952) * go_3(-1.0, -1.0); + result += mat4(0.05885208, -0.022751214, -0.015712557, 0.157172, 0.05131988, -0.09524327, -0.045114886, 0.05928359, -0.001745961, -0.035245676, -0.010552595, -0.06321781, -0.15489094, 0.017822266, -0.06018634, 0.06429225) * go_3(-1.0, 0.0); + result += mat4(0.1243866, 0.014742004, -0.07896682, 0.2792386, -0.08055696, -0.0067778644, 0.0407617, 0.1389886, -0.02221008, 0.07494927, -0.11067403, 0.026464086, -0.009520921, 0.015791653, 0.021943323, 0.12500213) * go_3(-1.0, 1.0); + result += mat4(-0.08929889, 0.09244356, 0.130978, -0.03720041, 0.07869226, 0.13067861, 0.104627624, -0.01922214, 0.03561331, -0.031736456, 0.15136853, 0.0128885005, -0.16457924, -0.028147755, 0.13005957, -0.07908654) * go_3(0.0, -1.0); + result += mat4(-0.020705838, 0.0936515, -0.026146421, 0.030703338, 0.032063864, 0.14091234, -0.021708539, -0.056303035, -0.007502981, -0.1276548, -0.15350288, -0.04722333, -0.049264792, -0.016106946, 0.035777904, 0.10648118) * go_3(0.0, 0.0); + result += mat4(0.16387826, -0.059457906, 0.009808255, 0.030755969, 0.05709708, 0.0025975339, 0.021356652, -0.023887865, -0.15327913, -0.03702513, -0.041953377, 0.0049483287, 0.1434395, 0.08557114, -0.07722993, 0.22481233) * go_3(0.0, 1.0); + result += mat4(-0.20757784, -0.05194353, -0.17085314, -0.12557504, -0.056353815, 0.06583933, 0.005532102, -0.0040489454, 0.23847903, -0.08254601, -0.20940065, 0.1251241, 0.14838001, -0.12861559, -0.04664337, 0.07232125) * go_3(1.0, -1.0); + result += mat4(-0.010124613, -0.07096996, -0.1366236, 0.0018079067, -0.041023795, 0.12729517, 0.24600507, -0.07845422, 0.31226948, -0.023518091, -0.0023672595, 0.058046557, 0.1718256, -0.05916957, 0.0067618093, 0.08826252) * go_3(1.0, 0.0); + result += mat4(-0.0013852714, -0.02530485, 0.12499248, -0.047640886, 0.06515882, 0.009700978, -0.005210036, -0.0332508, -0.135034, 0.07050036, 0.06152617, 0.02243357, 0.20835938, 0.041327897, 0.047491845, -0.017284496) * go_3(1.0, 1.0); + result += mat4(-0.2511675, 0.2016235, -0.22534974, -0.29850873, -0.014898309, 0.034321953, -0.14487329, 0.029454721, 0.05068056, -0.09661999, 0.00070758525, 0.06925706, -0.19870853, -0.0871149, 0.13158658, -0.09995704) * go_4(-1.0, -1.0); + result += mat4(-0.22352318, -0.073506966, -0.11625505, 0.0049028546, 0.029848805, -0.06952766, -0.043236732, 0.13255614, 0.093998544, 0.17581578, -0.0004033081, -0.12263665, -0.17329359, -0.11587317, 0.059647266, -0.02954624) * go_4(-1.0, 0.0); + result += mat4(-0.057583325, 0.056015383, 0.11960743, 0.033696633, -0.14805156, -0.10933173, -0.08482661, 0.07473009, 0.040999115, -0.0995941, -0.005304712, 0.04729056, -0.09739792, 0.07000572, -0.12560466, 0.023240168) * go_4(-1.0, 1.0); + result += mat4(-0.1967497, 0.093729794, -0.05857918, -0.12817049, -0.034558292, 0.016039368, -0.12012142, -0.017481307, 0.0391479, -0.10992257, 0.015143992, 0.01391454, 0.051010676, 0.012996939, 0.041216355, 0.08623047) * go_4(0.0, -1.0); + result += mat4(0.21069938, -0.066038206, -0.015458416, -0.097732425, 0.051942978, -0.03459923, -0.05756448, 0.14080645, 0.055423364, -0.06490901, -0.07402898, -0.16263707, -0.07290088, -0.058713708, 0.06723124, 0.069584474) * go_4(0.0, 0.0); + result += mat4(0.09618103, 0.055036288, 0.09001422, 0.027986465, -0.018399306, -0.07295329, 0.06687392, 0.06653489, -0.06524778, -0.11760177, -0.004764932, -0.10559294, 0.16195896, -0.22127731, -0.0060094665, -0.0073161777) * go_4(0.0, 1.0); + result += mat4(-0.006081162, 0.09074974, 0.1387847, -0.012516454, 0.040442165, 0.024901407, 0.019887343, -0.012545043, 0.040630046, 0.06390039, -0.088361576, -0.07775115, -0.016567666, -0.048221476, 0.00507668, 0.00015517596) * go_4(1.0, -1.0); + result += mat4(0.27623588, -0.29454315, -0.09558771, 0.016047282, 0.12541397, 0.06766668, 0.012096932, -0.051367834, -0.20859776, -0.20424904, 0.1920475, -0.12987578, 0.08319857, -0.05495395, 0.043287907, -0.027431363) * go_4(1.0, 0.0); + result += mat4(0.1666435, -0.10736637, -0.039772738, 0.06555994, 0.06329126, -0.004524732, 0.027252503, -0.018687485, -0.0827318, -0.17353283, -0.17264223, 0.0050896755, 0.08507919, -0.19379872, 0.14229794, -0.0837528) * go_4(1.0, 1.0); + result += mat4(0.10103022, 0.2500691, 0.11863092, 0.04184915, 0.07104669, 0.11822421, 0.040399753, -0.05503637, -0.03777729, -0.0552892, -0.0367129, -0.07652974, -0.06387571, 0.09680754, 0.030113626, 0.07385613) * go_5(-1.0, -1.0); + result += mat4(0.21662953, -0.047714498, -0.100133225, 0.14122888, -0.053247962, -0.13878773, 0.043139406, 0.10316825, -0.050836936, -0.1023108, 0.07342308, -0.013418398, 0.1517183, -0.038232815, 0.16094449, 0.18475303) * go_5(-1.0, 0.0); + result += mat4(0.10745382, 0.14385694, 0.16242811, -0.022071859, -0.06788635, 0.09044915, -0.09642871, -0.032185104, -0.15011486, 0.06751199, -0.0030307414, 0.045759566, 0.17598514, 0.069681115, 0.18387364, 0.15741494) * go_5(-1.0, 1.0); + result += mat4(0.0355877, -0.01989782, -0.021107944, 0.1195755, 0.04636706, 0.15067361, -0.03446434, 0.091468826, -0.054333266, -0.091928974, 0.077975504, 0.051997006, -0.2611878, 0.012728117, 0.038493883, 0.062820844) * go_5(0.0, -1.0); + result += mat4(-0.09769422, 0.0486323, -0.09317317, -0.09185559, -0.30752286, -0.11381268, -0.053577766, -0.17922285, -0.14485466, 0.10500625, 0.22108263, -0.12928547, 0.33743355, 0.13309081, 0.13873322, 0.05503852) * go_5(0.0, 0.0); + result += mat4(-0.19131194, -0.10878378, -0.04047478, -0.024106042, -0.25611252, 0.10455126, -0.0774767, -0.005242356, 0.14342257, 0.096795335, 0.11119688, -0.06816075, 0.045405596, 0.11205132, 0.22008072, 0.010171907) * go_5(0.0, 1.0); + result += mat4(0.03641146, 0.025730135, 0.088947766, 0.09581084, 0.18514295, 0.05196274, -0.09955554, 0.043848306, 0.09665611, -0.05949442, -0.037989084, 0.043330964, -0.046047594, 0.090160884, 0.06574573, -0.018593606) * go_5(1.0, -1.0); + result += mat4(-0.26031247, -0.05067085, -0.07451936, -0.01263683, 0.13966191, -0.25842324, -0.115060754, -0.08976801, 0.028517777, 0.045588367, 0.2297454, 0.023451945, -0.13475016, 0.048971854, 0.04935944, -0.10817461) * go_5(1.0, 0.0); + result += mat4(-0.044189412, 0.12302195, 0.05076291, -0.072933994, 0.22576593, 0.12513146, -0.020687684, -0.0017186786, 0.056137685, 0.07280331, -0.0060697175, 0.017558591, -0.19459185, -0.08931442, 0.03579924, -0.00051510497) * go_5(1.0, 1.0); + result += vec4(-0.088215575, 0.02001751, -0.0013112888, -0.0031276105); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!SAVE conv2d_3_tf2 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.055708, -0.15470836, -0.18314275, -0.018972168, 0.0008025653, -0.04802735, 0.0037216125, -0.008888557, -0.044309124, 0.1032128, -0.09535111, 0.1075431, -0.061698865, -0.136952, -0.08298975, -0.03202739) * go_0(-1.0, -1.0); + result += mat4(0.047130957, -0.13275343, 0.10046242, 0.14484632, -0.18798989, -0.01724291, -0.095696434, -0.06524662, -0.12395302, -0.057923865, 0.013821919, -0.19095008, -0.10312008, -0.067719445, 0.03039217, 0.002102062) * go_0(-1.0, 0.0); + result += mat4(0.07914871, 0.03840256, -0.11512143, -0.19842817, -0.17087726, -0.117287606, 0.26407588, -0.028159037, -0.16280699, -0.1019244, 0.026774779, -0.06759367, 0.0024644772, 0.033856, -0.007847236, 0.028765628) * go_0(-1.0, 1.0); + result += mat4(-0.07034455, 0.076142974, -0.22090098, -0.0905723, -0.06417895, 0.119223125, -0.26432338, -0.04371924, 0.16288432, 0.026691884, -0.017952124, 0.08947346, -0.1286289, -0.01910609, 0.04351911, 0.0340226) * go_0(0.0, -1.0); + result += mat4(0.14330725, 0.090986304, -0.1424256, 0.054584663, 0.043702085, -0.08414303, 0.001994348, -0.022233546, 0.03748274, 0.12121618, 0.26035795, 0.13496856, 0.3061306, 0.019047879, -0.043746773, 0.18116328) * go_0(0.0, 0.0); + result += mat4(-0.051031455, 0.0696392, 0.04753365, -0.20600007, 0.08226225, -0.055646114, 0.15932508, 0.0419586, -0.11326543, 0.027461074, -0.041595474, -0.10200617, 0.004414234, -0.085846625, 0.1470303, 0.15096648) * go_0(0.0, 1.0); + result += mat4(0.101050586, 0.15982646, 0.008072791, -0.11342946, 0.08270196, 0.08548463, 0.042926773, 0.06380147, 0.11114159, 0.07615307, -0.01628438, -0.082144625, 0.029875848, -0.020052845, 0.014533401, -0.027843053) * go_0(1.0, -1.0); + result += mat4(-0.0279601, -0.09164763, 0.11475252, 0.04266532, 0.17664109, -0.044317525, 0.038787685, 0.00897195, -0.065523826, 0.013996353, -0.109297335, -0.029989313, -0.025986332, -0.09013683, 0.24884683, 0.06528543) * go_0(1.0, 0.0); + result += mat4(-0.09584907, -0.15118982, -0.015254367, -0.12179126, -0.12146391, 0.15733819, -0.033256296, -0.061760996, -0.036719803, 0.16471127, 0.18006523, -0.056930948, 0.03617248, 0.07113426, -0.069748655, -0.081067815) * go_0(1.0, 1.0); + result += mat4(0.1271724, -0.082678355, 0.07997786, 0.06285082, 0.02332232, 0.05007377, -0.094914205, -0.06553253, -0.10122091, 0.012112823, -0.11796572, 0.021247976, 0.0654767, -0.091576956, 0.08175131, -0.010552305) * go_1(-1.0, -1.0); + result += mat4(0.12505153, -0.037628997, -0.022449989, 0.06686099, -0.25006896, 0.13324498, 0.041733105, 0.2241118, 0.024380242, 0.09950468, 0.078383565, 0.11634127, 0.077024244, -0.07780778, 0.07760342, 0.06282892) * go_1(-1.0, 0.0); + result += mat4(-0.13915282, 0.16686817, 0.030251533, -0.0035493453, -0.13203144, 0.033648454, 0.0024875028, -0.0007983041, -0.105395414, 0.1536483, 0.050240528, 0.11495208, -0.026644144, -0.05793395, -0.12098678, -0.065910175) * go_1(-1.0, 1.0); + result += mat4(0.02292821, 0.030319002, -0.1293214, -0.0096194055, -0.01278381, -0.00087727525, 0.19325659, 0.025518872, -0.05107456, -0.14991362, -0.05873866, 0.12859605, -0.20932005, -0.11987684, -0.051870637, 0.001319446) * go_1(0.0, -1.0); + result += mat4(-0.022754941, 0.043839425, -0.08278873, -0.21222612, 0.0015371124, -0.010085336, 0.09510605, 0.07335702, -0.106798455, -0.12928678, 0.015216733, 0.031399984, -0.07811234, -0.119671986, 0.17570181, 0.029809073) * go_1(0.0, 0.0); + result += mat4(-0.11764911, -0.16164766, 0.08784963, -0.019233093, -0.076887585, -0.058506478, 0.08077385, -0.16966046, -0.24188527, -0.07365656, 0.09544133, 0.19833234, 0.09107925, -0.020520048, -0.05825717, -0.09854415) * go_1(0.0, 1.0); + result += mat4(0.03600886, -0.029253786, 0.048200432, 0.022130603, 0.13826382, -0.13885193, 0.20007242, 0.14829256, -0.017307537, 0.03851602, 0.020379594, 0.07832595, -0.07762187, 0.096413285, -0.079333976, -0.0061714468) * go_1(1.0, -1.0); + result += mat4(0.0413019, -0.07368758, 0.13919644, -0.12122368, -0.029388634, 0.10483587, -0.051654328, 0.015226432, -0.04520832, -0.026331404, 0.20372365, 0.06359042, -0.013045257, -0.10666548, 0.08962036, 0.20432319) * go_1(1.0, 0.0); + result += mat4(0.013157089, -0.034036867, 0.0819, 0.014009891, -0.03467534, -0.12812413, 0.18123335, -0.0781033, -0.2039025, -0.16503748, 0.02498213, 0.023839379, -0.13192852, -0.09351754, -0.045935795, -0.088439226) * go_1(1.0, 1.0); + result += mat4(0.17598471, -0.16652712, 0.04906223, 0.07156945, -0.019004462, -0.07228772, -0.030515088, 0.12137358, 0.049442984, 0.003075852, 0.0820677, 0.09503947, 0.15167919, 0.03480622, 0.055544864, 0.108532205) * go_2(-1.0, -1.0); + result += mat4(0.06424813, 0.0047392054, -0.06604298, 0.065024786, -0.027760155, 0.013289014, -0.05930856, -0.22680816, -0.12812522, 0.046711236, 0.11081086, 0.12093126, 0.08999833, 0.09398781, -0.00391463, -0.013292052) * go_2(-1.0, 0.0); + result += mat4(0.078218855, -0.096875966, -0.1891451, -0.075190805, 0.045807663, 0.038455345, 0.1420045, 0.1738224, 0.06848118, 0.18028922, -0.07149378, -0.16228504, -0.15232347, -0.032611012, -0.07023075, -0.12920822) * go_2(-1.0, 1.0); + result += mat4(0.04663347, 0.0988432, 0.052362353, -0.112998225, -0.20248835, -0.19879234, 0.11022756, 0.10454231, -0.13743615, 0.047722638, 0.06637239, 0.016583467, 0.11989917, 0.0125074675, 0.053077225, -0.006272926) * go_2(0.0, -1.0); + result += mat4(-0.08468045, 0.047544964, 0.04363399, 0.086961746, 0.08489796, 0.12409043, -0.13015386, 0.10092822, 0.14706169, -0.102444105, -0.074901864, -0.11254591, 0.029065747, 0.14046147, 0.07324801, -0.015313643) * go_2(0.0, 0.0); + result += mat4(-0.0032504771, -0.025116406, -0.027151806, 0.04037948, -0.029422142, 0.053333733, 0.050427776, 0.2249123, -0.040938333, 0.05139012, -0.021061108, -0.21729107, 0.020586135, 0.04293995, 0.01888572, -0.15284136) * go_2(0.0, 1.0); + result += mat4(-0.050343722, -0.08038014, 0.033975042, -0.078313686, -0.025870735, -0.10589425, 0.11806239, 0.11905227, -0.030429581, -0.10916684, -0.08828011, -0.032881964, 0.005728985, -0.14882843, -0.058584355, 0.07463933) * go_2(1.0, -1.0); + result += mat4(-0.16999933, -0.027314415, 0.07264002, -0.013310814, -0.12945375, 0.016093813, -0.09084507, -0.12522581, 0.075081155, -0.012983989, 0.11086466, -0.020709865, -0.034555092, -0.13049836, -0.069538176, 0.120410606) * go_2(1.0, 0.0); + result += mat4(-0.041815765, -0.1464541, -0.112602025, -0.17897187, 0.023695359, -0.007984221, -0.09087018, 0.03442271, 0.03562612, -0.022015946, -0.0067399153, 0.038907483, -0.11839428, -0.029512445, 0.032437507, -0.13424557) * go_2(1.0, 1.0); + result += mat4(0.071081854, 0.064600624, 0.06933874, -0.00823228, -0.06739624, -0.05190142, -0.0063528903, -0.0056084343, -0.00883983, -0.1393001, 0.053884078, 0.024325706, 0.05893945, -0.075403966, 0.21418992, 0.099977955) * go_3(-1.0, -1.0); + result += mat4(-0.08398666, 0.06117285, 0.018424282, 0.13809077, -0.07201819, 0.051259644, -0.04685134, -0.017006194, 0.05818578, -0.11379136, -0.07999673, 0.23295905, 0.007356084, -0.020284122, 0.01972096, -0.13002637) * go_3(-1.0, 0.0); + result += mat4(-0.06733669, 0.13325273, -0.0074489512, -0.052333828, 0.10027424, 0.065753184, -0.14192791, 0.09388921, -0.01242138, -0.14718066, -0.014753866, -0.065210566, 0.0699064, 0.06399467, 0.022925656, 0.06504557) * go_3(-1.0, 1.0); + result += mat4(0.101876445, 0.060120665, -0.0039521665, 0.12171173, 0.08321828, -0.008348968, 0.21899523, 0.058748752, 0.05547674, 0.16084124, -0.30695668, -0.10121366, 0.038653154, -0.044442136, -0.13552639, -0.019972218) * go_3(0.0, -1.0); + result += mat4(-0.07638072, 0.050575085, 0.07061123, -0.18657742, -0.012248586, 0.019414622, 0.03041808, 0.033964135, -0.17578666, -0.023182971, -0.08965867, -0.13880058, -0.16309536, 0.17266575, -0.17651099, -0.24348558) * go_3(0.0, 0.0); + result += mat4(-0.14318372, -0.002566858, -0.08960772, -0.025085822, -0.002079447, 0.010120887, -0.09830438, -0.11765062, 0.022343377, -0.025783114, -0.029105041, -0.1690584, 0.054205775, 0.02676286, 0.016028486, 0.120592885) * go_3(0.0, 1.0); + result += mat4(0.14526334, 0.09275921, -0.12105369, -0.038859725, -0.10460921, -0.07294215, -0.15117784, -0.009182169, -0.0074104583, -0.12306472, 0.10073853, -0.08833498, 0.12785646, 0.0477829, -0.03402452, -0.07908741) * go_3(1.0, -1.0); + result += mat4(-0.025889793, 0.014548265, 0.029771648, -0.07727682, 0.041268997, 0.08237273, -0.07722456, -0.036970172, 0.09158823, 0.044813015, -0.019759692, -0.112869464, -0.04357199, -0.07405958, -0.124406114, 0.20240584) * go_3(1.0, 0.0); + result += mat4(-0.08556598, -0.01543713, 0.026491836, 0.018786263, 0.0418143, 0.0678302, -0.11946711, 0.09875955, 0.032350425, 0.007956311, -0.017798368, 0.1994804, -0.027886698, -0.17802258, 0.099619284, -0.011239122) * go_3(1.0, 1.0); + result += mat4(-0.36927477, 0.0397264, 0.14609286, 0.065389656, -0.017865075, 0.113564, 0.14015609, 0.054612216, -0.0342091, -0.030581282, -0.0124170035, 0.03166654, 0.0691441, 0.032685474, -0.16473754, -0.10027306) * go_4(-1.0, -1.0); + result += mat4(-0.027898287, 0.037473463, -0.10177491, -0.15948737, -0.08981485, 0.0764328, -0.06419195, -0.085592985, -0.015740823, -0.052377183, 0.07003385, -0.065375, 0.051523235, 0.04340368, 0.10867685, -0.16211551) * go_4(-1.0, 0.0); + result += mat4(0.007090963, -0.02692243, 0.05383495, 0.14827509, -0.105507806, 0.17903765, 0.13615972, 0.0051062405, 0.08153507, 0.05720539, 0.08144471, 0.0929691, 0.09873174, 0.015049897, 0.23769383, 0.22297786) * go_4(-1.0, 1.0); + result += mat4(-0.08985236, -0.076104425, -0.01007519, 0.034048676, -0.0079994, -0.033355482, 0.16036998, -0.053786088, -0.093155414, 0.05777472, -0.13322827, -0.0813691, 0.24432959, 0.08388064, -0.04998493, -0.021753525) * go_4(0.0, -1.0); + result += mat4(-0.016286949, -0.013190527, 0.053851254, 0.046217382, -0.21881466, 0.07689005, -0.12487547, -0.10310683, -0.02934103, -0.084740095, -0.054879915, -0.06519303, -0.15657778, 0.029417856, -0.13291313, -0.103854224) * go_4(0.0, 0.0); + result += mat4(0.11695019, 0.0132304765, -0.07342763, 0.051626842, -0.115028076, 0.060695976, 0.030592902, 0.07832676, -0.033096768, -0.010105935, -0.0968592, -0.17071666, -0.10127668, -0.026590502, 0.05544078, -0.22503363) * go_4(0.0, 1.0); + result += mat4(0.053587623, 0.013554916, 0.0018153706, 0.0050241053, 0.007109888, 0.049959134, -0.05311281, -0.09651782, -0.15021992, 0.041716605, 0.031055149, -0.04614386, 0.1668338, -0.15733725, 0.05505452, -0.04836756) * go_4(1.0, -1.0); + result += mat4(-0.077188395, -0.058547955, 0.03399098, 0.09912107, -0.03275195, -0.13739568, -0.08232234, 0.06831293, -0.070714585, -0.046675168, -0.11615044, -0.119989395, -0.03131107, -0.09919153, 0.003835856, -0.014355857) * go_4(1.0, 0.0); + result += mat4(-0.036215, 0.018938174, -0.2277618, -0.13956094, -0.07911919, -0.063870676, 0.08332067, 0.061556723, 0.038459476, 0.15356061, 0.007937132, 0.049789228, -0.0977846, -0.06580731, -0.092308916, 0.12081035) * go_4(1.0, 1.0); + result += mat4(0.2513099, 0.2640892, -0.073300436, 0.0054640956, 0.021276288, 0.117054164, -0.10756317, -0.10598032, -0.045152083, 0.08731703, -0.18050396, -0.047249332, -0.073264845, 0.2116926, -0.114557505, -0.037215512) * go_5(-1.0, -1.0); + result += mat4(0.050166927, -0.04862805, 0.12805791, 0.0045228424, 0.056160565, 0.16115089, -0.07979352, -0.13011862, 0.05441418, 0.05797822, -0.13112345, -0.025642958, 0.05028941, -0.03776722, -0.030840462, 0.1557417) * go_5(-1.0, 0.0); + result += mat4(-0.13133498, 0.18729036, 0.09921492, 0.08116472, -0.045803983, 0.26691306, -0.074901216, 0.27606857, -0.008125972, 0.042414363, 0.13946676, 0.08842948, 0.08357318, -0.03671059, -0.16490772, 0.1321214) * go_5(-1.0, 1.0); + result += mat4(-0.065409325, -0.0521094, -0.16489594, 0.13398097, 0.059531994, 0.12008558, -0.3398136, 0.1359767, 0.19906406, -0.07998507, 0.030024389, 0.07742193, -0.17542136, -0.009348887, -0.07117329, 0.03772329) * go_5(0.0, -1.0); + result += mat4(-0.058133047, -0.16653563, -0.0063957074, -0.095268235, -0.17482235, 0.059023783, 0.122984484, -0.34188032, -0.20109126, 0.18325296, 0.14055713, -0.10793852, 0.011646871, -0.061308336, -0.061341055, -0.021440659) * go_5(0.0, 0.0); + result += mat4(0.078113094, -0.09492607, 0.08023962, -0.12604296, 0.109075874, -0.0154309245, 0.06649317, 0.06254269, 0.07463966, -0.073904, 0.05772617, 0.26408893, -0.006501864, -0.07582579, -0.10127933, -0.12402614) * go_5(0.0, 1.0); + result += mat4(-0.042008914, 0.09461804, -0.072341286, 0.080054514, 0.14365824, 0.04930919, -0.099516146, -0.008121477, -0.0093559455, 0.10470606, 0.02927817, 0.021877058, -0.054930143, 0.060183078, -0.0445749, -0.01106447) * go_5(1.0, -1.0); + result += mat4(-0.0011625461, -0.0009088538, -0.023627708, 0.027977956, -0.11017806, -0.26268825, -0.011429036, -0.03145088, 0.020097682, -0.029126195, -0.06067577, 0.069737315, -0.059665915, 0.0012559243, 0.010016551, -0.09414456) * go_5(1.0, 0.0); + result += mat4(0.11869016, 0.20854239, 0.0059952354, -0.05854996, -0.019913383, 0.111083195, -0.110878445, -0.09330779, -0.09355048, -0.023232793, -0.028993065, -0.016969083, -0.046021197, 0.120301165, -0.016181333, 0.121419206) * go_5(1.0, 1.0); + result += vec4(0.13923971, 0.015290389, 0.012198976, 0.04480318); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!SAVE conv2d_4_tf +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.027190452, 0.0060910345, -0.008547152, 0.17320672, 0.06733503, -0.08989388, -0.11381129, -0.13119508, 0.17610823, 0.14008744, 0.11026499, -0.21357119, -0.12159518, 0.06601897, -0.034462526, -0.06805842) * go_0(-1.0, -1.0); + result += mat4(0.032029126, -0.17226543, -0.041954145, 0.0048979674, 0.07860925, 0.014572411, 0.028136868, 0.023380699, 0.08869984, 0.066781156, 0.054681987, -0.2045243, -0.08229035, 0.034414835, -0.059059203, 0.123423755) * go_0(-1.0, 0.0); + result += mat4(0.06395383, -0.17036091, -0.09632937, 0.012491044, 0.023212979, 0.0016467012, -0.14969939, -0.0054716296, -0.023756625, -0.17073572, 0.052645937, -0.046952818, -0.16187616, 0.016573654, -0.14689016, 0.01019834) * go_0(-1.0, 1.0); + result += mat4(0.08193712, -0.07631574, -0.034434203, -0.014776324, 0.042278692, -0.1091839, -0.10186231, -0.08016388, -0.036329824, -0.27691782, -0.060328513, -0.21892257, 0.039156485, -0.015808448, 0.063398294, -0.045008957) * go_0(0.0, -1.0); + result += mat4(-0.1413053, -0.04867498, -0.06696859, -0.19319332, 0.06924486, 0.10097274, 0.027635809, -0.25744498, 0.043045916, 0.0080625275, -0.078129664, 0.07637907, 0.08766779, 0.009869328, -0.04087825, -0.107835) * go_0(0.0, 0.0); + result += mat4(0.03251173, -0.088434696, -0.17404701, -0.047607604, 0.19409397, -0.011666368, -0.055492543, -0.06779062, 0.18695107, 0.12933761, 0.009486838, 0.1311912, -0.115678646, -0.15206106, -0.0692949, -0.2093353) * go_0(0.0, 1.0); + result += mat4(-0.024145309, -0.049262546, -0.13907287, 0.079473436, -0.042634737, -0.08339864, 0.10169023, -0.035110317, -0.07373649, -0.013395292, 0.040008895, -0.10978444, -0.11845739, -0.037593327, -0.06392299, -0.16472307) * go_0(1.0, -1.0); + result += mat4(-0.004245749, -0.017990965, -0.16623773, 0.058491312, 0.09169293, 0.095187806, -0.13777736, -0.058859553, 0.12717004, -0.21097647, 0.022213815, -0.060391422, 0.24919353, 0.027743122, -0.046835132, 0.05116896) * go_0(1.0, 0.0); + result += mat4(-0.031152543, -0.006675389, -0.20609254, 0.059274126, 0.057716113, 0.010372987, -0.09142726, 0.21968524, 0.1961135, -0.123708576, 0.16263476, 0.0062686265, 0.014965539, -0.007153107, -0.11750436, -0.1819159) * go_0(1.0, 1.0); + result += mat4(-0.0060456856, 0.19447032, 0.020056425, 0.11960106, -0.32920054, 0.015612619, 0.26585084, 0.10356409, -0.14553185, 0.00058173627, 0.05271928, -0.1452066, -0.060218733, -0.020830099, -0.10317562, 0.052465137) * go_1(-1.0, -1.0); + result += mat4(-0.27812362, 0.058981895, 0.08322605, -0.0032075725, -0.15221997, 0.09520731, 0.04914796, 0.11785509, 0.013318352, -0.10878859, -0.15916938, -0.18263555, -0.05563399, 0.014653972, 0.14075124, -0.057639994) * go_1(-1.0, 0.0); + result += mat4(-0.0041990946, 0.0977939, -0.10445638, 0.020671595, -0.051427394, -0.026315004, -0.17141542, -0.19342242, 0.18054874, -0.15474714, 0.13021101, 0.11164268, 0.09080831, 0.036626425, -0.082300276, 0.04107306) * go_1(-1.0, 1.0); + result += mat4(-0.039793264, 0.14146407, 0.09102857, 0.03839708, 0.3213411, -0.037526935, 0.26050022, 0.05215784, 0.09104371, 0.1189446, 0.1516196, -0.06040828, 0.06444251, 0.03769561, -0.05992374, -0.09555435) * go_1(0.0, -1.0); + result += mat4(-0.3158521, -0.09743379, -0.16136461, 0.12563957, -0.047199205, 0.14175804, 0.26343465, 0.26441336, -0.08041752, 0.12452204, 0.00063982303, -0.13609244, 0.2354998, 0.00049649493, 0.015294863, -0.2654468) * go_1(0.0, 0.0); + result += mat4(-0.08709678, 0.15577738, 0.05169841, 0.07911614, -0.024321338, -0.015250634, -0.021416046, -0.081399545, 0.0089286, -0.2259574, -0.05061959, 0.065474294, -0.030742366, -0.03538435, -0.055524804, 0.15507819) * go_1(0.0, 1.0); + result += mat4(0.045065995, 0.023564292, -0.037309248, 0.06847233, 0.056869928, 0.028326921, -0.17528678, 0.12857448, 0.035632227, -0.032293174, 0.104832776, 0.017997067, -0.114497125, 0.16921379, 0.12497218, 0.036903612) * go_1(1.0, -1.0); + result += mat4(0.075956464, 0.09397675, 0.052031025, -0.105377, -0.12632053, 0.024217378, -0.07852874, 0.11461346, -0.04082505, -0.108691104, -0.04474934, -0.29607844, 0.034042932, 0.12287652, -0.052040536, 0.041936204) * go_1(1.0, 0.0); + result += mat4(-0.038337763, -0.018111536, 0.06151811, 0.05389662, -0.028443024, 0.08706589, -0.073154494, 0.05447222, 0.07653834, -0.19515261, -0.037622564, 0.08052142, -0.045269065, -0.0609327, -0.100833364, 0.10981602) * go_1(1.0, 1.0); + result += mat4(0.094026454, -0.0031063687, -0.21620432, 0.13547292, 0.20105883, -0.025618935, 0.11542153, 0.10962974, 0.113429956, -0.14227262, 0.0060875076, -0.14874603, 0.09162232, -0.053849343, 0.04125156, 0.032826412) * go_2(-1.0, -1.0); + result += mat4(0.013978522, -0.13269992, -0.07810451, 0.070542224, -0.04335991, 0.13381198, -0.027735049, -0.15146035, 0.22838825, -0.064607605, 0.09653002, -0.12548994, 0.13875695, -0.07963269, 0.17691031, -0.09219512) * go_2(-1.0, 0.0); + result += mat4(-0.3725075, -0.10551151, -0.015794966, 0.11881437, 0.032990977, -0.08120358, -0.028089223, 0.07270803, 0.09375988, -0.19002074, 0.042594276, -0.14296396, 0.058286652, 0.027516257, -0.06983339, -0.21678405) * go_2(-1.0, 1.0); + result += mat4(-0.07584593, -0.030345742, -0.102612115, -0.008622554, 0.19179675, -0.007445088, -0.0055725924, 0.045661647, 0.15045294, 0.05527889, -0.16074698, -0.11140143, -0.10332519, 0.0775829, 0.3479224, -0.09605363) * go_2(0.0, -1.0); + result += mat4(0.24224567, -0.10463845, -0.004708288, -0.037463564, -0.174914, -0.12728058, -0.09033664, -0.07400692, -0.14376171, 0.047589123, 0.12197598, 0.10113545, 0.27015212, -0.034403134, 0.1424642, 0.160263) * go_2(0.0, 0.0); + result += mat4(-0.13663313, -0.1106191, 0.011357531, -0.22931215, -0.019929864, -0.10682277, -0.055398542, 0.066238664, -0.085308366, 0.04024022, 0.12161912, 0.08610841, 0.09498895, -0.06681962, 0.13027692, -0.0019338574) * go_2(0.0, 1.0); + result += mat4(-0.03641036, -0.011318962, 0.110239714, 0.11487314, -0.0893917, 0.15007862, 0.027590204, 0.09350642, 0.024954673, 0.12835681, 0.03920746, 0.09515919, -0.1465032, -0.030845147, -0.1298204, -0.13092597) * go_2(1.0, -1.0); + result += mat4(-0.053689882, -0.013590492, 0.14078104, -0.02906744, -0.028918952, -0.05751785, -0.15884842, -0.26478568, 0.13566354, 0.12888497, -0.07389985, -0.10991238, -0.04350177, 0.056619987, -0.007795586, 0.20150684) * go_2(1.0, 0.0); + result += mat4(-0.24407062, 0.21552294, -0.00949639, 0.06383184, -0.021686498, -0.3234789, 0.00095171423, 0.16604368, 0.21007693, -0.23288599, 0.14941412, -0.23804995, -0.041001838, 0.122981116, -0.08457904, 0.31631222) * go_2(1.0, 1.0); + result += mat4(-0.03347639, -0.11116802, -0.024119927, -0.13334364, -0.06425279, 0.034693595, -0.042770308, -0.17312396, -0.067923695, 0.016072923, -0.11040154, -0.17093144, 0.0015578474, -0.29394698, 0.107074894, 0.27303827) * go_3(-1.0, -1.0); + result += mat4(-0.0611658, 0.019790849, 0.06787951, 0.10454345, -0.015665758, 0.0151002975, 0.03526049, -0.103849605, 0.18519226, 0.13797036, -0.061827153, 0.049401954, -0.14499283, -0.019294523, -0.059974186, 0.08248854) * go_3(-1.0, 0.0); + result += mat4(-0.10331019, 0.013611227, 0.06224777, 0.051212363, 0.07831132, 0.10166972, 0.06203761, -0.18489413, 0.15709174, 0.10225166, -0.047563914, 0.07839388, 0.111176215, -0.17445758, -0.025798218, 0.039074145) * go_3(-1.0, 1.0); + result += mat4(-0.0126109915, 0.1351571, -0.036555156, 0.010697993, -0.13778222, 0.03346138, -0.0049093324, -0.15003881, -0.03876987, 0.07914351, 0.047344975, 0.11449459, 0.063460924, -0.08697232, 0.10283146, 0.051968753) * go_3(0.0, -1.0); + result += mat4(0.23186366, -0.06041623, -0.16257766, 0.24217394, -0.023535172, -0.101410136, -0.108250454, 0.107450925, 0.034496274, -0.028800279, 0.021022853, 0.03616355, 0.02028369, -0.08332956, 0.10570706, 0.09971033) * go_3(0.0, 0.0); + result += mat4(0.04147743, 0.015145005, 0.120189026, -0.068185546, 0.046765327, 0.06456099, -0.1020187, 0.021370325, -0.040851895, -0.03208752, 0.048594363, -0.1198498, 0.068069115, 0.041555826, -0.17036118, -0.01932193) * go_3(0.0, 1.0); + result += mat4(0.056585032, 0.08170861, 0.16936389, 0.12775362, -0.06250441, 0.003437123, -0.1626591, -0.044595372, 0.05609032, -0.013985337, 0.12408558, -0.023731874, 0.06669848, 0.015816472, 0.02028663, 0.15866788) * go_3(1.0, -1.0); + result += mat4(0.08446122, 0.18007189, -0.029043732, -0.011163938, -0.07911146, -0.08956735, 0.01947308, -0.14794883, 0.006629651, 0.038349632, -0.00968828, -0.025770634, -0.0773972, 0.005243162, -0.024193848, 0.13965817) * go_3(1.0, 0.0); + result += mat4(0.11081664, 0.014651672, 0.17688385, -0.105908446, 0.10568161, -0.0114132725, -0.07771328, -0.07368131, -0.08784887, 0.000283126, -0.062638454, 0.10225453, 0.03358641, 0.022887172, -0.05419985, 0.13735344) * go_3(1.0, 1.0); + result += mat4(0.10541027, 0.020751795, -0.09398483, -0.005489149, -0.29769272, 0.23499025, -0.006691222, -0.053000394, 0.010389082, 0.17603737, -0.00460357, 0.022672169, 0.184428, -0.05348439, -0.056355994, -0.09495365) * go_4(-1.0, -1.0); + result += mat4(0.0008888126, -0.07352942, -0.115427524, 0.039416842, 0.035075482, 0.064889066, -0.0403974, -0.16294649, 0.15031078, 0.15975513, 0.050580446, 0.17225175, -0.15042374, 0.1044681, -0.020698681, 0.02006514) * go_4(-1.0, 0.0); + result += mat4(-0.04267897, 0.013600698, -0.06688994, 0.06905151, 0.0050800233, 0.074999094, -0.013612523, 0.24658114, 0.09293767, -0.025656242, -0.12935342, -0.053077035, -0.10818674, 0.10712919, 0.10325497, 0.026742944) * go_4(-1.0, 1.0); + result += mat4(0.057898734, -0.079083994, -0.014326936, -0.012377722, -0.081788406, 0.15159677, 0.009859493, -0.17867896, -0.15591973, 0.052071776, 0.08789029, -0.07519902, -0.05066772, -0.062322497, 0.115281776, 0.036021948) * go_4(0.0, -1.0); + result += mat4(0.18813054, 0.08132526, 0.13596503, -0.048313983, 0.38620186, 0.2359013, 0.037454955, -0.1447747, 0.067145094, -0.0005996448, 0.1840271, 0.05323988, -0.23532471, -0.0116497595, 0.2535536, 0.061556816) * go_4(0.0, 0.0); + result += mat4(0.0129419975, -0.17229463, -0.09436541, 0.10180941, 0.11799404, 0.031389806, -0.07010608, 0.0046768254, 0.10469505, 0.17582805, -0.22139175, -0.14195564, -0.02746759, 0.1141511, -0.029968468, 0.07361169) * go_4(0.0, 1.0); + result += mat4(-0.0769514, 0.017098518, 0.082954735, 0.025435448, -0.21867949, -0.07731593, 0.031622138, -0.013084908, 0.053551342, 0.08035211, -0.06418101, -0.14921196, 0.18860011, 0.029326573, -0.0472363, -0.011997928) * go_4(1.0, -1.0); + result += mat4(-0.01178925, -0.07107687, -0.09878797, 0.1556755, -0.055202577, -0.040342607, -0.1087109, 0.22202995, -0.02957374, 0.063299805, -0.0226507, 0.09204488, 0.08155232, -0.022691648, 0.061842438, -0.003388257) * go_4(1.0, 0.0); + result += mat4(-0.0058287196, -0.013047009, -0.15424606, -0.056314673, -0.06388496, 0.0222499, -0.11188726, 0.2635107, -0.05954232, 0.1667741, -0.12295786, -0.15182652, 0.1224556, -0.1186777, -0.011522621, -0.09436076) * go_4(1.0, 1.0); + result += mat4(0.07150499, -0.07419667, 0.16062357, -0.13254762, -0.010069923, 0.09393101, 0.035834856, -0.043301247, 0.059349176, 0.015473052, 0.06563933, -0.013041895, 0.029431, 0.11289305, 0.08899771, 0.16794808) * go_5(-1.0, -1.0); + result += mat4(-0.113425404, 0.14999859, 0.06650979, 0.036482334, 0.018955054, -0.10026139, 0.11925662, 0.114249855, 0.06869671, 0.052254554, -0.004852112, 0.0565278, 0.078193806, 0.05062573, 0.03250799, 0.19846839) * go_5(-1.0, 0.0); + result += mat4(0.021927554, -0.1345216, -0.0016766218, -0.13956897, -0.045278247, -0.0069249924, 0.006003127, 0.07814754, 0.10342034, 0.06784387, -0.069491945, 0.19103162, 0.14311132, -0.022440588, -0.06932795, 0.030535521) * go_5(-1.0, 1.0); + result += mat4(-0.04036147, 0.054757025, 0.017254664, -0.12124264, -0.1816484, 0.15580839, -0.09062968, -0.0048705437, -0.029410018, 0.038827926, 0.057098128, -0.018173074, -0.10805557, -0.14378877, -0.2585165, 0.172119) * go_5(0.0, -1.0); + result += mat4(-0.1310388, 0.18337108, 0.19657819, -0.010367786, -0.04445844, -0.24680386, -0.04328972, -0.0399127, 0.12341645, -0.08352961, 0.011123786, -0.083505794, -0.09089909, 0.060027592, -0.23706149, 0.03521439) * go_5(0.0, 0.0); + result += mat4(0.01557783, 0.010480741, 0.0434283, 0.16624042, -0.15881334, -0.04636994, -0.0038111496, 0.03575316, -0.08781109, 0.12979223, 0.06802427, 0.08255704, 0.37816545, -0.058951244, -0.102753684, 0.1256413) * go_5(0.0, 1.0); + result += mat4(-0.10425998, -0.071307346, -0.11617004, -0.13080333, 0.1492051, 0.054852143, 0.07140254, -0.064901225, 0.0023687668, 0.012650793, -0.1390397, -0.09889024, 0.19282119, -0.04274883, 0.1678261, 0.10092644) * go_5(1.0, -1.0); + result += mat4(0.052412614, -0.016467815, -0.08627941, 0.21175376, -0.037298422, 0.009408156, 0.09253116, 0.22531977, -0.09862147, 0.012014097, -0.00088612316, 0.10639377, 0.21262354, -0.36476177, 0.1831788, -0.18416084) * go_5(1.0, 0.0); + result += mat4(0.10780807, -0.049085826, -0.035806093, 0.089742415, -0.121957704, -0.07614303, 0.1122783, -0.1417334, -0.11307489, -0.099186234, -0.09983688, -0.08203866, 0.18696213, -0.10846918, 0.022843426, 0.17075616) * go_5(1.0, 1.0); + result += vec4(-0.10820368, 0.052109707, 0.02658453, -0.089495786); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!SAVE conv2d_4_tf1 +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.06560893, -0.038288042, -0.0021071879, -0.030108955, 0.145761, 0.0029613946, 0.051950503, -0.015247062, 0.44679, 0.114423126, -0.006614156, -0.085114725, -0.17392384, -0.1525023, 0.00087433326, -0.0061209374) * go_0(-1.0, -1.0); + result += mat4(-0.038765047, 0.023672441, 0.07686677, 0.1169065, 0.057648882, -0.04956052, 0.18272647, 0.074001, 0.0148019185, -0.17424357, -0.15635398, -0.11640745, -0.044930972, 0.17733482, -0.118420936, 0.0034517103) * go_0(-1.0, 0.0); + result += mat4(-0.03843906, 0.14669247, -0.0016725688, -0.05404641, -0.010653548, -0.14568646, 0.01552742, 0.0075000613, -0.11138789, 0.12747082, -0.0019283098, 0.15637173, 0.17695609, 0.11176842, 0.037749417, 0.038456965) * go_0(-1.0, 1.0); + result += mat4(0.011113179, -0.033781096, 0.10000893, 0.09236021, 0.05682521, 0.047795758, 0.082160555, -0.06516607, 0.021327825, 0.123461336, 0.16531587, -0.017066834, -0.17193775, 0.0088722, 0.11325116, -0.008696895) * go_0(0.0, -1.0); + result += mat4(-0.1559535, -0.027437076, -0.06791055, 0.0076806503, -0.105000794, -0.013547857, 0.044852357, -0.072031856, 0.03666842, -0.09417821, 0.044465255, -0.021518283, 0.075612575, 0.12548204, 0.0053096185, -0.081135504) * go_0(0.0, 0.0); + result += mat4(-0.032854624, -0.04636654, 0.08900102, -0.006676651, -0.17161772, -0.11203611, -0.08199468, -0.09992361, 0.20184253, -0.1002281, -0.1186801, 0.07690125, 0.10468101, -0.034323484, 0.05079439, 0.05624683) * go_0(0.0, 1.0); + result += mat4(0.098402895, 0.21312171, -0.09616754, -0.0022171456, 0.13993289, 0.020528518, 0.14474267, -0.10080646, -0.1283229, 0.1904186, -0.040573347, -0.14794436, 0.054999832, -0.11960501, -0.061369505, 0.09603712) * go_0(1.0, -1.0); + result += mat4(-0.10725682, 0.06215029, 0.089609645, 0.018108908, 0.021400819, 0.031146, -0.22904995, -0.01076689, -0.105205126, 0.012291847, -0.048588227, -0.049485933, 0.114158444, -0.091215335, -0.027073242, -0.11835295) * go_0(1.0, 0.0); + result += mat4(-0.102791235, -0.029520744, -0.19900851, -0.029541757, -0.031764254, -0.008002707, -0.017105635, -0.07239135, 0.14740342, 0.05648717, 0.077909015, -0.14993371, 0.120271415, -0.10764749, 0.024895139, -0.06620364) * go_0(1.0, 1.0); + result += mat4(0.23614062, 0.17541821, -0.008834044, 0.18276002, 0.0081810225, 0.08408151, -0.13527961, -0.018539876, 0.014361589, -0.027012244, -0.17484863, -0.019362496, -0.037048925, 0.094974704, 0.018246485, 0.109574154) * go_1(-1.0, -1.0); + result += mat4(-0.1533575, 0.19374342, -0.027817149, 0.16140993, -0.06192059, 0.045258347, -0.09625185, -0.026630063, -0.0050361003, 0.020038875, 0.17793919, 0.059639167, 0.079904884, 0.03772698, 0.07656081, 0.21176697) * go_1(-1.0, 0.0); + result += mat4(0.03496418, -0.07980854, -0.022122597, -0.15199453, -0.029270291, 0.02720027, 0.10541389, -0.020044396, 0.031097332, 0.00533792, -0.07936573, 0.0767852, -0.052802965, 0.044324324, 0.1331397, 0.09737042) * go_1(-1.0, 1.0); + result += mat4(-0.09404921, -0.12238693, -0.15260863, -0.037168942, 0.101774864, -0.12818033, -0.19276977, 0.060901154, 0.3669953, -0.08837079, 0.09483071, 0.0039528203, 0.114874505, 0.11380748, -0.0675627, 0.099314205) * go_1(0.0, -1.0); + result += mat4(-0.18921007, 0.11088719, -0.03879293, 0.24393363, 0.024074616, -0.055593442, -0.038904842, 0.093477115, -0.074254654, 0.023504809, 0.0015475574, 0.06922074, -0.02201723, 0.04952918, -0.12691462, -0.04520855) * go_1(0.0, 0.0); + result += mat4(-0.015887981, 0.13304926, -0.006745367, 0.08113083, 0.14956935, -0.115906075, -0.14784655, 0.030012615, 0.031657662, -0.065392576, 0.26881677, 0.060661886, -0.022231037, -0.04828739, 0.09894193, -0.14562485) * go_1(0.0, 1.0); + result += mat4(-0.047161587, -0.017991489, -0.0075016962, -0.034034126, -0.061112147, 0.13156408, 0.16217458, 0.076580904, 0.1459869, 0.11071404, -0.043128885, 0.0338223, 0.21686563, 0.008266244, 0.058333807, 0.02561811) * go_1(1.0, -1.0); + result += mat4(-0.018609803, 0.0234848, 0.040451016, -0.08435358, -0.009784489, -0.008065147, -0.053126886, 0.011366649, -0.084467, -0.1788947, -0.12264094, -0.18014608, 0.059439298, 0.03542411, 0.078848965, -0.13048537) * go_1(1.0, 0.0); + result += mat4(0.078216806, 0.013697004, -0.15663616, -0.049786724, -0.13391373, -0.08318028, 0.06794668, 0.09373982, -0.083461255, 0.061056722, -0.2251907, -0.06139379, -0.20027658, -0.09285312, 0.039336286, 0.09701935) * go_1(1.0, 1.0); + result += mat4(-0.16103904, -0.102670334, 0.0012198326, -0.22724585, 0.23467462, 0.044629287, 0.0045051533, 0.08221795, 0.13965432, -0.025059564, 0.009324332, 0.17598952, 0.10017599, 0.043154277, 0.09106905, 0.004035487) * go_2(-1.0, -1.0); + result += mat4(-0.044398602, -0.02080209, 0.07439402, -0.0837648, -0.09127961, -0.16654146, -0.028559506, 0.063172385, 0.02517883, -0.2839795, -0.011589502, -0.07898659, -0.013581755, -0.18534079, -0.0017158306, 0.105475046) * go_2(-1.0, 0.0); + result += mat4(0.104462, 0.27500334, -0.16876803, -0.067298174, -0.011149543, 0.026384255, -0.10175635, -0.2548854, -0.1283541, -0.16410558, 0.07503598, -0.02121285, -0.0064750114, -0.09670444, 0.08300398, 0.19831792) * go_2(-1.0, 1.0); + result += mat4(-0.009554492, -0.095104635, 0.08615534, -0.10154481, 0.11020224, -0.1011952, 0.061394565, 0.050413556, 0.19796023, 0.11560851, 0.033866078, 0.23405328, -0.0060241343, -0.050427623, -0.18293521, -0.031680096) * go_2(0.0, -1.0); + result += mat4(0.058735132, 0.026442906, -0.23102848, -0.07569987, -0.26244682, -0.20584835, 0.2259608, 0.06885029, 0.035959512, 0.075910114, -0.17818634, 0.053924832, -0.0046540634, -0.02363428, -0.0501489, 0.07347372) * go_2(0.0, 0.0); + result += mat4(-0.0733894, 0.10715639, 0.28019708, 0.100572936, -0.07274408, 0.072782665, -0.056028996, 0.06478587, -0.031222489, 0.043191776, -0.10039772, -0.21392053, -0.04606884, -0.16641788, 0.0065926304, 0.055378567) * go_2(0.0, 1.0); + result += mat4(-0.118616246, -0.13528953, -0.19563872, 0.23483656, 0.02614144, 0.19605434, -0.05274385, -0.08863971, 0.16891058, 0.1366527, 0.09084148, 0.100328505, 0.034491546, 0.08647768, 0.21777217, -0.049174547) * go_2(1.0, -1.0); + result += mat4(0.1357159, -0.012445991, 0.3096013, 0.181176, -0.010390439, 0.14459321, -0.10700577, -0.011389145, 0.09287424, 0.07787938, -0.096365124, 0.017783955, -0.09306514, 0.15694624, -0.14705794, -0.13922045) * go_2(1.0, 0.0); + result += mat4(0.13941582, 0.19728883, -0.151456, 0.10526561, -0.09251345, 0.11684088, 0.1303061, 0.14257613, -0.20296581, 0.00048331724, 0.2851077, -0.20377511, -0.057946853, 0.031233812, -0.15364504, -0.009259494) * go_2(1.0, 1.0); + result += mat4(-0.098066, -0.08288004, -0.06673981, -0.06435033, 0.034342356, 0.015804073, 0.023787297, 0.10401755, -0.19141194, -0.16482951, -0.0056575392, 0.0093797995, -0.28313008, 0.0048112553, -0.017099613, 0.02518723) * go_3(-1.0, -1.0); + result += mat4(-0.030270405, -0.038700357, -0.013410372, -0.004442315, -0.12467148, 0.08281559, -0.1605282, 0.069578275, 0.10012911, 0.01924674, -0.021857055, 0.07991313, 0.00801384, 0.13677774, 0.013247758, 0.03188123) * go_3(-1.0, 0.0); + result += mat4(-0.17157516, -0.08176375, -0.089773096, -0.0405298, -0.085242964, -0.03426719, 0.054874644, 0.066589154, 0.04864499, -0.18212035, -0.11903994, 0.04277644, -0.24286698, 0.14560008, 0.1412366, -0.049351584) * go_3(-1.0, 1.0); + result += mat4(-0.0020793858, 0.13244559, 0.022845006, -0.056293562, 0.025595138, 0.12697968, 0.0062493416, 0.10955782, -0.02731004, -0.04970028, 0.0558574, 0.013929665, -0.030912375, -0.07561133, -0.31270868, 0.027562078) * go_3(0.0, -1.0); + result += mat4(0.072941735, 0.021501537, -0.0630067, -0.10351342, 0.0041823885, 0.13891226, -0.070387594, 0.052334826, -0.003547599, 0.19354597, -0.020180183, -0.037713047, 0.06751014, -0.17405544, -0.020440113, 0.25509283) * go_3(0.0, 0.0); + result += mat4(0.005987273, -0.08264425, -0.019549685, -0.06343352, -0.005718748, 0.05226893, 0.07570872, -0.030717341, -0.18217428, -0.0039694863, 0.1455871, -0.0977504, -0.15671553, -0.006649227, -0.1283491, 0.100330345) * go_3(0.0, 1.0); + result += mat4(-0.057930637, -0.114826396, 0.06898038, -0.13852106, 0.024047598, 0.20633829, -0.12503678, 0.022534683, -0.18774416, -0.31502175, -0.10984795, -0.018557208, 0.17580375, 0.25652558, 0.22530238, -0.0028108188) * go_3(1.0, -1.0); + result += mat4(0.023331782, -0.01088776, -0.0052380436, 0.00686383, 0.026780738, 0.03749848, 0.22947483, -0.103271484, 0.012644287, -0.0142970905, 0.098855376, 0.0055474946, 0.032439362, 0.027143423, -0.14876749, -0.06213873) * go_3(1.0, 0.0); + result += mat4(-0.03750828, 0.010431886, 0.17416674, -0.090744555, -0.17330858, 0.013979898, 0.03489776, -0.13337487, 0.00858403, -0.037750907, -0.17109399, 0.08273273, -0.14204618, -0.009869641, -0.013496473, 0.076338045) * go_3(1.0, 1.0); + result += mat4(-0.043562744, -0.18440323, 0.011339632, -0.14345059, -0.08992258, -0.10230683, -0.10468143, 0.34146136, 0.15978895, -0.0051261852, 0.061601657, 0.09483878, -0.007760578, -0.018336317, 0.044910427, -0.09316569) * go_4(-1.0, -1.0); + result += mat4(0.1253627, -0.12310892, 0.016166732, 0.027448155, 0.13965616, -0.13030767, 0.17542621, 0.061852284, 0.16997853, 0.0056183804, -0.18704928, -0.019231116, -0.08086044, 0.09974395, -0.01429541, 0.03184063) * go_4(-1.0, 0.0); + result += mat4(0.04526007, 0.030035531, 0.03181006, 0.22173904, -0.1355034, -0.1948648, 0.06783468, 0.038674995, -0.046629447, -0.03462297, 0.09421528, 0.048745953, 0.16898066, 0.13283801, -0.14163011, -0.23105736) * go_4(-1.0, 1.0); + result += mat4(0.07269096, -0.06190773, -0.038986176, 0.102121696, 0.14298806, 0.23800415, 0.1370508, 0.0034182875, 0.009464909, 0.073990576, -0.028228868, 0.047769118, -0.11799714, -0.07566264, -0.025975682, 0.06592005) * go_4(0.0, -1.0); + result += mat4(0.1140849, 0.0011444123, 0.13536933, -0.045905575, 0.050907966, -0.065915674, 0.034910467, -0.2681743, 0.10803704, 0.12069119, -0.12347737, -0.06318596, -0.06862493, 0.014980036, 0.22914106, 0.0003237674) * go_4(0.0, 0.0); + result += mat4(-0.09530222, -0.11337397, 0.014516241, 0.0709293, -0.122670494, -0.17343688, -0.09817145, 0.0427696, -0.0035809735, 0.0970125, -0.35413933, -0.13195236, 0.07348421, 0.11037325, 0.056015544, -0.011848703) * go_4(0.0, 1.0); + result += mat4(-0.05069634, -0.032064505, -0.03238415, 0.1735258, 0.25210074, 0.10959535, -0.2741513, 0.13719772, 0.1066583, 0.20128429, -0.008766815, -0.11834798, 0.057237767, 0.017930366, 0.021861222, -0.025086008) * go_4(1.0, -1.0); + result += mat4(-0.000881232, -0.05960106, -0.08985197, 0.14067702, 0.018204128, 0.09699959, -0.05949243, 0.059911992, 0.027270103, 0.06743677, 0.38237867, -0.058599375, -0.047956746, 0.11374969, -0.14632292, -0.005532837) * go_4(1.0, 0.0); + result += mat4(-0.0312775, 0.0031963694, 0.08149806, 0.13988096, -0.0040519754, 0.035389222, 0.0864673, 0.18592173, 0.03735674, -0.054272953, 0.18598364, -0.13443853, 0.085672796, -0.049046505, 0.0057935636, 0.017542645) * go_4(1.0, 1.0); + result += mat4(-0.04916441, 0.015665755, 0.08576695, 0.17165792, -0.13008267, 0.04201376, -0.2670682, 0.119378634, -0.100484766, -0.0887232, 0.049034663, -0.039614394, 0.02695341, -0.04374321, -0.106656834, 0.023938615) * go_5(-1.0, -1.0); + result += mat4(0.03373819, 0.004977311, -0.0040103244, 0.13545765, 0.06599036, -0.09659661, 0.22132197, -0.116552144, 0.100918315, -0.022979576, 0.07052367, 0.04172229, 0.17585796, 0.05118707, -0.08703159, 0.055033304) * go_5(-1.0, 0.0); + result += mat4(-0.18900026, 0.019988917, 0.07693406, 0.28435934, 0.12686001, -0.14701878, -0.09573673, -0.17312722, 0.15025325, 0.12911554, -0.09475629, 0.016428819, 0.082817025, -0.11946521, -0.0013731157, -0.09071587) * go_5(-1.0, 1.0); + result += mat4(0.0797976, 0.11099694, -0.05467964, 0.014629147, -0.09720358, 0.04712591, 0.015981004, -0.05535863, 0.03645818, 0.041274335, 0.10671675, -0.11314873, 0.036964905, 0.17811853, 0.08903187, 0.0095582185) * go_5(0.0, -1.0); + result += mat4(0.11976107, 0.004657432, -0.06258394, -0.022577194, 0.17443101, 0.1387175, 0.059126876, 0.032149844, 0.1430801, 0.002375262, -0.12749809, 0.08837332, 0.06466934, 0.13617098, 0.04582338, 0.068308234) * go_5(0.0, 0.0); + result += mat4(0.022942754, -0.09855706, 0.049297135, 0.096298546, 0.1906194, 0.11273925, -0.22720218, 0.003925555, 0.0028442615, -0.12138431, 0.09074982, -0.030113788, 0.00383381, -0.09112362, -0.27005482, 0.022827866) * go_5(0.0, 1.0); + result += mat4(-0.19426541, 0.009114653, 0.11889596, -0.057239886, -0.03998725, -0.1694043, -0.20197673, 0.041406937, 0.020746358, 0.22414313, -0.1622876, -0.11014813, -0.09325455, -0.08461812, -0.021865716, 0.008194336) * go_5(1.0, -1.0); + result += mat4(0.021359676, -0.022532789, -0.10541426, -0.24901268, 0.030835157, -0.034806997, 0.10264721, -0.006528542, -0.03765987, 0.069545716, 0.25284502, 0.04730265, -0.012214816, -0.053018507, 0.13373806, -0.037745554) * go_5(1.0, 0.0); + result += mat4(-0.09582438, -0.18056035, -0.09869147, 0.11321111, -0.10706152, -0.037460733, 0.121544324, -0.11290087, 0.18490471, -0.06921383, -0.19518846, 0.10960292, -0.06263085, 0.13362981, -0.08682174, -0.053608853) * go_5(1.0, 1.0); + result += vec4(-0.019858388, -0.049763262, 0.034831703, -0.12479427); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!SAVE conv2d_4_tf2 +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.1652761, 0.13780159, 0.09095229, -0.043444302, -0.06450598, 0.04212247, 0.069517806, 0.09327406, -0.033491675, -0.14936084, 0.009638944, 0.11837384, 0.02686685, 0.037584316, -0.09761867, -0.026200296) * go_0(-1.0, -1.0); + result += mat4(-0.12561406, 0.12076126, 0.028275209, -0.08543192, -0.099475406, -0.0822321, 0.0920009, 0.06756713, -0.10781483, -0.12923865, 0.032576296, 0.3534597, 0.03224445, -0.015600879, -0.025559058, -0.027278373) * go_0(-1.0, 0.0); + result += mat4(0.07211016, 0.054111533, 0.13363571, -0.010288602, -0.20603329, 0.0047039236, -0.04776343, 0.25487995, -0.10845931, 0.0972547, -0.10519721, -0.0073581343, -0.10403583, -0.06662798, 0.041069936, -0.11237198) * go_0(-1.0, 1.0); + result += mat4(-0.011475162, 0.062792905, 0.091312, 0.30339372, -0.11382581, 0.06737181, 0.07341503, 0.16007973, 0.001011511, -0.11274179, -0.006656744, -0.034754373, 0.08876155, 0.014858809, 0.08583179, 0.010586847) * go_0(0.0, -1.0); + result += mat4(0.095108636, 0.0049300413, -0.15713759, -0.049208567, 0.14641964, -0.1558201, 0.115891516, -0.06733412, -0.07573838, 0.29731378, 0.108890355, 0.043476757, 0.06507369, 0.035861496, -0.03979463, 0.0009747037) * go_0(0.0, 0.0); + result += mat4(0.04926235, -0.037529353, 0.079898834, -0.14147292, -0.08446753, -0.06169593, 0.047313344, 0.26457137, -0.035472378, -0.073560245, 0.14341679, -0.022741733, -0.1525431, -0.01243139, -0.011166588, -0.20521918) * go_0(0.0, 1.0); + result += mat4(-0.016135108, 0.011612018, 0.14412925, -0.02519369, 0.09124221, 0.05163101, -0.13721077, 0.028859738, -0.10101291, -0.14688651, 0.15746878, -0.124548726, -0.04213581, -0.01224665, 0.17707069, 0.012810498) * go_0(1.0, -1.0); + result += mat4(-0.17663126, -0.07370428, 0.043691028, -0.006832302, -0.050157465, -0.030904332, 0.061489057, -0.009296911, 0.03220379, -0.047700413, -0.029812776, 0.16822562, 0.041632306, 0.11511152, 0.09653043, -0.055198412) * go_0(1.0, 0.0); + result += mat4(0.13367188, 0.03333002, 0.008851994, -0.012191224, -0.045508027, 0.08612423, 0.06786381, 0.15179649, -0.031041663, -0.059014346, 0.15675054, -0.08772905, 0.09033015, -0.08435604, 0.07550108, -0.14843665) * go_0(1.0, 1.0); + result += mat4(0.14639384, 0.16561817, -0.03261034, -0.03337392, 0.14970617, -0.11748068, -0.12750028, -0.10566866, 0.16191705, -0.08984127, 0.06803522, 0.008120483, 0.10923837, 0.0364358, -0.13485567, 0.14291629) * go_1(-1.0, -1.0); + result += mat4(-0.02444568, 0.21520157, 0.05191823, 0.17272551, -0.047668163, -0.09192939, -0.020734387, -0.016689759, -0.21506861, -0.038079426, 0.099174924, 0.010456613, -0.20138906, -0.0112631135, 0.08758567, -0.045137912) * go_1(-1.0, 0.0); + result += mat4(0.060797717, 0.03514636, -0.05460338, -0.095668696, -0.08528851, -0.07811166, 0.12541622, -0.036730994, -0.14369172, -0.010652937, 0.0060692867, -0.1785254, 0.14972189, -0.13451393, -0.04655055, 0.16085984) * go_1(-1.0, 1.0); + result += mat4(0.05367569, 0.20912962, 0.018910028, -0.10154244, 0.03168856, 0.06779478, -0.088652916, 0.016729023, 0.10557536, -0.099209085, 0.14797546, -0.18952388, 0.07048445, 0.102708265, -0.14564602, 0.12568687) * go_1(0.0, -1.0); + result += mat4(-0.049337912, -0.12502758, -0.09065302, 0.19880529, 0.26680514, -0.003136209, -0.11733151, -0.11684242, -0.04335924, 0.30764192, 0.2855104, 0.04156867, -0.08121212, 0.23999381, -0.019614706, 0.027516816) * go_1(0.0, 0.0); + result += mat4(-0.04837136, -0.0049304874, 0.006328469, 0.013705871, 0.067017764, -0.03406703, 0.053161882, 0.24689339, -0.02929922, 0.06797918, 0.015713276, -0.17147881, 0.04482974, 0.07526465, 0.019844312, -0.18729854) * go_1(0.0, 1.0); + result += mat4(0.030257802, 0.010643463, -0.11703066, -0.015162744, -0.074236035, 0.01591241, 0.061938114, -0.08404092, 0.111995466, -0.13485448, 0.21688463, -0.110088274, 0.079335205, -0.2474801, -0.03824567, -0.018190503) * go_1(1.0, -1.0); + result += mat4(-0.11581714, -0.004117979, 0.033883266, -0.13720983, 0.029020213, -0.08154189, -0.0020539986, 0.11715364, 0.17582226, 0.0916048, 0.0750543, 0.06601126, 0.038681798, -0.03606899, 0.08065586, 0.0019443193) * go_1(1.0, 0.0); + result += mat4(-0.037615683, 0.12732984, 0.042441927, -0.008004603, 0.11336218, -0.042417236, 0.044717386, -0.13728632, 0.038264424, 0.17234874, -0.02492702, 0.120399185, 0.024329247, 0.024983741, -0.1845697, -0.07284304) * go_1(1.0, 1.0); + result += mat4(0.2704137, 0.15812507, 0.060361683, -0.07266647, -0.15354276, -0.04938148, 0.11895455, -0.12520859, -0.07866695, 0.06199223, 0.02046756, 0.16162948, 0.037545823, -0.08195345, -0.02782581, -0.1247714) * go_2(-1.0, -1.0); + result += mat4(0.058098216, 0.1090351, 0.036994565, -0.14390574, -0.02314059, -0.067219526, -0.08998296, 0.12025692, -0.1035221, 0.05190676, -0.0240437, 0.06639121, -0.039624542, 0.002958745, 0.019561864, 0.12834862) * go_2(-1.0, 0.0); + result += mat4(0.2211613, -0.1103558, -0.0464588, 0.06874506, -0.32631674, 0.11210603, 0.051548798, -0.34436032, -0.11639206, 0.12327613, 0.051884107, -0.03575669, 0.035892785, -0.06696002, -0.15486757, 0.11983755) * go_2(-1.0, 1.0); + result += mat4(0.021447798, 0.010329525, 0.013789607, 0.119596116, -0.05871373, 0.055229582, 0.20033267, 0.03858596, -0.10166856, 0.0006909935, 0.0964782, 0.095391914, 0.013319357, -0.13142642, 0.1100771, 0.050889898) * go_2(0.0, -1.0); + result += mat4(-0.16984001, -0.16002657, -0.060783282, -0.17456883, 0.2011064, -0.14940733, -0.15602681, 0.14061591, 0.18068549, -0.00217099, -0.024712907, 0.037761874, -0.07138531, -0.0016056405, 0.11756802, 0.18380354) * go_2(0.0, 0.0); + result += mat4(0.07733175, -0.17642827, 0.07976922, -0.051280692, 0.16156857, 0.032522928, -0.095040165, -0.0583928, 0.038923588, -0.043146443, -0.10355574, 0.1974055, 0.04354748, 0.09425934, 0.026754672, 0.23734866) * go_2(0.0, 1.0); + result += mat4(-0.13585593, 0.14902504, -0.27107853, 0.13296895, -0.2865579, -0.074112825, 0.1409574, -0.0003253808, 0.1733374, -0.16919981, 0.03372848, 0.21644552, -0.00050592434, -0.037268158, 0.1148079, -0.13287376) * go_2(1.0, -1.0); + result += mat4(0.005142486, 0.0867682, -0.09227092, -0.10524167, 0.07520852, 0.015542765, 0.016817883, -0.0733789, 0.20560083, -0.1119311, 0.17374502, -0.107678846, -0.09381425, 0.14690572, 0.022286026, -0.19862098) * go_2(1.0, 0.0); + result += mat4(-0.20393431, -0.045187343, 0.0095105795, 0.052588273, -0.14538154, 0.18569797, -0.031874318, -0.15881945, -0.08170196, 0.052769475, -0.15122755, 0.090783544, 0.21360469, 0.04577172, 0.05163147, 0.07916663) * go_2(1.0, 1.0); + result += mat4(0.14100257, -0.03398819, -0.052019518, -0.08121586, 0.008056087, -0.0931302, -0.19780545, 0.16904305, -0.13034676, 0.08930879, -0.0112331435, 0.029833045, 0.03981243, 0.12613662, -0.2159093, 0.035136405) * go_3(-1.0, -1.0); + result += mat4(0.09830958, 0.10535925, -0.08584078, -0.04632737, 0.0022527708, -0.031659063, -0.101096116, 0.063173816, -0.06613251, 0.118981436, -0.003423647, -0.105914734, -0.07703021, -0.07204621, -0.0748016, -0.11777416) * go_3(-1.0, 0.0); + result += mat4(0.053663094, 0.07884249, -0.17141959, -0.012647486, 0.08073693, -0.076323204, -0.17775054, 0.10244291, 0.14563464, 0.14345805, -0.18157926, 0.18835878, -0.026068632, 0.023138894, -0.0019046182, -0.00012485609) * go_3(-1.0, 1.0); + result += mat4(0.1348711, -0.04699952, 0.15993118, -0.23344111, 0.026501887, -0.14297141, -0.113242336, 0.080124736, -0.03513346, 0.10361922, -0.0922229, 0.07750678, 0.12542203, 0.12729637, -0.092106655, 0.055520497) * go_3(0.0, -1.0); + result += mat4(0.083170444, -0.06302187, 0.0084091, -0.04599831, -0.035450544, -0.19657601, -0.07282212, 0.1447326, 0.11383889, -0.21189907, -0.045117173, -0.07391879, -0.11269967, -0.08903234, -0.032466423, 0.22887331) * go_3(0.0, 0.0); + result += mat4(0.067729145, 0.06700018, -0.18447827, 0.03988203, 0.05277088, 0.033052627, -0.11088279, -0.02169712, 0.019287307, 0.06812, 0.04875055, 0.111010365, -0.14138764, 0.027063884, -0.05214136, 0.16399074) * go_3(0.0, 1.0); + result += mat4(0.004932597, 0.1045028, -0.16486417, 0.010725656, 0.06950409, -0.121699296, 0.010512686, 0.14147647, 0.019202268, 0.17767008, 0.011134318, 0.063502066, -0.13067701, 0.108099535, -0.114125356, -0.046774942) * go_3(1.0, -1.0); + result += mat4(0.15779556, 0.07332346, 0.063827224, 0.008358174, 0.0496721, -0.030757044, -0.050408855, 0.12898293, 0.023491597, 0.045543656, -0.07800668, 0.037886333, 0.17256846, 0.07125766, 0.029893918, -0.02450649) * go_3(1.0, 0.0); + result += mat4(-0.18544081, -0.033090588, -0.05919492, -0.0003458201, 0.14915435, -0.037259944, 0.011946766, -0.16243212, 0.0882922, 0.093222775, -0.11737426, -0.003943405, 0.019537527, 0.0077801496, 0.1317979, -0.09169945) * go_3(1.0, 1.0); + result += mat4(-0.091774754, 0.012059926, 0.03165443, 0.14858909, 0.3944464, -0.014972357, -0.12189733, 0.26198938, -0.27252647, -0.026880303, -0.06978548, -0.013632001, -0.0032966428, -0.18498091, -0.0004948639, -0.12478541) * go_4(-1.0, -1.0); + result += mat4(-0.02833149, -0.050442036, -0.041132275, -0.07840716, 0.04005613, 0.17621154, -0.13607822, 0.1762098, 0.05282825, 0.0016353457, 0.006173704, -0.067321114, 0.13982886, -0.03623519, -0.087992206, -0.047710747) * go_4(-1.0, 0.0); + result += mat4(0.03881576, -0.08746933, -0.011487434, 0.12498892, -0.0017975342, 0.018888952, -0.18913451, 0.08337154, -0.090970725, 0.117090665, 0.1504768, -0.070024244, -0.019629575, -0.091753945, -0.0092930645, -0.15750532) * go_4(-1.0, 1.0); + result += mat4(0.017022166, -0.12516023, -0.12154394, 0.11974826, -0.09612418, -0.115943454, 0.24888757, 0.06153447, 0.056513205, -0.11116729, 0.029329464, 0.08975961, 0.10630068, -0.1328722, -0.06946471, -0.13333926) * go_4(0.0, -1.0); + result += mat4(-0.034902636, 0.2483038, 0.14978237, -0.07164234, -0.012161076, 0.023050508, 0.06598259, -0.043513447, 0.10375706, -0.20177342, -0.123048, -0.035172284, -0.07363312, 0.18172532, 0.09612206, 0.19234397) * go_4(0.0, 0.0); + result += mat4(0.029563665, -0.029694784, -0.101416424, -0.030606827, -0.070010245, 0.045257732, 0.05966623, 0.09107148, 0.03758803, 0.026623867, -0.071266346, 0.094123766, -0.059981044, 0.09513772, -0.08400028, 0.02511076) * go_4(0.0, 1.0); + result += mat4(-0.037089724, -0.06322222, 0.1061242, 0.008586227, 0.13214453, 0.035300348, -0.15787113, 0.07151468, -0.12539263, -0.09025181, 0.18832791, -0.033440433, -0.06625288, -0.1530654, -0.005935112, -0.18216603) * go_4(1.0, -1.0); + result += mat4(0.027623197, -0.04890818, -0.061262466, 0.015195151, 0.32218042, 0.19153431, -0.08007639, -0.11445247, 0.00393679, -0.06705804, -0.12879996, -0.1423812, -0.06090306, 0.0036856222, 0.0069346135, 0.043838803) * go_4(1.0, 0.0); + result += mat4(-0.016647626, -0.08680245, -0.060714565, -0.06387184, 0.18913822, 0.10105815, -0.026422933, -0.039242256, -0.06503463, -0.03521194, 0.049169898, -0.06533137, -0.03167689, 0.015587601, -0.08370448, -0.021492135) * go_4(1.0, 1.0); + result += mat4(-0.12721944, 0.028729077, 0.10713755, -0.09260985, -0.047840588, 0.022301238, 0.11309327, -0.06745379, -0.004154309, 0.10523564, -0.04239449, -0.017029425, 0.10899646, 0.1546228, -0.07669311, 0.2672058) * go_5(-1.0, -1.0); + result += mat4(-0.056850802, -0.05440277, 0.0018135635, 0.09396988, 0.14010292, 0.08741186, -0.12758048, -0.08599669, -0.018672993, 0.05172455, 0.008185248, 0.111759275, -0.06955318, 0.14772479, 0.008665618, 0.0352044) * go_5(-1.0, 0.0); + result += mat4(-0.059702516, 0.058782764, -0.12532151, -0.096861176, 0.35831934, 0.0013884759, 0.30706376, -0.101967454, 0.095553055, 0.05883552, 0.06424327, 0.054175656, -0.1484007, 0.13297899, -0.01961164, 0.15321216) * go_5(-1.0, 1.0); + result += mat4(0.09578697, -0.20968121, 0.04902802, -0.030943176, -0.009951699, -0.05341875, -0.063387014, -0.0825744, -0.09769999, -0.075733155, 0.14749058, 0.12551898, 0.24074706, 0.16208081, -0.21561289, -0.062474046) * go_5(0.0, -1.0); + result += mat4(0.0017662761, -0.088773146, 0.0043133483, 0.32119426, -0.13667256, 0.043542203, -0.045929775, -0.09663573, -0.136664, -0.19760157, -0.07579348, -0.04397654, 0.15027492, 0.08591492, -0.03781643, -0.1743205) * go_5(0.0, 0.0); + result += mat4(-0.12654322, 0.028860493, 0.12822515, 0.049503203, 0.30117163, -0.03055389, -0.0582901, 0.0019550966, -0.0038878717, 0.0043905065, -0.12589069, -0.22796634, -0.10635117, 0.16903181, 0.16951965, 0.027410017) * go_5(0.0, 1.0); + result += mat4(-0.059951358, -0.20652413, 0.056598257, -0.1811566, 0.2165428, -0.14381465, 0.20429386, 0.025329571, -0.19378977, -0.055971343, -0.0010970832, 0.08035063, 0.077368416, 0.078627735, 0.07322149, -0.14884202) * go_5(1.0, -1.0); + result += mat4(0.041847393, -0.12735637, 0.014505967, 0.10192219, -0.13889207, -0.015992412, -0.17310154, 0.12131598, -0.13452062, -0.00036142246, -0.14270298, 0.14636193, 0.059705302, 0.051249746, 0.015804589, -0.11418885) * go_5(1.0, 0.0); + result += mat4(-0.043562837, -8.029936e-05, -0.007859607, -0.08610097, -0.021267893, -0.011354754, -0.17890069, -0.0485164, -0.1679154, 0.11548207, -0.060171373, -0.24584498, 0.008396757, 0.1078782, 0.12012115, 0.07315681) * go_5(1.0, 1.0); + result += vec4(-0.067701444, -0.05630008, 0.022760866, -0.034229018); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!SAVE conv2d_5_tf +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.092447594, -0.10328636, -0.12202365, 0.27040935, 0.052717082, 0.018614411, -0.08485268, -0.07617377, -0.008931799, 0.051284462, 0.051496644, 0.026522819, 0.09565774, 0.18421015, 0.26325333, -0.12989432) * go_0(-1.0, -1.0); + result += mat4(0.03988519, 0.042028125, -0.07100362, 0.03045228, 0.068984345, 0.03516445, 0.05874817, -0.028063854, 0.5054902, -0.16185366, 0.12543231, 0.07206758, 0.31235528, 0.03843813, 0.1501265, -0.08274924) * go_0(-1.0, 0.0); + result += mat4(-0.11169874, -0.06681513, -0.00651678, 0.0010351768, 0.051753096, 0.053674143, 0.11657592, 0.12309117, -0.040198836, -0.007768111, 0.10881242, -0.14587292, 0.17091802, -0.087406136, -0.057882708, 0.0078790905) * go_0(-1.0, 1.0); + result += mat4(0.26830226, -0.01915989, -0.18262567, 0.2194732, 0.13879527, -0.031352315, 0.15241407, 0.0994905, -0.057112038, 0.17008875, 0.037308767, 0.09374541, -0.3188967, 0.01450157, -0.18610804, -0.0793318) * go_0(0.0, -1.0); + result += mat4(0.0060915435, 0.06979378, -0.046237, -0.27248916, 0.09547359, -0.07666023, 0.09364251, 0.026975514, 0.16541278, 0.042641494, -0.02498914, 0.15121445, -0.0013431904, -0.06427887, 0.18217684, 0.26087397) * go_0(0.0, 0.0); + result += mat4(-0.20825194, -0.11043138, 0.02976852, -0.105722494, 0.0008496603, -0.065933526, 0.06687892, 0.025230588, 0.18294227, -0.03581215, 0.14366323, 0.101520695, 0.25154486, 0.055622917, -0.012970234, 0.054395743) * go_0(0.0, 1.0); + result += mat4(0.21373472, -0.030288193, 0.06773853, 0.07427125, -0.0103815105, 0.016129585, 0.038576525, 0.037529152, -0.20739938, -0.05778662, -0.05940614, 0.02449663, 0.23593283, -0.05812938, -0.039888572, -0.057957932) * go_0(1.0, -1.0); + result += mat4(0.387659, 0.1274861, 0.28752464, -0.05272344, -0.014581121, 0.0040657013, -0.06632645, -0.107276425, 0.03762339, 0.2742528, 0.028725976, -0.054044764, -0.04273324, -0.06317463, 0.0060703703, 0.053600952) * go_0(1.0, 0.0); + result += mat4(-0.1596047, -0.1561146, 0.109226674, -0.0052362215, 0.16038993, 0.10755746, -0.030864978, -0.36270598, 0.17078364, 0.09184639, 0.23489448, 0.026559642, 0.04388386, -0.061411064, 0.028113337, -0.045337155) * go_0(1.0, 1.0); + result += mat4(-0.111932576, 0.0021055648, -0.12106931, 0.019196665, 0.033925258, -0.13593148, -0.068236336, 0.107576296, 0.0415075, -0.2336552, -0.052428674, 0.07777366, 0.00816918, 0.2065682, -0.08628869, 0.15342048) * go_1(-1.0, -1.0); + result += mat4(-0.021824878, -0.04840494, -0.116642684, 0.045604706, 0.008168658, -0.04534853, 0.11214711, -0.10829524, -0.043486122, -0.24905528, -0.07315474, 0.14727196, -0.07264179, 0.065202385, -0.0019039236, -0.08028288) * go_1(-1.0, 0.0); + result += mat4(0.08439612, 0.008386524, -0.030988367, 0.09697018, -0.049302116, 0.20326442, -0.018234255, -0.20189443, 0.042629667, -0.1409463, -0.050773926, -0.29503027, -0.07123911, -0.046633366, 0.07981456, 0.10374346) * go_1(-1.0, 1.0); + result += mat4(0.03868367, -0.05526043, -0.106714435, -0.14639367, 0.038107764, 0.069904044, 0.0744559, 0.13862458, 0.09222159, -0.14277418, -0.19073294, -0.03296828, -0.10584655, 0.13311721, -0.24290293, -0.008493607) * go_1(0.0, -1.0); + result += mat4(-0.15074006, 0.094411716, -0.058070287, -0.10475867, 0.127535, 0.047796316, 0.033599593, 0.055493813, 0.17686792, -0.23935609, -0.27880296, -0.12433512, 0.049884334, 0.0651521, 0.009873332, -0.039633323) * go_1(0.0, 0.0); + result += mat4(0.025122408, 0.16321969, -0.06588295, 0.09563756, -0.115063086, -0.061710395, 0.073383145, 0.09976373, 0.09290709, -0.042226892, -0.22798967, -0.14234817, -0.089538574, 0.022935519, 0.09885692, -0.050982323) * go_1(0.0, 1.0); + result += mat4(0.09486296, 0.04397677, 0.04075486, 0.056717344, -0.04711896, 0.04990853, -0.16473778, 0.13175704, 0.12485286, -0.18850122, -0.13122937, -0.102840684, -0.16874318, 0.05348968, -0.017259317, 0.07717163) * go_1(1.0, -1.0); + result += mat4(-0.059502125, -0.13897286, -0.03801125, 0.17431264, 0.11680923, -0.12560965, -0.0911302, -0.19165933, -0.121053115, 0.06541917, -0.06419728, -0.19364956, -0.13833821, 0.03234477, -0.09979964, 0.17789067) * go_1(1.0, 0.0); + result += mat4(0.067596145, 0.25704458, 0.19766523, 0.108859204, 0.09887382, 0.052284334, -0.07278858, 0.122003525, -0.030752266, -0.04871386, -0.05135825, -0.3072661, -0.033045944, -0.098459914, 0.10718348, -0.13164413) * go_1(1.0, 1.0); + result += mat4(0.020737967, 0.24545951, -0.044812705, 0.03566297, 0.095929176, -0.07487561, 0.20496303, 0.037086472, 0.038242895, 0.088189796, 0.021153267, -0.09462902, 0.026548525, -0.21922965, 0.050257247, -0.048741706) * go_2(-1.0, -1.0); + result += mat4(0.040332116, 0.043284092, 0.24138524, -0.02451653, -0.13059705, 0.0343388, -0.07902276, -0.009631078, -0.0848101, 0.010842163, 0.086510465, -0.012446626, 0.005316944, -0.22108673, 0.14004333, 0.15579557) * go_2(-1.0, 0.0); + result += mat4(0.022010755, 0.004139463, -0.017926715, 0.04037725, 0.016520657, 0.009780203, -0.14736284, -0.014491211, 0.057596914, -0.23008622, 0.21133287, -0.053522564, -0.18740861, -0.106346205, 0.10276541, 0.043288257) * go_2(-1.0, 1.0); + result += mat4(0.10575789, 0.019061945, -0.026198203, 0.20347466, 0.07900247, 0.102640145, 0.08666188, -0.05840282, 0.058876745, 0.14216799, -0.11816214, 0.14975895, 0.09833406, -0.1061385, 0.08465644, 0.09426659) * go_2(0.0, -1.0); + result += mat4(-0.13777718, -0.28986838, 0.07906812, 0.059411187, 0.09088133, 0.23517007, -0.20900714, 0.011920497, 0.14009877, 0.19299953, -0.028272772, 0.06418091, 0.118590616, -0.111001015, -0.055573206, 0.085596696) * go_2(0.0, 0.0); + result += mat4(-0.124967046, -0.23403575, -0.085109934, 0.094934925, 0.15895598, 0.08125505, -0.2215677, 0.10778676, -0.12129276, -0.0019275933, 0.14121452, -0.07975474, -0.057002395, -0.052832086, -0.1850646, -0.100982465) * go_2(0.0, 1.0); + result += mat4(0.0710814, 0.20992099, 0.07493418, -0.109678715, -0.18531376, -0.039698873, -0.110102035, 0.16468482, 0.08024999, -0.09387882, -0.13551506, 0.11087316, -0.10608426, -0.13655968, 0.01102362, -0.060193118) * go_2(1.0, -1.0); + result += mat4(-0.015583674, -0.06961451, 0.14489253, -0.27566335, -0.17987481, -0.027696218, -0.23948374, 0.028104413, 0.27821308, 0.08043316, -0.05241405, -0.0027138551, -0.13761862, 0.0038414828, 0.010716796, -0.21286957) * go_2(1.0, 0.0); + result += mat4(-0.22588563, 0.040290482, -0.13179918, -0.15576197, 0.058554877, 0.10720413, 0.11312613, -0.004625868, 0.03558514, -0.023398632, -0.2564193, -0.045098998, -0.0012908503, 0.01255389, -0.018089779, -0.1334803) * go_2(1.0, 1.0); + result += mat4(-0.040578995, 0.14333616, 0.023703935, -0.24532415, -0.017356034, 0.05467018, -0.13556047, -0.051645495, 0.08613384, -0.18583167, 0.023360416, -0.12590869, -0.06778763, -0.06438733, 0.025624113, 0.07671888) * go_3(-1.0, -1.0); + result += mat4(0.042797543, 0.076091446, 0.082091615, 0.014681128, -0.09378036, 0.062476482, 0.026251588, 0.16627216, -0.15255791, 0.17601879, 0.042653207, 0.039376315, 0.029179158, -0.0095602125, 0.0705857, 0.011434591) * go_3(-1.0, 0.0); + result += mat4(0.012922825, 0.13863216, -0.09220861, -0.005267679, 0.12863027, 0.08068719, -0.07179554, -0.13297969, 0.04991335, -0.01473723, -0.028486373, 0.26253343, -0.052293234, -0.16709994, 0.013800583, 0.060783714) * go_3(-1.0, 1.0); + result += mat4(-0.17575453, -0.036046885, 0.17919157, -0.18988807, -0.18178074, -0.058441214, -0.07271548, -0.008791415, 0.18230358, 0.07766667, -0.066274896, -0.15386371, 0.06161233, 0.003612807, 0.20308098, -0.020216005) * go_3(0.0, -1.0); + result += mat4(-0.05010378, 0.018410517, -0.050254025, 0.012066753, -0.12485184, -0.1916662, -0.1278125, 0.06593962, 0.11824467, 0.07994578, 0.05962518, -0.20991555, -0.114382625, 0.07509197, -0.19671203, -0.4580128) * go_3(0.0, 0.0); + result += mat4(0.17728399, -0.15649322, -0.15205286, 0.22968316, 0.037434835, 0.021075314, -0.090972036, -0.17058647, 0.19727467, -0.013115808, -0.08461909, 0.010409278, 0.04355671, 0.08082593, 0.013779581, -0.08425518) * go_3(0.0, 1.0); + result += mat4(-0.31590196, 0.107831545, -0.12198127, 0.00977694, -0.16240558, -0.038805872, 0.037051022, 0.10276969, 0.26788524, -0.072160736, 0.03843579, -0.08990598, -0.04897058, -0.019324914, 0.06016647, -0.015361721) * go_3(1.0, -1.0); + result += mat4(-0.16626236, -0.07336449, -0.11358449, 0.08885961, -0.044137727, 0.057762783, 0.08864482, 0.029383648, -0.08608859, -0.17586444, 0.094455965, -0.054391533, -0.18796252, 0.009314891, -0.014734876, -0.02058656) * go_3(1.0, 0.0); + result += mat4(0.12067889, 0.3618014, -0.17719771, 0.2175122, 0.12890387, 0.20503749, 0.19662304, 0.17338246, 0.1733569, -0.057952117, -0.016951751, -0.057121612, -0.014850513, -0.05018768, 0.20244005, 0.016323887) * go_3(1.0, 1.0); + result += mat4(-0.13357711, 0.12105561, -0.030620668, 0.005170665, 0.044319738, 0.12768681, 0.15325043, 0.027631996, -0.080610365, 0.03741198, -0.017102083, -0.0035679936, -0.2243731, 0.16709204, 0.023224674, 0.11311707) * go_4(-1.0, -1.0); + result += mat4(0.02376095, 0.027235378, -0.009955967, -0.049886744, -0.08411108, 0.10339928, -0.02877354, 0.12704167, -0.13884954, 0.089170545, -0.0039057198, -0.16050623, -0.05318099, -0.10950255, -0.11412448, 0.042694647) * go_4(-1.0, 0.0); + result += mat4(-0.20557326, -0.16362014, -0.090093814, 0.10406815, 0.08791842, 0.013667629, 0.099605836, -0.1062854, -0.07108554, -0.10362472, -0.0647173, 0.12420133, -0.082551, 0.07107792, -0.17423603, -0.048405636) * go_4(-1.0, 1.0); + result += mat4(-0.1954154, -0.027208658, -0.03684051, 0.1338225, -0.084645554, 0.06871324, -0.0778811, 0.025083596, -0.19436808, -0.097009145, -0.036444522, -0.17200048, 0.013402397, -0.23984545, -0.018724974, -0.005078688) * go_4(0.0, -1.0); + result += mat4(0.21297796, 0.023222866, -0.069507584, -0.07308915, -0.18444547, 0.016984317, -0.016325353, 0.11981142, -0.12647548, -0.074321784, 0.27461126, -0.111357704, 0.13917843, -0.035653792, 0.052209657, 0.2077564) * go_4(0.0, 0.0); + result += mat4(-0.13399822, 0.013458072, 0.031183472, 0.24100806, 0.025842719, -0.1878651, 0.14646488, -0.12074156, -0.15135823, -0.18367149, 0.14775206, 0.06404863, 0.06884799, 0.19008774, -0.094522566, 0.087253615) * go_4(0.0, 1.0); + result += mat4(-0.2991564, 0.15301964, -0.028454246, 0.10222737, -0.14888696, -0.021354329, -0.26517984, 0.17276473, 0.021648446, -0.17384106, 0.071495906, -0.16509262, -0.029774027, 0.17916657, -0.036435083, 0.1344122) * go_4(1.0, -1.0); + result += mat4(0.043782394, -0.111460604, -0.094103605, -0.024549566, -0.09227317, 0.009563868, -0.11380084, 0.14710943, 0.1623694, -0.2684087, 0.08932176, -0.025791056, 0.10586864, -0.2849578, -0.049896624, -0.07046415) * go_4(1.0, 0.0); + result += mat4(0.06390326, -0.16954753, -0.24643445, -0.06667138, 0.0153694395, 0.1391578, 0.033687413, -0.18783121, -0.061314933, -0.19441758, -0.033504955, 0.1402065, -0.082206115, 0.16466151, -0.07656087, 0.14898944) * go_4(1.0, 1.0); + result += mat4(-0.1266701, 0.036555164, -0.4070397, -0.085509166, 0.045745134, -0.0494443, -0.07149184, -0.05286605, -0.022561546, -0.091546714, -0.12706481, 0.1923914, 0.26536146, -0.07096412, -0.16030753, -0.21569426) * go_5(-1.0, -1.0); + result += mat4(-0.097307466, 0.15349665, 0.015644126, -0.22425117, 0.21123715, 0.022773454, 0.23383828, -0.07435915, 0.07146555, -0.02743282, 0.14647867, -0.0041729338, 0.12715502, 0.11781688, -0.061080795, 0.0026166402) * go_5(-1.0, 0.0); + result += mat4(-0.010103422, -0.087011784, -0.12507296, -0.009202013, -0.0016642559, 0.12229101, 0.012257156, 0.09069687, 0.17266563, 0.04349975, 0.0065761553, -0.071280204, 0.03610506, 0.18303613, -0.02108923, -0.06867508) * go_5(-1.0, 1.0); + result += mat4(-0.13150483, -0.060967755, 0.0055990918, 0.037484363, -0.02158257, -0.024784425, 0.23109616, -0.120935716, 0.20638125, -0.072126925, 0.062352557, -0.004980783, 0.19314887, 0.13248818, -0.23808232, 0.014506469) * go_5(0.0, -1.0); + result += mat4(0.18638828, -0.065645434, -0.20713033, 0.09149545, -0.24210495, -0.06484725, 0.08750317, 0.1802478, 0.3541541, -0.06987437, -0.1159385, -0.028150197, -0.23300691, -0.09201996, -0.121867135, -0.13276023) * go_5(0.0, 0.0); + result += mat4(0.09099928, -0.039182268, -0.1400286, 0.010247891, -0.010239972, -0.18701951, -0.1772805, 0.01631285, -0.09500139, 0.2590885, -0.09521566, 0.05752499, -0.1184693, 0.04186501, 0.27024126, 0.08569921) * go_5(0.0, 1.0); + result += mat4(-0.0729032, 0.10695013, -0.18894811, 0.06616699, 0.05852647, 0.03802247, 0.024427114, 0.022371208, 0.28009695, -0.022878911, 0.04645292, 0.060003202, 0.1053563, 0.027735699, 0.007826481, 0.14397411) * go_5(1.0, -1.0); + result += mat4(-0.15458257, 0.12910113, -0.11843165, 0.14065553, -0.19225205, 0.059665926, 0.2690873, -0.1308205, 0.071195096, 0.07672256, 0.1497483, 0.21867657, 0.15143347, -0.16467342, -0.13924904, 0.098136105) * go_5(1.0, 0.0); + result += mat4(0.05049889, 0.069295354, 0.017172134, 0.048614368, -0.19597568, -0.029311683, -0.190372, -0.025514813, -0.24531111, -0.041956335, 0.24628574, 0.15919869, 0.051921643, 0.09549575, 0.025514983, 0.13909552) * go_5(1.0, 1.0); + result += vec4(-0.012342477, -0.20862316, 0.08788906, -0.0010707981); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!SAVE conv2d_5_tf1 +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.08156944, 0.10573189, 0.012908232, 0.1657589, -0.038043138, -0.2873211, -0.2046161, -0.09311608, 0.3097668, -0.08111585, -0.17932127, -0.02586952, 0.18931806, -0.13793743, -0.13352883, 0.06681123) * go_0(-1.0, -1.0); + result += mat4(0.02374499, 0.14342955, 0.2563405, -0.029666856, 0.17285998, -0.1035698, -0.11706357, 0.11584379, 0.21326663, 0.06683621, -0.11183301, 0.092254475, -0.1014067, 0.03412136, -0.040375732, 0.13439587) * go_0(-1.0, 0.0); + result += mat4(-0.114404246, 0.05252966, 0.00047894646, -0.028747892, 0.0105511965, 0.078781754, 0.029926287, 0.14559107, -0.12780708, -0.08478812, -0.2247857, -0.19385272, -0.13657221, 0.18088628, 0.15612762, 0.037660476) * go_0(-1.0, 1.0); + result += mat4(0.05799563, 0.059148345, -0.09769129, 0.07772796, -0.09202486, -0.06425981, -0.016873274, 0.0030002298, 0.11275395, -0.08546416, -0.2876964, 0.023335997, -0.010972625, -0.032576468, -0.086281575, -0.070443906) * go_0(0.0, -1.0); + result += mat4(0.32762548, -0.06770343, 0.03179402, -0.04613723, -0.06790421, 0.44522998, 0.119118124, -0.11980204, 0.038128957, 0.17468919, 0.076030836, 0.14512211, 0.17252928, -0.047734894, -0.06045679, -0.08920573) * go_0(0.0, 0.0); + result += mat4(-0.015262433, 0.15428601, 0.06972416, -0.16334222, -0.08347724, 0.18573803, -0.11517264, -0.0009774134, -0.16686407, -0.10733252, -0.12523252, 0.050293542, 0.11212284, -0.009658616, -0.058349714, -0.014115335) * go_0(0.0, 1.0); + result += mat4(-0.056932453, 0.18084419, 0.02166639, 0.13523088, 0.011073456, -0.045516286, 0.003297358, -0.057280444, -0.018760536, -0.15718092, -0.11770054, -0.03166016, -0.19774522, 0.0755463, -0.20558798, 0.15830164) * go_0(1.0, -1.0); + result += mat4(0.19655597, 0.03901344, -0.051660974, 0.19494548, 0.034315336, -0.04597924, -0.056954715, -0.19345726, -0.11985197, 0.006047848, 0.12791121, -0.019705713, -0.01501477, 0.117168285, 0.025459006, 0.13246241) * go_0(1.0, 0.0); + result += mat4(-0.0023640324, 0.0349994, 0.009396353, 0.0936661, 0.100842424, -0.114130996, 0.038058087, 0.12808813, -0.054103322, 0.027919596, -0.10685234, -0.07498883, -0.06130471, -0.12066764, 0.0029782685, 0.059720848) * go_0(1.0, 1.0); + result += mat4(-0.098447025, -0.011071975, 0.16054775, -0.08671137, -0.13293275, 0.05532158, 0.14407343, 0.19340874, -0.20346253, 0.11525113, 0.1687311, 0.098785535, 0.03027443, -0.054430522, 0.022521, 0.19343728) * go_1(-1.0, -1.0); + result += mat4(-0.084854074, 0.06853468, 0.06792569, 0.029366238, 0.06035099, -0.05761756, -0.033579275, -0.062136766, 0.1649456, 0.049637973, 0.2630636, -0.02261985, -0.18047638, -0.071598716, 0.14448155, -0.055889398) * go_1(-1.0, 0.0); + result += mat4(-0.024849698, 0.088840574, 0.1503109, -0.004984663, -0.16879597, -0.26041916, -0.3362258, 0.20055196, -0.13901941, 0.042401403, 0.18325137, 0.1716765, -0.016100548, 0.11664664, -0.07838003, -0.16286951) * go_1(-1.0, 1.0); + result += mat4(-0.16242248, 0.22381666, -0.017743299, 0.07717547, 0.048560552, -0.20423977, 0.30301192, 0.00976561, -0.2708939, -0.092156336, 0.038034424, 0.06372939, 0.06721783, -0.023243327, 0.119849995, 0.15898646) * go_1(0.0, -1.0); + result += mat4(0.10859177, -0.05935216, -0.015591001, -0.053253412, 0.071014024, 0.43206415, 0.04865775, 0.069328085, -0.09695977, 0.19359045, 0.016935471, 0.0028954153, -0.08338698, 0.041919734, 0.032975465, 0.11067615) * go_1(0.0, 0.0); + result += mat4(0.32948914, -0.04703423, -0.075494416, -0.06948022, -0.18574949, 0.15096106, 0.0067734853, -0.16238153, -0.21330655, 0.25306207, 0.08089956, 0.08108933, 0.056989696, 0.05212022, 0.15835905, 0.00077813526) * go_1(0.0, 1.0); + result += mat4(-0.011273352, 0.26307768, -0.04307922, 0.21710183, -0.3902529, -0.46155867, 0.015115735, -0.05384065, -0.07163729, 0.0793938, -0.0985122, 0.06594441, 0.09647775, 0.05617775, 0.07099344, -0.16353689) * go_1(1.0, -1.0); + result += mat4(-0.040731885, 0.14055543, -0.07012667, 0.07207971, -0.004641172, -0.06394655, 0.091212526, -0.00019208786, -0.07705868, 0.040352806, -0.07397878, 0.051934645, -0.010726301, 0.23407605, 0.12093579, -0.0406116) * go_1(1.0, 0.0); + result += mat4(0.041406166, -0.22172481, 0.22162893, 0.02442143, 0.10592917, 0.1968317, -0.14774016, 0.011944242, -0.12373062, 0.114184484, -0.090167396, 0.022542128, -0.1554341, 0.1371109, 0.13077694, -0.020479746) * go_1(1.0, 1.0); + result += mat4(0.123823315, -0.3012641, -0.2841784, 0.014021941, 0.10990905, 0.2764256, -0.075963184, -0.10125788, -0.007879674, -0.08643855, -0.038958456, 0.07453782, -0.48677143, -0.03276048, -0.03156215, -0.09289601) * go_2(-1.0, -1.0); + result += mat4(-0.10992206, -0.05435893, 0.11743695, 0.17674956, 0.13509355, -0.17421335, -0.100946076, -0.10648024, 0.14750971, 0.21357685, -0.107157655, -0.017665314, 0.2106041, 0.124202386, 0.24976057, -0.09088304) * go_2(-1.0, 0.0); + result += mat4(-0.26258346, -0.03037757, 0.13096122, 0.13691814, 0.11316644, -0.14852227, 0.008399919, 0.04381969, 0.030872608, 0.45056874, -0.04014858, -0.012530115, 0.21238118, -0.1332986, -0.101533614, 0.077671215) * go_2(-1.0, 1.0); + result += mat4(0.101686284, -0.21485107, -0.109051324, 0.047709018, 0.018496532, 0.030967599, -0.07855083, 0.05204436, 0.0077558183, 0.080045685, -0.09668984, 0.17999001, -0.15804431, -0.042034358, -0.21375516, 0.001163862) * go_2(0.0, -1.0); + result += mat4(-0.14624378, 0.42138338, 0.028315686, -0.20134708, -0.010074609, -0.046433613, -0.050019633, 0.08432513, -0.079346046, -0.27917975, -0.19784799, 0.25092122, 0.21972348, -0.0084989555, 0.11432945, -0.0727637) * go_2(0.0, 0.0); + result += mat4(-0.22297074, 0.20484488, 0.17720158, 0.0022023271, -0.034587737, 0.0004995375, -0.027270092, -0.08549106, -0.07970776, 0.14142907, -0.039514165, 0.08021129, 0.262039, 0.08684183, 0.08106768, -0.088322006) * go_2(0.0, 1.0); + result += mat4(0.19230787, -0.019139988, 0.100881554, 0.0622476, -0.0073597133, -0.007861123, -0.09819001, -0.035048965, 0.1649283, 0.096261285, -0.0899776, -0.03930426, -0.044506907, 0.20075877, -0.049743377, -0.0076403967) * go_2(1.0, -1.0); + result += mat4(0.0043743993, 0.20346396, 0.1655524, -0.025431981, -0.02454905, -0.04476991, 0.020741275, -0.12993908, 0.026805034, -0.0037405565, -0.17931041, 0.09257133, 0.13752705, 0.07889819, -0.037251562, -0.002646608) * go_2(1.0, 0.0); + result += mat4(0.038870014, -0.37619725, 0.046597917, -0.15463144, 0.054383356, -0.2925491, 0.0640225, -0.00486844, -0.0016340262, 0.10840749, 0.0993287, 0.17394166, 0.08594391, -0.030945132, 0.025646068, -0.06640845) * go_2(1.0, 1.0); + result += mat4(-0.01649855, -0.068216905, -0.027988954, -0.12154563, 0.022097806, -0.1290429, 0.10954417, 0.13157494, -0.1745968, -0.04658394, -0.053029858, -0.0759596, -0.04430781, -0.041724976, -0.056713972, -0.14473973) * go_3(-1.0, -1.0); + result += mat4(0.06543556, 0.092009485, -0.08451462, 0.052707452, -0.06780165, -0.088456, -0.025358824, -0.12258837, -0.10129489, -0.059306916, -0.14748581, 0.014620428, -0.038939722, -0.10054172, 0.09494565, -0.07793254) * go_3(-1.0, 0.0); + result += mat4(-0.05932573, 0.013406356, 0.26368266, 0.18454649, -0.03142332, -0.01590683, -0.06236948, 0.11061398, 0.025253339, -0.030919848, 0.064894855, 0.13248478, -0.030221257, -0.0986045, -0.034824356, -0.16913392) * go_3(-1.0, 1.0); + result += mat4(0.0015110603, 0.2025821, 0.004228453, 0.08477586, -0.03797453, -0.04194356, 0.18174535, -0.06626136, -0.13344109, -0.22612168, 0.02602776, 0.016666876, -0.027019914, 0.119900815, -0.06250115, -0.070262626) * go_3(0.0, -1.0); + result += mat4(-0.14976665, 0.03257234, -0.14965177, 0.073865525, 0.062913194, 0.05034122, 0.03676157, -0.018906, 0.04145618, -0.111236595, -0.20951095, -0.060131762, -0.16541055, -0.08913449, 0.044624332, -0.08443667) * go_3(0.0, 0.0); + result += mat4(-0.21176168, -0.015680272, 0.25104785, 0.28819278, 0.068234585, -0.067152865, 0.18975581, -0.024222756, 0.09343949, 0.107427366, -0.08206377, -0.07970111, -0.10268362, -0.02063304, 0.007915588, -0.1344096) * go_3(0.0, 1.0); + result += mat4(0.061288554, -0.017783957, 0.1759008, -0.096834674, -0.17838398, 0.22331426, -0.027759569, -0.0883247, -0.05435304, -0.099557355, 0.026310958, 0.18467775, 0.07900235, -0.017400427, 0.1453773, 0.033763483) * go_3(1.0, -1.0); + result += mat4(-0.06601715, 0.19832757, 0.10341119, 0.015197309, -0.13140027, 0.06353335, -0.033154953, 0.14772332, 0.053612914, -0.018467115, -0.1992033, 0.17353232, 0.16321027, -0.09609656, -0.12580357, -0.052030507) * go_3(1.0, 0.0); + result += mat4(-0.09335505, 0.099851064, 0.12890811, 0.13102262, -0.07580953, -0.11255671, -0.18570407, -0.14529274, -0.05160979, 0.06461672, -0.038672008, -0.00841868, 0.0029629876, -0.13739161, -0.29193023, -0.081763566) * go_3(1.0, 1.0); + result += mat4(0.23590541, 0.009043033, 0.06940084, 0.13891594, -0.010488754, 0.029098868, 0.07929391, -0.07250032, -0.13742201, -0.18533885, 0.2531767, -0.009061109, -0.027644258, 0.10404188, 0.012537389, 0.10293872) * go_4(-1.0, -1.0); + result += mat4(0.19354686, 0.15574348, 0.31874457, 0.024332082, 0.06383042, 0.048204664, -0.073850416, 0.032850295, -0.34514645, -0.054682292, -0.054835007, 0.012525943, -0.031569667, -0.093528986, 0.077636436, 0.080878824) * go_4(-1.0, 0.0); + result += mat4(-0.061584793, 0.003138571, 0.25193092, 0.09340434, 0.17664844, 0.010498078, 0.18399622, -0.23279727, -0.12833218, 0.15312086, -0.10134878, -0.0025951387, 0.07395745, -0.059028395, 0.1285172, 0.13659331) * go_4(-1.0, 1.0); + result += mat4(0.1286127, -0.08862414, 0.123132095, -0.11186987, 0.04064812, 0.1295343, -0.08698302, -0.054833192, -0.06911518, 0.1468998, 0.14806904, 0.0002644252, -0.102448784, 0.0064156754, 0.111383334, -0.07292957) * go_4(0.0, -1.0); + result += mat4(0.05504673, -0.076037504, 0.11776747, -0.07890708, 0.077408485, -0.117229365, 0.0197986, -0.12881358, -0.121706314, 0.008088911, -0.025189465, -0.06471935, 0.111992925, -0.08574453, -0.18029808, 0.057162132) * go_4(0.0, 0.0); + result += mat4(-0.09641628, -0.08636256, 0.07254762, -0.1108583, 0.06322016, 0.04606108, 0.015605975, -0.023462018, 0.077079624, 0.12611854, -0.026314614, -0.021778936, -0.080265954, -0.028592844, 0.1361638, 0.16848429) * go_4(0.0, 1.0); + result += mat4(0.14155127, 0.013242842, 0.04764719, -0.12724996, -0.05762018, 4.4798093e-05, 0.31255975, -0.52083194, -0.18550456, 0.109841965, 0.1860627, 0.11478285, -0.36154944, -0.12439295, 0.3006208, 0.032344274) * go_4(1.0, -1.0); + result += mat4(-0.11564562, -0.034078646, 0.16126357, -0.1936752, -0.2330871, -0.13876866, 0.088089384, -0.021154383, -0.091547124, 0.091753796, 0.18144718, 0.1774146, 0.007724317, 0.097580045, -0.15106232, -0.04128832) * go_4(1.0, 0.0); + result += mat4(0.071651496, 0.18003649, 0.10129018, -0.16904286, -0.2137536, -0.1308051, 0.13850693, 0.04569891, 0.09158717, 0.1749203, -0.032127034, 0.06019649, 0.12735014, -0.19949023, 0.003664079, -0.050514087) * go_4(1.0, 1.0); + result += mat4(-0.009363578, 0.083391, -0.08583937, -0.008416162, -0.024429835, 0.008918877, -0.15991227, -0.035743445, -0.040119864, 0.20200913, -0.09585724, 0.039848186, 0.2914714, -0.13199879, -0.04198891, 0.049873233) * go_5(-1.0, -1.0); + result += mat4(0.14203294, -0.12218405, -0.1336784, -0.011557518, -0.10419894, -0.047520764, 0.012323197, 0.01812075, -0.15906301, 0.057789516, -0.108339556, 0.035662923, 0.008705645, -0.017022535, -0.11589909, 0.030071909) * go_5(-1.0, 0.0); + result += mat4(-0.15126535, 0.116061516, 0.26665378, -0.11970062, -0.192801, 0.021354547, -0.253131, 0.12830788, -0.17019245, 0.06896555, -0.0015308838, -0.0076949615, 0.031619042, -0.14708556, -0.11876281, -0.053292263) * go_5(-1.0, 1.0); + result += mat4(-0.14085393, 0.15730241, 0.10422539, 0.025466066, 0.10541659, -0.0012975787, 0.041553672, 0.059082996, -0.154172, 0.08198402, 0.09771777, -0.068264395, 0.047784068, -0.11348507, 0.004380174, -0.089181446) * go_5(0.0, -1.0); + result += mat4(0.04478754, -0.18557417, 0.13422509, 0.15747893, -0.009310171, -0.0116828615, -0.0116161555, -0.0065923473, -0.028874157, 0.17116025, -0.15008302, 0.0864679, -0.10439667, 0.09480786, -0.14620537, -0.12444) * go_5(0.0, 0.0); + result += mat4(-0.10271061, 0.037290677, 0.16068509, -0.0020577735, -0.26431653, 0.0316218, 0.13216278, 0.039026607, 0.114048995, -0.08055903, -0.25474527, 0.03769183, 0.11541464, -0.13846509, -0.23404308, 0.059910618) * go_5(0.0, 1.0); + result += mat4(0.03207741, -0.057938, -0.083276935, -0.08009412, 0.11193717, -0.07672049, -0.16157848, -0.11298354, -0.17304356, 0.08984146, -0.050554533, 0.15308471, -0.05547862, -0.15691018, 0.07320868, -0.042120814) * go_5(1.0, -1.0); + result += mat4(0.048134506, -0.10295267, 0.051832333, -0.13681562, 0.103027515, -0.06026332, 0.06881206, -0.015670486, 0.28807607, 0.03059088, 0.034055263, 0.017337816, 0.05512398, 0.075067505, -0.036354467, 0.06471895) * go_5(1.0, 0.0); + result += mat4(-0.085566096, 0.014341178, -0.08384431, -0.051138613, -0.13172193, -0.10944131, 0.052603673, 0.10315314, 0.13149905, -0.10674123, -0.007911778, -0.028487006, 0.13898246, -0.018405652, 0.04242993, -0.10391517) * go_5(1.0, 1.0); + result += vec4(0.06731381, -0.14791869, -0.15826754, -0.069372416); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!SAVE conv2d_5_tf2 +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.0017213221, -0.15371315, -0.092273064, -0.10798677, 0.009334791, 0.22254497, -0.097098924, 0.029816378, 4.457267e-05, -0.1057864, 0.4134007, 0.14368671, -0.004629636, 0.17854625, 0.2903048, -0.06277739) * go_0(-1.0, -1.0); + result += mat4(-0.046712447, 0.119774394, -0.117091574, 0.09618261, -0.10770648, 0.124485455, 0.075216, -0.28377417, -0.24061379, -0.09114137, 0.23112294, 0.12123567, 0.025058655, 0.093606554, 0.10327309, -0.024526346) * go_0(-1.0, 0.0); + result += mat4(0.019105028, 0.06630737, 0.032209937, 0.09685681, -0.018223759, 0.04791892, -0.008235882, -0.29300943, 0.25300565, -0.2488416, 0.08808891, 0.23057054, 0.07350692, -0.106139764, -0.063049704, -0.059718538) * go_0(-1.0, 1.0); + result += mat4(0.0455073, -0.051755026, -0.11883914, 0.20130287, -0.131154, 0.017220428, 0.12068244, 0.070289314, -0.12415149, -0.22242554, 0.08771896, 0.0035022376, 0.24336605, 0.08416074, 0.028170893, -0.03845105) * go_0(0.0, -1.0); + result += mat4(0.03242001, 0.102102384, -0.17709577, -0.0109795965, 0.08089789, -0.021498924, 0.06255124, -0.042419348, 0.108601704, -0.05202687, -0.12712812, -0.17035247, 0.17001751, -0.045719698, 0.09703396, 0.037530866) * go_0(0.0, 0.0); + result += mat4(-0.09127368, 0.18729141, 0.11323561, 0.12806842, -0.058737166, 0.1974935, -0.1213344, 0.26005578, -0.041523788, -0.0029840702, 0.14748086, -0.10480214, -0.06823255, 0.045274846, 0.078861825, 0.088076524) * go_0(0.0, 1.0); + result += mat4(-0.10629749, -0.023263903, -0.082174115, -0.121970475, 0.21234329, 0.0262291, 0.1745219, 0.07722097, -0.12979622, -0.046668485, -0.0027060192, -0.07948489, -0.1455228, -0.1722979, -0.11220583, -0.15050055) * go_0(1.0, -1.0); + result += mat4(0.04207767, -0.08237373, 0.07580429, -0.02124768, 0.12718296, 0.053528596, -0.09762217, -0.0045613465, -0.04504155, 0.18147692, -0.13206507, 0.118414916, 0.03825585, -0.23475614, -0.06268228, 0.086768724) * go_0(1.0, 0.0); + result += mat4(0.034695115, 0.07061876, 0.04965704, 0.17847943, -0.1437011, 0.15886799, -0.201469, -0.063395016, -0.1750345, 0.11911144, -0.188721, 0.08700757, 0.14036323, -0.08573763, 0.10530263, -0.07726266) * go_0(1.0, 1.0); + result += mat4(0.21503586, -0.18479058, 0.0074815084, 0.09756983, 0.037916277, -0.17987613, 0.11589862, -0.028243838, -0.20950282, 0.026752079, 0.10840585, 0.15400405, 0.08625402, -0.07633785, 0.0017439253, -0.072862245) * go_1(-1.0, -1.0); + result += mat4(0.008905137, 0.106612414, -0.07793345, 0.15220572, -0.0028391609, -0.10614796, -0.17509677, 0.09583197, 0.18518968, 0.005445739, 0.12949161, 0.07129458, 0.06554234, -0.1308029, -0.029664468, 0.010993508) * go_1(-1.0, 0.0); + result += mat4(-0.054151967, -0.21677336, 0.17064962, 0.06138102, -0.06272079, -0.11186543, -0.02262431, 0.27793702, 0.019080682, 0.121934734, -0.08267019, -0.08607981, 0.10281368, -0.015739575, 0.07353178, 0.10465199) * go_1(-1.0, 1.0); + result += mat4(0.11974522, 0.044251468, -0.15450975, -0.075565055, -0.04790616, -0.031326365, 0.27381012, -0.094721034, -0.11900706, -0.06368458, 0.10776822, 0.18564561, 0.089738145, -0.0016327037, 0.18722743, 0.09222095) * go_1(0.0, -1.0); + result += mat4(-0.02468192, -0.16873443, -0.02480979, -0.13937175, -0.13027008, 0.15577625, -0.01477261, 0.07563496, -0.00062903174, 0.071869016, 0.17108877, 0.00066113746, -0.29290298, 0.07078572, -0.054790854, 0.09035019) * go_1(0.0, 0.0); + result += mat4(0.066045515, -0.11800159, -0.0750722, -0.08316888, -0.08140103, -0.107804835, 0.1621138, 0.16997898, -0.04444603, 0.28161287, -0.28550264, -0.17914039, -0.15597315, 0.15387748, -0.047001313, -0.042532828) * go_1(0.0, 1.0); + result += mat4(0.025888437, 0.13297214, -0.07546064, -0.06647902, 0.017062671, -0.2597112, 0.13725336, 0.10858415, -0.1160102, 0.13422437, 0.1592752, 0.15240288, 0.03929169, 0.2020017, 0.07010354, 0.028547695) * go_1(1.0, -1.0); + result += mat4(-0.0703738, 0.13582481, -0.036476467, -0.096972756, -0.12283295, 0.13071987, -0.056827262, -0.023500688, -0.0075902776, 0.06296815, -0.049109932, 0.16880427, 0.29702982, -0.01992682, 0.013997502, -0.070870094) * go_1(1.0, 0.0); + result += mat4(0.108744465, -0.09422798, 0.13146311, -0.250233, 0.016463336, -0.12794453, 0.03931633, 0.17450981, 0.11661872, 0.12163951, -0.1192709, -0.05398837, -0.24910302, 0.19006594, -0.1857664, -0.1205357) * go_1(1.0, 1.0); + result += mat4(-0.054634392, 0.052315067, 0.05044536, -0.05177968, 0.21537638, -0.014019764, -0.06632539, 0.030889641, -0.18629341, -0.04575244, -0.07509494, 0.09061459, -0.0686147, -0.1872925, -0.08178069, -0.17149752) * go_2(-1.0, -1.0); + result += mat4(-0.08697341, 0.15311632, 0.06298225, -0.17094718, -0.0854164, 0.037885193, -0.048915166, -0.010449174, 0.030081013, -0.02462675, -0.105993316, -0.100794375, -0.05364704, -0.120219246, 0.16426747, -0.016683623) * go_2(-1.0, 0.0); + result += mat4(0.1442815, -0.2285766, 0.14395493, -0.01616554, -0.054909255, -0.06734717, 0.044498604, -0.07669548, 0.06888753, 0.2329823, -0.2728349, -0.06917594, 0.049095903, 0.0144689595, -0.08170211, -0.21154584) * go_2(-1.0, 1.0); + result += mat4(-0.0032911033, -0.30628094, 0.01655303, -0.12639484, -0.043794096, 0.12097294, 0.10301277, 0.0323829, -0.20977376, -0.2598986, -0.032757662, 0.062723145, 0.065447785, -0.10534467, -0.061504886, -0.25371954) * go_2(0.0, -1.0); + result += mat4(-0.062172186, -0.12031234, -0.05312447, -0.07274714, -0.044065587, 0.060389437, -0.011823414, 0.08889303, 0.010290733, -0.056499645, -0.012554047, 0.13659821, 0.062492277, -0.1463726, -0.30616954, -0.048617195) * go_2(0.0, 0.0); + result += mat4(-0.05244876, 0.056097146, -0.06787384, 0.09076766, -0.09579352, -0.0066260016, 0.15201993, 0.03254239, 0.021516487, 0.15981875, -0.1432654, 0.17569521, 0.12658277, -0.1530729, -0.14634636, -0.00258191) * go_2(0.0, 1.0); + result += mat4(0.19284594, -0.24125227, -0.06610495, -0.22473419, 0.19109339, 0.20509472, 0.022192668, 0.13134679, -0.16711204, 0.03866372, 0.040778622, 0.004792002, 0.06713585, -0.11313002, -0.0494123, 0.16455573) * go_2(1.0, -1.0); + result += mat4(0.08695826, 0.03544317, -0.22323117, 0.10693563, -0.060470764, 0.14525974, -0.12502834, -0.10161133, -0.29323998, -0.14850102, 0.0802706, 0.14540558, 0.07584563, -0.105335936, -0.10063164, -0.16825674) * go_2(1.0, 0.0); + result += mat4(-0.09106831, -0.054964047, -0.0060697296, 0.1795092, -0.031979155, -0.17847598, 0.02053048, -0.09066955, -0.27984852, 0.11892948, 0.24315885, 0.18758732, 0.16902542, -0.21777025, -0.012130184, -0.060705084) * go_2(1.0, 1.0); + result += mat4(0.059577208, 0.060833983, 0.10868721, 0.11276571, -0.2327309, -0.11088089, 0.20807125, -0.021718912, 0.030323144, -0.10312503, -0.22234069, 0.16634466, 0.19398251, -0.0545838, -0.13059108, 0.017868554) * go_3(-1.0, -1.0); + result += mat4(-0.07514213, 0.10887309, 0.1218314, -0.18563306, -0.008527813, -0.20459747, -0.030698426, 0.0844588, 0.23686919, 0.03104538, 0.08527714, -0.09642553, -0.08534072, 0.06419827, -0.12806654, -0.11365306) * go_3(-1.0, 0.0); + result += mat4(-0.039864887, -0.25141066, 0.13011548, -0.13584746, -0.013512096, -0.17277367, 0.08957357, 0.24380256, -0.033397153, -0.012431397, 0.082527, 0.020838374, 0.016154792, -0.29341805, -0.015195005, 0.022471353) * go_3(-1.0, 1.0); + result += mat4(-0.11212281, 0.08150235, 0.0055854055, -0.28806004, -0.09078987, -0.05241604, -0.09806806, -0.2560824, 0.043018572, 0.013310293, -0.018843893, 0.049140453, 0.17483246, 0.12305487, -0.096557006, 0.0123909665) * go_3(0.0, -1.0); + result += mat4(0.09532439, 0.15352365, 0.20087242, 0.08491758, -0.24605502, 0.16663635, -0.13709177, -0.12777333, 0.02181133, 0.036698326, -0.003161005, 0.05891433, -0.055862445, 0.29106724, -0.17064662, -0.14393678) * go_3(0.0, 0.0); + result += mat4(0.0058135563, -0.22420937, 0.07235329, -0.124738544, 0.08238468, -0.2015809, -0.03386368, -0.17470017, 0.057452828, -0.06164105, -0.13776, -0.09869882, -0.0026272335, -0.20054811, 0.019651942, -0.2600821) * go_3(0.0, 1.0); + result += mat4(-0.17325936, -0.05762174, -0.06450132, 0.050736707, 0.045916766, 0.00402603, -0.08697255, 0.12957326, -0.17539512, 0.087370165, -0.004544662, -0.073203914, -0.010898469, 0.12600337, -0.012520381, 0.034228735) * go_3(1.0, -1.0); + result += mat4(-0.10941816, 0.0907973, -0.0004870752, -0.0067486484, -0.0726075, 0.2144327, -0.055393726, -0.023118004, -0.14722143, -0.15563087, -0.06595914, -0.048578046, -0.030177968, 0.20142747, 0.01779709, 0.01655237) * go_3(1.0, 0.0); + result += mat4(-0.08580983, -0.026037404, -0.077059925, -0.087288134, 0.004400565, -0.011133582, 0.17784919, 0.23502137, 0.047681976, -0.11357638, -0.0896771, 0.0067448434, -0.10454412, 0.17173828, 0.02538007, 0.012261617) * go_3(1.0, 1.0); + result += mat4(-0.1899917, 0.035758197, 0.09290593, -0.321715, 0.0062465663, 0.0014386866, 0.016894078, -0.115979955, -0.0027755008, 0.06348923, 0.03340955, -0.24005453, 0.049253695, -0.038937677, 0.11952727, 0.0399283) * go_4(-1.0, -1.0); + result += mat4(-0.0768814, -0.070920505, 0.32928568, -0.09117129, -0.030737674, -0.10276032, 0.008501685, -0.092094645, -0.119966194, 0.08019844, 0.06642611, -0.061083883, 0.11307649, -0.031231074, -0.032001212, 0.13963008) * go_4(-1.0, 0.0); + result += mat4(-0.07274599, 0.0010301028, 0.045785096, -0.010552021, -0.13573211, 0.271882, -0.22248295, -0.28493458, 0.024056, 0.14095017, 0.065386854, 0.06830046, 0.039510656, -0.09839122, 0.20431511, 0.09510801) * go_4(-1.0, 1.0); + result += mat4(0.015967855, -0.18058023, 0.18704537, 0.18511131, 0.08232382, 0.0142269125, -0.045059025, 0.09668988, 0.062527284, 0.15584159, -0.19181041, -0.09103482, 0.07462716, 0.08690921, -0.006602257, -0.048261993) * go_4(0.0, -1.0); + result += mat4(0.06590294, 0.03255081, 0.27418908, 0.12957683, -0.056972653, -0.13130698, 0.116743594, -0.021665238, -0.049696703, 0.1355714, -0.034948308, 0.013496893, 0.08264742, -0.040836275, 0.066302836, -0.008282482) * go_4(0.0, 0.0); + result += mat4(-0.031672716, 0.062036, 0.0670039, 0.118378155, 0.16932462, 0.19176582, -0.14296779, -0.07521962, 0.08186631, 0.13872068, 0.2050204, 0.23874411, -0.05187021, -0.14518432, 0.17769787, 0.13543007) * go_4(0.0, 1.0); + result += mat4(0.23216663, -0.07822891, 0.19363302, 0.14644198, 0.23314826, 0.16843605, 0.14231025, 0.39938375, 0.012976297, 0.04872197, -0.056092817, -0.06786196, -0.13020758, -0.16039686, -0.08942605, 0.06917485) * go_4(1.0, -1.0); + result += mat4(0.13809198, -0.07787285, -0.0032761474, 0.08901838, 0.06670918, 0.23262213, 0.19812497, -0.29459605, -0.16106832, -0.089955695, 0.018862866, 0.027937569, -0.068481594, 0.0515106, 0.0076716254, -0.020717952) * go_4(1.0, 0.0); + result += mat4(0.15160611, -0.056448795, -0.01282516, -0.060768176, -0.13858989, 0.070536785, -0.036451727, -0.007100553, -0.06416002, 0.1640014, -0.012680492, 0.089894645, 0.089873075, -0.12290447, 0.07415422, 0.051840447) * go_4(1.0, 1.0); + result += mat4(0.049169756, 0.012065099, 0.044702023, 0.41471246, -0.22039439, 0.26710343, 0.03259032, -0.0010071819, 0.122387365, 0.016845915, -0.04162581, 0.16303158, -0.018624788, -0.018498175, 0.119111605, 0.066239804) * go_5(-1.0, -1.0); + result += mat4(0.1304685, -0.015543399, 0.09727904, 0.025493689, 0.11235736, -0.024798019, 0.24016461, 0.05678371, 0.29092878, 0.008495527, -0.08145035, 0.1277052, 0.09728953, -0.064336315, 0.018896975, -0.0052928496) * go_5(-1.0, 0.0); + result += mat4(-0.22020516, 0.17298244, 0.08216116, 0.13081113, -0.058733664, 0.14459507, 0.1042437, 0.10113822, -0.012354008, 0.21633418, 0.059657548, 0.14173268, 0.026709042, -0.10159428, 0.14287837, 0.16256075) * go_5(-1.0, 1.0); + result += mat4(-0.03602925, 0.19763114, 0.14659521, 0.079257175, -0.048765395, -0.04763924, -0.023928326, -0.07900388, 0.13704984, 0.08109074, -0.017959716, 0.0065745655, -0.052421648, -0.03608805, 0.06062624, 0.11137132) * go_5(0.0, -1.0); + result += mat4(0.10591948, 0.0052649123, 0.18899056, 0.0075388527, 0.035225954, -0.062119495, 0.022104654, -0.10452858, 0.03833499, 0.26919907, -0.078174464, 0.0016594962, 0.09164568, -0.05362235, 0.047250915, -0.031277195) * go_5(0.0, 0.0); + result += mat4(0.0244364, -0.06794058, -0.021393122, -0.053156774, 0.15241314, -0.09962311, -0.03456499, -0.016867915, 0.1597494, -0.12681212, -0.010430228, 0.00086353114, 0.027244834, 0.08854933, 0.1284529, -0.05862663) * go_5(0.0, 1.0); + result += mat4(-0.12345045, -0.044616744, -0.04131162, 0.13541003, -0.047810026, -0.12005011, 0.010486988, -0.021923149, 0.11812008, 0.17721419, -0.032736443, -0.15231252, -0.13128845, 0.07795993, 0.047232933, -0.07249807) * go_5(1.0, -1.0); + result += mat4(0.08612666, 0.02928595, 0.24572, 0.1079535, 0.06905186, -0.040503707, 0.08792316, 0.13987797, 0.14096849, -0.026072232, -0.024833977, -0.031660788, -0.07927557, 0.03298344, -0.08978443, 0.112841055) * go_5(1.0, 0.0); + result += mat4(0.15270372, 0.07552049, 0.09564199, -0.13284975, 0.003842602, -0.029099604, 0.0003256477, -0.09769279, 0.12788263, -0.10107807, 0.10767, 0.23706906, -0.059877742, 0.09791839, 0.04538287, 0.16307582) * go_5(1.0, 1.0); + result += vec4(0.07341823, -0.019611815, -0.09007808, -0.022756629); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!SAVE conv2d_6_tf +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.053204395, 0.2134829, 0.12336964, -0.10227736, 0.13940702, -0.124413736, 0.3020443, -0.2065515, -0.004734049, 0.037971064, -0.17321284, 0.041885074, 0.077058956, 0.12063891, -0.010338445, 0.06337065) * go_0(-1.0, -1.0); + result += mat4(0.12816934, 0.14948028, -0.09161687, 0.009573578, 0.22003245, 0.044031654, 0.090882175, -0.14265673, 0.06734865, 0.05421324, 0.11106335, -0.020738617, 0.02484326, -0.059336618, -0.009157065, 0.0821956) * go_0(-1.0, 0.0); + result += mat4(-0.02057381, -0.053952582, -0.05662845, 0.043356568, 0.2431925, -0.117109254, -0.03546069, 0.32747653, -0.0656724, -0.10274332, -0.026182862, 0.16777003, -0.038789105, -0.011600223, -0.06111373, -0.045530178) * go_0(-1.0, 1.0); + result += mat4(-0.11627616, -0.2680533, 0.010153158, 0.04263144, -0.046353284, -0.05806104, 0.08532106, 0.02319678, -0.12570818, 0.0359389, 0.020782439, 0.10452313, 0.06330789, -0.0086953, -0.03920925, 0.06789389) * go_0(0.0, -1.0); + result += mat4(-0.08820413, -0.13917038, -0.049961973, 0.10507677, 0.25912637, 0.048801307, 0.13123387, 0.055866715, -0.055367444, 0.1428978, -0.040858068, 0.20058946, 0.0673469, -0.17162299, 0.15529002, 0.41366217) * go_0(0.0, 0.0); + result += mat4(-0.081712715, 0.04338456, -0.0368015, -0.0018422191, 0.16511263, -0.21779254, 0.065223925, 0.4804269, 0.26078546, -0.038037203, -0.2898542, 0.2068737, 0.101655796, -0.12456843, -0.11357212, -0.005879897) * go_0(0.0, 1.0); + result += mat4(-0.074044555, 0.07722422, 0.062057327, -0.039013617, 0.12760206, -0.18111233, -0.01114239, 0.1514668, -0.008963988, 0.23631106, 0.18362597, 0.14166053, -0.046458114, 0.16774492, 0.17774823, -0.008998563) * go_0(1.0, -1.0); + result += mat4(0.09820194, -0.054974817, -0.015640004, -0.037923157, 0.22821093, -0.03986652, -0.0074655996, 0.04587354, 0.05650628, 0.112482674, 0.023865355, 0.24882393, -0.011221855, 0.13942584, 0.003652544, -0.06288897) * go_0(1.0, 0.0); + result += mat4(-0.31229278, -0.10419711, -0.004614452, -0.032103445, -0.00018427879, 0.027711036, 0.028399462, 0.082576215, -0.056645207, 0.038272534, -0.011554511, 0.33454514, -0.21628743, 0.11849716, -0.23067485, -0.087079175) * go_0(1.0, 1.0); + result += mat4(-0.14960206, 0.29916358, -0.36191732, -0.096665345, -0.08732554, -0.10081626, 0.10593716, -0.0143145975, 0.12768494, 0.3251397, 0.23868982, -0.08632128, -0.07138096, -0.029475177, 0.07199368, -0.0016260111) * go_1(-1.0, -1.0); + result += mat4(0.17022541, 0.19862384, 0.0029171365, 0.07225595, 0.08387519, -0.051419877, 0.16522466, -0.04951881, 0.07093068, 0.34544435, 0.08639415, -0.0077871718, 0.07875624, -0.10820802, 0.015711969, 0.1371948) * go_1(-1.0, 0.0); + result += mat4(0.11947513, 0.03204784, -0.22552966, 0.05517582, 0.13209006, -0.06262761, 0.0719108, -0.083935544, -0.17171475, 0.07105399, 0.013485666, -0.13865131, -0.20124301, -0.10171288, -0.17265166, -0.1650513) * go_1(-1.0, 1.0); + result += mat4(-0.038657106, -0.11968214, -0.04953467, 0.03988426, 0.18497725, 0.00012608049, -0.014361117, 0.016538745, 0.053768195, 0.21468902, 0.22507563, 0.13274029, 0.09316226, 0.10554355, 0.13079438, -0.020738615) * go_1(0.0, -1.0); + result += mat4(0.3934315, -0.14415179, 0.022628346, 0.067308314, 0.06434691, -0.09336087, -0.067665786, 0.05017148, -0.06534398, -0.048088152, -0.037155427, 0.1489594, -0.054163337, 0.2329102, -0.105613016, 0.0012456856) * go_1(0.0, 0.0); + result += mat4(0.24050267, -0.0067265374, -0.0153115215, 0.06555275, 0.19129738, 0.0043795216, 0.063948326, -0.13967972, -0.40650475, 0.09109113, 0.07856194, -0.13390535, -0.08199262, 0.17485364, -0.090266995, -0.012882164) * go_1(0.0, 1.0); + result += mat4(-0.387764, -0.15284535, -0.269682, 0.063642666, 0.08651869, -0.23153405, -0.10131002, 0.0043905224, 0.220928, 0.17752749, -0.01569877, -0.0686579, 0.21019012, 0.20529252, 0.06952716, -0.058749653) * go_1(1.0, -1.0); + result += mat4(-0.293644, 0.036391325, -0.07392813, -0.086678274, 0.2078697, -0.11507264, 0.028548734, -0.16409987, 0.17409426, 0.1885014, 0.084329076, -0.15027794, 0.20641033, 0.06187141, -0.03875406, 0.0032009226) * go_1(1.0, 0.0); + result += mat4(0.10790136, 0.1387389, -0.1781791, 0.21425287, 0.12715636, -0.063490026, 0.09555745, -0.10528784, 0.12758408, 0.29311177, 0.0432301, -0.021469813, 0.021922017, 0.082767464, 0.15348153, 0.12735313) * go_1(1.0, 1.0); + result += mat4(0.0062385295, 0.11732651, 0.06049321, -0.07607647, 0.17820913, 0.06216857, 0.05036523, 0.008527562, -0.05745378, 0.065337434, -0.04389796, 0.032172143, -0.08650831, -0.13604137, 0.050570212, 0.011036989) * go_2(-1.0, -1.0); + result += mat4(0.016900355, 0.14422971, -0.106490955, -0.052399695, 0.13446756, 0.07712888, 0.0058913217, 0.07991085, 0.038670607, -0.25514704, 0.12148176, 0.17061579, 0.11421595, 0.022622943, 0.058726758, -0.17090438) * go_2(-1.0, 0.0); + result += mat4(0.055515286, -0.19921277, -0.0012379233, 0.064982586, 0.26003027, -0.026233593, 0.07716586, -0.025661616, -0.11324887, -0.0035626758, 0.017872687, -0.10889948, -0.09775516, 0.07376668, -0.07696171, -0.2438295) * go_2(-1.0, 1.0); + result += mat4(0.032405633, -0.05084789, -0.088054694, -0.10841894, -0.0075752116, 0.13531004, -0.1457409, 0.13204673, 0.0792082, 0.12976237, -0.07244278, -0.11369213, 0.06102383, -0.23130623, 0.0485402, 0.06685668) * go_2(0.0, -1.0); + result += mat4(-0.13683872, -0.053872824, -0.06719165, -0.070855714, 0.019770421, 0.18132222, 0.027324507, -0.04910738, 0.17011392, 0.057926424, 0.0857354, -0.14427422, -0.066373795, 0.09973484, 0.02194641, 0.17209244) * go_2(0.0, 0.0); + result += mat4(-0.07172457, -0.09989123, 0.06346084, 0.007205204, -0.18027657, 0.007516025, -0.0042022206, -0.0091036465, 0.18030393, -0.009558301, 0.12717903, -0.02116024, 0.14172006, 0.012544988, -0.16633627, 0.13234323) * go_2(0.0, 1.0); + result += mat4(-0.026680972, 0.26901576, -0.053663265, 0.0021016174, 0.032445803, 0.037003934, 0.05414299, -0.035497934, -0.10569329, 0.050672166, -0.01144387, 0.05000742, -0.057444472, 0.0010797186, 0.018822541, -0.04636653) * go_2(1.0, -1.0); + result += mat4(0.135361, -0.058395687, -0.033542126, 0.09484118, -0.07793999, 0.013546507, 0.11820586, 0.14490362, -0.016325314, -0.0062904614, 0.12631275, 0.1394393, -0.049356613, -0.02528993, 0.26334915, -0.032557055) * go_2(1.0, 0.0); + result += mat4(0.077839315, -0.052373778, 0.036136296, -0.05023568, -0.07987715, 0.018897712, -0.17742547, 0.18015353, 0.2571155, 0.058656774, 0.013118142, 0.12145675, 0.14177194, 0.099529505, -0.028370513, 0.25136563) * go_2(1.0, 1.0); + result += mat4(0.0747753, -0.15949982, 0.076973855, 0.080785476, 0.25431648, -0.120426156, 0.059631538, 0.13541599, -0.006538664, 0.06348775, -0.15413675, -0.011688718, -0.0877202, -0.07138076, -0.20553613, 0.17151853) * go_3(-1.0, -1.0); + result += mat4(-0.24562076, -0.31801596, 0.2534939, -0.054888077, 0.23713852, -0.23484352, 0.015403321, 0.28927258, 0.02333135, 0.115237035, 0.051989716, -0.0774211, -0.17619006, -0.042421665, -0.17778155, -0.16379887) * go_3(-1.0, 0.0); + result += mat4(-0.15642986, -0.0426825, 0.075349115, -0.13867629, 0.112977736, 0.06540842, 0.0059138774, 0.090976134, 0.102575876, -0.07702354, -0.060852207, -0.07358783, -0.030642396, -0.12437998, 0.19073227, -0.008556629) * go_3(-1.0, 1.0); + result += mat4(-0.009600349, 0.19660307, 0.06310739, -0.091261774, 0.1383758, -0.10920792, 0.01987075, 0.10960847, -0.03973851, -0.05378361, -0.053934645, -0.062070217, 0.017768001, -0.109798394, -0.27830756, 0.14825441) * go_3(0.0, -1.0); + result += mat4(0.2253333, 0.04887524, 0.007540527, -0.21392706, 0.28378952, -0.22518088, -0.09280502, 0.25905597, 0.1558124, -0.06532809, -0.052613363, -0.038770456, -0.09479437, 0.39384437, 0.09516288, -0.29169223) * go_3(0.0, 0.0); + result += mat4(0.023066722, -0.20169239, 0.025786614, 0.12992494, -0.0011414116, -0.0023400988, 0.13305776, -0.017615285, -0.06834794, -0.06084079, -0.10924924, 0.039389268, -0.0040167933, 0.049587116, 0.07590412, 0.31464538) * go_3(0.0, 1.0); + result += mat4(-0.1917511, -0.008846332, 0.0914183, -0.06694468, 0.054535903, 0.19732447, 0.17194839, 0.12368525, -0.11447456, -0.10244315, -0.082908966, -0.103707045, 0.06248975, -0.14130668, -0.068753496, 0.23984621) * go_3(1.0, -1.0); + result += mat4(-0.10043509, 0.036193024, 0.017117409, 0.15630378, 0.29531795, -0.20785378, -0.17022829, 0.010861576, -0.052274987, -0.050172083, -0.09687743, 0.025382213, 0.1061047, -0.019923043, 0.1905993, 0.31907213) * go_3(1.0, 0.0); + result += mat4(-0.023860455, 0.013424604, -0.055340413, -0.006086705, 0.26867437, -0.18745743, 0.11919189, 0.05196282, -0.09836886, -0.10949307, -0.064731866, -0.14198364, 0.46431017, -0.14794265, 0.025133874, 0.38547024) * go_3(1.0, 1.0); + result += mat4(0.06934901, -0.20738873, 0.14471452, 0.03087651, 0.18033424, 0.16282603, -0.050284263, -0.041595727, -0.11747435, -0.04275445, -0.20998137, -0.056565028, -0.050009515, 0.13573733, -0.08438032, -0.07363902) * go_4(-1.0, -1.0); + result += mat4(-0.1109324, -0.08281566, 0.080020756, -0.07565862, 0.16276588, 0.13186535, 0.17810473, 0.051175643, -0.1470848, -0.08119655, 0.22341052, -0.14562707, -0.22091609, 0.08912351, 0.062519215, -0.17822169) * go_4(-1.0, 0.0); + result += mat4(-0.02652961, -0.050731696, 0.06761707, -0.070221156, 0.11255305, 0.15729706, 0.18315557, -0.0030489026, 0.08721225, -0.04417, -0.044907395, -0.0631245, -0.010991895, 0.14397791, -0.016412318, -0.016923137) * go_4(-1.0, 1.0); + result += mat4(-0.12462993, 0.14335859, 0.08130342, -0.16543365, 0.010432147, 0.019978197, -0.017498186, 0.03631899, 0.057306956, -0.06078837, -0.015008236, -0.24389061, -0.10250533, 0.31660014, 0.33440468, -0.12124798) * go_4(0.0, -1.0); + result += mat4(-0.27909592, 0.21149877, 0.050259847, -0.24782999, 0.07350583, -0.03168507, -0.0206597, 0.07860909, -0.07629377, 0.1713701, 0.24176298, -0.25509474, 0.002090829, 0.051905315, 0.25929084, -0.09076089) * go_4(0.0, 0.0); + result += mat4(-0.13923247, -0.083095506, -0.12958083, 0.008588576, 0.068224825, 0.094012275, 0.1395537, 0.0690222, 0.13958463, -0.02742012, 0.13905828, -0.04970139, -0.0629641, -0.15277445, 0.016491361, -0.13742869) * go_4(0.0, 1.0); + result += mat4(-0.0027394858, -0.07178526, 0.07668042, -0.16290356, 0.10704169, 0.27434343, -0.003009555, -0.0124241095, 0.031501733, -0.10345558, -0.12258338, -0.055458266, 0.08220533, 0.16282788, 0.22585614, -0.04099274) * go_4(1.0, -1.0); + result += mat4(-0.18252786, 0.032287426, 0.03831364, 0.03279567, -0.015436468, 0.16594371, -0.022859711, 0.014286839, -0.020073507, -0.06752274, 0.04850366, -0.03098202, 0.055985507, 0.030877378, -0.12457596, 0.012876079) * go_4(1.0, 0.0); + result += mat4(-0.2959125, 0.12508816, -0.05321822, -0.1051829, 0.16586393, 0.07608049, -0.042397983, -0.0069031697, 0.13237686, -0.07125681, 0.021239927, 0.17826323, -0.14433292, 0.013577087, -0.14554563, -0.2040924) * go_4(1.0, 1.0); + result += mat4(0.33643177, -0.09343892, 0.05079197, -0.008774256, -0.002809458, -0.07406135, -0.33292174, 0.026698712, 0.3655136, 0.07260544, 0.3903461, -0.025114482, 0.038028333, 0.104210675, -0.4062275, -0.078964405) * go_5(-1.0, -1.0); + result += mat4(0.19767492, -0.1537188, 0.049587816, 0.23333088, -0.3893781, -0.011501175, -0.1826917, -0.12794746, -0.06709039, 0.015785962, -0.18090555, -0.11386157, -0.12038564, 0.011559484, -0.12779875, -0.14214684) * go_5(-1.0, 0.0); + result += mat4(-0.15774208, 0.24946158, -0.040942013, -0.1251321, -0.3509982, 0.07450445, -0.14480934, -0.20172012, -0.11019966, -0.07905495, -0.1572328, 0.12654895, 0.119401105, -0.12334677, 0.10720092, -0.06545273) * go_5(-1.0, 1.0); + result += mat4(-0.037104636, 0.33563337, 0.20923309, 0.028749982, 0.13854796, -0.13161437, 0.038462456, -0.14479184, 0.15403077, -0.04880203, 0.13780783, 0.06471987, 0.2944117, 0.13432993, -0.31482598, -0.06599348) * go_5(0.0, -1.0); + result += mat4(0.54742974, 0.121937156, -0.07866791, 0.07451098, -0.03663172, -0.1554786, 0.059384037, -0.004000904, -0.04610048, -0.10617931, -0.18522029, 0.03238723, -0.085027255, -0.07754074, 0.22321595, -0.22000736) * go_5(0.0, 0.0); + result += mat4(0.34576082, 0.054670934, -0.006112889, 0.08788217, -0.11128527, 0.016721481, 0.0025457302, 0.10134559, -0.08420967, 0.077211045, 0.04456844, 0.15408081, 0.08043456, -0.03195054, 0.068368874, -0.0011692513) * go_5(0.0, 1.0); + result += mat4(-0.109538294, 0.035212234, -0.068712965, -0.09868468, -0.12186257, 0.122597136, -0.06546314, -0.024811305, -0.018210687, 0.09266877, -0.091002055, -0.05117649, 0.076985, 0.08579534, -0.14370322, -0.08178749) * go_5(1.0, -1.0); + result += mat4(-0.21291538, 0.03441726, -0.01899837, -0.15328759, -0.17070505, 0.151839, 0.15083382, -0.08944362, -0.3224203, 0.012464086, 0.08693216, 0.014108278, -0.13456593, 0.008793197, 0.14650744, -0.04115599) * go_5(1.0, 0.0); + result += mat4(0.12686576, 0.033990897, -0.0039116694, -0.12522134, 0.066877596, 0.09016868, -0.05867825, 0.08331187, -0.018720012, 0.10592668, 0.050558716, 0.35772276, -0.09896201, 0.057353813, -0.106769, 0.028894106) * go_5(1.0, 1.0); + result += vec4(-0.124429956, -0.023968874, -0.009741961, 0.000734556); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!SAVE conv2d_6_tf1 +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.056590553, 0.03216381, -0.0666051, 0.19334152, -0.0050108447, -0.22589503, -0.057469424, -0.09344944, -0.1051364, -0.25752833, -0.035817955, -0.29675537, -0.1419535, -0.11206299, -0.005250591, -0.02839156) * go_0(-1.0, -1.0); + result += mat4(-0.113020144, 0.028738707, 0.052538726, -0.039978653, 0.052219037, 0.057554238, 0.104583465, -0.03326389, 0.12732053, -0.09863676, -0.19774933, 0.10953924, 0.052640375, -0.2623868, -0.055126745, -0.12773202) * go_0(-1.0, 0.0); + result += mat4(-0.17464705, -0.082161404, -0.18110912, 0.07796715, 0.04916518, 0.11231854, -0.086312726, -0.034675486, -0.19010356, 0.032855187, -0.013579661, 0.37123898, -0.014220876, -0.006728799, 0.08287457, -0.1138056) * go_0(-1.0, 1.0); + result += mat4(0.13857616, -0.09273926, 0.13864596, 0.18886924, -0.011879785, 0.32183805, -0.051207457, 0.037754197, -0.09221778, -0.02035246, -0.17649348, 0.020960717, -0.07177013, 0.09179843, 0.080085315, 0.122304566) * go_0(0.0, -1.0); + result += mat4(-0.16989891, -0.08335691, 0.084998704, 0.11291987, -0.3019433, 0.0076751867, 0.093596675, 0.06530408, 0.1206327, 0.091008104, 0.109547265, 0.25353962, 0.036133915, 0.093532056, 0.061501086, 0.0021566728) * go_0(0.0, 0.0); + result += mat4(-0.017881159, -0.13595797, 0.01136082, 0.16003034, 0.10847896, 0.19483434, 0.26643255, -0.13653097, -0.02909977, 0.0048497478, -0.07825304, 0.19495782, 0.051259015, 0.06378301, -0.25297102, 0.12415515) * go_0(0.0, 1.0); + result += mat4(0.1937498, -0.054339543, 0.010112153, 0.1686902, -0.010859902, 0.017609913, 0.13538137, 0.21478494, -0.15561095, 0.03826493, 0.030638125, 0.15134248, 0.02018713, 0.09653892, 0.012655936, 0.12929274) * go_0(1.0, -1.0); + result += mat4(0.10884013, -0.059027947, 0.09222052, 0.08509775, -0.23504566, 0.10800187, 0.35871732, -0.27244377, 0.1780951, -0.09118458, -0.08485235, 0.18791482, 0.12209446, 0.0061277915, -0.011919617, -0.258573) * go_0(1.0, 0.0); + result += mat4(0.08261666, -0.107749484, -0.15589459, 0.23786806, -0.25947818, -0.07595851, 0.19160344, -0.024088206, -0.008799499, -0.17963524, -0.25323853, -0.026271267, 0.108688876, -0.21407057, -0.3583868, 0.09666366) * go_0(1.0, 1.0); + result += mat4(0.13808286, -0.04138869, -0.16940956, 0.3419983, 0.055550236, -0.020949477, -0.0067749163, -0.19835842, 0.030675124, 0.075373225, 0.12566806, -0.04334421, -0.102529705, 0.04508018, 0.23232533, 0.0019694006) * go_1(-1.0, -1.0); + result += mat4(0.15215543, -0.016466457, -0.088040456, 0.17388342, 0.04182113, 0.18802759, 0.064585775, -0.14804406, -0.24339275, 0.17330259, 0.027834702, 0.058299657, -0.031298336, 0.31788856, 0.07080272, 0.24237408) * go_1(-1.0, 0.0); + result += mat4(0.16990338, 0.3701443, 0.12791218, 0.14076602, 0.20176111, 0.0302564, 0.24510148, -0.13427663, -0.38024938, 0.12371078, -0.01582557, -0.3158842, 0.20104642, 0.07178823, -0.1876278, 0.084532306) * go_1(-1.0, 1.0); + result += mat4(0.14377905, -0.058295894, 0.18250984, -0.09202952, 0.049288724, 0.06361697, 0.015274134, -0.009651323, -0.042051505, -0.012071234, 0.1326135, 0.019923072, -0.15128869, 0.25043762, -0.13259046, 0.00053170364) * go_1(0.0, -1.0); + result += mat4(0.094158195, 0.12379144, 0.19022636, 0.18195347, 0.013914745, 0.061979804, 0.02451591, -0.11115476, -0.17788209, 0.13222231, -0.13186376, -0.1616039, -0.24425243, 0.1886775, 0.0112440875, -0.06601394) * go_1(0.0, 0.0); + result += mat4(-0.030136446, 0.2917132, -0.27445439, 0.17572524, 0.041303374, 0.023066396, 0.15800332, -0.2759435, -0.13819514, 0.15358543, -0.20889634, -0.015854366, -0.046221938, -0.029213084, -0.20027846, -0.096412785) * go_1(0.0, 1.0); + result += mat4(0.0125947185, 0.0055787223, -0.09309416, 0.076822944, -0.093398675, 0.2956369, 0.06577939, -0.23052916, -0.07925194, -0.072308525, 0.024827626, -0.060508657, -0.12151571, 0.026541036, -0.12048794, -0.07427358) * go_1(1.0, -1.0); + result += mat4(-0.10964251, -0.17297563, 0.13372806, 0.049176272, -0.05832845, 0.017144928, -0.048461188, -0.15870371, 0.11398971, -0.107922345, 0.13167588, -0.14817321, -0.10338058, -0.31081274, 0.08330581, -0.29687402) * go_1(1.0, 0.0); + result += mat4(0.16665904, -0.2640339, -0.29233927, 0.038875308, -0.05411785, 0.16937009, 0.12490365, -0.124583, -0.07552158, 0.11799862, -0.28171206, -0.00040758983, -0.19385974, -0.06890529, 0.14208162, -0.1088734) * go_1(1.0, 1.0); + result += mat4(0.06168567, 0.08464485, 0.051727522, 0.0080752885, -0.024248002, -0.10022553, 0.16323335, 0.023631554, -0.05933269, -0.062205136, -0.18094447, 0.059799075, 0.21466024, 0.008523474, 0.26693302, 0.23969485) * go_2(-1.0, -1.0); + result += mat4(-0.15529208, -0.011878417, -0.18483245, 0.14569621, 0.063189425, -0.19457999, -0.030479494, -0.06388341, 0.059255358, 0.021795692, -0.18915053, 0.10549042, -0.14347872, 0.035095137, 0.5123671, -0.36842114) * go_2(-1.0, 0.0); + result += mat4(-0.3129531, 0.18427932, 0.08967258, 0.030795548, -0.062971294, 0.13863337, 0.1719862, -0.12454022, -0.13502273, 0.09999501, -0.08539335, -0.009761404, 0.12899344, 0.13241018, 0.07476177, 0.088581234) * go_2(-1.0, 1.0); + result += mat4(0.060355544, -0.20497295, -0.056201037, 0.17441384, -0.07366008, 0.0031770081, 0.10340366, -0.065828614, -0.0135689005, 0.0018236408, -0.061976664, 0.2355626, 0.10771512, 0.077624, 0.13811535, -0.07868492) * go_2(0.0, -1.0); + result += mat4(-0.17156444, -0.026765984, -0.10527619, 0.03830846, 0.09402895, -0.004862654, 0.076368734, -0.14964046, 0.043011688, -0.23503943, -0.0006939608, 0.14159496, -0.044676844, 0.173952, 0.110504664, 0.0019379692) * go_2(0.0, 0.0); + result += mat4(-0.17247017, 0.08168303, 0.17221324, -0.06592961, 0.0044269604, 0.15659723, -0.055933986, -0.042620275, 0.06073025, 0.2532331, 0.10132909, -0.117701456, 0.12096025, 0.10205398, -0.18403697, 0.18307333) * go_2(0.0, 1.0); + result += mat4(0.09575911, -0.05598526, -0.00019075947, -0.09576007, 0.20932649, -0.20390967, 0.039013285, -0.0673076, 0.10174375, -0.029520035, 0.08187042, 0.0113893915, 0.2773657, -0.14660437, -0.052826468, -0.066547535) * go_2(1.0, -1.0); + result += mat4(0.073659964, 0.11016725, 0.03967363, -0.14039496, 0.14510235, -0.023440665, -0.14824589, 0.040890865, -0.17982483, -0.06410239, 0.1368475, 0.06049977, -0.04931566, 0.16838568, 0.032267325, -0.14558685) * go_2(1.0, 0.0); + result += mat4(-0.09795584, 0.042064235, -0.031120127, -0.14744717, 0.027100604, -0.24968515, -0.21389422, 0.04229415, -0.09014897, 0.12878452, 0.25642878, -0.08038266, 0.19971558, 0.11135897, -0.36821046, 0.1422662) * go_2(1.0, 1.0); + result += mat4(0.1094647, -0.016677434, -0.028883765, 0.3192714, 0.09875388, 0.063245736, 0.14410317, 0.032648303, -0.06333742, 0.27168024, 0.022700999, -0.24260196, 0.2008466, 0.0035053317, 0.033708334, 0.08848844) * go_3(-1.0, -1.0); + result += mat4(0.14528061, -0.15028432, -0.12186915, 0.2541439, 0.10196279, -0.08628881, 0.013626965, 0.0865205, -0.06720443, -0.012042523, 0.2745774, -0.15612917, 0.052762404, -0.048645414, 0.2373206, 0.15480334) * go_3(-1.0, 0.0); + result += mat4(0.30316323, 0.13258561, 0.064958744, -0.006462185, -0.18336357, -0.042762443, 0.14428605, 0.0022340214, 0.126048, 0.080833666, 0.009115843, 0.03493862, 0.10809081, -0.16448757, 0.3997175, -0.110012166) * go_3(-1.0, 1.0); + result += mat4(0.02458684, -0.057449866, 0.030437991, 0.12050426, 0.09614844, -0.014490843, 0.028539594, 0.04805738, -0.09334032, -0.025414651, -0.08732445, -0.23192073, -0.17476203, -0.09348745, -0.08307593, -0.23019521) * go_3(0.0, -1.0); + result += mat4(0.35522544, -0.079090506, 0.008817837, 0.2532623, 0.34887648, -0.06478506, -0.08268971, -0.01187354, -0.01297639, -0.1617383, -0.08950093, -0.27147245, -0.18539499, -0.025695372, 0.014795757, 0.070290186) * go_3(0.0, 0.0); + result += mat4(0.10833107, -0.04752071, 0.0257186, 0.045938533, -0.17696926, -0.044409238, 0.013435127, -0.026669621, -0.039547954, -0.24273679, -0.11717763, 0.03446355, 0.20519058, 0.14973645, -0.06620626, 0.27608195) * go_3(0.0, 1.0); + result += mat4(-0.05178539, -0.052307468, -0.031603504, 0.087410286, -0.02714207, 0.19870313, -0.07222196, 0.016593033, 0.1256676, -0.0017593893, -0.09573438, 0.06781198, -0.21133266, 0.17265096, -0.18769167, -0.44435498) * go_3(1.0, -1.0); + result += mat4(0.06497008, -0.036607113, -0.044402726, 0.2149976, 0.13416344, 0.042011082, -0.101590805, -0.020510921, -0.06912339, -0.054973233, -0.044747703, 0.14244531, -0.28504518, 0.3040643, -0.09546776, 0.31751406) * go_3(1.0, 0.0); + result += mat4(-0.084402256, 0.09284107, 0.035581376, -0.0062208944, -0.09883153, 0.10322051, 0.1348337, -0.31998435, -0.012351705, -0.1971895, 0.22683385, -0.12512599, -0.07051629, 0.2452453, 0.083472766, -0.20878734) * go_3(1.0, 1.0); + result += mat4(-0.20292963, 0.044648554, 0.15208347, -0.08012225, -0.12525047, 0.015525035, 0.09556482, -0.11069662, -0.085732915, 0.011575785, -0.025669998, -0.14913903, -0.04931291, 0.012865525, -0.12986338, -0.01954532) * go_4(-1.0, -1.0); + result += mat4(-0.008896974, -0.039155565, 0.027794836, -0.117017545, -0.06935417, -0.026629506, 0.007301185, -0.46567324, 0.037060194, 0.09720974, 0.2845551, -0.3020958, -0.025294555, -0.30916882, 0.18453851, -0.18012975) * go_4(-1.0, 0.0); + result += mat4(0.030631881, -0.008507908, -0.09436097, 0.0311627, -0.20561115, 0.11587156, 0.09280758, -0.085967906, 0.3602613, -0.044544138, 0.1323068, -0.009463272, -0.0025823591, -0.15646757, -0.046626896, 0.16452411) * go_4(-1.0, 1.0); + result += mat4(-0.0077203126, -0.100717455, -0.2011105, -0.14975028, -0.20319125, 0.10198259, -0.04371703, -0.27115488, 0.027433528, -0.09739682, -0.13802922, -0.26861516, -0.048793945, 0.06584455, 0.06585165, -0.008628782) * go_4(0.0, -1.0); + result += mat4(-0.10281875, 0.040024713, -0.2812408, -0.020755077, 0.013610964, -0.032100085, -0.019541265, 0.08268734, -0.03297649, -0.037923373, -0.18825053, 0.07058112, 0.08730599, 0.03063617, 0.02987196, -0.0043262425) * go_4(0.0, 0.0); + result += mat4(-0.040238652, -0.13039924, 0.14888343, 7.490741e-05, -0.2158812, 0.24641772, 0.006157586, -0.04499295, 0.144089, 0.07224167, 0.17486697, -0.035505384, 0.1524877, 0.14747557, 0.17406234, 0.11407642) * go_4(0.0, 1.0); + result += mat4(0.016506152, -0.010222893, 0.13286552, -0.21776699, -0.09772777, 0.1287599, -0.03898535, -0.16048339, 0.16613074, 0.07386897, 0.010006783, -0.109998874, -0.44924134, -0.10780198, 0.20899624, 0.0225183) * go_4(1.0, -1.0); + result += mat4(-0.009322647, 0.037628874, -0.07781525, 0.096469015, -0.13213164, 0.112819366, -0.009472233, -0.2799395, -0.13030471, 0.15054065, -0.06948136, -0.15108407, 0.15611546, -0.033660483, -0.015103015, -0.11582756) * go_4(1.0, 0.0); + result += mat4(-0.1565792, -0.020967469, 0.18913873, -0.16583163, -0.1238118, 0.09852521, -0.22204556, -0.03933885, -0.0059996913, 0.26517454, 0.029015608, -0.0067967405, 0.12023722, 0.020479612, -0.11405568, 0.09855018) * go_4(1.0, 1.0); + result += mat4(-0.100906074, 0.1372623, -0.06694728, 0.24972913, -0.050774068, -0.040847532, -0.2658499, -0.055020068, 0.017677482, -0.10252552, 0.093889, -0.066453, -0.11749236, 0.117650375, -0.009431862, -0.13268448) * go_5(-1.0, -1.0); + result += mat4(0.0062916246, 0.11412136, -0.04665643, -0.05716979, -0.3630308, 0.056478713, 0.13907139, -0.46697688, -0.17572168, -0.032978512, -0.25377706, 0.2386579, 0.08279535, -0.078310356, 0.14829971, -0.22042938) * go_5(-1.0, 0.0); + result += mat4(0.032816015, -0.30565384, -0.16489638, -0.16715215, 0.19837156, 0.2794504, -0.056615926, -0.15358809, -0.040108953, -0.30223787, 0.23217356, 0.0056255152, -0.018384434, 0.151488, 0.1853468, 0.08032189) * go_5(-1.0, 1.0); + result += mat4(0.0664597, -0.20910838, 0.26195124, -0.07578308, 0.13466386, -0.040509395, -0.005630214, -0.10919593, 0.09764661, -0.099661686, 0.105231985, 0.18113208, -0.13830248, -0.16406676, -0.36873665, -0.110502236) * go_5(0.0, -1.0); + result += mat4(-0.009745877, 0.050425317, 0.041368794, 0.34543577, 0.017489558, -0.1383922, 0.02555688, 0.08608152, 0.2675467, -0.14163154, -0.009072096, -0.04938327, 0.02321701, -0.23915094, -0.20346476, 0.02754088) * go_5(0.0, 0.0); + result += mat4(-0.0764608, -0.18401545, 0.18727265, -0.107619025, 0.02815041, 0.14077562, -0.05316665, 0.3057819, 0.033161953, -0.15832557, -0.13877237, 0.1657462, 0.01894343, 0.23329574, -0.14319004, 0.031079128) * go_5(0.0, 1.0); + result += mat4(-0.3142226, 0.09312817, 0.08794322, 0.2222839, -0.06945857, 0.14425695, -0.014134404, 0.005755717, 0.010266066, -0.26988292, 0.04765992, 0.24445806, -0.11784465, 0.028391482, -0.09065907, 0.13896856) * go_5(1.0, -1.0); + result += mat4(-0.17636561, -0.056445003, 0.06597882, 0.020473091, -0.13026594, 0.12097649, -0.060047906, 0.30939278, 0.20875697, 0.074364014, -0.06563088, -0.052628025, -0.07981685, -0.054282684, 0.006551467, 0.08257015) * go_5(1.0, 0.0); + result += mat4(0.1486522, 0.27273872, -0.16233566, 0.08857763, 0.034426562, 0.31791484, -0.11444188, 0.20239855, -0.17699686, 0.40953103, -0.19843663, 0.32758692, -0.017546277, 0.040539514, -0.13233976, 0.054549627) * go_5(1.0, 1.0); + result += vec4(0.0570952, -0.011593155, 0.033286963, 0.00014048154); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!SAVE conv2d_6_tf2 +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.028246857, 0.09429872, 0.034600366, 0.022117741, -0.034094583, -0.1416488, 0.114190586, -0.19039942, -0.03329484, 0.054765828, 0.0518203, -0.20784369, -0.11068853, -0.03985197, -0.040889204, -0.15233918) * go_0(-1.0, -1.0); + result += mat4(0.0034295225, -0.0047144215, -0.13811362, 0.1063775, -0.042283904, -0.11053704, 0.031115215, -0.19094694, -0.07958675, 0.25251713, 0.27887833, 0.032974306, -0.007945948, 0.005038382, -0.018204618, -0.033514593) * go_0(-1.0, 0.0); + result += mat4(-0.021439308, 0.09934385, 0.06221231, 0.20019929, 0.031433582, 0.10136135, 0.03170799, 0.22528099, -0.13307518, 0.0042947256, 0.12888439, 0.057041943, -0.093636274, -0.098759346, -0.0013004189, -0.11623657) * go_0(-1.0, 1.0); + result += mat4(-0.12425962, 0.06631687, 0.03538785, 0.12683366, 0.036875088, -0.388709, 0.021293538, -0.06568616, -0.022915881, -0.17667641, -0.21997124, -0.15674002, 0.12193349, 0.05480543, -0.028813047, -0.092471436) * go_0(0.0, -1.0); + result += mat4(-0.23961155, -0.10273245, -0.08654801, 0.20536228, 0.15906096, -0.28645602, -0.20196053, -0.24955072, 0.030706927, 0.0390173, -0.18619792, 0.042841963, -0.021935288, 0.18055134, 0.056804277, 0.06829802) * go_0(0.0, 0.0); + result += mat4(-0.17750104, 0.060207605, -0.16278192, 0.10637904, 0.09263751, -0.15864064, -0.1921883, 0.15418245, -0.21325666, -0.060680047, -0.17831814, 0.08721947, 0.028428067, 0.110841654, -0.0018111315, -0.14204408) * go_0(0.0, 1.0); + result += mat4(-0.05341328, 0.022792514, 0.12271092, 0.10998399, -0.05194629, -0.0019651174, 0.096098036, 0.05388034, -0.09140511, -0.09375859, -0.033423815, -0.051705707, 0.40354738, -0.09664782, -0.16623749, -0.063937105) * go_0(1.0, -1.0); + result += mat4(-0.036799524, -0.0768793, -0.13867554, 0.0018584719, -0.1217911, -0.24234816, 0.09708973, -0.011562908, -0.04658245, -0.0382149, -0.06386236, -0.18728544, -0.07053968, 0.022178814, -0.011753032, 0.09338199) * go_0(1.0, 0.0); + result += mat4(-0.040192164, -0.042503025, -0.10662553, 0.04789613, -0.14751524, -0.10168207, 0.09263359, -0.042696435, -0.32350782, 0.12660037, -0.004465994, -0.006698753, 0.11897201, -0.046830907, -0.13950327, 0.06639755) * go_0(1.0, 1.0); + result += mat4(-0.35137546, 0.16106302, -0.03942045, 0.20408326, -0.21793413, -0.19028474, 0.03843431, 0.16594443, 0.06715659, -0.12361966, 0.09516593, -0.07226092, -0.0021764247, 0.09041338, -0.042596035, 0.17071731) * go_1(-1.0, -1.0); + result += mat4(-0.1597755, -0.0058896556, -0.14055388, -0.1015749, 0.03897486, -0.14616072, 0.14914623, 0.04983836, 0.19837128, 0.031061351, -0.012111387, -0.14318599, 0.015185477, 0.015783781, 0.0806122, -0.029704068) * go_1(-1.0, 0.0); + result += mat4(-0.039973997, -0.039424386, -0.00023192639, 0.08071814, 0.096021704, -0.20885538, -0.12213241, -0.023790348, 0.09664941, -0.10268222, 0.13096042, -0.05173415, -0.37291482, 0.07015618, -0.33403385, -0.083771) * go_1(-1.0, 1.0); + result += mat4(0.03271248, 0.30518225, -0.07270691, 0.028075088, -0.05705947, -0.15325841, 0.100330696, -0.025110118, -0.076902226, 0.14327222, 0.06624428, 0.13375239, 0.37281695, 0.07052823, -0.14584045, -0.21908635) * go_1(0.0, -1.0); + result += mat4(0.120670766, 0.31895483, 0.025020262, -0.07187204, 0.12886079, -0.044927042, -0.016122498, -0.042634714, 0.13163976, -0.042178337, 0.1995516, 0.0356841, 0.15696648, 0.08892613, 0.21146311, -0.119200125) * go_1(0.0, 0.0); + result += mat4(0.07862659, -0.04457566, 0.026738126, -0.21411496, 0.10438254, -0.18654525, -0.01533368, 0.13947518, 0.10588101, -0.028714191, 0.15771964, 0.121909015, -0.10983157, 0.2185668, -0.068225995, -0.12562555) * go_1(0.0, 1.0); + result += mat4(-0.12062531, 0.0967178, 0.09571875, 0.23502766, 0.09096207, -0.21987092, 0.024857553, -0.048271395, 0.14787363, -0.033102654, 0.13895266, -0.04427544, 0.04914057, 0.048905186, -0.057733577, -0.26991108) * go_1(1.0, -1.0); + result += mat4(-0.06448222, 0.0056067007, 0.06258581, 0.16081811, 0.11269595, -0.120004445, -0.013984294, -0.13933693, -0.07139989, -0.052229576, 0.14940026, 0.023361623, -0.09279362, -0.18860416, 0.08875797, -0.007527515) * go_1(1.0, 0.0); + result += mat4(-0.074545845, 0.030673563, 0.15330285, 0.13776723, 0.10154421, -0.092071116, 0.04683676, -0.06964785, 0.10431926, 0.08699972, 0.23528512, -0.033892516, -0.14641368, 0.117580056, -0.004050138, -0.02582363) * go_1(1.0, 1.0); + result += mat4(0.14190136, 0.077225044, 0.09930474, 0.007267315, 0.092006706, 0.037188467, -0.027249279, -0.054990012, -0.03665177, 0.12651706, -0.100975744, -0.09072935, 0.24675299, 0.06761549, -0.05267532, 0.10347854) * go_2(-1.0, -1.0); + result += mat4(0.10791531, -0.1370413, -0.08286376, 0.03607253, -0.0308955, 0.07522176, 0.018555947, -0.12568206, 0.112782314, 0.28888306, -0.003996075, 0.028732201, 0.25184667, -0.2680978, 0.02647103, -0.046891168) * go_2(-1.0, 0.0); + result += mat4(-0.016372435, 0.010370288, 0.048521012, 0.17552224, 0.12718126, -0.07016058, 0.07195029, -0.020361308, 0.12597205, 0.08013731, -3.848295e-05, 0.0050118286, -0.009566892, -0.20061424, -0.03470485, -0.006634675) * go_2(-1.0, 1.0); + result += mat4(-0.014340514, -0.061068784, 0.073101744, -0.026097663, -0.060043298, 0.03856278, -0.06831028, 0.01917565, 0.0030782523, -0.27292702, 0.009022088, -0.0835327, 0.15536709, 0.19875537, -0.04220971, 0.12280315) * go_2(0.0, -1.0); + result += mat4(-0.05038896, -0.0450083, 0.11035315, 0.017889546, -0.04486168, 0.02630088, 0.076166764, 0.040405206, 0.101371124, 0.013579925, -0.14421356, 0.10385705, -0.040398728, 0.16730694, 0.21123065, 0.08927596) * go_2(0.0, 0.0); + result += mat4(0.14247608, -0.020986153, 0.23048729, 0.016399987, 0.08749712, -0.042591766, 0.10078401, -0.235661, 0.16211063, 0.06193226, -0.074332505, -0.016298788, 0.045263976, 0.15765212, 0.07818007, -0.04620609) * go_2(0.0, 1.0); + result += mat4(0.021306554, -0.09750117, 0.08551645, -0.04607957, 0.023408834, -0.023608467, -0.20876807, -0.059991024, 0.073818475, -0.011034656, 0.021592963, 0.2020669, 0.0658326, -0.037186112, -0.12142336, 0.024981985) * go_2(1.0, -1.0); + result += mat4(0.14970483, -0.034374855, 0.059193425, -0.053641498, -0.012546929, 0.12899692, -0.14678986, 0.010604312, 0.06670342, -0.16510558, 0.008418653, -0.07479036, 0.18447658, -0.048377503, -0.09458383, 0.0069656954) * go_2(1.0, 0.0); + result += mat4(0.058000036, -0.16915704, -0.019119963, -0.045525633, -0.037617203, 0.25589603, -0.25075126, 0.06523698, 0.17653236, -0.061193496, 0.06445885, 0.012287812, 0.102899276, 0.110979825, -0.22975717, 0.1812179) * go_2(1.0, 1.0); + result += mat4(0.06707089, -0.20528378, 0.046027422, 0.09201046, -0.026794929, -0.14959913, -0.1530082, -0.11166134, -0.1543093, -0.018212209, 0.1530343, 0.16413027, -0.041838966, 0.10568013, 0.027219504, -0.045931514) * go_3(-1.0, -1.0); + result += mat4(0.0007681395, 0.027546167, -0.055535425, -0.16842778, 0.031941716, 0.10155229, -0.15778649, 0.20752658, -0.040377192, -0.30390355, -0.023281433, -0.030623253, -0.09503612, -0.17188235, 0.09639771, 0.006249103) * go_3(-1.0, 0.0); + result += mat4(0.06934318, -0.0011609821, -0.1791592, 0.03465803, -0.24253, 0.05893978, 0.13887544, -0.07227747, 0.01218867, 0.029141122, -0.05214466, -0.12778749, -0.1760804, -0.06785066, -0.007493355, 0.14466043) * go_3(-1.0, 1.0); + result += mat4(0.018881964, -0.05313997, 0.026167642, -0.11774113, 0.106899664, -0.04816693, -0.032971296, -0.2197493, -0.30351043, 0.41334164, 0.09371295, 0.117004104, -0.32039383, 0.21075623, 0.059145812, 0.22701162) * go_3(0.0, -1.0); + result += mat4(0.15627995, -0.068059504, -0.025623176, -0.099454194, 0.053013522, -0.1204116, -0.019655226, 0.07376517, -0.25296777, -0.08185056, -0.055070046, -0.0901355, -0.11905481, -0.05469155, -0.017616548, -0.081166655) * go_3(0.0, 0.0); + result += mat4(0.13076767, -0.05530982, -0.050112855, -0.12159198, -0.13501246, -0.003588778, -0.13545947, 0.11865785, -0.05613547, -0.068032116, -0.08055732, 0.21331398, 0.004210958, 0.0020068642, 0.028101314, -0.09094483) * go_3(0.0, 1.0); + result += mat4(-0.06359586, 0.13318597, -0.013024477, 0.108700395, 0.11144461, -0.20727357, -0.024350716, -0.22389533, -0.09566586, -0.0131226955, -0.11817035, 0.09054735, -0.27647895, 0.07672232, -0.047891885, 0.071800984) * go_3(1.0, -1.0); + result += mat4(-0.030071015, 0.1333995, 0.031153332, -0.086189225, -0.0019152679, -0.01622374, 0.040289503, -0.15809211, -0.12741992, 0.10740146, -0.051979292, -0.116695315, 0.320744, 0.0039460426, -0.0836046, -0.09634563) * go_3(1.0, 0.0); + result += mat4(-0.09536935, -0.052188914, 0.047246125, 0.015771315, 0.044488825, -0.08132813, -0.27927315, -0.13175185, 0.024771225, -0.24907906, -0.023289192, -0.04971131, 0.05681843, 0.07283831, 0.064641275, -0.26641592) * go_3(1.0, 1.0); + result += mat4(-0.027925663, -0.1507286, 0.1326965, 0.016842714, 0.008826637, -0.16630088, 0.057058703, -0.18538098, -0.023735443, 0.032016642, 0.12527052, 0.16732964, 0.086843535, 0.035672616, 0.2063971, 0.09174031) * go_4(-1.0, -1.0); + result += mat4(-0.1374101, 0.0033208288, 0.10667102, 0.010594156, 0.046161152, -0.0973723, 0.038522966, 0.021097187, 0.016156282, -0.19751011, 0.28385642, 0.05756371, -0.05513193, -0.2048188, -0.21631682, 0.07647592) * go_4(-1.0, 0.0); + result += mat4(0.17377815, 0.15260585, 0.053718828, 0.05137225, -0.022358606, -0.1206224, 0.18654475, -0.36442846, 0.037749466, -0.1104878, -0.11404351, -0.06023782, 0.20938018, 0.07982189, 0.07250349, -0.07269494) * go_4(-1.0, 1.0); + result += mat4(-0.21727799, 0.060607027, 0.020804053, 0.18055809, 0.065868735, 0.027194923, 0.07823965, -0.0036479903, -0.00017318636, 0.08600115, -0.025587326, 0.07114245, -0.019529548, -0.13423847, 0.13471194, 0.09455981) * go_4(0.0, -1.0); + result += mat4(-0.0054947184, 0.08912019, -0.0287804, 0.06010462, 0.01399159, 0.06061662, -0.11517458, -0.097311266, 0.050931722, 0.22020856, 0.1323814, -0.04628687, -0.11665284, -0.28899986, -0.24807844, -0.26831678) * go_4(0.0, 0.0); + result += mat4(-0.030188283, -0.03878683, -0.017246237, 0.06085806, -0.018588748, 0.022792742, 0.25868282, -0.07614454, 0.13609566, 0.048479818, 0.1144347, -0.11878534, -0.0087716095, -0.10999109, -0.052827284, 0.05120022) * go_4(0.0, 1.0); + result += mat4(0.13541034, 0.01645716, -0.058492333, -0.038296085, 0.100599736, -0.116733365, 0.04200369, -0.025886245, 0.10077625, -0.16246797, -0.17139618, 0.1154542, 0.048264973, 0.28143618, 0.21083501, 0.1901906) * go_4(1.0, -1.0); + result += mat4(0.17519377, 0.11165914, 0.06639653, 0.07394748, -0.007674659, 0.16630298, 0.19389485, -0.095608205, 0.08834474, -0.014449134, -0.1498579, 0.10741625, -0.15439212, 0.067960866, -0.037635356, -0.15552957) * go_4(1.0, 0.0); + result += mat4(-0.06438933, 0.014048397, 0.10090704, -0.113563396, 0.16256817, 0.05490672, 0.07492557, -0.117161274, 0.21595421, -0.043381806, -0.051558085, 0.1740199, 0.2152678, 0.2786416, 0.16830157, 0.2127052) * go_4(1.0, 1.0); + result += mat4(-0.15677509, -0.43225375, 0.060302902, -0.25911507, 0.33240193, -0.042785197, 0.12322616, 0.060724694, 0.19070825, 0.06739152, -0.11829862, -0.29873747, 0.044883754, -0.02737334, 0.35752672, 0.027660733) * go_5(-1.0, -1.0); + result += mat4(-0.031477857, -0.061355617, 0.14307205, -0.27185053, 0.0042110113, -0.17895593, 0.18448347, 0.1663187, -0.027779656, -0.038476624, -0.20109327, 0.0049036117, -0.33461937, -0.11617029, 0.16388293, 0.08732086) * go_5(-1.0, 0.0); + result += mat4(-0.14116575, -0.2656471, 0.11648339, -0.0032394545, 0.1182878, -0.3112847, 0.022472465, 0.01861419, -0.17598355, 0.09062213, -0.078444645, 0.08435301, -0.076718464, -0.27557522, 0.2719488, -0.2709603) * go_5(-1.0, 1.0); + result += mat4(0.27406302, -0.038197294, 0.08674393, -0.1581159, 0.13235791, -0.2564229, 0.1109576, -0.0176378, 0.15548801, -0.0590908, -0.017661547, -0.2397164, -0.13061532, 0.23031203, 0.13042833, -0.1644423) * go_5(0.0, -1.0); + result += mat4(-0.07506608, 0.038386136, -0.079568535, -0.14536263, -0.14519933, 0.049832735, -0.0716522, 0.08434604, -0.12847446, 0.0008543391, -0.14790097, 0.021308336, -0.28987315, 0.2929442, -0.057600517, 0.0779305) * go_5(0.0, 0.0); + result += mat4(-0.026810233, 0.11869411, -0.11281911, -0.14480188, -0.22689806, 0.28260702, 0.08524954, -0.016079135, -0.139977, 0.1590218, 0.24256052, 0.11876038, 0.1039834, 0.10720082, 0.15955658, -0.08241476) * go_5(0.0, 1.0); + result += mat4(-0.0018456473, -0.044888236, 0.2312576, -0.2259125, 0.1552541, -0.10646746, 0.25436193, -0.0140782725, -0.11281806, -0.045578834, 0.089749135, -0.14050213, 0.09813328, -0.5474639, 0.084324725, -0.13670866) * go_5(1.0, -1.0); + result += mat4(-0.18577714, 0.0991832, 0.02898408, 0.04317898, 0.25488335, -0.30257443, 0.0083487155, 0.00078779995, -0.0014885734, -0.116033524, -0.12751958, 0.20800439, -0.13863127, -0.14012383, -0.082795866, 0.07694529) * go_5(1.0, 0.0); + result += mat4(0.124679685, 0.012901697, 0.15855546, -0.031145798, 0.044944238, -0.1519666, -0.015208867, 0.029840399, 0.07195047, 0.17145973, 0.06601934, -0.03358433, 0.16031715, 0.16808309, -0.007914282, -0.19619752) * go_5(1.0, 1.0); + result += vec4(-0.109316595, 0.025873583, 0.05582306, 0.10272255); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!SAVE conv2d_7_tf +//!WIDTH conv2d_6_tf.w +//!HEIGHT conv2d_6_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_6_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_6_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.03482331, -0.14944118, 0.046244163, -0.05941585, -0.07728179, 0.06265427, -0.045520462, 0.0871402, 0.0897178, -0.16006349, 0.008391846, -0.16923702, 0.25602654, 0.051176835, 0.011442495, -0.24914353) * go_0(-1.0, -1.0); + result += mat4(-0.114224955, -0.048990358, 0.0317376, 0.19175068, -0.112552375, 0.037553445, -0.095972225, 0.123118624, 0.12175324, 0.030322522, 0.054718968, -0.39031324, 0.28009677, 0.07727779, 0.16123495, -0.2772586) * go_0(-1.0, 0.0); + result += mat4(-0.06794576, 0.2141763, 0.1750928, 0.12166446, -0.13643269, 0.24814922, 0.037389282, 0.0035949312, -0.06241508, 0.041635923, -0.08047354, 0.010511207, 0.11825532, -0.28878912, 0.17174155, -0.25881785) * go_0(-1.0, 1.0); + result += mat4(-0.0143542895, -0.010602584, -0.04226417, -0.04447678, -0.24656619, -0.053967457, -0.16034846, 0.04648599, 0.18855657, -0.20268312, 0.03610814, 0.022015022, -0.056165848, 0.17901546, -0.044555657, -0.089903764) * go_0(0.0, -1.0); + result += mat4(-0.05440948, 0.12527943, -0.08222082, -0.035428505, 0.2267783, 0.08257505, 0.056446668, -0.016560426, 0.17754072, -0.12249645, 0.15439054, -0.03524935, -0.481085, -0.0961953, -0.3649979, 0.17484458) * go_0(0.0, 0.0); + result += mat4(0.04679537, 0.15213947, -0.018560365, -0.027304955, 0.012417035, 0.033497352, -0.09031395, -0.28588498, 0.15779394, -0.014294813, 0.13411845, 0.07399604, 0.05855495, -0.15351114, -0.06195114, -0.033846762) * go_0(0.0, 1.0); + result += mat4(0.023053877, 0.09145102, -0.056014817, -0.103127845, -0.19463558, 0.009014216, 0.045743883, 0.105235375, 0.148088, -0.071407385, 0.1755759, 0.012725914, 0.04554227, -0.10347383, 0.23475589, -0.039336383) * go_0(1.0, -1.0); + result += mat4(0.015826384, -0.042269874, 0.056471203, 0.009655403, 0.020275326, 0.33224702, 0.009298279, 0.17336445, -0.018828178, 0.10215806, 0.049400896, 0.17038062, 0.057019416, 0.07406004, 0.03215971, 0.12004367) * go_0(1.0, 0.0); + result += mat4(-0.04070164, 0.027889524, 0.02177609, -0.16229889, -0.062548086, -0.027596086, -0.12423675, 0.09836905, 0.059131406, -0.047028925, -0.057379283, -0.104133494, 0.14117907, 0.065780245, -0.023410192, 0.061447598) * go_0(1.0, 1.0); + result += mat4(-0.0021021653, 0.077328384, -0.06821109, -0.19499542, -0.20052336, 0.12387703, 0.055179324, 0.19800851, -0.120995775, 0.42741755, 0.091175236, 0.020587375, 0.0042481394, 0.12762432, -0.06114739, 0.32906154) * go_1(-1.0, -1.0); + result += mat4(-0.019685917, -0.040947627, 0.18565354, -0.46952146, -0.05437026, -0.026286738, -0.07812705, -0.006736804, 0.008634472, 0.23204291, -0.11855498, -0.12303054, 0.38381273, 0.52490336, -0.3265505, 0.21160527) * go_1(-1.0, 0.0); + result += mat4(-0.18054116, 0.0051548174, 0.4753756, 0.17605813, -0.073726274, 0.15002227, -0.1850507, 0.0990851, 0.00921903, 0.13224806, 0.2253796, -0.20556282, -0.109973975, 0.046794172, 0.16226935, 0.08110087) * go_1(-1.0, 1.0); + result += mat4(0.010205323, -0.09720397, 0.029996833, -0.10599145, -0.052096535, -0.053859178, -0.07132246, -0.040684257, -0.0064441697, 0.20659602, 0.26825082, 0.05841878, -0.102910444, -0.19080183, 0.0009101689, 0.31210572) * go_1(0.0, -1.0); + result += mat4(-0.10222517, -0.2537438, 0.17752838, -0.08470953, 0.06963046, -0.010764146, -0.033626176, 0.15240349, -0.20436993, -0.100720614, 0.0444932, 0.20770444, 0.031174636, -0.010206393, 0.09037244, -0.55185884) * go_1(0.0, 0.0); + result += mat4(-0.26993337, -0.020421378, 0.18469644, -0.21327373, 0.06911363, 0.014826783, 0.056256857, -0.06809406, -0.083685525, -0.0984942, -0.0171533, -0.22855683, -0.08748469, -0.1396983, -0.11391806, -0.072031595) * go_1(0.0, 1.0); + result += mat4(0.058208484, -0.091674164, 0.12105436, 0.10939658, -0.031674437, -0.05118359, -0.22271338, 0.028467823, -0.17376278, -0.123112075, -0.071464434, 0.17473213, -0.3117644, -0.18276823, 0.07496323, 0.1509144) * go_1(1.0, -1.0); + result += mat4(-0.05188268, 0.15533312, 0.22820903, 0.17042106, -0.089846164, -0.005064528, 0.04796515, 0.026351674, 0.04572985, 0.09318132, -0.038517136, -0.074062705, -0.036520045, 0.10455916, 0.14278695, 0.14136232) * go_1(1.0, 0.0); + result += mat4(-0.14247061, 0.08110525, -0.075231634, 0.31358016, -0.18515967, 0.06256364, -0.0484006, -0.017976558, -0.02657821, -0.028635541, 0.012627999, 0.054765414, -0.0019829564, 0.15433973, -0.14973663, 0.12542003) * go_1(1.0, 1.0); + result += mat4(-0.17475623, 0.073300175, -0.18943344, 0.13311169, -0.026332445, 0.14347847, 0.20637734, 0.19913399, 0.24245638, -0.01550613, -0.09732818, -0.3588367, -0.11411046, -0.15500076, -0.09746209, -0.14517665) * go_2(-1.0, -1.0); + result += mat4(0.17039534, -0.20694748, 0.07940825, -0.29572237, -0.26519805, 0.126274, -0.22870643, 0.064273715, -0.22092016, -0.03348832, -0.08794688, -0.006346166, -0.14190583, -0.16601795, 0.15920593, 0.097251594) * go_2(-1.0, 0.0); + result += mat4(-0.08191819, -0.010720725, -0.10248115, -0.066204295, 0.13338344, 0.1886245, -0.1326061, -0.107134834, -0.06729155, -0.1295641, -0.09283412, -0.1643324, 0.06636283, 0.35525218, 0.0003396009, 0.04252375) * go_2(-1.0, 1.0); + result += mat4(0.018834922, 0.09374041, -0.04844811, -0.086488485, 0.36477897, -0.035175197, 0.10250587, 0.009436049, 0.09109528, 0.25697815, 0.12989257, -0.10460797, 0.13357025, -0.15341914, -0.14009036, -0.27027166) * go_2(0.0, -1.0); + result += mat4(-0.046186987, -0.04721098, -0.10386561, 0.042765476, 0.10490874, -0.14259604, 0.03565186, 0.11228278, -0.1333764, 0.111047596, -0.20885478, 0.19843856, -0.07459371, -0.054204836, 0.0895249, 0.053722855) * go_2(0.0, 0.0); + result += mat4(0.057206515, -0.016081734, 0.04002097, 0.09536414, 0.27507696, 0.009611371, 0.2858957, 0.016278412, 0.091774575, -0.020857088, -0.1354684, -0.046553783, -0.10013868, 0.059088446, 0.1768699, 0.02272152) * go_2(0.0, 1.0); + result += mat4(0.028798534, 0.21127033, 0.01716753, 0.020965017, -0.08091736, -0.15006042, -0.29822782, 0.019595081, -0.029534074, -0.0653482, 0.11786061, -0.047803946, 0.011680036, 0.010721205, -0.2639438, 0.15042429) * go_2(1.0, -1.0); + result += mat4(-0.098251216, 0.050176363, -0.0426328, -0.037756715, -0.20687164, -0.3096553, -0.2210454, -0.03763596, -0.022159807, 0.044400796, 0.09344259, -0.05465652, -0.039273985, -0.096617654, -0.19118373, 0.1643556) * go_2(1.0, 0.0); + result += mat4(-0.11874077, 0.021691876, 0.15513967, -0.012177898, -0.1298149, -0.08811524, 0.017105984, -0.047422726, -0.033107523, 0.0058112773, -0.08017183, -0.020971343, -0.41264817, 0.075800754, 0.1080831, -0.082354255) * go_2(1.0, 1.0); + result += mat4(0.0032239188, -0.28178176, -0.19482347, 0.054150533, 0.40856144, -0.23284851, 0.020973913, -0.09307241, 0.4258893, -0.034946837, -0.043585345, 0.16226469, 0.045328375, 0.03566808, 0.0712809, 0.12283043) * go_3(-1.0, -1.0); + result += mat4(-0.15139721, -0.2489635, 0.2122619, -0.08517609, 0.23784684, -0.070994906, 0.3132446, -0.36519074, -0.048850738, -0.36088645, 0.2145936, 0.19312155, -0.2579365, -0.12489612, -0.075510584, 0.16864875) * go_3(-1.0, 0.0); + result += mat4(0.01884723, -0.2775977, 0.0007072475, 0.30131263, 0.01366198, -0.18196137, 0.38918743, -0.03999786, -0.075060904, -0.12210868, 0.14701048, 0.18474291, -0.023507686, 0.13071437, -0.036284998, 0.26304045) * go_3(-1.0, 1.0); + result += mat4(-0.08185283, -0.09152341, -0.13410091, -0.13518219, 0.10747411, 0.007974842, 0.11000113, 0.19898382, -0.18449086, 0.058887243, -0.02379909, -0.038734827, 0.041931048, 0.081884705, 0.015872778, 0.08416657) * go_3(0.0, -1.0); + result += mat4(0.05272478, -0.06669923, 0.007233672, 0.039665744, 0.021820793, -0.14690521, -0.26392132, 0.007352069, -0.04682333, -0.028595299, -0.34463075, -0.14347489, 0.00084401644, -0.030389901, 0.022279145, 0.14215061) * go_3(0.0, 0.0); + result += mat4(0.17942588, 0.27815622, 0.39199513, 0.17727011, -0.14894293, -0.1705316, 0.038263746, 0.025509953, -0.12031536, 0.15371376, -0.30855826, 0.2394013, -0.20185183, 0.121072985, 0.070580006, -0.12321835) * go_3(0.0, 1.0); + result += mat4(0.043464154, -0.4329999, 0.12176987, 0.1863519, -0.14952634, -0.03741596, 0.3588594, 0.015720207, 0.07319453, 0.04202827, 0.19699398, -0.18537244, -0.040319767, 0.081377335, 0.045191478, -0.070804425) * go_3(1.0, -1.0); + result += mat4(0.14033453, -0.13302796, -0.058896482, 0.14912021, 0.25856513, -0.10442178, 0.3958381, -0.08528721, 0.3291926, -0.0024321752, 0.017541584, -0.31020027, 0.13845283, -0.24636552, -0.07630463, -0.32314765) * go_3(1.0, 0.0); + result += mat4(0.005189076, 0.20132092, 0.069775395, 0.086517565, 0.2727916, -0.079313666, 0.14164488, -0.16358389, -0.103817366, -0.11717267, 0.019068012, 0.016953465, 0.2551057, 0.14430785, 0.00088051375, -0.23318093) * go_3(1.0, 1.0); + result += mat4(-0.008894086, 0.03201216, -0.13398862, 0.06335705, 0.13424714, -0.06514535, -0.19045971, -0.23764557, 0.05714849, -0.30345356, 0.0092409095, 0.16878125, -0.07465451, -0.015541787, 0.033304304, -0.113849334) * go_4(-1.0, -1.0); + result += mat4(0.12612185, -0.0715257, 0.16217476, -0.024476554, 0.10614049, 0.03700835, 0.08482953, -0.08358318, 0.098786205, -0.009351742, -0.15457323, 0.113223985, -0.011500662, -0.13529003, -0.058090385, 0.11290306) * go_4(-1.0, 0.0); + result += mat4(0.050260257, -0.056368183, 0.21489042, 0.14299081, -0.113755986, -0.22816344, 0.27275258, -0.0015117057, 0.14195545, -0.16299947, 0.049762867, 0.22725838, 0.06814647, -0.049368583, -0.08577855, -0.097503126) * go_4(-1.0, 1.0); + result += mat4(-0.0083364155, -0.052837223, -0.0846245, 0.053218696, 0.28152695, 0.19495425, -0.19180301, -0.26389152, -0.12953846, -0.102649055, -0.19722337, -0.15851225, 0.1725756, 0.056898903, 0.01023057, -0.033678) * go_4(0.0, -1.0); + result += mat4(-0.044510186, 0.033060472, 0.26517934, -0.25734264, 0.11998833, -0.05369093, 0.19721112, -0.15774135, 0.061851945, -0.03981009, -0.034191426, -0.23678938, -0.013630672, -0.114661574, 0.096060224, 0.17892191) * go_4(0.0, 0.0); + result += mat4(-0.14728574, -0.031724717, 0.13967156, 0.03676961, -0.09500629, -0.09584641, -0.3221665, 0.14028065, -0.09116274, -0.08160823, -0.03841335, 0.21315134, -0.025303967, -0.081841856, 0.024239374, 0.004911813) * go_4(0.0, 1.0); + result += mat4(-0.16211908, -0.07225985, -0.06955749, 0.025049562, 0.016382609, 0.20329225, 0.23490642, 0.04267578, -0.008350769, 0.0037089891, 0.09515623, -0.06105943, 0.13584909, 0.09705268, -0.062350716, -0.074614085) * go_4(1.0, -1.0); + result += mat4(0.025970146, -0.14939465, -0.08123037, -0.008690572, 0.16139375, 0.052395687, -0.03863909, 0.0953437, -0.103880964, -0.04672169, -0.078161545, 0.04628746, -0.019205566, -0.006394265, -0.009116098, 0.024979865) * go_4(1.0, 0.0); + result += mat4(0.15779239, 0.009630995, -0.06269132, -0.11111548, 0.11478004, -0.0780718, -0.24617292, 0.05763241, 0.02476824, 0.0631411, -0.2777113, -0.010855008, 0.10766442, 0.020561088, -0.029775767, -0.060535327) * go_4(1.0, 1.0); + result += mat4(0.6058991, -0.29998928, -0.09883167, -0.36967963, 0.104703955, -0.1886391, 0.07915164, -0.02375336, 0.041111898, 0.09216705, 0.046296816, 0.24895348, -0.015484279, 0.06852782, 0.04170421, -0.008594877) * go_5(-1.0, -1.0); + result += mat4(-0.29542375, -0.11578118, -0.047219444, -0.10781526, 0.13507344, 0.09601799, 0.08975014, 0.09067836, 0.1565405, 0.082328156, 0.09181261, 0.04524675, -0.08546339, 0.107942745, 0.057727177, 0.15223116) * go_5(-1.0, 0.0); + result += mat4(-0.013349778, 0.15176241, -0.08432594, 0.10960892, 0.081638165, -0.13559791, -0.06557744, 0.01141079, 0.10179259, 0.35195625, 0.23831062, 0.13698545, -0.0073695974, -0.020154724, -0.2515228, 0.030157704) * go_5(-1.0, 1.0); + result += mat4(0.20604958, -0.09164565, 0.049274493, -0.111016676, -0.046125744, -0.22138667, -0.10698992, 0.07003299, 0.09432274, 0.13457412, 0.08988733, 0.16862586, -0.16797546, -0.0130331, -0.009054985, -0.01443074) * go_5(0.0, -1.0); + result += mat4(-0.17840317, -0.079730295, 0.11214133, -0.015679857, 0.07462782, 0.1700189, -0.03588104, -0.055766776, 0.2527381, -0.040385213, 0.18867272, 0.15786001, -0.03973228, -0.053887095, -0.001591716, -0.050709404) * go_5(0.0, 0.0); + result += mat4(0.24581482, 0.09119475, 0.049080588, 0.25806418, -0.005062941, 0.10484669, 0.05778071, 0.23681131, -0.09603774, 0.009163983, 0.19752978, 0.104258336, 0.13455175, -0.0034275826, -0.080408186, 0.10462319) * go_5(0.0, 1.0); + result += mat4(0.07782564, -0.2789083, -0.13887207, -0.019308591, 0.25710207, -0.21921843, 0.0015911289, 0.080053106, -0.014144128, 0.074144535, 0.043883692, 0.2513407, 0.10068346, -0.17853074, 0.20460746, 0.04092755) * go_5(1.0, -1.0); + result += mat4(-0.048100162, 0.042697787, -0.04842476, 0.18837112, 0.051532917, 0.088649124, -0.014739274, -0.023566334, 0.44025096, -0.10545216, -0.19667506, 0.097041525, 0.0008772463, -0.05555525, 0.069248185, 0.1176431) * go_5(1.0, 0.0); + result += mat4(-0.01590801, 0.016883895, -0.09720278, 0.14969985, -0.099172674, -0.04525934, 0.13815412, 0.024430253, 0.0247448, 0.015865842, -0.10956577, 0.22523156, 0.22455531, -0.100728914, -0.053454183, 0.13590883) * go_5(1.0, 1.0); + result += vec4(-0.06673833, 0.01457202, -0.036676105, -0.06303146); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!SAVE conv2d_7_tf1 +//!WIDTH conv2d_6_tf.w +//!HEIGHT conv2d_6_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_6_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_6_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.23879923, 0.040317934, 0.22145784, -0.08336839, -0.16966912, 0.08528278, 0.2684323, 0.17057978, 0.1467542, -0.041414198, 0.03689633, 0.10483362, 0.04390369, 0.2617799, 0.13374175, 0.21909657) * go_0(-1.0, -1.0); + result += mat4(0.013090143, 0.010181773, -0.022144144, -0.038787983, 0.17343685, 0.06579225, 0.036516637, -0.18973681, 0.11963511, 0.111920275, 0.13276073, 0.04570385, -0.009538788, -0.028358553, 0.06043411, 0.14202546) * go_0(-1.0, 0.0); + result += mat4(0.2273523, 0.086418256, 0.058296323, -0.023292154, -0.016248869, 0.08703014, -0.14549017, 0.15725356, 0.26235282, 0.13655783, 0.06703612, -0.0746187, 0.18931058, -0.009649255, 0.27345505, 8.478176e-05) * go_0(-1.0, 1.0); + result += mat4(-0.033401724, -0.064518325, -0.15034138, 0.05246805, 0.058772895, -0.176813, 0.078342214, -0.0020414025, 0.06217457, -0.20738979, -0.16368344, 0.03266785, 0.04921403, 0.112299785, -0.123247504, 0.0994201) * go_0(0.0, -1.0); + result += mat4(-0.2553642, 0.14918567, -0.14866059, -0.03617286, 0.032998353, -0.15592867, 0.087743975, -0.00049046543, -0.32823107, -0.107454315, 0.002674161, -0.01887908, 0.0833454, -0.03806806, -0.14595793, -0.20520253) * go_0(0.0, 0.0); + result += mat4(0.02986423, 0.028604368, -0.011768948, 0.10195398, -0.102379754, 0.1362889, -0.041802816, -0.084387876, -0.008137814, 0.09726054, 0.10758101, 0.09259081, -0.07889878, -0.07312139, 0.17478421, -0.033481717) * go_0(0.0, 1.0); + result += mat4(0.058965955, 0.024142284, 0.22129168, 0.04082889, 0.15887728, 0.103434056, -0.21192761, 0.06533756, 4.1846484e-05, -0.24297993, 0.17849778, -0.115734324, -0.11500629, 0.15694802, 0.04261307, 0.17415777) * go_0(1.0, -1.0); + result += mat4(0.01345909, 0.017319864, -0.0520044, 0.06891368, 0.078165226, -0.07047419, -0.013746107, -0.058885146, -0.10569072, -0.032166608, -0.02835551, -0.09911323, -0.062442902, 0.13147296, 0.1815978, -0.0042537497) * go_0(1.0, 0.0); + result += mat4(0.1606494, 0.05220283, 0.13166267, 0.10574164, -0.19102532, 0.03446111, -0.055919666, 0.057688963, 0.26081654, 0.03648174, 0.03616491, 0.046591155, 0.21643688, 0.052122388, 0.050889883, 0.29552755) * go_0(1.0, 1.0); + result += mat4(-0.024097791, -0.080628626, 0.12568358, 0.12252691, -0.16359662, 0.0051886803, -0.01954068, 0.02195983, -0.18788633, -0.030897139, -0.09377947, 0.15688346, -0.14129396, -0.11748491, -0.3835284, -0.022647042) * go_1(-1.0, -1.0); + result += mat4(0.11930519, 0.24957322, 0.015541883, -0.11232224, -0.058490105, -0.049757216, 0.075522415, 0.09442181, 0.076607205, 0.037432365, -0.08629132, 0.008422209, -0.013450555, 0.10305229, -0.04537291, -0.08230579) * go_1(-1.0, 0.0); + result += mat4(-0.050578903, -0.20879799, -0.04393353, 0.0015126837, -0.23416555, 0.01141535, -0.009691543, 0.06217469, -0.10707423, 0.20022671, 0.15437399, -0.04760398, -0.14287886, 0.2682982, -0.2561911, 0.033707578) * go_1(-1.0, 1.0); + result += mat4(0.11812356, -0.29858422, 0.09146616, 0.052722417, -0.023986591, 0.0933364, 0.14801602, -0.10148, -0.15320316, -0.0028770058, -0.103183694, -0.006425709, 0.021735031, -0.47796893, -0.18304059, 0.084628224) * go_1(0.0, -1.0); + result += mat4(-0.09104168, 0.03286581, 0.04459324, -0.22438659, 0.12870388, -0.1360097, -0.15926069, 0.071017005, 0.074596204, -0.09715285, -0.07479851, -0.20799732, -0.29060403, -0.107118085, 0.25210482, 0.16397184) * go_1(0.0, 0.0); + result += mat4(-0.12460523, 0.16706169, 0.30230346, 0.054767944, -0.116781175, 0.19446343, -0.21735692, -0.026413433, 0.052394047, 0.020679068, -0.15584053, 0.061340448, 0.04663544, 0.27504724, 0.20286065, 0.3490867) * go_1(0.0, 1.0); + result += mat4(0.21607491, -0.21738917, -0.009051781, -0.07276944, 0.3103053, 0.15334722, 0.28409463, -0.17096485, 0.031179685, 0.2009012, -0.26543948, -0.19882691, 0.032035686, -0.35383067, -0.17236927, -0.113232605) * go_1(1.0, -1.0); + result += mat4(-0.11165131, -0.2941282, -0.029304054, 0.106581636, 0.21548472, -0.21285897, -0.043579012, -0.047211695, 0.027249131, 0.28340155, 0.082085736, -0.04485162, -0.24723412, -0.0007002699, 0.19643609, 0.2518287) * go_1(1.0, 0.0); + result += mat4(-0.1854792, -0.008842361, -0.08581101, 0.16760491, -0.10669554, 0.21352866, 0.1252966, -0.04194005, -0.07666296, 0.07259658, 0.10786684, -0.03364238, 0.1547786, -0.018965635, -0.13252488, 0.23715465) * go_1(1.0, 1.0); + result += mat4(0.1451508, 0.10011578, 0.07156718, 0.04740723, -0.19702536, 0.06286184, -0.29180148, -0.30204237, -0.07179627, 0.056043524, 0.27749023, -0.07051612, 0.1010544, -0.008737285, -0.13163415, -0.066848055) * go_2(-1.0, -1.0); + result += mat4(0.07561846, -0.14928432, 0.027951663, -0.07524044, 0.10025779, -0.21305043, 0.008214884, 0.16192347, 0.04002263, -0.10425787, 0.018522112, -0.08742078, 0.039168026, 0.010691633, 0.0025965972, -0.016103525) * go_2(-1.0, 0.0); + result += mat4(-0.045149434, 0.033272427, 0.06018518, -0.068993434, 0.017645787, 0.27027842, -0.25670657, 0.04577214, 0.002479582, -0.051434338, 0.25425145, -0.093131274, 0.09688695, 0.14416668, -0.1216349, 0.0229849) * go_2(-1.0, 1.0); + result += mat4(0.030369451, 0.020748299, 0.034542933, 0.09359397, -0.37202555, 0.2808392, -0.2659807, -0.01941035, -0.22399698, 0.08132304, -0.0014507625, -0.017793491, 0.037623137, -0.029477628, -0.0720025, -0.15816812) * go_2(0.0, -1.0); + result += mat4(0.33115733, -0.013734702, 0.0101467, -0.12268663, 0.43017596, -0.32643738, -0.3273918, 0.1109477, 0.10758731, 0.070155494, -0.24037434, -0.0016639809, -0.06652544, 0.13758285, -0.072496586, -0.10106904) * go_2(0.0, 0.0); + result += mat4(0.19126198, -0.14967397, -0.18345782, -0.08460439, 0.13229868, -0.21144699, -0.058821946, -0.5039749, 0.24892776, 0.20228972, -0.06919527, -0.15942183, 0.12435562, -0.012193792, -0.2627704, 0.13625085) * go_2(0.0, 1.0); + result += mat4(-0.10896958, 0.044015855, -0.0181369, 0.10650041, -0.24092299, 0.18979153, -0.26630878, 0.06806665, -0.17771733, -0.2699458, -0.1144395, 0.014184961, -0.288627, -0.19622655, 0.39838296, -0.11162213) * go_2(1.0, -1.0); + result += mat4(-0.084831044, -0.02721028, 0.109261006, 0.087307416, -0.33783588, 0.08306577, -0.027817784, -0.10534335, -0.15593721, -0.013186225, -0.011052375, 0.10786937, -0.00060474424, 0.00431786, 0.38164118, 0.14728197) * go_2(1.0, 0.0); + result += mat4(-0.26669395, -0.09910907, 0.03960142, -0.21382816, -0.5042419, -0.12542717, 0.07396011, -0.24485987, -0.1770452, -0.00011720843, 0.11425563, 0.07332528, -0.06640686, -0.11683248, 0.003071298, 0.05543171) * go_2(1.0, 1.0); + result += mat4(-0.16784829, -0.031949766, -0.043842897, -0.09577157, 0.16381639, -0.33382246, -0.10782627, 0.07903589, 0.04620696, -0.04180326, -0.09783348, 0.3095548, 0.06762379, 0.021955997, -0.14974354, -0.143973) * go_3(-1.0, -1.0); + result += mat4(-0.14442697, -0.044818707, 0.025801856, 0.08461569, -0.20247138, 0.060513508, -0.1674155, 0.13058512, -0.08026784, -0.3141148, -0.04791329, -0.14586422, 0.16113773, -0.035697844, 0.21863447, -0.099939525) * go_3(-1.0, 0.0); + result += mat4(-0.298011, -0.053686857, -0.31031471, 0.11162896, 0.22341007, -0.052881762, 0.13043529, 0.15810435, -0.37888956, -0.31480342, 0.33116004, 0.06646278, -0.05665705, -0.03861846, 0.083101824, 0.003781792) * go_3(-1.0, 1.0); + result += mat4(-0.08649798, -0.1088245, 0.32511878, -0.16572024, 0.050254185, -0.252013, -0.040132295, 0.17312634, -0.016653338, -0.43009317, 0.5093538, 0.06922151, 0.08760091, -0.14250961, 0.4053319, -0.10107622) * go_3(0.0, -1.0); + result += mat4(0.083406106, -0.16932109, 0.06787343, -0.05178522, -0.20603026, -0.09058593, 0.16128129, -0.22712888, 0.05429396, -0.15098302, 0.3041655, -0.07668127, -0.15419695, 0.4462755, 0.1874267, 0.17312653) * go_3(0.0, 0.0); + result += mat4(0.19148338, 0.052311547, -0.13830717, 0.2996034, 0.05850986, 0.05484371, 0.0361025, 0.20699011, 0.0057291416, -0.12026241, 0.02678267, 0.12696257, -0.019684052, -0.09031823, 0.15297134, 0.13705085) * go_3(0.0, 1.0); + result += mat4(-0.20881316, 0.14526081, -0.41917932, -0.16191165, 0.1262819, -0.23026188, -0.2561112, 0.049415354, -0.1497713, -0.009612483, -0.070241526, -0.039475128, 0.093497746, -0.1318667, -0.105637155, -0.21147394) * go_3(1.0, -1.0); + result += mat4(0.042843655, -0.11218648, 0.013391185, 0.06646476, -0.24418473, -0.037722886, 0.08446243, -0.0018849184, 0.030670485, 0.27686, -0.15015033, 0.21402857, 0.10094001, 0.3145764, -0.17310384, -0.10199286) * go_3(1.0, 0.0); + result += mat4(-0.14084649, 0.0033693435, -0.34370998, 0.1079324, 0.28795156, 0.14933614, 0.10669996, 0.12305359, -0.040551323, -0.07330404, -0.15179317, 0.069975436, 0.2920918, 0.020814283, -0.13944869, 0.09579582) * go_3(1.0, 1.0); + result += mat4(0.10180969, -0.021659529, -0.13541374, 0.0908069, 0.11346961, -0.0011830843, -0.19612141, -0.11018402, 0.12915576, -0.095653616, -0.13800405, -0.18932076, 0.12277476, 0.09764832, 0.114954636, -0.1578187) * go_4(-1.0, -1.0); + result += mat4(-0.07191152, -0.053082727, -0.067936264, 0.045203943, 0.13166252, 0.23256709, -0.288239, -0.08163785, -0.020897634, 0.15756424, -0.17083916, -0.13654962, -0.021136044, -0.14208466, -0.0040715886, 0.03707775) * go_4(-1.0, 0.0); + result += mat4(0.15754776, -0.042640373, -0.033360127, -0.06743833, -0.06533689, -0.16307046, -0.018182967, -0.060084824, -0.087093055, 0.036133945, -0.23553473, -0.40821072, -0.053628575, 0.026669571, 0.19045922, -0.035846557) * go_4(-1.0, 1.0); + result += mat4(0.07448724, 0.067469016, -0.066770956, 0.0030078532, -0.1173964, -0.012352791, -0.19451907, -0.021427047, 0.19994271, -0.0029543424, -0.034913633, 0.13859013, 0.048614684, 0.193721, -0.09548589, -0.026358109) * go_4(0.0, -1.0); + result += mat4(-0.3411652, 0.23141026, 0.10978134, 0.07787867, -0.18412182, 0.15478246, 0.25846902, -0.13144507, -0.28535685, 0.086631864, 0.12785226, 0.0033878016, 0.03504869, -0.034950025, -0.17758164, 0.024054492) * go_4(0.0, 0.0); + result += mat4(-0.019755604, -0.21744813, 0.14325249, 0.21274537, -0.04985571, -0.24407099, -0.02035735, 0.21803972, -0.16886176, -0.05224696, 0.20342873, -0.18543948, 0.0096319495, -0.1624773, 0.14216544, -0.081235185) * go_4(0.0, 1.0); + result += mat4(0.20382723, -0.16942358, -0.15685835, 0.024889609, -0.3226424, -0.10469345, -0.46887016, 0.016228858, -0.1362387, -0.13054538, -0.0783913, -0.06385014, -0.08139782, 0.12035177, 0.21293128, -0.045476373) * go_4(1.0, -1.0); + result += mat4(0.13462923, 0.1384135, -0.055161975, -0.099216595, -0.16864173, -0.15129986, -0.2535725, 0.22653887, -0.11102492, -0.09068262, -0.0044067153, -0.0603752, -0.095367156, -0.056415606, 0.0075126593, -0.009610249) * go_4(1.0, 0.0); + result += mat4(0.1393697, 0.13611916, 0.090671785, 0.08593501, 0.07983876, -0.0068050954, -0.28696343, -0.17570612, -0.075322844, 0.06774856, -0.086022906, 0.09080408, 0.022836372, 0.018536389, 0.042727504, -0.043635663) * go_4(1.0, 1.0); + result += mat4(-0.0050578844, -0.04774735, 0.004759578, 0.09087925, 0.16171533, 0.01599633, 0.08316812, -0.09584462, 0.119889505, 0.003919012, -0.21555036, 0.2426096, -0.12047291, 0.10978759, -0.33754483, 0.15740488) * go_5(-1.0, -1.0); + result += mat4(-0.11716536, 0.08724526, -0.023726968, -0.12922543, -0.05567669, -0.021379862, -0.2031672, -0.023840401, -0.024058433, -0.081542544, -0.19171208, 0.051525865, -0.008789576, -0.16808029, -0.049115162, 0.052190997) * go_5(-1.0, 0.0); + result += mat4(0.13842055, -0.13871577, 0.0954928, 0.19763501, -0.049218517, -0.21299022, -0.14797242, -0.0996971, 0.004526675, -0.107513115, -0.31193256, -0.13720018, 0.01550265, 0.017279146, -0.03583415, 0.053429827) * go_5(-1.0, 1.0); + result += mat4(-0.0723815, 0.034265626, 0.20389315, -0.14053439, 0.18389022, 0.033574764, -0.039723963, -0.14978175, -0.084361784, -0.15831995, 0.49169922, -0.09837507, 0.0017199022, -0.09433373, 0.13506836, -0.06360633) * go_5(0.0, -1.0); + result += mat4(-0.1265364, 0.24196059, 0.21346883, -0.035202276, -0.16924065, -0.039915517, 0.15855956, -0.00046526943, -0.30319792, 0.47292793, 0.19538064, -0.046434846, 0.0041063935, 0.026737224, 0.14377008, -0.086429365) * go_5(0.0, 0.0); + result += mat4(-0.052318633, 0.01695744, 0.073576115, 0.2596724, -0.062066127, -0.051519766, -0.051504273, 0.05866547, -0.08328452, -0.28105405, 0.078826845, 0.18008032, 0.18682955, 0.0076535186, -0.05532054, -0.20601955) * go_5(0.0, 1.0); + result += mat4(0.11029233, 0.16958456, 0.06657061, -0.019656291, 0.11484087, -0.044068743, 0.24364337, -0.0065622316, 0.28941217, 0.18499708, -0.19709894, -0.19475468, 0.03503256, -0.05113357, 0.10653205, 0.01789133) * go_5(1.0, -1.0); + result += mat4(0.23000862, 0.21053173, -0.18862817, 0.17935936, -0.15975583, -0.05371, -0.012876548, 0.16915809, 0.048503194, 0.16087084, 0.013947819, -0.2625692, -0.07422495, 0.12091095, -0.07861796, -0.10306009) * go_5(1.0, 0.0); + result += mat4(0.22752777, 0.25302207, -0.12559423, 0.32303494, 0.048354533, -0.09707823, -0.08385863, 0.14718369, 0.08453127, -0.12578502, 0.2255726, 0.28436616, 0.11673125, -0.109367356, -0.024817433, -0.061155386) * go_5(1.0, 1.0); + result += vec4(0.09436162, 0.053628888, -0.037304673, 0.07278107); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!SAVE conv2d_7_tf2 +//!WIDTH conv2d_6_tf.w +//!HEIGHT conv2d_6_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_6_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_6_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.06848254, 0.17351831, 0.08460523, -0.04292461, 0.16476814, 0.12880002, -0.2188432, -0.14287443, -0.03620956, 0.03190214, -0.048488446, 0.13175257, -0.03531708, 0.25060365, -0.06213195, 0.12620556) * go_0(-1.0, -1.0); + result += mat4(-0.002136314, 0.14399742, 0.033703934, 0.04852668, 0.044694893, 0.044961825, -0.049827278, -0.043917865, 0.13977914, -0.08126432, -0.14917606, 0.04644499, -0.14825742, 0.14075856, 0.03092348, -0.093371935) * go_0(-1.0, 0.0); + result += mat4(-0.10156521, 0.17292573, 0.12147806, 0.058286913, 0.036107652, 0.11812006, -0.052188348, -0.018111996, -0.033433035, 0.13158733, 0.11174768, 0.3135695, -0.031843673, 0.14830989, 0.094200954, 0.046325628) * go_0(-1.0, 1.0); + result += mat4(-0.020032655, -0.07413829, 0.08400475, -0.096378304, 0.018955225, 0.022839474, 0.0059678215, -0.1027026, -0.028222635, -0.14191163, 0.1683382, 0.12842403, -0.0019999016, -0.10452298, -0.00084425067, 0.21517049) * go_0(0.0, -1.0); + result += mat4(0.01772144, -0.055037472, -0.26999003, 0.08729775, -0.36895162, 0.011868349, 0.09449699, -0.098540016, -0.12167021, -0.14711088, 0.12771331, -0.23740645, 0.15759817, -0.19454266, 0.16208373, 0.24910314) * go_0(0.0, 0.0); + result += mat4(-0.01581086, 0.055212107, 0.09454114, 0.04507513, 0.06458917, 0.07870699, 0.043557264, -0.057501283, 0.20402664, 0.22241214, 0.04460486, 0.08704935, 0.16451277, -0.13080528, 0.039666496, -0.026260905) * go_0(0.0, 1.0); + result += mat4(0.052181657, 0.027077725, 0.06572071, 0.031183861, 0.10252249, -0.08605668, 0.041842632, -0.103617065, -0.10870241, 0.04929309, -0.036834683, 0.035595864, 0.05496096, -0.067191675, -0.021810448, 0.040137228) * go_0(1.0, -1.0); + result += mat4(0.12943552, 0.027362846, -0.04002257, 0.06176385, 0.03362332, -0.10467882, 0.33771384, -0.002079538, -0.14528175, 0.14312474, 0.02974133, -0.06945553, -0.33208638, -0.1682957, 0.08194348, -0.072072215) * go_0(1.0, 0.0); + result += mat4(-0.10689992, 0.0904542, 0.13820268, 0.13239543, -0.15937562, -0.123537876, -0.33618236, -0.081022464, 0.024027856, 0.26380306, -0.09225592, 0.040485747, -0.01705172, -0.049895052, -0.07952754, 0.030036716) * go_0(1.0, 1.0); + result += mat4(-0.1259129, 0.018831972, -0.1832129, 0.01803401, 0.033666562, -0.17717862, 0.087922215, -0.10147714, 0.045267824, -0.25754488, -0.08662288, 0.10354607, 0.10469745, 0.19675997, -0.20195517, 0.24481302) * go_1(-1.0, -1.0); + result += mat4(-0.094946206, 0.015489291, -0.1777193, 0.037065975, 0.024963535, -0.3277457, -0.08534422, -0.08319194, -0.18495774, -0.09883332, -0.053772286, 0.08554662, -0.1215341, 0.15887743, -0.2965043, -0.11656119) * go_1(-1.0, 0.0); + result += mat4(-0.34576485, -0.14033535, 0.07531725, -0.14229001, 0.08308607, -0.31519765, -0.15306507, -0.072686926, -0.12345635, -0.08589443, 0.015977165, -0.0041419766, -0.49153492, 0.3021553, 0.16130814, -0.17035122) * go_1(-1.0, 1.0); + result += mat4(-0.08059237, -0.18008304, 0.23508278, -0.08894493, 0.11107956, 0.23715645, 0.091440715, -0.033679005, 0.23545177, 0.011845169, 0.0054449392, -0.30073527, 0.2796674, -0.1411897, -0.014096338, 0.115184374) * go_1(0.0, -1.0); + result += mat4(0.19655375, 0.027063202, -0.3324798, 0.29343468, -0.10879405, 0.16780332, -0.019309124, 0.04614956, 0.15054315, 0.19951852, 0.14648122, 0.28885373, 0.037958838, -0.34874088, -0.025065463, -0.19422896) * go_1(0.0, 0.0); + result += mat4(-0.18047136, 0.060818356, -0.13610844, -0.018481744, -0.09979387, 0.0477093, 0.032326147, -0.10137375, -0.059743475, 0.05039489, 0.17306165, -0.005998121, -0.009583858, -0.14829919, 0.24446519, -0.22378124) * go_1(0.0, 1.0); + result += mat4(0.45342392, 0.19783214, -0.042264447, 0.11951815, 0.017209506, 0.119354434, -0.089858785, 0.03950267, -0.19266395, -0.07500372, -0.02151692, -0.008635288, -0.14962971, -0.00780355, 0.18662006, -0.0046807216) * go_1(1.0, -1.0); + result += mat4(-0.13184623, -0.04977233, -0.08034406, -0.08663693, -0.06438305, -0.06699197, 0.15878884, 0.014209137, -0.018352475, -0.12698355, -0.18104841, -0.03212089, -0.31992742, 0.13199449, -0.039823674, -0.18864588) * go_1(1.0, 0.0); + result += mat4(-0.22096959, -0.06594324, -0.093964286, -0.069787376, -0.05717438, 0.18509367, -0.19014412, -0.11233723, -0.043684576, -0.04049064, -0.015180749, 0.04026833, -0.09723803, -0.014410513, -0.14038773, -0.20472965) * go_1(1.0, 1.0); + result += mat4(-0.020113828, 0.06306164, 0.1133604, -0.03264297, -0.019580074, -0.28136805, 0.046105113, -0.104369484, 0.047211405, -0.11510891, -0.2610411, -0.24363835, -0.15579234, 0.13080037, -0.2414289, -0.21552382) * go_2(-1.0, -1.0); + result += mat4(-0.030723298, 0.10005462, -0.046389453, -0.42023477, -0.0900144, -0.3300974, 0.2023873, 0.47113106, -0.10733436, 0.13536386, 0.11873528, 0.075008325, -0.092727005, 0.16694772, -0.12538053, -0.019201787) * go_2(-1.0, 0.0); + result += mat4(-0.020229753, 0.0050342986, -0.09015966, -0.23845413, 0.14204682, -0.24106354, 0.007471734, 0.21428482, -0.059586413, -0.07984075, 0.1474898, -0.12583902, -0.34393194, 0.08484377, -0.40459237, 0.32322514) * go_2(-1.0, 1.0); + result += mat4(-0.11741491, -0.083517544, 0.04531866, -0.048355322, 0.15782192, 0.07919051, -0.34528416, -0.17551522, -0.20325756, -0.13701133, -0.09564707, -0.03711687, 0.030484512, -0.107849605, -0.09412398, -0.28914952) * go_2(0.0, -1.0); + result += mat4(-0.013266804, -0.035421904, 0.081956826, 0.15579522, 0.12775496, 0.1479336, 0.46652517, 0.21593826, -0.23207328, -0.13872643, 0.09056148, 0.1257084, 0.40673763, 0.14669922, 0.14093073, -0.31729355) * go_2(0.0, 0.0); + result += mat4(-0.03632805, 0.06513459, -0.13029967, 0.24914533, 0.08398421, -0.12399063, 0.15374567, 0.003005163, -0.03301567, 0.010896424, -0.10409926, -0.031162843, -0.080630526, 0.313793, -0.04112272, 0.06908576) * go_2(0.0, 1.0); + result += mat4(0.056705862, 0.04045318, -0.13523346, -0.12563162, 0.030291703, -0.22721136, -0.19567032, -0.22538094, -0.078549854, 0.16844983, -0.09419901, 0.1000363, -0.052691363, -0.14642943, -0.17214452, -0.23522456) * go_2(1.0, -1.0); + result += mat4(0.09823313, -0.16931288, 0.2667816, 0.019992903, 0.09905936, -0.14416765, 0.022824166, -0.02994203, 0.05482313, 0.0073759295, -0.087138794, -0.10250613, 0.22704037, -0.33540174, 0.059272785, -0.08828277) * go_2(1.0, 0.0); + result += mat4(0.05405852, 0.0015277737, 0.15057512, 0.008105634, 0.26466554, 0.021303358, 0.21576874, -0.055405084, 0.20417419, -0.1829464, 0.19177821, -0.10549947, -0.10019333, -0.04373452, 0.3086124, -0.030007664) * go_2(1.0, 1.0); + result += mat4(0.18547705, 0.015533089, -0.17023557, -0.14218459, -0.109183766, -0.21892494, -0.08033779, 0.1279889, 0.21425895, 0.31563443, 0.055812337, 0.035239376, 0.04874699, -0.03926052, 0.25620237, 0.05620038) * go_3(-1.0, -1.0); + result += mat4(0.17809738, -0.090085454, 0.086938836, 0.21705364, 0.057283174, 0.022287775, -0.21651776, -0.0027429194, 0.04257827, 0.17341158, 0.32710707, -0.029889492, 0.23903793, -0.038499728, 0.208562, 0.18147011) * go_3(-1.0, 0.0); + result += mat4(-0.02671488, -0.2577291, -0.101831675, -0.043231912, -0.08192727, -0.09351345, 0.10333126, 0.42192927, 0.11358276, 0.17070638, 0.11954223, -0.31113386, 0.21822956, 0.040758308, 0.18557602, -0.04927389) * go_3(-1.0, 1.0); + result += mat4(0.016825153, -0.16034372, 0.13393559, 0.0031862713, -0.07210358, 0.12088922, 0.18472868, 0.19526374, -0.098638535, -0.26882744, 0.01246303, -0.023679085, -0.07282684, 0.10335254, 0.11371582, -0.11949346) * go_3(0.0, -1.0); + result += mat4(-0.0077989995, -0.06316807, -0.037497815, 0.010178734, -0.028329156, -0.109135084, -0.18357074, 0.40579423, -0.05144428, -0.28490487, -0.11653807, 0.22959495, -0.109780535, 0.22878933, -0.29027545, 0.17875119) * go_3(0.0, 0.0); + result += mat4(-0.15628323, -0.07819484, -0.22514449, 0.065008484, -0.0055398177, -0.07419974, 0.09902451, 0.35817552, -0.0862891, -0.2973468, -0.10211232, 0.09778022, -0.08562242, -0.08868644, 0.30707374, 0.16413328) * go_3(0.0, 1.0); + result += mat4(0.004233512, 0.02434783, -0.12356794, 0.13752618, 0.21815947, 0.16979212, 0.3382205, 0.15363333, -0.14368188, 0.10208307, 0.16594398, -0.002474651, -0.25072917, 0.19654895, 0.15537341, -0.011402132) * go_3(1.0, -1.0); + result += mat4(0.1492285, -0.102569796, -0.15423858, 0.03359016, 0.008948687, 0.11137203, -0.0753569, -0.15314926, -0.22925344, 0.1943656, -0.4934053, 0.42356676, -0.10820874, 0.23832525, -0.4461194, 0.19386442) * go_3(1.0, 0.0); + result += mat4(0.30649734, 0.061961878, -0.17697462, -0.29313368, 0.19318691, 0.14972912, -0.04568052, 0.123596475, -0.018475438, 0.33577895, -0.17800568, 0.12502621, 0.032249834, 0.013487416, -0.019249933, 0.004653166) * go_3(1.0, 1.0); + result += mat4(0.11560085, -0.030997908, 0.009219462, 0.05633901, -0.11158907, 0.09791856, -0.111877, -0.020388048, -0.25937706, -0.000673325, 0.106495194, 0.15643579, 0.022090284, -0.11573403, 0.123260945, -0.033783972) * go_4(-1.0, -1.0); + result += mat4(-0.061418246, 0.13925532, 0.070662834, -0.10297572, -0.08535479, 0.31824788, 0.08315885, 0.012375857, 0.04241964, 0.21071856, -0.18567438, -0.26859924, 0.09607365, -0.19106552, 0.1222843, 0.20521446) * go_4(-1.0, 0.0); + result += mat4(-0.1985242, 0.40886146, -0.03295415, 0.25985515, 0.00024564067, 0.22053646, 0.4425157, 0.030073104, 0.15870823, 0.3720021, -0.19778733, -0.11957699, 0.23951907, -0.022089735, 0.026504006, -0.1143626) * go_4(-1.0, 1.0); + result += mat4(0.07811988, 0.06360271, -0.18825488, 0.05489923, -0.316614, -0.2020329, -0.17215219, -0.1163882, 0.028907632, 0.13332835, 0.07710604, 0.15564129, -0.08207378, 0.2586524, -0.15368843, -0.026250634) * go_4(0.0, -1.0); + result += mat4(0.1154507, 0.05374841, -0.35887244, -0.38684267, 0.024906285, -0.051356003, 0.06727699, -0.13258685, -0.04512674, -0.0630682, -0.016046045, -0.3630216, -0.10115332, 0.06723903, 0.10273197, 0.01658071) * go_4(0.0, 0.0); + result += mat4(0.035411883, -0.10390069, 0.28300494, -0.030523226, 0.260309, -0.2897127, 0.17530721, 0.06502907, 0.10852879, 0.0101283565, 0.04377248, -0.14661616, 0.07372457, 0.029455552, -0.024029268, 0.019606834) * go_4(0.0, 1.0); + result += mat4(0.06462741, -0.017584527, 0.05204551, 0.023974337, -0.09858389, -0.12002433, 0.051191356, -0.15688013, 0.1415572, -0.121506944, 0.4219788, -0.14832322, 0.09247079, -0.10846258, -0.030261837, -0.14657071) * go_4(1.0, -1.0); + result += mat4(0.037952326, 0.05012869, 0.022779293, 0.0797289, 0.024931714, -0.050262492, -0.15463822, -0.023215678, 0.045349725, -0.0040035774, 0.22049266, -0.08079404, -0.0113567095, -0.00675084, 0.17475724, 0.025340058) * go_4(1.0, 0.0); + result += mat4(-0.13610172, 0.14658909, 0.067050435, 0.12354151, 0.22096893, -0.06765668, -0.024593432, -0.03552899, 0.06936571, 0.10394856, 0.0048312224, -0.21034646, 0.037834894, -0.06692894, 0.009020093, -0.04065748) * go_4(1.0, 1.0); + result += mat4(-0.08967367, -0.14398253, -0.19402455, -0.14434609, -0.027259551, 0.1226331, 0.012233069, 0.13677149, -0.1507801, 0.14510965, 0.24108039, 0.04916487, 0.042398036, 0.09403761, -0.03958092, 0.17673557) * go_5(-1.0, -1.0); + result += mat4(-0.071569644, -0.19743139, -0.09648773, 0.038397867, 0.12506093, 0.24415006, 0.13810574, -0.23042768, 0.20971183, -0.14231962, 0.0963819, -0.07323753, -0.014360243, -0.099411555, 0.07815387, 0.09009336) * go_5(-1.0, 0.0); + result += mat4(0.14625058, -0.15307125, 0.45122483, 0.10113701, -0.12264418, 0.09390506, -0.25706926, -0.082095854, 0.11812526, 0.14046957, -0.09704567, 0.21640895, 0.20999698, -0.19149756, 0.16977966, 0.034616202) * go_5(-1.0, 1.0); + result += mat4(0.05720225, 0.0428485, -0.057531573, -0.111578174, 0.03538242, 0.033332366, -0.05961152, 0.13383748, -0.05669531, -0.047779217, 0.2760684, -0.23934118, 0.03728129, -0.15390043, 0.09151239, 0.016904302) * go_5(0.0, -1.0); + result += mat4(0.05711261, -0.009796642, 0.1827549, -0.23561665, 0.15747361, -0.15555665, -0.03771464, -0.15358609, 0.124769196, -0.00302323, -0.1930878, -0.3193505, -0.036671866, -0.21477285, -0.0015818535, -0.054916248) * go_5(0.0, 0.0); + result += mat4(-0.04039116, 0.022148842, 0.2527601, -0.08849551, -0.017892385, -0.01728494, -0.12817079, 0.112442665, 0.004877744, 0.08325303, 0.13601741, -0.12387854, -0.033808686, -0.07762037, -0.036944337, -0.016846744) * go_5(0.0, 1.0); + result += mat4(0.025319673, 0.12447582, 0.06369372, 0.20814203, -0.062117852, 0.10390202, -0.030939216, 0.15888922, -0.0873872, 0.04641361, 0.13612288, -0.22024561, 0.15445144, -0.03273631, 0.18931653, 0.03979226) * go_5(1.0, -1.0); + result += mat4(0.01642648, 0.10919636, 0.118298925, -0.052648794, 0.046562076, 0.042576727, -0.119064495, -0.10575594, -0.023527319, 0.27507904, -0.24070077, 0.037794556, 0.026340371, 0.08496194, -0.2165465, -0.10772629) * go_5(1.0, 0.0); + result += mat4(-0.110290796, 0.23385854, 0.16042788, 0.041294437, -0.04052982, -0.030170577, 0.16566783, 0.18245162, -0.125454, 0.15547217, -0.02763223, -0.10694603, 0.12049954, -0.07608294, -0.06768503, 0.022071697) * go_5(1.0, 1.0); + result += vec4(-0.19256988, 0.07561771, 0.007950438, -0.050078563); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(UL)-Conv-3x1x1x120 +//!HOOK MAIN +//!BIND MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!BIND conv2d_7_tf +//!BIND conv2d_7_tf1 +//!BIND conv2d_7_tf2 +//!SAVE MAIN +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +#define g_0 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_1 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_2 (max((conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_3 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_4 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_5 (max(-(conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_6 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_7 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_9 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_10 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_11 (max(-(conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_12 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_13 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_14 (max((conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_15 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_16 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_17 (max(-(conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_18 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_19 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +#define g_21 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_22 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_23 (max(-(conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +#define g_24 (max((conv2d_7_tf_tex(conv2d_7_tf_pos)), 0.0)) +#define g_25 (max((conv2d_7_tf1_tex(conv2d_7_tf1_pos)), 0.0)) +#define g_26 (max((conv2d_7_tf2_tex(conv2d_7_tf2_pos)), 0.0)) +#define g_27 (max(-(conv2d_7_tf_tex(conv2d_7_tf_pos)), 0.0)) +#define g_28 (max(-(conv2d_7_tf1_tex(conv2d_7_tf1_pos)), 0.0)) +#define g_29 (max(-(conv2d_7_tf2_tex(conv2d_7_tf2_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(0.068483055, 0.036389243, 0.04961808, 0.0, 0.05059915, 0.033048775, 0.029426659, 0.0, 0.07465462, -0.012659731, -0.024048671, 0.0, 0.02224484, 0.012289658, 0.008910066, 0.0) * g_0; + result += mat4(-0.10449372, 0.019832065, 0.035194747, 0.0, 0.039656557, -0.028246421, -0.032626413, 0.0, 0.10093569, 0.021039873, -0.0120673925, 0.0, -0.047074273, -0.041248, -0.019464392, 0.0) * g_1; + result += mat4(-0.05256942, 0.0127243735, 0.012813261, 0.0, -0.03551604, 0.040801138, 0.04893271, 0.0, -0.0016839011, -0.018044796, -0.027161835, 0.0, -0.060873054, 0.012360936, 0.020700796, 0.0) * g_2; + result += mat4(-0.116182, -0.04271438, -0.046686683, 0.0, -0.09575506, -0.030078743, -0.024359861, 0.0, -0.04794246, 0.0044337297, 0.013972317, 0.0, -0.023228236, 0.015726948, 0.0070847897, 0.0) * g_3; + result += mat4(0.13986528, -0.016787121, -0.015848925, 0.0, -0.04900687, -0.027417973, -0.027077334, 0.0, -0.047319725, -0.021533312, -0.018427303, 0.0, -0.06136185, -0.0051562944, -0.032072, 0.0) * g_4; + result += mat4(0.070715815, 0.012814227, -0.0003389576, 0.0, 0.012182037, -0.014952754, -0.019349998, 0.0, -0.03254603, 0.012881403, 0.016392775, 0.0, 0.059158217, 0.0055793705, -0.003696545, 0.0) * g_5; + result += mat4(0.022627862, -0.020713277, -0.009454221, 0.0, -0.04352193, 0.058409747, 0.07186154, 0.0, -0.009326966, 0.034919802, 0.04204233, 0.0, 0.025182368, -0.039986387, -0.04990386, 0.0) * g_6; + result += mat4(0.0116241425, -0.039915055, -0.050241623, 0.0, -0.0076204035, 0.050215762, 0.059038218, 0.0, -0.006659752, -0.0054298495, -0.003807067, 0.0, 0.011085346, -0.009443587, -0.009128077, 0.0) * g_7; + result += mat4(0.0453952, 0.004603456, 0.006256434, 0.0, -0.104142666, 0.05726496, 0.069169044, 0.0, -0.10102446, -0.034291938, -0.013720296, 0.0, -0.035107866, -0.008388971, -0.0068969135, 0.0) * g_8; + result += mat4(-0.038070124, -0.015017457, -0.015852718, 0.0, 0.0607464, -0.052079927, -0.07268223, 0.0, 0.008773512, -0.026051786, -0.027285712, 0.0, -0.022916751, 0.048140153, 0.064897746, 0.0) * g_9; + result += mat4(-0.01670857, 0.012646949, 0.03353705, 0.0, 0.038032394, -0.044542246, -0.06310885, 0.0, 0.002600519, -0.00824961, -0.008912322, 0.0, 0.023435717, 0.021788329, 0.008603494, 0.0) * g_10; + result += mat4(-0.02889454, -0.0058613745, -0.010699256, 0.0, 0.12959917, -0.046572708, -0.06832117, 0.0, 0.028117642, 0.020422146, 0.00869695, 0.0, 0.035915125, 0.009355984, 0.005175107, 0.0) * g_11; + result += mat4(0.037913825, -0.0099191405, -0.018130798, 0.0, -0.0065440857, 0.004536478, -0.0019739012, 0.0, -0.014918686, -0.00011652434, 0.0007071924, 0.0, -0.0033633227, -0.018028691, -0.014883887, 0.0) * g_12; + result += mat4(-0.021300001, -0.039009467, -0.043097164, 0.0, -0.008222791, 0.057612088, 0.063239105, 0.0, 0.023676023, -0.0119777955, -0.020785704, 0.0, 0.03422571, -0.009187399, -0.016286165, 0.0) * g_13; + result += mat4(0.031610258, -0.022373654, -0.04004249, 0.0, 0.015456217, -0.014708875, -0.017118618, 0.0, -0.0235428, 0.0103508085, 0.020143243, 0.0, 0.0044788374, -0.017377898, -0.023227183, 0.0) * g_14; + result += mat4(-0.036366682, 0.007874863, 0.016618004, 0.0, 0.0022973057, -0.010600425, -0.012978575, 0.0, 0.0070587453, 0.005480104, 0.0052379463, 0.0, -0.02330911, -0.002091681, -0.0004570695, 0.0) * g_15; + result += mat4(0.0011265673, 0.017461559, 0.01678395, 0.0, 0.019458788, -0.032603145, -0.042017594, 0.0, -0.026735391, 0.007520235, 0.01661426, 0.0, -0.023014631, 0.027602635, 0.040214695, 0.0) * g_16; + result += mat4(-0.05236764, 0.007274719, 0.023289332, 0.0, -0.033428065, 0.0054935357, 0.014490033, 0.0, 0.016193395, -0.012767524, -0.022695007, 0.0, -0.01161452, 0.015592775, 0.017280621, 0.0) * g_17; + result += mat4(0.0075503755, 0.014264192, 0.014350495, 0.0, 0.013990636, -0.0011566521, -0.005510977, 0.0, -0.021975616, -0.013216436, -0.012400287, 0.0, 0.018202957, 0.010433842, 0.007529786, 0.0) * g_18; + result += mat4(0.012649671, 0.016378459, 0.009756208, 0.0, 0.0023225206, -0.0038671023, -0.005242471, 0.0, 0.023699954, 0.015248626, 0.011651197, 0.0, 0.014677953, 0.014319745, 0.012088228, 0.0) * g_19; + result += mat4(-0.0030005479, 0.0052323043, 0.007744717, 0.0, -0.0077438625, -0.00072459516, -0.001971826, 0.0, -0.01263717, -0.009226968, -0.005661945, 0.0, 0.0046659256, 0.0014185858, 0.0038442858, 0.0) * g_20; + result += mat4(-0.0053241113, -0.010728358, -0.013345879, 0.0, -0.000893072, 0.015531841, 0.015812417, 0.0, 0.021348871, 0.015751695, 0.016067913, 0.0, 0.014817982, 0.03233685, 0.031598262, 0.0) * g_21; + result += mat4(0.0038391522, 0.0027406036, 0.0063517806, 0.0, 0.0021543978, 0.0065204683, 0.009420363, 0.0, -0.022383714, -0.012619449, -0.008763167, 0.0, -0.009436604, -0.012201518, -0.0103548, 0.0) * g_22; + result += mat4(-0.005432008, -0.013701671, -0.021388102, 0.0, -0.001045599, -0.0032160715, -0.0036216215, 0.0, 0.031028647, 0.022415614, 0.01880324, 0.0, -0.004328173, -0.004780637, -0.005459752, 0.0) * g_23; + result += mat4(-0.007300146, -0.0076159053, -0.0080059795, 0.0, 0.005996225, 0.0057377047, 0.0059788194, 0.0, -0.021563234, -0.020394823, -0.020401813, 0.0, -0.030919729, -0.03150251, -0.029059272, 0.0) * g_24; + result += mat4(-0.002826552, -0.0042917025, -0.0025527687, 0.0, -0.0074001094, -0.006878869, -0.0062073106, 0.0, 0.010867636, 0.010852139, 0.008577537, 0.0, -0.01606024, -0.0143771265, -0.013291837, 0.0) * g_25; + result += mat4(0.012113326, 0.014259359, 0.011284172, 0.0, -3.851684e-05, -0.003696042, -0.0020337042, 0.0, 0.003427011, 0.006911378, 0.008471347, 0.0, 0.0063997298, 0.004651406, 0.0075980425, 0.0) * g_26; + result += mat4(-0.026621016, -0.027831081, -0.025364956, 0.0, 0.022336917, 0.023742557, 0.023516335, 0.0, -0.01619396, -0.01820708, -0.015288538, 0.0, 0.0045815264, 0.0022230193, 0.0017512285, 0.0) * g_27; + result += mat4(0.043799683, 0.046862658, 0.041910093, 0.0, -0.027854608, -0.02948632, -0.02927831, 0.0, -0.051899213, -0.04971418, -0.04712937, 0.0, -0.017539004, -0.0245854, -0.023040624, 0.0) * g_28; + result += mat4(0.022317344, 0.021462968, 0.02187171, 0.0, 0.0530127, 0.054741293, 0.052202478, 0.0, 0.029963326, 0.0298772, 0.025601966, 0.0, 0.027699472, 0.031187871, 0.02950236, 0.0) * g_29; + result += vec4(-0.0071146404, 0.005606682, 0.010180816, 0.0); + return result + MAIN_tex(MAIN_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_Restore_CNN_VL.glsl b/assets/shaders/anime4k/Anime4K_Restore_CNN_VL.glsl new file mode 100644 index 00000000..0810c8d5 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Restore_CNN_VL.glsl @@ -0,0 +1,873 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(0.1690102, -0.2560719, 0.39658326, -0.3679659, -0.27616683, -0.35619372, -0.3748396, 0.08430813, -0.29574734, -0.31511316, -0.09773105, 0.13616018, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.1326393, -0.259433, 0.025070239, 0.58914864, -0.036478516, 0.30723435, 0.007458902, 0.012962684, 0.2493056, 0.13007334, -0.08448256, -0.38414413, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.11539356, 0.35253766, 0.26143202, 0.2760807, -0.09371543, -0.028165473, -0.028452158, -0.27050856, 0.06718067, -0.0056619495, -0.17654495, 0.17288211, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.16145481, -0.3204927, -0.54317135, 0.11830119, 0.49315026, 0.12008072, 0.50857407, -0.30382085, 0.25807253, 0.020755528, 0.29388228, 0.106109895, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.22728722, 0.50484747, -0.07904469, 0.33114597, 0.50306976, -0.22760947, 0.14773269, 0.17628263, 0.14788547, -0.08223464, -0.10880935, -0.3151985, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.3414351, 0.057279214, -0.14419858, 0.09761111, -0.11794496, 0.021717256, -0.22750235, 0.13986664, -0.38932344, 0.28996095, 0.3773904, 0.13175532, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.1376552, -0.19587159, -0.35147396, -0.097646296, 0.1686707, -0.14385861, 0.031198, 0.12383533, -0.23089902, 0.08707301, 0.3362293, -0.100579016, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.056774966, 0.047585852, -0.36395878, -0.20211312, 0.4077735, 0.12631284, 0.39813092, -0.033365678, 0.2307249, -0.09131807, 0.20823865, 0.31084216, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.12456089, 0.09755632, 0.31490886, -0.06579996, -0.13386595, 0.07564795, -0.26605195, -0.075180635, -0.11182657, 0.06757017, -0.14351276, -0.16828312, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.046043985, 0.055581126, -0.08791638, -0.13022089); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf1 +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.15485518, -0.29363206, -0.22610365, -0.14291525, -0.45240572, -0.18319772, -0.12209436, 0.15031648, 0.09878383, 0.06711082, 0.25763842, -0.084633484, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.10204406, 0.16167697, 0.22371867, -0.37947702, -0.24476196, -0.038824454, 0.060157117, 0.15764871, -0.08072927, -0.2210841, -0.31835055, 0.009979876, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.20506924, 0.21132155, -0.0922578, -0.07430473, 0.14529926, 0.20549752, 0.0077948375, 0.13246094, -0.32353187, 0.21074104, 0.092629515, 0.17590871, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.04125819, -0.44050243, 0.23729716, 0.3218237, 0.12943116, -0.011674174, 0.10390632, 0.027775545, -0.20308031, -0.16904089, -0.2121676, -0.022515794, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(0.09664124, 0.20127031, 0.60345304, 0.16697013, 0.23093723, -0.38116834, 0.109695725, 0.0007595324, 0.4092646, 0.009624758, 0.11229678, 0.25326383, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.014879592, 0.19204311, 0.07102085, -0.7312604, 0.34860876, 0.3429918, -0.027331594, 0.27636307, 0.1342437, 0.107820466, -0.12645108, 0.21081445, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.12687613, -0.09247973, -0.25973785, 0.4350873, -0.18987224, 0.028678741, -0.0903819, -0.63974863, 0.205591, 0.11308998, 0.18458389, -0.4149041, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.34691808, -0.025498383, 0.3428986, 0.21663484, 0.23404741, -0.1725327, -0.0036315925, -0.13299675, -0.1873967, 0.031331502, -0.08785591, -0.0013278709, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.35846514, 0.048703704, -0.104165934, 0.16529736, -0.15378916, 0.26030356, -0.07134151, 0.03692383, -0.15807101, -0.18885155, 0.044707954, -0.11444462, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.0022791293, -0.024132347, -0.57621074, 0.028573977); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!SAVE conv2d_1_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.010346764, 0.07230188, -0.24734616, -0.09937907, 0.02228549, -0.19550583, -0.019540425, -0.1037373, 0.033996485, -0.075554, -0.20228972, 0.07090153, -0.09194035, -0.058972966, 0.1768268, 0.27517542) * go_0(-1.0, -1.0); + result += mat4(0.020078976, 0.12433655, -0.1620775, 0.036401592, 0.079748705, 0.11660013, 0.17917652, -0.017513236, -0.18936846, 0.24478136, -0.45726213, -0.045004416, -0.08295188, 0.067733586, -0.080548316, 0.2744211) * go_0(-1.0, 0.0); + result += mat4(0.024916803, 0.27562472, 0.043771956, -0.012240604, 0.0786355, 0.042651594, 0.16049327, -0.14577515, -0.032735053, 0.17658092, 0.16382934, -0.02337374, 0.11551492, 0.056343183, -0.17930213, 0.14259394) * go_0(-1.0, 1.0); + result += mat4(0.20010485, 0.06747722, -0.19026905, 0.11013709, 0.13062745, -0.044626113, -0.0062261797, 0.2189639, 0.1403497, -0.022713251, -0.19452858, -0.010305412, -0.06407589, 0.09836748, 0.025805516, 0.23430973) * go_0(0.0, -1.0); + result += mat4(-0.14664203, 0.034910418, 0.024714258, -0.066872925, -0.15717538, -0.14179383, -0.14091893, 0.05859166, 0.18919097, -0.18544437, -0.09068573, -0.08615929, -0.051434122, 0.2170678, 0.18409058, -0.17461225) * go_0(0.0, 0.0); + result += mat4(-0.11354446, 0.10745854, 0.2682663, 0.05949201, -0.10695986, 0.1407851, -0.03551388, 0.10691649, -0.17148238, -0.38287184, 0.2074456, 0.11828914, 0.048535194, 0.1464864, -0.18169662, -0.14074169) * go_0(0.0, 1.0); + result += mat4(0.22160622, -0.1513045, -0.053284165, 0.033202525, 0.15574448, -0.043640967, -0.0093824165, -0.0019965349, -0.097964935, -0.08289824, 0.08239996, 0.07868361, 0.05731752, -0.20441617, -0.013016076, -0.253108) * go_0(1.0, -1.0); + result += mat4(-0.031249097, -0.2272863, 0.23573665, 0.03357689, 0.011395065, -0.10885564, -0.06287508, -0.031719524, 0.10331069, 0.17560169, 0.18303394, 0.022961004, -0.17011635, -0.24371737, 0.10678694, -0.3222825) * go_0(1.0, 0.0); + result += mat4(-0.1275465, -0.08844758, 0.10994917, -0.00910273, 0.09393154, 0.03894992, 0.14367905, -0.11811715, -0.09077633, -0.015776094, 0.27427456, -0.13283503, 0.18724327, -0.08139094, 0.04933602, -0.051852766) * go_0(1.0, 1.0); + result += mat4(-0.06764611, -0.27426586, 0.12045272, 0.09410856, -0.14258035, 0.11802992, -0.09093882, 0.0022018093, 0.4590643, 0.046258576, -0.07827223, 0.448011, -0.103631735, -0.016930219, -0.15421398, 0.11045997) * go_1(-1.0, -1.0); + result += mat4(-0.17295076, 0.00151352, 0.14938255, 0.08336512, -0.07496541, -0.07561223, -0.0846474, 0.14979269, -0.09142163, 0.23925088, -0.015199518, -0.37749895, -0.20636298, -0.022585187, -0.20371509, 0.0745308) * go_1(-1.0, 0.0); + result += mat4(0.06458832, -0.009722021, -0.123604394, 0.06548835, -0.3039139, -0.022024399, 0.05297587, -0.0626883, 0.23556642, 0.1516464, -0.07004877, -0.1845364, -0.05918428, 0.19158973, -0.14983447, 0.030489758) * go_1(-1.0, 1.0); + result += mat4(0.36604697, 0.17516142, -0.10853731, -0.22694224, -0.107650936, 0.23013335, 0.094055794, -0.17047717, -0.3006048, -0.08621717, -0.18815655, -0.03570218, 0.09676118, -0.017718751, 0.059138596, 0.073388465) * go_1(0.0, -1.0); + result += mat4(-0.12791575, 0.101956226, 0.13091874, -0.046373338, 0.04955811, -0.04030444, 0.13869923, -0.046699073, -0.42611042, -0.7173929, 0.052184317, 0.6178025, -0.02929954, -0.07638965, -0.15000828, 0.030710017) * go_1(0.0, 0.0); + result += mat4(0.057806686, 0.20842272, -0.20148766, 0.006666912, 0.13356528, -0.45265228, -0.07354092, 0.21447696, 0.019552143, -0.13645506, 0.14643854, -0.0071413796, -0.15487236, -0.002250615, 0.30622452, 0.0033902125) * go_1(0.0, 1.0); + result += mat4(0.06896002, 0.24397352, -0.06479052, 0.20676947, -0.24259068, 0.055320013, -0.09032122, -0.11222854, -0.08982342, -0.114818625, -0.06399291, -0.3024516, -0.06302166, -0.1925528, 0.03458982, 0.028828239) * go_1(1.0, -1.0); + result += mat4(0.09764086, 0.09599894, -0.0073313303, 0.14418933, -0.045712367, 0.12657364, 0.04620374, -0.069778584, 0.30047333, -0.012418192, 0.15516461, -0.18087754, 0.08178273, 0.14262857, -0.01741533, -0.12509112) * go_1(1.0, 0.0); + result += mat4(0.04697884, -0.1506804, 0.031823065, 0.13397239, -0.18396698, 0.10681781, -0.29586303, -0.0039136545, 0.17560847, -0.12486726, -0.018646788, -0.20688744, -0.030614454, -0.0527634, 0.23593572, -0.10542146) * go_1(1.0, 1.0); + result += mat4(-0.19182229, -0.32615846, 0.26283535, -0.1371942, -0.071202695, 0.12056063, -0.11450658, -0.27711076, -0.42096004, 0.0014352369, 0.1559669, -0.14464542, -0.17973948, 0.079166576, -0.12501791, -0.20623216) * go_2(-1.0, -1.0); + result += mat4(0.12469872, 0.32190827, -0.059510354, 0.1393449, -0.12845798, -0.019571869, -0.22630808, -0.14031963, 0.36072046, 0.05858427, 0.19278921, 0.121090546, -0.067538865, -0.018770566, 0.14318037, -0.15561756) * go_2(-1.0, 0.0); + result += mat4(0.024663208, 0.21110268, -0.016415706, 0.060093414, -0.03739678, -0.107412934, -0.077527136, 0.30331334, 0.17196326, -0.15512557, -0.09499732, -0.15748607, -0.16680105, -0.015185634, 0.16114107, -0.21288376) * go_2(-1.0, 1.0); + result += mat4(-0.17739037, -0.1190967, 0.13191372, -0.2527187, -0.14992718, -0.30511454, 0.19145966, 0.002194003, -0.12888977, 0.19152176, 0.27528167, 0.099714965, 0.12865707, -0.12051514, -0.055013947, 0.26231763) * go_2(0.0, -1.0); + result += mat4(0.46433613, -0.11708138, -0.20157282, 0.32022122, 0.079468675, 0.029407484, 0.2559102, -0.15651533, 0.08644574, -0.09747344, -0.07528584, 0.17354868, 0.19167562, -0.17698488, -0.09896657, 0.17093097) * go_2(0.0, 0.0); + result += mat4(0.20283653, -0.33680332, 0.2282385, 0.18832158, 0.20866042, 0.00076752366, 0.16471444, -0.21548858, 0.16193539, 0.17141372, 0.03140222, 0.03913644, -0.030161971, 0.00014570929, 0.08993654, -0.064823024) * go_2(0.0, 1.0); + result += mat4(-0.3075755, 0.19942546, 0.015526995, -0.120868504, -0.254515, -0.07791228, 0.03271691, 0.11794217, 0.11258601, 0.045204375, -0.061196107, -0.115958795, 0.3861869, 0.048215542, 0.07016682, -0.009975758) * go_2(1.0, -1.0); + result += mat4(-0.07623697, 0.16094944, -0.02283455, 0.14112763, -0.051149167, 0.20429814, 0.011314802, 0.18914083, -0.24240434, -0.08784008, -0.16763984, -0.08492233, 0.31062725, -0.11925119, -0.33195966, 0.2060798) * go_2(1.0, 0.0); + result += mat4(-0.016709225, -0.14472668, -0.3677625, -0.09832719, 0.030297454, -0.05775362, -0.1401375, 0.08119674, -0.01795042, 0.05183797, -0.24320887, 0.066842034, -0.22245285, -0.02740993, 0.06316751, 0.053399116) * go_2(1.0, 1.0); + result += mat4(-0.039214406, -0.08876633, 0.045552462, 0.19226661, 0.1355001, -0.13942362, 0.17398876, 0.2914014, -0.191809, 0.037143208, 0.013333581, -0.16632195, 0.113767646, -0.106692605, 0.1589787, 0.030107044) * go_3(-1.0, -1.0); + result += mat4(0.21997562, 0.13855208, -0.05783191, -0.033682413, -0.010961168, 0.10524961, 0.02177416, 0.18289444, 0.043692037, 0.07853899, -0.039936125, -0.1004449, 0.04494073, -0.020680292, 0.17578089, -0.106598996) * go_3(-1.0, 0.0); + result += mat4(0.026852835, -0.16037546, 0.11278316, 0.12656097, -0.006857894, -0.03400118, -0.051564034, 0.00085412664, -0.37556714, -0.05279987, 0.029383834, -0.14246808, -0.056380164, -0.002399925, 0.16025752, 0.036324855) * go_3(-1.0, 1.0); + result += mat4(0.022709966, 0.046350412, 0.03390721, 0.02810572, -0.14394265, 0.04215361, -0.3206118, 0.15034916, -0.0028448137, 0.1682989, -0.042686664, 0.020543462, -0.2786501, -0.007482015, -0.040313292, -0.20745736) * go_3(0.0, -1.0); + result += mat4(0.05417556, 0.18728684, -0.046121832, -0.27939513, 0.05907976, -0.09191223, -0.16625418, -0.26038164, 0.39956605, -0.052594025, -0.0596556, 0.29517552, -0.015181923, -0.0763375, 0.25131205, 0.13038464) * go_3(0.0, 0.0); + result += mat4(-0.036903054, -0.0066989153, -0.062650286, 0.05614359, -0.0064960583, 0.028512698, -0.10906273, -0.010047654, 0.23030473, 0.049983572, 0.10439064, 0.26643834, 0.05041243, 0.09185424, -0.32352915, 0.11295159) * go_3(0.0, 1.0); + result += mat4(0.09724027, -0.34962535, 0.06586686, 0.016635379, 0.13831381, 0.01707076, -0.04690347, 0.022350075, 0.018352794, 0.022000022, 0.070613205, 0.117735535, -0.025971051, 0.18832101, -0.09643588, -0.08512127) * go_3(1.0, -1.0); + result += mat4(-0.17324433, 0.06810613, -0.057295907, -0.05115964, -0.101570815, 0.12491774, 0.08762367, -0.005862404, -0.05342927, -0.031942457, -0.039624047, -0.04298937, -0.1303138, -0.11869282, -0.024832053, 0.070463404) * go_3(1.0, 0.0); + result += mat4(-0.010514842, 0.1376259, -0.11750346, -0.03786737, 0.03459249, 0.015408171, -0.031430878, -0.060825355, -0.072958425, -0.0037895301, 0.041686177, -0.12352204, -0.06261361, 0.054514423, -0.34072715, 0.13860728) * go_3(1.0, 1.0); + result += vec4(0.018166734, -0.11002478, -0.05554318, -0.0988193); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!SAVE conv2d_1_tf1 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.040142782, 0.0288423, 0.07569487, -0.01490842, 0.14402796, -0.13682005, 0.027765118, 0.03907358, 0.07117706, 0.058157545, -0.23862502, -0.057674367, -0.19220531, 0.0147159435, -0.18028538, 0.0963821) * go_0(-1.0, -1.0); + result += mat4(-0.1676744, -0.11937339, 0.12137117, 0.07119485, 0.14148116, -0.043578617, -0.029261118, -0.0016938087, -0.057269357, -0.080076694, 0.12193026, 0.07326153, -0.056278303, -0.01630716, -0.03792076, 0.1483611) * go_0(-1.0, 0.0); + result += mat4(-0.3021578, 0.011601693, 0.11266048, 0.19086999, -0.0122412145, 0.08431291, 0.11615175, -0.008039614, -0.39987534, 0.07820729, 0.03509667, 0.1963505, -0.08839513, -0.21571854, 0.059425723, -0.06830175) * go_0(-1.0, 1.0); + result += mat4(0.23135209, -0.12452708, 0.0943565, 0.0028859286, -0.09836373, 0.10681712, -0.3535964, 0.08457615, 0.045332734, 0.16579892, -0.03809797, -0.021596594, 0.2937497, -0.028294371, 0.046484597, -0.037604347) * go_0(0.0, -1.0); + result += mat4(0.072675414, -0.16431206, 0.28952035, 0.0076831076, -0.020242939, 0.029483542, -0.092415355, 0.08673106, 0.12109694, 0.14307201, 0.23134442, 0.11731775, 0.09981601, -0.16968462, 0.037470713, 0.14948717) * go_0(0.0, 0.0); + result += mat4(0.0029752052, 0.06526503, 0.1866458, 0.07451277, -0.31836876, 0.17115082, -0.13969697, 0.23844297, -0.03244903, -0.08832665, 0.023691226, -0.18230624, -0.074933805, -0.00044301842, 0.050572682, 0.081511915) * go_0(0.0, 1.0); + result += mat4(0.039502528, 0.051221415, -0.13968123, -0.091212444, -0.016925618, 0.15409444, -0.017455677, -0.11653652, 0.03539446, -0.00087720866, -0.12839639, 0.037198763, 0.03674469, -0.26444665, 0.019721227, -0.13013805) * go_0(1.0, -1.0); + result += mat4(0.039229527, 0.25667152, 0.0032586441, -0.00718359, 0.1617932, 0.10409968, 0.07182867, -0.09810605, 0.07789241, -0.02014911, 0.025767172, -0.14604759, 0.07175764, 0.32513744, -0.20473222, -0.16266066) * go_0(1.0, 0.0); + result += mat4(0.13418433, 0.061813723, -0.13927278, -0.2498272, 0.03468218, 0.29483125, 0.063289374, -0.04726235, 0.1898295, -0.33132064, 0.032045014, 0.02159535, -0.1148363, 0.31306976, 0.06456038, 0.048988886) * go_0(1.0, 1.0); + result += mat4(0.07151646, 0.2799246, -0.107190795, -0.16431166, -0.28007045, 0.07206954, 0.06775463, 0.009758042, 0.07032184, -0.20843789, 0.087045245, 0.1360676, -0.25718534, 0.028249472, -0.12614648, 0.009949602) * go_1(-1.0, -1.0); + result += mat4(0.020241471, -0.23390484, -0.0083223935, 0.08344701, 0.08222297, 0.12026539, -0.08652223, -0.08228822, -0.039576706, -0.24677879, -0.1157289, 0.2590508, -0.23809408, 0.19911982, -0.116798095, -0.035870325) * go_1(-1.0, 0.0); + result += mat4(0.024991842, 0.050509237, -0.024134455, -0.12659028, 0.24089767, 0.122712664, -0.10482493, -0.19403952, -0.19177693, -0.06538376, -0.041478425, 0.32176673, -0.1534002, -0.18680622, 0.06763643, 0.020806564) * go_1(-1.0, 1.0); + result += mat4(0.03437814, -0.28067374, 0.2830681, 0.038812317, -0.021698112, -0.120865285, 0.22695538, -0.045419116, -0.030475847, -0.01977341, -0.1265364, -0.3109814, 0.012255813, 0.053917278, -0.018620957, -0.14599285) * go_1(0.0, -1.0); + result += mat4(-0.016204128, -0.04093018, 0.054571863, 0.02679643, 0.01756274, -0.057685968, 0.16148666, 0.17370272, -0.11065411, 0.06378157, -0.09331551, 0.22985275, 0.057905316, 0.12323568, 0.07748665, 0.09878629) * go_1(0.0, 0.0); + result += mat4(-0.018112244, 0.063234635, -0.013184602, 0.16241394, 0.08877139, 0.02145378, -0.02490027, -0.038920373, 0.13127136, 0.14391647, 0.020553736, 0.14401346, 0.06685973, -0.25398204, 0.10369067, -0.055949755) * go_1(0.0, 1.0); + result += mat4(0.07710333, 0.047412727, 0.13813803, 0.18624061, 0.16907091, -0.039532468, 0.06234584, 0.06408178, -0.054543987, -0.045220226, -0.11093376, -0.37399602, 0.20372874, 0.004580967, -0.07742308, 0.017989937) * go_1(1.0, -1.0); + result += mat4(0.003485311, -0.08897399, -0.013108594, -0.19473282, -0.27081844, -0.16812073, 0.0052992934, -0.055331517, 0.09446357, 0.019280333, 0.16560757, -0.3230032, 0.043096773, 0.059222896, -0.064184934, -0.059852477) * go_1(1.0, 0.0); + result += mat4(0.06794279, -0.034135245, 0.083064295, 0.13506731, 0.13064219, -0.44978833, -0.03513717, 0.08999715, 0.1124541, 0.42208397, -0.0038724816, -0.014332087, -0.13751853, -0.04929869, 0.09134992, -0.17687531) * go_1(1.0, 1.0); + result += mat4(0.100909084, -0.0131197255, 0.082274795, -0.2138443, -0.08515947, -0.021058358, 0.10951775, -0.06349191, -0.29129833, -0.029262653, 0.25235432, -0.11748315, 0.121980384, 0.062347785, 0.10916932, -0.15993518) * go_2(-1.0, -1.0); + result += mat4(0.28893283, -0.05677308, -0.2641288, -0.058937225, -0.16187571, 0.006647366, -0.063294955, 0.04766719, 0.60601914, -0.07831864, -0.15710756, -0.011491797, 0.15587467, -0.08105375, 0.07847514, -0.2803333) * go_2(-1.0, 0.0); + result += mat4(-0.077989794, -0.09871811, -0.3516344, 0.15292728, 0.010889273, 0.0011189661, -0.16118282, -0.018821161, -0.039708678, -0.00060983415, -0.06367813, 0.009148068, 0.03919827, 0.18782744, 0.028040757, -0.10230145) * go_2(-1.0, 1.0); + result += mat4(-0.4079609, 0.18640275, -0.12475227, 0.13891742, 0.25121725, 0.16942379, 0.14409852, 0.087600805, 0.045335658, -0.12683709, -0.0077387216, 0.06563413, -0.19857128, 0.106910795, -0.048285246, 0.10768945) * go_2(0.0, -1.0); + result += mat4(0.5989075, 0.20941062, -0.20086494, 0.13344856, 0.073034994, 0.22358665, 0.101664364, -0.13463663, 0.18816395, -0.061176624, -0.14712185, 0.027320342, -0.09529667, 0.031148786, -0.28744993, 0.18698911) * go_2(0.0, 0.0); + result += mat4(0.14799193, 0.39471942, -0.23340325, -0.4031061, 0.18926248, -0.11091216, 0.118981816, -0.09155061, 0.17049436, 0.19803695, -0.1513267, 0.023817873, 0.0090933135, -0.04134864, 0.060486555, 0.03536634) * go_2(0.0, 1.0); + result += mat4(-0.39094314, 0.01779997, 0.12710269, 0.0067333193, -0.31255835, -0.08206612, -0.048528638, 0.369439, -0.19351655, -0.03420455, 0.15831526, -0.052294146, -0.08481741, 0.0787108, 0.1312136, -0.108919285) * go_2(1.0, -1.0); + result += mat4(-0.16068119, -0.42190582, 0.19383872, -0.018445708, 0.09803051, -0.020769652, -0.022599563, -0.052448895, -0.20645833, -0.031432863, 0.0025441595, 0.03410379, -0.20268854, 0.04481527, 0.05191063, 0.42317194) * go_2(1.0, 0.0); + result += mat4(-0.12786235, -0.23936178, 0.116561726, 0.30756372, -0.09420156, -0.044529166, -0.03585749, 0.1829332, -0.23939075, 0.24030831, 0.019878127, -0.015069802, 0.24300557, -0.22558568, -0.104956664, -0.09393648) * go_2(1.0, 1.0); + result += mat4(-0.04607054, 0.012677649, -0.027597688, 0.1618836, 0.29210827, 0.014221155, -0.13591036, -0.06895336, -0.09559534, 0.07956421, -0.11112994, -0.13325493, 0.24562472, 0.11046177, 0.057847694, 0.0016315983) * go_3(-1.0, -1.0); + result += mat4(-0.03365951, 0.027391057, 0.09653403, -0.14718771, -0.049631152, -0.06467214, -0.058545876, 0.1424002, -0.06320376, 0.181183, 0.10249362, -0.16052136, 0.3013475, -0.04156266, 0.08862033, 0.06888033) * go_3(-1.0, 0.0); + result += mat4(0.10045977, -0.004198456, -0.025856055, 0.05739418, -0.1328637, -0.025975171, 0.06553717, 0.11301186, 0.0704087, -0.083569765, 0.16066101, -0.24453588, 0.25370175, 0.037184533, 0.062386766, -0.20025635) * go_3(-1.0, 1.0); + result += mat4(-0.017958941, 0.06417776, -0.1525265, 0.12451173, 0.14567685, -0.0049682115, -0.23973411, -0.0783304, -0.010629432, 0.08055161, 0.2028341, 0.17640644, -0.20445108, -0.055524793, -0.019326134, 0.081288636) * go_3(0.0, -1.0); + result += mat4(0.007882519, -0.03722546, 0.053249408, 0.00071846246, -0.07053029, -0.21583866, 0.1415364, -0.19486657, 0.20685542, 0.17660026, -0.32156837, 0.1746825, -0.14957622, -0.09224378, -0.098153435, -0.13054638) * go_3(0.0, 0.0); + result += mat4(0.10051427, -0.17398237, 0.09842799, -0.14187703, 0.116901085, -0.1229543, -0.0007776771, -0.20410055, -0.11373484, -0.111150615, -0.1974002, -0.11641459, 0.024105398, 0.24985977, 0.015871854, -0.10724633) * go_3(0.0, 1.0); + result += mat4(-0.18081793, 0.1209351, -0.12867971, -0.019415248, 0.062617876, -0.037130393, -0.07803658, -0.22862352, 0.2586428, -0.030090366, -0.11894069, 0.18087515, -0.40921417, 0.070013195, 0.030540073, 0.035120826) * go_3(1.0, -1.0); + result += mat4(-0.13185939, 0.12992652, 0.08125049, 0.075331174, 0.064219765, 0.056629725, -0.020012032, -0.0855444, -0.044063166, -0.05396545, -0.028002812, 0.21837157, -0.15206428, -0.12681007, 0.14895032, 0.12339962) * go_3(1.0, 0.0); + result += mat4(0.08066341, -0.14773634, -0.0212227, -0.014011867, -0.048505764, 0.075407125, -0.020620076, 0.0003291325, -0.21815202, -0.23136546, 0.10853532, -0.036058456, 0.10952532, -0.052677035, -0.13005799, 0.18398996) * go_3(1.0, 1.0); + result += vec4(0.022609137, -0.028548084, 0.024431901, 0.010504478); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!SAVE conv2d_2_tf +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.069641694, 0.104958326, 0.14786446, 0.027633663, -0.004279524, -0.020451711, 0.0883571, -0.016224537, 0.13585235, 0.11078269, 0.20198658, -0.042161036, 0.020466218, 0.20994963, 0.20072585, -0.028024657) * go_0(-1.0, -1.0); + result += mat4(0.050872434, 0.12874635, 0.1298729, 0.115810685, 0.07087254, 0.09885682, 0.23018982, 0.19187538, 0.10953604, 0.0033836907, -0.13325337, 0.09830315, -0.06528767, 0.05096927, -0.016355392, -0.039334368) * go_0(-1.0, 0.0); + result += mat4(0.027010268, 0.018263958, 0.0360758, 0.016791478, 0.2815702, 0.15517488, 0.43415815, 0.044976447, -0.0070842914, -0.12546758, 0.16874593, 0.077622116, 0.02252915, 0.1769774, 0.07181055, -0.15128697) * go_0(-1.0, 1.0); + result += mat4(0.057129618, 0.118046716, 0.07237424, -0.07842637, -0.044214778, -0.12886304, 0.08603301, -0.10416606, -0.15852053, 0.3788151, 0.26181692, -0.09092249, 0.31635332, 0.064212754, 0.21923725, 0.07500004) * go_0(0.0, -1.0); + result += mat4(-0.16981383, 0.044409662, -0.3717617, -0.031610407, 0.03658662, -0.09459229, -0.09449437, -0.014000666, -0.19656453, 0.03934163, -0.16304104, -0.12761801, -0.06235523, 0.16438273, -0.036933117, -0.095564745) * go_0(0.0, 0.0); + result += mat4(0.09725091, 0.034022827, 0.17699842, 0.1079676, -0.13236652, 0.03718181, -0.06968635, -0.23288171, 0.10275666, 0.08464966, -0.37162134, -0.35782215, -0.11023659, 0.2519236, -0.035197742, -0.019324787) * go_0(0.0, 1.0); + result += mat4(-0.09968464, 0.01102193, 0.0073735216, 0.011999313, -0.004998707, 0.09518938, 0.045727003, -0.21544908, 0.006879454, -0.06398254, -0.12584935, -0.06759933, -0.0820037, -0.07775104, 0.021957919, -0.122708224) * go_0(1.0, -1.0); + result += mat4(-0.08869767, 0.031296413, -0.0034280645, 0.13778855, 0.10073061, -0.08393937, -0.032959275, -0.0500518, 0.010908757, -0.09189417, -0.057760105, 0.17652664, -0.08729078, -0.09639096, -0.25654703, 0.055152636) * go_0(1.0, 0.0); + result += mat4(0.0027847723, -0.12885433, 0.038065907, 0.17450769, 0.0864409, 0.04592345, -0.015443841, 0.077010944, 0.08967368, 0.06800111, -0.23636387, 0.35023567, 0.03165923, 0.03132063, 0.17964344, 0.035610788) * go_0(1.0, 1.0); + result += mat4(-0.032017227, -0.0022808525, -0.08470573, 0.05332408, -0.14674746, 0.025374275, -0.018281924, 0.041163016, 0.00096549373, 0.014724006, 0.004913065, 0.18494442, 0.034953076, -0.15731992, -0.13792977, 0.08041999) * go_1(-1.0, -1.0); + result += mat4(0.08305006, 8.6318905e-05, -0.007895379, 0.02731387, -0.061324496, 0.050034665, 0.22662131, -0.013876427, -0.074468784, -0.008136604, -0.23337875, -0.1742574, 0.011753501, -0.11666686, -0.22541048, -0.14549944) * go_1(-1.0, 0.0); + result += mat4(-0.028333234, 0.121047184, 0.06720256, -0.058930036, 0.030258363, 0.07292774, 0.06455556, 0.0019076486, 0.0073987027, 0.17144889, 0.06084024, -0.08762086, -0.114422195, -0.16595861, -0.08706028, -0.10736261) * go_1(-1.0, 1.0); + result += mat4(-0.02519315, -0.14611271, 0.0388848, 0.19481422, -0.05970354, -0.08391417, 0.18982239, -0.10447052, 0.15587378, -0.023997072, 0.0781739, 0.2182389, -0.023886079, -0.1422596, -0.13352804, 0.005008043) * go_1(0.0, -1.0); + result += mat4(0.08842712, -0.100292705, 0.18925671, 0.12198875, 0.061771665, -0.04473232, 0.025053164, 0.039047796, -0.1672479, -0.08934517, 0.33099812, -0.20269585, -0.21640155, -0.22029749, 0.16539703, -0.2442679) * go_1(0.0, 0.0); + result += mat4(-0.16332205, -0.101898365, 0.02919932, -0.11900455, 0.14442924, 0.0916815, 0.037550304, 0.024123482, 0.02042624, 0.033472955, -0.059437107, -0.18735693, -0.013749093, -0.06199881, -0.08685079, 0.04252364) * go_1(0.0, 1.0); + result += mat4(-0.09047013, -0.055188328, -0.09106191, -0.048969727, 0.05114009, -0.12753403, 0.07116141, 0.060749624, -0.074034564, -0.21952136, -0.09479503, 0.2753584, -0.014141759, -0.14883812, -0.0673838, -0.012279045) * go_1(1.0, -1.0); + result += mat4(0.013816464, -0.0747162, -0.19202435, -0.064403646, 0.34980014, 0.04375546, 0.20264609, 0.006684355, 0.11523799, 0.024674915, -0.08697566, -0.04662527, -0.12743855, -0.39463726, 0.0057380227, 0.01286557) * go_1(1.0, 0.0); + result += mat4(-0.08146522, 0.074080914, -0.16856177, -0.183158, 0.19228102, 0.12373886, 0.017574452, -0.01753772, 0.045071773, 0.07725093, 0.023422163, -0.011545186, 0.20751388, -0.10795588, 0.07606346, 0.10282933) * go_1(1.0, 1.0); + result += mat4(0.12512013, -0.102208994, -0.09125398, 0.12043188, -0.066011876, 0.08831903, -0.017038671, -0.005541508, -0.049607087, 0.08654939, -0.02037085, 0.26887566, 0.005012545, 0.01869507, -0.013064982, -0.010649147) * go_2(-1.0, -1.0); + result += mat4(0.006824864, -0.05071593, -0.20786697, -0.07327317, 0.011382597, 0.030494886, -0.04754353, -0.018284699, 0.01305972, -0.036589053, 0.26637617, 0.021887446, -0.026669119, -0.037982125, -0.063445956, -0.009104248) * go_2(-1.0, 0.0); + result += mat4(0.032602567, 0.07094331, 0.052653246, 0.08342047, -0.085082285, -0.14674088, -0.23073354, -0.07915851, 0.0017120204, 0.032407638, -0.039819505, 0.16942178, 0.023192152, -0.0353237, 0.10930186, 0.22939779) * go_2(-1.0, 1.0); + result += mat4(0.0010455973, -0.11821993, -0.12639599, 0.12250084, -0.12756817, 0.11478416, -0.1862587, 0.016819192, 0.02110181, -0.25492984, -0.1766048, 0.22188173, -0.21305011, 0.113442205, 0.04599144, -0.15840286) * go_2(0.0, -1.0); + result += mat4(-0.15086032, -0.17428935, 0.39080557, 0.07576757, 0.121703945, 0.17944208, -0.003140103, -0.11231332, 0.12102969, 0.15310267, 0.17578171, 0.40631834, -0.21299168, 0.024928993, 0.030104794, 0.020753227) * go_2(0.0, 0.0); + result += mat4(-0.098734386, -0.020072265, -0.14308836, -0.08490801, 0.017175158, 0.02250534, 0.04060829, 0.033022214, 0.0046218676, 0.17923212, 0.0112105915, 0.09574084, 0.14819936, -0.14692923, 0.12634254, 0.060762513) * go_2(0.0, 1.0); + result += mat4(0.030521613, -0.097913325, -0.016720278, 0.11273997, 0.013019863, -0.06557118, 0.0405774, 0.0915019, 0.022414956, -0.053254984, 0.18639986, 0.07820968, 0.06498986, 0.058922634, -0.02240318, -0.086019725) * go_2(1.0, -1.0); + result += mat4(0.2058775, 0.01502064, 0.05847032, 0.007249146, 0.086483665, 0.19420148, 0.03892261, -0.013546935, -0.07980237, 0.04347281, -0.10376214, -0.1366535, 0.05285337, 0.07213318, 0.3642818, -0.11331124) * go_2(1.0, 0.0); + result += mat4(-0.025740806, 0.14551482, -0.037410017, -0.17477523, -0.11853099, -0.060820814, -0.102599286, -0.13267937, -0.103053465, -0.014044828, -0.01888072, -0.06499249, 0.22311528, -0.051850274, -0.034120858, 0.044562567) * go_2(1.0, 1.0); + result += mat4(-0.21360217, 0.10093803, -0.0016407765, -0.1473997, 0.26524043, 0.02112132, 0.23173104, -0.013157391, 0.05945182, 0.044635538, 0.06031638, -0.21435826, -0.10147484, 0.069090195, 0.09641844, -0.09581093) * go_3(-1.0, -1.0); + result += mat4(-0.08576515, -0.122861005, 0.049567085, -0.085854456, 0.23809357, -0.024966082, -0.10294079, 0.046241313, 0.008621132, -0.08323767, 0.20277941, 0.163423, -0.07386535, -0.088738985, 0.05274358, -0.025479877) * go_3(-1.0, 0.0); + result += mat4(-0.041135542, -0.008365642, 0.17088248, 0.04025207, 0.13809255, -0.056895368, -0.01582834, 0.07361908, -0.00068995473, -0.09300962, 0.19117641, 0.24832036, -0.06572358, -0.026025, -0.019093119, -0.049720034) * go_3(-1.0, 1.0); + result += mat4(0.024900286, 0.11525501, 0.025882801, 0.037742402, 0.36976853, 0.052211333, -0.15143296, 0.1802276, -0.059080046, 0.017990451, 0.026395092, -0.12689115, -0.07705386, 0.1232379, 0.13273561, -0.12521964) * go_3(0.0, -1.0); + result += mat4(-0.19788785, 0.044887315, 0.07663442, 0.16688696, -0.2842248, -0.15684547, 0.028387763, 0.0063470444, -0.012245601, -0.038382255, -0.8187406, -0.25245667, 0.23014604, 0.22746666, 0.1594356, 0.16469443) * go_3(0.0, 0.0); + result += mat4(-0.12663333, 0.014730006, 0.03765697, 0.15704912, -0.106595434, -0.05317512, -0.081759915, -0.08797109, 0.064620756, -0.06341419, 0.16493447, 0.23102313, 0.068325415, -0.088058695, 0.16885915, 0.036382258) * go_3(0.0, 1.0); + result += mat4(0.035389822, -0.11811836, -0.035656307, -0.0680554, 0.1338908, 0.065852076, 0.023307983, 0.0675308, 0.09690683, 0.18170924, 0.09862692, -0.20964378, -0.08601271, -0.20016764, -0.01879598, -0.14629345) * go_3(1.0, -1.0); + result += mat4(-0.27183273, 0.013525998, -0.14995874, -0.23938845, -0.26218823, -0.0009874097, -0.13385512, -0.10664239, -0.048931994, 0.039898522, 0.047444753, 0.10934722, 0.10969629, 0.123539805, 0.11692802, 0.14172275) * go_3(1.0, 0.0); + result += mat4(-0.1656506, 0.019683002, 0.0221048, 0.12596753, 0.20420644, -0.07930122, 0.04653823, 0.11492255, -0.0050175437, -0.03271697, 0.013389486, 0.034583613, -0.2196601, -0.1615663, -0.013763388, -0.056037936) * go_3(1.0, 1.0); + result += vec4(-0.022956269, 0.029688787, -0.070148066, -0.07163476); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!SAVE conv2d_2_tf1 +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.15104648, 0.05522861, -0.0654341, -0.053517453, -0.08264124, -0.0062249107, -0.20364265, -0.05015117, -0.18837251, 0.030655831, 0.046844713, -0.20673253, -0.14042036, -0.05655449, 0.13994302, 0.011745607) * go_0(-1.0, -1.0); + result += mat4(-0.16517559, 0.1489214, -0.09149559, 0.025003506, -0.124926426, 0.16974348, -0.020857265, 0.08017403, 0.21836148, 0.0025619378, 0.2331612, 0.085599184, -0.030934382, -0.055194855, 0.09527726, -0.10081552) * go_0(-1.0, 0.0); + result += mat4(0.041800212, 0.028859638, 0.09395546, 0.05211183, -0.038541477, 0.021495212, 0.04862346, -0.007864793, 0.038407274, -0.13841268, -0.14963801, 0.26470762, 0.16691841, -0.07262008, 0.034374326, -0.14709206) * go_0(-1.0, 1.0); + result += mat4(0.00094978884, -0.028974704, -0.0900548, -0.08401967, -0.08935931, -0.043606587, -0.14497143, -0.05226239, -0.21516493, 0.19410603, -0.089924194, -0.04335071, -0.012618276, -0.2671613, 0.020422975, -0.037739716) * go_0(0.0, -1.0); + result += mat4(-0.13403237, -0.02524383, -0.03474901, 0.054432765, 0.11946775, 0.107336655, -0.1431715, -0.13370377, 0.015087512, -0.1917613, 0.073493585, 0.2788855, -0.010510839, 0.06891479, -0.06741307, -0.05271205) * go_0(0.0, 0.0); + result += mat4(-0.15432046, 0.04021662, -0.16979513, 0.13660534, -0.10518303, -0.10095502, -0.13092068, 0.022805348, -0.16676381, -0.4273298, 0.020867536, 0.3506733, -0.29459694, -0.055828743, -0.069241956, 0.04106382) * go_0(0.0, 1.0); + result += mat4(-0.08890133, 0.07549666, -0.040735144, -0.1506932, -0.22227979, -0.0762723, -0.17766447, -0.05741318, -0.21885683, 0.2379157, -0.15525854, -0.07306285, 0.15580738, -0.04394069, -0.19175608, 0.018283797) * go_0(1.0, -1.0); + result += mat4(-0.08503275, -0.105500385, -0.114987396, -0.07166016, -0.2147138, 0.09378708, 0.24550334, -0.0834075, -0.033147786, -0.022304727, -0.31062204, 0.027651973, 0.109098755, 0.18889032, 0.1163026, 0.13863255) * go_0(1.0, 0.0); + result += mat4(0.15266588, -0.14901319, 0.033916786, 0.09381096, -0.08196443, -0.16194504, 0.035789456, 0.21234898, -0.48724765, 0.2619442, -0.11215393, 0.25061038, 0.022344576, 0.0116525125, 0.111661114, -0.15242295) * go_0(1.0, 1.0); + result += mat4(0.020475458, 0.0797404, -0.13576819, 0.009681671, 0.030504882, 0.049232908, 0.022025917, 0.16912088, -0.23914136, -0.084663324, 0.020925451, -0.1023938, 0.035916872, -0.07538111, -0.11470242, 0.15238516) * go_1(-1.0, -1.0); + result += mat4(-0.12941381, 0.08509899, -0.029489802, -0.09148447, -0.089406274, -0.116145454, -0.08979843, 0.11908148, 0.15473351, -0.21687616, 0.12607013, -0.08244334, -0.079580925, -0.16613089, -0.09287793, -0.03412643) * go_1(-1.0, 0.0); + result += mat4(-0.023578499, 0.07394217, -0.13069086, -0.1060499, -0.07559958, -0.21839201, 0.1090753, 0.0787872, 0.07677037, -0.25998843, 0.20039314, 0.046882212, 0.31871012, -0.3048051, 0.15118991, -0.00518087) * go_1(-1.0, 1.0); + result += mat4(-0.15338503, -0.11057532, 0.075839415, -0.18592294, -0.0155324, 0.038140323, -0.10498194, 0.09070477, 0.05108992, -0.047939524, -0.091004305, 0.09649005, -0.10967152, -0.051909525, -0.05314551, 0.09661584) * go_1(0.0, -1.0); + result += mat4(-0.14458802, -0.053263694, -0.0010885567, 0.23342133, 0.01918937, 0.12026143, -0.15691495, 0.30480555, -0.08725869, 0.19082253, 0.3594973, 0.016653897, 0.045152336, -0.088590585, 0.0069655925, 0.1392425) * go_1(0.0, 0.0); + result += mat4(0.17944881, -0.17950764, 0.13282645, 0.030974053, 0.32233685, 0.18067117, -0.11472813, 0.097301506, -0.047649745, -0.1053861, -0.081039384, 0.035132434, 0.10204545, 0.085582554, -0.13153993, -0.021741152) * go_1(0.0, 1.0); + result += mat4(-0.15573682, 0.16409989, -0.22574787, -0.03877603, -0.18285516, 0.11638645, 0.18321282, -0.017770218, 0.18230622, 0.16433364, -0.12795393, -0.03805153, 0.14386104, -0.0891527, -0.056928284, -0.10961495) * go_1(1.0, -1.0); + result += mat4(0.257622, 0.052519716, -0.25421762, -0.1887382, -0.083568096, -0.0064690276, -0.029110614, 0.103327505, -0.17006217, 0.2254096, -0.29366904, 0.04302887, -0.10198446, -0.24423616, 0.16781262, -0.005019004) * go_1(1.0, 0.0); + result += mat4(0.103393994, -0.059044626, -0.18192382, 0.0990813, -0.26143607, 0.11036474, 0.04788275, -0.096738026, 0.12825653, 0.13631694, -0.077904984, -0.020790676, -0.25118098, 0.122588515, -0.049440473, -0.10758222) * go_1(1.0, 1.0); + result += mat4(0.06693113, -0.13647175, 0.131139, 0.13143918, 0.081720434, 0.117537096, 0.15387627, -0.008771362, 0.08513583, 0.023794742, -0.0661625, 0.115793936, 0.0023350024, 0.02215075, -0.0494433, -0.013404977) * go_2(-1.0, -1.0); + result += mat4(0.041419264, -0.17622781, 0.028418267, 0.12114493, -0.23587078, 0.08457395, 0.014364018, -0.103271864, -0.051572207, -0.026424447, 0.16755055, -0.10763651, -0.033440586, 0.068594255, -0.050668504, 0.1941505) * go_2(-1.0, 0.0); + result += mat4(-0.2780181, 0.037816502, -0.11516711, -0.09822884, 0.13762361, -0.14317706, 0.14350282, 0.000623895, -0.08601606, 0.08118504, 0.15497385, -0.04721711, -0.008936935, -0.014223618, -0.09641698, -0.013884213) * go_2(-1.0, 1.0); + result += mat4(0.14349665, -0.03144472, -0.057813704, 0.0667044, 0.09026094, 0.051366236, 0.11139983, -0.015782114, -0.18314016, -0.18774192, 0.0014838242, 0.15759028, 0.062388215, 0.13626057, 0.02576217, -0.06317815) * go_2(0.0, -1.0); + result += mat4(0.07151769, 0.14508991, 0.1736844, -0.11487795, -0.07999805, -0.07797908, 0.037923355, -0.059138823, -0.23531209, -0.040207293, -0.068355694, -0.024296658, -0.114820175, 0.19726487, 0.21772414, 0.03659222) * go_2(0.0, 0.0); + result += mat4(0.16858695, -0.12135113, 0.009391182, -0.081519485, 0.13340487, 0.07007004, 0.094124354, 0.035519842, -0.3320139, -0.06624027, -0.14716229, -0.09205287, 0.12664132, -0.05655441, 0.0123263765, 0.04641279) * go_2(0.0, 1.0); + result += mat4(0.19018422, -0.15428329, -0.009354114, 0.04165953, 0.11024837, -0.107493006, -0.05807292, -0.048029456, 0.24319384, -0.10542357, -0.013699952, 0.06228662, -0.06808749, -0.023227982, 0.16528323, -0.05610251) * go_2(1.0, -1.0); + result += mat4(-0.008616222, 0.077674195, -0.08638503, 0.09293109, 0.072474636, 0.05004233, -0.20591061, -0.005301386, -0.15486047, 0.15038474, 0.1262478, 0.021724822, 0.02274613, -0.3088281, -0.08437887, -0.10684698) * go_2(1.0, 0.0); + result += mat4(-0.16960032, 0.09365251, -0.030414175, -0.010766254, 0.18181023, 0.12130318, 0.08913089, -0.06070321, 0.05200306, 0.092584535, 0.17694671, 0.033796314, -0.038107123, -0.04335955, -0.049443472, 0.30465958) * go_2(1.0, 1.0); + result += mat4(0.07661484, -0.009945252, 0.12866217, -0.07592757, -0.21030053, 0.014371748, -0.072458774, -0.04700072, 0.15534303, 0.2007125, -0.15699059, -0.032897495, 0.08110436, -0.11243608, 0.008632577, -0.10153441) * go_3(-1.0, -1.0); + result += mat4(-0.034697928, 0.06928288, -0.2796273, 0.14405379, 0.12248569, 0.036539096, 0.06607706, 0.077684596, -0.16473202, 0.1665916, -0.29977503, 0.21047153, 0.13114224, -0.091579035, -0.045458574, 0.03254245) * go_3(-1.0, 0.0); + result += mat4(0.053284872, 0.053366095, -0.26152626, -0.03123967, -0.031794485, 0.17670582, -0.07450994, 0.017521491, -0.040290453, 0.38342363, -0.25021288, -0.014660264, 0.1621895, 0.25041878, -0.12124821, 0.068036206) * go_3(-1.0, 1.0); + result += mat4(0.11366693, -0.030863572, -0.07411263, 0.12475283, -0.046070684, -0.09033321, 0.013222701, 0.06798592, -0.32814804, 0.057653826, -0.14082801, -0.00217398, -0.22856179, -0.19058353, -0.20992154, -0.03701372) * go_3(0.0, -1.0); + result += mat4(0.20345633, -0.1332355, 0.27152926, -0.13477845, -0.25242096, -0.28281286, 0.31289554, 0.14284514, 0.53362453, -0.46766588, 0.4518293, -0.39291728, -0.3573227, -0.014670052, 0.0051881406, 0.16552156) * go_3(0.0, 0.0); + result += mat4(-0.15017267, -0.07792945, -0.204405, 0.13964304, -0.13642666, -0.10228306, 0.03238279, -0.08689329, -0.072262034, -0.0258388, 0.05689183, 0.055701543, -0.19800112, 0.012217054, -0.033292748, -0.047611095) * go_3(0.0, 1.0); + result += mat4(-0.014704416, -0.12203891, 0.066083655, -0.1409769, 0.0041513643, -0.087383606, -0.17498164, 0.11327789, -0.25947225, -0.0016027623, 0.08202566, 0.042270098, 0.006429511, -0.26576808, -0.08461341, 0.049376782) * go_3(1.0, -1.0); + result += mat4(0.0695189, -0.14753938, 0.09578246, -0.16607563, -0.0105561055, 0.17166016, 0.027422488, -0.14175262, -0.009492696, -0.23449713, 0.018270867, 0.14635146, 0.33451268, 0.030959005, -0.46468422, 0.024256868) * go_3(1.0, 0.0); + result += mat4(-0.16865666, -0.00015881563, -0.054488145, -0.06222717, -0.032101758, 0.06485387, -0.0028512608, 0.046645947, 0.017593225, -0.19447896, -0.024742266, 0.03970127, 0.29845607, -0.16168733, 0.035172883, 0.07924657) * go_3(1.0, 1.0); + result += vec4(0.103826486, 0.045373913, 0.11565896, -0.06568643); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!SAVE conv2d_3_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.1851775, 0.053705044, 0.033816848, -0.018555025, -0.21204336, -0.01706974, 0.088259794, -0.13126148, 0.10729598, -0.043457437, 0.08634712, 0.09220895, 0.062131613, -0.01995871, 0.05181067, 0.18520063) * go_0(-1.0, -1.0); + result += mat4(0.1662002, -0.14197104, -0.052809287, 0.025287712, -0.08330898, -0.08998097, -0.15642618, -0.14941245, -0.03481203, 0.061857622, 0.26051775, -0.0005498248, 0.086427025, 0.024108192, -0.12418039, 0.022286376) * go_0(-1.0, 0.0); + result += mat4(0.058200672, -0.3073398, 0.17150162, -0.13394679, -0.075118184, -0.14607768, -0.006172172, 0.007731589, -0.21818224, -0.06449433, -0.038958784, 0.037722416, 0.28699976, -0.027563032, 0.23295315, 0.028444216) * go_0(-1.0, 1.0); + result += mat4(0.12871371, 0.0064904913, 0.14985761, -0.10923005, 0.17413563, 0.1599109, -0.08457703, 0.108153716, -0.08871187, -0.06661137, 0.2754416, -0.009667768, 0.39819396, 0.12392097, 0.14145902, 0.0019376524) * go_0(0.0, -1.0); + result += mat4(0.13893189, 0.12715353, 0.015191678, -0.21003054, -0.030412354, -0.01676613, -0.19799289, -0.006130075, 0.37676954, -0.14475077, -0.2065198, -0.30432892, -0.14944535, -0.09121536, -0.107600585, -0.24462196) * go_0(0.0, 0.0); + result += mat4(-0.11653076, -0.0068671284, -0.02249137, -0.17877012, -0.15063138, -0.13514869, 0.107643366, -0.03196477, -0.086422764, 0.3079287, 0.17584166, -0.032449376, -0.06917114, -0.2682637, -0.18978168, -0.037039287) * go_0(0.0, 1.0); + result += mat4(0.12014731, -0.030360512, -0.12954475, -0.110275604, -0.077214256, 0.019689744, 0.22149551, -0.002266716, 0.09697784, -0.124532826, -0.16776511, -0.034212478, -0.36935154, 0.016926935, 0.1363609, 0.20415346) * go_0(1.0, -1.0); + result += mat4(-0.11199535, -0.001692563, -0.09058429, -0.08437503, 0.092625685, 0.06046257, 0.25509837, -0.011657033, -0.17949764, -0.10718947, -0.1180669, -0.24681842, -0.1747311, 0.0014518246, -0.042863015, 0.06103357) * go_0(1.0, 0.0); + result += mat4(0.14979295, -0.037154514, 0.01957725, 0.012282435, 0.09168596, -0.05552286, 0.111671515, 0.0078630615, -0.10319766, -0.06416261, -0.23097566, -0.13931875, 0.2110811, 0.013095802, -0.2306504, -0.025639111) * go_0(1.0, 1.0); + result += mat4(-0.10091975, -0.10095426, -0.023449723, -0.022170888, 0.054953706, -0.13049407, 0.08289061, 0.023241632, 0.08735388, -0.0058387457, 0.17897247, 0.011434436, 0.008181139, -0.0034718404, -0.015372735, -0.07657766) * go_1(-1.0, -1.0); + result += mat4(-0.023442164, 0.07535702, 0.024391165, -0.050532013, 0.044168636, 0.0062343236, -0.019756999, -0.009695123, 0.10102337, 0.0052776975, -0.14944167, -0.060957722, 0.24367364, -0.08069369, 0.12170072, -0.047048368) * go_1(-1.0, 0.0); + result += mat4(-0.18376935, -0.08407229, -0.12943378, 0.0738419, -0.12404976, -0.13367929, 0.11265896, -0.021353, 0.003783386, 0.50088304, 0.14058582, 0.041053623, 0.038247623, -0.014179976, 0.007905778, -0.042492237) * go_1(-1.0, 1.0); + result += mat4(-0.046272535, 0.052449115, 0.17190954, -0.004745371, -0.045572635, -0.09292636, 0.36309823, 0.16673928, -0.099154025, -0.109614775, 0.17803112, 0.19907133, -0.14306267, 0.06898593, 0.11493454, 0.06795014) * go_1(0.0, -1.0); + result += mat4(0.26181114, -0.044014625, -0.21605036, -0.08646438, 0.21038742, -0.084986, 0.0504626, 0.17514943, -0.25218952, -0.18691514, 0.057650108, 0.08653614, -0.101205684, 0.03176334, 0.18569492, 0.17973189) * go_1(0.0, 0.0); + result += mat4(-0.0339215, 0.20112811, -0.12986277, 0.028961731, -0.056813832, 0.04451147, -0.07827432, -0.0860976, 0.096853435, 0.3483546, -0.35758162, -0.11749375, -0.035918653, 0.06140711, -0.08520154, 0.02418808) * go_1(0.0, 1.0); + result += mat4(-0.09643022, -0.10491069, 0.0068604187, 0.023679713, 0.096521445, -0.29323488, 0.33353668, 0.112864286, -0.1172182, -0.07233183, 0.06607239, 0.08589609, 0.055790007, 0.14396138, -0.14191268, 0.00034840964) * go_1(1.0, -1.0); + result += mat4(0.15357164, -0.038462736, 0.08143956, 0.1744909, 0.40503287, -0.114508316, 0.003937322, 0.2536635, -0.042445306, -0.15622465, 0.09155284, 0.010992155, -0.20646071, 0.022801135, 0.08894491, 0.069300614) * go_1(1.0, 0.0); + result += mat4(-0.12663515, 0.023849454, -0.053604446, 0.12082873, -0.247968, -0.020969635, -0.03831894, -0.014617553, 0.22630337, 0.037801865, 0.052950703, 0.04285706, -0.14487264, 0.20786528, -0.08719664, 0.1752347) * go_1(1.0, 1.0); + result += mat4(-0.073527604, -0.050752833, 0.051830504, 0.32868716, 0.17474994, 0.016937364, -0.08792601, -0.024481766, -0.022229593, 0.030706186, 0.09213566, -0.076506205, 0.073404044, 0.10368055, -0.175889, -0.08453031) * go_2(-1.0, -1.0); + result += mat4(-0.06838216, 0.007698341, 0.063972116, -0.015604406, 0.16135305, 0.18044342, 0.024137018, -0.23326185, 0.13235588, -0.009096587, -0.058368143, -0.077040404, 0.0011419816, -0.09246194, 0.061036937, 0.049564146) * go_2(-1.0, 0.0); + result += mat4(0.023225296, -0.00060856267, -0.07775185, 0.016958566, -0.2641349, -0.08263046, -0.15350416, -0.30203494, 0.113956556, -0.010813236, -0.017738314, -0.13689043, -0.10318342, 0.025793184, -0.010336172, 0.09733422) * go_2(-1.0, 1.0); + result += mat4(-0.04462596, 0.052866418, -0.34754288, 0.05540498, -0.24492586, -0.32016864, 0.18145293, 0.24873725, 0.32388234, -0.034801524, -0.1347588, -0.07565546, 0.015183539, 0.05059595, 0.08090056, 0.05930932) * go_2(0.0, -1.0); + result += mat4(0.045346696, -0.052527856, 0.052270077, 0.13417454, 0.05200045, 0.028119288, 0.005115497, 0.22952151, -0.2158375, 0.12241308, 0.3507457, 0.08616576, 0.07592416, 0.28470486, 0.3432788, 0.24857087) * go_2(0.0, 0.0); + result += mat4(0.21311626, 0.052607164, 0.1248861, 0.20193806, 0.045226507, 0.14512901, -0.15103437, -0.17926466, 0.11657411, -0.32711068, -0.16332194, -0.07793982, -0.21802668, 0.5183869, -0.13567342, 0.07823041) * go_2(0.0, 1.0); + result += mat4(0.00796368, 0.048073012, -0.14537893, -0.021708772, 0.036246423, 0.1062395, 0.12605369, 0.007073524, -0.1572743, 0.07439501, 0.089162275, -0.0039608316, 0.332032, -0.05461242, -0.17615359, -0.10240517) * go_2(1.0, -1.0); + result += mat4(0.20636982, -0.0024615112, -0.10625786, 0.024270926, 0.061810836, -0.13585201, -0.16581286, 0.23549418, 0.01928842, 0.07404979, -0.054449487, 0.04096373, 0.046939734, 0.003980803, 0.02111498, 0.064925276) * go_2(1.0, 0.0); + result += mat4(0.10485388, 0.06850885, -0.11292169, 0.16991565, -0.15282536, 0.124175504, -0.050431166, -0.06689582, -0.00059811946, 0.033696912, 0.11055047, 0.033060126, -0.17472714, 0.0048819613, -0.04478706, -0.1344572) * go_2(1.0, 1.0); + result += mat4(-0.20473132, 0.056477875, 0.059559986, 0.115130566, -0.058425788, -0.035971727, 0.08334707, -0.096510135, -0.23206294, 0.10635798, -0.21575621, -0.07063254, 0.03877511, -0.107549034, 0.22248401, 0.21702304) * go_3(-1.0, -1.0); + result += mat4(-0.02557767, 0.09886609, -0.100499466, 0.16687396, -0.084830604, 0.03150401, -0.049512494, 0.05595696, -0.13193256, -0.08585273, 0.14247662, 0.12290477, -0.07168309, 0.14531752, -0.048359327, 0.27716598) * go_3(-1.0, 0.0); + result += mat4(0.13297586, 0.20674329, 0.14469388, 0.08981846, -0.004231366, -0.02819193, 0.15470329, 0.17299837, 0.113062344, -0.22716297, -0.21754944, -0.00083956274, -0.14160508, 0.1808253, 0.11268379, 0.27335623) * go_3(-1.0, 1.0); + result += mat4(0.07497518, -0.06799594, -0.018158078, -0.00038999433, -0.15169668, -0.06928238, -0.33672288, -0.105485775, 0.33106267, 0.06698315, 0.019718744, -0.06810211, -0.35186404, -0.29145968, -0.056863394, 0.21498048) * go_3(0.0, -1.0); + result += mat4(-0.013215512, -0.24763754, 0.20965266, 0.1068435, -0.13234195, 0.053566497, 0.05061848, -0.28645232, 0.15518288, 0.23247199, 0.017553907, -0.25181335, -0.048030723, -0.06663929, -0.111026704, -0.12663394) * go_3(0.0, 0.0); + result += mat4(-0.010501938, -0.17995767, 0.06010859, 0.050185587, 0.108627126, -0.101203434, 0.07558728, 0.060466755, -0.106942676, -0.35854608, 0.16015992, 0.16823332, -0.06543775, -0.37310675, 0.014043972, -0.18328045) * go_3(0.0, 1.0); + result += mat4(0.09712849, 0.013983463, 0.07291423, 0.031715546, 0.030862397, 0.045510456, -0.22066842, 0.063464865, 0.11721659, -0.10596602, -0.20611264, 0.052158818, -0.3961766, -0.03781582, 0.17633812, 0.1316111) * go_3(1.0, -1.0); + result += mat4(-0.25029674, 0.07153423, -0.35125682, -0.18255402, -0.19569087, 0.00432772, -0.0969035, -0.24648514, -0.0040922165, 0.037500706, -0.038137026, 0.056214277, -0.048258524, 0.03567822, -0.05033007, -0.24696785) * go_3(1.0, 0.0); + result += mat4(-0.03465209, -0.012495964, 0.22782089, 0.012034795, 0.2916752, 0.08264436, 0.15387125, -0.1473455, -0.15614432, 0.05536727, -0.027079755, 0.010725311, -0.03325222, -0.089212805, -0.10559839, -0.19647683) * go_3(1.0, 1.0); + result += vec4(0.0001705175, -0.031081453, 0.010100773, -0.027214011); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!SAVE conv2d_3_tf1 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.026301445, -0.021575214, 0.22165509, 0.059994068, 0.03341161, 0.1831188, 0.20342293, 0.110160105, 0.03908121, 0.020673111, 0.07239561, 0.038754333, 0.15266368, 0.16526422, 0.062376205, -0.09759537) * go_0(-1.0, -1.0); + result += mat4(0.19817191, 0.10267733, 0.17744653, 0.23283184, 0.18810122, 0.2708428, -0.12651879, 0.020756349, 0.039632563, -0.22201295, 0.04873703, 0.09159713, 0.13838065, 0.21169297, 0.30816007, 0.044463675) * go_0(-1.0, 0.0); + result += mat4(-0.27859214, 0.07277634, 0.0021458792, 0.0089682285, -0.069680706, 0.090415835, -0.057762265, 0.18703683, -0.03514389, -0.102816254, -0.036509827, 0.038066104, -0.0168311, 0.094478935, 0.04079697, -0.049064912) * go_0(-1.0, 1.0); + result += mat4(-0.20913245, -0.110538535, -0.08584027, -0.1222067, 0.05414807, -0.045247085, 0.07351766, -0.002078549, -0.1270987, -0.10164512, -0.1857815, 0.08845066, -0.03743333, -0.098948084, 0.21244387, 0.10441866) * go_0(0.0, -1.0); + result += mat4(0.015990427, 0.36396438, -0.24094687, 0.30236533, -0.13271736, 0.06057376, -0.19678196, -0.28577125, -0.25427434, -0.08400598, 0.07284403, -0.18552442, -0.16425897, 0.097259276, -0.32386774, -0.2190484) * go_0(0.0, 0.0); + result += mat4(-0.004581924, -0.13954072, -0.122360416, 0.14132866, -0.08529257, -0.013296556, 0.0848472, 0.09336581, 0.10332182, -0.016313016, 0.07103558, 0.032564916, -0.13478759, -0.20207484, 0.12986964, 0.1219679) * go_0(0.0, 1.0); + result += mat4(0.09817874, -0.10573357, 0.100535244, 0.19608764, -0.13303067, 0.024192972, -0.030689823, 0.02574889, 0.051233094, 0.03489235, -0.18465245, -0.06943822, -0.031604882, 0.1519888, 0.09348508, 0.09187296) * go_0(1.0, -1.0); + result += mat4(-0.21365458, -0.23696984, 0.13097638, -0.09435498, 0.16467983, -0.066370346, 0.1269104, -0.095128186, 0.09954892, 0.12489504, -0.43418056, 0.106512725, -0.17860703, -0.07114084, -0.07630834, -0.26642478) * go_0(1.0, 0.0); + result += mat4(-0.009044342, 0.02711196, -0.14873673, 0.015405045, 0.0071443473, -0.025285944, 0.07409282, 0.06338527, 0.0149676185, 0.011741382, -0.2133069, -0.028912885, 0.19420496, 0.039629057, 0.057636812, 0.15214856) * go_0(1.0, 1.0); + result += mat4(0.07629928, 0.25540486, -0.050925937, -0.18136702, 0.02261603, 0.22343902, 0.003270321, 0.10735731, -0.12541203, -0.10208828, 0.012832783, 0.2591262, 0.08122926, -0.009837677, 0.10308358, 0.19236866) * go_1(-1.0, -1.0); + result += mat4(0.0896358, 0.27571487, 0.04406029, -0.047453407, -0.08587119, 0.16366854, 0.20622262, 0.08347545, -0.3501584, -0.28434548, -0.07592983, 0.09098784, 0.07605388, 0.09677056, 0.0015295541, 0.05102585) * go_1(-1.0, 0.0); + result += mat4(0.18255898, 0.18618028, 0.0017002645, -0.013004655, -0.06436534, 0.13967068, 0.063077755, -0.10632303, -0.20803222, -0.028537111, -0.03144366, -0.08555215, 0.05154303, 0.02431626, 0.15246728, -0.013708507) * go_1(-1.0, 1.0); + result += mat4(-0.020998938, -0.05026291, 0.03700117, 0.00830308, -0.1949294, 0.0026698054, -0.034649856, 0.19784226, -0.083901435, -0.069783084, -0.1504053, 0.16595264, -0.07480141, 0.16067508, 0.06010996, -0.021359695) * go_1(0.0, -1.0); + result += mat4(-0.040828142, -0.20158486, 0.034770954, -0.1894161, 0.11665004, 0.29729164, -0.10584386, 0.13165873, -0.18863006, -0.26719162, -0.047613148, -0.12728356, -0.2033613, 0.10550052, 0.20095508, -0.11275811) * go_1(0.0, 0.0); + result += mat4(-0.0785033, -0.1896073, -0.051492307, -0.1694358, 0.1368308, 0.049355216, -0.05707422, 0.079159185, 0.024578957, -0.0923136, 0.089215435, 0.28670043, 0.027932687, 0.06510816, 0.10810999, 0.05990052) * go_1(0.0, 1.0); + result += mat4(0.08135192, 0.0001326522, -0.16098668, -0.18663193, -0.10280192, 0.078255914, 0.047648013, 0.08326376, 0.055962667, 0.06302574, -0.080121025, -0.031820554, -0.019117938, 0.12515336, 0.09794088, -0.03276838) * go_1(1.0, -1.0); + result += mat4(0.280923, 0.24079335, 0.007883573, 0.06270414, 0.3055441, 0.19291803, -0.16041607, 0.14836526, 0.0013885222, 0.04538063, 0.10742898, -0.064491205, 0.048174977, 4.237692e-05, -0.15194727, 0.024381457) * go_1(1.0, 0.0); + result += mat4(-0.0009164131, -0.031949926, 0.0076425644, -0.036870714, -0.0031292974, 0.017726978, -0.20172147, -0.0770472, 0.26379177, 0.108997814, 0.08069395, 0.2126177, 0.012075376, -0.029457828, 0.062730506, -0.15754452) * go_1(1.0, 1.0); + result += mat4(0.09167904, -0.2657421, -0.03443356, 0.03315832, -0.015365421, -0.1029612, -0.108251, 0.04261033, -0.097120754, -0.05616668, -0.09275983, 0.024902184, 0.050058514, -0.013761632, 0.07555132, -0.0046676896) * go_2(-1.0, -1.0); + result += mat4(-0.10743835, -0.0007361781, -0.042085417, -0.08237517, -0.10094376, -0.24007876, 0.13924706, -0.07526801, 0.01158322, 0.15491122, 0.0069442675, -0.004242352, 0.11429785, 0.02994726, -0.11829945, -0.04108612) * go_2(-1.0, 0.0); + result += mat4(0.073622055, -0.064717196, -0.0025231615, 0.13256475, 0.20159899, 0.047977835, -0.10289233, -0.18419135, -0.00888952, 0.059428576, -0.053062655, -0.02730631, 0.14545685, -0.08686949, 0.17454128, 0.035443828) * go_2(-1.0, 1.0); + result += mat4(-0.010146019, 0.06712568, 0.12614638, 0.023590917, 0.025756737, 0.06603747, -0.17108095, -0.06179699, 0.027241204, -0.13196802, 0.043475866, -0.0397495, 0.05306092, 0.035672903, 0.047219284, -0.16680142) * go_2(0.0, -1.0); + result += mat4(0.079427816, -0.06716479, 0.19028603, -0.19694683, -0.061598092, -0.07471188, 0.21170339, 0.30140215, -0.0023369973, 0.04688297, -0.14154115, 0.19283508, 0.1339858, -0.09116279, 0.15305163, 0.029108394) * go_2(0.0, 0.0); + result += mat4(-0.14902157, -0.03339153, -0.08532003, -0.10736339, 0.08702709, 0.07607574, -0.09955836, -0.016585784, -0.030078214, -0.060374748, -0.2854279, 0.02441719, 0.034877967, 0.2099041, 0.11125731, -0.059071556) * go_2(0.0, 1.0); + result += mat4(-0.08436325, 0.06893047, -0.045362443, -0.02237741, -0.07583875, -0.034830183, -0.024008518, -0.2882329, -0.011109783, 0.101859994, 0.091137715, 0.0020565533, -0.044729806, -0.18168025, 0.069466636, 0.04994174) * go_2(1.0, -1.0); + result += mat4(0.11915174, 0.089596465, -0.18965814, 0.015218237, 0.13500094, 0.19921367, -0.008298205, 0.29650384, -0.049439427, -0.27590424, 0.36169067, -0.030582754, 0.02151196, 0.019915426, 0.04543398, 0.16126189) * go_2(1.0, 0.0); + result += mat4(0.1620274, -0.08264547, 0.082442135, -0.0034478644, 0.09888509, -0.0034957859, -0.107241705, -0.17729597, -0.05138647, 0.02052103, -0.019507123, 0.037574988, -0.1694345, 0.17871588, -0.22510391, 0.019049853) * go_2(1.0, 1.0); + result += mat4(-0.10962245, -0.1329873, -0.060855392, 0.025941676, -0.19536193, -0.120365486, -0.04313703, -0.052912965, 0.20854498, 0.08341353, 0.008687068, -0.20432276, 0.15677948, -0.19000018, 0.01821201, -0.041512605) * go_3(-1.0, -1.0); + result += mat4(0.012287526, -0.14180368, -0.098788455, 0.025949089, 0.09442778, 0.2247651, -0.12453263, 0.10435483, 0.274603, 0.06133054, 0.10506106, 0.14727746, -0.048299775, -0.082819685, 0.07319359, -0.047460355) * go_3(-1.0, 0.0); + result += mat4(-0.070726536, -0.034744017, 0.07521428, 0.070649154, -0.05958955, -0.100232825, -0.010651838, 0.045392875, 0.2930271, -0.04952355, 0.3112155, 0.117203265, 0.025166962, 0.11176862, 0.06716659, 0.07175864) * go_3(-1.0, 1.0); + result += mat4(-0.011560962, -0.14032063, -0.17424704, 0.07652749, -0.04220116, 0.052874275, -0.00225693, -0.031843517, -0.07520102, -0.13775803, 0.2449317, 0.069658786, 0.052280303, -0.105218224, 0.03574522, -0.020500354) * go_3(0.0, -1.0); + result += mat4(0.08793712, 0.26712346, 0.08315631, 0.23813692, -0.04439029, 0.031587064, 0.09561177, -0.13380238, -0.24982157, 0.31701845, -0.3875432, 0.10487225, 0.09201869, -0.037252493, -0.006935219, -0.14650282) * go_3(0.0, 0.0); + result += mat4(0.077635325, 0.13732299, -0.071563005, 0.096517466, -0.15051986, -0.111744404, 0.03996857, -0.052670125, -0.1819665, 0.054554947, -0.13774712, -0.20061246, -0.0023742192, 0.15647805, -0.024121126, 0.075497724) * go_3(0.0, 1.0); + result += mat4(0.0073632775, -0.06535298, 0.039895996, 0.20666869, 0.13625242, 0.04823007, -0.07135618, 0.04787906, 0.01383074, 0.15382123, -0.15519714, 0.056721795, 0.061946746, -0.0586851, 0.028934354, -0.02264129) * go_3(1.0, -1.0); + result += mat4(-0.19791882, -0.111910924, -0.010451344, -0.30566537, -0.1416239, -0.14523096, 0.116883226, -0.18241516, 0.2680614, -0.18487626, 0.17472346, 0.08346682, -0.14510359, -0.029229192, -0.005879142, 0.050247498) * go_3(1.0, 0.0); + result += mat4(0.030153519, -0.092469186, -0.022912916, 0.10200855, -0.04237032, -0.05917764, 0.10479645, -0.05619482, -0.18949397, -0.019547248, 0.013868889, -0.1524476, 0.14048979, -0.032521486, 0.1322921, 0.070972025) * go_3(1.0, 1.0); + result += vec4(0.012053958, -4.6962363e-05, 0.0020099226, -0.033494607); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!SAVE conv2d_4_tf +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.06738501, 0.034009207, -0.21538448, 0.14296548, 0.12896985, -0.23526315, -0.08848608, 0.019602662, 0.14937137, 0.11353096, 0.11884168, -0.016765572, 0.030985225, 0.046430565, 0.06614828, -0.19202724) * go_0(-1.0, -1.0); + result += mat4(-0.10326068, 0.11014975, 0.17069744, -0.21474148, 0.16761585, 0.13434832, -0.101021074, 0.006307025, 0.07478008, -0.1060066, 0.035315692, 0.033488914, -0.24906659, 0.06269967, 0.11120735, -0.040928528) * go_0(-1.0, 0.0); + result += mat4(0.09334615, 0.057705753, 0.12213245, -0.06402275, 0.30694544, 0.034585163, 0.20345578, 0.07489286, 0.07483618, -0.14240396, 0.034846418, -0.03811241, 0.010882573, 0.13204294, 0.017563924, -0.047203008) * go_0(-1.0, 1.0); + result += mat4(-0.21673942, -0.024010994, -0.10238504, -0.041160326, 0.06838163, -0.20950818, 0.06526309, -0.079094924, 0.02208821, -0.28130978, 0.086275116, -0.089067616, 0.12133826, -0.062600106, -0.020521903, -0.07654401) * go_0(0.0, -1.0); + result += mat4(-0.03055029, -0.15683146, -0.20331301, -0.06252028, 0.13350682, 0.20338707, 0.038425338, 0.1581342, -0.27322498, -0.14999662, -0.16681097, 0.0971585, -0.20014858, -0.081635274, -0.0781877, -0.20625232) * go_0(0.0, 0.0); + result += mat4(0.38375977, -0.019825654, 0.1886721, 0.22616312, 0.3402173, 0.1825304, -0.05531195, 0.30973226, -0.2676023, 0.14413352, 0.021706983, 0.01732799, 0.23466855, -0.13805965, 0.22570935, 0.018103868) * go_0(0.0, 1.0); + result += mat4(-0.15169825, 0.0270689, -0.2503316, 0.17289825, -0.16437647, 0.039233048, -0.35572487, -0.048393793, 0.19270042, 0.24260359, 0.12041881, -0.0009793913, 0.11656858, 0.11007414, -0.0757491, 0.047933612) * go_0(1.0, -1.0); + result += mat4(-0.18657999, -0.11252566, -0.05237504, -0.07368097, 0.13882741, -0.13710637, -0.006996468, -0.062354874, 0.23452504, 0.15333645, -0.0022776406, -0.17910439, 0.03629509, -0.16264829, -0.010011833, -0.15313338) * go_0(1.0, 0.0); + result += mat4(-0.060544558, -0.04913478, -0.061717357, 0.02323648, 0.28739056, -0.07434013, 0.19110644, 0.100050166, 0.0073363045, 0.08185653, -0.024797903, -0.14424153, -0.20838726, 0.16154376, -0.048517212, -0.025453888) * go_0(1.0, 1.0); + result += mat4(0.14975396, -0.13142908, 0.36210674, -0.054021083, -0.10632155, 0.045697935, -0.18946633, 0.02228141, -0.08919603, 0.09800842, -0.17634438, 0.09512711, -0.03425503, -0.12298555, -0.05354435, -0.17112055) * go_1(-1.0, -1.0); + result += mat4(0.09958265, -0.057276618, -0.16262266, -0.06415915, 0.14579074, -0.36784375, 0.08034197, -0.04537706, 0.005460582, 0.22313322, 0.07382161, 0.014990379, 0.044636846, -0.2811128, -0.22621547, -0.06044004) * go_1(-1.0, 0.0); + result += mat4(0.10569276, -0.03738662, 0.16100396, 0.058593616, -0.048862137, -0.08796426, 0.20101094, -0.11039573, 0.17196764, -0.04601554, 0.008571281, -0.073729075, 0.051433694, -0.051276565, 0.087334655, -0.0360379) * go_1(-1.0, 1.0); + result += mat4(0.011119538, -0.28781965, 0.28637868, -0.1742508, -0.07121849, 0.10379717, 0.012615981, -0.029563965, -0.18678424, 0.05291095, 0.039143506, -0.028248642, -0.014103922, 0.029155696, 0.10433492, 0.16305852) * go_1(0.0, -1.0); + result += mat4(-0.2231037, -0.13697462, -0.29124337, 0.08519773, 0.15893684, -0.17763218, 0.06950923, 0.34361118, -0.024844287, 0.044008408, -0.033844844, -0.086971916, -0.07884748, 0.2543499, 0.056884114, 0.10068364) * go_1(0.0, 0.0); + result += mat4(-0.07710048, -0.23218372, 0.04346047, 0.21769643, 0.06473219, -0.18066105, -0.2511205, 0.15309611, 0.04535977, 0.16450433, 0.10846344, 0.0016952346, -0.010874939, 0.28966382, -0.121990964, 0.12956186) * go_1(0.0, 1.0); + result += mat4(-0.007910202, 0.17766511, 0.14364475, 0.1016258, 0.0051045395, 0.18691733, 0.005813767, -0.0070582186, 0.019418601, -0.1604435, 0.016088275, -0.18265302, -0.15719391, -0.17369832, -0.036745597, -0.19647408) * go_1(1.0, -1.0); + result += mat4(0.08938396, -0.0073808245, 0.11225727, -0.012303106, 0.096785046, 0.030483445, 0.027719889, -0.052584838, -0.14887555, -0.03422243, 0.12646855, -0.1722482, 0.010239037, 0.06406088, -0.20053658, 0.01964698) * go_1(1.0, 0.0); + result += mat4(-0.120734036, -0.12450362, -0.06582111, 0.1639675, -0.19787048, -0.08049789, -0.014257596, 0.058436662, -0.0009387449, -0.08698089, -0.017400503, 0.06295286, 0.09890349, -0.057190523, -0.103520766, -0.04207548) * go_1(1.0, 1.0); + result += mat4(-0.0118413875, -0.031288836, 0.09749554, -0.012266401, -0.07998591, 0.22615653, -0.06207416, 0.03257896, -0.076378696, -0.079426095, -0.13968349, -0.15423697, -0.1091681, -0.02893125, -0.032659534, -0.063735925) * go_2(-1.0, -1.0); + result += mat4(0.119372696, 0.013176554, -0.029381052, 0.21919228, 0.045041792, 0.24844484, 0.26363325, 0.08480674, 0.087083444, 0.11984778, -0.088715754, 0.06421046, 0.05225977, -0.05140334, -0.055052705, -0.049854077) * go_2(-1.0, 0.0); + result += mat4(0.0035781674, 0.0861361, -0.07675145, -0.056479637, 0.16973391, -0.12113791, 0.10729832, -0.03773517, 0.058618728, 0.12148276, 0.17260705, -0.06968724, 0.076358154, -0.15307103, 0.17700425, -0.13467014) * go_2(-1.0, 1.0); + result += mat4(-0.02752418, -0.06366472, -0.025610954, 0.0013539721, -0.06465272, 0.0806373, -0.07336035, 0.10114861, 0.0041146413, 0.15878421, -0.044668555, -0.12150811, -0.1071482, -0.05086587, 0.18589285, 0.05065092) * go_2(0.0, -1.0); + result += mat4(0.07200056, 0.021739854, 0.29476613, -0.08475931, 0.15018553, -0.07886365, 0.36336347, -0.020576432, 0.25866082, -0.059272554, 0.054249667, -0.17822553, 0.1755872, 0.3244387, -0.39173844, 0.33894604) * go_2(0.0, 0.0); + result += mat4(-0.11570926, 0.1342677, -0.19511898, 0.0075454637, -0.01890476, -0.14239742, 0.18921931, 0.033990458, 0.31306365, -0.006998358, 0.029190077, -0.005679954, -0.15341778, 0.07766778, -0.25691047, -0.0964161) * go_2(0.0, 1.0); + result += mat4(0.019746238, 0.0021332854, -0.00879096, -0.1338671, -0.0001600663, -0.29465106, 0.0867611, -0.114963025, 0.07874301, -0.012734178, -0.11124061, -0.010926616, -0.04941506, -0.07516841, 0.116663, -0.29018974) * go_2(1.0, -1.0); + result += mat4(-0.01651721, 0.05955898, 0.023618208, 0.098695934, 0.018553663, -0.054378513, 0.1436929, 0.1693743, -0.27483663, 0.029127488, 0.09619316, -0.06109113, -0.08619361, 0.09315214, -0.02478657, 0.18544984) * go_2(1.0, 0.0); + result += mat4(0.09570196, -0.016528936, -0.1559397, 0.14312246, 0.04029428, 0.08773151, -0.043646842, 0.17894371, -0.082413055, 0.0027082344, -0.100171275, 0.01547501, 0.18122818, -0.11933676, 0.26404107, -0.3169703) * go_2(1.0, 1.0); + result += mat4(-0.12073344, 0.08683522, -0.09249099, 0.058786053, -0.14480567, -0.121013954, 0.033335857, 0.009353379, -0.055087596, -0.13002734, 0.08890566, 0.05508963, -0.0075715426, -0.15936922, -0.03968994, -0.1690259) * go_3(-1.0, -1.0); + result += mat4(0.2011206, 0.23898427, 0.23656492, 0.1287573, 0.14850396, 0.40532517, -0.107408255, 0.40119782, 0.099813245, -0.03830304, 0.101520434, -0.026478073, -0.048469637, 0.106440455, 0.056632314, -0.17825997) * go_3(-1.0, 0.0); + result += mat4(-0.076735444, 0.05965795, -0.0052469415, -0.21785147, 0.11887833, 0.067560315, 0.051149055, 0.23626682, -0.1297049, -0.035512198, 0.20352256, -0.025064934, 0.04958706, 0.0454198, 0.0113334535, 0.0417486) * go_3(-1.0, 1.0); + result += mat4(-0.09055751, 0.033915352, -0.21836667, 0.22006813, -0.099022895, 0.11720966, -0.15686816, -0.13586599, -0.094427735, -0.08831514, -0.06182928, 0.09213704, -0.03642064, 0.18129414, -0.012926811, 0.12179882) * go_3(0.0, -1.0); + result += mat4(0.19389409, 0.09512252, 0.14768016, -0.16623649, -0.031052284, -0.026814984, 0.106168024, -0.2026781, -0.04581419, -0.0016849053, -0.04101923, 0.038959503, -0.011938445, 0.20096186, -0.26666564, 0.4824324) * go_3(0.0, 0.0); + result += mat4(0.17727576, 0.07309147, 0.12131863, -0.163096, 0.17225246, 0.26256254, 0.27685758, 0.09094053, 0.029605515, -0.20217367, 0.047564875, 0.043115832, 0.15089568, -0.09670934, 0.24131384, 0.03337442) * go_3(0.0, 1.0); + result += mat4(-0.34192136, 0.12063195, -0.31159517, 0.04170889, -0.30147067, -0.21330686, -0.1514457, -0.121126845, 0.04409098, 9.2206596e-05, 0.027680017, 0.03230512, -0.27993527, -0.093485355, 0.07568645, -0.23585452) * go_3(1.0, -1.0); + result += mat4(0.0537712, -0.20847629, 0.1740093, -0.013894753, -0.32719997, -0.059484575, -0.006098233, -0.10336451, -0.14706188, -0.07424865, -0.07045905, 0.17093194, -0.22147557, 0.09086218, -0.11033544, -0.05306482) * go_3(1.0, 0.0); + result += mat4(0.00489003, -0.11509064, -0.021005848, 0.16637677, -0.089347586, 0.17545725, -0.17313693, 0.13742085, -0.14577347, 0.07951095, -0.092139855, 0.017118992, -0.053472433, 0.079414465, 0.0330263, -0.11189824) * go_3(1.0, 1.0); + result += vec4(-0.034743138, 0.012946433, -0.082333155, 0.07721756); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!SAVE conv2d_4_tf1 +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.25835788, 0.050451655, -0.1845038, -0.07232528, 0.1323318, 0.26276684, 0.10842882, -0.083056524, 0.17426784, -0.3594826, 0.2728965, 0.08388844, -0.004007842, 0.020535901, -0.051425606, 0.07750436) * go_0(-1.0, -1.0); + result += mat4(-0.11410436, 0.014572361, -0.27057216, -0.023974562, 0.05234827, 0.15328228, -0.17502303, -0.3199359, 0.12188045, -0.095813684, 0.024145132, 0.0856916, -0.027453909, -0.043129764, 0.16971985, 0.021623038) * go_0(-1.0, 0.0); + result += mat4(0.06611095, 0.038625732, -0.13717118, -0.04497733, 0.15213469, 0.04770935, 0.0729271, -0.062052976, 0.004571303, 0.035141192, -0.059409596, 0.044652313, 0.17520894, 0.09665589, -0.1479193, 0.06528058) * go_0(-1.0, 1.0); + result += mat4(-0.1845968, 0.091479465, -0.09394898, -0.13545018, -0.029501775, -0.21426639, 0.09255898, 0.1257644, 0.20256902, 0.06267267, 0.10378081, 0.13494423, 0.058310498, 0.03642236, -0.16268995, -0.048100803) * go_0(0.0, -1.0); + result += mat4(0.2155119, -0.3683131, 0.049449228, -0.20559964, -0.11761922, -0.2518804, -0.020712897, 0.12895772, -0.07543782, 0.5805017, -0.11301444, -0.038493153, -0.06710986, -0.09321189, 0.108671665, -0.03259695) * go_0(0.0, 0.0); + result += mat4(0.035307787, 0.108389005, -0.27493554, 0.27029404, 0.25523573, -0.28636125, -0.20766719, -0.008661457, -0.004480811, -0.046390545, -0.16221444, 0.008979624, -0.061375532, 0.035076566, -0.018924266, 0.01380219) * go_0(0.0, 1.0); + result += mat4(-0.051922515, -0.12463486, -0.10383422, 0.02220095, -0.1573033, 0.13980615, 0.13248625, -0.16803266, -0.0692132, -0.21552645, 0.13744529, 0.23034313, 0.0052666534, 0.028977966, 0.07720251, -0.06477756) * go_0(1.0, -1.0); + result += mat4(-0.14097473, 0.2770271, -0.172289, -0.03000696, -0.028684044, 0.040578447, -0.2290285, 0.082329154, -0.042402364, -0.20926563, 0.08233207, 0.11862443, -0.07038536, -0.02273004, 0.091550544, -0.065856494) * go_0(1.0, 0.0); + result += mat4(0.14879914, -0.023923844, -0.23569296, 0.20306346, 0.17502785, 0.28776234, -0.2788995, 0.10012439, -0.05635638, -0.025840463, 0.09222198, 0.118032, 0.08057015, 0.1286071, 0.060189806, -0.052669708) * go_0(1.0, 1.0); + result += mat4(0.07076086, -0.15111323, -0.07427972, 0.008372168, -0.17791592, -0.16254742, 0.013961132, -0.0944912, -0.23380096, 0.17377278, -0.09683394, 0.019931393, -0.12042098, 0.0016406325, 0.09393333, -0.06882231) * go_1(-1.0, -1.0); + result += mat4(0.21465093, 0.04142968, 0.06840044, -0.37831602, -0.05549571, 0.044905066, -0.07873589, -0.026804, -0.34764197, 0.022487951, -0.077293746, 0.089457795, -0.110094436, 0.24233972, 0.06285107, -0.10851744) * go_1(-1.0, 0.0); + result += mat4(0.093270175, 0.084138945, 0.03938272, 0.063565865, -0.010733802, 0.13554469, -0.06650261, 0.033002816, 0.011187271, -0.12821455, 0.20785914, -0.030438649, -0.124710515, -0.022294303, 0.09732408, 0.057609864) * go_1(-1.0, 1.0); + result += mat4(-0.12833868, 0.021577539, -0.02700365, 0.11799592, -0.03655647, -0.04225167, 0.11049353, -0.16036157, 0.049277548, -0.033842396, 0.10020137, 0.095509745, 0.08060231, -0.09237418, -0.035598125, -0.035926737) * go_1(0.0, -1.0); + result += mat4(-0.32829186, 0.3492363, 0.030671779, -0.12606762, 0.010437313, 0.2757115, -0.21517593, -0.15800527, -0.12592544, -0.20578934, 0.10444053, 0.12993255, -0.046079267, 0.03834173, -0.19277227, -0.22124454) * go_1(0.0, 0.0); + result += mat4(-0.052546192, 0.026082167, 0.13831234, 0.10982424, 0.012946818, -0.12439852, 0.10134106, -0.10050398, -0.04472338, -0.14325236, -0.20579574, 0.0044005127, 0.22013672, -0.32955512, 0.12404084, -0.008160738) * go_1(0.0, 1.0); + result += mat4(-0.10774314, -0.31650826, -0.06601711, 0.19635755, -0.12622592, -0.06396423, 0.13856032, 0.16540553, 0.021387719, 0.23377723, -0.053738154, -0.1000186, -0.08338395, -0.052813534, 0.008122962, 0.13732094) * go_1(1.0, -1.0); + result += mat4(-0.18270823, 0.06966014, -0.17788303, -0.27303055, -0.077971615, 0.013978423, -0.02039098, 0.12715338, -0.11924171, 0.18900296, -0.085199654, 0.215198, 0.18587974, -0.009749325, 0.0173584, -0.12018259) * go_1(1.0, 0.0); + result += mat4(0.052129295, -0.107416354, 0.12711766, 0.03708665, -0.14369462, -0.055359814, -0.16639823, -0.045143317, -0.06925672, -0.040696755, 0.01999809, -0.016040625, -0.02484878, 0.07417094, 0.050875198, 0.2145528) * go_1(1.0, 1.0); + result += mat4(0.055696912, -0.16680926, -0.021987487, 0.024941636, -0.0927883, 0.022136632, 0.033782948, -0.10646058, -0.14944647, 0.25457275, 0.046682496, -0.022462368, -0.07886781, 0.08165927, 0.06848105, 0.0063734027) * go_2(-1.0, -1.0); + result += mat4(0.037053242, 0.033215813, 0.18291366, 0.12340375, 0.08491059, -0.28442004, -0.0127422465, -0.039834313, -0.23321372, 0.26676926, -0.05636355, -0.15672484, -0.12891728, -0.15486577, -0.032004442, -0.092745155) * go_2(-1.0, 0.0); + result += mat4(0.015779478, -0.18457565, 0.24996394, 0.036197674, 0.15694007, 0.15863103, -0.07332398, 0.0016235278, -0.15536517, -0.056062788, 0.14102836, 0.16915025, -0.08001087, 0.07073164, 0.13796777, 0.123867124) * go_2(-1.0, 1.0); + result += mat4(0.045792986, -0.15135059, -0.1354885, -0.043678258, -0.35655212, 0.51232076, -0.12816145, -0.046569496, -0.014127674, -0.06282611, -0.098873, -0.06359104, -0.0919222, 0.11822437, 0.079254694, 0.00579688) * go_2(0.0, -1.0); + result += mat4(-0.15683417, 0.61610246, -0.3024612, 0.12917964, -0.09303367, 0.23612969, -0.40842506, -0.12374661, -0.07572449, -0.2613284, -0.09970177, -0.015227848, 0.106239066, -0.21411185, 0.051998455, -0.1364518) * go_2(0.0, 0.0); + result += mat4(0.23850034, -0.14394449, -0.0031468747, -0.2380617, -0.027200876, -0.041352056, -0.01864445, 0.033848196, -0.12064239, -0.110480845, 0.08450956, -0.22328654, 0.17664163, 0.22268307, 0.050886698, -0.17475672) * go_2(0.0, 1.0); + result += mat4(-0.17808256, 0.010803805, 0.03315186, 0.033143792, -0.14205995, 0.25039625, -0.08784382, -0.13454252, 0.19576813, 0.10755282, 0.22821628, 0.019456752, -0.0422955, -0.016182603, -0.12066697, 0.0548465) * go_2(1.0, -1.0); + result += mat4(0.11563777, -0.257929, 0.0010403778, 0.080267854, -0.0025255163, 0.2855168, -0.060352214, -0.07816255, -0.00090574916, 0.049510725, 0.03720483, 0.059250016, -0.08674136, 0.20522198, -0.28694284, 0.1299507) * go_2(1.0, 0.0); + result += mat4(-0.14638457, 0.04063328, 0.03139636, -0.007934521, 0.07689684, -0.09467145, 0.10607347, 0.054510128, 0.003306194, 0.05347124, 0.062762424, -0.041480847, -0.07677865, -0.139573, 0.010972524, 0.21957156) * go_2(1.0, 1.0); + result += mat4(-0.026845628, -0.043439507, 0.034738723, 0.07281683, 0.14474197, 0.031586993, -0.22767854, -0.0707655, 0.105201736, -0.28805482, 0.008668302, -0.16329518, 0.06157049, 0.3803886, 0.26345953, -0.011096537) * go_3(-1.0, -1.0); + result += mat4(-0.23328833, 0.085731484, -0.07755016, 0.33559516, 0.07704345, 0.115106605, -0.24114038, -0.44630137, 0.2726737, -0.32170138, -0.009236524, -0.11666051, 0.0457048, 0.07876708, 0.13134004, -0.035318643) * go_3(-1.0, 0.0); + result += mat4(-0.05140272, 0.011605703, 0.13899171, -0.05071015, 0.18413687, -0.31413674, -0.13043414, -0.15118152, -0.15326938, -0.10720126, -0.23738635, 0.13481396, 0.25115076, -0.009316611, -0.2584441, -0.14389823) * go_3(-1.0, 1.0); + result += mat4(-0.039723795, -0.14869407, -0.1692942, 0.026501274, -0.10685166, -0.121267825, -0.08584318, -0.09580693, -0.10626739, -0.068417974, 0.11321909, -0.13664317, 0.061380867, -0.2587898, 0.14850819, 0.008178645) * go_3(0.0, -1.0); + result += mat4(0.06912782, 0.24230564, -0.048150286, 0.2203717, -0.17417085, 0.105546735, -0.16648416, -0.0045053074, 0.09764028, 0.37122592, -0.1939995, -0.27899942, -0.088152565, -0.53869057, 0.21676709, -0.08056594) * go_3(0.0, 0.0); + result += mat4(0.07651754, 0.03704878, -0.0197015, 0.1660726, 0.07002748, -0.11820414, -0.23360898, 0.1481592, 0.029847002, 0.054057185, 0.013176299, 0.06552942, -0.13865773, -0.20105527, -0.37550658, 0.005769631) * go_3(0.0, 1.0); + result += mat4(-0.22697811, -0.17426412, 0.10148018, 0.008134666, 0.10771455, 0.16943407, -0.016319012, -0.40176705, -0.06854668, -0.049045276, 0.20919096, 0.13240765, -0.050125647, 0.14902508, 0.052697595, -0.13817468) * go_3(1.0, -1.0); + result += mat4(0.04301619, 0.23184754, -0.023551717, 0.3768405, 0.028999053, 0.06709736, -0.05993663, -0.059861984, 0.15499207, -0.22217415, 0.111131504, -0.09082529, -0.19389243, 0.024621522, -0.15305442, 0.010799284) * go_3(1.0, 0.0); + result += mat4(-0.035496738, 0.010802548, -0.028718363, 0.19263634, 0.16900502, -0.16661702, -0.027631328, 0.18309957, -0.015860107, -0.03309961, -0.091390446, 0.14000848, -0.0036591904, 0.47659522, -0.09373507, -0.29020965) * go_3(1.0, 1.0); + result += vec4(0.08895955, -0.027667087, 0.20500831, 0.00037762933); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!SAVE conv2d_5_tf +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.018134737, -0.2296755, -0.07276725, -0.029795367, 0.05382051, 0.092847414, -0.024469728, -0.1674685, 0.0017946451, 0.30074653, 0.0034195695, -0.04892261, 0.18229689, -0.20116119, -0.12702174, -0.08259108) * go_0(-1.0, -1.0); + result += mat4(-0.1357695, -0.08149211, 0.09314453, -0.21966846, 0.34740716, 0.043606415, 0.04225903, 0.034449834, 0.17248215, 0.39148283, -0.13868807, -0.010550686, 0.044238456, -0.09693464, -0.005044985, 0.24383289) * go_0(-1.0, 0.0); + result += mat4(0.19959371, 0.098685324, 0.058746945, 0.010580748, 0.08051514, 0.031898864, 0.017556064, 0.13004355, -0.01727653, 0.11044019, 0.040673427, -0.20064595, -0.23321067, 0.06398686, -0.19126236, -0.2430858) * go_0(-1.0, 1.0); + result += mat4(-0.12870286, -0.113455534, 0.23722827, 0.070718594, 0.19049989, -0.1927299, -0.06343845, 0.113127775, 0.082530305, -0.10972526, -0.090779535, 0.05731582, 0.11018802, -0.18049154, 0.09269507, -0.10304576) * go_0(0.0, -1.0); + result += mat4(0.15513484, 0.06659583, 0.08125296, -0.012350324, -0.09492788, 0.5048303, 0.13206847, 0.39554298, 0.28953737, -0.20913891, -0.26781562, -0.17539899, 0.023778774, 0.29716817, 0.15768486, 0.37702608) * go_0(0.0, 0.0); + result += mat4(0.0724462, 0.015571356, -0.032217246, 0.0050658924, -0.22708446, 0.03968809, 0.016753826, 0.0025668752, -0.055932112, 0.113931604, 0.19766758, -0.030027265, -0.17384295, 0.15013468, -0.0070017707, -0.09469028) * go_0(0.0, 1.0); + result += mat4(-0.078361556, -0.0954201, -0.006358101, 0.040500037, 0.4190454, -0.17622913, -0.07234791, 0.05462559, 0.18641087, 0.058313597, -0.0180785, 0.13818781, -0.14640772, 0.0699486, 0.0073663946, -0.076789856) * go_0(1.0, -1.0); + result += mat4(-0.21421191, 0.08736062, 0.09041226, 0.03608585, 0.02769972, 0.09641289, 0.11824623, 0.05653645, 0.16464607, 0.19839554, -0.13379547, 0.054417104, 0.067530684, 0.18971571, 0.13785432, -0.097639814) * go_0(1.0, 0.0); + result += mat4(-0.32658005, -0.14606023, -0.069448665, 0.032998275, -0.28331423, 0.0011900732, -0.020304207, -0.13535896, 0.08298347, 0.045509677, -0.030503955, -0.037504148, 0.049955815, 0.0925771, 0.00058534974, -0.12398032) * go_0(1.0, 1.0); + result += mat4(-0.2955836, 0.29059318, -0.018196672, -0.35866606, -0.01309431, 0.03540315, 0.010609202, 0.11956812, 0.10296229, 0.22536302, 0.015201129, -0.23797737, -0.16960852, -0.11414787, -0.034440614, 0.112644605) * go_1(-1.0, -1.0); + result += mat4(-0.14952518, 0.07024436, -0.083184876, -0.0814617, -0.13303639, 0.016159372, -0.13521518, 0.2221334, -0.056617837, 0.12958299, 0.064461656, -0.20146395, -0.16023181, 0.2640758, 0.27528805, -0.1426518) * go_1(-1.0, 0.0); + result += mat4(-0.04382363, 0.09856003, -0.08561442, -0.15699928, -0.121069774, 0.04685383, -0.009170197, -0.031489655, 0.18730178, 0.238442, 0.22497098, 0.032015145, -0.03709115, 0.1535079, 0.21674158, 0.10678019) * go_1(-1.0, 1.0); + result += mat4(-0.12200952, 0.24224263, 0.034097504, -0.028179523, -0.011962496, -0.04489487, -0.05198827, 0.22194928, -0.045400873, -0.049828544, 0.111477956, -0.098361604, 0.12788995, -0.016093334, -0.19886433, -0.011161484) * go_1(0.0, -1.0); + result += mat4(0.30563712, 0.013071727, -0.004799883, 0.12888052, -0.259498, -0.041566677, 0.07311124, 0.162324, 0.28371668, -0.004693743, -0.0019395344, 0.029358242, 0.08730285, 0.12184509, 0.05508437, 0.048439097) * go_1(0.0, 0.0); + result += mat4(0.12760857, 0.115813166, -0.217695, -0.10629871, -0.227366, 0.09030426, -0.15313712, 0.020528946, -0.20743734, 0.088583544, 0.04594053, -0.22891994, 0.18949282, -0.042186577, -0.17330512, -0.010711361) * go_1(0.0, 1.0); + result += mat4(0.029503195, 0.0063797613, -0.17004286, -0.096844055, 0.010218098, 0.04247233, 0.02362808, 0.14700809, -0.08082364, 0.11159672, -0.018505255, -0.15228583, 0.15693732, -0.025359154, 0.024829186, 0.1943192) * go_1(1.0, -1.0); + result += mat4(-0.03912932, -0.21989027, 0.12203028, 0.18702275, -0.118537985, 0.21039696, 0.09102061, 0.012288879, 0.031666897, 0.1318455, -0.04901404, -0.07516063, -0.44782668, 0.04884501, 0.047070876, 0.008728358) * go_1(1.0, 0.0); + result += mat4(-0.08669101, 0.3053463, -0.08963947, 0.0034188698, -0.070004664, 0.064788476, 0.093737036, 0.070050925, 0.12728429, -0.13179256, -0.014913502, 0.09308136, -0.027638942, 0.008638711, 0.08794172, -0.05531093) * go_1(1.0, 1.0); + result += mat4(0.0728421, 0.07872358, 0.11454748, 0.08497922, 0.071820416, -0.11789207, -0.08184197, 0.1359588, -0.2143346, -0.05876081, 0.023172129, -0.08430511, -0.19276723, 0.14283359, 0.15604696, -0.055187486) * go_2(-1.0, -1.0); + result += mat4(0.068641685, 0.2732106, -0.2809107, 0.12736696, -0.08642367, 0.023898933, -0.17859498, -0.18299665, -0.06684587, -0.12204666, 0.45898953, -0.24240111, 0.25182098, -0.04395751, 0.10637211, -0.22135144) * go_2(-1.0, 0.0); + result += mat4(0.0852072, 0.051133018, 0.03333165, -0.0008938216, 0.10251267, 0.0550774, 0.041769378, -0.21259712, 0.286912, 0.123342015, 0.282759, -0.0730124, 0.14275575, -0.15580742, -0.15224406, 0.045376908) * go_2(-1.0, 1.0); + result += mat4(0.03328225, 0.11563978, -0.07451964, 0.030546209, -0.04698351, -0.18544962, 0.037350416, 0.13969816, 0.0556746, -0.06359919, 0.06478219, -0.031694926, 0.13396506, 0.09443612, -0.01922686, -0.06290365) * go_2(0.0, -1.0); + result += mat4(0.07495407, 0.063429266, -0.106221214, -0.085107304, 0.2497817, -0.46598253, -0.18833177, -0.2731128, -0.13024822, 0.56053543, 0.055704467, -0.12331414, -0.031199086, 0.05061188, 0.22097112, -0.6611177) * go_2(0.0, 0.0); + result += mat4(0.08276988, -0.044184342, -0.03562185, -0.06159881, 0.27694225, -0.07192965, -0.08663714, 0.020221777, 0.14095962, -0.06229397, 0.051374253, -0.038158998, 0.10664802, -0.041305423, 0.051260717, -0.054698635) * go_2(0.0, 1.0); + result += mat4(0.12800686, 0.03485072, 0.039914366, 0.034041498, -0.08305794, -0.046292894, 0.22765331, 0.10904922, 0.0013937047, -0.08750301, 0.009126207, -0.065589435, 0.2837707, 0.08884436, -0.07234862, -0.093502745) * go_2(1.0, -1.0); + result += mat4(0.113439895, 0.06081726, 0.1122302, -0.022936966, 0.10329637, -0.31816107, -0.051597945, 0.23846027, -0.083913095, -0.29872265, -0.040147282, -0.08981918, -0.04329814, -0.12339693, -0.034489952, 0.013393211) * go_2(1.0, 0.0); + result += mat4(0.33091688, 0.1726297, 0.034332044, -0.091396205, 0.15434311, -0.0022870845, -0.15506189, 0.08710491, -0.16063525, 0.042252056, 0.017086457, 0.08134797, 0.08631321, 0.037843138, 0.088296555, 0.0064518084) * go_2(1.0, 1.0); + result += mat4(0.09161051, 0.114355795, -0.15304486, -0.030537153, 0.1835368, -0.3287635, 0.031197926, 0.09717476, 0.04276852, 0.113250345, 0.05949038, -0.10599563, 0.43574792, -0.060788117, 0.18409383, 0.12678055) * go_3(-1.0, -1.0); + result += mat4(-0.018356865, -0.0072578182, 0.12020777, -0.013127592, 0.20136636, -0.22984362, 0.06896224, 0.00044982752, 0.008428429, -0.123316936, -0.09989286, 0.078248784, -0.16313677, -0.003020313, -0.46285018, -0.08967125) * go_3(-1.0, 0.0); + result += mat4(-0.03451497, -0.10864502, 0.13207638, 0.17194521, 0.0037514758, -0.20222199, -0.12535086, 0.001511977, 0.056294486, -0.2112898, 0.078261316, 0.10118746, -0.044742294, 0.21793383, -0.19927903, -0.21338293) * go_3(-1.0, 1.0); + result += mat4(-0.034903776, -0.10167085, 0.031066334, 0.0379958, 0.20532596, -0.17457838, 0.16556816, -0.0021619152, 0.02682665, 0.03396325, -0.059273884, 0.1922813, -0.072151475, -0.010240544, 0.2302027, 0.12385962) * go_3(0.0, -1.0); + result += mat4(-0.20170145, -0.08203941, -0.028107846, -0.18003726, 0.44744352, -0.13190243, 0.13233365, 0.03626546, 0.085763134, -0.25613126, -0.11213388, 0.15529087, -0.271649, 0.050587676, -0.062583975, 0.057289865) * go_3(0.0, 0.0); + result += mat4(-0.040649455, -0.17949733, 0.35847965, -0.040587306, 0.24314344, -0.23811667, 0.13958354, 0.04961874, 0.09858903, -0.04202913, -0.21850993, 0.0700419, -0.09130745, -0.096835814, 0.0022782686, -0.25416258) * go_3(0.0, 1.0); + result += mat4(-0.08215545, -0.019647893, 0.055263475, 0.053733055, 0.098485716, -0.1041945, -0.06541415, -0.08868577, -0.07262986, 0.03513784, -0.110529095, -0.03369232, 0.056786604, 0.2569229, -0.05931065, -0.22081214) * go_3(1.0, -1.0); + result += mat4(0.066926084, 0.029664058, -0.10779271, 0.11026963, 0.23927264, -0.16914488, 0.022947345, 0.12303853, -0.07066212, -0.013205378, 0.15348643, 0.035568032, 0.20966691, 0.010149819, -0.08814468, -0.064854674) * go_3(1.0, 0.0); + result += mat4(0.11493852, -0.074924305, -0.14840698, -0.16956823, 0.056806292, -0.06387947, -0.06880271, -0.04637334, -0.1929893, 0.18226422, 0.064644486, -0.1594863, 0.027403917, 0.13951495, -0.06569123, -0.07700207) * go_3(1.0, 1.0); + result += vec4(-0.043347504, -0.20504741, -0.037821215, -0.014486937); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!SAVE conv2d_5_tf1 +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.047881734, -0.09396414, -0.2839081, 0.3140853, 0.052613556, 0.09940423, 0.23960467, -0.022228222, -0.12065009, 0.07898222, 0.08657881, 0.010852739, -0.050450284, 0.01683982, 0.031813968, 0.053060856) * go_0(-1.0, -1.0); + result += mat4(-0.10252411, -0.03116448, -0.30114275, -0.0316799, -0.017501019, -0.03006003, -0.2095696, 0.10134927, -0.3901916, -0.15335023, -0.11955071, 0.1337449, 0.101239376, -0.25044814, 0.2128469, 0.018979514) * go_0(-1.0, 0.0); + result += mat4(-0.13392173, 0.052036732, 0.1682114, -0.026263753, 0.027221246, -0.15121374, 0.13723798, 0.08950682, -0.1182108, -0.07294226, 0.023392374, 0.052329235, -0.05632852, -0.07036173, 0.06872573, 0.05238042) * go_0(-1.0, 1.0); + result += mat4(0.18112028, 0.18242362, -0.06812871, 0.032463413, 0.124638766, -0.26765212, -0.07678663, 0.33806562, 0.09674393, 0.15574542, 0.23634006, -0.02873782, -0.1626769, -0.14760062, -0.007274849, 0.09866139) * go_0(0.0, -1.0); + result += mat4(-0.10726673, -0.10925056, 0.19967109, -0.19936769, 0.15942842, -0.14870064, 0.15493345, -0.08489036, -0.49053356, -0.17321263, 0.28426084, 0.18721215, -0.09898434, -0.2751838, -0.11833524, 0.028445128) * go_0(0.0, 0.0); + result += mat4(-0.11788817, -0.23724948, -0.046072144, 0.035621114, 0.04527003, -0.0073492974, 0.11097195, 0.06806836, 0.04814677, -0.1408476, -0.1325629, 0.00929532, -0.16699041, -0.03034791, 0.08320368, -0.15429299) * go_0(0.0, 1.0); + result += mat4(0.2729515, 0.008244692, -0.17441982, -0.39026466, 0.17381759, 0.31194404, 0.055934936, 0.20744409, 0.20119062, 0.0734271, 0.0796807, 0.0031037466, -0.0016392237, 0.033733975, 0.07149338, 0.042083208) * go_0(1.0, -1.0); + result += mat4(0.07985744, 0.10945015, 0.018472541, 0.1397503, 0.2005682, 0.42641, 0.23022486, -0.2916921, 0.028285174, -0.31885162, -0.27070364, -0.10390779, 0.0751492, 0.12752363, -0.2279459, 0.08998453) * go_0(1.0, 0.0); + result += mat4(0.18450491, -0.140783, -0.008006845, 0.09029298, 0.12536179, 0.26949662, 0.09491545, 0.063907005, 0.11212244, 0.09778506, -0.1835966, -0.053119674, 0.0072294096, 0.25018227, 0.010868525, -0.22721334) * go_0(1.0, 1.0); + result += mat4(-0.028011927, -0.20073172, 0.5976166, -0.19494139, 0.17958745, -0.03838646, 0.058325976, -0.29409218, -0.12793432, 0.03245129, 0.35662368, -0.05048354, -0.13368197, -0.06151968, -0.012714591, -0.1763054) * go_1(-1.0, -1.0); + result += mat4(0.18468465, 0.31682113, 0.12818255, -0.117110476, 0.13709468, -0.10034022, -0.07994527, -0.1259309, 0.04067299, -0.1147398, 0.28361055, 0.27916273, 0.03696692, 0.16829546, 0.27819383, 0.08305029) * go_1(-1.0, 0.0); + result += mat4(-0.28920117, -0.033877946, 0.01586206, 0.04681198, 0.024248574, -0.045777842, -0.03342128, 0.07525412, -0.063377544, -0.016737273, 0.11235511, -0.04325238, -0.24170023, -0.09993599, -0.03205371, 0.14339828) * go_1(-1.0, 1.0); + result += mat4(-0.008357902, -0.11038377, 0.03709221, 0.26775306, 0.07963845, -0.25377446, -0.17630441, -0.10966474, 0.057311732, -0.083327, 0.044497233, 0.06903858, -0.26531395, -0.103399664, -0.14806591, 0.269314) * go_1(0.0, -1.0); + result += mat4(0.05450808, -0.041993964, -0.07217651, 0.034468375, 0.2117634, 0.0075620585, 0.05825411, -0.2252478, -0.0527787, 0.049732126, -0.032040413, -0.09361454, 0.29585132, 0.018413153, 0.18384546, -0.024226356) * go_1(0.0, 0.0); + result += mat4(-0.031109914, 0.19351351, 0.07405522, -0.06313074, -0.09983541, -0.011495182, 0.11749038, -0.16775608, 0.2790974, -0.09338754, 0.07913264, 0.103792936, -0.18679164, -0.15639925, 0.112943865, 0.07930375) * go_1(0.0, 1.0); + result += mat4(0.004106195, -0.036833283, 0.12908752, 0.12869535, -0.02472107, 0.17561707, -0.025890926, -0.18789047, 0.096218705, -0.16306408, -0.02198454, -0.010134957, -0.09710009, 0.002062143, -0.046785697, 0.0029441968) * go_1(1.0, -1.0); + result += mat4(0.19648251, -0.015663045, -0.0730215, 0.028611008, 0.13529862, -0.015256192, -0.04119306, -0.24628192, 0.02601027, -0.21184283, -0.1962902, 0.09109358, -0.06792383, 0.092336476, 0.12215351, -0.08596062) * go_1(1.0, 0.0); + result += mat4(-0.17530201, -0.0351919, -0.31872514, -0.13933206, -0.07000922, -0.049807087, 0.0010997375, -0.033573963, 0.07442056, -0.33290103, -0.40381998, 0.09435, -0.3280128, -0.09953127, -0.11283648, 0.20685865) * go_1(1.0, 1.0); + result += mat4(-0.052573867, -0.035328753, -0.11132943, -0.17515652, 0.05021051, 0.058642425, -0.046640664, 0.0799107, -0.027398815, -0.33619994, -0.22135767, 0.07894002, -0.14941697, -0.0940996, -0.11655085, 0.049795926) * go_2(-1.0, -1.0); + result += mat4(-0.039301276, 0.041062318, 0.20312686, -0.009338705, 0.013706282, -0.0245852, 0.03458311, 0.09601228, -0.18203016, -0.012260314, 0.17984508, -0.056576703, -0.102844186, 0.24047872, 0.05307189, 0.16066082) * go_2(-1.0, 0.0); + result += mat4(0.1478775, 0.0046362123, 0.05459521, 0.07162838, -0.01896149, 0.23700175, -0.14174299, 0.06988599, -0.32545477, -0.08065096, -0.061227743, -0.0010796773, 0.094327345, -0.20760082, -0.19523263, 0.19859222) * go_2(-1.0, 1.0); + result += mat4(-0.049676366, -0.10381536, 0.02546116, -0.13127093, 0.10954914, 0.0048147943, 0.06962328, -0.30456528, -0.11956627, 0.0150488885, -0.10711722, 0.1684613, -0.1939089, -0.10577047, -0.11980919, -0.036988296) * go_2(0.0, -1.0); + result += mat4(-0.054795764, 0.09491116, -0.08494948, 0.059765853, 0.0131597435, 0.20786162, 0.11999637, 0.024381055, 0.22830428, 0.027053319, -0.011646274, -0.12145409, -0.07899559, -0.012688263, 0.10684157, 0.3824219) * go_2(0.0, 0.0); + result += mat4(-0.23994572, -0.0031532666, -0.0050638164, 0.14236279, 0.05690383, -0.06259682, 0.052624144, 0.20461404, -0.19230312, -0.11072268, 0.013023965, 0.08931543, -0.21997221, 0.11760443, -0.40943825, 0.28656834) * go_2(0.0, 1.0); + result += mat4(-0.06606179, 0.26007771, 0.033754125, 0.119690455, 0.024669139, -0.06752839, 0.12688096, -0.0063201943, -0.17123021, 0.07548857, -0.14213699, 0.034093797, -0.15632647, -0.123243414, -0.42634043, 0.1715022) * go_2(1.0, -1.0); + result += mat4(-0.046503466, 0.13876389, 0.17973013, -0.25938338, -0.18824704, -0.11876702, 0.31065792, -0.041042212, -0.061369427, 0.2057992, 0.17295738, 0.3836555, -0.21109799, -0.10167118, 0.16577047, 0.113483034) * go_2(1.0, 0.0); + result += mat4(-0.24534856, -0.014482421, 0.22515748, -0.12773542, 0.12794174, -0.02528619, 0.41710484, 0.09154934, -0.17805946, -0.25428918, 0.07294183, 0.047079418, -0.30949152, -0.08919157, 0.17888431, 0.17706038) * go_2(1.0, 1.0); + result += mat4(-0.1741826, 0.046225294, -0.10761791, 0.2619953, 0.007373745, 0.05104337, -0.22309966, 0.34529984, -0.034363825, -0.022187237, -0.08609555, 0.16842419, 0.28136057, 0.17843607, -0.11307746, -0.05668021) * go_3(-1.0, -1.0); + result += mat4(-0.12310616, -0.29661375, -0.10581025, -0.049584012, 0.19651765, 0.08436489, -0.14533581, -0.029874112, -0.15422897, -0.062741704, -0.22694711, -0.15547274, -0.15181333, 0.0286061, 0.022438493, -0.062447168) * go_3(-1.0, 0.0); + result += mat4(0.3497046, -0.09455009, 0.060618952, -0.2134236, 0.054515295, 0.07451165, -0.09267233, -0.010513333, 0.13842636, 0.11563433, -0.054750167, 0.050432, 0.1514256, 0.04284002, -0.2095581, 0.07907657) * go_3(-1.0, 1.0); + result += mat4(-0.11745651, -0.04717057, 0.085377194, -0.065956995, 0.07280491, 0.2730059, 0.11088276, 0.2437957, 0.14018989, 0.1164107, -0.09516929, 0.0022427947, 0.111544006, -0.0680495, 0.09324579, -0.12482022) * go_3(0.0, -1.0); + result += mat4(-0.07995795, -0.03387884, 0.019846136, 0.10231208, -0.07017192, 0.18659039, 0.035161644, 0.101182766, -0.14901665, 0.21307294, 0.063894205, -0.27546507, -0.24792959, -0.067731075, 0.13146006, -0.19333683) * go_3(0.0, 0.0); + result += mat4(0.034206454, 0.1472648, -0.07406727, 0.014654025, 0.18703444, 0.1319857, -0.10610886, 0.08427947, -0.017536618, -0.06487879, -0.12095286, -0.050414838, 0.03260879, 0.1558894, -0.031887084, 0.11840288) * go_3(0.0, 1.0); + result += mat4(0.114811294, -0.14574333, -0.09392587, 0.042283528, 0.08919092, 0.18259068, 0.0980717, 0.21024778, -0.1280008, -0.027260462, -0.1129027, 0.18722472, 0.13733985, 0.047153983, 0.030871978, 0.1998385) * go_3(1.0, -1.0); + result += mat4(-0.06783575, 0.004612595, 0.1153467, -0.11531557, -0.048889533, 0.07673577, -0.02041786, 0.22744459, -0.13092506, 0.13484807, 0.40003043, -0.053706612, -0.16985156, -0.04791236, -0.052443005, -0.08363625) * go_3(1.0, 0.0); + result += mat4(0.18187882, 0.017893985, 0.17856054, 0.005413129, 0.014147176, 0.15102178, 0.12436294, -0.02176765, -0.16727823, -0.0364111, 0.17074408, 0.12899421, 0.31984514, -0.0072070034, 0.031895883, -0.1991405) * go_3(1.0, 1.0); + result += vec4(-0.011865144, 0.11717201, -0.13823777, -0.059450272); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!SAVE conv2d_6_tf +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.082203194, 0.021720003, 0.03725474, -0.08048348, 0.2063248, -0.033020593, -0.17585336, 0.06476272, 0.012244563, 0.026554609, 0.014708393, 0.26606125, 0.14248778, 0.12817341, -0.039826933, -0.12751861) * go_0(-1.0, -1.0); + result += mat4(0.24573852, 0.19695967, -0.06257417, -0.04782871, 0.3511875, -0.018083302, -0.077342674, 0.15247667, 0.20321761, -0.07479984, -0.09548503, 0.08109568, -0.23808748, 0.07246303, -0.004242619, 0.16162953) * go_0(-1.0, 0.0); + result += mat4(0.13296306, 0.19495387, 0.009222276, 0.033592198, 0.20443891, 0.16063854, -0.2581601, -0.016132578, -0.2296461, -0.23647323, -0.15407176, -0.18265317, 0.2343241, -0.049697313, -0.09398783, 0.41931856) * go_0(-1.0, 1.0); + result += mat4(-0.10866088, -0.40605694, -0.0042648134, 0.07943803, 0.26914695, 0.14816476, 0.037706107, -0.123223364, -0.19962949, -0.053534556, -0.08397409, -0.04244924, -0.075791344, 0.29629225, 0.2311928, 0.099177904) * go_0(0.0, -1.0); + result += mat4(-0.1748319, -0.2003186, -0.32659066, -0.21007413, 0.20122464, 0.032196607, -0.026299698, 0.33395135, 0.11411664, 0.05971959, 0.09001304, -0.15936212, 0.012322024, 0.19936106, -0.411186, -0.08319479) * go_0(0.0, 0.0); + result += mat4(-0.07349218, 0.006184436, 0.096199185, -0.050186496, 0.064047046, -0.03813128, -0.057007037, -0.025550695, -0.2863145, -0.008512981, -0.20615962, 0.18009211, 0.008298396, 0.22452813, 0.010843521, 0.20169461) * go_0(0.0, 1.0); + result += mat4(0.2691149, 0.059546687, 0.08922005, 0.2252196, 0.30341956, -0.024489028, 0.087045394, -0.03856442, -0.14083561, -0.17683443, 0.14137806, 0.15520614, 0.2073925, -0.19525874, 0.23661858, 0.3098405) * go_0(1.0, -1.0); + result += mat4(0.006530723, 0.04180736, -0.04762067, -0.064395495, 0.02396811, -0.13332283, 0.0037775645, 0.026309434, 0.0033065109, -0.08315753, 0.02917419, 0.12330464, 0.22819455, -0.07489677, 0.12829056, -0.097994626) * go_0(1.0, 0.0); + result += mat4(-0.09983759, 0.032783493, 0.11085758, 0.08993078, -0.057110567, -0.018973934, -0.14946178, -0.03921629, 0.039757587, 0.015860094, 0.04989561, -0.19634786, 0.04351146, 0.019315343, 0.25972188, 0.17989321) * go_0(1.0, 1.0); + result += mat4(-0.04111906, -0.165601, 0.0003682197, -0.056232415, -0.32716644, -0.24015541, -0.057547837, 0.05966729, 0.06854747, 0.03599213, -0.18798864, 0.1183447, 0.014268468, -0.1310834, 0.06415977, -0.19414157) * go_1(-1.0, -1.0); + result += mat4(-0.00070661673, 0.17671427, 0.10584568, -0.060910843, -0.104282066, -0.22676118, -0.01907062, 0.24882245, -0.043454725, 0.07691623, -0.48371696, 0.013537671, -0.025488405, 0.061228953, 0.18548754, 0.028671112) * go_1(-1.0, 0.0); + result += mat4(-0.0121596735, 0.09595702, -0.08244918, -0.1176173, 0.26773354, -0.021729136, 0.075465776, -0.0928876, 0.12461298, 0.16830076, -0.15302569, 0.113850676, 0.09811088, 0.13006307, 0.24999009, 0.10261325) * go_1(-1.0, 1.0); + result += mat4(-0.032246377, 0.038265374, -0.26476422, -0.1442876, -0.19866082, 0.08649541, 0.041478764, 0.11155026, 0.21576422, -0.09572912, -0.11174068, -0.19722937, -0.15801935, 0.29604745, -0.08606268, -0.15532136) * go_1(0.0, -1.0); + result += mat4(-0.06315591, 0.16151646, -0.009230362, -0.04341246, 0.09085519, 0.21924476, 0.38044852, 0.193819, 0.16622902, 0.0025134624, -0.22688466, -0.025276015, 0.07714917, 0.16302192, -0.11767101, -0.11086476) * go_1(0.0, 0.0); + result += mat4(-0.04170153, 0.001859292, -0.26352355, 0.10982333, -0.031867817, 0.15773517, -0.060263418, 0.11117763, -0.017359972, 0.0127261225, 0.0782802, -0.16908924, 0.080516845, -0.05691526, -0.07530135, -0.14553802) * go_1(0.0, 1.0); + result += mat4(0.06112685, -0.032287434, 0.17445667, -0.044935808, -0.11449107, -0.051394563, -0.029589338, -0.14555557, 0.03440661, 0.11035615, -0.17175, -0.14851089, 0.037362, -0.18740481, 0.17278154, 0.18073405) * go_1(1.0, -1.0); + result += mat4(-0.27670652, 0.19484822, 0.2609349, 0.1455016, 0.04438468, 0.1449185, 0.11185832, -0.18598269, -0.019846648, 0.11886126, -0.098498635, 0.15737785, 0.011406795, -0.18860829, -0.13705735, 0.17535745) * go_1(1.0, 0.0); + result += mat4(-0.30244905, -0.28695273, 0.1146976, 0.21144345, -0.037980128, -0.027679864, -0.13992494, -0.04884521, -0.032023884, -0.07921183, -0.16042095, -0.06935386, -0.06570237, -0.1107404, -0.018163798, 0.22625941) * go_1(1.0, 1.0); + result += mat4(-0.07292955, -0.07321777, -0.045146503, -0.33291966, -0.096732594, -0.07203495, 0.33692798, 0.2870733, 0.122160144, -0.076574564, 0.042844944, 0.26448342, 0.07672146, -0.028775277, -0.12088313, 0.15583947) * go_2(-1.0, -1.0); + result += mat4(0.21589327, 0.05258274, 0.09705794, -0.024653846, -0.039402515, 0.28485695, 0.14711736, -0.10556087, -0.15140481, 0.09039498, 0.017308712, 0.11862922, 0.08230978, 0.21678248, -0.043815188, -0.226433) * go_2(-1.0, 0.0); + result += mat4(-0.029258793, 0.26618922, 0.02564014, -0.23189862, -0.24074338, -0.18556763, 0.25973624, 0.04746873, 0.0137007125, -0.22239363, -0.12414957, 0.048228756, -0.22406264, 0.282667, -0.021001073, -0.17465611) * go_2(-1.0, 1.0); + result += mat4(0.32401654, -0.1495363, -0.20869227, 0.04271639, -0.0087802755, 0.031325378, 0.23834595, 0.039336167, 0.17265107, 0.20947595, 0.28737286, 0.0028783784, -0.057340365, -0.050347418, -0.11915604, -0.1831807) * go_2(0.0, -1.0); + result += mat4(0.1811338, 0.07732653, 0.20975596, -0.47129005, 0.07121942, 0.08410583, 0.44170937, -0.19524159, -0.17807977, 0.12837476, 0.20816846, -0.1741958, -0.04411918, 0.06024972, 0.18159702, -0.052485272) * go_2(0.0, 0.0); + result += mat4(-0.15229738, 0.27513, 0.28150418, -0.19543962, -0.02045864, -0.07207227, 0.09589587, 0.09110817, 0.061413247, 0.0046052113, 0.11619411, -0.2988938, 0.065739445, 0.10205611, 0.12847126, -0.028355654) * go_2(0.0, 1.0); + result += mat4(0.0657154, -0.047568597, -0.16148911, 0.16392621, -0.25281775, -0.061153214, 0.017480455, -0.026288848, 0.20319715, 0.04763355, 0.010444491, -0.26671803, -0.25821987, 0.32863674, -0.30734694, -0.18190521) * go_2(1.0, -1.0); + result += mat4(-0.042703815, 0.06633036, -0.048434302, -0.17176376, -0.12699759, -0.1124558, 0.083266065, 0.03354623, -0.13468939, 0.12706263, 0.053659134, -0.06930602, 0.008196115, 0.2034998, -0.06351442, -0.039730288) * go_2(1.0, 0.0); + result += mat4(0.09614661, 0.22500272, 0.088511504, -0.16960482, 0.15364788, -0.18854137, -0.13163191, -0.07503735, -0.23177068, -0.0053305267, -0.041978605, 0.0971947, -0.049034655, 0.04486706, 0.09076307, -0.02310868) * go_2(1.0, 1.0); + result += mat4(-0.1304683, 0.17743458, -0.09817326, -0.0646786, 0.07886976, 0.20109388, -0.034114968, -0.2029261, -0.03348398, 0.029337432, -0.07302782, -0.02240758, 0.030242773, -0.30032325, 0.02085572, -0.027314361) * go_3(-1.0, -1.0); + result += mat4(-0.037377544, 0.026350772, -0.07430488, -0.114671774, -0.126935, -0.046512567, -0.033628833, -0.19018382, -0.041053895, -0.031206857, 0.08562848, -0.01875709, 0.21099389, -0.092511, 0.0073047103, -0.009811013) * go_3(-1.0, 0.0); + result += mat4(0.11358029, 0.17468451, -0.12739041, -0.14332245, -0.22230148, 0.16862972, -0.04462456, 0.2469604, -0.008622369, 0.0081848325, -0.17032363, -0.16024362, 0.21178265, 0.037127133, 0.08559072, 0.11584694) * go_3(-1.0, 1.0); + result += mat4(0.008993893, -0.08037705, 0.4426555, 0.15593371, 0.15273719, -0.03249998, 0.055109, -0.1512612, -0.037183985, 0.20825677, -0.08516227, -0.06664223, -0.10011001, -0.3505215, -0.17941694, 0.052089088) * go_3(0.0, -1.0); + result += mat4(-0.109703645, -0.13505603, 0.1336451, 0.13118869, 0.010915504, 0.12748592, 0.21201555, -0.40841985, -0.11059143, 0.033772044, -0.039282143, 0.03095394, 0.10394723, -0.21343367, -0.10699851, -0.028351074) * go_3(0.0, 0.0); + result += mat4(0.019704714, 0.06243651, 0.09896519, -0.17492259, 0.012675787, -0.004239029, 0.21319824, 0.069183126, -0.0071114586, 0.123431124, -0.24479835, 0.00723795, -0.045293927, 0.014101029, 0.15746681, 0.042405806) * go_3(0.0, 1.0); + result += mat4(0.023828225, -0.0015190929, 0.1194638, 0.082163885, 0.10532113, 0.042044062, 0.02528007, 0.015175004, 0.026613194, 0.33525538, -0.1627064, -0.29887968, -0.197707, 0.038967777, -0.15811683, -0.106895216) * go_3(1.0, -1.0); + result += mat4(0.044362027, -0.04946742, -0.14815849, -0.17660522, -0.034201477, -0.012243106, -0.050183997, 0.06407372, 0.039822515, 0.15880872, -0.0672721, -0.4081093, 0.019489579, -0.060278706, -0.015096743, -0.07799167) * go_3(1.0, 0.0); + result += mat4(0.11861756, 0.27113584, -0.14107186, -0.10246008, -0.124051, -0.1627854, 0.10698585, 0.2846401, -0.061731786, 0.1724438, -0.12428688, -0.09986041, -0.034171514, -0.07100923, 0.041739646, -0.11308375) * go_3(1.0, 1.0); + result += vec4(-0.02981662, -0.26338395, -0.011632586, 0.15063232); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!SAVE conv2d_6_tf1 +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.17082009, 0.031344634, -0.06131912, 0.00887183, -0.01528174, 0.12943709, 0.24537678, 0.008178781, -0.312396, -0.023583878, 0.07827866, -0.1231261, 0.15081584, -0.18161978, -0.25179705, -0.036934935) * go_0(-1.0, -1.0); + result += mat4(-0.05768411, 0.16785417, -0.1788644, -0.0067257965, 0.021445744, 0.10066516, -0.23864186, 0.1450302, 0.12892793, 0.19856106, -0.24444748, 0.16531628, -0.044425935, -0.02775357, 0.009059946, -0.12958384) * go_0(-1.0, 0.0); + result += mat4(-0.025798557, -0.17238182, -0.34056288, -0.20921059, -0.03576266, 0.1476854, -0.06264234, 0.14452787, -0.04130045, -0.07275762, 0.034578666, 0.2914669, 0.20879944, 0.21359251, -0.048695553, 0.2638088) * go_0(-1.0, 1.0); + result += mat4(-0.022791177, 0.4204545, 0.116855636, 0.20241925, -0.010444933, -0.14462502, 0.022550104, -0.24423064, -0.09417524, 0.045358784, -0.11405829, 0.035979558, -0.2283092, -0.06670842, -0.23852053, -0.22417003) * go_0(0.0, -1.0); + result += mat4(-0.14526704, 0.040880535, 0.14076385, 0.07795045, -0.059177604, -0.13056375, -0.3373641, -0.19344307, -0.29891858, -0.32578763, -0.29061425, 0.1562214, -0.13578376, 0.36586633, 0.24936736, 0.054629393) * go_0(0.0, 0.0); + result += mat4(-0.025790233, -0.13020341, -0.10084969, 0.15767297, -0.09738769, 0.04034404, 0.0038675873, 0.043515608, 0.16899958, -0.29117966, 0.03420067, 0.14432564, -0.10473084, 0.21014084, 0.07775908, -0.09303797) * go_0(0.0, 1.0); + result += mat4(-0.07443987, -0.16225167, 0.036251917, 0.028432872, 0.03759333, 0.004027401, -0.033941846, 0.0019474924, 0.02357054, 0.30748722, 0.1652115, -0.17361522, 0.16905582, 0.08048018, -0.23639561, -0.029408466) * go_0(1.0, -1.0); + result += mat4(0.0461233, -0.09346199, -0.07063276, -0.19447634, -0.049339604, -0.0032855074, -0.22661209, -0.0543389, 0.11924857, -0.21691081, -0.1645725, -0.0075736847, 0.018572787, -0.06552861, -0.01777661, -0.11651732) * go_0(1.0, 0.0); + result += mat4(-0.06425901, 0.123392984, -0.16395192, -0.093448035, -0.029316641, 0.0986573, -0.23135012, 0.011170849, 0.00023920486, 0.15296175, 0.35453254, -0.05189021, 0.20708887, -0.103900835, 0.081992395, -0.21829562) * go_0(1.0, 1.0); + result += mat4(-0.019074136, -0.1572586, 0.27919227, 0.09119617, 0.035954695, 0.2941489, 0.18262725, -0.055522963, -0.21364328, -0.1573611, 0.104966134, 0.08228523, 0.19945285, -0.0039229114, -0.1565048, 0.028975379) * go_1(-1.0, -1.0); + result += mat4(-0.18501253, 0.006473006, 0.06637501, 0.04295065, 0.06411007, 0.1166344, -0.10060226, 0.46296063, -0.08600344, -0.03560105, 0.012215349, 0.017885283, 0.061346993, 0.17336361, 0.01935021, 0.20198092) * go_1(-1.0, 0.0); + result += mat4(-0.04451627, -0.10372061, -0.13968691, 0.14479733, 0.1660607, 0.19334625, 0.0085214665, 0.28863636, -0.07600901, -0.014777084, 0.13209191, -0.09045013, 0.104893915, -0.04776884, -0.007936376, 0.104568765) * go_1(-1.0, 1.0); + result += mat4(0.023751335, -0.108048, -0.050531313, 0.15916029, 0.13246661, 0.04644228, -0.09586482, -0.17222965, -0.22898191, -0.033484615, 0.078883134, -0.052609313, -0.2721741, 0.045986425, 0.13972299, -0.28923607) * go_1(0.0, -1.0); + result += mat4(-0.23364568, -0.008875902, -0.40894926, 0.060443908, -0.2839635, -0.5270991, -0.2500865, 0.002020195, -0.24488612, -0.04982319, -0.009110353, -0.018023955, 0.06647274, -0.25225738, 0.26154432, -0.033934146) * go_1(0.0, 0.0); + result += mat4(-0.1535129, -0.21257545, -0.16553773, 0.17471452, -0.06203719, 0.15238857, 0.18702018, 0.18572305, 0.07740396, -0.074217625, -0.072156586, -0.2183728, 0.00403749, 0.13750519, 0.30362993, 0.06550286) * go_1(0.0, 1.0); + result += mat4(0.37164542, -0.1980723, -0.15659203, 0.19498909, 0.01748114, 0.011807152, -0.05424202, 0.11926474, 0.050406165, -0.12925303, -0.020280985, 0.08429331, 0.14769496, -0.077555746, -0.15216178, -0.27070466) * go_1(1.0, -1.0); + result += mat4(0.35804263, 0.08539285, -0.14785156, -0.13532467, 0.058254432, 0.20448379, -0.006173341, 0.058168225, -0.21714899, -0.13472849, -0.09392532, -0.12753737, -0.097461835, -0.11419082, 0.09384189, 0.06414768) * go_1(1.0, 0.0); + result += mat4(0.023494452, -0.22187226, -0.16694295, 0.0204334, -0.26720086, 0.15916729, 0.3098874, -0.10292057, 0.008854983, 0.13375004, -0.04409455, 0.09286524, 0.095829524, 0.12427317, -0.048659876, 0.18300754) * go_1(1.0, 1.0); + result += mat4(-0.119153984, 0.10163183, 0.025017537, -0.40096784, 0.026778705, 0.15821172, -0.19947284, -0.33337715, 0.2952563, 0.16820388, -0.057061996, -0.029319009, -0.12184868, 0.09031512, 0.12028806, 0.021044692) * go_2(-1.0, -1.0); + result += mat4(0.086744264, -0.046958666, 0.2130253, -0.46672252, 0.07135636, 0.0100029735, -0.13828261, -0.012365689, -0.11374441, 0.21084632, -0.059631422, -0.013799735, -0.037889663, -0.10701892, -0.09493782, 0.15516634) * go_2(-1.0, 0.0); + result += mat4(0.031181194, -0.01535001, 0.029270316, 0.13128386, 0.11838377, -0.17051528, 0.12228499, -0.04841128, 0.33350074, -0.006144013, -0.09055018, 0.27470216, -0.26665646, -0.08703671, -0.01719071, -0.23449609) * go_2(-1.0, 1.0); + result += mat4(-0.12856458, 0.005562174, -0.19517267, 0.13270985, 0.2776414, 0.032003902, -0.15778573, 0.15344355, 0.26930434, -0.13459459, 0.035019353, 0.08896612, 0.12847935, -0.122637205, 0.001815178, 0.08290523) * go_2(0.0, -1.0); + result += mat4(0.33805037, -0.15318587, -0.20955376, -0.26121393, -0.026022578, -0.1617741, 0.1336867, 0.026223289, 0.012059392, -0.17295446, -0.060811974, 0.14027825, -0.21134059, -0.08408573, -0.23773228, 0.110836074) * go_2(0.0, 0.0); + result += mat4(0.16176093, 0.15307428, -0.07711325, -0.3458805, 0.061291527, 0.023916256, 0.21370678, 0.0015756418, 0.10642374, 0.24807373, 0.11164451, 0.10780487, 0.087194376, -0.2718231, -0.008457387, 0.054078236) * go_2(0.0, 1.0); + result += mat4(-0.03259038, -0.20923306, 0.165477, 0.098864526, -0.02734457, 0.08871225, -0.01552188, 0.047712058, 0.055032052, -0.13044262, -0.2899521, 0.22230095, -0.029343741, -0.16427459, -0.005436118, -0.05111821) * go_2(1.0, -1.0); + result += mat4(0.20065974, -0.1556366, -0.12620135, 0.44572976, -0.020925352, 0.12025185, 0.20588058, 0.06391864, 0.046870507, 0.16942503, -0.049370963, 0.008779016, 0.04954915, 0.090298936, -0.16466027, 0.011152038) * go_2(1.0, 0.0); + result += mat4(0.13587528, 0.047841422, 0.19804007, -0.1672396, -0.072491, 0.04543739, 0.25287256, 0.015226213, 0.02007356, -0.049578942, -0.08796175, 0.1714897, -0.07819061, 0.1509537, 0.093094915, 0.031139288) * go_2(1.0, 1.0); + result += mat4(-0.013774682, 0.118201815, -0.009592314, -0.10837201, -0.0686881, -0.083380274, 0.107689425, 0.046642892, 0.119898744, -0.05502989, -0.19719897, 0.0005697584, -0.0921928, 0.032281205, 0.2568853, 0.2325449) * go_3(-1.0, -1.0); + result += mat4(0.02991112, -0.09898633, 0.06076172, -0.20906185, 0.0026118348, 0.06130956, 0.06760944, -0.16662054, 0.065741204, -0.13144116, 0.011419801, 0.22552124, 0.1465757, -0.07417319, -0.10788749, -0.24952699) * go_3(-1.0, 0.0); + result += mat4(-0.19238451, -0.024058497, 0.19580396, -0.067399554, -0.18832864, -0.11752747, -0.078949094, -0.23762032, -0.04141864, 0.022530237, -0.02222157, 0.0054874527, 0.057746816, -0.34854797, 0.028730657, -0.08976777) * go_3(-1.0, 1.0); + result += mat4(0.16888975, 0.19949849, -0.08456147, -0.03619044, -0.019596824, 0.11214634, 0.13971676, 0.22926724, 0.03219445, -0.04566354, -0.14948955, -0.22817011, -0.08714846, -0.19684613, 0.15479128, 0.2433362) * go_3(0.0, -1.0); + result += mat4(0.16050309, -0.102841675, 0.20855242, -0.011171905, -0.10309409, 0.22455123, 0.15892951, -0.06582373, 0.010079549, -0.2055006, -0.09385158, 0.006519388, 0.11838815, 0.37134558, -0.165772, 0.12704434) * go_3(0.0, 0.0); + result += mat4(0.11643292, 0.03294274, -0.09800525, -0.13601723, -0.081318736, -0.059975546, -0.039105035, -0.2893635, -0.13024913, -0.058016162, -0.09961072, 0.10532414, 0.24250132, -0.35546342, -0.092634924, 0.093994915) * go_3(0.0, 1.0); + result += mat4(-0.18799333, 0.25611782, 0.014645917, -0.063751906, 0.06498416, 0.16619027, -0.14411639, 0.3914421, -0.07343631, -0.116468735, -0.10941946, -0.2553544, -0.37774643, -0.0018441634, 0.06827239, -0.0122299045) * go_3(1.0, -1.0); + result += mat4(-0.11884597, -0.2477297, 0.048488285, -0.06438257, -0.124703035, 0.25932777, 0.0650111, -0.0930877, 0.06463341, -0.000544085, 0.0147504965, -0.170097, -0.13241997, 0.20983136, -0.15956205, 0.03424298) * go_3(1.0, 0.0); + result += mat4(-0.034574904, 0.06755256, 0.09508443, -0.17162292, 0.046379335, 0.2178781, 0.08699012, -0.055380464, -0.2237568, -0.07427848, -0.028395249, -0.3225617, -0.084454566, -0.24776657, 0.254169, 0.13229847) * go_3(1.0, 1.0); + result += vec4(0.18765923, -0.07697714, 0.028134674, -0.060966115); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!SAVE conv2d_7_tf +//!WIDTH conv2d_6_tf.w +//!HEIGHT conv2d_6_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.21919365, 0.36627784, 0.12603314, 0.24306288, 0.06447028, 0.06472204, -0.05997039, -0.15651788, 0.017059859, -0.006497198, -0.4189735, 0.021636713, -0.23887977, -0.014220949, 0.031113686, -0.17342716) * go_0(-1.0, -1.0); + result += mat4(-0.10818789, -0.03273837, 0.33918005, -0.19290088, 0.0955361, -0.34107623, -0.054906327, -0.18083344, -0.060723677, 0.24395694, 0.112975016, -0.07254578, -0.14389384, 0.13235968, -0.15054801, -0.26216486) * go_0(-1.0, 0.0); + result += mat4(-0.23442148, -0.07857079, 0.022283873, -0.2656417, 0.037092753, -0.037313666, -0.5057047, 0.042533103, -0.120424, 0.00021930189, -0.0044566668, -0.45536995, 0.00040759926, 0.14597592, -0.094990164, -0.036161344) * go_0(-1.0, 1.0); + result += mat4(0.15024352, 0.19903262, -0.0734784, 0.092836305, -0.025753846, 0.024750374, -0.07550193, 0.035420835, 0.11084378, 0.26119822, -0.08443512, -0.0047807065, -0.042685136, 0.24889739, 0.098650105, 0.2088369) * go_0(0.0, -1.0); + result += mat4(-0.25551823, 0.14455976, 0.19886157, -0.23465924, 0.20711218, -0.20875362, -0.11320392, -0.30852005, -0.06795657, 0.008670962, 0.30601278, 0.6929064, 0.17079145, 0.15744895, 0.06441601, 0.06514001) * go_0(0.0, 0.0); + result += mat4(0.03142604, -0.006410137, -0.023654792, -0.05708553, 0.062985405, -0.077010594, 0.078804865, 0.050882503, 0.010274228, -0.15558401, 0.09490256, 0.14964707, -0.11966925, -0.36176664, 0.27809814, -0.18862294) * go_0(0.0, 1.0); + result += mat4(0.05609992, 0.0041612233, -0.08498908, 0.04479823, -0.080117956, -0.17423204, -0.22858045, 0.054569032, -0.050866384, -0.020000307, 0.027000953, -0.67724514, 0.16240878, -0.04641204, 0.0648367, -0.20613132) * go_0(1.0, -1.0); + result += mat4(0.08542306, -0.08254248, -0.11090553, -0.14140448, -0.10788511, -0.13011602, -0.29319742, -0.26007155, 0.11033401, -0.31966573, 0.32668245, 0.19542319, 0.06329418, 0.20904626, 0.2724067, -0.009155685) * go_0(1.0, 0.0); + result += mat4(-0.007403411, 0.0012836396, -0.23446666, -0.03017208, 0.062420018, -0.13611084, -0.2975928, 0.13173148, -0.03679939, 0.13743873, -0.10121899, 0.074514665, 0.1497629, -0.09523838, 0.39018926, 0.37807035) * go_0(1.0, 1.0); + result += mat4(0.11441487, -0.19565523, -0.25757137, -0.16148767, 0.15575317, -0.12657928, 0.10479676, 0.062919036, 0.010544159, 0.22931573, 0.20360178, 0.4637635, -0.3395036, -0.52467215, 0.08759308, 0.028030418) * go_1(-1.0, -1.0); + result += mat4(0.2699195, -0.34218305, 0.15259695, 0.03139074, -0.024053533, -0.029567484, 0.28480124, 0.20525953, 0.15452823, -0.217713, 0.15861876, -0.012275699, 0.21408023, 0.097508304, -0.57126766, -0.14679857) * go_1(-1.0, 0.0); + result += mat4(-0.0755847, -0.09751562, -0.29480466, -0.22285318, 0.14196442, 0.114573136, -0.22294767, 0.12463806, 0.3322209, -0.04631724, -0.11097061, -0.27986854, -0.16099304, -0.060079545, 0.00299308, 0.120776065) * go_1(-1.0, 1.0); + result += mat4(0.050933484, -0.13776319, -0.18809728, 0.24035202, -0.32528606, -0.41684148, -0.029342847, 0.28642926, -0.07963454, -0.12905268, 0.07606093, 0.24670005, -0.08815598, -0.23320907, -0.008099349, 0.21512873) * go_1(0.0, -1.0); + result += mat4(0.19247563, 0.18083979, -0.09719762, 0.15314941, -0.22350982, 0.46515045, -0.3571128, 0.35953265, 0.06921985, -0.4482386, -0.18732521, -0.5043983, 0.35159567, -0.33315298, -0.21884166, -0.16283798) * go_1(0.0, 0.0); + result += mat4(-0.021124054, -0.007966742, 0.0052493825, 0.022550896, 0.030403977, 0.3377868, -0.47602004, -0.077664234, -0.07222509, -0.07486097, -0.37971064, -0.5107857, -0.06299477, 0.04930232, -0.3330487, 0.29845512) * go_1(0.0, 1.0); + result += mat4(-0.063705474, -0.07917637, -0.02026607, -0.05142568, 0.021577014, -0.07379867, 0.033937998, 0.08148773, -0.02717838, -0.03233838, 0.098000035, 0.036476444, -0.13366953, 0.014477577, 0.24064232, 0.39313284) * go_1(1.0, -1.0); + result += mat4(-0.16046515, -0.094624564, 0.35435164, 0.09942324, -0.07137174, -0.27999225, 0.124644354, -0.0062176553, 0.015016751, -0.05500243, -0.23249559, -0.4508382, 0.1860433, 0.10671491, -0.033345353, -0.06611453) * go_1(1.0, 0.0); + result += mat4(0.21614046, -0.01307525, -0.18941112, -0.20533535, -0.14481686, -0.47801897, 0.22605121, -0.20298961, -0.06744227, -0.20377496, -0.11926173, 0.15645133, -0.31570885, -0.3495616, -0.024666889, 0.040965475) * go_1(1.0, 1.0); + result += mat4(-0.11748018, -0.039976366, -0.00084064255, -0.028653437, -0.16216733, -0.036768105, 0.018064514, -0.0928936, 0.14008482, -0.064511225, 0.24329947, -0.0268608, 0.050330248, 0.08540601, -0.07272679, -0.01187671) * go_2(-1.0, -1.0); + result += mat4(-0.09459936, -0.011723822, -0.06952858, -0.07808506, -0.065588176, 0.332501, -0.0120042395, 0.07668016, 0.14735217, -0.14856043, -0.06702449, -0.020953184, -0.023006834, 0.06135422, 0.1491448, -0.028061569) * go_2(-1.0, 0.0); + result += mat4(0.25136968, 0.25146323, -0.108277924, -0.20407207, -0.0013780294, 0.16108194, 0.25143847, 0.06672421, -0.033905584, -0.021144686, -0.019152718, 0.34619498, 0.14560962, 0.034437314, 0.024790365, -0.049976267) * go_2(-1.0, 1.0); + result += mat4(-0.24928351, 0.12637813, 0.23609994, 0.12722939, -0.036997862, -0.16554876, 0.11144095, -0.10040036, -0.020359103, -0.080701865, -0.3142192, 0.27257237, 0.13546956, -0.14416885, 0.028196262, -0.2886465) * go_2(0.0, -1.0); + result += mat4(0.28524777, -0.4236231, 0.27420738, -0.21095508, 0.23475651, 0.115876295, -0.18837357, -0.0260708, 0.030670704, -0.11516913, -0.11365572, -0.2203149, -0.018612983, -0.10719593, -0.031727783, 0.1403327) * go_2(0.0, 0.0); + result += mat4(0.07240512, 0.03139215, 0.12328737, -0.021201206, -0.13971715, 0.072742075, -0.0011289873, 0.0053133667, 0.035639685, -0.04322272, -0.19288473, -0.15812221, -0.19126481, 0.0698514, 0.17619178, -0.035605464) * go_2(0.0, 1.0); + result += mat4(-0.18552057, 0.07259671, 0.011667668, -0.15630563, 0.11414356, 0.14482655, -0.04021029, 0.18495587, -0.11386139, -0.09058561, -0.011265998, 0.23358451, 0.0521358, 0.12495261, 0.021644838, -0.048094347) * go_2(1.0, -1.0); + result += mat4(-0.09222373, 0.0533347, 0.055820454, 0.22382596, 0.18713981, 0.2668916, -0.019384036, 0.012698582, 0.13325234, 0.20361474, -0.33106443, -0.08571572, -0.21243028, -0.10996386, 0.123459645, 0.1534967) * go_2(1.0, 0.0); + result += mat4(0.18133277, 0.18108074, -0.05638664, 0.29533157, -0.2108019, -0.033636626, 0.5015888, -0.15116066, -0.041320793, -0.14764231, 0.07314567, -0.18865979, 0.10276937, 0.094240844, -0.1364283, 0.27812913) * go_2(1.0, 1.0); + result += mat4(0.06040915, 0.23753685, 0.19019844, 0.23948252, -0.07535012, 0.11848904, 0.14389765, 0.050067905, 0.16150077, -0.030053454, 0.12478255, 0.26020208, 0.111198805, 0.06787492, -0.12771018, 0.006687384) * go_3(-1.0, -1.0); + result += mat4(-0.5421617, 0.10414128, -0.21526064, -0.08883624, 0.13145073, -0.29695904, 0.57386386, 0.073361695, -0.09538372, 0.27593842, 0.070922814, 0.21769938, 0.06214975, 0.11847816, 0.10033405, 0.29360098) * go_3(-1.0, 0.0); + result += mat4(-0.16294672, -0.014815565, 0.22046989, 0.16858687, 0.058917344, 0.21384977, 0.18803519, 0.105688855, 0.0355118, 0.20571202, -0.07341922, 0.26624045, -0.0415102, 0.050942056, 0.19727907, 0.20122413) * go_3(-1.0, 1.0); + result += mat4(-0.020470422, 0.15815964, -0.13437317, -0.1967045, 0.074902646, 0.08356444, 0.055913117, -0.12837863, -0.18647918, 0.07002247, 0.038864706, -0.07288784, 0.04135125, -0.016055549, -0.1340297, -0.15578008) * go_3(0.0, -1.0); + result += mat4(-0.07685624, 0.00079105416, -0.068755336, 0.110282525, -0.014170752, 0.041282844, -0.17035173, 0.19439398, -0.3036256, 0.024148455, -0.19566648, -0.06736254, 0.14203559, -0.13016985, -0.32845357, -0.14266774) * go_3(0.0, 0.0); + result += mat4(0.0087252045, 0.098839566, -0.08770506, -0.08499465, 0.015245115, -0.110854514, 0.054458305, -0.018121868, -0.09666134, -0.08316006, 0.24617113, -0.17195955, 0.2574254, 0.06734342, -0.13792352, -0.07306126) * go_3(0.0, 1.0); + result += mat4(-0.0073954533, -0.20126835, -0.22545357, -0.29462856, 0.057408337, 0.11939119, -0.01846476, 0.12534486, 0.15751605, -0.14282645, -0.14219986, 0.14283386, 0.14090413, 0.10500912, 0.03039335, 0.17448832) * go_3(1.0, -1.0); + result += mat4(0.043910783, -0.09140025, -0.21666165, 0.07616939, 0.104454786, 0.309926, -0.12906921, 0.1140117, 0.09372434, 0.049547072, -0.086615674, -0.034449168, 0.096705064, 0.26001686, 0.027063297, 0.12422948) * go_3(1.0, 0.0); + result += mat4(0.1365422, 0.2679611, 0.12037257, 0.43346113, 0.08223084, -0.016788265, 0.13570398, -0.017974345, -0.17922844, -0.09475725, 0.073539585, -0.106947675, 0.08998511, 0.04133868, 0.16586913, -0.26291734) * go_3(1.0, 1.0); + result += vec4(-0.19233678, 0.016725872, -0.008011114, -0.1977463); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!SAVE conv2d_7_tf1 +//!WIDTH conv2d_6_tf.w +//!HEIGHT conv2d_6_tf.h +//!COMPONENTS 4 +#define go_0(x_off, y_off) (max((conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_6_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_6_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.36016628, 0.019064043, 0.3073228, 0.16891135, 0.026739368, 0.31136194, 0.11260383, -0.26918694, 0.0419928, -0.3365078, 0.20189743, -0.04136312, 0.039564647, 0.033199426, 0.18768296, -0.017119858) * go_0(-1.0, -1.0); + result += mat4(0.28663483, -0.41716507, 0.059281543, 0.043736435, 0.0028875466, 0.13817391, -0.12543318, -0.2794053, -0.023528943, 0.10610115, 0.09100278, 0.040132936, -0.21949205, -0.027810011, -0.0301218, 0.084047124) * go_0(-1.0, 0.0); + result += mat4(0.39674807, -0.0040878756, -0.038235947, 0.11880838, 0.009898328, 0.19107847, -0.009313831, -0.1554276, -0.047341663, 0.18049581, -0.029317195, 0.0708909, 0.0708316, -0.110617444, 0.14584038, -0.022261223) * go_0(-1.0, 1.0); + result += mat4(-0.20400241, 0.0896492, -0.010386381, -0.052133385, 0.005023956, -0.06628705, -0.16436209, -0.25345984, -0.05285192, 0.09706557, -0.03778914, -0.152546, 0.17023252, 0.063713826, 0.00743037, 0.056634087) * go_0(0.0, -1.0); + result += mat4(-0.080793336, 0.4204207, 0.19098237, 0.20028038, -0.054076545, 0.22064368, -0.25853387, -0.3643562, 0.2085573, -0.023731, -0.06727709, -0.18683033, -0.18032159, -0.06388348, 0.304463, -0.2517781) * go_0(0.0, 0.0); + result += mat4(0.11940941, 0.10624008, 0.16120581, 0.2369602, 0.3321827, 0.4272075, -0.10403669, -0.31388018, -0.006372124, -0.00653671, 0.109810196, 0.2277172, 0.005771998, 0.086026914, -0.08934813, -0.094941735) * go_0(0.0, 1.0); + result += mat4(-0.13233568, 0.24112508, -0.0068006413, 0.12466225, 0.11396591, -0.07249253, -0.29090378, -0.12828146, -0.22001141, -0.08532405, -0.11932601, 0.29452974, 0.09572195, 0.017603843, 0.12454017, 0.16321751) * go_0(1.0, -1.0); + result += mat4(0.042107448, -0.00807216, 0.06580674, -0.1289527, 0.13977426, -0.037159685, -0.21001346, -0.08698161, 0.22370502, -0.29170328, 0.2179206, 0.36621302, 0.0825477, -0.016513655, -0.11157249, 0.12861598) * go_0(1.0, 0.0); + result += mat4(0.2246826, -0.13262233, 0.12131653, -0.15522355, 0.38104856, 0.030237729, 0.1286289, -0.19770473, -0.16175011, -0.13688888, 0.23505463, 0.21333031, 0.76352316, -0.17949077, -0.13124311, 0.1613879) * go_0(1.0, 1.0); + result += mat4(-0.050607495, 0.0846705, -0.06136092, -0.033436477, 0.41138348, 0.037043408, -0.02676336, -0.37771952, 0.22147503, 0.06490757, -0.04266158, -0.22606373, 0.045775007, -0.054498192, -0.21495876, -0.036050417) * go_1(-1.0, -1.0); + result += mat4(-0.06242522, 0.2700824, -0.05602621, -0.12361551, 0.14477442, 0.19403581, 0.23505251, -0.072234035, -0.15831544, 0.4640447, -0.104754634, -0.004539681, -0.20246096, 0.23216484, -0.35886365, 0.11360777) * go_1(-1.0, 0.0); + result += mat4(0.14777757, 0.18951412, 0.027219458, 0.11216015, 0.02997997, -0.13466355, -0.0010830094, 0.021302953, 0.23441231, -0.14529245, 0.08068729, 0.10044398, 0.3972878, 0.26570204, 0.0046810666, -0.2863261) * go_1(-1.0, 1.0); + result += mat4(-0.10385485, 0.1053724, 0.16961229, 0.20727012, -0.025148917, -0.011365095, 0.03899919, -0.030950211, 0.079080455, -0.32767853, 0.064670205, -0.035771385, 0.16833797, -0.21567492, 0.30871257, -0.19965471) * go_1(0.0, -1.0); + result += mat4(-0.23420888, -0.004894698, -0.18162623, -0.31107524, 0.11976508, 0.14924951, -0.08723316, 0.21401922, -0.58200324, -0.01177345, -0.049033508, 0.19593577, -0.21139073, 0.13016601, 0.08734843, 0.4158892) * go_1(0.0, 0.0); + result += mat4(0.0009789813, 0.33274913, 0.017405733, -0.042906318, -0.26410276, -0.09291333, 0.019387102, 0.105381854, -0.009176527, 0.09483514, -0.28462934, -0.03644404, 0.285194, -0.4260311, 0.14902237, -0.115670316) * go_1(0.0, 1.0); + result += mat4(-0.09344311, 0.4463103, 0.19984834, -0.09733857, -0.118717775, -0.0708026, 0.24919955, -0.11234634, 0.1246395, -0.052909933, 0.1525815, 0.07724016, 0.0070534665, -0.06404165, -0.18149726, -0.014058336) * go_1(1.0, -1.0); + result += mat4(-0.17353044, 0.15376104, 0.004588994, -0.13554202, -0.19920237, -0.18918681, 0.11327512, -0.117296435, -0.0785251, 0.013677155, -0.2103214, 0.06843426, -0.27790928, 0.09837545, -0.00019213746, 0.09132539) * go_1(1.0, 0.0); + result += mat4(-0.01586651, 0.014929441, 0.2426186, -0.1889374, -0.0865462, -0.07454513, -0.20797268, -0.22366855, 0.19704159, 0.0048206006, -0.16707218, -0.14162683, 0.036798395, -0.1663155, -0.12009389, 0.09603803) * go_1(1.0, 1.0); + result += mat4(-0.041532192, 0.05753804, 0.17927068, -0.042112097, 0.12080969, -0.15052572, -0.34855765, -0.07356988, -0.28199884, -0.18958664, 0.15879883, 0.08511588, 0.0034213227, -0.05338495, -0.37285298, 0.06626709) * go_2(-1.0, -1.0); + result += mat4(-0.20219134, 0.22150375, -0.29405454, 0.06597703, -0.018885285, -0.010551704, -0.010774283, 0.08758955, -0.2015349, -0.17006227, -0.24321876, -0.06864207, -0.118437864, -0.043977212, -0.029736811, 0.14040919) * go_2(-1.0, 0.0); + result += mat4(-0.18709077, -0.09723938, 0.12783436, -0.15167634, 0.29039705, -0.11009911, 0.018371418, -0.060096707, -0.07256923, -0.25799567, -0.06276934, -0.035992302, -0.06729111, -0.059956793, -0.024079734, 0.011838878) * go_2(-1.0, 1.0); + result += mat4(0.010449175, -0.08212451, 0.1409803, 0.11861122, -0.18035835, 0.051930565, 0.01049551, -0.09447962, 0.12029649, 0.040604513, -0.059971705, -0.0044667358, -0.22080486, -0.11187681, 0.124374695, -0.004155485) * go_2(0.0, -1.0); + result += mat4(-0.28584236, -0.38480133, -0.13987814, -0.4463469, -0.3890419, -0.022498172, 0.17334452, 0.21895568, -0.15450422, -0.10905497, 0.15111905, -0.22554915, 0.106121585, -0.029144369, 0.36059046, 0.22140682) * go_2(0.0, 0.0); + result += mat4(-0.23780307, -0.023033705, 0.068205886, -0.110635854, -0.26720005, -0.1608183, 0.19523881, 0.07972837, -0.018495852, -0.2793956, 0.17668398, -0.12020479, -0.079556085, -0.02284952, 0.031480275, 0.31818348) * go_2(0.0, 1.0); + result += mat4(0.22501226, -0.00829407, 0.059581667, 0.16512989, 0.18711442, 0.1200968, 0.11812652, -0.16091056, 0.15733972, 0.045156084, 0.20640492, -0.16852027, -0.11217177, 0.06746273, -0.050218176, 0.08643783) * go_2(1.0, -1.0); + result += mat4(0.20715691, -0.1082907, 0.027892975, 0.19515261, -0.17838904, 0.1532257, -0.108409844, -0.06632365, -0.13805026, 0.23020233, 0.12416581, -0.14861803, 0.16650471, 0.08158386, -0.09051303, -0.06981649) * go_2(1.0, 0.0); + result += mat4(-0.04617126, 0.06579221, 0.25964734, 0.28500968, 0.07641255, -0.090885855, -0.0972522, 0.18298368, -0.06393334, 0.103463, -0.23062052, -0.15270731, 0.13633437, 0.074707486, 0.15065335, -0.024602572) * go_2(1.0, 1.0); + result += mat4(0.118319295, 0.010410938, 0.044655934, -0.104725905, 0.030477569, 0.12867387, 0.039075315, 0.18922117, 0.13301082, -0.1601557, 0.038168408, -0.07372259, -0.09522213, -0.095107146, -0.16679631, 0.044673234) * go_3(-1.0, -1.0); + result += mat4(0.46229, -0.30780822, -0.09081465, 0.1433387, -0.0315039, 0.059409115, -0.24948491, -0.17146957, 0.060843736, -0.041989822, 0.054005735, 0.22835566, 0.12036598, -0.0070898845, 0.17276852, -0.17754094) * go_3(-1.0, 0.0); + result += mat4(-0.35119572, 0.020034311, 0.08751943, 0.08193488, 0.041884877, 0.22649358, -0.07447533, 0.20845473, -0.04859846, -0.16206735, 0.06819576, -0.053000778, 0.18146423, 0.04694148, 0.045293212, 0.06783575) * go_3(-1.0, 1.0); + result += mat4(0.280914, -0.14998704, -0.23485807, -0.015608296, 0.1549556, -0.11992663, -0.094974115, 0.05887284, 0.053392075, 0.10322464, -0.075066686, 0.068358354, -0.18663338, 0.009901499, -0.123370335, -0.12502703) * go_3(0.0, -1.0); + result += mat4(0.7748568, -0.17870626, -0.20770052, 0.024692526, -0.056430295, -0.06324113, -0.03660047, 0.29629672, -0.51896983, -0.027231261, 0.05903762, 0.077677645, -0.061675485, -0.20277846, 0.10352223, -0.08198446) * go_3(0.0, 0.0); + result += mat4(-0.06347568, 0.21643166, -0.09718546, 0.0372257, -0.029537952, -0.0357135, -0.09548363, 0.18225233, -0.29609334, -0.3496132, 0.18245913, -0.10162589, -0.18189451, -0.09077887, 0.117313184, -0.06863874) * go_3(0.0, 1.0); + result += mat4(-0.047373574, -0.020289376, -0.25748715, -0.13568166, 0.15656634, -0.06841899, 0.012100781, -0.13611819, 0.0016357322, -0.23870537, 0.14035743, -0.14700134, 0.2535575, -0.13697346, -0.13693139, -0.10365287) * go_3(1.0, -1.0); + result += mat4(0.4283934, -0.316192, -0.012617617, 0.018468965, 0.21436644, 0.18408814, -0.42651537, 0.12504087, -0.13894933, 0.091662176, -0.20096369, -0.080727175, -0.005487846, 0.17046383, 0.1383948, -0.0054956395) * go_3(1.0, 0.0); + result += mat4(0.20014295, -0.027282396, -0.06317007, 0.04452042, 0.064600386, 0.072222926, -0.33409226, 0.08063831, -0.022607977, 0.1308856, -0.39691743, -0.094889864, -0.1810531, 0.011367248, -0.2531222, -0.22468317) * go_3(1.0, 1.0); + result += vec4(0.26886886, 0.05874665, 0.10268232, 0.05833081); + return result; +} +//!DESC Anime4K-v4.0-Restore-CNN-(VL)-Conv-3x1x1x112 +//!HOOK MAIN +//!BIND MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_7_tf +//!BIND conv2d_7_tf1 +//!SAVE MAIN +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +#define g_0 (max((conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_1 (max((conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_2 (max(-(conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_3 (max(-(conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_4 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_5 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_6 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_7 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_9 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_10 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_11 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_12 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_13 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_14 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_15 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_16 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_17 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_18 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_19 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_21 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_22 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_23 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_24 (max((conv2d_7_tf_tex(conv2d_7_tf_pos)), 0.0)) +#define g_25 (max((conv2d_7_tf1_tex(conv2d_7_tf1_pos)), 0.0)) +#define g_26 (max(-(conv2d_7_tf_tex(conv2d_7_tf_pos)), 0.0)) +#define g_27 (max(-(conv2d_7_tf1_tex(conv2d_7_tf1_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(0.09689336, 0.06046458, 0.072598994, 0.0, 0.11994565, 0.104477674, 0.09302802, 0.0, -0.05718302, 0.050438102, 0.08814741, 0.0, 0.0308889, 0.0033925986, -0.01715605, 0.0) * g_0; + result += mat4(-0.028314235, 0.06597744, 0.0966897, 0.0, 0.035656154, 0.07770106, 0.075551905, 0.0, 0.0001793458, -0.000479495, -0.00297406, 0.0, -0.053916585, -0.016807461, -0.0057141334, 0.0) * g_1; + result += mat4(-0.047189303, -0.0207, -0.020910334, 0.0, -0.07933196, -0.06961211, -0.086069845, 0.0, 0.0943727, 0.008463375, 0.010755166, 0.0, 0.062410597, 0.022625161, 0.04068433, 0.0) * g_2; + result += mat4(0.10270994, -0.019080428, 0.0050091282, 0.0, -0.004672948, -0.013966742, -0.0063746064, 0.0, -2.5856789e-05, 0.03151499, -0.0023983798, 0.0, 0.113539025, 0.12381699, 0.100360274, 0.0) * g_3; + result += mat4(0.07868885, -0.030913834, -0.009213676, 0.0, 0.04870991, 0.021467991, 0.038739506, 0.0, -0.042969644, -0.07122453, -0.08798675, 0.0, -0.09784122, 0.021434791, 0.02510374, 0.0) * g_4; + result += mat4(0.050420716, 0.0729716, 0.076532185, 0.0, -0.019112485, -0.01037939, -0.026948035, 0.0, -0.02591423, 0.008927897, -0.00042541025, 0.0, 0.1043701, -0.0071186824, -0.041817162, 0.0) * g_5; + result += mat4(-0.16143242, -0.0009298223, -0.01228508, 0.0, 0.07744052, -0.018313263, -0.0488145, 0.0, 0.09241393, 0.07128674, 0.055164956, 0.0, 0.054884013, -0.04834418, -0.06281626, 0.0) * g_6; + result += mat4(-0.049036566, -0.05979936, -0.05594288, 0.0, -0.014564307, 0.031926468, 0.037857566, 0.0, 0.015474487, -0.11385003, -0.11527764, 0.0, -0.07076006, 0.057038613, 0.095983796, 0.0) * g_7; + result += mat4(0.03094887, -0.008734403, 0.00042712069, 0.0, 0.053891554, 0.05837673, 0.06200635, 0.0, 0.09071558, -0.04202184, -0.046172567, 0.0, -0.0425916, 0.04905093, 0.020835675, 0.0) * g_8; + result += mat4(0.096628904, -0.037792254, -0.043241944, 0.0, -0.011923947, -0.025950424, -0.031381752, 0.0, -0.060941868, -0.07859433, -0.07535451, 0.0, -0.026777223, 0.08604982, 0.07829908, 0.0) * g_9; + result += mat4(-0.06435972, 0.0036599538, 0.00786578, 0.0, -0.061972067, -0.05681472, -0.06667608, 0.0, -0.106890626, 0.007406496, 0.029977169, 0.0, -0.20519382, -0.044860814, 0.0021225857, 0.0) * g_10; + result += mat4(-0.16876474, 0.012789643, 0.026692612, 0.0, 0.017817136, 0.026935097, 0.02227043, 0.0, 0.01690181, 0.07716103, 0.086527, 0.0, 0.07923805, -0.10443151, -0.10859543, 0.0) * g_11; + result += mat4(0.003730466, -0.024648283, -0.022169832, 0.0, -0.0062762927, 0.022062732, 0.032966793, 0.0, 0.016349113, 0.017197203, 0.020952817, 0.0, -0.1763789, 0.035497356, 0.053835396, 0.0) * g_12; + result += mat4(0.020886675, -0.07054202, -0.079142675, 0.0, 0.06664387, 0.044960167, 0.042230908, 0.0, -0.095019594, 0.012421141, 0.0142890485, 0.0, 0.056814816, -0.012751135, -0.014684506, 0.0) * g_13; + result += mat4(0.011765893, 0.0008920681, -0.0018258415, 0.0, -0.010473814, -0.023085753, -0.028783914, 0.0, -0.023034256, -0.0024786016, -0.0052162083, 0.0, 0.1643386, -0.06132718, -0.09289065, 0.0) * g_14; + result += mat4(0.016597198, 0.09389637, 0.10833379, 0.0, -0.043163072, -0.04714812, -0.035274632, 0.0, 0.09634976, -0.009292612, -0.022424143, 0.0, -0.08765172, 0.0051558353, 0.010900356, 0.0) * g_15; + result += mat4(0.030815786, 0.021069322, 0.01812191, 0.0, 0.084839165, -0.0080813095, -0.029270556, 0.0, -0.10456346, 0.062386703, 0.0665605, 0.0, 0.11926609, -0.1104228, -0.13291118, 0.0) * g_16; + result += mat4(-0.07159541, -0.007267032, -0.010134558, 0.0, 0.008234213, 0.045609634, 0.040295456, 0.0, 0.018416971, 0.01308482, 0.014649557, 0.0, 0.035107512, -0.02140815, -0.030279048, 0.0) * g_17; + result += mat4(0.01918586, 0.03875863, 0.03229402, 0.0, -0.07917104, 0.041135103, 0.057182517, 0.0, 0.08609541, 0.0079662455, 0.004327576, 0.0, -0.14332893, 0.03120354, 0.056732506, 0.0) * g_18; + result += mat4(0.03200192, -0.0035752193, -0.0031064528, 0.0, -0.010902813, 0.014607456, 0.019431474, 0.0, -0.016461229, -0.004938204, -0.004655488, 0.0, -0.033470232, 0.0026075812, 0.005896968, 0.0) * g_19; + result += mat4(0.037410006, 0.048742272, 0.04348088, 0.0, 0.037719514, 0.030768529, 0.03127472, 0.0, 0.056426726, 0.03066893, 0.016440205, 0.0, -0.010599352, 0.022832409, 0.023211194, 0.0) * g_20; + result += mat4(-0.005733291, 0.06365659, 0.06663611, 0.0, -0.041917093, -0.016493445, -0.020438088, 0.0, -0.0014357592, -0.0022506563, -0.0045095007, 0.0, 0.029893145, -0.009129354, -0.015173116, 0.0) * g_21; + result += mat4(0.013052085, 0.005108175, 0.0025906067, 0.0, -0.021950055, -0.036447693, -0.036141638, 0.0, -0.036296472, 0.0068928464, 0.013102313, 0.0, 0.0060471976, -0.024798103, -0.023548538, 0.0) * g_22; + result += mat4(0.0067743887, -0.06191211, -0.062355213, 0.0, 0.0016080744, -0.020445071, -0.016840393, 0.0, 0.028264903, 0.01852915, 0.015891539, 0.0, -0.023877412, -0.013271666, -0.008158679, 0.0) * g_23; + result += mat4(-0.04317466, -0.018953001, -0.020452993, 0.0, -0.009322576, -0.03022352, -0.030970376, 0.0, 0.05653658, 0.05430553, 0.046692245, 0.0, 0.05615359, 0.059338935, 0.056018773, 0.0) * g_24; + result += mat4(0.022878079, 0.03392234, 0.033057988, 0.0, -0.017554542, -0.0141542535, -0.014122613, 0.0, -0.048634093, -0.05316463, -0.047988772, 0.0, -0.058002178, -0.040221967, -0.034025013, 0.0) * g_25; + result += mat4(-0.018253656, -0.04197674, -0.040467236, 0.0, -0.04358929, -0.028309818, -0.025425073, 0.0, -0.008488672, -0.001727991, 0.00035808363, 0.0, -0.0011709273, 0.0052514165, 0.0059479307, 0.0) * g_26; + result += mat4(-0.08333935, -0.09818201, -0.09476284, 0.0, -0.033692095, -0.046259012, -0.045797516, 0.0, -0.007577072, 0.0022402718, 0.0016200038, 0.0, 0.0029786075, -0.020728534, -0.018938033, 0.0) * g_27; + result += vec4(0.047567394, -0.02504617, -0.028163986, 0.0); + return result + MAIN_tex(MAIN_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_M.glsl b/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_M.glsl new file mode 100644 index 00000000..156c6bdd --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_M.glsl @@ -0,0 +1,300 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.010995803, 0.077095956, -0.043992598, 0.06048717, 0.1164834, -0.11689607, 0.072985925, -0.078805886, 0.01182932, 0.054985743, -0.09018186, 0.044907484, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.1813623, -0.14752422, 0.025720436, -0.17639883, 0.15697388, 0.10445984, -0.1843076, 0.5264643, 0.047516696, -0.097305484, 0.09740847, -0.29619336, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.014534763, 0.09486465, 0.046173926, 0.039391946, 0.09609376, -0.060574662, 0.042200956, -0.3269777, 0.051006425, 0.059818447, 0.04366627, 0.17699827, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.04268535, -0.08152529, 0.10577459, -0.036936995, -0.051562306, 0.054872766, 0.09194519, 0.0025066638, -0.01073954, 0.00064474024, 0.10038221, 0.02131141, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.51751363, -0.40028602, 0.3469574, 0.5933738, -0.91357684, -0.67692596, 0.57815677, 0.39809322, -0.16341521, -0.27169713, 0.12232366, 0.4318641, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.12601124, -0.06263236, -0.45907676, -0.41514075, 0.3330334, -0.1929565, -0.6333532, -0.6552794, -0.045809917, 0.046351526, -0.26173338, -0.30252662, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.0030332592, 0.012103107, 0.010537323, -0.02038607, 0.095558085, 0.097704545, 0.083433494, 0.026790185, 0.01943357, -0.061712462, -0.00015703632, -0.032268334, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.016870102, 0.5215812, -0.11525501, 0.027527615, -0.09045733, 0.61310345, -0.1575268, 0.1905386, 0.020172214, 0.3503187, -0.08209157, -0.051328037, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.005494087, -0.010656317, 0.07682753, -0.08116042, -0.03934524, 0.16589017, 0.101483546, -0.066603065, 0.03494657, -0.07885597, 0.074227594, 0.0016264897, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.014463938, -0.0031906287, 0.007015422, -0.003888468); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_tf +//!SAVE conv2d_1_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.08532478, -0.14302494, -0.017921071, -0.0032664281, -0.09841952, 0.024187077, 0.10701477, 0.14110753, -0.05714981, -0.10897174, 0.073803626, 0.103992954, 0.07914382, 0.032193683, -0.18346278, -0.09723936) * go_0(-1.0, -1.0); + result += mat4(-0.034482613, -0.10742312, -0.047286414, -0.08641124, -0.33896688, -0.036533825, -0.48337597, 0.034040943, -0.13598205, -0.080917805, 0.08540263, -0.012667689, -0.009171425, -0.120026454, -0.20536867, -0.032149274) * go_0(-1.0, 0.0); + result += mat4(0.18687321, 0.066278316, 0.024327392, 0.08816582, -0.08017908, 0.09488853, 0.26018232, -0.101504356, 0.17487666, 0.31057635, 0.14785016, -0.09622089, -0.07537452, -0.13844088, -0.05810814, 0.09907489) * go_0(-1.0, 1.0); + result += mat4(-0.04183032, 0.15207712, 0.005002397, 0.32277516, -0.16169126, -0.119836345, -0.04068436, -0.096728764, 0.11943901, 0.1789597, -0.20412198, 0.19009817, 0.36630696, 0.06946421, -0.5254373, -0.11896399) * go_0(0.0, -1.0); + result += mat4(-0.31916487, -0.98911583, 1.0728644, -0.39280394, 0.33458877, -0.17325239, -0.645045, -0.28524077, -0.14512783, 0.24996442, -0.09837877, 0.05468934, 0.31559715, -0.020504637, -0.026724018, 0.24507573) * go_0(0.0, 0.0); + result += mat4(-0.23759829, -0.08530173, -0.16665787, -0.22463752, 0.109896734, 0.13446991, -0.049552456, -0.02385489, -0.01245375, 0.3833208, 0.05758832, 0.1528937, 0.0501858, -0.19651426, 0.0076587177, -0.03297025) * go_0(0.0, 1.0); + result += mat4(0.14554465, -0.01826686, 0.10284085, -0.19152659, -0.017585073, -0.05511482, 0.06362406, 0.023924058, -0.0018977845, -0.103172876, 0.03287086, -0.20085956, 0.36062446, 0.10749464, -0.20984372, 0.018256644) * go_0(1.0, -1.0); + result += mat4(-0.005534592, 0.3709197, -0.18287498, 0.1720451, 0.030155553, -0.023265475, 0.0058617783, -0.031765483, 0.037328955, -0.2730994, 0.35090837, -0.3269043, -0.028477207, 0.32756507, -0.15989502, 0.12158258) * go_0(1.0, 0.0); + result += mat4(0.10873739, 0.19583772, 0.060394943, 0.09410379, -0.04739245, 0.026561242, 0.022990001, 0.1093272, -0.01071349, -0.022938967, -0.046423864, 0.2385325, -0.0319821, 0.046962265, 0.09081178, -0.11001857) * go_0(1.0, 1.0); + result += mat4(0.13012704, 0.112289295, 0.030790284, -0.050499484, 0.11784853, 0.08107028, -0.07556717, -0.15643, 0.015249331, 0.015299608, 0.07748125, 0.054485757, 0.044857923, 0.12161275, -0.048292994, -0.033995003) * go_1(-1.0, -1.0); + result += mat4(0.12931514, 0.15114146, 0.070513315, 0.11246343, 0.4142387, 0.213479, -0.5439916, 0.07776645, 0.13109331, 0.2021147, 0.25932786, -0.22157331, 0.02377734, -0.014970623, -0.1943276, 0.18440372) * go_1(-1.0, 0.0); + result += mat4(-0.22365458, -0.19829084, -0.06881161, -0.06468993, 0.17202774, 0.0048758537, -0.09235021, 0.18941896, 0.064125344, -0.09067088, 0.09748182, 0.13561936, -0.05876288, -0.0122420965, -0.054380875, -0.17743628) * go_1(-1.0, 1.0); + result += mat4(0.18582906, -0.09263032, -0.08210888, -0.20515606, 0.11484005, 0.08557595, 0.0009253741, -0.051202174, -0.18535301, -0.1529345, -0.13092944, 0.03770747, -0.020947013, 0.19187425, -0.15494856, -0.048979875) * go_1(0.0, -1.0); + result += mat4(-0.38131633, 0.4278787, 0.19763695, 0.27655518, -0.08711912, 0.07374453, -0.064803004, 0.5983854, 0.2361923, -0.057221692, -0.37138999, -0.24259573, 0.13890724, 0.25706333, -0.54021406, 0.08095518) * go_1(0.0, 0.0); + result += mat4(0.0991328, -0.022651536, -0.029148921, -0.009812537, -0.09523686, -0.15704902, 0.052389514, 0.21561539, 0.1950314, -0.08572602, 0.0016523858, 0.14125621, -0.030999828, 0.12009709, 0.0373512, -0.105043754) * go_1(0.0, 1.0); + result += mat4(-0.11251988, 0.12106985, 0.011923068, 0.3662747, 0.004800994, 0.017972551, 0.004761366, -0.07934206, -0.13755941, -0.022852683, 0.1502225, 0.009758547, -0.16964264, 0.00984782, 0.07855833, 0.035730787) * go_1(1.0, -1.0); + result += mat4(0.01964957, -0.27226487, 0.033933397, -0.117632054, -0.009058229, 0.047830686, -0.01125145, 0.136628, 0.0056388285, 0.3028781, -0.12286517, 0.23498532, -0.009319075, -0.444048, 0.16174883, -0.06367683) * go_1(1.0, 0.0); + result += mat4(0.02343933, -0.010915871, -0.058680378, -0.21886891, -0.010750894, -0.06671997, 0.0602906, -0.07903071, 0.066891186, 0.06650588, 0.14362891, -0.101870626, 0.02264628, -0.06940821, -0.077616625, 0.110911585) * go_1(1.0, 1.0); + result += vec4(0.032014452, -0.020821465, 0.0826416, -0.002838458); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!SAVE conv2d_2_tf +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.06963679, -0.07560548, -0.069522075, 0.0038078027, -0.08002613, 0.13671301, 0.084461786, -0.039376218, 0.19136548, -0.123174496, 0.26566333, -0.16583005, -0.18664864, -0.023539122, -0.21928434, -0.026818147) * go_0(-1.0, -1.0); + result += mat4(0.16660932, -0.18558703, 0.37230486, 0.118128106, -0.14098641, 0.14659132, -0.22217897, 0.12952235, -0.4139033, -0.04308319, 0.12885277, -0.17986743, -0.23556231, -0.08351981, -0.43240538, 0.019033253) * go_0(-1.0, 0.0); + result += mat4(-0.18008037, -0.04448665, 0.011906908, -0.023056917, 0.18136618, -0.04723555, -0.0050158803, -0.14823224, -0.2105281, 0.023047728, -0.14040631, -0.03178526, -0.13477588, -0.01820428, 0.058358394, 0.23792502) * go_0(-1.0, 1.0); + result += mat4(0.07363309, -0.061728477, 0.03573137, -0.0050971056, -0.012813505, -0.17236637, 0.1697835, 0.055788577, -0.22263195, 0.10324512, 0.58971673, -0.4872246, -0.1555681, 0.032747746, -0.096495196, 0.070196226) * go_0(0.0, -1.0); + result += mat4(0.14174286, 0.099460006, -0.088765986, 0.58350676, -0.025177564, -0.46004987, 0.37007022, -0.11437029, -0.5164534, -0.60465246, 0.38859612, -0.32846406, 0.050266482, -0.20334712, 0.18316261, -0.19327633) * go_0(0.0, 0.0); + result += mat4(-0.09377763, -0.0012762006, -0.028991895, -0.26523829, 0.20173682, 0.037923716, -0.03174243, 0.07103378, -0.10764164, -0.30752546, 0.20556998, -0.1892279, 0.08115748, -0.023550175, -0.07627362, 0.11746628) * go_0(0.0, 1.0); + result += mat4(-0.06998859, -0.017997518, 0.069938794, -0.14943017, -0.14179112, 0.16643842, -0.110231474, 0.08895815, -0.24074875, 0.3277253, -0.07435203, -0.23452802, 0.039962552, -0.07145652, -0.022511544, -0.04571222) * go_0(1.0, -1.0); + result += mat4(-0.059785757, -0.23771374, -0.030571314, 0.25222278, 0.106601834, 0.34398326, 0.14511436, -0.03867526, -0.38982397, -0.11944689, 0.12997924, -0.13079585, 0.005729482, 0.012653905, -0.063693404, 0.09632285) * go_0(1.0, 0.0); + result += mat4(-0.04933823, 0.0547175, 0.050636575, -0.10060694, 0.1344485, 0.19752938, -0.100068115, -0.028829506, -0.14096203, -0.079092234, 0.092109434, 0.011606209, -0.04052607, -0.008347507, 0.06956573, -0.028109524) * go_0(1.0, 1.0); + result += mat4(0.21918017, -0.11115073, 0.2262453, -0.06889667, -0.11256312, -0.07438075, -0.088454485, 0.13672407, -0.06905764, 0.08128395, 0.016103368, 0.050190717, 0.09691516, 0.05845721, 0.4886816, 0.041121427) * go_1(-1.0, -1.0); + result += mat4(-0.3449472, 0.09711974, -0.13881907, -0.018265123, 0.27855873, -0.07030004, 0.29545054, 0.37216932, 0.08657718, 0.099066615, -0.10574013, -0.17667885, -0.14855732, -0.11351448, 0.66945946, 0.11312157) * go_1(-1.0, 0.0); + result += mat4(0.2526151, -0.04594331, -0.06606611, 0.09104881, 0.06857995, -0.075284235, -0.17664689, 0.21578754, 0.0696524, 0.09142951, 0.080997564, -0.0682772, -0.0011445724, -0.11736295, 0.2519232, -0.101926275) * go_1(-1.0, 1.0); + result += mat4(-0.12913518, 0.058357026, 0.195421, -0.15651494, 0.2877076, 0.0033844314, -0.07831594, 0.052855384, -0.031295884, 0.03301088, -0.18408822, 0.06732994, 0.23742151, -0.12568143, 0.22810535, -0.11545694) * go_1(0.0, -1.0); + result += mat4(-0.49203303, -0.22656603, 0.1723193, -0.51250046, -0.09742038, 0.758559, -0.3387505, -0.6193586, 0.14136684, 0.27679884, -0.050113205, 0.31041816, -0.36475047, -0.48746544, 0.3233227, 0.4579754) * go_1(0.0, 0.0); + result += mat4(0.46636763, 0.1507748, -0.2581362, 0.15413165, -0.17160143, 0.14256273, -0.074575804, -0.099299066, -0.0017214464, 0.13778336, -0.07378213, -0.15489665, -0.10533715, -0.0011083825, 0.39584312, 0.0023906573) * go_1(0.0, 1.0); + result += mat4(0.026959421, -0.06391859, 0.0034752619, 0.14521928, -0.0010877338, -0.032619733, 0.005375293, -0.018952755, 0.03381545, -0.007652831, 0.034141563, 0.046016496, 0.11219674, 0.030913852, 0.077403754, 0.17192438) * go_1(1.0, -1.0); + result += mat4(0.040326044, 0.17290725, -0.1220239, -0.09594783, -0.025229257, 0.17913155, -0.26623353, -0.033396784, -0.03075146, 0.009143897, -0.0136083895, -0.13886899, 0.075683735, -0.11584183, 0.22182357, 0.19350322) * go_1(1.0, 0.0); + result += mat4(0.15726025, -0.10215694, -0.060057458, 0.26487043, -0.04075552, -0.016496127, 0.0015382086, 0.108562306, 0.026795091, 0.0441233, -0.08754318, -0.0460157, 0.048422016, 0.14107347, 0.07986661, 0.1047697) * go_1(1.0, 1.0); + result += vec4(0.0766796, 0.08115133, -0.05703058, 0.14025708); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!SAVE conv2d_3_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.18038331, 0.21830973, -0.10019419, -0.022745568, -0.14944611, -0.15669158, 0.46361133, -0.07289843, 0.02976627, -0.09000817, 0.113060996, 0.05635241, 0.012762965, -0.022688959, 0.01629751, 0.061114635) * go_0(-1.0, -1.0); + result += mat4(0.024338024, -0.10004009, -0.13709056, -0.0851965, 0.23927099, -0.024349794, -0.16574804, 0.084686354, -0.047885604, 0.09688507, -0.12733915, 0.06980246, 0.11480734, 0.014669346, -0.07505829, 0.04676309) * go_0(-1.0, 0.0); + result += mat4(0.054203495, 0.011881634, -0.036115017, -0.0686298, -0.13682245, -0.15678032, 0.057050128, -0.03368558, 0.13011025, 0.033391044, -0.09841339, -0.027057761, -0.18701133, 0.20852546, -0.13660902, 0.0005817616) * go_0(-1.0, 1.0); + result += mat4(-0.08077834, 0.35952288, -0.07647382, -0.0033230998, 0.13929126, -0.09155619, 0.14128102, 0.16005981, 0.18161216, -0.09485738, 0.0029118075, 0.052682754, 0.03242074, 0.08299826, 0.073796146, -0.06446532) * go_0(0.0, -1.0); + result += mat4(-0.36655015, 0.4606936, 0.19073649, 0.31655258, -0.006838053, -0.579939, 0.089126326, -0.14021218, -0.3437716, 0.16714323, 0.17705944, -0.22418492, -0.3883696, -0.2302651, 0.2581861, 0.21983066) * go_0(0.0, 0.0); + result += mat4(0.0992383, -0.014257871, -0.023896435, 0.19868234, 0.0408007, 0.07995299, 0.16102871, -0.11668251, 0.22458278, -0.05587917, 0.19373615, -0.016202094, -0.25106144, 0.15634494, 0.11624891, -0.2930768) * go_0(0.0, 1.0); + result += mat4(0.024616942, 0.36248252, -0.14779098, -0.019894283, -0.007111256, 0.010641561, -0.09541178, 0.21236233, 0.009501827, 0.08132797, -0.13983901, 0.027207611, 0.038444366, -0.013995817, -0.16242191, 0.03294123) * go_0(1.0, -1.0); + result += mat4(0.0131698875, -0.18124102, -0.13503514, -0.06099072, 0.07422735, -0.20906176, -0.049005672, 0.08739405, -0.031758767, -0.1978915, 0.23094437, 0.54512614, 0.21338555, -0.011205669, -0.23727885, -0.29533875) * go_0(1.0, 0.0); + result += mat4(-0.0010255767, -0.07168225, -0.033568826, 0.22161655, -0.087293416, 0.11350447, 0.13653576, 0.061226424, -0.13074352, 0.058425818, 0.038460605, 0.2749964, -0.012814839, 0.085885845, -0.038151987, -0.17960808) * go_0(1.0, 1.0); + result += mat4(0.19728905, -0.040724937, -0.18270236, 0.046735186, 0.03507326, 0.119867206, -0.12691991, 0.18119748, -0.052895024, 0.11348764, -0.043787055, 0.004703516, 0.006752757, -0.06939761, -0.009801806, -0.075640485) * go_1(-1.0, -1.0); + result += mat4(0.051735226, 0.1732299, -0.10672899, 0.0320877, -0.4913656, 0.2102274, 0.43920282, 0.059108034, 0.08349019, -0.16517872, 0.15436842, -0.1075667, 0.022741623, -0.26693836, 0.3645307, 0.017874828) * go_1(-1.0, 0.0); + result += mat4(0.034464058, 0.014929155, 0.054227423, 0.14167373, -0.0023630706, -0.08904212, 0.11918041, -0.034539603, 0.06048089, -0.06807333, 0.14447778, 0.035260547, 0.09979546, -0.1924939, 0.14596114, -0.12069667) * go_1(-1.0, 1.0); + result += mat4(-0.04427228, -0.23673469, 0.010357103, -0.2907043, -0.06845721, -0.078984015, 0.06867713, -0.058163825, -0.12154615, 0.08430951, 0.1922373, 0.030108064, -0.43081748, -0.38715646, -0.022240646, -0.15403675) * go_1(0.0, -1.0); + result += mat4(0.46885306, -0.33421394, -0.6695223, -0.41841158, 0.30317923, 0.24244753, -0.1047785, -0.18656285, 0.06261881, -0.4405616, 0.24233986, 0.40070608, 0.81440526, 0.11305212, -0.8826317, -0.023478031) * go_1(0.0, 0.0); + result += mat4(-0.07879348, -0.024378026, -0.041883785, -0.17030984, 0.23229122, -0.011237109, 0.12058088, 0.20766267, -0.36519575, 0.09599417, -0.1271098, 0.06990154, 0.21161246, 0.041002538, -0.36046275, 0.007304667) * go_1(0.0, 1.0); + result += mat4(0.10873893, 0.003872542, -0.13476561, -0.036068805, -0.054637462, 0.02304618, 0.04707738, -0.2856381, 0.07124422, 0.010866545, 0.20484549, -0.008342406, -0.43660247, -0.041055538, 0.33536008, -0.060022205) * go_1(1.0, -1.0); + result += mat4(0.1966458, 0.0016302796, -0.25712642, -0.09639119, -0.006955351, 0.10882133, 0.1107341, 0.062697805, -0.1074494, 0.17361663, 0.6429869, -0.39846307, -0.26302996, 0.048710946, 0.40387508, 0.4299715) * go_1(1.0, 0.0); + result += mat4(0.18948616, 0.24086732, -0.064474985, -0.11069709, 0.1279659, -0.13438123, -0.028438117, 0.125883, 0.018153818, -0.21942288, 0.020390838, -0.22797634, -0.10821287, -0.17175092, 0.122016855, 0.20699544) * go_1(1.0, 1.0); + result += vec4(-0.05101961, -0.060740646, -0.024465766, 0.058471628); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!SAVE conv2d_4_tf +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.14533128, 0.07266841, 0.13238011, -0.23328504, 0.031516243, 0.058471266, -0.06394412, 0.090752736, -0.0042359144, 0.12357294, -0.04377495, 0.0011743477, 0.05412243, -0.08146249, 0.04002749, -0.032876283) * go_0(-1.0, -1.0); + result += mat4(-0.036972385, -0.15238069, -0.3453321, -0.36025128, 0.07597202, -0.02368151, -0.3889606, 0.34607083, 0.3133179, -0.21712309, -0.4210954, 0.21450534, 0.15226828, 0.25326282, 0.45327064, -0.3350824) * go_0(-1.0, 0.0); + result += mat4(0.019018406, -0.33060563, -0.092601225, 0.14970545, 0.1441509, -0.19228427, -0.032771986, 0.26331595, 0.052981265, -0.06627376, -0.08634131, 0.038706224, 0.13403937, -4.4842476e-05, 0.049002815, -0.12719193) * go_0(-1.0, 1.0); + result += mat4(0.17527401, -0.0035254909, -0.047959115, -0.4526988, -0.07510284, 0.0013256798, -0.07539148, 0.24220634, -0.08708839, -0.14494033, -0.17085724, -0.099797316, 0.0068515535, -0.08918779, 0.27164719, -0.1702649) * go_0(0.0, -1.0); + result += mat4(0.31848368, 0.48983255, -0.44140294, -0.65174145, -0.004199057, 0.19494705, 0.5196497, -0.027118586, 0.032509074, -0.23900363, -0.14489244, 0.36314297, -0.23168536, -0.20960593, 0.61471456, 0.12401275) * go_0(0.0, 0.0); + result += mat4(-0.24317405, 0.21560913, 0.15564032, 0.11606844, -0.15039803, -0.59578896, 0.14100945, -0.026194477, 0.37237462, -0.49472088, -0.15215331, -0.38820064, -0.25089455, -0.29643852, -0.09513793, 0.019779462) * go_0(0.0, 1.0); + result += mat4(0.12498539, 0.0710632, -0.25012368, -0.2272255, -0.08647026, 0.12277892, 0.011025097, -0.12168395, -0.13489573, 0.016708186, -0.15583871, -0.057124946, 0.1216943, 0.019803725, 0.06952334, -0.032985855) * go_0(1.0, -1.0); + result += mat4(0.28794885, 0.33783793, -0.14469545, -0.081780486, -0.50320613, -0.067601606, -0.06847453, -0.021648854, -0.34295765, 0.15071863, -0.06619896, -0.084465064, 0.31909832, 0.015414661, 0.14930317, -0.11295768) * go_0(1.0, 0.0); + result += mat4(0.24530606, 0.25526014, 0.09971985, -0.07749641, -0.2361951, -0.07997673, 0.03617294, 0.02959561, -0.4498983, -0.014073485, -0.20587012, 0.06396779, 0.1262825, 0.027433183, 0.14469334, 0.011538011) * go_0(1.0, 1.0); + result += mat4(-0.038572453, -0.023108613, -0.039481267, -0.012160024, -0.004521989, -0.028665857, 0.04295255, 0.10580258, 0.05439479, -0.072261885, 0.11030243, 0.08934696, 0.09133867, 0.017547369, 0.097613186, 0.05491059) * go_1(-1.0, -1.0); + result += mat4(-0.09972817, 0.057730395, 0.12665828, 0.32861367, -0.16186063, 0.0745509, 0.2394045, -0.08687853, -0.034404907, -0.05843572, 0.0684561, -0.1355754, 0.19248672, -0.60372186, 0.12583947, 0.4388962) * go_1(-1.0, 0.0); + result += mat4(0.10341107, 0.061113223, 0.08773817, -0.082504354, -0.16612078, 0.2681751, 0.019737698, -0.17122322, -0.135949, 0.3048101, 0.087803006, 0.11373851, 0.013192192, -0.27022064, 0.35529897, -0.15321451) * go_1(-1.0, 1.0); + result += mat4(-0.032835662, 0.11123062, -0.11322452, -0.17300649, 0.04680824, 0.12849288, 0.17269878, -0.048671383, 0.05189037, -0.009078046, 0.22105052, 0.013008137, -0.009738674, 0.15391739, 0.20969556, 0.14189166) * go_1(0.0, -1.0); + result += mat4(-0.47377753, 0.3038031, 0.18604809, 0.1931698, -0.2964668, -0.12287907, -0.7107761, 0.26619422, -0.33923018, 0.19200724, 0.013786281, -0.17496964, 0.079325035, -0.3694445, 0.0054486147, -0.33018264) * go_1(0.0, 0.0); + result += mat4(0.14903802, -0.028043179, 1.5238678e-05, 0.021232028, 0.16025065, 0.14746875, -0.22831628, -0.12177345, 0.038778774, 0.32188168, -0.042017702, 0.27155936, 0.17920609, 0.04099755, 0.28527525, 0.074623376) * go_1(0.0, 1.0); + result += mat4(0.057019282, -0.112741895, 0.030361209, 0.14567861, 0.056265317, -0.01573537, -0.06707608, 0.016657263, 0.09829025, -0.026795063, 0.023042196, 0.09438241, -0.025483066, -0.052787006, 0.19730279, 0.021218104) * go_1(1.0, -1.0); + result += mat4(0.19868211, -0.01531125, 0.108596824, -0.035456363, 0.0033609823, 0.057961613, -0.013726211, 0.101742364, 0.33357215, 0.14468077, 0.29711527, -0.24662566, -0.119014986, -0.1899639, 0.11246697, -0.0035374009) * go_1(1.0, 0.0); + result += mat4(-0.05602109, -0.15539522, 0.010730943, 0.057116497, -0.02037749, 0.084210664, -0.028235348, 0.10574697, 0.056925274, 0.07922333, -0.090088, 0.1615985, -0.0044301567, -0.089945644, 0.024176618, -0.041844133) * go_1(1.0, 1.0); + result += vec4(0.0015292584, -0.043625206, -0.09429898, -0.06280405); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!SAVE conv2d_5_tf +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.06051604, -0.028152643, -0.21418124, 0.13032125, 0.42565975, -0.09571944, -0.34494513, 0.30004, -0.073245734, -0.028659137, 0.0032105136, -0.05009555, -0.048971225, 0.04814533, 0.002843805, -0.046224426) * go_0(-1.0, -1.0); + result += mat4(-0.07495975, 0.018714864, 0.21229684, -0.13614887, 0.79988647, -0.0697328, 0.38232988, 0.24165109, 0.25947478, -0.0009418982, -0.17369923, 0.10007766, 0.024117598, 0.028611807, 0.15090801, -0.06344829) * go_0(-1.0, 0.0); + result += mat4(-0.07982219, 0.0900347, 0.007609254, -0.0034791247, 0.013611781, -0.13560618, 0.09685799, 0.06276075, 0.134693, -0.14370437, -0.25175703, -0.0016138123, -0.0075672898, -0.13325731, -0.061100446, 0.0059743375) * go_0(-1.0, 1.0); + result += mat4(-0.039018434, -0.19668463, -0.43018532, 0.31886247, 0.4965479, 0.114569925, 0.19110382, 0.27343535, 0.0707728, -0.11877004, -0.25827697, 0.37012872, 0.1474777, 0.07056952, -0.14965728, 0.061595406) * go_0(0.0, -1.0); + result += mat4(0.506543, -0.16268773, 0.455319, -0.0702646, 0.70102173, -0.14041683, 0.70184857, 0.4817842, -0.3389246, -0.14463086, 0.13763213, -1.1259074, 0.47722015, 0.38352612, -0.04293366, -0.5604627) * go_0(0.0, 0.0); + result += mat4(0.17606944, 0.15897374, 0.13499324, 0.29241478, -0.032824475, 0.11128662, -0.22204424, -0.051803727, 0.013195331, -0.42040786, -0.3950585, 0.70745844, 0.38646924, -0.19080774, -0.15171832, -0.10742828) * go_0(0.0, 1.0); + result += mat4(-0.039278325, 0.18421806, -0.044948544, 0.07902063, -0.2149251, 0.09913459, -0.09743655, -0.26899317, -0.002695496, -0.07554527, -0.22373366, 0.17830558, -0.047994815, -0.06789183, -0.06755918, -0.104452066) * go_0(1.0, -1.0); + result += mat4(-0.0493473, -0.30411786, -0.056439694, -0.06582185, -0.21309847, 0.100670904, -0.22966193, -0.045954112, 0.12728062, -0.25081897, -0.094699375, -0.4036555, 0.060854495, -0.64373237, -0.21522263, -0.6683476) * go_0(1.0, 0.0); + result += mat4(0.063481025, 0.11744312, -0.043330096, 0.33817932, -0.06679828, -0.23207302, -0.10188898, -0.10590511, 0.058780864, 0.047292337, -0.11834696, 0.10076128, -0.036641665, 0.30200714, -0.0002892557, -0.10303763) * go_0(1.0, 1.0); + result += mat4(-0.10842604, 0.042055763, 0.29702973, -0.07409644, -0.030164458, -0.012098744, -0.06396587, -0.08787527, 0.051854923, 0.12997511, 0.11468497, 0.15022379, 0.007814715, 0.014517445, 0.025484756, 0.01078619) * go_1(-1.0, -1.0); + result += mat4(-0.29229385, 0.040265664, -0.15376821, 0.075579196, -0.05593569, -0.045405343, 0.12099204, 0.1571252, 0.17841713, 0.04673325, 0.14550509, 0.08603346, -0.049786013, 0.06121843, -0.16273825, -0.13857752) * go_1(-1.0, 0.0); + result += mat4(0.06903744, 0.2628764, -0.13582836, -0.35678583, -0.13821034, -0.019381443, -0.19570538, -0.09298511, 0.08965436, 0.09745909, 0.20055099, 0.024967568, 0.08144204, 0.004633625, 0.12809834, -0.009431525) * go_1(-1.0, 1.0); + result += mat4(0.09784006, 0.010729353, 0.046643205, -0.110926524, -0.21556224, 0.00016300633, 0.122175336, 0.15004392, 0.013864355, 0.24767809, 0.13865592, 0.0155424485, -0.1450483, -0.15688781, -0.06195043, -0.13745981) * go_1(0.0, -1.0); + result += mat4(0.018991318, 0.55401963, 0.11709872, -0.028442185, -0.46035343, -0.10215539, -0.60193926, 0.47882316, -0.23346989, 0.037200127, 0.22814943, -0.08231696, -0.36430013, -0.011152757, 0.48752213, 0.29796222) * go_1(0.0, 0.0); + result += mat4(-0.07258066, -0.023222538, 0.23230423, -0.30317304, 0.03942911, -0.06899803, 0.23778579, 0.07418621, -0.17443737, 0.33387753, 0.007354842, -0.123447575, -0.1745315, 0.11071779, -0.11949625, -0.22832453) * go_1(0.0, 1.0); + result += mat4(-0.024909232, -0.0308135, 0.12170621, -0.13298757, 0.045828197, -0.1532345, -0.06633672, 0.23591088, 0.04964077, 0.14091493, 0.038343724, -0.029780807, 0.05762822, -0.048930667, -0.02434709, 0.07109019) * go_1(1.0, -1.0); + result += mat4(-0.16039175, 0.3004474, -0.17278233, 0.13677922, 0.18838613, 0.15054552, 0.32901475, -0.1288333, 0.26378244, -0.05119892, 0.34533516, 0.25180495, 0.19452183, 0.0843233, -0.08029368, 0.39877903) * go_1(1.0, 0.0); + result += mat4(-0.07097129, -0.26492423, -0.055032317, -0.093516104, -0.11795062, 0.04086253, -0.07989471, 0.059686553, 0.09378249, 0.45851848, 0.2510942, 0.19599153, 0.019765077, -0.02920918, -0.04125142, -0.13859107) * go_1(1.0, 1.0); + result += vec4(0.04400571, -0.04015565, 0.0140529545, 0.05474095); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!SAVE conv2d_6_tf +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.014236042, -0.0031431736, -0.1551387, 0.12515116, -0.28528872, 0.36161992, 0.15750743, -0.17111474, 0.13792591, -0.0657419, -0.17471549, 0.14650472, 0.034169197, -0.019157575, 0.23520657, -0.20358163) * go_0(-1.0, -1.0); + result += mat4(0.02015035, 0.12993371, 0.11199667, -0.09854378, 0.5001741, 0.03462961, 0.24919736, 0.08505297, -0.20902094, -0.24141377, -0.15360375, 0.049974803, -0.037157424, -0.048510186, 0.20106035, -0.118480384) * go_0(-1.0, 0.0); + result += mat4(0.086798504, -0.009607818, 0.034812123, -0.005187592, 0.0351509, 0.021755, -0.04996161, -0.041231696, 0.0020545553, 0.015730752, -0.07507172, 0.018597523, -0.02393343, 0.07624775, 0.03892451, -0.0025574185) * go_0(-1.0, 1.0); + result += mat4(0.035725456, 0.06809103, 0.51926994, -0.39983147, -0.16402833, -0.1243394, -0.25922915, 0.28285915, 0.15959994, -0.2351732, 0.2650535, -0.30193794, -0.11468332, 0.050777763, -0.51894253, 0.4408367) * go_0(0.0, -1.0); + result += mat4(-0.27042082, 0.22243942, 0.14902467, 0.38428563, 0.46612173, 0.5169912, -0.22330502, -0.11300288, -0.36141354, 0.0668681, 0.2984152, 0.1275798, -0.24121419, 0.2952039, -0.45109174, -0.3822957) * go_0(0.0, 0.0); + result += mat4(0.26543504, -0.05742226, -0.052103903, -0.013124308, -0.14358385, -0.04024543, 0.07665455, -0.012301872, -0.18752757, -0.03913891, 0.038205814, -0.006583095, -0.25550908, -0.25725332, -0.12454206, -0.0058936924) * go_0(0.0, 1.0); + result += mat4(-0.0018946569, 0.019746022, -0.13080788, 0.11450627, -0.013743845, -0.027179785, -0.14425103, 0.07109661, 0.023703793, 0.086905524, 0.03151253, 0.0132474145, 0.041018624, 0.04548913, 0.2718715, -0.20008296) * go_0(1.0, -1.0); + result += mat4(-0.076830454, 0.11652955, 0.5068201, -0.3082819, 0.058615055, -0.006765798, -0.057522714, 0.049981344, -0.006897243, -0.21763432, 0.16896053, -0.21176189, -0.061227098, 0.03566485, 0.08901554, -0.050980624) * go_0(1.0, 0.0); + result += mat4(0.02327798, 0.07662976, 0.034811985, -0.03238033, -0.0021881019, -0.030997375, -0.069672935, 0.04040273, -0.1217442, 0.104173124, 0.09862539, 0.020557549, -0.022286594, 0.10287763, -0.021694934, 0.07542515) * go_0(1.0, 1.0); + result += mat4(0.124069154, -0.08579466, -0.07816314, 0.11332851, -0.034682628, -0.11038275, 0.04750615, -0.096100725, 0.039588403, -0.15149672, -0.05529172, 0.034304325, -0.022520235, -0.05023852, -0.2674731, 0.21886522) * go_1(-1.0, -1.0); + result += mat4(-0.1948599, -0.14946899, -0.39548838, 0.18042913, -0.007919619, 0.19826505, 0.23789087, 0.009140256, 0.11857748, 0.18215668, 0.13606293, -0.09209675, -0.080678545, -0.020431137, -0.07728839, -0.051353537) * go_1(-1.0, 0.0); + result += mat4(-0.07616472, -0.0032800382, -0.045657665, -0.039144326, -0.37786487, -0.08877774, 0.053579114, -0.070886396, 0.011311804, 0.107276045, 0.013236154, 0.009832061, 0.08292063, 0.12258811, 0.0005569043, -0.009806432) * go_1(-1.0, 1.0); + result += mat4(-0.28062925, 0.15946878, -0.1021801, -0.06471589, -0.26999477, 0.21230288, -0.14243907, 0.2555922, -0.09608517, 0.26339412, 0.20891234, -0.23538485, 0.33958244, -0.12569186, 0.43289876, -0.33462036) * go_1(0.0, -1.0); + result += mat4(0.16265294, 0.2625464, -0.34452894, 0.2233622, 0.13850005, -0.42999864, -0.5385177, -0.11035979, 0.51662, -0.78238726, -0.09422375, 0.83759475, 0.44468537, 0.14301361, 0.108906105, 1.1596143) * go_1(0.0, 0.0); + result += mat4(-0.73757625, -0.12369605, 0.23523071, 0.006587637, -0.15445381, 0.22757277, 0.052819528, 0.10183905, -0.07912228, -0.16998893, -0.13360223, 0.014348178, -0.17778571, -0.41047302, 0.10241381, -0.08526306) * go_1(0.0, 1.0); + result += mat4(0.14712952, 0.048995696, 0.05299946, -0.06817572, 0.1498064, -0.079825334, 0.40354064, -0.31789717, -0.1998377, 0.00955295, -0.32318407, 0.30898204, -0.039571725, -0.026203401, -0.16292085, 0.08574385) * go_1(1.0, -1.0); + result += mat4(-0.6353329, -0.56000775, -0.17279743, 0.18198174, -0.19555812, 0.056538377, 0.34365895, -0.07799055, 0.19011354, -0.13952748, 0.029196098, -0.19596763, -0.069196045, -0.17402656, 0.07948411, -0.016226962) * go_1(1.0, 0.0); + result += mat4(0.25592864, 0.083498634, -0.28515807, 0.10789751, 0.0043962947, 0.07085363, 0.048724182, -0.025131436, -0.0049440865, -0.033094388, -0.032935806, 0.04266025, 0.20026933, 0.0927841, -0.006839351, -0.013012285) * go_1(1.0, 1.0); + result += vec4(0.02021373, 0.0014037411, 0.0012718709, 0.017278494); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Conv-4x1x1x56 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_1_tf +//!BIND conv2d_2_tf +//!BIND conv2d_3_tf +//!BIND conv2d_4_tf +//!BIND conv2d_5_tf +//!BIND conv2d_6_tf +//!SAVE conv2d_last_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_1 (max(-(conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_2 (max((conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_3 (max(-(conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_4 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_5 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_6 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_7 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_8 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_9 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_10 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_11 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_12 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_13 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.0067711817, 0.08160003, 0.0247279, 0.03084815, -0.026977416, -0.02120602, -0.025078611, -0.029852165, -0.011627478, -0.012742972, 0.022736797, -0.0028815821, -0.007515677, 0.0172887, -0.023259213, 0.009608947) * g_0; + result += mat4(-0.028660107, -0.014015208, -0.027838672, -0.013171922, 0.0029435428, 0.027047642, -0.017478354, 0.022834882, -0.037572853, -0.0034044068, -0.0149029335, -0.013362301, 0.009827443, -0.015742151, -0.0074795415, -0.0022266617) * g_1; + result += mat4(-0.07579662, -0.039754186, -0.066026606, -0.046816852, 0.1099032, 0.043956704, 0.073109835, 0.04680284, -0.06896613, -0.008838632, -0.044584926, -0.01319039, -0.0021152915, -0.04503326, 0.027061926, -0.028334105) * g_2; + result += mat4(0.15458213, 0.059769996, 0.09327123, -0.028782733, 0.023459995, -0.15390377, -0.13432898, -0.1127775, 0.072764635, -0.0020463336, 0.034736466, -0.0012086042, -0.05847183, -0.029952323, 0.052969377, 0.09590908) * g_3; + result += mat4(-0.07476772, -0.016574614, 0.04131183, 0.017335678, 0.009654406, 0.072183535, -0.002266456, 0.086873695, 9.310129e-05, 0.0056416965, -0.004188391, 0.023132093, -0.05183336, -0.025825873, -0.03684392, -0.0075729224) * g_4; + result += mat4(0.00878842, 0.03869637, -0.035759524, 0.003345386, -0.064184256, -0.034568302, -0.06672922, -0.0686381, -0.06794392, -0.10685906, 0.04679947, -0.012535639, 0.006932529, -0.007783515, 0.109123886, 0.13804391) * g_5; + result += mat4(-0.03160699, 0.050473, -0.09030729, 0.0649397, 0.11466501, 0.17912874, -0.0081851315, 0.052244574, 0.051632743, 0.061941486, 0.06546816, 0.12174249, -0.05104755, -0.018193979, -0.032196652, -0.035292786) * g_6; + result += mat4(0.013612735, -0.0024100312, -0.068611205, -0.07369285, -0.019647537, -0.066944756, -0.010012875, -0.06785739, -0.062246565, -0.087313406, -0.044278186, -0.09368995, 0.052555013, 0.13604961, 0.05645059, 0.08763303) * g_7; + result += mat4(0.04218486, -0.05028401, 0.059086576, -0.03545452, 0.027737848, 0.0043074046, 0.0011001764, -0.073026665, -0.04094988, 0.044061556, -0.009812515, 0.06841999, -0.06612581, 0.037223976, -0.07759491, -0.04356598) * g_8; + result += mat4(-0.027558247, 0.014248466, -0.019813016, -0.058107473, -0.016717663, -0.020424338, 0.0053625097, -0.009917319, 0.013678771, 0.0113340765, 0.0061787106, -0.036083996, -0.020179711, -0.011310535, 0.054827053, -0.0008278952) * g_9; + result += mat4(0.028690035, -0.012079616, 0.11931408, -0.048533775, 0.069336995, 0.0049852817, 0.013774468, 0.035233382, -0.07384821, 0.0003354423, -0.0059171803, -0.04503906, 0.08727279, 0.005138857, -0.17724465, 0.055782065) * g_10; + result += mat4(-0.20744391, 0.24348328, -0.3145766, 0.17026486, -0.022870807, -0.01648648, -0.05912279, -0.012555373, -0.066004686, 0.03182394, 0.16285324, -0.1221846, -0.31816196, 0.007928748, 0.43180224, -0.015949022) * g_11; + result += mat4(0.16363169, 0.14781676, -0.2377973, -0.1571377, -0.09038187, 0.0046504294, 0.033955004, -0.051421452, 0.046735536, 0.006827522, -0.121338, 0.12671822, 0.15833299, -0.1858712, -0.1942371, 0.17336044) * g_12; + result += mat4(-0.018145572, -0.015550516, 0.044410378, 0.046016492, 0.084021375, 0.05327457, -0.008270992, -0.045435544, 0.07185879, -0.131923, 0.26721445, -0.26745328, -0.07093472, 0.042701527, 0.13793674, -0.095621444) * g_13; + result += vec4(0.016836504, 0.010161949, 0.021351453, 0.01278978); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(M)-Depth-to-Space +//!HOOK MAIN +//!BIND MAIN +//!BIND conv2d_last_tf +//!SAVE MAIN +//!WIDTH conv2d_last_tf.w 2 * +//!HEIGHT conv2d_last_tf.h 2 * +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +vec4 hook() { + vec2 f0 = fract(conv2d_last_tf_pos * conv2d_last_tf_size); + ivec2 i0 = ivec2(f0 * vec2(2.0)); + float c0 = conv2d_last_tf_tex((vec2(0.5) - f0) * conv2d_last_tf_pt + conv2d_last_tf_pos)[i0.y * 2 + i0.x]; + float c1 = c0; + float c2 = c1; + float c3 = c2; + return vec4(c0, c1, c2, c3) + MAIN_tex(MAIN_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_UL.glsl b/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_UL.glsl new file mode 100644 index 00000000..1826b539 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_UL.glsl @@ -0,0 +1,1702 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.27576035, -0.07072761, -0.1630093, -0.11306897, 0.14765891, -0.039999995, 0.04671886, -0.06138944, 0.11445724, 0.10989976, 0.12772457, 0.19654717, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.076798744, -0.026944768, -0.24994318, 0.2515569, -0.16839856, 0.17563075, 0.30983326, -0.26057217, -0.07267306, -0.16690817, -0.028771983, -0.32779765, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.22670166, -0.08031973, 0.1576897, -0.09411961, 0.10889907, 0.09876773, -0.12708376, 0.20890583, 0.13792023, 0.046159253, 0.008415701, 0.028718324, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.123937644, -0.0040695923, 0.1577942, -0.25086892, -0.11906424, 0.024612824, 0.04019426, -0.20309904, -0.001790695, -0.022292957, -0.24705121, -0.020513516, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.12275696, 0.087533146, 0.22975677, 0.3249744, -0.46705425, 0.049937986, -0.3746097, 0.6908184, -0.02694045, 0.10467642, 0.24765752, 0.29053956, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.085650265, 0.06399875, 0.16803174, -0.000924935, -0.012419805, 0.3505107, -0.013437306, -0.37681264, -0.06174721, 0.3525594, -0.7133205, 0.16013019, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.2400495, 0.08462758, 0.025238732, -0.019882765, -0.09665332, -0.030001955, -0.10374011, -0.2661804, -0.1017717, -0.04910443, 0.102630705, -0.01290848, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.13510828, -0.09396734, -0.30896646, 0.13402982, 0.7047196, -0.09083812, 0.29420912, -0.30652946, 0.089854665, -0.04834406, 0.017005004, -0.22518355, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.28510967, 0.04660653, 0.24457681, -0.21047631, -0.12409636, -0.5526988, -0.1340479, 0.2336875, -0.048938934, -0.31569406, -0.021553513, -0.084858574, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.0357343, 0.024812812, 0.040654864, -0.002103711); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf1 +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(0.058698863, -0.07291426, 0.04927266, 0.09258057, -0.048297565, 0.05610951, 0.07047442, -0.07120319, -0.03516866, 0.0076037147, 0.07701455, -0.059423756, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.0055849426, 0.26572028, -0.21616961, -0.042883366, 0.04323887, 0.04128688, -0.1975783, 0.15745145, 0.017314252, -0.26768935, 0.080519766, 0.021246549, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.045365453, 0.16887768, -0.21514243, -0.49443442, 0.016238604, -0.12318089, 0.21210986, 0.29339197, 0.008509125, -0.0120522, 0.14660002, 0.16444208, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.18049234, 0.27750164, 0.48953623, 0.32381085, 0.13180427, -0.19170003, -0.042992454, -0.24161138, 0.02187773, -0.052547548, -0.23762631, -0.17446616, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(0.10295366, -0.06758289, 0.3209139, -0.089126036, 0.045649666, 0.061549887, -0.22704688, 0.08373262, 0.062346827, -0.012463345, -0.2679532, -0.033193, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.028882261, -0.41653237, -0.55437064, -0.23836315, -0.10729088, 0.056782994, 0.2587744, 0.3095401, -0.057483524, 0.2876223, 0.21580297, 0.07463114, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.014345448, 0.05962805, -0.2022189, -0.08993287, 0.070023656, 0.08089038, 0.114226155, 0.0025734142, -0.010230871, -0.0990795, 0.17906278, 0.048965868, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.26569575, -0.20329566, 0.40301713, 0.5406432, 0.4320893, 0.09291447, -0.24186778, -0.40646008, 0.08337033, 0.114029825, -0.17575161, -0.21976136, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.23839538, -0.5789523, -0.0655242, -0.0007585647, -0.58420926, -0.0028022572, 0.040551513, -0.14223239, -0.08617295, 0.22481681, -0.015953997, 0.18862534, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.041260406, 0.20480168, -0.016556341, 0.021896001); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf2 +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(0.07228457, 0.007666297, 0.0023270524, -0.13672906, -0.06545506, -0.049757745, 0.16956232, 0.048654493, 0.05838961, 0.02529347, -0.21557869, -0.12801598, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.14399123, 0.33404213, 0.30544546, -0.024566652, -0.07515048, -0.18194102, -0.3067775, -0.3386222, -0.06924871, 0.08277239, 0.30782035, 0.1812733, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.0034141026, 0.03465326, 0.13170029, 0.19363083, 0.07877697, 0.12887354, 0.31288412, 0.039260264, -0.14135145, -0.21657607, -0.08192631, -0.016260598, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.2796338, 0.3380564, -0.2591034, 0.053368755, 0.017104708, -0.18027966, -0.083344355, 0.29481766, -0.088741906, -0.03886714, 0.15531075, 0.34214082, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.35849893, 0.39669302, -0.4743166, -0.30070198, -0.04679741, 0.029014967, -0.11585943, 0.547813, 0.037943944, -0.3137137, -0.16505164, 0.1461349, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.19912307, -0.69915354, 0.12588218, -0.25780293, 0.06785873, -0.06666295, 0.21257555, -0.30608517, 0.22777, 0.47556394, 0.12453673, -0.23966943, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.066451795, 0.036735266, 0.0883064, 0.2535588, 0.111621, 0.026139118, 0.02632312, -0.37550557, -0.026438652, -0.042137396, 0.026273955, -0.24945815, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.550942, -0.4508381, 0.0018671635, 0.21252398, -0.10602345, 0.13596801, -0.0023862422, 0.029529708, -0.06045382, 0.22975087, -0.1594863, -0.33607775, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.0114465775, 0.011813566, 0.09969644, 0.055403743, 0.02460606, 0.13673273, -0.22494976, -0.24256726, 0.024602994, -0.1862818, 0.015388349, 0.39983493, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.32573584, 0.02118458, 0.06321103, 0.01701115); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_tf2 +//!SAVE conv2d_1_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.009462198, 0.067644134, 0.09776196, -0.06859017, -0.1816813, 0.053423163, -0.02265236, 0.06604943, 0.15899086, -0.15651219, 0.2919677, 0.00591133, 0.09306437, 0.047243804, -0.1389423, -0.0076663005) * go_0(-1.0, -1.0); + result += mat4(0.23136483, 0.20969442, -0.25250545, -0.038510673, 0.06916893, -0.19306515, -0.07070081, 0.016512204, 0.05914443, 0.31841832, -0.15109769, 0.058795422, 0.0418041, -0.13008581, 0.15338552, 0.037921127) * go_0(-1.0, 0.0); + result += mat4(0.023348259, 0.15947549, 0.16773324, 0.04159353, 0.113954544, -0.071491666, 0.12837915, -0.043326825, 0.058823302, 0.09453112, 0.017051624, 0.048308555, -0.10970718, -0.25019458, 0.074912935, -0.04076737) * go_0(-1.0, 1.0); + result += mat4(0.036305163, -0.22121401, 0.120393604, -0.05099148, -0.10198376, -0.04498367, -0.08815256, 0.024565894, -0.04884751, -0.036884382, -0.24040928, -0.112012394, 0.005314592, -0.14346673, 0.04090868, 0.040303618) * go_0(0.0, -1.0); + result += mat4(0.32364944, 0.2346947, 0.13479401, -0.071001865, -0.092296354, -0.13325988, 0.18273465, 0.16443633, -0.138694, -0.1538144, 0.0001256584, 0.23658273, -0.055330865, 0.18081205, -0.14958258, 0.18050644) * go_0(0.0, 0.0); + result += mat4(0.30818513, -0.10282234, -0.14460294, 0.11525818, 0.15799633, -0.038440127, 0.07736027, -0.113209635, -0.03558696, 0.0027641046, 0.09750022, -0.035741746, -0.06724116, -0.11298426, -0.23708679, -0.08182236) * go_0(0.0, 1.0); + result += mat4(0.16450825, 0.014239063, -0.15482663, 0.011389393, 0.121237025, -0.056966547, -0.23891398, -0.07385608, -0.0919129, 0.1384911, 0.10602064, -0.08549364, -0.117471084, 0.045140628, -0.055791426, 0.11584021) * go_0(1.0, -1.0); + result += mat4(0.053284578, 0.084236816, 0.16935693, -0.16279462, -0.060930096, 0.13849908, 0.16018802, -0.007871505, 0.12076791, -0.06930294, -0.16473438, 0.12876272, -0.039502293, -0.064467184, 0.13885021, -0.09353176) * go_0(1.0, 0.0); + result += mat4(0.04007251, -0.0423664, -0.20841573, 0.025270352, 0.051647697, -0.086622365, -0.108722195, 0.03807204, 0.059649065, -0.0070362207, 0.04048331, 0.06589983, -0.014079206, -0.10045001, 0.09532272, -0.12775785) * go_0(1.0, 1.0); + result += mat4(0.15776722, -0.1468444, -0.026526975, -0.038875956, -0.36817524, -0.09478588, -0.27826226, 0.016944334, 0.009886105, -0.061800323, 0.0800291, -0.081642725, 0.051763505, -0.14510322, -0.12901913, 0.06997819) * go_1(-1.0, -1.0); + result += mat4(-0.17539172, -0.29509535, 0.14361212, -0.09461951, 0.02858693, 0.1989715, 0.05904459, -0.09012477, 0.03901393, -0.09044802, 0.08358012, 0.052188553, -0.05505933, -0.048021372, 0.27836508, -0.035614084) * go_1(-1.0, 0.0); + result += mat4(0.034031298, -0.034978155, -0.038415093, -0.09294941, 0.049487505, 0.15056923, -0.010052316, 0.08712324, 0.07430246, 0.17897835, -0.060980003, -0.08634773, -0.07403975, -0.026423855, -0.18169394, 0.007463145) * go_1(-1.0, 1.0); + result += mat4(0.048213437, 0.16104779, 0.038785655, -0.033407986, 0.22063074, -0.053561423, 0.13353224, -0.26674026, 0.04884891, 0.030459542, -0.22288404, 0.06640239, 0.12854575, 0.029917246, 0.24786973, -0.1690474) * go_1(0.0, -1.0); + result += mat4(0.14981748, 0.17726701, 0.3075169, -0.0061602336, 0.070802234, 0.012225174, -0.11732834, -0.04439886, 0.062125243, 0.09351938, 0.4337808, -0.08277167, 0.25400677, -0.08523749, -0.3210451, -0.17889985) * go_1(0.0, 0.0); + result += mat4(-0.013666365, 0.09298701, -0.22515774, 0.06844796, -0.056414075, -0.04622639, 0.2661024, 0.16837521, -0.060347248, 0.42006207, 0.31325382, 0.040558435, -0.23408552, -0.3959543, 0.08528746, 0.04711839) * go_1(0.0, 1.0); + result += mat4(-0.21203883, 0.14807487, 0.10670431, 0.09823839, -0.0029566926, -0.14064936, -0.0062036305, 0.058999464, -0.119635604, -0.017831627, -0.024394974, -0.09484209, -0.05494034, 0.2234736, -0.18613186, 0.10272367) * go_1(1.0, -1.0); + result += mat4(-0.026449624, -0.07470873, -0.103021905, 0.036553413, -0.16811648, 0.010706488, -0.11658722, 0.16098383, -0.118867725, -0.30606326, -0.38222322, 0.08585665, 0.07455366, -0.083553374, 0.11151869, -0.19190635) * go_1(1.0, 0.0); + result += mat4(-0.113795616, 0.1331456, 0.114444636, 0.0071249725, 0.12230587, -0.017298486, -0.005261545, 0.01930602, 0.19144222, -0.0868461, -0.13227822, 0.18046889, 0.12061947, 0.107320294, -0.07637172, -0.034593552) * go_1(1.0, 1.0); + result += mat4(0.049325835, 0.020729464, -0.23382401, 0.15919043, -0.008479369, 0.15347077, 0.41359872, -0.061457418, 0.024845408, -0.15185645, -0.057010442, -0.09998088, 0.10153512, -0.09882405, 0.039735407, -0.077833496) * go_2(-1.0, -1.0); + result += mat4(-0.36701423, 0.12649989, 0.018880492, -0.23008151, -0.052118823, 0.15917695, -0.11396803, 0.21387778, 0.08706439, -0.0038190812, 0.12580395, -0.18743886, 0.005943777, -0.055926796, 0.22107217, -0.15519042) * go_2(-1.0, 0.0); + result += mat4(-0.117441535, 0.11953572, -0.15477178, -0.21330307, 0.033542704, -0.086117126, 0.040748667, 0.113893, -0.039779708, 0.06455176, -0.033797383, 0.045687508, 0.06263807, 0.040957358, -0.0007738094, -0.053097825) * go_2(-1.0, 1.0); + result += mat4(0.14710459, -0.06704273, -0.021150973, -0.15517733, -0.011780557, -0.123433016, -0.5554903, 0.07073845, 0.037211616, -0.14225942, -0.13862026, -0.12025682, 0.09802159, 0.045993954, 0.21416502, -0.12655829) * go_2(0.0, -1.0); + result += mat4(0.33932889, -0.10832225, -0.10277331, -0.043458294, -0.080375, 0.07122225, 0.5117161, 0.45102793, 0.08851493, -0.19836949, 0.1128087, 0.14412156, 0.15872803, 0.35519516, -0.36955422, 0.22665614) * go_2(0.0, 0.0); + result += mat4(-0.2083875, 0.005418101, 0.1154246, 0.16369523, 0.0066285534, -0.15079136, -0.0024386873, -0.006123944, 0.1329886, 0.007733818, -0.078484625, 0.0073881904, 0.045415893, 0.13548672, -0.04421294, 0.17557195) * go_2(0.0, 1.0); + result += mat4(-0.06733927, 0.061143715, 0.11623754, 0.035660855, -0.16833517, 0.25015733, 0.16666088, 0.3536397, -0.17156921, 0.14590204, 0.0319748, -0.022740254, -0.081528045, -0.029098801, 0.106823295, 0.05240602) * go_2(1.0, -1.0); + result += mat4(-0.030105693, 0.07486713, 0.07255324, 0.26833382, 0.13944457, -0.12094807, -0.119364485, 0.008746426, -0.0543321, -0.23814397, 0.21626633, 0.19788063, -0.060222488, 0.013993159, -0.044926863, 0.10624144) * go_2(1.0, 0.0); + result += mat4(0.04872421, -0.1731085, 0.120799415, -0.262767, -0.01584661, 0.066874966, -0.23661989, -0.18333362, 0.04360596, 0.16124529, -0.024604535, -0.02463142, -0.051435392, -0.015720569, -0.08187193, 0.048288688) * go_2(1.0, 1.0); + result += mat4(0.049077168, -0.07886619, -0.061759558, -0.04904181, 0.39755592, -0.030000389, 0.13741177, 0.035482008, -0.0356009, 0.031532627, -0.2654997, 0.022695553, -0.12488769, 0.015674936, 0.10053729, -0.016251108) * go_3(-1.0, -1.0); + result += mat4(0.034757115, -0.22141235, 0.34255457, -0.01785397, 0.13844466, -0.17758907, 0.06551371, -0.054463834, 0.03203843, -0.13669081, 0.13089286, -0.08061962, 0.015957424, -0.0024440098, -0.10206851, -0.089845166) * go_3(-1.0, 0.0); + result += mat4(-0.0511128, -0.10826102, -0.28195792, 0.0077595203, -0.1147427, -0.0022921658, -0.07577954, -0.02045415, -0.060518377, -0.11451084, 0.018158037, -0.0758857, -0.04422985, 0.012489414, -0.016101263, 0.061439708) * go_3(-1.0, 1.0); + result += mat4(-0.03760036, 0.13497229, -0.13668093, 0.07768455, -0.15663894, -0.015719853, 0.21031374, 0.1781295, -0.14109309, -0.03143449, -0.020708034, 0.082145125, 0.029068671, 0.16775839, -0.060003906, 0.071289144) * go_3(0.0, -1.0); + result += mat4(0.33949512, 0.11439767, -0.030989401, 0.048677433, 0.21668954, -0.09781232, -0.14430745, -0.34149325, 0.04961082, 0.13556859, -0.02967883, -0.019534707, 0.112177946, -0.0950136, 0.02612632, -0.1142915) * go_3(0.0, 0.0); + result += mat4(-0.16193709, 0.12953411, 0.12638013, 0.07118955, -0.09868655, 0.05682677, -0.03974761, 0.14830436, 0.016494498, 0.04290563, -0.107214145, -0.0006455558, 0.15607493, 0.22610466, 0.23997377, 0.21541154) * go_3(0.0, 1.0); + result += mat4(-0.13969646, -0.03359856, 0.12332616, 0.024957852, -0.264063, -0.027087519, 0.16026239, 0.18871038, 0.12738967, -0.070992924, 0.058890942, -0.055569854, 0.07901736, -0.10643202, 0.08499172, -0.07838089) * go_3(1.0, -1.0); + result += mat4(0.124158695, 0.04502674, -0.080311716, 0.013808018, 0.0370118, -0.16594483, -0.16791067, 0.05448626, -0.03551704, 0.006355477, 0.26084647, 0.12521335, -0.004537222, -0.017335514, -0.12183743, 0.021074474) * go_3(1.0, 0.0); + result += mat4(-0.022497809, 0.04964908, 0.14643028, -0.04685759, -0.06790267, 0.11746793, 0.12926494, -0.082243346, -0.053480923, 0.06610809, -0.04575657, -0.14319976, -0.09223617, 0.10878509, -0.05621081, 0.16550247) * go_3(1.0, 1.0); + result += mat4(-0.28332457, 0.05198234, 0.021976635, -0.1545899, -0.26678282, -0.047813956, -0.023821756, -0.101214804, 0.07505883, 0.05556278, 0.017566912, 0.00901856, -0.022323653, 0.1653073, 0.08053188, -0.18955535) * go_4(-1.0, -1.0); + result += mat4(0.084919475, 0.03962379, -0.13510302, 0.24873632, -0.06863436, 0.029294679, 0.016317705, -0.043712415, -0.028959788, 0.017755143, -0.05474792, -0.055838227, 0.08769533, -0.09412337, -0.023203408, -0.0640265) * go_4(-1.0, 0.0); + result += mat4(-0.110101126, -0.032489337, 0.02593033, 0.15959314, -0.044097103, -0.18824866, 0.08125642, -0.0077189617, -0.054190274, -0.14331457, 0.1452974, 0.07808066, 0.0021549438, -0.03174141, 0.017612346, -0.15539496) * go_4(-1.0, 1.0); + result += mat4(-0.088953294, -0.029799841, 0.11556197, 0.04862062, 0.066503406, -0.114064194, 0.09255826, -0.1833335, -0.01641819, -0.119497, 0.2961799, -0.2780695, -0.12567733, 0.0024600243, -0.11751205, 0.085669436) * go_4(0.0, -1.0); + result += mat4(-0.21532503, -0.06343075, -0.27015615, 0.068540476, -0.06858675, -0.062484156, 0.03682217, -0.1015083, 0.107420795, 0.012092155, -0.22166798, 0.028644597, -0.10172646, 0.19677241, 0.37931946, -0.11699309) * go_4(0.0, 0.0); + result += mat4(0.07044547, -0.03793531, 0.17182013, 0.008134154, 0.0050753267, 0.058524463, -0.29959077, -0.079782486, 0.06422465, -0.44226143, -0.27561387, -0.14839257, 0.24578299, 0.24039108, -0.07351824, 0.034930374) * go_4(0.0, 1.0); + result += mat4(0.1892026, -0.054502696, -0.05670299, -0.03181167, 0.035967033, 0.18241122, 0.00743329, 0.015681073, -0.056629453, 0.11829241, -0.07440575, -0.023615826, -0.009568993, -0.03544514, -0.05925388, -0.40062532) * go_4(1.0, -1.0); + result += mat4(-0.012591867, 0.069327325, 0.20525102, -0.0013599707, 0.20637867, 0.053142715, 0.08542395, 0.0015770206, 0.0006431645, 0.21245757, 0.16769366, -0.0030028354, -0.19049928, -0.07689201, -0.031236758, 0.22773638) * go_4(1.0, 0.0); + result += mat4(0.08173383, -0.095775105, -0.08555914, -6.735811e-05, -0.038772196, 0.021698473, 0.04046729, 0.07664872, -0.00024131182, 0.20962766, 0.18627205, -0.035633747, -0.13656121, -0.050837196, 0.07260766, -0.019978348) * go_4(1.0, 1.0); + result += mat4(-0.16073698, 0.14160293, 0.12324934, 0.20341478, -0.0019186502, -0.095708326, -0.2297202, 0.35728905, -0.09427626, 0.062210754, -0.012826292, 0.118804015, -0.08991538, 0.06391433, -0.023036718, -0.017481891) * go_5(-1.0, -1.0); + result += mat4(0.21371883, -0.16740565, -0.10288582, -0.061600383, 0.020964885, -0.023439301, 0.18262915, -0.31056783, -0.093428515, -0.30865392, -0.040038906, 0.069449544, 0.07479101, -0.07418401, -0.2324029, 0.1234252) * go_5(-1.0, 0.0); + result += mat4(-0.24855302, -0.12967765, 0.02631683, 0.08294003, -0.016402971, 0.14255002, 0.0048186355, -0.0011596545, 0.06271189, -0.026687965, 0.020020025, -0.05608053, -0.04504705, -0.10878176, 0.0013364048, 0.006674377) * go_5(-1.0, 1.0); + result += mat4(-0.05265867, 0.039263245, 0.08444624, 0.025635105, 0.080403246, 0.3593395, 0.3254258, 0.043744642, 0.049711503, -0.17298554, 0.076980025, 0.08564068, 0.055967227, -0.025387138, -0.12774122, 0.06460898) * go_5(0.0, -1.0); + result += mat4(0.10153962, 0.1773, 0.39640376, -0.19406912, 0.21126994, 0.082484245, -0.49809954, -0.026066823, -0.069782086, 0.24188274, -0.13548844, -0.29941857, 0.06539237, -0.2640235, 0.34804615, -0.12240826) * go_5(0.0, 0.0); + result += mat4(0.0077373167, -0.1192639, -0.11340615, -0.22332144, 0.024052242, 0.07247779, 0.01824934, 0.27204347, -0.12280574, -0.15037231, 0.095412664, -0.09667618, -0.045748595, -0.069017254, 0.04676958, -0.11994603) * go_5(0.0, 1.0); + result += mat4(0.11430846, -0.07280232, -0.12316846, -0.076348506, 0.14808905, -0.29144016, -0.24595666, 0.18917578, 0.12346525, 0.06044025, -0.2605574, -0.2944082, 0.029403422, 0.10978217, -0.14474128, 0.016708253) * go_5(1.0, -1.0); + result += mat4(0.05979043, -0.07152787, -0.19449393, 0.003888642, -0.07616637, 0.18699367, -0.028180948, 0.29517344, 0.09553033, 0.07179247, -0.30424592, -0.13225375, 0.028066052, 0.012709331, 0.006618433, -0.1427098) * go_5(1.0, 0.0); + result += mat4(0.041162595, 0.18586132, -0.009566293, 0.029985288, -0.13142577, -0.18026744, 0.20692593, -0.03168997, -0.032814153, -0.18140802, 0.10108317, -0.004236778, 0.035565984, 0.0060556303, -0.0098911915, -0.08988839) * go_5(1.0, 1.0); + result += vec4(-0.09062037, 0.013100331, -0.030562, -0.0064230394); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_tf2 +//!SAVE conv2d_1_tf1 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.064515434, 0.07896172, 0.056155425, 0.044425253, 0.03319016, -0.054605387, -0.4591473, 0.15511878, 0.034813322, 0.0672562, 0.05701353, 0.040412407, -0.038797975, -0.111860834, 0.053084996, -0.09889108) * go_0(-1.0, -1.0); + result += mat4(-0.19500382, -0.38966596, 0.27081028, -0.20423058, -0.035951976, -0.22931336, -0.094351776, 0.07632106, -0.16903882, -0.09205736, -0.0133898435, -0.025871782, 0.026594864, 0.09540177, -0.19411358, -0.019835787) * go_0(-1.0, 0.0); + result += mat4(0.033789452, 0.070497066, -0.072486654, 0.15952013, 0.005707006, 0.099570274, 0.10225775, 0.14358646, 0.030362945, 0.04101203, 0.041384347, -0.07857492, 0.0101447, -0.13572751, -0.0014982093, -0.21828102) * go_0(-1.0, 1.0); + result += mat4(-0.06541299, -0.065143906, 0.070729114, 0.16001381, 0.03785971, 0.10330557, -0.12786262, 0.23345129, -0.079743266, -0.19548073, 0.06546381, -0.3466734, 0.052256253, 0.17547274, 0.08082544, -0.002740424) * go_0(0.0, -1.0); + result += mat4(-0.25474778, 0.3409222, -0.16752993, -0.2593963, 0.22428669, 0.12370032, 0.201332, 0.2880896, 0.05886888, 0.28148982, -0.078226954, -0.10041725, -0.046689507, 0.0326885, 0.10199703, 0.13900283) * go_0(0.0, 0.0); + result += mat4(0.13756008, -0.007290373, -0.3277049, -0.081920624, -0.13261138, 0.10012489, 0.16701259, 0.095596135, 0.11018003, 0.08671664, 0.007405438, -0.069064125, -0.06399627, -0.20199764, -0.14141648, -0.18114863) * go_0(0.0, 1.0); + result += mat4(-0.06398666, -0.14905818, -0.08662983, -0.14592336, -0.019165145, -0.16002633, 0.02595079, -0.032384723, -0.06226262, 0.11195063, -0.059623078, 0.08347643, -0.07747154, -0.05067411, -0.011761259, 0.04478109) * go_0(1.0, -1.0); + result += mat4(-0.110994905, 0.16579364, 0.05735814, 0.08335136, 0.0023429485, -0.035295088, -0.00767387, 0.039022036, 0.045022078, -0.14819291, -0.11657396, 0.114125244, -0.112737395, 0.03421371, 0.123605475, -0.094038226) * go_0(1.0, 0.0); + result += mat4(0.14619811, -0.13335696, -0.09799096, -0.015030551, -0.027455918, -0.052438136, -0.014773566, -0.06363389, 0.12765555, -0.060070448, -0.05204619, 0.20176068, 0.020521173, 0.0805951, 0.064473, -0.0071453564) * go_0(1.0, 1.0); + result += mat4(-0.5381485, 0.016816406, 0.03575291, 0.15307717, -0.18513149, -0.029921992, 0.2622421, 0.17963228, -0.002844402, -0.058329333, 0.072945744, -0.11042211, 0.006249197, 0.11601606, 0.058575515, 0.064850174) * go_1(-1.0, -1.0); + result += mat4(-0.42793107, 0.36473498, 0.11899247, 0.26988775, 0.11106695, 0.08952316, 0.014755224, -0.08844807, -0.08071252, -0.043227013, -0.043939825, -0.18867648, 0.051046275, 0.21520744, 0.005522403, -0.054136444) * go_1(-1.0, 0.0); + result += mat4(-0.09239439, -0.12671697, -0.02282582, 0.1047466, -0.043446694, 0.024044901, -0.0021552334, -0.15775962, 0.028607333, -0.097138464, -0.043680545, -0.07058451, 0.11537684, 0.113663144, 0.18539715, -0.02583076) * go_1(-1.0, 1.0); + result += mat4(0.06783846, -0.030368762, -0.032593627, -0.115257286, -0.14801481, -0.08790775, 0.15180242, 0.09927532, -0.13861379, 0.02403033, 0.07966528, -0.02592995, 0.18966958, 0.13048325, -0.07206841, 0.07954041) * go_1(0.0, -1.0); + result += mat4(0.01556961, -0.025707101, -0.035667323, 0.019550703, -0.06561516, 0.029371614, -0.04590116, 0.004590475, 0.3857005, 0.15660062, 0.2047054, -0.22268668, -0.15727302, -0.24878927, -0.13349286, 0.09746729) * go_1(0.0, 0.0); + result += mat4(-0.06613807, -0.35448387, -0.03103906, -0.14949797, 0.2575997, 0.24856186, -0.12529412, -0.096302986, 0.077257074, -0.24450381, 0.115296856, -0.15376714, 0.02283929, 0.020484464, -0.057252582, 0.07690077) * go_1(0.0, 1.0); + result += mat4(0.03167533, 0.14044689, 0.03394118, 0.02033927, -0.058176804, 0.09426579, -0.047503363, 0.050972216, 0.08332001, 0.13845564, 0.0054333988, 0.0060199215, -0.041817743, -0.055159353, -0.033139117, -0.06767) * go_1(1.0, -1.0); + result += mat4(0.13912874, 0.042053323, 0.14049628, -0.05678915, 0.096634954, -0.026468944, -0.05657413, -0.018260032, 0.2512966, 0.12660152, 0.11393381, 0.16540478, -0.1303705, 0.13751519, -0.069556914, 0.0981919) * go_1(1.0, 0.0); + result += mat4(0.02321638, 0.10667205, 0.027153758, 0.009282765, 0.07528545, -0.17536609, -0.030338852, 0.07694229, 0.058190364, -0.052485015, -0.16589753, 0.0053109983, -0.062089816, 0.016174713, 0.1266296, 0.16837646) * go_1(1.0, 1.0); + result += mat4(-0.065759346, 0.06169766, -0.00085500855, -0.008405182, -0.0017208391, 0.0891801, -0.002727633, -0.09190625, -0.055329803, -0.078719944, 0.13154171, 0.022970447, -0.032412775, 0.06774816, -0.08766216, 0.005649683) * go_2(-1.0, -1.0); + result += mat4(-0.05727856, 0.41547912, 0.09231337, 0.21398218, -0.04456715, -0.16443647, -0.33590144, 0.054098953, 0.0049725566, -0.1778281, 0.14938372, -0.13269553, 0.103052735, 0.09907562, -0.09025013, 0.071525946) * go_2(-1.0, 0.0); + result += mat4(0.06079739, -0.15564673, 0.017866762, -0.17732425, -0.01921053, 0.20981815, 0.07016076, 0.012785, 0.039263856, 0.071297675, -0.031223306, 0.0012242222, 0.008279209, -0.11378741, 0.14638698, 0.015245047) * go_2(-1.0, 1.0); + result += mat4(0.07295158, 0.14406429, -0.009283162, -0.08257508, 0.24989437, -0.101510875, -0.20831217, -0.14678863, -0.20545089, -0.03671918, -0.024620444, 0.0022859722, 0.16560118, 0.10648521, 0.01309449, -0.16882543) * go_2(0.0, -1.0); + result += mat4(-0.3688647, -0.06613055, -0.118553065, 0.066723585, -0.05839009, -0.05345417, -0.025808314, -0.051553134, 0.013860212, 0.1380767, -0.15950254, 0.039316524, 0.004648086, -0.49201876, -0.086399294, 0.067151815) * go_2(0.0, 0.0); + result += mat4(0.00816185, -0.094140545, -0.03045964, 0.005748951, -0.10508545, 0.06579157, -0.03133883, -0.036670756, 0.0965362, -0.059619486, 0.011463898, -0.13590227, -0.007581943, 0.014755039, 0.009631372, 0.05379326) * go_2(0.0, 1.0); + result += mat4(-0.16141598, 0.09554762, 0.033254117, 0.16967952, 0.035996404, -0.013887896, -0.06629002, 0.0038405391, 0.056517866, 0.024495421, -0.09365325, 0.08944311, 0.08264677, 0.05784231, -0.0544246, 0.034719754) * go_2(1.0, -1.0); + result += mat4(0.16916971, -0.04140406, -0.17009412, -0.057115063, -0.052563947, 0.12703355, 0.13672756, 0.055926114, 0.2646138, 0.08260617, -0.06438002, 0.34781212, 0.09432193, 0.002425348, 0.108481385, -0.011278688) * go_2(1.0, 0.0); + result += mat4(0.044969093, -0.048657022, 0.06174559, -0.00028727736, -0.20242731, -0.0149739245, 0.14471562, 0.06956492, -0.008388136, -0.059729554, 0.063841276, 0.04924184, 0.025793945, 0.06710163, -0.033776682, -0.035713058) * go_2(1.0, 1.0); + result += mat4(0.076875985, -0.101878025, -0.15802802, -0.124973774, -0.009670392, 0.013886556, -0.17401616, 0.13792926, 0.10774549, -0.30876774, -0.11229718, 0.010819886, 0.1175339, 0.08548831, -0.045388985, 0.05727834) * go_3(-1.0, -1.0); + result += mat4(0.11111217, 0.46312273, -0.4471567, 0.019250406, -0.040287044, 0.24528493, 0.21994363, -0.070748396, 0.20804761, 0.24140677, -0.07676276, 0.07941381, 0.1852395, -0.083701044, 0.04119184, -0.034684047) * go_3(-1.0, 0.0); + result += mat4(-0.11130858, -0.15563098, -0.16141221, -0.014236188, -0.0009617971, -0.11093832, -0.088078424, -0.1321414, -0.056676403, -0.09986668, -0.013136506, 0.064173006, -0.02908289, 0.028941281, 0.1568584, 0.13180308) * go_3(-1.0, 1.0); + result += mat4(-0.07680166, 0.147653, -0.029404428, -0.07403926, -0.3100197, 0.055024274, -0.1506152, 0.48132184, 0.11450713, -0.18744734, -0.092221424, -0.035802577, -0.060549777, -0.14425454, -0.08181204, 0.03446898) * go_3(0.0, -1.0); + result += mat4(0.102829054, -0.19427535, -0.038133133, -0.0026712175, -0.1435574, -0.15067317, 0.1119409, 0.1685437, -0.10200671, 0.13222018, 0.08152995, 0.0024931647, 0.0691679, 0.048254304, -0.17357215, -0.13524754) * go_3(0.0, 0.0); + result += mat4(-0.14587823, -0.15835984, -0.11198749, 0.0052520167, 0.1467123, -0.2707834, -0.072800644, -0.055191144, -0.10704317, -0.086199924, -0.014983923, 0.14019626, 0.017186088, 0.11358031, 0.15477349, 0.15759338) * go_3(0.0, 1.0); + result += mat4(0.083639115, 0.14501223, -0.0065951888, 0.13890846, 0.09335459, 0.042398855, -0.09189259, 0.24306288, 0.020636987, 0.04164843, 0.04502632, -0.13329937, 0.058893397, 0.049639706, 0.071825825, -0.049217906) * go_3(1.0, -1.0); + result += mat4(0.07009161, -0.03437479, -0.013031761, -0.093077734, 0.08663319, 0.085103504, 0.16337705, -0.027592715, -0.12227255, 0.14818181, 0.040996075, -0.055277664, -0.040362116, -0.030087778, -0.003645583, 0.056727875) * go_3(1.0, 0.0); + result += mat4(-0.11545688, 0.060049064, -0.093949065, 0.02338161, 0.026170302, 0.026379922, 0.069043785, 0.05519452, -0.16188988, 0.04973363, 0.06749572, -0.14809126, -0.14064413, -0.041582227, -0.023158424, -0.039642867) * go_3(1.0, 1.0); + result += mat4(-0.28626567, 0.29348546, 0.07102445, -0.050440844, 0.15740375, -0.17452855, -0.16708957, 0.06744935, 0.06025843, 0.06482132, -0.034723394, -0.017227422, 0.12390885, 0.04888057, 0.006409584, -0.010196381) * go_4(-1.0, -1.0); + result += mat4(-0.07097389, -0.15076311, 0.13472012, -0.13246837, -0.064360276, 0.16760628, -0.12776206, 0.015533123, 0.13487455, -0.20071363, 0.0923309, 0.08138427, -0.009274919, -0.15565452, 0.17644402, -0.024042914) * go_4(-1.0, 0.0); + result += mat4(-0.023358675, 0.10211017, -0.036640793, -0.108112216, 0.06913507, -0.09594437, 0.036107562, 0.05066462, 0.08739385, 0.0011691673, 0.09453315, -0.02394334, -0.14005467, -0.016525272, -0.0994038, 0.06565737) * go_4(-1.0, 1.0); + result += mat4(-0.371338, 0.19144624, 0.095799066, 0.093133144, 0.09130418, 0.03945617, -0.018656345, -0.12886268, 0.20124264, 0.029764706, -0.13751945, -0.026953662, -0.1874983, -0.040866558, 0.05003749, 0.17660773) * go_4(0.0, -1.0); + result += mat4(-0.051123757, 0.21025416, 0.0123157445, -0.069181696, -0.091609724, -0.079943225, 0.130711, 0.14694354, -0.12574539, -0.30329394, -0.10366516, -0.22330226, 0.24131827, 0.45112535, 0.07089889, 0.13600409) * go_4(0.0, 0.0); + result += mat4(0.15595976, 0.24464798, 0.002488955, 0.050141588, -0.29219496, -0.17198776, 0.123318285, 0.054613084, 0.0036146704, 0.1652407, 0.0265562, 0.093859114, -0.08342194, -0.18661366, 0.07525819, -0.13866663) * go_4(0.0, 1.0); + result += mat4(-0.12563816, -0.08927056, 0.025488816, -0.062464394, 0.038224597, -0.057591602, 0.016130082, 0.004603661, -0.105193645, -0.116210036, -0.0005738929, 0.03006333, 0.15265524, 0.157916, 0.009369363, 0.00011561189) * go_4(1.0, -1.0); + result += mat4(-0.1587168, -0.06610889, -0.11454969, 0.09324059, -0.073291466, 0.011250312, -0.0021259703, 0.03251535, -0.021842942, 0.031610303, -0.08053953, -0.17813778, -0.01840217, 0.019417001, 0.12612307, 0.0890873) * go_4(1.0, 0.0); + result += mat4(-0.0463806, -0.13481244, 0.022312263, -0.0063249297, -0.00767204, 0.1365426, 0.041454747, -0.077865794, 0.037678037, 0.09067563, 0.12991777, -0.03874696, 0.13317509, -0.019026265, -0.14676699, -0.13473623) * go_4(1.0, 1.0); + result += mat4(0.037564214, -0.0032738533, -0.03767511, 0.03820596, -0.14136639, 0.17992534, 0.058318965, -0.063095406, -0.006603518, 0.0120609235, -0.025056547, 0.032933716, 0.12113113, -0.10462842, 0.063647404, -0.04450857) * go_5(-1.0, -1.0); + result += mat4(0.24578053, -0.3156469, -0.35252848, -0.1055502, 0.036395214, 0.27580422, 0.036550306, -0.006894677, 0.10412757, 0.08568412, -0.022747902, -0.008680229, -0.05400555, -0.11050038, 0.051955782, -0.114774995) * go_5(-1.0, 0.0); + result += mat4(-0.15854524, 0.23624359, 0.07096151, 0.15719925, -0.0011587485, -0.30296972, -0.1931699, -0.08979758, 0.0246722, -0.028834311, 0.06220738, -0.01632116, -0.008921576, 0.033888046, -0.09395318, -0.011260361) * go_5(-1.0, 1.0); + result += mat4(0.018795056, -0.02822718, 0.009791691, 0.06166571, -0.20967379, 0.34762847, 0.077140674, 0.086514324, 0.28947103, -0.14330834, -0.078796394, 0.09474662, -0.092306405, -0.14832185, -0.050533596, 0.049030673) * go_5(0.0, -1.0); + result += mat4(-0.045679964, 0.23489015, 0.15668613, 0.1235559, -0.22028416, -0.13657422, -0.033590022, -0.15810567, 0.18728013, -0.18127815, 0.36396962, -0.053243574, -0.06456213, 0.49338925, 0.026941797, -0.009633453) * go_5(0.0, 0.0); + result += mat4(-0.16466625, -0.24371772, -0.03436447, -0.07062408, 0.059187494, -0.26871908, -0.12203007, -0.05496175, 0.057084855, 0.1304957, 0.08178971, 0.15224245, 0.023345131, -0.019234858, -0.034386877, 0.03538095) * go_5(0.0, 1.0); + result += mat4(0.114277564, -0.008035584, 0.023078745, -0.14307536, -0.038258925, -0.122582935, 0.0015441746, 0.030634085, 0.2552187, -0.11622358, 0.025188513, -0.30211052, -0.048941914, -0.060030323, 0.019205015, -0.056735426) * go_5(1.0, -1.0); + result += mat4(0.038009048, -0.025127387, 0.053799044, 0.09742052, -0.039442886, -0.2847006, -0.14175558, -0.06777446, -0.103426784, -0.18430014, 0.047908068, -0.11819306, -0.09634806, -0.020778535, -0.09947065, 0.057285) * go_5(1.0, 0.0); + result += mat4(-0.11968771, -0.02741084, -0.006469873, -0.028502962, 0.05344909, -0.0045341062, -0.06826778, -0.10911563, 0.004165804, 0.18168798, 0.06862181, 0.041413423, -0.015367704, -0.08168733, 0.031232912, -0.00019088654) * go_5(1.0, 1.0); + result += vec4(0.07955021, -0.009849892, 0.05029401, -0.12505546); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_tf2 +//!SAVE conv2d_1_tf2 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.051907405, 0.16668987, -0.041336834, 0.05314295, 0.10121027, -0.14798506, -0.19019037, 0.043592982, 0.12040883, 0.09233267, 0.11772148, -0.041334935, -0.07539924, 0.09756673, 0.052319244, -0.10528184) * go_0(-1.0, -1.0); + result += mat4(-0.31250992, 0.30685386, -0.055270895, 0.06475109, -0.08800503, -0.26494658, 0.31591013, -0.11202835, -0.15133889, 0.10488629, 0.078151636, -0.043050244, -0.060199156, 0.044168193, -0.001986329, -0.1915024) * go_0(-1.0, 0.0); + result += mat4(0.068178676, -0.10042213, 0.010896375, -0.08526234, 0.091550335, 0.03174787, -0.098797485, 0.0638641, 0.0039022998, -0.078803785, -0.08426419, -0.06165455, -0.17049576, 0.056151845, 0.05997152, -0.117358774) * go_0(-1.0, 1.0); + result += mat4(-0.15624808, 0.1027479, -0.067923464, 0.0570026, 0.107332714, -0.14162563, -0.17560329, 0.063346066, 0.09616241, 0.15213029, 0.024794457, -0.16448957, 0.21509686, 0.084382094, 0.102330364, -0.21816911) * go_0(0.0, -1.0); + result += mat4(0.11183052, -0.00036459934, 0.09746083, -0.1979322, -0.32267392, -0.084034644, 0.051167414, -0.029009778, -0.03322436, 0.13016255, -0.048553534, -0.20068704, -0.16644834, 0.24280354, -0.14127132, -0.05889483) * go_0(0.0, 0.0); + result += mat4(0.116823174, -0.2189612, -0.18030761, -0.14347109, 0.09478377, 0.15303472, 0.020818545, 0.15843435, 0.17000113, -0.047443952, 0.023488792, -0.060115594, 0.04487726, 0.04284613, 0.28725752, -0.47257307) * go_0(0.0, 1.0); + result += mat4(-0.15223634, 0.060410198, 0.0061263107, 0.0069172834, 0.13158661, -0.0036422606, 0.051183105, 0.04613147, -0.00075578305, 0.08267924, -0.010239358, 0.12761061, -0.07420807, 0.073114, 0.0007402298, 0.1350364) * go_0(1.0, -1.0); + result += mat4(0.13506427, -0.10019588, 0.009954305, -0.177603, -0.2014582, 0.019459682, 0.05640779, 0.047030263, -0.05054245, -0.104332894, 0.0075405543, 0.1964969, -0.017293537, -0.19851471, -0.06654235, -0.20962352) * go_0(1.0, 0.0); + result += mat4(-0.038729187, -0.01076603, 0.004724392, 0.122694254, 0.04339784, -0.029253284, -0.014725128, -0.0014454263, -0.100780874, -0.14574462, -0.2107873, 0.042566143, 0.052845504, -0.12460765, -0.12877604, -0.165259) * go_0(1.0, 1.0); + result += mat4(-0.30916938, -0.21853267, 0.074507885, 0.06950878, 0.15405503, 0.19704042, 0.07762092, -0.0027483252, -0.047830105, 0.19999562, 0.06641897, -0.07683977, -0.04574573, -0.026720403, 0.06741639, -0.040291373) * go_1(-1.0, -1.0); + result += mat4(-0.1436382, -0.14481016, 0.3962691, 0.4429137, -0.14254951, 0.1000112, 0.044832285, -0.11440693, -0.05707115, 0.036592014, 0.16755657, -0.106351, 0.06614667, -0.022506362, -0.020292178, -0.057136156) * go_1(-1.0, 0.0); + result += mat4(0.073906116, -0.10937066, 0.086583436, 0.08275346, 0.02353698, -0.0046872413, -0.03486367, -0.08950485, -0.08803857, 0.056406617, 0.031082897, 0.06083862, 0.045077324, -0.061910506, -0.11063123, -0.01527173) * go_1(-1.0, 1.0); + result += mat4(0.2718467, -0.21935192, -0.062664755, -0.1255679, 0.10553025, -0.006460559, -0.027146982, -0.015253822, -0.07748728, 0.073824674, 0.06018315, 0.1002592, 0.08035026, -0.15977937, -0.055322386, -0.040088616) * go_1(0.0, -1.0); + result += mat4(0.028033856, -0.016236208, -0.12429306, 0.13901961, 0.04981061, -0.05739222, -0.13064933, -0.16948193, -0.008593147, -0.031754505, 0.10665931, -0.13934475, 0.01627173, 0.072957866, -0.087536804, 0.12674862) * go_1(0.0, 0.0); + result += mat4(-0.1523727, -0.00082214887, 0.14283441, -0.031603288, -0.045878753, -0.19672535, -0.05026138, 0.042562414, 0.14194039, 0.04421849, -0.20919429, 0.18679811, -0.10887334, -0.032573055, 0.22349553, -0.065408655) * go_1(0.0, 1.0); + result += mat4(0.027553588, -0.122095294, -0.046353463, -0.111806914, -0.08844832, 0.13921359, -0.0010978511, 0.008194451, 0.13961516, 0.046672624, 0.10129705, -0.09637145, -0.08699736, 0.0083460985, -0.044584583, 0.14229134) * go_1(1.0, -1.0); + result += mat4(0.07393346, 0.1147128, -0.02851608, 0.021714512, 0.025452064, -0.17753085, 0.0027432854, 0.040008847, 0.16259173, -0.08370451, 0.13976301, -0.07063936, -0.24262139, -0.07672828, -0.2021094, 0.29102072) * go_1(1.0, 0.0); + result += mat4(0.009530462, 0.04909453, 0.018228829, -0.005528198, -0.04922174, -0.024972908, -0.07065127, 0.04544319, -0.025519563, -0.13601463, -0.18582825, 0.035100814, -0.03548451, 0.061287835, 0.20247467, -0.15797156) * go_1(1.0, 1.0); + result += mat4(0.32211515, -0.080116086, 0.021152286, -0.08237667, -0.23303492, 0.008709412, -0.1473173, 0.07000086, 0.03955907, 0.14984958, -0.0121722715, -0.055429686, -0.016413981, -0.08430293, 0.025234051, -0.062006578) * go_2(-1.0, -1.0); + result += mat4(-0.42957792, 0.006551594, -0.022962485, 0.1400893, 0.28009745, 0.11802908, 0.015169489, 0.0024414742, -0.22848248, -0.020315299, -0.010993182, 0.0418814, -0.13582, -0.17743196, -0.018863266, -0.12331709) * go_2(-1.0, 0.0); + result += mat4(-0.08963217, -0.07752845, -0.019306721, 0.061603975, 0.112303145, 0.09211919, -0.08167867, 0.05052119, 0.020961992, -0.037811935, 0.016923647, -0.026790423, 0.10175015, -0.006385778, -0.063822776, 0.028055048) * go_2(-1.0, 1.0); + result += mat4(-0.10889496, 0.2475616, -0.023258686, -0.14437376, 0.049249854, -0.063944146, -0.0240011, -0.17432576, -0.18791446, 0.11263927, 0.0078009875, -0.080485724, 0.26911402, -0.12907211, -0.01755262, -0.16863008) * go_2(0.0, -1.0); + result += mat4(0.35460088, -0.17767274, -0.16858551, -0.23729539, 0.18419053, 0.20926027, -0.088426255, 0.023356354, 0.26511818, -0.0020759383, 0.2859238, -0.07675482, 0.12014907, 0.14443012, -0.12332029, -0.11205155) * go_2(0.0, 0.0); + result += mat4(0.19667232, 0.07352294, -0.014793962, 0.063952744, -0.01725952, 0.071818754, 0.064658605, -0.0009676536, -0.029578352, -0.18851563, -0.037685324, -0.26275456, -0.123520866, 0.12790628, -0.1469099, 0.12465433) * go_2(0.0, 1.0); + result += mat4(0.05387382, -0.030488258, 0.04638846, 0.20085673, -0.11875065, -0.029343707, -0.022595167, 0.06786304, 0.23092568, 0.018377172, -0.010349685, 0.14835137, -0.0047257696, -0.027649017, 0.0489728, -0.031893965) * go_2(1.0, -1.0); + result += mat4(-0.25763837, -0.075889885, 0.17264624, 0.035472356, -0.124957025, 0.00060394197, 0.022995198, 0.05463222, 0.0093447, 0.060911383, 0.07876506, 0.10564838, -0.05013418, 0.06583616, -0.025807798, -0.2883304) * go_2(1.0, 0.0); + result += mat4(0.043661144, -0.1159315, -0.1831051, 0.07473963, 0.07783108, 0.1876957, 0.01314648, -0.10861117, -0.088689655, 0.07296666, -0.026898766, 0.12702313, 0.032419875, 0.051234853, -0.06522966, 0.014740134) * go_2(1.0, 1.0); + result += mat4(-0.023981575, 0.0260433, 0.008456327, -0.041390125, 0.23708202, 0.027028535, 0.011300614, 0.25251132, -0.041091874, -0.113069616, -0.1017581, 0.12629594, 0.19936833, -0.044576302, -0.03986123, -0.045146126) * go_3(-1.0, -1.0); + result += mat4(0.04021637, -0.23936734, 0.089715995, -0.09695566, 0.05547677, 0.18304437, -0.07833711, 0.112606, 0.0744301, -0.121345356, -0.027121276, -0.039470885, -0.17090486, -0.08291478, -0.06501107, 0.06060779) * go_3(-1.0, 0.0); + result += mat4(0.06427166, 0.17954405, -0.24260868, 0.18583788, -0.03080801, 0.011544634, 0.021221055, -0.019622765, -0.022112694, 0.0568264, 0.117274575, 0.041028306, 0.093058385, -0.023635406, -0.04134845, 0.00012594834) * go_3(-1.0, 1.0); + result += mat4(0.01102109, -0.07289346, 0.0040596994, -0.07953831, -0.1976572, -0.11829853, 0.11517921, -0.051805526, 0.0055726753, 0.06592285, -0.16681968, -0.08300715, -0.28577968, -0.08173121, -0.13457035, 0.1885804) * go_3(0.0, -1.0); + result += mat4(-0.043770324, 0.048198868, -0.18608971, 0.17838612, -0.046778083, 0.19665273, -0.16118616, -0.057293214, -0.10633619, -0.09953019, 0.1862994, 0.18493782, 0.25938433, -0.149985, 0.04676386, -0.014036956) * go_3(0.0, 0.0); + result += mat4(-0.0003725085, 0.1989401, 0.16909252, 0.22780822, -0.015987061, -0.054565016, -0.05243573, -0.09775517, -0.120326936, 0.032995265, -0.0036331255, 0.13726561, 0.010277991, 0.06425755, -0.19020142, 0.23083436) * go_3(0.0, 1.0); + result += mat4(0.010936359, -0.02849875, 0.026482444, 0.047691442, -0.19206773, -0.044349756, -0.054649103, -0.07385235, 0.05956405, -0.053711556, -0.07337501, -0.119425744, 0.076072186, -0.049311332, 0.03184111, -0.17484605) * go_3(1.0, -1.0); + result += mat4(-0.04350626, 0.1328187, -0.003457409, 0.19061741, 0.09211707, 0.035870664, -0.09363488, -0.01568525, 0.05562321, 0.14633514, -0.04855048, -0.24370678, 0.0069594583, 0.14880905, 0.06160373, 0.1566208) * go_3(1.0, 0.0); + result += mat4(0.08560771, -0.031726982, 0.005994847, -0.115577385, -0.045169592, 0.034692086, 0.0039135055, -0.008828711, 0.08696738, 0.08552442, 0.21965103, 0.0065012877, -0.017958874, 0.15068494, 0.07910082, 0.09843224) * go_3(1.0, 1.0); + result += mat4(0.2618397, -0.113963105, 0.06466962, -0.09055511, 0.007243974, -0.37684396, -0.18955688, 0.100891486, 0.062019303, -0.06868768, 0.0066693923, 0.09453199, -0.11875178, -0.09406968, -0.009971733, -0.057884283) * go_4(-1.0, -1.0); + result += mat4(0.016240982, 0.045132026, 0.2496788, 0.0119000245, 0.019433737, -0.11958368, 0.07371615, -0.022081666, 0.23179133, 0.10534677, -0.13151011, 0.139116, -0.17987, -0.11249553, 0.097996086, 0.054070864) * go_4(-1.0, 0.0); + result += mat4(-0.057584394, 0.11625342, -0.06034331, 0.063899584, 0.0044478853, 0.048200164, 0.055355098, 0.10972887, 0.16012698, -0.006732891, 0.015804278, -0.14185822, -0.19013652, -0.062766224, 0.045399975, 0.14899541) * go_4(-1.0, 1.0); + result += mat4(-0.077381015, 0.11935363, 0.12262458, 0.018346768, -0.2634294, -0.2107294, -0.048516907, -0.09564381, -0.10719365, -0.115967, -0.13483748, -0.036267295, -0.012578293, 0.069732994, 0.017012898, 0.097437724) * go_4(0.0, -1.0); + result += mat4(0.081788, -0.11083114, 0.4005737, -0.055207055, 0.1418393, -0.06587734, 0.088737585, 0.08120421, -0.16296746, 0.17222044, 0.046313863, 0.10915246, 0.05388926, -0.19152795, 0.03076327, -0.14683272) * go_4(0.0, 0.0); + result += mat4(0.11940256, -0.033606835, -0.11385313, -0.012965868, 0.0049813213, 0.20263551, 0.029295778, 0.002276154, -0.1504537, 0.0381973, 0.3823588, -0.1798354, 0.17070186, 0.02357347, -0.2709012, 0.105102755) * go_4(0.0, 1.0); + result += mat4(0.041491576, 0.07074733, 0.029625034, 0.102119364, 0.023521155, -0.05969154, -0.00814052, 0.032964356, 0.055066362, -0.07298709, -0.121119626, 0.016125243, 0.2734818, -0.028699303, 0.09567124, -0.1437524) * go_4(1.0, -1.0); + result += mat4(-0.09484942, -0.15358907, 0.09471094, -0.114015654, -0.051614996, 0.19810407, -0.011734439, -0.057111017, -0.17113343, 0.06991598, -0.16437295, 0.2067726, 0.23162523, -0.036471117, 0.22033283, -0.29183832) * go_4(1.0, 0.0); + result += mat4(0.009506645, -0.041623287, -0.03679158, -0.010971644, 0.08336135, 0.11131871, 0.1109166, -0.08703141, 0.056035098, 0.124049544, 0.2795689, -0.019536458, 0.03888329, -0.0442052, -0.23853621, 0.13220637) * go_4(1.0, 1.0); + result += mat4(-0.14223816, -0.05481326, -0.106896244, 0.07581965, 0.26316708, 0.15500818, 0.14914538, -0.087868035, 0.15062201, -0.12426363, -0.04299309, 0.040522538, 0.04150885, 0.073053494, -0.041965067, 0.04128295) * go_5(-1.0, -1.0); + result += mat4(0.051048342, -0.21921599, 0.058443762, -0.055652432, -0.24098797, 0.092578836, -0.17062624, 0.09491869, 0.13260794, -0.024925478, 0.056296505, 0.019934958, 0.003565539, 0.09137244, -0.061169084, 0.04022485) * go_5(-1.0, 0.0); + result += mat4(0.115069486, 0.16206908, 0.004882299, 0.12614444, -0.03246297, -0.039095636, 0.09410652, -0.039889894, -0.08477494, 0.013032491, -0.055409547, -0.0090540685, -0.035735607, 0.057657916, 0.05354303, 0.0075290967) * go_5(-1.0, 1.0); + result += mat4(0.004056719, -0.15240185, 0.09084391, 0.037376285, -0.044079285, 0.31589335, 0.026515607, 0.14028117, -0.19225578, -0.002587953, 0.0090361675, 0.14138633, -0.38758466, 0.102398396, -0.07574637, 0.11732128) * go_5(0.0, -1.0); + result += mat4(-0.030521149, 0.09753763, 0.052158583, 0.048188724, 0.011470252, -0.110833496, 0.32450467, 0.04464802, -0.0646964, 0.045225292, -0.25168836, 0.20104809, -0.15454476, -0.083546594, 0.21034841, -0.0058077993) * go_5(0.0, 0.0); + result += mat4(-0.07213084, -0.17950292, -0.051891763, -0.067120604, -0.02192382, -0.11469988, -0.1409072, 0.006448966, -0.00049237284, 0.13916697, 0.0894537, 0.16725081, 0.18191423, -0.06112781, 0.19929808, -0.10002286) * go_5(0.0, 1.0); + result += mat4(-0.02475302, -0.010589183, -0.015627548, -0.16213211, 0.123653755, 0.0245485, 0.0997649, -0.09865162, -0.07168899, 0.15398216, -0.07207907, -0.07172799, 0.028756795, 0.07118634, -0.0511127, -0.0056653675) * go_5(1.0, -1.0); + result += mat4(0.21074565, 0.086340725, -0.06073654, -0.04343985, -0.02840264, -0.053368784, 0.037268292, -0.008291989, -0.045832828, 0.023931399, 0.1709933, -0.13587636, 0.051735718, -0.06827666, -0.051731657, 0.17399976) * go_5(1.0, 0.0); + result += mat4(-0.13356943, 0.086585164, 0.13944262, -0.026031096, -0.16735698, -0.08396402, -0.12688719, 0.12656367, 0.14114396, 0.018382069, 0.05972302, -0.08622411, -0.062958784, -0.056109, 0.045292944, -0.008465162) * go_5(1.0, 1.0); + result += vec4(-0.02066643, 0.05799956, -0.04733981, 0.08521742); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_1_tf2 +//!SAVE conv2d_2_tf +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.037910778, -0.035500437, -0.021893462, 0.054371376, 0.09471609, -0.013197591, 0.07086438, -0.11686955, 0.022289908, 0.0025881499, 0.08467518, -0.057070434, 0.03195129, 0.06176325, 0.27392688, 0.10100888) * go_0(-1.0, -1.0); + result += mat4(-0.004817188, -0.11114106, -0.03836096, -0.16221185, 0.08728879, -0.05551734, 0.09426232, -0.08904898, -0.075777575, 0.0001265835, 0.25881302, 0.22047207, 0.026294703, -0.07252985, -0.056022674, 0.25379947) * go_0(-1.0, 0.0); + result += mat4(-0.0013540969, 0.013188547, 0.060211327, 0.041778293, 0.0012638031, 0.022573406, 0.015312594, -0.08047488, -0.029625304, -0.10852883, 0.108838476, 0.13623391, -0.0051957406, -0.034240637, -0.032037422, 0.0045633493) * go_0(-1.0, 1.0); + result += mat4(0.041612104, 0.027505638, 0.025826843, 0.04501326, -0.062472913, 0.1431332, -0.012212282, -0.07516733, -0.08864002, -0.07006836, 0.046692412, -0.124091975, 0.06427506, -0.051631026, 0.12263653, 0.27044338) * go_0(0.0, -1.0); + result += mat4(0.034103375, 0.08673059, 0.0459527, -0.23862843, -0.055772513, -0.41714105, -0.08171965, -0.14642227, 0.04656934, -0.18259554, -0.13177022, -0.28559983, 0.0552958, -0.016403524, -0.5513842, 0.0053697815) * go_0(0.0, 0.0); + result += mat4(-0.11872737, -0.028105678, 0.049640797, -0.037546065, -0.010099046, 0.008806696, 0.006435101, -0.10383732, -0.0073283147, 0.08962551, -0.07394422, 0.108856045, -0.014820589, 0.023872554, -0.08112636, 0.10347607) * go_0(0.0, 1.0); + result += mat4(0.0022989328, 0.046885073, 0.011864779, 0.10420016, -0.0077429335, 0.048106942, 0.032495916, -0.062273387, -0.016874082, -0.06954098, -0.10819509, -0.056219935, -0.020670906, 0.0021182857, -0.009832249, 0.18701169) * go_0(1.0, -1.0); + result += mat4(0.105950266, 0.040404048, 0.19594736, 0.06012987, -0.3698849, 0.10401502, 0.12703699, -0.23428011, 0.083823904, -0.03521832, -0.006525461, 0.009951793, -0.074361816, -0.035402164, -0.3206954, 0.110812664) * go_0(1.0, 0.0); + result += mat4(-0.12013042, -0.06367559, 0.021684205, 0.0130499415, 0.009942601, 0.047442563, 0.08855212, -0.10024017, 0.056777865, 0.0051039625, 0.048569407, -0.04560259, 0.19188851, -0.039756753, 0.042021576, -0.09870584) * go_0(1.0, 1.0); + result += mat4(-0.03247849, -0.02753363, 0.071279705, 0.09104136, -0.0641851, -0.01594897, 0.232652, 0.003967937, 0.0111541925, 0.07306814, -0.0010335519, -0.04429391, 0.031370234, -0.026928704, -0.07516576, -0.055082712) * go_1(-1.0, -1.0); + result += mat4(-0.006180861, -0.10843575, -0.10045209, 0.067148104, 0.057421815, -0.068374164, -0.025756257, 0.1257984, 0.013264953, -0.0018182937, 0.05816216, -0.053461242, -0.085824065, -0.090526566, 0.09129818, 0.01570347) * go_1(-1.0, 0.0); + result += mat4(-0.0017998819, 0.022640059, 0.023404252, 0.03338553, 0.044353716, -0.014139882, -0.07758573, 0.021012677, 0.005980595, 0.04550881, 0.029285448, 0.091678455, 0.053803694, 0.05237155, -0.10997527, -0.10318552) * go_1(-1.0, 1.0); + result += mat4(-0.061029036, 0.0993827, 0.06381772, -0.089550115, 0.03308348, -0.03782301, 0.24164158, 0.31569025, 0.113647655, 0.15545848, 0.11519764, 0.0094105825, -0.11816621, 0.0978243, 0.10073588, -0.1117752) * go_1(0.0, -1.0); + result += mat4(0.3734672, -0.11816779, -0.23627514, -0.14588231, -0.12371406, 0.2616982, -0.29942805, -0.31744456, 0.12686929, -0.10511419, -0.33209988, 0.0784947, -0.09980473, -0.08277972, -0.119013116, -0.1052021) * go_1(0.0, 0.0); + result += mat4(0.11694942, -0.009177821, 0.16751128, -0.058083236, -0.029300451, 0.0151769, -0.10590713, 0.006317685, -0.07721141, -0.037264653, -0.09573406, 0.082819514, -0.15364629, 0.07974328, 0.05129384, 0.021289254) * go_1(0.0, 1.0); + result += mat4(0.026528852, -0.018197816, 0.06862055, -0.025078347, 0.06341248, -0.022047924, 0.16852759, 0.20795865, -0.12899017, 0.11940279, 0.049954895, -0.106641375, 0.003286302, 0.04101139, -0.014838044, -0.038886186) * go_1(1.0, -1.0); + result += mat4(-0.043906186, -0.09395722, 0.15171658, -0.060511537, -0.012321243, -0.23226517, -0.06977063, 0.021510785, -0.5478768, 0.17448187, -0.05923425, -0.028172622, -0.051738627, 0.06815423, 0.029064734, 0.044883635) * go_1(1.0, 0.0); + result += mat4(0.17660363, -0.09060859, 0.05569762, -0.034592126, -0.068783976, -0.039074708, -0.04003811, -0.08994642, 0.00041321313, -0.032173786, 0.004815178, -0.044516895, 0.1984147, -0.056799933, 0.051942617, 0.0849639) * go_1(1.0, 1.0); + result += mat4(-0.029470835, 0.0010429046, 0.09949836, -0.057022177, -0.001196081, -0.017638477, 0.054664012, 0.06374254, 0.005238237, -0.17255385, -0.042707976, -0.0863512, 0.00061518815, 0.054800972, -0.05120795, -0.047205627) * go_2(-1.0, -1.0); + result += mat4(0.04392789, 0.046026394, 0.11252635, -0.124906264, -0.08496978, -0.03472233, -0.05066398, 0.08292728, 0.0370577, -0.15259257, 0.0023178253, -0.017130997, 0.052111663, 0.059383318, -0.0734842, -0.052565083) * go_2(-1.0, 0.0); + result += mat4(-0.0148467785, 0.025143752, 0.17002934, -0.019566009, -0.12469424, 0.111287884, 0.030433882, 0.045797966, 0.0013495206, -0.04792389, 0.01556216, 0.047324177, 0.05905737, -0.053480197, 0.033480287, -0.060852114) * go_2(-1.0, 1.0); + result += mat4(-0.09745605, 0.009108342, 0.058276523, -0.09670028, 0.008513788, 0.0774033, 0.038419556, -0.012280158, -0.027220225, -0.19755986, -0.10123508, -0.24532557, 0.002611559, 0.058633193, 0.08722474, 0.019499615) * go_2(0.0, -1.0); + result += mat4(-0.097140476, 0.36332083, -0.12693818, -0.26086056, 0.18138097, -0.063169576, 0.09627784, -0.29556775, -0.010828089, 0.016550604, 0.19736116, -0.14276053, 0.2359206, -0.308187, 0.17120488, 0.17035627) * go_2(0.0, 0.0); + result += mat4(0.06563522, -0.00202452, 0.08656298, -0.068018384, 0.01052145, 0.12411763, -0.027613457, 0.046576608, -0.028641906, 0.030090526, 0.014531246, 0.028142689, -0.019974183, -0.015619782, 0.0913814, -0.07086511) * go_2(0.0, 1.0); + result += mat4(-0.021320846, 0.0272274, -0.079895236, 0.00012995047, -0.0070819, -0.028833998, -0.022662425, -0.07660687, 0.046270683, -0.11193344, 0.09937696, -0.006931022, -0.03781205, 0.011890765, 0.07618696, -0.004474331) * go_2(1.0, -1.0); + result += mat4(0.2012585, 0.05607582, -0.13407731, -0.0008222547, -0.10648238, 0.13230269, -0.0038185061, -0.058967687, 0.21021713, -0.12308194, 0.18324743, -0.045672223, -0.07443494, 0.061296284, -0.10310777, -0.03480636) * go_2(1.0, 0.0); + result += mat4(-0.042971224, 0.03137188, -0.029815951, -0.035710253, -0.17403825, 0.040264893, -0.18175416, 0.13371879, 0.004413511, -0.0062794136, -0.020018531, -0.009863606, -0.08686421, -0.0011867149, -0.13477059, 0.09668236) * go_2(1.0, 1.0); + result += mat4(-0.08406905, 0.017502543, -0.13238557, -0.06540308, -0.030992452, -0.027247543, 0.1152638, -0.027957149, -0.020494465, -0.016736055, 0.011691886, -0.07697167, -0.031962387, 0.03275166, 0.009455422, 0.00013493745) * go_3(-1.0, -1.0); + result += mat4(-0.003264767, -0.006133971, -0.14870334, -0.22470197, -0.12281174, 0.0477529, -0.039383784, -0.16171986, 0.049935117, 0.040750828, -0.11027704, -0.18039477, -0.042500887, 0.021469388, 0.19601227, 0.061283164) * go_3(-1.0, 0.0); + result += mat4(-0.14063793, 0.12379436, -0.091903225, -0.19485305, 0.030889416, 0.023173934, 0.06269456, -0.017552888, 0.042706978, 0.008942839, 0.007431359, -0.08055777, -0.024079857, -0.050207764, 0.03883315, 0.054677337) * go_3(-1.0, 1.0); + result += mat4(0.043164276, -0.06845965, -0.022847408, 0.026803896, 0.077586755, -0.18144956, 0.24237816, -0.062269997, 0.03350464, 0.022612114, -0.20257936, -0.049737748, 0.0026508393, -0.04457029, 0.08698817, -0.0057848943) * go_3(0.0, -1.0); + result += mat4(0.19637893, -0.041842524, 0.08093373, 0.061292946, 0.025697658, 0.43139693, 0.12997067, -0.14218695, 0.06652134, 0.16816506, 0.1798584, 0.19504555, -0.18834472, 0.11258412, 0.07003108, -0.0691332) * go_3(0.0, 0.0); + result += mat4(0.0864983, -0.0044556237, 0.1519761, -0.13158719, 0.01852619, -0.045526046, 0.09956223, -0.11713047, -0.024078155, -0.060722336, -0.057925105, 0.073217146, 0.06373482, -0.024553156, -0.14688796, -0.13317719) * go_3(0.0, 1.0); + result += mat4(0.035958245, -0.04845082, 0.087631844, 0.040034134, -0.026027406, -0.036821436, 0.06533815, -0.080381244, 0.07234854, -0.001883384, -0.07122587, 0.08832016, 0.036729597, 0.021539502, 0.027530821, -0.010070853) * go_3(1.0, -1.0); + result += mat4(0.08983327, 0.01506289, 0.028762873, 0.13285533, 0.2895279, -0.06620886, -0.12341643, 0.005919442, -0.06404377, -0.030869035, -0.040210303, -0.13364644, 0.03067747, -0.0035035561, -0.0012897043, -0.120404474) * go_3(1.0, 0.0); + result += mat4(0.12848322, -0.016383486, -0.09702801, 0.056479152, 0.066560045, -0.048578385, -0.031433776, -0.024350693, -0.03682033, -0.07085884, -0.03814125, -0.0005977634, -0.119241685, 0.027776804, 0.07646508, -0.079195194) * go_3(1.0, 1.0); + result += mat4(0.024724264, 0.0015230086, -0.05821472, 0.10433403, 0.078276865, 0.0020044958, -0.07082553, 0.21335958, -0.0192252, -0.046226356, -0.02576458, -0.005851255, 0.0061004073, -0.011763933, 0.052182812, -0.0148038035) * go_4(-1.0, -1.0); + result += mat4(-0.090289906, 0.07818745, 0.005133399, 0.2921895, -0.028104218, 0.010640733, -0.16721979, 0.11722157, 0.026559753, 0.06893593, -0.05803866, 0.10257745, 0.16412877, 0.08355433, -0.16449857, -0.19565444) * go_4(-1.0, 0.0); + result += mat4(-0.01625647, 0.014653339, -0.19772816, 0.035248496, -0.06315719, 0.053839743, -0.19860831, 0.060684476, 0.036236748, -0.06486933, -0.00240829, 0.049791906, 0.012847281, -0.12640457, 0.03785943, -0.066897415) * go_4(-1.0, 1.0); + result += mat4(-0.04193157, -0.043217663, 0.028713515, 0.034761403, -0.08618379, 0.07707441, 0.051029418, 0.042290796, -0.020135805, -0.1441393, -0.17698085, 0.011781508, -0.047712356, -0.09853696, 0.044760805, 0.07639903) * go_4(0.0, -1.0); + result += mat4(-0.04970899, -0.06206872, 0.32036147, 0.38422447, 0.02741357, -0.14773113, 0.026606748, 0.42104495, -0.16836561, 0.2612918, 0.32872567, 0.23574458, -0.48027223, 0.19769326, 0.40519443, 0.28430668) * go_4(0.0, 0.0); + result += mat4(-0.119522125, 0.045909975, -0.32532844, 0.16027172, 0.05406689, -0.0002717805, -0.10895223, -0.06700742, 0.11265451, -0.009777009, -0.054376923, 0.15653811, 0.07952248, -0.07323665, -0.030681474, -0.14271308) * go_4(0.0, 1.0); + result += mat4(0.021888081, -0.015081948, -0.08500391, -0.0566363, -0.02412306, 0.024970217, -0.08783075, -0.144119, 0.15955818, -0.09113594, -0.09460523, -0.013640705, 0.048579562, -0.051078796, 0.12259883, -0.12369713) * go_4(1.0, -1.0); + result += mat4(0.061307143, 0.12150064, -0.16097173, 0.054234862, 0.038454264, 0.19086266, -0.20866115, 0.17528693, 0.23780084, -0.085481875, -0.09336333, -0.03828183, 0.08448641, -0.01021121, 0.108555876, 0.10073375) * go_4(1.0, 0.0); + result += mat4(-0.07457479, 0.03767845, -0.04527163, 0.10312832, 0.018638285, 0.012303309, 0.068570994, 0.10636223, -0.046746258, -0.019519145, -0.09643553, 0.08668433, -0.08180716, -0.020997278, -0.19613801, 0.01197474) * go_4(1.0, 1.0); + result += mat4(0.038627718, -0.037348352, -0.0016635836, -0.029068137, -0.0026173298, 0.04695015, 0.011762658, 0.06046751, 0.03098801, 0.111461185, 0.196085, 0.087878406, 0.075701654, -0.09116793, -0.017858198, 0.019194437) * go_5(-1.0, -1.0); + result += mat4(-0.033022836, 0.00017579814, -0.04213397, -0.003223962, 0.109210424, 0.047623046, 0.036035728, 0.017458893, -0.01845847, 0.024312373, 0.15710357, 0.05525064, -0.011054537, 0.02045055, -0.059532605, -0.007326871) * go_5(-1.0, 0.0); + result += mat4(-0.027690193, 0.06131419, -0.17661297, -0.13770969, 0.10287112, -0.07097745, 0.004205589, 0.028562127, -0.047289394, -0.04858619, -0.029686142, 0.025106741, 0.0023360238, 0.09964466, -0.061582137, 0.03198441) * go_5(-1.0, 1.0); + result += mat4(0.10689288, 0.008829629, 0.016441079, 0.036601987, -0.054011513, -0.009619861, -0.087633766, -0.0066380203, -0.12721415, 0.0904403, 0.33278695, -0.07447129, -0.03637649, 0.0784043, -0.20029514, 0.04795142) * go_5(0.0, -1.0); + result += mat4(0.073388234, -0.18476517, 0.06697527, 0.15738879, -0.11097766, 0.0031603684, -0.46672878, 0.055933684, -0.13741222, 0.10608221, -0.09634478, 0.12178066, 0.20948799, 0.32808498, -0.30967075, 0.002408044) * go_5(0.0, 0.0); + result += mat4(-0.1276311, 0.2165364, -0.20479621, -0.04220272, -0.11207731, -0.07808082, 0.024846211, 0.1822824, 0.055696778, 0.04820076, -0.09683677, 0.10400354, -0.017928122, 0.13301387, 0.18256992, -0.12553082) * go_5(0.0, 1.0); + result += mat4(0.043751966, -0.021505235, 0.07481632, 0.07004997, 0.09292071, -0.06297265, 0.010273411, 0.14864413, -0.06774047, -0.046168163, -0.007962312, -0.25100794, -0.037582185, 0.05529135, -0.028888226, -0.08730092) * go_5(1.0, -1.0); + result += mat4(-0.27975065, 0.06358462, 0.037314422, 0.008414804, 0.09947835, -0.05693826, 0.035390552, 0.16577837, -0.117649436, -0.035677984, -0.23139963, -0.11336497, -0.26102057, 0.16566856, 0.19760732, -0.1030265) * go_5(1.0, 0.0); + result += mat4(0.06606493, -0.004958344, 0.012705852, 0.003391442, 0.15169266, -0.087174624, 0.17418364, 0.114550345, 0.017576916, -0.076570995, 0.014861571, -0.056111492, 0.08879636, 0.05000804, 0.08393709, -0.05148531) * go_5(1.0, 1.0); + result += vec4(-0.0010391332, 0.00068204466, -0.030266605, 0.058793433); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_1_tf2 +//!SAVE conv2d_2_tf1 +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.07575434, -0.040653445, 0.007225497, -0.043918904, 0.119574465, 0.011380923, 0.16722572, -0.013146596, 0.024970967, -0.028010864, 0.007539211, 0.009367542, 0.0053172954, 0.003149008, -0.06781401, 0.022353206) * go_0(-1.0, -1.0); + result += mat4(-0.24854389, -0.013649374, -0.17061508, 0.04292164, -0.005861008, 0.03951371, -0.0047152913, 0.015763909, 0.076025434, 0.0020614571, 0.035092413, -0.15013616, 0.07448282, -0.06402445, 0.2066371, -0.15285529) * go_0(-1.0, 0.0); + result += mat4(0.020919988, -0.023931077, -0.0026673493, 0.08726077, 0.08519901, 0.038367324, 0.012967744, -0.014597907, 0.03273228, 0.03425027, 0.11657879, -0.10561241, -0.10698567, 0.08750399, -0.029988581, 0.055827994) * go_0(-1.0, 1.0); + result += mat4(-0.05367477, -0.078411445, 0.107682705, -0.05179454, -0.101149, -0.016185397, 0.2755446, -0.2408976, 0.015464319, 0.042289484, 0.1908763, -0.15750426, -0.06516995, 0.072354965, 0.06715771, 0.26282984) * go_0(0.0, -1.0); + result += mat4(0.062333807, 0.06013844, -0.040104974, -0.33716065, 0.06652305, 0.3144661, -0.08150677, 0.17847258, 0.025293501, 0.085246235, 0.1500923, -0.028793348, -0.008922378, -0.023754073, -0.15999489, -0.10776248) * go_0(0.0, 0.0); + result += mat4(0.013679765, -0.0068315254, -0.0063317283, 0.04092541, -0.024292475, -0.08490433, 0.052840695, -0.056294404, 0.1751175, -0.03373209, 0.031306665, -0.14522974, -0.1688535, 0.09737534, -0.06616412, 0.2202574) * go_0(0.0, 1.0); + result += mat4(0.019336289, 0.054557003, -0.08372398, 0.013064762, 0.014936632, 0.031539556, 0.046100393, -0.14767817, -0.03333652, 0.020777406, 0.070448704, -0.009688919, -0.090416685, -0.025141802, 0.030440604, -0.11709335) * go_0(1.0, -1.0); + result += mat4(-0.019530639, -0.017071763, 0.16344751, -0.09003354, 0.049499974, 0.066197686, 0.17537111, -0.10965739, 0.027256027, -0.04720143, 0.03044248, -0.10484599, -0.051237702, 0.038487937, -0.072922744, 0.023582684) * go_0(1.0, 0.0); + result += mat4(0.06786746, 0.08613347, 0.058307048, -0.02357511, 0.14101249, 0.05510837, 0.082233034, -0.011995293, 0.022474831, 0.010892606, -0.01492494, -0.11511058, 0.055903982, 0.02207162, -0.098973624, 0.040012434) * go_0(1.0, 1.0); + result += mat4(-0.064766414, -0.051125515, 0.03402284, 0.057396293, -0.117072344, -0.019163232, 0.037863698, -0.052369513, -0.0061165625, 0.061819155, 0.028041245, -0.09490486, 0.1093347, -0.00664147, -0.08768312, 0.0070511065) * go_1(-1.0, -1.0); + result += mat4(-0.29905078, -0.09995567, -0.08120736, -0.03129106, -0.098326, 0.011130474, 0.036129285, 0.17871866, -0.084457494, -0.012659195, -0.02691152, 0.14104512, -0.21426772, -0.07243515, 0.11658849, -0.002852482) * go_1(-1.0, 0.0); + result += mat4(-0.17713405, 0.06941797, -0.062077515, -0.030658305, 0.08999236, -0.06921259, -0.095924884, 0.07375469, 0.11921843, 0.03554809, 0.058501836, 0.061609276, 0.21009676, 0.0685857, 0.04634768, -0.011610212) * go_1(-1.0, 1.0); + result += mat4(0.23054165, -0.039558277, -0.08045203, 0.06898775, -0.029158285, -0.037750367, -0.24264999, 0.05567059, 0.033564106, 0.03715445, 0.21824217, -0.043530416, 0.14731471, -0.07235384, 0.089611664, 0.026031008) * go_1(0.0, -1.0); + result += mat4(-0.098505996, 0.076161414, -0.09749997, 0.08872072, -0.12537481, 0.004141966, -0.067040585, -0.39046898, 0.055973317, 0.042723298, -0.13534929, -0.04335705, -0.09676344, -0.030532371, -0.07493259, -0.204519) * go_1(0.0, 0.0); + result += mat4(0.092057995, 0.56036115, 0.035873197, 0.057625197, -0.027210712, 0.06758173, 0.03869267, 0.058112122, -0.17431425, 0.06694562, -0.023299959, -0.036024995, -0.08311603, -0.13028675, 0.030961594, -0.09352405) * go_1(0.0, 1.0); + result += mat4(-0.04974338, -0.018803855, 0.10142671, -0.011776798, 0.06506589, -0.028476488, -0.019591449, -0.009582206, -0.039581254, 0.08912891, 0.15407297, -0.1111981, 0.018480325, -0.020779947, 0.031039927, -0.028463457) * go_1(1.0, -1.0); + result += mat4(0.03755804, -0.03275704, 0.05746246, -0.20568763, -0.043458223, 0.101914786, 0.09678074, 0.020130953, 0.14230555, -0.059717167, 0.16945612, -0.037695907, 0.005530407, 0.03836577, -0.13570379, 0.07553547) * go_1(1.0, 0.0); + result += mat4(0.1345541, -0.060120266, 0.053173084, -0.049932115, -0.064288326, -0.04958125, -0.0018103139, -0.006733389, 0.09001299, -0.04224858, -0.029498586, 0.18575308, -0.04561738, -0.07796082, -0.053623714, 0.10945586) * go_1(1.0, 1.0); + result += mat4(0.038186714, -0.012922114, -0.019606752, 0.10890265, -0.026697423, -0.031865556, -0.15932839, -0.026640827, -0.04705261, 0.037437834, 0.10179085, -0.0104858745, 0.07226553, 0.086646274, 0.101131245, -0.013259711) * go_2(-1.0, -1.0); + result += mat4(-0.023795605, -0.03550652, -0.107414104, 0.24193193, -0.14496972, -0.0053217285, 0.07148466, 0.12643136, -0.028414654, -0.022065196, 0.22527543, 0.03852106, -0.06697379, 0.022275146, -0.04764777, 0.120496206) * go_2(-1.0, 0.0); + result += mat4(0.23702599, 0.0025132557, -0.09258897, 0.19450943, 0.16891776, -0.13970126, -0.011847789, -0.11160886, -0.027799755, 0.044170912, -0.01895572, -0.031032356, 0.050352756, 0.021191083, 0.020041477, 0.043741606) * go_2(-1.0, 1.0); + result += mat4(-0.009787904, -0.0031327195, 0.13239524, -0.02248145, 0.017299512, -0.081802346, -0.026019929, 0.18054922, -0.14968066, 0.008379352, -0.13506816, -0.39034408, -0.01510947, 0.050189696, 0.037722163, -0.0402762) * go_2(0.0, -1.0); + result += mat4(-0.009644101, -0.07043924, -0.21935566, -0.12265316, -0.10996126, 0.106311634, -0.23956922, -0.015151155, 0.305456, -0.012311232, 0.3604329, 0.042090364, -0.07823785, 0.0045187594, -0.14659731, -0.13044918) * go_2(0.0, 0.0); + result += mat4(0.056163978, 0.08190758, -0.21001509, -0.033524346, 0.06273405, -0.2997634, 0.17979006, 0.056670144, 0.17271192, 0.18963227, 0.014150318, 0.06472095, 0.011062292, -0.18754636, -0.11784225, -0.03410013) * go_2(0.0, 1.0); + result += mat4(-0.0030782006, -0.039169632, -0.012148773, 0.007969146, 0.08711546, -0.037726182, 0.083651684, -0.08435948, -0.019397778, -0.0052067027, 0.08074589, -0.30207992, 0.047031336, 0.002789317, 0.15840194, -0.015054001) * go_2(1.0, -1.0); + result += mat4(-0.09078356, 0.12796444, -0.18432406, 0.16723672, -0.05772405, -0.030571923, 0.116594106, 0.06573904, 0.09887476, 0.09740928, 0.106751874, -0.00070329773, 0.010173095, -0.01197216, -0.06333568, 0.09718661) * go_2(1.0, 0.0); + result += mat4(-0.110290706, -0.005412752, 0.003918915, 0.0149365235, -0.12237922, -0.0941654, -0.034798037, 0.015760876, 0.04696292, -0.029291628, 0.045765277, -0.015127902, -0.09263057, 0.05402446, -0.0015908936, -0.033567302) * go_2(1.0, 1.0); + result += mat4(-0.1546162, -0.046554644, -0.0391521, -0.09454174, -0.0145587865, 0.07268975, -0.02036403, 0.015187209, 0.026502129, 0.032875117, 0.12548845, -0.19535835, 0.010370751, 0.030553613, -0.042921092, 0.11908) * go_3(-1.0, -1.0); + result += mat4(0.008709621, 0.12762955, 0.02271395, -0.031447556, 0.2041771, -0.029859964, -0.015839372, 0.10484876, 0.09285942, -0.020085273, 0.2329937, -0.29332286, 0.08294215, 0.011051319, -0.04993451, 0.042096935) * go_3(-1.0, 0.0); + result += mat4(0.18800123, -0.03135053, 0.039468758, -0.1393591, -0.055419687, -0.06350931, 0.017772222, 0.05357081, 0.10056033, 0.017571677, 0.05918185, -0.18371263, 0.0045149303, -0.077885784, -0.00043915678, -0.008647403) * go_3(-1.0, 1.0); + result += mat4(-0.011838485, 0.07350019, 0.0420831, 0.16229297, 0.009401042, 0.063198246, 0.060701136, -0.24234499, -0.098218255, 0.0034951624, -0.010836201, -0.07096872, -0.066027485, -0.008603827, -0.0023365172, 0.036595766) * go_3(0.0, -1.0); + result += mat4(-0.007935683, -0.26162764, 0.04059723, -0.059729014, 0.13929102, -0.09995081, 0.26922408, -0.29116368, -0.091238625, -0.07413519, -0.08951079, -0.030239927, -0.1368917, -0.11178951, -0.028913764, 0.15466857) * go_3(0.0, 0.0); + result += mat4(-0.1720602, 0.049961366, -0.035956968, 0.01072738, 0.093655944, -0.028308686, -0.07628571, 0.09549064, -0.002988198, 0.06946468, 0.17164339, -0.16626763, 0.11002801, -0.13791496, -0.05334689, 0.050957866) * go_3(0.0, 1.0); + result += mat4(0.067476556, 0.018401565, 0.02231447, 0.14312652, 0.14491569, 0.03304159, 0.2667232, -0.23096946, 0.011412218, -0.033295278, 0.006336338, 0.054895587, 0.031594772, -0.03772589, -0.08373306, 0.040909506) * go_3(1.0, -1.0); + result += mat4(0.03497658, -0.025716685, -0.16338083, 0.028354604, 0.13035797, 0.0010428666, 0.13506557, -0.23274136, 0.016426807, 0.005891126, -0.030560384, 0.054110117, 0.012959187, -0.033846233, 0.079321414, -0.08366125) * go_3(1.0, 0.0); + result += mat4(-0.17821713, 0.0037684473, 0.057483234, 0.038107146, -0.10401292, 0.020576356, -0.012016484, 0.010923387, 0.028446645, -0.027637433, 0.11687413, -0.07261914, -0.049263023, -0.06475644, -0.024119789, -0.029610662) * go_3(1.0, 1.0); + result += mat4(-0.022396808, -0.048420932, -0.02559588, 0.064104095, -0.2238012, -0.041249584, -0.09579613, 0.07697319, -0.058794957, -0.0134507725, -0.037161227, 0.08851301, -0.06766741, -0.036019377, 0.13610823, -0.063773625) * go_4(-1.0, -1.0); + result += mat4(-0.111936666, 0.0015700395, -0.18472138, -0.09797969, 0.010897245, 0.036488175, -0.08795422, -0.07408578, 0.1483729, -0.06495232, 0.080542035, -0.10570226, -0.01910507, 0.083303586, 0.15487678, 0.09761835) * go_4(-1.0, 0.0); + result += mat4(0.013546343, 0.12007825, -0.08906977, -0.032903753, -0.07735022, 0.074112795, 0.019404477, 0.012522555, -0.23720813, 0.03610346, -0.011151242, -0.09428033, -0.04208847, 0.08472888, -0.0941527, 0.1656356) * go_4(-1.0, 1.0); + result += mat4(-0.25968832, 0.023167782, -0.03399193, -0.025605416, 0.101124994, -0.03928416, 0.046708047, 0.0940108, -0.25001726, 0.06509968, -0.13399917, 0.14300269, 0.020019464, 0.09823798, -0.2859548, 0.15752983) * go_4(0.0, -1.0); + result += mat4(0.06779552, -0.048957087, 0.14341845, 0.008796376, 0.30520636, 0.085243754, 0.09708159, 0.120880716, -0.082815446, -0.10173312, 0.21042523, -0.0104252035, 0.012946593, 0.048153225, -0.023779962, -0.22626428) * go_4(0.0, 0.0); + result += mat4(-0.045614652, -0.1368418, -0.07421652, 0.010353576, 0.022773737, -0.034736004, -0.030603807, 0.0408453, 0.16829208, -0.028303532, 0.115394354, 0.0016284953, 0.06252144, 0.0025463477, -0.035674695, -0.09269994) * go_4(0.0, 1.0); + result += mat4(0.029739881, 0.010787098, 0.0037744232, -0.031569265, -0.040358283, 0.031814087, 0.018036583, -0.035894874, -0.063151926, -0.109803386, -0.07274231, 0.0032429527, 0.0074872132, 0.05725981, 0.060606975, 0.061117698) * go_4(1.0, -1.0); + result += mat4(-0.090809055, -0.03279648, -0.039354723, 0.14036313, -0.013013246, -0.07712587, -0.05239944, 0.03066829, 0.10737496, 0.076186314, -0.19699359, -0.036594667, 0.21938333, -0.04839966, 0.1286612, 0.013338615) * go_4(1.0, 0.0); + result += mat4(-0.1429745, -0.07955227, -0.115608715, 0.14228356, -0.05602207, 0.02558927, -0.11061171, 0.06673638, -0.049651172, -0.021392899, -0.06468659, 0.039141133, -0.039755132, -0.050199732, 0.011340825, -0.00960286) * go_4(1.0, 1.0); + result += mat4(-0.065777004, 0.025236372, -0.098756045, -0.0066504143, -0.0832726, -0.040675264, 0.04911827, 0.033635136, -0.28793526, -0.10226347, 0.068537354, -0.2860185, -0.0550898, -0.033459336, -0.04448749, 0.11041132) * go_5(-1.0, -1.0); + result += mat4(-0.00013023219, 0.007373967, 0.04127884, -0.04456252, 0.06467729, -0.023159763, -0.098877944, 0.015409203, 0.15005386, 0.17018975, -0.047596633, -0.08832008, 0.261034, 0.14298894, 0.10107278, 0.0667279) * go_5(-1.0, 0.0); + result += mat4(0.07939445, -0.08513146, -0.056983568, 0.040726192, 0.020092426, 0.18478346, 0.025876757, 0.030642727, -0.12265552, 0.002464858, -0.020372186, 0.070551656, -0.016353855, -0.11511243, -0.09484669, -0.08860525) * go_5(-1.0, 1.0); + result += mat4(-0.08422405, 0.022759112, -0.12475361, 0.15862978, 0.111085795, 0.07579316, -0.007671498, -0.2048156, 0.17000435, 0.05883048, 0.18549366, -0.228149, -0.14611648, -0.1293601, 0.12878643, -0.07917457) * go_5(0.0, -1.0); + result += mat4(-0.08697763, 0.0049046283, 0.06277697, 0.25657007, -0.037057158, -0.13358995, 0.2738289, 0.23121043, 0.32146227, 0.9468732, -0.09779261, -0.009769717, 0.0027131666, 0.118656114, 0.0898452, 0.22487496) * go_5(0.0, 0.0); + result += mat4(-0.009855616, -0.26240128, 0.0801256, 0.05871007, -0.21371177, 0.18926387, -0.23380044, -0.09474009, 0.06469363, -0.011632477, 0.025565358, 0.07108313, 0.10727917, -0.00026592708, 0.10903209, -0.03030383) * go_5(0.0, 1.0); + result += mat4(-0.0053380155, 0.033946496, -0.06860304, 0.0837713, -0.19269274, 0.08148278, -0.024386114, 0.022558022, -0.10444353, -0.042082686, 0.1903784, -0.077984534, -0.0065324833, 0.014674045, -0.18835127, 0.0013458942) * go_5(1.0, -1.0); + result += mat4(0.003491147, -0.0619422, 0.038574003, 0.059497047, -0.15528834, -0.007080539, -0.16295113, -0.044733614, -0.0067163864, 0.08186305, 0.11124116, -0.12240357, 0.12911586, -0.020327786, 0.084354304, 0.0617812) * go_5(1.0, 0.0); + result += mat4(0.07007616, 0.011843434, -0.029149607, -0.0033018868, 0.027770158, 0.13727912, -0.12729046, 0.2015703, 0.096229255, 0.013653448, 0.053937647, -0.029171295, 0.034246232, -0.09088042, 0.080427885, -0.114031985) * go_5(1.0, 1.0); + result += vec4(-0.031869058, -0.049291052, -0.05604242, 0.01975563); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_1_tf2 +//!SAVE conv2d_2_tf2 +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_1_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.036752462, 0.029649748, -0.09748701, 0.059650358, 0.13616882, 0.013703124, -0.14998761, 0.009004554, 0.07992881, 0.022163173, -0.018146321, -0.08414139, -0.10911252, -0.016669272, 0.056696363, -0.08302073) * go_0(-1.0, -1.0); + result += mat4(0.12478577, 0.028158983, 0.07586349, 0.12842986, -0.006957239, -0.1160528, 0.023359532, -0.0074758576, -0.15942998, -0.06529529, -0.153319, -0.078501165, -0.18118988, 0.2001499, -0.31065115, -0.055492736) * go_0(-1.0, 0.0); + result += mat4(0.03806193, 0.00058707164, -0.06611409, -0.045297977, 0.024692483, 0.09514936, 0.12853955, 0.11280573, -0.023200573, -0.1503142, -0.19710632, -0.033298586, 0.00087093137, 0.061145596, -0.004629127, -0.014288893) * go_0(-1.0, 1.0); + result += mat4(0.01509754, 0.000975345, 0.043960508, 0.022261515, -0.07704468, 0.086596936, -0.13879523, 0.26205274, -0.014519523, -0.12089183, 0.0046606623, -0.028361473, 0.034736868, -0.12085262, -0.019312797, -0.1901168) * go_0(0.0, -1.0); + result += mat4(-0.22042033, -0.067241855, -0.0011751472, -0.3089443, -0.17684302, -0.07348887, -0.037950914, 0.07932659, -0.13587996, -0.19734861, 0.27510792, 0.15798965, 0.070934966, -0.24996722, 0.22142075, -0.1549704) * go_0(0.0, 0.0); + result += mat4(-0.06863547, 0.12449067, 0.00033030356, -0.07413546, 0.124544054, 0.049810465, 0.012467352, -0.040705148, 0.2043941, -0.1648197, 0.047376834, -0.072514415, 0.051701315, 0.22315136, 0.24103536, 0.042497516) * go_0(0.0, 1.0); + result += mat4(0.123373166, 0.16414459, -0.08505689, -0.052690018, 0.11099723, -0.008846635, 0.03483504, 0.03459058, 0.036431137, -0.022281377, -0.0747196, -0.06604844, 0.0034591674, 0.10690525, -0.01045302, -0.036992412) * go_0(1.0, -1.0); + result += mat4(-0.19597553, -0.32721582, 0.20590895, 0.07775533, 0.1393974, 0.10618747, 0.034401745, -0.0008929772, 0.014548279, -0.066054046, -0.051273774, 0.043616574, -0.10099313, 0.021435626, -0.021498548, -0.09212177) * go_0(1.0, 0.0); + result += mat4(0.15320238, 0.16471805, 0.032097213, 0.020770807, 0.025557829, -0.10821472, -0.13672188, 0.07703349, -0.013789304, 0.07158349, 0.07591088, 0.017019821, -0.14680074, -0.14204682, -0.0040901196, 0.04855082) * go_0(1.0, 1.0); + result += mat4(0.092040926, -0.1696223, 0.0035175297, -0.1266837, -0.017807435, -0.05324885, 0.052235745, 0.0053132256, -0.26360056, 0.044413272, -0.07820576, 0.09869417, 0.05975259, 0.058592863, -0.03391289, -0.0463601) * go_1(-1.0, -1.0); + result += mat4(-0.17156146, -0.06575004, 0.18721104, -0.028241588, 0.09805437, 0.15232502, -0.09398395, -0.14233524, 0.07775248, 0.14465685, 0.045949064, -0.03276368, -0.0028104451, 0.15150578, -0.04324162, -0.054190543) * go_1(-1.0, 0.0); + result += mat4(-0.025806474, 0.122085676, 0.06087487, 0.10123448, -0.021339104, -0.082396485, -0.049415596, 0.016665734, -0.01075966, -0.18270788, -0.21377993, 0.0107189575, -0.14957522, -0.23296382, -0.20353965, 0.12026796) * go_1(-1.0, 1.0); + result += mat4(-0.03165497, 0.20380338, 0.03153878, 0.08439275, 0.010899999, 0.031973626, 0.05603482, -0.050522227, -0.08342698, -0.23481508, -0.042175133, 0.008809877, 0.06622943, -0.08636996, 0.072220184, -0.06921989) * go_1(0.0, -1.0); + result += mat4(-0.07053526, 0.061910875, 0.0023930974, 0.28627953, 0.14615639, 0.058881626, -0.14786066, -0.06661333, 0.30343568, 0.3641429, -0.18411386, -0.16842756, 0.17510016, 0.05421069, -0.10123317, 0.06964223) * go_1(0.0, 0.0); + result += mat4(-0.21576017, -0.06363907, -0.18081437, 0.24664907, -0.09735165, 0.057592265, -0.083031796, 0.01964763, -0.031470213, -0.18838522, 0.05072108, -0.10001062, -0.008070019, -0.111055255, -0.07987868, -0.00753598) * go_1(0.0, 1.0); + result += mat4(0.061441302, -0.078763954, 0.005878039, 0.00055347115, -0.09499128, 0.09156834, 0.13328615, 0.043168213, -0.029688388, -0.36990175, 0.1696049, -0.034198307, -0.019164128, -0.09315934, -0.0028499612, 0.043170534) * go_1(1.0, -1.0); + result += mat4(-0.1382709, -0.24728169, 0.06712876, 0.08034291, -0.091681674, 0.007854249, 0.23301663, -0.055606913, 0.28568286, 0.2942446, -0.059362978, -0.074468486, 0.11220201, 0.1190768, -0.025883239, 0.05220736) * go_1(1.0, 0.0); + result += mat4(0.11531199, 0.3396637, 0.0085975, 0.013585601, 0.080540046, 0.049160656, -0.05710246, 0.005991695, 0.1438699, -0.3402577, -0.07053711, -0.16263331, -0.09119706, 0.0076426715, 0.08115436, -0.04297937) * go_1(1.0, 1.0); + result += mat4(0.052113753, 0.026635656, 0.10596492, 0.022013694, -0.010665535, -0.077066846, 0.06217549, -0.05517532, -0.056953914, -0.08185771, -0.020402161, -0.043208323, -0.012995452, -0.019643994, 0.006990098, -0.045173813) * go_2(-1.0, -1.0); + result += mat4(0.17718889, 0.0038756612, -0.11827346, -0.2329743, -0.1793552, -0.08469043, 0.13127111, 0.051736213, 0.2438145, -0.12342349, -0.11737657, -0.20728126, -0.1685289, 0.11266314, 0.076692104, -0.1616657) * go_2(-1.0, 0.0); + result += mat4(-0.020399734, -0.23063114, -0.21987145, -0.082217745, 0.116614126, 0.10273191, 0.101865344, 0.011308658, 0.056851316, -0.050016683, -0.009367647, -0.09125666, -0.07041454, 0.051433813, -0.006439021, 0.014740233) * go_2(-1.0, 1.0); + result += mat4(0.051031563, -0.03535238, -0.080701895, -0.055633444, -0.03865236, 0.04696362, -0.016610028, -0.031190962, -0.06230007, 0.11438899, 0.002950869, 0.056986533, 0.06503178, -0.07315137, -0.108793534, 0.1280907) * go_2(0.0, -1.0); + result += mat4(0.13356781, 0.0902099, 0.0018598923, 0.054726165, 0.13937949, -0.14195664, -0.09394637, -0.23538189, 0.15451878, 0.07872618, 0.12278696, 0.07883152, -0.079190545, 0.0060577407, 0.12348955, 0.1273284) * go_2(0.0, 0.0); + result += mat4(-0.2844292, -0.043685716, 0.16975491, -0.03931876, -0.045410622, -0.043887924, -0.06207469, -0.095141575, -0.01910207, 0.036241893, -0.099487804, 0.006061581, 0.058822997, -0.0017064888, 0.04472078, 0.10879998) * go_2(0.0, 1.0); + result += mat4(-0.0531857, 0.20407021, -0.048386984, 0.02700043, -0.024223981, -0.075209916, 0.022038897, 0.14877595, -0.13606672, -0.12767786, 0.06151931, -0.05388265, -0.013327909, 0.03979459, -0.065765746, -0.07282832) * go_2(1.0, -1.0); + result += mat4(-0.037340526, -0.21573111, 0.1269642, 0.04037458, 0.12398714, 0.2021396, -0.17674391, 0.0147291655, 0.058955196, -0.0015507584, 0.23541385, -0.145222, 0.20797801, -0.13098398, 0.003790887, -0.037615184) * go_2(1.0, 0.0); + result += mat4(-0.09600365, 0.22067653, 0.09930907, -0.07818997, 0.08789531, -0.011831723, -0.07886167, -0.020031728, 0.00084014103, 0.081453785, -0.007063985, -0.007725119, -0.054167047, 0.041189484, 0.007090602, -0.037227746) * go_2(1.0, 1.0); + result += mat4(-0.017512068, -0.22621062, -0.011807716, -0.064745784, -0.06731377, -0.05784807, 0.050968435, 0.0674237, -0.10051867, -0.08823096, 0.015287385, 0.057430997, -0.08142708, 0.06392106, 0.062179778, 0.02986153) * go_3(-1.0, -1.0); + result += mat4(-0.23300487, 0.0051065637, 0.23627552, 0.053352736, 0.15926725, 0.088776834, 0.06346916, 0.10811631, -0.05167443, -0.0029013795, -0.14792533, 0.0027736027, 0.31416926, -0.083981514, -0.051183276, -0.07321588) * go_3(-1.0, 0.0); + result += mat4(-0.008830604, 0.2482698, 0.14781001, 0.096101865, -0.021321455, 0.060337346, 0.015929816, -0.039313477, 0.09857251, -0.04800572, -0.101969965, 0.09313578, 0.048235282, 0.05253759, 0.04893083, -0.1115041) * go_3(-1.0, 1.0); + result += mat4(0.14629705, 0.10310787, 0.07421539, -0.2541191, 0.061346315, -0.12419151, 0.08524945, -0.029404115, 0.022251071, -0.12156319, -0.011553011, -0.012188503, 0.10256824, -0.010299354, 0.06765391, -0.08820727) * go_3(0.0, -1.0); + result += mat4(-0.21080357, -0.4021113, 0.035816908, 0.7000948, 0.21632199, 0.111284, -0.012059465, 0.023438603, 0.25428426, -0.15475942, 0.09260869, 0.14866553, -0.14576761, 0.22147575, 0.023831703, 0.074204154) * go_3(0.0, 0.0); + result += mat4(0.049143, 0.2896474, 0.18784785, 0.036332216, -0.019188514, -0.0049673393, -0.012528154, 0.13640659, -0.16241746, -0.09813068, 0.019516123, -0.0084478175, 0.058226462, -0.22123648, -0.14045192, -0.023666197) * go_3(0.0, 1.0); + result += mat4(0.05800501, 0.060431264, -0.04097961, 0.03453522, -0.06560738, -0.092472866, -0.06397347, 0.14444739, 0.025983555, -0.030899955, -0.042766206, -0.06060983, -0.01918705, -0.040768683, 0.052782744, 0.09638819) * go_3(1.0, -1.0); + result += mat4(-0.10073037, -0.22703889, -0.0010382081, 0.05074596, 0.03396179, -0.068848714, 0.0861629, 0.26089123, 0.022775311, -0.014949607, -0.094047025, -0.0027702095, 0.1917307, 0.11404618, -0.10283004, 0.025103435) * go_3(1.0, 0.0); + result += mat4(0.030860173, 0.13404387, 0.05976607, -0.093795955, 0.016835473, -0.020731337, 0.037207656, 0.126881, 0.0074429302, -0.10216514, -0.031499624, -0.083616905, -0.023030072, 0.014815519, -0.08937133, 0.11519909) * go_3(1.0, 1.0); + result += mat4(0.13568272, 0.122503586, -0.04963004, -0.0010412488, -0.10429815, 0.068515815, -0.2886607, -0.09816482, 0.051498115, 0.0017436935, -0.03835064, -0.13563691, 0.035978988, 0.06407808, 0.035696708, 0.10724592) * go_4(-1.0, -1.0); + result += mat4(-0.01266009, -0.0073259426, 0.006877496, 0.054289263, -0.07651681, -0.1118919, -0.012793396, -0.07368392, -0.01061065, -0.10134513, -0.1434462, 0.04688037, 0.19463971, 0.15506972, -0.23626265, 0.023359938) * go_4(-1.0, 0.0); + result += mat4(-0.09461492, -0.036462337, -0.16172805, 0.15837577, -0.08643621, 0.035166703, 0.061290734, -0.108064786, -0.12176273, 0.026083494, 0.06523428, -0.053249013, 0.12905678, -0.11907856, 0.015970876, -0.064191975) * go_4(-1.0, 1.0); + result += mat4(-0.042738717, -0.022231134, -0.03853537, -0.08111096, 0.040522724, 0.1349429, 0.1058772, -0.13941672, -0.04256023, -0.05742218, 0.19752051, -0.0942069, 0.0080565745, 0.06621899, -0.0018314277, -0.10499731) * go_4(0.0, -1.0); + result += mat4(0.30080974, -0.053357773, -0.054159783, -0.13733824, -0.22567864, 0.0092003625, 0.055152208, 0.1307246, -0.05244466, 0.041202605, 0.04831643, 0.33047366, 0.11396535, 0.42621002, 0.03459549, 0.0347411) * go_4(0.0, 0.0); + result += mat4(0.05305111, 0.076122396, -0.08781792, -0.0069180895, 0.050885174, -0.0042734225, -0.04444145, 0.012016987, 0.122985676, -0.048455186, -0.17231132, -0.013408545, -0.12154411, -0.39617026, -0.13028972, 0.075709775) * go_4(0.0, 1.0); + result += mat4(-0.0041923127, 0.027921822, 0.026247777, -0.020477489, 0.042308033, 0.01580411, -0.066128924, -0.058847815, 0.00095708045, 0.061050877, 0.042081635, 0.09856459, -0.038021386, -0.18332537, 0.12586181, -0.085686505) * go_4(1.0, -1.0); + result += mat4(0.02818681, 0.2021728, -0.059565738, -0.02425082, 0.12646812, -0.02011973, -0.0052335905, -0.13634421, -0.036117353, 0.102945946, -0.025090111, 0.06759408, 0.08294928, 0.06963724, 0.07145511, 0.061311223) * go_4(1.0, 0.0); + result += mat4(-0.04572639, -0.1857778, -0.020896941, -0.1320479, -0.08060074, 0.15807647, 0.08087496, 0.09661483, 0.068133175, -0.03192162, -0.059143748, -0.023069799, 0.06820739, -0.10254724, -0.08489362, -0.12950915) * go_4(1.0, 1.0); + result += mat4(-0.0701631, -0.06492232, 0.07158485, -0.0474961, -0.08277424, -0.0046874695, -0.036980134, 0.032411482, -0.040205367, -0.11806291, -0.12003579, 0.09404628, 0.13509527, -0.07151287, -0.17165148, -0.082828976) * go_5(-1.0, -1.0); + result += mat4(-0.23416395, -0.005059655, 0.03932381, 0.15610525, 0.1310776, 0.10495845, -0.23422901, -0.017912678, 0.010918836, -0.18813089, -0.287215, 0.21294762, 0.10265387, -0.06561, -0.11778113, 0.06950684) * go_5(-1.0, 0.0); + result += mat4(-0.0028815586, 0.07538225, -0.03291754, 0.047160495, -0.07666219, -0.15290219, -0.17513353, 0.04385531, 0.005002826, -0.01648364, -0.11297704, -0.03472268, -3.882572e-05, -0.16454723, -0.023212174, 0.15911958) * go_5(-1.0, 1.0); + result += mat4(-0.08348401, 0.029882649, 0.21708311, -0.05323357, -0.07704958, -0.016631678, -0.060494706, 0.10649385, -0.29307103, 0.052837957, 0.120730795, 0.034656238, -0.0004268264, 0.20290168, 0.10882499, -0.04060937) * go_5(0.0, -1.0); + result += mat4(-0.27893996, -0.18981667, 0.15798293, -0.030922053, -0.09654163, 0.27498308, -0.019050546, 0.16028336, -0.09720187, 0.10653666, -0.23317258, 0.20285597, 0.38110915, 0.022553165, 0.1321882, 1.1575677) * go_5(0.0, 0.0); + result += mat4(0.124580376, 0.067915864, -0.060147874, 0.053467464, -0.0038043377, 0.0289266, 0.118544504, -0.13358372, -0.076356836, -0.09143476, -0.0685938, -0.067568906, -0.0121121425, 0.040102568, -0.2717469, 0.16300786) * go_5(0.0, 1.0); + result += mat4(0.002691588, -0.12474235, 0.12467866, -0.09753572, -0.010205263, -0.0006359913, 0.015651824, -0.24048246, 0.1586161, 0.004588076, 0.04444844, -0.01231289, -0.06640105, -0.063054025, 0.102068566, 0.1259912) * go_5(1.0, -1.0); + result += mat4(0.0028770883, 0.16986279, 0.060900114, -0.08368565, -0.26938817, -0.24303895, 0.29375112, -0.059524175, -0.13170256, 0.11625376, -0.1326183, -0.0012333714, -0.13267988, -0.0071024853, -0.031031137, 0.07532496) * go_5(1.0, 0.0); + result += mat4(0.12214155, -0.041841783, -0.052751888, 0.062362764, -0.04766777, 0.0540806, 0.3322733, -0.3677417, 0.12217059, 0.05566961, -0.012429841, -0.10585391, -0.056920152, 0.14918473, -0.0054139746, 0.04940436) * go_5(1.0, 1.0); + result += vec4(0.016709281, 0.012619587, -0.017232165, -0.04396106); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!SAVE conv2d_3_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.060878627, -0.041988216, 0.104058675, -0.088971175, 0.037815195, -0.033195835, 0.014279358, 0.06304454, 0.02948025, 0.006056027, -0.02087268, -0.1090193, -0.0034371826, -0.03975976, -0.06009851, 0.12365947) * go_0(-1.0, -1.0); + result += mat4(0.079548575, -0.16905668, -0.13728581, -0.03805935, 0.050417993, 0.04001516, -0.045917254, 0.043337673, -0.07575137, 0.017724466, -0.023716906, 0.012353904, -0.0853222, -0.09868139, 0.044824444, -0.0141505785) * go_0(-1.0, 0.0); + result += mat4(0.09399756, -0.14398341, -0.2721442, 0.016207851, -0.10623493, 0.057902634, 0.10767521, 0.0003635082, 0.014634943, 0.09112885, 0.11872027, 0.036644384, -0.046260875, -0.0743102, -0.19018789, 0.036393598) * go_0(-1.0, 1.0); + result += mat4(0.09814595, 0.0044509294, 0.13141516, 0.091252774, -0.09662514, -0.033599697, 0.12196037, 0.21599433, 0.1194499, 0.04127431, 0.039627396, -0.031521305, -0.14756238, -0.09555712, -0.010698389, -0.09642848) * go_0(0.0, -1.0); + result += mat4(-0.008813449, 0.015096444, 0.23331937, 0.097849704, -0.0094626965, 0.09468486, -0.14536959, -0.48678625, 0.11508988, 0.13658337, 0.07481205, -0.14646451, -0.056061424, -0.013553051, 0.1893297, -0.07424693) * go_0(0.0, 0.0); + result += mat4(0.092239104, -0.079855025, -0.12919873, -0.006577375, -0.4529186, 0.08633541, -0.027304357, -0.21013555, -0.03914936, 0.074918106, -0.009362854, -0.015590051, 0.23523058, 0.075767435, -0.042212676, -0.0037648496) * go_0(0.0, 1.0); + result += mat4(0.06423107, -0.080711946, 0.014235396, 0.017949343, 0.048689805, -0.10082265, 0.04964177, 0.103560664, 0.056355603, 0.09673206, -0.062948905, -0.036618367, -0.07845171, -0.010790115, -0.13978757, -0.025738737) * go_0(1.0, -1.0); + result += mat4(0.064559884, -0.042264454, -0.110668264, 0.124921605, 0.0047526294, 0.044878427, -0.15133426, -0.050278753, 0.08540561, 0.10420466, -0.021862527, 0.06804833, 0.094847456, 0.14177199, 0.04205903, 0.027875852) * go_0(1.0, 0.0); + result += mat4(-0.025060967, -0.04341538, -0.005267881, -0.06606841, -0.06347963, 0.062125452, 0.024389729, -0.08982404, -0.0062638335, 0.11981404, 0.054283164, -0.084352404, 0.0069115954, -0.064623505, 0.028570656, -0.069944404) * go_0(1.0, 1.0); + result += mat4(-0.026635213, -0.031471547, 0.12941289, 0.014990064, -0.06946961, 0.034871764, -0.0023429494, 0.039788067, -0.014846336, 0.07696896, 0.009524336, 0.06702693, 0.06922799, 0.15218733, -0.108957425, 0.02397873) * go_1(-1.0, -1.0); + result += mat4(0.04425317, -0.019614218, 0.020195834, -0.06853279, -0.10681463, -0.038610324, 0.1985278, 0.1917614, -0.15072219, 0.019215003, -0.07190246, -0.0710555, 0.06319588, 0.123843595, 0.037890248, -0.10028418) * go_1(-1.0, 0.0); + result += mat4(0.059803672, 0.08516648, 0.03677657, -0.010275112, -0.047332514, 0.0123374835, 0.06696025, -0.016793806, -0.086841464, 0.016270785, -0.12735787, -0.12676108, 0.16822693, 0.15760474, -0.07559359, -0.07678976) * go_1(-1.0, 1.0); + result += mat4(-0.104641154, 0.07192061, 0.23210934, 0.11417999, 0.04492395, -0.118827716, -0.12041658, 0.19749922, 0.09203569, 0.019726515, -0.055105124, 0.05295804, -0.005788939, 0.056638427, 0.065282024, -0.09013673) * go_1(0.0, -1.0); + result += mat4(0.028824141, 0.27045545, 0.073205985, -0.082846776, -0.2143439, -0.026223134, 0.16712476, 0.07194315, -0.019990921, -0.28113925, 0.13138968, 0.053820554, 0.3113366, 0.20013627, 0.010963992, 0.07630061) * go_1(0.0, 0.0); + result += mat4(0.15658687, 0.07025806, -0.09104068, 0.07163445, -0.03478211, 0.015337765, 0.083114274, 0.010839639, -0.0542002, 0.0768983, 0.074233785, -0.10077115, -0.12870364, -0.08656189, -0.04770647, -0.025078414) * go_1(0.0, 1.0); + result += mat4(-0.08102263, -0.07714586, -0.042745892, 0.0374993, -0.09478303, -0.07571532, -0.062317267, -0.034587506, -0.01396296, -0.053482197, -0.04521547, -0.116828814, -0.07759964, 0.07154679, 0.06632562, -0.069989264) * go_1(1.0, -1.0); + result += mat4(0.0066547785, 0.13140622, 0.08087736, -0.25154832, -0.039879136, -0.010373583, -0.05184014, 0.012249648, -0.096870914, -0.020647451, 0.087357886, 0.042756695, 0.09706797, 0.16477491, 0.12650236, -0.0839691) * go_1(1.0, 0.0); + result += mat4(-0.010547578, -0.013264216, 0.07298194, -0.06801917, -0.020884428, -0.071191095, 0.0041795867, -0.03743981, -0.19142745, -0.023131248, 0.0381656, -0.014476577, 0.076137036, 0.08133924, -0.085573785, 0.01067451) * go_1(1.0, 1.0); + result += mat4(-0.15004109, -0.04713592, -0.05823828, -0.03564525, -0.18593709, 0.11510138, 0.10260254, 0.10952684, -0.056938007, 0.11468128, -0.07422465, 0.013310582, 0.03276255, -0.08601149, 0.074078046, 0.06268768) * go_2(-1.0, -1.0); + result += mat4(-0.03183145, -0.080839306, 0.0077147027, 0.2783979, -0.020172173, 0.11772608, 0.19941199, 0.089674905, -0.1645803, 0.09871185, 0.103870094, -0.02221705, 0.18880293, -0.02838061, 0.1329911, 0.110804334) * go_2(-1.0, 0.0); + result += mat4(-0.0727793, -0.15429437, 0.07309872, 0.052409347, 0.07621416, 0.014342246, 0.09742559, -0.006178975, -0.00049866503, 0.01627198, 0.1749332, -0.023455271, 0.084430106, -0.074995294, 0.024229486, 0.006074203) * go_2(-1.0, 1.0); + result += mat4(0.096733555, -0.04178045, -0.016891489, 0.06953366, 0.005025407, 0.13799861, 0.003864609, -0.0056246608, 0.04448754, 0.14127962, -0.08169796, 0.049868934, -0.07307801, 0.0970107, 0.042104065, 0.012651146) * go_2(0.0, -1.0); + result += mat4(-0.17528427, -0.42639711, 0.11246585, 0.26789048, -0.045942087, 0.23083447, 0.2616979, 0.0051987628, -0.3405826, -0.02898998, -0.12387437, -0.06811704, -0.13623591, 0.085379034, 0.1163564, -0.3684051) * go_2(0.0, 0.0); + result += mat4(0.105229065, -0.009456556, -0.09346365, 0.16764155, 0.053806845, 0.032471523, 0.22268786, -0.00045551482, -0.038868275, 0.09682891, -0.072218366, -0.15059048, -0.06828941, -0.08986867, 0.009097031, 0.1784724) * go_2(0.0, 1.0); + result += mat4(0.015004372, 0.0059916377, 0.06578616, -0.03323271, -0.016655194, -0.0037565026, -0.016965717, 0.123583436, 0.05276917, 0.07713196, -0.08393188, -0.06575901, -0.026482249, 0.07345747, -0.029773988, -0.098376736) * go_2(1.0, -1.0); + result += mat4(0.0015305893, -0.09495176, 0.038808357, 0.0035307724, -0.08659931, 0.12207447, 0.08526738, 0.19026709, 0.05297383, 0.02768884, -0.1678504, -0.30386385, 0.025181111, 0.03945659, 0.17099062, 0.029333467) * go_2(1.0, 0.0); + result += mat4(0.21933754, -0.10313659, -0.04901954, 0.10964564, -0.13104112, -0.020108605, 0.027046354, -0.07801803, 0.12369789, 0.1183686, -0.2176958, -0.041832034, 0.047641497, -0.04469799, -0.010872767, 0.046445683) * go_2(1.0, 1.0); + result += mat4(0.148908, 0.119546995, 0.09599242, 0.026430191, 0.004287343, -0.01410569, -0.026667995, -0.0033883103, -0.114997216, -0.117683105, -0.083241284, 0.0925183, 0.04929814, 0.1384929, 0.067604244, -0.010090262) * go_3(-1.0, -1.0); + result += mat4(0.17913392, -0.027995758, 0.25155705, 0.38675678, -0.0084490245, 0.11703253, -0.13717517, 0.024913544, -0.022265881, 0.029341036, -0.021509588, 0.021925684, -0.06447644, 0.055588942, -0.23970391, -0.24156545) * go_3(-1.0, 0.0); + result += mat4(-0.09896528, -0.17248964, 0.20294617, -0.16814777, 0.014902548, -0.032280933, 0.04340094, 0.016689163, -0.04480586, 0.04256907, -0.18132643, -0.0063551413, 0.061819937, 0.04628381, 0.006767698, 0.0061162747) * go_3(-1.0, 1.0); + result += mat4(0.15260129, -0.06680908, 0.032037478, -0.11269483, 0.02655564, -0.021874784, -0.06829202, -0.06577833, -0.009562943, 0.0015011907, 0.0124588655, 0.06603201, 0.011123314, 0.027462086, 0.057987396, -0.18905073) * go_3(0.0, -1.0); + result += mat4(0.16752581, -0.48974037, -0.23990577, 0.27223033, -0.3773399, 0.08863033, -0.008062138, -0.077350825, -0.35848886, -0.053652804, 0.028900446, -0.06633484, 0.08034644, 0.10832985, 0.11753572, 0.09361) * go_3(0.0, 0.0); + result += mat4(-0.070450164, -0.25812992, 0.11410226, -0.21115066, 0.21403445, 0.077668846, -0.11741976, 0.011133417, 0.120277226, -0.08427091, -0.057168204, 0.1925855, -0.11746336, 0.10269434, -0.07322618, -0.10409009) * go_3(0.0, 1.0); + result += mat4(0.03575297, 0.047510248, -0.007979737, 0.031025993, -0.03234521, 0.08676478, 0.0035725946, -0.057138126, 0.022418533, 0.0050477074, -0.07923602, 0.030552208, -0.006946033, 0.013259726, -0.066337876, -0.01595059) * go_3(1.0, -1.0); + result += mat4(0.022808606, -0.08600189, -0.0021296823, -0.12722832, -0.061637733, 0.03429111, 0.1716912, 0.012061466, -0.037751373, -0.043379158, 0.004443852, 0.006374207, 0.04551323, 0.13964722, 0.011221888, -0.058265697) * go_3(1.0, 0.0); + result += mat4(0.1531455, -0.030335607, -0.00045989535, 0.016067028, 0.0050904215, -0.088213325, -0.09847688, -0.061282493, 0.040786967, 0.049954005, -0.015633572, 0.020150138, -0.086479515, -0.04847328, 0.008594881, -0.06341954) * go_3(1.0, 1.0); + result += mat4(0.022407485, 0.051172994, -0.07005926, 0.0029726303, 0.11993554, -0.027608547, 0.06194104, 0.19056575, -0.04243877, -0.114722855, 0.06236797, -0.06036638, -0.089428924, -0.07503292, -0.0024683257, 0.060040735) * go_4(-1.0, -1.0); + result += mat4(0.06874307, 0.029475406, -0.05025358, -0.04228223, 0.08292351, 0.0686724, -0.4738799, -0.041531645, 0.0615269, 0.03603044, -0.009950976, -0.030149357, 0.06910009, -0.016899468, -0.16924357, -0.066745326) * go_4(-1.0, 0.0); + result += mat4(0.012021045, -0.0028476904, -0.23050983, -0.11764533, 0.033747047, -0.0668547, -0.17645846, 0.058430642, 0.025553009, 0.11809977, -0.34416163, 0.029323732, -0.054547835, -0.0160696, 0.03192446, -0.11135748) * go_4(-1.0, 1.0); + result += mat4(0.19059187, 0.11761485, 0.06828622, -0.071383595, 0.17573558, -0.07326583, 0.29549947, 0.5370607, -0.1592557, 0.012467725, -0.02284002, -0.15567715, -0.022485673, -0.075606614, 0.02638997, 0.06499531) * go_4(0.0, -1.0); + result += mat4(0.061065406, 0.034856595, 0.121818274, -0.28799838, -0.0054412605, -0.25181246, -0.3095022, 0.59951264, -0.14887947, 0.310832, 0.42532226, -0.50458944, 0.09077006, 0.0012851865, -0.049090795, -0.018807344) * go_4(0.0, 0.0); + result += mat4(0.08625662, -0.08079708, 0.03560689, 0.021092743, 0.03330426, -0.10841074, 0.03042436, -0.10980985, -0.056732696, -0.02562971, -0.1828409, 0.25399944, 0.2152503, -0.019375121, -0.073344804, 0.04161207) * go_4(0.0, 1.0); + result += mat4(-0.021478724, 0.015574761, 0.092981905, 0.04195265, -0.050123077, -0.13362321, 0.14641477, 0.22193475, -0.112343, 0.02624443, -0.13018239, 0.00833514, -0.0092335045, 0.015253402, -0.013441764, 0.028822897) * go_4(1.0, -1.0); + result += mat4(0.025862357, -0.021355819, 0.10295669, 0.0615911, -0.102607384, -0.21350992, -0.0051344573, 0.062845446, -0.068726346, 0.10714023, -0.016227763, -0.055759374, 0.10889699, 0.07502395, -0.09149433, -0.00020285786) * go_4(1.0, 0.0); + result += mat4(-0.0676785, -0.11517699, 0.012390956, -0.120551035, -0.1695143, -0.027560102, -0.04481715, -0.06955313, 0.03983824, 0.097748354, -0.02457515, -0.025119185, -0.003987165, -0.034221396, -0.004371428, 0.045199845) * go_4(1.0, 1.0); + result += mat4(0.1732521, -0.022186914, 0.023095943, 0.034811586, 0.05579798, 0.030366201, 0.050261993, 0.029239386, 0.012046298, 0.024326274, -0.06705734, -0.028883696, 0.019890117, 0.018180113, 0.15856597, 0.18605316) * go_5(-1.0, -1.0); + result += mat4(0.14001346, -0.21155912, -0.04503595, 0.053345755, -0.090209134, 0.023596361, 0.109940544, 0.04495405, 0.1154255, 0.08557325, 0.028999878, 0.06572874, -0.06701647, -0.059574578, -0.035772696, -0.25112775) * go_5(-1.0, 0.0); + result += mat4(0.06629787, 0.08039307, -0.13807642, 0.07134196, -0.04295903, -0.006060854, 0.08699088, 0.018854614, 0.024055403, 0.024039935, -0.08500348, -0.03041994, -0.12469508, -0.06752729, 0.023455527, 0.06100103) * go_5(-1.0, 1.0); + result += mat4(0.06566045, -0.19818264, 0.13119479, 0.25947747, -0.17939506, 0.005642733, 0.09516572, -0.015004266, -0.048418473, -0.0120703075, -0.18966949, -0.23252305, 0.04602659, -0.07620238, -0.08963158, -0.082796745) * go_5(0.0, -1.0); + result += mat4(-0.01332639, -0.20567879, -0.027533831, -0.055890594, -0.06562438, 0.05992528, 0.15381408, -0.015261545, 0.14442064, 0.100258596, -0.0497336, 0.00076529477, 0.08915382, -0.25916958, 0.11629673, 0.50717276) * go_5(0.0, 0.0); + result += mat4(-0.09708679, -0.17440423, -0.06424349, 0.024765793, -0.068865195, -0.030870711, -0.019785484, -0.09489355, 0.0029501836, -0.030186258, -0.059128, 0.02353537, -0.056624137, -0.03159645, -0.016295215, -0.07160536) * go_5(0.0, 1.0); + result += mat4(0.006727234, -0.21366745, -0.07577386, -0.007462938, -0.17185695, -0.034567107, 0.15243205, 0.033333488, -0.08533551, 0.10143909, 0.02578666, -0.09097233, 0.026171222, -0.18809001, -0.03344314, 0.075811416) * go_5(1.0, -1.0); + result += mat4(-0.007549739, -0.18698569, -0.12967056, 0.23008282, -0.21573843, -0.034550514, 0.13685697, -0.11938899, 0.14835912, 0.1284512, 0.034902997, 0.086076915, 0.016294781, -0.068496056, -0.01920739, 0.14567302) * go_5(1.0, 0.0); + result += mat4(-0.04698844, 0.011898311, 0.1046441, 0.01991676, -0.042640552, -0.0012635426, 0.019563822, -0.16339815, -0.15451749, 0.0122954445, -0.15720376, -0.047094855, -0.047507558, -0.021503676, -0.04172817, -0.040319066) * go_5(1.0, 1.0); + result += vec4(0.15373076, 0.023519197, -0.049319107, -0.08283358); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!SAVE conv2d_3_tf1 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.051532425, 0.091096826, 0.14191705, 0.021257475, -0.043796312, 0.093881994, -0.005066956, -0.0023505734, -0.05945693, 0.009556036, -0.085642494, -0.0014123443, -0.0058722594, -0.024343085, 0.061728872, -0.0039950665) * go_0(-1.0, -1.0); + result += mat4(-0.26865405, 0.009443461, 0.16867341, 0.622584, 0.058818102, 0.35006693, -0.059381735, -0.06257525, 0.09936295, -0.00443078, -0.10469712, 0.028571106, -0.040493533, 0.064946294, 0.06706766, -0.09373991) * go_0(-1.0, 0.0); + result += mat4(0.06543985, 0.09986878, -0.19543362, 0.09373655, 0.0541375, 0.16537385, 0.026011372, -0.03605416, 0.019205978, -0.07212895, 0.024384554, -0.007675373, 0.12836097, -0.04166636, 0.055825308, -0.020801648) * go_0(-1.0, 1.0); + result += mat4(-0.0015450468, 0.13572882, 0.12091456, 0.1166015, -0.009230995, -0.02709468, 0.24357562, -0.041073736, 0.10431756, -0.09081733, 0.024183141, -0.12385413, 0.009050871, 0.04241893, -0.07000264, -0.045027476) * go_0(0.0, -1.0); + result += mat4(0.1844817, 0.26336753, 0.3737102, -0.06259004, 0.1617452, -0.25852692, 0.09539696, 0.077052556, -0.1127802, -0.04362702, -0.07532252, 0.01843211, 0.20906034, -0.22169475, -0.3050946, 0.005795682) * go_0(0.0, 0.0); + result += mat4(0.050782137, 0.09285482, 0.013463424, 0.09382983, 0.15679222, 0.097184785, -0.102737166, 0.010083802, 0.25101736, -0.057440706, -0.0068231933, 0.031670235, -0.15177655, 0.06184211, 0.035385065, 0.094532885) * go_0(0.0, 1.0); + result += mat4(-0.021981591, -0.010338387, 0.0173951, 0.011672829, -0.07322482, 0.026766973, 0.19942865, -0.054371774, -0.039344914, -0.031175368, -0.104145624, -0.033964705, 0.059924334, 0.10030723, 0.05287642, -0.011525114) * go_0(1.0, -1.0); + result += mat4(0.010477996, -0.027564188, -0.07299184, 0.0031628401, 0.053592954, 0.14721608, 0.050443165, 0.054701533, -0.05194661, 0.10187985, 0.0841449, -0.16591024, -0.120705724, 0.04835826, 0.022117713, 0.14320303) * go_0(1.0, 0.0); + result += mat4(0.05366802, 0.04450724, -0.07116873, 0.018092519, 0.12960574, 0.010524704, 0.021397214, -0.10124951, 0.021492062, 0.15726486, 0.018809538, 0.16718598, -0.079331905, 0.014389413, -0.043786433, -0.031617466) * go_0(1.0, 1.0); + result += mat4(0.061123163, -0.008527182, 0.056948926, -0.10627774, -0.051381204, -0.098056376, -0.07355251, 0.058251213, 0.03027771, -0.059726343, -0.004039657, -0.060454708, 0.03326807, -0.017245874, -0.018002514, -0.19221961) * go_1(-1.0, -1.0); + result += mat4(0.13269426, -0.14521386, 0.07024693, -0.044345845, 0.064260505, -0.08186043, -0.018553255, 0.013000457, -0.034331907, 0.0110434955, -0.15152079, 0.062666364, 0.0064793793, 0.03943717, -0.07121982, -0.0122420695) * go_1(-1.0, 0.0); + result += mat4(0.0022909308, -0.027821459, 0.007666231, -0.09402207, 0.06378703, 0.0025306912, -0.011908118, 0.052943528, 0.03777223, 0.015253876, -0.0911553, 0.020581577, 0.04024302, -0.059131015, -0.12878624, -0.14937729) * go_1(-1.0, 1.0); + result += mat4(-0.20060766, 0.10550035, 0.040319964, 0.02203861, -0.21334945, -0.09129617, 0.14950722, 0.27330917, -0.13043684, -0.011455554, -0.059163526, 0.061363168, 0.07198159, -0.14392267, -0.049279723, -0.16368888) * go_1(0.0, -1.0); + result += mat4(-0.005726934, 0.061809737, 0.26571175, -0.0508786, -0.13768773, 0.0084726615, 0.064867355, 0.24021354, -0.16612366, -0.32611376, -0.0056967433, 0.058649994, -0.14098184, -0.13195637, 0.17463897, -0.072706945) * go_1(0.0, 0.0); + result += mat4(-0.004255773, 0.050221432, 0.03511493, 0.13059683, 0.090276234, -0.014923911, -0.0297545, -0.047384452, -0.017452974, -0.014603175, -0.040555496, -0.040129393, 0.15767246, -0.12933423, -0.10411603, -0.059705585) * go_1(0.0, 1.0); + result += mat4(0.01499572, 0.038021356, -0.038655262, 0.10332636, 0.06107952, -0.124987125, 0.00839781, 0.026839726, 0.05667281, -0.06502034, -0.04158296, 0.020352334, 0.012855494, -0.16884436, 0.07456417, -0.27250993) * go_1(1.0, -1.0); + result += mat4(0.16625583, 0.111739345, -0.14115168, 0.07775498, 0.07964054, -0.19943264, -0.076579675, 0.114146315, -0.06924165, -0.008523757, -0.012369684, 0.084825546, 0.077360824, 0.015640896, -0.09014757, -0.2562427) * go_1(1.0, 0.0); + result += mat4(0.043598585, -1.7944143e-05, 0.020020347, 0.163202, -0.009320151, -0.060290903, -0.08029752, 0.00470786, -0.052253775, 0.0523158, -0.048120454, 0.027237004, 0.19543527, -0.053322367, -0.07795532, -0.26097637) * go_1(1.0, 1.0); + result += mat4(0.040829513, 0.027344912, 0.039350614, -0.018052671, 0.047116775, -0.21742846, 0.021800093, 0.04727935, 0.006476431, 0.109050065, -0.15855633, 0.06528196, 0.01749025, 0.0801408, 0.050908446, 0.025161307) * go_2(-1.0, -1.0); + result += mat4(0.0039109145, 0.20262106, 0.010640377, 0.00073508086, 0.035609048, -0.3178805, -0.114064306, -0.08717052, 0.041919455, 0.100822195, 0.052280337, 0.14264041, -0.019835107, -0.01742497, 0.069859706, -0.136094) * go_2(-1.0, 0.0); + result += mat4(-0.016050965, 0.0017023965, 0.07463478, 0.029397288, 0.012884667, -0.15340297, -0.12145311, -0.084504604, 0.031719554, 0.10176259, 0.17917578, -0.081466235, -0.070475176, -0.036569543, 0.030817369, 0.00093004206) * go_2(-1.0, 1.0); + result += mat4(0.005175143, 0.038541757, -0.04611391, 0.012687734, -0.08482585, -0.13420677, -0.022602718, -0.023248335, -0.009379305, -0.024914416, -0.1556873, 0.07716233, 0.040030897, 0.019588439, -0.00020326633, -0.035921823) * go_2(0.0, -1.0); + result += mat4(0.09277081, -0.14604849, -0.10315272, -0.10218238, -0.019299058, 0.039892927, -0.12305097, 0.08282308, 0.20785542, -0.25430942, -0.5786373, 0.08361619, 0.29766968, -0.13651149, 0.05433396, -0.002326487) * go_2(0.0, 0.0); + result += mat4(0.0022918757, -0.13288023, 0.03507073, -0.1270022, -0.08303009, -0.11835682, -0.043386355, -0.049939554, 0.17220426, 0.20690584, -0.12607607, 0.01630364, -0.12909384, -0.015639398, 0.008538845, 0.011814694) * go_2(0.0, 1.0); + result += mat4(-0.07323993, 0.0038193578, -0.04499547, -0.028330965, 0.09958232, -0.19099899, 0.11461582, 0.034137066, 0.11563113, -0.080109045, -0.046825726, -0.076518156, 0.02142076, 0.023689395, -0.06716457, 0.055380866) * go_2(1.0, -1.0); + result += mat4(-0.16992791, -0.11073775, 0.030314503, -0.040741265, 0.14471209, -0.08543357, 0.03936064, 0.08363683, 0.25784957, -0.013240934, -0.2611622, 0.058637217, -0.054403603, 0.07538569, -0.01460606, 0.0033586712) * go_2(1.0, 0.0); + result += mat4(-0.030334603, -0.06705014, 0.115312725, -0.088085726, 0.06702929, -0.0011495374, -0.034704637, 0.1343799, 0.09259208, -0.015164439, -0.07946157, -0.08280861, 0.05221832, -0.020103397, 0.07027518, -0.06577655) * go_2(1.0, 1.0); + result += mat4(-0.15953599, 0.19717984, -0.068774864, -0.013231801, -0.0049428963, 0.035260137, 0.06719697, 0.053744193, -0.0061586886, 0.12468824, 0.082771085, -0.06338266, -0.11161943, 0.020903619, -0.06662881, 0.106410764) * go_3(-1.0, -1.0); + result += mat4(-0.12648551, 0.59016633, -0.058449466, 0.05027184, -0.1268186, -0.16503315, 0.06283211, 0.15491466, -0.030275421, -0.017137839, 0.35572198, -0.20102905, -0.13933317, 0.064168975, -0.25148913, 0.19831786) * go_3(-1.0, 0.0); + result += mat4(-0.020623447, 0.10436603, 0.032505494, 0.10330747, -0.13537021, -0.12852004, 0.043470673, 0.15594596, -0.04079206, -0.006578484, 0.014639443, -0.1305668, 0.12742941, 0.035377916, -0.020666048, 0.12913902) * go_3(-1.0, 1.0); + result += mat4(-0.093957245, 0.14227086, -0.052876893, -0.017023886, 0.02895226, -0.049363572, -0.103803545, -0.020201692, -0.017122371, 0.020107223, 0.17466359, -0.045727585, 0.008829902, -0.090555556, -0.15374495, 0.038008567) * go_3(0.0, -1.0); + result += mat4(-0.12761056, 0.28135148, 0.27574867, 0.382931, 0.37396768, 0.16042046, -0.21978071, -0.09570819, -0.03657776, -0.14994064, -0.21335132, -0.14469749, -0.008334839, 0.076127745, 0.12596962, 0.044469625) * go_3(0.0, 0.0); + result += mat4(0.062693655, -0.0020995673, -0.03578003, -0.008693218, -0.20448913, -0.0012052114, -0.05517855, 0.07709973, 0.00019773244, -0.033441383, 0.10124644, -0.029133243, 0.011188245, 0.049480632, -0.15774047, 0.026462583) * go_3(0.0, 1.0); + result += mat4(0.07708541, 0.032094687, -0.06590399, -0.044917103, 0.030699087, 0.013791041, -0.027715903, 0.034989886, 0.12644286, -0.053212583, 0.030144867, 0.03191328, -0.0022030976, -0.03517952, -0.031239145, -0.011541516) * go_3(1.0, -1.0); + result += mat4(0.13605243, -0.0036643173, 0.054759923, -0.0874578, -0.095541336, -0.07717009, -0.0044404124, -0.07789377, 0.022223033, 0.042040557, 0.03963188, -0.06923746, 0.050515573, 0.021173706, -0.1588929, -0.016566718) * go_3(1.0, 0.0); + result += mat4(0.03642868, 0.0019571134, -0.06462001, -0.025783904, -0.092446275, 0.07034372, 0.13513735, 0.049418043, 0.0469767, -0.034647983, -0.028358156, 0.029821971, -0.0012547448, -0.0215142, -0.00575001, -0.015822617) * go_3(1.0, 1.0); + result += mat4(0.05991972, -0.07097606, -0.0021673026, -0.057737365, -0.07414523, 0.0848901, -0.010813947, 0.098590545, -0.053975012, -0.01418897, -0.003842304, -0.08890115, -0.036108535, -0.028888565, 0.083571434, 0.031539794) * go_4(-1.0, -1.0); + result += mat4(0.06793972, -0.04307121, -0.06749134, -0.2220419, -0.027158843, -0.12549289, -0.12074319, 0.15725835, 0.031145409, 0.029780883, 0.1666359, -0.19247383, 0.049615867, 0.007585922, 0.043383103, 0.059999026) * go_4(-1.0, 0.0); + result += mat4(0.049211416, 0.017562263, -0.16941698, 0.020431092, 0.03291002, -0.16847964, -0.13768122, 0.023552107, 0.066443734, 0.04457845, -0.06422816, 0.026246335, -0.068408854, -0.005691881, -0.016129443, -0.04373907) * go_4(-1.0, 1.0); + result += mat4(-0.05238576, 0.0040802117, -0.048386503, -0.091417626, -0.12426567, 0.057714116, 0.13877256, 0.07984798, 0.1273961, 0.053779654, 0.005539249, -0.15763973, 0.01229652, 0.028854318, 0.03565122, 0.008969873) * go_4(0.0, -1.0); + result += mat4(0.0557266, -0.08987834, 0.084733, -0.092816025, -0.11559604, 0.078937136, 0.2510453, 0.43310538, 0.25558868, 0.11473004, -0.38432416, -0.5493848, 0.11698362, 0.0031592897, -0.25226787, -0.16275169) * go_4(0.0, 0.0); + result += mat4(-0.057126086, 0.02864368, 0.03450892, -0.21388105, -0.09301064, -0.08352118, -0.03985245, 0.03851764, 0.052544933, -0.11187719, 0.1202711, -0.025741827, -0.049562898, 0.030661782, -0.13272884, 0.11825087) * go_4(0.0, 1.0); + result += mat4(0.00022974834, 0.009710421, 0.017583983, -0.033309694, -0.0051363627, -0.04150162, 0.14076383, -0.02493734, 0.03662216, 0.013816948, -0.093910635, -0.016845183, -0.005615691, 0.057093993, -0.04766084, 0.02399329) * go_4(1.0, -1.0); + result += mat4(-0.105166085, 0.043123998, -0.0127380835, 0.002625806, 0.015331415, -0.06932662, 0.12627512, -0.007400604, 0.0795737, -0.06656376, 0.10450256, -0.21649025, 0.018006608, 0.023881756, 0.017293494, 0.028394276) * go_4(1.0, 0.0); + result += mat4(-0.02119481, 0.08968183, 0.05052849, -0.12967895, -0.040222317, -0.05005715, -0.03269384, 0.12692185, -0.026795395, -0.010976929, 0.09932758, -0.10000184, -0.029375391, -0.0059517818, 0.11153912, -0.021110825) * go_4(1.0, 1.0); + result += mat4(-0.18823478, -0.07471848, 0.10086466, -0.0802164, -0.08827184, 0.120874256, -0.10013822, -0.041975964, 0.03392259, 0.02487604, 0.0055046408, -0.031607714, -0.046583664, -0.08023409, 0.01050265, 0.018952131) * go_5(-1.0, -1.0); + result += mat4(-0.27866688, 0.01744233, 0.22286561, -0.12082279, -0.09129484, 0.18733421, 0.13702172, 0.11011228, -0.102656946, 0.008688805, 0.017221048, 0.05698448, 0.047090173, -0.11221888, -0.011405661, -0.0803902) * go_5(-1.0, 0.0); + result += mat4(-0.015040312, -0.06936747, -0.051856115, -0.23413056, 0.038837086, -0.05748699, 0.008432868, 0.013003123, 0.015453204, -0.025663814, -0.14024237, 0.05792928, 0.16071676, -0.06444115, -0.025555203, -0.0329603) * go_5(-1.0, 1.0); + result += mat4(-0.17098702, -0.03307113, 0.39276683, -0.2675735, 0.11513026, 0.022623973, 0.09215052, -0.035489403, 0.15498714, -0.033512514, -0.12328384, 0.06450136, -0.0857012, -0.05533978, 0.084712565, 0.060517173) * go_5(0.0, -1.0); + result += mat4(-0.22476391, 0.043400906, 0.27170894, -0.08536195, 0.081583224, -0.12228048, 0.11090993, -0.17015494, -0.2305381, 0.3388885, 0.04737424, -0.039380115, -0.4384285, 0.108392686, -0.04265109, -0.076380804) * go_5(0.0, 0.0); + result += mat4(-0.005365885, 0.019079542, 0.101035826, 0.019317945, 0.090604626, 0.060402036, 0.03897374, -0.013627864, -0.06286203, -0.10721233, -0.04124434, 0.15492818, 0.08468363, 0.02096242, 0.16306227, -0.121712595) * go_5(0.0, 1.0); + result += mat4(0.076783404, -0.10820704, 0.1928273, -0.26549062, -0.019718567, 0.014522923, 0.03307578, 0.05146496, -0.037891667, 0.06871848, -0.040733065, -0.06625803, 0.044294454, -0.03430605, 0.17273937, -0.097373515) * go_5(1.0, -1.0); + result += mat4(-0.01684758, 0.11004352, 0.18195264, 0.021141363, -0.06384991, -0.046188932, 0.14583582, -0.042456772, -0.19739406, 0.0716079, -0.14497757, -0.11471601, -0.05790205, -0.031198889, 0.16930245, -0.050601408) * go_5(1.0, 0.0); + result += mat4(-0.0004969313, 0.052198816, 0.044516873, -0.0004902391, -0.01417575, 0.007150018, -0.058823355, -0.10758816, 0.11552376, -0.009542674, -0.02952017, 0.057716407, 0.036378585, -0.014639986, -0.102228165, 0.014733783) * go_5(1.0, 1.0); + result += vec4(-0.089817494, -0.046376515, -0.016165316, 0.0076574814); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!SAVE conv2d_3_tf2 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_2_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.030038383, -0.021750828, -0.05673787, -0.020782128, -0.09773039, 0.039174426, 0.06708796, -0.049333632, -0.04537355, 0.0038014427, 0.03591195, -0.044637557, 0.050968885, 0.09330693, -0.031212635, 0.07429358) * go_0(-1.0, -1.0); + result += mat4(0.12775251, 0.040986136, -0.04009791, -0.46938616, -0.019962156, 0.020210423, 0.006611632, -0.12218599, -0.034447394, -0.042804014, 0.03643364, 0.008767333, 0.011725782, 0.12548617, -0.04463093, -0.0003086673) * go_0(-1.0, 0.0); + result += mat4(-0.17495006, 0.09364223, 0.21191445, 0.3689361, -0.17039227, 0.046119362, 0.0004103469, 0.005220074, -0.030711368, -0.16689484, -0.0033276859, 0.0019133807, 0.039146427, 0.24162926, -0.06682649, 0.015280382) * go_0(-1.0, 1.0); + result += mat4(0.14416052, -0.04350349, -0.05997498, -0.033882197, 0.094997644, -0.074338906, -0.018996352, -0.11358834, -0.056317985, -0.09744033, -0.0649357, 0.13987495, -0.11759386, 0.04025934, 0.014363531, 0.04545393) * go_0(0.0, -1.0); + result += mat4(-0.025082601, 0.15925029, 0.26535234, -0.11123376, 0.2440576, -0.22252248, -0.33604595, 0.41823947, 0.041226815, -0.018212054, 0.029909294, -0.18397939, -0.008992709, -0.053265553, -0.33006796, 0.1679767) * go_0(0.0, 0.0); + result += mat4(-0.15396369, 0.047922403, 0.081095986, 0.113559745, -0.15644477, -0.053599257, 0.13369486, -0.042834673, 0.053572267, 0.008784489, -0.07328086, -0.09134024, 0.13616152, 0.07166517, -0.13828607, 0.03351486) * go_0(0.0, 1.0); + result += mat4(0.14226072, 0.03835179, 0.037692476, 0.028272923, 0.1739552, 0.060204353, 0.025946103, -0.11801499, -0.013297981, 0.017026937, 0.03560745, 0.013458226, -0.13805607, -0.0465596, -0.10789218, 0.05573865) * go_0(1.0, -1.0); + result += mat4(0.086809635, -0.079763696, 0.09985947, -0.005514354, 0.03096031, -0.11669026, -0.022280462, -0.13622472, -0.14020382, -0.19116089, -0.19539164, 0.19047521, 0.052646037, 0.16117837, -0.03884808, 0.00616069) * go_0(1.0, 0.0); + result += mat4(0.0559758, 0.034724902, 0.0734068, 0.05364228, 0.038033064, -0.17287946, 0.079264306, -0.108767435, 0.061889466, 0.008698587, -0.09496613, 0.005716793, 0.016187228, 0.029243872, 0.0018449439, -0.049501143) * go_0(1.0, 1.0); + result += mat4(-0.07022979, -0.048978336, -0.03554127, 0.059115365, -0.044639688, 0.09438233, -0.08497962, 0.0090867905, 0.10578026, -0.05330054, -0.096712135, -0.066838026, -0.14796714, -0.068573944, -0.062214892, -0.041214455) * go_1(-1.0, -1.0); + result += mat4(0.1073234, -0.18741827, -0.11151789, 0.015686441, -0.051570714, 0.11938432, -0.10913929, 0.19924664, 0.004670323, 0.12700799, 0.10854721, 0.011548006, 0.027806178, -0.056173198, -0.0735823, -0.032703802) * go_1(-1.0, 0.0); + result += mat4(0.021739235, -0.0762548, -0.07841973, -0.026117647, -0.020196462, -0.032511126, -0.013573442, -0.0064681806, -0.001557182, -0.025993003, 0.042057555, -0.07787966, -0.0032753355, -0.20890261, -0.11667297, 0.014360282) * go_1(-1.0, 1.0); + result += mat4(0.112155125, 0.08103959, -0.16235179, -0.044133063, -0.22261354, 0.08284279, 0.18919945, -0.12323681, 0.07951254, 0.07377466, 0.040439017, -0.085686415, -0.05438964, -0.0856376, -0.03426205, 0.16813913) * go_1(0.0, -1.0); + result += mat4(-0.07694995, -0.14575966, 0.16244434, 0.069700025, -0.09374663, 0.20785992, 0.6321536, -0.14662765, 0.049012557, -0.11849355, -0.17823172, 0.12648977, 0.23761982, -0.27029783, -0.25868917, 0.3413623) * go_1(0.0, 0.0); + result += mat4(-0.054794446, -0.07828729, -0.09556604, -0.07134157, 0.036704887, -0.10364276, 0.06125657, 0.09165867, 0.118566066, -0.049238298, -0.047849175, -0.111805685, -0.12598202, -0.059178207, 0.19201007, 0.23574536) * go_1(0.0, 1.0); + result += mat4(0.08980732, 0.02026105, 0.0129340505, -0.09411272, 0.050741844, 0.08491761, -0.0047545866, 0.08226705, -0.043336462, -0.031396918, 0.067547105, 0.062342398, -0.17352124, 0.023412999, -0.040013775, 0.1298339) * go_1(1.0, -1.0); + result += mat4(-0.14172035, -0.24607244, 0.047379315, 0.07706968, 0.021247461, -0.052120127, -0.059468146, 0.119869955, 0.053620726, 0.004084994, 0.13461955, -0.18420613, -0.08815453, -0.2254551, -0.12617877, 0.08785496) * go_1(1.0, 0.0); + result += mat4(-0.077065945, -0.2423904, 0.1552825, -0.03647555, 0.06480191, 0.1330156, -0.0269433, 0.15451622, 0.035751514, 0.20464808, -0.025265023, 0.020420134, 0.083485104, -0.21048307, 0.02272924, 0.08510558) * go_1(1.0, 1.0); + result += mat4(0.060760673, 0.09824782, -0.021633951, -0.01997114, -0.057572138, -0.09888247, 0.028583184, -0.07609289, -0.15944918, -0.068560906, 0.0012401744, -0.1439598, 0.062566355, 0.038748585, -0.049428593, 0.06488477) * go_2(-1.0, -1.0); + result += mat4(-0.14030106, 0.3072454, 0.06573317, 0.11125419, -0.056651082, -0.38036165, 0.14607264, 0.025300123, -0.21910849, 0.086184375, -0.07718454, -0.22798067, 0.06774617, -0.030094463, -0.061885186, 0.17065558) * go_2(-1.0, 0.0); + result += mat4(-0.010125824, 0.103072144, 0.1279997, 0.050760243, -0.044088285, -0.22203995, 0.14531416, 0.14237681, -0.09475585, -0.031036694, -0.06487942, -0.06685459, 0.044411752, 0.102043316, -0.02298463, 0.13894531) * go_2(-1.0, 1.0); + result += mat4(0.078136265, 0.09181613, -0.0738238, 0.11729893, -0.0353268, -0.045860678, 0.015761107, -0.2393765, 0.16983439, -0.19721702, -0.04424538, -0.19921613, -0.15987086, -0.053151198, -0.021123309, 0.017046373) * go_2(0.0, -1.0); + result += mat4(0.12818108, 0.110156946, -0.312964, -0.039435193, -0.013887782, 0.023616536, -0.10395611, -0.10312674, 0.16714245, -0.011764259, 0.013490144, -0.27647623, 0.2815708, -0.077260576, -0.48344976, 0.45566863) * go_2(0.0, 0.0); + result += mat4(0.13948695, 0.16520035, -0.10736998, 0.11894474, 0.04268327, -0.06891544, -0.12176657, -0.010123764, -0.12706108, -0.09380579, 0.20031494, 0.013033486, 0.045285974, 0.24856701, 0.017390171, 0.008171071) * go_2(0.0, 1.0); + result += mat4(0.10275033, 0.044178646, -0.07312131, 0.032645803, 0.06477659, -0.23516645, 0.067890026, -0.10182108, -0.06428725, -0.30921656, 0.0689789, -0.12003374, -0.0762646, -0.054030195, -0.032199256, -0.01721715) * go_2(1.0, -1.0); + result += mat4(0.030139906, 0.34553978, -0.10791494, 0.10865321, -0.027569076, -0.3618259, 0.08197652, -0.18512005, -0.052365016, -0.2031043, 0.022174975, 0.112072885, -0.010841792, -0.056213304, -0.01889174, -0.021815313) * go_2(1.0, 0.0); + result += mat4(0.07941464, 0.10613619, -0.17120236, 0.11736614, -0.067713745, -0.04955237, 0.07884793, 0.028317591, -0.08577812, -0.23818578, 0.028565563, -0.09763123, 0.021688502, -0.014520022, -0.0022332326, 0.06084232) * go_2(1.0, 1.0); + result += mat4(0.17416538, -0.055337753, -0.086784735, -0.19203298, -0.022859348, 0.052769832, 0.01801499, 0.021157248, -0.003430855, 0.28804642, -0.12915777, -0.007967927, -0.062051505, -0.035990898, 0.14486398, -0.045551952) * go_3(-1.0, -1.0); + result += mat4(-0.06697477, 0.21398899, 0.15626886, 0.09518566, -0.04784873, -0.043016933, 0.028028524, -0.2202801, 0.009475978, 0.023302117, 0.086636774, 0.08466187, 0.027134296, -0.12477319, -0.0066038263, -0.13377169) * go_3(-1.0, 0.0); + result += mat4(0.073002495, 0.019882409, 0.13465437, 0.095742665, 0.02877812, -0.07978304, 0.04799434, -0.08633761, 0.053829532, 0.028266488, 0.016496865, -0.017649772, 0.007504453, -0.08132136, -0.032084428, -0.06213031) * go_3(-1.0, 1.0); + result += mat4(0.22638816, 0.021791125, -0.05373062, -0.11881955, -0.16027248, 0.1248117, 0.09711232, 0.12850693, 0.1430744, 0.016074827, 0.28289175, -0.02841633, -0.071616, 0.123623274, 0.034697633, -0.04540337) * go_3(0.0, -1.0); + result += mat4(-0.32847854, 0.03362345, 0.1570183, -0.03396035, 0.010754796, 0.050622255, 0.1397359, -0.0694123, -0.08154277, 0.07327178, -0.19398023, 0.19549695, 0.016365696, -0.094511, 0.1962987, -0.1624034) * go_3(0.0, 0.0); + result += mat4(0.058889385, -7.546345e-05, 0.24408817, 0.2477949, -0.09436003, 0.012569106, -0.008978321, -0.24843621, -0.05341815, 0.042606987, -0.034251466, -0.032898013, 0.024249421, -0.13529354, -0.009598037, -0.010006772) * go_3(0.0, 1.0); + result += mat4(-0.008468843, -0.096458435, -0.03669067, 0.07894181, -0.05088269, -0.02165748, -0.092161335, 0.027510274, -0.063793465, -0.016722348, 0.04017869, -0.08391233, -0.02473415, -0.002307846, -0.050660677, 0.13024652) * go_3(1.0, -1.0); + result += mat4(0.106820665, -0.079599075, 0.119992964, 0.052486505, -0.13353048, 0.17465922, -0.06353679, 0.08188179, -0.06733727, -0.076294705, 0.06284326, 0.03576611, -0.07740004, -0.022198483, -0.02510401, 0.013377264) * go_3(1.0, 0.0); + result += mat4(0.05380906, -0.13063669, 0.0502729, 0.08910364, -0.063234136, 0.12828088, -0.018460963, -0.075440355, 0.009794487, -0.06512296, -0.06974687, 0.055644996, -0.06760934, -0.051190425, 0.015056534, -0.076578766) * go_3(1.0, 1.0); + result += mat4(0.11306755, -0.14152966, 0.017199567, -0.07927823, -0.07652898, 0.049704805, 0.08694966, 0.023250965, -0.0097414795, 0.18923178, -0.009095949, 0.19534774, 0.07291539, 0.08211279, -0.03250076, -0.004571515) * go_4(-1.0, -1.0); + result += mat4(0.054340266, -0.06225541, 0.079742216, 0.08922402, 0.038130082, 0.03440285, -0.09214123, -0.079534784, -0.056612004, -0.11120479, -0.022306368, -0.12771012, -0.03189213, -0.06106299, 0.07653171, -0.017988201) * go_4(-1.0, 0.0); + result += mat4(-0.01483085, -0.07492041, 0.09557763, 0.018514846, -0.063029274, -0.0042385045, 0.095838405, 0.25916252, 0.007743448, -0.03838592, -0.0017389939, -0.21538797, 0.030113945, 0.052143387, 0.042328425, -0.021920057) * go_4(-1.0, 1.0); + result += mat4(-0.054446265, -0.15103836, 0.0337641, -0.17766273, 0.59812796, 0.16621551, -0.1396398, -0.10765044, -0.20137207, -0.058399063, 0.015214646, 0.08948676, 0.10885861, -0.07048783, -0.036039792, -0.0139106875) * go_4(0.0, -1.0); + result += mat4(0.44016132, -0.15730812, -0.18961212, 0.054028135, 0.20437379, 0.22306874, -0.16968171, -0.3039991, 0.16289267, -0.13677506, 0.393345, 0.14750478, 0.030973857, -0.15711813, 0.29814583, -0.079453215) * go_4(0.0, 0.0); + result += mat4(0.111330524, 0.034477763, -0.035662375, 0.0040829857, -0.21120815, -0.0015638896, 0.16000211, 0.11780304, 0.117233016, 0.027888954, -0.11743133, -0.10117133, 0.09182776, -0.15051128, -0.050599564, -0.07859627) * go_4(0.0, 1.0); + result += mat4(-0.07528831, 0.07377095, -0.012035711, 0.14641845, 0.19885515, -0.027350847, 0.15891771, -0.032186788, -0.18568198, 0.08516914, 0.0194725, 0.113679186, -0.07321446, -0.006814611, 0.024363022, -0.041401975) * go_4(1.0, -1.0); + result += mat4(0.03670741, -0.05319249, 0.051785614, -0.16903248, 0.17325033, 0.1144905, 0.20689905, -0.018909017, 0.05619651, -0.01838476, -0.18826057, 0.04974103, -0.048423767, -0.038877293, -0.07345023, 0.112472065) * go_4(1.0, 0.0); + result += mat4(0.010864774, 0.16668274, 0.068780385, 0.08308156, -0.034339216, 0.011294274, 0.14058082, -0.13272302, -0.049348705, -0.043334674, -0.055829912, -0.08535909, 0.0064629056, 0.023997806, -0.016735112, -0.011942476) * go_4(1.0, 1.0); + result += mat4(0.086142346, 0.2292178, -0.010219403, 0.0593476, -0.083634034, 0.12259535, -0.07327748, 0.024673425, -0.045079265, -0.02530776, 0.02248951, 0.008393773, 0.077611506, -0.11509985, 0.059175193, -0.042087976) * go_5(-1.0, -1.0); + result += mat4(0.04044624, 0.26444176, 0.01946967, 0.11972864, -0.17220415, 0.2603537, -0.14230311, -0.12086888, -0.0016741497, -0.15089966, 0.024180984, -0.15758742, 0.008668386, 0.031713035, 0.005303394, 0.12022453) * go_5(-1.0, 0.0); + result += mat4(-0.010897276, 0.11987153, -0.13000685, 0.19799784, 0.078611284, -0.03090101, -0.053625334, -0.004184015, 0.010114269, -0.116182365, 0.0914601, 0.018809833, -0.06429345, -0.038116198, 0.07993482, 0.1780351) * go_5(-1.0, 1.0); + result += mat4(0.31573543, 0.27823564, -0.044864718, -0.06798315, -0.028597904, -0.12924606, 0.011233994, 0.014880406, -0.2519176, -0.013868341, 0.079987615, 0.24702698, 0.18798052, 0.12141515, -0.07526576, -0.09506396) * go_5(0.0, -1.0); + result += mat4(-0.11081675, 0.8964764, 0.23946989, 0.2148404, 0.021539357, -0.28177392, 0.11052179, -0.20627522, -0.17099018, -0.18601313, -0.14564027, -0.009660313, -0.074333444, 0.16385522, 0.2510857, -0.18929671) * go_5(0.0, 0.0); + result += mat4(-0.099951014, 0.15615578, 0.0872118, 0.085872896, -0.050993633, -0.034744546, 0.11654366, 0.099523395, -0.026343498, -0.06509954, -0.036859628, -0.064830914, -0.04815342, -0.045304768, 0.09685562, 0.034938518) * go_5(0.0, 1.0); + result += mat4(0.38825148, 0.22435588, -0.038768243, 0.12891662, -0.020507365, 0.02433332, 0.10165365, -0.06321467, -0.27405342, 0.21058224, -0.056151077, 0.0893715, 0.2074139, 0.075082846, 0.05353601, 0.07657649) * go_5(1.0, -1.0); + result += mat4(0.1015844, 0.17984828, 0.09339243, 0.03871665, 0.0317625, 0.09201323, 0.025318913, -0.14218892, -0.0707927, -0.08178308, 0.027679168, -0.0876631, 0.10087377, 0.120364726, 0.04277295, -0.045731667) * go_5(1.0, 0.0); + result += mat4(0.028319372, -0.071746595, 0.06251333, -0.01576269, -0.010277642, 0.0071051405, 0.05409803, -0.031315167, -0.029280229, 0.062258944, 0.011841519, -0.035734437, -0.04741583, -0.03989569, 0.09797028, 0.015404385) * go_5(1.0, 1.0); + result += vec4(0.05188569, -0.059999112, -0.083425395, 0.082997724); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!SAVE conv2d_4_tf +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.24241452, -0.100528784, 0.084611595, -0.08080715, -0.080256924, 0.32367775, -0.08305123, 0.14469719, -0.12750244, 0.011761777, -0.032910027, -0.09281193, -0.08873951, -0.048546325, 0.074183516, 0.045072023) * go_0(-1.0, -1.0); + result += mat4(0.010939742, 0.098544136, 0.049292147, -0.22430013, -0.08015333, -0.031508088, -0.36106005, 0.12460627, 6.643176e-05, 0.018857447, 0.031020487, 0.12757821, -0.19238578, 0.30933842, -0.0045448663, 0.06171628) * go_0(-1.0, 0.0); + result += mat4(-0.108574405, 0.09914063, -0.041833777, -0.039154854, 0.23846108, -0.1906441, -0.039134666, -0.25513512, -0.0050513004, 0.01407854, -0.022056133, -0.1184478, 0.066072665, 0.0785561, -0.020216426, -0.18292157) * go_0(-1.0, 1.0); + result += mat4(0.12959838, 0.026440006, -0.0011596913, -0.31726244, -0.07676252, 0.027959237, 0.05895619, 0.12172022, -0.024327997, 0.21279183, 0.13060385, 0.13505119, -0.031498447, 0.16705142, 0.09434212, -0.023264466) * go_0(0.0, -1.0); + result += mat4(0.03360758, 0.31829336, 0.097372435, 0.066172324, -0.0873371, -0.07164736, -0.116273776, -0.15921108, -0.024977256, -0.11765985, -0.049553525, -0.032468632, -0.44380078, -0.08507502, 0.0327261, 0.019686563) * go_0(0.0, 0.0); + result += mat4(-0.25682133, 0.22201401, -0.18396896, -0.2420858, -0.09842399, 0.055608753, 0.25748596, 0.23556975, 0.026250778, 0.040285446, -0.07382262, 0.046680715, 0.18008539, -0.09701798, 0.19753018, -0.1137251) * go_0(0.0, 1.0); + result += mat4(0.11319255, -0.03126501, 0.07208281, 0.07807037, 0.004573684, -0.06784475, 0.1179848, 0.020895153, -0.06185304, 0.14311057, 0.046281323, 0.008271052, 0.026759004, 0.08469016, 0.028041905, -0.03963556) * go_0(1.0, -1.0); + result += mat4(-0.07507896, -0.11879082, -0.10246563, 0.035149485, -0.06570499, 0.1419997, 0.12152748, -0.12301691, 0.1762615, -0.23543337, -0.02367177, 0.09385406, -0.09039412, -0.009186869, 0.14061865, 0.034911305) * go_0(1.0, 0.0); + result += mat4(-0.090208784, 0.032296423, -0.027498133, -0.20286347, -0.23917037, 0.121174216, -0.17504627, -0.07068821, -0.023061762, 0.19171213, 0.08966504, 0.026315464, -0.01362642, -0.06647785, 0.013971816, 0.0012104128) * go_0(1.0, 1.0); + result += mat4(-0.161861, 0.014416416, -0.15422133, -0.038345456, -0.01926263, 0.05678733, -0.08679306, 0.12459709, 0.09292243, 0.086677715, 0.02556416, 0.00951428, 0.044389777, -0.098340936, -0.0022571671, -0.11948745) * go_1(-1.0, -1.0); + result += mat4(-0.03355483, 0.18284513, -0.40516412, -0.08310888, 0.072258465, -0.031982094, -0.08194034, -0.20847136, 0.053745344, 0.14951777, -0.09529998, -0.02916081, 0.3393585, -0.05936077, -0.052002147, -0.09378778) * go_1(-1.0, 0.0); + result += mat4(0.022535978, -0.013279629, -0.18767136, -0.1950165, -0.08899123, 0.06262896, -0.03814574, 0.06236617, 0.020036899, 0.11593139, -0.07205022, -0.07774045, -0.03650935, 0.123902336, -0.013660339, 0.0100182695) * go_1(-1.0, 1.0); + result += mat4(0.41049683, -0.13173875, 0.30123588, -0.114987805, -0.032382715, 0.010663058, -0.160782, 0.080483064, -0.15371633, -0.13527736, -0.007258104, 0.038761474, 0.13176364, 0.03947656, 0.19999593, 0.017623467) * go_1(0.0, -1.0); + result += mat4(-0.36690325, -0.11513609, -0.07545344, -0.48683265, -0.06626628, -0.1879703, -0.26255432, -0.27202544, 0.23177272, 0.22095495, -0.48685974, -0.15628079, 0.034569174, 0.11856782, 0.09302504, 0.058153495) * go_1(0.0, 0.0); + result += mat4(-0.11159616, 0.3598168, -0.040168233, -0.017913736, 0.05656028, 0.080021836, -0.0057910853, 0.09907919, -0.018118931, 0.104529314, -0.06623353, -0.05187142, 0.042655, -0.06037208, -0.13814276, -0.13877125) * go_1(0.0, 1.0); + result += mat4(0.07689434, -0.02957611, 0.059183944, 0.18732947, -0.012570976, -0.050425645, -0.04667911, -0.01714018, -0.1811952, -0.10611838, -0.06517356, 0.042284686, 0.14040054, -0.0044124937, 0.088569656, -0.09631004) * go_1(1.0, -1.0); + result += mat4(-0.041964065, -0.03648969, -0.06585285, -0.14997002, 0.14896095, 0.10991836, 0.035850056, -0.20629084, 0.20721185, 0.009481607, 0.059676703, 0.029152349, 0.048996776, 0.013181292, 0.012264018, 0.11202655) * go_1(1.0, 0.0); + result += mat4(-0.0025412547, 0.17166725, -0.029921697, -0.095596656, -0.01471627, -0.073273055, -0.07374642, 0.12182166, -0.032026254, 0.026899092, 0.010827608, 0.025221692, -0.023959257, 0.029916659, -0.082857594, -0.08647804) * go_1(1.0, 1.0); + result += mat4(0.0033231457, 0.025150223, -0.03726759, 0.00018312124, 0.07642118, 0.014045985, 0.12287268, -0.004507867, 0.020656586, -0.047215212, 0.06898793, -0.07950119, -0.012468573, -0.048340544, -0.018446337, 0.027170202) * go_2(-1.0, -1.0); + result += mat4(0.10788957, -0.12736209, -0.013289646, -0.022522524, 0.021718934, 0.020739023, -0.036677744, -0.020026676, 0.02461253, -0.092075236, 0.020083528, 0.082641564, 0.075953014, -0.27012607, 0.008537513, -0.014810857) * go_2(-1.0, 0.0); + result += mat4(-0.08193019, 0.12357896, -0.06672417, -0.0010150888, 0.04195979, 0.0720302, -0.04809725, 0.055789728, 0.029061116, 0.10846966, -0.04579666, -0.01037483, 0.12933455, -0.053652834, 0.016493477, -0.0990554) * go_2(-1.0, 1.0); + result += mat4(-0.09004879, -0.07116469, -0.06171522, 0.03694901, 0.13067593, 0.014719711, 0.120604895, -0.16505042, -0.13472416, 0.21027507, -0.022027668, 0.07578348, 0.14807276, -0.08320662, 0.0676947, 0.015872132) * go_2(0.0, -1.0); + result += mat4(-0.013147318, -0.13990307, 0.1424338, 0.115681306, -0.096111625, -0.044169232, 0.11619919, -0.12927286, 0.2216329, -0.3785249, 0.11881006, 0.05548364, 0.042547792, 0.01991183, 0.18072614, -0.12253586) * go_2(0.0, 0.0); + result += mat4(0.00507553, 0.06520682, -0.046696853, 0.09873781, -0.007926131, -0.046024855, 0.007177778, 0.067222506, 0.061948813, -0.049535032, -0.12687485, -0.07812312, 0.10864703, -0.005380493, -0.015591806, -0.12866366) * go_2(0.0, 1.0); + result += mat4(0.019687995, -0.08136337, -0.023699999, -0.0323895, 0.12587894, 0.08024744, 0.08909513, -0.0005001073, -0.11161824, -0.016753444, 0.044748716, -0.11397051, 0.06295226, -0.0628124, 0.009678967, -0.1027119) * go_2(1.0, -1.0); + result += mat4(-0.032145683, -0.008628118, -0.06487987, -0.010637064, -0.09447084, -0.20124236, -0.122117415, -0.12410895, 0.10209157, 0.068115994, 0.19661677, 0.043781675, 0.11948784, 0.15049894, 0.021160888, -0.21148479) * go_2(1.0, 0.0); + result += mat4(-0.0033451298, 0.062234465, -0.03359657, 0.077990666, -0.011020787, 0.050606657, -0.11445393, -0.057500027, -0.10895705, -0.05061424, -0.0075792223, 0.0826572, 0.03529453, -0.04615097, -0.049622457, -0.02728514) * go_2(1.0, 1.0); + result += mat4(-0.047170192, -0.063528895, 0.02639375, 0.06133726, 0.07981049, 0.034422956, -0.13669443, -0.027895411, -0.010747354, -0.0295917, 0.023415035, 0.104463466, -0.011863274, 0.12199949, -0.056722328, -0.0074905828) * go_3(-1.0, -1.0); + result += mat4(-0.16876027, 0.042861532, -0.042729948, 0.13059488, -0.009925716, -0.16374534, 0.1027359, -0.0023175783, -0.08118241, -0.18233776, 0.003640569, -0.04086481, -0.07530675, 0.046155393, -0.09668895, -0.040498324) * go_3(-1.0, 0.0); + result += mat4(0.0208792, -0.041296285, 0.06495765, -0.014825306, -0.09760564, 0.143414, -0.013952, 0.012976426, 0.07446454, -0.069237985, -0.002300383, 0.039793592, 0.10446527, -0.15101886, 0.041385327, 0.045380514) * go_3(-1.0, 1.0); + result += mat4(-0.12573302, 0.26293075, 0.021182856, 0.02212639, -0.00491492, -0.09508161, -0.17054123, 0.0334656, -0.14494689, -0.13223654, -0.16647294, -0.20494382, 0.035838082, -0.02903287, -0.07826274, 0.10065476) * go_3(0.0, -1.0); + result += mat4(-0.19727297, -0.2761233, 0.052405518, 0.060891774, 0.35287574, -0.112983346, -0.1780347, 0.29627487, 0.15366785, -0.0058370745, -0.12529264, 0.290549, -0.0019844156, 0.10950049, -0.11683605, -0.31868842) * go_3(0.0, 0.0); + result += mat4(-0.065610245, 0.11033488, 0.0847139, 0.08285523, 0.12131332, 0.03140868, 0.019243333, -0.023314001, 0.12372892, -0.048462555, 0.07601431, -0.21340725, 0.094367005, -0.17915425, -0.16658746, -0.113485895) * go_3(0.0, 1.0); + result += mat4(0.033004273, -0.070222795, -0.22679015, -0.11107499, -0.02167688, 0.039476246, 0.023125345, -0.06782998, 0.039133113, -0.093893945, -0.0107462, 0.013814576, -0.050011426, 0.04277595, -0.011378756, 0.0350182) * go_3(1.0, -1.0); + result += mat4(-0.086395636, 0.2250359, 0.0071665626, -0.14477696, 0.08346748, -0.104350545, 0.066446565, 0.07878673, -0.09608493, 0.034221467, 0.056161933, 0.1631777, -0.04652218, -0.16019695, -0.14100033, 0.0012826526) * go_3(1.0, 0.0); + result += mat4(0.010050049, 0.069934174, -0.019675957, -0.08841736, -0.084199436, 0.038151644, 0.08524713, -0.010469705, 0.08203982, -0.16461739, 0.0085432455, -0.018949067, -0.03917674, -0.06079645, -0.08174396, -0.06611958) * go_3(1.0, 1.0); + result += mat4(-0.11630934, 0.06403295, -0.015545311, 0.04184985, -0.010742663, 0.09900252, 0.16177145, -0.08190314, 0.026068239, -0.11228535, 0.07040219, 0.026017435, 0.027691854, 0.05901074, 0.063722596, 0.061167255) * go_4(-1.0, -1.0); + result += mat4(-0.079639085, -0.073422454, 0.022079231, 0.099202864, -0.0395308, -0.22311744, 0.2558813, 0.1212435, 0.015039178, 0.22544971, 0.18809341, 0.023819689, 0.031049373, 0.14752339, 0.021717936, -0.07462568) * go_4(-1.0, 0.0); + result += mat4(-0.04292503, -0.049489103, 0.005655617, -0.072831966, -0.13834368, 0.096430235, 0.11431599, 0.034313705, -0.081960544, -0.05398357, 0.17004605, 0.018943321, -0.057367492, 0.109905675, 0.03622088, 0.10881282) * go_4(-1.0, 1.0); + result += mat4(-0.10108816, 0.022445837, -0.16971505, 0.15245505, -0.049302544, -0.038824387, 0.1386521, -0.02240345, 0.08463246, 0.03382031, 0.029146284, -0.022780763, -0.10378809, 0.12192778, -0.10930472, -0.13424326) * go_4(0.0, -1.0); + result += mat4(0.011400255, 0.1136756, -0.12854446, -0.02158332, 0.041146938, 0.23310283, 0.20242867, 0.13700607, 0.06842123, -0.2627286, 0.15257023, 0.109742284, -0.06880218, -0.12513116, 0.36323714, -0.08309059) * go_4(0.0, 0.0); + result += mat4(-0.06563699, -0.19518705, -0.16528322, 0.0077345036, 0.07426379, 0.01273623, -0.02538561, -0.13874102, -0.17633066, -0.011773621, 0.11594737, 0.036010545, -0.100552164, 0.17657241, 0.008071872, 0.15612179) * go_4(0.0, 1.0); + result += mat4(-0.092973836, 0.082076035, -0.10813946, 0.020986248, -0.0980453, 0.088257805, 0.12294689, 0.06353175, -0.0555235, -0.07203055, 0.0012230835, 0.031788144, 0.09232316, 0.07080032, -0.13878204, 0.1324983) * go_4(1.0, -1.0); + result += mat4(-0.09405708, 0.08027049, -0.029044298, 0.004413014, -0.031831603, -0.10639057, 0.22791572, 0.29128549, -0.019287571, -0.07344137, -0.06703681, 0.06482271, -0.16929443, 0.18714571, 0.0076980256, -0.3553443) * go_4(1.0, 0.0); + result += mat4(-0.08177233, -0.03985184, -0.05898491, -0.084218055, 0.13517176, -0.064535744, 0.023212295, -0.104104936, 0.06286191, -0.0183956, -0.014526215, 0.022721317, 0.13015802, -0.012955069, 0.04760935, -0.024741875) * go_4(1.0, 1.0); + result += mat4(-0.11811978, -0.258122, -0.0524529, 0.013679023, 0.3381383, -0.15303107, 0.15624695, -0.041717052, -0.09521123, -0.02555037, -0.055241242, 0.1292656, -0.053962484, 0.061827328, 0.007066458, -0.030455371) * go_5(-1.0, -1.0); + result += mat4(0.011406645, 0.03625852, 0.17662852, 0.22849263, 0.008301044, -0.06586813, 0.06535347, -0.1422378, -0.21197955, 0.09594126, -0.019065345, 0.07993183, -0.18870543, -0.100329205, 0.106410205, 0.19904357) * go_5(-1.0, 0.0); + result += mat4(-0.010716086, 0.019676654, 0.14609855, 0.023858106, -0.09101523, 0.04618942, 0.019114424, 0.063025944, 0.017177893, -0.17157322, 0.041316323, 0.008979556, -0.012944043, 0.00247818, 0.06370907, 0.21294525) * go_5(-1.0, 1.0); + result += mat4(-0.35886058, -0.21411636, -0.102139756, -0.091692075, 0.06896005, 0.031774938, -0.11289269, 0.018020328, -0.07621171, -0.20134668, -0.03170399, -0.15741387, 0.21397352, 0.020581603, 0.058037966, -0.060088705) * go_5(0.0, -1.0); + result += mat4(0.08237236, -0.40777692, -0.30334964, 0.17960687, 0.15861799, 0.38422614, 0.07123272, -0.14411296, -0.18338335, 0.20555314, -0.24229437, 0.11125418, -0.25821567, 0.21951115, -0.0689347, 0.30991623) * go_5(0.0, 0.0); + result += mat4(-0.1809837, 0.2020823, 0.18093042, -0.28097653, 0.04832372, 0.05197796, 0.0411827, -0.038122583, -0.12748396, 0.2147528, 0.03581702, -0.06162546, 0.35705167, -0.17073934, 0.05283743, -0.1553281) * go_5(0.0, 1.0); + result += mat4(0.049231995, 0.104612015, 0.13789916, 0.11476952, -0.08613189, 0.12533712, -0.11062187, -0.06180441, 0.0076576895, -0.07606035, -0.13825357, 0.05541409, -0.11110464, 0.027096856, -0.059329435, 0.07901976) * go_5(1.0, -1.0); + result += mat4(-0.07326118, -0.05398769, 0.3154168, 0.25846845, 0.20782405, 0.157769, -0.02310168, 0.017850745, -0.08339611, 0.14059362, -0.12403927, 0.023322403, -0.19284059, 0.0866216, -0.06948787, 0.019149296) * go_5(1.0, 0.0); + result += mat4(-0.035457414, -0.22270168, 0.16388698, -0.103444144, -0.18057363, 0.2918497, 0.10467282, -0.0905526, 0.13966475, -0.098633334, -0.01834713, -0.035242856, -0.05306878, 0.02205429, 0.07744791, 0.10596783) * go_5(1.0, 1.0); + result += vec4(0.059486926, -0.04431698, 0.13264082, 0.054302923); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!SAVE conv2d_4_tf1 +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.19755663, 0.0316557, -0.026239445, -0.02093631, 0.34920403, 0.089713775, 0.15791516, -0.07875456, -0.10947356, 0.0650924, -0.018307874, 0.10422799, -0.06709603, -0.11965746, 0.02718723, 0.011129028) * go_0(-1.0, -1.0); + result += mat4(-0.11617485, -0.031335115, 0.19744423, 0.10993791, 0.019927517, 0.3689939, -0.09384358, 0.15150148, -0.08009817, 0.0921147, -0.010306458, 0.10003431, -0.041360963, 0.29798675, -0.1715826, 0.19668113) * go_0(-1.0, 0.0); + result += mat4(-0.053691022, 0.18052101, -0.046081945, 0.19882767, 0.22020999, 0.34823263, 0.106327124, -0.022915896, 0.01570857, -0.007507703, -0.012257527, 0.036691625, 0.086023636, 0.050882597, -0.05192003, -0.05078049) * go_0(-1.0, 1.0); + result += mat4(-0.07258528, -0.19264953, 0.0077820197, 0.15891895, -0.02311384, -0.008074125, 0.3110597, 0.049998533, 0.02290246, 0.03217235, 0.15498875, -0.03103216, 0.24216467, 0.13539337, -0.051235467, -0.06826195) * go_0(0.0, -1.0); + result += mat4(-0.110576056, -0.3145707, -0.13334544, -0.005337209, -0.038422424, 0.13821185, -0.15107699, 0.14623423, -0.08636853, 0.107583255, 0.17422204, 0.18080167, 0.050008878, -0.12324271, 0.2247043, -0.27508256) * go_0(0.0, 0.0); + result += mat4(-0.05137364, 0.16223, -0.03729107, 0.31266937, -0.17589277, 0.21317652, -0.33287808, 0.21178558, -0.045284536, 0.07560065, 0.05269868, 0.14920329, 0.16866954, -0.1268599, 0.20590475, -0.011014125) * go_0(0.0, 1.0); + result += mat4(0.034846842, 0.2524156, 0.03403225, -0.11323429, -0.14184852, 0.017702477, -0.02463918, 0.10044771, 0.19502714, -0.0025532132, 0.053394504, 0.26317486, -0.027531786, 0.17660192, -0.0288518, 0.10305002) * go_0(1.0, -1.0); + result += mat4(0.0015593453, 0.080029555, -0.1503097, 0.18303742, -0.20101264, -0.21629538, -0.22573662, 0.083415814, -0.17538182, -0.14721964, 0.14281827, 0.059842914, 0.011950429, 0.24764334, -0.1454325, -0.30143398) * go_0(1.0, 0.0); + result += mat4(-0.035138246, -0.21716589, -0.16935606, -0.10491116, -0.2616234, -0.65694314, -0.055407632, -0.37251663, -0.15059815, -0.070271164, 0.041637342, 0.012102054, -0.1284768, -0.045593116, 0.053494472, -0.046751507) * go_0(1.0, 1.0); + result += mat4(-0.12646478, -0.119142495, 0.0041090506, 0.16849291, 0.00027152186, 0.0060362555, -0.055415455, -0.010880626, -0.017593162, -0.012767872, 0.017386466, -0.07673884, -0.12813187, -0.06382475, -0.017622227, -0.030992843) * go_1(-1.0, -1.0); + result += mat4(0.2330042, 0.23233213, -0.064918295, -0.028516663, 0.0043700417, -0.009412538, 0.020097204, 0.078027494, 0.22039704, 0.09681993, -0.1377131, 0.04463947, 0.053339735, -0.015651379, 0.013501266, 0.108578116) * go_1(-1.0, 0.0); + result += mat4(0.23399013, 0.055069428, 0.0113888625, 0.0061372546, -0.07836111, -0.034460228, 0.0017155824, -0.088409096, 0.03733338, -0.17709526, -0.09718914, -0.25720972, 0.0175349, 0.15622771, -0.1188024, 0.018442187) * go_1(-1.0, 1.0); + result += mat4(0.06318714, 0.061475955, 0.060729396, -0.2142427, -0.10224866, 0.034940694, 0.19492944, 0.018143132, 0.07064079, -0.22845416, 0.010652238, -0.0011233883, 0.029130183, 0.17482844, -0.009811812, 0.019755777) * go_1(0.0, -1.0); + result += mat4(-0.21866481, 0.21452273, -0.5259575, -0.039219536, 0.15874244, -0.057900973, 0.10559354, 0.23824032, 0.108966984, -0.098509155, 0.007014109, -0.19821534, -0.05215934, 0.10909223, 0.100663096, -0.06883611) * go_1(0.0, 0.0); + result += mat4(-0.12868437, 0.006826078, -0.21385023, 0.069496915, -0.06559356, 0.090547845, -0.07395987, -0.06983689, 0.06552238, -0.12867814, -0.08192026, -0.33435416, -0.051290937, -0.02937074, 0.090245195, -0.026612237) * go_1(0.0, 1.0); + result += mat4(0.23456517, 0.27903032, -0.039212193, -0.012552891, -0.19781788, -0.035103757, -0.009250316, 0.10727226, 0.19742231, -0.079642996, -0.2613758, -0.15201536, 0.102801695, -0.0107969325, 0.16421579, 0.12108303) * go_1(1.0, -1.0); + result += mat4(-0.081254065, -0.088084355, -0.091935016, 0.24067412, -0.020433908, -0.01316852, -0.06662833, -0.2533817, 0.14042647, -0.02623474, 0.05427906, 0.041403648, -0.13581693, -0.08902222, -0.15670143, 0.013441458) * go_1(1.0, 0.0); + result += mat4(-0.015764505, -0.113010205, -0.15281607, -0.077271774, 0.0904112, 0.09933737, 0.067184925, 0.2099568, -0.101301536, 0.06434189, -0.0758522, -0.12554163, 0.06781772, 0.007166253, -0.085833766, 0.06006488) * go_1(1.0, 1.0); + result += mat4(-0.0008048365, 0.0912284, -0.0055085155, 0.023269827, -0.022154478, 0.08539601, 0.035023473, -0.0037330675, 0.11452262, 0.047892746, 0.008300871, -0.01195116, 0.047538597, -0.10830887, 0.05510819, -0.08836116) * go_2(-1.0, -1.0); + result += mat4(-0.038602248, 0.023333155, 0.017770592, -0.1674776, 0.06629619, 0.083431914, 0.026809458, 0.08592056, 0.14014852, -0.14666164, 0.019641537, -0.0573306, -0.020499265, 0.007868977, -0.04190651, 0.020347582) * go_2(-1.0, 0.0); + result += mat4(-0.1610257, 0.21653429, 0.10658098, 0.15106596, 0.029077698, 0.16445225, 0.15524676, 0.09390834, 0.096011646, -0.032807898, -0.09418951, -0.0093525015, 0.06159448, -0.009395444, -0.10014662, -0.030301452) * go_2(-1.0, 1.0); + result += mat4(-0.022683617, -0.23651919, -0.031805664, 0.023116864, -0.07386424, 0.20458803, 0.08983447, -0.08244156, 0.08310062, 0.14591648, 0.17395934, 0.0062589166, 0.22174175, 0.14258352, -0.028493408, -0.115363955) * go_2(0.0, -1.0); + result += mat4(-0.08310355, -0.17647965, -0.19287375, 0.10848365, 0.120546475, -0.1464013, -0.038455628, 0.10530652, 0.49538115, 0.023421936, 0.3173384, 0.058539134, -0.27795956, 0.08117526, 0.033342082, -0.12135774) * go_2(0.0, 0.0); + result += mat4(-0.08346938, -0.034818605, 0.06265251, 0.09470142, -0.014027538, 0.013816392, -0.047068585, -0.007864913, -0.073640525, -0.1490151, -0.09421087, -0.07231172, 0.21453248, -0.053285554, 0.09661593, -0.07566676) * go_2(0.0, 1.0); + result += mat4(-0.08119892, -0.011698777, -0.0014542739, -0.0031197777, -0.093343884, 0.07836053, 0.14061041, 0.032417424, 0.032266736, -0.039402176, 0.0857551, -0.14606103, -0.106497854, -0.021479463, -0.036599685, 0.04007321) * go_2(1.0, -1.0); + result += mat4(0.011121453, -0.020399215, 0.016996361, 0.048273075, -0.07153608, -0.044302233, -0.0035937368, 0.16915803, -0.014105862, 0.1021961, 0.15072922, 0.015028268, -0.009132996, -0.06612329, -0.034465823, -0.142786) * go_2(1.0, 0.0); + result += mat4(-0.020469163, -0.117958315, 0.0012601769, 0.007204419, 0.009460007, -0.021850191, -0.014184652, 0.06922846, -0.1432164, -0.02172806, -0.0671699, -0.039830353, 0.011462847, -0.021253375, 0.084333375, 0.026236529) * go_2(1.0, 1.0); + result += mat4(-0.32116294, 0.022814747, 0.053154226, 0.08573102, 0.24082868, -0.11634813, -0.12103037, -0.072189964, 0.07916793, 0.005124598, -0.038430523, -0.020428248, -0.074155636, 0.0026447256, -0.12052403, -0.0008143328) * go_3(-1.0, -1.0); + result += mat4(0.15720156, 0.12637223, -0.014097743, -0.1463337, -0.11050782, -0.1272711, -0.14383449, -0.18176568, 0.016586874, -0.07671649, 0.061175086, -0.011885735, 0.16967547, -0.19338857, 0.033413097, -0.15828142) * go_3(-1.0, 0.0); + result += mat4(-0.04272862, 0.08448119, 0.03642693, 0.013086318, -0.18102542, -0.13177295, -0.12725672, 0.033150475, -0.022273265, -0.1913372, 0.12102487, -0.06349284, 0.02544458, -0.17942795, 0.13517797, -0.03200014) * go_3(-1.0, 1.0); + result += mat4(0.037924215, 0.18611626, -0.17951478, 0.13935459, 0.27325365, -0.083892785, -0.022289941, 0.14084025, -0.106356315, 0.046254314, -0.17703468, 0.116976924, -0.08896167, -0.0025314027, 0.010913456, -0.070031345) * go_3(0.0, -1.0); + result += mat4(-0.28527796, 0.19547825, -0.30854046, -0.033967514, 0.060653128, -0.019419098, -0.0060284995, -0.0987247, 0.07500941, -0.023585685, -0.03395071, -0.17988594, 0.21953014, 0.4072299, -0.031897858, -0.18284276) * go_3(0.0, 0.0); + result += mat4(0.06912873, -0.05407648, 0.008376532, 0.020522904, -0.026434029, 0.09916825, 0.030747496, 0.022514053, 0.25722584, 0.115966186, 0.08143656, 0.015693888, 0.1200375, 0.11970545, 0.19118182, 0.05830196) * go_3(0.0, 1.0); + result += mat4(-0.03685362, -0.12470895, -0.0010968394, 0.021243107, 0.054362122, 0.00057743577, -0.016307356, -0.124212846, -0.1504553, 0.18175974, -0.14346407, -0.1288348, 0.004379253, -0.09421467, 0.07276572, 0.01464248) * go_3(1.0, -1.0); + result += mat4(-0.0058593387, -0.009850785, 0.08837556, -0.13175677, -0.02959981, 0.22543302, 0.08877934, 0.10847382, 0.105746165, 0.07286193, -0.1591772, -0.07605538, 0.16931008, 0.12505956, -0.02318999, 0.3341336) * go_3(1.0, 0.0); + result += mat4(0.07958676, 0.019705648, 0.17511873, -0.027326066, -0.049889054, -0.08413224, -0.0232099, -0.16867599, 0.010381808, -0.015460935, 0.04096288, -0.013190291, 0.12450602, 0.065210946, 0.015979856, 0.15937561) * go_3(1.0, 1.0); + result += mat4(-0.10023914, -0.05083627, 0.09159179, 0.104829505, 0.08269442, 0.055139758, -0.060481716, -0.040459175, 0.16207811, -0.1342935, 0.0010139308, -0.13080461, 0.04637847, -0.111120075, -0.017309861, 0.021282183) * go_4(-1.0, -1.0); + result += mat4(-0.0018206073, -0.13991879, 0.08375063, -0.003037848, -0.17680502, -0.20550339, 0.16136415, -0.06376335, -0.0617298, 0.15906328, -0.057181396, -0.028893461, 0.04224926, -0.0398277, -0.19131757, -0.16473022) * go_4(-1.0, 0.0); + result += mat4(0.093972325, 0.0698625, 0.07116559, 0.014768529, -0.097781256, 0.15581349, 0.03573931, 0.22741152, -0.091118366, 0.028577322, -0.026862804, 0.0152023, -0.23760842, 0.14840253, -0.14937884, 0.042642627) * go_4(-1.0, 1.0); + result += mat4(-0.2281663, 0.22290257, 0.017739927, 0.12094125, 0.03124976, -0.00534154, -0.24323007, -0.088304035, 0.2465856, 0.16869143, -0.06888532, -0.09435835, 0.049901593, 0.12926158, 0.022874845, -0.02944982) * go_4(0.0, -1.0); + result += mat4(-0.066828735, -0.04649895, 0.28869498, -0.09773703, -0.056571167, 0.48939937, -0.56230384, -0.034113284, -0.13833, 0.039226096, -0.12087815, 0.032742836, 0.040849674, -0.017160047, -0.11052594, 0.246754) * go_4(0.0, 0.0); + result += mat4(0.04952853, -0.090852216, 0.034561165, 0.038246352, -0.19297872, 0.054810636, 0.019495303, 0.2522964, -0.19981322, -0.07192788, -0.12085502, -0.028823836, -0.19763254, -0.20398128, -0.14728573, -0.11571746) * go_4(0.0, 1.0); + result += mat4(-0.22692326, -0.050723083, 0.052394703, 0.061108653, 0.086359546, 0.25432214, -0.1922104, 0.07316734, -0.12277421, -0.0070557455, 0.021929247, 0.09811275, -0.10974717, -0.1871087, 0.1836082, -0.101442546) * go_4(1.0, -1.0); + result += mat4(0.12952654, 0.126504, -0.07590766, -0.022820955, 0.40705776, 0.6374981, -0.5181212, 0.38906044, -0.10114032, -0.24955663, 0.30309865, -0.13581154, 0.048173904, -0.061500076, 0.014717425, -0.13521792) * go_4(1.0, 0.0); + result += mat4(0.06257947, -0.06779901, 0.043823577, 0.13284041, 0.020754592, 0.042710133, -0.1584648, 0.049175818, 0.022709293, -0.1911205, 0.030108612, -0.15437542, 0.05411346, 0.12631242, -0.017832479, 0.0029719612) * go_4(1.0, 1.0); + result += mat4(-0.30879283, -0.13608143, 0.051477402, -0.0146274315, -0.17261262, 0.014548273, 0.013784603, -0.082064405, -0.054273766, 0.050572615, -0.08670705, 0.048421264, 0.0028941107, -0.049762383, -0.08087372, 0.03134621) * go_5(-1.0, -1.0); + result += mat4(-0.12345668, -0.0679132, -0.06099901, -0.09764733, -0.1938452, 0.007824728, 0.21290497, 0.07214579, -0.11728738, -0.01631362, 0.18290576, 0.11172875, 0.0070077768, -0.31685776, 0.20877774, -0.068262406) * go_5(-1.0, 0.0); + result += mat4(0.023581397, 0.21787596, 0.24790402, 0.1827894, -0.12552118, -0.15526615, -0.049397513, -0.09088568, 0.02361005, -0.1624447, 0.10663829, -0.08762141, -0.089876376, -0.23469001, -0.22833428, -0.08547564) * go_5(-1.0, 1.0); + result += mat4(-0.20836076, -0.38739493, -0.08088587, 0.056517366, -0.19016425, 0.18150248, -0.20127869, -0.0034698115, -0.12240914, -0.16373073, -0.23683731, 0.08775501, -0.115361534, 0.058962952, 0.03591275, -0.12650393) * go_5(0.0, -1.0); + result += mat4(-0.12940276, -0.20929182, 0.1972825, -0.09083828, -0.062463745, 0.18738677, -0.12602556, -0.102121696, -0.71687216, 0.005637694, -0.51085055, -0.182672, 0.21876547, 0.032868937, 0.12119801, -0.034960978) * go_5(0.0, 0.0); + result += mat4(-0.2834514, 0.5645042, -0.40262035, -0.050943233, -0.06192488, 0.27314487, 0.2216658, 0.241159, 0.19821955, 0.07347663, 0.12771457, 0.09401408, 0.0923556, 0.037260618, 0.14539954, 0.20723365) * go_5(0.0, 1.0); + result += mat4(0.17254238, 0.17086907, 0.1689637, -0.12215918, 0.019369515, -0.101492874, -0.0068981387, -0.052212972, -0.09072614, 0.06295019, -0.03507004, 0.020812936, 0.049310055, 0.041793864, -0.1676009, -0.020666601) * go_5(1.0, -1.0); + result += mat4(0.12045707, 0.34878096, -0.42983723, 0.00031615017, -0.1935727, 0.04406262, 0.14843978, -0.09603145, 0.27862465, 0.1575749, -0.19306137, 0.2065606, -0.09507491, -0.008450778, -0.18955202, 0.099690795) * go_5(1.0, 0.0); + result += mat4(0.039927684, 0.074257486, 0.034648035, -0.05261268, -0.09017409, 0.20786566, 0.06129257, 0.1432679, 0.13264295, -0.08895135, 0.09662802, -0.06903006, 0.12193372, 0.059526477, 0.059548043, -0.03190614) * go_5(1.0, 1.0); + result += vec4(0.045264397, 0.05760936, 0.027744984, -0.03773891); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!SAVE conv2d_4_tf2 +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_3_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.07583615, -0.048960842, 0.013508587, 0.2201662, 0.0375764, 0.27756596, -0.33754793, -0.38809955, -0.21281771, 0.15472671, 0.02073204, -0.050901294, 0.090472914, -0.047557913, -0.017766517, -0.20457055) * go_0(-1.0, -1.0); + result += mat4(0.17282517, -0.18378912, 0.13851488, 0.021213405, -0.36854526, 0.37494987, -0.22338714, -0.17190737, -0.13889556, 0.16321859, 0.009137597, -0.16061524, 0.10725205, 0.047671694, 0.00692477, -0.20811509) * go_0(-1.0, 0.0); + result += mat4(-0.15370452, 0.03701021, -0.055506952, -0.07852536, 0.09814061, 0.15283902, -0.048923336, 0.10439438, 0.05341204, -0.04028067, -0.050656542, 0.08114064, 0.1721227, -0.064678125, -0.07158856, 0.04002012) * go_0(-1.0, 1.0); + result += mat4(-0.02824745, 0.29039058, 0.25719696, 0.33553144, 0.07964746, -0.08963374, -0.26119536, -0.1704102, 0.114965275, 0.0677081, 0.027690304, 0.0298201, 0.10237492, -0.18169363, -0.12240578, -0.067747764) * go_0(0.0, -1.0); + result += mat4(-0.05635207, -0.013902026, 0.15410937, -0.07788553, 0.09099828, -0.018942324, 0.03290936, -0.0029388326, 0.018940244, 0.011952412, 0.011450913, -0.07999776, -0.21413402, 0.39397267, -0.09774473, -0.2009581) * go_0(0.0, 0.0); + result += mat4(0.10084101, -0.086656086, 0.13495307, -0.028954845, 0.05104348, -0.046465315, -0.037925158, 0.10368827, -0.14589089, 0.12413491, -0.007988239, -0.02158783, 0.10073373, -0.0029589783, -0.3387392, 0.19062865) * go_0(0.0, 1.0); + result += mat4(0.076070085, 0.12063033, -0.07693161, 0.13905032, -0.07355619, -0.23172334, 0.05373458, -0.06742532, 0.01403963, -0.021842232, 0.101363756, -0.0811199, 0.088289686, -0.10678228, -0.08785652, -0.08524422) * go_0(1.0, -1.0); + result += mat4(-0.063252464, 0.122554146, -0.08701854, -0.013642947, 0.25842702, -0.113629796, 0.18287642, 0.2543394, -0.008996402, 0.14150178, -0.018443773, -0.037387278, 0.01677981, 0.09373098, -0.03942739, 0.020894075) * go_0(1.0, 0.0); + result += mat4(0.06455971, -0.060106214, -0.07037024, -0.051795334, 0.033154495, -0.25538102, 0.20138124, -0.15417135, -0.11027817, 0.027104143, 0.075549774, 0.021436706, 0.04445013, 0.12956707, -0.13284694, 0.03516967) * go_0(1.0, 1.0); + result += mat4(0.009175639, 0.25271195, -0.0853253, -0.036355734, 0.10765164, 0.0524366, -0.038031954, -0.012370962, 0.038269047, -0.0074043465, -0.055629972, -0.028956192, -0.10555365, 0.053293, 0.04761788, 0.19511466) * go_1(-1.0, -1.0); + result += mat4(-0.026226144, 0.45355338, -0.2787842, 0.40786192, 0.0040905946, -0.01837184, -0.009942586, 0.2053553, -0.0030270698, 0.069373004, 0.07934941, -0.03093551, 0.16749686, 0.050042853, -0.11040056, -0.073083684) * go_1(-1.0, 0.0); + result += mat4(0.05996956, -0.016178278, 0.039540496, -0.027844483, -0.06289786, -0.046466228, 0.19139567, -0.073992915, 0.06776269, -0.019077418, 0.14830731, 0.095275655, -0.14347468, 0.1072097, 0.005600533, 0.04901071) * go_1(-1.0, 1.0); + result += mat4(-0.16952017, -0.032340128, 0.19480783, 0.2601324, 0.29126725, -0.0715444, -0.009702548, 0.0042752293, 0.024718119, -0.08628732, -0.064047016, -0.116904415, -0.06644218, 0.09953292, -0.033268385, 0.17125584) * go_1(0.0, -1.0); + result += mat4(0.3325542, -0.03779118, 0.33856392, 0.3304049, 0.104141004, -0.053430308, 0.31669936, 0.0130112395, 0.09034627, -0.02017166, -0.025744867, 0.026532227, 0.0200407, -0.08722534, -0.30203685, -0.14907038) * go_1(0.0, 0.0); + result += mat4(-0.01891194, 0.093512826, 0.026973069, -0.24845296, -0.072510146, 0.025618952, 0.19024812, -0.07557172, -0.027113652, -0.03626637, 0.2683275, -0.10471766, -0.008031393, 0.13384898, 0.00395866, 0.020902868) * go_1(0.0, 1.0); + result += mat4(-0.041550912, 0.08089579, 0.026400283, 0.017546514, 0.10747152, 0.07966492, 0.02695042, 0.014157312, -0.13807489, -0.12708282, -0.10057461, 0.014437817, 0.26250824, -0.16103023, -0.13342577, 0.05060978) * go_1(1.0, -1.0); + result += mat4(0.06584065, -0.035929736, 0.0042849337, -0.10942049, -0.16394515, 0.08045988, 0.13154416, -0.0028894013, 0.0023928252, 0.04469802, -0.10695226, 0.05558777, -0.25354344, 0.14010456, 0.05542217, -0.114946045) * go_1(1.0, 0.0); + result += mat4(0.050993685, 0.13932824, 0.0033797733, -0.035310924, 0.022385782, 0.017365059, -0.17256701, -0.07757648, -0.0912558, 0.01864556, 0.13062927, -0.07577928, -0.07418382, 0.19597183, 0.03150399, 0.023021322) * go_1(1.0, 1.0); + result += mat4(0.052010637, 0.050168213, -0.07215345, 0.05805453, -0.0041914587, 0.022057746, 0.12245675, -0.014609538, 0.05546434, 0.03802747, -0.10866313, 0.00012593597, 0.025002997, 0.03302225, -0.10627746, -0.022926291) * go_2(-1.0, -1.0); + result += mat4(-0.17316228, 0.0423441, 0.038386445, 0.15334567, -0.11682614, 0.04387397, -0.034430787, 0.05456901, -0.10287161, 0.09251676, -0.15516847, 0.01151086, 0.062166303, -0.06404339, -0.1341287, -0.11250874) * go_2(-1.0, 0.0); + result += mat4(0.0041548237, -0.05339408, 0.12976702, -0.091956094, -0.07106556, 0.1537892, -0.14351088, 0.049248494, 0.0017415709, -0.03980619, 0.022205863, 0.07874843, 0.0486586, 0.07449563, -0.07935637, 0.035376832) * go_2(-1.0, 1.0); + result += mat4(-0.032703526, 0.049651176, -0.14031135, -0.03314136, -0.05597869, 0.10001647, 0.134734, -0.050313897, 0.096650064, 0.06294751, -0.064859584, -0.1544743, 0.0041159303, -0.21177946, -0.08641454, 0.20853557) * go_2(0.0, -1.0); + result += mat4(-0.26784652, 0.045316227, 0.24048522, 0.0205891, -0.0044153836, -0.00084845145, -0.13039418, 0.008880892, -0.022925006, 0.25047663, -0.10610026, 0.26862314, 0.1495082, -0.30531225, 0.17336509, -0.095686845) * go_2(0.0, 0.0); + result += mat4(0.16892208, -0.04892237, -0.12343488, 0.076279886, -0.088687725, -0.031417985, 0.036753975, -0.02488052, -0.020715091, 0.037822228, 0.017967682, 0.09978998, 0.10307546, 0.021783398, -0.03838329, 0.16863413) * go_2(0.0, 1.0); + result += mat4(0.0030781403, 0.046299078, 0.021687783, 0.0070031965, 0.06806685, 0.08483792, -0.078655794, 0.046040457, 0.037727088, -0.07263033, -0.036312647, 0.055449635, -0.038422115, 0.0009298235, 0.024799686, 0.05429828) * go_2(1.0, -1.0); + result += mat4(-0.018482856, -0.035400447, 0.06548978, -0.116905235, 0.103153236, -0.020226527, -0.04428763, -0.0505854, 0.13939099, 0.06169983, 0.07293202, 0.1059522, 0.05596004, 0.022870086, 0.06962978, -0.024740675) * go_2(1.0, 0.0); + result += mat4(0.0098381555, -0.110539526, -0.0029312337, 0.051618274, -0.040557995, -0.11799748, -0.09392277, -0.04956917, -0.05159161, 0.030810604, 0.04230067, -0.04746804, 0.080403574, 0.012429489, -0.029210133, 0.05341304) * go_2(1.0, 1.0); + result += mat4(0.06609526, -0.18755382, -0.03701953, -0.1743458, 0.069703676, 0.0006303799, -0.15638213, 0.10318732, 0.08893642, -0.1195937, -0.055782318, -0.0185906, 0.012925918, 0.123628914, 0.04870321, 0.116520494) * go_3(-1.0, -1.0); + result += mat4(0.04936669, -0.14093854, 0.0012639028, 0.10475395, -0.096697986, 0.019948844, 0.05699649, 0.09687703, 0.016553551, -0.17477356, 0.0358826, 0.003379147, 0.0027950767, 0.061992507, -0.038799245, -0.029348955) * go_3(-1.0, 0.0); + result += mat4(-0.0073947236, -0.016064813, 0.17795284, -0.081998095, -0.07971293, -0.021884581, 0.07818178, -0.1183752, 0.041862104, -0.049028065, 0.06426883, 0.047562487, 0.03306496, 0.024669351, -0.102706164, 0.06250834) * go_3(-1.0, 1.0); + result += mat4(0.03841001, -0.121903636, 0.009876164, -0.20964918, 0.16115156, -0.03041022, 0.024465065, 0.06145637, -0.096132785, 0.073770344, 0.030677194, 0.012882628, 0.1854335, 0.051307946, -0.05652639, -0.017714364) * go_3(0.0, -1.0); + result += mat4(0.14671369, -0.21775708, 0.037446484, 0.19568916, -0.08120511, 0.009589117, -0.26862335, 0.10114162, -0.280923, 0.40576807, 0.07634094, -0.022802232, 0.26644167, -0.29799074, -0.07520144, -0.09298707) * go_3(0.0, 0.0); + result += mat4(0.12787306, -0.03597792, -0.0501856, 0.0003554054, -0.016662559, 0.01793402, 0.036731128, 0.057142165, 0.14208297, -0.07816983, -0.06547921, 0.12818106, 0.03593736, -0.15703554, -0.039033424, -0.0044069514) * go_3(0.0, 1.0); + result += mat4(0.058662556, -0.080323815, -0.02522527, -0.1580162, 0.034481227, -0.0857634, 0.040548056, 0.089334026, -0.3016336, 0.15299423, -0.04793492, 0.0012853529, 0.05151393, 0.03197434, 0.05723357, -0.06894418) * go_3(1.0, -1.0); + result += mat4(0.12040549, -0.2529116, 0.10356855, -0.04598697, 0.0062763286, 0.11428357, -0.16604745, -0.037279624, 0.018803852, 0.17792255, 0.059715357, -0.011601418, -0.17485033, 0.1352793, -0.09469166, -0.009272873) * go_3(1.0, 0.0); + result += mat4(0.07145802, -0.048490215, 0.14784634, -0.052574188, -0.023536265, -0.03715718, 0.02188599, -0.009487062, 0.095758304, -0.05260447, -0.04488383, -0.0022170001, -0.010753989, 0.1285623, -0.078049324, 0.07791392) * go_3(1.0, 1.0); + result += mat4(-0.08608365, 0.024032418, 0.03376676, -0.06672097, 0.14239122, -0.20172556, 0.059492715, 0.039168652, -0.05975819, -0.14009707, 0.06505314, 0.005366894, 0.023043798, -0.14035852, 0.06564292, -0.01975755) * go_4(-1.0, -1.0); + result += mat4(0.06098348, 0.020505348, -0.071457036, -0.088892065, 0.25814053, -0.4024066, 0.04613967, -0.009115204, 0.053136446, -0.10263362, 0.08311103, 0.010236834, 0.06737908, 0.13245155, 0.036181718, 0.21113388) * go_4(-1.0, 0.0); + result += mat4(-0.013562919, -0.008662602, -0.10824871, -0.005553834, -0.10970149, 0.013045041, -0.07641659, -0.06609716, 0.08249468, -0.21136107, -0.08410633, -0.020448437, -0.25199074, 0.0641994, 0.07502806, -0.19701128) * go_4(-1.0, 1.0); + result += mat4(0.18910834, -0.15423289, 0.023417983, 0.005038285, -0.059044287, 0.077326454, 0.042352542, 0.06904583, -0.118472, -0.025113037, 0.008691595, 0.04278817, 0.1968958, -0.23562303, 0.0124163935, -0.011455441) * go_4(0.0, -1.0); + result += mat4(0.033834323, -0.08521952, -0.164473, -0.18196565, 0.056635767, -0.22095878, -0.21966869, -0.24707489, 0.055047844, -0.0854704, 0.044351656, 0.31924927, 0.3393569, -0.09816152, -0.024666212, 0.12658896) * go_4(0.0, 0.0); + result += mat4(0.03546097, -0.084772296, -0.017927025, -0.03168567, 0.018861301, -0.19742817, -0.023542268, -0.11313523, 0.013870798, -0.057313353, -0.048428833, -0.011003569, 0.060736526, -0.16871192, 0.12989289, -0.13272311) * go_4(0.0, 1.0); + result += mat4(-0.067924276, 0.042576067, 0.08058409, -0.05704767, 0.047355015, -0.009834332, -0.021743877, -0.09313564, -0.23810904, 0.071954355, 0.026877925, -0.06419035, 0.11408852, -0.094918594, -0.015347595, 0.15758565) * go_4(1.0, -1.0); + result += mat4(0.016378017, 0.04923884, 0.042090666, -0.020616362, -0.3205589, 0.29866445, -0.09028968, 0.17835416, 0.069200985, -0.19676962, -0.038767412, 0.0066911504, 0.23217689, -0.32092544, 0.21888864, -0.031248417) * go_4(1.0, 0.0); + result += mat4(0.1240904, -0.057505004, 0.008518463, -0.0013766377, 0.13912258, 0.25812533, -0.10721238, 0.041414622, -0.014356129, -0.11711117, -0.07339878, -0.042370543, 0.030094689, -0.083110586, -0.15375537, 0.008313004) * go_4(1.0, 1.0); + result += mat4(-0.42602807, -0.14819323, 0.24997748, -0.07033313, 0.053972986, -0.2672035, 0.16919206, 0.5153194, -0.12283088, -0.007163936, 0.050310373, -0.005151009, -0.0050212573, -0.07570248, 0.12484032, 0.028931405) * go_5(-1.0, -1.0); + result += mat4(0.21234803, -0.17263128, 0.108827524, 0.36454353, 0.15589741, -0.09056867, 0.18670312, -0.0886985, 0.09418289, -0.1530667, 0.07014518, 0.05093901, -0.314724, -0.09647151, 0.10014826, -0.05449102) * go_5(-1.0, 0.0); + result += mat4(0.083997354, -0.19228217, 0.17081402, 0.07869603, -0.07707866, -0.1114649, 0.14544345, -0.04913886, 0.114071324, 0.039774146, 0.026449671, -0.0046011102, -0.26660243, 0.06624741, 0.04318286, 0.025324916) * go_5(-1.0, 1.0); + result += mat4(-0.34038183, 0.3126945, 0.25694248, -0.0694824, 0.09484312, -0.08968785, 0.07317779, 0.1351912, -0.3336016, 0.16971526, 0.09233206, 0.16124597, 0.01231051, -0.021199688, 0.1954184, 0.11741164) * go_5(0.0, -1.0); + result += mat4(0.07364691, -0.46501446, -0.3260576, 0.019369395, 0.12856261, 0.01518898, 0.18648395, -0.06153823, 0.1424968, -0.4844148, 0.06327706, -0.23134615, -0.21754341, 0.16389093, 0.1828624, -0.16564755) * go_5(0.0, 0.0); + result += mat4(0.13003388, -0.33331057, 0.5363979, -0.067382425, 0.0024128144, 0.10726199, 0.120562315, 0.027075078, 0.044253387, -0.22810216, -0.14027081, 0.05570364, -0.0012832935, 0.0066472166, -0.09584242, 0.038570657) * go_5(0.0, 1.0); + result += mat4(0.15075065, -0.14929996, 0.12013421, -0.053535018, -0.059225604, 0.04993067, 0.12190514, -0.07199992, -0.12612323, 0.08610025, 0.0055669006, -0.01092246, -0.12504235, 0.071841165, 0.04702684, 0.04890323) * go_5(1.0, -1.0); + result += mat4(-0.59378284, 0.28029972, 0.041228425, 0.088731185, 0.10143785, -0.0147893205, 0.043729015, 0.22425093, -0.27061638, 0.23045406, 0.025149027, -0.09266012, -0.10645805, -0.021057274, 0.20209946, -0.07459568) * go_5(1.0, 0.0); + result += mat4(-0.003925717, 0.19509377, -0.0011443064, -0.07948601, 0.0008185968, -0.072344884, 0.2925546, -0.14168583, -0.04355419, 0.048995577, -0.090038754, -0.020567076, -0.1507524, 0.0033320382, 0.11161536, 0.048364066) * go_5(1.0, 1.0); + result += vec4(-0.05222755, 0.09198729, -0.07302347, 0.0022074024); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!SAVE conv2d_5_tf +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.10303006, -0.024129005, -0.006376188, 0.08361518, -0.030736713, 0.059527945, -0.05874042, 0.04269124, -0.09319534, 0.09713511, -0.08360228, 0.022383748, 0.27456298, -0.10364148, 0.011523791, 0.0006774627) * go_0(-1.0, -1.0); + result += mat4(-0.05541989, -0.08698082, 0.055311147, 0.013819714, 0.10675169, -0.046272285, 0.0027710905, 0.097424075, 0.40062046, 0.012139614, 0.06539418, -0.26190186, 0.26748738, 0.010693152, -0.26337343, 0.1396046) * go_0(-1.0, 0.0); + result += mat4(-0.0038561742, 0.06331599, 0.07280889, 0.0049921786, 0.046265908, 0.1273493, -0.0657387, -0.039872307, 0.036709707, 0.040611606, 0.10370152, -0.07017421, -0.15158589, -0.0944041, 0.16055441, 0.026905995) * go_0(-1.0, 1.0); + result += mat4(0.13568372, 0.42744243, 0.03610402, 0.13057254, -0.15189639, 0.3270829, 0.07523759, -0.03377655, -0.11991776, 0.043995053, -0.04695395, 0.057843372, 0.123827286, -0.5117275, -0.27580252, -0.06490049) * go_0(0.0, -1.0); + result += mat4(0.20916292, 0.14519285, 0.29285586, -0.14002982, -0.02903087, 0.07725845, 0.42922875, 0.22422947, -0.006809662, 0.25789696, -0.23387176, 0.18227082, 0.1949605, 0.39381132, 0.13233, -0.03979206) * go_0(0.0, 0.0); + result += mat4(0.050690006, -0.016765494, -0.06890609, -0.06165983, -0.1547756, 0.030649774, -0.10065935, -0.123401724, -0.2001527, -0.14910932, -0.030470714, -0.036002573, 0.13485923, 0.09405768, -0.14694588, 0.12113117) * go_0(0.0, 1.0); + result += mat4(-0.09391889, 0.13889499, 0.0544932, -0.06221289, -0.13378021, 0.18230891, -0.04311924, 0.09056919, -0.00071865856, -0.1485109, -0.18140738, -0.22380811, -0.052037843, 0.07200541, -0.08552131, 0.039394405) * go_0(1.0, -1.0); + result += mat4(-0.1129644, -0.08789729, -0.20112263, -0.14140582, 0.13343073, 0.15928635, -0.0004416807, -0.08655255, 0.11923446, 0.14782757, -0.2526453, 0.06534483, 0.28670022, 0.08661807, -0.05939282, -0.1264073) * go_0(1.0, 0.0); + result += mat4(-0.069123454, -0.024052331, 0.08405668, 0.0024100337, -0.0091934, 0.06140827, 0.07263404, -0.09847185, -0.15793528, -0.043271005, -0.051817372, -0.060237445, -0.0066771735, 0.12329388, 0.061106086, 0.036974255) * go_0(1.0, 1.0); + result += mat4(-0.05637151, -0.10100362, 0.03314885, -0.10366338, 0.030021148, 0.03372163, -0.032138795, 0.01293222, -0.11080214, 0.010572153, -0.01362632, 0.010574912, -0.16158684, -0.08245153, 0.118470125, -0.13403644) * go_1(-1.0, -1.0); + result += mat4(0.1868926, -0.01747845, -0.18130527, 0.13928702, -0.05539085, 0.032680083, 0.074883655, 0.018892298, -0.17280246, -0.047390517, 0.27345997, -0.022709364, -0.08344301, -0.014933963, -0.09545577, -0.033305403) * go_1(-1.0, 0.0); + result += mat4(-0.30393317, -0.05171247, 0.00841183, 0.14072971, 0.08149488, 0.018601093, 0.021672362, 0.060667925, -0.0843176, -0.10364707, -0.21641973, -0.042780574, 0.08775126, -0.1777216, 0.13253935, -0.06866668) * go_1(-1.0, 1.0); + result += mat4(-0.09160829, -0.026550675, -0.2643876, 0.23035419, -0.092297986, -0.0631223, -0.094887145, -0.04810445, -0.17819802, -0.36207268, 0.21447507, -0.055772606, 0.15652925, -0.045815215, 0.026055578, -0.08619429) * go_1(0.0, -1.0); + result += mat4(0.31203738, 0.1421051, 0.047671713, 0.043899603, -0.0063436944, -0.05302037, 0.10466757, 0.055510703, 0.26608247, -0.5555844, 0.1569081, 0.06456405, 0.3684636, 0.25736332, 0.074449226, -0.44859105) * go_1(0.0, 0.0); + result += mat4(0.17698939, -0.022741819, 0.060476527, 0.25612378, 0.020842008, 0.06931272, -0.019117761, -0.087975, -0.13561797, -0.1362288, 0.29442817, 0.13402307, -0.039556194, -0.019829288, 0.17118609, 0.1278197) * go_1(0.0, 1.0); + result += mat4(-0.31739852, 0.14773282, -0.24623321, 0.108611636, 0.14553224, -0.011245446, 0.12459254, 0.010767416, -0.03386007, -0.21067396, -0.07546396, 0.04937681, -0.1519659, 0.012008841, -0.115991235, 0.10733518) * go_1(1.0, -1.0); + result += mat4(0.03970365, -0.024820864, -0.20029032, 0.29602152, 0.09690361, 0.08654618, -0.012617663, -0.12546124, 0.20103471, 0.00038131204, 0.1211002, -0.1292234, 0.11913651, -0.11322767, -0.01288022, -0.041910112) * go_1(1.0, 0.0); + result += mat4(-0.009281656, 0.1297087, -0.05293133, -0.1246988, -0.022248892, -0.034976568, 0.08893194, -0.11639006, -0.17021456, -0.069115035, 0.17411986, -0.0622714, -0.13591176, -0.052181553, -0.3032676, 0.19398004) * go_1(1.0, 1.0); + result += mat4(0.0135761835, -0.03810734, 0.046213724, 0.010946248, -0.21182157, -0.18424067, 0.0072398814, -0.06510514, 0.25013617, 0.021596389, 0.20208448, 0.06570989, 0.040997196, 0.11164517, 0.0758064, 0.055730976) * go_2(-1.0, -1.0); + result += mat4(0.27164775, -0.02738497, -0.07753674, 0.14808752, 0.035788253, -0.1008786, -0.21798207, 0.12514383, 0.12547313, -0.046524163, -0.069985755, -0.05973989, -0.12339831, 0.09729143, 0.062413983, 0.054448497) * go_2(-1.0, 0.0); + result += mat4(0.12982179, 0.121222205, -0.012715672, 0.026885295, 0.06398589, -0.050220918, 0.011918637, 0.02942106, -0.049117237, -0.091542035, -0.08816891, 0.014023178, -0.22852097, -0.06725802, -0.058409374, 0.0413034) * go_2(-1.0, 1.0); + result += mat4(-0.028438574, -0.17127529, -0.1611554, 0.020367429, -0.10448821, -0.44258052, 0.055850565, -0.1832564, -0.055781726, 0.1632947, -0.3766877, -0.14964445, -0.022300515, -0.15305346, -0.109381065, -0.115521505) * go_2(0.0, -1.0); + result += mat4(-0.26233345, 0.016659187, -0.16647589, 0.187565, 0.012088588, -0.07336387, 0.5486782, 0.3620359, 0.033402268, 0.009075903, -0.11902273, -0.37233996, -0.013799898, -0.008520962, -0.007579324, -0.018678436) * go_2(0.0, 0.0); + result += mat4(0.043346863, 0.10735683, -0.13174124, -0.121098995, -0.0044274325, -0.01888604, 0.12524483, -0.15453935, 0.10062332, -0.039168928, 0.34596562, 0.10575704, -0.04829014, -0.07308859, 0.17704462, 0.009876651) * go_2(0.0, 1.0); + result += mat4(0.16003962, -0.048122417, 0.04131919, -0.14133601, 0.11822638, -0.151548, 0.07274908, -0.253861, 0.11097183, -0.020288134, 0.06425395, -0.046268225, -0.07545768, -0.034767404, -0.111868136, 0.04605878) * go_2(1.0, -1.0); + result += mat4(-0.15711343, -0.04597314, -0.054248903, 0.10960686, -0.197342, 0.017807756, -0.17929378, 0.0669755, -0.14432156, -0.15553066, 0.1257169, -0.10205468, -0.11606485, 0.10992325, -0.026786113, 0.07244239) * go_2(1.0, 0.0); + result += mat4(0.24323255, 0.062938176, -0.10080858, 0.023388771, 0.08971783, -0.121303156, 0.030533563, 0.034501072, -0.070121005, -0.015707897, -0.008001506, 0.089416444, 0.08043049, 0.0414907, -0.051737808, 0.16745205) * go_2(1.0, 1.0); + result += mat4(0.045207355, 0.17343028, 0.038214743, 0.0124091925, 0.06772331, 0.16741976, -0.069976054, -0.09214925, 0.26161152, 0.21708632, -0.074641965, 0.10069592, -0.007335202, 0.0023308273, 0.102324076, -0.04463461) * go_3(-1.0, -1.0); + result += mat4(-0.029115323, 0.09462037, 0.12704706, -0.0028017738, -0.20877443, 0.14758751, 0.11664195, -0.14800303, -0.42558858, -0.18685985, 0.019180436, -0.14385854, 0.13955534, 0.04206586, -0.1564317, -0.14350334) * go_3(-1.0, 0.0); + result += mat4(0.18595266, -0.038219437, 0.04847514, 0.093401335, 0.01025365, -0.009859873, -0.068309866, -0.025273895, 0.38261253, 0.097571604, 0.15044056, 0.012236991, -0.050778836, 0.01948223, -0.09681198, -0.0725782) * go_3(-1.0, 1.0); + result += mat4(-0.15834534, -0.13884525, -0.41221318, -0.14256534, 0.14789878, -0.41153955, -0.10059337, -0.11296314, 0.067884445, 0.08605005, 0.05261639, -0.082988836, -0.121354714, 0.0412593, -0.22355177, -0.33940288) * go_3(0.0, -1.0); + result += mat4(-0.09894384, 0.011797632, -0.37582433, 0.13686092, -0.114456564, 0.10519318, -0.531876, 0.20149896, -0.40502954, -0.18473613, -0.027613513, -0.1229287, -0.15272947, -0.19752924, -0.009277203, -0.13704798) * go_3(0.0, 0.0); + result += mat4(-0.16676758, 0.06472998, -0.02979381, 0.028654594, 0.013178715, 0.0011208704, -0.14250684, 0.024595363, -0.0024331086, 0.15876009, -0.18146951, -0.21787827, -0.039896637, 0.022137187, 0.096943565, 0.1463433) * go_3(0.0, 1.0); + result += mat4(-0.020311443, -0.11862785, 0.024973717, -0.19604981, -0.07155344, -0.21432653, -0.032866854, -0.009850146, 0.20013084, 0.124072924, 0.09021492, 0.13809857, 0.21196319, -0.039707713, 0.18131028, 0.022565559) * go_3(1.0, -1.0); + result += mat4(0.015458234, 0.19860977, 0.25325814, 0.32606927, -0.10935829, -0.10354393, -0.069758624, 0.016730295, 0.13970691, -0.026566936, -0.055172898, -0.39109713, -0.15070316, 0.07282636, 0.059083372, 0.01492328) * go_3(1.0, 0.0); + result += mat4(0.016830033, -0.024868606, 0.05206643, -0.09652772, 0.0023192533, 0.008338291, -0.092116445, -0.05736829, 0.18136622, 0.046195503, 0.07144144, -0.0051190723, -0.0750335, -0.06531934, -0.011301411, 0.048583686) * go_3(1.0, 1.0); + result += mat4(0.04040649, -0.14777681, -0.0367592, 0.025550898, 0.0519472, 0.25573796, -0.041682925, 0.092338845, 0.025231685, 0.06609314, 0.020205751, 0.010512631, -0.12048031, -0.063682325, -0.017069822, 0.0103084585) * go_4(-1.0, -1.0); + result += mat4(0.09606588, 0.004819853, -0.010837633, 0.24923539, -0.1006792, 0.13619965, 0.15648063, -0.15472235, 0.074816, 0.061060935, 0.12031998, -0.07962363, -0.019762445, -0.08738595, 0.035822686, 0.19986363) * go_4(-1.0, 0.0); + result += mat4(0.25893176, 0.08258401, -0.08531076, -0.023176214, -0.13755056, 0.14691706, 0.17879073, -0.025577985, -0.28195706, -0.10409214, 0.06793316, -0.06837923, -0.122581184, 0.038157687, -0.265953, 0.19280349) * go_4(-1.0, 1.0); + result += mat4(-0.113429695, 0.057516146, 0.3503902, 0.2084302, 0.095209785, 0.4323637, 0.036503337, -0.37528926, 0.17068225, 0.28902432, 0.08930841, 0.11777051, -0.11170577, -0.030996192, -0.050521877, 0.18092346) * go_4(0.0, -1.0); + result += mat4(-0.36534205, 0.0657259, -0.036097083, 0.1666858, 0.16353793, -0.055323638, -0.2819786, -0.049529333, -0.06722856, 0.07748645, -0.34818858, -0.15242954, -0.11060249, -0.27319375, 0.15099055, 0.4111536) * go_4(0.0, 0.0); + result += mat4(0.19415127, 0.17859334, -0.043898348, -0.050272048, 0.16689122, 0.012172907, -0.15645516, 0.14623365, -0.0016135718, -0.0029198902, -0.07367009, 0.18115741, 0.095786035, 0.083239935, 0.12505479, -0.009228445) * go_4(0.0, 1.0); + result += mat4(0.04141629, -0.09798292, -0.02985331, 0.13288854, 0.0029625932, 0.29050517, -0.14383948, 0.33147556, -0.19490755, -0.08341335, -0.049894527, 0.110408075, -0.185923, 0.12881704, -0.04483314, 0.13530989) * go_4(1.0, -1.0); + result += mat4(-0.025660308, -0.04277649, -0.044980843, -0.057717774, 0.48945707, 0.16011417, 0.35871124, -0.39541483, -0.0025785516, -0.055724356, 0.119274266, 0.009319305, -0.055367954, 0.07492857, -0.078998685, -0.10131247) * go_4(1.0, 0.0); + result += mat4(-0.16801779, -0.04895317, -0.21586019, 0.04615353, 0.09740849, 0.030762976, 0.17467776, 0.0120422365, 0.19799858, 0.049733654, -0.024367984, -0.008110729, -0.14235103, 0.03514316, 0.041790742, -0.09109183) * go_4(1.0, 1.0); + result += mat4(-0.26878524, -0.19208838, 0.0124758, -0.13010885, -0.0144377565, -0.015653338, -0.11066211, -0.05679906, -0.114442214, -0.04127417, 0.036079098, -0.04462267, 0.05359463, 0.021078862, -0.017311526, -0.05955371) * go_5(-1.0, -1.0); + result += mat4(-0.42738852, 0.08011972, -0.120668575, -0.11827848, -0.16975085, -0.08911275, -0.076764226, -0.0891852, 0.19799769, -0.068180755, -0.109158665, 0.033777766, 0.23276065, -0.14431503, -0.011219252, -0.04819201) * go_5(-1.0, 0.0); + result += mat4(0.20798479, 0.20048247, -0.056686644, -0.12528493, -0.10292887, 0.008766131, 0.22832678, 0.009819724, 0.014666803, -0.032819923, 0.061416402, -0.052261874, 0.3986435, 0.2218756, 0.04587176, -0.056256443) * go_5(-1.0, 1.0); + result += mat4(0.006675663, -0.2561866, -0.013982697, -0.08625728, 0.12800391, -0.030867307, 0.104720816, 0.14650136, -0.100959726, 0.19566104, 0.057220545, 0.24033053, 0.08719554, 0.018098617, -0.07996598, -0.015701583) * go_5(0.0, -1.0); + result += mat4(-0.0354034, -0.06831094, 0.42055416, 0.11949096, -0.05344659, -0.1860165, -0.07301184, -0.30869538, -0.1953362, -0.13361058, -0.19827844, 0.078833625, -0.18285057, -0.116519555, 0.029914267, 0.21471292) * go_5(0.0, 0.0); + result += mat4(-0.12320904, -0.06025351, -0.12828222, -0.11336264, -0.15036534, -0.13378584, -0.18584451, 0.045040403, -0.0675013, 0.04541515, 0.028214835, 0.06800308, -0.21156439, 0.24866186, 0.21416123, -0.040026035) * go_5(0.0, 1.0); + result += mat4(0.0753877, -0.04430112, 0.15395011, -0.07991276, -0.08305846, 0.055565085, -0.031790998, 0.10893703, -0.057524715, 0.012498553, 0.010330039, 0.12658505, 0.09117975, -0.08158854, 0.26708308, -0.16074498) * go_5(1.0, -1.0); + result += mat4(-0.29645425, -0.039365437, -0.18364744, 0.16236888, 0.04460683, -0.12283852, 0.23568133, -0.08579463, 0.08793187, -0.057041798, 0.1710201, 0.07482411, -0.13072757, 0.0841477, 0.13957432, 0.1679739) * go_5(1.0, 0.0); + result += mat4(-0.29222, -0.12256286, 0.02170915, -0.21209532, 0.024504298, 0.02795105, 0.07216779, -0.032558184, 0.14820465, 0.025545621, -0.054377284, 0.071698785, 0.017161021, 0.07144609, 0.11378573, 0.3110773) * go_5(1.0, 1.0); + result += vec4(-0.08908616, -0.020727161, -0.10065884, -0.042632345); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!SAVE conv2d_5_tf1 +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.064056724, -0.07093631, 0.04779868, -0.02587647, -0.071125306, -0.074813634, -0.068414815, -0.08501005, 0.063606724, 0.034935262, -0.03552888, -0.24985667, 0.11153104, 0.0071351845, 0.19171661, -0.029433867) * go_0(-1.0, -1.0); + result += mat4(-0.09995801, -0.09326525, 0.06775157, -0.038214244, -0.10054348, -0.16220573, 0.102754906, 0.071962886, 0.23763078, 0.013961893, 0.015597981, -0.2632074, 0.22045082, 0.071685486, -0.08206874, 0.13892207) * go_0(-1.0, 0.0); + result += mat4(-0.01934266, -0.006904077, -0.10715261, 0.17485306, 0.013713242, -0.12410888, -0.007832815, -0.03868287, -0.15776807, -0.2635318, 0.003962659, -0.18496422, -0.11876284, -0.039445885, 0.06629498, 0.22338709) * go_0(-1.0, 1.0); + result += mat4(-0.034078594, -0.1805506, -0.025518876, 0.014371885, 0.030084224, -0.014354998, -0.0109806815, -0.20827125, 0.042328708, -0.018653959, 0.059650034, 0.029813247, 0.19455545, -0.113774136, 0.26678622, 0.11695122) * go_0(0.0, -1.0); + result += mat4(-0.023987826, -0.023700913, 0.08644919, -0.1750627, -0.26300937, 0.29743475, 0.1503612, -0.42041445, -0.011562484, -0.3249365, 0.01101664, -0.09328339, -0.09930711, 0.14022289, -0.32576883, 0.026680376) * go_0(0.0, 0.0); + result += mat4(0.06988121, 0.109367564, 0.03402709, -0.17185646, -0.058330853, 0.04632417, -0.010930606, -0.107686765, 0.022882087, -0.08536933, 0.10469813, -0.0737954, 0.16710569, 0.18354355, -0.06688489, -0.019448377) * go_0(0.0, 1.0); + result += mat4(0.019293351, 0.0123047, -0.15684208, 0.054855164, -0.09483187, 0.007899257, -0.07996407, 0.06905782, -0.014882362, -0.17087294, -0.17222148, -0.018799115, 0.042367876, 0.15077937, 0.08865754, -0.10869854) * go_0(1.0, -1.0); + result += mat4(-0.002714694, -0.1375695, -0.1394463, 0.035844512, 0.0085730525, -0.14237584, 0.10053908, 0.07594752, 0.26822913, -0.07813585, 0.10951651, 0.036110748, -0.008980184, -0.018826121, -0.027037399, -0.010021858) * go_0(1.0, 0.0); + result += mat4(-0.028075742, 0.069354035, -0.00936207, -0.07844518, -0.022958742, -0.014102934, 0.031117663, -0.009953486, -0.078456596, -0.0880605, 0.063174024, 0.018579911, -0.0015331954, 0.15179089, 0.003745209, -0.029687254) * go_0(1.0, 1.0); + result += mat4(0.018290054, -0.014245797, -0.17358118, -0.056127924, 0.07084526, 0.03571643, 0.02986269, -0.106873244, -0.048314985, 0.025376959, -0.09932602, 0.011822442, -0.038084786, 0.018717794, -0.18553552, 0.025297863) * go_1(-1.0, -1.0); + result += mat4(0.07225246, -0.029364137, 0.011361293, 0.093667194, -0.10645156, 0.0865526, -0.008865539, -0.011799614, -0.21514468, -0.06500061, 0.08485134, 0.23484601, 0.18280883, 0.0598522, -0.13781232, -0.03465513) * go_1(-1.0, 0.0); + result += mat4(0.060355596, 0.22477956, 0.01595966, 0.094911985, 0.047214787, 0.042830862, 0.029644348, 0.08143906, 0.02341161, -0.053311694, 0.005260219, 0.04425682, -0.04813383, -0.062679216, 0.019290956, -0.05866764) * go_1(-1.0, 1.0); + result += mat4(0.09550533, -0.0281284, 0.18278416, 0.15003324, -0.06580779, 0.041769683, -0.08509133, 0.11734207, 0.049989708, 0.08702604, -0.06486799, 0.063569345, 0.11966632, -0.026014533, 0.03127322, -0.12456593) * go_1(0.0, -1.0); + result += mat4(0.31493753, 0.21239288, 0.23353736, 0.023554513, -0.052986618, -0.0902623, -0.2293566, 0.021443173, -0.5114285, 0.19488071, 0.27000505, -0.1988818, 0.065105505, 0.04904789, -0.0014040003, -0.057719957) * go_1(0.0, 0.0); + result += mat4(-0.1556567, 0.03353479, -0.13394126, -0.017714672, 0.057949618, 0.013137359, 0.058261257, -0.07417554, -0.115135044, 0.17160247, -0.006379533, 0.1885825, -0.22129406, -0.043042038, 0.024051858, 0.17637861) * go_1(0.0, 1.0); + result += mat4(-0.035570182, 0.06328232, 0.016843708, -0.06668748, -0.0056720893, 0.08904317, 0.052788604, -0.0017134451, -0.018143848, 0.040248383, 0.015489914, -0.028669124, 0.008654496, 0.046033252, 0.1050059, 0.0273359) * go_1(1.0, -1.0); + result += mat4(0.022325872, 0.019782262, 0.13855061, -0.095333435, -0.017554015, -0.2036992, -0.17955759, 0.051069602, 0.06197425, -0.1524745, 0.06332084, 0.16367467, 0.012856071, -0.067313105, 0.26188868, 0.014297151) * go_1(1.0, 0.0); + result += mat4(0.24847886, 0.037001565, 0.02012791, -0.08560085, -0.07295144, -0.09001876, 0.09916956, -0.056165274, -0.13455103, 0.025426334, -0.040519975, 0.10362695, 0.1720182, -0.003640278, 0.0108676655, -0.006747253) * go_1(1.0, 1.0); + result += mat4(0.035146076, 0.0751456, 0.074510865, -0.009687164, -0.059647426, 0.11068295, 0.005034347, -0.0094476575, 0.15726817, 0.06547935, -0.003077329, -0.095212325, -0.033507027, 0.044296283, -0.053546224, 0.0667459) * go_2(-1.0, -1.0); + result += mat4(0.026525194, -0.10907353, 0.17279102, -0.057787284, 0.0054999366, -0.104058325, 0.04222895, 0.2964297, -0.123814896, -0.12381756, 0.08017246, -0.41211042, -0.09396297, 0.006370269, -0.051667687, 0.1595841) * go_2(-1.0, 0.0); + result += mat4(-0.057249974, -0.11224924, 0.04510644, 0.031252895, 0.13152118, -0.061255917, -0.1275758, 0.24736635, 0.15261558, -0.02695863, -0.04368786, 0.077176146, -0.07857015, 0.10112319, -0.09226026, 0.096964024) * go_2(-1.0, 1.0); + result += mat4(-0.17078993, 0.007348804, -0.005015552, 0.05306818, 0.055224724, 0.11567237, -0.20675188, -0.003248449, -0.112982295, -0.1578056, -0.46721724, 0.10590234, 0.20476797, 0.10101496, -0.04983351, -0.2430514) * go_2(0.0, -1.0); + result += mat4(0.41511732, -0.14909638, -0.20466527, 0.32993126, 0.034264483, 0.35299808, 0.047212206, 0.22853905, 0.44917694, -0.26854274, 0.28782642, 0.28775322, 0.10682206, -0.036426, -0.05926136, -0.09808791) * go_2(0.0, 0.0); + result += mat4(0.1623692, 0.04208961, -0.12735078, 0.119587936, -0.018460283, 0.01926331, -0.16922039, -0.020692306, -0.23654786, -0.09682156, 0.02356279, 0.292154, -0.12550685, -0.039114326, -0.010045899, 0.009884463) * go_2(0.0, 1.0); + result += mat4(-0.024572646, -0.04915667, -0.0891658, -0.101300426, 0.09721007, -0.027222471, -0.08186617, -0.08800145, 0.16128908, 0.017369738, -0.17755122, 0.030553974, -0.04786194, -0.033306226, -0.11137265, 0.097252734) * go_2(1.0, -1.0); + result += mat4(-0.13219555, 0.14680044, -0.020835813, -0.19928418, -0.17540939, 0.08884416, -0.16007939, -0.2782367, -0.26362786, -0.053185944, 0.21527831, -0.12771867, 0.09537403, 0.06372314, 0.07092338, 0.016300872) * go_2(1.0, 0.0); + result += mat4(0.06020855, -0.027582346, -0.060386427, -0.16418251, 0.13412488, 0.0635046, -0.16844325, -0.031885087, 0.19441758, 0.21037033, -0.21288314, 0.0033019097, 0.07076219, 0.1341822, 0.07913143, 0.025000073) * go_2(1.0, 1.0); + result += mat4(0.1165525, 0.1224346, -0.049421676, -0.09238292, -0.009945548, 0.095751256, -0.09618111, -0.031556837, 0.08579153, -0.11566272, 0.1746714, 0.2033271, 0.21790707, 0.11779413, -0.024555488, -0.06705437) * go_3(-1.0, -1.0); + result += mat4(-0.17143509, 0.076514326, 0.18922825, -0.2367472, -0.0980002, 0.28013328, -0.12218669, -0.043787587, 0.0058879694, -0.024139067, -0.26422662, -0.11571965, 0.14444259, 0.017443683, -0.08909287, -0.2847621) * go_3(-1.0, 0.0); + result += mat4(0.025492875, -0.079289034, 0.08755382, 0.032952707, 0.066548645, 0.047626834, -0.022007272, -0.053937066, -0.005625632, -0.20218278, 0.081909254, 0.10763452, 0.025432698, -0.008357586, 0.052571986, -0.13281691) * go_3(-1.0, 1.0); + result += mat4(0.19026323, -0.03131676, -0.6082668, 0.18015681, -0.08726318, -0.10005449, -0.12227455, 0.09603944, -0.10222641, -0.04765289, -0.25651884, 0.09121576, -0.13599087, 0.004900871, -0.37133986, -0.17672789) * go_3(0.0, -1.0); + result += mat4(0.45967895, -0.39018512, 0.050611064, 0.03249431, 0.30238965, -0.3105947, 0.06669453, 0.32732725, 0.066052265, 0.49977377, -0.050907653, -0.03348076, 0.029122408, 0.0600764, -0.07822951, 0.20902982) * go_3(0.0, 0.0); + result += mat4(-0.08013542, 0.10021573, -0.11628576, 0.14346479, 0.057000324, -0.108649634, 0.019887695, 0.103890195, 0.1409188, 0.20089024, -0.102009736, 0.1325033, 0.044806838, -0.05788581, 0.048131753, -0.06652887) * go_3(0.0, 1.0); + result += mat4(-0.16966644, -0.24639672, 0.019028572, -0.06812002, 0.03262217, 0.09131447, 0.013230795, -0.11368682, -0.06550434, 0.13262247, 0.08878271, -0.08202508, 0.015975898, -0.060910717, 0.06115912, 0.15341121) * go_3(1.0, -1.0); + result += mat4(0.15634352, 0.17069998, 0.14901571, 0.009626357, -0.06694675, 0.17337729, -0.19245732, -0.053627927, 0.1267725, -0.21431756, -0.07327218, -0.05756576, -0.032537382, -0.02760317, 0.13781238, 0.13548511) * go_3(1.0, 0.0); + result += mat4(-0.028399123, -0.1360119, 0.2317893, -0.025993945, 0.03924595, -0.042272273, -0.116523296, -0.09528808, 0.1524186, 0.055862464, 0.03739477, -0.09871636, -0.07834257, -0.041219592, 0.04540839, 0.1291419) * go_3(1.0, 1.0); + result += mat4(-0.19614807, -0.09363595, 0.056008626, 0.005871811, 0.16565295, -0.0842474, 0.11023916, 0.13774084, -0.042277314, -0.021777004, -0.03129473, 0.1514441, -0.039998986, 0.071076415, 0.01945138, -0.12146891) * go_4(-1.0, -1.0); + result += mat4(0.06687245, -0.1199503, 0.21189997, 0.35098252, 0.033946924, 0.3198622, -0.22240919, -0.1667172, -0.036933, 0.229118, -0.11569919, -0.16484495, -0.11610055, 0.015235093, 0.3831026, 0.1465072) * go_4(-1.0, 0.0); + result += mat4(0.03791039, 0.018180382, -0.042332668, 0.013624834, -0.18835816, -0.0509036, -0.021141365, -0.004950831, -0.08342777, 0.1390103, 0.015515743, -0.19880094, 0.11614853, 0.06523873, 0.13055101, 0.1372081) * go_4(-1.0, 1.0); + result += mat4(-0.0018500675, 0.18703233, 0.30595052, -0.016893126, -0.22149622, 0.15263912, -0.66434824, -0.02816733, -0.046903886, -0.111711785, 0.24890791, 0.045937214, -0.17543675, 0.0062527983, 0.19804789, 0.017593222) * go_4(0.0, -1.0); + result += mat4(-0.04760463, 0.05421001, -0.28332436, -0.025446368, 0.21688665, 0.5815682, 0.46906602, -0.05001719, 0.23411441, -0.07280948, -0.13070935, -0.015438214, -0.13005666, 0.1889405, -0.2580563, -0.15314907) * go_4(0.0, 0.0); + result += mat4(0.12959057, -0.0948774, 0.06675651, -0.17425562, 0.10021383, 0.33856025, -0.31008336, -0.025042048, -0.052502744, 0.029178401, -0.0048839073, 0.038400315, -0.018125525, -0.0767934, 0.094993874, -0.18367463) * go_4(0.0, 1.0); + result += mat4(-0.022678657, -0.0065315845, 0.06314526, -0.054645326, 0.13771887, 0.046705935, -0.04636017, 0.14018759, -0.04231133, -0.021541214, 0.017565796, 0.003035773, 0.08540473, 0.08129922, 0.11075298, 0.013874024) * go_4(1.0, -1.0); + result += mat4(0.08197226, -0.0058128256, -0.18930762, -0.036673985, 0.02281235, -0.08467056, -0.2223147, 0.2896992, 0.05395775, 0.11151909, -0.06499754, 0.1251099, -0.03142789, -0.030318923, -0.007785477, -0.04529621) * go_4(1.0, 0.0); + result += mat4(0.080762245, -0.018930724, -0.20362908, 0.056379218, -0.11373313, -0.12011991, 0.16567366, 0.08657685, 0.044468362, -0.08876271, -0.029667072, 0.035950437, -0.14428492, 0.029389331, 0.05124434, 0.0045285597) * go_4(1.0, 1.0); + result += mat4(-0.02969669, -0.008931901, -0.100618705, -0.052917536, 0.020904265, -0.13654597, -0.06518564, 0.10012143, -0.02225236, -0.0429339, -0.048810348, -0.05469844, 0.08333708, 0.030906782, -0.018940724, -0.026514838) * go_5(-1.0, -1.0); + result += mat4(-0.08655406, 0.114238694, -0.16437472, -0.08736896, 0.127443, 0.06291038, -0.2604087, 0.12457613, 0.24516857, -0.13755949, -0.0030577497, 0.10744015, 0.04641038, 0.05981727, 0.31352815, -0.18235594) * go_5(-1.0, 0.0); + result += mat4(0.008475862, 0.017425679, -0.08991029, -0.12069009, -0.08269583, 0.10742468, -0.014932612, -0.02626661, -0.016236676, -0.005973882, -0.027453009, -0.11351438, 0.047109496, -0.145119, 0.07747088, -0.07215372) * go_5(-1.0, 1.0); + result += mat4(-0.034174602, -0.060812023, -0.0006432491, -0.20983042, 0.046102066, 0.008952892, 0.15442203, -0.10698656, 0.17119479, -0.004389315, 0.3144101, -0.110222265, -0.14246719, 0.045711346, -0.13565831, 0.26117173) * go_5(0.0, -1.0); + result += mat4(-0.6470008, 0.04084706, -0.051462423, -0.06546568, -0.014792661, -0.15924191, -0.18878494, -0.23083107, -0.24585818, 0.2259637, -0.10123358, -0.19765808, -0.20856747, -0.228083, 0.37406453, 0.08601305) * go_5(0.0, 0.0); + result += mat4(-0.064584635, -0.21230863, 0.14970647, -0.11542264, 0.036966026, 0.029235318, 0.10329525, 0.044501476, -0.0177942, -0.109035276, 0.043533962, 0.028927831, 0.1558056, 0.10556724, 0.10270152, -0.14039369) * go_5(0.0, 1.0); + result += mat4(-0.066995785, 0.06306309, -0.13572344, 0.11198968, -0.0037865653, 0.015525267, 0.03302228, 0.11591493, -0.0528039, -0.059212606, 0.082170166, 0.0794709, -0.03251824, -0.026491115, 0.0763021, -0.13832395) * go_5(1.0, -1.0); + result += mat4(0.006861719, -0.07674664, 0.19552138, 0.041278, -0.04972735, 0.028953623, -0.05129196, 0.102604896, 0.09264856, 0.08714556, 0.14463316, 0.016883003, 0.26475173, -0.089217745, -0.10327653, 0.23053643) * go_5(1.0, 0.0); + result += mat4(-0.13946633, -0.07468852, 0.00806054, 0.075793736, 0.0094534205, 0.053835806, 0.053700656, -0.09649038, 0.011497834, -0.004986816, -0.019868635, 0.065568306, -0.026551232, -0.35115397, 0.015588715, 0.0713471) * go_5(1.0, 1.0); + result += vec4(0.046015948, 0.05442024, -0.016241902, 0.020935621); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!SAVE conv2d_5_tf2 +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_4_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.06520908, 0.11980297, 0.017079262, -0.0644185, 0.058950376, 0.31555367, -0.026817605, -0.07509471, -0.12542972, 0.17405558, 0.03727982, -0.116224065, -0.062435534, -0.19364153, -0.026986435, -0.03134909) * go_0(-1.0, -1.0); + result += mat4(0.038656387, 0.13447802, -0.16709015, -0.14351036, 0.103892356, 0.016569376, -0.07983408, -0.16095364, -0.11789444, -0.03072205, 0.123185664, -0.10082752, 0.21694018, -0.1617907, -0.011660872, 0.13927431) * go_0(-1.0, 0.0); + result += mat4(0.008439822, 0.122972764, -0.016326487, -0.078567974, 0.059017945, 0.06353737, 0.082813956, -0.0949065, -0.08315884, 0.021347238, -0.08931161, -0.16035163, 0.037683185, 0.06533404, -0.028883474, -0.09627357) * go_0(-1.0, 1.0); + result += mat4(0.08366899, 0.21790943, -0.22688796, -0.12604184, -0.043983214, 0.1403515, -0.36661214, -0.06573482, -0.0013522038, -0.06833309, -0.01641999, 0.069110356, 0.37018904, 0.10410086, 0.061855968, -0.1666379) * go_0(0.0, -1.0); + result += mat4(-0.2989202, -0.117328055, -0.050487056, -0.061127234, 0.1033415, 0.16767837, 0.18385236, 0.02724901, 0.35696694, -0.25828066, -0.074384004, -0.042253643, -0.41383776, -0.050653316, 0.14413886, 0.32937947) * go_0(0.0, 0.0); + result += mat4(-0.15808704, -0.106030256, 0.28908083, 0.008596225, -0.110294454, -0.08877176, 0.08842803, -0.039414957, 0.20766397, -0.17327146, -0.19335231, -0.061150387, -0.000814753, 0.1034041, -0.009765378, -0.07323427) * go_0(0.0, 1.0); + result += mat4(-0.01879742, -0.044466518, -0.09159235, -0.1501768, -0.0056229457, 0.18997125, 0.08428035, -0.13449019, 0.18263818, -0.10028305, -0.09866498, 0.117869616, -0.012634524, -0.029524704, -0.07730064, 0.00546821) * go_0(1.0, -1.0); + result += mat4(0.15762568, 0.105768956, 0.13892855, 0.00044988963, 0.12257598, -0.01147673, 0.006341714, -0.26212972, 0.40007222, 0.08705139, -0.2118067, 0.026638128, 0.03797633, -0.11589773, 0.0049106814, 0.12900658) * go_0(1.0, 0.0); + result += mat4(-0.121532075, -0.10590698, -0.03897105, -0.0071686152, 0.0033759288, -0.1396647, -0.028675696, -0.015227962, 0.18511333, -0.102051884, -0.016090686, 0.059021857, -0.11331271, -0.11874948, 0.018710922, 0.017408015) * go_0(1.0, 1.0); + result += mat4(-0.12550953, 0.16510391, 0.10619754, -0.016266964, -0.019227408, -0.18954511, -0.109888494, 0.016605422, -0.0005352285, 0.044191238, -0.088420294, 0.009006945, -0.022495952, 0.048431057, -0.020784441, 0.010173064) * go_1(-1.0, -1.0); + result += mat4(0.16963533, 0.18744309, 0.21297795, 0.08332983, -0.023056686, -0.07087108, -0.036333352, -0.015268741, -0.07492767, -0.045910314, 0.21631542, -0.16564575, 0.02388003, 0.13383305, -0.039016947, 0.0631532) * go_1(-1.0, 0.0); + result += mat4(0.02557174, 0.08842321, 0.16087292, -0.023776071, 0.031170124, 0.066140614, 0.05342162, -0.013030745, 0.124961995, -0.22359067, -0.036988057, 0.13611913, -0.1263602, -0.16664241, 0.01858248, 0.0013771311) * go_1(-1.0, 1.0); + result += mat4(0.015695665, 0.015101046, 0.17278792, -0.03986969, 0.14098491, -0.024497505, 0.21574442, 0.04450794, -0.10986037, 0.16416681, -0.09933916, 0.14197138, 0.0015567777, -0.0047904793, -0.21008217, 0.14554296) * go_1(0.0, -1.0); + result += mat4(-0.31723288, -0.11801757, 0.54204303, 0.21924974, -0.063086554, 0.031983662, -0.044489764, -0.044983335, -0.19877149, -0.34737584, 0.14496867, 0.24102491, -0.12645286, -0.12267188, 0.108755745, -0.042033415) * go_1(0.0, 0.0); + result += mat4(-0.12381552, 0.21796867, 0.047182925, 0.13479555, -0.07008901, 0.030664185, 0.10611406, -0.109855235, -0.035448074, 0.11677155, -0.21266608, 0.13169904, 0.031983715, 0.023444392, -0.17469533, 0.17422527) * go_1(0.0, 1.0); + result += mat4(0.022972934, -0.00795407, 0.05136999, 0.035493083, -0.17333633, -0.027870687, 0.02908348, 0.053750556, -0.014127204, 0.03970615, 0.04342455, 0.124589466, 0.16470553, 0.06732464, 0.043155663, -0.03983377) * go_1(1.0, -1.0); + result += mat4(-0.032124814, 0.032697737, 0.14967397, 0.0065929573, 0.1047251, 0.039273106, 0.08134817, -0.003973153, 0.040370148, -0.18200004, 0.089256786, -0.09854591, -0.0060806563, -0.1029578, -0.091431744, 0.10011842) * go_1(1.0, 0.0); + result += mat4(-0.037540972, 0.02491563, 0.18000527, -0.05821429, 0.05302547, -0.104025975, -0.10679022, -0.030143606, 0.0072812764, 0.06054551, -0.1211288, 0.04456214, 0.023387795, -0.003822218, 0.0058639925, -0.022066886) * go_1(1.0, 1.0); + result += mat4(0.06184228, -0.056854323, -0.040505715, 0.06577085, 0.09438042, 0.08642222, -0.070353776, 0.053747497, -0.1001193, 0.1620346, 0.0022546488, -0.084673025, -0.063821726, -0.06516542, 0.021665785, -0.01931425) * go_2(-1.0, -1.0); + result += mat4(0.07393532, -0.030919692, -0.05093964, 0.041760188, 0.20542595, -0.14245859, -0.08730749, 0.066625066, -0.030148488, 0.04094324, -0.17595454, -0.16575092, -0.015094979, 0.08206526, 0.1878202, 0.030275505) * go_2(-1.0, 0.0); + result += mat4(0.04596692, 0.24388434, 0.075821444, -0.11463937, 0.04743361, 0.073697835, -0.12414068, -0.13001998, -0.016750317, -0.115090236, 0.029251577, -0.00256914, 0.01848034, 0.020216811, -0.050685663, 0.15878099) * go_2(-1.0, 1.0); + result += mat4(-0.07033339, -0.10033772, 0.13496423, 0.05642528, -0.035572313, -0.17283621, -0.116152726, 0.05493664, 0.09753486, -0.03360219, -0.0357413, -0.18149517, -0.121751696, -0.07030741, 0.013601298, 0.033133104) * go_2(0.0, -1.0); + result += mat4(0.09432236, -0.09759138, -0.119828485, -0.14183357, -0.5797675, -0.07471831, 0.04211549, 0.26251101, 0.5751412, 0.5531362, -0.20901033, -0.44464877, -0.1050692, 0.35440886, -0.06443669, -0.27186042) * go_2(0.0, 0.0); + result += mat4(-0.069436476, 0.10357919, 0.09300722, -0.0992018, -0.15164262, 0.12421031, -0.20876148, -0.18715572, 0.020070476, -0.06525974, 0.0032806133, -0.007204605, -0.047449, 0.23941353, 0.074678384, 0.059585877) * go_2(0.0, 1.0); + result += mat4(0.01769955, -0.010905215, -0.048443984, 0.07100768, 0.037357494, -0.014723261, -0.15591852, 0.10612296, -0.13143727, -0.029275576, 0.021462034, 0.011848447, 0.08220801, 0.15958358, -0.022226475, -0.06178906) * go_2(1.0, -1.0); + result += mat4(-0.043331016, -0.060601693, -0.13266426, 0.2410773, -0.09411715, -0.054481134, -0.010012133, 0.07868362, -0.03723713, -0.32002482, -0.19103771, 0.024575114, 0.12048997, -0.33372483, -0.13358098, -0.11907925) * go_2(1.0, 0.0); + result += mat4(-0.06852358, -0.025769785, 0.16419932, 0.028622756, 0.07738885, 0.19097409, 0.030017732, 0.08942453, -0.103945315, 0.27710587, 0.07438472, 0.04317445, 0.07197963, 0.23000222, -0.025056513, 0.09491253) * go_2(1.0, 1.0); + result += mat4(-0.14467122, -0.010201622, 0.0076316656, -0.07795532, -0.062397595, -0.20432428, -0.008252111, 0.0849895, 0.16180839, -0.12278075, -0.011521546, 0.03288935, -0.14986265, 0.06768003, 0.18093173, 0.036510453) * go_3(-1.0, -1.0); + result += mat4(-0.13757493, -0.022130862, -0.14063741, -0.15224035, -0.16418923, 0.02701367, 0.034051962, -0.02580273, -0.21267697, 0.1778992, -0.11384793, -0.14056513, -0.12628116, -0.119479865, -0.08586524, -0.042770755) * go_3(-1.0, 0.0); + result += mat4(0.034048863, 0.043504484, 0.14368454, 0.0682472, -0.1318885, -0.09097908, -0.022142543, 0.045874257, -0.00010490822, -0.35216293, 0.04821174, 0.1037435, 0.11491783, -0.03074008, -0.15504418, 0.002481289) * go_3(-1.0, 1.0); + result += mat4(0.15464644, 0.13155764, -0.025967255, -0.122360244, 0.0050367275, -0.030188441, 0.26694667, 0.09298438, 0.12436595, 0.1894544, 0.097955175, -0.1976165, 0.17701727, -0.39169946, 0.07254687, 0.18344238) * go_3(0.0, -1.0); + result += mat4(0.7450363, -0.021375138, 0.1908325, -0.43873882, 0.32581338, 0.06003156, -0.16481178, -0.097786136, 0.07664747, 0.083530955, -0.19303781, -0.2208752, 0.2954345, -0.020337705, 0.14045238, -0.19992891) * go_3(0.0, 0.0); + result += mat4(-0.13618276, 0.1301855, 0.07342773, -0.28985927, 0.1162901, -0.20089008, -0.036014035, 0.13122658, -0.121863954, 0.012138018, 0.17843567, 0.03828356, 0.048146408, 0.2968513, 0.069999285, -0.130018) * go_3(0.0, 1.0); + result += mat4(0.21915652, 0.05540849, 0.10738131, 0.07626957, -0.13932791, -0.26324788, -0.024981115, 0.100521, -0.3060648, -0.21207786, 0.1482194, -0.114556216, -0.09286606, 0.01816721, 0.018395979, -0.03223082) * go_3(1.0, -1.0); + result += mat4(0.007953473, 0.41586113, -0.12301476, -0.0714516, -0.18429835, 0.05822646, 0.003684946, 0.18452546, 0.07199102, -0.038058747, -0.11968186, 0.057275392, 0.018090919, 0.15575454, 0.14568369, -0.008162466) * go_3(1.0, 0.0); + result += mat4(0.0046069925, -0.14948042, -0.06077474, -0.18606511, -0.046001855, 0.072694264, 0.0853064, -0.07509439, -0.16638888, 0.008207148, -0.06407435, 0.0832239, 0.11806991, 0.08564391, -0.09793387, -0.009962631) * go_3(1.0, 1.0); + result += mat4(0.17163257, 0.17926122, 0.08094341, 0.01562118, 0.08006863, 0.16360049, 0.061501157, 0.015167974, 0.038785663, -0.024147237, 0.04187129, 0.020464495, 0.0043754554, -0.12979902, -0.116078086, 0.02519678) * go_4(-1.0, -1.0); + result += mat4(0.1390449, -0.31678367, -0.05487266, 0.028750261, -0.2432485, 0.4501461, 0.16770184, -0.21504217, -0.113885716, 0.24819264, 0.10844277, 0.16599967, 0.07485992, -0.15028708, -0.050178476, 0.058082305) * go_4(-1.0, 0.0); + result += mat4(0.025873372, 0.0873282, -0.00070206827, 0.038967356, -0.12720318, -0.036212232, 0.37016478, 0.08430346, -0.18743254, -0.075341664, -0.027113464, 0.0478065, 0.30386332, 0.03854462, -0.08687961, 0.043612193) * go_4(-1.0, 1.0); + result += mat4(-0.1514979, 0.20321548, -0.12928946, -0.08803361, 0.062216565, -0.26570085, 0.26420683, -0.0777953, 0.008385508, 0.112346895, -0.09958432, -0.1247562, 0.114825696, 0.12035607, 0.06491033, -0.036797147) * go_4(0.0, -1.0); + result += mat4(-0.24817157, 0.12276732, -0.21231028, 0.23803027, 0.43308944, 0.39496094, 0.15699469, 0.12618075, -0.037870817, 0.13224195, 0.007822175, -0.13612692, -0.07763684, -0.33213237, -0.0121766785, 0.16685596) * go_4(0.0, 0.0); + result += mat4(0.038585283, 0.04452951, 0.050363973, 0.027282275, -0.08253728, -0.06062145, 0.25581127, 0.04032097, 0.05333845, 0.023140023, -0.009572385, 0.16059966, -0.11572228, 0.044278048, 0.09749187, -0.15032573) * go_4(0.0, 1.0); + result += mat4(-0.03934602, -0.02766789, 0.026940307, 0.012599063, -0.31656685, 0.23716804, 0.44959545, -0.22446568, -0.054772135, -0.12735057, 0.057908695, -0.13251308, -0.08269784, 0.11659682, 0.098460965, 0.026333362) * go_4(1.0, -1.0); + result += mat4(-0.034531243, -0.034659956, 0.05089446, -0.039471556, -0.30950317, 0.10350312, 0.11603813, 0.08672152, -0.07706643, 0.29062438, 0.16422673, 0.074333824, 0.15247595, 0.068041846, -0.05291157, -0.15924777) * go_4(1.0, 0.0); + result += mat4(-0.008430657, 0.1884767, 0.15917906, 0.0063428413, -0.07987644, -0.04325211, -0.011584678, -0.010605869, -0.061187085, -0.09864619, -0.003040298, -0.08468758, 0.07886262, -0.14624445, -0.16320829, -0.01452985) * go_4(1.0, 1.0); + result += mat4(-0.08527653, -0.23416738, 0.06975244, 0.05253521, 0.061039444, -0.00083986257, 0.030380005, -0.023494298, -0.043048684, 0.14088461, 0.2651013, -0.069660574, -0.016013842, -0.051780187, -0.012583422, -0.033116736) * go_5(-1.0, -1.0); + result += mat4(-0.0006501486, -0.30294704, -0.22532716, 0.05011193, 0.065113634, 0.016704703, -0.045390636, 0.04377115, 0.11699081, 0.08135687, 0.020165889, 0.19826801, -0.018285288, -0.08564773, -0.26595154, -0.038110998) * go_5(-1.0, 0.0); + result += mat4(0.039095376, -0.0013404419, 0.012190645, 0.09428582, -0.11419318, 0.06917013, 0.034134097, 0.06616537, 0.03412512, 0.19301844, -0.055202305, 0.04042837, 0.04970565, -0.038846236, 0.13749482, -0.10204081) * go_5(-1.0, 1.0); + result += mat4(0.11721501, -0.12578778, 0.3620872, 0.21225488, -0.016926143, 0.006788099, -0.098553024, 0.07850037, 0.011090844, 0.029607147, -0.10133182, 0.09209217, -0.022987554, -0.20880799, 0.11736945, 0.051316652) * go_5(0.0, -1.0); + result += mat4(0.07336128, 0.12248782, 0.15166189, 0.19264354, 0.04438999, 0.14751169, -0.20144647, -0.13824841, -0.007747583, -0.16739956, 0.06877802, 0.35830194, 0.26836118, 0.16978757, 0.020257233, -0.13465263) * go_5(0.0, 0.0); + result += mat4(0.13214944, -0.06876062, 0.23750784, -0.021269983, 0.024918383, -0.26376384, 0.045127794, 0.13623215, 0.006213376, -0.08169226, -0.073229134, -0.007930807, -0.044477753, -0.0316362, 0.18907334, 0.11666457) * go_5(0.0, 1.0); + result += mat4(-0.043125346, 0.11734928, -0.075487934, 0.045608267, 0.0019688043, 0.050239112, 0.04037272, -0.05889949, 0.06669761, 0.12751873, 0.05863783, 0.0125279, -0.089946836, -0.12018046, -0.18921909, 0.023329671) * go_5(1.0, -1.0); + result += mat4(0.2132003, -0.31702018, -0.13358426, -0.08583953, 0.0059259925, -0.094208315, -0.11922049, -0.099796474, 0.09348341, 0.32579756, 0.1124768, -0.049808096, -0.23310517, 0.26437998, 0.11376541, 0.13568696) * go_5(1.0, 0.0); + result += mat4(0.20872836, -0.18229747, -0.24334186, 0.055828214, -0.05096774, -0.038215697, -0.15330918, 0.010210672, 0.018509107, 0.06662855, 0.029773839, 0.050827213, 0.18775174, -0.24382128, -0.28635338, 0.019148426) * go_5(1.0, 1.0); + result += vec4(0.0016613394, 0.059301294, -0.038810123, 0.10673296); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!SAVE conv2d_6_tf +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.063551076, -0.16613434, 0.12519288, 0.2613413, 0.026815815, 0.07070773, -0.021043811, -0.0669755, -0.19316983, -0.19476847, -0.15389214, -0.009875319, -0.0604898, -0.114369385, 0.027538, 0.13774374) * go_0(-1.0, -1.0); + result += mat4(-0.37544233, 0.12914102, 0.1366593, 0.31378758, 0.013987432, -0.06746779, -0.0083432635, 0.18277366, 0.09763598, 0.37610903, -0.04690116, -0.012697733, 0.26701328, -0.28395116, 0.20111044, -0.14729187) * go_0(-1.0, 0.0); + result += mat4(-0.11672882, -0.07698176, 0.128088, 0.04008766, 0.10915507, -0.06849285, 0.10052956, -0.043884028, 0.07211199, -0.10226781, -0.022282045, 0.23409745, -0.12000992, 0.24038276, -0.09234301, 0.0005270855) * go_0(-1.0, 1.0); + result += mat4(-0.09490642, -0.015582241, -0.19492888, -0.32142976, -0.08206514, -0.015905589, -0.058852483, 0.07062659, 0.26403823, 0.3431253, -0.026066927, -0.3181394, 0.08491617, 0.119145595, -0.13182211, 0.11299775) * go_0(0.0, -1.0); + result += mat4(-0.46511695, 0.041131947, -0.033913054, -0.02365193, -0.05553107, -0.07035273, -0.054731946, 0.14872038, 0.6574225, 0.43335545, -0.104082294, 0.07509184, -0.17075175, 0.45012367, -0.23016582, 0.11691375) * go_0(0.0, 0.0); + result += mat4(-0.11270771, 0.16805078, 0.06826135, 0.0033254998, -0.024538545, 0.09819631, 0.1497868, 0.07361046, 0.44126564, -0.08262802, -0.093892835, -0.017575772, 0.201439, -0.16137156, 0.020603918, -0.11584951) * go_0(0.0, 1.0); + result += mat4(-0.05802347, -0.008502925, 0.040704407, -0.018153232, 0.13748057, -0.01657812, 0.051693555, 0.049377594, 0.055863917, 0.033657834, -0.07277932, -0.090057924, -0.020979507, 0.045863025, -0.07975761, -0.051979877) * go_0(1.0, -1.0); + result += mat4(0.04014975, -0.08892218, 0.010484573, 0.10302432, 0.15378693, 0.08408517, 0.2501461, -0.24654758, 0.098134525, 0.02121331, -0.12720452, 0.18055904, -0.095695384, 0.07188886, -0.06675107, 0.024970558) * go_0(1.0, 0.0); + result += mat4(0.0036642263, -0.06313773, -0.037577838, -0.08352694, 0.015351579, -0.26856104, 0.006624689, 0.13869932, -0.17476316, 0.18687174, -0.10394873, 0.13418272, -0.079220034, 0.022169832, -0.031236127, -0.0339237) * go_0(1.0, 1.0); + result += mat4(-0.08630612, -0.0337143, -0.23126788, 0.06343892, 0.033023622, -0.03573692, 0.038431164, 0.13653663, -0.038872983, 0.0037933413, -0.04555905, 0.08925922, -0.13711931, -0.09402758, -0.010433323, 0.063199304) * go_1(-1.0, -1.0); + result += mat4(-0.097609736, -0.078787506, -0.08567856, 0.013807229, 0.07355257, -0.06374568, 0.14115064, -0.044682432, 0.14670128, 0.18986551, -0.15207475, 0.06219552, 0.06450654, 0.124214396, 0.009615842, 0.10263959) * go_1(-1.0, 0.0); + result += mat4(0.055290207, -0.040181328, -0.04919303, 0.020920292, 0.012198339, -0.06364409, -0.07055407, 0.036359143, 0.05182031, 0.23724687, 0.08679922, -0.18439333, 0.033763815, -0.011830226, 0.032295715, -0.07224721) * go_1(-1.0, 1.0); + result += mat4(-0.018177355, 0.05537294, 0.09365121, -0.11162771, 0.032960154, -0.3631022, 0.020872682, 0.026997598, 0.008251562, 0.0121242, 0.08893235, -0.2972536, 0.31769535, 0.21222967, 0.26210263, -0.07804949) * go_1(0.0, -1.0); + result += mat4(-0.09234649, -0.2313192, 0.2007695, -0.16570407, 0.4998518, 0.5021211, -0.23046456, 0.4675977, -0.04418793, 0.15888585, 0.634594, 0.08088828, 0.72703683, -0.10338289, 0.39535734, 0.08798907) * go_1(0.0, 0.0); + result += mat4(-0.07732275, 0.03470451, -0.0053107208, 0.12719902, 0.059666194, -0.09585871, 0.1990709, 0.071376435, 0.3475797, -0.22143288, -0.20879894, -0.07166567, 0.12787548, -0.02100069, 0.19628522, 0.30982283) * go_1(0.0, 1.0); + result += mat4(-0.0066751963, -0.10570687, -0.040173814, -0.111826494, 0.12028746, -0.011818079, 0.100319766, 0.050529975, -0.031993337, -0.0011481771, 0.028475156, 0.035728168, -0.104264215, -0.1322591, -0.0906199, 0.18882063) * go_1(1.0, -1.0); + result += mat4(0.08835854, 0.07846953, -0.00819189, 0.016579857, -0.12914272, 0.07969864, -0.11249944, 0.09885958, 0.05813271, 0.034933876, -0.10564021, 0.039766613, -0.34965426, 0.22660616, -0.37486964, -0.12369291) * go_1(1.0, 0.0); + result += mat4(0.11392956, 0.030622995, -0.04730621, -0.015045563, 0.085018255, -0.007865196, -0.025682064, -0.133319, -0.054862365, 0.062044714, 0.05505255, 0.16293961, 0.016092334, -0.02829063, 0.022702925, -0.12809299) * go_1(1.0, 1.0); + result += mat4(0.02367039, -0.10482778, -0.08608669, -0.062093236, 0.011747762, 0.022175042, 0.0071996297, -0.11276182, 0.028712617, 0.04126311, -0.0038132998, -0.1115989, -0.083056234, -0.009934547, -0.040698178, -0.12683636) * go_2(-1.0, -1.0); + result += mat4(-0.03936176, 0.013684187, -0.010472024, -0.10460055, 0.023214165, -0.010684623, 0.1418631, -0.09054893, -0.12086315, 0.17628363, -0.09017983, 0.058750905, -0.017493812, -0.017450733, 0.026728105, 0.00935395) * go_2(-1.0, 0.0); + result += mat4(-0.027332857, 0.0099790655, -0.08163504, 0.17689545, 0.0068078213, -0.023418542, 0.008682474, 0.02548335, -0.094120994, -0.06916872, -0.010798773, 0.08256571, 0.054553654, -0.06724611, 0.10275257, -0.03569369) * go_2(-1.0, 1.0); + result += mat4(0.08478009, 0.24308196, -0.05788887, -0.30866814, -0.01677214, -0.13036685, 0.114544466, 0.13763347, -0.1287353, -0.106372125, 0.06294474, -0.017131003, -0.036178716, 0.042261317, -0.04916793, 0.22008154) * go_2(0.0, -1.0); + result += mat4(0.113098085, -0.16627797, 0.2243724, 0.39611307, -0.14763622, -0.08843169, -0.041247193, 0.02559566, 0.26896805, -0.05941676, 0.081289455, -0.03463428, -0.32648194, -0.01743883, 0.14692393, -0.1419451) * go_2(0.0, 0.0); + result += mat4(-0.08624417, 0.039859742, -0.1319016, -0.13784388, -0.037280608, 0.04094322, -0.09264864, -0.14406647, 0.08943151, -0.012913666, 0.07797073, -0.011788144, 0.00781559, 0.09687341, -0.075485185, 0.029234888) * go_2(0.0, 1.0); + result += mat4(-0.03461818, -0.0578239, -0.11940533, 0.19817612, -0.06190108, 0.009414874, 0.00055699307, -0.032922342, 0.09611396, 0.017270042, 0.031782333, 0.053475976, -0.06507406, -0.11098162, 0.021986434, -0.15281019) * go_2(1.0, -1.0); + result += mat4(0.03300026, 0.14729956, -0.11484497, -0.09993908, 0.049616348, -0.075125255, 0.0945234, -0.071549594, -0.12840901, 0.17766954, -0.19627832, 0.115563445, 0.021435678, -0.13213344, 0.106521055, -0.045743156) * go_2(1.0, 0.0); + result += mat4(-0.07923801, -0.10016722, -0.15136302, -0.09258758, 0.041234676, 0.03441316, 0.112843126, 0.06979639, -0.10960315, 0.024976972, -0.11591057, 0.0046735895, 0.043591797, -0.1226487, 0.06454461, 0.1111232) * go_2(1.0, 1.0); + result += mat4(-0.029166799, 0.024781128, -0.04604433, -0.17043193, 0.04155139, -0.024739308, -0.00026802288, -0.07082753, 0.0899422, 0.09071587, 0.06616202, 0.06050842, -0.05764436, 0.10596236, 0.02040071, -0.17497559) * go_3(-1.0, -1.0); + result += mat4(-0.09035089, 0.0659, -0.14361084, -0.021721302, 0.016794743, 0.09347604, 0.1380016, -0.25160387, 0.17140736, 0.29569083, 0.121337526, -0.26241425, 0.06574208, -0.08532672, 0.09675172, 0.061919414) * go_3(-1.0, 0.0); + result += mat4(0.0777134, 0.021917641, 0.08300268, 0.025749028, -0.109934434, -0.25188968, -0.0045595216, -0.05616794, 0.028348224, -0.020761484, 0.06998775, -0.21368878, 0.03502115, 0.084822185, -0.053608585, 0.0076402165) * go_3(-1.0, 1.0); + result += mat4(-0.019782236, -0.02927372, 0.08717013, 0.073102064, 0.00052576384, -0.015302635, 0.0621273, -0.00017607084, -0.029963085, -0.13835284, 0.11283739, 0.112313755, -0.01647687, -0.07729588, 0.04615463, 0.24352066) * go_3(0.0, -1.0); + result += mat4(0.021634975, -0.23471251, 0.2007633, -0.07243054, -0.34169427, -0.3459408, -0.49702102, 0.062072285, 0.29644236, 0.0050523616, -0.27118742, -0.06865384, 0.101680025, 0.38019192, 0.13146457, 0.027077101) * go_3(0.0, 0.0); + result += mat4(-0.013608211, -0.077774465, -0.045174483, -0.023265246, 0.1321979, 0.3753417, 0.16121203, 0.019047128, 0.064994924, 0.052409865, 0.10563419, -0.00085220096, 0.11251547, -0.10566402, 0.0028090205, -0.10063887) * go_3(0.0, 1.0); + result += mat4(0.046679504, 0.058594946, -0.06533285, -0.15811534, -0.07416471, 0.06988486, -0.04314425, 0.009497584, -0.009757547, -0.038767483, 0.17787239, 0.077745095, -0.0020354164, -0.058167685, 0.105233066, -0.06689146) * go_3(1.0, -1.0); + result += mat4(0.12626402, 0.039072312, 0.10418004, -0.07277218, -0.02922791, -0.19852047, 0.24927165, -0.18751998, -0.08083378, -0.14444499, -0.058351975, -0.02419644, 0.12217534, -0.048507757, -0.08333956, 0.00162865) * go_3(1.0, 0.0); + result += mat4(-0.029149413, -0.023871707, 0.022741226, 0.10378588, -0.0073062726, 0.036854163, -0.1929113, -0.12620242, -0.03716381, -0.018090466, 0.10779782, -0.019924738, 0.068666615, 0.07481716, 0.10826988, 0.14435701) * go_3(1.0, 1.0); + result += mat4(-0.107568674, 0.12906614, -0.11304603, -0.07186676, 0.12917557, 0.04622498, 0.052623924, 0.027181726, 0.03726036, -0.05536048, -0.056134712, 0.0692713, -0.0931205, -0.013530341, -0.079496436, 0.07122584) * go_4(-1.0, -1.0); + result += mat4(0.21643913, 0.008973324, 0.2473282, -0.22151545, 0.10534174, 0.014311179, 0.12648374, -0.33117563, -0.115273096, -0.07306515, -0.019514188, 0.03442445, 0.02174929, 0.15782723, -0.15441503, -0.024714287) * go_4(-1.0, 0.0); + result += mat4(-0.09689197, 0.019095143, -0.034944948, -0.20796263, 0.06224929, -0.0023227853, 0.07867864, -0.046337705, -0.097502016, -0.0011326018, -0.047669414, 0.07279011, -0.04423047, 0.014121719, -0.026950205, 0.14154369) * go_4(-1.0, 1.0); + result += mat4(0.11617495, 0.46741408, 0.07166562, -0.3171231, -0.06699714, 0.12959749, 0.10611542, -0.08962664, -0.055559576, 0.08383856, -0.07885361, -0.076587684, -0.0048291516, -0.04309975, 0.045905527, 0.036698442) * go_4(0.0, -1.0); + result += mat4(0.0036613978, -0.03133137, -0.09741661, 0.4476952, -0.05623356, -0.5347433, -0.15121926, -0.62327516, -0.34650013, -0.3848976, -0.1020635, 0.12372888, -0.17733924, -0.3116026, -0.26149738, -0.12756832) * go_4(0.0, 0.0); + result += mat4(-0.18341129, 0.27638572, 0.18640736, 0.07301684, 0.0031105333, 0.10374691, -0.118262894, -0.12854561, -0.07307097, -0.0043694526, -0.103828765, 0.0033327888, -0.11450939, -0.036062073, -0.08388783, -0.18569045) * go_4(0.0, 1.0); + result += mat4(-0.06513565, -0.0906451, -0.07992863, 0.1555351, 0.053517826, 0.059623975, -0.04589495, -0.06759139, 0.041854616, -0.022462321, -0.03875089, 0.099266365, -0.04334954, -0.011625454, -0.03120097, -0.028311051) * go_4(1.0, -1.0); + result += mat4(-0.2698161, 0.4855855, 0.29649052, 0.08579708, -0.17665233, 0.11236429, 0.17814405, 0.2936427, 0.0014580752, -0.01460852, 0.12992013, -0.06554696, 0.08688421, 0.016707266, -0.035805132, -0.21390212) * go_4(1.0, 0.0); + result += mat4(0.087546945, -0.08082606, 0.026020724, -0.22158769, 0.079808585, 0.008027633, 0.17506911, 0.24715161, -0.089454755, -0.12723146, -0.014873311, -0.080931105, -0.037702024, 0.069683395, 0.03398877, 0.050660603) * go_4(1.0, 1.0); + result += mat4(0.18083133, 0.072747, 0.026843961, 0.060125593, -0.0028814252, 0.055027924, -0.23592432, -0.3128924, 0.07353004, -0.040734287, 0.063891344, 0.12827826, 0.035035152, -0.07543958, 0.084599234, 0.13021721) * go_5(-1.0, -1.0); + result += mat4(0.063158885, 0.08223479, 0.069820456, 0.021643702, 0.07788084, -0.078388534, 0.13722488, 0.25833505, -0.10396639, 0.0041446807, 0.023278937, 0.22537926, 0.17745169, 0.22081025, -0.09535902, -0.12220001) * go_5(-1.0, 0.0); + result += mat4(-0.05432123, 0.087425314, 0.018276695, -0.124169916, -0.00543602, 0.12574154, -0.06011572, 0.04701218, -0.10479224, 0.032153737, -0.06034692, 0.16422245, -0.13862014, -0.06484846, -0.064395554, 0.20665741) * go_5(-1.0, 1.0); + result += mat4(-0.11319914, 0.18695734, 0.3806953, -0.069110036, -0.24979821, 0.26608357, 0.45578855, -0.37055442, 0.08747221, 0.11386838, -0.09471413, -0.17466134, 0.20953615, 0.20999484, 0.12287149, -0.41018328) * go_5(0.0, -1.0); + result += mat4(0.5564517, -0.2048937, -0.3816632, -0.06279082, -0.38774204, 0.21217284, -0.18890436, 0.14043479, 0.024926476, 0.17045365, 0.048644193, -0.17100555, -0.15697347, -0.35342333, 0.068213716, -0.41174227) * go_5(0.0, 0.0); + result += mat4(0.045869917, -0.0015854153, 0.08683202, 0.09068768, -0.083463475, -0.31756514, 0.1342369, -0.088171095, 0.056276016, -0.23685989, 0.014580776, -0.2547697, 0.0940006, -0.043395106, 0.2034087, -0.022825241) * go_5(0.0, 1.0); + result += mat4(-0.103751905, 0.069453366, -0.109700166, 0.042392224, 0.080248766, 0.094016075, -0.17143534, 0.05994925, -0.018760482, -0.04515021, 0.014608747, 0.06235974, -0.04300025, 0.093254045, -0.048682634, 0.28064325) * go_5(1.0, -1.0); + result += mat4(-0.014232481, -0.08903044, 0.019999523, -0.020324621, -0.24016748, -0.2474486, -0.40321103, -0.15829015, -0.13566887, -0.041250605, -0.04751285, 0.057329945, 0.10219304, 0.05605011, -0.025595296, -0.01614233) * go_5(1.0, 0.0); + result += mat4(0.025537677, 0.12660079, 0.051864993, 0.075601384, -0.021362955, 0.19969231, 0.123610884, 0.07575372, -0.061927922, 0.06550312, -0.05508335, 0.11704227, -0.13762979, 0.1817394, -0.18983638, -0.049257904) * go_5(1.0, 1.0); + result += vec4(-0.12422661, 0.036567487, -0.031888038, -0.011536189); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!SAVE conv2d_6_tf1 +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.031695515, -0.31290495, 0.17557557, -0.10072623, 0.037879907, 0.07773684, 0.015941558, -0.1166975, 0.19065462, -0.18290205, 0.233234, 0.028230593, -0.16707195, -0.10103979, -0.1561307, 0.09858236) * go_0(-1.0, -1.0); + result += mat4(-0.37433225, -0.37697765, 0.15590142, 0.3016965, 0.014981114, -0.07988245, 0.014191019, -0.0011213939, -0.11375956, -0.052503657, -0.013733191, 0.15110013, 0.009139605, 0.1890766, -0.29809618, -0.31938305) * go_0(-1.0, 0.0); + result += mat4(0.043140218, -0.1566104, -0.002536191, -0.16493355, -0.211366, -0.021915436, -0.28728947, -0.14439434, 0.095511094, 0.056860972, -0.08280981, -0.21611294, 0.13561454, 0.0033129812, 0.14235094, 0.3003919) * go_0(-1.0, 1.0); + result += mat4(0.010960085, 0.00600542, -0.2367317, 0.021453537, -0.03856116, -0.034778543, 0.164726, 0.13019681, -0.07757383, 0.33985314, -0.23832978, 0.095343575, 0.022204291, 0.20711215, 0.15877703, 0.2751253) * go_0(0.0, -1.0); + result += mat4(0.19641247, 0.032707132, 0.04379372, -0.21997298, -0.035852924, 0.06185132, 0.1484587, -0.36117685, -0.46992078, -0.41587535, 0.37467077, 0.09044606, -0.06615961, -0.4794214, 0.039470922, -0.3396352) * go_0(0.0, 0.0); + result += mat4(0.16657054, -0.039237928, 0.03857829, 0.049146365, 0.0401756, -0.03342998, 0.20032202, 0.05834436, 0.088986784, -0.16494772, -0.33883873, 0.18655993, -0.15986481, 0.091252044, 0.041209027, 0.15528268) * go_0(0.0, 1.0); + result += mat4(0.048688952, -0.009118804, 0.02290845, -0.17133589, -0.17210291, -0.027337966, -0.13893692, -0.07628787, -0.011510589, -0.04428704, 0.0015265835, -0.1197242, -0.011102018, -0.012120708, 0.06624063, 0.009720241) * go_0(1.0, -1.0); + result += mat4(-0.27416044, -0.120502286, 0.17721373, -0.16811286, -0.014482372, 0.02126685, -0.091303095, -0.16043608, 0.27898774, 0.17883328, -0.2844939, 0.21557346, 0.090356916, 0.10218719, 0.011249428, -0.10255321) * go_0(1.0, 0.0); + result += mat4(-0.12067477, -0.07217142, -0.04221149, 0.019745756, -0.26648012, -0.19199371, 0.029601155, 0.13147698, 0.23245896, 0.11450761, 0.1694102, -0.2318312, 0.0016206031, -0.0178794, 0.11511889, 0.04575681) * go_0(1.0, 1.0); + result += mat4(0.18695508, 0.045567334, 0.17440668, -0.42288253, -0.02287028, 0.05679073, -0.05641905, 0.12937486, 0.08140183, 0.013775387, 0.085393906, -0.124689564, 0.02426034, -0.08368493, -0.03149937, 0.12990832) * go_1(-1.0, -1.0); + result += mat4(-0.10630359, -0.05139905, -0.14252634, 0.12539144, -0.07805999, -0.16011941, -0.12794735, 0.0023225932, -0.29767594, -0.0324489, -0.08008453, -0.10285779, 0.10714244, 0.07701981, 0.0861595, 0.032702547) * go_1(-1.0, 0.0); + result += mat4(-0.011266752, 0.032032244, -0.16621222, 0.025718216, -0.13606001, 0.049900856, -0.12395804, -0.023709433, -0.019833436, 0.05525729, 0.043920193, 0.07480689, -0.06805129, -0.050729908, 0.015684852, -0.07608439) * go_1(-1.0, 1.0); + result += mat4(-0.2432357, -0.08149558, -0.0954787, 0.13050736, 0.0658002, -0.15775995, -0.26192164, 0.07967364, -0.050966308, -0.15967421, -0.09035987, -0.19794956, 0.040908057, 0.1914722, -0.1416288, 0.20905873) * go_1(0.0, -1.0); + result += mat4(-0.31780317, -0.0037020883, 0.057150707, 0.4200519, 0.5618687, -0.047172155, -0.12254693, -0.014847399, 0.37398118, 0.3375763, 0.16677848, -0.06745357, 0.17024885, -0.22058573, -0.30246857, -0.5453735) * go_1(0.0, 0.0); + result += mat4(0.30349696, 0.009769963, 0.28675693, -0.118276045, 0.0057877507, 0.10974996, -0.072690375, 0.030470189, -0.6150014, 0.17645302, 0.2928011, 0.07855985, 0.17192386, 0.12024906, -0.07183019, 0.10537094) * go_1(0.0, 1.0); + result += mat4(-0.088262424, -0.14806455, 0.08148428, 0.10594823, 0.049873143, -0.013990187, 0.07425902, -0.030937834, 0.016817184, 0.08583546, -0.111037634, 0.09831576, 0.052983984, 0.024797885, 0.15503147, -0.052295715) * go_1(1.0, -1.0); + result += mat4(0.09108395, 0.025693672, -0.17206948, -0.02877885, 0.008410392, -0.08324596, -0.05451186, 0.10528576, -0.09902025, 0.20654637, -0.15849939, -0.022103371, 0.06444531, -0.12143805, 0.20113671, 0.14274625) * go_1(1.0, 0.0); + result += mat4(0.005467573, 0.16239832, -0.28808126, -0.21795005, -0.06378709, -0.0672865, -0.052615914, -0.08036216, 0.10728027, -0.09125139, -0.0835933, -0.08187764, 0.05370785, -0.019258037, -0.23184206, 0.2632737) * go_1(1.0, 1.0); + result += mat4(-0.05926071, 0.07018913, -0.021344975, 0.054756, -0.052149706, 0.0037597087, 0.0025042086, -0.04395278, 0.12245118, 0.04250789, 0.082335964, -0.014749995, -0.08621224, -0.023798082, 0.06332712, -0.11675374) * go_2(-1.0, -1.0); + result += mat4(-0.32227162, -0.14337637, -0.23739144, -0.19812642, -0.09722166, 0.009280866, 0.04054724, 0.15704393, 0.07489584, -0.11492752, 0.09819001, 0.15120374, -0.14586051, -0.16354702, 0.23314816, -0.0022859343) * go_2(-1.0, 0.0); + result += mat4(0.16142578, 0.075490505, -0.021885784, 0.06261672, 0.041199893, 0.03871687, 0.023842737, -0.011376236, 0.0767961, -0.045730814, 0.22563088, -0.09038255, -0.18399398, -0.04494118, -0.095894225, 0.030498588) * go_2(-1.0, 1.0); + result += mat4(0.12479204, 0.101474956, 0.36386368, -0.050215095, 0.07824311, -0.10407957, -0.04313255, 0.32900745, -0.192804, -0.19723284, -0.06199248, 0.024969265, 0.22347516, 0.0065552266, 0.16316769, -0.03117915) * go_2(0.0, -1.0); + result += mat4(-0.41610017, -0.26189142, 0.9749233, -0.2030862, -0.018032711, 0.010767388, 0.021800261, -0.0042601344, -0.23240276, 0.3338158, -0.17494468, 0.17937262, 0.07974937, 0.33006057, -0.1869896, -0.37869284) * go_2(0.0, 0.0); + result += mat4(-0.071573325, 0.007554784, -0.102258176, 0.10642047, -0.09556476, -0.017912954, -0.14906247, 0.026633078, -0.08621331, 0.0017594047, -0.19624764, -0.115420476, 0.080624446, 0.05765888, 0.13215272, -0.035700615) * go_2(0.0, 1.0); + result += mat4(-0.0699439, -0.031065576, -0.1347926, 0.04561651, 0.026325148, 0.04517171, 0.027460657, 0.07887253, 0.09662138, -0.032300167, 0.18762928, 0.017682185, -0.21272552, -0.120953396, 0.07463968, 0.16759431) * go_2(1.0, -1.0); + result += mat4(0.031983048, 0.091939285, -0.29471913, -0.17392102, -0.029960087, -0.045441393, 0.11517783, 0.043017738, 0.19772391, 0.18100426, -0.023260262, 0.047123328, -0.34043354, -0.14247705, 0.2169891, -0.022246636) * go_2(1.0, 0.0); + result += mat4(-0.17198563, -0.23428284, 0.004200898, -0.024755895, 0.08732965, -0.0014298835, 0.14354117, -0.04866547, 0.040317383, -0.06782393, -0.098272204, 0.0007879826, -0.09150929, -0.013316801, 0.001446828, 0.017795574) * go_2(1.0, 1.0); + result += mat4(0.047712177, 0.050632354, 0.16054401, 0.043701835, -0.0639787, -0.027759142, -0.1216413, 0.06168221, 0.09751688, -0.0066430112, -0.06975059, -0.10249115, -0.12326384, -0.0046392973, -0.03523632, 0.11676963) * go_3(-1.0, -1.0); + result += mat4(0.0820976, -0.011279764, 0.06630965, 0.09390872, -0.24890396, -9.822562e-05, -0.114006236, 0.16826034, -0.082640596, 0.019303065, 0.14685081, 0.07503404, -0.17926271, -0.07983414, -0.04422908, 0.11301981) * go_3(-1.0, 0.0); + result += mat4(0.03553145, 0.0047965297, 0.08901363, 0.004263101, -0.15945294, -0.114194945, -0.059667293, 0.049415316, -0.09466441, -0.05142749, 0.15767507, -0.11340187, 0.10369652, 0.085223176, -0.06318044, -0.11618208) * go_3(-1.0, 1.0); + result += mat4(-0.17031148, -0.11489388, 0.24808751, 0.030365555, 0.054884836, -0.041506488, 0.038115, -0.064155854, 0.120106734, -0.100374915, -0.2048057, 0.09855774, 0.34214836, 0.01592769, 0.3974824, -0.009733501) * go_3(0.0, -1.0); + result += mat4(-0.37295908, 0.05345721, 0.24855454, 0.18375815, 0.41732857, 0.059994586, 0.14148045, 0.15674202, 0.2914617, 0.28635538, 0.21487242, -0.16498509, 0.26191583, 0.34904888, -0.001136933, -0.047465373) * go_3(0.0, 0.0); + result += mat4(-0.12775165, -0.13414834, 0.035279494, 0.0065703453, 0.21533409, -0.025021361, 0.3468732, -0.08434002, -0.0125741605, 0.0472579, -0.006702024, 0.03674878, -0.1543125, 0.12252382, -0.15259196, -0.10377763) * go_3(0.0, 1.0); + result += mat4(-0.05423773, 0.076934956, -0.03817735, -0.0006111581, 0.017648958, 0.061248343, -0.01635863, 0.015901048, -0.14749493, -0.041009318, 0.030646784, 0.021186778, -0.15973417, 0.032205433, -0.36817935, 0.17054902) * go_3(1.0, -1.0); + result += mat4(0.009821799, 0.023463782, -0.04574981, -0.03205052, -0.11479379, -0.1499543, -0.10254226, 0.14878044, -0.18908015, -0.057776958, 0.22117394, -0.008997101, -0.10566478, 0.029807804, 0.06296724, -0.09863535) * go_3(1.0, 0.0); + result += mat4(0.012764414, 0.08003188, -0.079312325, 0.10915366, -0.14269702, 0.15378389, -0.11343741, -0.07815755, -0.028972412, -0.07575102, 0.104069054, 0.16929798, 0.08356986, -0.008557804, 0.1077067, -0.104730316) * go_3(1.0, 1.0); + result += mat4(0.14354274, 0.027146077, 0.06354999, -0.15823694, 0.11064279, 0.05926018, -0.09556645, -0.13623793, 0.064755484, -0.009504007, -0.04298976, -0.22026266, 0.19957776, -0.009840124, 0.08703728, 0.07162153) * go_4(-1.0, -1.0); + result += mat4(-0.2091648, -0.0857283, -0.30748418, 0.21271354, -0.18100224, -0.0055695246, -0.06332844, 0.17306994, 0.0077473186, 0.037243642, 0.012746569, 0.37735906, 0.23314455, 0.19154081, 0.05688001, -0.23929437) * go_4(-1.0, 0.0); + result += mat4(0.063928135, 0.058101837, -0.07964053, 0.09656037, 0.06193066, 0.052388765, 0.019220868, 0.09141577, 0.07279361, 0.03293571, 0.04207099, 0.100502975, 0.07098165, -0.03792573, 0.029752802, 0.00073165854) * go_4(-1.0, 1.0); + result += mat4(-0.061411377, 0.44493172, -0.2499116, 0.16028905, -0.24095571, -0.09098111, 0.2505775, -0.20317478, -0.046060897, 0.026942013, -0.1443618, -0.09946402, -0.2845509, 0.02574587, -0.10171842, 0.32726362) * go_4(0.0, -1.0); + result += mat4(0.41548893, 0.55772763, 0.21224521, -0.2974941, -0.1518538, -0.096886665, 0.25241733, 0.48857507, -0.23768853, -0.24405806, 0.04989141, 0.18301181, -0.39112365, -0.29253578, 0.059537925, -0.01779737) * go_4(0.0, 0.0); + result += mat4(0.038118728, 0.02858742, 0.6223735, -0.2673519, -0.0107285725, -0.05190993, 0.009639665, -0.01759551, 0.056182634, 0.0017370619, 0.015566999, 0.37397447, -0.18057133, -0.16243981, -0.06748175, 0.057786137) * go_4(0.0, 1.0); + result += mat4(-0.011669291, -0.110343516, 0.28674936, -0.04969038, 0.32003263, 0.064857155, 0.013674471, -0.039692417, 0.040436286, -0.06889466, 0.037186123, -0.05564364, -0.025551032, -0.11479799, -0.12857372, -0.052941844) * go_4(1.0, -1.0); + result += mat4(0.28328392, 0.39322296, 0.36961278, -0.3133618, 0.4632272, 0.11075263, 0.14776857, 0.29629925, -0.106794536, -0.17243811, 0.06743955, -0.06816463, 0.19705069, 0.16638671, -0.47120842, 0.15028188) * go_4(1.0, 0.0); + result += mat4(-0.24694128, -0.13387236, 0.013511744, 0.23480985, 0.15844229, 0.15348844, 0.08692795, -0.026089827, -0.18550861, -0.105919205, 0.13584319, 0.14189197, 0.098633386, 0.03923177, 0.17303325, 0.0035986274) * go_4(1.0, 1.0); + result += mat4(0.07525532, -0.049425937, -0.045742936, -0.34401855, 0.23614922, 0.1365458, 0.5367143, -0.34322664, 0.08580669, -0.021081364, 0.32258797, 0.054717902, 0.011307636, -0.13174307, 0.10635861, 0.15759683) * go_5(-1.0, -1.0); + result += mat4(0.2053648, 0.11536576, 0.06543424, 0.273532, 0.004836322, -0.1135091, -0.13175261, -0.010553481, 0.26788777, 0.0052754665, 0.21684328, -0.038834624, 0.15681003, 0.2551737, -0.08061695, -0.2621798) * go_5(-1.0, 0.0); + result += mat4(-0.0026197245, -0.04237014, 0.15965913, 0.011015912, 0.13959743, 0.0613557, -0.057478882, 0.04333705, 0.02150156, 0.02613718, 0.029849462, 0.04144389, 0.060642015, -0.055863846, 0.07513707, -0.030098947) * go_5(-1.0, 1.0); + result += mat4(-0.25804156, 0.07992937, -0.2194363, -0.07638968, -0.31182626, 0.06877212, 0.26326504, -0.07852368, 0.005371965, 0.13532336, -0.27899355, -0.21762428, -0.11019938, 0.3272873, -0.18966602, 0.13429517) * go_5(0.0, -1.0); + result += mat4(0.13235348, 0.19412184, -0.14834474, 0.045169294, -0.12562896, 0.42018193, -0.111528605, 0.14010738, -0.19459967, 0.013526394, -0.41562226, 0.0028783067, -0.62609005, -0.3033415, 0.4712338, 0.8222809) * go_5(0.0, 0.0); + result += mat4(0.09286205, 0.09806087, -0.07340961, -0.17533489, 0.027318375, -0.10870942, -0.038293675, -0.16472916, -0.1825589, -0.052559845, -0.30276018, -0.14359148, -0.21606436, -0.110118784, 0.016834917, -0.17742018) * go_5(0.0, 1.0); + result += mat4(-0.020260928, 0.087848864, 0.047859445, -0.047904506, 0.048111416, 0.1583765, -0.20442098, -0.100690275, -0.0013411752, -0.07799378, 0.15336171, -0.10123076, 0.17678842, 0.17897983, -0.09674411, -0.011004586) * go_5(1.0, -1.0); + result += mat4(-0.018577576, -0.06431042, 0.09155964, 0.015572989, -0.2997381, -0.27266306, -0.038626052, 0.049783256, -0.0104627805, -0.00770176, 0.11773571, 0.1784294, 0.09392711, 0.034571096, 0.11028318, -0.09109526) * go_5(1.0, 0.0); + result += mat4(0.16055113, 0.090300724, -0.03638531, -0.04085534, 0.08429917, 0.020470984, -0.19414762, -0.3244146, 0.14926222, -0.04275537, 0.3243775, -0.27660474, 0.21811403, 0.00095158996, -0.029139725, -0.14773428) * go_5(1.0, 1.0); + result += vec4(0.07794292, -0.028107546, -0.059174247, 0.018621715); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x3x3x24 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!SAVE conv2d_6_tf2 +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max((conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_4(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_5(x_off, y_off) (max(-(conv2d_5_tf2_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.24537118, 0.17905983, 0.07789307, 0.016952513, 0.0141091775, -0.011334478, -0.031922385, -0.002754333, -0.09490796, 0.056371696, -0.011801579, -0.13965698, -0.035000853, -0.004262493, 0.07772451, 0.08179461) * go_0(-1.0, -1.0); + result += mat4(0.49467468, 0.0060151266, -0.16210476, 0.44510034, 0.032212194, 0.028270312, -0.002976181, -0.0750645, -0.120187126, -0.3223084, -0.036695287, -0.27901456, 0.026024181, -0.38380507, -0.107403666, 0.106261775) * go_0(-1.0, 0.0); + result += mat4(-0.27276495, 0.07816642, 0.16584107, 0.3256445, -0.003785352, -0.05884198, -0.028097598, 0.09085398, 0.18065354, 0.12995216, -0.012668798, -0.18628691, 0.14217433, 0.060047373, 0.13106324, 0.002042596) * go_0(-1.0, 1.0); + result += mat4(-0.086455494, -0.14862305, -0.525558, 0.16174366, -0.07319531, 0.15502526, -0.010380826, -0.07271152, 0.19700976, 0.046370283, 0.11651438, 0.081478894, 0.19148621, 0.03100971, 0.1023476, 0.07874108) * go_0(0.0, -1.0); + result += mat4(0.6140143, -0.027726987, -0.009253838, -0.2904735, -0.0004950705, -0.17041264, -0.16776061, 0.0082762465, -0.3594797, 0.2532505, -0.6598625, 0.19527398, -0.2580451, -0.047699004, -0.19487855, 0.26656064) * go_0(0.0, 0.0); + result += mat4(-0.05993486, 0.05261301, -0.11092236, -0.07093469, -0.12740676, 0.28895375, -0.024522636, 0.10566457, 0.25105092, -0.19367103, 0.31918752, -0.08284367, 0.010306112, -0.16058734, 0.025336768, -0.1421889) * go_0(0.0, 1.0); + result += mat4(-0.30034626, 0.20041251, 0.038978297, 0.24891369, 0.16952564, -0.08357092, 0.0041356883, -0.11644513, 0.09228839, -0.112779655, 0.026311902, 0.06545678, 0.0698254, -0.112796366, 0.0029497906, 0.03857845) * go_0(1.0, -1.0); + result += mat4(0.16609864, -0.22584435, -0.24474208, -0.27484784, -0.31675163, 0.07935485, 0.18763326, 0.13037825, 0.11668147, -0.2776588, -0.11885876, -0.051946215, 0.0821847, 0.012703901, -0.0351841, -0.10732197) * go_0(1.0, 0.0); + result += mat4(0.14786936, 0.04071705, 0.030221082, -0.120953605, -0.013662891, -0.14799207, -0.028566806, -0.13245614, 0.09371325, 0.0018758543, -0.075789824, 0.021227634, -0.0687209, 0.04126068, 0.01861056, 0.00038673988) * go_0(1.0, 1.0); + result += mat4(-0.2150947, 0.019924847, -0.057041053, -0.055024747, 0.04864997, -0.010266812, 0.12674728, 0.0916339, 0.02709077, -0.042510916, -0.15185884, -0.1128658, 0.054390796, -0.12276366, -0.07853503, 0.16050841) * go_1(-1.0, -1.0); + result += mat4(0.14254624, 0.09403803, -0.077061795, -0.040265787, -0.1851944, 0.03568108, -0.064231634, 0.057467405, 0.10839864, 0.67165095, 0.31980324, -0.22381754, -0.094957665, 0.081498906, 0.061563525, -0.061372254) * go_1(-1.0, 0.0); + result += mat4(-0.026212232, -0.016600188, -0.032421675, -0.018441828, -0.0039220974, -0.092276715, -0.05251956, -0.0014283194, -0.07582186, -0.34406552, 0.012223887, 0.16421928, 0.067920506, -0.04867461, -0.025583208, -0.02245058) * go_1(-1.0, 1.0); + result += mat4(0.06561416, 0.08525047, -0.06454739, 0.03325223, -0.2756252, -0.07606139, -0.16622546, -0.19015047, -0.0942788, 0.055729307, 0.08911129, 0.036073096, 0.2819285, 0.27803645, 0.41541302, -0.46012112) * go_1(0.0, -1.0); + result += mat4(0.116886355, 0.25485554, -0.08467562, 0.015698416, 0.120505005, 0.14997847, 0.35307086, 0.06391821, 0.2480685, -0.91017604, 0.30765083, 0.41334546, -0.2484761, 0.0036243596, -0.17822865, -0.0688765) * go_1(0.0, 0.0); + result += mat4(-0.018610235, 0.10026272, 0.09050735, 0.09349237, -0.32725444, -0.04461541, -0.08524241, -0.07169624, -0.17375232, -0.04668291, 0.1105147, -0.21981657, 0.14551818, -0.09236485, 0.22311887, 0.22838955) * go_1(0.0, 1.0); + result += mat4(-0.046239845, 0.092623316, 0.06968011, -0.07118946, -0.112399414, 0.12900421, 0.1622531, -0.06568552, -0.0046933675, -0.015529387, -0.035191614, 0.01626195, -0.081475765, -0.05045334, -0.087063916, -0.2726226) * go_1(1.0, -1.0); + result += mat4(0.20086902, -0.105082855, 0.064632416, 0.032850675, -0.14514364, -0.08420714, -0.49481058, 0.20139864, 0.17293651, -0.013185847, 0.061619177, 0.3313921, -0.3385868, 0.23518777, -0.33251905, 0.17975967) * go_1(1.0, 0.0); + result += mat4(0.06966267, -0.06778524, -0.013489221, 0.08452447, -0.06677413, 0.024880748, 0.0966029, -0.14441288, 0.117813595, -0.021073775, -0.10008402, 0.16905701, 0.1681992, 0.023752017, 0.10749209, 0.12432793) * go_1(1.0, 1.0); + result += mat4(-0.1513078, -0.093761355, -0.0030828249, -0.110072024, -0.055719357, -0.009922474, -0.043953415, 0.050671145, -0.060472284, 0.028386949, -0.013459928, -0.081548885, -0.0835807, 0.02647864, -0.20652756, -0.0060736574) * go_2(-1.0, -1.0); + result += mat4(0.028220167, -0.028944401, -0.19519375, 0.13515931, -0.00042262973, 0.08360426, 0.010636624, -0.030487528, 0.27422678, -0.045074224, 0.07301797, 0.006780949, -0.08468292, -0.04887693, -0.09148827, 0.018867895) * go_2(-1.0, 0.0); + result += mat4(0.1262579, 0.018898701, 0.13322218, 0.035301305, -0.07070634, -0.0078546405, 0.027999826, 0.048316766, -0.15131034, 0.0023264016, 0.013600765, -0.034428634, -0.07507105, -0.08255354, -0.08881507, -0.071658276) * go_2(-1.0, 1.0); + result += mat4(-0.02041055, 0.22154346, 0.26627985, 0.0605345, -0.058928274, -0.06632422, 0.009541804, 0.030693937, -0.11625062, 0.050398614, -0.08913635, -0.048804708, 0.05243602, 0.07607664, -0.11982216, -0.030418042) * go_2(0.0, -1.0); + result += mat4(-0.17171955, -0.1251785, -0.03278011, -0.027012454, -0.14810622, 0.011841085, -0.17640975, -0.15179725, 0.28515115, -0.14059372, 0.7398977, 0.016162258, 0.39136347, 0.39292285, 0.1379987, 0.3367675) * go_2(0.0, 0.0); + result += mat4(-0.010929663, -0.06879933, -0.08348263, 0.03733299, 0.062476087, 0.01568991, -0.05271144, 0.04062246, 0.032427862, -0.113407016, -0.12636085, -0.016191803, 0.17277598, 0.08344308, 0.038378276, 0.073893026) * go_2(0.0, 1.0); + result += mat4(0.17167374, -0.121874295, -0.088408865, -0.235186, -0.13921842, 0.07555293, -0.041501705, 0.050021265, -0.087886505, -0.08035099, 0.09180792, 0.05183994, -0.26203418, 0.04711709, -0.10731481, -0.14843997) * go_2(1.0, -1.0); + result += mat4(-0.036347087, 0.01029584, -0.056132622, 0.0878486, -0.064945646, 0.07907602, 0.12751542, 0.02885936, 0.23358488, -0.029665042, -0.29615182, -0.10431463, 0.023203064, 0.069443814, -0.1002703, -0.096389264) * go_2(1.0, 0.0); + result += mat4(0.035990857, 0.10344318, 0.022896135, -0.07152821, 0.05887347, -0.015482111, -0.014297709, 0.055369038, -0.02750558, 0.08424956, 0.04510472, 0.017769516, 0.04108422, -0.07342653, -0.08320298, 0.066610456) * go_2(1.0, 1.0); + result += mat4(-0.066317484, 0.04255107, -0.07966337, -0.124135956, -0.018745063, -0.010161496, -0.011399174, 0.039982356, 0.15349951, 0.062997095, 0.045578636, 0.107150234, -0.032815512, -0.13440657, -0.040952615, 0.18263227) * go_3(-1.0, -1.0); + result += mat4(0.10633369, -0.018656015, -0.016764622, -0.04388912, 0.08758304, 0.19932802, 0.046600826, 0.016901758, 0.21165867, -0.025475888, 0.07850137, 0.06617148, -0.16846764, 0.40805286, -0.06401491, -0.080602095) * go_3(-1.0, 0.0); + result += mat4(-0.123656854, -0.014010881, 0.028575048, -0.069250524, -0.15018106, 0.103246264, -0.11777147, -0.05850124, -0.1353436, -0.0013566307, -0.015963338, -0.023948817, 0.095956124, -0.039555125, 0.076399274, 0.07427479) * go_3(-1.0, 1.0); + result += mat4(-0.015483045, -0.12661438, 0.04873668, -0.08844129, -0.011324154, -0.109799534, -0.023892801, 0.05610018, -0.05156818, -0.046244036, -0.119778745, -0.072065085, -0.106656425, 0.088378794, 0.011626502, -0.11913755) * go_3(0.0, -1.0); + result += mat4(-0.04775599, 0.16536692, 0.07654365, -0.180473, -0.2773871, 0.16781096, -0.15096998, -0.15038413, 0.09663952, -0.12574138, -0.079353325, 0.15394118, 0.19871943, 0.1274317, -0.015473073, -0.13977093) * go_3(0.0, 0.0); + result += mat4(0.046030425, -0.0035080586, 0.00019108523, -0.061198276, 0.10959022, -0.08084982, 0.17658228, -0.077856205, -0.06706116, -0.021110784, -0.014351807, -0.13647127, -0.15924501, -0.045259945, -0.08266116, 0.18638277) * go_3(0.0, 1.0); + result += mat4(-0.016468504, -0.0060328534, -0.027133752, -0.011417157, -0.0060868333, 0.14410168, -0.02163876, 0.02426387, -0.045196433, -0.050631806, -0.03250163, -0.05960187, -0.032833368, 0.07025108, -0.008574312, 0.04666302) * go_3(1.0, -1.0); + result += mat4(0.16550453, -0.12357287, 0.10894651, 0.061207913, -0.26402593, 0.05317881, 0.17066815, 0.035360787, -0.2500221, 0.0465414, -0.07445082, 0.08822553, 0.09093388, 0.026007025, 0.02103897, -0.008406647) * go_3(1.0, 0.0); + result += mat4(0.008951011, -0.011805461, -0.041415952, -0.004712088, 0.107074626, -0.040568706, -0.09944574, -0.06400702, -0.033343032, 0.013737211, -0.0889104, -0.013806611, -0.0331564, 0.0051299958, 0.015190706, 0.02362979) * go_3(1.0, 1.0); + result += mat4(-0.122751765, 0.1503006, -0.08277906, 0.18938261, 0.004363168, 0.07933008, 0.07121668, -0.0833466, -0.014839421, -0.066141434, 0.015289756, -0.040877122, -0.028999893, 0.1169574, 0.043211922, -0.05808607) * go_4(-1.0, -1.0); + result += mat4(0.18331528, 0.39588076, 0.20556965, -0.10883933, -0.0004949832, -0.15585636, -0.040524032, -0.057982635, -0.028523464, -0.06929509, -0.058184557, 0.025949743, 0.027700417, -0.22790357, 0.06694592, -0.020108582) * go_4(-1.0, 0.0); + result += mat4(-0.11836253, -0.04298726, 0.032929875, 0.2242861, -0.11389548, 0.068775766, 0.019789936, -0.03006107, 0.08794808, 0.12770821, 0.0149423, -0.091368824, 0.015293162, 0.019910589, 0.035969447, 0.04707816) * go_4(-1.0, 1.0); + result += mat4(0.26466385, 0.136147, 0.21548775, -0.3231222, 0.004888472, -0.3866182, -0.20606667, 0.15087834, 0.02862634, 0.0817037, 6.5014992e-06, 0.2008316, 0.09526983, 0.042665128, -0.040663883, 0.003764197) * go_4(0.0, -1.0); + result += mat4(-0.2112101, 0.088516004, 0.558493, 0.06698759, -0.10676672, 0.15699397, -0.043309934, -0.52478033, -0.17806827, 0.017635964, -0.082869515, -0.5656354, -0.18426882, -0.12042118, -0.01596299, -0.06495108) * go_4(0.0, 0.0); + result += mat4(-0.21135955, 0.05781414, -0.09844541, 0.022916462, 0.14397569, 0.022936279, 0.097970665, 0.042522192, -0.00126595, 0.0038257148, 0.07008256, -0.1824468, 0.048791062, -0.07465642, -0.046671294, 0.03230469) * go_4(0.0, 1.0); + result += mat4(0.19789836, -0.116786405, -0.1616968, -0.22459605, -0.024078539, 0.17570955, 0.16125445, 0.3992117, 0.052064337, 0.036609706, 0.05254302, -0.050398353, 0.036562983, 0.049556475, 0.08297576, 0.2054982) * go_4(1.0, -1.0); + result += mat4(-0.5742053, 0.098297775, 0.0633016, 0.14853445, 0.16893868, 0.11639841, 0.07855964, 0.15836205, -0.16521858, -0.09322673, -0.005118043, -0.05021679, 0.22580391, 0.07365953, 0.1695237, 0.031488914) * go_4(1.0, 0.0); + result += mat4(0.16460675, -0.03634353, 0.073270105, -0.19762266, 0.0013135028, -0.096437894, 0.06374399, -0.024057448, -0.16969606, 0.036301896, -0.06406477, -0.16757035, -0.038686167, -0.024916979, 0.03403845, -0.05160279) * go_4(1.0, 1.0); + result += mat4(0.050821684, 0.105403356, -0.022229152, 0.023213169, -0.46897453, -0.16244169, -0.082473665, -0.27779078, -0.033359285, 0.12679179, 0.12876998, -0.24077201, 0.10091285, 0.02276067, 0.25290954, 0.010847028) * go_5(-1.0, -1.0); + result += mat4(0.112502374, -0.3518416, -0.079604715, -0.039383356, 0.312556, 0.25550213, 0.13873889, -0.37628496, -0.14580576, -0.1397425, -0.02574422, 0.12305562, 0.1102169, -0.052005965, -0.1393713, -0.037981503) * go_5(-1.0, 0.0); + result += mat4(-0.084098294, 0.14593758, 0.011593753, -0.07939934, 0.10820567, -0.036130577, 0.114290334, 0.083149664, 0.036933735, 0.08104934, -0.05769655, 0.027683796, 0.05024431, 0.07313829, -0.010789726, 0.12981457) * go_5(-1.0, 1.0); + result += mat4(-0.11338103, -0.150482, 0.20733237, 0.29369837, -0.102634065, -0.15092887, -0.014666432, -0.091397986, 0.0947413, -0.12863293, -0.027620759, 0.005695903, 0.31916696, 0.035850845, -0.031173147, -0.022860976) * go_5(0.0, -1.0); + result += mat4(0.23157911, -0.2946123, -0.16097677, -0.45535967, 0.36959732, -0.026627757, 0.6321515, 0.105474636, -0.053087663, 0.096396655, 0.12052069, -0.06778611, -1.0060586, 0.3678515, -0.17115732, -0.581296) * go_5(0.0, 0.0); + result += mat4(-0.08702807, 0.0025244744, -0.057799466, 0.045048367, -0.068116546, -0.08659905, -0.13093567, 0.16046713, -0.29240185, 0.2164886, -0.20268321, 0.018693617, -0.15281823, -0.17188364, -0.25272366, 0.026025953) * go_5(0.0, 1.0); + result += mat4(0.15970327, -0.011031381, -0.20033363, -0.04695719, 0.048352227, -0.0016179485, -0.057843156, 0.08184532, 0.029011851, 0.12288869, -0.0007196704, -0.12196297, 0.25427872, -0.09587006, -0.07603035, 0.0067141145) * go_5(1.0, -1.0); + result += mat4(-0.18811099, -0.0076463297, 0.17162384, 0.001552174, 0.5296002, 0.012637236, -0.4305403, -0.44700608, 0.024435172, -0.023834689, -0.17837442, 0.030023761, 0.025391584, -0.10389408, 0.028054329, -0.069815405) * go_5(1.0, 0.0); + result += mat4(0.10198799, -0.017247394, -0.102331705, 0.13685812, -0.27715954, 0.10640225, 0.033743538, 0.045423724, -0.13994834, 0.055460025, -0.009399727, 0.015256073, 0.05103997, 0.120834984, 0.0033520947, 0.053223636) * go_5(1.0, 1.0); + result += vec4(-0.024488186, -0.041086167, 0.026466459, -0.025512012); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x1x1x120 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!SAVE conv2d_last_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_1 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_2 (max((conv2d_2_tf2_tex(conv2d_2_tf2_pos)), 0.0)) +#define g_3 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_4 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_5 (max(-(conv2d_2_tf2_tex(conv2d_2_tf2_pos)), 0.0)) +#define g_6 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_7 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_9 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_10 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_11 (max(-(conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_12 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_13 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_14 (max((conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_15 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_16 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_17 (max(-(conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_18 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_19 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_21 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_22 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_23 (max(-(conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_24 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_25 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_26 (max((conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +#define g_27 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_28 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_29 (max(-(conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.01801902, 0.016983684, 0.14704974, 0.13775583, -0.06568407, 0.031903602, -0.057818945, 0.03639395, -0.16158727, -0.11652214, -0.0512031, -0.017740106, 0.0073386175, -0.12396601, -0.08410588, -0.13822778) * g_0; + result += mat4(-0.14072196, 0.013641312, -0.110022426, 0.022624938, -0.053968057, -0.07968724, 0.036026128, 0.034548678, -0.006345876, -0.04177406, -0.10516601, -0.14248538, -0.10635475, 0.032888547, -0.07574279, 0.037366178) * g_1; + result += mat4(0.20902354, -0.03131852, 0.053658944, -0.13953559, -0.0022027926, 0.022661211, 0.02766268, 0.051950134, 0.022593375, -0.16854303, -0.00068382383, -0.15171093, -0.0011307014, 0.03237067, 0.0022356252, 0.05513321) * g_2; + result += mat4(0.057087313, 0.030007327, -0.04517254, -0.10142689, 0.049131192, -0.009568129, 0.07815266, 0.07463051, 0.061763447, 0.15247895, 0.06213266, 0.08260832, 0.08928647, 0.08173359, 0.078985415, 0.20306781) * g_3; + result += mat4(0.024888368, 0.050323978, 0.019135669, 0.042805452, 0.021970041, 0.06761805, -0.021047724, -0.029622229, -0.024018591, -0.013619991, 0.050196014, 0.094873905, 6.3763815e-05, 0.022800315, -0.038917273, -0.023665745) * g_4; + result += mat4(-0.10751045, -0.08052679, 0.0021425171, 0.018060567, 0.0002820803, -0.042460952, -0.0037310636, -0.048854582, 0.07688915, 0.1803434, -0.021755088, 0.076342724, 0.006899015, 0.010482747, -0.04608032, -0.07149793) * g_5; + result += mat4(0.017074876, 0.080092184, -0.096824504, -0.030697478, 0.19260724, 0.031606834, -0.001376051, -0.19222017, -0.029233975, 0.07513273, -0.061539974, 0.004413319, -0.011706104, 0.037078228, 0.0053027975, 0.079575956) * g_6; + result += mat4(-0.08378676, 0.1326312, -0.2575891, -0.055032767, -0.0205247, -0.11107971, 0.048341025, -0.048915315, 0.059188437, -0.111718066, -0.039619286, -0.165657, 0.018990505, 0.0017499351, -0.038804792, -0.086953335) * g_7; + result += mat4(0.08722738, -0.005039459, 0.07542034, -0.061049137, 0.025591044, 0.16946335, -0.114563115, -0.034830607, 0.17842476, 0.11199776, 0.008686021, -0.04142143, 0.09293036, -0.08505899, 0.087229416, -0.102381825) * g_8; + result += mat4(-0.05071452, -0.11384357, 0.11169348, 0.05153077, -0.24056591, -0.056497227, -0.022856226, 0.19383447, 0.02966522, -0.08128601, 0.07467419, -0.019276833, 0.0020969608, 0.029036064, -0.018299947, -0.043434255) * g_9; + result += mat4(0.043311678, -0.102582484, 0.24798667, 0.06873956, 0.0067927428, 0.098214865, -0.04124763, 0.04490437, -0.06492586, 0.07359665, 0.033324532, 0.120802104, -0.02277019, 0.0021284765, 0.028036185, 0.0687184) * g_10; + result += mat4(-0.090083234, -0.0073258677, -0.089089446, 0.04679012, -0.025320487, -0.14760749, 0.13109742, 0.039976012, -0.19494978, -0.10603485, -0.02347976, 0.050328556, -0.098470725, 0.05546942, -0.0589479, 0.09333735) * g_11; + result += mat4(0.011967837, 0.043009043, -0.031999476, 0.022178393, -0.0044910796, -0.023010693, -0.0062060836, -0.031039031, -0.06364646, -0.06365887, -0.029040523, -0.06675782, 0.042098384, 0.032490075, 0.014491912, -0.0011224645) * g_12; + result += mat4(0.018761864, 0.040258046, 0.015349441, 0.018706307, 0.00089981244, -0.02443291, 0.015173669, -0.008663882, -0.028121095, -0.026123954, -0.011663427, 0.007668493, 0.014926302, 0.03380763, -0.031567805, 0.018132508) * g_13; + result += mat4(0.011394552, 0.0090883775, 0.011154194, -0.0044680317, 0.0067254594, -0.013079778, 0.019036228, -0.0028701108, -0.014439092, 0.009564524, -0.0135836145, 0.038879603, 0.009461635, -0.014671546, 0.019386383, -0.007752184) * g_14; + result += mat4(-0.025151528, -0.044746082, 0.030572962, -0.02323665, 0.00077518023, 0.01415367, 0.0053574373, 0.022526693, 0.013129106, 0.03534322, 0.004773132, 0.077551566, -0.04895647, -0.03762353, -5.172888e-05, 0.012251733) * g_15; + result += mat4(0.03152615, 0.018333036, -1.679869e-05, -0.021737477, -0.076627344, 0.014928358, -0.010456622, 0.07781939, 0.027225398, 0.04659384, -0.0070413146, 0.026454208, -0.017691148, -0.045554973, 0.006093557, -0.03178835) * g_16; + result += mat4(-0.018481147, -0.05547381, 0.013941934, -0.024416983, 0.027262108, 0.024724096, 0.0063773487, 0.017461762, 0.027166976, -0.02301659, -0.0051281936, -0.0556913, -0.08051738, -0.04638631, 0.015620527, 0.05266176) * g_17; + result += mat4(0.009157959, 0.08455516, -0.0602788, -0.002439282, -0.02327793, -0.021213762, 0.005698031, 0.002378188, 0.005837403, -0.17286417, 0.13316536, -0.03154805, -0.022410449, -0.047884528, 0.043882124, 0.047745265) * g_18; + result += mat4(-0.008956661, -0.010137066, -0.007736993, 0.012567491, 0.017111477, -0.050893363, 0.001874233, -0.059543177, 0.043244537, 0.07476611, -0.045336626, -0.05902348, 0.006996905, -0.0718768, -0.004126288, -0.0642003) * g_19; + result += mat4(0.015879916, 0.040725194, 0.013168297, 0.045075603, -0.01297648, -0.0059797773, -0.015060089, -0.010935342, 0.02049647, 0.034105264, 0.014809084, 0.008366516, -0.051084228, 0.008029285, -0.04545378, 0.023945345) * g_20; + result += mat4(-0.019541753, 0.0043494124, -0.0001693803, 0.025214057, 0.018182391, 0.027842158, -0.024553766, 0.006766178, -0.029599829, -0.040605135, -0.048153292, -0.018185124, -0.011694039, -0.01453888, -0.022709226, -0.057430573) * g_21; + result += mat4(-0.08764812, 0.075131916, 0.020414736, -0.050893847, -0.004293497, -0.021197274, -0.0018027405, 0.038802553, 0.021213993, 0.04283625, 0.016089795, 0.03304562, 0.028084677, 0.029016564, 0.03612216, 0.057901673) * g_22; + result += mat4(0.0057912855, -0.098451905, 0.036739763, -0.06572119, 0.033765186, 0.12279821, -0.025154155, 0.013806011, -0.024162477, -0.009859432, -0.0021075422, -0.02089062, -0.0021298097, 0.0015791449, -0.020502191, -0.033028405) * g_23; + result += mat4(0.056495182, 0.054205123, 0.032467738, -0.038979713, 0.051377665, -0.0017128112, -0.08553907, 0.08154442, 0.005708859, -0.030467357, 0.056872, 0.033040885, -0.044282306, 0.06320046, -0.077476226, 0.057799205) * g_24; + result += mat4(-0.10876674, 0.08259616, -0.051354583, 0.08138756, 0.012491528, 0.05439006, 0.030529, -0.058732726, 0.018389955, 0.008327744, 0.013216314, -0.017489955, 0.004981595, 0.023339638, -0.019406691, -0.0027005207) * g_25; + result += mat4(0.070612185, 0.053251043, -0.045872025, -0.08984753, 0.02582859, 0.011240578, 0.019407703, 0.006788904, 0.036534656, -0.07338343, -0.06434088, -0.023382546, -0.052568957, -0.065474, 0.047638886, 0.050624263) * g_26; + result += mat4(-0.018035047, -0.078713804, 0.01140521, 0.00012953136, -0.014339465, -0.018948816, 0.04643105, -0.04246953, -0.026791897, 0.02513823, -0.045333434, -0.06504635, -0.024868866, -0.017653162, 0.01686154, -0.007936053) * g_27; + result += mat4(0.042380203, -0.007992952, -0.012940898, -0.018271092, -0.036340363, 0.02297692, -0.0260716, 0.011647489, 0.055189207, -0.089658745, 0.05829902, -0.05787894, -0.08049513, -0.091856234, 0.09487785, 0.060702115) * g_28; + result += mat4(0.0022311446, 0.0078554, -0.021208685, 0.009572731, -0.09023339, 0.016889412, 0.029632647, -0.0034283176, 0.00453538, 0.040616557, 0.023657676, 0.03687379, -0.021128353, -0.020249786, -0.006316465, 0.017151888) * g_29; + result += vec4(0.00032424182, 0.027523492, -0.021710647, 0.0054222327); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x1x1x120 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!SAVE conv2d_last_tf1 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_1 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_2 (max((conv2d_2_tf2_tex(conv2d_2_tf2_pos)), 0.0)) +#define g_3 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_4 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_5 (max(-(conv2d_2_tf2_tex(conv2d_2_tf2_pos)), 0.0)) +#define g_6 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_7 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_9 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_10 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_11 (max(-(conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_12 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_13 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_14 (max((conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_15 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_16 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_17 (max(-(conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_18 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_19 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_21 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_22 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_23 (max(-(conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_24 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_25 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_26 (max((conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +#define g_27 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_28 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_29 (max(-(conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.016576298, -0.013039568, -0.07158028, -0.056509558, -0.06965122, -0.1272158, -0.07288651, -0.10423224, 0.048223313, 0.03172697, 0.014178331, 0.002855858, 0.004538786, 0.034928907, 0.03173054, 0.03412037) * g_0; + result += mat4(0.09168274, 0.056355372, 0.023804985, 0.009515965, 0.024203284, 0.01641063, 0.016683895, -0.012702561, -0.038824845, -0.037673414, -0.010391583, -0.014636746, 0.03192526, -0.02340906, 0.027524544, -0.015568387) * g_1; + result += mat4(-0.0966996, -0.041418746, -0.055650715, 0.002117608, 0.00031688716, -0.008733063, -0.024573568, -0.03425321, -0.036262326, 0.04404278, -0.014729649, 0.05618371, 0.008530102, -0.015607405, 0.015309457, -0.013621667) * g_2; + result += mat4(0.0361472, 0.025806008, 0.0583716, 0.06861344, 0.06315231, 0.10136267, 0.050169814, 0.07334672, -0.029601635, -0.06431154, -0.030672554, -0.042512666, -0.051434014, -0.039382752, -0.050772913, -0.08629934) * g_3; + result += mat4(-0.02201249, -0.03920109, -0.030633967, -0.0530296, -0.016168922, 0.0019067918, -0.014961821, 0.017761061, 0.012465623, 0.01857369, 0.009440995, -0.014336409, 0.0056113736, 0.012547043, 0.019320931, 0.025894852) * g_4; + result += mat4(0.079413086, 0.055332463, 0.023716403, 0.005429431, 0.0043804864, 0.026764238, 0.011610661, 0.03245363, -0.032408644, -0.056873523, -0.0019144824, -0.026196169, -0.03347332, -0.0174185, -0.00020654689, 0.023554688) * g_5; + result += mat4(-0.055310458, -0.079070315, 0.0066684894, -0.034588877, -0.07334732, -0.000985991, -0.011984627, 0.08308032, 0.011794159, -0.0144758625, 0.03586815, 0.009038553, -0.0016798767, 0.045218308, 0.016524237, 0.045677744) * g_6; + result += mat4(0.0083010085, 0.028407311, 0.06600332, 0.07460616, 0.071611166, 0.09643883, 0.034676284, 0.05824412, -0.07973774, -0.030707551, -0.03709346, 0.012161441, -0.02977386, -0.018077906, 0.0017052453, 0.012292145) * g_7; + result += mat4(0.01893072, 0.032129273, 0.010857875, 0.037224095, -0.01413747, -0.047471486, 0.05192984, 0.03202811, -0.05082615, -0.027038824, -0.008331923, 0.03062506, -0.01725524, 0.039917417, -0.010607958, 0.04724454) * g_8; + result += mat4(0.03497211, 0.07911703, 0.016746478, 0.057458322, 0.06088827, -0.0053583174, -0.013933355, -0.10673472, -0.005456845, 0.020259444, -0.03139623, -0.008973998, -0.054345034, -0.035464175, -0.025964592, -0.0021018258) * g_9; + result += mat4(-0.047960743, 0.021779433, -0.11492737, -0.033511925, -0.067273304, -0.07730279, -0.04037016, -0.045080706, 0.09207083, 0.009399112, 0.03178142, -0.011313022, 0.021366931, 0.0051248465, -0.008097426, -0.018301165) * g_10; + result += mat4(0.014282785, -0.01572224, -0.027472818, -0.050844453, 0.0054380163, 0.052591007, -0.04270195, -0.02309884, 0.05152891, 0.03629938, -0.004667278, -0.024925238, 0.010567401, -0.07481508, 0.037315298, -0.04241005) * g_11; + result += mat4(-0.0013873621, 0.028364213, -0.031026626, 0.015620681, 0.004142558, -0.004863661, -0.013809934, -0.021330781, -0.0016021075, -0.002762517, -0.024034528, -0.03442779, -0.0013054899, -0.0042632925, 0.020974873, -0.0022553254) * g_12; + result += mat4(0.018562179, 0.034197688, 0.015277717, -0.01111744, -0.0032272537, -0.013426753, 0.017978273, -0.0015077988, -0.0051653306, 0.012690824, 0.001157489, 0.021362923, -0.01262595, 0.0054670637, -0.03031384, 0.012800636) * g_13; + result += mat4(0.012069964, -0.016048005, 0.01373877, -0.013298124, 0.03194061, -0.013332437, 0.016943898, -0.0058277305, -0.009428097, -0.023061408, -0.013659186, 0.015731167, -0.001986914, -0.019521309, 0.014714155, -0.00522106) * g_14; + result += mat4(0.0007342483, -0.026249036, 0.030117435, -0.015873922, -0.008929299, -0.0023522351, 0.0164302, 0.023790896, -0.03889036, -0.024644645, 0.006634364, 0.046513416, -0.013473101, -0.0140229, 0.0019859916, 0.011869367) * g_15; + result += mat4(0.02573362, 0.02375676, 0.00059617084, -0.016921667, -0.0671785, 0.008825013, -0.0013130646, 0.07261784, 0.010327604, 0.019814448, -0.008936156, 0.013669365, 0.020260049, -0.013921513, 0.018746642, -0.02843792) * g_16; + result += mat4(-0.023912461, -0.02845122, 0.017157353, -0.0075884, 0.00036027908, 0.012657872, 0.0061078435, 0.014107368, 0.032003447, 0.020891502, -0.0067286897, -0.030822601, -0.06574523, -0.028198881, 0.032242246, 0.061325297) * g_17; + result += mat4(0.0074854135, 0.085437536, -0.06426021, -0.011461227, -0.023055596, -0.025802588, 0.005154878, 0.0056105317, 0.0058093905, -0.1922738, 0.14643134, -0.035682995, -0.026076004, -0.053763065, 0.04269994, 0.05141156) * g_18; + result += mat4(-0.011764035, -0.011518187, -0.010223651, 0.015880484, 0.023317069, -0.05618372, 0.0059863995, -0.059199195, 0.04408538, 0.084830545, -0.042056326, -0.057687927, 0.0037303802, -0.082143255, -0.0018375175, -0.071053974) * g_19; + result += mat4(0.0044008377, 0.03906328, 0.010832349, 0.046560295, -0.011535675, -0.004254791, -0.011572009, -0.008665021, 0.021482797, 0.0338495, 0.019407712, 0.010986841, -0.05098764, 0.009778762, -0.05300968, 0.021800417) * g_20; + result += mat4(-0.021229895, 0.003305197, 0.0024396733, 0.02508984, 0.012702334, 0.033208802, -0.03008867, 0.0046940153, -0.030033346, -0.03792949, -0.05176272, -0.022788247, -0.012390274, -0.0135713285, -0.021557398, -0.06371822) * g_21; + result += mat4(-0.08850463, 0.0793453, 0.020550407, -0.05461798, -0.009402199, -0.027972376, -0.005156784, 0.02965216, 0.017268548, 0.04429356, 0.009809255, 0.031682562, 0.031172305, 0.03379402, 0.04395453, 0.062268186) * g_22; + result += mat4(0.01247631, -0.100407876, 0.042796645, -0.06502109, 0.032900713, 0.13428093, -0.033733122, 0.016222714, -0.0178732, -0.002501202, 0.0035485916, -0.015802957, -0.012150594, -0.0022097295, -0.023347225, -0.038795106) * g_23; + result += mat4(0.05938152, 0.059704512, 0.030237982, -0.04353414, 0.055702258, -0.0029182534, -0.09416582, 0.08440017, 0.008828504, -0.03065552, 0.0646233, 0.03629834, -0.04788823, 0.071730554, -0.084519096, 0.05947715) * g_24; + result += mat4(-0.109025195, 0.08866299, -0.047770992, 0.08894294, 0.014965939, 0.059702646, 0.032068793, -0.053778123, 0.019529643, 0.008203253, 0.014628202, -0.017464165, 0.0060448833, 0.027196955, -0.018907491, -0.0026503608) * g_25; + result += mat4(0.081304245, 0.06199502, -0.045204166, -0.08596196, 0.028582547, 0.011568329, 0.024607504, 0.007910688, 0.035362624, -0.08241612, -0.06848065, -0.026512494, -0.04969066, -0.065509185, 0.050000466, 0.05400427) * g_26; + result += mat4(-0.015837632, -0.087357126, 0.015269297, 0.00058823347, -0.01621553, -0.020170743, 0.049107697, -0.043301217, -0.025253763, 0.021026319, -0.047297694, -0.06751796, -0.020940255, -0.019703854, 0.020391362, -0.0049682967) * g_27; + result += mat4(0.042480465, -0.010125742, -0.016281988, -0.023186147, -0.040653005, 0.022371864, -0.028837234, 0.009938319, 0.0576169, -0.09105783, 0.06033278, -0.057518024, -0.08265035, -0.094854854, 0.10116602, 0.06394465) * g_28; + result += mat4(-0.0027242866, 0.007224464, -0.026375424, 0.0052841473, -0.09330453, 0.010634226, 0.024063759, -0.005130613, 0.0070950384, 0.048039638, 0.029983977, 0.042704105, -0.018214077, -0.020184115, -0.0073092347, 0.01891303) * g_29; + result += vec4(0.026287671, 0.015689341, 0.021467328, 0.0052872337); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Conv-4x1x1x120 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_2_tf2 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_3_tf2 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_4_tf2 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_5_tf2 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!BIND conv2d_6_tf2 +//!SAVE conv2d_last_tf2 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_1 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_2 (max((conv2d_2_tf2_tex(conv2d_2_tf2_pos)), 0.0)) +#define g_3 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_4 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_5 (max(-(conv2d_2_tf2_tex(conv2d_2_tf2_pos)), 0.0)) +#define g_6 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_7 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_9 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_10 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_11 (max(-(conv2d_3_tf2_tex(conv2d_3_tf2_pos)), 0.0)) +#define g_12 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_13 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_14 (max((conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_15 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_16 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_17 (max(-(conv2d_4_tf2_tex(conv2d_4_tf2_pos)), 0.0)) +#define g_18 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_19 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_21 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_22 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_23 (max(-(conv2d_5_tf2_tex(conv2d_5_tf2_pos)), 0.0)) +#define g_24 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_25 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_26 (max((conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +#define g_27 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_28 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_29 (max(-(conv2d_6_tf2_tex(conv2d_6_tf2_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(0.20584391, 0.22176251, 0.12817344, 0.16349226, 0.24339934, 0.17479841, 0.23518398, 0.19196586, 0.10900553, 0.080384456, 0.049235467, 0.027794728, -0.05141681, 0.0007015638, -0.010815038, 0.0042753317) * g_0; + result += mat4(0.0714463, 0.026722606, -0.01580307, -0.036710627, 0.13722661, 0.1325067, 0.12155393, 0.092651665, -0.21974826, -0.22233371, -0.16056158, -0.16607761, -0.10291634, -0.19475317, -0.117747545, -0.18824245) * g_1; + result += mat4(0.0385657, 0.12090414, 0.09484494, 0.18811698, 0.015320313, 0.0051719607, -0.016927784, -0.03450855, -0.06506198, 0.05625437, -0.02982918, 0.06270707, -0.13614634, -0.16412087, -0.1319045, -0.1733402) * g_2; + result += mat4(-0.2033194, -0.2067332, -0.16234529, -0.13661149, -0.22975448, -0.1841141, -0.26185742, -0.23617432, -0.058616254, -0.11470092, -0.064833924, -0.082624085, 0.0018012474, 0.010971402, -0.0015926235, -0.056720145) * g_3; + result += mat4(0.012773226, -0.013976976, 0.007706423, -0.022663448, -0.13764867, -0.121803656, -0.12158649, -0.090470046, 0.22548035, 0.22929274, 0.19819829, 0.16713546, 0.15709636, 0.16574621, 0.17671035, 0.18283793) * g_4; + result += mat4(-0.042175665, -0.07863977, -0.1209475, -0.14067635, 0.0041970555, 0.03598768, 0.009632853, 0.040009186, -0.014479617, -0.060088724, 0.041292075, -0.004627034, 0.09958161, 0.120460846, 0.15672928, 0.18279101) * g_5; + result += mat4(-0.03370265, -0.07010845, 0.04648067, -0.007877368, -0.11963536, -0.014810524, -0.01556151, 0.11850641, -0.0021221144, -0.050126694, 0.03193186, -0.012815193, -0.019450104, 0.017504638, -0.007544723, 0.0028710878) * g_6; + result += mat4(-0.018643383, -0.04445287, 0.07541755, 0.043240048, 0.027209729, 0.06499946, -0.018240616, 0.014570308, -0.058010563, 0.019799259, 0.0030194358, 0.06929909, -0.0056114118, 0.009093819, 0.03223382, 0.053046633) * g_7; + result += mat4(-0.0133113945, 0.019222038, -0.019711712, 0.03676041, -0.040668692, -0.09569124, 0.053240422, 0.02388429, -0.12218938, -0.08086858, -0.043406986, 0.009516919, -0.04289723, 0.056066234, -0.035658766, 0.061961327) * g_8; + result += mat4(0.023964832, 0.07624368, -0.020873679, 0.0256053, 0.12444348, 0.017517762, 0.0049669463, -0.13534403, 0.0061981925, 0.052108612, -0.02908856, 0.0135363275, -0.030678025, -0.015180554, -0.003328521, 0.021289025) * g_9; + result += mat4(-0.02231607, 0.09188703, -0.13311718, -0.009214322, -0.021628553, -0.047853045, 0.014602204, 0.00086198986, 0.06729613, -0.04228859, -0.0030271288, -0.066696614, -0.0071333526, -0.019973027, -0.036203787, -0.056756962) * g_10; + result += mat4(0.05850421, -0.0047896104, -0.0036014696, -0.05261781, 0.020924669, 0.093680315, -0.061118666, -0.020405825, 0.100053616, 0.061513033, 0.018219335, -0.02082051, 0.039510462, -0.08404035, 0.050883695, -0.052642383) * g_11; + result += mat4(0.0018722751, 0.020684525, -0.02356179, 0.009360695, 0.0036660347, -0.006931955, -0.015446396, -0.02027952, 0.006836204, 0.00341897, -0.020235445, -0.029695021, -0.0053638928, -0.003108307, 0.016338514, -0.0058539147) * g_12; + result += mat4(0.021255454, 0.036906153, 0.019704418, -0.009486708, -0.009084271, -0.012694315, 0.012314602, -0.002121502, -0.0047310013, 0.0051953527, 0.005284111, 0.019026738, -0.0082058, 0.0032704875, -0.02295881, 0.009902225) * g_13; + result += mat4(0.01866446, -0.012482591, 0.011301323, -0.011294572, 0.035305023, -0.002237504, 0.010679519, -0.000508338, 8.54808e-05, -0.02033275, -0.008063064, 0.013109392, 0.0002144853, -0.007573196, 0.015446864, 0.0023629267) * g_14; + result += mat4(-0.00978586, -0.025148384, 0.024103062, -0.009535831, -0.002879648, 0.0012579657, 0.018271701, 0.02113783, -0.03735869, -0.02581921, 0.005823926, 0.04087479, -0.0077521144, -0.012728182, 0.0067631016, 0.012669306) * g_15; + result += mat4(0.018013993, 0.026847519, 0.0021338093, -0.010125906, -0.07225123, -0.0025745684, -0.012799456, 0.056836564, 0.011377961, 0.017062144, -0.007494936, 0.010489539, 0.012431433, -0.019703059, 0.007082196, -0.031403106) * g_16; + result += mat4(-0.027560756, -0.030534893, 0.019047359, -0.0068690516, -0.0069791237, 0.0081298705, 0.0028945836, 0.009644792, 0.023117492, 0.020431874, -0.0056545194, -0.02480413, -0.07047867, -0.037890248, 0.025276575, 0.049277883) * g_17; + result += mat4(0.015748044, 0.086017504, -0.051286206, -0.003599236, -0.023193073, -0.023733998, 0.002799065, 0.005258185, 0.010922322, -0.17615142, 0.14165695, -0.029909663, -0.017889502, -0.046552524, 0.03964598, 0.049426638) * g_18; + result += mat4(-0.0073433192, -0.011656557, -0.0068763834, 0.014078096, 0.018000547, -0.053453963, 0.00786442, -0.050999343, 0.04133596, 0.079854034, -0.038685665, -0.053702615, -0.0019746814, -0.07859513, -0.0076702842, -0.067455895) * g_19; + result += mat4(0.009444058, 0.043747634, 0.018948376, 0.05009854, -0.011580162, -0.0065071583, -0.013997229, -0.011439345, 0.023656886, 0.030394329, 0.02134696, 0.009440647, -0.048070773, 0.007841886, -0.05323206, 0.013742174) * g_20; + result += mat4(-0.019898156, 0.000818382, 0.0010332671, 0.01928002, 0.013191405, 0.029638033, -0.02320344, 0.007421591, -0.02833562, -0.033782348, -0.04978492, -0.020176657, -0.0138621945, -0.013926801, -0.021230116, -0.058447562) * g_21; + result += mat4(-0.08644919, 0.073316105, 0.017838318, -0.049475558, -0.007295481, -0.025924034, -0.0068463665, 0.024905838, 0.016891189, 0.041490942, 0.011466327, 0.029829478, 0.034047317, 0.036229853, 0.04733451, 0.062059373) * g_22; + result += mat4(0.008540078, -0.09782984, 0.037032314, -0.063398704, 0.028395759, 0.12369336, -0.03458798, 0.012534729, -0.02110072, -0.007954169, -0.002136603, -0.019739889, -0.01087704, -0.004243762, -0.019832188, -0.03347458) * g_23; + result += mat4(0.054272063, 0.053247515, 0.025393743, -0.043571323, 0.05035569, -0.0042993715, -0.08645438, 0.07723826, 0.009475109, -0.026420964, 0.06111581, 0.03551816, -0.040812302, 0.07295332, -0.07636345, 0.059867676) * g_24; + result += mat4(-0.103165455, 0.07943813, -0.04935193, 0.0776962, 0.0149123045, 0.056066703, 0.028792242, -0.051936194, 0.015754307, 0.004817783, 0.011213326, -0.018288456, 0.004715879, 0.02536934, -0.015915168, -0.0008426239) * g_25; + result += mat4(0.0723322, 0.054040924, -0.0476729, -0.08399067, 0.024805048, 0.0118207345, 0.022066418, 0.006886721, 0.031156952, -0.07442044, -0.06636254, -0.023382878, -0.051537152, -0.06360144, 0.045075376, 0.050795015) * g_26; + result += mat4(-0.013090917, -0.0783513, 0.014832963, 0.0033018794, -0.014636453, -0.020164138, 0.043610837, -0.04028102, -0.024922965, 0.017962486, -0.045353472, -0.065985985, -0.020156763, -0.019561546, 0.01627726, -0.0065625296) * g_27; + result += mat4(0.038890418, -0.007016582, -0.01374995, -0.01861392, -0.03940205, 0.019309007, -0.026372327, 0.0079260105, 0.05348645, -0.087648585, 0.057326347, -0.055338904, -0.07803935, -0.09048593, 0.09173596, 0.05747143) * g_28; + result += mat4(0.001742558, 0.010703091, -0.021057613, 0.006859906, -0.086059436, 0.008977797, 0.021366948, -0.0043655075, 0.005885378, 0.042646274, 0.028150525, 0.037941158, -0.014817959, -0.016695084, -0.0056764153, 0.019049013) * g_29; + result += vec4(0.0113136405, -0.0063769994, 0.010973808, -0.011560247); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(UL)-Depth-to-Space +//!HOOK MAIN +//!BIND MAIN +//!BIND conv2d_last_tf +//!BIND conv2d_last_tf1 +//!BIND conv2d_last_tf2 +//!SAVE MAIN +//!WIDTH conv2d_last_tf.w 2 * +//!HEIGHT conv2d_last_tf.h 2 * +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +vec4 hook() { + vec2 f0 = fract(conv2d_last_tf_pos * conv2d_last_tf_size); + ivec2 i0 = ivec2(f0 * vec2(2.0)); + float c0 = conv2d_last_tf_tex((vec2(0.5) - f0) * conv2d_last_tf_pt + conv2d_last_tf_pos)[i0.y * 2 + i0.x]; + vec2 f1 = fract(conv2d_last_tf1_pos * conv2d_last_tf1_size); + ivec2 i1 = ivec2(f1 * vec2(2.0)); + float c1 = conv2d_last_tf1_tex((vec2(0.5) - f1) * conv2d_last_tf1_pt + conv2d_last_tf1_pos)[i1.y * 2 + i1.x]; + vec2 f2 = fract(conv2d_last_tf2_pos * conv2d_last_tf2_size); + ivec2 i2 = ivec2(f2 * vec2(2.0)); + float c2 = conv2d_last_tf2_tex((vec2(0.5) - f2) * conv2d_last_tf2_pt + conv2d_last_tf2_pos)[i2.y * 2 + i2.x]; + float c3 = c2; + return vec4(c0, c1, c2, c3) + MAIN_tex(MAIN_pos); +} diff --git a/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_VL.glsl b/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_VL.glsl new file mode 100644 index 00000000..c562e6e0 --- /dev/null +++ b/assets/shaders/anime4k/Anime4K_Upscale_CNN_x2_VL.glsl @@ -0,0 +1,969 @@ +// MIT License + +// Copyright (c) 2019-2021 bloc97 +// All rights reserved. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(0.3053028, -0.037464816, 0.113983095, 0.12537485, -0.18630321, 0.084269725, -0.01351514, -0.20190673, -0.12298384, -0.037622184, -0.070214555, -0.19367279, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.41849324, 0.099702746, -0.04276645, -0.047299717, 0.20074473, 0.14217933, 0.15571699, 0.19553481, 0.21868695, -0.053848714, 0.016413521, 0.14117444, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.030540446, -0.052293833, 0.0715466, -0.31160545, 0.07808315, -0.16860045, 0.032828577, -0.2955024, -0.110374965, 0.04043687, -0.014024628, 0.058699366, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.10727635, 0.054200135, 0.20853694, 0.21086875, 0.122690216, -0.091823794, 0.310609, -0.01738923, -0.0013488946, 0.10835534, -0.077265196, 0.086751856, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.77150255, 0.40530515, -0.41257596, -0.14367618, 0.46888494, 0.2650122, -0.934199, 0.40476102, 0.32293493, 0.20251967, 0.19891106, -0.29698747, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.12505147, -0.41904053, -0.065798186, 0.34075752, 0.026240354, -0.2977496, 0.032647505, -0.003566783, 0.10290523, -0.23417123, -0.06014203, 0.094735645, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.11207838, -0.04062474, 0.023897955, 0.08605987, -0.020888371, 0.045541205, -0.07231824, -0.25884083, -0.11796847, -0.002691391, 0.0050435597, 0.02756291, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.4615728, 0.041790638, 0.08971143, 0.20213957, -0.38537467, 0.19938901, 0.08594364, -0.08621994, -0.08163473, -0.133266, -0.09561729, -0.014209637, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.0787417, -0.0483673, 0.07621572, -0.060169693, -0.013465177, -0.17152289, 0.02515561, 0.17675288, -0.05173998, 0.10768042, -0.029858522, -0.013957215, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.0072128535, -0.05658625, 0.052939568, -0.1760861); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x3 +//!HOOK MAIN +//!BIND MAIN +//!SAVE conv2d_tf1 +//!WIDTH MAIN.w +//!HEIGHT MAIN.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off))) +vec4 hook() { + vec4 result = mat4(-0.112743355, 0.0422517, 0.21350034, -0.0967133, 0.16265953, 0.0022497, 0.015078242, 0.08204187, 0.035236806, -0.0468228, -0.09464228, -0.001864949, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.25631642, -0.41485596, -0.16662048, 0.13201024, 0.057921384, 0.2240005, -0.30038536, -0.08305622, 0.2228756, 0.32263795, 0.10608189, -0.18616734, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.08997524, 0.11516871, 0.19212262, -0.035154644, 0.11612274, -0.04056247, 0.14974374, 0.029173585, -0.07629641, -0.14353512, 0.041081246, 0.20230265, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.2262286, 0.055954933, -0.14499907, 0.17314723, 0.16590612, -0.06688698, -0.11118816, -0.012938116, -0.043101817, 0.026133137, 0.2958395, 0.06543993, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.07311521, -0.3041244, -0.47978505, -0.6350967, -0.17432262, 0.34965977, 0.25399777, -0.16590433, -0.49957857, 0.0549526, -0.40869385, -0.08780993, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.3014447, -0.00021343959, -0.14953177, 0.028001398, -0.14931908, -0.14910097, -0.13287953, -0.45026535, 0.17378895, 0.024704922, -0.027308129, -0.10292025, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.06732655, -0.13119644, 0.066014715, 0.081011154, -0.15154321, 0.2407805, 0.07733481, 0.12312706, 0.1741804, 0.008495716, -0.14125362, -0.043644864, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.11465958, 0.42001364, 0.011069392, 0.3203028, -0.058801666, -0.37830314, -0.030540617, 0.2245139, -0.11310525, -0.14845212, 0.19957744, 0.25789997, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.16037206, 0.21326372, 0.020099448, 0.018666709, 0.122083254, -0.16033986, -0.10725163, 0.2556128, 0.1650688, -0.10475823, 0.048623525, -0.103755645, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.007717166, -0.027800834, 0.0795002, 0.0053199283); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!SAVE conv2d_1_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.0056740534, -0.21186607, -0.18014967, 0.118979976, -0.0015611284, -0.07708486, 0.060131397, 0.11653345, 0.027150517, 0.10837246, 0.08583816, -0.14032431, 0.017552888, 0.0035846964, 0.03980114, 0.064649396) * go_0(-1.0, -1.0); + result += mat4(-0.03289318, -0.12004539, 0.26514888, -0.15079662, 0.04214227, -0.027273783, -0.027950313, 0.19614808, 0.18510003, -0.10346252, -0.029836183, 0.09174428, -0.0088710375, -0.18273513, 0.06601674, 0.009983851) * go_0(-1.0, 0.0); + result += mat4(0.08476211, 0.043996535, 0.056711517, 0.009976895, 0.07039107, -0.024862664, -0.059921104, 0.046850603, 0.04983447, 0.04863198, 0.21777405, -0.0576961, 0.045321796, -0.0060038245, 0.096396215, -0.10842004) * go_0(-1.0, 1.0); + result += mat4(-0.15746164, 0.041757874, 0.035169285, -0.1734288, -0.24219254, -0.13318908, 0.2272079, -0.02902605, 0.07750601, -0.1467191, -0.12296749, -0.07533314, -0.07073083, 0.17909113, 0.04789308, 0.17245363) * go_0(0.0, -1.0); + result += mat4(0.057547905, 0.1464685, -0.33115456, -0.26956198, -0.26298407, -0.059824817, 0.022509675, -0.09251868, 0.36277944, -0.2072429, 0.21095088, -0.45492023, 0.07428653, 0.1593302, -0.2945834, 0.12825087) * go_0(0.0, 0.0); + result += mat4(-0.1318458, 0.27804148, 0.037600737, 0.12047866, 0.0065036337, 0.0017241207, 0.060497303, -0.14786585, -0.15149063, 0.02731698, 0.048886403, -0.0025970868, -0.026979815, 0.07348884, 0.015636757, -0.107966796) * go_0(0.0, 1.0); + result += mat4(-0.079988025, -0.01626299, 0.06517438, 0.086406484, -0.1484504, 0.070595, 0.20620634, 0.09713373, -0.13620836, 0.012067949, -0.00068703433, -0.038030174, 0.22300471, -0.0012400965, -0.014827909, -0.08927486) * go_0(1.0, -1.0); + result += mat4(0.15634936, 0.052028038, 0.038081627, 0.12720168, 0.07342066, -0.04318368, -0.0065998454, 0.12109317, -0.45398173, 0.03666754, -0.17773737, 0.038516667, -0.13009632, -0.007457001, -0.013938809, 0.09776142) * go_0(1.0, 0.0); + result += mat4(0.029636936, 0.12864171, 0.11347291, -0.11812842, -0.0870342, 0.035678383, 0.050338242, 0.045754932, -0.07072752, 0.010447726, 0.039642975, -0.08795004, -0.1191525, 0.00967509, 0.13485421, -0.053204738) * go_0(1.0, 1.0); + result += mat4(-0.011072695, -0.09613245, -0.09094804, 0.028029291, -0.04031162, 0.15690295, 0.25094184, -0.21776834, 0.06524669, 0.06412185, -0.052852992, -0.08097702, -0.039127756, 0.036357917, 0.104585476, 0.25095442) * go_1(-1.0, -1.0); + result += mat4(-0.08328618, -0.006246033, 0.099708706, -0.014916097, 0.17727195, 0.4369228, 0.14760216, 0.06707674, 0.025167737, -0.022487842, -0.038962565, 0.15380669, 0.08125089, 0.09844594, 0.33538374, -0.003161368) * go_1(-1.0, 0.0); + result += mat4(-0.0128195705, -0.05475118, -0.037705053, -0.0012077648, -0.17425515, 0.091487505, -0.12909423, 0.0074876705, 0.13438368, 5.778033e-05, 0.04563314, -0.12185897, -0.053612474, -0.049824294, -0.12851205, 0.12856449) * go_1(-1.0, 1.0); + result += mat4(-0.025741795, 0.01867236, -0.00027440622, 0.10502768, 0.27042285, -0.14947751, 0.11143123, 0.2575913, -0.07414089, -0.33919522, -0.13194235, -0.20088726, 0.23121537, -0.08197353, 0.06693911, 0.015411386) * go_1(0.0, -1.0); + result += mat4(0.09143717, 0.22842278, 0.06501074, -0.20009698, -0.042117566, -0.23452093, -0.074082755, -0.10612558, 0.077631965, 0.08343657, -0.07657599, -0.43297377, 0.7092466, -0.16272525, 0.17222248, -0.056038965) * go_1(0.0, 0.0); + result += mat4(0.081200436, 0.046752565, 0.028254949, 0.18820632, 0.096592255, 0.05896745, 0.14845169, 0.034777895, 0.07195204, -0.1908046, -0.015341971, 0.02606145, -0.010377239, 0.0755547, -0.15285216, 0.047916733) * go_1(0.0, 1.0); + result += mat4(-0.06825636, -0.049540907, -0.024328846, 0.03506251, 0.2060094, 0.054119263, -0.06671269, 0.052428722, 0.055792283, -0.14336903, -0.03180757, 0.013760968, -0.037398104, -0.06880077, -0.023608573, 0.0360965) * go_1(1.0, -1.0); + result += mat4(-0.16937497, -0.30156836, 0.0021435453, 0.025772978, -0.17990975, 0.046133514, -0.32447076, -0.083382785, -0.081322014, -0.022132374, -0.05319431, 0.11794733, 0.08943906, 0.12927428, 0.105764806, -0.051034793) * go_1(1.0, 0.0); + result += mat4(-0.011012306, 0.047636557, 0.050260928, 0.051847618, 0.010985655, -0.13752967, 0.023869954, 0.07011459, -0.18244945, 0.07239806, -0.013638856, -0.026982805, 0.11395993, -0.031304818, -0.08714153, 0.077115685) * go_1(1.0, 1.0); + result += mat4(0.08707592, 0.2265186, 0.13363098, -0.039588258, -0.029561255, 0.019238092, 0.024606103, -0.0019022018, -0.062285982, -0.0629511, -0.03753033, 0.109805316, 0.016018672, -0.08284564, -0.04092752, -0.030386891) * go_2(-1.0, -1.0); + result += mat4(0.0016500859, 0.01616536, -0.099148355, 0.24161765, 0.028064307, -0.028680569, 0.054400917, -0.1978921, -0.08584302, -0.096797146, -0.06546965, -0.09342837, 0.030265866, 0.07057579, -0.02080932, 0.053178705) * go_2(-1.0, 0.0); + result += mat4(-0.030304352, 0.047440585, -0.04248429, 0.08568772, -0.051317703, 0.036739342, 0.00865767, -0.018183297, -0.07335176, 0.025001721, -0.068509035, 0.1814819, -0.09756565, -0.024179723, -0.05959287, 0.0352454) * go_2(-1.0, 1.0); + result += mat4(0.023015196, -0.022870664, -0.12028372, -0.111095205, 0.11065281, -0.19900022, -0.24012049, -0.017028643, -0.13484617, 0.050107025, 0.10741765, 0.037951697, 0.013090438, -0.0010045726, -0.029447839, -0.1859787) * go_2(0.0, -1.0); + result += mat4(0.17922719, -0.24138594, -0.44595388, -0.032014426, 0.06897096, 0.07125395, 0.1944457, -0.035794795, -0.24022278, -0.13230884, -0.1277025, 0.21229011, -0.12249393, 0.06141907, 0.2687936, -0.26896995) * go_2(0.0, 0.0); + result += mat4(0.0397242, -0.30710965, 0.28815824, -0.06642567, -0.07588877, -0.019552408, 0.0057806037, 0.11465521, 0.03560534, -0.10640553, 0.023589289, -0.16667193, 0.02066607, -0.01026633, -0.02655378, 0.082493655) * go_2(0.0, 1.0); + result += mat4(-0.007902949, -0.08501038, -0.029395591, -0.07072227, -0.01800967, -0.14564751, -0.08372804, -0.049974415, 0.1756957, -0.02042449, -0.04413007, -0.016873527, -0.2385717, -0.001741017, 0.08298281, -0.019873247) * go_2(1.0, -1.0); + result += mat4(-0.01803727, 0.0642893, 0.21513617, 0.066888265, -0.042107955, -0.123470366, 0.045296013, -0.11958806, 0.48208967, -0.027188249, 0.12136116, 0.05246265, 0.13522038, -0.016297493, 0.028486907, -0.059840377) * go_2(1.0, 0.0); + result += mat4(-0.1373251, -0.11281026, -0.06418318, 0.08444032, 0.062874556, -0.009133875, -0.049571835, -0.042995855, 0.12483249, -0.025967957, -0.11202483, 0.09862257, 0.099986054, 0.009230306, -0.09042664, 0.046612263) * go_2(1.0, 1.0); + result += mat4(0.03203309, 0.106030256, 0.045741174, -0.020529225, -0.028610658, -0.055219248, -0.21404657, 0.07746393, -0.059359375, 0.0033258004, -0.0054513607, 0.06856653, 0.18043655, -0.119936846, -0.05639265, -0.10240379) * go_3(-1.0, -1.0); + result += mat4(-0.0004331875, 0.10426754, -0.008130048, 0.012795991, -0.14372933, -0.40797862, 0.105197415, -0.0041354536, -0.079792455, 0.0914027, 0.012418237, -0.11449173, 0.020261409, -0.14681602, -0.13355242, 0.18290488) * go_3(-1.0, 0.0); + result += mat4(0.052306626, 0.010864275, -0.072627716, -0.009773121, 0.09484167, -0.09631301, 0.14896165, -0.21220942, -0.11994051, -0.002957136, -0.118194886, 0.08661347, 0.10005298, -0.029620873, 0.101668894, 0.0242806) * go_3(-1.0, 1.0); + result += mat4(-0.055188183, -0.06322889, 0.12994595, 0.03140751, -0.092755616, 0.04239107, 0.18460171, 0.08471877, 0.014203371, 0.13608724, 0.035351243, -0.07883493, -0.10067456, 0.14417742, 0.0054235114, 0.100745104) * go_3(0.0, -1.0); + result += mat4(-0.043811034, -0.16055201, -0.11927185, 0.20517266, 0.16734722, 0.27720267, 0.1205665, 0.045803893, -0.07874647, 0.06764307, -0.11157022, 0.080770165, -0.044105835, -0.03276538, -0.10945451, 0.100562036) * go_3(0.0, 0.0); + result += mat4(-0.044731796, -0.12854387, -0.061937924, -0.21604767, -0.036132332, -0.024353411, -0.16718283, 0.14903957, -0.11620588, 0.14563644, 0.23363836, 0.08400659, 0.15248756, -0.1424437, 0.112882614, -0.04096889) * go_3(0.0, 1.0); + result += mat4(-0.0486021, -0.05714939, 0.042517707, -0.06106919, -0.12970918, -0.071898215, -0.044727243, -0.026308542, 0.05687118, -0.0394057, -0.109454155, -0.0021216893, 0.018588595, 0.08061093, 0.0500373, -0.0034918839) * go_3(1.0, -1.0); + result += mat4(0.11269324, -0.17924047, -0.12965205, -0.07287767, -0.015830642, -0.044497102, 0.20014328, -0.14054494, 0.1232692, 0.2395109, 0.14093149, 0.03518561, -0.14088139, -0.09045081, -0.07283352, 0.053434785) * go_3(1.0, 0.0); + result += mat4(0.020512339, 0.026349569, -0.06666101, 0.05554806, -0.03044066, 0.26656216, 0.019155584, -0.12118906, 0.087923005, -0.1716557, 0.050843164, 0.037432503, -0.030232614, 0.030457936, 0.04232163, -0.066400655) * go_3(1.0, 1.0); + result += vec4(-0.0216415, 0.09015036, -0.030761974, -0.26541537); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!SAVE conv2d_1_tf1 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.04688368, 0.13853125, 0.1714716, -0.03034447, -0.08090605, 0.1225867, 0.17535992, 0.012508419, -0.0010665918, -0.07481546, -0.15541986, 0.0671128, -0.029307734, -0.076674186, 0.03925896, -0.07140553) * go_0(-1.0, -1.0); + result += mat4(-0.13273083, 0.062933214, 0.04200143, -0.0080243945, -0.120439716, -0.090192355, -0.022639645, 0.00020024918, -0.11211478, -0.12949537, 0.025783822, 0.009155746, 0.01004339, -0.0661901, 0.10630156, 0.053137038) * go_0(-1.0, 0.0); + result += mat4(0.07113487, -0.16011865, -0.10838903, -0.0034704183, 0.110606894, -0.14915739, 0.036511585, -0.003103608, -0.0551775, -0.13140677, 0.05270299, 0.12139221, 0.02226174, 0.008415268, -0.06647426, 0.118130066) * go_0(-1.0, 1.0); + result += mat4(-0.045172617, -0.0020388453, -0.27287582, 0.002428232, -0.2833772, 0.13788106, 0.073339015, 0.10666715, 0.08455194, 0.16499293, 0.089058325, 0.008815447, 0.034657538, -0.109856166, -0.11499077, -0.02918854) * go_0(0.0, -1.0); + result += mat4(0.07910854, -0.26334837, -0.3246593, -0.08246522, 0.09211476, 0.40793833, -0.09658794, -0.14430091, -0.50632644, 0.087234974, 0.26298127, 0.3687086, 0.06492316, 0.23082961, 0.18233871, -0.09283792) * go_0(0.0, 0.0); + result += mat4(-0.022744032, 0.21690565, 0.2694824, -0.12230013, -0.07969618, 0.21595429, -0.034979805, 0.008938489, 0.21289209, -0.446482, -0.042927746, -0.13587558, -0.032581557, -0.07182814, -0.054092336, -0.009542036) * go_0(0.0, 1.0); + result += mat4(-0.0034912943, -0.080354184, -0.08577375, -0.1521193, 0.09809233, 0.034529503, -0.100664355, 0.008191219, -0.014303411, -0.02862216, -0.18669915, -0.12384598, 0.046499267, 0.093707144, 0.10661308, 0.15079576) * go_0(1.0, -1.0); + result += mat4(-0.031025652, -0.0384342, 0.14258307, 0.25531343, 0.0075049917, -0.03966595, 0.062381975, 0.19593526, -0.2868182, 0.03162008, -0.4391041, -0.524017, -0.034463473, -0.0066741486, -0.24586639, 0.10521736) * go_0(1.0, 0.0); + result += mat4(-0.07452321, -0.0227877, -0.025402244, 0.115727395, -0.039511252, -0.07785703, -0.013689458, 0.0066024344, -0.052957747, 0.011206241, -0.0021671024, 0.077190824, -0.11709912, 0.046635598, 0.123751156, -0.03712064) * go_0(1.0, 1.0); + result += mat4(0.055411004, -0.0020031065, 0.06685547, -0.018829947, -0.06378933, -0.18389674, -0.0023551763, 0.0670314, 0.13038594, 0.0601923, -0.03035789, -0.019537423, -0.014483204, -0.056800704, 0.08663347, -0.106859975) * go_1(-1.0, -1.0); + result += mat4(-0.06603686, 0.07360526, -0.0072026253, -0.06778907, -0.039178446, 0.012397263, -0.13482279, 0.05745685, -0.055182382, -0.10545766, 0.003857615, 0.041947857, -0.15239377, 0.041826613, 0.058879383, -0.0042669442) * go_1(-1.0, 0.0); + result += mat4(-0.0697229, -0.010702144, -0.032265816, 0.013317131, 0.105028264, 0.21032134, 0.06845646, -0.018358687, 0.064568676, 0.08437135, -0.000723181, 0.1324007, 0.05527932, -0.049871888, -0.10125047, -0.005040889) * go_1(-1.0, 1.0); + result += mat4(-0.006467578, -0.05120533, -0.011780779, -0.011742203, -0.34242442, -0.020819988, 0.17381702, -0.059836414, -0.028882682, 0.23210457, 0.16579404, -0.03708216, -0.23541835, -0.03290251, 0.029319672, 0.26189178) * go_1(0.0, -1.0); + result += mat4(-0.30955994, -0.06408282, -0.16872866, 0.10767772, -0.041430887, 0.051697977, 0.12523535, -0.060389146, 0.026289431, 0.06359533, 0.13526368, 0.2479901, -0.3263977, 0.10216362, -0.0030894123, 0.046437826) * go_1(0.0, 0.0); + result += mat4(0.10061438, -0.17047118, -0.21593021, -0.023389054, -0.17507865, -0.30822313, -0.22044766, 0.16078933, 0.07099252, -0.11573018, 0.24712858, -0.0659458, -0.037504572, -0.12297423, 0.03342632, -0.058119852) * go_1(0.0, 1.0); + result += mat4(-0.020957774, -0.0224927, 0.04069268, -0.07911167, 0.074009344, 0.065916434, 0.008222278, 0.11625076, -0.25299504, 0.03357169, -0.021988, 0.015821831, -0.0021187372, -0.030700417, -0.004374924, 0.027358979) * go_1(1.0, -1.0); + result += mat4(0.06549052, -0.048067164, 0.05489091, -0.28851983, 0.13378961, 0.026875904, -0.09877994, -0.19947459, -0.1274035, -0.022928834, -0.26344195, -0.025870804, 0.022505255, 0.0070861108, 0.121051334, -0.025964163) * go_1(1.0, 0.0); + result += mat4(0.059426542, -0.0327433, 0.2313695, -0.07046268, 0.20479666, 0.027021704, 0.2564928, -0.11689885, -0.07407976, -0.019611249, 0.093463086, -0.121553615, 0.035009407, -0.008135333, -0.075931996, 0.047803063) * go_1(1.0, 1.0); + result += mat4(-0.059434246, -0.1652242, -0.124611154, 0.04743711, 0.10530296, -0.13869187, -0.036534663, -0.035206333, 0.06067593, 0.06126907, 0.120151915, -0.06722673, 0.008103894, 0.037225723, -0.007520425, 0.065720856) * go_2(-1.0, -1.0); + result += mat4(-3.6759695e-05, -0.036789574, 0.013370567, -0.037871476, -0.013454664, 0.15086569, 0.10164699, 0.057703357, -0.12871023, 0.12827681, -0.055057358, -0.040753044, -0.0142621, 0.08563361, -0.04615499, -0.03130452) * go_2(-1.0, 0.0); + result += mat4(-0.117965914, 0.09056485, 0.07272314, 0.009695964, -0.11331058, 0.07467256, -0.08291521, 0.00937355, -0.04097737, 0.07752905, -0.017335521, -0.12539999, 0.039462104, -0.0007037007, 0.06034812, -0.09497377) * go_2(-1.0, 1.0); + result += mat4(0.20828065, 0.0400099, 0.047638226, -0.046423353, -0.026133502, 0.098207295, 0.056742374, 0.017029466, -0.058164768, -0.046973787, -0.17328712, -0.0012984811, 0.050085854, 0.11296557, 0.12639083, 0.058543045) * go_2(0.0, -1.0); + result += mat4(-0.098907426, 0.22031747, 0.101559944, 0.06616554, 0.026110496, 0.56487054, 0.23754556, -0.07540935, 0.31768414, -0.47653618, 0.015073956, -0.33731326, 0.087285936, -0.24593173, -0.26141426, 0.15003823) * go_2(0.0, 0.0); + result += mat4(0.046026446, -0.13767281, 0.064847544, 0.07717139, 0.08544123, -0.11092969, 0.072325274, 0.010849038, -0.3055905, 0.66436774, 0.1434729, 0.0494463, 0.07115603, 0.083811216, 0.020431712, 0.06537088) * go_2(0.0, 1.0); + result += mat4(-0.15532711, 0.030139687, 0.040853374, 0.11089222, -0.08150315, -0.015851755, -0.06787692, 0.096075505, -0.011956207, -0.0017758606, 0.1277494, 0.16156575, -0.038588695, -0.0626418, -0.041797023, -0.19467135) * go_2(1.0, -1.0); + result += mat4(0.12917455, 0.017410474, -0.20125067, -0.08040003, -0.13494664, 0.17789102, -0.19909395, 0.08441434, 0.078570575, -0.06330619, 0.23767303, 0.5442659, -0.009227878, -0.021818208, 0.14318731, -0.09042824) * go_2(1.0, 0.0); + result += mat4(0.097801, 0.09345441, 0.17846581, -0.14773296, 0.06536365, 0.07642184, -0.011880635, 0.02086135, 0.013336972, -0.053295113, -0.13410404, 0.027241753, 0.087728985, -0.044033397, -0.13098569, 0.009423933) * go_2(1.0, 1.0); + result += mat4(-0.02488427, 0.0134966355, -0.0075000813, 0.07272353, 0.015842725, 0.13765687, 0.028079558, -0.08384948, -0.06666623, -0.023220664, 0.025091043, -0.055167805, -0.18826278, 0.04423603, 0.13499942, 0.059128854) * go_3(-1.0, -1.0); + result += mat4(0.01935146, -0.030980906, -0.031569187, -0.0036869382, 0.036753897, 0.118464164, 0.15871695, -0.09842428, 0.023324292, 0.071796335, -0.07869346, -0.10751301, -0.2588698, 0.064011686, 0.17386378, -0.039197855) * go_3(-1.0, 0.0); + result += mat4(0.08590827, 0.005497696, -0.026512025, 0.015661815, 0.1102415, -0.08268483, -0.0032903247, 0.10049029, -0.008157236, -0.035823178, -0.017570151, -0.081716835, -0.3531045, 0.010005245, 0.017141227, -0.016376914) * go_3(-1.0, 1.0); + result += mat4(-0.16617337, -0.007689783, 0.00954665, 0.07117733, -0.001669262, -0.012331606, 0.051613946, 0.062780835, 0.06123557, -0.20243123, -0.19181818, 0.032895602, 0.19760677, 0.004464939, 0.12754539, -0.27360034) * go_3(0.0, -1.0); + result += mat4(0.15006685, -0.083587274, -0.03215495, -0.16992462, -0.011944293, 0.058361508, -0.088097006, 0.023880545, -0.04168166, -0.06960282, -0.092672385, -0.057278465, 0.23540072, -0.1721208, -0.018213503, -0.23494521) * go_3(0.0, 0.0); + result += mat4(-0.124885194, 0.1905868, 0.11108704, 0.03163991, 0.11383064, 0.101223364, 0.069428995, -0.14298953, -0.07609092, 0.13704266, -0.07749446, -0.0005389336, -0.04617235, 0.18011934, 0.08350316, 0.09416366) * go_3(0.0, 1.0); + result += mat4(0.073356606, 0.067966126, -0.21285574, 0.0782625, -0.0034364646, -0.032581426, -0.05538558, -0.1317288, 0.14552782, -0.1132393, 0.13063973, -0.00833602, 0.0026844777, 0.028135289, -0.02536825, -0.028372496) * go_3(1.0, -1.0); + result += mat4(-0.318728, 0.07862527, -0.12176221, 0.35010242, -0.029198067, 0.016302662, 0.17667587, 0.12605923, 0.1556697, -0.06061443, 0.05843511, 0.10891248, 0.01267106, -0.018492714, -0.15945031, -0.050723754) * go_3(1.0, 0.0); + result += mat4(-0.21555941, -0.016813517, -0.084676236, -0.07545412, -0.14518794, -0.014592766, -0.2446481, 0.0530632, 0.0847341, 0.12342537, -0.028644923, 0.083479315, -0.04179012, 0.0025225023, 0.16006976, -0.026940256) * go_3(1.0, 1.0); + result += vec4(-0.060742114, -0.037577342, 0.055704296, 0.03134311); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!SAVE conv2d_2_tf +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.13129333, -0.022117995, -0.009753253, 0.020439912, 0.044090994, -0.0916335, 0.0036765633, -0.11719207, -0.06413809, 0.04079378, -0.00085516454, -0.06306388, -0.12660664, -0.054126263, -0.005513979, 0.06364538) * go_0(-1.0, -1.0); + result += mat4(-0.028422508, 0.23270117, -0.28674677, -0.10820166, 0.024321957, -0.0811145, -0.07290707, -0.02125165, -0.064260505, 0.052076746, -0.009654081, 0.08363882, -0.02037171, 0.15006389, 0.121593125, -0.011237004) * go_0(-1.0, 0.0); + result += mat4(-0.14672333, 0.015381624, 0.1028172, -0.041823238, 0.0072677187, -0.042953942, 0.06426537, -0.0938381, -0.05990813, -0.04599802, -0.11264726, -0.027826328, -0.058160868, 0.10747306, -0.07327458, 0.07998872) * go_0(-1.0, 1.0); + result += mat4(-0.08702181, -0.03750975, -0.045659006, 0.04488332, 0.09102003, 0.066556975, -0.04353586, 0.08994567, -0.13561495, -0.10653702, 0.006989605, 0.028230097, 0.07177144, 0.2938447, -0.00943923, 0.022120917) * go_0(0.0, -1.0); + result += mat4(-0.1801194, -0.11119162, 0.1977298, -0.247902, -0.16654298, -0.07423158, 0.114130594, 0.0014401592, 0.006954727, -0.09810646, -0.051310766, 0.19487657, 0.2545855, -0.06328558, -0.04617056, 0.09444692) * go_0(0.0, 0.0); + result += mat4(0.011378825, 0.16044368, 0.017211074, 0.14472178, 0.032992378, -0.008925819, 0.035120245, -0.012409223, 0.074333005, 0.1178002, -0.128956, -0.13624239, -0.2791275, 0.21457297, -0.1476131, 0.04874687) * go_0(0.0, 1.0); + result += mat4(-0.03491764, -0.061763793, 0.05779039, 0.0054837577, -0.023937583, 0.08281698, 0.032306053, -0.014566218, 0.12738499, -0.0132100545, -0.051833414, 0.0057818824, 0.012158851, -0.20231532, -0.0043795826, 0.10285843) * go_0(1.0, -1.0); + result += mat4(-0.22269921, -0.15135509, -0.039143335, 0.033390045, 0.06770212, -0.14538582, -0.08011057, 0.03796648, -0.025913516, 0.13925864, 0.18309896, 0.012709204, -0.24912506, 0.3217706, 0.0394195, 0.017977878) * go_0(1.0, 0.0); + result += mat4(0.00080196525, 0.059145816, 0.05720508, 0.0056548906, 0.005168018, 0.09938438, 0.0200503, -0.05516137, 0.061309986, -0.019621318, -0.1541441, 0.019540716, 0.030571707, -0.09054893, 0.032851614, -0.27210873) * go_0(1.0, 1.0); + result += mat4(0.27061436, -0.114008114, -0.0020118617, -0.1656827, 0.09770587, 0.029897455, -0.03307522, -0.04661818, 0.033011347, 0.18498488, -0.05162084, 0.087471776, -0.24665618, -0.12538423, -0.08123797, -0.010210389) * go_1(-1.0, -1.0); + result += mat4(0.075188264, 0.0020608555, 0.18558815, 0.041179713, 0.11232638, 0.05507779, -0.19599183, 0.027942855, 0.06199144, 0.22141005, -0.06121163, 0.014993597, 0.24105869, -0.019737717, -0.112485714, 0.0157406) * go_1(-1.0, 0.0); + result += mat4(0.09425698, 0.0207658, 0.12074599, 0.009430481, 0.11889248, -0.025782838, 0.0034711843, 0.05113582, 0.012531833, -0.0018606635, -0.09137569, 0.018120576, 0.4051155, 0.02222076, -0.16001017, 0.10981527) * go_1(-1.0, 1.0); + result += mat4(-0.03582557, 0.014994796, -6.4688604e-05, 0.24618183, -0.11697727, 0.24388117, 0.038502026, -0.3511993, 0.101741396, -0.10748137, 0.035059888, -0.017535849, 0.09450039, 0.06541661, 0.12149035, 0.28798738) * go_1(0.0, -1.0); + result += mat4(-0.27143848, 0.017990451, -0.69144464, 0.037944376, -0.04551905, 0.09263134, 0.4259611, -0.14107811, -0.10641847, 0.23065196, 0.040813655, -0.07789163, 0.3087666, 0.08190437, 0.16409059, -0.06455426) * go_1(0.0, 0.0); + result += mat4(-0.08290655, -0.35286915, -0.18082355, -0.32229406, 0.1608227, 0.030915622, 0.09207708, 0.02655054, 0.039464593, 0.026095424, 0.052584656, 0.033881903, -0.01751319, -0.0011676399, 0.04002607, 0.1630013) * go_1(0.0, 1.0); + result += mat4(-0.012021132, 0.12163766, -0.07410629, -0.06879096, 0.017859738, -0.039261997, -0.028677614, -0.23610398, -0.15963873, -0.0006119958, 0.11275506, 0.0082659265, 0.05677582, 0.08676638, -0.08669759, -0.10475464) * go_1(1.0, -1.0); + result += mat4(0.12792721, 0.06888765, 0.31803077, 0.26002547, -0.067599155, -0.011822328, -0.2589909, -0.30024147, 0.11076704, 0.15200609, -0.018180368, -0.19146141, 0.22298847, 0.059484895, 0.034478076, 0.15610938) * go_1(1.0, 0.0); + result += mat4(0.0870121, -0.016420847, -0.011579898, 0.097182855, -0.120095566, -0.06843338, -0.043460473, -0.060684606, -0.027540063, -0.008499213, 0.033570655, -0.06866259, 0.01429712, -0.07424434, 0.0009466247, 0.09142678) * go_1(1.0, 1.0); + result += mat4(-0.03781424, 0.04587032, 0.03744051, 0.02712279, -0.051038064, 0.0669144, -0.02640278, 0.12384894, -0.0022533627, -0.010022036, 0.07536463, -0.030489929, 0.09418577, 0.155089, -0.011290433, -0.02102941) * go_2(-1.0, -1.0); + result += mat4(-0.0053278613, -0.07160643, 0.039028414, 0.04123311, -0.10693177, -0.1170874, 0.07230816, -0.033255517, -0.119176835, 0.0786526, -0.11880206, -0.11354601, -0.037539184, 0.14404313, 0.069760695, 0.024738638) * go_2(-1.0, 0.0); + result += mat4(0.03413808, -0.006487654, 0.10006853, 0.22228058, -0.13796462, -0.14042488, 0.04017443, -0.031790894, -0.06673143, 0.009888688, 0.08831443, -0.0045771743, -0.028375361, -0.04704813, 0.07128581, -0.07012518) * go_2(-1.0, 1.0); + result += mat4(-0.06954315, -0.23728988, -0.14192343, -0.08236467, -0.2552115, 0.04102959, -0.06355397, -0.08340241, 0.17617856, 0.20281969, -0.16249381, 0.10843737, -0.04392261, -0.08587206, 0.053069845, -0.15482199) * go_2(0.0, -1.0); + result += mat4(0.124981806, 0.12828638, -0.061472785, -0.20108232, -0.14905351, -0.40766275, -0.35427195, -0.13183996, 0.09307428, -0.07697028, 0.06702549, -0.22656697, 0.019868268, -0.19361132, 0.08784669, 0.20249842) * go_2(0.0, 0.0); + result += mat4(-0.004661343, -0.09333453, -0.24876262, -0.07906779, 0.110697776, -0.37069768, -0.042212646, -0.0046135853, -0.2254257, -0.023392014, 0.031476703, -0.045574382, -0.12675518, -0.076056994, -0.08228006, -0.040303517) * go_2(0.0, 1.0); + result += mat4(0.16182694, 0.0512523, 0.051189836, 0.048962783, -0.05156489, -0.17987493, -0.012037288, 0.06953726, -0.09458492, 0.1610021, -0.004063283, -0.032922342, 0.08995396, 0.1939926, -0.018710036, -0.08153231) * go_2(1.0, -1.0); + result += mat4(-0.064830944, 0.06121252, -0.18886387, -0.12976822, -0.031117212, 0.12219633, 0.19070715, 0.12495262, -0.11994464, -0.24687837, -0.08425294, -0.016920334, -0.13286817, -0.3260188, -0.11776061, 0.1651019) * go_2(1.0, 0.0); + result += mat4(-0.17652592, 0.002499805, -0.030541016, -0.01393431, 0.031418208, 0.08209422, 0.12430871, 0.4387016, -0.108871914, -0.09041422, 0.031226631, -0.1638517, 0.20756467, 0.014476537, -0.012701195, -0.03440563) * go_2(1.0, 1.0); + result += mat4(0.005320072, -0.0032291536, -0.017209187, 0.031944863, -0.2479921, -0.24433962, -0.13832912, 0.07835928, -0.17707248, 0.028202811, -0.19121435, 0.164587, 0.123152815, 0.0050288937, 0.084104605, -0.0380019) * go_3(-1.0, -1.0); + result += mat4(0.16008669, -0.018608516, -0.013778938, 0.033447385, -0.01242472, -0.070916265, 0.026909694, -0.07318777, 0.15158044, 0.12047607, -0.1709358, 0.2031767, 0.0025611701, -0.21457459, 0.2791286, 0.10159932) * go_3(-1.0, 0.0); + result += mat4(0.14320926, 0.020023825, -0.0484187, 0.011563084, -0.2640472, -0.013056275, 0.004234292, -0.095376395, 0.28363484, -0.0058227647, -0.0777649, 0.05238444, 0.41757923, -0.07081097, 0.012567031, -0.13029522) * go_3(-1.0, 1.0); + result += mat4(0.07266207, 0.042793367, -0.08212271, -0.23401663, -0.19457819, 0.4191269, -0.03095442, 0.15339781, -0.28451788, 0.09316364, 0.10231693, -0.22844811, 0.111623526, 0.120017685, 0.18777381, 0.014420896) * go_3(0.0, -1.0); + result += mat4(0.15037206, -0.29763284, 0.2601235, 0.0193363, 0.13686465, 0.009907918, -0.37781665, 0.04916627, 0.14114739, 0.5043813, 0.0447959, -0.029427614, 0.041768756, 0.27211213, 0.14163221, 0.086162075) * go_3(0.0, 0.0); + result += mat4(0.19159287, 0.21363218, 0.15053211, 0.08992885, 0.100828275, 0.09379921, 0.030783929, 0.11664482, -0.059145752, -0.19400764, -0.09351283, -0.016430443, -0.12910964, -0.067078374, 0.11760082, 0.121194765) * go_3(0.0, 1.0); + result += mat4(-0.055059325, 0.09299572, 0.06848913, 0.06334532, -0.1476285, 0.111801244, -0.033960916, 0.06474366, -0.04952303, 0.27885208, -0.052447475, 0.09226763, -0.15024844, -0.0033919013, 0.013498364, 0.09135676) * go_3(1.0, -1.0); + result += mat4(-0.017010042, -0.122343406, -0.19097193, -0.27957183, -0.18206005, 0.102321096, 0.22794476, 0.0439245, -0.23710132, -0.08070259, 0.17377135, 0.23811814, 0.17799385, 0.049567625, 0.1470908, 0.07329385) * go_3(1.0, 0.0); + result += mat4(0.0038071256, 0.19454515, -0.01222965, -0.07390379, -0.0532754, 0.03942833, 0.123840906, 0.023459576, -0.0658742, -0.023957543, -0.14682837, 0.1221027, -0.010986398, -0.066184506, 0.03026491, -0.0638446) * go_3(1.0, 1.0); + result += vec4(-0.06427697, -0.00039365015, 0.011889719, 0.060232002); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!SAVE conv2d_2_tf1 +//!WIDTH conv2d_1_tf.w +//!HEIGHT conv2d_1_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.012110923, 0.07818654, 0.07964548, 0.11885079, -0.07694473, -0.01378252, 0.006632789, -0.12876098, 0.0069211307, 0.022278586, 0.069553085, 0.16569804, -0.11123615, 0.06125189, -0.11232848, 0.1559266) * go_0(-1.0, -1.0); + result += mat4(-0.3261174, -0.25586754, 0.21129315, 0.3135101, 0.1509055, 0.0044283345, 0.024674175, -0.08000473, 0.01213029, 0.09093019, 0.04942677, 0.09806723, -0.16454464, -0.14433062, -0.058094524, -0.060819894) * go_0(-1.0, 0.0); + result += mat4(0.023174008, 0.02858724, 0.07685972, 0.036857616, -0.10415571, 0.10241035, -0.01893166, 0.02065923, 0.058356714, 0.096426114, -0.03772327, -0.1529002, 0.13740575, -0.048291504, -0.06152548, -0.15199897) * go_0(-1.0, 1.0); + result += mat4(0.029300174, -0.13222043, 0.0139825605, -0.02274408, 0.062944874, 0.028447356, 0.05960515, 0.034447193, 0.03133432, -0.019283533, -0.024591971, -0.0043914663, 0.15245225, 0.006851478, -0.051783554, 0.17453748) * go_0(0.0, -1.0); + result += mat4(-0.09125915, 0.081739366, 0.01196335, 0.23130219, -0.22557035, -0.13537665, 0.0022028848, -0.043430023, 0.22759882, 0.07920754, -0.027986467, -0.14051494, -0.19557038, -0.03585936, -0.4258294, -0.03856216) * go_0(0.0, 0.0); + result += mat4(0.18511422, -0.09368415, 0.1551229, 0.04322566, -0.023400841, -0.02261204, 0.15129441, -0.007954805, -0.10739125, 0.019459398, 0.013128325, 0.018073296, 0.20886365, -0.20662378, -0.03814699, -0.09272838) * go_0(0.0, 1.0); + result += mat4(-0.027352437, -0.039882626, 0.12598103, -0.093930446, 0.030846786, -0.09325075, -0.009084744, -0.024584265, 0.07159868, 0.14162529, 0.19019091, 0.058855128, -0.09880401, -0.01843218, 0.14753596, -0.2449532) * go_0(1.0, -1.0); + result += mat4(0.06565521, 0.09150168, -0.08654865, 0.0829788, -0.07596146, -0.01815166, -0.08786775, -0.03477514, 0.20538878, -0.012766377, 0.020719538, 0.088188395, -0.034300096, 0.29972988, -0.20005241, 0.018425167) * go_0(1.0, 0.0); + result += mat4(0.11713916, 0.024167519, 0.05167596, -0.0027117804, -0.016994188, 0.048177514, -0.012556207, 0.010979094, 0.09098878, 0.028514355, 0.06063336, -0.06624107, 0.012754856, 0.013208708, -0.061374772, -0.0025992664) * go_0(1.0, 1.0); + result += mat4(-0.09053513, 0.03183455, 0.017340872, 0.12934409, -0.022161964, -0.0015361432, -0.049972344, -0.12763855, 0.12779881, -0.04697911, 0.018968226, -0.119873665, 0.05462772, -0.13919477, -0.10226718, -0.2540179) * go_1(-1.0, -1.0); + result += mat4(-0.29912186, -0.09291771, 0.050926663, 0.49361777, 0.21372582, 0.076717265, -0.058968987, -0.1572678, 0.3194591, -0.120582424, 0.03942037, 0.023128232, 0.24321598, 0.07046334, -0.21204855, -0.648296) * go_1(-1.0, 0.0); + result += mat4(0.05366883, -0.020366706, 0.020979457, -0.06893884, 0.04837168, 0.017253762, 0.008874203, -0.020785445, -0.20425391, 0.060179923, 0.046167206, 0.09863377, -0.14381303, 0.038928367, -0.06590863, -0.18408588) * go_1(-1.0, 1.0); + result += mat4(0.07099762, 0.2029403, -0.033945918, 0.15202214, 0.0901113, -0.27336198, -0.17693861, -0.16206753, -0.17642029, 0.09400492, -0.11165698, -0.07863893, -0.16306102, -0.056210615, 0.22173557, 0.013508989) * go_1(0.0, -1.0); + result += mat4(0.08541511, -0.27093616, -0.35273993, -0.48919773, 0.038383547, -0.16013749, 0.012996215, -0.03434873, 0.07024113, -0.28971404, 0.10623425, -0.0019642068, -0.062374946, 0.3291145, 0.22468035, -0.42971882) * go_1(0.0, 0.0); + result += mat4(0.020427933, 0.15062793, 0.08308975, -0.025095072, 0.030093266, -0.09649862, -0.03382388, -0.0016017791, 0.105402954, 0.020693144, -0.051065, 0.07704679, 0.02864139, -0.00135146, 0.03762216, 0.029277142) * go_1(0.0, 1.0); + result += mat4(0.01700994, 0.12214317, 0.06749582, 0.07354159, -0.093085855, -0.065021954, 0.010773045, -0.00095128635, -0.045384295, -0.072611265, -0.043900184, 0.049471326, 0.029131187, 0.03180158, -0.13313527, 0.05280797) * go_1(1.0, -1.0); + result += mat4(0.14751251, -0.15087761, 0.09932281, -0.099232934, -0.062390897, 0.112391844, -0.09159478, 0.15856399, 0.034708973, 0.01819943, -0.02730164, -0.13562973, -0.05687333, -0.0114601655, 0.07025971, 0.02496533) * go_1(1.0, 0.0); + result += mat4(-0.0117268525, -0.026162883, 0.07481553, 0.13420302, 0.029870516, 0.07405776, -0.06379041, 0.09631234, -0.07754842, 0.035888605, 0.0034764851, -0.040771756, -0.092022054, -0.034230903, -0.02281844, -0.0028173258) * go_1(1.0, 1.0); + result += mat4(-0.059846643, 0.016772347, -0.02287152, 0.07036337, -0.024946844, 0.09826078, -0.068491876, 0.20852126, 0.073890835, -0.058288682, 0.013093785, -0.05776076, 0.0516503, 0.052794468, 0.10837015, 0.038539834) * go_2(-1.0, -1.0); + result += mat4(-0.16391893, -0.008062687, -0.35022175, 0.2510062, -0.15820411, 0.048403125, 0.024878092, 0.037888516, -0.035924178, -0.068953894, -0.025386479, 0.24405715, -0.018495679, -0.051277515, 0.14754932, -0.031538483) * go_2(-1.0, 0.0); + result += mat4(-0.038429607, -0.047140498, -0.018157095, -0.029318782, -0.04094171, -0.11870087, 0.11214255, 0.07142628, 0.021007229, -0.005681072, 0.1662777, 0.10829575, 0.112268396, 0.03567479, -0.06738845, 0.0032037434) * go_2(-1.0, 1.0); + result += mat4(-0.032217573, 0.2102397, -0.20617546, -0.07920811, 0.12918773, 0.054486286, -0.13656865, 0.05806265, 0.01963165, 0.049910642, 0.15538268, 0.10724465, -0.09697837, -0.03070673, -0.0071386313, -0.11899626) * go_2(0.0, -1.0); + result += mat4(0.130827, 0.0051715383, -0.07212691, 0.45726067, 0.2773031, 0.2973666, 0.3951691, 0.01333662, -0.14561643, 0.04508669, 0.121690124, 0.13326228, -0.22579186, 0.058161184, 0.09281702, -0.00079749606) * go_2(0.0, 0.0); + result += mat4(-0.00771113, 0.09912341, -0.41895548, -0.06705759, 0.029148718, 0.052991726, 0.18665347, -0.031787418, 0.23053595, 0.09444956, 0.10691037, -0.06325714, -0.05335701, 0.1917427, -0.0065284846, 0.032622546) * go_2(0.0, 1.0); + result += mat4(-0.056801565, -0.019131258, -0.0939022, -0.08130343, -0.11051993, 0.0035269214, -0.047361933, -0.0543875, 0.10854369, 0.06445185, 0.016828364, -0.022595318, 0.1450623, 0.033027507, -0.020425137, 0.16169788) * go_2(1.0, -1.0); + result += mat4(-0.08747717, 0.07770065, 0.018155783, 0.07160794, 0.09860347, -0.04329888, -0.0043579484, -0.2014418, -0.060260013, 0.0036374568, -0.17566042, -0.2268221, 0.001273691, -0.2609373, -0.19417606, -0.04102927) * go_2(1.0, 0.0); + result += mat4(-0.086845055, -0.114253804, -0.13433142, -0.025941795, -0.0155711295, -0.13578776, 0.12059696, -0.08760523, -0.0057348222, 0.12164273, 0.07270617, -0.06352636, 0.08894258, 0.04140841, 0.1230304, -0.030357126) * go_2(1.0, 1.0); + result += mat4(0.03320213, 0.015911903, -0.06288296, -0.121976145, 0.2713457, 0.13913193, -0.092420585, 0.105714336, 0.10294281, -0.04591945, -0.11767934, 0.032249406, -0.06506192, -0.04639334, 0.08137017, -0.031746846) * go_3(-1.0, -1.0); + result += mat4(0.13717805, 0.0071242675, -0.077256985, -0.14974317, -0.08467893, -0.20126395, -0.06240603, 0.09554399, -0.075844854, 0.28380412, 0.046030026, 0.053188596, 0.50943077, 0.1179795, 0.32203588, -0.06712207) * go_3(-1.0, 0.0); + result += mat4(-0.18528835, 0.0016975187, -0.0041140947, 0.11234392, -0.34049067, -0.056880493, -0.04325441, 0.09905571, 0.10978758, 0.009608353, -0.10801905, -0.04071131, -0.09096832, -0.12350487, 0.011801418, 0.22521795) * go_3(-1.0, 1.0); + result += mat4(0.040283076, -0.034117915, -0.026142653, -0.06058959, 0.12511659, 0.4131219, 0.59190845, 0.39758852, 0.16032091, -0.5975032, -0.14516282, 0.115154505, 0.03874097, 0.18462797, 0.22934213, 0.05285643) * go_3(0.0, -1.0); + result += mat4(-0.17804009, 0.33769128, -0.14572927, -0.029545018, 0.3897, -0.055615567, 0.15232995, 0.48788264, -0.21422523, 0.03397293, 0.0337794, -0.19830915, -0.022457365, -0.35096076, 0.42616987, -0.19268763) * go_3(0.0, 0.0); + result += mat4(-0.13191561, -0.18337126, 0.017879983, -0.070472844, -0.09409196, -0.025770849, -0.060219247, 0.10869267, -0.17341033, -0.09199785, -0.0667796, -0.093538545, -0.21300837, 0.030474098, -0.04540468, 0.041321553) * go_3(0.0, 1.0); + result += mat4(-0.0998177, -0.08669185, -0.0090886615, 0.0021083376, 0.08900095, 0.5062186, 0.45537788, 0.029077586, -0.1001008, -0.0077697043, -0.0096318, 0.11706454, 0.07401959, -0.00650215, 0.06092762, 0.037442297) * go_3(1.0, -1.0); + result += mat4(-0.18500404, 0.0024998419, -0.11761331, -0.026825588, 0.27255726, 0.093010515, 0.3281413, -0.051473666, -0.050259475, -0.17258662, -0.23394547, 0.104795866, 0.035074063, -0.061560635, 0.05975411, -0.094255395) * go_3(1.0, 0.0); + result += mat4(-0.023440497, -0.021479638, 0.0036277648, 0.004972212, 0.02416659, -0.09856867, -0.03971455, -0.27094853, 0.026615402, -0.0047890246, -0.13755885, 0.16591635, -0.0016293586, 0.133207, 0.047790572, 0.029041538) * go_3(1.0, 1.0); + result += vec4(-0.0063728676, -0.029053684, -0.052831043, 0.006475641); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!SAVE conv2d_3_tf +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.0431447, 0.047972627, 0.09522898, 0.19048582, 0.0015511789, 0.1182684, -0.065335006, 0.061233886, -0.02451869, 0.065670215, -0.015341636, 0.06836347, 0.10215459, 0.17516296, 0.0857072, 0.072732896) * go_0(-1.0, -1.0); + result += mat4(0.10117189, 0.049022958, -0.016017418, -0.12119866, 0.089112304, 0.016286526, -0.025251161, 0.03239003, -0.0783818, -0.086096615, -0.13673106, -0.15934734, -0.51308054, -0.061430074, -0.16208844, 0.2227776) * go_0(-1.0, 0.0); + result += mat4(-0.011567444, 0.025550444, -0.018439503, -0.015003767, 0.11606929, -0.11613111, -0.040906087, -0.015202219, 0.03932618, -0.1106059, 0.03703376, 0.018548314, -0.12761284, -0.038109995, -0.23577367, 0.20272344) * go_0(-1.0, 1.0); + result += mat4(0.025444161, -0.075270735, 0.10999789, 0.16305386, 0.016178958, -0.074034974, 0.1177035, -0.077481024, -0.047774278, -0.029782977, 0.23137823, -0.2389453, 0.033015423, -0.10381626, -0.16437943, 0.20906886) * go_0(0.0, -1.0); + result += mat4(-0.098473966, 0.11013442, -0.18486807, 0.1907086, -0.17564997, -0.08509439, -0.42472756, -0.17446618, 0.3440862, 0.12719585, -0.12213955, -0.02246555, 0.18982963, 0.20809166, -0.36067408, 0.51116616) * go_0(0.0, 0.0); + result += mat4(-0.019805575, 0.07812505, 0.061653323, -0.08379226, 0.026396899, 0.009063019, -0.10845824, 0.0827647, 0.045301896, -0.07748021, -0.07435832, 0.14860612, -0.077515624, 0.010588131, -0.22704287, 0.26849246) * go_0(0.0, 1.0); + result += mat4(-0.02884339, -0.09512523, -0.038564682, 0.08862835, 0.041666254, -0.10532901, 0.040582962, -0.10063983, -0.15736029, -0.03644334, -0.005061672, 0.04302295, -0.046482194, -0.05262547, 0.05110866, 0.03204655) * go_0(1.0, -1.0); + result += mat4(-0.005932702, 0.033263832, 0.0044865874, -0.02328917, 0.056534443, -0.14084046, 0.022353357, 0.015087431, -0.2734596, -0.026544483, 0.06297078, 0.11277746, 0.06127936, 0.02466357, -0.04970561, 0.02098484) * go_0(1.0, 0.0); + result += mat4(0.013603583, 0.036264602, 0.10985147, 0.01532773, -0.09012781, 0.1132652, -0.17016481, 0.025332611, -0.077462606, 0.02990799, -0.10627784, -0.006231141, -0.089164406, -0.051507175, -0.043900985, 0.09049239) * go_0(1.0, 1.0); + result += mat4(-0.15391691, 0.1915742, 0.014101639, -0.022153432, 0.06291936, -0.017871676, -0.016763045, -0.14741553, -0.011252563, -0.20720159, -0.030648025, -0.0142307645, 0.010291614, -0.09243969, -0.052940153, 0.0061574522) * go_1(-1.0, -1.0); + result += mat4(0.032283742, 0.030768922, 0.1070225, -0.027818602, 0.10032608, 0.0061178426, -0.03561339, -0.26687133, 0.14369439, -0.11362691, -0.08980895, 0.066520914, 0.33414948, 0.006998835, 0.09193012, -0.2857383) * go_1(-1.0, 0.0); + result += mat4(-0.059588976, -0.02046844, -0.042585023, 0.031939838, 0.12796514, -0.06155685, 0.03540324, 0.009929082, -0.0039611827, 0.10790477, 0.049435645, -0.083034374, 0.23874004, -0.07460337, -0.020173345, -0.2006587) * go_1(-1.0, 1.0); + result += mat4(-0.13217632, 0.052319963, -0.026713084, -0.0051368694, -0.10380872, -0.28659084, 0.0044393227, 0.005174543, -0.05092618, -0.07092548, -0.027397033, -0.01609789, 0.13699281, -0.14706929, 0.17737861, -0.23746766) * go_1(0.0, -1.0); + result += mat4(0.19268502, 0.14133929, -0.1305119, -0.4034132, 0.057504695, -0.24550998, -0.081932545, 0.45489246, -0.29331785, 0.19625074, 0.063166246, 0.15158689, 0.6715147, -0.4610189, 0.08921431, 0.17761138) * go_1(0.0, 0.0); + result += mat4(0.044718128, -0.011809122, 0.024131307, -0.30093196, -0.05607289, 0.047759805, 0.004210022, 0.098192796, 0.030430846, 0.008207501, 0.12266905, -0.10549182, 0.11584339, -0.091016166, -0.08635591, -0.13889709) * go_1(0.0, 1.0); + result += mat4(-0.19226642, 0.07147627, -0.14759602, 0.4041079, 0.0744628, -0.19612685, 0.1498252, -0.06273549, 0.017959936, 0.10858338, -0.14985329, 0.062042814, -0.13240446, -0.24362786, 0.113626175, -0.15332204) * go_1(1.0, -1.0); + result += mat4(0.08383099, -0.13935047, -0.25981048, 0.16491203, 0.07513876, -0.28346774, 0.19722275, -0.044425573, 0.020889329, -0.22140723, 0.025403097, -0.09183192, 0.014202567, -0.18666178, 0.062913105, -0.047674105) * go_1(1.0, 0.0); + result += mat4(-0.1862771, 0.25878942, -0.043018065, 0.22144824, 0.016088247, 0.12113542, -0.11965952, -0.01587184, 0.07830932, -0.16069177, 0.13421321, 0.018718706, 0.09548377, 0.018543294, 0.013614677, -0.1054485) * go_1(1.0, 1.0); + result += mat4(-0.2121733, -0.015635416, 0.027564054, -0.085904464, 0.064805664, -0.070543915, 0.08966146, -0.06359783, 0.01131311, 0.046913184, -0.09809833, -0.092063695, -0.087217696, 0.012411829, 0.0045399712, 0.027389864) * go_2(-1.0, -1.0); + result += mat4(-0.19307798, 0.09449126, 0.084036835, 0.30262446, 0.011706106, 0.029800637, 0.04612629, 0.006186647, 0.11228541, 0.055147965, 0.17659879, -0.023410015, 0.19965266, -0.06684007, -0.081968054, -0.052410994) * go_2(-1.0, 0.0); + result += mat4(-0.058564443, 0.08252549, 0.058217794, 0.0864448, -0.25663558, 0.080260284, -0.0010294432, 0.05830051, -0.07684524, 0.1820709, 0.04438993, 0.019178499, -0.12425012, -0.04596089, -0.010032888, -0.0012803525) * go_2(-1.0, 1.0); + result += mat4(-0.43352658, 0.15262963, 0.25620222, 0.22428556, 0.09667152, 0.0037820593, -0.07951691, -0.11553085, 0.12982155, 0.17988266, -0.14283511, 0.074744284, 0.03604327, 0.00452661, -0.12865154, -0.020020623) * go_2(0.0, -1.0); + result += mat4(0.06850602, -0.18057181, 0.2093389, -0.07333886, 0.28406742, -0.048766967, 0.18114483, 0.47292945, -0.2340266, -0.06862712, 0.28263155, 0.3150323, -0.054724697, -0.16958356, 0.27928987, -0.19666018) * go_2(0.0, 0.0); + result += mat4(0.03281329, 0.0038649621, -0.07108877, 0.10791149, 0.15235375, -0.3083721, 0.168294, 0.10379698, 0.029038485, 0.16282903, 0.04483725, -0.018684763, 0.108186625, 0.027885616, -0.019351846, 0.1623065) * go_2(0.0, 1.0); + result += mat4(-0.110499054, 0.31347123, 0.030852, 0.01631416, -0.1466389, 0.080429435, -0.18689284, 0.10667815, 0.20645237, -0.18004708, -0.10570413, -0.15435064, -0.019000605, -3.126077e-06, 0.037761535, -0.015040956) * go_2(1.0, -1.0); + result += mat4(-0.023364332, -0.023399066, 0.2712722, 0.049637552, -0.10222765, -0.2698945, 0.20991959, 0.04921932, 0.21510898, -0.0751939, -0.19781734, -0.28162366, -0.041881047, 0.0065111094, -0.04102195, 0.0982682) * go_2(1.0, 0.0); + result += mat4(-0.032176614, 0.019144032, -0.08985387, 0.091637276, 0.1012352, 0.0003583357, 0.07897295, -0.09531175, -0.001155058, 0.074372366, -0.026186578, 0.07283374, 0.06052053, 0.009307753, -0.03874333, -0.06228009) * go_2(1.0, 1.0); + result += mat4(-0.022224072, -0.15717922, -0.1406057, -0.05941157, -0.028769474, -0.21226564, -0.036570027, 0.22266355, 0.14120889, 0.014577123, 0.10216447, 0.018429281, 0.056729726, -0.055834044, 0.058146577, -0.11999068) * go_3(-1.0, -1.0); + result += mat4(0.009995364, -0.020045493, -0.0057422677, 0.0643022, 0.016475432, -0.030856136, 0.042140726, 0.15077904, -0.32955253, 0.0694449, 0.17931722, 0.3439302, -0.12484157, -0.10958869, -0.15755124, -0.09755644) * go_3(-1.0, 0.0); + result += mat4(-0.008314924, 0.07704758, 0.043228816, -0.08110893, 0.099286236, -0.053224478, 0.22877018, -0.189486, -0.00798416, 0.018341504, 0.10734141, 0.0752633, -0.042524844, -0.086395286, 0.14299925, 0.026488977) * go_3(-1.0, 1.0); + result += mat4(-0.052531082, 0.19139186, 0.12205995, -0.2573172, 0.15157184, 0.0073150825, 0.089774385, 0.06604469, -0.16528498, -0.002511137, 0.14287429, -0.07819732, 0.025014274, 0.15338829, 0.0761692, -0.02803716) * go_3(0.0, -1.0); + result += mat4(-0.21000335, 0.15277153, 0.08546171, 0.2816124, -0.16559112, -0.11068559, 0.47053605, -0.009787771, -0.0013089112, -0.06985127, 0.44743782, 0.25142467, -0.32670796, 0.044035822, -0.12545367, -0.2996084) * go_3(0.0, 0.0); + result += mat4(-0.11526387, 0.15654811, 0.099616654, 0.15473685, 0.21278231, 0.046207245, 0.117993094, -0.26825273, -0.12539764, 0.14013724, 0.17357737, -0.05387817, 0.076738276, -0.13339446, 0.15005626, -0.2108176) * go_3(0.0, 1.0); + result += mat4(-0.0008846504, -0.05998622, -0.028892396, 0.04784136, 0.0104263965, 0.10899508, -0.073364735, 0.077516064, -0.074248806, -0.21749993, -0.26203, 0.041161157, 0.09366407, -0.026498007, 0.0122177545, 0.03892727) * go_3(1.0, -1.0); + result += mat4(0.04349908, 0.13671173, 0.2242545, -0.028021423, -0.03802222, 0.0052366396, -0.010709643, 0.031290106, 0.06291333, -0.024909683, -0.15439379, -0.04502091, 0.2062182, -0.5983536, -0.09670497, -0.38446042) * go_3(1.0, 0.0); + result += mat4(-0.008962513, 0.13044207, 0.04964221, 0.012250417, 0.012129821, 0.019985713, -0.06421885, 0.009168735, -0.044516414, 0.071368866, -0.006634213, 0.06497366, 0.08578495, -0.10586125, 0.06628038, -0.14006054) * go_3(1.0, 1.0); + result += vec4(0.056541316, 0.041788545, -0.036094554, -0.021763096); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!SAVE conv2d_3_tf1 +//!WIDTH conv2d_2_tf.w +//!HEIGHT conv2d_2_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.0647927, 0.053666476, -0.14723225, 0.027874574, -0.0003166473, 0.07337155, -0.061972085, -0.012667777, -0.17071614, 0.091927536, -0.051160213, 0.21336353, 0.13854574, 0.09582817, 0.032316446, 0.13838023) * go_0(-1.0, -1.0); + result += mat4(-0.0398984, 0.108049214, 0.093780346, -0.022015186, -0.15188989, -0.1381083, 0.2998843, 0.21623154, -0.08862326, 0.025862623, 0.06895634, 0.13529755, 0.06957801, -0.0011681129, 0.105972745, -0.04722446) * go_0(-1.0, 0.0); + result += mat4(-0.026321493, -0.04828038, -0.012545767, -0.005490858, -0.054038163, 0.075943105, -0.11526662, 0.022242405, -0.03543104, -0.12451852, -0.14911178, 0.013503498, 0.08773292, 0.09695139, -0.013498657, -0.27424073) * go_0(-1.0, 1.0); + result += mat4(0.018575635, -0.11321618, -0.07853153, 0.04104883, 0.0018416744, 0.11579002, 0.03685964, -0.031546146, -0.1755398, 0.23517849, -0.08095411, 0.031999595, -0.18542038, -0.26171613, -0.20567231, -0.05683613) * go_0(0.0, -1.0); + result += mat4(0.1538556, 0.21723682, 0.12131733, -0.15308167, 0.103326, -0.006956118, 0.043583486, -0.23811384, -0.103285454, 0.05543916, -0.37894246, 0.32072112, 0.22651967, 0.03516268, 0.34612176, 0.23688535) * go_0(0.0, 0.0); + result += mat4(0.040021293, 0.0029912095, 0.04885362, 0.061496444, 0.016926387, -0.118446946, 0.038948335, -0.0934512, -0.25194243, -0.054018084, -0.07149527, 0.017903058, 0.0845516, 0.33802906, 0.11953944, -0.081294954) * go_0(0.0, 1.0); + result += mat4(-0.09558082, -0.36974236, -0.07524102, 0.11131445, 0.047626104, 0.12854609, -0.10264962, -0.044669047, -0.05572307, 0.34475142, -0.16806377, -0.0037204176, 0.03400533, -0.04047774, 0.024379745, 0.09056291) * go_0(1.0, -1.0); + result += mat4(-0.039392482, 0.2553437, 0.11705501, 0.03219211, 0.073977776, -0.16610906, -0.032796364, -0.054669864, -0.07123178, 0.00079619256, -0.36920992, -0.029054813, 0.12830003, 0.004987549, 0.08724278, -0.029499404) * go_0(1.0, 0.0); + result += mat4(0.021272454, -0.063295126, 0.011779576, 0.103093, -0.011095461, 0.027948728, -0.014605259, -0.04723974, -0.05334346, -0.044831257, -0.07296399, -0.03314197, -0.01687865, -0.09261895, -0.06128567, 0.092708185) * go_0(1.0, 1.0); + result += mat4(0.0077418387, 0.00871427, 0.060824487, 0.1093608, -0.021077013, -0.057341542, -0.04769576, -0.08144089, 0.0212823, -0.06731425, -0.04134463, -0.0016761447, -0.03402026, 0.036424547, 0.11689576, -0.14946719) * go_1(-1.0, -1.0); + result += mat4(0.18536687, 0.020073935, 0.17041959, 0.024790209, 0.08397728, -0.13884324, 0.013950321, -0.055075396, -0.09317963, -0.05723721, -0.060491834, 0.0017911601, -0.109154835, 0.010338362, -0.1982491, -0.21752335) * go_1(-1.0, 0.0); + result += mat4(0.031852514, 0.031424347, 0.07817056, 0.07770759, 0.019805199, -0.091223724, 0.11914662, 0.1673029, -0.018734453, 0.16275099, 0.23245652, 0.36139074, -0.1396047, -0.14774057, 0.13756078, -0.123794965) * go_1(-1.0, 1.0); + result += mat4(-0.034937833, 0.20777488, 0.10104809, -0.035140667, 0.2536575, 0.010970045, 0.16896339, -0.081219964, -0.062478427, -0.0010431948, -0.027980985, 0.11446318, -0.127309, 0.21002083, 0.044436257, -0.16986957) * go_1(0.0, -1.0); + result += mat4(0.06309646, -0.042341243, 0.36642808, 0.18653205, 0.06973023, 0.06315932, -0.323688, 0.25672218, 0.042820994, 0.13792914, -0.12892757, -0.09220378, -0.18939693, 0.03862022, -0.17376114, -0.24673308) * go_1(0.0, 0.0); + result += mat4(-0.02130602, -0.35428852, -0.011634983, -3.9823462e-05, 0.110818714, -0.2981158, 0.060209107, 0.012538829, -0.0744833, -0.050204318, -0.12676497, -0.031484153, -0.28799182, 0.22338839, -0.070876874, -0.02102363) * go_1(0.0, 1.0); + result += mat4(-0.07929991, 0.014598492, 0.23034762, 0.024872296, 0.07480494, -0.17139243, -0.014421178, 0.056448363, -0.028626937, -0.022152562, 0.044871796, -0.048653606, 0.009350802, 0.019022083, -0.08554845, -0.0922645) * go_1(1.0, -1.0); + result += mat4(-0.027405115, 0.1831188, 0.28516722, 0.19882526, 0.27299204, -0.06910511, 0.03244419, -0.0031333128, 0.061055277, -0.114398144, 0.03729459, -0.07840815, -0.37776002, -0.24129418, -0.54815483, -0.2702045) * go_1(1.0, 0.0); + result += mat4(0.053723935, 0.13472083, 0.09563273, 0.19009806, -0.18722993, -0.25939655, -0.016197463, -0.067061596, 0.1647598, 0.061905228, 0.06191816, -0.018582113, -0.07218153, 0.11278394, 0.05478068, -0.104871586) * go_1(1.0, 1.0); + result += mat4(0.0036616288, -0.045782693, -0.226954, -0.05043515, -0.078096785, -0.036197383, 0.09269631, 0.016823346, -0.0060579977, -0.041455746, 0.09032774, -0.09217121, 0.058089796, 0.060311552, 0.033079024, 0.022586476) * go_2(-1.0, -1.0); + result += mat4(0.0436363, -0.079482526, 0.0027447809, 0.039558932, 0.13275702, 6.898711e-05, -0.21961488, -0.11315821, 0.0076181027, -0.025279062, -0.15829584, -0.063141204, 0.062049046, 0.13117202, -0.02435016, 0.109555416) * go_2(-1.0, 0.0); + result += mat4(-0.010148116, 0.056620967, -0.015910713, -0.07370375, 0.1529919, 0.005792597, 0.02771225, -0.17027487, 0.096740395, 0.063347995, 0.17823112, 0.054105148, 0.04995114, -0.28613812, 0.06369567, 0.15978208) * go_2(-1.0, 1.0); + result += mat4(-0.13688345, 0.16967694, -0.061759472, 0.013682004, -0.1290496, 0.07167547, -0.065592445, -0.17897636, 0.057080988, 0.035630587, 0.09140394, -0.08695068, 0.16807681, 0.014749346, 0.07875138, 0.034913708) * go_2(0.0, -1.0); + result += mat4(-0.098915346, -0.31459075, -0.10892429, 0.1557498, -0.19764107, -0.26881596, -0.03589311, 0.45288458, -0.34171388, 0.12675741, 0.18415868, -0.19770056, 0.29025507, -0.15812592, 0.09685835, 0.0027761247) * go_2(0.0, 0.0); + result += mat4(0.06425249, -0.01169722, 0.06379363, 0.053835012, -0.07356561, -0.06367294, 0.108630784, -0.14137438, 0.08536725, -0.03209748, 0.07250959, -0.014214082, 0.07170588, -0.25647813, 0.1092683, 0.18791042) * go_2(0.0, 1.0); + result += mat4(-0.023783233, 0.14261739, 0.102011986, -0.03633555, -0.05032627, 0.09378387, 0.11764051, 0.1353335, 0.032817088, -0.1352964, -0.00667997, -0.13388929, 0.022861317, 0.0037358075, 0.018605746, -0.0009892831) * go_2(1.0, -1.0); + result += mat4(0.22419162, -0.23105696, -0.09900454, -0.15831396, 0.12398773, 0.097933106, -0.13189293, 0.1330756, -0.19673057, -0.037342317, -0.13462654, -0.08974021, 0.030326528, -0.0815862, -0.118352115, 0.009187904) * go_2(1.0, 0.0); + result += mat4(-0.012130391, -0.06408448, 0.13710785, -0.06678414, -0.09970725, -0.14895032, -0.02366641, 0.029581001, -0.07101809, 0.09414698, 0.018300869, 0.009139046, -0.0027311493, -0.2359952, -0.011602826, -0.007582444) * go_2(1.0, 1.0); + result += mat4(-0.15473361, -0.06868751, -0.030721204, -0.08650113, 0.071349874, -0.08177769, 0.1611948, 0.18305337, -0.0144878505, 0.10975452, -0.026968453, -0.04909913, -0.059665974, 0.056036238, -0.11623168, -0.10584912) * go_3(-1.0, -1.0); + result += mat4(-0.096973225, 0.054132458, -0.010600018, 0.089397885, -0.0031138035, 0.037452973, 0.041115325, 0.1924831, 0.14759748, 0.032560788, -0.082884625, 0.0324635, -0.083511285, -0.050381303, 0.025589975, -0.0981257) * go_3(-1.0, 0.0); + result += mat4(-0.09183111, 0.034952193, -0.048511654, 0.020719057, 0.1863456, 0.01902738, 0.14455654, -0.008500172, 0.16385981, -0.07806569, -0.031216217, -0.17002788, -0.08882952, 0.07335293, -0.2223089, 0.01706056) * go_3(-1.0, 1.0); + result += mat4(-0.08361569, 0.046698716, -0.016646344, 0.09351987, 0.0054158634, -0.13641126, -0.12396605, 0.011380122, 0.040951792, -0.11222528, -0.0031548145, -0.0022303525, 0.0350846, -0.03280425, -0.09972476, -0.113325305) * go_3(0.0, -1.0); + result += mat4(-0.19961461, -0.27561286, -0.12783135, -0.062596925, 0.005870981, -0.24796526, 0.18717633, -0.16945636, -0.076396205, -0.08411448, 0.13751988, 0.21014418, -0.008655945, -0.09848541, -0.14536901, -0.2132181) * go_3(0.0, 0.0); + result += mat4(0.14118621, 0.20831147, -0.020545695, 0.008340737, 0.016840864, -0.16912372, -0.121718146, 0.15108089, -0.19803092, -0.07827729, -0.047639225, -0.12277847, 0.04974115, -0.09349339, -0.2756667, -0.19581003) * go_3(0.0, 1.0); + result += mat4(-0.0036992705, 0.16539848, 0.022026122, 0.07740234, -0.035687633, -0.004568715, 0.017408118, -0.09757294, -0.094941914, -0.3381112, -0.12724453, 0.025583982, -0.18571027, 0.047607586, -0.0704089, -0.055323426) * go_3(1.0, -1.0); + result += mat4(0.13821335, 0.028168043, 0.09990671, -0.032266147, -0.067236245, 0.11512147, -0.112986445, -0.10818019, -0.10062181, 0.21276556, 0.01681818, 0.069806606, 0.09628121, 0.06456379, 0.10394843, -0.02343886) * go_3(1.0, 0.0); + result += mat4(0.041937463, 0.072631165, 0.045366894, -0.0046993676, 0.03946691, 0.121010706, -0.030089365, -0.007266469, 0.0092267515, 0.14853416, -0.033248078, -0.027284347, -0.10031526, 0.15864117, -0.16782752, -0.18466589) * go_3(1.0, 1.0); + result += vec4(0.07722432, -0.025165567, 0.034291282, -0.09902708); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!SAVE conv2d_4_tf +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.004729794, -0.0124398535, -0.08538641, -0.058604605, 0.008671952, 0.25604513, 0.020800482, 0.24144122, -0.028920606, -0.04705229, 0.030192787, 0.0010597534, 0.017666103, 0.0041322373, 0.20027764, 0.08919112) * go_0(-1.0, -1.0); + result += mat4(0.0001626656, 0.05816014, -0.0060765734, 0.08811165, 0.35835367, -0.016291425, -0.56892496, 0.083845764, 0.15026698, -0.15916558, 0.08069463, -0.3931291, -0.0123534845, -0.111639686, -0.14637001, -0.08171439) * go_0(-1.0, 0.0); + result += mat4(-0.114976816, 0.023376396, 0.13855027, 0.07438716, -0.069991484, 0.20377779, 0.23929878, -0.040769435, 0.018832395, 0.005638609, -0.091848075, 0.027843866, 0.023744943, -0.06620523, -0.11678267, 0.0844119) * go_0(-1.0, 1.0); + result += mat4(0.0035854098, -0.08432094, -0.17799544, -0.10041983, 0.25605857, 0.021009786, 0.030499447, -0.09928291, 0.052178737, -0.08286175, -0.057888374, 0.024606042, 0.046342995, 0.13875343, 0.11279266, 0.19826262) * go_0(0.0, -1.0); + result += mat4(-0.016232021, -0.21539623, 0.0936961, 0.021143785, 0.094262615, 0.049040064, 0.40978724, 0.15347758, 0.08884813, -0.24887115, -0.14756748, -0.5020875, 0.112477, 0.1466549, -0.33418837, 0.5769466) * go_0(0.0, 0.0); + result += mat4(-0.16832942, -0.07354198, -0.12081261, -0.055348314, 0.39716053, 0.25583258, 0.09870877, 0.2151021, -0.025700683, -0.1801462, -0.04616654, -0.02782245, -0.054461803, -0.00042802413, -0.00163228, -0.004240747) * go_0(0.0, 1.0); + result += mat4(-0.05193433, -0.0018198475, -0.17647028, -0.19462106, 0.1538165, 0.054894235, 0.12183955, 0.07340974, -0.0019901982, 0.0357373, -0.07597063, -0.06681543, -0.00090057997, -0.053894397, -0.010301875, -0.16553953) * go_0(1.0, -1.0); + result += mat4(-0.30873474, -0.2836045, 0.057037193, -0.5016378, 0.11952749, 0.102353275, 0.2351629, -0.14635189, -0.019398788, -0.08776502, 0.021669978, -0.089918956, -0.2187901, -0.1180891, -0.049789533, -0.16109149) * go_0(1.0, 0.0); + result += mat4(-0.078335494, -0.08867304, 0.03349591, -0.1000293, -0.20235832, 0.22917585, -0.09905303, 0.08381748, 0.014350217, -0.14478815, -0.027479894, -0.026432173, -0.10309177, -0.09860884, -0.019177807, -0.06963025) * go_0(1.0, 1.0); + result += mat4(0.008169383, 0.12532842, -0.23369955, 0.077973194, 0.09076616, -0.021277165, 0.1721421, -0.26914293, -0.014729218, -0.023279984, -0.057670787, 0.003598546, -0.015225789, -0.0115396585, -0.26196182, -0.10724508) * go_1(-1.0, -1.0); + result += mat4(0.16542235, 0.06589374, 0.07410237, 0.26753154, -0.3356288, 0.3096256, 0.07112498, -0.0992165, 0.15020338, -0.11021673, 0.18803611, 0.12918204, 0.109007336, -0.031968266, 0.057093572, 0.035949256) * go_1(-1.0, 0.0); + result += mat4(0.065006174, 0.031055925, 0.0390232, -0.01678507, -0.21553491, 0.14171642, -0.19541772, -0.033691674, -0.06241631, 0.07497651, 0.024557155, 0.056778047, -0.060191352, -0.0261998, 0.07493729, -0.0699132) * go_1(-1.0, 1.0); + result += mat4(-0.008541382, 0.020270415, -0.027760057, -0.040962905, -0.26732433, 0.34379438, -0.23012447, 0.0051356517, -0.04059567, 0.0972959, 0.039965224, -0.14796777, -0.0016924662, -0.116963714, -0.026353523, -0.29799464) * go_1(0.0, -1.0); + result += mat4(0.03329303, -0.12663862, -0.0004959157, -0.11162377, 0.26238343, 0.43260252, -0.16504994, 0.10727678, -0.22505566, 0.43474057, 0.43304008, 0.05143919, 0.40494493, 0.08689636, -0.035733614, 0.25727916) * go_1(0.0, 0.0); + result += mat4(0.12175736, -0.014467151, -0.17461288, -0.18480565, -0.26439998, 0.307935, -0.058916792, -0.014292711, -0.0569471, 0.10751278, -0.04134206, 0.1847734, -0.07519831, -0.033909313, -0.05001451, -0.136606) * go_1(0.0, 1.0); + result += mat4(0.1424893, -0.026820501, 0.19645774, -0.0011315406, -0.14680974, 0.07662838, 0.21108222, 0.13260938, 0.17923595, -0.085527614, 0.08217639, 0.06579479, 0.05985784, -0.09016323, 0.11172888, 0.111903176) * go_1(1.0, -1.0); + result += mat4(0.19842595, 0.0093640275, 0.10433465, 0.13341904, -0.082806975, 0.22555825, -0.1315717, 0.11907785, 0.24012424, 0.47776055, 0.1835734, 0.17483878, 0.079803735, 0.01155073, -0.21146573, -0.16484722) * go_1(1.0, 0.0); + result += mat4(0.15064004, 0.021381427, 0.18301587, 0.21225913, 0.054995645, 0.03212186, 0.052798916, -0.048424408, 0.03609021, 0.0964704, -0.059469886, -0.05133066, -0.08157349, 0.051145166, -0.09107608, -0.1362262) * go_1(1.0, 1.0); + result += mat4(0.090521574, -0.014747857, -0.081675015, -0.118686825, 0.04848682, -0.033071827, 0.008534588, 0.023765508, 0.16849907, -0.21797262, -0.17049783, -0.07824179, -0.033794608, 0.052612655, 0.095820345, -0.07262317) * go_2(-1.0, -1.0); + result += mat4(0.22816367, -0.13772108, -0.036353834, -0.47638395, -0.0530902, 0.14089061, 0.076203234, 0.18006112, 0.121814854, -0.20750527, 0.08266107, -0.28634354, 0.14301859, -0.13458411, 0.00501663, -0.039783802) * go_2(-1.0, 0.0); + result += mat4(-0.103384845, -0.14389835, 0.08275834, -0.068423435, 0.22643796, -0.02966374, -0.2847584, 0.037081387, 0.02349005, -0.19353923, -0.00095957273, -0.13623689, -0.073120415, 0.03941467, 0.21864155, -0.014019576) * go_2(-1.0, 1.0); + result += mat4(-0.082576886, 0.17085212, 0.08971252, -0.04213377, -0.032548156, 0.022137715, 0.08399252, -0.0011743539, -0.09410863, -0.41728264, -0.20709297, -0.18933547, 0.027059928, 0.09743364, 0.2504647, -0.041173562) * go_2(0.0, -1.0); + result += mat4(-0.20924084, 0.291118, 0.029851688, 0.16953468, 0.02936709, 0.12213576, 0.22944322, 0.108747594, 0.0001881129, -0.27398208, -0.009702691, 0.15449248, -0.9472944, -0.26114875, -0.28161275, -0.3495961) * go_2(0.0, 0.0); + result += mat4(-0.12994622, -0.2758638, -0.1091727, -0.0968308, -0.14323105, 0.035175014, -0.08023811, 0.006023802, -0.031529594, -0.1486306, -0.3398172, -0.23240276, -0.29163983, 0.173475, 0.18809283, 0.22197202) * go_2(0.0, 1.0); + result += mat4(0.048254848, -0.083444916, -0.014334202, 0.060992356, -0.023099286, -0.09492961, 0.05592045, 0.0026059286, 0.08998117, -0.108810075, -0.053304546, 0.045926623, 0.068255246, 0.099023566, 0.01595483, 0.1336309) * go_2(1.0, -1.0); + result += mat4(0.21916585, 0.2837387, 0.14624594, 0.18843961, -0.06747584, 0.054924384, -0.082568415, 0.05011459, 0.014297759, -0.3884833, -0.054417178, -0.18970548, 0.088336475, -0.030646667, -0.2980552, -0.030035203) * go_2(1.0, 0.0); + result += mat4(-0.02748568, -0.011897529, -0.2370837, -0.016740574, -0.0282112, 0.050353892, -0.10761107, -0.00036999505, 0.037646662, -0.17742962, 0.06489219, -0.158852, -0.08016933, 0.07808515, -0.105895035, 0.079869986) * go_2(1.0, 1.0); + result += mat4(-0.0058994526, -0.037170693, 0.2574696, 0.06199102, -0.04497728, -0.10667442, -0.15183865, 0.0212881, -0.030842574, 0.073473394, 0.010764398, -0.00084518327, -0.03893014, -0.009649613, 0.07443129, 0.15108284) * go_3(-1.0, -1.0); + result += mat4(0.11325495, -0.096435815, -0.097331434, -0.049700152, -0.17231967, 0.047090057, -0.019111065, 0.104790315, -0.15004838, 0.13950798, 0.055996202, -0.070548095, 0.047154237, -0.007650949, -0.053611025, -0.012242293) * go_3(-1.0, 0.0); + result += mat4(0.12787002, -0.04958212, 0.053988468, 0.0017896162, 0.049493514, -0.009475431, -0.0022641935, 0.03933694, -0.005174597, 0.043754533, -0.1432976, 0.037084177, -0.04601288, -0.032077815, -0.059897035, 0.12584484) * go_3(-1.0, 1.0); + result += mat4(0.019409029, 0.10492923, 0.268368, 0.12597778, -0.17733063, -0.0085961, -0.27136415, -0.049664587, 0.012515404, -0.21444482, -0.39275557, -0.12297177, 0.06800057, 0.19228315, 0.06245887, 0.35772634) * go_3(0.0, -1.0); + result += mat4(-0.16317715, 0.2288402, -0.23235172, 0.22230752, -0.1646375, 0.13366091, 0.16681044, -0.17399235, 0.33997267, -0.3179832, -0.34756508, 0.39843196, -0.10748536, 0.322923, 0.23339489, 0.08684083) * go_3(0.0, 0.0); + result += mat4(0.02835275, 0.12314228, 0.24030593, 0.30856124, 0.055735108, -0.044914473, 0.0031432225, 0.07469899, 0.1778018, 0.107083894, -0.023706734, -0.15501897, 0.0943098, -0.034707237, -0.18622099, 0.05257965) * go_3(0.0, 1.0); + result += mat4(0.042839274, 0.12597966, 0.08979042, -0.0647561, -0.050434645, 0.049438696, -0.20008127, -0.05572608, 0.046238814, 0.12622325, -0.019017145, -0.13960391, -0.040050175, 0.14298008, -0.20270552, 0.13391526) * go_3(1.0, -1.0); + result += mat4(-0.0073277587, 0.10606624, -0.08940439, -0.09656414, 0.12387374, -0.0013147948, 0.23607181, -0.00037969893, 0.050353236, -0.17266603, 0.27796733, -0.09877832, 0.02711225, 0.096394345, 0.07457944, 0.21541388) * go_3(1.0, 0.0); + result += mat4(-0.18612787, -0.00027517386, -0.17136407, -0.06413671, 0.025629476, -0.04570916, 0.0008431566, -0.03419168, 0.08123608, 0.09465922, 0.11975521, 0.1269741, 0.08413221, 0.12125001, 0.04727287, 0.072378494) * go_3(1.0, 1.0); + result += vec4(0.04244928, -0.014280219, 0.017129054, -0.08807801); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!SAVE conv2d_4_tf1 +//!WIDTH conv2d_3_tf.w +//!HEIGHT conv2d_3_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.01973856, -0.05053795, 0.015545361, 0.10867395, 0.33441806, 0.14731607, 0.6793983, -0.21394718, -0.00846322, 0.09146322, -0.07427475, -0.078477465, -0.090998545, 0.133366, 0.105515696, -0.13784988) * go_0(-1.0, -1.0); + result += mat4(-0.05404873, 0.09784018, -0.1337389, -0.18082313, 0.13461179, -0.3816801, 0.12209786, 0.08176651, 0.10461896, -0.43315184, 0.017470734, 0.20423968, -0.03941875, -0.101959296, -0.09440259, 0.09154717) * go_0(-1.0, 0.0); + result += mat4(0.17229515, -0.06907825, -0.008382803, -0.16671611, -0.01576541, 0.03985307, 0.08209482, -0.11707446, -0.11793074, 0.13702396, -0.02013158, 0.07302033, -0.022301994, -0.11464677, 0.036753565, -0.093276784) * go_0(-1.0, 1.0); + result += mat4(-0.017650167, 0.009475923, -0.17856382, 0.15925962, 0.06434641, -0.15568036, 0.038135886, 0.18855911, -0.04427734, 0.1878215, 0.10856261, 0.0041275816, -0.12046199, 0.13610138, 0.3741596, -0.12934728) * go_0(0.0, -1.0); + result += mat4(-0.24631616, 0.0169485, -0.035534818, 0.37795424, -0.08546174, 0.07817259, 0.42897213, -0.47965595, -0.0146556785, -0.20510523, -0.18889453, 0.06476019, 0.1021008, -0.35398817, -0.031071864, -0.21416448) * go_0(0.0, 0.0); + result += mat4(0.32810766, 0.050585747, -0.17658374, -0.13881154, 0.16417882, -0.21286008, -0.106835455, -0.1722344, -0.14151084, 0.08962986, 0.057395387, -0.01623662, 0.02570415, 0.15626897, -0.12687978, 0.080729105) * go_0(0.0, 1.0); + result += mat4(-0.050597478, -0.018753758, -0.036346875, -0.017908493, 0.058593344, 0.008303028, 0.05254987, -0.06635018, -0.022532012, 0.029511122, 0.026682215, -0.054647952, 0.069466785, -0.08892492, 0.025351115, -0.023130694) * go_0(1.0, -1.0); + result += mat4(0.2412473, -0.16138165, -0.15117447, 0.11851003, -0.096868426, 0.082690425, 0.27923304, 0.11590443, 0.19363573, -0.15770023, -0.066793665, 0.011681678, 0.14037277, -0.112065665, -0.048159517, 0.009453693) * go_0(1.0, 0.0); + result += mat4(0.1580054, -0.0060506654, 0.05267837, -0.09178131, -0.09107123, 0.23191126, 0.21108283, -0.070422985, 0.024321035, 0.06131459, 0.066626504, 0.032481454, 0.044402298, 0.1390604, -0.14432502, 0.040869843) * go_0(1.0, 1.0); + result += mat4(0.10264861, 0.013504324, 0.012482852, -0.1781206, -0.12799414, -0.27026084, -0.123830505, 0.098105, -0.039127555, 0.09367889, 0.122323096, 0.1416734, 0.044763107, -0.21801683, -0.14018978, 0.17646866) * go_1(-1.0, -1.0); + result += mat4(0.017453065, 0.11498537, -0.10998983, -0.3116098, -0.3099762, 0.5024706, 0.051817298, 0.03170681, -0.18937826, 0.07946567, -0.11978771, -0.09523745, -0.0033551592, -0.11768945, 0.08932359, -0.06689581) * go_1(-1.0, 0.0); + result += mat4(0.1507582, -0.013266159, -0.073085934, -0.07252967, -0.06301927, -0.13218755, 0.12984878, -0.13678701, 0.023422396, 0.082123175, 0.006906731, -0.004018426, -0.15813835, 0.13711788, 0.016018609, 0.13443229) * go_1(-1.0, 1.0); + result += mat4(-0.06960673, 0.16156524, -0.1374069, -0.05803206, -0.077960715, -0.10676749, 0.26282015, 0.03521529, 0.058099385, -0.014738148, 0.0011174522, 0.24279532, -0.023991548, -0.108812414, -0.08886019, 0.20584475) * go_1(0.0, -1.0); + result += mat4(-0.08043308, 0.063343, 0.055290066, -0.15991378, -0.08096304, -0.23888679, 0.019161629, 0.38381267, 0.3672934, -0.119608454, -0.43623593, -0.46014485, -0.5323366, 0.1318621, 0.087373205, -0.05535459) * go_1(0.0, 0.0); + result += mat4(0.20640239, -0.1369444, -0.21677823, 0.08202178, 0.10515278, 0.06810837, 0.073207974, 0.23623931, 0.102422275, -0.05016664, -0.0039228587, -0.1810343, -0.2235563, -0.1246854, 0.1428113, -0.10609135) * go_1(0.0, 1.0); + result += mat4(-0.031941894, -0.08905056, 0.21501167, 0.11244667, -0.011811734, 0.21630247, 0.07589472, -0.040489636, -0.11824066, -0.11520391, -0.10075633, -0.035642453, 0.062144946, 0.0073282206, 0.14119269, -0.060479023) * go_1(1.0, -1.0); + result += mat4(-0.29382935, -0.056808118, 0.051812876, -0.061358813, -0.08344258, 0.124203674, 0.037964176, -0.01961274, -0.000951725, 0.50005037, -0.24176972, 0.06487161, -0.15469861, 0.04336187, 0.17826353, 0.040010225) * go_1(1.0, 0.0); + result += mat4(0.02044482, -0.0879271, -0.01053958, -0.31148303, 0.07497373, -0.11548258, -0.1666126, 0.02369657, -0.058044076, 0.010801491, -0.005933901, -0.08910467, 0.007953008, 0.03761974, -0.029501524, 0.16816042) * go_1(1.0, 1.0); + result += mat4(0.1779597, -0.10213089, 0.29942423, -0.016642543, -0.015537001, -0.04676146, 0.09585872, -0.0055750017, -0.014361908, -0.20667697, -0.11348746, 0.13081487, -0.10437329, 0.14328459, 0.11648822, -0.09163837) * go_2(-1.0, -1.0); + result += mat4(0.019033967, -0.12420627, -0.07748253, 0.43203858, -0.109799065, 0.07605535, 0.060791396, -0.24517195, -0.15674245, 0.21267459, 0.10665515, -0.073150024, -0.1358355, 0.0054066703, -0.16434059, -0.06031853) * go_2(-1.0, 0.0); + result += mat4(-0.18834068, 0.26840356, -0.12937617, 0.16103932, -0.0062331813, -0.13630053, -0.013911821, 0.022389365, -0.044232946, -0.056454606, 0.022426741, 0.18010215, 0.041900013, 0.03375041, -0.11376866, -0.010313381) * go_2(-1.0, 1.0); + result += mat4(0.12497669, -0.31161824, 0.097568035, 0.19443443, -0.05056519, -0.0031457904, 0.1055554, -0.083650924, 0.07630523, -0.34177595, -0.093093194, 0.20701368, -0.030962149, -0.054470222, -0.23853977, 0.004326528) * go_2(0.0, -1.0); + result += mat4(0.34370202, 0.085750066, -0.16071722, -0.54335934, -0.35595295, -0.050744478, -0.17405547, 0.008628697, -0.007086256, 0.23164117, 0.340156, 0.5475976, -0.15292351, 0.28019544, 0.038059216, 0.0044727) * go_2(0.0, 0.0); + result += mat4(-0.08231968, -0.0052294536, 0.07451547, 0.22278999, -0.3305531, 0.0017458396, 0.10818422, -0.21325395, -0.08807993, -0.110342845, 0.10082142, -0.051594347, 0.24192205, -0.18042035, -0.0095462985, -0.08757798) * go_2(0.0, 1.0); + result += mat4(0.096379586, 0.021887815, -0.05097233, -0.06797989, -0.026171045, 0.022944937, -0.015915364, 0.037667938, 0.17216732, -0.014889412, 0.07343887, 0.028236505, 0.0015047621, 0.1355103, -0.09918284, -0.07673695) * go_2(1.0, -1.0); + result += mat4(-0.25385055, 0.15163356, 0.0030003798, 0.18464413, 0.05611221, 0.099498056, -0.07128191, 0.042955168, 0.027493173, 0.07440157, 0.07814497, 0.096160784, 0.13571084, 0.056412842, -0.031997006, -0.16073681) * go_2(1.0, 0.0); + result += mat4(-0.21634746, 0.025153082, -0.064477116, 0.0005679147, -0.0029436245, 0.12794618, 0.024849026, 0.03018052, 0.11723976, 0.059955597, -0.013594654, 0.09091745, 0.04775348, 0.21260159, -0.07463213, -0.06727042) * go_2(1.0, 1.0); + result += mat4(-0.12166018, 0.024545137, 0.08611618, -0.17627168, 0.09042604, -0.14157623, -0.22147785, 0.09100581, 0.11078359, 0.031410985, -0.17170976, 0.09532806, -0.059569277, 0.09392676, 0.11784347, -0.21471368) * go_3(-1.0, -1.0); + result += mat4(0.1483187, -0.2217563, 0.12032977, 0.14932398, 0.27428308, -0.04568031, 0.12670338, 0.09586169, 0.06700745, 0.005126449, 0.0027694793, -0.033667028, 0.06447861, -0.08585174, -0.05509812, -0.11358761) * go_3(-1.0, 0.0); + result += mat4(-0.22750492, 0.032906335, -0.029479047, 0.11580199, -0.05812372, -0.032269973, 0.05219915, 0.041658226, 0.010897959, 0.065550454, 0.0076911976, -0.045743827, 0.11614996, -0.10393113, -0.0012606392, -0.034367524) * go_3(-1.0, 1.0); + result += mat4(0.09350742, 0.09561609, 0.3735968, 0.031685118, -0.042026598, 0.17006761, -0.3910107, 0.16984761, 0.25679177, 0.036610503, -0.13772772, 0.11101589, -0.1137049, 0.07211461, 0.18065079, -0.12324793) * go_3(0.0, -1.0); + result += mat4(-0.020749722, 0.14413361, -0.061903823, -0.21550268, 0.31306142, -0.11532895, 0.029482557, 0.03282164, -0.09800627, -0.20765196, 0.33030233, 0.075725295, 0.49252015, 0.042455837, -0.07264194, -0.10401895) * go_3(0.0, 0.0); + result += mat4(-0.22697076, -0.15738785, 0.09740376, -0.072098814, -0.06638972, 0.12336611, 0.0073687397, 0.048267826, 0.06717852, -0.027047804, -0.123397194, 0.17829034, 0.04215185, 0.066311836, -0.061742183, -0.046373066) * go_3(0.0, 1.0); + result += mat4(0.041311592, 0.2813485, 0.055084586, -0.01823069, 0.08105147, -0.087944716, -0.10135052, -0.02653456, 0.063169874, -0.1351186, 0.06722432, -0.016406318, 0.08666922, 0.0555909, 0.12086502, -0.17224412) * go_3(1.0, -1.0); + result += mat4(0.26026788, -0.18303715, 0.029279215, -0.12858874, 0.027197823, 0.0919464, 0.00849638, 0.10547888, -0.12952055, -0.14414985, 0.1903315, 0.05004528, -0.12657289, 0.038008716, -0.036606666, -0.054025438) * go_3(1.0, 0.0); + result += mat4(0.069167465, 0.2699947, -0.11137602, -0.05888806, -0.107324794, -0.07598601, 0.06042177, 0.0064530694, -0.039780665, -0.076666445, -0.00846108, -0.06165907, -0.06978219, -0.19108103, -0.040026028, -0.120319635) * go_3(1.0, 1.0); + result += vec4(-0.14375664, -0.0056876075, 0.052177623, 0.07152566); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!SAVE conv2d_5_tf +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.15667982, -0.31441393, 0.29112124, -0.15737213, 0.022372838, 0.10690639, -0.12019085, -0.051941186, -0.30367845, 0.02612279, 0.2372532, 0.2021648, -0.20481086, -0.003770439, 0.14981231, 0.066780254) * go_0(-1.0, -1.0); + result += mat4(0.03270688, -0.42270073, 0.044317324, 0.15907793, 0.14681059, -0.2934784, 0.24933252, -0.067273855, 0.07752533, -0.23194817, 0.0686707, 0.08999225, 0.121678345, -0.12916678, 0.012397381, 0.012315053) * go_0(-1.0, 0.0); + result += mat4(-0.10090412, -0.20792678, 0.11076032, -0.02938975, -0.1944187, -0.2003259, 0.04438032, 0.36946484, -0.019868722, -0.15830222, 0.042811528, 0.015641417, 0.113098525, 0.080257006, 0.011135628, -0.2877629) * go_0(-1.0, 1.0); + result += mat4(0.15482685, 0.06579119, 0.28301102, 0.23729764, 0.15990537, 0.4529694, 0.107880585, 0.10668121, -0.42430598, -0.2631025, 0.10513542, -0.036242936, -0.09827965, -0.0069260495, -0.11689201, -0.041436482) * go_0(0.0, -1.0); + result += mat4(0.08472191, -0.13051608, 0.047930017, 0.36831668, 0.1164478, 0.21384816, 0.22062506, 0.2094167, 0.48668453, 0.32302913, 0.36268055, -0.091801375, -0.079141125, -0.26613805, -0.16608004, 0.03810683) * go_0(0.0, 0.0); + result += mat4(-0.13474251, -0.04824603, 0.23303726, -0.116136365, 0.0056330245, 0.15829784, 0.0012259148, 0.12648389, 0.038680512, 0.05131116, 0.024099711, 0.4555406, 0.0035716395, 0.11633299, 0.094744846, -0.2457627) * go_0(0.0, 1.0); + result += mat4(-0.0576871, -0.04037522, 0.16857862, 0.0031084458, -0.027274646, -0.18154246, 0.13337846, 0.035422433, -0.0030749738, -0.17288287, 0.019983152, -0.31871706, -0.03280405, 0.06825421, -0.1563798, 0.05031885) * go_0(1.0, -1.0); + result += mat4(-0.066631876, 0.012560506, 0.1690693, -0.018248236, 0.0450104, 0.016296914, -0.14910112, -0.16191053, 0.5078224, -0.017615631, 0.15226597, -0.13373777, 0.20148668, 0.060258996, 0.13215344, 0.18430072) * go_0(1.0, 0.0); + result += mat4(0.12976126, -0.072738245, 0.053067926, 0.09752956, -0.04716214, 0.04136464, 0.014162617, -0.06621296, -0.09617736, 0.057469178, 0.01280261, -0.042976785, -0.12570308, 0.006027807, 0.031038594, 0.06569918) * go_0(1.0, 1.0); + result += mat4(-0.12655424, -0.41563693, -0.030971345, -0.06357555, -0.14121394, -0.15667427, 0.14398985, 0.05995984, 0.0821605, 0.12462943, 0.007492498, -0.0030187522, -0.22804567, -0.10487421, 0.13180672, -0.13978589) * go_1(-1.0, -1.0); + result += mat4(-0.075991526, 0.12352044, -0.17844258, 0.010614991, -0.18293494, 0.25009897, -0.080779895, 0.21548378, 0.22215544, 0.048670914, -0.057372037, 0.078176, 0.17490411, 0.004919551, 0.059619516, 0.12660357) * go_1(-1.0, 0.0); + result += mat4(-0.06282951, 0.10929357, 0.026720649, -0.15939257, 0.17107709, -0.04334904, -0.03047162, -0.101681694, 0.03118431, 0.19994627, 0.025729552, 0.035035726, -0.0012207883, -0.08618888, 0.061205562, 0.009940555) * go_1(-1.0, 1.0); + result += mat4(-0.23581573, 0.08002133, -0.15170844, 0.08872338, -0.25767094, -0.09273545, 0.18153891, 0.2544269, -0.084598936, -0.089766875, -0.14610913, 0.002247754, 0.1802837, -0.019625561, 0.30239686, -0.032793984) * go_1(0.0, -1.0); + result += mat4(0.5223286, 0.10347663, 0.4000593, 0.25440502, -0.07646958, -0.31940606, 0.053407036, -0.09356492, 0.2738851, 0.23945184, -0.2907089, -0.45822915, 0.13415676, 0.17187089, 0.08731114, -0.27670014) * go_1(0.0, 0.0); + result += mat4(0.059273496, -0.107137166, 0.12087539, 0.179237, -0.021209063, -0.02548005, 0.061256204, 0.033822674, 0.54491127, -0.2475085, 0.08055858, -0.4071213, -0.045093834, 0.07161349, 0.08219979, -0.31735933) * go_1(0.0, 1.0); + result += mat4(-0.29527053, 0.021469543, 0.07202354, -0.07103959, 0.03990857, 0.2490762, -0.19419849, -0.13916986, -0.05325315, 0.12922864, -0.041463424, -0.031249814, 0.073991664, -0.09723187, 0.35132217, 0.024760868) * go_1(1.0, -1.0); + result += mat4(0.09606787, -0.0951808, -0.0059865676, -0.052033573, -0.3118038, 0.4432636, -0.12943317, 0.09484738, 0.10621756, -0.10550469, 0.11264014, 0.1402276, -0.012679125, -0.08809835, 0.029994955, -0.15121669) * go_1(1.0, 0.0); + result += mat4(0.123397775, 0.048338536, -0.00975707, -0.103767075, -0.041053303, -0.07228534, 0.046792876, 0.0668788, 0.29554394, 0.012451002, 0.19568972, 0.112091154, 0.10882395, -0.0995439, 0.051324263, 0.24967718) * go_1(1.0, 1.0); + result += mat4(0.2699648, 0.17300771, -0.16056584, 0.1099392, 0.11674778, -0.19811755, 0.111880325, -0.06075038, -0.095849104, -0.04510651, -0.04180761, -0.0052786698, 0.11037549, -0.24115366, 0.018509468, -0.07819484) * go_2(-1.0, -1.0); + result += mat4(0.10981622, 0.044488225, 0.050722387, -0.3146652, -0.0013019707, -0.24084032, -0.10475088, 0.026944289, 0.1592903, 0.33087498, 0.061839584, -0.043863457, -0.06904603, -0.08635262, 0.088630445, -0.15485142) * go_2(-1.0, 0.0); + result += mat4(-0.06810522, 0.19927117, -0.08130387, 0.11612667, -0.015104349, -7.738651e-05, -0.06419643, -0.14813533, 0.026650215, 0.015038833, 0.08161237, 0.058321163, 0.015005185, -0.16189656, 0.024501886, 0.1927279) * go_2(-1.0, 1.0); + result += mat4(0.31858218, 0.11962043, -0.20560326, -0.13190113, 0.02138715, -0.057066392, -0.085771754, -0.124566585, 0.044749223, 0.13687828, 0.1195792, 0.14021616, 0.26204133, 0.05119197, -0.13980037, 0.050747477) * go_2(0.0, -1.0); + result += mat4(-0.21238558, -0.0734057, -0.2036023, -0.34308743, -0.29370925, 0.2393742, -0.37877437, 0.036869828, -0.17053255, -0.26900926, -0.23330869, 0.32902205, -0.4882585, 0.27430108, -0.033711653, 0.15501487) * go_2(0.0, 0.0); + result += mat4(0.23487025, 0.085289046, -0.14281847, 0.12543266, 0.15871634, -0.13858907, 0.14810285, -0.0239261, 0.1286852, 0.07754033, 0.01072327, -0.14313328, 0.05480442, -0.12195059, 0.11341822, 0.08224607) * go_2(0.0, 1.0); + result += mat4(0.19490337, 0.023521842, -0.24548791, 0.0035114093, -0.07937166, -0.07674376, 0.08365873, -0.003286068, 0.023862893, 0.009626835, 0.032829892, 0.0078141205, 0.053484406, -0.08297165, 0.09303188, 0.004273738) * go_2(1.0, -1.0); + result += mat4(-0.0032906602, 0.13636959, 0.027821168, 0.06270053, 0.024775786, -0.077529594, 0.03799126, 0.030000908, 0.031749167, 0.04360487, 0.004448846, -0.17835903, -0.30834544, 0.013150946, -0.13758293, -0.03296242) * go_2(1.0, 0.0); + result += mat4(-0.14166978, 0.034131095, 0.049779188, 0.09453289, -0.011406557, -0.07020709, -0.0031981543, -0.03443845, -0.00010218944, 0.0855161, -0.10951453, 0.042758763, 0.1718446, -0.1577923, 0.0410027, -0.04992991) * go_2(1.0, 1.0); + result += mat4(0.1219178, 0.105126485, -0.041097324, -0.08110963, -0.04857337, -0.11544925, -0.14572923, 0.092435546, 0.091857366, 0.15425235, -0.020324683, -0.05764375, -0.020458939, -0.10527823, -0.085554086, 0.16358297) * go_3(-1.0, -1.0); + result += mat4(-0.12372687, -0.009976829, 0.14252265, -0.1321053, -0.05965866, -0.1393898, -0.017603246, -0.02714342, -0.16824952, -0.23083204, -0.012299022, -0.06689838, -0.015830487, 0.21299921, -0.11637202, 0.0074968333) * go_3(-1.0, 0.0); + result += mat4(-0.01979935, -0.182785, -0.015397454, 0.14175794, -0.011465284, 0.11285164, -0.036115747, 0.07150463, -0.083641894, -0.10221778, -0.13871445, 0.099696055, 0.04603662, -0.06463785, -0.007984529, -0.0032940735) * go_3(-1.0, 1.0); + result += mat4(0.072830334, -0.057334073, 0.09086239, 0.13039105, 0.06350303, 0.17130788, -0.2181585, -0.09137403, -0.31397742, -0.019071499, -0.017274613, 0.13762084, 0.10195637, -0.021455176, 0.04011394, -0.08029658) * go_3(0.0, -1.0); + result += mat4(-0.26982597, -0.40265098, -0.4151411, 0.038557775, -0.095602125, 0.3503172, -0.029988842, -0.03484708, 0.095536314, -0.0030311556, 0.31589827, 0.52763534, -0.12629713, -0.24356791, 0.0059487303, 0.42298427) * go_3(0.0, 0.0); + result += mat4(0.054166105, 0.18827972, -0.081673265, -0.06720384, 0.09375001, 0.22173035, -0.14050071, 0.108400136, -0.15553835, -0.08716729, -0.037366748, 0.10971073, -0.02560103, -0.26702073, -0.05201882, 0.2432563) * go_3(0.0, 1.0); + result += mat4(0.16196893, 0.0889265, -0.09887943, -0.042956755, -0.054403376, -0.123823255, 0.045847844, 0.017027669, 0.00539936, -0.112265736, 0.050549984, -0.104931094, -0.06883012, -0.25745714, 0.11155538, -0.15363649) * go_3(1.0, -1.0); + result += mat4(-0.22157209, 0.18200903, -0.13290548, 0.026721261, -0.06066069, -0.18150693, 0.08768983, 0.037362453, -0.1073367, -0.070236765, -0.41223463, -0.168915, -0.15517351, -0.13949952, -0.13307643, -0.15935421) * go_3(1.0, 0.0); + result += mat4(-0.026589906, 0.0930502, 0.05195435, 0.06301585, -0.01107014, -0.019382332, 0.027223695, -0.004045145, -0.15238355, -0.0345132, 0.06355168, 0.0011230056, 0.16690113, 0.0017829507, -0.0023939044, -0.09471834) * go_3(1.0, 1.0); + result += vec4(0.024455175, 0.01669877, -0.066231176, 0.036848705); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!SAVE conv2d_5_tf1 +//!WIDTH conv2d_4_tf.w +//!HEIGHT conv2d_4_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_4_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_4_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.01763509, -0.17156707, -0.06841296, -0.026132878, -0.10600523, 0.11245994, 0.121395074, -0.09331501, 0.12764473, 0.0428028, -0.11837395, 0.2092563, -0.04357652, -0.0490096, 0.024701532, 0.10518723) * go_0(-1.0, -1.0); + result += mat4(-0.17130826, -0.31987694, -0.07639005, 0.21362033, 0.058639023, 0.066175915, -0.25344703, -0.07923442, -0.14766373, 0.040518284, -0.031103026, -0.040075514, -0.051108997, -0.28214613, -0.18504949, 0.27544948) * go_0(-1.0, 0.0); + result += mat4(0.030991005, -0.011353306, 0.15237464, 0.15458584, 0.1250524, 0.19959912, 0.14049476, 0.38410887, 0.07378578, -0.017728366, 0.0963528, -0.043756213, -0.039577194, -0.11800575, -0.08392266, -0.07599512) * go_0(-1.0, 1.0); + result += mat4(0.022089608, -0.027317125, 0.051330008, -0.0075439885, 0.021650828, -0.0009390209, -0.12043464, 0.049332134, -0.055557396, -0.053297505, -0.0918705, -0.13089466, -0.10994107, 0.072746456, 0.11496739, -0.05225977) * go_0(0.0, -1.0); + result += mat4(0.29730305, 0.26317745, 0.052159555, -0.32006654, 0.48288685, -0.049926184, -0.08091092, -0.13825637, -0.1485706, -0.288657, -0.41443697, 0.06856032, -0.23809211, -0.12953928, 0.4783034, -0.47557938) * go_0(0.0, 0.0); + result += mat4(0.026139118, -0.23031352, 0.04861487, 0.033556074, 0.2702056, 0.22802536, -0.15385233, 0.1664119, 0.18749923, 0.36927548, -0.011473684, -0.11771165, -0.16859052, -0.4513202, 0.12863952, 0.02482837) * go_0(0.0, 1.0); + result += mat4(0.0073229345, -0.061915245, 0.06710329, 0.0062416573, -0.00555983, 0.14592186, 0.11201052, -0.123630054, 0.32611257, -0.11279885, -0.059449438, 0.2891043, -0.10519016, 0.040108994, -0.012468261, 0.02083298) * go_0(1.0, -1.0); + result += mat4(-0.057483062, 0.08454755, -0.15529329, -0.12572923, 0.2600099, -0.02319978, -0.04037675, 0.11496361, 0.07728194, -0.12908956, -0.025529336, 0.112581626, 0.02971823, 0.11659056, -0.01298622, 0.017061908) * go_0(1.0, 0.0); + result += mat4(0.22417091, -0.00222947, 0.04980858, 0.12260437, -0.025507605, 0.042577885, 0.120813504, -0.048522256, -0.038494784, -0.0072195013, -0.23012944, -0.020850847, -0.078296244, -0.014830018, 0.19759563, -0.10000253) * go_0(1.0, 1.0); + result += mat4(-0.032090195, 0.023757193, -0.08989734, 0.14419042, 0.0112194475, -0.093776144, -0.020197887, 0.29295877, 0.06872183, 0.09511462, -0.03245769, -0.06504889, 0.05132126, 0.00399527, 0.075911656, 0.250893) * go_1(-1.0, -1.0); + result += mat4(-0.3418496, 0.25525784, 0.0018161442, 0.028484365, -0.17573346, -0.12457501, 0.18466166, 0.20209278, 0.10282706, 0.16353399, 0.025052028, -0.059714165, -0.055806916, -0.28651386, 0.112798095, 0.11624314) * go_1(-1.0, 0.0); + result += mat4(-0.018793896, 0.07500149, -0.01728254, -0.1726998, -0.13333, 0.09590344, -0.036537904, -0.11522523, 0.19445558, 0.22680458, 0.12061006, -0.06225618, 0.1127748, 0.28380096, -0.07099846, -0.007440302) * go_1(-1.0, 1.0); + result += mat4(-0.43887648, -0.10018577, -0.29267642, 0.12149727, -0.14333835, 0.04161915, 0.19442867, 0.16506511, 0.09655387, -0.0014398015, 0.13189743, -0.14068556, 0.049408, 0.0829072, 0.2950336, 0.36965907) * go_1(0.0, -1.0); + result += mat4(0.41486958, -0.023498302, -0.37900022, -0.31752598, 0.13758768, -0.18782206, -0.31358528, 0.3330786, -0.4039293, -0.06539036, 0.032599606, 0.10663507, -0.26369813, -0.17365438, 0.20723309, 0.1801556) * go_1(0.0, 0.0); + result += mat4(0.004117444, -0.14894462, 0.14915143, -0.047375835, -0.2609916, -0.10172324, -0.14925237, -0.33830285, 0.12131607, -0.18156646, -0.42382464, -0.052582145, 0.2329045, -0.4576963, 0.13756892, 0.055571318) * go_1(0.0, 1.0); + result += mat4(-0.31689477, 0.017058033, -0.01904924, -0.016893756, -0.011479519, 0.07316262, -0.07086077, 0.08923511, -0.08190091, -0.025866933, -0.06909204, -0.028601022, 0.023224542, 0.03082087, 0.2230426, -0.16713654) * go_1(1.0, -1.0); + result += mat4(0.13457374, 0.110913865, -0.1130815, -0.031438913, -0.55201167, 0.04831016, 0.25107765, -0.014003224, 0.19532952, 0.02062346, 0.04839241, 0.088673405, 0.30325848, -0.20222804, -0.085780576, 0.22512968) * go_1(1.0, 0.0); + result += mat4(0.076354, 0.021940092, -0.16170324, 0.0025543426, -0.0032400405, -0.0046705627, 0.06241069, -0.031247333, 0.098353796, 0.03723474, 0.22971998, -0.017877292, 0.119858086, 0.008041448, 0.2140585, 0.10343376) * go_1(1.0, 1.0); + result += mat4(0.08627595, 0.04532834, 0.027579082, -0.16222088, 0.15583228, -0.14371829, -0.07243855, -0.111895435, -0.14438897, -0.10250594, 0.0034202964, -0.066547595, -0.034390844, -0.021545287, 0.014540157, -0.10215731) * go_2(-1.0, -1.0); + result += mat4(0.19720152, 0.21534947, 0.1130938, -0.011730973, 0.013247983, -0.10344174, -0.1906514, -0.015767017, -0.020093633, -0.26487067, -0.005960781, -0.057149183, 0.030110173, 0.047692046, -0.19308545, -0.25292158) * go_2(-1.0, 0.0); + result += mat4(0.039498243, 0.053682897, -0.01844695, -0.017540915, 0.039454967, -0.27696076, 0.09503274, -0.038958035, 0.17321438, -0.036311295, 0.03123055, 0.02310311, 0.040591653, 0.0054627894, -0.03520426, -0.026101988) * go_2(-1.0, 1.0); + result += mat4(0.055991564, 0.06512919, -0.12532505, 0.024075158, -0.04926237, -0.11701171, 0.026792146, 0.013033238, -0.052847516, -0.01550091, -0.008442071, -0.077945165, -0.033220004, -0.13678443, -0.07040586, 0.121846326) * go_2(0.0, -1.0); + result += mat4(-0.19537796, -0.016634773, 0.10707109, -0.024361614, -0.16002733, -0.44066608, 0.16488662, 0.013152995, 0.22407806, 0.12854017, 0.19028598, -0.08379244, -0.05594235, -0.15909895, 0.511962, 0.39027596) * go_2(0.0, 0.0); + result += mat4(-0.032652248, 0.06004893, 0.011166194, 0.102761306, -0.035113614, -0.29961765, -0.013817978, 0.20938557, 0.08488225, -0.1118558, -0.0375328, -0.035511103, 0.0046933405, 0.20203683, -0.13552529, -0.12685429) * go_2(0.0, 1.0); + result += mat4(0.03054923, 0.08224908, -0.059128158, -0.02583655, -0.02133876, 0.0048713544, 0.10848829, 0.06324404, 0.028332822, -0.011002306, -0.027557913, -0.06072362, 0.1019048, -0.02587316, 0.08563405, -0.08119947) * go_2(1.0, -1.0); + result += mat4(-0.10568117, 0.1075248, 0.19379964, -0.14337265, 0.019374132, -0.0907804, -0.13827625, -0.03628561, 0.014735499, -0.026882607, -0.25948793, 0.034926686, -0.05988073, -0.22735636, 0.053511668, 0.04765336) * go_2(1.0, 0.0); + result += mat4(-0.029848114, 0.09183966, 0.084713496, 0.09422864, 0.069713995, -0.10584984, -0.020899031, 0.059645247, -0.075805016, -0.01828552, 0.06689195, -0.13804196, -0.023465823, -0.034038994, -0.12946706, 0.058709413) * go_2(1.0, 1.0); + result += mat4(0.061918218, 0.038984764, 0.013660938, -0.19340219, -0.014949839, 0.12946278, 0.12725051, 0.13429146, 0.05993008, -0.015394284, 0.011232483, 0.0344157, 0.022161875, -0.023923954, 0.061736204, 0.025963215) * go_3(-1.0, -1.0); + result += mat4(0.048136763, 0.03162042, -0.01967249, 0.06374493, 0.034645267, 0.22403605, 0.036197048, -0.06903216, -0.1024706, -0.0005459356, 0.049185563, 0.16309108, 0.07394778, 0.10351343, 0.28430694, -0.13531347) * go_3(-1.0, 0.0); + result += mat4(-0.14705071, -0.09458433, 0.03063114, 0.07901115, -0.11911086, -0.06428132, -0.013549552, -0.041342866, -0.20770676, -0.15104479, 0.054365363, -0.11652907, 0.05639815, 0.070518605, 0.0017846811, -0.00056205114) * go_3(-1.0, 1.0); + result += mat4(0.27148908, 0.07358356, 0.13644488, -0.13824654, 0.0112991175, -0.021521023, -0.10197379, 0.007816017, -0.13314332, 0.12318473, -0.043214846, -0.15759036, -0.19744353, -0.10267182, -0.28249928, 0.11233295) * go_3(0.0, -1.0); + result += mat4(-0.096474804, 0.17893109, 0.014679829, -0.21218887, -0.24170275, 0.10603527, 0.05375366, -0.059315052, 0.17087384, 0.13633691, -0.37958893, 0.43264794, 0.17829923, 0.06485103, -0.37551817, -0.22082718) * go_3(0.0, 0.0); + result += mat4(-0.30536333, -0.033212308, -0.25232, 0.11730442, -0.11176368, 0.26223183, -0.049025323, -0.01375941, -0.29028055, 0.16842811, -0.035684332, -0.4180911, -0.1611732, 0.07683385, -0.14263596, 0.17508087) * go_3(0.0, 1.0); + result += mat4(0.23580009, 0.025621435, -0.15757325, 0.008123166, -0.021905439, -0.02162503, -0.059497356, -0.01636353, 0.047654126, -0.084423855, -0.033733923, 0.0127116265, -0.059593942, -0.053935718, -0.050729543, 0.013887048) * go_3(1.0, -1.0); + result += mat4(-0.19232626, 0.07915767, -0.05909752, 0.007695347, 0.058876406, 0.057521783, -0.080253534, 0.2011056, -0.27965516, -0.08033169, -0.13025513, 0.12854645, 0.053400308, -0.18445957, -0.18463044, 0.27920377) * go_3(1.0, 0.0); + result += mat4(-0.061806213, -0.020037206, 0.003183183, -0.029844081, -0.039553937, 0.028905323, -0.11367984, -0.097321615, -0.10112643, 0.0039709485, -0.06020118, -0.23871279, -0.077974856, 0.05806996, -0.21440302, 0.11898043) * go_3(1.0, 1.0); + result += vec4(-0.023832673, 0.03702965, -0.04749135, -0.10982549); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!SAVE conv2d_6_tf +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.030931145, 0.013683292, -0.0650242, -0.028732346, 0.120067924, -0.029404473, 0.0038229884, -0.14631765, 0.041900825, -0.076596744, -0.11096378, -0.27100095, 0.0052598766, -0.05929686, -0.06816563, -0.086864315) * go_0(-1.0, -1.0); + result += mat4(-0.043620087, -0.16360405, 0.006527374, 0.15706524, 0.08338088, -0.19027525, 0.22595987, -0.054963548, 0.01825031, -0.03149212, 0.025471251, 0.06429379, -0.011633275, -0.079389006, -0.0030728737, 0.17345747) * go_0(-1.0, 0.0); + result += mat4(-0.011275288, -0.10668036, 0.05718997, 0.010336089, 0.33393976, -0.2029354, 0.075444475, -0.092244044, 0.07605498, 0.20125951, 0.10493973, -0.12306946, 0.03658231, 0.08233366, -0.12205888, -0.116969004) * go_0(-1.0, 1.0); + result += mat4(-0.0070305974, 0.105127215, 0.006041873, 0.26743913, 0.028119443, 0.14823505, -0.28344348, 0.12362866, -0.1215781, 0.08104382, 0.102011785, 0.085380934, 0.061244503, -0.06230063, -0.05353345, 0.1166729) * go_0(0.0, -1.0); + result += mat4(0.08945733, 0.4101902, -0.06404005, 0.040728435, 0.13076581, -0.20805469, -0.10897316, -0.14924604, 0.10090762, 0.015475414, 0.26346552, 0.12096677, -0.20199244, 0.2780031, 0.18515368, 0.35105625) * go_0(0.0, 0.0); + result += mat4(0.07463155, 0.26932517, -0.06768551, 0.10470878, -0.1423996, 0.013550665, -0.06167201, -0.1022994, -0.3107166, -0.15609552, 0.1695213, -0.1277181, 0.12582655, -0.1596128, 0.015612055, -0.19826376) * go_0(0.0, 1.0); + result += mat4(0.011745468, 0.006471601, 0.008110513, 0.025831396, 0.1272883, -0.221959, 0.11993834, -0.007903633, 0.009993582, -0.10170755, 0.026594637, -0.027883623, 0.030666083, -0.036415886, 0.007469573, 0.0674783) * go_0(1.0, -1.0); + result += mat4(-0.022760388, -0.10911659, -0.012589904, -0.046462692, 0.36987287, 0.71668935, -0.04466556, 0.12082762, 0.0026539841, 0.07070946, -0.00020439121, -0.13925348, 0.08672072, 0.20075354, -0.066352285, 0.14655356) * go_0(1.0, 0.0); + result += mat4(-0.081081845, -0.21956222, 0.06781787, -0.106362104, -0.03016425, -0.010460211, -0.009725996, -0.009805538, 0.07037355, 0.19254607, 0.038890257, 0.29580075, -0.10355764, 0.12613009, 0.02485986, -0.031927988) * go_0(1.0, 1.0); + result += mat4(-0.13882205, 0.21770848, 0.015392157, 0.010310204, 0.008225721, 0.07457836, 0.09984027, -0.25452816, 0.2193511, -0.22262146, -0.12950355, 0.026151875, 0.022114651, -0.030566849, 0.034688126, 0.03047327) * go_1(-1.0, -1.0); + result += mat4(0.0363441, 0.19290726, -0.1143055, 0.30871987, -0.05780708, 0.082128406, -0.115280904, 0.07636388, 0.48947453, -0.29715258, 0.146737, -0.3275992, -0.055972476, -0.09991753, 0.17435446, 0.10917291) * go_1(-1.0, 0.0); + result += mat4(0.026389305, 0.054523308, -0.028950177, 0.06913328, -0.18626037, 0.08829993, 0.10407121, 0.001246911, 0.103938825, -0.3117343, -0.045564886, 0.07316613, 0.0027089121, 0.099437356, -0.046500806, -0.0927284) * go_1(-1.0, 1.0); + result += mat4(0.051037624, -0.2068234, 0.061572235, -0.3345198, 0.16960172, -0.30289862, -0.002583443, 0.39312238, 0.08246557, 0.16374862, -0.31902805, -0.13205275, -0.032050006, 0.01670186, 0.13852347, 0.120012194) * go_1(0.0, -1.0); + result += mat4(-0.67096996, -0.06274476, 0.18575665, 0.80282855, 0.23201196, -0.0054729837, 0.050396994, -0.42014772, 0.34904522, 0.26281372, 0.24697208, 0.55475426, 0.49850988, -0.06581312, -0.0068906257, -0.15741143) * go_1(0.0, 0.0); + result += mat4(-0.04252036, -0.28224963, 0.009723064, 0.116357096, 0.2992567, -0.26702902, -0.05648925, 0.12729199, -0.37574205, 0.54211813, -0.25248805, -0.13023548, 0.18903324, -0.5182459, 0.0141203115, -0.19444294) * go_1(0.0, 1.0); + result += mat4(-0.0017735233, -0.010132458, -0.040924776, -0.13767008, 0.20757031, -0.06509882, -0.09756446, 0.018974079, 0.090851985, -0.010158765, -0.03999607, -0.12055641, 0.03629025, -0.018645551, -0.05506811, -0.014202848) * go_1(1.0, -1.0); + result += mat4(0.16203491, 0.011118734, -0.18486023, -0.024290733, -0.3673846, -0.20295864, 0.23055002, -0.1555852, -0.02706522, 0.03262891, 0.008724611, -0.03760652, -0.20946771, -0.01951837, 0.16955496, 0.11690098) * go_1(1.0, 0.0); + result += mat4(0.0783421, 0.22656651, -0.15715368, -0.024174158, 0.020260733, 0.032390315, -0.029133298, 0.086601086, 0.13871798, -0.12525433, 0.16097449, 0.058946393, 0.029865682, 0.08508385, 0.040569812, -0.09402932) * go_1(1.0, 1.0); + result += mat4(-0.05063873, 0.11269313, -0.057484943, -0.13579641, 0.047973365, -0.07103839, -0.07838756, -0.0028928046, -0.019466015, 0.018428024, 0.010016324, -0.057396665, -0.19495595, 0.034307264, -0.022888038, 0.08112259) * go_2(-1.0, -1.0); + result += mat4(-0.09790086, 0.10613111, 0.06611674, 0.19356097, -0.00073371036, -0.019078335, 0.076719105, -0.016212497, -0.3283475, -0.07547389, -0.08140701, 0.3185625, -0.25060275, 0.16820994, -0.123497784, 0.43272668) * go_2(-1.0, 0.0); + result += mat4(-0.06365342, 0.11186735, -0.17493224, -0.04207358, 0.0003117533, 0.034089327, -3.067692e-05, -0.03422754, 0.16267666, 0.054771993, 0.048384454, -0.041866794, 0.0036008756, 0.0021496525, 0.20258942, -0.06297619) * go_2(-1.0, 1.0); + result += mat4(0.03578836, 0.08763908, -0.22370125, -0.32465744, 0.019142643, 0.011316954, 0.17920344, 0.031633645, 0.03766343, -0.116487674, -0.05281752, -0.018965483, 0.049297336, -0.34511214, 0.42598158, 0.051361635) * go_2(0.0, -1.0); + result += mat4(0.26638633, -0.33628765, 0.04437907, 0.09616201, -0.020049393, 0.2560829, -0.027108455, 0.255752, 0.3666511, 0.052277412, -0.46667686, 0.48482272, 0.51302284, -0.06941614, -0.17967525, -0.07889891) * go_2(0.0, 0.0); + result += mat4(0.18503937, 0.088710256, 0.2083147, -0.20758459, -0.036416974, 0.018303726, 0.03729963, -0.035969947, -0.2685231, -0.42169708, -0.039593916, -0.02642618, 0.29050872, -0.25723743, -0.111259766, 0.15001127) * go_2(0.0, 1.0); + result += mat4(-0.026473878, -0.07241443, 0.022400148, -0.03214132, 0.0859297, -0.0036677981, -0.07039137, 0.03703108, 0.042322673, -0.01222808, -0.08151938, 0.033109214, -0.048737407, 0.25929528, -0.40535828, -0.123594694) * go_2(1.0, -1.0); + result += mat4(0.10233285, 0.22455986, -0.13368733, 0.033236265, -0.052114893, -0.11709317, 0.009709581, 0.19201641, -0.02973698, 0.032114245, -0.09771862, 0.085680574, 0.15827927, -0.15042172, 0.21833214, -0.13262676) * go_2(1.0, 0.0); + result += mat4(-0.08460587, -0.09473209, 0.019323658, -0.057233352, 0.0019434267, -0.14437936, 0.034232683, 0.0030602294, -0.023598112, 0.10692026, -0.09960999, 0.005887181, 0.014738836, -0.32473162, -0.10886747, -0.08365826) * go_2(1.0, 1.0); + result += mat4(0.10900178, 0.00080280803, -0.14009437, -0.053074867, -0.07811151, -0.03456029, -0.104943685, 0.016918905, -0.11335709, 0.079421654, 0.13481963, 0.037818357, -0.027339859, 0.05856774, -0.044562265, 0.03908084) * go_3(-1.0, -1.0); + result += mat4(0.07628258, -0.23815769, 0.2840278, -0.3541637, -0.044292126, -0.09310441, -0.1335055, -0.031899665, -0.11981227, 0.24012394, -0.041896038, -0.10168982, 0.20248915, -0.10036763, -0.044115108, 0.08520525) * go_3(-1.0, 0.0); + result += mat4(0.07234102, -0.119480744, -0.01401321, -0.025182616, -0.031284854, -0.050089385, 0.014808948, 0.038662236, -0.18539418, 0.017342187, 0.023812262, 0.13428104, 0.020824855, -0.07433546, 0.054307282, 0.08511016) * go_3(-1.0, 1.0); + result += mat4(-0.11046813, -0.04663274, 0.33497185, 0.023273284, -0.24681108, 0.116665915, 0.12045893, 0.13306482, -0.039098527, 0.04747061, 0.042796664, 0.053514794, 0.011861975, -0.048702, 0.008408589, -0.09497112) * go_3(0.0, -1.0); + result += mat4(0.34634927, 0.37973458, -0.79267627, -0.7362719, 0.35489878, -0.07635863, 0.24082923, -0.27480397, -0.3236968, -0.25523046, 0.05118527, -0.040529836, -0.6000509, 0.39020586, 0.27632973, 0.5141453) * go_3(0.0, 0.0); + result += mat4(0.16761221, -0.033125393, 0.00561569, 0.083019435, -0.101278506, 0.07810264, 0.12060661, 0.16048536, 0.14257826, -0.15996903, 0.018831912, -0.094429865, -0.22227801, 0.426937, -0.054677445, 0.05067348) * go_3(0.0, 1.0); + result += mat4(0.02233958, 0.02608942, -0.045318656, 0.06509929, 0.035911568, 0.025316885, 0.0840986, 0.08326237, 0.048455603, -0.13630742, 0.07230253, -0.047261715, -0.092630014, 0.04786565, 0.10354939, -0.07094341) * go_3(1.0, -1.0); + result += mat4(-0.1463382, -0.14900577, 0.2835977, -0.106733374, -0.11554754, -0.168429, -0.1411373, -0.20654152, -0.06388508, 0.039648015, 0.08543832, -0.13253337, 0.017264463, -0.06346233, -0.10823598, 0.067361064) * go_3(1.0, 0.0); + result += mat4(0.04419582, 0.039152585, 0.06222691, 0.05757103, 0.012084537, 0.051425997, -0.061130576, 0.16752882, 0.07497411, 0.13495837, -0.15585983, -0.02050144, -0.08555421, -0.09147339, 0.025115604, 0.05948922) * go_3(1.0, 1.0); + result += vec4(0.00590038, 0.03082865, 0.002111702, -0.03330112); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!SAVE conv2d_6_tf1 +//!WIDTH conv2d_5_tf.w +//!HEIGHT conv2d_5_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define go_0(x_off, y_off) (max((conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_1(x_off, y_off) (max((conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +#define go_2(x_off, y_off) (max(-(conv2d_5_tf_texOff(vec2(x_off, y_off))), 0.0)) +#define go_3(x_off, y_off) (max(-(conv2d_5_tf1_texOff(vec2(x_off, y_off))), 0.0)) +vec4 hook() { + vec4 result = mat4(0.009029573, 0.029218858, 0.029705316, -0.019268971, -0.0023235187, -0.072589695, 0.1424836, 0.09049359, 0.04342995, 0.18134294, 0.018145641, 0.14789368, 0.050923645, 0.06524081, 0.036812488, 0.11108108) * go_0(-1.0, -1.0); + result += mat4(-0.026506428, 0.016968496, 0.015961196, 0.010030791, -0.3141888, -0.06769598, -0.23920257, -0.031002127, -0.07351358, -0.19290134, -0.24282931, -0.18831016, -0.0928966, 0.075177215, -0.19699521, -0.05810917) * go_0(-1.0, 0.0); + result += mat4(-0.017991852, -0.079427645, 0.035970494, -0.017095685, -0.27197137, -0.20046075, 0.2616644, 0.021876303, -0.077394076, -0.04978692, 0.20363241, -0.013741705, -0.032103598, 0.14403099, 0.01442474, 0.048115995) * go_0(-1.0, 1.0); + result += mat4(-0.16939245, -0.001777, 0.026244136, -0.14122388, -0.056853324, 0.54357284, -0.19769607, -0.03187079, 0.04559263, -0.16048127, 0.12830622, 0.1442168, 0.006611398, -0.01618195, 0.012860053, -0.16539487) * go_0(0.0, -1.0); + result += mat4(0.13116026, -0.006161343, 0.7209969, 0.18338475, 0.3099777, 0.6500026, 0.3883795, -0.021434233, 0.31667513, 0.008917659, 0.14124091, -0.22335114, 0.12198921, -0.16449445, 0.08773425, 0.30054978) * go_0(0.0, 0.0); + result += mat4(-0.10413989, -0.10316161, 0.04342709, -0.021252686, 0.120892406, 0.37798002, -0.35963747, 0.021069285, 0.37587845, -0.08159587, 0.011139747, 0.2501104, -0.094568014, 0.037900843, -0.025109999, -0.030106556) * go_0(0.0, 1.0); + result += mat4(0.09680291, -0.040868275, 0.051731605, 0.089064725, -0.56098557, -0.38148618, -0.017037416, 0.08508287, -0.019247344, 0.019857002, -0.03512887, 0.031057188, -0.09648583, -0.04474188, 0.028748507, -0.11880965) * go_0(1.0, -1.0); + result += mat4(-0.010236943, 0.04257042, -0.08202597, -0.004203426, -0.26801527, -0.11716526, -0.017402772, -0.05819106, -0.13394608, 0.0234606, -0.15404865, -0.06801164, -0.0047627664, -0.1975249, 0.09420144, 0.23249897) * go_0(1.0, 0.0); + result += mat4(0.107361935, 0.07373787, 0.06242962, 0.05236332, -0.028867323, 0.025924044, -0.042526353, -0.0015729597, -0.1323144, -0.4040712, 0.023919407, -0.09535502, 0.049100045, 0.081110805, 0.08946112, 0.058505684) * go_0(1.0, 1.0); + result += mat4(0.13236825, -0.04468476, -0.04426802, 0.031087106, -0.09093992, -0.07470971, -0.01591504, 0.05924266, -0.21910913, 0.065537, -0.18358919, -0.02533145, -0.1512009, -0.04953928, 0.015540006, -0.0043442883) * go_1(-1.0, -1.0); + result += mat4(-0.14016777, -0.1086958, 0.16316028, 0.050777458, 0.23148167, 0.04944809, -0.10599886, -0.10447021, -0.40729257, -0.10926556, 0.069055155, 0.110635415, 0.108922414, -0.1716362, 0.10743909, -0.102534756) * go_1(-1.0, 0.0); + result += mat4(0.017795928, -0.066930935, 0.09396082, 0.092585504, 0.14223933, 0.059458215, 0.072033696, -0.04507726, -0.19956456, 0.1251282, -0.31733638, -0.10465904, 0.08546377, 0.048638333, 0.031372465, -0.08720661) * go_1(-1.0, 1.0); + result += mat4(0.108719654, -0.092161916, -0.014724377, 0.20068261, -0.24350016, 0.2113636, -0.07483714, -0.45665312, -0.25134233, 0.2753893, -0.11324696, -0.04472, 0.1576102, -0.045395147, 0.06013951, -0.12507361) * go_1(0.0, -1.0); + result += mat4(0.546225, -0.281897, 0.19477816, -0.116612464, -0.3145171, -0.41660902, 0.333625, 0.35902345, 0.48333502, 0.4662005, 0.10222491, -0.15314859, -0.3036888, 0.22849742, 0.20740797, 0.41399437) * go_1(0.0, 0.0); + result += mat4(0.007284074, 0.0393942, -0.31192186, -0.15687793, -0.289214, -0.015956698, -0.24718472, -0.1637855, -0.00765037, 0.26677555, 0.20215511, 0.37790874, -0.22096673, 0.25287116, -0.2446764, -0.13610223) * go_1(0.0, 1.0); + result += mat4(-0.16734968, 0.16721225, -0.053508647, -0.041097626, 0.062356673, 0.07812319, -0.263546, -0.39739034, 0.003389846, 0.12676363, -0.13175991, -0.19019242, -0.011847587, -0.007580052, -0.023946386, 0.046034034) * go_1(1.0, -1.0); + result += mat4(-0.17047611, 0.13298693, -0.07506747, -0.045542978, 0.33571973, 0.20192616, 0.30674616, 0.25668672, -0.24134545, 0.031693842, -0.009647641, 0.040534843, 0.03159419, -0.1100516, 0.11371316, 0.06098735) * go_1(1.0, 0.0); + result += mat4(-0.05518961, 0.19402988, -0.09646874, -0.059196774, -0.0073436056, -0.1381309, 0.06868669, 0.061328378, -0.1480867, -0.15774113, -0.022572191, 0.122521356, -0.04067007, -0.10145177, 0.13006335, -0.099452734) * go_1(1.0, 1.0); + result += mat4(0.06962972, 0.07768411, 0.021085173, 0.108355984, -0.03132525, 0.10220273, -0.11626593, -0.14104277, 0.018778645, -0.024237925, 0.048783034, 0.09074447, 0.4120426, -0.01948466, 0.073218934, 0.055681944) * go_2(-1.0, -1.0); + result += mat4(-0.22553118, -0.12923603, -0.22068842, -0.35037905, 0.005709937, -0.09528472, 0.08718399, 0.13200706, 0.17220478, 0.096844435, -0.30439013, -0.14122063, 0.15733318, -0.1014675, 0.33836862, 0.042193163) * go_2(-1.0, 0.0); + result += mat4(0.15826897, -0.034870047, 0.09295099, -0.17674965, -0.042326324, 0.06680338, -0.074267656, -0.0631393, -0.11267909, -0.19795708, 0.22005288, 0.35703793, 0.033995766, -0.12663686, -0.02449896, -0.123250045) * go_2(-1.0, 1.0); + result += mat4(0.021434195, 0.058398597, 0.04828315, -0.0016824572, -0.04291545, -0.0744907, -0.07698706, -0.15937585, -0.18852457, -0.17966963, 0.023800725, 0.025979731, -0.51412296, -0.018316887, -0.23076254, -0.12298674) * go_2(0.0, -1.0); + result += mat4(0.16054317, -0.0002730893, -0.54173076, -0.62443435, 0.04300197, -0.08529622, 0.15392275, 0.15742144, 0.025834514, -0.2800517, -0.17600477, 0.0020806703, -0.3010582, 0.45233512, 0.25595665, 0.103661336) * go_2(0.0, 0.0); + result += mat4(-0.024034392, -0.43800178, 0.28606912, -0.20908915, 0.078471914, -0.030501373, -0.059055753, 0.050494444, 0.063274644, -0.025071034, 0.17561312, -0.100698635, -0.25631955, 0.039981876, -0.18506624, 0.08366402) * go_2(0.0, 1.0); + result += mat4(-0.1413656, 0.03589635, -0.020917566, 0.017598262, 0.020156413, -0.018854238, 0.027228508, -0.03806087, -0.021715842, 0.071974196, -0.040065665, 0.08459291, -0.23530225, 0.16599682, -0.2772327, 0.10041177) * go_2(1.0, -1.0); + result += mat4(-0.055056706, 0.1286236, -0.11890451, -0.1790546, 0.16517544, -0.040448934, 0.12548013, 0.017075695, 0.07185459, -0.13236302, 0.19354409, 0.12767012, 0.31120765, 0.16378082, -0.036915366, -0.19724306) * go_2(1.0, 0.0); + result += mat4(-0.02225051, 0.033263147, 0.003279449, 0.08826271, -0.047833472, 6.574577e-05, 0.13721916, 0.04801998, -0.014958419, 0.08791209, -0.08076282, 0.024002168, -0.18028922, 0.23835851, -0.23309888, -0.119310364) * go_2(1.0, 1.0); + result += mat4(0.044960875, 0.18821983, 0.027640678, 0.013462449, 0.19011214, 0.21559924, -0.03329638, 0.07234414, 0.030880248, -0.11273214, 0.102028474, 0.12203351, 0.035855662, 0.008828778, 0.007218363, -0.012421797) * go_3(-1.0, -1.0); + result += mat4(-0.09450626, 0.025191775, -0.10738468, 0.16237053, 0.073676676, 0.12488881, -0.048748355, 0.007877263, 0.3572506, -0.07911043, 0.14684045, 0.0015310893, -0.33411503, -0.1151223, 0.004201752, 0.017775744) * go_3(-1.0, 0.0); + result += mat4(-0.10607509, -0.008143826, -0.08448629, -0.27557802, 0.0046665915, 0.008158659, 0.030826218, 0.020516023, 0.2333065, -0.017463414, -0.041772116, -0.03027809, -0.028166672, -0.080471426, 0.048199337, 0.08341059) * go_3(-1.0, 1.0); + result += mat4(-0.14640257, -0.18334304, -0.061674733, 0.0008892598, -0.2374775, -0.2721524, -0.040371176, 0.26362613, 0.19872928, -0.11246391, 0.0842288, 0.11188515, 0.0045209546, -0.04250933, -0.0738212, -0.069005966) * go_3(0.0, -1.0); + result += mat4(-0.08760266, 0.4816288, -0.21241407, 0.22734411, -0.1783721, -0.26842996, 0.099888, -0.2867675, 0.085521065, -0.3780281, -0.018543908, -0.039699722, 0.75688565, -0.5333645, 0.47567275, 0.09518891) * go_3(0.0, 0.0); + result += mat4(-0.04072665, 0.05998423, -0.48314768, -0.29495844, 0.10358383, -0.09816629, 0.028586809, -0.047708735, 0.008320228, 0.04089551, -0.18359782, -0.27615002, 0.12414414, -0.072417594, 0.25932562, 0.30268723) * go_3(0.0, 1.0); + result += mat4(0.14481631, 0.06484443, -0.09898657, -0.06553556, 0.25750044, -0.07265585, 0.12903488, -0.022347894, -0.04693863, -0.000107379274, 0.030295763, -0.0325354, 0.086214684, -0.021326948, 0.039682828, -0.034843277) * go_3(1.0, -1.0); + result += mat4(-0.031971477, -0.25145087, 0.03931631, 0.14262606, -0.06044626, 0.22820354, -0.10506207, 0.18064679, 0.0069641788, 0.01477993, -0.003626875, 0.118767865, 0.109416224, -0.002998205, 0.035680585, 0.07843882) * go_3(1.0, 0.0); + result += mat4(0.03375426, -0.059815384, 0.11632834, -0.12411481, 0.022583738, 0.02544465, -0.054889992, -0.07031964, -0.10140042, 0.16750422, -0.1448294, -0.09316004, 0.035582513, -0.026138382, -0.031955894, 0.040148776) * go_3(1.0, 1.0); + result += vec4(-0.03573331, 0.032919675, 0.011109369, 0.008329268); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x1x1x112 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!SAVE conv2d_last_tf +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_1 (max((conv2d_tf1_tex(conv2d_tf1_pos)), 0.0)) +#define g_2 (max(-(conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_3 (max(-(conv2d_tf1_tex(conv2d_tf1_pos)), 0.0)) +#define g_4 (max((conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_5 (max((conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_6 (max(-(conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_7 (max(-(conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_9 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_10 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_11 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_12 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_13 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_14 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_15 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_16 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_17 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_18 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_19 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_21 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_22 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_23 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_24 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_25 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_26 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_27 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(-0.11498094, -0.053904895, -0.11520678, -0.05479549, 0.028396055, 0.032767884, 0.052479446, 0.05257866, -0.25706592, -0.3454966, -0.24713765, -0.2854201, -0.10287636, 0.0023146886, -0.09190338, -0.011193905) * g_0; + result += mat4(-0.05461422, 0.008780496, -0.07738697, -0.032230727, -0.047554165, -0.025061952, -0.051897213, -0.009545297, -0.14548294, -0.15184018, -0.01313442, -0.015299784, -0.0007883845, -0.12866738, -0.15260352, -0.27081275) * g_1; + result += mat4(0.11007706, 0.035344437, 0.11020841, 0.0425353, 0.1613199, 0.18417408, 0.09274313, 0.11943135, 0.106862, 0.079875536, 0.0937752, 0.068030775, 0.029093558, -0.06441164, 0.06467169, -0.021989612) * g_2; + result += mat4(0.049548414, -0.012455486, 0.07185561, 0.021865537, 0.020969186, -0.03374196, -0.024260623, -0.07739141, 0.07164591, 0.12741035, 0.0379913, 0.076403245, 0.07049977, 0.0744538, 0.0062989634, 0.01818882) * g_3; + result += mat4(-0.12511204, -0.010836819, 0.13709816, 0.22472954, 0.21280868, -0.006484726, 0.17554289, -0.009977173, 0.078398876, 0.20698707, 0.13432744, 0.29740283, -0.24750128, -0.32757792, -0.19807857, -0.2537023) * g_4; + result += mat4(-0.27207088, -0.1385644, -0.2166476, -0.07687419, -0.20300622, -0.29678395, -0.13135734, -0.20851587, 0.0361364, 0.011243289, -0.06845459, -0.11796941, 0.11575868, 0.070215136, -0.10295678, -0.12281369) * g_5; + result += mat4(0.13619795, -0.0019436983, -0.12701888, -0.25933513, -0.20134166, 0.00062823144, -0.076756015, 0.11002947, 0.0059049693, -0.18756741, -0.0718802, -0.2589954, 0.23413423, 0.30107784, 0.14445266, 0.18920745) * g_6; + result += mat4(0.1494216, 0.0587532, 0.05478662, -0.039123338, 0.23322394, 0.29950607, 0.24384268, 0.27843767, -0.16094431, -0.04705998, -0.016345032, 0.028868208, -0.102872886, -0.04659664, 0.104105346, 0.14305067) * g_7; + result += mat4(-0.001037014, 0.010001526, -0.0052278573, 0.024779709, 0.06857274, 0.067640975, 0.085439384, 0.09242789, -0.066597246, -0.055928994, 0.0015658981, 0.016131008, -0.03524695, -0.018364554, -0.047754433, -0.014295886) * g_8; + result += mat4(-0.042207, 0.02835915, -0.1404656, -0.08563323, -0.030979915, -0.0673764, 0.10733943, 0.057902794, 0.00022424995, -0.0023634837, -0.10778953, -0.10202357, -0.020368295, -0.019088887, -0.06875738, -0.08504131) * g_9; + result += mat4(-0.00043458896, 0.00045652856, -0.02016843, -0.020062413, -0.08740103, -0.042085808, -0.10644177, -0.09226477, 0.11212161, -0.00048174805, 0.021872435, -0.05868698, 0.0333954, 0.058184672, 0.05532576, 0.07621587) * g_10; + result += mat4(0.054245148, 0.001020329, 0.09106849, 0.05303779, 0.009889632, 0.01309413, -0.09187347, -0.08618193, -0.011621187, 0.016222361, 0.061095525, 0.060885344, 0.078050986, 0.0111776795, 0.08829944, 0.032022282) * g_11; + result += mat4(0.01643529, 0.02285545, -0.03498564, 0.00769657, -0.0042474116, 0.015836312, -0.025771018, -0.0016368, -0.008897948, -0.012588166, -0.01416411, -0.003578984, 0.025991246, 0.021237152, 0.017450012, 0.025172485) * g_12; + result += mat4(0.014568868, 0.017796224, -0.036679734, -0.03138748, 0.019457601, -0.027607411, -0.004529679, -0.038048342, -0.054055385, -0.03876025, 0.041948095, 0.005869784, 0.02439633, 0.05177997, 0.016000897, 0.0057169925) * g_13; + result += mat4(-0.03021866, 0.017678728, -0.01371109, 0.013548159, -0.0038099394, -0.014066414, 0.028093752, 0.0027308422, -0.010615999, 0.012673458, -0.03028171, -0.016818244, -0.06530097, -0.018845048, -0.0072947564, -0.0038243714) * g_14; + result += mat4(-0.019006258, -0.007847591, 0.03690709, 0.06714211, 0.0073993434, -0.009766907, -0.0021441753, -0.01308625, 0.06658726, 0.06701995, -0.027305668, -0.016032105, -0.028976806, -0.0036668575, -0.0027825525, 0.0105632655) * g_15; + result += mat4(0.028945107, -0.0014701135, 0.048950657, -0.01923516, -0.0014054152, 0.002650635, -0.005300331, 0.004860559, 0.011158468, 0.005940625, -0.012095051, 0.0041518128, -0.020433836, -0.025870577, -0.0007547932, -0.026509356) * g_16; + result += mat4(-0.004545374, 0.04264545, 0.021741537, 0.029115127, 0.04225599, -0.0055392785, 0.026570829, -0.031795148, -0.008307126, 0.020176455, 0.010904648, 0.017765503, -0.10806103, -0.01776947, 0.00070428237, -0.06356262) * g_17; + result += mat4(-0.05663172, 0.05908046, -0.03837452, 0.06636983, -0.007960516, -0.06384041, 0.023125881, -0.030108837, 0.0038054318, -0.023263922, 0.020264054, -0.0062937695, 0.031630237, 0.020909082, 0.03594235, 0.035879835) * g_18; + result += mat4(-0.0050448794, 0.033650696, -0.002830413, 0.035174295, -0.024521282, 0.013054315, -0.020833842, 0.037953895, 0.08249671, 0.024239466, -0.012758333, -0.027316988, 0.051040914, 0.0005025873, 0.039778862, 0.0024668393) * g_19; + result += mat4(0.017232442, 0.022482058, 0.020233413, 0.024337437, 0.07986929, 0.06234036, 0.12662584, -0.05271183, -0.009718745, -0.0046989853, -0.0030333172, -0.04034237, -0.0113442, 0.022746231, -0.035293855, -0.009433693) * g_20; + result += mat4(0.015766997, 0.013647276, -0.029327558, 0.039106004, -0.010398323, -0.032851525, 0.02908329, -0.003789618, 0.12963496, 0.010851003, 0.1126276, -0.049255487, 0.06867432, 0.07970792, 0.017840397, -0.026481882) * g_21; + result += mat4(-0.058729574, -0.07886952, 0.033267397, 0.02755372, -0.0172006, 0.012404398, -0.0230168, -0.015059758, -0.09239916, -0.029533267, -0.043251917, 0.0035152994, 0.022931995, 0.101714484, -0.044946067, 0.094993) * g_22; + result += mat4(-0.04708704, -0.032475296, -0.03228093, -0.08810475, 0.013745045, 0.027828002, -0.031922746, 0.022986397, -0.061620213, -0.03694645, -0.055026993, 0.0031291894, -0.028799903, -0.0025357977, -0.03441407, 0.0028600092) * g_23; + result += mat4(0.058981724, -0.10447273, -0.088705614, 0.16546178, -0.023549391, -0.008831522, -0.018411588, 0.029640056, -0.068086684, -0.05414636, -0.029401174, 0.036180343, -0.031988926, -0.047249753, 0.008162177, 0.00548062) * g_24; + result += mat4(0.05287462, -0.030657746, 0.02821435, 0.037005343, 0.03534311, -0.15614955, 0.07085459, -0.11997641, -0.009156166, -0.021968868, -0.054147746, -0.07307657, -0.006428544, -0.017528288, 0.012614676, 0.037840024) * g_25; + result += mat4(-0.021977803, 0.047799855, 0.02660416, -0.07292106, 0.045195807, -0.0056674764, 0.10824326, -0.112114795, 0.1447127, -0.0119616175, 0.0011661504, -0.04553905, 0.13048342, 0.14574122, -0.105522245, -0.102792375) * g_26; + result += mat4(-0.16397473, 0.15785863, -0.06666504, -0.01682913, 0.06070918, 0.070222184, 0.037701584, 0.026657054, -0.0835267, -0.009457008, 0.13232987, 0.13508691, -0.056414206, -0.06818828, 0.079076104, 0.032249212) * g_27; + result += vec4(-0.10795144, -0.09953324, -0.055413827, -0.03875493); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x1x1x112 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!SAVE conv2d_last_tf1 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_1 (max((conv2d_tf1_tex(conv2d_tf1_pos)), 0.0)) +#define g_2 (max(-(conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_3 (max(-(conv2d_tf1_tex(conv2d_tf1_pos)), 0.0)) +#define g_4 (max((conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_5 (max((conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_6 (max(-(conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_7 (max(-(conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_9 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_10 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_11 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_12 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_13 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_14 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_15 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_16 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_17 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_18 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_19 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_21 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_22 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_23 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_24 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_25 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_26 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_27 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(0.024905335, -0.0020974763, 0.02695263, 0.00016802056, -0.024053082, -0.02133723, -0.031614035, -0.031826317, 0.120421864, 0.10555479, 0.08609448, 0.116875134, 0.046175968, 0.04224941, 0.059216674, 0.035143953) * g_0; + result += mat4(0.059397914, 0.016519934, 0.07189327, 0.047407165, 0.04808963, 0.02792908, 0.057017103, 0.034324065, 0.14228246, 0.11275426, 0.088058695, 0.059600517, 0.02063494, 0.052596953, 0.047207687, 0.08789091) * g_1; + result += mat4(-0.013453174, 0.008474715, -0.017593835, 0.009218917, 0.070580654, 0.040542338, 0.08812338, 0.074653216, -0.016356857, 0.015809007, -0.008739107, 0.0097674895, -0.018381525, -0.007775341, -0.040571664, -0.011188163) * g_2; + result += mat4(-0.026196122, -0.034825727, -0.042998232, -0.033436514, -0.01678153, -0.004592797, -0.010311677, 0.0008815291, -0.08899181, -0.10274026, -0.066960976, -0.082430154, -0.057137426, -0.07554528, -0.030993424, -0.050372377) * g_3; + result += mat4(0.022921838, -0.010479244, -0.050794605, -0.073633075, -0.053708922, 0.009594084, -0.071259, -0.01054356, 0.005165821, -0.08024963, -0.049251772, -0.09581235, 0.17995799, 0.09743011, 0.13533138, 0.11643848) * g_4; + result += mat4(0.09727046, 0.07292666, 0.06820908, 0.041535784, -0.0049705, 0.0048759184, -0.035702795, -0.015944308, -0.010730028, 0.018847652, 0.06466244, 0.086318985, -0.05661574, -0.040698618, 0.010839972, 0.0027009705) * g_5; + result += mat4(-0.04628466, 0.010060396, 0.02609333, 0.08664702, 0.057045907, 0.033591177, 0.02186063, -0.024303377, 0.006569828, 0.08025825, 0.016128821, 0.10180713, -0.12228169, -0.112990454, -0.078443415, -0.09126021) * g_6; + result += mat4(-0.12733299, -0.087755, -0.07374111, -0.044979006, -0.025347412, -0.004083168, 0.023782173, 0.02900392, -0.017815407, -0.041119996, -0.057978686, -0.13521095, 0.08364004, 0.06950181, 0.023554614, 0.008043734) * g_7; + result += mat4(0.009062775, -0.003570175, -0.007378757, -0.0018487388, 0.01145638, 0.05217187, -0.008250244, 0.008433307, -0.056756936, -0.044681005, -0.08096105, -0.08033185, -0.023784965, -0.01859799, 0.013042476, 0.021188647) * g_8; + result += mat4(-0.0071619656, -0.012498299, -0.05144986, -0.078112476, -0.034992415, -0.017038302, -0.04464615, -0.044504963, 0.024249, -0.004297534, 0.03674578, 0.03090718, 0.04698553, 0.008344952, 0.057619847, -0.0338724) * g_9; + result += mat4(-0.011845145, -0.0045043705, -1.6646482e-06, -0.0038495932, -0.01992515, 0.004827126, 0.019493148, 0.00862289, 0.10151322, 0.0021909082, 0.09940764, 0.03728846, 0.027824005, 0.04358071, 0.014909185, 0.036326095) * g_10; + result += mat4(0.022513246, 0.028257169, 0.0102195935, 0.03301329, 0.052253865, -0.0021944977, 0.08247392, 0.03256867, -0.040685873, -0.0052207555, -0.0451257, -0.054165114, 0.01647699, 0.0028809097, -0.015233776, -0.0008741886) * g_11; + result += mat4(0.017371105, 0.01597189, -0.052552313, -0.008554715, -0.0023150423, 0.006076517, -0.012868931, 0.0039361073, -0.007524978, -0.004284313, -0.021520883, -0.010327569, 0.02543678, 0.008725823, -0.0073885336, 0.005528395) * g_12; + result += mat4(0.019192757, 0.016561812, 0.0027538154, 0.0013078215, 0.007916496, -0.042525183, -0.013173432, -0.05265476, -0.062195376, -0.011255499, 0.020898128, 0.021532273, -0.001524097, 0.034835674, -0.004051403, -0.0292426) * g_13; + result += mat4(-0.049191684, -9.43322e-06, -0.009106849, 0.012845289, -0.019482708, -0.011163468, 0.0034011535, -0.007062845, -0.006469714, 0.03177786, -0.033006195, -0.0006813464, -0.053963087, 0.00085209147, 0.02734121, 0.034086403) * g_14; + result += mat4(-0.03232248, -0.004037002, -0.010319106, 0.030889064, 0.019604538, 0.0020888883, 0.010277864, 0.000661223, 0.057915937, 0.030683514, 0.00042533095, -0.013019287, -0.015896408, 0.0038484468, -0.0042103594, 0.02174542) * g_15; + result += mat4(0.032975145, 0.0011456647, 0.04913679, -0.017063798, 0.0117176045, 0.007440557, 0.0020480808, 0.009415731, 0.027573857, 0.015140836, -0.01679426, -0.006124731, -0.03206279, -0.029842237, -0.010428016, -0.028513178) * g_16; + result += mat4(-0.00506859, 0.055869613, 0.010164368, 0.027031485, 0.042289548, -0.0054258504, 0.032214936, -0.029970925, -0.0058315448, 0.022889478, 0.01681123, 0.02985076, -0.111186065, -0.02202099, 0.0030994313, -0.062343158) * g_17; + result += mat4(-0.060951103, 0.06079555, -0.0396464, 0.070911355, -0.011480358, -0.06803282, 0.01637355, -0.043100975, -0.00423709, -0.028337711, 0.021635853, 0.0014857082, 0.030084312, 0.018155476, 0.043694943, 0.038795974) * g_18; + result += mat4(-0.0060662925, 0.029721662, -0.008117774, 0.034551267, -0.024477571, 0.018841071, -0.027095588, 0.034495078, 0.082398005, 0.008998768, -0.016399248, -0.043801688, 0.05936684, 0.006066549, 0.045399766, 3.5319943e-05) * g_19; + result += mat4(0.019259382, 0.02494012, 0.029301709, 0.028329274, 0.09122267, 0.06900443, 0.1412115, -0.043169618, -0.01627418, -0.004989528, -0.0042651827, -0.04556752, -0.023623291, 0.013007996, -0.04483056, -0.015727345) * g_20; + result += mat4(0.016332543, 0.016384754, -0.030676385, 0.045312885, -0.0100853555, -0.032632045, 0.031514473, -0.0070776115, 0.13642761, 0.0023589598, 0.12214136, -0.062155515, 0.08240989, 0.08894205, 0.03325406, -0.016589595) * g_21; + result += mat4(-0.06494277, -0.08158925, 0.030425413, 0.019835634, -0.012624623, 0.013942616, -0.030527417, -0.021668324, -0.09444672, -0.033064254, -0.044167448, 0.0011024752, 0.03210801, 0.12662941, -0.03912534, 0.1112649) * g_22; + result += mat4(-0.04716062, -0.03751481, -0.031030515, -0.09067383, 0.0077815712, 0.02169541, -0.035285182, 0.02290573, -0.0704085, -0.03916127, -0.058103334, 0.004915147, -0.0333844, -0.011548617, -0.031151932, -0.00043817286) * g_23; + result += mat4(0.05976319, -0.107285, -0.097245865, 0.17706421, -0.021453341, -0.0047738464, -0.017621001, 0.033400454, -0.07225561, -0.05599672, -0.027600193, 0.038664024, -0.03762786, -0.052429967, 0.0104017975, 0.007116869) * g_24; + result += mat4(0.06014114, -0.029824806, 0.03209269, 0.04392036, 0.031300627, -0.16249833, 0.06878509, -0.12658615, -0.012383169, -0.025043553, -0.06527381, -0.08149099, -0.014006842, -0.018669648, 0.014510818, 0.042045828) * g_25; + result += mat4(-0.023342922, 0.047104675, 0.029629575, -0.082307704, 0.04035797, -0.0013049254, 0.11085582, -0.11031226, 0.14778149, -0.016699014, -0.00634342, -0.055320874, 0.14306462, 0.15896587, -0.110229075, -0.1069649) * g_26; + result += mat4(-0.17449625, 0.15787153, -0.06711028, -0.023110518, 0.06862914, 0.074063435, 0.042682912, 0.029800726, -0.08768606, -0.009814701, 0.14180017, 0.14780663, -0.05672417, -0.074305914, 0.07873489, 0.028458012) * g_27; + result += vec4(0.06026231, 0.040204916, 0.037672628, 0.023496555); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Conv-4x1x1x112 +//!HOOK MAIN +//!BIND conv2d_tf +//!BIND conv2d_tf1 +//!BIND conv2d_1_tf +//!BIND conv2d_1_tf1 +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!BIND conv2d_3_tf +//!BIND conv2d_3_tf1 +//!BIND conv2d_4_tf +//!BIND conv2d_4_tf1 +//!BIND conv2d_5_tf +//!BIND conv2d_5_tf1 +//!BIND conv2d_6_tf +//!BIND conv2d_6_tf1 +//!SAVE conv2d_last_tf2 +//!WIDTH conv2d_tf.w +//!HEIGHT conv2d_tf.h +//!COMPONENTS 4 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +#define g_0 (max((conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_1 (max((conv2d_tf1_tex(conv2d_tf1_pos)), 0.0)) +#define g_2 (max(-(conv2d_tf_tex(conv2d_tf_pos)), 0.0)) +#define g_3 (max(-(conv2d_tf1_tex(conv2d_tf1_pos)), 0.0)) +#define g_4 (max((conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_5 (max((conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_6 (max(-(conv2d_1_tf_tex(conv2d_1_tf_pos)), 0.0)) +#define g_7 (max(-(conv2d_1_tf1_tex(conv2d_1_tf1_pos)), 0.0)) +#define g_8 (max((conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_9 (max((conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_10 (max(-(conv2d_2_tf_tex(conv2d_2_tf_pos)), 0.0)) +#define g_11 (max(-(conv2d_2_tf1_tex(conv2d_2_tf1_pos)), 0.0)) +#define g_12 (max((conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_13 (max((conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_14 (max(-(conv2d_3_tf_tex(conv2d_3_tf_pos)), 0.0)) +#define g_15 (max(-(conv2d_3_tf1_tex(conv2d_3_tf1_pos)), 0.0)) +#define g_16 (max((conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_17 (max((conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_18 (max(-(conv2d_4_tf_tex(conv2d_4_tf_pos)), 0.0)) +#define g_19 (max(-(conv2d_4_tf1_tex(conv2d_4_tf1_pos)), 0.0)) +#define g_20 (max((conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_21 (max((conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_22 (max(-(conv2d_5_tf_tex(conv2d_5_tf_pos)), 0.0)) +#define g_23 (max(-(conv2d_5_tf1_tex(conv2d_5_tf1_pos)), 0.0)) +#define g_24 (max((conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_25 (max((conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +#define g_26 (max(-(conv2d_6_tf_tex(conv2d_6_tf_pos)), 0.0)) +#define g_27 (max(-(conv2d_6_tf1_tex(conv2d_6_tf1_pos)), 0.0)) +vec4 hook() { + vec4 result = mat4(0.1765669, 0.14268716, 0.19186598, 0.15799578, 0.016374417, 0.018578433, 0.0039475, 0.0046772263, 0.39840183, 0.36909792, 0.35409746, 0.37422222, -0.108508386, -0.1331279, -0.10336035, -0.14776541) * g_0; + result += mat4(-0.057757027, -0.14071062, -0.025283009, -0.09397916, -0.09031894, -0.14219165, -0.08299535, -0.13970287, -0.12259208, -0.14382727, -0.22002274, -0.25016093, -0.048906635, 0.06620249, 0.016965045, 0.1295978) * g_1; + result += mat4(-0.16748372, -0.13718611, -0.18565705, -0.15029612, -0.080749065, -0.09955825, 0.032431383, 0.023855643, -0.2748885, -0.23232168, -0.29121292, -0.26405892, 0.16556135, 0.18657646, 0.1424068, 0.18855052) * g_2; + result += mat4(0.10960496, 0.10851629, 0.095003806, 0.11053746, 0.09885307, 0.14437789, 0.13191165, 0.17365928, 0.16558935, 0.15473324, 0.21136154, 0.19976667, -0.07267957, -0.11469687, -0.029134216, -0.06817615) * g_3; + result += mat4(0.10202856, 0.04216857, -0.03959349, -0.09849683, -0.1576996, -0.049997438, -0.1579918, -0.058789205, 0.029792828, -0.07311781, -0.045432188, -0.11312683, 0.24257647, 0.16204113, 0.17869382, 0.16024388) * g_4; + result += mat4(0.17193612, 0.12692013, 0.13177487, 0.0796725, 0.0797928, 0.08952722, -0.012468046, 0.011071511, -0.068559825, -0.024852324, 0.0526428, 0.07917346, -0.085534215, -0.09591339, 0.04615827, 0.024577664) * g_5; + result += mat4(-0.14653449, -0.067267366, -0.002524394, 0.086243175, 0.13660401, 0.08039592, 0.09179008, 0.022573143, -0.024744196, 0.09120211, 0.017654825, 0.14114714, -0.16093308, -0.14538004, -0.09950235, -0.111152865) * g_6; + result += mat4(-0.188637, -0.12968326, -0.1200479, -0.06537649, -0.12589337, -0.106242515, -0.02788782, -0.025949068, 0.04948153, 0.02222735, -0.025291357, -0.12379292, 0.11074645, 0.11902375, -0.00056989543, -0.0024386419) * g_7; + result += mat4(0.018286629, 0.0072215167, 0.00037828335, 0.0047001047, 0.011478272, 0.041745186, -0.015742473, -0.002282524, -0.03440817, -0.02196847, -0.07838253, -0.07993771, -0.010155526, -0.017590692, 0.027141469, 0.029741213) * g_8; + result += mat4(0.016512005, 0.004950637, -0.0238836, -0.05587327, -0.03164328, -0.009499985, -0.059880238, -0.061794154, 0.023154303, -0.013266373, 0.04701534, 0.0415862, 0.06357814, 0.033057794, 0.08389772, 0.00035060212) * g_9; + result += mat4(-0.016403968, -0.012538788, -0.0015746636, -0.004771009, -0.021361275, -0.009695242, 0.020548422, -0.0024130535, 0.07796766, -0.01516671, 0.09961382, 0.042754963, 0.017363647, 0.03729065, -0.004795824, 0.01550197) * g_10; + result += mat4(-0.0028093113, 0.011869523, -0.02216933, 0.011177349, 0.033342455, -0.021146454, 0.07830085, 0.032490104, -0.03281833, 0.0060484232, -0.04081057, -0.04945058, -0.0056189033, -0.010636801, -0.041949317, -0.025739705) * g_11; + result += mat4(0.012979897, 0.016758928, -0.049062215, -0.0035748442, 0.0085972, 0.0036381132, -0.0055621094, 0.0041307937, -0.0008907763, -0.0034079372, -0.025680453, -0.015531803, 0.012816766, 0.009977763, -0.016416566, 0.0034859509) * g_12; + result += mat4(0.021753248, 0.016452711, 0.009833835, 0.0065052663, 0.0014061348, -0.046160888, -0.0132271005, -0.05051269, -0.05746351, -0.0012690664, 0.017191738, 0.018192926, -0.008879476, 0.026354216, -0.012801991, -0.029587373) * g_13; + result += mat4(-0.04220692, -0.0015560482, -0.0019648245, 0.013402305, -0.018259782, -0.0036008905, 0.0035650074, -0.0019178417, 0.00051580026, 0.027355857, -0.017914988, 0.004937948, -0.046335887, 0.00013612259, 0.030293299, 0.030688645) * g_14; + result += mat4(-0.036683388, -0.0031274238, -0.026074665, 0.021684237, 0.022639066, 0.0022493738, 0.011508554, -0.0006385944, 0.04890418, 0.020119468, 0.004167364, -0.008356099, -0.008598796, 0.0089028, -0.0029575853, 0.016687104) * g_15; + result += mat4(0.027207986, 0.0011099194, 0.042383645, -0.015179333, 0.014744431, 0.006148344, 0.005165422, 0.0070196544, 0.030286826, 0.016620956, -0.01611366, -0.00667594, -0.029524863, -0.024751091, -0.013321004, -0.025199674) * g_16; + result += mat4(0.0027477827, 0.054622147, 0.010154094, 0.025437292, 0.031773083, -0.01055473, 0.022864206, -0.029010754, -0.0029999653, 0.025018329, 0.015316208, 0.027188798, -0.10096525, -0.017268656, 0.0012529213, -0.062078856) * g_17; + result += mat4(-0.053670805, 0.057336535, -0.037418038, 0.06443577, -0.016027879, -0.058168363, 0.007034215, -0.03390141, -0.0019346164, -0.027947908, 0.021723913, -0.0018286633, 0.030507812, 0.018293543, 0.042917266, 0.033528328) * g_18; + result += mat4(-0.004559579, 0.029667616, -0.001870353, 0.0378995, -0.017147437, 0.020192018, -0.021574946, 0.031568103, 0.07487145, 0.0032376775, -0.018893708, -0.041981626, 0.054478757, 0.0061423797, 0.041280247, 0.000878061) * g_19; + result += mat4(0.017076394, 0.023647636, 0.029403262, 0.029923365, 0.08866472, 0.060613394, 0.1314274, -0.04490231, -0.016304834, -0.0062647443, -0.0031828512, -0.03989252, -0.024330825, 0.00741213, -0.04075287, -0.01615817) * g_20; + result += mat4(0.017866978, 0.017720113, -0.02846163, 0.040761847, -0.0063438355, -0.02347501, 0.029564403, -0.0029562064, 0.12505588, -0.0073986333, 0.11250363, -0.06179967, 0.07854423, 0.08546533, 0.034743227, -0.010757377) * g_21; + result += mat4(-0.06416677, -0.08344284, 0.030138884, 0.017635904, -0.012087523, 0.014205202, -0.03221233, -0.023834767, -0.091186255, -0.028958676, -0.04724334, 0.00013161585, 0.027391518, 0.1249978, -0.045047652, 0.10737729) * g_22; + result += mat4(-0.04326348, -0.03543181, -0.029558217, -0.08582413, 0.007812453, 0.014296562, -0.028779754, 0.018517692, -0.063755795, -0.036619596, -0.050809663, 0.005431336, -0.029205568, -0.011827915, -0.031110523, -0.005648626) * g_23; + result += mat4(0.05499293, -0.10000709, -0.0943537, 0.16143042, -0.019952895, -0.0039807972, -0.014841254, 0.0320363, -0.065173544, -0.049425576, -0.023904482, 0.03759679, -0.03207411, -0.047782745, 0.01352581, 0.008140566) * g_24; + result += mat4(0.055923894, -0.025134467, 0.029583648, 0.04096879, 0.027551858, -0.14995384, 0.06467113, -0.11633077, -0.01563784, -0.026909819, -0.06292879, -0.078409635, -0.009081105, -0.015533088, 0.019585673, 0.04334208) * g_25; + result += mat4(-0.021717606, 0.042464726, 0.02743202, -0.07388838, 0.03460472, 0.0038285658, 0.099842004, -0.098247, 0.13276267, -0.020793032, -0.008603039, -0.051913783, 0.12959045, 0.14735717, -0.10888226, -0.10263746) * g_26; + result += mat4(-0.16819532, 0.141579, -0.062480718, -0.021918943, 0.06348125, 0.06849444, 0.03888676, 0.027375204, -0.08194279, -0.012574497, 0.13523251, 0.13739482, -0.047547445, -0.058767617, 0.07009549, 0.028136581) * g_27; + result += vec4(0.069033325, 0.040207114, 0.027286075, 0.0065334598); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(VL)-Depth-to-Space +//!HOOK MAIN +//!BIND MAIN +//!BIND conv2d_last_tf +//!BIND conv2d_last_tf1 +//!BIND conv2d_last_tf2 +//!SAVE MAIN +//!WIDTH conv2d_last_tf.w 2 * +//!HEIGHT conv2d_last_tf.h 2 * +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +vec4 hook() { + vec2 f0 = fract(conv2d_last_tf_pos * conv2d_last_tf_size); + ivec2 i0 = ivec2(f0 * vec2(2.0)); + float c0 = conv2d_last_tf_tex((vec2(0.5) - f0) * conv2d_last_tf_pt + conv2d_last_tf_pos)[i0.y * 2 + i0.x]; + vec2 f1 = fract(conv2d_last_tf1_pos * conv2d_last_tf1_size); + ivec2 i1 = ivec2(f1 * vec2(2.0)); + float c1 = conv2d_last_tf1_tex((vec2(0.5) - f1) * conv2d_last_tf1_pt + conv2d_last_tf1_pos)[i1.y * 2 + i1.x]; + vec2 f2 = fract(conv2d_last_tf2_pos * conv2d_last_tf2_size); + ivec2 i2 = ivec2(f2 * vec2(2.0)); + float c2 = conv2d_last_tf2_tex((vec2(0.5) - f2) * conv2d_last_tf2_pt + conv2d_last_tf2_pos)[i2.y * 2 + i2.x]; + float c3 = c2; + return vec4(c0, c1, c2, c3) + MAIN_tex(MAIN_pos); +} diff --git a/assets/shaders/nvscaler/NVScaler.glsl b/assets/shaders/nvscaler/NVScaler.glsl new file mode 100644 index 00000000..25c4f64f --- /dev/null +++ b/assets/shaders/nvscaler/NVScaler.glsl @@ -0,0 +1,544 @@ +// The MIT License(MIT) +// +// Copyright(c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files(the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +// NVIDIA Image Scaling v1.0.2 by NVIDIA +// ported to mpv by agyild + +// Changelog +// Made it directly operate on LUMA plane, since the original shader was operating +// on LUMA by deriving it from RGB. This should cause a major increase in performance, +// especially on OpenGL 4.0+ renderers + +//!HOOK LUMA +//!BIND HOOKED +//!BIND coef_scaler +//!BIND coef_usm +//!DESC NVIDIA Image Scaling and Sharpening v1.0.2 +//!COMPUTE 32 24 256 1 +//!WHEN OUTPUT.w OUTPUT.h * LUMA.w LUMA.h * / 1.0 > +//!WIDTH OUTPUT.w +//!HEIGHT OUTPUT.h + +// User variables +#define SHARPNESS 0.25 // Amount of sharpening. 0.0 to 1.0. +#define NIS_THREAD_GROUP_SIZE 256 // May be set to 128 for better performance on NVIDIA hardware, otherwise set to 256. Don't forget to modify the COMPUTE directive accordingly as well (e.g., COMPUTE 32 24 128 1). +#define NIS_HDR_MODE 0 // Must be set to 1 for content with PQ colorspace. 0 or 1. + +// Constant variables +#define NIS_BLOCK_WIDTH 32 +#define NIS_BLOCK_HEIGHT 24 +#define kPhaseCount 64 +#define kFilterSize 6 +#define kSupportSize 6 +#define kPadSize kSupportSize +#define NIS_SCALE_INT 1 +#define NIS_SCALE_FLOAT 1.0f +#define kTilePitch (NIS_BLOCK_WIDTH + kPadSize) +#define kTileSize (kTilePitch * (NIS_BLOCK_HEIGHT + kPadSize)) +#define kEdgeMapPitch (NIS_BLOCK_WIDTH + 2) +#define kEdgeMapSize (kEdgeMapPitch * (NIS_BLOCK_HEIGHT + 2)) +const float sharpen_slider = clamp(SHARPNESS, 0.0f, 1.0f) - 0.5f; +const float MaxScale = (sharpen_slider >= 0.0f) ? 1.25f : 1.75f; +const float MinScale = (sharpen_slider >= 0.0f) ? 1.25f : 1.0f; +const float LimitScale = (sharpen_slider >= 0.0f) ? 1.25f : 1.0f; +const float kDetectRatio = 2 * 1127.f / 1024.f; +const float kDetectThres = (bool(NIS_HDR_MODE) ? 32.0f : 64.0f) / 1024.0f; +const float kMinContrastRatio = bool(NIS_HDR_MODE) ? 1.5f : 2.0f; +const float kMaxContrastRatio = bool(NIS_HDR_MODE) ? 5.0f : 10.0f; +const float kSharpStartY = bool(NIS_HDR_MODE) ? 0.35f : 0.45f; +const float kSharpEndY = bool(NIS_HDR_MODE) ? 0.55f : 0.9f; +const float kSharpStrengthMin = max(0.0f, 0.4f + sharpen_slider * MinScale * (bool(NIS_HDR_MODE) ? 1.1f : 1.2)); +const float kSharpStrengthMax = ((bool(NIS_HDR_MODE) ? 2.2f : 1.6f) + sharpen_slider * MaxScale * 1.8f); +const float kSharpLimitMin = max((bool(NIS_HDR_MODE) ? 0.06f :0.1f), (bool(NIS_HDR_MODE) ? 0.1f : 0.14f) + sharpen_slider * LimitScale * (bool(NIS_HDR_MODE) ? 0.28f : 0.32f)); +const float kSharpLimitMax = ((bool(NIS_HDR_MODE) ? 0.6f : 0.5f) + sharpen_slider * LimitScale * 0.6f); +const float kRatioNorm = 1.0f / (kMaxContrastRatio - kMinContrastRatio); +const float kSharpScaleY = 1.0f / (kSharpEndY - kSharpStartY); +const float kSharpStrengthScale = kSharpStrengthMax - kSharpStrengthMin; +const float kSharpLimitScale = kSharpLimitMax - kSharpLimitMin; +const float kContrastBoost = 1.0f; +const float kEps = 1.0f; +#define kScaleX (HOOKED_size.x / target_size.x) +#define kScaleY (HOOKED_size.y / target_size.y) +#define kSrcNormX HOOKED_pt.x +#define kSrcNormY HOOKED_pt.y + +// HLSL to GLSL macros +#define saturate(x) clamp(x, 0, 1) +#define lerp(a, b, x) mix(a, b, x) + +// CS Shared variables +shared float shPixelsY[kTileSize]; +shared float shCoefScaler[kPhaseCount][kFilterSize]; +shared float shCoefUSM[kPhaseCount][kFilterSize]; +shared vec4 shEdgeMap[kEdgeMapSize]; + +// Shader code + +vec4 GetEdgeMap(float p[4][4], int i, int j) { + const float g_0 = abs(p[0 + i][0 + j] + p[0 + i][1 + j] + p[0 + i][2 + j] - p[2 + i][0 + j] - p[2 + i][1 + j] - p[2 + i][2 + j]); + const float g_45 = abs(p[1 + i][0 + j] + p[0 + i][0 + j] + p[0 + i][1 + j] - p[2 + i][1 + j] - p[2 + i][2 + j] - p[1 + i][2 + j]); + const float g_90 = abs(p[0 + i][0 + j] + p[1 + i][0 + j] + p[2 + i][0 + j] - p[0 + i][2 + j] - p[1 + i][2 + j] - p[2 + i][2 + j]); + const float g_135 = abs(p[1 + i][0 + j] + p[2 + i][0 + j] + p[2 + i][1 + j] - p[0 + i][1 + j] - p[0 + i][2 + j] - p[1 + i][2 + j]); + + const float g_0_90_max = max(g_0, g_90); + const float g_0_90_min = min(g_0, g_90); + const float g_45_135_max = max(g_45, g_135); + const float g_45_135_min = min(g_45, g_135); + + float e_0_90 = 0; + float e_45_135 = 0; + + if (g_0_90_max + g_45_135_max == 0) + { + return vec4(0, 0, 0, 0); + } + + e_0_90 = min(g_0_90_max / (g_0_90_max + g_45_135_max), 1.0f); + e_45_135 = 1.0f - e_0_90; + + bool c_0_90 = (g_0_90_max > (g_0_90_min * kDetectRatio)) && (g_0_90_max > kDetectThres) && (g_0_90_max > g_45_135_min); + bool c_45_135 = (g_45_135_max > (g_45_135_min * kDetectRatio)) && (g_45_135_max > kDetectThres) && (g_45_135_max > g_0_90_min); + bool c_g_0_90 = g_0_90_max == g_0; + bool c_g_45_135 = g_45_135_max == g_45; + + float f_e_0_90 = (c_0_90 && c_45_135) ? e_0_90 : 1.0f; + float f_e_45_135 = (c_0_90 && c_45_135) ? e_45_135 : 1.0f; + + float weight_0 = (c_0_90 && c_g_0_90) ? f_e_0_90 : 0.0f; + float weight_90 = (c_0_90 && !c_g_0_90) ? f_e_0_90 : 0.0f; + float weight_45 = (c_45_135 && c_g_45_135) ? f_e_45_135 : 0.0f; + float weight_135 = (c_45_135 && !c_g_45_135) ? f_e_45_135 : 0.0f; + + return vec4(weight_0, weight_90, weight_45, weight_135); +} + +void LoadFilterBanksSh(int i0, int di) { + // Load up filter banks to shared memory + // The work is spread over (kPhaseCount * 2) threads + for (int i = i0; i < kPhaseCount * 2; i += di) + { + int phase = i >> 1; + int vIdx = i & 1; + + vec4 v = vec4(texelFetch(coef_scaler, ivec2(vIdx, phase), 0)); + int filterOffset = vIdx * 4; + shCoefScaler[phase][filterOffset + 0] = v.x; + shCoefScaler[phase][filterOffset + 1] = v.y; + if (vIdx == 0) + { + shCoefScaler[phase][2] = v.z; + shCoefScaler[phase][3] = v.w; + } + + v = vec4(texelFetch(coef_usm, ivec2(vIdx, phase), 0)); + shCoefUSM[phase][filterOffset + 0] = v.x; + shCoefUSM[phase][filterOffset + 1] = v.y; + if (vIdx == 0) + { + shCoefUSM[phase][2] = v.z; + shCoefUSM[phase][3] = v.w; + } + } +} + +float CalcLTI(float p0, float p1, float p2, float p3, float p4, float p5, int phase_index) +{ + const bool selector = (phase_index <= kPhaseCount / 2); + float sel = selector ? p0 : p3; + const float a_min = min(min(p1, p2), sel); + const float a_max = max(max(p1, p2), sel); + sel = selector ? p2 : p5; + const float b_min = min(min(p3, p4), sel); + const float b_max = max(max(p3, p4), sel); + + const float a_cont = a_max - a_min; + const float b_cont = b_max - b_min; + + const float cont_ratio = max(a_cont, b_cont) / (min(a_cont, b_cont) + kEps); + return (1.0f - saturate((cont_ratio - kMinContrastRatio) * kRatioNorm)) * kContrastBoost; +} + +vec4 GetInterpEdgeMap(const vec4 edge[2][2], float phase_frac_x, float phase_frac_y) +{ + vec4 h0 = lerp(edge[0][0], edge[0][1], phase_frac_x); + vec4 h1 = lerp(edge[1][0], edge[1][1], phase_frac_x); + return lerp(h0, h1, phase_frac_y); +} + +float EvalPoly6(const float pxl[6], int phase_int) +{ + float y = 0.f; + { + for (int i = 0; i < 6; ++i) + { + y += shCoefScaler[phase_int][i] * pxl[i]; + } + } + float y_usm = 0.f; + { + for (int i = 0; i < 6; ++i) + { + y_usm += shCoefUSM[phase_int][i] * pxl[i]; + } + } + + // let's compute a piece-wise ramp based on luma + const float y_scale = 1.0f - saturate((y * (1.0f / NIS_SCALE_FLOAT) - kSharpStartY) * kSharpScaleY); + + // scale the ramp to sharpen as a function of luma + const float y_sharpness = y_scale * kSharpStrengthScale + kSharpStrengthMin; + + y_usm *= y_sharpness; + + // scale the ramp to limit USM as a function of luma + const float y_sharpness_limit = (y_scale * kSharpLimitScale + kSharpLimitMin) * y; + + y_usm = min(y_sharpness_limit, max(-y_sharpness_limit, y_usm)); + // reduce ringing + y_usm *= CalcLTI(pxl[0], pxl[1], pxl[2], pxl[3], pxl[4], pxl[5], phase_int); + + return y + y_usm; +} + +float FilterNormal(const float p[6][6], int phase_x_frac_int, int phase_y_frac_int) +{ + float h_acc = 0.0f; + for (int j = 0; j < 6; ++j) + { + float v_acc = 0.0f; + for (int i = 0; i < 6; ++i) + { + v_acc += p[i][j] * shCoefScaler[phase_y_frac_int][i]; + } + h_acc += v_acc * shCoefScaler[phase_x_frac_int][j]; + } + + // let's return the sum unpacked -> we can accumulate it later + return h_acc; +} + +float AddDirFilters(float p[6][6], float phase_x_frac, float phase_y_frac, int phase_x_frac_int, int phase_y_frac_int, vec4 w) +{ + float f = 0.f; + if (w.x > 0.0f) + { + // 0 deg filter + float interp0Deg[6]; + { + for (int i = 0; i < 6; ++i) + { + interp0Deg[i] = lerp(p[i][2], p[i][3], phase_x_frac); + } + } + f += EvalPoly6(interp0Deg, phase_y_frac_int) * w.x; + } + + if (w.y > 0.0f) + { + // 90 deg filter + float interp90Deg[6]; + { + for (int i = 0; i < 6; ++i) + { + interp90Deg[i] = lerp(p[2][i], p[3][i], phase_y_frac); + } + } + f += EvalPoly6(interp90Deg, phase_x_frac_int) * w.y; + } + if (w.z > 0.0f) + { + //45 deg filter + float pphase_b45; + pphase_b45 = 0.5f + 0.5f * (phase_x_frac - phase_y_frac); + + float temp_interp45Deg[7]; + temp_interp45Deg[1] = lerp(p[2][1], p[1][2], pphase_b45); + temp_interp45Deg[3] = lerp(p[3][2], p[2][3], pphase_b45); + temp_interp45Deg[5] = lerp(p[4][3], p[3][4], pphase_b45); + { + pphase_b45 = pphase_b45 - 0.5f; + float a = (pphase_b45 >= 0.f) ? p[0][2] : p[2][0]; + float b = (pphase_b45 >= 0.f) ? p[1][3] : p[3][1]; + float c = (pphase_b45 >= 0.f) ? p[2][4] : p[4][2]; + float d = (pphase_b45 >= 0.f) ? p[3][5] : p[5][3]; + temp_interp45Deg[0] = lerp(p[1][1], a, abs(pphase_b45)); + temp_interp45Deg[2] = lerp(p[2][2], b, abs(pphase_b45)); + temp_interp45Deg[4] = lerp(p[3][3], c, abs(pphase_b45)); + temp_interp45Deg[6] = lerp(p[4][4], d, abs(pphase_b45)); + } + + float interp45Deg[6]; + float pphase_p45 = phase_x_frac + phase_y_frac; + if (pphase_p45 >= 1) + { + for (int i = 0; i < 6; i++) + { + interp45Deg[i] = temp_interp45Deg[i + 1]; + } + pphase_p45 = pphase_p45 - 1; + } + else + { + for (int i = 0; i < 6; i++) + { + interp45Deg[i] = temp_interp45Deg[i]; + } + } + f += EvalPoly6(interp45Deg, int(pphase_p45 * 64)) * w.z; + } + + if (w.w > 0.0f) + { + //135 deg filter + float pphase_b135 = 0.5f * (phase_x_frac + phase_y_frac); + + float temp_interp135Deg[7]; + + temp_interp135Deg[1] = lerp(p[3][1], p[4][2], pphase_b135); + temp_interp135Deg[3] = lerp(p[2][2], p[3][3], pphase_b135); + temp_interp135Deg[5] = lerp(p[1][3], p[2][4], pphase_b135); + + { + pphase_b135 = pphase_b135 - 0.5f; + float a = (pphase_b135 >= 0.f) ? p[5][2] : p[3][0]; + float b = (pphase_b135 >= 0.f) ? p[4][3] : p[2][1]; + float c = (pphase_b135 >= 0.f) ? p[3][4] : p[1][2]; + float d = (pphase_b135 >= 0.f) ? p[2][5] : p[0][3]; + temp_interp135Deg[0] = lerp(p[4][1], a, abs(pphase_b135)); + temp_interp135Deg[2] = lerp(p[3][2], b, abs(pphase_b135)); + temp_interp135Deg[4] = lerp(p[2][3], c, abs(pphase_b135)); + temp_interp135Deg[6] = lerp(p[1][4], d, abs(pphase_b135)); + } + + + float interp135Deg[6]; + float pphase_p135 = 1 + (phase_x_frac - phase_y_frac); + if (pphase_p135 >= 1) + { + for (int i = 0; i < 6; ++i) + { + interp135Deg[i] = temp_interp135Deg[i + 1]; + } + pphase_p135 = pphase_p135 - 1; + } + else + { + for (int i = 0; i < 6; ++i) + { + interp135Deg[i] = temp_interp135Deg[i]; + } + } + f += EvalPoly6(interp135Deg, int(pphase_p135 * 64)) * w.w; + } + return f; +} + +void hook() +{ + uvec2 blockIdx = gl_WorkGroupID.xy; + uint threadIdx = gl_LocalInvocationID.x; + + // Figure out the range of pixels from input image that would be needed to be loaded for this thread-block + int dstBlockX = int(NIS_BLOCK_WIDTH * blockIdx.x); + int dstBlockY = int(NIS_BLOCK_HEIGHT * blockIdx.y); + + const int srcBlockStartX = int(floor((dstBlockX + 0.5f) * kScaleX - 0.5f)); + const int srcBlockStartY = int(floor((dstBlockY + 0.5f) * kScaleY - 0.5f)); + const int srcBlockEndX = int(ceil((dstBlockX + NIS_BLOCK_WIDTH + 0.5f) * kScaleX - 0.5f)); + const int srcBlockEndY = int(ceil((dstBlockY + NIS_BLOCK_HEIGHT + 0.5f) * kScaleY - 0.5f)); + + int numTilePixelsX = srcBlockEndX - srcBlockStartX + kSupportSize - 1; + int numTilePixelsY = srcBlockEndY - srcBlockStartY + kSupportSize - 1; + + // round-up load region to even size since we're loading in 2x2 batches + numTilePixelsX += numTilePixelsX & 0x1; + numTilePixelsY += numTilePixelsY & 0x1; + const int numTilePixels = numTilePixelsX * numTilePixelsY; + + // calculate the equivalent values for the edge map + const int numEdgeMapPixelsX = numTilePixelsX - kSupportSize + 2; + const int numEdgeMapPixelsY = numTilePixelsY - kSupportSize + 2; + const int numEdgeMapPixels = numEdgeMapPixelsX * numEdgeMapPixelsY; + + // fill in input luma tile (shPixelsY) in batches of 2x2 pixels + // we use texture gather to get extra support necessary + // to compute 2x2 edge map outputs too + { + for (uint i = threadIdx * 2; i < uint(numTilePixels) >> 1; i += NIS_THREAD_GROUP_SIZE * 2) + { + uint py = (i / numTilePixelsX) * 2; + uint px = i % numTilePixelsX; + + // 0.5 to be in the center of texel + // - (kSupportSize - 1) / 2 to shift by the kernel support size + float kShift = 0.5f - (kSupportSize - 1) / 2; + + const float tx = (srcBlockStartX + px + kShift) * kSrcNormX; + const float ty = (srcBlockStartY + py + kShift) * kSrcNormY; + + float p[2][2]; +#ifdef HOOKED_gather + { + const vec4 sY = HOOKED_gather(vec2(tx, ty), 0); + + p[0][0] = sY.w; + p[0][1] = sY.z; + p[1][0] = sY.x; + p[1][1] = sY.y; + } +#else + for (int j = 0; j < 2; j++) + { + for (int k = 0; k < 2; k++) + { + const float px = HOOKED_tex(vec2(tx + k * kSrcNormX, ty + j * kSrcNormY)).r; + p[j][k] = px; + } + } +#endif + const uint idx = py * kTilePitch + px; + shPixelsY[idx] = float(p[0][0]); + shPixelsY[idx + 1] = float(p[0][1]); + shPixelsY[idx + kTilePitch] = float(p[1][0]); + shPixelsY[idx + kTilePitch + 1] = float(p[1][1]); + } + } + + groupMemoryBarrier(); + barrier(); + + { + // fill in the edge map of 2x2 pixels + for (uint i = threadIdx * 2; i < uint(numEdgeMapPixels) >> 1; i += NIS_THREAD_GROUP_SIZE * 2) + { + uint py = (i / numEdgeMapPixelsX) * 2; + uint px = i % numEdgeMapPixelsX; + + const uint edgeMapIdx = py * kEdgeMapPitch + px; + + uint tileCornerIdx = (py+1) * kTilePitch + px + 1; + float p[4][4]; + for (int j = 0; j < 4; j++) + { + for (int k = 0; k < 4; k++) + { + p[j][k] = shPixelsY[tileCornerIdx + j * kTilePitch + k]; + } + } + + shEdgeMap[edgeMapIdx] = vec4(GetEdgeMap(p, 0, 0)); + shEdgeMap[edgeMapIdx + 1] = vec4(GetEdgeMap(p, 0, 1)); + shEdgeMap[edgeMapIdx + kEdgeMapPitch] = vec4(GetEdgeMap(p, 1, 0)); + shEdgeMap[edgeMapIdx + kEdgeMapPitch + 1] = vec4(GetEdgeMap(p, 1, 1)); + } + } + + LoadFilterBanksSh(int(threadIdx), NIS_THREAD_GROUP_SIZE); + + groupMemoryBarrier(); + barrier(); + + // output coord within a tile + const ivec2 pos = ivec2(uint(threadIdx) % uint(NIS_BLOCK_WIDTH), uint(threadIdx) / uint(NIS_BLOCK_WIDTH)); + // x coord inside the output image + const int dstX = dstBlockX + pos.x; + // x coord inside the input image + const float srcX = (0.5f + dstX) * kScaleX - 0.5f; + // nearest integer part + const int px = int(floor(srcX) - srcBlockStartX); + // fractional part + const float fx = srcX - floor(srcX); + // discretized phase + const int fx_int = int(fx * kPhaseCount); + + for (int k = 0; k < NIS_BLOCK_WIDTH * NIS_BLOCK_HEIGHT / NIS_THREAD_GROUP_SIZE; ++k) + { + // y coord inside the output image + const int dstY = dstBlockY + pos.y + k * (NIS_THREAD_GROUP_SIZE / NIS_BLOCK_WIDTH); + // y coord inside the input image + const float srcY = (0.5f + dstY) * kScaleY - 0.5f; + + // nearest integer part + const int py = int(floor(srcY) - srcBlockStartY); + // fractional part + const float fy = srcY - floor(srcY); + // discretized phase + const int fy_int = int(fy * kPhaseCount); + + // generate weights for directional filters + const int startEdgeMapIdx = py * kEdgeMapPitch + px; + vec4 edge[2][2]; + for (int i = 0; i < 2; i++) + { + for (int j = 0; j < 2; j++) + { + // need to shift edge map sampling since it's a 2x2 centered inside 6x6 grid + edge[i][j] = shEdgeMap[startEdgeMapIdx + (i * kEdgeMapPitch) + j]; + } + } + const vec4 w = GetInterpEdgeMap(edge, fx, fy) * NIS_SCALE_INT; + + // load 6x6 support to regs + const int startTileIdx = py * kTilePitch + px; + float p[6][6]; + { + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + p[i][j] = shPixelsY[startTileIdx + i * kTilePitch + j]; + } + } + } + + // weigth for luma + const float baseWeight = NIS_SCALE_FLOAT - w.x - w.y - w.z - w.w; + + // final luma is a weighted product of directional & normal filters + float opY = 0; + + // get traditional scaler filter output + opY += FilterNormal(p, fx_int, fy_int) * baseWeight; + + // get directional filter bank output + opY += AddDirFilters(p, fx, fy, fx_int, fy_int, w); + + // do bilinear tap for luma upscaling + vec4 op = HOOKED_tex(vec2((srcX + 0.5f) * kSrcNormX, (srcY + 0.5f) * kSrcNormY)); + + const float corr = opY * (1.0f / NIS_SCALE_FLOAT) - op.r; + op.x += corr; + + imageStore(out_image, ivec2(dstX, dstY), op); + } +} + +//!TEXTURE coef_scaler +//!SIZE 2 64 +//!FORMAT rgba32f +//!FILTER NEAREST +00000000000000000000803f0000000000000000000000000000000000000000ed0d3e3ba91350bc0000803fd044583c89d25ebb0000000000000000000000003b70ce3b16fbcbbcb29d7f3f645ddc3c89d2debb000000000000000000000000e02d103c98dd13bda4df7e3fe7fb293d55c128bc6f12033a00000000000000005bb13f3c812642bd5b427e3ff931663d1ea768bc6f12033a00000000000000001ea7683cfaed6bbdfb5c7d3fbc05923d744694bc6f12033a0000000000000000b9fc873c03098abda3017c3fc5feb23d5839b4bc6f12833a0000000000000000075f983cbf0e9cbdfa7e7a3ff4fdd43dd044d8bca69bc43a00000000000000009eefa73c7b14aebdde02793f22fdf63d4850fcbc6f12033b0000000000000000ec51b83ced0dbebd22fd763f4d840d3ee02d10bd52491d3b0000000000000000efc9c33c5f07cebdb81e753f098a1f3e9c3322bded0d3e3b0000000000000000a913d03c88f4dbbd01de723fa1f8313e7dd033bd89d25e3b0000000000000000d044d83cf90fe9bd4e62703f9487453e82e247bde02d903b0000000000000000d3bce33cb3eaf3bd849e6d3f50fc583e88f45bbd2e90a03b0000000000000000faedeb3cdbf9febd83c06a3f448b6c3e44fa6dbdca54c13b00000000000000008e06f03c6f8104be82e2673f1283803e250681bd3b70ce3b0000000000000000b537f83ccc7f08be6f81643f83c08a3e280f8bbdd734ef3b00000000000000004850fc3c16fb0bbe97ff603f7d3f953e2b1895bdb9fc073c00000000000000004850fc3c60760fbe849e5d3f77be9f3ec0ec9ebd075f183c00000000000000006e34003dbc0512beecc0593ffa7eaa3ec3f5a8bd55c1283c00000000000000006e34003dcff713bec6dc553f7d3fb53ec5feb2bd3480373c00000000000000006e34003d068115bea5bd513f8941c03ec807bdbd82e2473c00000000000000006e34003d2b8716befb5c4d3f0c02cb3ea60ac6bdf775603c00000000000000004850fc3c197317be151d493fa245d63ea913d0bdd7346f3c0000000000000000b537f83c197317be34a2443f933ae13e8716d9bd24977f3c0000000000000000211ff43c197317bec520403f9f3cec3e6519e2bdb9fc873c00000000000000008e06f03c2b8716be083d3b3fab3ef73ed5e7eabd7446943c0000000000000000faedeb3c068115be143f363f2041013ffc18f3bde3a59b3c0000000000000000d3bce33ccff713bee561313f27c2063fb515fbbd0ad7a33c000000000000000040a4df3cce8812be68222c3f2d430c3f250601bec520b03c0000000000000000d044d83c857c10bee71d273fa5bd113f810405beec51b83c0000000000000000a913d03c5f070ebe6ade213fe71d173fb9fc07be5bb1bf3c000000000000000082e2c73cf1f40abe287e1c3f287e1c3ff1f40abe82e2c73c00000000000000005bb1bf3cb9fc07bee71d173f6ade213f5f070ebea913d03c0000000000000000ec51b83c810405bea5bd113fe71d273f857c10bed044d83c0000000000000000c520b03c250601be2d430c3f68222c3fce8812be40a4df3c00000000000000000ad7a33cb515fbbd27c2063fe561313fcff713bed3bce33c0000000000000000e3a59b3cfc18f3bd2041013f143f363f068115befaedeb3c00000000000000007446943cd5e7eabdab3ef73e083d3b3f2b8716be8e06f03c0000000000000000b9fc873c6519e2bd9f3cec3ec520403f197317be211ff43c000000000000000024977f3c8716d9bd933ae13e34a2443f197317beb537f83c0000000000000000d7346f3ca913d0bda245d63e151d493f197317be4850fc3c0000000000000000f775603ca60ac6bd0c02cb3efb5c4d3f2b8716be6e34003d000000000000000082e2473cc807bdbd8941c03ea5bd513f068115be6e34003d00000000000000003480373cc5feb2bd7d3fb53ec6dc553fcff713be6e34003d000000000000000055c1283cc3f5a8bdfa7eaa3eecc0593fbc0512be6e34003d0000000000000000075f183cc0ec9ebd77be9f3e849e5d3f60760fbe4850fc3c0000000000000000b9fc073c2b1895bd7d3f953e97ff603f16fb0bbe4850fc3c0000000000000000d734ef3b280f8bbd83c08a3e6f81643fcc7f08beb537f83c00000000000000003b70ce3b250681bd1283803e82e2673f6f8104be8e06f03c0000000000000000ca54c13b44fa6dbd448b6c3e83c06a3fdbf9febdfaedeb3c00000000000000002e90a03b88f45bbd50fc583e849e6d3fb3eaf3bdd3bce33c0000000000000000e02d903b82e247bd9487453e4e62703ff90fe9bdd044d83c000000000000000089d25e3b7dd033bda1f8313e01de723f88f4dbbda913d03c0000000000000000ed0d3e3b9c3322bd098a1f3eb81e753f5f07cebdefc9c33c000000000000000052491d3be02d10bd4d840d3e22fd763fed0dbebdec51b83c00000000000000006f12033b4850fcbc22fdf63dde02793f7b14aebd9eefa73c0000000000000000a69bc43ad044d8bcf4fdd43dfa7e7a3fbf0e9cbd075f983c00000000000000006f12833a5839b4bcc5feb23da3017c3f03098abdb9fc873c00000000000000006f12033a744694bcbc05923dfb5c7d3ffaed6bbd1ea7683c00000000000000006f12033a1ea768bcf931663d5b427e3f812642bd5bb13f3c00000000000000006f12033a55c128bce7fb293da4df7e3f98dd13bde02d103c00000000000000000000000089d2debb645ddc3cb29d7f3f16fbcbbc3b70ce3b00000000000000000000000089d25ebbd044583c0000803fa91350bced0d3e3b0000000000000000 + +//!TEXTURE coef_usm +//!SIZE 2 64 +//!FORMAT rgba32f +//!FILTER NEAREST +0000000027a019bf27a0993f27a019bf00000000000000000000000000000000ed0d3e3b1ac01bbf006f993fe71d17bfed0d3ebb0000000000000000000000002e90a03bfb5c1dbff90f993fe63f14bf89d2debb6f12033a0000000000000000d734ef3b1b9e1ebf2731983fd3de10bf55c128bc000000000000000000000000075f183cb29d1fbfcb10973fff210dbffe6577bc0000000000000000000000003480373c4e6220bf48bf953fde0209bf77be9fbc6f12033a000000000000000082e2473c128320bfe63f943f34a204bf3d2cd4bc6f12033a00000000000000001ea7683cd3de20bfbe9f923fc52000bfdcd701bd6f12033a000000000000000024977f3c4e6220bfa54e903f7d3ff5be091b1ebd6f12033a0000000000000000b9fc873cb29d1fbf6ff08d3fe7fbe9be5af539bd6f12833a0000000000000000e02d903c20631ebf4f408b3fe483debe3ee859bd6f12833a00000000000000007446943cff211dbf696f883fbc05d2be6de77bbda69bc43a0000000000000000e3a59b3ccc5d1bbf1b2f853ff8c2c4be4df38ebda69bc43a000000000000000077be9f3cecc019bf910f823f22fdb6be5305a3bd6f12033b00000000000000000ad7a33cbec117bfc4427d3f423ea8be10e9b7bd52491d3b00000000000000000ad7a33cf4fd14bf7d3f753f50fc98be3b01cdbded0d3e3b00000000000000000ad7a33c05a312bf0de06d3f5eba89be6519e2bd89d25e3b00000000000000000ad7a33c3bdf0fbf8fc2653fb37b72beb515fbbd24977f3b00000000000000009eefa73cb1bf0cbfc4425d3faa8251bef08509bee02d903b00000000000000000ad7a33c637f09bf6f81543f69002fbe190416be2e90a03b000000000000000077be9f3c4f1e06bfcc5d4b3f16fb0bbe418222be7cf2b03b000000000000000077be9f3c3cbd02bf4182423fce19d1bda08930beca54c13b0000000000000000e3a59b3c5b42febe151d393f4bea84bddbf93ebe3b70ce3b0000000000000000075f983c99bbf6bef2412f3ffaedebbc287e4cbe89d2de3b0000000000000000075f983c6900efbe4260253f075f183cac8b5bbed734ef3b0000000000000000e02d903c27c2e6be0c021b3fca32443dfa7e6abeb9fc073c00000000000000004d158c3c77bedfbea5bd113f57ecaf3d6c787abee02d103c000000000000000026e4833c22fdd6beab3e073f1283003e810485be2e90203c000000000000000026e4833cf241cfbe7502fa3ed578293e3b018dbe55c1283c0000000000000000fe65773cb003c7be143fe63e97ff503ef4fd94be0e4f2f3c00000000000000001ea7683cd200bebe857cd03e6c787a3eadfa9cbe5bb13f3c0000000000000000f775603c1904b6bea301bc3ebc05923e0b46a5be82e2473c0000000000000000d044583cd6c5adbeb003a73eb003a73ed6c5adbed044583c000000000000000082e2473c0b46a5bebc05923ea301bc3e1904b6bef775603c00000000000000005bb13f3cadfa9cbe6c787a3e857cd03ed200bebe1ea7683c00000000000000000e4f2f3cf4fd94be97ff503e143fe63eb003c7befe65773c000000000000000055c1283c3b018dbed578293e7502fa3ef241cfbe26e4833c00000000000000002e90203c810485be1283003eab3e073f22fdd6be26e4833c0000000000000000e02d103c6c787abe57ecaf3da5bd113f77bedfbe4d158c3c0000000000000000b9fc073cfa7e6abeca32443d0c021b3f27c2e6bee02d903c0000000000000000d734ef3bac8b5bbe075f183c4260253f6900efbe075f983c000000000000000089d2de3b287e4cbefaedebbcf2412f3f99bbf6be075f983c00000000000000003b70ce3bdbf93ebe4bea84bd151d393f5b42febee3a59b3c0000000000000000ca54c13ba08930bece19d1bd4182423f3cbd02bf77be9f3c00000000000000007cf2b03b418222be16fb0bbecc5d4b3f4f1e06bf77be9f3c00000000000000002e90a03b190416be69002fbe6f81543f637f09bf0ad7a33c0000000000000000e02d903bf08509beaa8251bec4425d3fb1bf0cbf9eefa73c000000000000000024977f3bb515fbbdb37b72be8fc2653f3bdf0fbf0ad7a33c000000000000000089d25e3b6519e2bd5eba89be0de06d3f05a312bf0ad7a33c0000000000000000ed0d3e3b3b01cdbd50fc98be7d3f753ff4fd14bf0ad7a33c000000000000000052491d3b10e9b7bd423ea8bec4427d3fbec117bf0ad7a33c00000000000000006f12033b5305a3bd22fdb6be910f823fecc019bf77be9f3c0000000000000000a69bc43a4df38ebdf8c2c4be1b2f853fcc5d1bbfe3a59b3c0000000000000000a69bc43a6de77bbdbc05d2be696f883fff211dbf7446943c00000000000000006f12833a3ee859bde483debe4f408b3f20631ebfe02d903c00000000000000006f12833a5af539bde7fbe9be6ff08d3fb29d1fbfb9fc873c00000000000000006f12033a091b1ebd7d3ff5bea54e903f4e6220bf24977f3c00000000000000006f12033adcd701bdc52000bfbe9f923fd3de20bf1ea7683c00000000000000006f12033a3d2cd4bc34a204bfe63f943f128320bf82e2473c00000000000000006f12033a77be9fbcde0209bf48bf953f4e6220bf3480373c000000000000000000000000fe6577bcff210dbfcb10973fb29d1fbf075f183c00000000000000000000000055c128bcd3de10bf2731983f1b9e1ebfd734ef3b00000000000000006f12033a89d2debbe63f14bff90f993ffb5c1dbf2e90a03b000000000000000000000000ed0d3ebbe71d17bf006f993f1ac01bbfed0d3e3b0000000000000000 \ No newline at end of file diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index abaf3cc9..db39d45c 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -200,7 +200,8 @@ "speedDecrease": "Geschwindigkeit verringern", "speedReset": "Geschwindigkeit zurücksetzen", "subSeekNext": "Zum nächsten Untertitel springen", - "subSeekPrev": "Zum vorherigen Untertitel springen" + "subSeekPrev": "Zum vorherigen Untertitel springen", + "shaderToggle": "Shader umschalten" } }, "pinEntry": { @@ -628,5 +629,16 @@ "failedToCreate": "Sitzung konnte nicht erstellt werden", "failedToJoin": "Sitzung konnte nicht beigetreten werden", "sessionCodeCopied": "Sitzungscode in Zwischenablage kopiert" + }, + "shaders": { + "title": "Shader", + "noShaderDescription": "Keine Videoverbesserung", + "nvscalerDescription": "NVIDIA-Bildskalierung für schärferes Video", + "qualityFast": "Schnell", + "qualityHQ": "Hohe Qualität", + "mode": "Modus", + "presetChanged": "Shader-Voreinstellung geändert", + "hdrDetected": "HDR erkannt – Shader übersprungen", + "mpvOnly": "Shader sind nur mit dem MPV-Player verfügbar" } } diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index aa0cb4cb..e93c3ec2 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -199,7 +199,8 @@ "speedDecrease": "Decrease Speed", "speedReset": "Reset Speed", "subSeekNext": "Seek to Next Subtitle", - "subSeekPrev": "Seek to Previous Subtitle" + "subSeekPrev": "Seek to Previous Subtitle", + "shaderToggle": "Toggle Shaders" } }, "pinEntry": { @@ -626,5 +627,16 @@ "downloadDeleted": "Download deleted", "deleteConfirm": "Are you sure you want to delete \"${title}\"? This will remove the downloaded file from your device.", "deletingWithProgress": "Deleting ${title}... (${current} of ${total})" + }, + "shaders": { + "title": "Shaders", + "noShaderDescription": "No video enhancement", + "nvscalerDescription": "NVIDIA image scaling for sharper video", + "qualityFast": "Fast", + "qualityHQ": "High Quality", + "mode": "Mode", + "presetChanged": "Shader preset changed", + "hdrDetected": "HDR detected - shader skipped", + "mpvOnly": "Shaders are only available with MPV player" } } diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index f4cd7a7a..d1012a3d 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -199,7 +199,8 @@ "speedDecrease": "Réduire la vitesse", "speedReset": "Réinitialiser la vitesse", "subSeekNext": "Rechercher le sous-titre suivant", - "subSeekPrev": "Rechercher le sous-titre précédent" + "subSeekPrev": "Rechercher le sous-titre précédent", + "shaderToggle": "Activer/désactiver les shaders" } }, "pinEntry": { @@ -626,5 +627,16 @@ "downloadDeleted": "Télécharger supprimé", "deleteConfirm": "Êtes-vous sûr de vouloir supprimer \"${title}\" ? Cela supprimera le fichier téléchargé de votre appareil.", "deletingWithProgress": "Suppression de ${title}... (${current} sur ${total})" + }, + "shaders": { + "title": "Shaders", + "noShaderDescription": "Aucune amélioration vidéo", + "nvscalerDescription": "Mise à l'échelle NVIDIA pour une vidéo plus nette", + "qualityFast": "Rapide", + "qualityHQ": "Haute qualité", + "mode": "Mode", + "presetChanged": "Préréglage de shader modifié", + "hdrDetected": "HDR détecté - shader ignoré", + "mpvOnly": "Les shaders ne sont disponibles qu'avec le lecteur MPV" } } diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index ea98ad24..e2c58b2c 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -200,7 +200,8 @@ "speedDecrease": "Diminuisci velocità", "speedReset": "Ripristina velocità", "subSeekNext": "Vai al sottotitolo successivo", - "subSeekPrev": "Vai al sottotitolo precedente" + "subSeekPrev": "Vai al sottotitolo precedente", + "shaderToggle": "Attiva/disattiva shader" } }, "pinEntry": { @@ -628,5 +629,16 @@ "failedToCreate": "Impossibile creare la sessione", "failedToJoin": "Impossibile unirsi alla sessione", "sessionCodeCopied": "Codice sessione copiato negli appunti" + }, + "shaders": { + "title": "Shader", + "noShaderDescription": "Nessun miglioramento video", + "nvscalerDescription": "Ridimensionamento NVIDIA per video più nitido", + "qualityFast": "Veloce", + "qualityHQ": "Alta qualità", + "mode": "Modalità", + "presetChanged": "Preset shader cambiato", + "hdrDetected": "HDR rilevato - shader saltato", + "mpvOnly": "Gli shader sono disponibili solo con il lettore MPV" } } diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 047726f1..17d14295 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -200,7 +200,8 @@ "speedDecrease": "속도 낮추기", "speedReset": "속도 초기화", "subSeekNext": "다음 자막으로 이동", - "subSeekPrev": "이전 자막으로 이동" + "subSeekPrev": "이전 자막으로 이동", + "shaderToggle": "셰이더 전환" } }, "pinEntry": { @@ -628,5 +629,16 @@ "downloadDeleted": "다운로드 삭제됨", "deleteConfirm": "\"${title}\"를 삭제 하시겠습니까? 다운로드한 파일이 기기에서 삭제됩니다.", "deletingWithProgress": "${title} 삭제 중... (${current}/${total})" + }, + "shaders": { + "title": "셰이더", + "noShaderDescription": "비디오 향상 없음", + "nvscalerDescription": "더 선명한 비디오를 위한 NVIDIA 이미지 스케일링", + "qualityFast": "빠름", + "qualityHQ": "고품질", + "mode": "모드", + "presetChanged": "셰이더 프리셋 변경됨", + "hdrDetected": "HDR 감지됨 - 셰이더 건너뜀", + "mpvOnly": "셰이더는 MPV 플레이어에서만 사용 가능합니다" } } diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 906dfec0..d6effabc 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -200,7 +200,8 @@ "speedDecrease": "Snelheid verlagen", "speedReset": "Snelheid resetten", "subSeekNext": "Naar volgende ondertitel", - "subSeekPrev": "Naar vorige ondertitel" + "subSeekPrev": "Naar vorige ondertitel", + "shaderToggle": "Shaders aan/uit" } }, "pinEntry": { @@ -628,5 +629,16 @@ "failedToCreate": "Sessie maken mislukt", "failedToJoin": "Sessie deelnemen mislukt", "sessionCodeCopied": "Sessiecode gekopieerd naar klembord" + }, + "shaders": { + "title": "Shaders", + "noShaderDescription": "Geen videoverbetering", + "nvscalerDescription": "NVIDIA-beeldschaling voor scherpere video", + "qualityFast": "Snel", + "qualityHQ": "Hoge kwaliteit", + "mode": "Modus", + "presetChanged": "Shader-voorinstelling gewijzigd", + "hdrDetected": "HDR gedetecteerd - shader overgeslagen", + "mpvOnly": "Shaders zijn alleen beschikbaar met de MPV-speler" } } diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 86dadeb5..69cb285b 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 8 -/// Strings: 4460 (557 per locale) +/// Strings: 4540 (567 per locale) /// -/// Built on 2026-01-28 at 22:06 UTC +/// Built on 2026-01-29 at 06:02 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index 7fa1cebb..d92aa857 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -69,6 +69,7 @@ class TranslationsDe with BaseTranslations implements T @override late final _TranslationsPlaylistsDe playlists = _TranslationsPlaylistsDe._(_root); @override late final _TranslationsCollectionsDe collections = _TranslationsCollectionsDe._(_root); @override late final _TranslationsWatchTogetherDe watchTogether = _TranslationsWatchTogetherDe._(_root); + @override late final _TranslationsShadersDe shaders = _TranslationsShadersDe._(_root); } // Path: app @@ -889,6 +890,24 @@ class _TranslationsWatchTogetherDe implements TranslationsWatchTogetherEn { @override String get sessionCodeCopied => 'Sitzungscode in Zwischenablage kopiert'; } +// Path: shaders +class _TranslationsShadersDe implements TranslationsShadersEn { + _TranslationsShadersDe._(this._root); + + final TranslationsDe _root; // ignore: unused_field + + // Translations + @override String get title => 'Shader'; + @override String get noShaderDescription => 'Keine Videoverbesserung'; + @override String get nvscalerDescription => 'NVIDIA-Bildskalierung für schärferes Video'; + @override String get qualityFast => 'Schnell'; + @override String get qualityHQ => 'Hohe Qualität'; + @override String get mode => 'Modus'; + @override String get presetChanged => 'Shader-Voreinstellung geändert'; + @override String get hdrDetected => 'HDR erkannt – Shader übersprungen'; + @override String get mpvOnly => 'Shader sind nur mit dem MPV-Player verfügbar'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsDe implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsDe._(this._root); @@ -913,6 +932,7 @@ class _TranslationsHotkeysActionsDe implements TranslationsHotkeysActionsEn { @override String get speedReset => 'Geschwindigkeit zurücksetzen'; @override String get subSeekNext => 'Zum nächsten Untertitel springen'; @override String get subSeekPrev => 'Zum vorherigen Untertitel springen'; + @override String get shaderToggle => 'Shader umschalten'; } // Path: videoControls.pipErrors @@ -1151,6 +1171,7 @@ extension on TranslationsDe { 'hotkeys.actions.speedReset' => 'Geschwindigkeit zurücksetzen', 'hotkeys.actions.subSeekNext' => 'Zum nächsten Untertitel springen', 'hotkeys.actions.subSeekPrev' => 'Zum vorherigen Untertitel springen', + 'hotkeys.actions.shaderToggle' => 'Shader umschalten', 'pinEntry.enterPin' => 'PIN eingeben', 'pinEntry.showPin' => 'PIN anzeigen', 'pinEntry.hidePin' => 'PIN verbergen', @@ -1476,9 +1497,9 @@ extension on TranslationsDe { 'collections.errorAddingToCollection' => 'Fehler beim Hinzufügen zur Sammlung', 'collections.created' => 'Sammlung erstellt', 'collections.removeFromCollection' => 'Aus Sammlung entfernen', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => '"${title}" aus dieser Sammlung entfernen?', _ => null, } ?? switch (path) { + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '"${title}" aus dieser Sammlung entfernen?', 'collections.removedFromCollection' => 'Aus Sammlung entfernt', 'collections.removeFromCollectionFailed' => 'Entfernen aus Sammlung fehlgeschlagen', 'collections.removeFromCollectionError' => ({required Object error}) => 'Fehler beim Entfernen aus der Sammlung: ${error}', @@ -1525,6 +1546,15 @@ extension on TranslationsDe { 'watchTogether.failedToCreate' => 'Sitzung konnte nicht erstellt werden', 'watchTogether.failedToJoin' => 'Sitzung konnte nicht beigetreten werden', 'watchTogether.sessionCodeCopied' => 'Sitzungscode in Zwischenablage kopiert', + 'shaders.title' => 'Shader', + 'shaders.noShaderDescription' => 'Keine Videoverbesserung', + 'shaders.nvscalerDescription' => 'NVIDIA-Bildskalierung für schärferes Video', + 'shaders.qualityFast' => 'Schnell', + 'shaders.qualityHQ' => 'Hohe Qualität', + 'shaders.mode' => 'Modus', + 'shaders.presetChanged' => 'Shader-Voreinstellung geändert', + 'shaders.hdrDetected' => 'HDR erkannt – Shader übersprungen', + 'shaders.mpvOnly' => 'Shader sind nur mit dem MPV-Player verfügbar', _ => null, }; } diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 5c93f041..e3af9f11 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -72,6 +72,7 @@ class Translations with BaseTranslations { late final TranslationsPlaylistsEn playlists = TranslationsPlaylistsEn._(_root); late final TranslationsWatchTogetherEn watchTogether = TranslationsWatchTogetherEn._(_root); late final TranslationsDownloadsEn downloads = TranslationsDownloadsEn._(_root); + late final TranslationsShadersEn shaders = TranslationsShadersEn._(_root); } // Path: app @@ -1941,6 +1942,42 @@ class TranslationsDownloadsEn { String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Deleting ${title}... (${current} of ${total})'; } +// Path: shaders +class TranslationsShadersEn { + TranslationsShadersEn._(this._root); + + final Translations _root; // ignore: unused_field + + // Translations + + /// en: 'Shaders' + String get title => 'Shaders'; + + /// en: 'No video enhancement' + String get noShaderDescription => 'No video enhancement'; + + /// en: 'NVIDIA image scaling for sharper video' + String get nvscalerDescription => 'NVIDIA image scaling for sharper video'; + + /// en: 'Fast' + String get qualityFast => 'Fast'; + + /// en: 'High Quality' + String get qualityHQ => 'High Quality'; + + /// en: 'Mode' + String get mode => 'Mode'; + + /// en: 'Shader preset changed' + String get presetChanged => 'Shader preset changed'; + + /// en: 'HDR detected - shader skipped' + String get hdrDetected => 'HDR detected - shader skipped'; + + /// en: 'Shaders are only available with MPV player' + String get mpvOnly => 'Shaders are only available with MPV player'; +} + // Path: hotkeys.actions class TranslationsHotkeysActionsEn { TranslationsHotkeysActionsEn._(this._root); @@ -1999,6 +2036,9 @@ class TranslationsHotkeysActionsEn { /// en: 'Seek to Previous Subtitle' String get subSeekPrev => 'Seek to Previous Subtitle'; + + /// en: 'Toggle Shaders' + String get shaderToggle => 'Toggle Shaders'; } // Path: videoControls.pipErrors @@ -2266,6 +2306,7 @@ extension on Translations { 'hotkeys.actions.speedReset' => 'Reset Speed', 'hotkeys.actions.subSeekNext' => 'Seek to Next Subtitle', 'hotkeys.actions.subSeekPrev' => 'Seek to Previous Subtitle', + 'hotkeys.actions.shaderToggle' => 'Toggle Shaders', 'pinEntry.enterPin' => 'Enter PIN', 'pinEntry.showPin' => 'Show PIN', 'pinEntry.hidePin' => 'Hide PIN', @@ -2592,9 +2633,9 @@ extension on Translations { 'watchTogether.anyone' => 'Anyone', 'watchTogether.hostingSession' => 'Hosting Session', 'watchTogether.inSession' => 'In Session', - 'watchTogether.sessionCode' => 'Session Code', _ => null, } ?? switch (path) { + 'watchTogether.sessionCode' => 'Session Code', 'watchTogether.hostControlsPlayback' => 'Host controls playback', 'watchTogether.anyoneCanControl' => 'Anyone can control playback', 'watchTogether.hostControls' => 'Host controls', @@ -2639,6 +2680,15 @@ extension on Translations { 'downloads.downloadDeleted' => 'Download deleted', 'downloads.deleteConfirm' => ({required Object title}) => 'Are you sure you want to delete "${title}"? This will remove the downloaded file from your device.', 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Deleting ${title}... (${current} of ${total})', + 'shaders.title' => 'Shaders', + 'shaders.noShaderDescription' => 'No video enhancement', + 'shaders.nvscalerDescription' => 'NVIDIA image scaling for sharper video', + 'shaders.qualityFast' => 'Fast', + 'shaders.qualityHQ' => 'High Quality', + 'shaders.mode' => 'Mode', + 'shaders.presetChanged' => 'Shader preset changed', + 'shaders.hdrDetected' => 'HDR detected - shader skipped', + 'shaders.mpvOnly' => 'Shaders are only available with MPV player', _ => null, }; } diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index aaa1efb7..b9657ff5 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -69,6 +69,7 @@ class TranslationsFr with BaseTranslations implements T @override late final _TranslationsPlaylistsFr playlists = _TranslationsPlaylistsFr._(_root); @override late final _TranslationsWatchTogetherFr watchTogether = _TranslationsWatchTogetherFr._(_root); @override late final _TranslationsDownloadsFr downloads = _TranslationsDownloadsFr._(_root); + @override late final _TranslationsShadersFr shaders = _TranslationsShadersFr._(_root); } // Path: app @@ -887,6 +888,24 @@ class _TranslationsDownloadsFr implements TranslationsDownloadsEn { @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Suppression de ${title}... (${current} sur ${total})'; } +// Path: shaders +class _TranslationsShadersFr implements TranslationsShadersEn { + _TranslationsShadersFr._(this._root); + + final TranslationsFr _root; // ignore: unused_field + + // Translations + @override String get title => 'Shaders'; + @override String get noShaderDescription => 'Aucune amélioration vidéo'; + @override String get nvscalerDescription => 'Mise à l\'échelle NVIDIA pour une vidéo plus nette'; + @override String get qualityFast => 'Rapide'; + @override String get qualityHQ => 'Haute qualité'; + @override String get mode => 'Mode'; + @override String get presetChanged => 'Préréglage de shader modifié'; + @override String get hdrDetected => 'HDR détecté - shader ignoré'; + @override String get mpvOnly => 'Les shaders ne sont disponibles qu\'avec le lecteur MPV'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsFr implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsFr._(this._root); @@ -911,6 +930,7 @@ class _TranslationsHotkeysActionsFr implements TranslationsHotkeysActionsEn { @override String get speedReset => 'Réinitialiser la vitesse'; @override String get subSeekNext => 'Rechercher le sous-titre suivant'; @override String get subSeekPrev => 'Rechercher le sous-titre précédent'; + @override String get shaderToggle => 'Activer/désactiver les shaders'; } // Path: videoControls.pipErrors @@ -1148,6 +1168,7 @@ extension on TranslationsFr { 'hotkeys.actions.speedReset' => 'Réinitialiser la vitesse', 'hotkeys.actions.subSeekNext' => 'Rechercher le sous-titre suivant', 'hotkeys.actions.subSeekPrev' => 'Rechercher le sous-titre précédent', + 'hotkeys.actions.shaderToggle' => 'Activer/désactiver les shaders', 'pinEntry.enterPin' => 'Entrer le code PIN', 'pinEntry.showPin' => 'Afficher le code PIN', 'pinEntry.hidePin' => 'Masquer le code PIN', @@ -1474,9 +1495,9 @@ extension on TranslationsFr { 'watchTogether.anyone' => 'N\'importe qui', 'watchTogether.hostingSession' => 'Session d\'hébergement', 'watchTogether.inSession' => 'En session', - 'watchTogether.sessionCode' => 'Code de session', _ => null, } ?? switch (path) { + 'watchTogether.sessionCode' => 'Code de session', 'watchTogether.hostControlsPlayback' => 'L\'hôte contrôle la lecture', 'watchTogether.anyoneCanControl' => 'Tout le monde peut contrôler la lecture', 'watchTogether.hostControls' => 'Commandes de l\'hôte', @@ -1521,6 +1542,15 @@ extension on TranslationsFr { 'downloads.downloadDeleted' => 'Télécharger supprimé', 'downloads.deleteConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir supprimer "${title}" ? Cela supprimera le fichier téléchargé de votre appareil.', 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Suppression de ${title}... (${current} sur ${total})', + 'shaders.title' => 'Shaders', + 'shaders.noShaderDescription' => 'Aucune amélioration vidéo', + 'shaders.nvscalerDescription' => 'Mise à l\'échelle NVIDIA pour une vidéo plus nette', + 'shaders.qualityFast' => 'Rapide', + 'shaders.qualityHQ' => 'Haute qualité', + 'shaders.mode' => 'Mode', + 'shaders.presetChanged' => 'Préréglage de shader modifié', + 'shaders.hdrDetected' => 'HDR détecté - shader ignoré', + 'shaders.mpvOnly' => 'Les shaders ne sont disponibles qu\'avec le lecteur MPV', _ => null, }; } diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index d77fa292..56b569c2 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -69,6 +69,7 @@ class TranslationsIt with BaseTranslations implements T @override late final _TranslationsPlaylistsIt playlists = _TranslationsPlaylistsIt._(_root); @override late final _TranslationsCollectionsIt collections = _TranslationsCollectionsIt._(_root); @override late final _TranslationsWatchTogetherIt watchTogether = _TranslationsWatchTogetherIt._(_root); + @override late final _TranslationsShadersIt shaders = _TranslationsShadersIt._(_root); } // Path: app @@ -889,6 +890,24 @@ class _TranslationsWatchTogetherIt implements TranslationsWatchTogetherEn { @override String get sessionCodeCopied => 'Codice sessione copiato negli appunti'; } +// Path: shaders +class _TranslationsShadersIt implements TranslationsShadersEn { + _TranslationsShadersIt._(this._root); + + final TranslationsIt _root; // ignore: unused_field + + // Translations + @override String get title => 'Shader'; + @override String get noShaderDescription => 'Nessun miglioramento video'; + @override String get nvscalerDescription => 'Ridimensionamento NVIDIA per video più nitido'; + @override String get qualityFast => 'Veloce'; + @override String get qualityHQ => 'Alta qualità'; + @override String get mode => 'Modalità'; + @override String get presetChanged => 'Preset shader cambiato'; + @override String get hdrDetected => 'HDR rilevato - shader saltato'; + @override String get mpvOnly => 'Gli shader sono disponibili solo con il lettore MPV'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsIt implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsIt._(this._root); @@ -913,6 +932,7 @@ class _TranslationsHotkeysActionsIt implements TranslationsHotkeysActionsEn { @override String get speedReset => 'Ripristina velocità'; @override String get subSeekNext => 'Vai al sottotitolo successivo'; @override String get subSeekPrev => 'Vai al sottotitolo precedente'; + @override String get shaderToggle => 'Attiva/disattiva shader'; } // Path: videoControls.pipErrors @@ -1151,6 +1171,7 @@ extension on TranslationsIt { 'hotkeys.actions.speedReset' => 'Ripristina velocità', 'hotkeys.actions.subSeekNext' => 'Vai al sottotitolo successivo', 'hotkeys.actions.subSeekPrev' => 'Vai al sottotitolo precedente', + 'hotkeys.actions.shaderToggle' => 'Attiva/disattiva shader', 'pinEntry.enterPin' => 'Inserisci PIN', 'pinEntry.showPin' => 'Mostra PIN', 'pinEntry.hidePin' => 'Nascondi PIN', @@ -1476,9 +1497,9 @@ extension on TranslationsIt { 'collections.errorAddingToCollection' => 'Errore nell\'aggiunta alla raccolta', 'collections.created' => 'Raccolta creata', 'collections.removeFromCollection' => 'Rimuovi dalla raccolta', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Rimuovere "${title}" da questa raccolta?', _ => null, } ?? switch (path) { + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Rimuovere "${title}" da questa raccolta?', 'collections.removedFromCollection' => 'Rimosso dalla raccolta', 'collections.removeFromCollectionFailed' => 'Impossibile rimuovere dalla raccolta', 'collections.removeFromCollectionError' => ({required Object error}) => 'Errore durante la rimozione dalla raccolta: ${error}', @@ -1525,6 +1546,15 @@ extension on TranslationsIt { 'watchTogether.failedToCreate' => 'Impossibile creare la sessione', 'watchTogether.failedToJoin' => 'Impossibile unirsi alla sessione', 'watchTogether.sessionCodeCopied' => 'Codice sessione copiato negli appunti', + 'shaders.title' => 'Shader', + 'shaders.noShaderDescription' => 'Nessun miglioramento video', + 'shaders.nvscalerDescription' => 'Ridimensionamento NVIDIA per video più nitido', + 'shaders.qualityFast' => 'Veloce', + 'shaders.qualityHQ' => 'Alta qualità', + 'shaders.mode' => 'Modalità', + 'shaders.presetChanged' => 'Preset shader cambiato', + 'shaders.hdrDetected' => 'HDR rilevato - shader saltato', + 'shaders.mpvOnly' => 'Gli shader sono disponibili solo con il lettore MPV', _ => null, }; } diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index ea576e3e..5374d8d0 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -69,6 +69,7 @@ class TranslationsKo with BaseTranslations implements T @override late final _TranslationsPlaylistsKo playlists = _TranslationsPlaylistsKo._(_root); @override late final _TranslationsWatchTogetherKo watchTogether = _TranslationsWatchTogetherKo._(_root); @override late final _TranslationsDownloadsKo downloads = _TranslationsDownloadsKo._(_root); + @override late final _TranslationsShadersKo shaders = _TranslationsShadersKo._(_root); } // Path: app @@ -889,6 +890,24 @@ class _TranslationsDownloadsKo implements TranslationsDownloadsEn { @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title} 삭제 중... (${current}/${total})'; } +// Path: shaders +class _TranslationsShadersKo implements TranslationsShadersEn { + _TranslationsShadersKo._(this._root); + + final TranslationsKo _root; // ignore: unused_field + + // Translations + @override String get title => '셰이더'; + @override String get noShaderDescription => '비디오 향상 없음'; + @override String get nvscalerDescription => '더 선명한 비디오를 위한 NVIDIA 이미지 스케일링'; + @override String get qualityFast => '빠름'; + @override String get qualityHQ => '고품질'; + @override String get mode => '모드'; + @override String get presetChanged => '셰이더 프리셋 변경됨'; + @override String get hdrDetected => 'HDR 감지됨 - 셰이더 건너뜀'; + @override String get mpvOnly => '셰이더는 MPV 플레이어에서만 사용 가능합니다'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsKo implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsKo._(this._root); @@ -913,6 +932,7 @@ class _TranslationsHotkeysActionsKo implements TranslationsHotkeysActionsEn { @override String get speedReset => '속도 초기화'; @override String get subSeekNext => '다음 자막으로 이동'; @override String get subSeekPrev => '이전 자막으로 이동'; + @override String get shaderToggle => '셰이더 전환'; } // Path: videoControls.pipErrors @@ -1151,6 +1171,7 @@ extension on TranslationsKo { 'hotkeys.actions.speedReset' => '속도 초기화', 'hotkeys.actions.subSeekNext' => '다음 자막으로 이동', 'hotkeys.actions.subSeekPrev' => '이전 자막으로 이동', + 'hotkeys.actions.shaderToggle' => '셰이더 전환', 'pinEntry.enterPin' => 'PIN 입력', 'pinEntry.showPin' => 'PIN 표시', 'pinEntry.hidePin' => 'PIN 숨기기', @@ -1476,9 +1497,9 @@ extension on TranslationsKo { 'watchTogether.controlModeQuestion' => '누가 재생을 제어할 수 있나요?', 'watchTogether.hostOnly' => '호스트만', 'watchTogether.anyone' => '누구나', - 'watchTogether.hostingSession' => '세션 호스팅', _ => null, } ?? switch (path) { + 'watchTogether.hostingSession' => '세션 호스팅', 'watchTogether.inSession' => '세션 중', 'watchTogether.sessionCode' => '세션 코드', 'watchTogether.hostControlsPlayback' => '호스트 재생 제어', @@ -1525,6 +1546,15 @@ extension on TranslationsKo { 'downloads.downloadDeleted' => '다운로드 삭제됨', 'downloads.deleteConfirm' => ({required Object title}) => '"${title}"를 삭제 하시겠습니까? 다운로드한 파일이 기기에서 삭제됩니다.', 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title} 삭제 중... (${current}/${total})', + 'shaders.title' => '셰이더', + 'shaders.noShaderDescription' => '비디오 향상 없음', + 'shaders.nvscalerDescription' => '더 선명한 비디오를 위한 NVIDIA 이미지 스케일링', + 'shaders.qualityFast' => '빠름', + 'shaders.qualityHQ' => '고품질', + 'shaders.mode' => '모드', + 'shaders.presetChanged' => '셰이더 프리셋 변경됨', + 'shaders.hdrDetected' => 'HDR 감지됨 - 셰이더 건너뜀', + 'shaders.mpvOnly' => '셰이더는 MPV 플레이어에서만 사용 가능합니다', _ => null, }; } diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index bff558aa..c5dd9d8e 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -69,6 +69,7 @@ class TranslationsNl with BaseTranslations implements T @override late final _TranslationsPlaylistsNl playlists = _TranslationsPlaylistsNl._(_root); @override late final _TranslationsCollectionsNl collections = _TranslationsCollectionsNl._(_root); @override late final _TranslationsWatchTogetherNl watchTogether = _TranslationsWatchTogetherNl._(_root); + @override late final _TranslationsShadersNl shaders = _TranslationsShadersNl._(_root); } // Path: app @@ -889,6 +890,24 @@ class _TranslationsWatchTogetherNl implements TranslationsWatchTogetherEn { @override String get sessionCodeCopied => 'Sessiecode gekopieerd naar klembord'; } +// Path: shaders +class _TranslationsShadersNl implements TranslationsShadersEn { + _TranslationsShadersNl._(this._root); + + final TranslationsNl _root; // ignore: unused_field + + // Translations + @override String get title => 'Shaders'; + @override String get noShaderDescription => 'Geen videoverbetering'; + @override String get nvscalerDescription => 'NVIDIA-beeldschaling voor scherpere video'; + @override String get qualityFast => 'Snel'; + @override String get qualityHQ => 'Hoge kwaliteit'; + @override String get mode => 'Modus'; + @override String get presetChanged => 'Shader-voorinstelling gewijzigd'; + @override String get hdrDetected => 'HDR gedetecteerd - shader overgeslagen'; + @override String get mpvOnly => 'Shaders zijn alleen beschikbaar met de MPV-speler'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsNl implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsNl._(this._root); @@ -913,6 +932,7 @@ class _TranslationsHotkeysActionsNl implements TranslationsHotkeysActionsEn { @override String get speedReset => 'Snelheid resetten'; @override String get subSeekNext => 'Naar volgende ondertitel'; @override String get subSeekPrev => 'Naar vorige ondertitel'; + @override String get shaderToggle => 'Shaders aan/uit'; } // Path: videoControls.pipErrors @@ -1151,6 +1171,7 @@ extension on TranslationsNl { 'hotkeys.actions.speedReset' => 'Snelheid resetten', 'hotkeys.actions.subSeekNext' => 'Naar volgende ondertitel', 'hotkeys.actions.subSeekPrev' => 'Naar vorige ondertitel', + 'hotkeys.actions.shaderToggle' => 'Shaders aan/uit', 'pinEntry.enterPin' => 'Voer PIN in', 'pinEntry.showPin' => 'Toon PIN', 'pinEntry.hidePin' => 'Verberg PIN', @@ -1476,9 +1497,9 @@ extension on TranslationsNl { 'collections.errorAddingToCollection' => 'Fout bij toevoegen aan collectie', 'collections.created' => 'Collectie gemaakt', 'collections.removeFromCollection' => 'Verwijderen uit collectie', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => '"${title}" uit deze collectie verwijderen?', _ => null, } ?? switch (path) { + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '"${title}" uit deze collectie verwijderen?', 'collections.removedFromCollection' => 'Uit collectie verwijderd', 'collections.removeFromCollectionFailed' => 'Verwijderen uit collectie mislukt', 'collections.removeFromCollectionError' => ({required Object error}) => 'Fout bij verwijderen uit collectie: ${error}', @@ -1525,6 +1546,15 @@ extension on TranslationsNl { 'watchTogether.failedToCreate' => 'Sessie maken mislukt', 'watchTogether.failedToJoin' => 'Sessie deelnemen mislukt', 'watchTogether.sessionCodeCopied' => 'Sessiecode gekopieerd naar klembord', + 'shaders.title' => 'Shaders', + 'shaders.noShaderDescription' => 'Geen videoverbetering', + 'shaders.nvscalerDescription' => 'NVIDIA-beeldschaling voor scherpere video', + 'shaders.qualityFast' => 'Snel', + 'shaders.qualityHQ' => 'Hoge kwaliteit', + 'shaders.mode' => 'Modus', + 'shaders.presetChanged' => 'Shader-voorinstelling gewijzigd', + 'shaders.hdrDetected' => 'HDR gedetecteerd - shader overgeslagen', + 'shaders.mpvOnly' => 'Shaders zijn alleen beschikbaar met de MPV-speler', _ => null, }; } diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 0223c3bf..18a999f9 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -69,6 +69,7 @@ class TranslationsSv with BaseTranslations implements T @override late final _TranslationsPlaylistsSv playlists = _TranslationsPlaylistsSv._(_root); @override late final _TranslationsCollectionsSv collections = _TranslationsCollectionsSv._(_root); @override late final _TranslationsWatchTogetherSv watchTogether = _TranslationsWatchTogetherSv._(_root); + @override late final _TranslationsShadersSv shaders = _TranslationsShadersSv._(_root); } // Path: app @@ -889,6 +890,24 @@ class _TranslationsWatchTogetherSv implements TranslationsWatchTogetherEn { @override String get sessionCodeCopied => 'Sessionskod kopierad till urklipp'; } +// Path: shaders +class _TranslationsShadersSv implements TranslationsShadersEn { + _TranslationsShadersSv._(this._root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override String get title => 'Shaders'; + @override String get noShaderDescription => 'Ingen videoförbättring'; + @override String get nvscalerDescription => 'NVIDIA-bildskalning för skarpare video'; + @override String get qualityFast => 'Snabb'; + @override String get qualityHQ => 'Hög kvalitet'; + @override String get mode => 'Läge'; + @override String get presetChanged => 'Shader-förinställning ändrad'; + @override String get hdrDetected => 'HDR upptäckt - shader hoppades över'; + @override String get mpvOnly => 'Shaders är bara tillgängliga med MPV-spelaren'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsSv implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsSv._(this._root); @@ -913,6 +932,7 @@ class _TranslationsHotkeysActionsSv implements TranslationsHotkeysActionsEn { @override String get speedReset => 'Återställ hastighet'; @override String get subSeekNext => 'Hoppa till nästa undertext'; @override String get subSeekPrev => 'Hoppa till föregående undertext'; + @override String get shaderToggle => 'Växla shaders'; } // Path: videoControls.pipErrors @@ -1151,6 +1171,7 @@ extension on TranslationsSv { 'hotkeys.actions.speedReset' => 'Återställ hastighet', 'hotkeys.actions.subSeekNext' => 'Hoppa till nästa undertext', 'hotkeys.actions.subSeekPrev' => 'Hoppa till föregående undertext', + 'hotkeys.actions.shaderToggle' => 'Växla shaders', 'pinEntry.enterPin' => 'Ange PIN', 'pinEntry.showPin' => 'Visa PIN', 'pinEntry.hidePin' => 'Dölj PIN', @@ -1476,9 +1497,9 @@ extension on TranslationsSv { 'collections.errorAddingToCollection' => 'Fel vid tillägg i samling', 'collections.created' => 'Samling skapad', 'collections.removeFromCollection' => 'Ta bort från samling', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Ta bort "${title}" från denna samling?', _ => null, } ?? switch (path) { + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Ta bort "${title}" från denna samling?', 'collections.removedFromCollection' => 'Borttagen från samling', 'collections.removeFromCollectionFailed' => 'Misslyckades med att ta bort från samling', 'collections.removeFromCollectionError' => ({required Object error}) => 'Fel vid borttagning från samling: ${error}', @@ -1525,6 +1546,15 @@ extension on TranslationsSv { 'watchTogether.failedToCreate' => 'Det gick inte att skapa session', 'watchTogether.failedToJoin' => 'Det gick inte att gå med i session', 'watchTogether.sessionCodeCopied' => 'Sessionskod kopierad till urklipp', + 'shaders.title' => 'Shaders', + 'shaders.noShaderDescription' => 'Ingen videoförbättring', + 'shaders.nvscalerDescription' => 'NVIDIA-bildskalning för skarpare video', + 'shaders.qualityFast' => 'Snabb', + 'shaders.qualityHQ' => 'Hög kvalitet', + 'shaders.mode' => 'Läge', + 'shaders.presetChanged' => 'Shader-förinställning ändrad', + 'shaders.hdrDetected' => 'HDR upptäckt - shader hoppades över', + 'shaders.mpvOnly' => 'Shaders är bara tillgängliga med MPV-spelaren', _ => null, }; } diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index 5344794f..0b6c2e47 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -69,6 +69,7 @@ class TranslationsZh with BaseTranslations implements T @override late final _TranslationsPlaylistsZh playlists = _TranslationsPlaylistsZh._(_root); @override late final _TranslationsCollectionsZh collections = _TranslationsCollectionsZh._(_root); @override late final _TranslationsWatchTogetherZh watchTogether = _TranslationsWatchTogetherZh._(_root); + @override late final _TranslationsShadersZh shaders = _TranslationsShadersZh._(_root); } // Path: app @@ -889,6 +890,24 @@ class _TranslationsWatchTogetherZh implements TranslationsWatchTogetherEn { @override String get sessionCodeCopied => '会话代码已复制到剪贴板'; } +// Path: shaders +class _TranslationsShadersZh implements TranslationsShadersEn { + _TranslationsShadersZh._(this._root); + + final TranslationsZh _root; // ignore: unused_field + + // Translations + @override String get title => '着色器'; + @override String get noShaderDescription => '无视频增强'; + @override String get nvscalerDescription => 'NVIDIA 图像缩放,使视频更清晰'; + @override String get qualityFast => '快速'; + @override String get qualityHQ => '高质量'; + @override String get mode => '模式'; + @override String get presetChanged => '着色器预设已更改'; + @override String get hdrDetected => '检测到 HDR - 已跳过着色器'; + @override String get mpvOnly => '着色器仅在使用 MPV 播放器时可用'; +} + // Path: hotkeys.actions class _TranslationsHotkeysActionsZh implements TranslationsHotkeysActionsEn { _TranslationsHotkeysActionsZh._(this._root); @@ -913,6 +932,7 @@ class _TranslationsHotkeysActionsZh implements TranslationsHotkeysActionsEn { @override String get speedReset => '重置速度'; @override String get subSeekNext => '跳转到下一字幕'; @override String get subSeekPrev => '跳转到上一字幕'; + @override String get shaderToggle => '切换着色器'; } // Path: videoControls.pipErrors @@ -1151,6 +1171,7 @@ extension on TranslationsZh { 'hotkeys.actions.speedReset' => '重置速度', 'hotkeys.actions.subSeekNext' => '跳转到下一字幕', 'hotkeys.actions.subSeekPrev' => '跳转到上一字幕', + 'hotkeys.actions.shaderToggle' => '切换着色器', 'pinEntry.enterPin' => '输入 PIN', 'pinEntry.showPin' => '显示 PIN', 'pinEntry.hidePin' => '隐藏 PIN', @@ -1476,9 +1497,9 @@ extension on TranslationsZh { 'collections.errorAddingToCollection' => '添加到合集失败', 'collections.created' => '已创建合集', 'collections.removeFromCollection' => '从合集移除', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => '将“${title}”从此合集移除?', _ => null, } ?? switch (path) { + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '将“${title}”从此合集移除?', 'collections.removedFromCollection' => '已从合集移除', 'collections.removeFromCollectionFailed' => '从合集移除失败', 'collections.removeFromCollectionError' => ({required Object error}) => '从合集移除时出错:${error}', @@ -1525,6 +1546,15 @@ extension on TranslationsZh { 'watchTogether.failedToCreate' => '创建会话失败', 'watchTogether.failedToJoin' => '加入会话失败', 'watchTogether.sessionCodeCopied' => '会话代码已复制到剪贴板', + 'shaders.title' => '着色器', + 'shaders.noShaderDescription' => '无视频增强', + 'shaders.nvscalerDescription' => 'NVIDIA 图像缩放,使视频更清晰', + 'shaders.qualityFast' => '快速', + 'shaders.qualityHQ' => '高质量', + 'shaders.mode' => '模式', + 'shaders.presetChanged' => '着色器预设已更改', + 'shaders.hdrDetected' => '检测到 HDR - 已跳过着色器', + 'shaders.mpvOnly' => '着色器仅在使用 MPV 播放器时可用', _ => null, }; } diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 4decee81..1eca6aa9 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -200,7 +200,8 @@ "speedDecrease": "Minska hastighet", "speedReset": "Återställ hastighet", "subSeekNext": "Hoppa till nästa undertext", - "subSeekPrev": "Hoppa till föregående undertext" + "subSeekPrev": "Hoppa till föregående undertext", + "shaderToggle": "Växla shaders" } }, "pinEntry": { @@ -628,5 +629,16 @@ "failedToCreate": "Det gick inte att skapa session", "failedToJoin": "Det gick inte att gå med i session", "sessionCodeCopied": "Sessionskod kopierad till urklipp" + }, + "shaders": { + "title": "Shaders", + "noShaderDescription": "Ingen videoförbättring", + "nvscalerDescription": "NVIDIA-bildskalning för skarpare video", + "qualityFast": "Snabb", + "qualityHQ": "Hög kvalitet", + "mode": "Läge", + "presetChanged": "Shader-förinställning ändrad", + "hdrDetected": "HDR upptäckt - shader hoppades över", + "mpvOnly": "Shaders är bara tillgängliga med MPV-spelaren" } } diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index 13c376ab..9f2ff71a 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -200,7 +200,8 @@ "speedDecrease": "减速", "speedReset": "重置速度", "subSeekNext": "跳转到下一字幕", - "subSeekPrev": "跳转到上一字幕" + "subSeekPrev": "跳转到上一字幕", + "shaderToggle": "切换着色器" } }, "pinEntry": { @@ -628,5 +629,16 @@ "failedToCreate": "创建会话失败", "failedToJoin": "加入会话失败", "sessionCodeCopied": "会话代码已复制到剪贴板" + }, + "shaders": { + "title": "着色器", + "noShaderDescription": "无视频增强", + "nvscalerDescription": "NVIDIA 图像缩放,使视频更清晰", + "qualityFast": "快速", + "qualityHQ": "高质量", + "mode": "模式", + "presetChanged": "着色器预设已更改", + "hdrDetected": "检测到 HDR - 已跳过着色器", + "mpvOnly": "着色器仅在使用 MPV 播放器时可用" } } diff --git a/lib/main.dart b/lib/main.dart index 6787aa2e..37568103 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/gestures.dart'; import 'dart:io' show Platform; @@ -23,6 +24,7 @@ import 'providers/playback_state_provider.dart'; import 'providers/download_provider.dart'; import 'providers/offline_mode_provider.dart'; import 'providers/offline_watch_provider.dart'; +import 'providers/shader_provider.dart'; import 'watch_together/watch_together.dart'; import 'services/multi_server_manager.dart'; import 'services/offline_watch_sync_service.dart'; @@ -121,9 +123,65 @@ void main() async { // DTD service is available for MCP tooling connection if needed + // Register bundled shader licenses + _registerShaderLicenses(); + runApp(const MainApp()); } +void _registerShaderLicenses() { + LicenseRegistry.addLicense(() async* { + yield LicenseEntryWithLineBreaks( + ['Anime4K'], + 'MIT License\n' + '\n' + 'Copyright (c) 2019-2021 bloc97\n' + 'All rights reserved.\n' + '\n' + 'Permission is hereby granted, free of charge, to any person obtaining a copy ' + 'of this software and associated documentation files (the "Software"), to deal ' + 'in the Software without restriction, including without limitation the rights ' + 'to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ' + 'copies of the Software, and to permit persons to whom the Software is ' + 'furnished to do so, subject to the following conditions:\n' + '\n' + 'The above copyright notice and this permission notice shall be included in all ' + 'copies or substantial portions of the Software.\n' + '\n' + 'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ' + 'IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ' + 'FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ' + 'AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ' + 'LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ' + 'OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ' + 'SOFTWARE.', + ); + yield LicenseEntryWithLineBreaks( + ['NVIDIA Image Scaling (NVScaler)'], + 'The MIT License (MIT)\n' + '\n' + 'Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n' + '\n' + 'Permission is hereby granted, free of charge, to any person obtaining a copy of ' + 'this software and associated documentation files (the "Software"), to deal in ' + 'the Software without restriction, including without limitation the rights to ' + 'use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of ' + 'the Software, and to permit persons to whom the Software is furnished to do so, ' + 'subject to the following conditions:\n' + '\n' + 'The above copyright notice and this permission notice shall be included in all ' + 'copies or substantial portions of the Software.\n' + '\n' + 'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ' + 'IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS ' + 'FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR ' + 'COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER ' + 'IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ' + 'CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.', + ); + }); +} + // Global RouteObserver for tracking navigation final RouteObserver routeObserver = RouteObserver(); @@ -246,6 +304,7 @@ class _MainAppState extends State with WidgetsBindingObserver { ChangeNotifierProvider(create: (context) => LibrariesProvider()), ChangeNotifierProvider(create: (context) => PlaybackStateProvider()), ChangeNotifierProvider(create: (context) => WatchTogetherProvider()), + ChangeNotifierProvider(create: (context) => ShaderProvider()), ], child: Consumer( builder: (context, themeProvider, child) { diff --git a/lib/models/shader_preset.dart b/lib/models/shader_preset.dart new file mode 100644 index 00000000..07788ae7 --- /dev/null +++ b/lib/models/shader_preset.dart @@ -0,0 +1,244 @@ +/// Shader preset types available in the app +enum ShaderPresetType { + none, + nvscaler, + anime4k, +} + +/// Quality tiers for Anime4K presets +enum Anime4KQuality { + /// Fast quality using Mode L shaders + fast, + + /// High quality using Mode VL/UL shaders + hq, +} + +/// Anime4K modes that define shader combinations +enum Anime4KMode { + /// Mode A: Clamp + Restore + modeA, + + /// Mode B: Clamp + Restore + Upscale + Downscale + modeB, + + /// Mode C: Clamp + Upscale + Downscale + modeC, + + /// Mode A+A: Clamp + Restore + Restore + modeAA, + + /// Mode B+B: Clamp + Restore + Restore + Upscale + Downscale + modeBB, + + /// Mode C+A: Clamp + Upscale + Restore + Downscale + modeCA, +} + +/// Configuration for Anime4K preset +class Anime4KConfig { + final Anime4KQuality quality; + final Anime4KMode mode; + + const Anime4KConfig({ + required this.quality, + required this.mode, + }); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + return other is Anime4KConfig && other.quality == quality && other.mode == mode; + } + + @override + int get hashCode => quality.hashCode ^ mode.hashCode; + + Map toJson() => { + 'quality': quality.name, + 'mode': mode.name, + }; + + factory Anime4KConfig.fromJson(Map json) { + return Anime4KConfig( + quality: Anime4KQuality.values.firstWhere( + (e) => e.name == json['quality'], + orElse: () => Anime4KQuality.fast, + ), + mode: Anime4KMode.values.firstWhere( + (e) => e.name == json['mode'], + orElse: () => Anime4KMode.modeA, + ), + ); + } +} + +/// Configuration for NVScaler preset +class NVScalerConfig { + /// Whether to automatically skip NVScaler on HDR content + final bool autoHdrSkip; + + const NVScalerConfig({ + this.autoHdrSkip = true, + }); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + return other is NVScalerConfig && other.autoHdrSkip == autoHdrSkip; + } + + @override + int get hashCode => autoHdrSkip.hashCode; + + Map toJson() => { + 'autoHdrSkip': autoHdrSkip, + }; + + factory NVScalerConfig.fromJson(Map json) { + return NVScalerConfig( + autoHdrSkip: json['autoHdrSkip'] as bool? ?? true, + ); + } +} + +/// Represents a shader preset configuration +class ShaderPreset { + final String id; + final String name; + final ShaderPresetType type; + final Anime4KConfig? anime4kConfig; + final NVScalerConfig? nvscalerConfig; + + const ShaderPreset({ + required this.id, + required this.name, + required this.type, + this.anime4kConfig, + this.nvscalerConfig, + }); + + /// No shader preset (off) + static const none = ShaderPreset( + id: 'none', + name: 'Off', + type: ShaderPresetType.none, + ); + + /// NVScaler default preset with auto HDR skip + static const nvscalerDefault = ShaderPreset( + id: 'nvscaler', + name: 'NVScaler', + type: ShaderPresetType.nvscaler, + nvscalerConfig: NVScalerConfig(), + ); + + /// Create an Anime4K preset with the specified quality and mode + static ShaderPreset anime4kPreset(Anime4KQuality quality, Anime4KMode mode) { + final qualityName = quality == Anime4KQuality.fast ? 'Fast' : 'HQ'; + final modeName = _getModeName(mode); + + return ShaderPreset( + id: 'anime4k_${quality.name}_${mode.name}', + name: 'Anime4K $qualityName $modeName', + type: ShaderPresetType.anime4k, + anime4kConfig: Anime4KConfig(quality: quality, mode: mode), + ); + } + + static String _getModeName(Anime4KMode mode) { + switch (mode) { + case Anime4KMode.modeA: + return 'A'; + case Anime4KMode.modeB: + return 'B'; + case Anime4KMode.modeC: + return 'C'; + case Anime4KMode.modeAA: + return 'A+A'; + case Anime4KMode.modeBB: + return 'B+B'; + case Anime4KMode.modeCA: + return 'C+A'; + } + } + + /// Get display name for the mode + String get modeDisplayName { + if (anime4kConfig != null) { + return _getModeName(anime4kConfig!.mode); + } + return ''; + } + + /// Get all available preset options + static List get allPresets { + return [ + none, + nvscalerDefault, + // Anime4K Fast presets + anime4kPreset(Anime4KQuality.fast, Anime4KMode.modeA), + anime4kPreset(Anime4KQuality.fast, Anime4KMode.modeB), + anime4kPreset(Anime4KQuality.fast, Anime4KMode.modeC), + anime4kPreset(Anime4KQuality.fast, Anime4KMode.modeAA), + anime4kPreset(Anime4KQuality.fast, Anime4KMode.modeBB), + anime4kPreset(Anime4KQuality.fast, Anime4KMode.modeCA), + // Anime4K HQ presets + anime4kPreset(Anime4KQuality.hq, Anime4KMode.modeA), + anime4kPreset(Anime4KQuality.hq, Anime4KMode.modeB), + anime4kPreset(Anime4KQuality.hq, Anime4KMode.modeC), + anime4kPreset(Anime4KQuality.hq, Anime4KMode.modeAA), + anime4kPreset(Anime4KQuality.hq, Anime4KMode.modeBB), + anime4kPreset(Anime4KQuality.hq, Anime4KMode.modeCA), + ]; + } + + /// Find a preset by its ID + static ShaderPreset? fromId(String id) { + try { + return allPresets.firstWhere((p) => p.id == id); + } catch (_) { + return null; + } + } + + bool get isEnabled => type != ShaderPresetType.none; + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + return other is ShaderPreset && other.id == id; + } + + @override + int get hashCode => id.hashCode; + + Map toJson() => { + 'id': id, + 'name': name, + 'type': type.name, + if (anime4kConfig != null) 'anime4kConfig': anime4kConfig!.toJson(), + if (nvscalerConfig != null) 'nvscalerConfig': nvscalerConfig!.toJson(), + }; + + factory ShaderPreset.fromJson(Map json) { + // Try to find by ID first for built-in presets + final id = json['id'] as String?; + if (id != null) { + final builtIn = fromId(id); + if (builtIn != null) return builtIn; + } + + // Otherwise create from JSON + return ShaderPreset( + id: id ?? 'custom', + name: json['name'] as String? ?? 'Custom', + type: ShaderPresetType.values.firstWhere( + (e) => e.name == json['type'], + orElse: () => ShaderPresetType.none, + ), + anime4kConfig: json['anime4kConfig'] != null ? Anime4KConfig.fromJson(json['anime4kConfig']) : null, + nvscalerConfig: json['nvscalerConfig'] != null ? NVScalerConfig.fromJson(json['nvscalerConfig']) : null, + ); + } +} diff --git a/lib/providers/shader_provider.dart b/lib/providers/shader_provider.dart new file mode 100644 index 00000000..e3c0c1c7 --- /dev/null +++ b/lib/providers/shader_provider.dart @@ -0,0 +1,66 @@ +import 'package:flutter/foundation.dart'; + +import '../models/shader_preset.dart'; +import '../services/settings_service.dart'; + +/// Provider for managing shader preset state. +/// +/// Persists the selected shader preset so it is restored across sessions. +class ShaderProvider extends ChangeNotifier { + late SettingsService _settingsService; + + ShaderPreset _savedPreset = ShaderPreset.none; + ShaderPreset _currentPreset = ShaderPreset.none; + bool _initialized = false; + + ShaderProvider() { + _initialize(); + } + + Future _initialize() async { + _settingsService = await SettingsService.getInstance(); + + final presetId = _settingsService.getGlobalShaderPreset(); + _savedPreset = ShaderPreset.fromId(presetId) ?? ShaderPreset.none; + _currentPreset = _savedPreset; + + _initialized = true; + notifyListeners(); + } + + /// Whether the provider has finished initializing + bool get initialized => _initialized; + + /// The persisted shader preset + ShaderPreset get savedPreset => _savedPreset; + + /// The currently active shader preset + ShaderPreset get currentPreset => _currentPreset; + + /// All available shader presets + List get allPresets => ShaderPreset.allPresets; + + /// Whether any shader is currently enabled + bool get isShaderEnabled => _currentPreset.type != ShaderPresetType.none; + + /// Apply and persist a shader preset + Future setPreset(ShaderPreset preset) async { + _savedPreset = preset; + _currentPreset = preset; + await _settingsService.setGlobalShaderPreset(preset.id); + notifyListeners(); + } + + /// Update the current preset without persisting (e.g. toggling off temporarily) + void setCurrentPreset(ShaderPreset preset) { + if (_currentPreset.id != preset.id) { + _currentPreset = preset; + notifyListeners(); + } + } + + /// Reset to default (no shaders) + Future reset() async { + await setPreset(ShaderPreset.none); + } +} diff --git a/lib/screens/video_player_screen.dart b/lib/screens/video_player_screen.dart index 25583d6c..1d3e45aa 100644 --- a/lib/screens/video_player_screen.dart +++ b/lib/screens/video_player_screen.dart @@ -32,6 +32,8 @@ import '../services/track_selection_service.dart'; import '../services/video_filter_manager.dart'; import '../services/video_pip_manager.dart'; import '../services/pip_service.dart'; +import '../services/shader_service.dart'; +import '../providers/shader_provider.dart'; import '../providers/user_profile_provider.dart'; import '../utils/app_logger.dart'; import '../utils/orientation_helper.dart'; @@ -115,6 +117,7 @@ class VideoPlayerScreenState extends State with WidgetsBindin PlaybackProgressTracker? _progressTracker; VideoFilterManager? _videoFilterManager; VideoPIPManager? _videoPIPManager; + ShaderService? _shaderService; final EpisodeNavigationService _episodeNavigation = EpisodeNavigationService(); // Watch Together provider reference (stored early to use in dispose) @@ -797,6 +800,12 @@ class VideoPlayerScreenState extends State with WidgetsBindin _videoFilterManager?.enterPipMode(); }; _videoPIPManager!.isPipActive.addListener(_onPipStateChanged); + + // Shader Service (MPV only) + _shaderService = ShaderService(player!); + if (_shaderService!.isSupported) { + await _applySavedShaderPreset(); + } } // Add external subtitles while paused, then start playback @@ -892,6 +901,20 @@ class VideoPlayerScreenState extends State with WidgetsBindin } } + /// Apply the saved shader preset on playback start + Future _applySavedShaderPreset() async { + if (_shaderService == null || !_shaderService!.isSupported) return; + + try { + final shaderProvider = context.read(); + final preset = shaderProvider.savedPreset; + await _shaderService!.applyPreset(preset); + shaderProvider.setCurrentPreset(preset); + } catch (e) { + appLogger.d('Could not apply shader preset', error: e); + } + } + /// Cycle through BoxFit modes: contain → cover → fill → contain (for button) void _cycleBoxFitMode() { setState(() { @@ -1696,6 +1719,8 @@ class VideoPlayerScreenState extends State with WidgetsBindin hasFirstFrame: _hasFirstFrame, playNextFocusNode: _showPlayNextDialog ? _playNextConfirmFocusNode : null, controlsVisible: _controlsVisible, + shaderService: _shaderService, + onShaderChanged: () => setState(() {}), ), ); }, diff --git a/lib/services/keyboard_shortcuts_service.dart b/lib/services/keyboard_shortcuts_service.dart index 7bb8c99b..859aadff 100644 --- a/lib/services/keyboard_shortcuts_service.dart +++ b/lib/services/keyboard_shortcuts_service.dart @@ -163,6 +163,7 @@ class KeyboardShortcutsService { VoidCallback? onNextChapter, VoidCallback? onPreviousChapter, { VoidCallback? onBack, + VoidCallback? onToggleShader, }) { if (event is! KeyDownEvent) return KeyEventResult.ignored; @@ -238,6 +239,7 @@ class KeyboardShortcutsService { onNextSubtitleTrack, onNextChapter, onPreviousChapter, + onToggleShader: onToggleShader, ); return KeyEventResult.handled; } @@ -254,8 +256,9 @@ class KeyboardShortcutsService { VoidCallback? onNextAudioTrack, VoidCallback? onNextSubtitleTrack, VoidCallback? onNextChapter, - VoidCallback? onPreviousChapter, - ) { + VoidCallback? onPreviousChapter, { + VoidCallback? onToggleShader, + }) { switch (action) { case 'play_pause': player.playOrPause(); @@ -325,6 +328,9 @@ class KeyboardShortcutsService { case 'sub_seek_prev': player.command(['sub-seek', '-1']); break; + case 'shader_toggle': + onToggleShader?.call(); + break; } } @@ -369,6 +375,8 @@ class KeyboardShortcutsService { return t.hotkeys.actions.subSeekNext; case 'sub_seek_prev': return t.hotkeys.actions.subSeekPrev; + case 'shader_toggle': + return t.hotkeys.actions.shaderToggle; default: return action; } diff --git a/lib/services/settings_service.dart b/lib/services/settings_service.dart index 3849b198..3727eb0d 100644 --- a/lib/services/settings_service.dart +++ b/lib/services/settings_service.dart @@ -66,6 +66,7 @@ class SettingsService extends BaseSharedPreferencesService { static const String _keyAutoPlayNextEpisode = 'auto_play_next_episode'; static const String _keyUseExoPlayer = 'use_exoplayer'; static const String _keyAlwaysKeepSidebarOpen = 'always_keep_sidebar_open'; + static const String _keyGlobalShaderPreset = 'global_shader_preset'; SettingsService._(); @@ -389,6 +390,7 @@ class SettingsService extends BaseSharedPreferencesService { 'speed_reset': HotKey(key: PhysicalKeyboardKey.keyR), 'sub_seek_next': HotKey(key: PhysicalKeyboardKey.arrowRight, modifiers: [HotKeyModifier.control]), 'sub_seek_prev': HotKey(key: PhysicalKeyboardKey.arrowLeft, modifiers: [HotKeyModifier.control]), + 'shader_toggle': HotKey(key: PhysicalKeyboardKey.keyG), }; } @@ -1007,6 +1009,15 @@ class SettingsService extends BaseSharedPreferencesService { return prefs.getBool(_keyAlwaysKeepSidebarOpen) ?? false; // Default: collapsed } + // Global Shader Preset (for MPV video enhancement) + Future setGlobalShaderPreset(String presetId) async { + await prefs.setString(_keyGlobalShaderPreset, presetId); + } + + String getGlobalShaderPreset() { + return prefs.getString(_keyGlobalShaderPreset) ?? 'none'; // Default: no shader + } + // Reset all settings to defaults Future resetAllSettings() async { await Future.wait([ @@ -1053,6 +1064,7 @@ class SettingsService extends BaseSharedPreferencesService { prefs.remove(_keyAutoPlayNextEpisode), prefs.remove(_keyUseExoPlayer), prefs.remove(_keyAlwaysKeepSidebarOpen), + prefs.remove(_keyGlobalShaderPreset), ]); } diff --git a/lib/services/shader_asset_loader.dart b/lib/services/shader_asset_loader.dart new file mode 100644 index 00000000..7d037431 --- /dev/null +++ b/lib/services/shader_asset_loader.dart @@ -0,0 +1,214 @@ +import 'dart:io'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:path/path.dart' as path; +import 'package:path_provider/path_provider.dart'; + +import '../models/shader_preset.dart'; + +/// Utility class for loading GLSL shader assets for MPV video enhancement. +/// +/// Extracts shader files from Flutter assets to the app's cache directory +/// where MPV can access them at runtime. +class ShaderAssetLoader { + static const String _shaderAssetBase = 'assets/shaders'; + static String? _cachedShaderDir; + + /// NVScaler shader file + static const String _nvscalerShader = 'nvscaler/NVScaler.glsl'; + + /// Anime4K shader files organized by function + static const Map _anime4kShaders = { + 'clamp': 'anime4k/Anime4K_Clamp_Highlights.glsl', + 'restore_m': 'anime4k/Anime4K_Restore_CNN_M.glsl', + 'restore_vl': 'anime4k/Anime4K_Restore_CNN_VL.glsl', + 'restore_ul': 'anime4k/Anime4K_Restore_CNN_UL.glsl', + 'upscale_m': 'anime4k/Anime4K_Upscale_CNN_x2_M.glsl', + 'upscale_vl': 'anime4k/Anime4K_Upscale_CNN_x2_VL.glsl', + 'upscale_ul': 'anime4k/Anime4K_Upscale_CNN_x2_UL.glsl', + 'downscale': 'anime4k/Anime4K_AutoDownscalePre_x2.glsl', + 'downscale_post': 'anime4k/Anime4K_AutoDownscalePre_x4.glsl', + }; + + /// Get the shader cache directory path, creating it if necessary. + static Future _getShaderDirectory() async { + if (_cachedShaderDir != null) return _cachedShaderDir!; + + final cacheDir = await getTemporaryDirectory(); + final shaderDir = Directory(path.join(cacheDir.path, 'shaders')); + + if (!await shaderDir.exists()) { + await shaderDir.create(recursive: true); + } + + _cachedShaderDir = shaderDir.path; + return shaderDir.path; + } + + /// Extract a single shader file from assets to the cache directory. + /// Returns the absolute file path of the extracted shader. + static Future _extractShader(String assetPath) async { + try { + final shaderDir = await _getShaderDirectory(); + final fileName = path.basename(assetPath); + final subDir = path.dirname(assetPath); + + // Create subdirectory if needed + final targetDir = Directory(path.join(shaderDir, subDir)); + if (!await targetDir.exists()) { + await targetDir.create(recursive: true); + } + + final targetFile = File(path.join(targetDir.path, fileName)); + + // Only extract if not already cached + if (!await targetFile.exists()) { + final fullAssetPath = '$_shaderAssetBase/$assetPath'; + final data = await rootBundle.load(fullAssetPath); + await targetFile.writeAsBytes(data.buffer.asUint8List()); + } + + return targetFile.path; + } catch (e) { + if (kDebugMode) { + debugPrint('Failed to extract shader $assetPath: $e'); + } + return null; + } + } + + /// Get the shader file paths for NVScaler preset. + /// Returns a list containing the single NVScaler shader path. + static Future> getNVScalerShaders() async { + final shaderPath = await _extractShader(_nvscalerShader); + if (shaderPath == null) return []; + return [shaderPath]; + } + + /// Get the shader file paths for an Anime4K preset. + /// Returns a list of shader paths in the correct order for MPV. + static Future> getAnime4KShaders(Anime4KConfig config) async { + final shaders = []; + final quality = config.quality; + final mode = config.mode; + + // Get quality-specific shader variants + String restoreVariant; + String upscaleVariant; + + switch (quality) { + case Anime4KQuality.fast: + restoreVariant = 'restore_m'; + upscaleVariant = 'upscale_m'; + break; + case Anime4KQuality.hq: + restoreVariant = 'restore_vl'; + upscaleVariant = 'upscale_vl'; + break; + } + + // Build shader chain based on mode + // All modes start with Clamp + final clampPath = await _extractShader(_anime4kShaders['clamp']!); + if (clampPath != null) shaders.add(clampPath); + + switch (mode) { + case Anime4KMode.modeA: + // A: Clamp + Restore + final restorePath = await _extractShader(_anime4kShaders[restoreVariant]!); + if (restorePath != null) shaders.add(restorePath); + break; + + case Anime4KMode.modeB: + // B: Clamp + Restore + Upscale + Downscale + final restorePath = await _extractShader(_anime4kShaders[restoreVariant]!); + if (restorePath != null) shaders.add(restorePath); + final upscalePath = await _extractShader(_anime4kShaders[upscaleVariant]!); + if (upscalePath != null) shaders.add(upscalePath); + final downscalePath = await _extractShader(_anime4kShaders['downscale']!); + if (downscalePath != null) shaders.add(downscalePath); + break; + + case Anime4KMode.modeC: + // C: Clamp + Upscale + Downscale + final upscalePath = await _extractShader(_anime4kShaders[upscaleVariant]!); + if (upscalePath != null) shaders.add(upscalePath); + final downscalePath = await _extractShader(_anime4kShaders['downscale']!); + if (downscalePath != null) shaders.add(downscalePath); + break; + + case Anime4KMode.modeAA: + // A+A: Clamp + Restore + Restore + final restorePath = await _extractShader(_anime4kShaders[restoreVariant]!); + if (restorePath != null) { + shaders.add(restorePath); + shaders.add(restorePath); // Second restore pass + } + break; + + case Anime4KMode.modeBB: + // B+B: Clamp + Restore + Restore + Upscale + Downscale + final restorePath = await _extractShader(_anime4kShaders[restoreVariant]!); + if (restorePath != null) { + shaders.add(restorePath); + shaders.add(restorePath); // Second restore pass + } + final upscalePath = await _extractShader(_anime4kShaders[upscaleVariant]!); + if (upscalePath != null) shaders.add(upscalePath); + final downscalePath = await _extractShader(_anime4kShaders['downscale']!); + if (downscalePath != null) shaders.add(downscalePath); + break; + + case Anime4KMode.modeCA: + // C+A: Clamp + Upscale + Restore + Downscale + final upscalePath = await _extractShader(_anime4kShaders[upscaleVariant]!); + if (upscalePath != null) shaders.add(upscalePath); + final restorePath = await _extractShader(_anime4kShaders[restoreVariant]!); + if (restorePath != null) shaders.add(restorePath); + final downscalePath = await _extractShader(_anime4kShaders['downscale']!); + if (downscalePath != null) shaders.add(downscalePath); + break; + } + + return shaders; + } + + /// Get shader paths for a given preset. + /// Returns an empty list for ShaderPresetType.none. + static Future> getShadersForPreset(ShaderPreset preset) async { + switch (preset.type) { + case ShaderPresetType.none: + return []; + case ShaderPresetType.nvscaler: + return getNVScalerShaders(); + case ShaderPresetType.anime4k: + if (preset.anime4kConfig == null) return []; + return getAnime4KShaders(preset.anime4kConfig!); + } + } + + /// Pre-extract all shader files to the cache. + /// Call this at startup to avoid extraction delay during playback. + static Future preloadShaders() async { + try { + // Extract NVScaler + await _extractShader(_nvscalerShader); + + // Extract all Anime4K shaders + for (final shaderPath in _anime4kShaders.values) { + await _extractShader(shaderPath); + } + } catch (e) { + if (kDebugMode) { + debugPrint('Failed to preload shaders: $e'); + } + } + } + + /// Clear cached shader directory reference. + /// Call when clearing app cache. + static void clearCache() { + _cachedShaderDir = null; + } +} diff --git a/lib/services/shader_service.dart b/lib/services/shader_service.dart new file mode 100644 index 00000000..b386c7bd --- /dev/null +++ b/lib/services/shader_service.dart @@ -0,0 +1,142 @@ +import 'package:flutter/foundation.dart'; + +import '../models/shader_preset.dart'; +import '../mpv/player/player.dart'; +import 'shader_asset_loader.dart'; + +/// Service for applying GLSL shaders to the MPV video player. +/// +/// Handles shader chain building, HDR detection, and runtime switching. +class ShaderService { + final Player _player; + ShaderPreset _currentPreset = ShaderPreset.none; + + ShaderService(this._player); + + /// The currently applied shader preset + ShaderPreset get currentPreset => _currentPreset; + + /// Check if the player is MPV (shaders are MPV-only) + bool get isSupported => _player.playerType == 'mpv'; + + /// Apply a shader preset to the video player. + /// + /// For NVScaler with auto-HDR skip enabled, will check video colorspace + /// and skip shader application for HDR content. + Future applyPreset(ShaderPreset preset) async { + if (!isSupported) { + if (kDebugMode) { + debugPrint('ShaderService: Shaders not supported on ${_player.playerType}'); + } + return; + } + + try { + // Handle NVScaler HDR auto-skip + if (preset.type == ShaderPresetType.nvscaler && preset.nvscalerConfig?.autoHdrSkip == true) { + final isHdr = await _isHdrContent(); + if (isHdr) { + if (kDebugMode) { + debugPrint('ShaderService: Skipping NVScaler on HDR content'); + } + await _clearShaders(); + _currentPreset = ShaderPreset.none; + return; + } + } + + // Get shader paths for the preset + final shaderPaths = await ShaderAssetLoader.getShadersForPreset(preset); + + if (shaderPaths.isEmpty) { + // No shaders - clear any existing ones + await _clearShaders(); + _currentPreset = preset; + return; + } + + // Clear existing shaders first + await _clearShaders(); + + // Apply new shader chain + for (final shaderPath in shaderPaths) { + await _player.command(['change-list', 'glsl-shaders', 'append', shaderPath]); + } + + _currentPreset = preset; + + if (kDebugMode) { + debugPrint('ShaderService: Applied ${preset.name} with ${shaderPaths.length} shaders'); + } + } catch (e) { + if (kDebugMode) { + debugPrint('ShaderService: Failed to apply preset: $e'); + } + // Don't rethrow - shader failure shouldn't stop playback + } + } + + /// Clear all currently applied shaders. + Future _clearShaders() async { + try { + await _player.command(['change-list', 'glsl-shaders', 'clr', '']); + } catch (e) { + if (kDebugMode) { + debugPrint('ShaderService: Failed to clear shaders: $e'); + } + } + } + + /// Check if the current video content is HDR. + Future _isHdrContent() async { + try { + // Check video color matrix for BT.2020 (HDR indicator) + final colormatrix = await _player.getProperty('video-params/colormatrix'); + if (colormatrix?.contains('bt.2020') == true) { + return true; + } + + // Also check color primaries + final primaries = await _player.getProperty('video-params/primaries'); + if (primaries?.contains('bt.2020') == true) { + return true; + } + + // Check for HDR transfer characteristics + final gamma = await _player.getProperty('video-params/gamma'); + if (gamma?.contains('pq') == true || gamma?.contains('hlg') == true) { + return true; + } + + return false; + } catch (e) { + if (kDebugMode) { + debugPrint('ShaderService: HDR detection failed: $e'); + } + return false; + } + } + + /// Disable all shaders. + Future disable() async { + await applyPreset(ShaderPreset.none); + } + + /// Cycle to the next preset in the available list. + Future cyclePreset() async { + final presets = ShaderPreset.allPresets; + final currentIndex = presets.indexWhere((p) => p.id == _currentPreset.id); + final nextIndex = (currentIndex + 1) % presets.length; + final nextPreset = presets[nextIndex]; + + await applyPreset(nextPreset); + return nextPreset; + } + + /// Reapply current preset (useful after video source changes). + Future reapply() async { + if (_currentPreset.type != ShaderPresetType.none) { + await applyPreset(_currentPreset); + } + } +} diff --git a/lib/services/storage_service.dart b/lib/services/storage_service.dart index cfc5e062..7364d5da 100644 --- a/lib/services/storage_service.dart +++ b/lib/services/storage_service.dart @@ -27,7 +27,6 @@ class StorageService extends BaseSharedPreferencesService { static const String _prefixLibrarySort = 'library_sort_'; static const String _prefixLibraryGrouping = 'library_grouping_'; static const String _prefixLibraryTab = 'library_tab_'; - // Key groups for bulk clearing static const List _credentialKeys = [ _keyServerUrl, diff --git a/lib/widgets/video_controls/desktop_video_controls.dart b/lib/widgets/video_controls/desktop_video_controls.dart index e24ac2eb..bca02c49 100644 --- a/lib/widgets/video_controls/desktop_video_controls.dart +++ b/lib/widgets/video_controls/desktop_video_controls.dart @@ -14,6 +14,7 @@ import '../../services/fullscreen_state_manager.dart'; import '../../utils/desktop_window_padding.dart'; import '../../i18n/strings.g.dart'; import '../../focus/focusable_wrapper.dart'; +import '../../services/shader_service.dart'; import 'widgets/first_frame_guard.dart'; import 'widgets/play_pause_stream_builder.dart'; import 'widgets/video_controls_header.dart'; @@ -73,6 +74,9 @@ class DesktopVideoControls extends StatefulWidget { /// Notifier for whether first video frame has rendered (shows loading state when false). final ValueNotifier? hasFirstFrame; + final ShaderService? shaderService; + final VoidCallback? onShaderChanged; + const DesktopVideoControls({ super.key, required this.player, @@ -112,6 +116,8 @@ class DesktopVideoControls extends StatefulWidget { this.onBack, this.canControl = true, this.hasFirstFrame, + this.shaderService, + this.onShaderChanged, }); @override @@ -538,6 +544,8 @@ class DesktopVideoControlsState extends State { onFocusChange: _onFocusChange, onNavigateLeft: navigateFromTrackToVolume, canControl: widget.canControl, + shaderService: widget.shaderService, + onShaderChanged: widget.onShaderChanged, ), ], ), diff --git a/lib/widgets/video_controls/sheets/shader_selection_sheet.dart b/lib/widgets/video_controls/sheets/shader_selection_sheet.dart new file mode 100644 index 00000000..7d0a7c7b --- /dev/null +++ b/lib/widgets/video_controls/sheets/shader_selection_sheet.dart @@ -0,0 +1,139 @@ +import 'package:flutter/material.dart'; +import 'package:material_symbols_icons/symbols.dart'; +import 'package:provider/provider.dart'; + +import '../../../i18n/strings.g.dart'; +import '../../../models/shader_preset.dart'; +import '../../../providers/shader_provider.dart'; +import '../../../services/shader_service.dart'; +import '../../../widgets/app_icon.dart'; +import '../../../widgets/focusable_bottom_sheet.dart'; +import '../../../widgets/focusable_list_tile.dart'; +import 'base_video_control_sheet.dart'; +import 'video_control_sheet_launcher.dart'; + +/// Bottom sheet for selecting shader presets during video playback +class ShaderSelectionSheet extends StatefulWidget { + final ShaderService shaderService; + final VoidCallback? onPresetChanged; + + const ShaderSelectionSheet({ + super.key, + required this.shaderService, + this.onPresetChanged, + }); + + static void show({ + required BuildContext context, + required ShaderService shaderService, + VoidCallback? onPresetChanged, + VoidCallback? onOpen, + VoidCallback? onClose, + }) { + VideoControlSheetLauncher.show( + context: context, + onOpen: onOpen, + onClose: onClose, + builder: (context) => ShaderSelectionSheet( + shaderService: shaderService, + onPresetChanged: onPresetChanged, + ), + ); + } + + @override + State createState() => _ShaderSelectionSheetState(); +} + +class _ShaderSelectionSheetState extends State { + late final FocusNode _initialFocusNode; + + @override + void initState() { + super.initState(); + _initialFocusNode = FocusNode(debugLabel: 'ShaderSelectionInitialFocus'); + } + + @override + void dispose() { + _initialFocusNode.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return FocusableBottomSheet( + initialFocusNode: _initialFocusNode, + child: Consumer( + builder: (context, shaderProvider, _) { + final currentPreset = widget.shaderService.currentPreset; + final presets = ShaderPreset.allPresets; + + return BaseVideoControlSheet( + title: t.shaders.title, + icon: Symbols.auto_fix_high_rounded, + iconColor: currentPreset.isEnabled ? Colors.amber : null, + child: ListView.builder( + itemCount: presets.length, + itemBuilder: (context, index) { + final preset = presets[index]; + final isSelected = preset.id == currentPreset.id; + final shouldFocus = index == 0; + + return _buildPresetTile( + preset: preset, + isSelected: isSelected, + focusNode: shouldFocus ? _initialFocusNode : null, + onTap: () async { + await widget.shaderService.applyPreset(preset); + await shaderProvider.setPreset(preset); + widget.onPresetChanged?.call(); + if (context.mounted) Navigator.pop(context); + }, + ); + }, + ), + ); + }, + ), + ); + } + + Widget _buildPresetTile({ + required ShaderPreset preset, + required bool isSelected, + required VoidCallback onTap, + FocusNode? focusNode, + }) { + final subtitle = _getPresetSubtitle(preset); + + return FocusableListTile( + focusNode: focusNode, + title: Text( + preset.name, + style: TextStyle(color: isSelected ? Colors.amber : Colors.white), + ), + subtitle: subtitle != null + ? Text(subtitle, style: const TextStyle(color: Colors.white54, fontSize: 12)) + : null, + trailing: isSelected ? const AppIcon(Symbols.check_rounded, fill: 1, color: Colors.amber) : null, + onTap: onTap, + ); + } + + String? _getPresetSubtitle(ShaderPreset preset) { + switch (preset.type) { + case ShaderPresetType.none: + return t.shaders.noShaderDescription; + case ShaderPresetType.nvscaler: + return t.shaders.nvscalerDescription; + case ShaderPresetType.anime4k: + if (preset.anime4kConfig != null) { + final quality = preset.anime4kConfig!.quality == Anime4KQuality.fast ? t.shaders.qualityFast : t.shaders.qualityHQ; + final mode = preset.modeDisplayName; + return '$quality - ${t.shaders.mode} $mode'; + } + return null; + } + } +} diff --git a/lib/widgets/video_controls/sheets/video_settings_sheet.dart b/lib/widgets/video_controls/sheets/video_settings_sheet.dart index 575a1d39..db69d4d0 100644 --- a/lib/widgets/video_controls/sheets/video_settings_sheet.dart +++ b/lib/widgets/video_controls/sheets/video_settings_sheet.dart @@ -4,8 +4,13 @@ import 'package:flutter/material.dart'; import 'package:plezy/widgets/app_icon.dart'; import 'package:material_symbols_icons/symbols.dart'; +import 'package:provider/provider.dart'; + +import '../../../models/shader_preset.dart'; import '../../../mpv/mpv.dart'; +import '../../../providers/shader_provider.dart'; import '../../../services/settings_service.dart'; +import '../../../services/shader_service.dart'; import '../../../services/sleep_timer_service.dart'; import '../../../utils/formatters.dart'; import '../../../utils/platform_detector.dart'; @@ -16,7 +21,7 @@ import '../widgets/sleep_timer_content.dart'; import '../../../i18n/strings.g.dart'; import 'base_video_control_sheet.dart'; -enum _SettingsView { menu, speed, sleep, audioSync, subtitleSync, audioDevice } +enum _SettingsView { menu, speed, sleep, audioSync, subtitleSync, audioDevice, shader } /// Reusable menu item widget for settings sheet class _SettingsMenuItem extends StatelessWidget { @@ -72,12 +77,20 @@ class VideoSettingsSheet extends StatefulWidget { /// Whether the user can control playback (false hides speed option in host-only mode). final bool canControl; + /// Optional shader service for MPV shader control + final ShaderService? shaderService; + + /// Called when shader preset changes + final VoidCallback? onShaderChanged; + const VideoSettingsSheet({ super.key, required this.player, required this.audioSyncOffset, required this.subtitleSyncOffset, this.canControl = true, + this.shaderService, + this.onShaderChanged, }); static Future show( @@ -88,6 +101,8 @@ class VideoSettingsSheet extends StatefulWidget { VoidCallback? onOpen, VoidCallback? onClose, bool canControl = true, + ShaderService? shaderService, + VoidCallback? onShaderChanged, }) { return BaseVideoControlSheet.showSheet( context: context, @@ -98,6 +113,8 @@ class VideoSettingsSheet extends StatefulWidget { audioSyncOffset: audioSyncOffset, subtitleSyncOffset: subtitleSyncOffset, canControl: canControl, + shaderService: shaderService, + onShaderChanged: onShaderChanged, ), ); } @@ -194,6 +211,8 @@ class _VideoSettingsSheetState extends State { return 'Subtitle Sync'; case _SettingsView.audioDevice: return 'Audio Output'; + case _SettingsView.shader: + return t.shaders.title; } } @@ -211,6 +230,8 @@ class _VideoSettingsSheetState extends State { return Symbols.subtitles_rounded; case _SettingsView.audioDevice: return Symbols.speaker_rounded; + case _SettingsView.shader: + return Symbols.auto_fix_high_rounded; } } @@ -328,6 +349,16 @@ class _VideoSettingsSheetState extends State { }, ), + // Shader Preset (MPV only) + if (widget.shaderService != null && widget.shaderService!.isSupported) + _SettingsMenuItem( + icon: Symbols.auto_fix_high_rounded, + title: t.shaders.title, + valueText: widget.shaderService!.currentPreset.name, + isHighlighted: widget.shaderService!.currentPreset.isEnabled, + onTap: () => _navigateTo(_SettingsView.shader), + ), + // Performance Overlay Toggle ListTile( leading: AppIcon( @@ -455,19 +486,72 @@ class _VideoSettingsSheetState extends State { ); } + Widget _buildShaderView() { + if (widget.shaderService == null) return const SizedBox.shrink(); + + return Consumer( + builder: (context, shaderProvider, _) { + final currentPreset = widget.shaderService!.currentPreset; + final presets = ShaderPreset.allPresets; + + return ListView.builder( + itemCount: presets.length, + itemBuilder: (context, index) { + final preset = presets[index]; + final isSelected = preset.id == currentPreset.id; + + return FocusableListTile( + title: Text( + preset.name, + style: TextStyle(color: isSelected ? Colors.amber : Colors.white), + ), + subtitle: _getShaderSubtitle(preset) != null + ? Text(_getShaderSubtitle(preset)!, style: const TextStyle(color: Colors.white54, fontSize: 12)) + : null, + trailing: isSelected ? const AppIcon(Symbols.check_rounded, fill: 1, color: Colors.amber) : null, + onTap: () async { + await widget.shaderService!.applyPreset(preset); + await shaderProvider.setPreset(preset); + widget.onShaderChanged?.call(); + if (context.mounted) Navigator.pop(context); + }, + ); + }, + ); + }, + ); + } + + String? _getShaderSubtitle(ShaderPreset preset) { + switch (preset.type) { + case ShaderPresetType.none: + return t.shaders.noShaderDescription; + case ShaderPresetType.nvscaler: + return t.shaders.nvscalerDescription; + case ShaderPresetType.anime4k: + if (preset.anime4kConfig != null) { + final quality = preset.anime4kConfig!.quality == Anime4KQuality.fast ? t.shaders.qualityFast : t.shaders.qualityHQ; + final mode = preset.modeDisplayName; + return '$quality - ${t.shaders.mode} $mode'; + } + return null; + } + } + @override Widget build(BuildContext context) { final sleepTimer = SleepTimerService(); + final isShaderActive = widget.shaderService != null && widget.shaderService!.currentPreset.isEnabled; final isIconActive = _currentView == _SettingsView.menu && - (sleepTimer.isActive || _audioSyncOffset != 0 || _subtitleSyncOffset != 0); + (sleepTimer.isActive || _audioSyncOffset != 0 || _subtitleSyncOffset != 0 || isShaderActive); return FocusableBottomSheet( initialFocusNode: _initialFocusNode, child: BaseVideoControlSheet( title: _getTitle(), icon: _getIcon(), - iconColor: isIconActive ? Colors.amber : Colors.white, + iconColor: isIconActive ? Colors.amber : (_currentView == _SettingsView.shader && isShaderActive ? Colors.amber : Colors.white), onBack: _currentView != _SettingsView.menu ? _navigateBack : null, child: () { switch (_currentView) { @@ -483,6 +567,8 @@ class _VideoSettingsSheetState extends State { return _buildSubtitleSyncView(); case _SettingsView.audioDevice: return _buildAudioDeviceView(); + case _SettingsView.shader: + return _buildShaderView(); } }(), ), diff --git a/lib/widgets/video_controls/video_controls.dart b/lib/widgets/video_controls/video_controls.dart index 887d6d78..2c610912 100644 --- a/lib/widgets/video_controls/video_controls.dart +++ b/lib/widgets/video_controls/video_controls.dart @@ -45,6 +45,11 @@ import 'widgets/track_chapter_controls.dart'; import 'widgets/performance_overlay/performance_overlay.dart'; import 'mobile_video_controls.dart'; import 'desktop_video_controls.dart'; +import 'package:provider/provider.dart'; + +import '../../models/shader_preset.dart'; +import '../../providers/shader_provider.dart'; +import '../../services/shader_service.dart'; /// Custom video controls builder for Plex with chapter, audio, and subtitle support Widget plexVideoControlsBuilder( @@ -65,6 +70,8 @@ Widget plexVideoControlsBuilder( ValueNotifier? hasFirstFrame, FocusNode? playNextFocusNode, ValueNotifier? controlsVisible, + ShaderService? shaderService, + VoidCallback? onShaderChanged, }) { return PlexVideoControls( player: player, @@ -84,6 +91,8 @@ Widget plexVideoControlsBuilder( hasFirstFrame: hasFirstFrame, playNextFocusNode: playNextFocusNode, controlsVisible: controlsVisible, + shaderService: shaderService, + onShaderChanged: onShaderChanged, ); } @@ -118,6 +127,12 @@ class PlexVideoControls extends StatefulWidget { /// Notifier to report controls visibility to parent (for popup positioning) final ValueNotifier? controlsVisible; + /// Optional shader service for MPV shader control + final ShaderService? shaderService; + + /// Called when shader preset changes + final VoidCallback? onShaderChanged; + const PlexVideoControls({ super.key, required this.player, @@ -137,6 +152,8 @@ class PlexVideoControls extends StatefulWidget { this.hasFirstFrame, this.playNextFocusNode, this.controlsVisible, + this.shaderService, + this.onShaderChanged, }); @override @@ -446,6 +463,29 @@ class _PlexVideoControlsState extends State with WindowListen // For now, this is a placeholder } + void _toggleShader() { + final shaderService = widget.shaderService; + if (shaderService == null || !shaderService.isSupported) return; + + if (shaderService.currentPreset.isEnabled) { + // Currently active - disable temporarily + shaderService.applyPreset(ShaderPreset.none).then((_) { + if (mounted) setState(() {}); + widget.onShaderChanged?.call(); + }); + } else { + // Currently off - restore saved preset + final shaderProvider = context.read(); + final saved = shaderProvider.savedPreset; + final targetPreset = saved.isEnabled ? saved : ShaderPreset.allPresets.firstWhere((p) => p.isEnabled, orElse: () => ShaderPreset.allPresets[1]); + shaderService.applyPreset(targetPreset).then((_) { + shaderProvider.setCurrentPreset(targetPreset); + if (mounted) setState(() {}); + widget.onShaderChanged?.call(); + }); + } + } + void _nextAudioTrack() { // Switch to next audio track - this would need to be implemented based on your track system // For now, this is a placeholder @@ -775,6 +815,8 @@ class _PlexVideoControlsState extends State with WindowListen onStartAutoHide: _startHideTimer, serverId: widget.metadata.serverId ?? '', canControl: widget.canControl, + shaderService: widget.shaderService, + onShaderChanged: widget.onShaderChanged, ); } @@ -1245,6 +1287,7 @@ class _PlexVideoControlsState extends State with WindowListen _nextChapter, _previousChapter, onBack: widget.onBack ?? () => Navigator.of(context).pop(true), + onToggleShader: _toggleShader, ); if (result == KeyEventResult.handled) { _focusNode.requestFocus(); // self-heal focus @@ -1451,6 +1494,7 @@ class _PlexVideoControlsState extends State with WindowListen _nextChapter, _previousChapter, onBack: widget.onBack ?? () => Navigator.of(context).pop(true), + onToggleShader: _toggleShader, ); // Never return .ignored from fullscreen video — prevent leaking to previous routes return result == KeyEventResult.ignored ? KeyEventResult.handled : result; @@ -1675,6 +1719,8 @@ class _PlexVideoControlsState extends State with WindowListen onBack: widget.onBack, canControl: widget.canControl, hasFirstFrame: widget.hasFirstFrame, + shaderService: widget.shaderService, + onShaderChanged: widget.onShaderChanged, ), ), ), diff --git a/lib/widgets/video_controls/widgets/track_chapter_controls.dart b/lib/widgets/video_controls/widgets/track_chapter_controls.dart index ebab0ee7..48859e3f 100644 --- a/lib/widgets/video_controls/widgets/track_chapter_controls.dart +++ b/lib/widgets/video_controls/widgets/track_chapter_controls.dart @@ -16,9 +16,9 @@ import '../sheets/chapter_sheet.dart'; import '../sheets/subtitle_track_sheet.dart'; import '../sheets/version_sheet.dart'; import '../sheets/video_settings_sheet.dart'; +import '../../../services/shader_service.dart'; import '../helpers/track_filter_helper.dart'; import '../video_control_button.dart'; - /// Row of track and chapter control buttons for the video player class TrackChapterControls extends StatelessWidget { final Player player; @@ -44,6 +44,8 @@ class TrackChapterControls extends StatelessWidget { final VoidCallback? onCancelAutoHide; final VoidCallback? onStartAutoHide; final String serverId; + final ShaderService? shaderService; + final VoidCallback? onShaderChanged; /// List of FocusNodes for the buttons (passed from parent for navigation) final List? focusNodes; @@ -86,6 +88,8 @@ class TrackChapterControls extends StatelessWidget { this.onFocusChange, this.onNavigateLeft, this.canControl = true, + this.shaderService, + this.onShaderChanged, }); /// Handle key event for button navigation @@ -168,7 +172,8 @@ class TrackChapterControls extends StatelessWidget { listenable: SleepTimerService(), builder: (context, _) { final sleepTimer = SleepTimerService(); - final isActive = sleepTimer.isActive || audioSyncOffset != 0 || subtitleSyncOffset != 0; + final isShaderActive = shaderService != null && shaderService!.isSupported && shaderService!.currentPreset.isEnabled; + final isActive = sleepTimer.isActive || audioSyncOffset != 0 || subtitleSyncOffset != 0 || isShaderActive; return _buildTrackButton( buttonIndex: 0, icon: Symbols.tune_rounded, @@ -186,6 +191,8 @@ class TrackChapterControls extends StatelessWidget { onOpen: onCancelAutoHide, onClose: onStartAutoHide, canControl: canControl, + shaderService: shaderService, + onShaderChanged: onShaderChanged, ); onLoadSeekTimes?.call(); }, diff --git a/pubspec.yaml b/pubspec.yaml index fc745ad4..b9d2b5d9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -69,6 +69,8 @@ flutter: - lib/data/iso_639_codes.json - assets/plezy.png - assets/go-noto-current-regular.ttf + - assets/shaders/nvscaler/ + - assets/shaders/anime4k/ flutter_launcher_icons: android: true