commit 87ec5105b3b4547fae081b14899c82a34eaf7de6 Author: ksyasuda Date: Thu Aug 10 00:18:43 2023 -0700 initial commit diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..4767651 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,10 @@ +[submodule "mpv-youtube-upnext"] + path = mpv-youtube-upnext + url = https://github.com/ksyasuda/mpv-youtube-upnext +[submodule "mpv-osc-modern"] + path = mpv-osc-modern + url = https://github.com/ksyasuda/mpv-osc-modern + branch = with.thumbfast +[submodule "mpv-youtube-queue"] + path = mpv-youtube-queue + url = https://github.com/ksyasuda/mpv-youtube-queue diff --git a/fonts/Material-Design-Iconic-Font.ttf b/fonts/Material-Design-Iconic-Font.ttf new file mode 100644 index 0000000..5d489fd Binary files /dev/null and b/fonts/Material-Design-Iconic-Font.ttf differ diff --git a/input.conf b/input.conf new file mode 100644 index 0000000..1c0a4d6 --- /dev/null +++ b/input.conf @@ -0,0 +1,205 @@ +# mpv keybindings +# +# Location of user-defined bindings: ~/.config/mpv/input.conf +# +# Lines starting with # are comments. Use SHARP to assign the # key. +# Copy this file and uncomment and edit the bindings you want to change. +# +# List of commands and further details: DOCS/man/input.rst +# List of special keys: --input-keylist +# Keybindings testing mode: mpv --input-test --force-window --idle +# +# Use 'ignore' to unbind a key fully (e.g. 'ctrl+a ignore'). +# +# Strings need to be quoted and escaped: +# KEY show-text "This is a single backslash: \\ and a quote: \" !" +# +# You can use modifier-key combinations like Shift+Left or Ctrl+Alt+x with +# the modifiers Shift, Ctrl, Alt and Meta (may not work on the terminal). +# +# The default keybindings are hardcoded into the mpv binary. +# You can disable them completely with: --no-input-default-bindings + +# Developer note: +# On compilation, this file is baked into the mpv binary, and all lines are +# uncommented (unless '#' is followed by a space) - thus this file defines the +# default key bindings. + +# If this is enabled, treat all the following bindings as default. +#default-bindings start + +#MBTN_LEFT ignore # don't do anything +#MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen on/off +#MBTN_RIGHT cycle pause # toggle pause on/off +#MBTN_BACK playlist-prev +#MBTN_FORWARD playlist-next + +# Mouse wheels, touchpad or other input devices that have axes +# if the input devices supports precise scrolling it will also scale the +# numeric value accordingly +#WHEEL_UP seek 10 +#WHEEL_DOWN seek -10 +#WHEEL_LEFT add volume -2 +#WHEEL_RIGHT add volume 2 + +## Seek units are in seconds, but note that these are limited by keyframes +#RIGHT seek 5 +#LEFT seek -5 +#UP seek 60 +#DOWN seek -60 +# Do smaller, always exact (non-keyframe-limited), seeks with shift. +# Don't show them on the OSD (no-osd). +#Shift+RIGHT no-osd seek 1 exact +#Shift+LEFT no-osd seek -1 exact +#Shift+UP no-osd seek 5 exact +#Shift+DOWN no-osd seek -5 exact +# Skip to previous/next subtitle (subject to some restrictions; see manpage) +#Ctrl+LEFT no-osd sub-seek -1 +#Ctrl+RIGHT no-osd sub-seek 1 +# Adjust timing to previous/next subtitle +#Ctrl+Shift+LEFT sub-step -1 +#Ctrl+Shift+RIGHT sub-step 1 +# Move video rectangle +#Alt+left add video-pan-x 0.1 +#Alt+right add video-pan-x -0.1 +#Alt+up add video-pan-y 0.1 +#Alt+down add video-pan-y -0.1 +# Zoom/unzoom video +#Alt++ add video-zoom 0.1 +#Alt+- add video-zoom -0.1 +# Reset video zoom/pan settings +#Alt+BS set video-zoom 0 ; set video-pan-x 0 ; set video-pan-y 0 +#PGUP add chapter 1 # skip to next chapter +#PGDWN add chapter -1 # skip to previous chapter +#Shift+PGUP seek 600 +#Shift+PGDWN seek -600 +[ add speed -0.05 # scale playback speed +] add speed 0.05 +#{ multiply speed 0.5 +#} multiply speed 2.0 +#BS set speed 1.0 # reset speed to normal +#Shift+BS revert-seek # undo previous (or marked) seek +#Shift+Ctrl+BS revert-seek mark # mark position for revert-seek +#q quit +#Q quit-watch-later +#q {encode} quit 4 +#ESC set fullscreen no +#ESC {encode} quit 4 +#p cycle pause # toggle pause/playback mode +#. frame-step # advance one frame and pause +#, frame-back-step # go back by one frame and pause +#SPACE cycle pause +#> playlist-next # skip to next file +#ENTER playlist-next # skip to next file +#< playlist-prev # skip to previous file +#O no-osd cycle-values osd-level 3 1 # cycle through OSD mode +#o show-progress +#P show-progress +#i script-binding stats/display-stats +#I script-binding stats/display-stats-toggle +#` script-binding console/enable +#z add sub-delay -0.1 # subtract 100 ms delay from subs +#Z add sub-delay +0.1 # add +#x add sub-delay +0.1 # same as previous binding (discouraged) +#ctrl++ add audio-delay 0.100 # this changes audio/video sync +#ctrl+- add audio-delay -0.100 +#Shift+g add sub-scale +0.1 # increase subtitle font size +#Shift+f add sub-scale -0.1 # decrease subtitle font size +9 add volume -5 +#/ add volume -2 +0 add volume 5 +#* add volume 2 +#m cycle mute +#1 add contrast -1 +#2 add contrast 1 +#3 add brightness -1 +#4 add brightness 1 +#5 add gamma -1 +#6 add gamma 1 +#7 add saturation -1 +#8 add saturation 1 +#Alt+0 set window-scale 0.5 +#Alt+1 set window-scale 1.0 +#Alt+2 set window-scale 2.0 +# toggle deinterlacer (automatically inserts or removes required filter) +#d cycle deinterlace +#r add sub-pos -1 # move subtitles up +#R add sub-pos +1 # down +#t add sub-pos +1 # same as previous binding (discouraged) +#v cycle sub-visibility +# stretch SSA/ASS subtitles with anamorphic videos to match historical +#V cycle sub-ass-vsfilter-aspect-compat +# switch between applying no style overrides to SSA/ASS subtitles, and +# overriding them almost completely with the normal subtitle style +#u cycle-values sub-ass-override "force" "no" +#j cycle sub # cycle through subtitles +#J cycle sub down # ...backwards +#SHARP cycle audio # switch audio streams +#_ cycle video +#T cycle ontop # toggle video window ontop of other windows +#f cycle fullscreen # toggle fullscreen +#s screenshot # take a screenshot +#S screenshot video # ...without subtitles +#Ctrl+s screenshot window # ...with subtitles and OSD, and scaled +#Alt+s screenshot each-frame # automatically screenshot every frame +#w add panscan -0.1 # zoom out with -panscan 0 -fs +#W add panscan +0.1 # in +#e add panscan +0.1 # same as previous binding (discouraged) +# cycle video aspect ratios; "-1" is the container aspect +#A cycle-values video-aspect-override "16:9" "4:3" "2.35:1" "-1" +#POWER quit +#PLAY cycle pause +#PAUSE cycle pause +#PLAYPAUSE cycle pause +#PLAYONLY set pause no +#PAUSEONLY set pause yes +#STOP quit +#FORWARD seek 60 +#REWIND seek -60 +#NEXT playlist-next +#PREV playlist-prev +#VOLUME_UP add volume 2 +#VOLUME_DOWN add volume -2 +#MUTE cycle mute +#CLOSE_WIN quit +#CLOSE_WIN {encode} quit 4 +#ctrl+w quit +#E cycle edition # next edition +#l ab-loop # Set/clear A-B loop points +#L cycle-values loop-file "inf" "no" # toggle infinite looping +#ctrl+c quit 4 +#DEL script-binding osc/visibility # cycle OSC display +#ctrl+h cycle-values hwdec "auto" "no" # cycle hardware decoding +#F8 show_text ${playlist} # show playlist +#F9 show_text ${track-list} # show list of audio/sub streams + +# +# Legacy bindings (may or may not be removed in the future) +# +#! add chapter -1 # skip to previous chapter +#@ add chapter 1 # next + +# +# Not assigned by default +# (not an exhaustive list of unbound commands) +# + +# ? cycle angle # switch DVD/Bluray angle +# ? cycle sub-forced-only # toggle DVD forced subs +# ? cycle program # cycle transport stream programs +# ? stop # stop playback (quit or enter idle mode) +n cycle_values af loudnorm=I=-30 loudnorm=I=-15 anull +CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)" +CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)" +CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)" +CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)" +CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)" +CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)" + +CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared" + +TAB script-binding skip-key + +o write-watch-later-config; loadfile "${path}" +ctrl+K cycle-values keep-open "yes" "no" + diff --git a/mpv-osc-modern b/mpv-osc-modern new file mode 160000 index 0000000..139d4dc --- /dev/null +++ b/mpv-osc-modern @@ -0,0 +1 @@ +Subproject commit 139d4dced88bd81ec92f3f1597898b214d6b1591 diff --git a/mpv-youtube-queue b/mpv-youtube-queue new file mode 160000 index 0000000..fa2014a --- /dev/null +++ b/mpv-youtube-queue @@ -0,0 +1 @@ +Subproject commit fa2014acd681c35a0027e8b13ae67ba27d24aca1 diff --git a/mpv-youtube-upnext b/mpv-youtube-upnext new file mode 160000 index 0000000..33cb0ee --- /dev/null +++ b/mpv-youtube-upnext @@ -0,0 +1 @@ +Subproject commit 33cb0eeffb0a939e1d6af46ea3be0052ae3d095f diff --git a/mpv.conf b/mpv.conf new file mode 100644 index 0000000..05e9fe3 --- /dev/null +++ b/mpv.conf @@ -0,0 +1,179 @@ +# +# Example mpv configuration file +# +# Warning: +# +# The commented example options usually do _not_ set the default values. Call +# mpv with --list-options to see the default values for most options. There is +# no builtin or example mpv.conf with all the defaults. +# +# +# Configuration files are read system-wide from /usr/local/etc/mpv.conf +# and per-user from ~/.config/mpv/mpv.conf, where per-user settings override +# system-wide settings, all of which are overridden by the command line. +# +# Configuration file settings and the command line options use the same +# underlying mechanisms. Most options can be put into the configuration file +# by dropping the preceding '--'. See the man page for a complete list of +# options. +# +# Lines starting with '#' are comments and are ignored. +# +# See the CONFIGURATION FILES section in the man page +# for a detailed description of the syntax. +# +# Profiles should be placed at the bottom of the configuration file to ensure +# that settings wanted as defaults are not restricted to specific profiles. + +################## +# video settings # +################## + +# Start in fullscreen mode by default. +#fs=yes + +# force starting with centered window +# geometry=50%:50% + +# don't allow a new window to have a size larger than 90% of the screen size +#autofit-larger=90%x90% + +# Do not close the window on exit. +#keep-open=yes + +# Do not wait with showing the video window until it has loaded. (This will +# resize the window once video is loaded. Also always shows a window with +# audio.) +#force-window=immediate + +# Disable the On Screen Controller (OSC). +# osc=no + +# Keep the player window on top of all other windows. +#ontop=yes +# window=scale=1.0 + +# Specify high quality video rendering preset (for --vo=gpu only) +# Can cause performance problems with some drivers and GPUs. +# profile=gpu-hq +profile=svp + +# Force video to lock on the display's refresh rate, and change video and audio +# speed to some degree to ensure synchronous playback - can cause problems +# with some drivers and desktop environments. +#video-sync=display-resample + +# Enable hardware decoding if available. Often, this does not work with all +# video outputs, but should work well with default settings on most systems. +# If performance or energy usage is an issue, forcing the vdpau or vaapi VOs +# may or may not help. +# discourged by mpv devs and not likely to make significant difference +# hwdec=auto-copy +# hwdec-codecs=all + +################## +# audio settings # +################## + +# Specify default audio device. You can list devices with: --audio-device=help +# The option takes the device string (the stuff between the '...'). +#audio-device=alsa/default + +# Do not filter audio to keep pitch when changing playback speed. +#audio-pitch-correction=no + +# Output 5.1 audio natively, and upmix/downmix audio with a different format. +#audio-channels=5.1 +# Disable any automatic remix, _if_ the audio output accepts the audio format. +# of the currently played file. See caveats mentioned in the manpage. +# (The default is "auto-safe", see manpage.) +#audio-channels=auto + +################## +# other settings # +################## + +# Pretend to be a web browser. Might fix playback with some streaming sites, +# but also will break with shoutcast streams. +user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" + +# cache settings +# +# Use a large seekable RAM cache even for local input. +cache=yes +# +# Use extra large RAM cache (needs cache=yes to make it useful). +#demuxer-max-bytes=500M +#demuxer-max-back-bytes=100M +# +# Disable the behavior that the player will pause if the cache goes below a +# certain fill size. +#cache-pause=no +# +# Store cache payload on the hard disk instead of in RAM. (This may negatively +# impact performance unless used for slow input such as network.) +#cache-dir=~/.cache/ +#cache-on-disk=yes + +# Display English subtitles if available. +#slang=en + +# Play Finnish audio if available, fall back to English otherwise. +#alang=fi,en + +# Change subtitle encoding. For Arabic subtitles use 'cp1256'. +# If the file seems to be valid UTF-8, prefer UTF-8. +# (You can add '+' in front of the codepage to force it.) +#sub-codepage=cp1256 + +# You can also include other configuration files. +#include=/path/to/the/file/you/want/to/include + +############ +# Profiles # +############ + +# The options declared as part of profiles override global default settings, +# but only take effect when the profile is active. + +# The following profile can be enabled on the command line with: --profile=eye-cancer + +#[eye-cancer] +#sharpen=5 + +sub-font=JetBrainsMono Nerd Font +sub-font-size=50 +osd-font=JetBrainsMono Nerd Font +ytdl-format=bestvideo+bestaudio/best + +geometry=50% + +volume=50 +# speed-step=0.05 +audio-spdif=ac3,eac3,dts-hd,truehd +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +# Can fix stuttering in some cases, in other cases probably causes it. Try it if you experience stuttering. +opengl-early-flush=no + +osc=no + +# keep-open +# get subtitles for videos automatically +sub-auto=fuzzy +ytdl-raw-options=ignore-config=,sub-lang=en,write-auto-sub= +slang=en +# disable subtitles by default +sid=no + +[svp] +input-ipc-server=/tmp/mpvsocket # Receives input from SVP +hr-seek-framedrop=no # Fixes audio desync +resume-playback=no # Not compatible with SVP + +[Idle] +profile-cond=p["idle-active"] +profile-restore=copy-equal +title=' ' +keepaspect=no +background=1 diff --git a/script-opts/mpv-youtube-queue.conf b/script-opts/mpv-youtube-queue.conf new file mode 120000 index 0000000..a0f15ca --- /dev/null +++ b/script-opts/mpv-youtube-queue.conf @@ -0,0 +1 @@ +../mpv-youtube-queue/mpv-youtube-queue.conf \ No newline at end of file diff --git a/script-opts/osc.conf b/script-opts/osc.conf new file mode 100644 index 0000000..01543d1 --- /dev/null +++ b/script-opts/osc.conf @@ -0,0 +1,19 @@ +showwindowed=yes +showfullscreen=yes +scalewindowed=1 +scalefullscreen=1 +scaleforcedwindow=2 +vidscale=yes +hidetimeout=1000 +fadeduration=500 +minmousemove=3 +iamaprogrammer=yes +font='mpv-osd-symbols' +seekrangealpha=128 +title='${media-title}' +showtitle=yes +visibility=auto +windowcontrols=auto +volumecontrol=yes +processvolume=yes +language=eng diff --git a/script-opts/thumbfast.conf b/script-opts/thumbfast.conf new file mode 100644 index 0000000..74e7641 --- /dev/null +++ b/script-opts/thumbfast.conf @@ -0,0 +1,30 @@ +# Socket path (leave empty for auto) +socket= + +# Thumbnail path (leave empty for auto) +thumbnail= + +# Maximum thumbnail size in pixels (scaled down to fit) +# Values are scaled when hidpi is enabled +max_height=500 +max_width=500 + +# Overlay id +overlay_id=42 + +# Spawn thumbnailer on file load for faster initial thumbnails +spawn_first=yes + +# Enable on network playback +network=yes + +# Enable on audio playback +audio=no + +# Enable hardware decoding +hwdec=yes + +# Windows only: use native Windows API to write to pipe (requires LuaJIT) +direct_io=no + +mpv_path=mpv diff --git a/script-opts/youtube-upnext.conf b/script-opts/youtube-upnext.conf new file mode 100644 index 0000000..35cb8e9 --- /dev/null +++ b/script-opts/youtube-upnext.conf @@ -0,0 +1,91 @@ +# KEY BINDINGS + +append_binding=ctrl+SPACE +# invoke or dismiss the quality menu +toggle_menu_binding=ctrl+u +# move the menu cursor up +up_binding=ctrl+k +# move the menu cursor down +down_binding=ctrl+j +# select menu entry +select_binding=ctrl+ENTER + +# auto fetch recommended videos when opening a url +fetch_on_start=no + +# auto load and add the "upnext" video to the playlist +auto_add=no + +# formatting / cursors +cursor_selected=● +cursor_unselected=○ +cursor_appended=▷ +cursor_appended_selected=▶ + +# font size scales by window, if false requires larger font and padding sizes +scale_playlist_by_window=yes + +# playlist ass style overrides inside curly brackets, \keyvalue is one field, extra \ for escape in lua +# example {\\fnUbuntu\\fs10\\b0\\bord1} equals: font=Ubuntu, size=10, bold=no, border=1 +# read http://docs.aegisub.org/3.2/ASS_Tags/ for reference of tags +# undeclared tags will use default osd settings +# these styles will be used for the whole playlist. More specific styling will need to be hacked in +# +# (a monospaced font is recommended but not required) +style_ass_tags={\\fnJetBrainsMono Nerd Font\\fs12} + +# paddings for top left corner +text_padding_x=5 +text_padding_y=5 + +# Screen dim when menu is open 0.0 - 1.0 (0 is no dim, 1 is black) +curtain_opacity=0.7 + +# how many seconds until the quality menu times out +menu_timeout=10 + +# base url for loading new urls, %s will be replaced with video id +youtube_url=https://www.youtube.com/watch?v=%s + +# Fallback Invidious instance. Used if "upnext" could not be retrieved from the normal youtube website +# See https://api.invidious.io/ for alternatives +invidious_instance=https://inv.tux.pizza + +# Keep the width of the window the same when the next video is played +restore_window_width=no + +# On Windows wget.exe may not be able to check SSL certificates for HTTPS, so you can disable it here +check_certificate=yes + + +# Use a cookies file +# Same as youtube-dl --cookies or wget --load-cookies +# If you don't set this, the script may create a cookie file for you +# For example "C:\\Users\\Username\\cookies.txt" +# Or "C:/Users/Username/cookies.txt" +#cookies=cookies.txt + +# When a video is selected from the menu, the new video can be appended to the playlist +# or the playlist can be cleared and replaced with only the selected video. +# If yes, the video will be appended to the playlist. If no, the playlist will be cleared. +keep_playlist_on_select=yes + +# What should happen if a video recommendation in uosc menu is clicked? Options are: +# submenu --> show a submenu with play/upnext/append option +# append --> append the video to the playlist +# insert --> play the video after the current video +# play --> append the video to the playlist and play it +# replace --> play the video and clear the playlist +uosc_entry_action=submenu + +# Should the uosc menu stay open after clicking a video recommendation? +uosc_keep_menu_open=no + +# Don't play/append videos that are shorter than this time. Format is "HH:MM:SS" or "MM:SS" +#skip_shorter_than=00:30 + +# Don't play/append videos that are longer than this time. Format is "HH:MM:SS" or "MM:SS" +#skip_longer_than=07:00 + +# Also don't show the videos in the menu that are too short or too long +#hide_skipped_videos=yes diff --git a/scripts/modern.lua b/scripts/modern.lua new file mode 120000 index 0000000..a6b9e02 --- /dev/null +++ b/scripts/modern.lua @@ -0,0 +1 @@ +../mpv-osc-modern/modern.lua \ No newline at end of file diff --git a/scripts/mpv-youtube-queue.lua b/scripts/mpv-youtube-queue.lua new file mode 120000 index 0000000..7238adc --- /dev/null +++ b/scripts/mpv-youtube-queue.lua @@ -0,0 +1 @@ +../mpv-youtube-queue/mpv-youtube-queue.lua \ No newline at end of file diff --git a/scripts/pause-indicator.lua b/scripts/pause-indicator.lua new file mode 100644 index 0000000..8d96ac5 --- /dev/null +++ b/scripts/pause-indicator.lua @@ -0,0 +1,1025 @@ +local msg = require('mp.msg') +local log = { + debug = function(format, ...) + return msg.debug(format:format(...)) + end, + info = function(format, ...) + return msg.info(format:format(...)) + end, + warn = function(format, ...) + return msg.warn(format:format(...)) + end, + dump = function(item, ignore) + local level = 2 + if "table" ~= type(item) then + msg.info(tostring(item)) + return + end + local count = 1 + local tablecount = 1 + local result = { + "{ @" .. tostring(tablecount) + } + local seen = { + [item] = tablecount + } + local recurse + recurse = function(item, space) + for key, value in pairs(item) do + if not (key == ignore) then + if "table" == type(value) then + if not (seen[value]) then + tablecount = tablecount + 1 + seen[value] = tablecount + count = count + 1 + result[count] = space .. tostring(key) .. ": { @" .. tostring(tablecount) + recurse(value, space .. " ") + count = count + 1 + result[count] = space .. "}" + else + count = count + 1 + result[count] = space .. tostring(key) .. ": @" .. tostring(seen[value]) + end + else + if "string" == type(value) then + value = ("%q"):format(value) + end + count = count + 1 + result[count] = space .. tostring(key) .. ": " .. tostring(value) + end + end + end + end + recurse(item, " ") + count = count + 1 + result[count] = "}" + return msg.info(table.concat(result, "\n")) + end +} +local options = require('mp.options') +local utils = require('mp.utils') +local script_name = 'torque-progressbar' +mp.get_osd_size = mp.get_osd_size or mp.get_screen_size +local settings = { + __defaults = { } +} +local settingsMeta = { + __reload = function(self) + for key, value in pairs(self.__defaults) do + settings[key] = value + end + options.read_options(self, script_name .. '/main') + if self['bar-height-inactive'] <= 0 then + self['bar-hide-inactive'] = true + self['bar-height-inactive'] = 1 + end + end, + __migrate = function(self) + local oldConfig = mp.find_config_file(('lua-settings/%s.conf'):format(script_name)) + local newConfigFile = ('lua-settings/%s/main.conf'):format(script_name) + local newConfig = mp.find_config_file(newConfigFile) + if oldConfig and not newConfig then + local folder, _ = utils.split_path(oldConfig) + local configDir = utils.join_path(folder, script_name) + newConfig = utils.join_path(configDir, 'main.conf') + log.info(('Old configuration detected. Attempting to migrate %q -> %q'):format(oldConfig, newConfig)) + local dirExists = mp.find_config_file(configDir) + if dirExists and not utils.readdir(configDir) then + log.warn(('Configuration migration failed. %q exists and does not appear to be a folder'):format(configDir)) + return + else + if not dirExists then + local res = utils.subprocess({ + args = { + 'mkdir', + configDir + } + }) + if res.error or res.status ~= 0 then + log.warn(('Making directory %q failed.'):format(configDir)) + return + end + end + end + local res = utils.subprocess({ + args = { + 'mv', + oldConfig, + newConfig + } + }) + if res.error or res.status ~= 0 then + log.warn(('Moving file %q -> %q failed.'):format(oldConfig, newConfig)) + return + end + if mp.find_config_file(newConfigFile) then + return log.info('Configuration successfully migrated.') + end + end + end, + __newindex = function(self, key, value) + self.__defaults[key] = value + return rawset(self, key, value) + end +} +settingsMeta.__index = settingsMeta +setmetatable(settings, settingsMeta) +settings:__migrate() +local helpText = { } +settings['hover-zone-height'] = 40 +helpText['hover-zone-height'] = [[Sets the height of the rectangular area at the bottom of the screen that expands +the progress bar and shows playback time information when the mouse is hovered +over it. +]] +settings['top-hover-zone-height'] = 40 +helpText['top-hover-zone-height'] = [[Sets the height of the rectangular area at the top of the screen that shows the +file name and system time when the mouse is hovered over it. +]] +settings['display-scale-factor'] = 1 +helpText['display-scale-factor'] = [[Acts as a multiplier to increase the size of every UI element. Useful for high- +DPI displays that cause the UI to be rendered too small (happens at least on +macOS). +]] +settings['default-style'] = [[\fnSource Sans Pro\b1\bord2\shad0\fs30\c&HFC799E&\3c&H2D2D2D&]] +helpText['default-style'] = [[Default style that is applied to all UI elements. A string of ASS override tags. +Individual elements have their own style settings which override the tags here. +Changing the font will likely require changing the hover-time margin settings +and the offscreen-pos settings. + +Here are some useful ASS override tags (omit square brackets): +\fn[Font Name]: sets the font to the named font. +\fs[number]: sets the font size to the given number. +\b[1/0]: sets the text bold or not (\b1 is bold, \b0 is regular weight). +\i[1/0]: sets the text italic or not (same semantics as bold). +\bord[number]: sets the outline width to the given number (in pixels). +\shad[number]: sets the shadow size to the given number (pixels). +\c&H[BBGGRR]&: sets the fill color for the text to the given color (hex pairs in + the order, blue, green, red). +\3c&H[BBGGRR]&: sets the outline color of the text to the given color. +\4c&H[BBGGRR]&: sets the shadow color of the text to the given color. +\alpha&H[AA]&: sets the line's transparency as a hex pair. 00 is fully opaque + and FF is fully transparent. Some UI elements are composed of + multiple layered lines, so adding transparency may not look good. + For further granularity, \1a&H[AA]& controls the fill opacity, + \3a&H[AA]& controls the outline opacity, and \4a&H[AA]& controls + the shadow opacity. +]] +settings['enable-bar'] = true +helpText['enable-bar'] = [[Controls whether or not the progress bar is drawn at all. If this is disabled, +it also (naturally) disables the click-to-seek functionality. +]] +settings['bar-hide-inactive'] = false +helpText['bar-hide-inactive'] = [[Causes the bar to not be drawn unless the mouse is hovering over it or a +request-display call is active. This is somewhat redundant with setting bar- +height-inactive=0, except that it can allow for very rudimentary context- +sensitive behavior because it can be toggled at runtime. For example, by using +the binding `f cycle pause; script-binding progressbar/toggle-inactive-bar`, it +is possible to have the bar be persistently present only in windowed or +fullscreen contexts, depending on the default setting. +]] +settings['bar-height-inactive'] = 2 +helpText['bar-height-inactive'] = [[Sets the height of the bar display when the mouse is not in the active zone and +there is no request-display active. A value of 0 or less will cause bar-hide- +inactive to be set to true and the bar height to be set to 1. This should result +in the desired behavior while avoiding annoying debug logging in mpv (libass +does not like zero-height objects). +]] +settings['bar-height-active'] = 8 +helpText['bar-height-active'] = [[Sets the height of the bar display when the mouse is in the active zone or +request-display is active. There is no logic attached to this, so 0 or negative +values may have unexpected results. +]] +settings['progress-bar-width'] = 0 +helpText['progress-bar-width'] = [[If greater than zero, changes the progress bar style to be a small segment +rather than a continuous bar and sets its width. +]] +settings['seek-precision'] = 'exact' +helpText['seek-precision'] = [[Affects precision of seeks due to clicks on the progress bar. Should be 'exact' or +'keyframes'. Exact is slightly slower, but won't jump around between two +different times when clicking in the same place. + +Actually, this gets passed directly into the `seek` command, so the value can be +any of the arguments supported by mpv, though the ones above are the only ones +that really make sense. +]] +settings['bar-default-style'] = [[\bord0\shad0]] +helpText['bar-default-style'] = [[A string of ASS override tags that get applied to all three layers of the bar: +progress, cache, and background. You probably don't want to remove \bord0 unless +your default-style includes it. +]] +settings['bar-foreground-style'] = '' +helpText['bar-foreground-style'] = [[A string of ASS override tags that get applied only to the progress layer of the +bar. +]] +settings['bar-cache-style'] = [[\c&H515151&]] +helpText['bar-cache-style'] = [[A string of ASS override tags that get applied only to the cache layer of the +bar. The default sets only the color. +]] +settings['bar-background-style'] = [[\c&H2D2D2D&]] +helpText['bar-background-style'] = [[A string of ASS override tags that get applied only to the background layer of +the bar. The default sets only the color. +]] +settings['enable-elapsed-time'] = true +helpText['enable-elapsed-time'] = [[Sets whether or not the elapsed time is displayed at all. +]] +settings['elapsed-style'] = '' +helpText['elapsed-style'] = [[A string of ASS override tags that get applied only to the elapsed time display. +]] +settings['elapsed-left-margin'] = 4 +helpText['elapsed-left-margin'] = [[Controls how far from the left edge of the window the elapsed time display is +positioned. +]] +settings['elapsed-bottom-margin'] = 0 +helpText['elapsed-bottom-margin'] = [[Controls how far above the expanded progress bar the elapsed time display is +positioned. +]] +settings['enable-remaining-time'] = true +helpText['enable-remaining-time'] = [[Sets whether or not the remaining time is displayed at all. +]] +settings['remaining-style'] = '' +helpText['remaining-style'] = [[A string of ASS override tags that get applied only to the remaining time +display. +]] +settings['remaining-right-margin'] = 4 +helpText['remaining-right-margin'] = [[Controls how far from the right edge of the window the remaining time display is +positioned. +]] +settings['remaining-bottom-margin'] = 0 +helpText['remaining-bottom-margin'] = [[Controls how far above the expanded progress bar the remaining time display is +positioned. +]] +settings['enable-hover-time'] = true +helpText['enable-hover-time'] = [[Sets whether or not the calculated time corresponding to the mouse position +is displayed when the mouse hovers over the progress bar. +]] +settings['hover-time-style'] = [[\fs26]] +helpText['hover-time-style'] = [[A string of ASS override tags that get applied only to the hover time display. +Unfortunately, due to the way the hover time display is animated, alpha values +set here will be overridden. This is subject to change in future versions. +]] +settings['hover-time-left-margin'] = 120 +helpText['hover-time-left-margin'] = [[Controls how close to the left edge of the window the hover time display can +get. If this value is too small, it will end up overlapping the elapsed time +display. +]] +settings['hover-time-right-margin'] = 130 +helpText['hover-time-right-margin'] = [[Controls how close to the right edge of the window the hover time display can +get. If this value is too small, it will end up overlapping the remaining time +display. +]] +settings['hover-time-bottom-margin'] = 0 +helpText['hover-time-bottom-margin'] = [[Controls how far above the expanded progress bar the remaining time display is +positioned. +]] +settings['enable-title'] = true +helpText['enable-title'] = [[Sets whether or not the video title is displayed at all. +]] +settings['title-style'] = '' +helpText['title-style'] = [[A string of ASS override tags that get applied only to the video title display. +]] +settings['title-left-margin'] = 4 +helpText['title-left-margin'] = [[Controls how far from the left edge of the window the video title display is +positioned. +]] +settings['title-top-margin'] = 0 +helpText['title-top-margin'] = [[Controls how far from the top edge of the window the video title display is +positioned. +]] +settings['title-print-to-cli'] = true +helpText['title-print-to-cli'] = [[Controls whether or not the script logs the video title and playlist position +to the console every time a new video starts. +]] +settings['enable-system-time'] = true +helpText['enable-system-time'] = [[Sets whether or not the system time is displayed at all. +]] +settings['system-time-style'] = '' +helpText['system-time-style'] = [[A string of ASS override tags that get applied only to the system time display. +]] +settings['system-time-format'] = '%H:%M' +helpText['system-time-format'] = [[Sets the format used for the system time display. This must be a strftime- +compatible format string. +]] +settings['system-time-right-margin'] = 4 +helpText['system-time-right-margin'] = [[Controls how far from the right edge of the window the system time display is +positioned. +]] +settings['system-time-top-margin'] = 0 +helpText['system-time-top-margin'] = [[Controls how far from the top edge of the window the system time display is +positioned. +]] +settings['pause-indicator'] = true +helpText['pause-indicator'] = [[Sets whether or not the pause indicator is displayed. The pause indicator is a +momentary icon that flashes in the middle of the screen, similar to youtube. +]] +settings['pause-indicator-foreground-style'] = [[\c&HFC799E&]] +helpText['pause-indicator-foreground-style'] = [[A string of ASS override tags that get applied only to the foreground of the +pause indicator. +]] +settings['pause-indicator-background-style'] = [[\c&H2D2D2D&]] +helpText['pause-indicator-background-style'] = [[A string of ASS override tags that get applied only to the background of the +pause indicator. +]] +settings['enable-chapter-markers'] = true +helpText['enable-chapter-markers'] = [[Sets whether or not the progress bar is decorated with chapter markers. Due to +the way the chapter markers are currently implemented, videos with a large +number of chapters may slow down the script somewhat, but I have yet to run +into this being a problem. +]] +settings['chapter-marker-width'] = 2 +helpText['chapter-marker-width'] = [[Controls the width of each chapter marker when the progress bar is inactive. +]] +settings['chapter-marker-width-active'] = 4 +helpText['chapter-marker-width-active'] = [[Controls the width of each chapter marker when the progress bar is active. +]] +settings['chapter-marker-active-height-fraction'] = 1 +helpText['chapter-marker-active-height-fraction'] = [[Modifies the height of the chapter markers when the progress bar is active. Acts +as a multiplier on the height of the active progress bar. A value greater than 1 +will cause the markers to be taller than the expanded progress bar, whereas a +value less than 1 will cause them to be shorter. +]] +settings['chapter-marker-before-style'] = [[\c&HFC799E&]] +helpText['chapter-marker-before-style'] = [[A string of ASS override tags that get applied only to chapter markers that have +not yet been passed. +]] +settings['chapter-marker-after-style'] = [[\c&H2D2D2D&]] +helpText['chapter-marker-after-style'] = [[A string of ASS override tags that get applied only to chapter markers that have +already been passed. +]] +settings['request-display-duration'] = 1 +helpText['request-display-duration'] = [[Sets the amount of time in seconds that the UI stays on the screen after it +receives a request-display signal. A value of 0 will keep the display on screen +only as long as the key bound to it is held down. +]] +settings['redraw-period'] = 0.03 +helpText['redraw-period'] = [[Controls how often the display is redrawn, in seconds. This does not seem to +significantly affect the smoothness of animations, and it is subject to the +accuracy limits imposed by the scheduler mpv uses. Probably not worth changing +unless you have major performance problems. +]] +settings['animation-duration'] = 0.25 +helpText['animation-duration'] = [[Controls how long the UI animations take. A value of 0 disables all animations +(which breaks the pause indicator). +]] +settings['elapsed-offscreen-pos'] = -100 +helpText['elapsed-offscreen-pos'] = [[Controls how far off the left side of the window the elapsed time display tries +to move when it is inactive. If you use a non-default font, this value may need +to be tweaked. If this value is not far enough off-screen, the elapsed display +will disappear without animating all the way off-screen. Positive values will +cause the display to animate the wrong direction. +]] +settings['remaining-offscreen-pos'] = -100 +helpText['remaining-offscreen-pos'] = [[Controls how far off the left side of the window the remaining time display +tries to move when it is inactive. If you use a non-default font, this value may +need to be tweaked. If this value is not far enough off-screen, the elapsed +display will disappear without animating all the way off-screen. Positive values +will cause the display to animate the wrong direction. +]] +settings['hover-time-offscreen-pos'] = -50 +helpText['hover-time-offscreen-pos'] = [[Controls how far off the bottom of the window the mouse hover time display tries +to move when it is inactive. If you use a non-default font, this value may need +to be tweaked. If this value is not far enough off-screen, the elapsed +display will disappear without animating all the way off-screen. Positive values +will cause the display to animate the wrong direction. +]] +settings['system-time-offscreen-pos'] = -100 +helpText['system-time-offscreen-pos'] = [[Controls how far off the left side of the window the system time display tries +to move when it is inactive. If you use a non-default font, this value may need +to be tweaked. If this value is not far enough off-screen, the elapsed display +will disappear without animating all the way off-screen. Positive values will +cause the display to animate the wrong direction. +]] +settings['title-offscreen-pos'] = -40 +helpText['title-offscreen-pos'] = [[Controls how far off the left side of the window the video title display tries +to move when it is inactive. If you use a non-default font, this value may need +to be tweaked. If this value is not far enough off-screen, the elapsed display +will disappear without animating all the way off-screen. Positive values will +cause the display to animate the wrong direction. +]] +settings:__reload() +local Stack +do + local _class_0 + local removeElementMetadata, reindex + local _base_0 = { + insert = function(self, element, index) + if index then + table.insert(self, index, element) + element[self] = index + else + table.insert(self, element) + element[self] = #self + end + if self.containmentKey then + element[self.containmentKey] = true + end + end, + remove = function(self, element) + if element[self] == nil then + error("Trying to remove an element that doesn't exist in this stack.") + end + table.remove(self, element[self]) + reindex(self, element[self]) + return removeElementMetadata(self, element) + end, + clear = function(self) + local element = table.remove(self) + while element do + removeElementMetadata(self, element) + element = table.remove(self) + end + end, + removeSortedList = function(self, elementList) + if #elementList < 1 then + return + end + for i = 1, #elementList - 1 do + local element = table.remove(elementList) + table.remove(self, element[self]) + removeElementMetadata(self, element) + end + local lastElement = table.remove(elementList) + table.remove(self, lastElement[self]) + reindex(self, lastElement[self]) + return removeElementMetadata(self, lastElement) + end, + removeList = function(self, elementList) + table.sort(elementList, function(a, b) + return a[self] < b[self] + end) + return self:removeSortedList(elementList) + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self, containmentKey) + self.containmentKey = containmentKey + end, + __base = _base_0, + __name = "Stack" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + local self = _class_0 + removeElementMetadata = function(self, element) + element[self] = nil + if self.containmentKey then + element[self.containmentKey] = false + end + end + reindex = function(self, start) + if start == nil then + start = 1 + end + for i = start, #self do + (self[i])[self] = i + end + end + Stack = _class_0 +end +local Window +do + local _class_0 + local osdScale + local _base_0 = { } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function() end, + __base = _base_0, + __name = "Window" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + local self = _class_0 + osdScale = settings['display-scale-factor'] + self.__class.w, self.__class.h = 0, 0 + self.update = function(self) + local w, h = mp.get_osd_size() + w, h = math.floor(w / osdScale), math.floor(h / osdScale) + if w ~= self.w or h ~= self.h then + self.w, self.h = w, h + return true + else + return false + end + end + Window = _class_0 +end +local Rect +do + local _class_0 + local _base_0 = { + cacheMaxBounds = function(self) + self.xMax = self.x + self.w + self.yMax = self.y + self.h + end, + setPosition = function(self, x, y) + self.x = x or self.x + self.y = y or self.y + return self:cacheMaxBounds() + end, + setSize = function(self, w, h) + self.w = w or self.w + self.h = h or self.h + return self:cacheMaxBounds() + end, + reset = function(self, x, y, w, h) + self.x = x or self.x + self.y = y or self.y + self.w = w or self.w + self.h = h or self.h + return self:cacheMaxBounds() + end, + move = function(self, x, y) + self.x = self.x + (x or self.x) + self.y = self.y + (y or self.y) + return self:cacheMaxBounds() + end, + stretch = function(self, w, h) + self.w = self.w + (w or self.w) + self.h = self.h + (h or self.h) + return self:cacheMaxBounds() + end, + containsPoint = function(self, x, y) + return (x >= self.x) and (x < self.xMax) and (y >= self.y) and (y < self.yMax) + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self, x, y, w, h) + if x == nil then + x = -1 + end + if y == nil then + y = -1 + end + if w == nil then + w = -1 + end + if h == nil then + h = -1 + end + self.x, self.y, self.w, self.h = x, y, w, h + return self:cacheMaxBounds() + end, + __base = _base_0, + __name = "Rect" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + Rect = _class_0 +end +local AnimationQueue +do + local _class_0 + local animationList, deletionQueue + local _base_0 = { } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function() end, + __base = _base_0, + __name = "AnimationQueue" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + local self = _class_0 + animationList = Stack('active') + deletionQueue = { } + self.addAnimation = function(animation) + if not (animation.active) then + return animationList:insert(animation) + end + end + self.removeAnimation = function(animation) + if animation.active then + return animationList:remove(animation) + end + end + self.destroyAnimationStack = function() + return animationList:clear() + end + self.animate = function() + if #animationList == 0 then + return + end + local currentTime = mp.get_time() + for _, animation in ipairs(animationList) do + if animation:update(currentTime) then + table.insert(deletionQueue, animation) + end + end + if #deletionQueue > 0 then + return animationList:removeSortedList(deletionQueue) + end + end + self.active = function() + return #animationList > 0 + end + AnimationQueue = _class_0 +end +local EventLoop +do + local _class_0 + local _base_0 = { + reconfigure = function(self) + settings:__reload() + AnimationQueue.destroyAnimationStack() + for _, zone in ipairs(self.activityZones) do + zone:reconfigure() + end + for _, element in ipairs(self.uiElements) do + element:reconfigure() + end + end, + addZone = function(self, zone) + if zone == nil then + return + end + return self.activityZones:insert(zone) + end, + removeZone = function(self, zone) + if zone == nil then + return + end + return self.activityZones:remove(zone) + end, + generateUIFromZones = function(self) + local seenUIElements = { } + self.script = { } + self.uiElements:clear() + AnimationQueue.destroyAnimationStack() + for _, zone in ipairs(self.activityZones) do + for _, uiElement in ipairs(zone.elements) do + if not (seenUIElements[uiElement]) then + self:addUIElement(uiElement) + seenUIElements[uiElement] = true + end + end + end + return self.updateTimer:resume() + end, + addUIElement = function(self, uiElement) + if uiElement == nil then + error('nil UIElement added.') + end + self.uiElements:insert(uiElement) + return table.insert(self.script, '') + end, + removeUIElement = function(self, uiElement) + if uiElement == nil then + error('nil UIElement removed.') + end + table.remove(self.script, uiElement[self.uiElements]) + return self.uiElements:remove(uiElement) + end, + resize = function(self) + for _, zone in ipairs(self.activityZones) do + zone:resize() + end + for _, uiElement in ipairs(self.uiElements) do + uiElement:resize() + end + end, + redraw = function(self, forceRedraw) + if Window:update() then + self:resize() + end + for index, zone in ipairs(self.activityZones) do + zone:update(self.displayRequested, false) + end + AnimationQueue.animate() + for index, uiElement in ipairs(self.uiElements) do + if uiElement:redraw() then + self.script[index] = uiElement:stringify() + end + end + return mp.set_osd_ass(Window.w, Window.h, table.concat(self.script, '\n')) + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self) + self.script = { } + self.uiElements = Stack() + self.activityZones = Stack() + self.displayRequested = false + self.updateTimer = mp.add_periodic_timer(settings['redraw-period'], (function() + local _base_1 = self + local _fn_0 = _base_1.redraw + return function(...) + return _fn_0(_base_1, ...) + end + end)()) + self.updateTimer:stop() + mp.register_event('shutdown', function() + return self.updateTimer:kill() + end) + local displayRequestTimer + local displayDuration = settings['request-display-duration'] + mp.add_key_binding("tab", "request-display", function(event) + if event.event == "repeat" then + return + end + if event.event == "down" or event.event == "press" then + if displayRequestTimer then + displayRequestTimer:kill() + end + self.displayRequested = true + end + if event.event == "up" or event.event == "press" then + if displayDuration == 0 then + self.displayRequested = false + else + displayRequestTimer = mp.add_timeout(displayDuration, function() + self.displayRequested = false + end) + end + end + end, { + complex = true + }) + return mp.add_key_binding('ctrl+r', 'reconfigure', (function() + local _base_1 = self + local _fn_0 = _base_1.reconfigure + return function(...) + return _fn_0(_base_1, ...) + end + end)(), { + repeatable = false + }) + end, + __base = _base_0, + __name = "EventLoop" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + EventLoop = _class_0 +end +local Animation +do + local _class_0 + local _base_0 = { + update = function(self, now) + if self.isReversed then + self.linearProgress = math.max(0, math.min(1, self.linearProgress + (self.lastUpdate - now) * self.durationR)) + if self.linearProgress == 0 then + self.isFinished = true + end + else + self.linearProgress = math.max(0, math.min(1, self.linearProgress + (now - self.lastUpdate) * self.durationR)) + if self.linearProgress == 1 then + self.isFinished = true + end + end + self.lastUpdate = now + local progress = math.pow(self.linearProgress, self.accel) + self.value = (1 - progress) * self.initialValue + progress * self.endValue + self.updateCb(self.value) + if self.isFinished and self.finishedCb then + self:finishedCb() + end + return self.isFinished + end, + interrupt = function(self, reverse) + self.finishedCb = nil + self.lastUpdate = mp.get_time() + self.isReversed = reverse + if not (self.active) then + self.isFinished = false + return AnimationQueue.addAnimation(self) + end + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self, initialValue, endValue, duration, updateCb, finishedCb, accel) + if accel == nil then + accel = 1 + end + self.initialValue, self.endValue, self.duration, self.updateCb, self.finishedCb, self.accel = initialValue, endValue, duration, updateCb, finishedCb, accel + self.value = self.initialValue + self.linearProgress = 0 + self.lastUpdate = mp.get_time() + self.durationR = 1 / self.duration + self.isFinished = (self.duration <= 0) + self.active = false + self.isReversed = false + end, + __base = _base_0, + __name = "Animation" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + Animation = _class_0 +end +local UIElement +do + local _class_0 + local _base_0 = { + stringify = function(self) + self.needsUpdate = false + if not self.active then + return '' + else + return table.concat(self.line) + end + end, + activate = function(self, activate) + if activate == true then + self.animation:interrupt(false) + self.active = true + else + self.animation:interrupt(true) + self.animation.finishedCb = function() + self.active = false + end + end + end, + reconfigure = function(self) + self.needsUpdate = true + self.animationDuration = settings['animation-duration'] + end, + resize = function(self) + return error('UIElement updateSize called') + end, + redraw = function(self) + return self.needsUpdate + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self) + self.needsUpdate = false + self.active = false + self.animationDuration = settings['animation-duration'] + end, + __base = _base_0, + __name = "UIElement" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + UIElement = _class_0 +end +local PauseIndicator +do + local _class_0 + local _base_0 = { + stringify = function(self) + return table.concat(self.line) + end, + resize = function(self) + local w, h = 0.5 * Window.w, 0.5 * Window.h + self.line[5] = ([[%g,%g]]):format(w, h) + self.line[12] = ([[%g,%g]]):format(w, h) + end, + redraw = function() + return true + end, + animate = function(self, value) + local scale = value * 50 + 100 + local scaleStr = ([[{\fscx%g\fscy%g]]):format(scale, scale) + local alphaStr = ('%02X'):format(value * value * 255) + self.line[1] = scaleStr + self.line[8] = scaleStr + self.line[3] = alphaStr + self.line[10] = alphaStr + end, + destroy = function(self, animation) + return self.eventLoop:removeUIElement(self) + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self, eventLoop, paused) + self.eventLoop = eventLoop + local w, h = 0.5 * Window.w, 0.5 * Window.h + self.line = { + [[{\fscx0\fscy0]], + [[\alpha&H]], + 0, + [[&\pos(]], + ([[%g,%g]]):format(w, h), + ([[)\an5\bord0%s\p1}]]):format(settings['pause-indicator-background-style']), + 0, + [[{\fscx0\fscy0]], + [[\alpha&H]], + 0, + [[&\pos(]], + ([[%g,%g]]):format(w, h), + ([[)\an5\bord0%s\p1}]]):format(settings['pause-indicator-foreground-style']), + 0 + } + if paused then + self.line[7] = 'm 75 37.5 b 75 58.21 58.21 75 37.5 75 16.79 75 0 58.21 0 37.5 0 16.79 16.79 0 37.5 0 58.21 0 75 16.79 75 37.5 m 23 20 l 23 55 33 55 33 20 m 42 20 l 42 55 52 55 52 20\n' + self.line[14] = 'm 0 0 m 75 75 m 23 20 l 23 55 33 55 33 20 m 42 20 l 42 55 52 55 52 20' + else + self.line[7] = 'm 75 37.5 b 75 58.21 58.21 75 37.5 75 16.79 75 0 58.21 0 37.5 0 16.79 16.79 0 37.5 0 58.21 0 75 16.79 75 37.5 m 25.8333 17.18 l 25.8333 57.6 60.8333 37.39\n' + self.line[14] = 'm 0 0 m 75 75 m 25.8333 17.18 l 25.8333 57.6 60.8333 37.39' + end + AnimationQueue.addAnimation(Animation(0, 1, settings['animation-duration'], (function() + local _base_1 = self + local _fn_0 = _base_1.animate + return function(...) + return _fn_0(_base_1, ...) + end + end)(), (function() + local _base_1 = self + local _fn_0 = _base_1.destroy + return function(...) + return _fn_0(_base_1, ...) + end + end)())) + return self.eventLoop:addUIElement(self) + end, + __base = _base_0, + __name = "PauseIndicator" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + PauseIndicator = _class_0 +end +local eventLoop = EventLoop() +local notFrameStepping = false +if settings['pause-indicator'] then + local PauseIndicatorWrapper + PauseIndicatorWrapper = function(event, paused) + if notFrameStepping then + return PauseIndicator(eventLoop, paused) + elseif paused then + notFrameStepping = true + end + end + mp.add_key_binding('.', 'step-forward', function() + notFrameStepping = false + return mp.commandv('frame_step') + end, { + repeatable = true + }) + mp.add_key_binding(',', 'step-backward', function() + notFrameStepping = false + return mp.commandv('frame_back_step') + end, { + repeatable = true + }) + mp.observe_property('pause', 'bool', PauseIndicatorWrapper) +end +local initDraw +initDraw = function() + mp.unregister_event(initDraw) + notFrameStepping = true + eventLoop:resize() + eventLoop:redraw() + return eventLoop.updateTimer:resume() +end +local fileLoaded +fileLoaded = function() + return mp.register_event('playback-restart', initDraw) +end +return mp.register_event('file-loaded', fileLoaded) diff --git a/scripts/reload.lua b/scripts/reload.lua new file mode 100644 index 0000000..8b9e355 --- /dev/null +++ b/scripts/reload.lua @@ -0,0 +1,418 @@ +-- reload.lua +-- +-- When an online video is stuck buffering or got very slow CDN +-- source, restarting often helps. This script provides automatic +-- reloading of videos that doesn't have buffering progress for some +-- time while keeping the current time position. It also adds `Ctrl+r` +-- keybinding to reload video manually. +-- +-- SETTINGS +-- +-- To override default setting put the `lua-settings/reload.conf` file in +-- mpv user folder, on linux it is `~/.config/mpv`. NOTE: config file +-- name should match the name of the script. +-- +-- Default `reload.conf` settings: +-- +-- ``` +-- # enable automatic reload on timeout +-- # when paused-for-cache event fired, we will wait +-- # paused_for_cache_timer_timeout sedonds and then reload the video +-- paused_for_cache_timer_enabled=yes +-- +-- # checking paused_for_cache property interval in seconds, +-- # can not be less than 0.05 (50 ms) +-- paused_for_cache_timer_interval=1 +-- +-- # time in seconds to wait until reload +-- paused_for_cache_timer_timeout=10 +-- +-- # enable automatic reload based on demuxer cache +-- # if demuxer-cache-time property didn't change in demuxer_cache_timer_timeout +-- # time interval, the video will be reloaded as soon as demuxer cache depleated +-- demuxer_cache_timer_enabled=yes +-- +-- # checking demuxer-cache-time property interval in seconds, +-- # can not be less than 0.05 (50 ms) +-- demuxer_cache_timer_interval=2 +-- +-- # if demuxer cache didn't receive any data during demuxer_cache_timer_timeout +-- # we decide that it has no progress and will reload the stream when +-- # paused_for_cache event happens +-- demuxer_cache_timer_timeout=20 +-- +-- # when the end-of-file is reached, reload the stream to check +-- # if there is more content available. +-- reload_eof_enabled=no +-- +-- # keybinding to reload stream from current time position +-- # you can disable keybinding by setting it to empty value +-- # reload_key_binding= +-- reload_key_binding=Ctrl+r +-- ``` +-- +-- DEBUGGING +-- +-- Debug messages will be printed to stdout with mpv command line option +-- `--msg-level='reload=debug'`. You may also need to add the `--no-msg-color` +-- option to make the debug logs visible if you are using a dark colorscheme +-- in terminal. + +local msg = require 'mp.msg' +local options = require 'mp.options' +local utils = require 'mp.utils' + + +local settings = { + paused_for_cache_timer_enabled = true, + paused_for_cache_timer_interval = 1, + paused_for_cache_timer_timeout = 10, + demuxer_cache_timer_enabled = true, + demuxer_cache_timer_interval = 2, + demuxer_cache_timer_timeout = 20, + reload_eof_enabled = false, + reload_key_binding = "Ctrl+r", +} + +-- global state stores properties between reloads +local property_path = nil +local property_time_pos = 0 +local property_keep_open = nil + +-- FSM managing the demuxer cache. +-- +-- States: +-- +-- * fetch - fetching new data +-- * stale - unable to fetch new data for time < 'demuxer_cache_timer_timeout' +-- * stuck - unable to fetch new data for time >= 'demuxer_cache_timer_timeout' +-- +-- State transitions: +-- +-- +---------------------------+ +-- v | +-- +-------+ +-------+ +-------+ +-- + fetch +<--->+ stale +---->+ stuck | +-- +-------+ +-------+ +-------+ +-- | ^ | ^ | ^ +-- +---+ +---+ +---+ +local demuxer_cache = { + timer = nil, + + state = { + name = 'uninitialized', + demuxer_cache_time = 0, + in_state_time = 0, + }, + + events = { + continue_fetch = { name = 'continue_fetch', from = 'fetch', to = 'fetch' }, + continue_stale = { name = 'continue_stale', from = 'stale', to = 'stale' }, + continue_stuck = { name = 'continue_stuck', from = 'stuck', to = 'stuck' }, + fetch_to_stale = { name = 'fetch_to_stale', from = 'fetch', to = 'stale' }, + stale_to_fetch = { name = 'stale_to_fetch', from = 'stale', to = 'fetch' }, + stale_to_stuck = { name = 'stale_to_stuck', from = 'stale', to = 'stuck' }, + stuck_to_fetch = { name = 'stuck_to_fetch', from = 'stuck', to = 'fetch' }, + }, + +} + +-- Always start with 'fetch' state +function demuxer_cache.reset_state() + demuxer_cache.state = { + name = demuxer_cache.events.continue_fetch.to, + demuxer_cache_time = 0, + in_state_time = 0, + } +end + +-- Has 'demuxer_cache_time' changed +function demuxer_cache.has_progress_since(t) + return demuxer_cache.state.demuxer_cache_time ~= t +end + +function demuxer_cache.is_state_fetch() + return demuxer_cache.state.name == demuxer_cache.events.continue_fetch.to +end + +function demuxer_cache.is_state_stale() + return demuxer_cache.state.name == demuxer_cache.events.continue_stale.to +end + +function demuxer_cache.is_state_stuck() + return demuxer_cache.state.name == demuxer_cache.events.continue_stuck.to +end + +function demuxer_cache.transition(event) + if demuxer_cache.state.name == event.from then + + -- state setup + demuxer_cache.state.demuxer_cache_time = event.demuxer_cache_time + + if event.name == 'continue_fetch' then + demuxer_cache.state.in_state_time = demuxer_cache.state.in_state_time + event.interval + elseif event.name == 'continue_stale' then + demuxer_cache.state.in_state_time = demuxer_cache.state.in_state_time + event.interval + elseif event.name == 'continue_stuck' then + demuxer_cache.state.in_state_time = demuxer_cache.state.in_state_time + event.interval + elseif event.name == 'fetch_to_stale' then + demuxer_cache.state.in_state_time = 0 + elseif event.name == 'stale_to_fetch' then + demuxer_cache.state.in_state_time = 0 + elseif event.name == 'stale_to_stuck' then + demuxer_cache.state.in_state_time = 0 + elseif event.name == 'stuck_to_fetch' then + demuxer_cache.state.in_state_time = 0 + end + + -- state transition + demuxer_cache.state.name = event.to + + msg.debug('demuxer_cache.transition', event.name, utils.to_string(demuxer_cache.state)) + else + msg.error( + 'demuxer_cache.transition', + 'illegal transition', event.name, + 'from state', demuxer_cache.state.name) + end +end + +function demuxer_cache.initialize(demuxer_cache_timer_interval) + demuxer_cache.reset_state() + demuxer_cache.timer = mp.add_periodic_timer( + demuxer_cache_timer_interval, + function() + demuxer_cache.demuxer_cache_timer_tick( + mp.get_property_native('demuxer-cache-time'), + demuxer_cache_timer_interval) + end + ) +end + +-- If there is no progress of demuxer_cache_time in +-- settings.demuxer_cache_timer_timeout time interval switch state to +-- 'stuck' and switch back to 'fetch' as soon as any progress is made +function demuxer_cache.demuxer_cache_timer_tick(demuxer_cache_time, demuxer_cache_timer_interval) + local event = nil + local cache_has_progress = demuxer_cache.has_progress_since(demuxer_cache_time) + + -- I miss pattern matching so much + if demuxer_cache.is_state_fetch() then + if cache_has_progress then + event = demuxer_cache.events.continue_fetch + else + event = demuxer_cache.events.fetch_to_stale + end + elseif demuxer_cache.is_state_stale() then + if cache_has_progress then + event = demuxer_cache.events.stale_to_fetch + elseif demuxer_cache.state.in_state_time < settings.demuxer_cache_timer_timeout then + event = demuxer_cache.events.continue_stale + else + event = demuxer_cache.events.stale_to_stuck + end + elseif demuxer_cache.is_state_stuck() then + if cache_has_progress then + event = demuxer_cache.events.stuck_to_fetch + else + event = demuxer_cache.events.continue_stuck + end + end + + event.demuxer_cache_time = demuxer_cache_time + event.interval = demuxer_cache_timer_interval + demuxer_cache.transition(event) +end + + +local paused_for_cache = { + timer = nil, + time = 0, +} + +function paused_for_cache.reset_timer() + msg.debug('paused_for_cache.reset_timer', paused_for_cache.time) + if paused_for_cache.timer then + paused_for_cache.timer:kill() + paused_for_cache.timer = nil + paused_for_cache.time = 0 + end +end + +function paused_for_cache.start_timer(interval_seconds, timeout_seconds) + msg.debug('paused_for_cache.start_timer', paused_for_cache.time) + if not paused_for_cache.timer then + paused_for_cache.timer = mp.add_periodic_timer( + interval_seconds, + function() + paused_for_cache.time = paused_for_cache.time + interval_seconds + if paused_for_cache.time >= timeout_seconds then + paused_for_cache.reset_timer() + reload_resume() + end + msg.debug('paused_for_cache', 'tick', paused_for_cache.time) + end + ) + end +end + +function paused_for_cache.handler(property, is_paused) + if is_paused then + + if demuxer_cache.is_state_stuck() then + msg.info("demuxer cache has no progress") + -- reset demuxer state to avoid immediate reload if + -- paused_for_cache event triggered right after reload + demuxer_cache.reset_state() + reload_resume() + end + + paused_for_cache.start_timer( + settings.paused_for_cache_timer_interval, + settings.paused_for_cache_timer_timeout) + else + paused_for_cache.reset_timer() + end +end + +function read_settings() + options.read_options(settings, mp.get_script_name()) + msg.debug(utils.to_string(settings)) +end + +function reload(path, time_pos) + msg.debug("reload", path, time_pos) + if time_pos == nil then + mp.commandv("loadfile", path, "replace") + else + mp.commandv("loadfile", path, "replace", "start=+" .. time_pos) + end +end + +function reload_resume() + local path = mp.get_property("path", property_path) + local time_pos = mp.get_property("time-pos") + local reload_duration = mp.get_property_native("duration") + + local playlist_count = mp.get_property_number("playlist/count") + local playlist_pos = mp.get_property_number("playlist-pos") + local playlist = {} + for i = 0, playlist_count-1 do + playlist[i] = mp.get_property("playlist/" .. i .. "/filename") + end + -- Tries to determine live stream vs. pre-recordered VOD. VOD has non-zero + -- duration property. When reloading VOD, to keep the current time position + -- we should provide offset from the start. Stream doesn't have fixed start. + -- Decent choice would be to reload stream from it's current 'live' positon. + -- That's the reason we don't pass the offset when reloading streams. + if reload_duration and reload_duration > 0 then + msg.info("reloading video from", time_pos, "second") + reload(path, time_pos) + -- VODs get stuck when reload is called without a time_pos + -- this is most noticeable in youtube videos whenever download gets stuck in the first frames + -- video would stay paused without being actually paused + -- issue surfaced in mpv 0.33, afaik + elseif reload_duration and reload_duration == 0 then + msg.info("reloading video from", time_pos, "second") + reload(path, time_pos) + else + msg.info("reloading stream") + reload(path, nil) + end + msg.info("file ", playlist_pos+1, "of", playlist_count, "in playlist") + for i = 0, playlist_pos-1 do + mp.commandv("loadfile", playlist[i], "append") + end + mp.commandv("playlist-move", 0, playlist_pos+1) + for i = playlist_pos+1, playlist_count-1 do + mp.commandv("loadfile", playlist[i], "append") + end +end + +function reload_eof(property, eof_reached) + msg.debug("reload_eof", property, eof_reached) + local time_pos = mp.get_property_number("time-pos") + local duration = mp.get_property_number("duration") + + if eof_reached and math.floor(time_pos) == math.floor(duration) then + msg.debug("property_time_pos", property_time_pos, "time_pos", time_pos) + + -- Check that playback time_pos made progress after the last reload. When + -- eof is reached we try to reload video, in case there is more content + -- available. If time_pos stayed the same after reload, it means that vidkk + -- to avoid infinite reload loop when playback ended + -- math.floor function rounds time_pos to a second, to avoid inane reloads + if math.floor(property_time_pos) == math.floor(time_pos) then + msg.info("eof reached, playback ended") + mp.set_property("keep-open", property_keep_open) + else + msg.info("eof reached, checking if more content available") + reload_resume() + mp.set_property_bool("pause", false) + property_time_pos = time_pos + end + end +end + +function on_file_loaded(event) + local debug_info = { + event = event, + time_pos = mp.get_property("time-pos"), + stream_pos = mp.get_property("stream-pos"), + stream_end = mp.get_property("stream-end"), + duration = mp.get_property("duration"), + seekable = mp.get_property("seekable"), + pause = mp.get_property("pause"), + paused_for_cache = mp.get_property("paused-for-cache"), + cache_buffering_state = mp.get_property("cache-buffering-state"), + } + msg.debug("debug_info", utils.to_string(debug_info)) + + -- When the video is reloaded after being paused for cache, it won't start + -- playing again while all properties looks fine: + -- `pause=no`, `paused-for-cache=no` and `cache-buffering-state=100`. + -- As a workaround, we cycle through the paused state by sending two SPACE + -- keypresses. + -- What didn't work: + -- - Cycling through the `pause` property. + -- - Run the `playlist-play-index current` command. + mp.commandv("keypress", 'SPACE') + mp.commandv("keypress", 'SPACE') +end + +-- main + +read_settings() + +if settings.reload_key_binding ~= "" then + mp.add_key_binding(settings.reload_key_binding, "reload_resume", reload_resume) +end + +if settings.paused_for_cache_timer_enabled then + mp.observe_property("paused-for-cache", "bool", paused_for_cache.handler) +end + +if settings.demuxer_cache_timer_enabled then + demuxer_cache.initialize(settings.demuxer_cache_timer_interval) +end + +if settings.reload_eof_enabled then + -- vo-configured == video output created && its configuration went ok + mp.observe_property( + "vo-configured", + "bool", + function(name, vo_configured) + msg.debug(name, vo_configured) + if vo_configured then + property_path = mp.get_property("path") + property_keep_open = mp.get_property("keep-open") + mp.set_property("keep-open", "yes") + mp.set_property("keep-open-pause", "no") + end + end + ) + + mp.observe_property("eof-reached", "bool", reload_eof) +end + +mp.register_event("file-loaded", on_file_loaded) diff --git a/scripts/skip-intro.lua b/scripts/skip-intro.lua new file mode 100644 index 0000000..8d6b510 --- /dev/null +++ b/scripts/skip-intro.lua @@ -0,0 +1,151 @@ +MAX_SPEED = 100 +NORMAL_SPEED = 1 +ONE_SECOND = 1 +skip = false +-- Max noise (dB) and min silence duration (s) to trigger +opts = { quietness = -45, duration = 0.85 } + + +function setOptions() + local options = require 'mp.options' + options.read_options(opts) +end + +function setTime(time) + mp.set_property_number('time-pos', time) +end + +function getTime() + return mp.get_property_native('time-pos') +end + +function setSpeed(speed) + mp.set_property('speed', speed) +end + +function setPause(state) + mp.set_property_bool('pause', state) +end + +function setMute(state) + mp.set_property_bool('mute', state) +end + +function initAudioFilter() + local af_table = mp.get_property_native('af') + af_table[#af_table + 1] = { + enabled = false, + label = 'silencedetect', + name = 'lavfi', + params = { graph = 'silencedetect=noise=' .. opts.quietness .. 'dB:d=' .. opts.duration } + } + mp.set_property_native('af', af_table) +end + +function initVideoFilter() + local vf_table = mp.get_property_native('vf') + vf_table[#vf_table + 1] = { + enabled = false, + label = 'blackout', + name = 'lavfi', + params = { graph = '' } + } + mp.set_property_native('vf', vf_table) +end + +function setAudioFilter(state) + local af_table = mp.get_property_native('af') + if #af_table > 0 then + for i = #af_table, 1, -1 do + if af_table[i].label == 'silencedetect' then + af_table[i].enabled = state + mp.set_property_native('af', af_table) + break + end + end + end +end + +function dim(state) + local dim = { width = 0, height = 0 } + if state == true then + dim.width = mp.get_property_native('width') + dim.height = mp.get_property_native('height') + end + return dim.width .. 'x' .. dim.height +end + +function setVideoFilter(state) + local vf_table = mp.get_property_native('vf') + if #vf_table > 0 then + for i = #vf_table, 1, -1 do + if vf_table[i].label == 'blackout' then + vf_table[i].enabled = state + vf_table[i].params = { graph = 'nullsink,color=c=black:s=' .. dim(state) } + mp.set_property_native('vf', vf_table) + break + end + end + end +end + +function silenceTrigger(name, value) + if value == '{}' or value == nil then + return + end + + local skipTime = tonumber(string.match(value, '%d+%.?%d+')) + local currTime = getTime() + + if skipTime == nil or skipTime < currTime + ONE_SECOND then + return + end + + stopSkip() + setTime(skipTime) + skip = false +end + +function setAudioTrigger(state) + if state == true then + mp.observe_property('af-metadata/silencedetect', 'string', silenceTrigger) + else + mp.unobserve_property(silenceTrigger) + end +end + +function startSkip() + startTime = getTime() + -- This audio filter detects moments of silence + setAudioFilter(true) + -- This video filter makes fast-forward faster + setVideoFilter(true) + setAudioTrigger(true) + setPause(false) + setMute(true) + setSpeed(MAX_SPEED) +end + +function stopSkip() + setAudioFilter(false) + setVideoFilter(false) + setAudioTrigger(false) + setMute(false) + setSpeed(NORMAL_SPEED) +end + +function keypress() + skip = not skip + if skip then + startSkip() + else + stopSkip() + setTime(startTime) + end +end + +setOptions(opts) +initAudioFilter() +initVideoFilter() + +mp.add_key_binding('Tab', 'skip-key', keypress) diff --git a/scripts/sponsorblock.lua b/scripts/sponsorblock.lua new file mode 100644 index 0000000..a4fa2ca --- /dev/null +++ b/scripts/sponsorblock.lua @@ -0,0 +1,568 @@ +-- sponsorblock.lua +-- +-- This script skips sponsored segments of YouTube videos +-- using data from https://github.com/ajayyy/SponsorBlock + +local ON_WINDOWS = package.config:sub(1,1) ~= "/" + +local options = { + server_address = "https://sponsor.ajay.app", + + python_path = ON_WINDOWS and "python" or "python3", + + -- Categories to fetch + categories = "sponsor,intro,outro,interaction,selfpromo,filler", + + -- Categories to skip automatically + skip_categories = "sponsor", + + -- If true, sponsored segments will only be skipped once + skip_once = true, + + -- Note that sponsored segments may ocasionally be inaccurate if this is turned off + -- see https://blog.ajay.app/voting-and-pseudo-randomness-or-sponsorblock-or-youtube-sponsorship-segment-blocker + local_database = false, + + -- Update database on first run, does nothing if local_database is false + auto_update = true, + + -- How long to wait between local database updates + -- Format: "X[d,h,m]", leave blank to update on every mpv run + auto_update_interval = "6h", + + -- User ID used to submit sponsored segments, leave blank for random + user_id = "", + + -- Name to display on the stats page https://sponsor.ajay.app/stats/ leave blank to keep current name + display_name = "", + + -- Tell the server when a skip happens + report_views = true, + + -- Auto upvote skipped sponsors + auto_upvote = false, + + -- Use sponsor times from server if they're more up to date than our local database + server_fallback = true, + + -- Create chapters at sponsor boundaries for OSC display and manual skipping + make_chapters = true, + + -- Minimum duration for sponsors (in seconds), segments under that threshold will be ignored + min_duration = 1, + + -- Fade audio for smoother transitions + audio_fade = false, + + -- Audio fade step, applied once every 100ms until cap is reached + audio_fade_step = 10, + + -- Audio fade cap + audio_fade_cap = 0, + + -- Fast forward through sponsors instead of skipping + fast_forward = false, + + -- Playback speed modifier when fast forwarding, applied once every second until cap is reached + fast_forward_increase = .2, + + -- Playback speed cap + fast_forward_cap = 2, + + -- Length of the sha256 prefix (3-32) when querying server, 0 to disable + sha256_length = 4, + + -- Pattern for video id in local files, ignored if blank + -- Recommended value for base youtube-dl is "-([%w-_]+)%.[mw][kpe][v4b]m?$" + local_pattern = "", + + -- Legacy option, use skip_categories instead + skip = true +} + +mp.options = require "mp.options" +mp.options.read_options(options, "sponsorblock") + +local legacy = mp.command_native_async == nil +--[[ +if legacy then + options.local_database = false +end +--]] +options.local_database = false + +local utils = require "mp.utils" +scripts_dir = mp.find_config_file("scripts") + +local sponsorblock = utils.join_path(scripts_dir, "sponsorblock_shared/sponsorblock.py") +local uid_path = utils.join_path(scripts_dir, "sponsorblock_shared/sponsorblock.txt") +local database_file = options.local_database and utils.join_path(scripts_dir, "sponsorblock_shared/sponsorblock.db") or "" +local youtube_id = nil +local ranges = {} +local init = false +local segment = {a = 0, b = 0, progress = 0, first = true} +local retrying = false +local last_skip = {uuid = "", dir = nil} +local speed_timer = nil +local fade_timer = nil +local fade_dir = nil +local volume_before = mp.get_property_number("volume") +local categories = {} +local all_categories = {"sponsor", "intro", "outro", "interaction", "selfpromo", "preview", "music_offtopic", "filler"} +local chapter_cache = {} + +for category in string.gmatch(options.skip_categories, "([^,]+)") do + categories[category] = true +end + +function file_exists(name) + local f = io.open(name,"r") + if f ~= nil then io.close(f) return true else return false end +end + +function t_count(t) + local count = 0 + for _ in pairs(t) do count = count + 1 end + return count +end + +function time_sort(a, b) + if a.time == b.time then + return string.match(a.title, "segment end") + end + return a.time < b.time +end + +function parse_update_interval() + local s = options.auto_update_interval + if s == "" then return 0 end -- Interval Disabled + + local num, mod = s:match "^(%d+)([hdm])$" + + if num == nil or mod == nil then + mp.osd_message("[sponsorblock] auto_update_interval " .. s .. " is invalid", 5) + return nil + end + + local time_table = { + m = 60, + h = 60 * 60, + d = 60 * 60 * 24, + } + + return num * time_table[mod] +end + +function clean_chapters() + local chapters = mp.get_property_native("chapter-list") + local new_chapters = {} + for _, chapter in pairs(chapters) do + if chapter.title ~= "Preview segment start" and chapter.title ~= "Preview segment end" then + table.insert(new_chapters, chapter) + end + end + mp.set_property_native("chapter-list", new_chapters) +end + +function create_chapter(chapter_title, chapter_time) + local chapters = mp.get_property_native("chapter-list") + local duration = mp.get_property_native("duration") + table.insert(chapters, {title=chapter_title, time=(duration == nil or duration > chapter_time) and chapter_time or duration - .001}) + table.sort(chapters, time_sort) + mp.set_property_native("chapter-list", chapters) +end + +function process(uuid, t, new_ranges) + start_time = tonumber(string.match(t, "[^,]+")) + end_time = tonumber(string.sub(string.match(t, ",[^,]+"), 2)) + for o_uuid, o_t in pairs(ranges) do + if (start_time >= o_t.start_time and start_time <= o_t.end_time) or (o_t.start_time >= start_time and o_t.start_time <= end_time) then + new_ranges[o_uuid] = o_t + return + end + end + category = string.match(t, "[^,]+$") + if categories[category] and end_time - start_time >= options.min_duration then + new_ranges[uuid] = { + start_time = start_time, + end_time = end_time, + category = category, + skipped = false + } + end + if options.make_chapters and not chapter_cache[uuid] then + chapter_cache[uuid] = true + local category_title = (category:gsub("^%l", string.upper):gsub("_", " ")) + create_chapter(category_title .. " segment start (" .. string.sub(uuid, 1, 6) .. ")", start_time) + create_chapter(category_title .. " segment end (" .. string.sub(uuid, 1, 6) .. ")", end_time) + end +end + +function getranges(_, exists, db, more) + if type(exists) == "table" and exists["status"] == "1" then + if options.server_fallback then + mp.add_timeout(0, function() getranges(true, true, "") end) + else + return mp.osd_message("[sponsorblock] database update failed, gave up") + end + end + if db ~= "" and db ~= database_file then db = database_file end + if exists ~= true and not file_exists(db) then + if not retrying then + mp.osd_message("[sponsorblock] database update failed, retrying...") + retrying = true + end + return update() + end + if retrying then + mp.osd_message("[sponsorblock] database update succeeded") + retrying = false + end + local sponsors + local args = { + options.python_path, + sponsorblock, + "ranges", + db, + options.server_address, + youtube_id, + options.categories, + tostring(options.sha256_length) + } + if not legacy then + sponsors = mp.command_native({name = "subprocess", capture_stdout = true, playback_only = false, args = args}) + else + sponsors = utils.subprocess({args = args}) + end + mp.msg.debug("Got: " .. string.gsub(sponsors.stdout, "[\n\r]", "")) + if not string.match(sponsors.stdout, "^%s*(.*%S)") then return end + if string.match(sponsors.stdout, "error") then return getranges(true, true) end + local new_ranges = {} + local r_count = 0 + if more then r_count = -1 end + for t in string.gmatch(sponsors.stdout, "[^:%s]+") do + uuid = string.match(t, "([^,]+),[^,]+$") + if ranges[uuid] then + new_ranges[uuid] = ranges[uuid] + else + process(uuid, t, new_ranges) + end + r_count = r_count + 1 + end + local c_count = t_count(ranges) + if c_count == 0 or r_count >= c_count then + ranges = new_ranges + end +end + +function fast_forward() + if options.fast_forward and options.fast_forward == true then + speed_timer = nil + mp.set_property("speed", 1) + end + local last_speed = mp.get_property_number("speed") + local new_speed = math.min(last_speed + options.fast_forward_increase, options.fast_forward_cap) + if new_speed <= last_speed then return end + mp.set_property("speed", new_speed) +end + +function fade_audio(step) + local last_volume = mp.get_property_number("volume") + local new_volume = math.max(options.audio_fade_cap, math.min(last_volume + step, volume_before)) + if new_volume == last_volume then + if step >= 0 then fade_dir = nil end + if fade_timer ~= nil then fade_timer:kill() end + fade_timer = nil + return + end + mp.set_property("volume", new_volume) +end + +function skip_ads(name, pos) + if pos == nil then return end + local sponsor_ahead = false + for uuid, t in pairs(ranges) do + if (options.fast_forward == uuid or not options.skip_once or not t.skipped) and t.start_time <= pos and t.end_time > pos then + if options.fast_forward == uuid then return end + if options.fast_forward == false then + mp.osd_message("[sponsorblock] " .. t.category .. " skipped") + mp.set_property("time-pos", t.end_time) + else + mp.osd_message("[sponsorblock] skipping " .. t.category) + end + t.skipped = true + last_skip = {uuid = uuid, dir = nil} + if options.report_views or options.auto_upvote then + local args = { + options.python_path, + sponsorblock, + "stats", + database_file, + options.server_address, + youtube_id, + uuid, + options.report_views and "1" or "", + uid_path, + options.user_id, + options.auto_upvote and "1" or "" + } + if not legacy then + mp.command_native_async({name = "subprocess", playback_only = false, args = args}, function () end) + else + utils.subprocess_detached({args = args}) + end + end + if options.fast_forward ~= false then + options.fast_forward = uuid + if speed_timer ~= nil then speed_timer:kill() end + speed_timer = mp.add_periodic_timer(1, fast_forward) + end + return + elseif (not options.skip_once or not t.skipped) and t.start_time <= pos + 1 and t.end_time > pos + 1 then + sponsor_ahead = true + end + end + if options.audio_fade then + if sponsor_ahead then + if fade_dir ~= false then + if fade_dir == nil then volume_before = mp.get_property_number("volume") end + if fade_timer ~= nil then fade_timer:kill() end + fade_dir = false + fade_timer = mp.add_periodic_timer(.1, function() fade_audio(-options.audio_fade_step) end) + end + elseif fade_dir == false then + fade_dir = true + if fade_timer ~= nil then fade_timer:kill() end + fade_timer = mp.add_periodic_timer(.1, function() fade_audio(options.audio_fade_step) end) + end + end + if options.fast_forward and options.fast_forward ~= true then + options.fast_forward = true + speed_timer:kill() + speed_timer = nil + mp.set_property("speed", 1) + end +end + +function vote(dir) + if last_skip.uuid == "" then return mp.osd_message("[sponsorblock] no sponsors skipped, can't submit vote") end + local updown = dir == "1" and "up" or "down" + if last_skip.dir == dir then return mp.osd_message("[sponsorblock] " .. updown .. "vote already submitted") end + last_skip.dir = dir + local args = { + options.python_path, + sponsorblock, + "stats", + database_file, + options.server_address, + youtube_id, + last_skip.uuid, + "", + uid_path, + options.user_id, + dir + } + if not legacy then + mp.command_native_async({name = "subprocess", playback_only = false, args = args}, function () end) + else + utils.subprocess({args = args}) + end + mp.osd_message("[sponsorblock] " .. updown .. "vote submitted") +end + +function update() + mp.command_native_async({name = "subprocess", playback_only = false, args = { + options.python_path, + sponsorblock, + "update", + database_file, + options.server_address + }}, getranges) +end + +function file_loaded() + local initialized = init + ranges = {} + segment = {a = 0, b = 0, progress = 0, first = true} + last_skip = {uuid = "", dir = nil} + chapter_cache = {} + local video_path = mp.get_property("path", "") + mp.msg.debug("Path: " .. video_path) + local video_referer = string.match(mp.get_property("http-header-fields", ""), "Referer:([^,]+)") or "" + mp.msg.debug("Referer: " .. video_referer) + + local urls = { + "https?://youtu%.be/([%w-_]+).*", + "https?://w?w?w?%.?youtube%.com/v/([%w-_]+).*", + "/watch.*[?&]v=([%w-_]+).*", + "/embed/([%w-_]+).*" + } + youtube_id = nil + for i, url in ipairs(urls) do + youtube_id = youtube_id or string.match(video_path, url) or string.match(video_referer, url) + if youtube_id then break end + end + youtube_id = youtube_id or string.match(video_path, options.local_pattern) + + if not youtube_id or string.len(youtube_id) < 11 or (local_pattern and string.len(youtube_id) ~= 11) then return end + youtube_id = string.sub(youtube_id, 1, 11) + mp.msg.debug("Found YouTube ID: " .. youtube_id) + init = true + if not options.local_database then + getranges(true, true) + else + local exists = file_exists(database_file) + if exists and options.server_fallback then + getranges(true, true) + mp.add_timeout(0, function() getranges(true, true, "", true) end) + elseif exists then + getranges(true, true) + elseif options.server_fallback then + mp.add_timeout(0, function() getranges(true, true, "") end) + end + end + if initialized then return end + if options.skip then + mp.observe_property("time-pos", "native", skip_ads) + end + if options.display_name ~= "" then + local args = { + options.python_path, + sponsorblock, + "username", + database_file, + options.server_address, + youtube_id, + "", + "", + uid_path, + options.user_id, + options.display_name + } + if not legacy then + mp.command_native_async({name = "subprocess", playback_only = false, args = args}, function () end) + else + utils.subprocess_detached({args = args}) + end + end + if not options.local_database or (not options.auto_update and file_exists(database_file)) then return end + + if file_exists(database_file) then + local db_info = utils.file_info(database_file) + local cur_time = os.time(os.date("*t")) + local upd_interval = parse_update_interval() + if upd_interval == nil or os.difftime(cur_time, db_info.mtime) < upd_interval then return end + end + + update() +end + +function set_segment() + if not youtube_id then return end + local pos = mp.get_property_number("time-pos") + if pos == nil then return end + if segment.progress > 1 then + segment.progress = segment.progress - 2 + end + if segment.progress == 1 then + segment.progress = 0 + segment.b = pos + mp.osd_message("[sponsorblock] segment boundary B set, press again for boundary A", 3) + else + segment.progress = 1 + segment.a = pos + mp.osd_message("[sponsorblock] segment boundary A set, press again for boundary B", 3) + end + if options.make_chapters and not segment.first then + local start_time = math.min(segment.a, segment.b) + local end_time = math.max(segment.a, segment.b) + if end_time - start_time ~= 0 and end_time ~= 0 then + clean_chapters() + create_chapter("Preview segment start", start_time) + create_chapter("Preview segment end", end_time) + end + end + segment.first = false +end + +function select_category(selected) + for category in string.gmatch(options.categories, "([^,]+)") do + mp.remove_key_binding("select_category_"..category) + mp.remove_key_binding("kp_select_category_"..category) + end + submit_segment(selected) +end + +function submit_segment(category) + if not youtube_id then return end + local start_time = math.min(segment.a, segment.b) + local end_time = math.max(segment.a, segment.b) + if end_time - start_time == 0 or end_time == 0 then + mp.osd_message("[sponsorblock] empty segment, not submitting") + elseif segment.progress <= 1 then + segment.progress = segment.progress + 2 + local category_list = "" + for category_id, category in pairs(all_categories) do + local category_title = (category:gsub("^%l", string.upper):gsub("_", " ")) + category_list = category_list .. category_id .. ": " .. category_title .. "\n" + mp.add_forced_key_binding(tostring(category_id), "select_category_"..category, function() select_category(category) end) + mp.add_forced_key_binding("KP"..tostring(category_id), "kp_select_category_"..category, function() select_category(category) end) + end + mp.osd_message(string.format("[sponsorblock] press a number to select category for segment: %.2d:%.2d:%.2d to %.2d:%.2d:%.2d\n\n" .. category_list .. "\nyou can press Shift+G again for default (Sponsor) or hide this message with g", math.floor(start_time/(60*60)), math.floor(start_time/60%60), math.floor(start_time%60), math.floor(end_time/(60*60)), math.floor(end_time/60%60), math.floor(end_time%60)), 30) + else + mp.osd_message("[sponsorblock] submitting segment...", 30) + local submit + local args = { + options.python_path, + sponsorblock, + "submit", + database_file, + options.server_address, + youtube_id, + tostring(start_time), + tostring(end_time), + uid_path, + options.user_id, + category or "sponsor" + } + if not legacy then + submit = mp.command_native({name = "subprocess", capture_stdout = true, playback_only = false, args = args}) + else + submit = utils.subprocess({args = args}) + end + if string.match(submit.stdout, "success") then + segment = {a = 0, b = 0, progress = 0, first = true} + mp.osd_message("[sponsorblock] segment submitted") + if options.make_chapters then + clean_chapters() + create_chapter("Submitted segment start", start_time) + create_chapter("Submitted segment end", end_time) + end + elseif string.match(submit.stdout, "error") then + mp.osd_message("[sponsorblock] segment submission failed, server may be down. try again", 5) + elseif string.match(submit.stdout, "502") then + mp.osd_message("[sponsorblock] segment submission failed, server is down. try again", 5) + elseif string.match(submit.stdout, "400") then + mp.osd_message("[sponsorblock] segment submission failed, impossible inputs", 5) + segment = {a = 0, b = 0, progress = 0, first = true} + elseif string.match(submit.stdout, "429") then + mp.osd_message("[sponsorblock] segment submission failed, rate limited. try again", 5) + elseif string.match(submit.stdout, "409") then + mp.osd_message("[sponsorblock] segment already submitted", 3) + segment = {a = 0, b = 0, progress = 0, first = true} + else + mp.osd_message("[sponsorblock] segment submission failed", 5) + end + end +end + +mp.register_event("file-loaded", file_loaded) +mp.add_key_binding("g", "set_segment", set_segment) +mp.add_key_binding("G", "submit_segment", submit_segment) +mp.add_key_binding("h", "upvote_segment", function() return vote("1") end) +mp.add_key_binding("H", "downvote_segment", function() return vote("0") end) +-- Bindings below are for backwards compatibility and could be removed at any time +mp.add_key_binding(nil, "sponsorblock_set_segment", set_segment) +mp.add_key_binding(nil, "sponsorblock_submit_segment", submit_segment) +mp.add_key_binding(nil, "sponsorblock_upvote", function() return vote("1") end) +mp.add_key_binding(nil, "sponsorblock_downvote", function() return vote("0") end) diff --git a/scripts/sponsorblock_shared/main.lua b/scripts/sponsorblock_shared/main.lua new file mode 100644 index 0000000..2bbe7a2 --- /dev/null +++ b/scripts/sponsorblock_shared/main.lua @@ -0,0 +1,3 @@ +-- This is a dummy main.lua +-- required for mpv 0.33 +-- do not delete \ No newline at end of file diff --git a/scripts/sponsorblock_shared/sponsorblock.py b/scripts/sponsorblock_shared/sponsorblock.py new file mode 100644 index 0000000..8370a6a --- /dev/null +++ b/scripts/sponsorblock_shared/sponsorblock.py @@ -0,0 +1,122 @@ +import urllib.request +import urllib.parse +import hashlib +import sqlite3 +import random +import string +import json +import sys +import os + +if sys.argv[1] in ["submit", "stats", "username"]: + if not sys.argv[8]: + if os.path.isfile(sys.argv[7]): + with open(sys.argv[7]) as f: + uid = f.read() + else: + uid = "".join(random.choices(string.ascii_letters + string.digits, k=36)) + with open(sys.argv[7], "w") as f: + f.write(uid) + else: + uid = sys.argv[8] + +opener = urllib.request.build_opener() +opener.addheaders = [("User-Agent", "mpv_sponsorblock/1.0 (https://github.com/po5/mpv_sponsorblock)")] +urllib.request.install_opener(opener) + +if sys.argv[1] == "ranges" and (not sys.argv[2] or not os.path.isfile(sys.argv[2])): + sha = None + if 3 <= int(sys.argv[6]) <= 32: + sha = hashlib.sha256(sys.argv[4].encode()).hexdigest()[:int(sys.argv[6])] + times = [] + try: + response = urllib.request.urlopen(sys.argv[3] + "/api/skipSegments" + ("/" + sha + "?" if sha else "?videoID=" + sys.argv[4] + "&") + urllib.parse.urlencode([("categories", json.dumps(sys.argv[5].split(",")))])) + segments = json.load(response) + for segment in segments: + if sha and sys.argv[4] != segment["videoID"]: + continue + if sha: + for s in segment["segments"]: + times.append(str(s["segment"][0]) + "," + str(s["segment"][1]) + "," + s["UUID"] + "," + s["category"]) + else: + times.append(str(segment["segment"][0]) + "," + str(segment["segment"][1]) + "," + segment["UUID"] + "," + segment["category"]) + print(":".join(times)) + except (TimeoutError, urllib.error.URLError) as e: + print("error") + except urllib.error.HTTPError as e: + if e.code == 404: + print("") + else: + print("error") +elif sys.argv[1] == "ranges": + conn = sqlite3.connect(sys.argv[2]) + conn.row_factory = sqlite3.Row + c = conn.cursor() + times = [] + for category in sys.argv[5].split(","): + c.execute("SELECT startTime, endTime, votes, UUID, category FROM sponsorTimes WHERE videoID = ? AND shadowHidden = 0 AND votes > -1 AND category = ?", (sys.argv[4], category)) + sponsors = c.fetchall() + best = list(sponsors) + dealtwith = [] + similar = [] + for sponsor_a in sponsors: + for sponsor_b in sponsors: + if sponsor_a is not sponsor_b and sponsor_a["startTime"] >= sponsor_b["startTime"] and sponsor_a["startTime"] <= sponsor_b["endTime"]: + similar.append([sponsor_a, sponsor_b]) + if sponsor_a in best: + best.remove(sponsor_a) + if sponsor_b in best: + best.remove(sponsor_b) + for sponsors_a in similar: + if sponsors_a in dealtwith: + continue + group = set(sponsors_a) + for sponsors_b in similar: + if sponsors_b[0] in group or sponsors_b[1] in group: + group.add(sponsors_b[0]) + group.add(sponsors_b[1]) + dealtwith.append(sponsors_b) + best.append(max(group, key=lambda x:x["votes"])) + for time in best: + times.append(str(time["startTime"]) + "," + str(time["endTime"]) + "," + time["UUID"] + "," + time["category"]) + print(":".join(times)) +elif sys.argv[1] == "update": + try: + urllib.request.urlretrieve(sys.argv[3] + "/database.db", sys.argv[2] + ".tmp") + os.replace(sys.argv[2] + ".tmp", sys.argv[2]) + except PermissionError: + print("database update failed, file currently in use", file=sys.stderr) + sys.exit(1) + except ConnectionResetError: + print("database update failed, connection reset", file=sys.stderr) + sys.exit(1) + except TimeoutError: + print("database update failed, timed out", file=sys.stderr) + sys.exit(1) + except urllib.error.URLError: + print("database update failed", file=sys.stderr) + sys.exit(1) +elif sys.argv[1] == "submit": + try: + req = urllib.request.Request(sys.argv[3] + "/api/skipSegments", data=json.dumps({"videoID": sys.argv[4], "segments": [{"segment": [float(sys.argv[5]), float(sys.argv[6])], "category": sys.argv[9]}], "userID": uid}).encode(), headers={"Content-Type": "application/json"}) + response = urllib.request.urlopen(req) + print("success") + except urllib.error.HTTPError as e: + print(e.code) + except: + print("error") +elif sys.argv[1] == "stats": + try: + if sys.argv[6]: + urllib.request.urlopen(sys.argv[3] + "/api/viewedVideoSponsorTime?UUID=" + sys.argv[5]) + if sys.argv[9]: + urllib.request.urlopen(sys.argv[3] + "/api/voteOnSponsorTime?UUID=" + sys.argv[5] + "&userID=" + uid + "&type=" + sys.argv[9]) + except: + pass +elif sys.argv[1] == "username": + try: + data = urllib.parse.urlencode({"userID": uid, "userName": sys.argv[9]}).encode() + req = urllib.request.Request(sys.argv[3] + "/api/setUsername", data=data) + urllib.request.urlopen(req) + except: + pass diff --git a/scripts/sponsorblock_shared/sponsorblock.txt b/scripts/sponsorblock_shared/sponsorblock.txt new file mode 100644 index 0000000..e4a45fb --- /dev/null +++ b/scripts/sponsorblock_shared/sponsorblock.txt @@ -0,0 +1 @@ +dFlkoCOSK3BQhXGGhUsXSNU0sPr7AV7avndk \ No newline at end of file diff --git a/scripts/stats.lua b/scripts/stats.lua new file mode 100644 index 0000000..6ee491b --- /dev/null +++ b/scripts/stats.lua @@ -0,0 +1,754 @@ +-- Display some stats. +-- +-- Please consult the readme for information about usage and configuration: +-- https://github.com/Argon-/mpv-stats +-- +-- Please note: not every property is always available and therefore not always +-- visible. + +local mp = require 'mp' +local options = require 'mp.options' +local utils = require 'mp.utils' + +-- Options +local o = { + -- Default key bindings + key_oneshot = "i", + key_toggle = "I", + key_page_1 = "1", + key_page_2 = "2", + key_page_3 = "3", + + duration = 4, + redraw_delay = 1, -- acts as duration in the toggling case + ass_formatting = true, + persistent_overlay = false, -- whether the stats can be overwritten by other output + print_perfdata_passes = false, -- when true, print the full information about all passes + filter_params_max_length = 100, -- a filter list longer than this many characters will be shown one filter per line instead + debug = false, + + -- Graph options and style + plot_perfdata = true, + plot_vsync_ratio = true, + plot_vsync_jitter = true, + skip_frames = 5, + global_max = true, + flush_graph_data = true, -- clear data buffers when toggling + plot_bg_border_color = "0000FF", + plot_bg_color = "262626", + plot_color = "FFFFFF", + + -- Text style + font = "Source Sans Pro", + font_mono = "Source Sans Pro", -- monospaced digits are sufficient + font_size = 8, + font_color = "FFFFFF", + border_size = 0.8, + border_color = "262626", + shadow_x_offset = 0.0, + shadow_y_offset = 0.0, + shadow_color = "000000", + alpha = "11", + + -- Custom header for ASS tags to style the text output. + -- Specifying this will ignore the text style values above and just + -- use this string instead. + custom_header = "", + + -- Text formatting + -- With ASS + ass_nl = "\\N", + ass_indent = "\\h\\h\\h\\h\\h", + ass_prefix_sep = "\\h\\h", + ass_b1 = "{\\b1}", + ass_b0 = "{\\b0}", + ass_it1 = "{\\i1}", + ass_it0 = "{\\i0}", + -- Without ASS + no_ass_nl = "\n", + no_ass_indent = "\t", + no_ass_prefix_sep = " ", + no_ass_b1 = "\027[1m", + no_ass_b0 = "\027[0m", + no_ass_it1 = "\027[3m", + no_ass_it0 = "\027[0m", +} +options.read_options(o) + +local format = string.format +local max = math.max +local min = math.min + +-- Function used to record performance data +local recorder = nil +-- Timer used for redrawing (toggling) and clearing the screen (oneshot) +local display_timer = nil +-- Current page and : mappings +local curr_page = o.key_page_1 +local pages = {} +-- Save these sequences locally as we'll need them a lot +local ass_start = mp.get_property_osd("osd-ass-cc/0") +local ass_stop = mp.get_property_osd("osd-ass-cc/1") +-- Ring buffers for the values used to construct a graph. +-- .pos denotes the current position, .len the buffer length +-- .max is the max value in the corresponding buffer +local vsratio_buf, vsjitter_buf +local function init_buffers() + vsratio_buf = {0, pos = 1, len = 50, max = 0} + vsjitter_buf = {0, pos = 1, len = 50, max = 0} +end +-- Save all properties known to this version of mpv +local property_list = {} +for p in string.gmatch(mp.get_property("property-list"), "([^,]+)") do property_list[p] = true end +-- Mapping of properties to their deprecated names +local property_aliases = { + ["decoder-frame-drop-count"] = "drop-frame-count", + ["frame-drop-count"] = "vo-drop-frame-count", + ["container-fps"] = "fps", +} + + +-- Return deprecated name for the given property +local function compat(p) + while not property_list[p] and property_aliases[p] do + p = property_aliases[p] + end + return p +end + + +local function set_ASS(b) + if not o.use_ass or o.persistent_overlay then + return "" + end + return b and ass_start or ass_stop +end + + +local function no_ASS(t) + return set_ASS(false) .. t .. set_ASS(true) +end + + +local function b(t) + return o.b1 .. t .. o.b0 +end + + +local function it(t) + return o.it1 .. t .. o.it0 +end + + +local function text_style() + if not o.use_ass then + return "" + end + if o.custom_header and o.custom_header ~= "" then + return set_ASS(true) .. o.custom_header + else + return format("%s{\\r}{\\an7}{\\fs%d}{\\fn%s}{\\bord%f}{\\3c&H%s&}" .. + "{\\1c&H%s&}{\\alpha&H%s&}{\\xshad%f}{\\yshad%f}{\\4c&H%s&}", + set_ASS(true), o.font_size, o.font, o.border_size, + o.border_color, o.font_color, o.alpha, o.shadow_x_offset, + o.shadow_y_offset, o.shadow_color) + end +end + + +local function has_vo_window() + return mp.get_property("vo-configured") == "yes" +end + + +local function has_ansi() + local is_windows = type(package) == 'table' + and type(package.config) == 'string' + and package.config:sub(1, 1) == '\\' + if is_windows then + return os.getenv("ANSICON") + end + return true +end + + +-- Generate a graph from the given values. +-- Returns an ASS formatted vector drawing as string. +-- +-- values: Array/table of numbers representing the data. Used like a ring buffer +-- it will get iterated backwards `len` times starting at position `i`. +-- i : Index of the latest data value in `values`. +-- len : The length/amount of numbers in `values`. +-- v_max : The maximum number in `values`. It is used to scale all data +-- values to a range of 0 to `v_max`. +-- v_avg : The average number in `values`. It is used to try and center graphs +-- if possible. May be left as nil +-- scale : A value that will be multiplied with all data values. +-- x_tics: Horizontal width multiplier for the steps +local function generate_graph(values, i, len, v_max, v_avg, scale, x_tics) + -- Check if at least one value exists + if not values[i] then + return "" + end + + local x_max = (len - 1) * x_tics + local y_offset = o.border_size + local y_max = o.font_size * 0.66 + local x = 0 + + -- try and center the graph if possible, but avoid going above `scale` + if v_avg then + scale = min(scale, v_max / (2 * v_avg)) + end + + local s = {format("m 0 0 n %f %f l ", x, y_max - (y_max * values[i] / v_max * scale))} + i = ((i - 2) % len) + 1 + + for p = 1, len - 1 do + if values[i] then + x = x - x_tics + s[#s+1] = format("%f %f ", x, y_max - (y_max * values[i] / v_max * scale)) + end + i = ((i - 2) % len) + 1 + end + + s[#s+1] = format("%f %f %f %f", x, y_max, 0, y_max) + + local bg_box = format("{\\bord0.5}{\\3c&H%s&}{\\1c&H%s&}m 0 %f l %f %f %f 0 0 0", + o.plot_bg_border_color, o.plot_bg_color, y_max, x_max, y_max, x_max) + return format("%s{\\r}{\\pbo%f}{\\shad0}{\\alpha&H00}{\\p1}%s{\\p0}{\\bord0}{\\1c&H%s}{\\p1}%s{\\p0}%s", + o.prefix_sep, y_offset, bg_box, o.plot_color, table.concat(s), text_style()) +end + + +local function append(s, str, attr) + if not str then + return false + end + attr.prefix_sep = attr.prefix_sep or o.prefix_sep + attr.indent = attr.indent or o.indent + attr.nl = attr.nl or o.nl + attr.suffix = attr.suffix or "" + attr.prefix = attr.prefix or "" + attr.no_prefix_markup = attr.no_prefix_markup or false + attr.prefix = attr.no_prefix_markup and attr.prefix or b(attr.prefix) + s[#s+1] = format("%s%s%s%s%s%s", attr.nl, attr.indent, + attr.prefix, attr.prefix_sep, no_ASS(str), attr.suffix) + return true +end + + +-- Format and append a property. +-- A property whose value is either `nil` or empty (hereafter called "invalid") +-- is skipped and not appended. +-- Returns `false` in case nothing was appended, otherwise `true`. +-- +-- s : Table containing strings. +-- prop : The property to query and format (based on its OSD representation). +-- attr : Optional table to overwrite certain (formatting) attributes for +-- this property. +-- exclude: Optional table containing keys which are considered invalid values +-- for this property. Specifying this will replace empty string as +-- default invalid value (nil is always invalid). +local function append_property(s, prop, attr, excluded) + excluded = excluded or {[""] = true} + local ret = mp.get_property_osd(prop) + if not ret or excluded[ret] then + if o.debug then + print("No value for property: " .. prop) + end + return false + end + return append(s, ret, attr) +end + + +local function append_perfdata(s, dedicated_page) + local vo_p = mp.get_property_native("vo-passes") + if not vo_p then + return + end + + local ds = mp.get_property_bool("display-sync-active", false) + local target_fps = ds and mp.get_property_number("display-fps", 0) + or mp.get_property_number(compat("container-fps"), 0) + if target_fps > 0 then target_fps = 1 / target_fps * 1e9 end + + -- Sums of all last/avg/peak values + local last_s, avg_s, peak_s = {}, {}, {} + for frame, data in pairs(vo_p) do + last_s[frame], avg_s[frame], peak_s[frame] = 0, 0, 0 + for _, pass in ipairs(data) do + last_s[frame] = last_s[frame] + pass["last"] + avg_s[frame] = avg_s[frame] + pass["avg"] + peak_s[frame] = peak_s[frame] + pass["peak"] + end + end + + -- Pretty print measured time + local function pp(i) + -- rescale to microseconds for a saner display + return format("%05d", i / 1000) + end + + -- Format n/m with a font weight based on the ratio + local function p(n, m) + local i = 0 + if m > 0 then + i = tonumber(n) / m + end + -- Calculate font weight. 100 is minimum, 400 is normal, 700 bold, 900 is max + local w = (700 * math.sqrt(i)) + 200 + return format("{\\b%d}%02d%%{\\b0}", w, i * 100) + end + + s[#s+1] = format("%s%s%s%s{\\fs%s}%s{\\fs%s}", + dedicated_page and "" or o.nl, dedicated_page and "" or o.indent, + b("Frame Timings:"), o.prefix_sep, o.font_size * 0.66, + "(last/average/peak μs)", o.font_size) + + for frame, data in pairs(vo_p) do + local f = "%s%s%s{\\fn%s}%s / %s / %s %s%s{\\fn%s}%s%s%s" + + if dedicated_page then + s[#s+1] = format("%s%s%s:", o.nl, o.indent, + b(frame:gsub("^%l", string.upper))) + + for _, pass in ipairs(data) do + s[#s+1] = format(f, o.nl, o.indent, o.indent, + o.font_mono, pp(pass["last"]), + pp(pass["avg"]), pp(pass["peak"]), + o.prefix_sep .. o.prefix_sep, p(pass["last"], last_s[frame]), + o.font, o.prefix_sep, o.prefix_sep, pass["desc"]) + + if o.plot_perfdata and o.use_ass then + s[#s+1] = generate_graph(pass["samples"], pass["count"], + pass["count"], pass["peak"], + pass["avg"], 0.9, 0.25) + end + end + + -- Print sum of timing values as "Total" + s[#s+1] = format(f, o.nl, o.indent, o.indent, + o.font_mono, pp(last_s[frame]), + pp(avg_s[frame]), pp(peak_s[frame]), "", "", o.font, + o.prefix_sep, o.prefix_sep, b("Total")) + else + -- for the simplified view, we just print the sum of each pass + s[#s+1] = format(f, o.nl, o.indent, o.indent, o.font_mono, + pp(last_s[frame]), pp(avg_s[frame]), pp(peak_s[frame]), + "", "", o.font, o.prefix_sep, o.prefix_sep, + frame:gsub("^%l", string.upper)) + end + end +end + + +local function append_display_sync(s) + if not mp.get_property_bool("display-sync-active", false) then + return + end + + local vspeed = append_property(s, "video-speed-correction", {prefix="DS:"}) + if vspeed then + append_property(s, "audio-speed-correction", + {prefix="/", nl="", indent=" ", prefix_sep=" ", no_prefix_markup=true}) + else + append_property(s, "audio-speed-correction", + {prefix="DS:" .. o.prefix_sep .. " - / ", prefix_sep=""}) + end + + append_property(s, "mistimed-frame-count", {prefix="Mistimed:", nl=""}) + append_property(s, "vo-delayed-frame-count", {prefix="Delayed:", nl=""}) + + -- As we need to plot some graphs we print jitter and ratio on their own lines + if not display_timer.oneshot and (o.plot_vsync_ratio or o.plot_vsync_jitter) and o.use_ass then + local ratio_graph = "" + local jitter_graph = "" + if o.plot_vsync_ratio then + ratio_graph = generate_graph(vsratio_buf, vsratio_buf.pos, vsratio_buf.len, vsratio_buf.max, nil, 0.8, 1) + end + if o.plot_vsync_jitter then + jitter_graph = generate_graph(vsjitter_buf, vsjitter_buf.pos, vsjitter_buf.len, vsjitter_buf.max, nil, 0.8, 1) + end + append_property(s, "vsync-ratio", {prefix="VSync Ratio:", suffix=o.prefix_sep .. ratio_graph}) + append_property(s, "vsync-jitter", {prefix="VSync Jitter:", suffix=o.prefix_sep .. jitter_graph}) + else + -- Since no graph is needed we can print ratio/jitter on the same line and save some space + local vratio = append_property(s, "vsync-ratio", {prefix="VSync Ratio:"}) + append_property(s, "vsync-jitter", {prefix="VSync Jitter:", nl="" or o.nl}) + end +end + + +local function append_filters(s, prop, prefix) + local length = 0 + local filters = {} + + for _,f in ipairs(mp.get_property_native(prop, {})) do + local n = f.name + if f.enabled ~= nil and not f.enabled then + n = n .. " (disabled)" + end + + local p = {} + for key,value in pairs(f.params) do + p[#p+1] = key .. "=" .. value + end + if #p > 0 then + p = " [" .. table.concat(p, " ") .. "]" + else + p = "" + end + + length = length + n:len() + p:len() + filters[#filters+1] = no_ASS(n) .. it(no_ASS(p)) + end + + if #filters > 0 then + local ret + if length < o.filter_params_max_length then + ret = table.concat(filters, ", ") + else + local sep = o.nl .. o.indent .. o.indent + ret = sep .. table.concat(filters, sep) + end + s[#s+1] = o.nl .. o.indent .. b(prefix) .. o.prefix_sep .. ret + end +end + + +local function add_header(s) + s[#s+1] = text_style() +end + + +local function add_file(s) + append(s, "", {prefix="File:", nl="", indent=""}) + append_property(s, "filename", {prefix_sep="", nl="", indent=""}) + if not (mp.get_property_osd("filename") == mp.get_property_osd("media-title")) then + append_property(s, "media-title", {prefix="Title:"}) + end + + local ch_index = mp.get_property_number("chapter") + if ch_index and ch_index >= 0 then + append_property(s, "chapter-list/" .. tostring(ch_index) .. "/title", {prefix="Chapter:"}) + append_property(s, "chapter-list/count", + {prefix="(" .. tostring(ch_index + 1) .. "/", suffix=")", nl="", + indent=" ", prefix_sep=" ", no_prefix_markup=true}) + end + + local demuxer_cache = mp.get_property_native("demuxer-cache-state", {}) + if demuxer_cache["fw-bytes"] then + demuxer_cache = demuxer_cache["fw-bytes"] -- returns bytes + else + demuxer_cache = 0 + end + local demuxer_secs = mp.get_property_number("demuxer-cache-duration", 0) + local stream_cache = mp.get_property_number("cache-used", 0) * 1024 -- returns KiB + if stream_cache + demuxer_cache + demuxer_secs > 0 then + append(s, utils.format_bytes_humanized(stream_cache + demuxer_cache), {prefix="Total Cache:"}) + append(s, utils.format_bytes_humanized(demuxer_cache), {prefix="(Demuxer:", + suffix=",", nl="", no_prefix_markup=true, indent=o.prefix_sep}) + append(s, format("%.1f", demuxer_secs), {suffix=" sec)", nl="", indent="", + no_prefix_markup=true}) + local speed = mp.get_property_number("cache-speed", 0) + if speed > 0 then + append(s, utils.format_bytes_humanized(speed) .. "/s", {prefix="Speed:", nl="", + indent=o.prefix_sep, no_prefix_markup=true}) + end + end + append_property(s, "file-size", {prefix="Size:"}) +end + + +local function add_video(s) + local r = mp.get_property_native("video-params") + -- in case of e.g. lavi-complex there can be no input video, only output + if not r then + r = mp.get_property_native("video-out-params") + end + if not r then + return + end + + append(s, "", {prefix=o.nl .. o.nl .. "Video:", nl="", indent=""}) + if append_property(s, "video-codec", {prefix_sep="", nl="", indent=""}) then + append_property(s, "hwdec-current", {prefix="(hwdec:", nl="", indent=" ", + no_prefix_markup=true, suffix=")"}, {no=true, [""]=true}) + end + append_property(s, "avsync", {prefix="A-V:"}) + if append_property(s, compat("decoder-frame-drop-count"), + {prefix="Dropped Frames:", suffix=" (decoder)"}) then + append_property(s, compat("frame-drop-count"), {suffix=" (output)", nl="", indent=""}) + end + if append_property(s, "display-fps", {prefix="Display FPS:", suffix=" (specified)"}) then + append_property(s, "estimated-display-fps", + {suffix=" (estimated)", nl="", indent=""}) + else + append_property(s, "estimated-display-fps", + {prefix="Display FPS:", suffix=" (estimated)"}) + end + if append_property(s, compat("container-fps"), {prefix="FPS:", suffix=" (specified)"}) then + append_property(s, "estimated-vf-fps", + {suffix=" (estimated)", nl="", indent=""}) + else + append_property(s, "estimated-vf-fps", + {prefix="FPS:", suffix=" (estimated)"}) + end + + append_display_sync(s) + append_perfdata(s, o.print_perfdata_passes) + + if append(s, r["w"], {prefix="Native Resolution:"}) then + append(s, r["h"], {prefix="x", nl="", indent=" ", prefix_sep=" ", no_prefix_markup=true}) + end + append_property(s, "window-scale", {prefix="Window Scale:"}) + append(s, format("%.2f", r["aspect"]), {prefix="Aspect Ratio:"}) + append(s, r["pixelformat"], {prefix="Pixel Format:"}) + + -- Group these together to save vertical space + local prim = append(s, r["primaries"], {prefix="Primaries:"}) + local cmat = append(s, r["colormatrix"], {prefix="Colormatrix:", nl=prim and "" or o.nl}) + append(s, r["colorlevels"], {prefix="Levels:", nl=cmat and "" or o.nl}) + + -- Append HDR metadata conditionally (only when present and interesting) + local hdrpeak = r["sig-peak"] or 0 + local hdrinfo = "" + if hdrpeak > 1 then + hdrinfo = " (HDR peak: " .. format("%.2f", hdrpeak) .. ")" + end + + append(s, r["gamma"], {prefix="Gamma:", suffix=hdrinfo}) + append_property(s, "packet-video-bitrate", {prefix="Bitrate:", suffix=" kbps"}) + append_filters(s, "vf", "Filters:") +end + + +local function add_audio(s) + local r = mp.get_property_native("audio-params") + -- in case of e.g. lavi-complex there can be no input audio, only output + if not r then + r = mp.get_property_native("audio-out-params") + end + if not r then + return + end + + append(s, "", {prefix=o.nl .. o.nl .. "Audio:", nl="", indent=""}) + append_property(s, "audio-codec", {prefix_sep="", nl="", indent=""}) + append(s, r["format"], {prefix="Format:"}) + append(s, r["samplerate"], {prefix="Sample Rate:", suffix=" Hz"}) + append(s, r["channel-count"], {prefix="Channels:"}) + append_property(s, "packet-audio-bitrate", {prefix="Bitrate:", suffix=" kbps"}) + append_filters(s, "af", "Filters:") +end + + +-- Determine whether ASS formatting shall/can be used and set formatting sequences +local function eval_ass_formatting() + o.use_ass = o.ass_formatting and has_vo_window() + if o.use_ass then + o.nl = o.ass_nl + o.indent = o.ass_indent + o.prefix_sep = o.ass_prefix_sep + o.b1 = o.ass_b1 + o.b0 = o.ass_b0 + o.it1 = o.ass_it1 + o.it0 = o.ass_it0 + else + o.nl = o.no_ass_nl + o.indent = o.no_ass_indent + o.prefix_sep = o.no_ass_prefix_sep + if not has_ansi() then + o.b1 = "" + o.b0 = "" + o.it1 = "" + o.it0 = "" + else + o.b1 = o.no_ass_b1 + o.b0 = o.no_ass_b0 + o.it1 = o.no_ass_it1 + o.it0 = o.no_ass_it0 + end + end +end + + +-- Returns an ASS string with "normal" stats +local function default_stats() + local stats = {} + eval_ass_formatting() + add_header(stats) + add_file(stats) + add_video(stats) + add_audio(stats) + return table.concat(stats) +end + + +-- Returns an ASS string with extended VO stats +local function vo_stats() + local stats = {} + eval_ass_formatting() + add_header(stats) + append_perfdata(stats, true) + return table.concat(stats) +end + + +-- Returns an ASS string with stats about filters/profiles/shaders +local function filter_stats() + return "coming soon" +end + + +-- Current page and : mapping +curr_page = o.key_page_1 +pages = { + [o.key_page_1] = { f = default_stats, desc = "Default" }, + [o.key_page_2] = { f = vo_stats, desc = "Extended Frame Timings" }, + --[o.key_page_3] = { f = filter_stats, desc = "Dummy" }, +} + + +-- Returns a function to record vsratio/jitter with the specified `skip` value +local function record_data(skip) + init_buffers() + skip = max(skip, 0) + local i = skip + return function() + if i < skip then + i = i + 1 + return + else + i = 0 + end + + if o.plot_vsync_jitter then + local r = mp.get_property_number("vsync-jitter", nil) + if r then + vsjitter_buf.pos = (vsjitter_buf.pos % vsjitter_buf.len) + 1 + vsjitter_buf[vsjitter_buf.pos] = r + vsjitter_buf.max = max(vsjitter_buf.max, r) + end + end + + if o.plot_vsync_ratio then + local r = mp.get_property_number("vsync-ratio", nil) + if r then + vsratio_buf.pos = (vsratio_buf.pos % vsratio_buf.len) + 1 + vsratio_buf[vsratio_buf.pos] = r + vsratio_buf.max = max(vsratio_buf.max, r) + end + end + end +end + + +-- Call the function for `page` and print it to OSD +local function print_page(page) + if o.persistent_overlay then + mp.set_osd_ass(0, 0, pages[page].f()) + else + mp.osd_message(pages[page].f(), display_timer.oneshot and o.duration or o.redraw_delay + 1) + end +end + + +local function clear_screen() + if o.persistent_overlay then mp.set_osd_ass(0, 0, "") else mp.osd_message("", 0) end +end + + +-- Add keybindings for every page +local function add_page_bindings() + local function a(k) + return function() + curr_page = k + print_page(k) + if display_timer.oneshot then display_timer:kill() ; display_timer:resume() end + end + end + for k, _ in pairs(pages) do + mp.add_forced_key_binding(k, k, a(k), {repeatable=true}) + end +end + + +-- Remove keybindings for every page +local function remove_page_bindings() + for k, _ in pairs(pages) do + mp.remove_key_binding(k) + end +end + + +local function process_key_binding(oneshot) + -- Stats are already being displayed + if display_timer:is_enabled() then + -- Previous and current keys were oneshot -> restart timer + if display_timer.oneshot and oneshot then + display_timer:kill() + print_page(curr_page) + display_timer:resume() + -- Previous and current keys were toggling -> end toggling + elseif not display_timer.oneshot and not oneshot then + display_timer:kill() + clear_screen() + remove_page_bindings() + if recorder then + mp.unregister_event(recorder) + recorder = nil + end + end + -- No stats are being displayed yet + else + if not oneshot and (o.plot_vsync_jitter or o.plot_vsync_ratio) then + recorder = record_data(o.skip_frames) + mp.register_event("tick", recorder) + end + display_timer:kill() + display_timer.oneshot = oneshot + display_timer.timeout = oneshot and o.duration or o.redraw_delay + add_page_bindings() + print_page(curr_page) + display_timer:resume() + end +end + + +-- Create the timer used for redrawing (toggling) or clearing the screen (oneshot) +-- The duration here is not important and always set in process_key_binding() +display_timer = mp.add_periodic_timer(o.duration, + function() + if display_timer.oneshot then + display_timer:kill() ; clear_screen() ; remove_page_bindings() + else + print_page(curr_page) + end + end) +display_timer:kill() + +-- Single invocation key binding +mp.add_key_binding(o.key_oneshot, "display-stats", function() process_key_binding(true) end, + {repeatable=true}) + +-- Toggling key binding +mp.add_key_binding(o.key_toggle, "display-stats-toggle", function() process_key_binding(false) end, + {repeatable=false}) + +-- Single invocation bindings without key, can be used in input.conf to create +-- bindings for a specific page: "e script-binding stats/display-page-2" +for k, _ in pairs(pages) do + mp.add_key_binding(nil, "display-page-" .. k, function() process_key_binding(true) end, + {repeatable=true}) +end + +-- Reprint stats immediately when VO was reconfigured, only when toggled +mp.register_event("video-reconfig", + function() + if display_timer:is_enabled() then + print_page(curr_page) + end + end) diff --git a/scripts/status-line.lua b/scripts/status-line.lua new file mode 100755 index 0000000..e40dce2 --- /dev/null +++ b/scripts/status-line.lua @@ -0,0 +1,92 @@ +-- Rebuild the terminal status line as a lua script +-- Be aware that this will require more cpu power! +-- Also, this is based on a rather old version of the +-- builtin mpv status line. + +-- Add a string to the status line +function atsl(s) + newStatus = newStatus .. s +end + +function update_status_line() + -- Reset the status line + newStatus = "" + + if mp.get_property_bool("pause") then + atsl("(Paused) ") + elseif mp.get_property_bool("paused-for-cache") then + atsl("(Buffering) ") + end + + if mp.get_property("aid") ~= "no" then + atsl("A") + end + if mp.get_property("vid") ~= "no" then + atsl("V") + end + + atsl(": ") + + atsl(mp.get_property_osd("time-pos")) + + atsl(" / "); + atsl(mp.get_property_osd("duration")); + + atsl(" (") + atsl(mp.get_property_osd("percent-pos", -1)) + atsl("%)") + + local r = mp.get_property_number("speed", -1) + if r ~= 1 then + atsl(string.format(" x%4.2f", r)) + end + + r = mp.get_property_number("avsync", nil) + if r ~= nil then + atsl(string.format(" A-V: %f", r)) + end + + r = mp.get_property("total-avsync-change", 0) + if math.abs(r) > 0.05 then + atsl(string.format(" ct:%7.3f", r)) + end + + r = mp.get_property_number("decoder-drop-frame-count", -1) + if r > 0 then + atsl(" Late: ") + atsl(r) + end + + r = mp.get_property_osd("video-bitrate") + if r ~= nil and r ~= "" then + atsl(" Vb: ") + atsl(r) + end + + r = mp.get_property_osd("audio-bitrate") + if r ~= nil and r ~= "" then + atsl(" Ab: ") + atsl(r) + end + + r = mp.get_property_number("cache", 0) + if r > 0 then + atsl(string.format(" Cache: %d%% ", r)) + end + + -- Set the new status line + mp.set_property("options/term-status-msg", newStatus) +end + +timer = mp.add_periodic_timer(1, update_status_line) + +function on_pause_change(name, value) + if value == false then + timer:resume() + else + timer:stop() + end + mp.add_timeout(0.1, update_status_line) +end +mp.observe_property("pause", "bool", on_pause_change) +mp.register_event("seek", update_status_line) diff --git a/scripts/thumbfast.lua b/scripts/thumbfast.lua new file mode 100644 index 0000000..cf2a093 --- /dev/null +++ b/scripts/thumbfast.lua @@ -0,0 +1,921 @@ +-- thumbfast.lua +-- +-- High-performance on-the-fly thumbnailer +-- +-- Built for easy integration in third-party UIs. + +local options = { + -- Socket path (leave empty for auto) + socket = "", + + -- Thumbnail path (leave empty for auto) + thumbnail = "", + + -- Maximum thumbnail size in pixels (scaled down to fit) + -- Values are scaled when hidpi is enabled + max_height = 200, + max_width = 200, + + -- Apply tone-mapping, no to disable + tone_mapping = "auto", + + -- Overlay id + overlay_id = 42, + + -- Spawn thumbnailer on file load for faster initial thumbnails + spawn_first = false, + + -- Close thumbnailer process after an inactivity period in seconds, 0 to disable + quit_after_inactivity = 0, + + -- Enable on network playback + network = false, + + -- Enable on audio playback + audio = false, + + -- Enable hardware decoding + hwdec = false, + + -- Windows only: use native Windows API to write to pipe (requires LuaJIT) + direct_io = false, + + -- Custom path to the mpv executable + mpv_path = "mpv" +} + +mp.utils = require "mp.utils" +mp.options = require "mp.options" +mp.options.read_options(options, "thumbfast") + +local properties = {} +local pre_0_30_0 = mp.command_native_async == nil +local pre_0_33_0 = true + +function subprocess(args, async, callback) + callback = callback or function() end + + if not pre_0_30_0 then + if async then + return mp.command_native_async({name = "subprocess", playback_only = true, args = args}, callback) + else + return mp.command_native({name = "subprocess", playback_only = false, capture_stdout = true, args = args}) + end + else + if async then + return mp.utils.subprocess_detached({args = args}, callback) + else + return mp.utils.subprocess({args = args}) + end + end +end + +local winapi = {} +if options.direct_io then + local ffi_loaded, ffi = pcall(require, "ffi") + if ffi_loaded then + winapi = { + ffi = ffi, + C = ffi.C, + bit = require("bit"), + socket_wc = "", + + -- WinAPI constants + CP_UTF8 = 65001, + GENERIC_WRITE = 0x40000000, + OPEN_EXISTING = 3, + FILE_FLAG_WRITE_THROUGH = 0x80000000, + FILE_FLAG_NO_BUFFERING = 0x20000000, + PIPE_NOWAIT = ffi.new("unsigned long[1]", 0x00000001), + + INVALID_HANDLE_VALUE = ffi.cast("void*", -1), + + -- don't care about how many bytes WriteFile wrote, so allocate something to store the result once + _lpNumberOfBytesWritten = ffi.new("unsigned long[1]"), + } + -- cache flags used in run() to avoid bor() call + winapi._createfile_pipe_flags = winapi.bit.bor(winapi.FILE_FLAG_WRITE_THROUGH, winapi.FILE_FLAG_NO_BUFFERING) + + ffi.cdef[[ + void* __stdcall CreateFileW(const wchar_t *lpFileName, unsigned long dwDesiredAccess, unsigned long dwShareMode, void *lpSecurityAttributes, unsigned long dwCreationDisposition, unsigned long dwFlagsAndAttributes, void *hTemplateFile); + bool __stdcall WriteFile(void *hFile, const void *lpBuffer, unsigned long nNumberOfBytesToWrite, unsigned long *lpNumberOfBytesWritten, void *lpOverlapped); + bool __stdcall CloseHandle(void *hObject); + bool __stdcall SetNamedPipeHandleState(void *hNamedPipe, unsigned long *lpMode, unsigned long *lpMaxCollectionCount, unsigned long *lpCollectDataTimeout); + int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char *lpMultiByteStr, int cbMultiByte, wchar_t *lpWideCharStr, int cchWideChar); + ]] + + winapi.MultiByteToWideChar = function(MultiByteStr) + if MultiByteStr then + local utf16_len = winapi.C.MultiByteToWideChar(winapi.CP_UTF8, 0, MultiByteStr, -1, nil, 0) + if utf16_len > 0 then + local utf16_str = winapi.ffi.new("wchar_t[?]", utf16_len) + if winapi.C.MultiByteToWideChar(winapi.CP_UTF8, 0, MultiByteStr, -1, utf16_str, utf16_len) > 0 then + return utf16_str + end + end + end + return "" + end + + else + options.direct_io = false + end +end + +local file = nil +local file_bytes = 0 +local spawned = false +local disabled = false +local force_disabled = false +local spawn_waiting = false +local spawn_working = false +local script_written = false + +local dirty = false + +local x = nil +local y = nil +local last_x = x +local last_y = y + +local last_seek_time = nil + +local effective_w = options.max_width +local effective_h = options.max_height +local real_w = nil +local real_h = nil +local last_real_w = nil +local last_real_h = nil + +local script_name = nil + +local show_thumbnail = false + +local filters_reset = {["lavfi-crop"]=true, ["crop"]=true} +local filters_runtime = {["hflip"]=true, ["vflip"]=true} +local filters_all = {["hflip"]=true, ["vflip"]=true, ["lavfi-crop"]=true, ["crop"]=true} + +local tone_mappings = {["none"]=true, ["clip"]=true, ["linear"]=true, ["gamma"]=true, ["reinhard"]=true, ["hable"]=true, ["mobius"]=true} +local last_tone_mapping = nil + +local last_vf_reset = "" +local last_vf_runtime = "" + +local last_rotate = 0 + +local par = "" +local last_par = "" + +local last_has_vid = 0 +local has_vid = 0 + +local file_timer = nil +local file_check_period = 1/60 + +local allow_fast_seek = true + +local client_script = [=[ +#!/usr/bin/env bash +MPV_IPC_FD=0; MPV_IPC_PATH="%s" +trap "kill 0" EXIT +while [[ $# -ne 0 ]]; do case $1 in --mpv-ipc-fd=*) MPV_IPC_FD=${1/--mpv-ipc-fd=/} ;; esac; shift; done +if echo "print-text thumbfast" >&"$MPV_IPC_FD"; then echo -n > "$MPV_IPC_PATH"; tail -f "$MPV_IPC_PATH" >&"$MPV_IPC_FD" & while read -r -u "$MPV_IPC_FD" 2>/dev/null; do :; done; fi +]=] + +local function get_os() + local raw_os_name = "" + + if jit and jit.os and jit.arch then + raw_os_name = jit.os + else + if package.config:sub(1,1) == "\\" then + -- Windows + local env_OS = os.getenv("OS") + if env_OS then + raw_os_name = env_OS + end + else + raw_os_name = subprocess({"uname", "-s"}).stdout + end + end + + raw_os_name = (raw_os_name):lower() + + local os_patterns = { + ["windows"] = "windows", + ["linux"] = "linux", + + ["osx"] = "darwin", + ["mac"] = "darwin", + ["darwin"] = "darwin", + + ["^mingw"] = "windows", + ["^cygwin"] = "windows", + + ["bsd$"] = "darwin", + ["sunos"] = "darwin" + } + + -- Default to linux + local str_os_name = "linux" + + for pattern, name in pairs(os_patterns) do + if raw_os_name:match(pattern) then + str_os_name = name + break + end + end + + return str_os_name +end + +local os_name = mp.get_property("platform") or get_os() + +local path_separator = os_name == "windows" and "\\" or "/" + +if options.socket == "" then + if os_name == "windows" then + options.socket = "thumbfast" + else + options.socket = "/tmp/thumbfast" + end +end + +if options.thumbnail == "" then + if os_name == "windows" then + options.thumbnail = os.getenv("TEMP").."\\thumbfast.out" + else + options.thumbnail = "/tmp/thumbfast.out" + end +end + +local unique = mp.utils.getpid() + +options.socket = options.socket .. unique +options.thumbnail = options.thumbnail .. unique + +if options.direct_io then + if os_name == "windows" then + winapi.socket_wc = winapi.MultiByteToWideChar("\\\\.\\pipe\\" .. options.socket) + end + + if winapi.socket_wc == "" then + options.direct_io = false + end +end + +local mpv_path = options.mpv_path + +if mpv_path == "mpv" and os_name == "darwin" and unique then + -- TODO: look into ~~osxbundle/ + mpv_path = string.gsub(subprocess({"ps", "-o", "comm=", "-p", tostring(unique)}).stdout, "[\n\r]", "") + if mpv_path ~= "mpv" then + mpv_path = string.gsub(mpv_path, "/mpv%-bundle$", "/mpv") + local mpv_bin = mp.utils.file_info("/usr/local/mpv") + if mpv_bin and mpv_bin.is_file then + mpv_path = "/usr/local/mpv" + else + local mpv_app = mp.utils.file_info("/Applications/mpv.app/Contents/MacOS/mpv") + if mpv_app and mpv_app.is_file then + mp.msg.warn("symlink mpv to fix Dock icons: `sudo ln -s /Applications/mpv.app/Contents/MacOS/mpv /usr/local/mpv`") + else + mp.msg.warn("drag to your Applications folder and symlink mpv to fix Dock icons: `sudo ln -s /Applications/mpv.app/Contents/MacOS/mpv /usr/local/mpv`") + end + end + end +end + +local function vo_tone_mapping() + local passes = mp.get_property_native("vo-passes") + if passes and passes["fresh"] then + for k, v in pairs(passes["fresh"]) do + for k2, v2 in pairs(v) do + if k2 == "desc" and v2 then + local tone_mapping = string.match(v2, "([0-9a-z.-]+) tone map") + if tone_mapping then + return tone_mapping + end + end + end + end + end +end + +local function vf_string(filters, full) + local vf = "" + local vf_table = properties["vf"] + + if vf_table and #vf_table > 0 then + for i = #vf_table, 1, -1 do + if filters[vf_table[i].name] then + local args = "" + for key, value in pairs(vf_table[i].params) do + if args ~= "" then + args = args .. ":" + end + args = args .. key .. "=" .. value + end + vf = vf .. vf_table[i].name .. "=" .. args .. "," + end + end + end + + if (full and options.tone_mapping ~= "no") or options.tone_mapping == "auto" then + if properties["video-params"] and properties["video-params"]["primaries"] == "bt.2020" then + local tone_mapping = options.tone_mapping + if tone_mapping == "auto" then + tone_mapping = last_tone_mapping or properties["tone-mapping"] + if tone_mapping == "auto" and properties["current-vo"] == "gpu-next" then + tone_mapping = vo_tone_mapping() + end + end + if not tone_mappings[tone_mapping] then + tone_mapping = "hable" + end + last_tone_mapping = tone_mapping + vf = vf .. "zscale=transfer=linear,format=gbrpf32le,tonemap="..tone_mapping..",zscale=transfer=bt709," + end + end + + if full then + vf = vf.."scale=w="..effective_w..":h="..effective_h..par..",pad=w="..effective_w..":h="..effective_h..":x=-1:y=-1,format=bgra" + end + + return vf +end + +local function calc_dimensions() + local width = properties["video-out-params"] and properties["video-out-params"]["dw"] + local height = properties["video-out-params"] and properties["video-out-params"]["dh"] + if not width or not height then return end + + local scale = properties["display-hidpi-scale"] or 1 + + if width / height > options.max_width / options.max_height then + effective_w = math.floor(options.max_width * scale + 0.5) + effective_h = math.floor(height / width * effective_w + 0.5) + else + effective_h = math.floor(options.max_height * scale + 0.5) + effective_w = math.floor(width / height * effective_h + 0.5) + end + + local v_par = properties["video-out-params"] and properties["video-out-params"]["par"] or 1 + if v_par == 1 then + par = ":force_original_aspect_ratio=decrease" + else + par = "" + end +end + +local info_timer = nil + +local function info(w, h) + local rotate = properties["video-params"] and properties["video-params"]["rotate"] + local image = properties["current-tracks"] and properties["current-tracks"]["video"] and properties["current-tracks"]["video"]["image"] + local albumart = image and properties["current-tracks"]["video"]["albumart"] + + disabled = (w or 0) == 0 or (h or 0) == 0 or + has_vid == 0 or + (properties["demuxer-via-network"] and not options.network) or + (albumart and not options.audio) or + (image and not albumart) or + force_disabled + + if info_timer then + info_timer:kill() + info_timer = nil + elseif has_vid == 0 or (rotate == nil and not disabled) then + info_timer = mp.add_timeout(0.05, function() info(w, h) end) + end + + local json, err = mp.utils.format_json({width=w, height=h, disabled=disabled, available=true, socket=options.socket, thumbnail=options.thumbnail, overlay_id=options.overlay_id}) + if pre_0_30_0 then + mp.command_native({"script-message", "thumbfast-info", json}) + else + mp.command_native_async({"script-message", "thumbfast-info", json}, function() end) + end +end + +local function remove_thumbnail_files() + if file then + file:close() + file = nil + file_bytes = 0 + end + os.remove(options.thumbnail) + os.remove(options.thumbnail..".bgra") +end + +local activity_timer + +local function spawn(time) + if disabled then return end + + local path = properties["path"] + if path == nil then return end + + if options.quit_after_inactivity > 0 then + if show_thumbnail or activity_timer:is_enabled() then + activity_timer:kill() + end + activity_timer:resume() + end + + local open_filename = properties["stream-open-filename"] + local ytdl = open_filename and properties["demuxer-via-network"] and path ~= open_filename + if ytdl then + path = open_filename + end + + remove_thumbnail_files() + + local vid = properties["vid"] + has_vid = vid or 0 + + local args = { + mpv_path, "--no-config", "--msg-level=all=no", "--idle", "--pause", "--keep-open=always", "--really-quiet", "--no-terminal", + "--load-scripts=no", "--osc=no", "--ytdl=no", "--load-stats-overlay=no", "--load-osd-console=no", "--load-auto-profiles=no", + "--edition="..(properties["edition"] or "auto"), "--vid="..(vid or "auto"), "--no-sub", "--no-audio", + "--start="..time, allow_fast_seek and "--hr-seek=no" or "--hr-seek=yes", + "--ytdl-format=worst", "--demuxer-readahead-secs=0", "--demuxer-max-bytes=128KiB", + "--vd-lavc-skiploopfilter=all", "--vd-lavc-software-fallback=1", "--vd-lavc-fast", "--vd-lavc-threads=2", "--hwdec="..(options.hwdec and "auto" or "no"), + "--vf="..vf_string(filters_all, true), + "--sws-scaler=fast-bilinear", + "--video-rotate="..last_rotate, + "--ovc=rawvideo", "--of=image2", "--ofopts=update=1", "--o="..options.thumbnail + } + + if not pre_0_30_0 then + table.insert(args, "--sws-allow-zimg=no") + end + + if os_name == "darwin" and properties["macos-app-activation-policy"] then + table.insert(args, "--macos-app-activation-policy=accessory") + end + + if os_name == "windows" or pre_0_33_0 then + table.insert(args, "--input-ipc-server="..options.socket) + elseif not script_written then + local client_script_path = options.socket..".run" + local script = io.open(client_script_path, "w+") + if script == nil then + mp.msg.error("client script write failed") + return + else + script_written = true + script:write(string.format(client_script, options.socket)) + script:close() + subprocess({"chmod", "+x", client_script_path}, true) + table.insert(args, "--scripts="..client_script_path) + end + else + local client_script_path = options.socket..".run" + table.insert(args, "--scripts="..client_script_path) + end + + table.insert(args, "--") + table.insert(args, path) + + spawned = true + spawn_waiting = true + + subprocess(args, true, + function(success, result) + if spawn_waiting and (success == false or (result.status ~= 0 and result.status ~= -2)) then + spawned = false + spawn_waiting = false + options.tone_mapping = "no" + mp.msg.error("mpv subprocess create failed") + if not spawn_working then -- notify users of required configuration + if options.mpv_path == "mpv" then + if properties["current-vo"] == "libmpv" then + if options.mpv_path == mpv_path then -- attempt to locate ImPlay + mpv_path = "ImPlay" + spawn(time) + else -- ImPlay not in path + if os_name ~= "darwin" then + force_disabled = true + info(real_w or effective_w, real_h or effective_h) + end + mp.commandv("show-text", "thumbfast: ERROR! cannot create mpv subprocess", 5000) + mp.commandv("script-message-to", "implay", "show-message", "thumbfast initial setup", "Set mpv_path=PATH_TO_ImPlay in thumbfast config:\n" .. string.gsub(mp.command_native({"expand-path", "~~/script-opts/thumbfast.conf"}), "[/\\]", path_separator).."\nand restart ImPlay") + end + else + mp.commandv("show-text", "thumbfast: ERROR! cannot create mpv subprocess", 5000) + if os_name == "windows" then + mp.commandv("script-message-to", "mpvnet", "show-text", "thumbfast: ERROR! install standalone mpv, see README", 5000, 20) + mp.commandv("script-message", "mpv.net", "show-text", "thumbfast: ERROR! install standalone mpv, see README", 5000, 20) + end + end + else + mp.commandv("show-text", "thumbfast: ERROR! cannot create mpv subprocess", 5000) + -- found ImPlay but not defined in config + mp.commandv("script-message-to", "implay", "show-message", "thumbfast", "Set mpv_path=PATH_TO_ImPlay in thumbfast config:\n" .. string.gsub(mp.command_native({"expand-path", "~~/script-opts/thumbfast.conf"}), "[/\\]", path_separator).."\nand restart ImPlay") + end + end + elseif success == true and (result.status == 0 or result.status == -2) then + if not spawn_working and properties["current-vo"] == "libmpv" and options.mpv_path ~= mpv_path then + mp.commandv("script-message-to", "implay", "show-message", "thumbfast initial setup", "Set mpv_path=ImPlay in thumbfast config:\n" .. string.gsub(mp.command_native({"expand-path", "~~/script-opts/thumbfast.conf"}), "[/\\]", path_separator).."\nand restart ImPlay") + end + spawn_working = true + spawn_waiting = false + end + end + ) +end + +local function run(command) + if not spawned then return end + + if options.direct_io then + local hPipe = winapi.C.CreateFileW(winapi.socket_wc, winapi.GENERIC_WRITE, 0, nil, winapi.OPEN_EXISTING, winapi._createfile_pipe_flags, nil) + if hPipe ~= winapi.INVALID_HANDLE_VALUE then + local buf = command .. "\n" + winapi.C.SetNamedPipeHandleState(hPipe, winapi.PIPE_NOWAIT, nil, nil) + winapi.C.WriteFile(hPipe, buf, #buf + 1, winapi._lpNumberOfBytesWritten, nil) + winapi.C.CloseHandle(hPipe) + end + + return + end + + local command_n = command.."\n" + + if os_name == "windows" then + if file and file_bytes + #command_n >= 4096 then + file:close() + file = nil + file_bytes = 0 + end + if not file then + file = io.open("\\\\.\\pipe\\"..options.socket, "r+b") + end + elseif pre_0_33_0 then + subprocess({"/usr/bin/env", "sh", "-c", "echo '" .. command .. "' | socat - " .. options.socket}) + return + elseif not file then + file = io.open(options.socket, "r+") + end + if file then + file_bytes = file:seek("end") + file:write(command_n) + file:flush() + end +end + +local function draw(w, h, script) + if not w or not show_thumbnail then return end + if x ~= nil then + if pre_0_30_0 then + mp.command_native({"overlay-add", options.overlay_id, x, y, options.thumbnail..".bgra", 0, "bgra", w, h, (4*w)}) + else + mp.command_native_async({"overlay-add", options.overlay_id, x, y, options.thumbnail..".bgra", 0, "bgra", w, h, (4*w)}, function() end) + end + elseif script then + local json, err = mp.utils.format_json({width=w, height=h, x=x, y=y, socket=options.socket, thumbnail=options.thumbnail, overlay_id=options.overlay_id}) + mp.commandv("script-message-to", script, "thumbfast-render", json) + end +end + +local function real_res(req_w, req_h, filesize) + local count = filesize / 4 + local diff = (req_w * req_h) - count + + if (properties["video-params"] and properties["video-params"]["rotate"] or 0) % 180 == 90 then + req_w, req_h = req_h, req_w + end + + if diff == 0 then + return req_w, req_h + else + local threshold = 5 -- throw out results that change too much + local long_side, short_side = req_w, req_h + if req_h > req_w then + long_side, short_side = req_h, req_w + end + for a = short_side, short_side - threshold, -1 do + if count % a == 0 then + local b = count / a + if long_side - b < threshold then + if req_h < req_w then return b, a else return a, b end + end + end + end + return nil + end +end + +local function move_file(from, to) + if os_name == "windows" then + os.remove(to) + end + -- move the file because it can get overwritten while overlay-add is reading it, and crash the player + os.rename(from, to) +end + +local function seek(fast) + if last_seek_time then + run("async seek " .. last_seek_time .. (fast and " absolute+keyframes" or " absolute+exact")) + end +end + +local seek_period = 3/60 +local seek_period_counter = 0 +local seek_timer +seek_timer = mp.add_periodic_timer(seek_period, function() + if seek_period_counter == 0 then + seek(allow_fast_seek) + seek_period_counter = 1 + else + if seek_period_counter == 2 then + if allow_fast_seek then + seek_timer:kill() + seek() + end + else seek_period_counter = seek_period_counter + 1 end + end +end) +seek_timer:kill() + +local function request_seek() + if seek_timer:is_enabled() then + seek_period_counter = 0 + else + seek_timer:resume() + seek(allow_fast_seek) + seek_period_counter = 1 + end +end + +local function check_new_thumb() + -- the slave might start writing to the file after checking existance and + -- validity but before actually moving the file, so move to a temporary + -- location before validity check to make sure everything stays consistant + -- and valid thumbnails don't get overwritten by invalid ones + local tmp = options.thumbnail..".tmp" + move_file(options.thumbnail, tmp) + local finfo = mp.utils.file_info(tmp) + if not finfo then return false end + spawn_waiting = false + local w, h = real_res(effective_w, effective_h, finfo.size) + if w then -- only accept valid thumbnails + move_file(tmp, options.thumbnail..".bgra") + + real_w, real_h = w, h + if real_w and (real_w ~= last_real_w or real_h ~= last_real_h) then + last_real_w, last_real_h = real_w, real_h + info(real_w, real_h) + end + if not show_thumbnail then + file_timer:kill() + end + return true + end + + return false +end + +file_timer = mp.add_periodic_timer(file_check_period, function() + if check_new_thumb() then + draw(real_w, real_h, script_name) + end +end) +file_timer:kill() + +local function clear() + file_timer:kill() + seek_timer:kill() + if options.quit_after_inactivity > 0 then + if show_thumbnail or activity_timer:is_enabled() then + activity_timer:kill() + end + activity_timer:resume() + end + last_seek_time = nil + show_thumbnail = false + last_x = nil + last_y = nil + if script_name then return end + if pre_0_30_0 then + mp.command_native({"overlay-remove", options.overlay_id}) + else + mp.command_native_async({"overlay-remove", options.overlay_id}, function() end) + end +end + +local function quit() + activity_timer:kill() + if show_thumbnail then + activity_timer:resume() + return + end + run("quit") + spawned = false + real_w, real_h = nil, nil + clear() +end + +activity_timer = mp.add_timeout(options.quit_after_inactivity, quit) +activity_timer:kill() + +local function thumb(time, r_x, r_y, script) + if disabled then return end + + time = tonumber(time) + if time == nil then return end + + if r_x == "" or r_y == "" then + x, y = nil, nil + else + x, y = math.floor(r_x + 0.5), math.floor(r_y + 0.5) + end + + script_name = script + if last_x ~= x or last_y ~= y or not show_thumbnail then + show_thumbnail = true + last_x = x + last_y = y + draw(real_w, real_h, script) + end + + if options.quit_after_inactivity > 0 then + if show_thumbnail or activity_timer:is_enabled() then + activity_timer:kill() + end + activity_timer:resume() + end + + if time == last_seek_time then return end + last_seek_time = time + if not spawned then spawn(time) end + request_seek() + if not file_timer:is_enabled() then file_timer:resume() end +end + +local function watch_changes() + if not dirty or not properties["video-out-params"] then return end + dirty = false + + local old_w = effective_w + local old_h = effective_h + + calc_dimensions() + + local vf_reset = vf_string(filters_reset) + local rotate = properties["video-rotate"] or 0 + + local resized = old_w ~= effective_w or + old_h ~= effective_h or + last_vf_reset ~= vf_reset or + (last_rotate % 180) ~= (rotate % 180) or + par ~= last_par + + if resized then + last_rotate = rotate + info(effective_w, effective_h) + elseif last_has_vid ~= has_vid and has_vid ~= 0 then + info(effective_w, effective_h) + end + + if spawned then + if resized then + -- mpv doesn't allow us to change output size + local seek_time = last_seek_time + run("quit") + clear() + spawned = false + spawn(seek_time or mp.get_property_number("time-pos", 0)) + file_timer:resume() + else + if rotate ~= last_rotate then + run("set video-rotate "..rotate) + end + local vf_runtime = vf_string(filters_runtime) + if vf_runtime ~= last_vf_runtime then + run("vf set "..vf_string(filters_all, true)) + last_vf_runtime = vf_runtime + end + end + else + last_vf_runtime = vf_string(filters_runtime) + end + + last_vf_reset = vf_reset + last_rotate = rotate + last_par = par + last_has_vid = has_vid + + if not spawned and not disabled and options.spawn_first and resized then + spawn(mp.get_property_number("time-pos", 0)) + file_timer:resume() + end +end + +local function update_property(name, value) + properties[name] = value +end + +local function update_property_dirty(name, value) + properties[name] = value + dirty = true + if name == "tone-mapping" then + last_tone_mapping = nil + end +end + +local function update_tracklist(name, value) + -- current-tracks shim + for _, track in ipairs(value) do + if track.type == "video" and track.selected then + properties["current-tracks/video/image"] = track.image + properties["current-tracks/video/albumart"] = track.albumart + return + end + end +end + +local function sync_changes(prop, val) + update_property(prop, val) + if val == nil then return end + + if type(val) == "boolean" then + if prop == "vid" then + has_vid = 0 + last_has_vid = 0 + info(effective_w, effective_h) + clear() + return + end + val = val and "yes" or "no" + end + + if prop == "vid" then + has_vid = 1 + end + + if not spawned then return end + + run("set "..prop.." "..val) + dirty = true +end + +local function file_load() + clear() + spawned = false + real_w, real_h = nil, nil + last_real_w, last_real_h = nil, nil + last_tone_mapping = nil + last_seek_time = nil + if info_timer then + info_timer:kill() + info_timer = nil + end + + calc_dimensions() + info(effective_w, effective_h) +end + +local function shutdown() + run("quit") + remove_thumbnail_files() + if os_name ~= "windows" then + os.remove(options.socket) + os.remove(options.socket..".run") + end +end + +local function on_duration(prop, val) + allow_fast_seek = (val or 30) >= 30 +end + +mp.observe_property("current-tracks", "native", function(name, value) + if pre_0_33_0 then + mp.unobserve_property(update_tracklist) + pre_0_33_0 = false + end + update_property(name, value) +end) + +mp.observe_property("track-list", "native", update_tracklist) +mp.observe_property("display-hidpi-scale", "native", update_property_dirty) +mp.observe_property("video-out-params", "native", update_property_dirty) +mp.observe_property("video-params", "native", update_property_dirty) +mp.observe_property("vf", "native", update_property_dirty) +mp.observe_property("tone-mapping", "native", update_property_dirty) +mp.observe_property("demuxer-via-network", "native", update_property) +mp.observe_property("stream-open-filename", "native", update_property) +mp.observe_property("macos-app-activation-policy", "native", update_property) +mp.observe_property("current-vo", "native", update_property) +mp.observe_property("video-rotate", "native", update_property) +mp.observe_property("path", "native", update_property) +mp.observe_property("vid", "native", sync_changes) +mp.observe_property("edition", "native", sync_changes) +mp.observe_property("duration", "native", on_duration) + +mp.register_script_message("thumb", thumb) +mp.register_script_message("clear", clear) + +mp.register_event("file-loaded", file_load) +mp.register_event("shutdown", shutdown) + +mp.register_idle(watch_changes) diff --git a/scripts/youtube-upnext.lua b/scripts/youtube-upnext.lua new file mode 120000 index 0000000..581c77b --- /dev/null +++ b/scripts/youtube-upnext.lua @@ -0,0 +1 @@ +../mpv-youtube-upnext/youtube-upnext.lua \ No newline at end of file diff --git a/shaders/Anime4K_AutoDownscalePre_x2.glsl b/shaders/Anime4K_AutoDownscalePre_x2.glsl new file mode 100644 index 0000000..d321b7d --- /dev/null +++ b/shaders/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/shaders/Anime4K_AutoDownscalePre_x4.glsl b/shaders/Anime4K_AutoDownscalePre_x4.glsl new file mode 100644 index 0000000..7ffa64d --- /dev/null +++ b/shaders/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/shaders/Anime4K_Clamp_Highlights.glsl b/shaders/Anime4K_Clamp_Highlights.glsl new file mode 100644 index 0000000..755130a --- /dev/null +++ b/shaders/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/shaders/Anime4K_Darken_Fast.glsl b/shaders/Anime4K_Darken_Fast.glsl new file mode 100644 index 0000000..00a917d --- /dev/null +++ b/shaders/Anime4K_Darken_Fast.glsl @@ -0,0 +1,216 @@ +// 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-Darken-DoG-(HQ)-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Darken-DoG-(Fast)-Difference-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LINEKERNEL +//!WIDTH HOOKED.w 2 / +//!HEIGHT HOOKED.h 2 / +//!COMPONENTS 1 + +#define SPATIAL_SIGMA (1.0 * float(HOOKED_size.y) / 1080.0) //Spatial window size, must be a positive real number. + +#define KERNELSIZE (max(int(ceil(SPATIAL_SIGMA * 2.0)), 1) * 2 + 1) //Kernel size, must be an positive odd integer. +#define KERNELHALFSIZE (int(KERNELSIZE/2)) //Half of the kernel size without remainder. Must be equal to trunc(KERNELSIZE/2). +#define KERNELLEN (KERNELSIZE * KERNELSIZE) //Total area of kernel. Must be equal to KERNELSIZE * KERNELSIZE. + +float gaussian(float x, float s, float m) { + float scaled = (x - m) / s; + return exp(-0.5 * scaled * scaled); +} + +float comp_gaussian_x() { + + float g = 0.0; + float gn = 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) + (LINEKERNEL_tex(HOOKED_pos).x * STRENGTH); +} + diff --git a/shaders/Anime4K_Darken_HQ.glsl b/shaders/Anime4K_Darken_HQ.glsl new file mode 100644 index 0000000..a34047d --- /dev/null +++ b/shaders/Anime4K_Darken_HQ.glsl @@ -0,0 +1,198 @@ +// 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-Darken-DoG-(HQ)-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Darken-DoG-(HQ)-Difference-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LINEKERNEL +//!COMPONENTS 1 + +#define SPATIAL_SIGMA (1.0 * float(HOOKED_size.y) / 1080.0) //Spatial window size, must be a positive real number. + +#define KERNELSIZE (max(int(ceil(SPATIAL_SIGMA * 2.0)), 1) * 2 + 1) //Kernel size, must be an positive odd integer. +#define KERNELHALFSIZE (int(KERNELSIZE/2)) //Half of the kernel size without remainder. Must be equal to trunc(KERNELSIZE/2). +#define KERNELLEN (KERNELSIZE * KERNELSIZE) //Total area of kernel. Must be equal to KERNELSIZE * KERNELSIZE. + +float gaussian(float x, float s, float m) { + float scaled = (x - m) / s; + return exp(-0.5 * scaled * scaled); +} + +float comp_gaussian_x() { + + float g = 0.0; + float gn = 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) + (comp_gaussian_y() * STRENGTH); +} + diff --git a/shaders/Anime4K_Darken_VeryFast.glsl b/shaders/Anime4K_Darken_VeryFast.glsl new file mode 100644 index 0000000..6fb88cd --- /dev/null +++ b/shaders/Anime4K_Darken_VeryFast.glsl @@ -0,0 +1,218 @@ +// 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-Darken-DoG-(HQ)-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!WIDTH HOOKED.w 2 / +//!HEIGHT HOOKED.h 2 / +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Darken-DoG-(VeryFast)-Gaussian-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LINEKERNEL +//!WIDTH HOOKED.w 4 / +//!HEIGHT HOOKED.h 4 / +//!COMPONENTS 1 + +#define SPATIAL_SIGMA (0.5 * float(HOOKED_size.y) / 1080.0) //Spatial window size, must be a positive real number. + +#define KERNELSIZE (max(int(ceil(SPATIAL_SIGMA * 2.0)), 1) * 2 + 1) //Kernel size, must be an positive odd integer. +#define KERNELHALFSIZE (int(KERNELSIZE/2)) //Half of the kernel size without remainder. Must be equal to trunc(KERNELSIZE/2). +#define KERNELLEN (KERNELSIZE * KERNELSIZE) //Total area of kernel. Must be equal to KERNELSIZE * KERNELSIZE. + +float gaussian(float x, float s, float m) { + float scaled = (x - m) / s; + return exp(-0.5 * scaled * scaled); +} + +float comp_gaussian_x() { + + float g = 0.0; + float gn = 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) + (LINEKERNEL_tex(HOOKED_pos).x * STRENGTH); +} + diff --git a/shaders/Anime4K_Deblur_DoG.glsl b/shaders/Anime4K_Deblur_DoG.glsl new file mode 100644 index 0000000..2e1ba1c --- /dev/null +++ b/shaders/Anime4K_Deblur_DoG.glsl @@ -0,0 +1,153 @@ +// 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-Deblur-DoG-(HQ)-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Deblur-DoG-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE MMKERNEL +//!COMPONENTS 3 + +#define L_tex LINELUMA_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a = L_tex(pos - d).x; + float b = L_tex(pos).x; + float c = L_tex(pos + d).x; + + return vec2(min3v(a, b, c), max3v(a, b, c)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(HOOKED_pt.x, 0.0)), minmax3(HOOKED_pos, vec2(HOOKED_pt.x, 0.0)), 0.0); +} + + +//!DESC Anime4K-v3.2-Deblur-DoG-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND MMKERNEL +//!SAVE MMKERNEL +//!COMPONENTS 3 + +#define L_tex MMKERNEL_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a0 = L_tex(pos - d).y; + float b0 = L_tex(pos).y; + float c0 = L_tex(pos + d).y; + + float a1 = L_tex(pos - d).z; + float b1 = L_tex(pos).z; + float c1 = L_tex(pos + d).z; + + return vec2(min3v(a0, b0, c0), max3v(a1, b1, c1)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(0.0, HOOKED_pt.y)), minmax3(HOOKED_pos, vec2(0.0, HOOKED_pt.y)), 0.0); +} + +//!DESC Anime4K-v3.2-Deblur-DoG-Apply +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!BIND MMKERNEL + +#define STRENGTH 0.6 //De-blur proportional strength, higher is sharper. However, it is better to tweak BLUR_CURVE instead to avoid ringing. +#define BLUR_CURVE 0.6 //De-blur power curve, lower is sharper. Good values are between 0.3 - 1. Values greater than 1 softens the image; +#define BLUR_THRESHOLD 0.1 //Value where curve kicks in, used to not de-blur already sharp edges. Only de-blur values that fall below this threshold. +#define NOISE_THRESHOLD 0.001 //Value where curve stops, used to not sharpen noise. Only de-blur values that fall above this threshold. + +#define L_tex LINELUMA_tex + +vec4 hook() { + float c = (L_tex(HOOKED_pos).x - MMKERNEL_tex(HOOKED_pos).x) * STRENGTH; + + float t_range = BLUR_THRESHOLD - NOISE_THRESHOLD; + + float c_t = abs(c); + if (c_t > NOISE_THRESHOLD) { + c_t = (c_t - NOISE_THRESHOLD) / t_range; + c_t = pow(c_t, BLUR_CURVE); + c_t = c_t * t_range + NOISE_THRESHOLD; + c_t = c_t * sign(c); + } else { + c_t = c; + } + + float cc = clamp(c_t + L_tex(HOOKED_pos).x, MMKERNEL_tex(HOOKED_pos).y, MMKERNEL_tex(HOOKED_pos).z) - L_tex(HOOKED_pos).x; + + //This trick is only possible if the inverse Y->RGB 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) + cc; +} + + + diff --git a/shaders/Anime4K_Deblur_Original.glsl b/shaders/Anime4K_Deblur_Original.glsl new file mode 100644 index 0000000..ff8f70f --- /dev/null +++ b/shaders/Anime4K_Deblur_Original.glsl @@ -0,0 +1,287 @@ +// 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-Deblur-Original-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Deblur-Original-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LUMAD +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LINELUMA_tex(HOOKED_pos + vec2(-d.x, 0.0)).x; + float c = LINELUMA_tex(HOOKED_pos).x; + float r = LINELUMA_tex(HOOKED_pos + vec2(d.x, 0.0)).x; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + //Computes the luminance's gradient + return vec4(xgrad, ygrad, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Deblur-Original-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAD +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + + +/* --------------------- SETTINGS --------------------- */ + +//Strength of edge refinement, good values are between 0.2 and 4 +#define REFINE_STRENGTH 1.0 + + +/* --- MODIFY THESE SETTINGS BELOW AT YOUR OWN RISK --- */ + +//Bias of the refinement function, good values are between 0 and 1 +#define REFINE_BIAS 0.0 + +//Polynomial fit obtained by minimizing MSE error on image +#define P5 ( 11.68129591) +#define P4 (-42.46906057) +#define P3 ( 60.28286266) +#define P2 (-41.84451327) +#define P1 ( 14.05517353) +#define P0 (-1.081521930) + +/* ----------------- END OF SETTINGS ----------------- */ + +float power_function(float x) { + float x2 = x * x; + float x3 = x2 * x; + float x4 = x2 * x2; + float x5 = x2 * x3; + + return P5*x5 + P4*x4 + P3*x3 + P2*x2 + P1*x + P0; +} + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAD_tex(HOOKED_pos + vec2(0.0, -d.y)).x; + float cx = LUMAD_tex(HOOKED_pos).x; + float bx = LUMAD_tex(HOOKED_pos + vec2(0.0, d.y)).x; + + + float ty = LUMAD_tex(HOOKED_pos + vec2(0.0, -d.y)).y; + //float cy = LUMAD_tex(HOOKED_pos).y; + float by = LUMAD_tex(HOOKED_pos + vec2(0.0, d.y)).y; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by); + + //Computes the luminance's gradient + float sobel_norm = clamp(sqrt(xgrad * xgrad + ygrad * ygrad), 0.0, 1.0); + + float dval = clamp(power_function(clamp(sobel_norm, 0.0, 1.0)) * REFINE_STRENGTH + REFINE_BIAS, 0.0, 1.0); + + return vec4(sobel_norm, dval, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Deblur-Original-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + + +vec4 hook() { + vec2 d = HOOKED_pt; + + if (LUMAD_tex(HOOKED_pos).y < 0.1) { + return vec4(0.0); + } + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LUMAD_tex(HOOKED_pos + vec2(-d.x, 0.0)).x; + float c = LUMAD_tex(HOOKED_pos).x; + float r = LUMAD_tex(HOOKED_pos + vec2(d.x, 0.0)).x; + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + + return vec4(xgrad, ygrad, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Deblur-Original-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAMM +//!SAVE LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + if (LUMAD_tex(HOOKED_pos).y < 0.1) { + return vec4(0.0); + } + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAMM_tex(HOOKED_pos + vec2(0.0, -d.y)).x; + float cx = LUMAMM_tex(HOOKED_pos).x; + float bx = LUMAMM_tex(HOOKED_pos + vec2(0.0, d.y)).x; + + float ty = LUMAMM_tex(HOOKED_pos + vec2(0.0, -d.y)).y; + //float cy = LUMAMM_tex(HOOKED_pos).y; + float by = LUMAMM_tex(HOOKED_pos + vec2(0.0, d.y)).y; + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by); + + float norm = sqrt(xgrad * xgrad + ygrad * ygrad); + if (norm <= 0.001) { + xgrad = 0.0; + ygrad = 0.0; + norm = 1.0; + } + + return vec4(xgrad/norm, ygrad/norm, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Deblur-Original-Apply +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!SAVE RESAMPLED + + +vec4 hook() { + vec2 d = HOOKED_pt; + + float dval = LUMAD_tex(HOOKED_pos).y; + if (dval < 0.1) { + return HOOKED_tex(HOOKED_pos); + } + + vec4 dc = LUMAMM_tex(HOOKED_pos); + if (abs(dc.x + dc.y) <= 0.0001) { + return HOOKED_tex(HOOKED_pos); + } + + float xpos = -sign(dc.x); + float ypos = -sign(dc.y); + + vec4 xval = HOOKED_tex(HOOKED_pos + vec2(d.x * xpos, 0.0)); + vec4 yval = HOOKED_tex(HOOKED_pos + vec2(0.0, d.y * ypos)); + + float xyratio = abs(dc.x) / (abs(dc.x) + abs(dc.y)); + + vec4 avg = xyratio * xval + (1.0 - xyratio) * yval; + + return avg * dval + HOOKED_tex(HOOKED_pos) * (1.0 - dval); + +} + +//!DESC Anime4K-v3.2-Deblur-Original-Resample +//!HOOK MAIN +//!BIND HOOKED +//!BIND RESAMPLED + +vec4 hook() { + return RESAMPLED_tex(HOOKED_pos); +} \ No newline at end of file diff --git a/shaders/Anime4K_Denoise_Bilateral_Mean.glsl b/shaders/Anime4K_Denoise_Bilateral_Mean.glsl new file mode 100644 index 0000000..0eb17cd --- /dev/null +++ b/shaders/Anime4K_Denoise_Bilateral_Mean.glsl @@ -0,0 +1,67 @@ +// 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-Denoise-Bilateral-Mean +//!HOOK MAIN +//!BIND HOOKED + +#define INTENSITY_SIGMA 0.1 //Intensity window size, higher is stronger denoise, must be a positive real number +#define SPATIAL_SIGMA 1.0 //Spatial window size, higher is stronger denoise, must be a positive real number. + +#define INTENSITY_POWER_CURVE 1.0 //Intensity window power curve. Setting it to 0 will make the intensity window treat all intensities equally, while increasing it will make the window narrower in darker intensities and wider in brighter intensities. + +#define KERNELSIZE (max(int(ceil(SPATIAL_SIGMA * 2.0)), 1) * 2 + 1) //Kernel size, must be an positive odd integer. +#define KERNELHALFSIZE (int(KERNELSIZE/2)) //Half of the kernel size without remainder. Must be equal to trunc(KERNELSIZE/2). +#define KERNELLEN (KERNELSIZE * KERNELSIZE) //Total area of kernel. Must be equal to KERNELSIZE * KERNELSIZE. + +#define GETOFFSET(i) vec2((i % KERNELSIZE) - KERNELHALFSIZE, (i / KERNELSIZE) - KERNELHALFSIZE) + +vec4 gaussian_vec(vec4 x, vec4 s, vec4 m) { + vec4 scaled = (x - m) / s; + return exp(-0.5 * scaled * scaled); +} + +float gaussian(float x, float s, float m) { + float scaled = (x - m) / s; + return exp(-0.5 * scaled * scaled); +} + +vec4 hook() { + vec4 sum = vec4(0.0); + vec4 n = vec4(0.0); + + vec4 vc = HOOKED_tex(HOOKED_pos); + + vec4 is = pow(vc + 0.0001, vec4(INTENSITY_POWER_CURVE)) * INTENSITY_SIGMA; + float ss = SPATIAL_SIGMA; + + for (int i=0; i v[i].x) { + w_above += w[j]; + } else if (v[j].x < v[i].x) { + w_below += w[j]; + } + } + + if ((n - w_above) / n >= 0.5 && w_below / n <= 0.5) { + return v[i]; + } + } +} + +vec4 hook() { + vec4 histogram_v[KERNELLEN]; + float histogram_l[KERNELLEN]; + float histogram_w[KERNELLEN]; + float n = 0.0; + + float vc = LINELUMA_tex(HOOKED_pos).x; + + float is = pow(vc + 0.0001, INTENSITY_POWER_CURVE) * INTENSITY_SIGMA; + float ss = SPATIAL_SIGMA; + + for (int i=0; i 0.0) { + float histogram_wn[KERNELLEN]; + n = 0.0; + + for (int i=0; i= maxw) { + maxw = w[i]; + maxv = v[i]; + } + } + + return maxv; +} + +vec4 hook() { + vec4 histogram_v[KERNELLEN]; + float histogram_l[KERNELLEN]; + float histogram_w[KERNELLEN]; + float histogram_wn[KERNELLEN]; + + float vc = LINELUMA_tex(HOOKED_pos).x; + + float is = pow(vc + 0.0001, INTENSITY_POWER_CURVE) * INTENSITY_SIGMA; + float ss = SPATIAL_SIGMA; + + for (int i=0; i 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.01802505, -0.06508559, 0.0017542128, -0.25521114, -0.024155967, 0.07601142, 0.07508073, -0.69212615, 0.06438325, 0.07916419, -0.07266247, -0.17089996, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.18881685, 0.063188724, 0.08637344, -0.20066689, -0.22774473, -0.10913083, -0.048009537, -0.27475306, -0.15950447, -0.027433012, 0.030303264, 0.018863251, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.19171959, 0.028070524, -0.09780952, 0.057611514, 0.26147488, 0.07180017, 0.09667393, 0.008605127, 0.011190245, 0.040944707, -0.025871381, -0.011468774, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.08601777, 0.2180965, -0.052060187, -0.08091977, 0.3995336, 0.21213862, 0.105202965, 0.010929526, -0.080743685, -0.040439352, -0.07998862, 0.08096829, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.08608087, -0.10902571, 0.5245411, 0.53331816, -0.5507893, 0.6141555, 0.9744618, 0.89056116, 0.081408836, 0.28096125, 0.13647869, 0.026274862, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.13985278, -0.29691598, -0.26792645, -0.042485088, 0.27941233, -0.65306807, -0.360506, 0.03810829, 0.09663724, -0.26655033, 0.04372338, 0.063264176, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.18246013, -0.070464276, 0.04686214, 0.059332885, 0.16861221, 0.022623831, -0.09161491, 0.07130491, 0.15691474, 0.095743366, 0.059467375, -0.009469478, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.07830576, 0.17082681, -0.013175545, -0.035535168, 0.1573564, -0.16532823, -0.49614525, -0.050994795, 0.027053844, -0.20359018, 0.08111269, 0.018715343, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.060515754, 0.13169582, -0.15245132, -0.045724656, -0.50778043, -0.11690067, -0.08320143, 0.01093529, -0.1954136, 0.07388989, -0.1360143, -0.023233788, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.0054077627, -0.15644358, 0.06612042, 0.014728144); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-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.12039797, 0.04008252, 0.073074624, -0.11763173, 0.091902, -0.040129073, 0.009170759, -0.10760076, -0.032387916, 0.07807673, -6.477932e-05, 0.040181372, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.11585734, -0.0078019407, 0.063107856, 0.09835168, -0.029397847, 0.12520139, 0.078661725, -0.12675259, 0.05563671, -0.058422342, 0.01478436, -0.08239175, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.14991632, -0.0134848505, -0.38663143, -0.10859369, -0.012961176, -0.09099144, -0.19593886, -0.08396245, -0.02676463, -0.0066295485, 0.026225863, -0.014788537, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.20830092, -0.07655779, 0.04518565, 0.16015635, 0.5536684, 0.09759215, -0.101477005, -0.5042874, 0.35608026, -0.15335238, 0.0796228, -0.05107349, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.3968312, 0.091579735, -0.085623756, -0.16367513, -0.48967922, -0.08557767, 0.34444988, 1.0766053, -0.2158915, 0.22244956, -0.033804208, 0.25898156, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.026278365, 0.1678205, -0.38981274, 0.16932413, -0.0146527905, 0.65131354, -0.08886725, 0.07017853, 0.012986331, 0.029087646, -0.034898676, 0.040925268, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.07614263, 0.015624113, -0.054716587, -0.04951801, 0.016731577, -0.08749623, 0.07815944, -0.015630174, -0.08723511, 0.077201165, -0.12674089, -0.08418575, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.07938198, -0.4056014, 0.26949093, 0.067213245, -0.47538033, -0.7786735, -0.25821188, 0.029314762, -0.1799233, -0.31132734, 0.17210929, -0.018579468, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.06732179, 0.18373649, -0.00039802346, 0.006567155, 0.36993378, 0.20254396, 0.12314272, -0.07356931, 0.12402926, 0.122744165, -0.07482636, 0.011531308, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.001029383, 0.0058537456, 0.38202196, -0.028818231); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-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.29632062, 0.029882489, -0.14098296, -0.18291497, 0.2815667, -0.053558454, 0.10369031, -0.080831036, 0.06955536, -0.020830285, -0.2950748, -0.12086926, -0.023612294, -0.08531449, 0.0390424, 0.011767062) * go_0(-1.0, -1.0); + result += mat4(0.094862625, 0.10448947, -0.11741873, 0.18871774, 0.15733057, 0.029140847, 0.16012338, 0.24601823, -0.2918398, 0.09956984, 0.04739516, 0.24494317, -0.021442452, 0.014309354, -0.04935703, 0.13617574) * go_0(-1.0, 0.0); + result += mat4(0.1303212, -0.06284708, -0.23948738, -0.05782472, -0.024363542, -0.11251477, -0.07354371, -0.023819327, 0.13228065, 0.05485702, -0.068491034, 0.1938021, -0.046649717, -0.07752723, 0.031408865, 0.026424367) * go_0(-1.0, 1.0); + result += mat4(0.4484274, 0.10068111, -0.122855306, -0.0649749, 0.09444103, 0.119198084, -0.22159275, 0.08555494, -0.18764949, -0.16276829, 0.20377621, 0.13764401, -0.027324807, 0.1294057, 0.035147414, 0.010751216) * go_0(0.0, -1.0); + result += mat4(-0.23321865, -0.029401073, 0.064655, 0.28420436, 0.051707894, -0.27915454, 0.0037779005, -0.18335588, 0.2275033, -0.25828046, -0.005339017, -0.4358691, 0.30487007, -0.044198595, 0.08767978, -0.04610031) * go_0(0.0, 0.0); + result += mat4(-0.044556934, -0.06692216, -0.21124081, -0.1394273, -0.24693833, -0.11292927, -0.026020816, 0.08460799, -0.11183761, -0.020012703, 0.29486617, 0.3726646, -0.054298244, 0.0045891847, -0.23693855, -0.02848257) * go_0(0.0, 1.0); + result += mat4(0.04877764, -0.011964396, -0.08024895, -0.12175299, -0.015131821, -0.048996765, 0.10887477, -0.053192, 0.09514728, 0.00918332, -0.08621957, -0.04674572, -0.06000914, -0.060330987, 0.20702218, -0.015094036) * go_0(1.0, -1.0); + result += mat4(-0.1651207, -0.024862131, 0.37494823, 0.10404018, -0.2891288, -0.38082635, 0.3194514, -0.055852838, -0.073994, -0.1566444, 0.08473525, 0.15672058, -0.08205729, 0.33623922, 0.2524126, 0.022668727) * go_0(1.0, 0.0); + result += mat4(0.083043605, -0.2989435, -0.14887308, 0.008989406, 0.01214123, -0.29387334, 0.015363028, -0.027485376, 0.13046521, 0.12814927, -0.05615426, -0.08612421, -0.3833321, 0.30930206, 0.3397905, 0.095533006) * go_0(1.0, 1.0); + result += mat4(-0.24895187, 0.033672538, 0.024642626, 0.049984645, 0.09217451, 0.14135426, -0.36297384, 0.10239864, 0.14611131, -0.022452299, 0.009058074, -0.18909958, -0.0049156225, 0.10530887, -0.06942197, -0.06450979) * go_1(-1.0, -1.0); + result += mat4(0.14025575, 0.030043123, 0.07131405, -0.0675702, 0.17274232, 0.17896765, -0.4741036, 0.35670453, 0.03911085, 0.079387054, 0.04420335, -0.040182803, 0.078871965, 0.16641952, -0.101532914, -0.07683543) * go_1(-1.0, 0.0); + result += mat4(0.09527535, -0.014889733, 0.003928801, -0.0144131305, 0.16238941, -0.073573746, -0.18349837, 0.057071213, -0.056580186, -0.048254594, -0.02551881, 0.13056543, 0.15681924, 0.11329136, 0.026496707, -0.15252273) * go_1(-1.0, 1.0); + result += mat4(-0.20110673, -0.17727304, 0.16747122, -0.060028642, -0.03426759, 0.34928, -0.16542526, -0.03665969, -0.11838656, 0.050624777, -0.11309917, 0.17241085, 0.07320429, -0.19349192, 0.36426768, -0.09952723) * go_1(0.0, -1.0); + result += mat4(-0.44797856, 0.13166381, 0.19358242, -0.17328072, 0.277866, 0.2704677, -0.3897292, -0.09388379, -0.11871803, 0.059352446, 0.02593061, 0.1112078, -0.44574997, -0.20000082, -0.06038736, 0.11825317) * go_1(0.0, 0.0); + result += mat4(0.035831098, 0.03203473, 0.007270905, -0.2803515, -0.07803025, -0.044999845, 0.05503914, 0.02849373, -0.019534718, 0.109557584, -0.057618562, -0.22376212, 0.037630744, 0.07285683, -0.10327242, 0.15022281) * go_1(0.0, 1.0); + result += mat4(-0.22891119, -0.07055901, -0.06924297, 0.091851085, 0.079149276, 0.072282575, 0.1054971, -0.055115294, 0.15652373, -0.18508117, -0.044487055, -0.09513059, -0.007512581, 0.04595113, -0.16729085, -0.038352273) * go_1(1.0, -1.0); + result += mat4(-0.33190495, 0.024579005, 0.3356564, -0.24311046, -0.12634008, 0.08820384, -0.028739989, 0.0871991, -0.011547642, 0.07184339, 0.098442815, 0.13700496, -0.0665544, 0.18513693, 0.0956979, -0.15374076) * go_1(1.0, 0.0); + result += mat4(0.18756114, -0.21920492, 0.06407122, -0.24816798, -0.061943263, -0.054488074, -0.081633896, 0.0920547, -0.08880129, -0.18094197, 0.006789256, 0.094598, 0.17799775, -0.26764068, -0.02588948, 0.17095666) * go_1(1.0, 1.0); + result += mat4(-0.17086025, -0.035769157, -0.11523461, 0.20404252, -0.0398533, -0.19902702, 0.0072308285, -0.099984154, -0.1378846, -0.14236672, 0.40502122, 0.13498029, 0.057273205, -0.06250679, 0.035283897, 0.01703995) * go_2(-1.0, -1.0); + result += mat4(0.12786144, -0.23442458, -0.047862124, -0.12505807, -0.23584808, -0.064344, 0.07848756, 0.08764069, 0.34468293, -0.29927257, -0.18664125, -0.20938, 0.07196786, -0.0116679, 0.16299239, -0.076479614) * go_2(-1.0, 0.0); + result += mat4(0.08299449, -0.065809734, 0.12079292, -0.14469329, -0.0102624465, 0.04364353, 0.080220595, -0.025435027, 0.010015513, -0.03863331, 0.28750968, -0.07637218, 0.049731467, -0.062238537, 0.04295189, -0.028037619) * go_2(-1.0, 1.0); + result += mat4(-0.3443906, -0.04198392, -0.1612832, 0.2218389, -0.01519015, 0.093942635, -0.15996122, -0.00093763386, 0.024008257, 0.035953972, -0.15771267, -0.07148778, 0.044501238, -0.14950006, 0.087219894, -0.05831199) * go_2(0.0, -1.0); + result += mat4(0.22099696, 0.117263354, -0.09403858, -0.20318906, 0.18389364, 0.13026148, 0.08169665, -0.014347075, -0.16660765, 0.026503418, 0.058967166, 0.26847002, -0.39771244, 0.36704144, 0.18202503, 0.15385705) * go_2(0.0, 0.0); + result += mat4(-0.015089774, 0.120200686, 0.114723265, 0.12578037, 0.16593805, 0.040399004, 0.11654924, 0.0025250788, -0.2342627, 0.05865, -0.16680475, -0.06301523, 0.07027856, 0.18853764, 0.5213158, -0.3325365) * go_2(0.0, 1.0); + result += mat4(-0.046818264, 0.04336355, 0.020795586, 0.09917639, -0.028305013, -0.14843199, 0.16168857, -0.18567303, 0.010514865, 0.06331522, 0.064430796, 0.034681283, 0.041065965, 0.06522019, 0.055882502, -0.015027999) * go_2(1.0, -1.0); + result += mat4(0.18064371, -0.17903666, -0.24589087, 0.072444126, 0.13745096, -0.011904026, -0.19597653, 0.023044739, 0.01585197, -0.1759934, 0.2287553, -0.20533411, -0.2898527, 0.42946577, -0.07443011, 0.052736074) * go_2(1.0, 0.0); + result += mat4(0.043961097, 0.10761276, -0.0034299751, 0.10491056, 0.004527805, 0.077598244, 0.077725716, 0.030323742, -0.20945124, -0.2235839, 0.05397613, 0.2072019, 0.008769854, 0.30513015, -0.104206346, -0.20982127) * go_2(1.0, 1.0); + result += mat4(0.0858221, -0.013858144, 0.11189161, -0.005996965, 0.13058044, 0.23954146, -0.29756296, 0.1801562, -0.034966737, 0.16073282, -0.06920962, 0.16596314, -0.06746436, 0.18948093, -0.17374122, 0.035474796) * go_3(-1.0, -1.0); + result += mat4(-0.23172139, -0.062111232, 0.028210253, -0.022090558, 0.2854972, 0.015097004, -0.2057132, -0.19835956, 0.14960685, 0.09755452, -0.17077617, -0.10259408, -0.11695073, 0.071428165, 0.18146773, 0.22237262) * go_3(-1.0, 0.0); + result += mat4(-0.008571818, 0.2160462, 0.20442474, 0.008256999, -0.0054347264, -0.036963176, -0.023052184, -0.27406418, 0.0155730015, 0.13230084, 0.028925262, -0.22739749, -0.07608481, -0.059095357, -0.17677523, 0.020464322) * go_3(-1.0, 1.0); + result += mat4(0.09186881, 0.10612606, -0.29759738, 0.04590405, 0.042567376, 0.77174157, -0.3156031, 0.22815126, -0.0745266, -0.08352131, -0.03825007, -0.14752272, 0.14866033, -0.07303083, 0.01180863, 0.12170875) * go_3(0.0, -1.0); + result += mat4(-0.033268124, -0.08281718, 0.040441882, -0.05514993, 0.07650108, 0.5294327, -0.22229794, 0.049523506, 0.021545604, 0.03359928, 0.032059934, -0.0082821995, 0.036441952, -0.5097175, 0.38215104, 0.33496317) * go_3(0.0, 0.0); + result += mat4(-0.18900043, 0.3539563, 0.25134736, 0.21487151, 0.22043267, 0.13304482, -0.17353508, -0.15632114, -0.067851126, -0.08173108, 0.0035601144, 0.16791934, -0.07563204, -0.07128694, 0.10757592, 0.26915342) * go_3(0.0, 1.0); + result += mat4(0.1761959, 0.025833737, 0.09164757, -0.030622564, -0.22870748, 0.11929823, -0.24930833, 0.07446655, -0.17372188, -0.66051316, 0.15344264, 0.20571554, 0.0620721, 0.08122408, -0.0952373, 0.04144613) * go_3(1.0, -1.0); + result += mat4(-0.053072393, -0.15877937, -0.065579735, 0.09932804, 0.06803561, 0.11719737, -0.0639249, -0.14433555, 0.1210262, 0.057197437, -0.19896421, 0.2387559, 0.35206345, -0.36237878, -0.12187686, 0.24411117) * go_3(1.0, 0.0); + result += mat4(-0.44384086, -0.063816145, 0.14313193, 0.042119484, 0.13939157, 0.02742546, -0.010837158, -0.11953808, 0.083049394, 0.22100104, 0.12818006, -0.27883413, -0.22672728, 0.28484213, 0.053133663, -0.2364556) * go_3(1.0, 1.0); + result += vec4(-0.021096209, -0.016017085, 0.009604813, -0.023907887); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-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.0028523596, -0.03346185, 0.30194005, 0.26316985, -0.108354695, 0.19872186, -0.14200853, 0.28833616, 0.009908957, 0.049258288, 0.18224198, -0.10260487, -0.011250263, -0.027236924, -0.03667901, 0.035038423) * go_0(-1.0, -1.0); + result += mat4(-0.10311966, -0.07219459, 0.13850203, -0.07606934, 0.16186213, 0.20828444, -0.113131486, 0.21757083, -0.14668499, -0.015719058, -0.24257174, 0.33343476, 0.042950086, 0.014013289, -0.095338345, -0.10305408) * go_0(-1.0, 0.0); + result += mat4(-0.054802764, -0.03977167, 0.058000274, 0.06520257, -0.06657145, 0.09240672, 0.18538313, -0.057592865, 0.11657067, 0.1435708, -0.10273095, -0.12743765, 0.031955425, -0.032504886, -0.043181136, -0.033146795) * go_0(-1.0, 1.0); + result += mat4(0.17017461, 0.023741657, 0.12772968, 0.054186005, -0.06654799, 0.13280976, -0.08608028, -0.18274061, -0.14409089, -0.07336282, -0.21611233, 0.3030394, -0.22331606, -0.04621103, 0.008330136, 0.13817237) * go_0(0.0, -1.0); + result += mat4(0.12490482, -0.15037048, -0.308773, 0.015911192, -0.23533738, -0.3296806, -0.16643348, -0.18637176, 0.3725922, 0.22720487, 0.101118185, -0.1130553, 0.14583476, 0.25240546, 0.07148758, -0.023047412) * go_0(0.0, 0.0); + result += mat4(-0.21086755, 0.10873368, 0.23762812, -0.12715688, 0.07081291, -0.13914634, 0.23084821, -0.027778924, -0.011987815, -0.27076182, -0.037216157, -0.028230239, -0.055693954, -0.1835301, -0.19994727, -0.05208119) * go_0(0.0, 1.0); + result += mat4(0.0063535348, -0.047104187, 0.16425404, -0.003719743, -0.048529398, -0.17317753, -0.048431315, 0.12659106, -0.10488035, 0.14231968, -0.042716738, -0.20889871, -0.17258343, -0.1703121, -0.08134935, -0.08982632) * go_0(1.0, -1.0); + result += mat4(-0.047956906, 0.02809404, -0.23035078, 0.017211597, 0.056016855, -0.16766964, 0.024528379, 0.15064329, -0.20351112, -0.16514936, -0.013601919, 0.056769293, -0.4962774, -0.315249, -0.11879433, 0.24711494) * go_0(1.0, 0.0); + result += mat4(0.11659998, 0.23360188, -0.037019785, 0.01478414, -0.0056206854, -0.058505666, 0.05248197, 0.048921894, 0.014286839, -0.05282425, 0.12870628, 0.12335835, -0.2298834, -0.34117943, 0.07997886, 0.026714392) * go_0(1.0, 1.0); + result += mat4(-0.061862264, -0.024006715, 0.1239327, -0.06400159, -0.1736359, -0.13043079, -0.047287256, 0.092979684, -0.052144498, 0.046599787, 0.03391796, 0.10504723, 0.12802011, 0.05123276, 0.15974, 0.052002482) * go_1(-1.0, -1.0); + result += mat4(0.22270438, -0.15555483, 0.10334453, -0.033303298, -0.13101499, 0.37030843, -0.6013731, 0.22835553, 0.17596579, -0.0012125646, 0.000731955, -0.03726906, -0.033959538, 0.10808315, 0.043731548, 0.12308547) * go_1(-1.0, 0.0); + result += mat4(-0.02969512, 0.029882276, -0.04630252, -0.029674841, 0.15309821, 0.35859957, -0.15453109, 0.12228518, -0.062312573, -0.030289005, 0.10737798, 0.01659783, -0.07855408, 0.090425, -0.07134876, 0.10678761) * go_1(-1.0, 1.0); + result += mat4(0.068100914, -0.16862309, 0.2094642, -0.02229975, -0.1045019, -0.043305863, 0.18030378, -0.085608065, -0.13514027, 0.11298315, -0.009570404, -0.03180812, 0.19233464, -0.058786966, -0.06211013, 0.1411384) * go_1(0.0, -1.0); + result += mat4(0.025985425, 0.08034115, 0.14352584, 0.039992746, -0.034363434, 0.27888498, -0.21407174, -0.15813926, -0.10999899, -0.15183197, -0.23127002, 0.10193841, 0.029217485, 0.069463246, 0.093416885, -0.17118438) * go_1(0.0, 0.0); + result += mat4(-0.34840858, 0.18985972, 0.1336286, 0.11525281, -0.12827359, -0.14426456, 0.13312757, -0.06653705, 0.050836112, 0.06430556, 0.14759327, 0.043341596, 0.17556888, -0.14065917, 0.046736937, -0.01075016) * go_1(0.0, 1.0); + result += mat4(0.13843128, -0.07928894, 0.09180436, -0.17497942, -0.0075141867, -0.13388832, 0.07851216, 0.16109377, 0.190535, -0.05877419, -0.010671232, 0.056779247, 0.005048462, 0.084110186, 0.053035934, -0.18244119) * go_1(1.0, -1.0); + result += mat4(0.2849969, -0.045472432, -0.007433944, 0.1180168, 0.060636494, 0.13299662, -0.14055575, 0.045158602, -0.08960926, 0.013875276, -0.01840017, -0.06518111, -0.062131494, 0.13034189, -0.086812675, -0.302895) * go_1(1.0, 0.0); + result += mat4(0.116545, 0.19018339, 0.015378095, 0.11349383, 0.097009905, 0.08176944, 0.033653412, -0.08137759, 0.03190533, 0.0014444767, -0.110253245, -0.075649016, -0.19349468, -0.22105742, -0.026897507, 0.11604942) * go_1(1.0, 1.0); + result += mat4(-0.1504224, -0.17498577, -0.111215115, -0.18127528, 0.01749777, 0.02000031, 0.10482995, 0.0281041, 0.14524435, 0.032341465, -0.1431526, 0.035199255, 0.07964384, 0.12253888, -0.04288506, 0.08354433) * go_2(-1.0, -1.0); + result += mat4(0.12756018, -0.09853538, -0.14765038, -0.14513035, -0.1674001, 0.041217312, 0.1293034, -0.14122911, 0.22340834, 0.026480576, 0.30324772, -0.14868121, -0.007565819, -0.118748344, 0.13285564, 0.00254272) * go_2(-1.0, 0.0); + result += mat4(0.049038395, -0.053402808, -0.20165808, -0.023086373, 0.11763773, -0.06335101, -0.033782937, 0.04164607, -0.18420623, -0.19549052, 0.046879902, 0.009774202, 0.01943834, 0.0056786705, -0.076153725, 0.02122122) * go_2(-1.0, 1.0); + result += mat4(-0.26325268, -0.031591017, -0.009897877, 0.1264021, 0.17001875, -0.0703141, 0.09623203, -0.3370359, 0.18430787, 0.27577603, 0.24643779, -0.0070356624, 0.14593714, -0.0370321, -0.09890827, -0.2308416) * go_2(0.0, -1.0); + result += mat4(-0.07015072, 0.096860155, 0.237449, 0.02297801, 0.055075265, 0.27420217, 0.020077437, 0.18272734, -0.33312458, 0.10344985, -0.2324171, 0.065973476, -0.20755117, -0.27599007, -0.5285744, -0.4155286) * go_2(0.0, 0.0); + result += mat4(0.07746828, -0.05007699, -0.0768586, 0.20854229, -0.03390625, 0.030966418, -0.019005757, -0.044068232, 0.107805826, 0.27990255, 0.20861949, -0.13380727, 0.11099171, -0.24434194, -0.44939178, 0.09977314) * go_2(0.0, 1.0); + result += mat4(-0.025078122, 0.1578438, -0.087854326, 0.20194288, 0.09858984, 0.05664248, 0.007542862, -0.08403176, 0.1984592, -0.18137619, 0.008725761, 0.1726853, -0.05140944, 0.011235891, -0.043068934, 0.0055390405) * go_2(1.0, -1.0); + result += mat4(0.11204605, 0.12672849, 0.21329713, 0.022434214, 0.18346484, 0.15253071, -0.07683229, -0.023870528, 0.15187134, 0.16080903, -0.20011483, -0.055256322, 0.2351501, -0.10940274, 0.3296904, -0.08561938) * go_2(1.0, 0.0); + result += mat4(-0.116775244, -0.034662195, 0.09385859, 0.015938438, 0.04321025, 0.07417467, -0.020254206, -0.021971289, 0.082221195, -0.17118677, -0.0803086, -0.04383127, -0.040375095, 0.19555633, -0.02246454, -0.039880734) * go_2(1.0, 1.0); + result += mat4(0.091371894, 0.07079164, -0.061235007, -0.074043915, -0.07527448, 0.20644194, -0.025892835, 0.288527, -0.0681896, -0.18799694, -0.02397431, -0.20931835, -0.23740639, -0.21364078, -0.066721395, 0.046312522) * go_3(-1.0, -1.0); + result += mat4(0.028192231, -0.076668344, -0.048378978, 0.08975191, 0.11627764, 0.1206538, 0.13604914, -0.32365093, -0.3457084, 0.038705852, -0.11968679, -0.03261415, -0.08069945, 0.06448551, -0.04925646, -0.112106614) * go_3(-1.0, 0.0); + result += mat4(0.02704155, -0.38007632, -0.12648691, 0.0065948786, -0.107972704, -0.07776103, -0.09248745, -0.034419768, 0.08890347, 0.005535876, -0.17764446, 0.01000324, 0.09786164, 0.0046856827, 0.071132, -0.07665281) * go_3(-1.0, 1.0); + result += mat4(0.084308736, 0.12159227, 0.09618809, -0.095442675, -0.19964129, 0.12708808, 0.13591234, -0.08824806, 0.13553478, 0.116799936, 0.2792844, 0.3961157, -0.21412137, 0.35075518, -0.4579121, 0.13404456) * go_3(0.0, -1.0); + result += mat4(0.14321525, -0.2190369, -0.0017736118, 0.04966717, -0.21058443, 0.03795149, 0.024490742, 0.16852312, 0.23549259, 0.098397486, 0.39796385, -0.17331013, 0.57935876, 0.14168213, 0.10026468, 0.12272344) * go_3(0.0, 0.0); + result += mat4(0.23204985, -0.13793765, -0.09148106, -0.24824184, 0.03669933, 0.40166143, -0.26450562, 0.1297136, -0.0033718192, -0.14882618, -0.027010696, 0.15510502, -0.13116877, 0.13243876, 0.29493085, -0.159246) * go_3(0.0, 1.0); + result += mat4(0.14412704, -0.043252222, 0.038036022, 0.21720204, 0.16157351, 0.25108346, 0.05750981, -0.11665398, 0.15858066, 0.13024889, -0.30726764, -0.017599456, -0.13654993, 0.16810633, -0.22028227, 0.054728623) * go_3(1.0, -1.0); + result += mat4(0.04761309, -0.1425047, 0.121673144, -0.0067104516, 0.13617267, 0.11343255, 0.14773287, -0.111807466, 0.29447448, 0.043634728, 0.040583152, -0.22446026, -0.17453341, -0.1746306, -0.27435815, 0.1823859) * go_3(1.0, 0.0); + result += mat4(0.0914674, -0.1296898, 0.081237026, -0.03182429, -0.082685776, 0.08469174, -0.014075701, 0.043630067, -0.02028655, 0.043165345, 0.14293486, 0.03086512, 0.16910627, 0.32537475, -0.022409504, -0.15651123) * go_3(1.0, 1.0); + result += vec4(-0.010434646, -0.007589305, 0.03614506, 0.017320616); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-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.13837793, -0.05485083, -0.11455316, -0.23340753, -0.0019060506, 0.014073009, -0.006939684, 0.013028122, 0.0070730825, 0.07576272, -0.046580516, -0.10440529, -0.14514132, 0.118322305, 0.15771718, -0.10368211) * go_0(-1.0, -1.0); + result += mat4(0.0033887655, 0.105515614, -0.022994144, 0.20720185, 0.014884114, 0.04068789, 0.14153919, -0.20556916, -0.106429465, 0.15578473, 0.17493904, 0.27673894, 0.068228535, -0.17600566, 0.117449455, 0.1464803) * go_0(-1.0, 0.0); + result += mat4(-0.13132714, 0.057890475, -0.15540479, -0.05904855, 0.10353088, -0.014439668, 0.10086415, -0.035871122, 0.15052663, -0.017041713, 0.039761867, -0.20937371, 0.034573525, -0.10553617, 0.054362305, -0.1131222) * go_0(-1.0, 1.0); + result += mat4(0.043574177, -0.12957309, 0.06257102, 0.059841774, 0.025344899, -0.08974694, -0.02106646, -0.083086155, 0.044729084, 0.07391884, 0.026620472, 0.029281206, 0.0439835, -0.040075477, 0.20127645, 0.08995277) * go_0(0.0, -1.0); + result += mat4(0.4999535, -0.16519144, -0.082569085, 0.08618579, 0.20361039, -0.16703975, 0.013153, 0.19670624, 0.2853662, -0.11533776, -0.109247334, 0.06345074, 0.0635587, 0.104548655, 0.31481677, 0.2264137) * go_0(0.0, 0.0); + result += mat4(0.029020509, 0.24992752, 0.5356852, 0.16753946, -0.057788625, 0.02481026, 0.2059601, 0.16616577, -0.078577444, 0.307072, -0.08813778, 0.09565001, 0.02336261, -0.1928066, -0.0876608, -0.15015014) * go_0(0.0, 1.0); + result += mat4(0.079325944, 0.062302455, -0.10960886, -0.0025239969, 0.02924214, 0.026142644, 0.0821952, 0.008034841, 0.121127814, 0.109858714, -0.053383715, 0.22161359, 0.03572371, 0.013655175, -0.27442926, 0.038870957) * go_0(1.0, -1.0); + result += mat4(-0.057337154, 0.03110442, 0.07781571, 0.17697155, 0.10287903, 0.10192227, -0.036485553, -0.07374302, 0.081604324, 0.1566476, 0.23592737, 0.09747013, -0.095862515, -0.1456753, 0.057745866, -0.17291927) * go_0(1.0, 0.0); + result += mat4(-0.070838295, 0.15307118, -0.16363588, 0.08716062, -0.012117197, 0.09717453, -0.057428412, 0.019387208, -0.011734471, 0.28442237, -0.0138647, 0.1619097, 0.046210334, -0.06327717, 0.035489302, -0.055681925) * go_0(1.0, 1.0); + result += mat4(0.03013589, -0.16602181, 0.00417107, -0.022452664, 0.03615902, 0.09972378, -0.043409757, -0.028448848, -0.055032104, 0.08841848, -0.12667881, -0.06865927, -0.020555131, -0.09292043, 0.03676055, 0.1469838) * go_1(-1.0, -1.0); + result += mat4(-0.03413294, 0.1853497, -0.21196875, -0.2122292, -0.046451584, 0.33640862, 0.11074589, 0.0038315703, -0.32845765, -0.018679257, -0.24653831, 0.15887207, 0.018353334, -0.32828686, 0.070055164, 0.22649562) * go_1(-1.0, 0.0); + result += mat4(-0.11916958, -0.11415976, 0.10442459, 0.026471134, 0.15098315, 0.030927312, 0.08758737, 0.04333666, -0.40113255, -0.22881064, -0.18026584, 0.010727328, 0.04185913, -0.033592816, 0.019705769, -0.09931264) * go_1(-1.0, 1.0); + result += mat4(-0.024548884, 0.070657834, 0.04315053, -0.09292352, -0.023722034, -0.06946775, -0.017095754, 0.14835307, -0.030104019, 0.13317905, 0.052319784, 0.18717423, 0.024163181, 0.04198584, 0.024550296, 0.09124823) * go_1(0.0, -1.0); + result += mat4(0.36571705, 0.28200173, -0.031241365, 0.32836193, 0.15685938, 0.14499408, -0.03710283, -0.105348445, 0.2111411, -0.14371765, 0.22234774, 0.12241296, 0.12288187, -0.29133305, -0.23992771, 0.102442585) * go_1(0.0, 0.0); + result += mat4(-0.30764952, -0.38244587, -0.021552043, 0.02371933, -0.043024007, -0.09969857, -0.08754052, -0.05584622, 0.32374346, 0.21340463, 0.110945925, -0.19904156, -0.1425847, -0.16605812, -0.14231746, -0.14958249) * go_1(0.0, 1.0); + result += mat4(0.07996341, 0.036993798, 0.013508032, 0.015037227, -0.05188829, -0.08953449, 0.024801137, 0.20462893, -0.013199976, -0.19138044, -0.056084607, 0.14518543, -0.029846137, 0.033994604, 0.006321045, -0.19919403) * go_1(1.0, -1.0); + result += mat4(0.09230355, 0.17356168, -0.057000663, -0.10861382, 0.038658872, 0.01218888, 0.19109936, 0.021123217, 0.042241503, 0.008514072, 0.031998653, 0.014464009, -0.036506813, 0.27310863, -0.052563597, -0.21396813) * go_1(1.0, 0.0); + result += mat4(-0.036255296, -0.11269877, -0.07659167, -0.09690911, -0.027218975, 0.105712906, 0.05750272, 0.14222133, 0.016676722, 0.0962918, 0.05514509, -0.023851087, -0.07117767, -0.020666543, -0.23072378, -0.043072045) * go_1(1.0, 1.0); + result += mat4(0.1542571, -0.13077767, -0.0881844, -0.00536349, 0.019526271, -0.1529528, -0.11660246, -0.1698449, 0.019345785, -0.039716557, 0.14421196, 0.08003151, 0.15334103, -0.16667187, 0.006088769, 0.13378714) * go_2(-1.0, -1.0); + result += mat4(-0.08746076, 0.060209457, 0.051582757, 0.02863364, 0.1454257, 0.42194176, 0.09892967, 0.26043537, -0.06934357, -0.1020657, 0.23833197, 0.15991127, 0.09294198, 0.017690487, 0.11748737, -0.2849694) * go_2(-1.0, 0.0); + result += mat4(0.12285264, 0.073884204, -0.027040116, 0.03438263, -0.060739577, 0.17927702, 0.16900496, 0.3545027, 0.1545223, -0.09951323, 0.42339948, 0.14226453, 0.10644413, 0.15645456, -0.03346077, -0.009488195) * go_2(-1.0, 1.0); + result += mat4(-0.080912456, 0.16929491, 0.027275667, -0.020797532, 0.05746718, -0.071174294, 0.3193612, 0.055932105, 0.031726856, -0.03390961, 0.13757136, -0.017296424, -0.041106436, 0.02487556, -0.29788992, -0.29300368) * go_2(0.0, -1.0); + result += mat4(-0.32740706, 0.4221705, 0.35447162, 0.13970987, 0.07307587, 0.65598255, 0.7267268, 0.35669217, -0.24410655, 0.30564576, -0.033510603, 0.20394838, -0.012135275, -0.12212605, 0.00741055, -0.12938774) * go_2(0.0, 0.0); + result += mat4(0.17577599, -0.075835876, -0.06821395, -0.19289997, 0.048764437, 0.11093425, 0.15844633, 0.21540429, -0.14261006, -0.12678951, -0.05380409, 0.21502183, -0.053737447, -0.23268248, 0.077271536, -0.11794149) * go_2(0.0, 1.0); + result += mat4(-0.06283879, -0.11581014, -0.0077474653, -0.051150266, 0.017263902, -0.12403667, 0.13689952, -0.13955206, -0.036969677, 0.04593233, 0.31484202, -0.021023672, 0.006109164, -0.022175733, 0.32699695, -0.26805824) * go_2(1.0, -1.0); + result += mat4(0.07529928, -0.020912366, -0.14532542, -0.13928838, 0.07875855, -0.18651104, 0.47042093, 0.342289, -0.06575549, -0.13776249, 0.21936299, 0.124723375, 0.05280059, -0.07600857, 0.0027616988, 0.11619774) * go_2(1.0, 0.0); + result += mat4(0.06760704, -0.11735106, 0.07262433, -0.040624633, 0.35947633, 0.29390943, 0.025136888, -0.12812558, 0.17102966, -0.15462054, 0.37353945, 0.030337518, -0.01959842, -0.07917661, 0.036980435, -0.008516924) * go_2(1.0, 1.0); + result += mat4(-0.07072042, 0.19770962, -0.039348952, 0.06489617, -0.03382829, -0.11054973, -0.035438936, 0.011020459, -0.050599303, -0.07308136, -0.029521624, 0.0694216, 0.021597218, 0.07275136, 0.1196986, -0.021191286) * go_3(-1.0, -1.0); + result += mat4(0.027155813, -0.024280313, -0.1322834, 0.219577, 0.013412778, 0.027934693, -0.10113296, 0.16649272, 0.029343246, 0.08333487, -0.09067474, -0.06318277, 0.016611677, 0.22737436, 0.11019619, -0.11105013) * go_3(-1.0, 0.0); + result += mat4(-0.10233781, 0.04936236, -0.12536384, 0.1270058, -0.07842266, 0.0018531404, 0.021235077, -0.13014361, -0.06192502, -0.07054751, -0.05475905, 0.053059015, 0.15269022, 0.11485296, -0.09188326, -0.13495958) * go_3(-1.0, 1.0); + result += mat4(-0.038748156, 0.17470013, 0.008070423, 0.47245374, 0.14041074, 0.0029743444, 0.09280988, -0.16300924, 0.025588343, 0.042092193, 0.021749513, -0.07912978, -0.08887605, -0.06223286, -0.017056612, 0.11412155) * go_3(0.0, -1.0); + result += mat4(-0.62907135, -0.054125126, -0.3091851, -0.2599738, 0.24917828, 0.36420155, 0.07772076, 0.039711658, -0.25157338, -0.023638945, -0.054642107, 0.25950512, -0.26855794, 0.16737756, -0.011335203, -0.383141) * go_3(0.0, 0.0); + result += mat4(0.019852921, 0.2599611, -0.17794183, 0.086149536, 0.27634904, 0.21865687, -0.047085866, -0.08818839, 0.013813605, 0.21364933, -0.22009525, -0.030338509, -0.1512191, 0.042633552, -0.17577383, 0.0662118) * go_3(0.0, 1.0); + result += mat4(-0.15513746, -0.07846239, -0.13220623, 0.106471166, 0.05573645, 0.16334842, -0.07945537, -0.19104981, -0.013032576, 0.08952008, 0.055789266, -0.035824023, -0.017594192, -0.04652965, -0.30483812, 0.054347165) * go_3(1.0, -1.0); + result += mat4(0.054959666, -0.055990525, 0.142193, 0.09890494, 0.047798425, 0.15105279, -0.16933344, -0.08214855, -0.11551477, 0.06605292, -0.20606443, -0.04266445, 0.01709317, -0.097884715, -0.21919689, 0.024738865) * go_3(1.0, 0.0); + result += mat4(0.009435747, -0.0011143036, 0.08239794, 0.06413721, -0.09412612, -0.07816752, 0.0070877066, -0.054295234, -0.02152047, -0.057394918, -0.02919309, 0.020081067, -0.03086805, -0.056924064, 0.026491363, 0.015115628) * go_3(1.0, 1.0); + result += vec4(0.0012513401, 0.026057906, 0.010539876, 0.009830541); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-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.057580933, 0.01911187, -0.008719538, -0.017969212, -0.24201718, -0.058988657, -0.0025294814, -0.011815471, -0.10723921, -0.19644037, 0.020027963, 0.035667516, 0.08559372, 0.27885816, 0.064953476, -0.05350714) * go_0(-1.0, -1.0); + result += mat4(0.045166798, -0.10751055, 0.053228382, 0.12519331, 0.25117958, 0.06537292, -0.15587787, -0.07206778, 0.06837826, -0.043205425, -0.12318706, -0.15438488, 0.03246428, 0.074852064, 0.062248066, -0.009753593) * go_0(-1.0, 0.0); + result += mat4(0.09432274, 0.011490796, -0.04061421, -0.16661306, 0.05983951, -0.020288106, 0.029864697, 0.013547436, 0.021477815, -0.07964464, 0.045970913, 0.16307391, -0.04462305, 0.046968628, 0.029862186, 0.11649774) * go_0(-1.0, 1.0); + result += mat4(-0.14416671, 0.12803924, -0.18187119, -0.15840115, -0.10262368, 0.043705128, -0.10072281, -0.06468493, -0.043781534, -0.015372785, -0.16681372, 0.05544772, 0.03745967, -0.30812827, 0.007939141, -0.14296778) * go_0(0.0, -1.0); + result += mat4(-0.10959357, -0.23731256, 0.17797269, 0.1566764, -0.04658083, -0.08226227, 0.065335095, 0.12799698, -0.04347693, 0.07439239, 0.124068074, -0.12433461, 0.39953944, -0.4547675, -0.15020098, 0.029323136) * go_0(0.0, 0.0); + result += mat4(0.008521254, -0.42012635, -0.103437595, -0.14140712, -0.13161388, -0.04296955, -0.03418078, -0.11619488, -0.113280736, -0.04337926, -0.15152383, -0.025833655, -0.037376937, 0.028724195, 0.035038933, 0.07584188) * go_0(0.0, 1.0); + result += mat4(-0.0015208189, 0.02739281, 0.07880385, -0.05264596, 0.0006570586, -0.053559244, -0.060818747, 0.0014127572, -0.12706065, -0.22151639, 0.0050813453, 0.03868026, 0.017800469, 0.08653453, 0.12580872, 0.10975057) * go_0(1.0, -1.0); + result += mat4(-0.016247116, 0.060199317, 0.08806292, -0.0053588278, -0.036467995, 0.14757904, 0.010754306, 0.060899615, -0.1110678, -0.050623085, -0.021320427, -0.1970179, 0.1138183, 0.02913883, 0.011708719, -0.0031000238) * go_0(1.0, 0.0); + result += mat4(-0.07490824, 0.26012638, 0.023562372, -0.04637545, 0.015996248, -0.02646302, 0.0035619289, 0.009863964, 0.004463742, -0.13282667, 0.04664953, -0.07782132, 0.026051573, -0.13182716, -0.03470513, 0.082064465) * go_0(1.0, 1.0); + result += mat4(-0.04953172, 0.055778302, -0.007956572, 0.06453463, -0.112365015, 0.031204617, -0.031123973, 0.13237885, -0.08588153, -0.15947914, 0.25160727, -0.0101198545, -0.09021632, 0.0047894586, -0.008986191, -0.11622616) * go_1(-1.0, -1.0); + result += mat4(-0.07868324, -0.03463213, 0.011006695, 0.0033356217, 0.032993857, -0.10459223, -0.11331984, -0.17686851, -0.13263261, -0.22213052, 0.10728409, -0.1332059, -0.0019830016, -0.062202223, -0.12468388, -0.102955) * go_1(-1.0, 0.0); + result += mat4(0.06774758, -0.019607622, -0.054707706, -0.032572657, -0.056999106, 0.0063034142, -0.0040720105, 0.04574635, 0.21903323, 0.13402393, -0.07107346, -0.08973124, 0.020255536, -0.021238161, -0.104306765, -0.009237116) * go_1(-1.0, 1.0); + result += mat4(0.10643413, -0.116414584, -0.097003944, -0.07626372, -0.28920346, 0.023803055, 0.07691808, 0.015008518, -0.1373578, 0.01935071, -0.07574301, 0.052712873, 0.09657614, -0.02497193, -0.0043158466, -0.09333523) * go_1(0.0, -1.0); + result += mat4(-0.25414145, -0.26243624, 0.12937985, -0.17944777, 0.3664257, -0.06487048, -0.10509681, -0.10630014, 0.075283855, 0.4662916, -0.0014712083, -0.29535007, -0.13022043, 0.25766194, 0.14769283, 0.10512634) * go_1(0.0, 0.0); + result += mat4(0.0689302, 0.022661772, -0.043984957, 0.13596754, -0.06885858, 0.059424106, 0.017230453, 0.08873089, 0.32940426, -0.12071059, -0.08323642, 0.23238598, -0.06291085, 0.09859973, -0.00700876, 0.12986307) * go_1(0.0, 1.0); + result += mat4(-0.060717613, 0.030503884, -0.06323549, 0.0059739, 0.08190414, 0.047006775, -0.0023143853, -0.027005509, -0.17168896, 0.20450558, 0.047933526, -0.03124133, 0.14688456, 0.044616744, -0.07474459, 0.13730273) * go_1(1.0, -1.0); + result += mat4(0.16486372, 0.13952915, 0.1093748, -0.031850196, -0.14090009, -0.120079, 0.023628023, -0.077027865, 0.09811187, -0.033171307, -0.03331771, -0.038893215, 0.011286584, -0.15111947, -0.017341943, 0.0015878569) * go_1(1.0, 0.0); + result += mat4(-0.09481133, 0.107053526, 0.047643233, 0.16805217, -0.0678524, -0.07519125, -0.02258995, -0.13705339, 0.16563395, -0.16972524, 0.04326224, 0.024816778, 0.010601283, -0.041156873, 0.062542215, 0.047571044) * go_1(1.0, 1.0); + result += mat4(0.12500185, -0.006936863, 0.024489427, 0.1740798, -0.036525737, -0.12511401, 0.07990025, 0.02839474, -0.12753619, -0.06010621, 0.08279232, -0.081194244, -0.09039855, -0.18112564, -0.26476932, -0.031485114) * go_2(-1.0, -1.0); + result += mat4(-0.100102335, 0.22857793, 0.14938287, -0.014803003, -0.17217094, -0.62685734, 0.095959224, 0.17851897, 0.06559054, 0.10896349, 0.0067452556, -0.07877991, 0.15820199, -0.19860643, -0.23554341, 0.108216554) * go_2(-1.0, 0.0); + result += mat4(-0.06440183, -0.086768515, 0.06501931, -0.013325654, 0.048092242, -0.2516782, -0.07378936, -0.5093634, -0.21180914, 0.028729467, 0.097722694, -0.10443471, 0.087278105, -0.13554108, -0.07925715, 0.025918096) * go_2(-1.0, 1.0); + result += mat4(0.101379745, -0.098901495, 0.088425554, 0.10312074, -0.06832467, -0.14247051, -0.06577163, 0.038505282, -0.058837283, -0.041290045, 0.024700344, -0.03952513, 0.050091445, 0.20111398, -0.12729187, 0.17162229) * go_2(0.0, -1.0); + result += mat4(-0.14357474, -0.52516335, -0.28848764, -0.25948864, -0.6469683, -0.25461218, -0.12740892, -0.23631012, -0.14096075, -0.28670883, 0.12026559, -0.17575467, 0.40593022, 0.09236864, 0.11895183, -0.21580887) * go_2(0.0, 0.0); + result += mat4(-0.027686533, -0.014736693, 0.11776454, 0.104835264, -0.1122669, -0.10067572, 0.054669123, -0.3256272, -0.1618158, 0.24705333, 0.07530265, -0.16693603, 0.11981224, -0.01764311, 0.035309367, 0.18991415) * go_2(0.0, 1.0); + result += mat4(0.075753845, 0.030512655, -0.033218108, -0.0020751022, -0.059813447, 0.13577273, -0.17669228, -0.015658198, -0.03524086, -0.027248759, 0.011696296, -0.13176118, 0.13976848, -0.11381985, -0.069327734, -0.04551793) * go_2(1.0, -1.0); + result += mat4(0.025345126, -0.017192554, -0.10062235, 0.19348828, -0.1404843, 0.19161314, -0.266943, -0.30460906, -0.25685784, 0.023311002, -0.21997964, -0.04452797, 0.039271735, -0.0077815196, 0.05758964, 0.08804478) * go_2(1.0, 0.0); + result += mat4(0.04886391, -0.017406208, -0.038027596, 0.012643386, 0.14007851, 0.0012767792, -0.115759425, 0.097489856, 0.17599659, -0.050711423, -0.084151536, -0.15770845, -0.08287477, 0.120081306, 0.015947923, -0.06668065) * go_2(1.0, 1.0); + result += mat4(-0.10980535, 0.12270783, 0.063907675, -0.07847296, 0.10355225, -0.31747913, -0.10403689, 0.005290646, 0.07667107, -0.10277437, -0.08069292, -0.02559804, -0.047999926, 0.29834297, -0.036717292, -0.05650061) * go_3(-1.0, -1.0); + result += mat4(-0.103821196, -0.009593053, 0.066295676, -0.38370672, -0.037927628, -0.2711836, 0.1377398, -0.08418159, -0.0737972, -0.039782777, 0.13933297, 0.04516865, -0.06268818, 0.337236, -0.121655226, -0.008400626) * go_3(-1.0, 0.0); + result += mat4(-0.15113829, 0.0017028727, -0.02523152, 0.020020628, 0.14301538, -0.20421621, -0.07266804, 0.04835691, -0.03385325, 0.06579219, -0.026479365, -0.037032843, 0.038153037, 0.014210751, -0.03542229, 0.0710242) * go_3(-1.0, 1.0); + result += mat4(0.0054667736, 0.01744876, 0.3065127, 0.049586684, 0.18856415, 0.2730343, -0.2333077, 0.0068653813, 0.3263104, 0.1581569, -0.067741506, -0.10893117, -0.23163976, 0.0029724934, 0.21427019, -0.05729933) * go_3(0.0, -1.0); + result += mat4(0.2783585, 0.17852917, -0.1389073, 0.1369532, -0.10491301, 0.3753245, -0.2739856, 0.18703647, -0.64889586, 0.06298504, -0.29364008, 0.17944366, 0.09733316, -0.21755181, 0.090409346, -0.022404745) * go_3(0.0, 0.0); + result += mat4(-0.08643692, 0.043516237, 0.07125337, -0.23520306, 0.042653214, 0.058355685, -0.13027787, -0.0015239809, 0.06168663, 0.04952333, 0.03217504, -0.094814256, 0.25104445, 0.06959146, -0.14522897, -0.034003105) * go_3(0.0, 1.0); + result += mat4(0.10193368, 0.109207876, 0.06922978, -0.035177775, 0.08234648, -0.24269609, 0.05216447, 0.07194904, 0.08424774, -0.023948545, 0.1292036, -0.16073976, -0.11004149, -0.14011864, 0.05699544, 0.08603814) * go_3(1.0, -1.0); + result += mat4(-0.159505, 0.011439578, 0.031358175, -0.074699186, 0.16425711, -0.29734048, 0.06415531, 0.09782104, -0.047154855, -0.053923853, 0.13791925, 0.01920221, 0.2510621, 0.011180524, -0.02389365, 0.22188987) * go_3(1.0, 0.0); + result += mat4(-0.052833233, -0.0011790307, 0.01832988, -0.087143995, 0.16383314, -0.018386772, 0.018473852, 0.022136362, 0.00095872144, 0.059976995, 0.00461632, 0.006194564, -0.05576084, 0.19239509, 0.07017777, -0.0542914) * go_3(1.0, 1.0); + result += vec4(-0.03782637, -0.0035752894, -0.010155095, -0.025359483); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!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 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.02066797, -0.013601862, -0.007048889, -0.010436224, -0.013475746, 0.017484829, 0.003569871, 0.010704422, -0.013622159, 0.0051929723, -0.01672668, -0.011980923, 0.03233822, -0.008870257, 0.024951939, 0.011703474) * go_0(-1.0, -1.0); + result += mat4(0.09294306, 0.0014346406, 0.08119577, -0.008968148, -0.003100696, 0.026659792, -0.012744048, 0.02888033, -0.032950055, 0.016204342, -0.017369213, 0.022491494, 0.049124617, -0.027378289, 0.02111168, -0.037705775) * go_0(-1.0, 0.0); + result += mat4(-0.008216952, -0.021160914, 0.040945128, -0.010472813, -0.005768232, 0.0016923469, -0.0061864546, 0.0007168136, -0.014967856, -0.0013775446, -0.03696006, -0.0011331941, 0.006405253, 0.0030893548, 0.052975312, -0.0077081146) * go_0(-1.0, 1.0); + result += mat4(0.1026977, 0.06607977, -0.025372373, -0.03354179, -0.034359697, -0.046674587, -0.012842571, 0.0041260347, 0.0189941, -0.029389031, 0.028211223, 0.010089593, -0.0057367194, 0.053311557, -0.037211698, 0.0035831304) * go_0(0.0, -1.0); + result += mat4(0.21819879, 0.24159485, 0.25479653, 0.22689046, -0.14693534, -0.101709016, -0.12968269, -0.11193918, -0.17564386, -0.09321151, -0.1088182, -0.098540194, 0.016255755, 0.11983511, 0.07260058, 0.11377339) * go_0(0.0, 0.0); + result += mat4(-0.0065045636, -0.014916138, 0.08657154, 0.08976987, -0.013105138, -0.014341284, -0.07822386, -0.05141758, -0.008127414, -0.023220202, -0.07729052, -0.05847569, -0.014462153, -0.008247349, -0.029479884, 0.053986717) * go_0(0.0, 1.0); + result += mat4(-0.05111642, 0.013267287, -0.010962933, -0.0062592067, 0.031603336, 0.017792836, 0.040512457, 0.021096494, 0.025952626, 0.03858803, 0.009819873, 0.014087486, -0.016874991, -0.021088999, 0.0048008533, -0.014261808) * go_0(1.0, -1.0); + result += mat4(-0.054689944, 0.019172559, -0.10202758, 0.01563535, 0.024953881, -0.042438734, 0.03068713, -0.019600231, 0.0026854384, -0.08990359, 0.038635172, -0.0014791996, -0.045267813, -0.06297795, -0.050205074, -0.036708377) * go_0(1.0, 0.0); + result += mat4(-0.009820029, -0.007953665, -0.0030171487, 0.025994476, 0.0055633057, 0.0023106632, -0.0011157666, -0.032652337, 0.02231576, 0.0150678335, -0.00035031908, -0.049004823, -0.0048957765, -0.007189859, -0.022652647, -0.039600767) * go_0(1.0, 1.0); + result += mat4(-0.025157524, 0.005564745, 0.0077270563, -0.007929144, 0.07835409, -0.03961485, 0.0042581395, -0.012796515, 0.018968092, 0.0065416014, -0.018439304, -0.031132344, -0.008802365, -0.019820224, -0.053818177, 0.019140625) * go_1(-1.0, -1.0); + result += mat4(0.024769353, -0.016378574, 0.11481205, -0.026075391, -0.028652724, -0.008835214, 0.06427986, -0.04859151, -0.014552956, -0.028410029, 0.111585446, 0.009804185, -0.042241797, 0.0019805022, 0.03361954, -0.017370641) * go_1(-1.0, 0.0); + result += mat4(0.034053475, 0.038674638, -0.04696516, -0.0045251776, -0.0039383816, -0.0021523088, -0.021408198, -0.0003014931, -0.023644248, 0.020932276, -0.108067356, 0.030942762, -0.026552102, -0.0056460355, 0.008178258, -0.0009253607) * go_1(-1.0, 1.0); + result += mat4(0.078304745, 0.011302627, -0.036976036, -0.013908656, -0.10690595, 0.016818136, 0.015758326, -0.016121918, -0.037873853, 0.00037048876, -0.009456388, -0.016097274, 0.057774395, 0.15647416, 0.00012419945, -0.085859895) * go_1(0.0, -1.0); + result += mat4(-0.2873381, -0.16951321, 0.14959157, 0.36375824, -0.16162755, 0.30172205, -0.28958184, 0.2487593, -0.10533105, 0.42946494, -0.20263031, 0.23740861, 0.023840647, -0.06442918, -0.29647085, -0.12943329) * go_1(0.0, 0.0); + result += mat4(0.0029997546, 0.023317888, -0.023340696, -0.09114311, -0.05119816, -0.08453361, -0.041490365, 0.006037165, 0.016185664, -0.08495001, 0.08690409, 0.10635855, -0.0121372985, -0.0061607, -0.03049874, 0.03893408) * go_1(0.0, 1.0); + result += mat4(-0.010922993, 0.03413124, -0.011615248, -0.016528865, 0.015621528, 0.08856427, 0.01220382, 0.0052098404, 0.04833281, 0.037831176, 0.026502393, 0.0107578635, 0.029293455, -0.0051649977, 0.007572071, 0.010101437) * go_1(1.0, -1.0); + result += mat4(0.0016892543, -0.086751014, -0.0041350387, -0.06005637, 0.041606825, -0.19200447, 0.028292444, -0.017876074, 0.0101423515, -0.08625792, 0.09077659, 0.024676733, -0.046471898, -0.021680003, 0.007921834, -0.079603985) * go_1(1.0, 0.0); + result += mat4(0.017057033, -0.008013634, -0.018102577, -0.01345755, 0.0620006, -0.025968201, 0.07138734, -0.09975251, -0.005465781, -0.011184834, -0.0651285, -0.079556055, -0.00055764546, -0.007492052, -0.029603545, -0.07078825) * go_1(1.0, 1.0); + result += mat4(-0.10589389, 0.021210285, -0.028930133, 0.016055413, -0.18338472, -0.051082015, 0.1020663, 0.014365114, 0.11688869, -0.039388333, 0.009866559, -0.03795289, 0.013310502, 0.023231732, 0.007659133, -0.0027602138) * go_2(-1.0, -1.0); + result += mat4(0.0025395593, 0.0073232944, -0.04352944, 0.019918712, 0.020041449, -0.073162615, 0.096950345, 0.021914015, -0.17350666, 0.12829295, 0.07900105, 0.03115375, -0.012729986, 0.025017815, -0.19016227, 0.03532046) * go_2(-1.0, 0.0); + result += mat4(-0.004561337, 0.018127436, -0.03147566, 0.014196702, 0.016791651, -0.0021540376, -0.021546744, -0.006671925, -0.008601794, 0.0384946, -0.16477007, 0.122372, -0.03592093, -0.016040638, 0.025269061, 0.023783052) * go_2(-1.0, 1.0); + result += mat4(0.17777547, -0.29313773, 0.15184408, -0.026345825, 0.046505112, -0.2121665, 0.08373203, 0.1717021, -0.028687157, -0.07293457, -0.062076677, 0.056581914, -0.19576493, -0.1566389, 0.11269683, 0.12300568) * go_2(0.0, -1.0); + result += mat4(-0.2722888, -0.23436427, -0.1575821, -0.48185775, 0.38314724, 0.34028763, -0.22216766, 0.007053101, 0.43936196, -0.106232345, 0.3447898, -0.23145236, 0.17801034, 0.107395455, -0.10301275, -0.37671486) * go_2(0.0, 0.0); + result += mat4(0.027849002, 0.005493108, -0.07151169, -0.037706394, -0.030193258, 0.010484296, 0.12785462, 0.013065869, -0.02244137, 0.07738321, 0.1428445, 0.113706514, -0.016278854, -0.042375315, -0.014864632, 0.009536567) * go_2(0.0, 1.0); + result += mat4(0.016663784, 0.05133444, -0.036621124, -0.008492059, 0.006291255, 0.11044035, -0.06309081, -0.069970004, -0.080658376, 0.09237095, -0.034645274, 0.008006193, 0.0027648888, -0.055031255, 0.03726407, 0.04109432) * go_2(1.0, -1.0); + result += mat4(0.020757113, -0.037167564, 0.10940448, 0.10017512, -0.0557746, 0.068767264, 0.004170172, -0.13714421, -0.03749213, 0.06711421, -0.106826246, 0.11498757, 0.04753172, 0.10241908, 0.029435748, 0.07990668) * go_2(1.0, 0.0); + result += mat4(0.006560853, 0.023810847, -0.024475241, -0.058117945, -0.035195846, -0.04271988, 0.049571864, 0.15042038, -0.007620832, -0.025544636, 0.008050735, 0.01056782, 0.003100258, 0.004679245, 0.006587324, 0.018110644) * go_2(1.0, 1.0); + result += mat4(-0.02249566, 0.007422409, 0.012279647, 0.010022545, 0.009818794, -0.0038862806, 0.0011564652, -0.0012341562, 0.025019286, -0.0007220492, 0.0124062635, -0.0023235283, 0.007858289, 0.005228454, -0.012827192, -0.007885503) * go_3(-1.0, -1.0); + result += mat4(-0.006161589, -0.00088863634, -0.023869669, 0.0018966346, -0.029431801, -0.02086368, -0.0028806294, -0.018974712, -0.061033156, 0.0062700063, -0.013323617, -0.002422788, 0.006092313, 0.023675537, 0.024895974, 0.028143935) * go_3(-1.0, 0.0); + result += mat4(-0.01571405, -0.011126691, -0.023274293, -0.011942278, 0.008145339, 0.002989056, -0.009912996, 0.003355017, 0.027048714, -0.0027421801, -0.017191814, 0.011846277, -0.0014130942, -0.007118815, -0.006929838, 0.0016808703) * go_3(-1.0, 1.0); + result += mat4(-0.008867632, -0.054621387, 0.00521757, -0.001299046, -0.011991457, 0.01253288, 0.007283377, 0.008240456, -0.0328741, 0.030364394, 0.020916186, 0.046377357, -0.0025963385, 0.01801948, 0.017200526, 0.00594781) * go_3(0.0, -1.0); + result += mat4(0.049747035, -0.019024936, -0.037307423, -0.08635432, 0.06362242, -0.031690367, 0.0065028532, -0.008046128, -0.05511954, -0.10017574, -0.105036125, -0.07040073, 0.17360815, 0.01423494, 0.08344793, 0.034444667) * go_3(0.0, 0.0); + result += mat4(0.017059349, 0.018542623, 0.08186985, 0.032335408, 0.025869634, 0.05591529, 0.06690499, 0.03575357, -0.012014303, 0.0105476575, 5.6129655e-05, -0.048691276, 0.018272987, 0.006864036, 0.07919666, 0.011271695) * go_3(0.0, 1.0); + result += mat4(0.0083691375, 0.019432282, -0.0020216214, 0.010078488, -0.010552234, -0.018613037, -0.01894401, -0.019692581, -0.018510802, -0.05016945, -0.019306058, -0.026060628, -0.022509305, -0.026064832, -0.022758938, -0.0126465075) * go_3(1.0, -1.0); + result += mat4(0.014892795, 0.05182727, 0.029640755, 0.042491425, 0.002331018, 0.049497634, 0.023474293, 0.03618418, 0.042020023, 0.022141129, -0.01769678, -0.05579617, 0.01911445, 0.12306055, -0.01590528, 0.034323514) * go_3(1.0, 0.0); + result += mat4(0.006270243, 0.007303163, 0.00036148846, 0.03448912, -0.012123668, -0.009662251, -0.024768578, 0.011880113, 0.022290664, 0.020946119, 0.080712624, 0.07576267, -0.019421795, -0.0020419061, 0.018644858, 0.06175357) * go_3(1.0, 1.0); + result += vec4(-0.0010649486, -0.00016483334, -0.0012494534, -0.00068970193); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!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 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.0035857174, 0.0015660138, 0.020620639, 0.005492695, 0.001423522, -0.0054458505, 0.012705879, -0.0034037326, 0.0149765, 0.013593896, -0.010144564, -0.0033618324, -0.025044372, -0.015873099, 0.004778018, 0.0032093422) * go_0(-1.0, -1.0); + result += mat4(-0.048154887, 0.0020999224, -0.025491469, 0.006954485, 0.033840816, -0.004235974, -0.0017972046, -0.016532846, 0.021911, -0.019167153, 0.028508998, -0.009081471, -0.007042987, 0.01162185, -0.04339448, 0.0007982697) * go_0(-1.0, 0.0); + result += mat4(0.00692694, 0.0055899867, -0.023532946, -0.005534464, 0.0065109115, -0.0013627014, 0.030455293, -0.0042733895, 0.003067062, -0.0019513131, 0.006832627, -0.009393006, -0.000787669, 0.0077676126, 0.017214414, 0.0005746928) * go_0(-1.0, 1.0); + result += mat4(0.04131343, 0.0061334246, 0.04663622, 0.034750223, 0.08184925, 0.054405987, 0.024695259, 0.049768113, 0.018208977, -0.008268458, -0.0025095541, -0.008479898, -0.024029268, -0.010577515, -0.005219355, 0.018835438) * go_0(0.0, -1.0); + result += mat4(-0.06885562, -0.093354285, -0.048095718, -0.09125787, 0.010425496, 0.05662435, 0.063850805, 0.052370857, 0.005560605, 0.10203871, 0.011031155, 0.0477262, -0.18752532, -0.11192383, -0.101294495, -0.109485805) * go_0(0.0, 0.0); + result += mat4(0.036398027, 0.014735432, 0.016239874, -0.01584611, -0.01778564, -0.004402638, -0.023574408, 0.02128348, -0.0046439893, -0.009485744, 0.0150541775, 0.042738233, 0.002258786, -0.0077040903, -0.10126805, -0.032423664) * go_0(0.0, 1.0); + result += mat4(-0.017738108, -0.005236546, 0.017476387, 0.024146654, -0.008857861, 0.030536365, 0.00078645826, -0.0040980624, 0.011337365, 0.02425144, 0.00035175736, -0.006825428, 0.0052930177, -0.0023696972, 0.005261922, -0.005584412) * go_0(1.0, -1.0); + result += mat4(9.1015834e-05, -0.025756188, -0.03374904, -0.04208741, -0.0063595036, -0.013884236, -0.01298973, 0.017781528, 0.00026187245, -0.03274113, 0.02486941, 0.028255679, 0.035963513, -0.0581295, 0.035199746, -0.0104088895) * go_0(1.0, 0.0); + result += mat4(-0.01260853, 0.0062392578, -0.003071281, 0.01035934, 0.0057190065, -0.0017513676, -0.0026357982, -0.017834812, 0.00678827, 0.008202837, -0.009278475, -0.020972013, 0.010203599, 0.001279875, 0.011321498, -0.041021187) * go_0(1.0, 1.0); + result += mat4(-0.016318664, 0.010274144, 0.0058704168, -0.0003722195, 0.08622261, -0.056748323, 0.012796814, -0.015498583, -0.014841128, -0.013023518, -0.017376468, -0.011344732, -0.0011321327, -0.004839438, -0.065831445, 0.0170905) * go_1(-1.0, -1.0); + result += mat4(0.029771782, -0.029376734, 0.12636128, -0.041424155, -0.037272833, -0.028138392, 0.05147389, -0.071253724, -0.058589596, -0.0038131222, 0.07219576, -0.018886834, -0.03175935, 0.022464748, 0.04460918, 0.007712493) * go_1(-1.0, 0.0); + result += mat4(0.031791184, 0.03750064, -0.04815924, -0.0037787687, 0.027883058, 0.0017699281, 0.00868531, -0.00061983714, 0.014328159, 0.011008469, -0.1027948, 0.061321545, -0.0232413, -0.0036074712, 0.013003957, 0.005047646) * go_1(-1.0, 1.0); + result += mat4(0.061875354, 0.013966958, -0.057976823, -0.027396917, -0.07729206, 0.037510768, 0.05148819, 0.013505393, -0.009836167, 0.017979803, 0.014434765, 0.011236566, 0.038901612, 0.14647634, 0.023550952, -0.05943926) * go_1(0.0, -1.0); + result += mat4(-0.2863236, -0.16270663, 0.13858683, 0.38562158, -0.18246396, 0.30728486, -0.30314833, 0.23621106, -0.09020211, 0.39363787, -0.14761628, 0.27088004, 0.023005886, -0.10956146, -0.33344752, -0.20269877) * go_1(0.0, 0.0); + result += mat4(0.032677263, 0.04735152, 0.013321085, -0.07145408, -0.0017462671, -0.02075628, -0.005706266, 0.07966981, 0.003467664, -0.07971056, 0.053607278, 0.04101255, -0.035280924, -0.01813141, -0.044000223, 0.025542235) * go_1(0.0, 1.0); + result += mat4(-0.008210569, 0.019704876, -0.015133452, -0.03008762, 0.0049174884, 0.08061308, 0.0038117717, -0.002029503, 0.042190753, 0.032804105, 0.014783755, -0.002336826, 0.054137956, 0.005509952, 0.008481185, 0.009885271) * go_1(1.0, -1.0); + result += mat4(0.013837548, -0.07767153, 0.022879202, -0.056488827, 0.065868095, -0.18863344, 0.03467011, -0.010413688, 0.021961903, -0.081908144, 0.088906504, 0.03597804, -0.00019099779, 0.031379074, 0.058308717, -0.026305178) * go_1(1.0, 0.0); + result += mat4(0.0014572622, -0.011619552, -0.026434032, -0.0043500545, 0.047792483, -0.024726411, 0.06545127, -0.11275325, 0.013236977, -0.00022499474, -0.029280944, -0.06866851, 0.006890194, -0.011312297, 0.0012165548, -0.04664351) * go_1(1.0, 1.0); + result += mat4(-0.047752246, 0.0029728701, -0.05373465, -0.005998469, -0.22396794, -0.029485608, 0.09026242, 0.02158353, 0.109403, -0.05481592, 0.010041409, -0.04743197, 0.055757776, 0.02585569, 0.02746905, -0.0030442658) * go_2(-1.0, -1.0); + result += mat4(0.099528484, -0.015010706, 0.100571565, -0.0034939381, 0.012570407, -0.043869816, 0.086886376, 0.05987024, -0.22607432, 0.16655043, 0.061426442, 0.05697152, 0.064990446, -0.005531908, -0.14511855, 0.0076572066) * go_2(-1.0, 0.0); + result += mat4(-0.012711154, -0.003635479, -0.0075224554, -0.0052927425, 0.0028822776, 0.0072370963, -0.056621686, 0.0026998962, -0.03712505, 0.042426053, -0.22980946, 0.14261132, -0.03626141, -0.039392795, 0.085727766, 0.012577211) * go_2(-1.0, 1.0); + result += mat4(0.2062136, -0.19833934, 0.07369608, -0.09740325, -0.034611486, -0.32579082, 0.07641666, 0.15784128, -0.039162353, -0.07734512, -0.033959284, 0.084764875, -0.1607926, -0.11135721, 0.10387057, 0.1112244) * go_2(0.0, -1.0); + result += mat4(0.042789772, 0.07384808, 0.13794817, -0.10090421, 0.22263366, 0.2233975, -0.42347354, -0.17161362, 0.277786, -0.30926275, 0.22161394, -0.37332773, 0.3831451, 0.37317204, 0.079320274, -0.17581266) * go_2(0.0, 0.0); + result += mat4(-0.008462805, -0.017743077, 0.006631768, 0.02413771, -0.03139262, -0.016224122, 0.08141759, -0.057388183, -0.031753678, 0.048525933, 0.058724694, -0.0065176883, -0.022200955, -0.042803597, 0.038398843, 0.10740149) * go_2(0.0, 1.0); + result += mat4(-0.02273882, 0.02042988, -0.04352726, -0.04365105, 0.031618606, 0.12397989, -0.0446275, -0.047745094, -0.07272708, 0.087981805, -0.022883464, 0.021518158, -0.033805974, -0.061570108, 0.029978301, 0.047310177) * go_2(1.0, -1.0); + result += mat4(-0.024014544, 0.03312975, 0.013067503, 0.11282178, -0.024482794, 0.008091268, 0.06432778, -0.15766713, -0.048687667, 0.0051038596, -0.10650007, 0.074438654, -0.031920508, 0.07880885, -0.063074075, 0.053531222) * go_2(1.0, 0.0); + result += mat4(-0.007602651, 0.003247358, -0.010531292, -0.014522784, -0.045127477, -0.04641428, 0.034592852, 0.11708857, 0.016080456, -0.010862374, 0.012204836, -0.019624028, -0.005596978, 0.002570303, -0.01718452, 0.007036096) * go_2(1.0, 1.0); + result += mat4(-0.03400744, 0.0074553913, 0.0043038665, 7.957602e-05, 0.014352309, -0.003674803, -0.014835324, -0.0055977562, 0.033462152, 0.0068732416, 0.0065420493, -0.0026703794, 0.011938421, 0.001983706, -0.0049862997, 0.00021165576) * go_3(-1.0, -1.0); + result += mat4(-0.0033091118, 0.018994803, -0.026634768, 0.020428555, -0.020792423, 0.009742637, 0.032050136, 0.0071278135, -0.052302815, 0.013190179, -0.004127084, 0.009925822, -0.009661492, -0.0073792427, 0.019004244, 0.00037218904) * go_3(-1.0, 0.0); + result += mat4(-0.009932352, -0.00995933, -0.02146786, -0.0038179306, -0.016922737, -0.000982855, -0.03880165, 0.0100428425, 0.018592497, -0.011936452, -0.00839573, 0.012914954, -0.0023291495, 0.0014392055, -0.013602821, -0.00075313775) * go_3(-1.0, 1.0); + result += mat4(0.005934442, -0.067556374, 0.022733796, -0.00048716593, -0.03944287, -0.0031405275, -0.021329157, -0.023225859, -0.048807576, 0.013591428, -0.0012470218, 0.012172492, -0.01362018, 0.01908229, -0.009989492, -0.013456593) * go_3(0.0, -1.0); + result += mat4(0.0331533, -0.038016763, -0.024796762, -0.097570956, 0.040756926, -0.038999844, 0.004969716, 0.02203622, -0.07773537, -0.095957406, -0.13685504, -0.08225932, 0.21070166, 0.06672545, 0.12035284, 0.0874353) * go_3(0.0, 0.0); + result += mat4(-0.011405352, 0.008514039, 0.04049351, 0.003270972, -0.01190376, -0.00082049094, 0.011982737, -0.03732464, -0.008393462, 0.019479843, -0.0030869786, -0.028394854, 0.008670484, 0.0026366632, 0.07985739, 0.020958235) * go_3(0.0, 1.0); + result += mat4(0.009845008, 0.039659, -0.0024999548, 0.025727686, -0.008037673, -0.020821366, -0.016814344, -0.023053886, -0.0108242845, -0.03981645, -0.0041943905, -0.0074299327, -0.040454514, -0.05054933, -0.0098485295, -0.015317222) * go_3(1.0, -1.0); + result += mat4(0.0010468375, 0.035403077, 0.008057769, 0.041717537, 0.01396972, 0.04731576, 0.025122687, 0.038469587, 0.0198318, -0.012237324, -0.030784154, -0.08214199, -0.0328875, 0.080247246, -0.06950492, -0.015201896) * go_3(1.0, 0.0); + result += mat4(0.011373379, 0.00011919624, 0.0068450207, 0.0220856, 0.0008673803, -0.011897817, -0.0020893042, 0.0056429924, 0.021536274, 0.017342292, 0.06635433, 0.056875907, -0.03351322, -0.008332283, -0.015365816, 0.037228417) * go_3(1.0, 1.0); + result += vec4(-0.0009943815, -0.0009860148, -0.0010532598, -0.0012024855); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!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 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.009554673, -0.0051532127, 0.016102737, 0.0012649148, 0.0077584987, -0.0057105157, 0.014400071, -0.003925339, 0.017135408, 0.013764417, -0.009086141, -0.0025339578, -0.03264511, -0.016280945, 0.00085838477, 0.0019880894) * go_0(-1.0, -1.0); + result += mat4(-0.076804005, -0.0037365195, -0.050517682, 0.0020104242, 0.043787587, -0.0023654283, 0.008199321, -0.016990408, 0.042490408, -0.010710564, 0.040960148, -0.0044487948, -0.019470902, 0.010283459, -0.05382899, 0.0012054538) * go_0(-1.0, 0.0); + result += mat4(0.005319574, 0.008546302, -0.037447132, -0.006825204, 0.012196145, 0.0007432002, 0.03959715, -0.00010419698, 0.010211025, -0.00066449976, 0.023840206, -0.0033524157, -0.003079352, 0.010155542, 0.008363695, 0.00091413554) * go_0(-1.0, 1.0); + result += mat4(0.020189503, -0.01584555, 0.048491407, 0.03190471, 0.09146135, 0.066083826, 0.026668968, 0.0508916, 0.025873413, 9.346497e-05, -0.0008600848, -0.0056697717, -0.02856373, -0.023208767, -0.0029442043, 0.015996031) * go_0(0.0, -1.0); + result += mat4(-0.1150775, -0.14330095, -0.09502353, -0.13884564, 0.03178533, 0.07732762, 0.08540057, 0.07563651, 0.024709824, 0.122676425, 0.025598785, 0.062055748, -0.19433355, -0.13121647, -0.1121546, -0.12868516) * go_0(0.0, 0.0); + result += mat4(0.029061472, 0.0073350146, -0.009606754, -0.043715715, -0.018559197, -0.0032290102, -0.01473082, 0.030312086, 0.0055792383, 0.0023610878, 0.03392709, 0.0651179, -0.004296543, -0.016898727, -0.1092547, -0.05084782) * go_0(0.0, 1.0); + result += mat4(-0.016137538, -0.012792734, 0.017391363, 0.026128957, -0.010817838, 0.032218445, -0.0013944196, -0.004525187, 0.009840227, 0.027271513, -0.0024920607, -0.007501888, 0.009476934, 0.00032995836, 0.0041257427, -0.005625152) * go_0(1.0, -1.0); + result += mat4(0.0126353195, -0.03399586, -0.016907396, -0.04899062, -0.007695538, -0.00612431, -0.017332746, 0.021991903, -0.00045945324, -0.02436651, 0.022777557, 0.032261726, 0.050632916, -0.04296159, 0.049930036, 0.0025758578) * go_0(1.0, 0.0); + result += mat4(-0.017934766, 0.0015081838, -0.007909493, -0.00010294505, 0.014974485, 0.0058351695, 0.0057603214, -0.0069939885, 0.00735945, 0.011284126, -0.008253157, -0.013189189, 0.011712553, 0.004176325, 0.019821197, -0.031529877) * go_0(1.0, 1.0); + result += mat4(-0.01832641, 0.011409, 0.0062228036, 0.0012198171, 0.087020114, -0.048004452, 0.019594414, -0.008977235, -0.021853259, -0.025875412, -0.015291018, -0.017832348, -0.0019894738, -0.003139117, -0.05734562, 0.019568626) * go_1(-1.0, -1.0); + result += mat4(0.019767432, -0.032121878, 0.10731837, -0.04160946, -0.038930662, -0.023509357, 0.04353874, -0.06393884, -0.07079979, -0.011297704, 0.055680044, -0.031674873, -0.02432217, 0.022975061, 0.044791207, 0.008831304) * go_1(-1.0, 0.0); + result += mat4(0.026333796, 0.027133184, -0.05641698, -0.015003387, 0.036531202, 0.001104644, 0.017913498, 0.00035784056, 0.010045828, 0.009374881, -0.112320945, 0.055523388, -0.017043058, -0.0012098805, 0.01718199, 0.0069912164) * go_1(-1.0, 1.0); + result += mat4(0.05305516, 0.0041708737, -0.05804445, -0.028278397, -0.07342492, 0.038176447, 0.045486677, 0.014904428, -0.0017618206, 0.02097501, 0.019868117, 0.019373845, 0.052739795, 0.14912929, 0.037314087, -0.041035987) * go_1(0.0, -1.0); + result += mat4(-0.2646953, -0.15668106, 0.12151133, 0.34568876, -0.16625103, 0.28626326, -0.2804781, 0.22248842, -0.09251715, 0.35097396, -0.13397448, 0.244039, 0.02513416, -0.09538499, -0.29833388, -0.17769372) * go_1(0.0, 0.0); + result += mat4(0.04070677, 0.052483205, 0.024028141, -0.06267387, 0.010479897, -0.006137579, 0.005726815, 0.084615536, 0.0029081039, -0.08204673, 0.040788963, 0.018049795, -0.031891953, -0.019043325, -0.041718785, 0.021308724) * go_1(0.0, 1.0); + result += mat4(-0.001575907, 0.022952983, -0.012997063, -0.02844319, 0.0009266049, 0.06976445, -0.0020330409, -0.008372886, 0.028383447, 0.028487694, 0.0039281887, -0.0070809238, 0.041292112, 0.0025322342, -0.002103223, 0.0054210713) * go_1(1.0, -1.0); + result += mat4(0.024716897, -0.05894056, 0.033999596, -0.044356048, 0.063092224, -0.18046258, 0.033589583, -0.014151911, 0.015899418, -0.07901728, 0.073378325, 0.03326658, 0.0032687644, 0.035330176, 0.05457883, -0.017820554) * go_1(1.0, 0.0); + result += mat4(0.001996882, -0.004963775, -0.020151457, 0.0057843816, 0.040995013, -0.019961083, 0.05682041, -0.10547617, 0.02503235, 0.0036294905, -0.013947642, -0.060715917, 0.01876786, 0.0032777768, 0.01927007, -0.025088508) * go_1(1.0, 1.0); + result += mat4(-0.029518202, 0.0065702717, -0.04704605, -0.0048227045, -0.22110744, -0.029372428, 0.08053116, 0.018663822, 0.105733156, -0.04344413, 0.012286602, -0.038484503, 0.060564645, 0.02851022, 0.032352086, -0.001444222) * go_2(-1.0, -1.0); + result += mat4(0.11888213, -0.007396298, 0.12236374, 0.0014036719, 0.006478195, -0.039041974, 0.07476124, 0.05907462, -0.2318871, 0.15429306, 0.048975263, 0.058071293, 0.07446568, -0.0038836622, -0.12506978, 0.006849885) * go_2(-1.0, 0.0); + result += mat4(-0.007815376, -0.0046987617, 0.0045718704, -0.00088239316, -0.006927552, -0.0014817615, -0.060644537, -0.001377785, -0.052053373, 0.030922025, -0.24218674, 0.121679045, -0.025974795, -0.033550926, 0.09225413, 0.015534639) * go_2(-1.0, 1.0); + result += mat4(0.21073256, -0.14790624, 0.06557328, -0.07896083, -0.048564, -0.32713607, 0.070434004, 0.1443138, -0.046067085, -0.08069691, -0.030934528, 0.0787659, -0.1532774, -0.10070167, 0.088510044, 0.10279543) * go_2(0.0, -1.0); + result += mat4(0.08564646, 0.11520261, 0.17513204, -0.039576255, 0.17702763, 0.18044637, -0.434279, -0.1977341, 0.22995597, -0.3259109, 0.17992231, -0.37692067, 0.376483, 0.3755724, 0.09422753, -0.13918276) * go_2(0.0, 0.0); + result += mat4(-0.0013641209, -0.0061978037, 0.030735753, 0.04674489, -0.01888518, -0.0114997085, 0.072051995, -0.059909277, -0.029514287, 0.037226655, 0.03950886, -0.030156244, -0.017026234, -0.029231733, 0.049310546, 0.12158501) * go_2(0.0, 1.0); + result += mat4(-0.01796674, 0.021739075, -0.035811454, -0.04138176, 0.032448296, 0.11651916, -0.03788447, -0.03756297, -0.06638623, 0.07866896, -0.020593246, 0.021115394, -0.03838543, -0.065531924, 0.024438148, 0.038348224) * go_2(1.0, -1.0); + result += mat4(-0.032326736, 0.041176587, -0.0014080614, 0.110470615, -0.030802252, -0.012258527, 0.059453994, -0.16016562, -0.03715787, -0.0005157213, -0.08924785, 0.06535089, -0.043620374, 0.06014967, -0.07529656, 0.03737166) * go_2(1.0, 0.0); + result += mat4(-0.005197623, 0.0025410433, -0.0057371682, -0.005702406, -0.047433604, -0.045016363, 0.022881668, 0.097284265, 0.0050103525, -0.017835459, 0.002082661, -0.031085419, -0.0127113415, -0.010034892, -0.029547364, -0.008159356) * go_2(1.0, 1.0); + result += mat4(-0.030834803, 0.0057913456, 0.0045642396, -0.0023247486, 0.013091116, -0.0019978182, -0.016291631, -0.0063495245, 0.03679821, 0.0111187175, 0.006293907, -0.00159841, 0.008976987, 0.0016699543, -0.002045872, 0.0021225133) * go_3(-1.0, -1.0); + result += mat4(-0.0015449662, 0.018941572, -0.0231217, 0.019913983, -0.02159856, 0.011715352, 0.03145841, 0.011557888, -0.04381463, 0.016269097, 0.003801907, 0.017497942, -0.01846834, -0.011969666, 0.0077923136, -0.00425442) * go_3(-1.0, 0.0); + result += mat4(-0.006369402, -0.0054975, -0.016373185, 0.0015303852, -0.018976817, -0.0020408076, -0.04186448, 0.00862744, 0.013957444, -0.016489068, -0.00876064, 0.0072258003, -0.0065470496, -0.002731135, -0.01953136, -0.0069286725) * go_3(-1.0, 1.0); + result += mat4(0.01150196, -0.057684112, 0.025627816, 0.0045186444, -0.043896675, -0.0073078806, -0.024036214, -0.025075085, -0.041793358, 0.014898103, -0.0012467141, 0.009073226, -0.025522837, 0.0077871215, -0.016588857, -0.016728807) * go_3(0.0, -1.0); + result += mat4(0.03427146, -0.03154995, -0.014622754, -0.083448716, 0.037077904, -0.042196143, 0.0002654827, 0.016835919, -0.05883882, -0.07723022, -0.12151369, -0.06892644, 0.18169776, 0.04656827, 0.09332061, 0.06265968) * go_3(0.0, 0.0); + result += mat4(-0.020037629, 0.0017381558, 0.028106472, -0.0037192027, -0.015639286, -0.0048114993, 0.006957652, -0.04234011, -0.0035926187, 0.02475383, 0.009671758, -0.013367782, 0.009844827, 0.004127156, 0.072107606, 0.018165117) * go_3(0.0, 1.0); + result += mat4(0.0024197982, 0.034167156, -0.00615297, 0.022378683, -0.005956443, -0.0206202, -0.014193571, -0.0220195, -0.004417834, -0.030854845, 0.0032532495, -0.0012370368, -0.031531993, -0.049196836, -0.0011905541, -0.011573349) * go_3(1.0, -1.0); + result += mat4(-0.012435409, 0.023669207, -0.007541224, 0.030453008, 0.009036608, 0.04195238, 0.019962423, 0.033735633, 0.017467575, -0.008318013, -0.0268461, -0.07455821, -0.035670403, 0.06528855, -0.064557284, -0.022101114) * go_3(1.0, 0.0); + result += mat4(0.011575822, -0.0029453707, 0.0029919853, 0.014933897, -0.00034664775, -0.015719024, -0.002594161, 0.0012937526, 0.006969654, 0.008678383, 0.04876611, 0.049061276, -0.037455864, -0.013019295, -0.02504076, 0.024031559) * go_3(1.0, 1.0); + result += vec4(-0.00052569207, -0.0009582512, -0.00071018364, -0.0011515211); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(L)-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/shaders/Anime4K_Upscale_CNN_x2_M.glsl b/shaders/Anime4K_Upscale_CNN_x2_M.glsl new file mode 100644 index 0000000..156c6bd --- /dev/null +++ b/shaders/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/shaders/Anime4K_Upscale_CNN_x2_S.glsl b/shaders/Anime4K_Upscale_CNN_x2_S.glsl new file mode 100644 index 0000000..e6ad7c2 --- /dev/null +++ b/shaders/Anime4K_Upscale_CNN_x2_S.glsl @@ -0,0 +1,158 @@ +// 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-(S)-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.0057322932, 0.12928207, -0.056848746, 0.18680117, -0.0306273, 0.25602463, 0.053723164, 0.20419341, 0.0018709862, 0.022848232, -0.04105527, 0.10169034, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.009471417, -0.12957802, 0.096014425, 0.21836184, 0.00021601951, -0.22997683, 0.23666254, 0.41192335, 0.021762101, 0.0047863554, 0.008233427, 0.108514786, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.01156376, -0.18988979, 0.04614705, -0.044767227, 0.01050636, -0.26426336, 0.23741047, 0.0027636609, -0.027718676, -0.14202335, -0.016650287, -0.06637125, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.057809234, -0.11033858, 0.056533534, -0.06292466, 0.13880666, -0.18710336, 0.2441031, -0.25326246, 0.0032683122, -0.026437074, 0.0023248852, 7.640766e-05, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.49110603, 0.4429004, -0.44015464, -0.41174838, -0.87738293, 0.7808468, -1.0929365, -0.59699076, -0.18409836, 0.185138, -0.11773224, -0.17097276, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.10580959, -0.055947904, -0.03431237, -0.080236495, 0.14862584, -0.15393938, -0.18872876, -0.3170681, 0.03559387, -0.003990826, 0.021298569, 0.012844483, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.040715586, -0.25781113, 0.08896714, -0.1225879, -0.15790503, -0.54010904, 0.29588607, 0.10401059, 0.003413123, -0.108357325, 0.0112870345, -0.11888622, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.0049315444, 0.02376202, -0.08224771, 0.121118225, -0.041512914, -0.027994309, -0.585988, -0.069672115, -0.017247835, 0.0056576864, 0.04319012, 0.055003505, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.37521392, 0.15916082, 0.059708964, 0.19046007, 0.8120325, 0.38343868, 0.3436578, 0.5287958, 0.16570656, 0.06957687, 0.014022592, 0.074799836, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.01050964, -0.00939481, 0.17684458, 0.027366742); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(S)-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.011029496, 0.05866063, -0.09460646, -0.017664742, -0.022488879, 0.18384217, -0.00397663, -0.064733066, 0.08466802, 0.10667488, 8.0212536e-05, 0.0908869, 0.13580276, 0.00097438256, 0.12176522, -0.08218466) * go_0(-1.0, -1.0); + result += mat4(0.16062798, -0.10190268, 0.03280682, 0.05621916, -0.009684231, -0.08464307, 0.17058301, -0.096469186, 0.1967505, -0.1450099, 0.093607284, -0.28240147, -0.21377413, 0.10079291, -0.1741522, 0.17330575) * go_0(-1.0, 0.0); + result += mat4(-0.060160473, 0.06316997, 0.0046929033, -0.049405966, 0.13851729, 0.06830702, -0.0586872, -0.040827133, 0.007052838, -0.03576886, -0.111261636, 0.039155316, -0.07380389, -0.09369825, 0.04471156, 0.09678487) * go_0(-1.0, 1.0); + result += mat4(-0.36683616, -0.035950605, -0.24414362, -0.009159744, 0.19335322, -0.099253505, 0.075083904, -0.00076695543, 0.65291303, -0.25599423, 0.19827642, 0.065899536, -0.07423247, -0.068967685, 0.0050554527, -0.060272824) * go_0(0.0, -1.0); + result += mat4(-0.020688485, -0.83178276, 0.11104878, 0.26454413, 0.13655476, 0.37675047, -0.22219229, -0.01751935, 0.44552696, 0.92510307, 0.16063261, -0.62011045, 0.19366647, -0.06996067, -0.2504841, 0.00803723) * go_0(0.0, 0.0); + result += mat4(0.0051537007, -0.057168536, -0.16110587, 0.25232598, -0.04447099, 0.11997351, 0.14808103, -0.34443566, -0.26212573, -0.21970181, 0.2724405, 0.21050811, -0.07949061, -0.064808235, -0.21208277, -0.0042361654) * go_0(0.0, 1.0); + result += mat4(-0.0888952, -0.20169449, 0.19144905, -0.016882861, -0.013283103, 0.07552998, -0.24686803, 0.012453213, -0.065454446, -0.016123284, -0.47316182, 0.070926026, 0.09219782, 0.13118166, 0.074736096, 0.0077910526) * go_0(1.0, -1.0); + result += mat4(0.5832154, 0.1138069, -0.039765622, 0.3182784, -0.25497997, 0.0013993139, 0.39285088, -0.48511526, -0.39891505, -0.19094779, -0.082146175, -0.20826934, 0.020590555, -0.0012490178, -0.4398621, 0.14377014) * go_0(1.0, 0.0); + result += mat4(0.21917395, 3.4314657e-05, 0.25734863, -0.3433305, 0.015720673, 0.2676127, -0.06807297, 0.15040149, -0.23638041, -0.0050233034, -0.13666134, 0.4542111, -0.033572577, -0.08450588, -0.23341487, 0.053490847) * go_0(1.0, 1.0); + result += mat4(-0.17482175, 0.057647135, 0.33135444, 0.0850751, -0.1718849, -0.0854123, 0.036795795, -0.13874969, -0.10903869, -0.19007301, -0.06064334, -0.03786032, -0.036696054, 0.07844446, 0.012523185, -0.01562906) * go_1(-1.0, -1.0); + result += mat4(-0.04411997, -0.10331819, 0.10050193, 0.12406485, 0.07431592, 0.30109692, -0.17511666, -0.13263564, -0.10192587, 0.07821255, -0.22415096, 0.25552443, 0.17881326, -0.13914281, 0.109979235, -0.0016463579) * go_1(-1.0, 0.0); + result += mat4(-0.01911644, -0.15412527, 0.028903123, 0.20831817, 0.00375175, 0.08110953, 0.074919395, -0.17581624, -0.015677985, 0.06504228, 0.08817818, -0.12518327, -0.09537373, 0.028905088, -0.051288474, 0.054334078) * go_1(-1.0, 1.0); + result += mat4(0.2852779, -0.28924024, 0.36805123, 0.21079305, -0.28336474, 0.1679663, -0.08641141, -0.10699407, -0.16090055, 0.1287612, -0.15910125, 0.05734755, 0.15883245, 0.0053026294, 0.080674745, 0.0505137) * go_1(0.0, -1.0); + result += mat4(0.17639062, 0.3790122, -0.19588692, -0.020314282, 0.26197383, 0.09014768, 0.19696823, -0.41025418, -0.08308115, -0.33279485, -0.22528782, 0.06172439, -0.1365661, -0.13094363, -0.005086559, 0.089024484) * go_1(0.0, 0.0); + result += mat4(0.05262993, 0.0006296959, 0.1657725, -0.32591924, 0.12126701, 0.061543245, -0.10526848, 0.041583937, 0.094976954, 0.09416157, -0.22019257, -0.058390073, -0.2073888, 0.057273377, 0.19558284, 0.004208022) * go_1(0.0, 1.0); + result += mat4(0.30005738, 0.18478931, -0.23342943, 0.22455733, -0.016488122, 0.099634305, 0.31620836, -0.15731157, 0.09595808, 0.0013774688, 0.48273298, -0.07027936, -0.18764344, -0.26194447, -0.11794225, -0.012173601) * go_1(1.0, -1.0); + result += mat4(0.117986746, -0.13846518, -0.019614812, -0.3011192, 0.5501164, 0.3408611, -0.40090847, 0.15706886, 0.13050972, 0.051776595, 0.20792943, 0.23389706, -0.22965533, -0.053367328, 0.3911586, -0.032988597) * go_1(1.0, 0.0); + result += mat4(0.054753624, -0.008485731, -0.2451672, 0.17528129, 0.13657846, 0.010480436, 0.07651423, -0.43316832, 0.12736236, 0.13804524, 0.12529011, -0.30946237, -0.14423579, 0.08403089, 0.24335162, 0.057288036) * go_1(1.0, 1.0); + result += vec4(0.012077211, 0.013045883, 0.0380778, -0.02908858); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(S)-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.036115196, -0.06971895, -0.07508942, 0.016036168, 0.12120111, 0.24536026, 0.044755507, -0.20663576, 0.029635755, -0.15427187, 0.027148994, -0.20795093, 0.10170582, 0.077919215, 0.66063017, -0.4632968) * go_0(-1.0, -1.0); + result += mat4(-0.0052889925, -0.019060908, -0.08660142, -0.022095207, -0.08097976, -0.015142803, -0.18552722, -0.078493506, -0.16293915, -0.20099808, -0.08370822, 0.3701389, 0.09094984, 0.2487225, 0.24338846, 0.044003833) * go_0(-1.0, 0.0); + result += mat4(-0.061406493, -0.017232792, -0.10917424, 0.11203319, 0.040699825, -0.019294346, 0.084953666, -0.018133596, 0.07209552, 0.016069936, 0.17805555, -0.089537814, 0.15809004, 0.1027023, 0.15044671, -0.15530108) * go_0(-1.0, 1.0); + result += mat4(0.0948676, -0.040305693, -0.005591629, -0.048048403, -0.07547777, 0.056606572, 0.021390207, 0.32600567, -0.20805131, -0.099587254, 0.029613169, 0.0092129605, -0.29429698, -0.09898621, 0.44470885, -0.89487344) * go_0(0.0, -1.0); + result += mat4(-0.122259885, 0.11445877, 0.06666907, 0.1869428, -0.1553992, -0.1658741, 0.2988138, -0.57746625, -0.34609964, 0.11169158, -0.41877756, 0.38075635, 0.21293911, 0.09640372, -0.12754214, -0.08026104) * go_0(0.0, 0.0); + result += mat4(0.15128808, 0.050087795, 0.09219755, -0.18080945, 0.0044571217, -0.046019405, -0.1289922, 0.20305426, 0.19601224, 0.04667917, 0.17465587, 0.027672665, 0.18441725, 0.06845396, 0.11288585, -0.23283863) * go_0(0.0, 1.0); + result += mat4(-0.072962, -0.06639447, 0.049347494, -0.1386401, 0.10396071, 0.08187777, -0.04280746, 0.07390891, 0.06628344, 0.037797406, 0.021885803, -0.013147403, 0.22376558, 0.36243078, 0.12874891, -0.0023783944) * go_0(1.0, -1.0); + result += mat4(0.074945286, 0.16045591, -0.11798349, 0.12910712, 0.054760084, -0.095626175, -0.047832094, 0.03493912, 0.11817307, 0.037452437, -0.14301221, -0.027356789, -0.052390423, 0.11373512, 0.07686775, 0.010008694) * go_0(1.0, 0.0); + result += mat4(-0.023999173, -0.091900624, 0.02388157, 0.03173873, 0.0065633506, -0.033716757, -0.1198324, 0.12057766, 0.026465805, -0.07517131, -0.07760598, 0.060463097, 0.07345541, 0.046037503, 0.21101558, -0.26785463) * go_0(1.0, 1.0); + result += mat4(0.15544604, -0.03902825, 0.04630384, -0.25173616, -0.0691359, 0.07476507, 0.009071253, 0.089964196, -0.26539803, -0.3958477, -0.22155671, 0.20735882, -0.105860494, -0.003996804, -0.044815883, 0.39544627) * go_1(-1.0, -1.0); + result += mat4(0.6169709, 0.23717614, -0.37884676, -0.7484867, 0.020169826, -0.30718836, 1.0965588, -0.20711036, -0.39149985, -0.06843563, -0.06522909, 0.103805855, 0.03265825, -0.15137726, 0.12837899, -0.01294922) * go_1(-1.0, 0.0); + result += mat4(-0.23638196, -0.4560866, -0.11948684, -0.1464144, 0.10690008, 0.007835961, 0.11864342, -0.13101323, -0.16509797, 0.075027354, 0.08122998, 0.13451207, 0.0011890623, 0.052157886, 0.08372405, -0.07085038) * go_1(-1.0, 1.0); + result += mat4(-0.21997726, -0.16488647, -0.0291317, 0.17997476, 0.1493211, 0.027494298, 0.0034613227, -0.3207727, 0.18699001, 0.14728633, -0.042895135, -0.07612043, 0.125076, -0.14714554, -0.03480009, -0.22753975) * go_1(0.0, -1.0); + result += mat4(-0.5342686, -0.7426105, -0.38294584, 0.42549992, 0.46053204, 0.7867879, 0.106234804, -0.041163098, 0.5198579, -0.5219404, 0.14809476, -0.41802374, 0.06810794, -0.15122683, -0.047409, 0.13178343) * go_1(0.0, 0.0); + result += mat4(-0.50428164, 0.18220626, 0.35510704, -0.081787474, 0.03155813, 0.019284263, 0.0032388573, -0.20513348, -0.05385551, 0.17803182, -0.26206362, 0.2870375, 0.008557827, 0.08401449, -0.027598893, -0.010791235) * go_1(0.0, 1.0); + result += mat4(0.16657415, 0.067647465, 0.093076974, -0.14438486, -0.10017002, 0.0022367141, 0.03250936, -0.052794546, -0.009178676, -0.019673595, -0.0016697067, -0.15424626, -0.112123474, -0.11079971, 0.011987111, -0.11747758) * go_1(1.0, -1.0); + result += mat4(-0.023021797, -0.058703423, -0.037978355, -0.062433913, -0.13130441, 0.048656322, 0.056839373, 0.109036915, -0.07823158, 0.14785293, 0.058555078, -0.11679035, -0.14002073, 0.07395252, 0.098268874, -0.06710464) * go_1(1.0, 0.0); + result += mat4(0.14906375, 0.030001195, -0.10338215, 0.0662968, -0.161953, -0.13682815, 0.09563142, 0.009514228, -0.009491218, 0.06737101, -0.1393389, 0.15231515, -0.073147796, 0.00767062, 0.028675212, 0.014213088) * go_1(1.0, 1.0); + result += vec4(0.018736731, -0.0026039074, 0.050130025, -0.055364225); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(S)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!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 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.019100675, -0.014241565, 0.004667036, -0.03865062, 0.106731094, 0.026099661, 0.014594411, -0.011881356, 0.0040967264, -0.004626336, 0.006469508, 0.010875305, -0.033909045, -0.085905954, 0.07861378, 0.019452631) * go_0(-1.0, -1.0); + result += mat4(0.20777655, -0.060354974, 0.0023840065, -0.064121604, -0.17397617, 0.019293457, -0.09707183, 0.080641985, 0.01025124, -0.017382381, 0.008661793, -0.010995665, 0.21943407, -0.115574986, 0.14471593, -0.068836235) * go_0(-1.0, 0.0); + result += mat4(0.057942886, -0.06311754, 0.2253396, -0.04159292, -0.020731755, 0.007877151, 0.041525815, 0.025278691, 0.03041967, -0.025137542, 0.024364179, -0.024543528, 0.029438615, -0.015506873, 0.081686, -0.07812221) * go_0(-1.0, 1.0); + result += mat4(0.054237515, 0.0676094, -0.0047708177, 0.0043467237, -0.10032304, -0.020498628, 0.04240586, 0.07272254, 0.0784221, 0.017945962, -0.022310399, -0.013134622, 0.015638694, -0.10001543, 0.1043031, 0.05898838) * go_0(0.0, -1.0); + result += mat4(-0.021652509, 0.35796642, 0.059497777, 0.23948468, 0.15454951, -0.10017235, -0.19072174, -0.44812536, -0.03974552, 0.04529369, 0.22207436, 0.026222564, -0.09705454, 0.5623026, -0.3354105, -0.017278556) * go_0(0.0, 0.0); + result += mat4(-0.053682446, -0.03411237, -0.09399936, 0.15128824, -0.07463, -0.042020727, 0.0031783928, 0.13481957, -0.07731454, 0.044114403, -0.23085599, 0.060444202, -0.15015422, 0.0018040676, -0.18684982, 0.2812511) * go_0(0.0, 1.0); + result += mat4(0.0029329916, 0.001596018, 0.0007512241, 0.016544111, -0.04876942, -0.05272409, 0.037884697, 0.049948208, 0.015518177, 0.11368592, -0.03815777, -0.013149978, -0.027638039, 0.107719295, -0.04115787, 0.02745414) * go_0(1.0, -1.0); + result += mat4(0.016691081, 0.010204119, 0.04078854, 0.01613337, 0.03325829, 0.0114824055, -0.017286912, -0.07284126, -0.110984206, -0.21041764, 0.0089543555, 0.18986733, 0.01537506, -0.2059135, 0.029074017, 0.013117443) * go_0(1.0, 0.0); + result += mat4(0.013965926, 0.029871881, 0.0034499036, -0.011343668, 0.022120327, -0.0068748263, 0.009324342, -0.039081004, 0.08032371, 0.050809264, 0.035050742, -0.2032847, 0.06305391, -0.021958945, 0.038569167, -0.22465245) * go_0(1.0, 1.0); + result += mat4(0.046307724, -0.012419472, 0.007673863, -0.042344846, 0.011042414, 0.016994251, -0.018166406, -0.016955731, -0.13240299, 0.01768431, -0.027607648, 0.0699927, -0.02840628, 0.004414203, 0.0049618417, 0.011084679) * go_1(-1.0, -1.0); + result += mat4(-0.119954154, -0.007455482, -0.031108133, -0.009946449, 0.0077065965, 0.01660345, 0.032943666, 0.016376585, 0.10273124, 0.1556573, -0.24643841, 0.107307844, -0.068235755, 0.0561896, -0.0104672015, 0.042693343) * go_1(-1.0, 0.0); + result += mat4(-0.01634601, 0.04195375, -0.10401894, 0.047641944, -0.034602515, -0.0034419263, -0.010457858, 0.015194475, -0.03962551, -0.030031368, 0.16036317, 0.019283568, -0.05877721, 0.016504882, -0.15523468, 0.018161612) * go_1(-1.0, 1.0); + result += mat4(-0.08083991, 0.0024665035, -0.049373373, 0.030371357, 0.0113322195, -0.014676956, 0.011646689, -0.01142667, 0.124930486, 0.06625774, -0.045840867, -0.009693036, -0.012649251, -0.07388084, 0.008790075, 0.0013844534) * go_1(0.0, -1.0); + result += mat4(-0.33941835, -0.2763476, -0.118311435, -0.063535266, 0.20936015, 0.13731301, 0.13443594, 0.07464433, 0.059650812, -0.36973104, 0.16444235, -0.37082872, 0.06432777, -0.18283032, -0.044489607, -0.13895285) * go_1(0.0, 0.0); + result += mat4(0.13533665, 0.08268915, -0.03675727, -0.14348659, 0.0186255, -0.05051692, 0.056702953, 0.0061717895, 0.047663026, -0.088188455, 0.23254345, -0.014015464, 0.08400204, -0.0073777726, 0.2202068, -0.12366078) * go_1(0.0, 1.0); + result += mat4(0.04361004, 0.046543695, 0.0064863074, -0.03358146, -0.022602187, 0.018138997, -0.011071864, 0.010244091, -0.019814799, -0.17250171, 0.040823266, -0.040131986, 0.010125854, 0.020660749, 0.0020435036, -0.010819304) * go_1(1.0, -1.0); + result += mat4(-0.004810193, -0.11286074, 0.051985834, 0.04788631, -0.023950428, 0.036145125, -0.038203828, 0.052401308, 0.022986965, 0.26420745, -0.06076917, -0.09252999, 0.03164547, 0.15652153, -0.037934, -0.0035418556) * go_1(1.0, 0.0); + result += mat4(0.03358366, -0.005219482, 0.007060882, -0.06569114, -0.02941682, 0.00966056, -0.0153679885, 0.019905418, -0.107232265, -0.03405676, -0.044340115, 0.26892832, -0.04723829, -0.02589829, 0.004563232, 0.19318114) * go_1(1.0, 1.0); + result += vec4(-0.00346731, -0.0046263863, -0.004627155, -0.0057769152); + return result; +} +//!DESC Anime4K-v3.2-Upscale-CNN-x2-(S)-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/shaders/Anime4K_Upscale_CNN_x2_UL.glsl b/shaders/Anime4K_Upscale_CNN_x2_UL.glsl new file mode 100644 index 0000000..1826b53 --- /dev/null +++ b/shaders/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/shaders/Anime4K_Upscale_CNN_x2_VL.glsl b/shaders/Anime4K_Upscale_CNN_x2_VL.glsl new file mode 100644 index 0000000..c562e6e --- /dev/null +++ b/shaders/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/shaders/Anime4K_Upscale_DTD_x2.glsl b/shaders/Anime4K_Upscale_DTD_x2.glsl new file mode 100644 index 0000000..e30c8d7 --- /dev/null +++ b/shaders/Anime4K_Upscale_DTD_x2.glsl @@ -0,0 +1,613 @@ +// 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-DTD-x2-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Kernel-X +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE MMKERNEL +//!COMPONENTS 1 + +#define L_tex LINELUMA_tex + +#define SIGMA 1.0 + +float gaussian(float x, float s, float m) { + return (1.0 / (s * sqrt(2.0 * 3.14159))) * exp(-0.5 * pow(abs(x - m) / s, 2.0)); +} + +float lumGaussian(vec2 pos, vec2 d) { + float s = SIGMA * HOOKED_size.y / 1080.0; + float kernel_size = s * 2.0 + 1.0; + + float g = (L_tex(pos).x) * gaussian(0.0, s, 0.0); + float gn = gaussian(0.0, s, 0.0); + + g += (L_tex(pos - d).x + L_tex(pos + d).x) * gaussian(1.0, s, 0.0); + gn += gaussian(1.0, s, 0.0) * 2.0; + + for (int i=2; float(i) OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!BIND MMKERNEL +//!SAVE MMKERNEL +//!COMPONENTS 1 + +#define L_tex MMKERNEL_tex + +#define SIGMA 1.0 + +float gaussian(float x, float s, float m) { + return (1.0 / (s * sqrt(2.0 * 3.14159))) * exp(-0.5 * pow(abs(x - m) / s, 2.0)); +} + +float lumGaussian(vec2 pos, vec2 d) { + float s = SIGMA * HOOKED_size.y / 1080.0; + float kernel_size = s * 2.0 + 1.0; + + float g = (L_tex(pos).x) * gaussian(0.0, s, 0.0); + float gn = gaussian(0.0, s, 0.0); + + g += (L_tex(pos - d).x + L_tex(pos + d).x) * gaussian(1.0, s, 0.0); + gn += gaussian(1.0, s, 0.0) * 2.0; + + for (int i=2; float(i) OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND MMKERNEL +//!SAVE MMKERNEL +//!COMPONENTS 1 + +#define L_tex MMKERNEL_tex + +#define SIGMA 0.4 + +float gaussian(float x, float s, float m) { + return (1.0 / (s * sqrt(2.0 * 3.14159))) * exp(-0.5 * pow(abs(x - m) / s, 2.0)); +} + +float lumGaussian(vec2 pos, vec2 d) { + float s = SIGMA * HOOKED_size.y / 1080.0; + float kernel_size = s * 2.0 + 1.0; + + float g = (L_tex(pos).x) * gaussian(0.0, s, 0.0); + float gn = gaussian(0.0, s, 0.0); + + g += (L_tex(pos - d).x + L_tex(pos + d).x) * gaussian(1.0, s, 0.0); + gn += gaussian(1.0, s, 0.0) * 2.0; + + for (int i=2; float(i) OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND MMKERNEL +//!SAVE MMKERNEL +//!COMPONENTS 1 + +#define L_tex MMKERNEL_tex + +#define SIGMA 0.4 + +float gaussian(float x, float s, float m) { + return (1.0 / (s * sqrt(2.0 * 3.14159))) * exp(-0.5 * pow(abs(x - m) / s, 2.0)); +} + +float lumGaussian(vec2 pos, vec2 d) { + float s = SIGMA * HOOKED_size.y / 1080.0; + float kernel_size = s * 2.0 + 1.0; + + float g = (L_tex(pos).x) * gaussian(0.0, s, 0.0); + float gn = gaussian(0.0, s, 0.0); + + g += (L_tex(pos - d).x + L_tex(pos + d).x) * gaussian(1.0, s, 0.0); + gn += gaussian(1.0, s, 0.0) * 2.0; + + for (int i=2; float(i) OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND MMKERNEL + +#define STRENGTH 1.8 //Line darken proportional strength, higher is darker. + +vec4 hook() { + float c = (MMKERNEL_tex(HOOKED_pos).x) * STRENGTH; + //This trick is only possible if the inverse Y->RGB 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) + c; +} + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Kernel-X +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LUMAD +//!COMPONENTS 2 + +#define L_tex LINELUMA_tex + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = L_tex(HOOKED_pos + vec2(-d.x, 0)).x; + float c = L_tex(HOOKED_pos).x; + float r = L_tex(HOOKED_pos + vec2(d.x, 0)).x; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + //Computes the luminance's gradient + return vec4(xgrad, ygrad, 0, 0); +} + + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Kernel-Y +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAD +//!COMPONENTS 1 + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAD_tex(HOOKED_pos + vec2(0, -d.y)).x; + float cx = LUMAD_tex(HOOKED_pos).x; + float bx = LUMAD_tex(HOOKED_pos + vec2(0, d.y)).x; + + + float ty = LUMAD_tex(HOOKED_pos + vec2(0, -d.y)).y; + //float cy = LUMAD_tex(HOOKED_pos).y; + float by = LUMAD_tex(HOOKED_pos + vec2(0, d.y)).y; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx) / 8.0; + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by) / 8.0; + + //Computes the luminance's gradient + float norm = sqrt(xgrad * xgrad + ygrad * ygrad); + return vec4(pow(norm, 0.7)); +} + + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Kernel-X +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMADG +//!COMPONENTS 1 + +#define L_tex LUMAD_tex + +#define SIGMA (HOOKED_size.y / 1080.0) * 2.0 +#define KERNELSIZE (SIGMA * 2.0 + 1.0) + +float gaussian(float x, float s, float m) { + return (1.0 / (s * sqrt(2.0 * 3.14159))) * exp(-0.5 * pow(abs(x - m) / s, 2.0)); +} + +float lumGaussian(vec2 pos, vec2 d) { + float g = (L_tex(pos).x) * gaussian(0.0, SIGMA, 0.0); + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * gaussian(1.0, SIGMA, 0.0); + for (int i=2; float(i) OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMADG +//!SAVE LUMAD +//!COMPONENTS 1 + +#define L_tex LUMADG_tex + +#define SIGMA (HOOKED_size.y / 1080.0) * 2.0 +#define KERNELSIZE (SIGMA * 2.0 + 1.0) + +float gaussian(float x, float s, float m) { + return (1.0 / (s * sqrt(2.0 * 3.14159))) * exp(-0.5 * pow(abs(x - m) / s, 2.0)); +} + +float lumGaussian(vec2 pos, vec2 d) { + float g = (L_tex(pos).x) * gaussian(0.0, SIGMA, 0.0); + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * gaussian(1.0, SIGMA, 0.0); + for (int i=2; float(i) OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAD2 +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LUMAD_tex(HOOKED_pos + vec2(-d.x, 0)).x; + float c = LUMAD_tex(HOOKED_pos).x; + float r = LUMAD_tex(HOOKED_pos + vec2(d.x, 0)).x; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + //Computes the luminance's gradient + return vec4(xgrad, ygrad, 0, 0); +} + + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Kernel-Y +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD2 +//!SAVE LUMAD2 +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAD2_tex(HOOKED_pos + vec2(0, -d.y)).x; + float cx = LUMAD2_tex(HOOKED_pos).x; + float bx = LUMAD2_tex(HOOKED_pos + vec2(0, d.y)).x; + + + float ty = LUMAD2_tex(HOOKED_pos + vec2(0, -d.y)).y; + //float cy = LUMAD2_tex(HOOKED_pos).y; + float by = LUMAD2_tex(HOOKED_pos + vec2(0, d.y)).y; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx) / 8.0; + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by) / 8.0; + + //Computes the luminance's gradient + return vec4(xgrad, ygrad, 0, 0); +} + +//!DESC Anime4K-v3.2-Upscale-DTD-x2 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAD2 +//!SAVE MAINTEMPTHIN +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * + +#define STRENGTH 0.4 //Strength of warping for each iteration +#define ITERATIONS 1 //Number of iterations for the forwards solver, decreasing strength and increasing iterations improves quality at the cost of speed. + +#define L_tex HOOKED_tex + +vec4 hook() { + vec2 d = HOOKED_pt; + + float relstr = HOOKED_size.y / 1080.0 * STRENGTH; + + vec2 pos = HOOKED_pos; + for (int i=0; i OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND MAINTEMP +//!SAVE MMKERNEL +//!COMPONENTS 3 + +#define L_tex MAINTEMP_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a = L_tex(pos - d).x; + float b = L_tex(pos).x; + float c = L_tex(pos + d).x; + + return vec2(min3v(a, b, c), max3v(a, b, c)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(HOOKED_pt.x, 0)), minmax3(HOOKED_pos, vec2(HOOKED_pt.x, 0)), 0); +} + + +//!DESC Anime4K-v3.2-Upscale-DTD-x2-Kernel-Y +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND MMKERNEL +//!SAVE MMKERNEL +//!COMPONENTS 3 + +#define L_tex MMKERNEL_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a0 = L_tex(pos - d).y; + float b0 = L_tex(pos).y; + float c0 = L_tex(pos + d).y; + + float a1 = L_tex(pos - d).z; + float b1 = L_tex(pos).z; + float c1 = L_tex(pos + d).z; + + return vec2(min3v(a0, b0, c0), max3v(a1, b1, c1)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(0, HOOKED_pt.y)), minmax3(HOOKED_pos, vec2(0, HOOKED_pt.y)), 0); +} + +//!DESC Anime4K-v3.2-Upscale-DTD-x2 +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND MAINTEMPTHIN +//!BIND MAINTEMP +//!BIND MMKERNEL +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * + +#define STRENGTH 0.5 //De-blur proportional strength, higher is sharper. However, it is better to tweak BLUR_CURVE instead to avoid ringing. +#define BLUR_CURVE 0.8 //De-blur power curve, lower is sharper. Good values are between 0.3 - 1. Values greater than 1 softens the image; +#define BLUR_THRESHOLD 0.1 //Value where curve kicks in, used to not de-blur already sharp edges. Only de-blur values that fall below this threshold. +#define NOISE_THRESHOLD 0.004 //Value where curve stops, used to not sharpen noise. Only de-blur values that fall above this threshold. + +#define L_tex MAINTEMP_tex + +vec4 hook() { + float c = (L_tex(HOOKED_pos).x - MMKERNEL_tex(HOOKED_pos).x) * STRENGTH; + + float t_range = BLUR_THRESHOLD - NOISE_THRESHOLD; + + float c_t = abs(c); + if (c_t > NOISE_THRESHOLD) { + c_t = (c_t - NOISE_THRESHOLD) / t_range; + c_t = pow(c_t, BLUR_CURVE); + c_t = c_t * t_range + NOISE_THRESHOLD; + c_t = c_t * sign(c); + } else { + c_t = c; + } + + float cc = clamp(c_t + L_tex(HOOKED_pos).x, MMKERNEL_tex(HOOKED_pos).y, MMKERNEL_tex(HOOKED_pos).z) - L_tex(HOOKED_pos).x; + + //This trick is only possible if the inverse Y->RGB 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 MAINTEMPTHIN_tex(HOOKED_pos) + cc; +} + + + diff --git a/shaders/Anime4K_Upscale_Deblur_DoG_x2.glsl b/shaders/Anime4K_Upscale_Deblur_DoG_x2.glsl new file mode 100644 index 0000000..71f8b33 --- /dev/null +++ b/shaders/Anime4K_Upscale_Deblur_DoG_x2.glsl @@ -0,0 +1,158 @@ +// 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-Deblur-DoG-x2-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-Deblur-DoG-x2-Kernel-X +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE GAUSS_X2 +//!COMPONENTS 3 + +#define L_tex LINELUMA_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a = L_tex(pos - d).x; + float b = L_tex(pos).x; + float c = L_tex(pos + d).x; + + return vec2(min3v(a, b, c), max3v(a, b, c)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(HOOKED_pt.x, 0)), minmax3(HOOKED_pos, vec2(HOOKED_pt.x, 0)), 0); +} + + +//!DESC Anime4K-v3.2-Upscale-Deblur-DoG-x2-Kernel-Y +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND GAUSS_X2 +//!SAVE GAUSS_X2 +//!COMPONENTS 3 + +#define L_tex GAUSS_X2_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a0 = L_tex(pos - d).y; + float b0 = L_tex(pos).y; + float c0 = L_tex(pos + d).y; + + float a1 = L_tex(pos - d).z; + float b1 = L_tex(pos).z; + float c1 = L_tex(pos + d).z; + + return vec2(min3v(a0, b0, c0), max3v(a1, b1, c1)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(0, HOOKED_pt.y)), minmax3(HOOKED_pos, vec2(0, HOOKED_pt.y)), 0); +} + +//!DESC Anime4K-v3.2-Upscale-Deblur-DoG-x2-Apply +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!BIND GAUSS_X2 +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * + +#define STRENGTH 0.6 //De-blur proportional strength, higher is sharper. However, it is better to tweak BLUR_CURVE instead to avoid ringing. +#define BLUR_CURVE 0.6 //De-blur power curve, lower is sharper. Good values are between 0.3 - 1. Values greater than 1 softens the image; +#define BLUR_THRESHOLD 0.1 //Value where curve kicks in, used to not de-blur already sharp edges. Only de-blur values that fall below this threshold. +#define NOISE_THRESHOLD 0.001 //Value where curve stops, used to not sharpen noise. Only de-blur values that fall above this threshold. + +#define L_tex LINELUMA_tex + +vec4 hook() { + float c = (L_tex(HOOKED_pos).x - GAUSS_X2_tex(HOOKED_pos).x) * STRENGTH; + + float t_range = BLUR_THRESHOLD - NOISE_THRESHOLD; + + float c_t = abs(c); + if (c_t > NOISE_THRESHOLD && c_t < BLUR_THRESHOLD) { + c_t = (c_t - NOISE_THRESHOLD) / t_range; + c_t = pow(c_t, BLUR_CURVE); + c_t = c_t * t_range + NOISE_THRESHOLD; + c_t = c_t * sign(c); + } else { + c_t = c; + } + + float cc = clamp(c_t + L_tex(HOOKED_pos).x, GAUSS_X2_tex(HOOKED_pos).y, GAUSS_X2_tex(HOOKED_pos).z) - L_tex(HOOKED_pos).x; + + //This trick is only possible if the inverse Y->RGB 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) + cc; +} + + + diff --git a/shaders/Anime4K_Upscale_Deblur_Original_x2.glsl b/shaders/Anime4K_Upscale_Deblur_Original_x2.glsl new file mode 100644 index 0000000..3116174 --- /dev/null +++ b/shaders/Anime4K_Upscale_Deblur_Original_x2.glsl @@ -0,0 +1,277 @@ +// 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-Deblur-Original-x2-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-Deblur-Original-x2-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LUMAD +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LINELUMA_tex(HOOKED_pos + vec2(-d.x, 0.0)).x; + float c = LINELUMA_tex(HOOKED_pos).x; + float r = LINELUMA_tex(HOOKED_pos + vec2(d.x, 0.0)).x; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + //Computes the luminance's gradient + return vec4(xgrad, ygrad, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Upscale-Deblur-Original-x2-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAD +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + + +/* --------------------- SETTINGS --------------------- */ + +//Strength of edge refinement, good values are between 0.2 and 4 +#define REFINE_STRENGTH 1.0 + + +/* --- MODIFY THESE SETTINGS BELOW AT YOUR OWN RISK --- */ + +//Bias of the refinement function, good values are between 0 and 1 +#define REFINE_BIAS 0.0 + +//Polynomial fit obtained by minimizing MSE error on image +#define P5 ( 11.68129591) +#define P4 (-42.46906057) +#define P3 ( 60.28286266) +#define P2 (-41.84451327) +#define P1 ( 14.05517353) +#define P0 (-1.081521930) + +/* ----------------- END OF SETTINGS ----------------- */ + +float power_function(float x) { + float x2 = x * x; + float x3 = x2 * x; + float x4 = x2 * x2; + float x5 = x2 * x3; + + return P5*x5 + P4*x4 + P3*x3 + P2*x2 + P1*x + P0; +} + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAD_tex(HOOKED_pos + vec2(0.0, -d.y)).x; + float cx = LUMAD_tex(HOOKED_pos).x; + float bx = LUMAD_tex(HOOKED_pos + vec2(0.0, d.y)).x; + + + float ty = LUMAD_tex(HOOKED_pos + vec2(0.0, -d.y)).y; + //float cy = LUMAD_tex(HOOKED_pos).y; + float by = LUMAD_tex(HOOKED_pos + vec2(0.0, d.y)).y; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by); + + //Computes the luminance's gradient + float sobel_norm = clamp(sqrt(xgrad * xgrad + ygrad * ygrad), 0.0, 1.0); + + float dval = clamp(power_function(clamp(sobel_norm, 0.0, 1.0)) * REFINE_STRENGTH + REFINE_BIAS, 0.0, 1.0); + + return vec4(sobel_norm, dval, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-Deblur-Original-x2-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + + +vec4 hook() { + vec2 d = HOOKED_pt; + + if (LUMAD_tex(HOOKED_pos).y < 0.1) { + return vec4(0.0); + } + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LUMAD_tex(HOOKED_pos + vec2(-d.x, 0.0)).x; + float c = LUMAD_tex(HOOKED_pos).x; + float r = LUMAD_tex(HOOKED_pos + vec2(d.x, 0.0)).x; + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + + return vec4(xgrad, ygrad, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Upscale-Deblur-Original-x2-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAMM +//!SAVE LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + if (LUMAD_tex(HOOKED_pos).y < 0.1) { + return vec4(0.0); + } + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAMM_tex(HOOKED_pos + vec2(0.0, -d.y)).x; + float cx = LUMAMM_tex(HOOKED_pos).x; + float bx = LUMAMM_tex(HOOKED_pos + vec2(0.0, d.y)).x; + + float ty = LUMAMM_tex(HOOKED_pos + vec2(0.0, -d.y)).y; + //float cy = LUMAMM_tex(HOOKED_pos).y; + float by = LUMAMM_tex(HOOKED_pos + vec2(0.0, d.y)).y; + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by); + + float norm = sqrt(xgrad * xgrad + ygrad * ygrad); + if (norm <= 0.001) { + xgrad = 0.0; + ygrad = 0.0; + norm = 1.0; + } + + return vec4(xgrad/norm, ygrad/norm, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Upscale-Deblur-Original-x2-Apply +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * + + +vec4 hook() { + vec2 d = HOOKED_pt; + + float dval = LUMAD_tex(HOOKED_pos).y; + if (dval < 0.1) { + return HOOKED_tex(HOOKED_pos); + } + + vec4 dc = LUMAMM_tex(HOOKED_pos); + if (abs(dc.x + dc.y) <= 0.0001) { + return HOOKED_tex(HOOKED_pos); + } + + float xpos = -sign(dc.x); + float ypos = -sign(dc.y); + + vec4 xval = HOOKED_tex(HOOKED_pos + vec2(d.x * xpos, 0.0)); + vec4 yval = HOOKED_tex(HOOKED_pos + vec2(0.0, d.y * ypos)); + + float xyratio = abs(dc.x) / (abs(dc.x) + abs(dc.y)); + + vec4 avg = xyratio * xval + (1.0 - xyratio) * yval; + + return avg * dval + HOOKED_tex(HOOKED_pos) * (1.0 - dval); + +} diff --git a/shaders/Anime4K_Upscale_Denoise_CNN_x2_L.glsl b/shaders/Anime4K_Upscale_Denoise_CNN_x2_L.glsl new file mode 100644 index 0000000..2bf4b2a --- /dev/null +++ b/shaders/Anime4K_Upscale_Denoise_CNN_x2_L.glsl @@ -0,0 +1,461 @@ +// 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-Denoise-CNN-x2-(L)-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.050913796, -0.05115213, -0.0205767, -0.26266688, -0.12883802, 0.107968464, 0.03389763, -0.70179373, 0.0030511466, 0.07718592, -0.06562523, -0.060305536, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.009235469, -0.018979615, 0.10033019, -0.20307243, 0.040932532, -0.10095427, 0.038843542, -0.28774044, -0.07829864, -0.04317961, 0.032555006, -0.05584433, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.23774138, 0.04701499, -0.16824278, 0.025335955, 0.30246395, -0.037289508, 0.070405066, 0.03094164, -0.0075012813, 0.06881163, -0.03157643, -0.032394916, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.12524955, 0.18535072, -0.05323482, 0.004486272, 0.15295836, 0.3050709, 0.081431866, 0.09352846, -0.059866652, -0.029570978, 0.019920588, 0.121749535, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.2111615, -0.1268416, 0.45642895, 0.47401953, -0.7580866, 0.5514855, 0.96250856, 0.7827129, 0.0003978912, 0.17167407, -0.04423575, -0.04569368, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.17050457, -0.18697786, -0.11608587, -0.038065948, 0.26542, -0.7021022, -0.33751717, 0.053689335, 0.10030526, -0.19492362, 0.069387496, 0.07228368, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.15900351, -0.017636139, 0.01917807, 0.05584281, 0.28530255, 0.04795445, -0.104170926, 0.1192509, 0.09859251, 0.057123564, 0.025724344, -0.07723904, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.06581913, 0.07548721, -0.054552317, -0.08317343, 0.32851526, -0.2362575, -0.39470714, -0.073999345, 0.07246812, -0.04103072, 0.06058696, 0.09532553, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.12524493, 0.095179625, -0.0918538, 0.016793616, -0.48433152, 0.03702525, -0.100864686, -0.0018861603, -0.14784335, -0.048320837, -0.057494648, -0.024096634, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.012922576, -0.11982956, 0.021963459, 0.019259451); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-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.04816902, 0.030087546, 0.019183155, -0.08234757, 0.09378316, -0.047217257, -0.04757087, -0.16541782, -0.043394983, 0.05779227, 0.018105166, 0.03222583, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.13639967, -0.001877575, 0.049495522, 0.060094353, 0.015303669, 0.059043188, 0.090356335, -0.12654372, 0.06469071, -0.054733396, -0.013548386, -0.093697555, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.13214277, 0.00062924915, -0.640379, -0.052121993, -0.022532608, 0.01077454, -0.057074178, -0.103670195, -0.0017062012, 0.0035225085, -0.044859786, -0.020764757, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.2553945, -0.08126201, 0.055215932, 0.10690791, 0.6771195, 0.09377514, -0.09488318, -0.43969935, 0.35444704, -0.10392259, 0.07595239, 0.021814484, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.37628967, 0.026895085, 0.035044484, -0.16414654, -0.5694931, -0.20123884, 0.14891861, 1.1822934, -0.25648627, 0.14110301, -0.057699542, 0.17731132, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.023089241, 0.14888923, -0.2730167, 0.1330048, -0.039043408, 0.75768983, 0.07385114, 0.0138615575, -0.06565686, 0.10451973, 0.037489507, 0.021156311, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.03965048, 0.040422294, -0.0662493, -0.043219455, 0.00834316, -0.08315282, 0.13010995, -0.11822414, -0.06811034, 0.029744523, -0.098641835, -0.063671604, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.077282995, -0.29400682, 0.116103284, 0.096747644, -0.47398612, -0.77101594, -0.20683232, 0.111703634, -0.08370965, -0.24218678, 0.13780457, -0.017660126, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.08542605, 0.13080615, 0.081582755, -0.00024888176, 0.31160986, 0.17787197, -0.019935975, -0.09658498, 0.096656196, 0.064402744, -0.033331197, 0.027531069, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.0018859988, 0.004285429, 0.5060845, -0.030093472); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-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.34559122, 0.052896723, -0.27492252, -0.1604473, 0.4791457, 0.17956258, 0.0076199574, -0.16324736, -0.075430416, 0.019434236, -0.275363, -0.16502565, 0.05507322, -0.046572465, 0.08130956, 0.009380191) * go_0(-1.0, -1.0); + result += mat4(0.1754505, 0.10862336, -0.14956018, 0.20161937, 0.16598102, -0.0033441933, 0.19303258, 0.3278992, -0.31819978, 0.14614153, 0.08434212, 0.21208692, -0.0014794758, -0.06754758, -0.06314527, 0.023496931) * go_0(-1.0, 0.0); + result += mat4(0.13594365, -0.06382366, -0.40069854, -0.087743916, 0.022426397, -0.073364444, -0.19371308, 0.09916138, -0.044016927, 0.0018689828, -0.07705671, 0.15398589, -0.069929935, -0.01874144, 0.050793763, 0.06565281) * go_0(-1.0, 1.0); + result += mat4(0.56292456, 0.25537506, -0.16147509, 0.029484648, 0.11898947, 0.19103922, -0.2387553, 0.13659279, -0.044804625, -0.10285909, 0.12958583, 0.21526133, 0.02727471, 0.21990417, 0.0009558564, 0.12372512) * go_0(0.0, -1.0); + result += mat4(-0.10264466, -0.13103753, -0.069214605, 0.43234769, 0.25947884, -0.18333039, -0.15585582, -0.2406589, 0.33275372, -0.19497354, -0.09758474, -0.4531396, 0.41932744, -0.043746196, 0.08315102, -0.085604236) * go_0(0.0, 0.0); + result += mat4(0.15380725, -0.06311845, -0.28896615, -0.059237756, -0.078456834, -0.11623796, 0.017248835, 0.098803006, -0.13643564, -0.0029720776, 0.425954, 0.36920592, -0.06980546, 0.05205535, -0.15787347, -0.094921984) * go_0(0.0, 1.0); + result += mat4(0.009595518, -0.12598279, -0.04322495, -0.08838463, 0.11729769, -0.062454883, 0.19743776, -0.08590505, -0.022744715, 0.00457582, -0.06070008, 0.045312855, -0.010845991, -0.02241941, 0.07252932, 0.05525124) * go_0(1.0, -1.0); + result += mat4(-0.119069465, 0.08782395, 0.17878884, 0.0068233046, -0.36698806, -0.46077076, 0.37470114, 0.006550318, 0.08622002, -0.10081386, 0.1754186, 0.078841425, 0.060330488, 0.39436886, 0.1688179, -0.10113108) * go_0(1.0, 0.0); + result += mat4(0.17160045, -0.18541232, -0.093926296, 0.0053854887, -0.07649591, -0.3053692, 0.15255369, 0.06183564, 0.105131835, 0.076607525, -0.17482935, -0.104579754, -0.4795174, 0.30223432, 0.4728322, 0.106419675) * go_0(1.0, 1.0); + result += mat4(-0.068794325, -0.019651407, 0.048906703, 0.10097784, 0.014003637, 0.08358555, -0.34008583, 0.1677446, 0.12863056, 0.010167976, 0.10771957, -0.14823496, -0.11855097, 0.024728613, -0.06394353, 0.07123295) * go_1(-1.0, -1.0); + result += mat4(0.1652107, -0.056815207, 0.26562792, -0.02586732, 0.13812682, 0.3791579, -0.40067768, 0.19901459, -0.055583958, 0.06673556, -0.16258197, 0.0014027074, 0.13844898, 0.17588624, 0.0061608437, 0.014889389) * go_1(-1.0, 0.0); + result += mat4(0.023591522, -0.06255483, -0.04512753, -0.07939918, 0.17603582, -0.06219873, -0.10907254, 0.012348696, -0.053350568, 0.023741387, 0.05215983, 0.117241465, 0.28173143, 0.11200327, -0.11672438, -0.13278063) * go_1(-1.0, 1.0); + result += mat4(-0.15015969, -0.1145909, 0.08583166, 0.0386507, -0.17788467, 0.29311427, 0.03577728, -0.006737705, -0.020426478, 0.065881886, -0.10966947, -0.016716056, -0.0027577002, -0.20769168, 0.4357363, -0.13179652) * go_1(0.0, -1.0); + result += mat4(-0.44572783, 0.08870803, 0.42933974, -0.16602941, 0.23271243, 0.29478154, -0.53973556, -0.042550746, -0.13157314, -0.0413034, 0.12679552, 0.11579286, -0.5161936, -0.24292113, -0.10862491, 0.13528119) * go_1(0.0, 0.0); + result += mat4(-0.043000877, 0.08458555, 0.11260604, -0.5589381, -0.16010836, -0.019429926, 0.04731505, -0.12212733, 0.05655828, 0.0107375225, -0.10067243, -0.06904067, 0.07476142, -0.043922618, -0.13811466, 0.008697587) * go_1(0.0, 1.0); + result += mat4(-0.3281664, -0.104251154, 0.07188181, 0.06720938, 0.028879764, 0.07302547, 0.18261562, -0.08896491, 0.11240943, -0.1919612, -0.13059135, -0.07057044, 0.053953633, 0.17297988, -0.20344415, 0.050276734) * go_1(1.0, -1.0); + result += mat4(-0.41925356, 0.020309223, 0.2246313, -0.3418901, -0.20863962, 0.18653068, -0.04616101, 0.1236236, -0.062179156, 0.1437903, 0.1314142, 0.0699381, 0.029918872, 0.23033592, 0.09302733, -0.20570321) * go_1(1.0, 0.0); + result += mat4(0.07847491, -0.18251555, 0.0678772, -0.29089385, -0.03632992, -0.17132603, -0.04896196, 0.09839614, -0.10377483, -0.11817732, 0.03477946, 0.050376516, 0.17791937, -0.34359503, 0.030756304, 0.025246387) * go_1(1.0, 1.0); + result += mat4(-0.12972409, 0.032459006, -0.20415276, 0.31407776, -0.1743501, -0.26177478, -0.07577315, -0.104599, -0.025548192, -0.23483936, 0.40139225, 0.12898883, 0.06533049, -0.09545806, -0.032093894, 0.0032956926) * go_2(-1.0, -1.0); + result += mat4(0.22749326, -0.20613275, -0.23030083, -0.29994026, -0.18482473, -0.038720988, -0.13339107, -0.1394514, 0.36952803, -0.2709558, -0.14104684, -0.17859542, 0.09873891, 0.04330318, 0.15205383, 0.115995236) * go_2(-1.0, 0.0); + result += mat4(0.07534328, -0.13592403, 0.2224819, -0.06818886, -0.11952144, 0.004714797, 0.18252324, -0.08729513, 0.17198865, -0.00082568696, 0.33769485, -0.0920225, 0.173712, -0.038548574, -0.016980015, -0.13799237) * go_2(-1.0, 1.0); + result += mat4(-0.43659294, -0.19679698, -0.31969583, 0.24002865, -0.1064947, -0.08218358, -0.07990568, -0.028915526, -0.077836946, -0.012841249, -0.11685068, -0.2102985, 0.025435956, -0.21367492, 0.11001358, -0.09812692) * go_2(0.0, -1.0); + result += mat4(0.28203383, 0.09570471, -0.14503846, -0.19898729, 0.18757457, 0.16626704, -0.009997161, 0.06738176, -0.18296066, 0.11583831, -0.0025225005, 0.373547, -0.24103725, 0.3553009, 0.11984093, 0.25370696) * go_2(0.0, 0.0); + result += mat4(-0.022194814, 0.02950222, -0.121312395, 0.0040648654, 0.06509207, 0.00084966415, 0.032229617, 0.0139804585, -0.23108627, -0.004511493, -0.28217104, 0.0828633, 0.17399071, 0.2137328, 0.4731738, -0.37666738) * go_2(0.0, 1.0); + result += mat4(-0.045961298, 0.0056297607, -0.08513672, 0.093939304, 0.07252928, -0.11458939, 0.11005008, -0.1132733, 0.10369599, 0.1636998, -0.11919379, -0.08949099, 0.080640145, 0.029493907, 0.24982096, -0.10234766) * go_2(1.0, -1.0); + result += mat4(0.08474163, -0.24252129, -0.3065911, 0.11077523, 0.13397239, 0.14875948, -0.18212163, 0.006510455, -0.008477232, -0.3242149, 0.31507346, -0.19521071, -0.3610268, 0.25882444, -0.067812346, 0.20968717) * go_2(1.0, 0.0); + result += mat4(0.05730163, 0.053821165, -0.10948745, 0.04090055, 0.0161064, 0.19475192, 0.09248433, -0.027268974, -0.031323943, -0.084304914, 0.28378648, 0.44910806, -0.052243132, 0.2999386, -0.26639074, -0.2529396) * go_2(1.0, 1.0); + result += mat4(0.026707547, -0.006487042, -0.044127557, -0.016287267, 0.1417188, 0.24645403, -0.32444936, 0.20339565, 0.027596464, 0.03799474, -0.029943593, 0.058569513, -0.15013286, 0.25070968, 0.08954207, -0.14304538) * go_3(-1.0, -1.0); + result += mat4(-0.22184753, -0.0732679, 0.042815078, 0.03770516, 0.22240163, -0.043244008, -0.14883384, -0.10682856, 0.16421252, 0.20890577, 0.000585579, -0.061031006, -0.551696, -0.17770186, 0.13795924, 0.101121314) * go_3(-1.0, 0.0); + result += mat4(-0.047539327, 0.11826275, 0.458172, -0.023809819, -0.0154842585, -0.015466883, 0.03837829, -0.34703115, -0.03437818, 0.12705797, -0.042713646, -0.2518409, -0.27947584, -0.020104226, -0.022687877, 0.14169087) * go_3(-1.0, 1.0); + result += mat4(0.06269709, 0.06449363, -0.02793847, 0.04407663, -0.054694284, 0.69776016, -0.32850045, 0.19365972, -0.19002354, -0.038244195, -0.20433429, -0.34071165, 0.123992935, -0.22218247, -0.30181807, -0.03031556) * go_3(0.0, -1.0); + result += mat4(-0.06685185, -0.18313402, -0.03785641, 0.008412995, -0.017108139, 0.48937285, -0.035302214, 0.011338532, -0.08890957, 0.32343447, 0.088812076, -0.027280344, 0.40437454, -0.45940742, 0.118888274, 0.41054434) * go_3(0.0, 0.0); + result += mat4(-0.36049488, 0.100708134, 0.331516, 0.1078647, 0.12895954, 0.13425021, -0.18602797, -0.11423174, -0.10916294, 0.061013293, 0.08984191, 0.1835112, -0.10568929, -0.046648484, 0.2127872, 0.54582083) * go_3(0.0, 1.0); + result += mat4(0.19040897, 0.08670264, 0.12393752, -0.003475547, -0.37210098, 0.035628326, -0.29302806, 0.10709011, -0.20405664, -0.9748058, 0.39254782, 0.44914797, 0.032028764, 0.04227575, -0.25056216, 0.063437305) * go_3(1.0, -1.0); + result += mat4(-0.07952942, -0.13263832, 0.037877183, 0.20845042, -0.026445981, -0.010450352, -0.043147005, -0.12033961, 0.20600243, -0.046332583, -0.47056386, 0.09566825, 0.18658772, -0.3381639, -0.042662457, 0.15197653) * go_3(1.0, 0.0); + result += mat4(-0.4996296, 0.019971728, 0.10017604, 0.052051116, 0.12145858, 0.106811635, -0.056665674, -0.11708303, 0.16642408, 0.22654046, -0.04731226, -0.039967895, -0.1434505, 0.3171998, -0.19033776, -0.29952875) * go_3(1.0, 1.0); + result += vec4(0.03144068, -0.027781913, 0.04483475, 0.037489943); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-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.031192884, -0.015032417, 0.25046152, 0.143142, 0.09429096, 0.2090414, -0.16252424, 0.42788, -0.005667558, 0.14787567, 0.23810932, -0.13502707, 0.0006289761, -0.014052179, -0.091041535, 0.059258565) * go_0(-1.0, -1.0); + result += mat4(-0.09637771, 0.17332087, 0.123664804, 0.046110056, 0.25775972, 0.31647265, -0.1464598, 0.41624358, 0.032242253, -0.017219262, -0.35814875, 0.3348811, 0.05738627, 0.046910666, 0.014263179, -0.15797907) * go_0(-1.0, 0.0); + result += mat4(-0.06782952, 0.049666278, 0.083296575, 0.19301543, -0.05964988, 0.18332662, 0.30906975, 0.03342819, 0.12226727, 0.1226969, -0.15035193, -0.003493911, -0.007647415, -0.051491078, -0.019189527, -0.009602449) * go_0(-1.0, 1.0); + result += mat4(0.08838342, -0.055376932, 0.13949814, -0.12728734, -0.17266448, 0.35102528, 0.018773714, 0.050504927, -0.10556112, -0.014422574, -0.25474203, 0.31192264, -0.09063805, 0.010115312, -0.08702192, 0.08573518) * go_0(0.0, -1.0); + result += mat4(0.16521221, -0.01265248, -0.5292306, -0.17494588, -0.18994644, -0.41904125, -0.26261392, -0.42338082, 0.39478812, 0.20768805, 0.16483486, -0.22635488, 0.13576357, 0.17095351, 0.064293, 0.06416031) * go_0(0.0, 0.0); + result += mat4(-0.09107591, 0.1757355, 0.19841582, -0.25249094, 0.18083812, -0.12258315, 0.4074544, -0.17171176, -0.15881093, -0.22978021, -0.05622591, -0.09703007, -0.12538208, -0.06956953, -0.14475612, -0.066342294) * go_0(0.0, 1.0); + result += mat4(-0.029294115, -0.036292624, 0.19467807, -0.10223533, 0.086430565, -0.052809026, -0.23749635, 0.10364248, -0.22938702, 0.07210543, 0.03876035, -0.21014924, -0.11247329, -0.17755648, -0.05139757, -0.037780646) * go_0(1.0, -1.0); + result += mat4(0.12605286, 0.16123274, -0.13924524, -0.109194726, 0.033486, -0.24847955, 0.1264379, 0.28880134, -0.17594175, -0.1888256, -0.04508948, 0.047563452, -0.5476752, -0.23573762, -0.17183748, 0.14331517) * go_0(1.0, 0.0); + result += mat4(-0.006482806, 0.2289281, -0.03872587, -0.027272481, -0.09913351, -0.09453464, -0.1426349, 0.055076513, -0.025217436, -0.08307176, 0.0797406, 0.10166401, -0.294337, -0.3567936, 0.054015454, 0.068333104) * go_0(1.0, 1.0); + result += mat4(0.012300659, -0.040405195, 0.11190478, -0.07406065, -0.18364848, 0.035823543, -0.01621734, 0.07582391, 0.06704436, -0.0006620425, -0.022342965, 0.16496183, 0.11390146, 0.075079784, 0.13547076, -0.022227254) * go_1(-1.0, -1.0); + result += mat4(0.23038611, -0.29141426, 0.0984085, -0.20544642, -0.18859404, 0.3620387, -0.4136066, 0.32138887, -0.0047645094, 0.11271573, 0.15377328, 0.012071895, -0.029830804, 0.14384824, 0.04148142, 0.2286753) * go_1(-1.0, 0.0); + result += mat4(-0.120368056, -0.0026308578, -0.027536837, -0.13022487, 0.19286355, 0.30597997, -0.121778116, 0.29960433, -0.06231281, -0.013746478, 0.10620681, -0.02362372, -0.10042793, 0.015861828, -0.06073457, 0.11589962) * go_1(-1.0, 1.0); + result += mat4(0.1148781, -0.24268909, 0.24827103, -0.17290637, -0.14397098, -0.16708367, 0.2130187, -0.18639165, -0.13702524, 0.107212365, 0.066469796, -0.14059094, 0.19621798, -0.036907773, -0.028576817, 0.19191594) * go_1(0.0, -1.0); + result += mat4(0.061653305, -0.12716687, 0.17514701, 0.003910376, -0.00651784, 0.25642744, -0.17615528, -0.03584991, -0.051342323, -0.20178711, -0.4330863, 0.15785883, -0.14388351, 0.050646614, 0.15746376, -0.17228809) * go_1(0.0, 0.0); + result += mat4(-0.32631296, -0.020115409, -0.16132942, 0.29139966, -0.18642388, -0.15140165, 0.2106485, -0.025535548, 0.08296747, 0.037819803, 0.106129125, -0.095521644, 0.312119, -0.09383011, -0.023469942, -0.035990953) * go_1(0.0, 1.0); + result += mat4(0.012878467, -0.1599543, 0.14487906, -0.083350256, 0.074949436, -0.09346481, 0.10122695, 0.08852621, 0.11138647, -0.0072039254, -0.00842464, 0.030785646, -0.04394235, 0.10987614, 0.15378197, -0.05989409) * go_1(1.0, -1.0); + result += mat4(0.41359067, -0.04985946, 0.06845964, 0.12003392, 0.0803128, 0.2420856, -0.18877462, 0.058456603, -0.02516271, 0.010639022, -0.04928307, -0.023084244, 0.06001203, 0.06881964, -0.12117699, -0.2680374) * go_1(1.0, 0.0); + result += mat4(0.09667388, 0.16247103, 0.105098106, 0.12871382, 0.063410334, 0.029997706, 0.048323907, -0.075631075, 0.034694012, -0.029085271, -0.003785678, -0.05397498, -0.1783155, -0.13680255, 0.024786513, -0.0041952017) * go_1(1.0, 1.0); + result += mat4(-0.23904142, -0.102619216, -0.21049559, -0.07428196, -0.046321787, -0.09432119, 0.08803711, -0.1660408, 0.31880215, 0.11605265, -0.086603194, 0.119239025, 0.06773056, 0.18591799, 0.0058458247, 0.05242187) * go_2(-1.0, -1.0); + result += mat4(0.12521484, -0.23739336, -0.16784379, -0.10277679, -0.18505791, 0.061825443, 0.12762548, -0.16664176, 0.20004764, -0.1400315, 0.35610282, -0.19706382, 0.046386316, -0.155162, -0.0425219, 0.0010560523) * go_2(-1.0, 0.0); + result += mat4(0.14500342, -0.0046809237, -0.1278097, 0.041527335, 0.11831141, -0.059155047, -0.17391829, 0.0059517594, -0.18033625, -0.379706, 0.11636179, -0.13310274, 0.047523372, 0.0029333998, -0.1512301, 0.1361489) * go_2(-1.0, 1.0); + result += mat4(-0.23058943, -0.08937329, 0.07061336, 0.08555644, 0.09255573, -0.15303029, 0.08891002, -0.42177418, 0.0950346, 0.20212616, 0.3866544, 0.07922501, -0.04093803, -0.10997976, -0.07189613, -0.21220057) * go_2(0.0, -1.0); + result += mat4(-0.04484278, 0.2386453, 0.27855012, 0.011022442, 0.0409283, 0.1937425, 0.060258046, 0.2633126, -0.54181176, 0.19643608, -0.28907844, 0.04247623, -0.37548354, -0.24831985, -0.52362055, -0.4442409) * go_2(0.0, 0.0); + result += mat4(0.014318134, 0.047169194, -0.07291308, 0.21408482, -0.01503884, 0.027093383, -0.11724912, -0.052458502, 0.1676504, 0.5505249, 0.22394833, -0.17126445, 0.13671164, -0.18371153, -0.456313, 0.14297491) * go_2(0.0, 1.0); + result += mat4(0.00063476624, 0.16339731, -0.031160444, 0.18237135, 0.025692228, -0.04895109, 0.033651803, -0.002480504, 0.34582126, -0.039352335, -0.004698449, 0.12789944, -0.08318657, -0.007492543, -0.12888806, 0.03684109) * go_2(1.0, -1.0); + result += mat4(-0.06481498, 0.14330916, 0.17366715, -0.028045174, 0.080571376, 0.18343642, -0.11593154, -0.077227145, 0.1973531, 0.3085006, -0.28876102, 0.06434657, 0.16654246, -0.28144804, 0.3234261, -0.026636604) * go_2(1.0, 0.0); + result += mat4(-0.084783904, 0.03651458, 0.020044886, -0.10723048, 0.04165204, 0.04072967, 0.037039082, -0.09042298, 0.19693066, -0.21291414, -0.040890995, -0.15434273, -0.07450638, 0.27289733, 0.06332989, -0.037289053) * go_2(1.0, 1.0); + result += mat4(-0.004840926, 0.048929166, 0.015578959, 0.03571025, -0.2184971, 0.094020076, -0.17748803, 0.32877877, -0.035392962, -0.28398407, -0.13072185, -0.21858144, -0.24103665, -0.32654533, -0.063572675, -0.008728733) * go_3(-1.0, -1.0); + result += mat4(0.0060240547, 0.029166108, -0.023887299, 0.037508924, 0.04231956, 0.1503379, 0.17414866, -0.25778973, -0.14774446, -0.12541369, -0.32502824, 0.28957245, -0.030400498, 0.05351274, 0.13189505, -0.21329227) * go_3(-1.0, 0.0); + result += mat4(0.2198507, -0.49962172, -0.16456802, 0.08402717, -0.094403476, -0.1978019, -0.19233316, 0.055013265, 0.01668743, -0.117106654, -0.0745593, -0.09377295, 0.050370943, 0.07410238, 0.13543247, -0.23753798) * go_3(-1.0, 1.0); + result += mat4(0.008572295, 0.11890422, -0.047157902, -0.03717175, -0.35570037, 0.060663674, 0.109250925, -0.16135052, 0.030490266, 0.30335435, 0.38949126, 0.44852075, -0.09788441, 0.43574813, -0.30050707, 0.24572986) * go_3(0.0, -1.0); + result += mat4(0.29497403, -0.30934516, 0.05756695, -0.15919119, -0.121505864, -0.028917443, -0.07419939, 0.13863774, -0.04398897, 0.32990414, 0.38306457, -0.030523712, 0.72267497, 0.33932966, 0.07839862, 0.11931982) * go_3(0.0, 0.0); + result += mat4(0.26952964, -0.31019664, 0.07061176, -0.23266664, 0.14124376, 0.3597343, -0.17694736, 0.22935267, -0.12335108, -0.086614646, -0.10635, 0.22585274, -0.27139255, 0.05963002, 0.2852169, -0.3743854) * go_3(0.0, 1.0); + result += mat4(0.0970178, -0.014084432, -0.0504985, 0.1570353, 0.091999866, 0.23429315, 0.12914294, 0.03267318, 0.5849793, 0.38205758, -0.31792474, -0.07992281, 0.022620765, 0.22215942, -0.23093775, 0.0026896205) * go_3(1.0, -1.0); + result += mat4(-0.06753083, -0.20358866, 0.173053, 0.13768815, 0.013206715, 0.06310567, 0.17349118, -0.12714109, 0.0405548, -0.18409975, 0.3441249, -0.24606577, -0.18814458, -0.039655812, -0.15961805, 0.08212082) * go_3(1.0, 0.0); + result += mat4(0.06746224, -0.1595078, 0.15284725, -0.057313897, -0.1229526, 0.11482664, -0.0021675595, -0.00026835455, -0.0653958, -0.0967453, -0.09400396, -0.021233113, 0.23587836, 0.2982212, -0.039116163, 0.012201323) * go_3(1.0, 1.0); + result += vec4(0.049680557, 0.01432493, 0.04349397, 0.040003702); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-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.07314084, 0.08021976, -0.08299374, -0.21340942, -0.0088407695, 0.04742526, -0.038566757, -0.058931205, 0.0009213959, 0.19193986, -0.05906689, -0.0038934543, -0.12937409, 0.100754194, 0.1683601, 0.07552924) * go_0(-1.0, -1.0); + result += mat4(-0.022257961, 0.08347593, -0.02279838, 0.10150892, -0.02083181, 0.07064587, 0.26308942, -0.13609628, 0.023648601, 0.1475858, 0.12856342, 0.2650287, -0.038316045, -0.35173503, 0.09157486, 0.16609442) * go_0(-1.0, 0.0); + result += mat4(-0.13746555, 0.15315081, -0.032931942, 0.07487079, 0.09694968, 0.014459765, 0.06814075, -0.059461202, 0.25045857, -0.0071333316, 0.067206055, -0.21697883, 0.023228496, -0.13146883, 0.07486156, -0.030696157) * go_0(-1.0, 1.0); + result += mat4(-0.0069204876, -0.18402638, 0.085326575, 0.18288516, 0.036785558, -0.019116882, 0.017438713, 0.029095992, 0.10944869, -0.09473364, 0.10444152, -0.028845368, 0.0909169, -0.10593229, 0.14518781, 0.05546837) * go_0(0.0, -1.0); + result += mat4(0.53389466, -0.018921841, -0.05050542, 0.21149407, 0.3041209, -0.2594824, -0.18464427, 0.20736529, 0.18971719, -0.05058395, -0.13514072, -0.009045264, 0.20910244, 0.29242986, 0.28958234, 0.2870443) * go_0(0.0, 0.0); + result += mat4(0.03259606, 0.2126493, 0.6004735, 0.14007168, -0.1424266, 0.04352873, 0.17071731, 0.10630275, -0.2755667, 0.27345222, -0.06420644, 0.032743722, 0.026045147, -0.23541754, 0.01393772, -0.1476582) * go_0(0.0, 1.0); + result += mat4(0.06258474, -0.040185593, -0.092409454, -0.095720276, 0.050550956, -0.026547447, 0.099580996, 0.04878719, 0.15659782, -0.007606541, -0.061156776, 0.11329769, -0.019249229, 0.028775204, -0.24508974, -0.052828208) * go_0(1.0, -1.0); + result += mat4(-0.16975857, -0.008542089, 0.30186546, 0.33199415, 0.03747256, 0.15057808, 0.017838268, -0.030345246, 0.019341556, 0.3217693, 0.24844399, 0.06951953, -0.10805396, -0.08874898, -0.068681985, -0.2677526) * go_0(1.0, 0.0); + result += mat4(-0.06813968, 0.087481484, -0.11338694, -0.08698839, -0.07585716, 0.079565816, -0.066336565, 0.050449606, 0.11338618, 0.38572344, 0.0024759274, 0.12706435, 0.16759671, 0.0254419, -0.06910047, -0.21917519) * go_0(1.0, 1.0); + result += mat4(0.0039553675, -0.17838223, 0.038052835, 0.027201787, 0.06518285, 0.08250212, -0.052679926, -0.021249574, -0.13604519, 0.12234797, -0.16008313, -0.07422232, -0.0930264, -0.07480355, -0.0067053377, 0.13964424) * go_1(-1.0, -1.0); + result += mat4(-0.05491681, 0.16191071, -0.13063031, -0.2889149, -0.045188528, 0.29249623, -0.061093148, -0.083284624, -0.19250835, -0.103631295, -0.23577131, 0.108691126, 0.028907659, -0.2708106, 0.06986715, 0.22996326) * go_1(-1.0, 0.0); + result += mat4(-0.07838976, -0.063634194, 0.06297176, -0.09969828, 0.10518915, 0.062185638, 0.033053298, 0.023406805, -0.2801067, -0.13414349, -0.02466297, -0.1110011, 0.040580552, 0.033576507, 0.07127022, -0.068416506) * go_1(-1.0, 1.0); + result += mat4(-0.05786512, 0.17169164, -0.09276801, -0.1444394, 0.13971466, -0.168134, 0.012722911, 0.06788442, 0.02493809, 0.04105174, 0.09471395, 0.21363391, -0.12093948, 0.067423604, -0.054669242, 0.06764739) * go_1(0.0, -1.0); + result += mat4(0.2954526, 0.15885043, -0.05164922, 0.3646313, 0.013329013, 0.044056762, 0.01717495, -0.030439444, 0.32433322, -0.29044852, 0.32627285, 0.150364, 0.14502852, -0.22193567, -0.18879528, 0.018430077) * go_1(0.0, 0.0); + result += mat4(-0.2973998, -0.41863972, 0.0048396075, 0.06709588, -0.12029818, -0.05315725, -0.11457002, 0.0071458486, 0.26290894, 0.11030596, 0.082195595, -0.27480638, -0.011602335, 0.019122265, -0.18927693, -0.24246486) * go_1(0.0, 1.0); + result += mat4(0.09974451, 0.07223917, -0.09586719, -0.08288307, -0.06436462, -0.027324842, -0.0019976476, 0.19203754, 0.015929956, -0.12534836, -0.0038582094, 0.11275662, -0.031039666, 0.010430081, -0.023713758, -0.21801127) * go_1(1.0, -1.0); + result += mat4(0.054167796, 0.0634282, -0.047591783, -0.06402415, -0.0709014, 0.082054086, 0.28418478, 0.06584792, -0.18744822, -0.006312915, -0.0075474046, 0.0829434, -0.032414634, 0.19225785, -0.082302466, -0.3142319) * go_1(1.0, 0.0); + result += mat4(-0.0026932533, -0.110426664, 0.021643564, -0.14368293, -0.0048789545, 0.11043582, -0.040021945, 0.058764413, -0.009000321, 0.10833911, 0.05681704, -0.039960742, 0.0014395626, 0.022780152, -0.09172437, -0.085687816) * go_1(1.0, 1.0); + result += mat4(0.12509525, -0.18352552, -0.07638094, -0.00756009, 0.05407378, -0.14584734, -0.08163636, -0.13222884, 0.039648265, -0.15960212, 0.074228585, 0.009451507, 0.17933762, -0.17743796, 0.007834195, 0.0037116117) * go_2(-1.0, -1.0); + result += mat4(-0.10942205, 0.1585392, 0.040241007, 0.10526164, 0.16979292, 0.29029292, -0.009487742, 0.24926443, -0.1047842, 0.03604099, 0.19281772, 0.03798268, 0.17581491, 0.25031644, 0.055782937, -0.30455682) * go_2(-1.0, 0.0); + result += mat4(0.06714908, -0.09112766, -0.022286715, 0.09795178, -0.014092309, 0.26703134, 0.15334776, 0.33441234, 0.13753732, -0.13819148, 0.22796239, 0.16050872, 0.05523446, 0.082806356, -0.053028688, -0.0400533) * go_2(-1.0, 1.0); + result += mat4(-0.028462043, 0.18224953, 0.026658487, -0.15048791, 0.106156826, -0.07361365, 0.3529029, 0.06473894, -0.032005392, 0.037034214, 0.039220046, -0.012491292, -0.09503139, 0.0444902, -0.31978187, -0.2923563) * go_2(0.0, -1.0); + result += mat4(-0.3674723, 0.22560489, 0.38837367, 0.17128418, -0.0948159, 0.6298207, 0.59135467, 0.3350841, -0.1859739, 0.31080073, 0.03317792, 0.20958795, -0.097624235, -0.07605166, 0.10135128, -0.08953993) * go_2(0.0, 0.0); + result += mat4(0.320043, 0.002823138, -0.08849585, -0.06356955, 0.19898786, 0.272037, 0.1241285, 0.18131523, -0.05760319, -0.19315276, -0.033923294, 0.09981398, -0.07670874, -0.25949827, 0.062826484, 0.011877337) * go_2(0.0, 1.0); + result += mat4(-0.019341033, -0.03938962, 0.10163529, 0.05033707, -0.03194324, -0.13427012, 0.16106506, -0.05596736, -0.04438277, 0.0045224032, 0.20575951, -0.10359912, 0.03423479, -0.17256664, 0.32534334, -0.09378658) * go_2(1.0, -1.0); + result += mat4(0.19792143, 0.038506437, -0.21047395, -0.27926794, 0.23113485, -0.053830303, 0.4963027, 0.34639266, 0.108149074, -0.10592886, 0.09575202, 0.12385147, 0.08751849, -0.050622147, 0.033647005, 0.2588364) * go_2(1.0, 0.0); + result += mat4(0.04931599, -0.14498134, 0.0073008477, -0.05298649, 0.29398152, 0.16829367, 0.089691155, -0.01749789, 0.20039341, -0.13137043, 0.1884996, -0.03018221, -0.06793498, -0.03220071, 0.06326444, 0.017898731) * go_2(1.0, 1.0); + result += mat4(0.011310341, 0.15556115, -0.08003895, -0.07396207, -0.06434896, -0.14684777, -0.019239893, 0.009520887, 0.013242985, -0.12733786, -0.040152796, 0.0064262203, 0.087119006, 0.08165867, 0.12353576, 0.002600503) * go_3(-1.0, -1.0); + result += mat4(0.14877501, -0.056240283, -0.11846124, 0.16736585, -0.0018247389, 0.0095979795, -0.07605829, 0.13583913, -0.008851887, 0.16578445, -0.04152669, -0.059164364, -0.021962654, 0.312347, 0.0129089225, -0.097307086) * go_3(-1.0, 0.0); + result += mat4(-0.122485265, 0.06891502, -0.1807204, 0.10579281, -0.0061903363, -0.025644284, 0.08879091, -0.09492319, -0.019361734, -0.10903786, -0.08949264, 0.055067465, -0.027095577, -0.06629012, -0.05580654, 0.045552503) * go_3(-1.0, 1.0); + result += mat4(-0.025895944, 0.18728323, 0.09764548, 0.49504116, -0.030123139, -0.012580951, 0.090377375, -0.18767111, -0.06874367, 0.11378584, 0.0127285635, -0.101479106, 0.07010412, -0.02272616, -0.03455195, 0.040611476) * go_3(0.0, -1.0); + result += mat4(-0.58637494, -0.13186562, -0.26627728, -0.40135092, 0.19139144, 0.27310577, 0.07761293, 0.10058002, -0.3126869, -0.07982417, 0.04237517, 0.25126198, -0.17133251, 0.122523, -0.0053142905, -0.22283912) * go_3(0.0, 0.0); + result += mat4(-0.0023953887, 0.30968156, -0.1303385, 0.046937056, 0.20530851, 0.07276076, -0.086923674, -0.17881633, 0.08715105, 0.25641996, -0.22557895, -0.0017721896, -0.2347971, -0.07164777, -0.103000194, 0.22468017) * go_3(0.0, 1.0); + result += mat4(-0.12947787, -0.05199853, -0.0899567, 0.087013826, 0.018399805, 0.14997742, -0.20396905, -0.20554177, -0.014265392, 0.048660364, 0.07077151, -0.05911514, 0.003051989, 0.07242704, -0.16232954, 0.19634365) * go_3(1.0, -1.0); + result += mat4(0.13121666, 0.03174777, 0.07853035, -0.04881682, 0.10043158, -0.036237933, -0.2178651, -0.06562213, 0.021113047, 0.0068006255, -0.16305129, -1.9600706e-05, -0.14886445, -0.17729987, -0.17907865, 0.21547341) * go_3(1.0, 0.0); + result += mat4(-0.03263096, -0.064234234, 0.03990361, 0.09057224, -0.05704657, -0.107518636, 0.09328312, 0.014857798, -0.060736485, -0.033695858, -0.07943859, -0.0054049506, -0.072932534, -0.023306495, -0.06615389, 0.029145932) * go_3(1.0, 1.0); + result += vec4(0.0052180276, 0.022526434, 0.022657124, 0.016289035); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-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.012031344, 0.0075636036, -0.033211436, 0.018453801, -0.23412584, -0.113123864, 0.068607934, -0.018517016, -0.19748597, -0.2571716, -0.026148321, -0.00019766031, 0.012040108, 0.12122093, 0.0714374, -0.10087335) * go_0(-1.0, -1.0); + result += mat4(-0.029292978, -0.025254043, -0.034099232, 0.085234866, 0.24252516, 0.076297395, -0.12717746, -0.03457669, 0.033755753, -0.0531509, -0.04005856, -0.20840853, -0.0078028045, 0.12575904, -0.010887013, -0.046326064) * go_0(-1.0, 0.0); + result += mat4(-0.003266499, -0.017687857, -0.012221699, -0.2251586, 0.00208294, 0.007880196, 0.09037794, 0.08328994, -0.0428717, 0.027112724, 0.08032711, 0.1513152, -0.043068174, 0.07987632, -0.008801098, 0.08133886) * go_0(-1.0, 1.0); + result += mat4(-0.1827595, 0.18459928, -0.1918044, -0.05324067, -0.1705114, -0.01887987, -0.14486305, -0.17456877, -0.18964832, -0.07162095, -0.13871318, -0.046433818, -0.018604748, -0.11131921, -0.08050445, -0.08619502) * go_0(0.0, -1.0); + result += mat4(-0.0717377, -0.12163745, 0.18497953, -0.08643892, 0.0007879318, -0.050351888, 0.17640385, 0.17240365, -0.14958718, -0.056793597, 0.03742872, -0.1015922, 0.3117469, -0.39953762, 0.0152286505, -0.13784732) * go_0(0.0, 0.0); + result += mat4(0.07879097, -0.39204946, -0.07003556, -0.24708183, -0.058046583, -0.09865189, -0.048411854, -0.05027539, -0.12736927, -0.23946127, -0.08323304, 0.028160958, -0.059784077, -0.0064917994, 0.038013496, 0.08928725) * go_0(0.0, 1.0); + result += mat4(0.07403741, -0.004601062, 0.13563065, 0.054981887, -0.08022936, 0.022921488, -0.053264186, -0.016605966, -0.20883927, -0.19978985, -0.058101434, 0.15126002, 0.020758694, 0.12837122, 0.13368484, 0.1443778) * go_0(1.0, -1.0); + result += mat4(-0.08701922, -0.041025855, -0.03362371, -0.19846733, -0.009003309, 0.06708822, 0.06784735, 0.049892817, 0.123487085, -0.008921262, -0.0883188, -0.09103165, 0.070733, 0.1474191, -0.08228257, 0.12713781) * go_0(1.0, 0.0); + result += mat4(0.16015989, 0.19007389, -0.12680867, 0.056614764, -0.008470681, 0.099433914, 0.008811413, -0.09471121, -0.09722353, 0.0649324, 0.021527816, -0.21614286, 0.07569941, -0.16433574, -0.0069269636, 0.16142729) * go_0(1.0, 1.0); + result += mat4(-0.08708631, -0.017263759, 0.034016605, -0.009168008, -0.16427393, -0.11225274, -0.005249783, 0.13672975, -0.0844234, -0.022700429, 0.109927036, -0.041033685, -0.064794436, 0.015655773, -0.03411672, -0.12218549) * go_1(-1.0, -1.0); + result += mat4(-0.016761513, -0.027447775, -0.01290059, 0.0007822344, 0.07433617, -0.035145793, -0.03797909, -0.16871531, -0.029095095, -0.2073536, 0.12309633, -0.16626619, -0.04203133, -0.018517911, -0.06946039, -0.11132114) * go_1(-1.0, 0.0); + result += mat4(0.11052091, -0.030863507, -0.03229482, 0.11673996, -0.0455341, -0.00649463, 0.020642368, 0.04092308, 0.20173405, -0.012926573, -0.0244531, 0.055338163, -0.01835753, 0.024072325, -0.06893433, 0.048774183) * go_1(-1.0, 1.0); + result += mat4(0.3568486, -0.14506009, -0.13730963, -0.027905643, -0.37042627, -0.016187102, 0.12948507, 0.016912838, -0.089135066, -0.15287507, -0.092210636, 0.043153215, 0.2077129, 0.04429632, -0.107345045, -0.015176141) * go_1(0.0, -1.0); + result += mat4(-0.33605802, -0.22235338, 0.1270437, -0.23185425, 0.29133183, -0.005394921, -0.07139614, -0.049961478, 0.017125877, 0.499106, -0.0048643304, -0.14794266, -0.06752325, 0.29848218, 0.11979753, 0.033426132) * go_1(0.0, 0.0); + result += mat4(0.11241839, -0.09014392, -0.011629057, 0.17028853, -0.100855775, 0.100789815, -0.05269513, 0.06573697, 0.27869916, -0.057539526, -0.04528007, 0.30135208, -0.02261679, 0.0688468, 0.059139624, 0.13873443) * go_1(0.0, 1.0); + result += mat4(0.04780322, -0.008265764, -0.014270074, 0.0834061, 0.055182222, -0.059819162, 0.010733226, -0.040952608, -0.14509161, 0.17645077, 0.05801798, -0.042507146, 0.24863482, 0.1040497, -0.045867782, 0.120007925) * go_1(1.0, -1.0); + result += mat4(0.12579694, 0.09167574, 0.21078496, 0.052945495, -0.05036728, -0.11384816, -0.07594621, -0.09991826, 0.010668207, -0.05676672, -0.06273805, -0.06883917, -0.2184931, -0.1647689, -0.056467786, 0.109850615) * go_1(1.0, 0.0); + result += mat4(-0.11352159, 0.026516005, 0.042277884, 0.14155892, -0.017015357, -0.03407179, 0.014961351, -0.13766216, 0.20035928, -0.038310144, 0.002857473, -0.04447413, 0.011375937, -0.07345281, 0.01680756, 0.0089689195) * go_1(1.0, 1.0); + result += mat4(0.18048844, 0.025165293, -0.013590799, 0.21590467, 0.026852742, -0.06107904, -0.0012434963, 0.047840245, -0.07294931, -0.011157553, 0.11376999, -0.0086454, -0.028179385, -0.11118097, -0.15483098, 0.19983171) * go_2(-1.0, -1.0); + result += mat4(-0.15175144, 0.2142459, 0.1478812, -0.14039889, -0.19821295, -0.37290373, 0.19691283, 0.115997985, 0.1284214, 0.19273835, -0.096292645, -0.022643294, 0.15401742, -0.2267051, -0.15150996, 0.099672556) * go_2(-1.0, 0.0); + result += mat4(-0.068340585, -0.017279925, 0.04846922, -0.034003776, 0.055793036, -0.25135002, -0.03544407, -0.56164503, -0.19032021, -0.009258663, 0.070812754, -0.08191077, 0.047685042, -0.020684654, -0.07035788, 0.0132855335) * go_2(-1.0, 1.0); + result += mat4(0.19441503, -0.15030424, 0.12302495, 0.047762766, -0.095896654, -0.15033515, 0.007605368, 0.0570889, -0.038431447, -0.08560695, -0.0029293734, -0.01375586, 0.047505997, 0.014071177, 0.1479392, 0.25642776) * go_2(0.0, -1.0); + result += mat4(-0.28587586, -0.39141047, -0.3444917, -0.2408476, -0.64026415, -0.35294148, -0.1317, -0.21601357, 0.12164572, -0.48452628, 0.16729403, -0.21575572, 0.41301385, 0.017696327, 0.057344552, -0.27020162) * go_2(0.0, 0.0); + result += mat4(-0.033119988, 0.0012006643, 0.08465847, 0.015564506, -0.124659166, -0.09455984, 0.0035544615, -0.35156307, -0.15252608, 0.016244112, 0.0138391815, -0.04670501, 0.1383293, -0.037926193, 0.025957817, 0.1730784) * go_2(0.0, 1.0); + result += mat4(-0.012701927, -0.025511298, -0.06721094, -0.07040279, 0.06377799, 0.13967788, -0.14234799, -0.058825023, 0.041205924, -0.00032473358, -0.055379577, -0.033738375, 0.13665317, -0.02562686, -0.18523781, -0.06958092) * go_2(1.0, -1.0); + result += mat4(0.17461562, 0.07647785, -0.02202248, 0.21096313, -0.22494456, 0.10868611, -0.33091828, -0.27529812, -0.25206757, 0.1884099, -0.17850949, -0.1006927, 0.045536183, -0.100012675, 0.061030168, -0.025509179) * go_2(1.0, 0.0); + result += mat4(0.0337314, -0.052486207, -0.05584458, 0.0969859, 0.18508333, -0.04521821, -0.08331424, 0.076726556, 0.118076116, 0.019730117, 0.022492286, 0.09869008, -0.115276754, 0.097966135, 0.023186501, -0.060849246) * go_2(1.0, 1.0); + result += mat4(-0.09427026, 0.14057149, -0.07478311, 0.029171692, 0.14987083, -0.08649628, -0.01750609, 0.06958318, 0.085471064, -0.058146793, -0.029388946, 0.10720532, -0.030614216, 0.17328379, -0.03433174, -0.022483094) * go_3(-1.0, -1.0); + result += mat4(-0.085193954, -0.1348099, 0.07675298, -0.25627816, -0.07467235, -0.18559869, 0.100543626, -0.2201029, -0.015106581, -0.013150452, 0.10482805, -0.04446529, -0.15954255, 0.13659625, -0.10310867, -0.010787774) * go_3(-1.0, 0.0); + result += mat4(-0.13365999, 0.02036792, -0.09569852, -0.088586286, 0.18445042, -0.14354594, -0.09319419, 0.084703825, -0.018052364, 0.04344066, -0.0589665, -0.0065992875, 0.030960705, 0.08472253, -0.022175593, -0.020301547) * go_3(-1.0, 1.0); + result += mat4(-0.12315616, 0.05191162, 0.3044562, -0.066225395, 0.13523789, 0.24786936, -0.2531183, 0.008910162, 0.3662465, 0.2633546, -0.11816884, -0.108501054, -0.30446148, 0.094746254, 0.22515038, -0.048324294) * go_3(0.0, -1.0); + result += mat4(0.34875512, 0.22885701, -0.22425419, 0.30605644, 0.13452671, 0.16655035, -0.10293953, 0.23753232, -0.5908745, -0.15148452, -0.3885865, 0.14085245, -0.12627047, -0.09645269, 0.101941, -0.062304396) * go_3(0.0, 0.0); + result += mat4(-0.18468879, 0.11713357, 0.04766135, -0.25752118, 0.076471716, 0.06850848, -0.06427401, 0.028061042, 0.017875634, 0.09589284, -0.020327348, -0.1585817, 0.19669123, 0.10955879, -0.18545902, -0.074755065) * go_3(0.0, 1.0); + result += mat4(0.1056897, 0.08521911, -0.017700022, -0.004319419, 0.15351436, -0.11358399, 0.065656774, 0.101860404, 0.08894655, -0.060075074, 0.14363492, -0.10447328, -0.27426496, -0.19959188, 0.16687778, -0.09456175) * go_3(1.0, -1.0); + result += mat4(-0.05424188, -0.16305181, 0.028440254, -0.013702167, -0.010122417, -0.13160124, 0.08733208, 0.111403994, -0.13586052, 0.016545279, 0.12953275, -0.01298413, 0.19755821, 0.029597677, 0.004327247, 0.093656704) * go_3(1.0, 0.0); + result += mat4(-0.016224308, -0.020333769, 0.015944391, -0.044774864, 0.09308092, -0.06174809, 0.009493231, 0.00109714, 0.030341865, 0.0085925255, 0.023199126, 0.029012285, 0.050746094, 0.15161276, 0.053011492, -0.022610705) * go_3(1.0, 1.0); + result += vec4(-0.034925383, -0.0010656221, -0.023427188, -0.021127155); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!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 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.009722335, -5.8660436e-05, -0.0069387504, -0.0052446183, -0.040276118, 0.0041334885, -0.013106614, -0.0047898176, -0.008160448, 0.011272557, -0.008908942, -0.015969492, 0.036588583, -0.0069453213, 0.03697349, 0.024233166) * go_0(-1.0, -1.0); + result += mat4(0.07749142, -0.0112727145, 0.064222045, -0.015094554, 0.0032031287, 0.03247034, -0.016756386, 0.023846423, -0.028618578, 0.02300731, -0.015894018, 0.037608027, 0.014199439, -0.043177396, -0.004832348, -0.05518754) * go_0(-1.0, 0.0); + result += mat4(0.008171211, -0.016406616, 0.04668373, -0.0020393482, -0.008888379, 0.001380358, -0.008963435, 0.0012900458, -0.030172894, -0.0017824832, -0.037534058, 0.000615256, 0.030373376, 0.002216906, 0.04730168, -0.0028000386) * go_0(-1.0, 1.0); + result += mat4(0.060749017, 0.006499037, -0.03925888, -0.043421242, 0.0014141012, -0.040274277, 0.020051334, 0.02141008, -0.0046555796, -0.032477897, 0.02811765, 0.014327698, 0.008681297, 0.044408746, -0.028984996, 0.00985357) * go_0(0.0, -1.0); + result += mat4(0.22245905, 0.2221309, 0.21369153, 0.17244695, -0.16802068, -0.09160697, -0.13712268, -0.104401335, -0.18699472, -0.117237985, -0.13240008, -0.121350996, 0.027870163, 0.09320937, 0.07950856, 0.08880132) * go_0(0.0, 0.0); + result += mat4(-0.002709059, -0.0070304363, 0.10570918, 0.08184527, -0.014383472, -0.020202143, -0.0810668, -0.054163996, -0.018711304, -0.035145987, -0.098869935, -0.06942387, -0.011235106, 0.008683168, -0.02585752, 0.024761796) * go_0(0.0, 1.0); + result += mat4(-0.017611317, 0.033189557, 0.0014886355, 0.0063918163, 0.0033280635, 0.00871624, 0.018652624, 0.0072240643, 0.028240945, 0.027274653, -0.0044101775, 0.012503479, -0.009022953, -0.0037992215, 0.007457012, -0.0075594983) * go_0(1.0, -1.0); + result += mat4(-0.042642962, 0.061122447, -0.0661494, 0.046923082, 0.014721836, -0.07878182, 0.013244828, -0.047850955, 0.016932828, -0.07947459, 0.05953852, -0.007192553, -0.022235982, -0.026965706, -0.034282424, -0.007242096) * go_0(1.0, 0.0); + result += mat4(-0.012262586, -0.014608243, -0.0039572082, 0.045586918, 0.011789637, 0.00811699, 0.004699602, -0.032348834, 0.017336411, 0.00069143757, 0.000303623, -0.061924953, -0.0064005707, -0.0043993946, -0.008697915, -0.012118654) * go_0(1.0, 1.0); + result += mat4(-0.0012260727, 0.006306051, -0.004919151, -0.014706935, 0.06893623, -0.03855539, 0.0025126948, -0.013461133, 0.051023327, -0.015535766, -0.0125827445, -0.059677888, -0.0021585734, -0.019920474, -0.025212945, 0.017173553) * go_1(-1.0, -1.0); + result += mat4(-0.014818789, -0.004695369, 0.11874947, -0.025116654, -0.010446815, -0.015087738, 0.060040206, -0.053225394, -0.059700467, -0.0084348805, 0.11633143, 0.01912765, -0.046732634, 0.02437617, 0.014276953, -0.017528424) * go_1(-1.0, 0.0); + result += mat4(0.03403683, 0.035661116, -0.05422196, 0.00086722866, 0.0069361166, 0.0030528181, 0.0011153776, 0.0040823813, -0.052100085, 0.016703505, -0.16275159, 0.019807467, -0.0046826405, -0.01290693, -0.00867241, -0.0074261916) * go_1(-1.0, 1.0); + result += mat4(0.091117546, 0.050540023, -0.018510593, -0.007402161, -0.1193577, 0.018770888, -0.011340929, -0.02110343, -0.032088384, 0.010691935, 0.004420295, -0.025953075, 0.047472738, 0.108008265, 0.007997121, -0.03855365) * go_1(0.0, -1.0); + result += mat4(-0.21882823, -0.18101972, 0.13662423, 0.3109504, -0.101242945, 0.3064065, -0.22530204, 0.2612257, -0.07345098, 0.31937975, -0.15872811, 0.23400135, -0.04057178, -0.11676629, -0.34227282, -0.18310128) * go_1(0.0, 0.0); + result += mat4(-0.01088255, 0.026722692, -0.0071181543, -0.07676996, -0.054152276, -0.08521186, -0.029249348, 0.005593179, 0.012496848, -0.055432145, 0.06396825, 0.056608576, -0.006908986, 0.018192623, -0.027572934, 0.03749799) * go_1(0.0, 1.0); + result += mat4(-0.00788736, 0.032808263, -0.0034198891, -0.01124656, 0.014423269, 0.058434688, 0.0139339, 0.0024755867, 0.042650267, 0.01773591, 0.017099075, 0.00094137667, 0.033293027, 0.008411577, 0.018532667, 0.016402127) * go_1(1.0, -1.0); + result += mat4(0.0013495176, -0.05906597, -0.011892358, -0.04260839, 0.0040078545, -0.12263263, -0.005952629, -0.031151159, 0.009523005, -0.04784067, 0.07216081, 0.007988283, -0.010771301, -0.019751243, 0.017268918, -0.1053882) * go_1(1.0, 0.0); + result += mat4(0.021729292, -0.006699109, -0.017977247, -0.008347603, 0.030392287, -0.035512295, 0.047333952, -0.061986152, -0.00917743, -0.023669569, -0.051791556, -0.057909377, -0.008901611, -0.010565621, -0.022557132, -0.06957076) * go_1(1.0, 1.0); + result += mat4(-0.096115954, 0.013176027, -0.046984393, -0.0064583416, -0.13834997, -0.024369081, 0.049557988, -0.013092948, 0.10623086, -0.0071193436, 0.025198812, -0.00963305, -0.051104847, 0.009814798, 0.0050332784, 0.0058091953) * go_2(-1.0, -1.0); + result += mat4(0.03568169, 0.01623718, -0.0020163557, 0.043042913, 0.027783269, -0.06342661, 0.10441675, 0.031614527, -0.17076227, 0.07228563, 0.04167568, 0.022664918, 0.0002446228, 0.01977757, -0.14741875, 0.03596493) * go_2(-1.0, 0.0); + result += mat4(-0.028803155, 0.02343672, -0.037556753, 0.004386295, 0.023776755, -0.0024816473, 0.0017886858, -0.005105568, 0.008360341, -0.008270227, -0.12140172, 0.047693867, -0.03565588, -0.0082427105, 0.012581843, 0.0018308035) * go_2(-1.0, 1.0); + result += mat4(0.17737128, -0.23239174, 0.14191973, 0.0083567705, 0.022397157, -0.20152177, 0.076320365, 0.11157701, 0.005601583, -0.06157629, -0.060806494, 0.03030779, -0.17968388, -0.2081318, 0.051927045, 0.075377926) * go_2(0.0, -1.0); + result += mat4(-0.28773892, -0.26089972, -0.13325682, -0.46006975, 0.35241324, 0.29463127, -0.16573308, 0.022810405, 0.388681, -0.036075145, 0.2998638, -0.15629162, 0.14321181, 0.10493886, -0.052218314, -0.27016288) * go_2(0.0, 0.0); + result += mat4(0.03584634, 0.006315728, -0.08617273, -0.024391597, -0.016952977, 0.022077272, 0.12980743, 0.04512367, 0.003348057, 0.0946866, 0.16312122, 0.13436604, -0.011872978, -0.031965427, 0.0024880085, 0.033216927) * go_2(0.0, 1.0); + result += mat4(0.016087456, 0.043138605, -0.028770814, 0.0061788377, 0.024897626, 0.10882443, -0.036830436, -0.009145524, -0.057872005, 0.08097352, -0.024710376, 0.0068731857, -0.018163942, -0.04771538, 0.027653048, 0.01914395) * go_2(1.0, -1.0); + result += mat4(0.011542096, -0.073137596, 0.09102133, 0.049714323, -0.06767178, 0.070273116, -0.010473078, -0.120707616, -0.026583942, 0.0730171, -0.08226194, 0.105516605, 0.018596884, 0.05840729, 0.04693975, 0.0863541) * go_2(1.0, 0.0); + result += mat4(0.0127724055, 0.02520005, -0.028792456, -0.06910211, -0.019357776, -0.026941938, 0.05015806, 0.12642363, -0.01354065, -0.015913904, 0.009398767, 0.034318734, -0.0034223567, -0.0146218045, -0.0067832484, -0.010091871) * go_2(1.0, 1.0); + result += mat4(-0.02916006, 0.014765165, 0.004575115, 0.0110705905, 0.024664888, 0.003658985, 0.0073659574, 0.0013673811, 0.02650946, 0.014014751, 0.026595473, 0.01877218, 0.016845545, -0.0031619575, -0.011036392, -0.014638798) * go_3(-1.0, -1.0); + result += mat4(0.012505482, 0.0023665216, -0.010882385, 0.009143886, -0.030671602, -0.004167823, 0.003649345, -0.00058618153, -0.038002256, -0.0061475867, -0.017000455, -0.015222981, 0.0066633034, 0.013324137, 0.022223728, 0.015254626) * go_3(-1.0, 0.0); + result += mat4(-0.019684946, -0.011194834, -0.011896193, -0.009636412, 0.0064974707, -0.018297167, -0.01162353, -0.00998448, 0.022304865, -0.0044090357, -0.0013151226, 0.009721475, -0.0029337434, 0.004208434, -0.008193774, 0.005379128) * go_3(-1.0, 1.0); + result += mat4(-0.012884837, -0.057319585, -0.002133779, -0.005586696, -0.03216661, 0.0015534499, -0.004120608, 0.0040779933, -0.044278033, 0.005608415, 0.009365155, 0.04694537, 0.024845028, 0.04563515, 0.018941263, 0.011450428) * go_3(0.0, -1.0); + result += mat4(0.008597113, -0.010005085, -0.050961174, -0.07333081, 0.016683497, -0.056169543, -0.032008786, -0.037104256, -0.01117272, -0.011676191, -0.09071649, -0.049224474, 0.20027469, 0.06436799, 0.1351019, 0.069967836) * go_3(0.0, 0.0); + result += mat4(0.022842692, 0.005048976, 0.05957191, 0.026581423, 0.03748738, 0.074060254, 0.053102568, 0.046449862, -0.013734466, -0.01722293, 0.030430514, -0.02180546, 0.007762467, -0.006432996, 0.08406507, 0.034061644) * go_3(0.0, 1.0); + result += mat4(0.0048395037, 0.012762459, -0.0033284645, -0.0041399547, 0.01828778, 0.0043085683, 0.0019289661, -0.012415563, -0.023572162, -0.050695065, -0.013481175, -0.029202301, -0.03678883, -0.022862522, -0.025002036, -0.010764412) * go_3(1.0, -1.0); + result += mat4(0.0075783907, 0.016249755, 0.0178703, 0.021285253, 0.013031193, 0.025416559, 0.043989707, 0.04750125, 0.0203218, 0.00335042, -0.024657877, -0.05417159, 0.0012374326, 0.115263805, -0.035001434, 0.049407292) * go_3(1.0, 0.0); + result += mat4(0.0059729964, 0.017706383, 0.0004603757, 0.024557583, -0.014231813, 0.0022323965, -0.030447725, -0.005866556, 0.02305865, 0.02982909, 0.0549823, 0.06747715, -0.01014364, 0.0030060427, 0.01640388, 0.056874502) * go_3(1.0, 1.0); + result += vec4(0.0037637148, 0.003693704, 0.0034614028, 0.0033483643); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!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 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.009785077, -0.007310227, 0.00081595866, -0.01268686, -0.014665477, -0.003956759, -0.0011089307, -0.011515727, 0.024502382, 0.025206817, 0.004246777, -0.0016346163, -0.016379429, -0.013535791, 0.01541915, 0.0095333215) * go_0(-1.0, -1.0); + result += mat4(-0.017734146, 0.014389035, -0.0008451403, 0.013272096, 0.045607757, 0.01522117, 0.00904139, -0.001765619, 0.024920683, -0.012100507, 0.014870539, 0.0018603726, -0.030391455, 0.00632375, -0.055296343, -0.009885172) * go_0(-1.0, 0.0); + result += mat4(0.0056769922, 0.0012991864, -0.014343983, 0.0073196087, 0.0061439234, -0.0009862045, 0.0323433, 0.0018582975, -0.00815158, -0.008821831, 0.016262496, -0.014280032, 0.024239268, 0.015745653, 0.016698766, 0.014503724) * go_0(-1.0, 1.0); + result += mat4(0.039872967, -0.013257727, 0.055065673, 0.034231152, 0.086550154, 0.034081027, 0.045879394, 0.049891002, -0.011800151, -0.011743562, -0.015092318, -0.009334671, -0.017342495, -0.014658795, 0.014266523, 0.035314754) * go_0(0.0, -1.0); + result += mat4(-0.050990034, -0.06219798, -0.047669213, -0.07189862, -0.04856067, 0.031102043, 0.001354821, 0.01903025, 0.0037901315, 0.07694083, -0.016825065, 0.009997132, -0.18629807, -0.12768792, -0.104768254, -0.11861362) * go_0(0.0, 0.0); + result += mat4(0.017904822, 0.0042992756, 0.016748125, -0.025035992, -0.003724865, -0.0031921281, -0.019930473, 0.017328225, 0.024588963, 0.010205262, 0.04149686, 0.06978651, -0.022708472, -0.0057800277, -0.11644439, -0.06476094) * go_0(0.0, 1.0); + result += mat4(-0.02426752, -0.0034115477, -0.0015359819, 0.026405398, -0.013942422, 0.034148987, -0.009329464, -0.005556865, 0.010035298, 0.0042479886, -0.0045719417, -0.007970587, 0.0048700697, -0.0031006113, 0.005171075, 0.0020327016) * go_0(1.0, -1.0); + result += mat4(0.0015553721, -0.006999807, -0.027763836, -0.03493009, 0.0047000614, -0.034220867, 0.0021388065, 0.004188802, -0.007897541, -0.025793487, 0.017545879, 0.0013863312, 0.042826407, -0.050083816, 0.037378658, -0.011360738) * go_0(1.0, 0.0); + result += mat4(-0.007821516, -0.0034771548, 0.00051019643, 0.017586451, 0.01144453, 0.012032973, 0.0025295757, -0.011105711, 0.009102745, 0.015189803, -0.00083253905, -0.0025097867, -0.008002886, -0.020810502, -0.00023807488, -0.04825592) * go_0(1.0, 1.0); + result += mat4(0.005066405, 0.017425792, -0.0004840731, -0.0009944261, 0.07663847, -0.04755453, 0.004607992, -0.020050947, 0.021402068, -0.034427766, -0.0130948955, -0.042138048, 0.015383988, -0.0085578235, -0.036823586, 0.001125214) * go_1(-1.0, -1.0); + result += mat4(-0.024459356, -0.019538784, 0.13201334, -0.025238393, -0.009611914, -0.017932015, 0.06330252, -0.05036921, -0.09405187, 0.0016108088, 0.07035366, -0.026231728, -0.036375783, 0.047566332, 0.033421457, 0.011572374) * go_1(-1.0, 0.0); + result += mat4(0.03742729, 0.03181365, -0.05451164, -0.009032132, 0.017350135, -0.011311124, 0.0147211, -0.01298328, -0.011024085, 0.028534293, -0.12944345, 0.07152882, 0.005176979, -0.00048127733, -0.0063332263, -0.0034040876) * go_1(-1.0, 1.0); + result += mat4(0.06455105, 0.033970848, -0.04488856, -0.027959615, -0.094514206, 0.033421617, 0.031325165, 0.0088970335, -0.031805996, 0.007078957, 0.008114225, -0.017701747, 0.048437405, 0.12445195, 0.02138049, -0.017392302) * go_1(0.0, -1.0); + result += mat4(-0.21116845, -0.17855385, 0.12160961, 0.32197994, -0.14490715, 0.2886178, -0.28124997, 0.21847156, -0.04988429, 0.32125694, -0.118747145, 0.26057142, -0.045630034, -0.1453716, -0.3682217, -0.22081932) * go_1(0.0, 0.0); + result += mat4(0.0057057277, 0.03872448, 0.020275556, -0.05959739, 0.0150841605, -0.02288727, 0.033048235, 0.08510421, 0.01309789, -0.050875448, 0.051518645, 0.041827686, -0.028529504, -0.0015568004, -0.023128182, 0.03178304) * go_1(0.0, 1.0); + result += mat4(0.0016438053, 0.028251547, 0.0003874817, -0.021485088, 0.008020942, 0.052520994, 0.009027988, 0.004729575, 0.026685065, 0.008003427, 0.013078419, -0.008256319, 0.022743277, -0.001293671, 0.018562315, 0.016649859) * go_1(1.0, -1.0); + result += mat4(0.013438089, -0.049052995, 0.0060880547, -0.044865325, 0.031890247, -0.102749884, 0.0047795745, -0.028551944, -0.018443404, -0.061510604, 0.031782348, -0.0005923042, 0.014257579, 0.010379952, 0.02929872, -0.090405114) * go_1(1.0, 0.0); + result += mat4(0.009318741, -0.0061841, -0.02420737, 0.0018885462, 0.022010826, -0.023001686, 0.035959963, -0.057635445, 0.012495818, -0.008206369, -0.026234211, -0.04719263, 0.0057711657, -0.003004966, 0.0046920753, -0.041684203) * go_1(1.0, 1.0); + result += mat4(-0.050602015, 0.021741746, -0.059019636, -0.008416951, -0.1789153, -0.01835426, 0.03100039, -0.017736796, 0.09091737, -0.026542341, 0.010933376, -0.031898204, -0.015792761, 0.013789206, 0.031699985, 0.018964434) * go_2(-1.0, -1.0); + result += mat4(0.099863164, -0.01637541, 0.083744444, 0.011983074, 0.013478042, -0.04780451, 0.08646149, 0.050255097, -0.22476238, 0.11746969, 0.038574144, 0.069615066, 0.047265753, -0.03212485, -0.12651724, -0.0065722666) * go_2(-1.0, 0.0); + result += mat4(-0.026888395, 0.0053314343, -0.0018114679, -0.007841625, 0.00037234774, -0.005450839, -0.03730409, -0.00441375, -0.014338566, 0.002887282, -0.19375902, 0.06374498, -0.033998128, -0.03480894, 0.061709825, -0.016935369) * go_2(-1.0, 1.0); + result += mat4(0.18882285, -0.19729713, 0.064650975, -0.07342598, -0.039107442, -0.28614163, 0.081506595, 0.111678764, -0.0019596675, -0.071805045, -0.019774346, 0.055490687, -0.1405711, -0.16753702, 0.031397972, 0.054546997) * go_2(0.0, -1.0); + result += mat4(-0.007561914, 0.0010002917, 0.12623467, -0.17501056, 0.22664371, 0.2080332, -0.3194733, -0.1065412, 0.21299458, -0.23856679, 0.17237303, -0.2863369, 0.35997602, 0.354653, 0.15091361, -0.07142766) * go_2(0.0, 0.0); + result += mat4(0.02403396, 0.0037063402, -0.004992154, 0.047530055, -0.03227084, -0.0055595553, 0.06554937, -0.025955811, -0.03792351, 0.041418597, 0.04285587, -0.0118592, 0.00012291886, -0.013734975, 0.07748641, 0.14016038) * go_2(0.0, 1.0); + result += mat4(0.015037119, 0.058259863, -0.020877289, -0.0059153647, 0.04133679, 0.108832926, -0.026314106, -0.0010898053, -0.057873078, 0.07802038, -0.029681025, 0.020011986, -0.03940851, -0.038397703, 0.013701823, 0.01657068) * go_2(1.0, -1.0); + result += mat4(-0.016823404, 0.007905321, 0.034658395, 0.09977579, -0.05916761, 0.004779212, 0.018820778, -0.15795219, -0.013125517, 0.021101758, -0.055992976, 0.08024182, -0.04333755, 0.070356764, -0.030624833, 0.09123745) * go_2(1.0, 0.0); + result += mat4(-0.007931201, 0.0069976873, -0.016831044, -0.027368804, -0.03332386, -0.041667387, 0.04094055, 0.095304705, -0.006027611, -0.019209528, -0.0008929939, -0.017201519, 0.005464988, 0.0038448595, -0.01248845, 0.008877873) * go_2(1.0, 1.0); + result += mat4(-0.042160366, 0.0036025376, -0.008628986, -0.005607383, 0.028637825, 0.005296032, -0.0004143198, 0.008265197, 0.033176135, 0.014727739, 0.0145593295, 0.011159069, 0.00833305, -0.0025515268, -0.00015546188, 0.002805437) * go_3(-1.0, -1.0); + result += mat4(0.016752163, 0.013423374, -0.018342504, 0.013459657, -0.038428728, -0.005804395, 0.019692563, -0.005745392, -0.030070104, 0.01058409, 0.003989377, 0.0074200635, -0.01936366, -0.01608809, 0.0071134195, -0.0038598357) * go_3(-1.0, 0.0); + result += mat4(-0.018000437, -0.0121247275, -0.01288339, -0.0060898345, -0.006138964, -0.0035810755, -0.03902352, 0.002276941, 0.0032195079, -0.02730975, -0.011268412, -0.0036179612, -0.004836894, -0.0015986725, -0.019751905, -0.0071931942) * go_3(-1.0, 1.0); + result += mat4(0.014426659, -0.05161329, 0.019196855, 0.002317663, -0.055477437, -0.007086505, -0.04151144, -0.027518485, -0.027440753, 0.003857541, -0.002143262, 0.013090804, 0.015745236, 0.021075105, 7.93909e-06, -0.009694458) * go_3(0.0, -1.0); + result += mat4(0.0025894733, -0.017304689, -0.03299281, -0.0754248, 0.03428733, -0.03397887, 0.0108591765, 0.021311574, -0.04203291, -0.019728655, -0.09826257, -0.046157785, 0.22522739, 0.086717755, 0.15654634, 0.08489247) * go_3(0.0, 0.0); + result += mat4(0.008495083, 0.00074552774, 0.038054205, 0.013044046, -0.027891211, 0.003249458, -0.018353004, -0.035205863, -0.010195661, -0.008145831, 0.014239584, -0.019779535, 0.011452498, 0.004117014, 0.08403766, 0.04357078) * go_3(0.0, 1.0); + result += mat4(0.00020427872, 0.026861027, -0.01047743, 0.0034385168, 0.015686916, 0.00038722693, 0.0017860534, -0.021630246, -0.0084784245, -0.022648407, -0.0050631054, -0.016437376, -0.026458954, -0.011239073, -0.01145464, -0.0058855377) * go_3(1.0, -1.0); + result += mat4(-0.0012052609, 0.009248192, 0.008875674, 0.03043022, 0.012489936, 0.019402692, 0.0378006, 0.05519605, 0.029059285, -0.0072894073, 0.0014154738, -0.03802288, -0.02321437, 0.09558396, -0.0550932, 0.036936663) * go_3(1.0, 0.0); + result += mat4(0.010010094, 0.012796987, 0.0025080708, 0.013876455, -0.00536739, -0.016932324, -0.012128944, -0.0241354, 0.0077782627, 0.01584833, 0.033727348, 0.039302748, -0.026609577, -0.0062910756, -0.011042692, 0.031207075) * go_3(1.0, 1.0); + result += vec4(-0.0009249668, -0.0010178088, -0.00041991958, -0.0005421036); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-Conv-4x3x3x16 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!BIND conv2d_2_tf1 +//!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 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.01766077, -0.017591428, -0.0038036762, -0.023304595, -0.012525157, -0.0058148014, -0.0030130956, -0.011804012, 0.030511979, 0.028687771, 0.007858589, 0.004475508, -0.02585795, -0.01785211, 0.0053741997, 0.00074623496) * go_0(-1.0, -1.0); + result += mat4(-0.040601525, 0.016486213, -0.01966552, 0.014969501, 0.05400945, 0.019022502, 0.0149923405, -0.0017570893, 0.040684238, -0.009271634, 0.026908487, 0.002365157, -0.03371985, 0.00928091, -0.058665182, -0.0047038617) * go_0(-1.0, 0.0); + result += mat4(0.0034900296, 0.0028777388, -0.02543823, 0.005724228, 0.012073974, 0.0043754885, 0.04109826, 0.008040286, -0.00049979525, -0.0063444753, 0.030565983, -0.009352674, 0.01949427, 0.014168137, 0.009640578, 0.011481213) * go_0(-1.0, 1.0); + result += mat4(0.026645018, -0.02211462, 0.06119815, 0.039082125, 0.09945218, 0.042240527, 0.054267537, 0.04693634, -0.004510591, -0.0041247807, -0.012629442, -0.008053095, -0.025141539, -0.025081929, 0.011338651, 0.029372308) * go_0(0.0, -1.0); + result += mat4(-0.102688424, -0.11533188, -0.09621349, -0.116714895, -0.025504943, 0.05013811, 0.024331303, 0.03946124, 0.026381869, 0.1011479, -0.0017481856, 0.027152762, -0.18783632, -0.13439077, -0.112003446, -0.12810163) * go_0(0.0, 0.0); + result += mat4(0.010783576, -0.00025257064, -0.0075445045, -0.04681932, -0.0021722934, -0.005758047, -0.0110701695, 0.023468157, 0.036986902, 0.023351438, 0.063143626, 0.09269854, -0.025713218, -0.011750105, -0.11722637, -0.07038934) * go_0(0.0, 1.0); + result += mat4(-0.026961634, -0.015106367, -0.0034014166, 0.02482031, -0.013892242, 0.04203608, -0.008226002, 0.004619446, 0.012888606, 0.010721662, -1.3880494e-05, -0.0033224574, 0.006727405, -0.0035630877, 0.0021499102, -0.00091816986) * go_0(1.0, -1.0); + result += mat4(0.0016877668, -0.02695227, -0.023388471, -0.053411417, 0.006777518, -0.024251794, 0.0015210172, 0.010034961, -0.00795588, -0.01645489, 0.012691467, 0.0061330614, 0.054507505, -0.041002143, 0.048495438, -0.004843492) * go_0(1.0, 0.0); + result += mat4(-0.0159168, -0.013163069, -0.0091357315, 0.0011109188, 0.022993349, 0.025777856, 0.013487494, 0.00304372, 0.014121591, 0.02415322, 0.006453722, 0.010679647, -0.00626483, -0.017908117, 0.0063728937, -0.04091484) * go_0(1.0, 1.0); + result += mat4(-0.0026799496, 0.0154166315, -0.0037383793, -0.002577431, 0.073905826, -0.043148544, 0.011774636, -0.016023275, 0.0099145975, -0.04718069, -0.013578048, -0.04220935, 0.018033838, -0.0025958812, -0.029762078, 0.0034059538) * go_1(-1.0, -1.0); + result += mat4(-0.03239311, -0.025743088, 0.1116615, -0.027325295, -0.014691433, -0.013614988, 0.05034416, -0.04294835, -0.11013415, -0.014086726, 0.048601545, -0.04762435, -0.01944709, 0.054276068, 0.04073586, 0.019288493) * go_1(-1.0, 0.0); + result += mat4(0.027851144, 0.014083208, -0.06432852, -0.024642657, 0.021185134, -0.015441491, 0.018058551, -0.017353412, -0.018814132, 0.026259383, -0.14238997, 0.06301044, 0.007324441, 0.00494394, 0.00020533071, 0.0024405916) * go_1(-1.0, 1.0); + result += mat4(0.06092095, 0.025730716, -0.042129956, -0.026382709, -0.08284398, 0.03344148, 0.038016047, 0.0137958275, -0.025555719, 0.008199355, 0.0070835026, -0.01420561, 0.0493976, 0.121205755, 0.026178997, -0.006300481) * go_1(0.0, -1.0); + result += mat4(-0.18660638, -0.1658202, 0.116562665, 0.29287666, -0.13814074, 0.2658047, -0.270531, 0.19597577, -0.04692207, 0.28904793, -0.09829146, 0.24158104, -0.03946344, -0.12598358, -0.3361825, -0.19800447) * go_1(0.0, 0.0); + result += mat4(0.020092675, 0.049266458, 0.03696139, -0.046251137, 0.029122403, -0.008378672, 0.044602558, 0.092563495, -0.0036082428, -0.072675824, 0.030523287, 0.006169521, -0.031133244, -0.011250458, -0.026590217, 0.023079094) * go_1(0.0, 1.0); + result += mat4(0.007384019, 0.031913586, 0.002072675, -0.019807052, 0.010384438, 0.050076224, 0.010438329, 0.009595051, 0.022497892, 0.012009176, 0.009222753, -0.008563874, 0.017106988, -0.003105622, 0.01070336, 0.011805944) * go_1(1.0, -1.0); + result += mat4(0.017091183, -0.035133313, 0.012425838, -0.03395959, 0.03418688, -0.10616231, 0.0101681305, -0.03682252, -0.016497994, -0.05231084, 0.025178006, 0.008926557, 0.025942912, 0.019970346, 0.03534238, -0.07596637) * go_1(1.0, 0.0); + result += mat4(0.007215777, -0.0006424821, -0.020822426, 0.011314772, 0.0183502, -0.015352454, 0.02972497, -0.053287935, 0.024020335, -0.006380922, -0.008620774, -0.041896872, 0.021631774, 0.013320375, 0.024711635, -0.020357909) * go_1(1.0, 1.0); + result += mat4(-0.033131246, 0.027936278, -0.047840517, 0.0019488486, -0.17501047, -0.0178374, 0.02549812, -0.019010937, 0.079489246, -0.027291514, 0.004313802, -0.03478066, -0.004887971, 0.019281879, 0.04073947, 0.022658588) * go_2(-1.0, -1.0); + result += mat4(0.110482916, -0.021340236, 0.09848104, 0.0034104201, 0.0032655075, -0.04557326, 0.07156056, 0.045965493, -0.22822224, 0.115162075, 0.027745042, 0.07251069, 0.05100454, -0.034554593, -0.11214564, -0.009064197) * go_2(-1.0, 0.0); + result += mat4(-0.017621655, 0.01024623, 0.009554872, -0.00078690174, -0.0069463328, -0.014670676, -0.041410644, -0.007414249, -0.031177497, -0.007517117, -0.20814678, 0.049873244, -0.02482445, -0.031338003, 0.06920326, -0.015171424) * go_2(-1.0, 1.0); + result += mat4(0.18918292, -0.15450309, 0.05504167, -0.061840136, -0.057958793, -0.28908864, 0.06820344, 0.09923399, -0.008387437, -0.075379215, -0.01747373, 0.048925415, -0.13222353, -0.15354146, 0.022480693, 0.04943612) * go_2(0.0, -1.0); + result += mat4(0.0469381, 0.05393423, 0.1681062, -0.10543653, 0.17948511, 0.16570628, -0.33344334, -0.13197891, 0.16509773, -0.26174626, 0.13757275, -0.29244694, 0.35424834, 0.35368237, 0.156861, -0.04775442) * go_2(0.0, 0.0); + result += mat4(0.026892537, 0.0075510717, 0.015918663, 0.06070227, -0.02288592, 0.0027507204, 0.05279965, -0.03042772, -0.044760384, 0.0234673, 0.01604264, -0.04277388, 0.0011313064, -0.0052253264, 0.08374709, 0.14929597) * go_2(0.0, 1.0); + result += mat4(0.016119812, 0.061383534, -0.013537205, -0.0017921093, 0.043676157, 0.09811408, -0.015655283, 0.0007943268, -0.053843908, 0.069290705, -0.028319253, 0.020141726, -0.038996387, -0.03628716, 0.012679114, 0.015012319) * go_2(1.0, -1.0); + result += mat4(-0.02019775, 0.022393003, 0.020688228, 0.10277296, -0.06365119, -0.015666502, 0.012721399, -0.16204305, -0.0037819904, 0.012113873, -0.040969223, 0.069086574, -0.052415807, 0.060331605, -0.04201384, 0.07953157) * go_2(1.0, 0.0); + result += mat4(-0.0019123453, 0.012750492, -0.007235785, -0.01268919, -0.038674437, -0.043993857, 0.028753003, 0.07664717, -0.015077012, -0.027486047, -0.011141094, -0.030269727, 0.0016567699, -0.003331901, -0.021631587, -0.00040226072) * go_2(1.0, 1.0); + result += mat4(-0.03769701, 0.0045639244, -0.0069983527, -0.0064906892, 0.03318896, 0.011733902, 0.0023203227, 0.013374876, 0.037507236, 0.018019466, 0.013330661, 0.009231364, 0.00018865235, -0.005706915, -0.00011657552, 0.0038968239) * go_3(-1.0, -1.0); + result += mat4(0.022072105, 0.019486066, -0.013029048, 0.017470635, -0.03662149, -0.011397823, 0.02397534, -0.008561204, -0.026196644, 0.01626692, 0.011886567, 0.021061733, -0.03310679, -0.025446283, -0.006469576, -0.010118362) * go_3(-1.0, 0.0); + result += mat4(-0.014853227, -0.0062806485, -0.005624992, 0.0017175867, -0.007843849, 0.0008925535, -0.041000694, 0.0049381475, 0.0019743184, -0.035099152, -0.01074269, -0.0128827905, -0.010841019, -0.0093286475, -0.030476939, -0.018505717) * go_3(-1.0, 1.0); + result += mat4(0.016344415, -0.04647131, 0.021242643, 0.004836572, -0.061090752, -0.006488986, -0.050970413, -0.029668579, -0.015889898, 0.010811246, 0.0018357672, 0.012481409, 0.008317143, 0.009978102, -0.0015472731, -0.011174326) * go_3(0.0, -1.0); + result += mat4(-0.004087798, -0.01634328, -0.031607483, -0.068488315, 0.038035624, -0.02797923, 0.017972443, 0.029961389, -0.029277585, -0.015558678, -0.08634699, -0.039436456, 0.19870138, 0.06507983, 0.130592, 0.059745777) * go_3(0.0, 0.0); + result += mat4(-0.0028183246, -0.008089249, 0.02188247, 0.0049699014, -0.03830487, -0.0079993615, -0.028960107, -0.045729056, 0.0021651732, 0.010072074, 0.031335246, 0.0012719089, 0.015795005, 0.011290197, 0.08071912, 0.04273827) * go_3(0.0, 1.0); + result += mat4(-0.0011167483, 0.024682038, -0.009224286, 0.005520499, 0.014198537, -0.0032909375, 0.0005767499, -0.02676088, -0.0019766665, -0.015222206, -0.00080782827, -0.011807755, -0.02560086, -0.015391911, -0.008948504, -0.0062184683) * go_3(1.0, -1.0); + result += mat4(-0.009399661, -0.0019192873, 0.000261681, 0.020112153, 0.0077712294, 0.019477246, 0.030144244, 0.053777162, 0.030650103, 0.0021887033, 0.0092345085, -0.029658241, -0.03723785, 0.073152155, -0.058525253, 0.023017056) * go_3(1.0, 0.0); + result += mat4(0.012911211, 0.010375983, -0.00055489264, 0.005504194, -0.004187377, -0.02239082, -0.008734182, -0.027458502, -0.005602922, 0.009588401, 0.015889015, 0.036346428, -0.038325973, -0.018252429, -0.02944341, 0.011490681) * go_3(1.0, 1.0); + result += vec4(-0.0021447246, -0.0025527438, -0.0016466968, -0.0020245572); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(L)-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/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl b/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl new file mode 100644 index 0000000..5076f5d --- /dev/null +++ b/shaders/Anime4K_Upscale_Denoise_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-Denoise-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.029052526, 0.059789784, -0.024398074, 0.06907132, 0.18920785, -0.12923062, 0.0766382, -0.12048348, -0.017786544, 0.06251133, -0.068393864, 0.056690093, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.14032267, -0.077691495, -0.009036259, -0.13049065, 0.20954624, 0.023231741, -0.2759354, 0.49927905, 0.039609738, -0.092625424, 0.09426452, -0.2246486, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.023119625, 0.046549924, 0.073033765, 0.03727065, 0.04498207, 0.024455868, 0.17602317, -0.3150503, 0.019985953, 0.03670126, 0.0071220254, 0.107966185, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.111121014, -0.084099665, 0.12595509, -0.048271902, -0.007799661, 0.04831373, 0.11868961, 0.11607051, 0.05169621, -0.050569464, 0.120362274, 0.034607537, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.41167754, -0.44940078, 0.35485214, 0.58048695, -1.0151424, -0.70137614, 0.38405335, 0.37337455, -0.096364655, -0.14538667, 0.17917591, 0.32259464, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.06378494, -0.040756933, -0.4773648, -0.47702238, 0.1803328, -0.21388084, -0.5509359, -0.6491179, -0.048081584, -0.0025129975, -0.28561604, -0.22229671, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.037024107, 0.016497454, -0.05315267, -0.023392007, 0.1840294, 0.12675077, 0.037417043, -0.022394283, -0.028192522, -0.016344562, -0.07269005, -0.04747136, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.039480202, 0.5577544, -0.117326505, 0.06622856, -0.038784727, 0.65673745, -0.109742545, 0.22294083, 0.00038519394, 0.24552485, -0.07008514, 0.00029412706, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.009279719, -0.031882852, 0.14124188, -0.0759899, -0.024016602, 0.15252088, 0.13614258, -0.09961189, 0.05446014, -0.03827061, 0.11210173, -0.028823104, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.012836382, -0.0062823873, -0.03165346, -0.0017501811); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.06215308, -0.054471835, 0.1285146, 0.037585296, -0.14467795, 0.0057610427, 0.006528968, 0.18607244, 0.03762581, -0.121003255, 0.0827445, 0.076479666, 0.07540097, 0.16371846, -0.18786757, -0.12048073) * go_0(-1.0, -1.0); + result += mat4(-0.11520603, -0.22384967, 0.0970881, 0.045122143, -0.40358877, 0.12487416, -0.4489702, 0.04854906, -0.08240888, -0.0058777514, 0.19108902, 0.042189106, -0.07843178, 0.0012592699, -0.11303816, -0.1118517) * go_0(-1.0, 0.0); + result += mat4(0.29387334, 0.08150406, -0.06009834, 0.07054583, -0.146034, 0.04053809, 0.23284695, -0.08233496, 0.0957811, 0.20221621, 0.13570721, -0.081069246, -0.031743366, -0.038912926, -0.059060514, 0.05190416) * go_0(-1.0, 1.0); + result += mat4(0.18404631, -0.034244366, -0.13406059, 0.2242061, -0.23668705, -0.10359684, -0.09689738, -0.04932347, -0.0020525968, 0.15236467, -0.2634303, -0.029878438, 0.3283669, 0.09891668, -0.46656898, -0.03271751) * go_0(0.0, -1.0); + result += mat4(-0.1824976, -1.0545974, 0.93027455, -0.13887188, 0.3128633, -0.2734884, -0.831517, -0.18065166, -0.2119423, 0.19241124, -0.13313763, -0.10523897, 0.2675327, -0.06853148, 0.007885104, 0.26000848) * go_0(0.0, 0.0); + result += mat4(-0.18109167, -0.019768981, -0.14131357, -0.3181756, 0.22158594, 0.1431138, -0.12970252, -0.011459096, -0.03742945, 0.2316056, -0.054623842, -0.09360549, 0.10176328, -0.108150974, 0.122787155, 0.07614884) * go_0(0.0, 1.0); + result += mat4(-0.02370754, -0.10264054, 0.030659392, 0.056694325, 0.034085, -0.0538203, 0.09111551, 0.0063995267, 0.0835243, -0.06623529, 0.20924146, 0.09457414, 0.27925664, 0.049511474, -0.22062886, 0.03312504) * go_0(1.0, -1.0); + result += mat4(0.17009354, 0.34391564, -0.1680695, -0.051450633, -0.044037253, -0.1412577, 0.01097572, -0.049040757, 0.104024716, -0.34571946, 0.5213214, -0.17010914, -0.016452854, 0.3303069, -0.22249438, 0.23866816) * go_0(1.0, 0.0); + result += mat4(0.20491506, 0.20098424, 0.015425732, -0.033999693, -0.0111842435, 0.09945295, -0.025766203, 0.17068656, 0.049262784, 0.0077788536, 0.068585835, 0.19229786, -0.013048818, 0.04877973, 0.024053875, -0.06846659) * go_0(1.0, 1.0); + result += mat4(0.14208305, 0.09790381, -0.008420949, -0.016165754, 0.02445528, 0.08700781, 0.046639573, -0.22105917, -0.08529265, 0.06606378, 0.0947481, 0.08149193, -0.0959293, -0.037756894, -0.008136973, 0.046241503) * go_1(-1.0, -1.0); + result += mat4(0.2577669, 0.13766493, 0.021107635, 0.018978242, 0.452542, 0.25566816, -0.68909633, 0.03804329, 0.06771752, 0.07894156, 0.22501312, -0.047511246, 0.00040517355, -0.0202232, -0.27541754, -0.040150844) * go_1(-1.0, 0.0); + result += mat4(-0.30176973, -0.15739526, -0.038548045, -0.07003333, 0.32053417, 0.025467036, -0.044913124, 0.20454903, 0.12475206, -0.03966162, 0.07139637, 0.12101497, -0.10777517, -0.062379625, 0.06598757, -0.14795317) * go_1(-1.0, 1.0); + result += mat4(0.12068516, 0.0026514034, -0.055378057, -0.0976728, 0.15887645, 0.15590422, 0.076294206, -0.15417404, -0.16548084, -0.18422292, -0.1670212, 0.041155312, -0.11765263, 0.16991171, -0.21535093, 0.01542368) * go_1(0.0, -1.0); + result += mat4(-0.37845853, 0.5732961, 0.114283465, 0.14638355, -0.109194644, 0.087304994, -0.15938401, 0.58242995, -0.025850652, 0.02730721, -0.48582682, -0.2547883, 0.1899583, 0.24296008, -0.8162976, 0.018036429) * go_1(0.0, 0.0); + result += mat4(0.1633212, -0.117295206, 0.021892091, 0.07762347, -0.09726402, -0.1364192, 0.10752197, 0.42020246, 0.06665656, -0.10822656, 0.1337331, 0.0552859, 0.04700212, 0.108017646, -0.2009353, -0.0435288) * go_1(0.0, 1.0); + result += mat4(-0.045603696, 0.05774526, -0.0071174325, 0.24119262, -0.06899063, 0.016012343, 0.009982042, -0.19038968, -0.17796072, -0.12510185, 0.22739507, -0.1805478, -0.100294635, 0.017557602, 0.039842658, 0.13116726) * go_1(1.0, -1.0); + result += mat4(0.0131523665, -0.20472725, 0.121814765, -0.17769355, 0.097669855, 0.09648846, -0.072887406, 0.22992326, -0.019087939, 0.35375193, -0.057155706, 0.17699116, 0.030690158, -0.423475, 0.03703492, -0.03429164) * go_1(1.0, 0.0); + result += mat4(-0.12143413, -0.018402342, 0.04536776, -0.12743106, 0.03355068, -0.09694192, 0.09913357, -0.036602203, 0.11038047, 0.13236065, 0.12966877, -0.10163848, 0.0030612876, -0.116145626, 0.045318183, 0.11492169) * go_1(1.0, 1.0); + result += vec4(0.05657016, -0.04848861, 0.10297782, -0.0076417355); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.088122115, -0.009916053, -0.124469265, -0.032139737, -0.13709281, 0.09177288, -0.06794775, -0.03962873, 0.17613642, -0.11064388, 0.2531882, -0.3817648, -0.1172188, -0.042132895, -0.098772734, -0.114560865) * go_0(-1.0, -1.0); + result += mat4(0.18876404, -0.14613804, 0.23869626, 0.06580185, -0.13533239, 0.25754455, -0.29734856, 0.028218834, -0.39304733, -0.14716247, 0.19408274, -0.18518063, -0.31482637, -0.1508887, -0.3841371, 0.021975968) * go_0(-1.0, 0.0); + result += mat4(-0.22316615, -0.0923483, 0.16932568, -0.13138154, 0.139829, 0.010975908, -0.0587337, -0.054484393, -0.13758336, -0.030077504, -0.050642505, -0.14933856, -0.040563874, -0.030220931, 0.2867556, 0.17022403) * go_0(-1.0, 1.0); + result += mat4(0.12611523, -0.07087836, 0.08281469, 0.024588918, -0.023549056, -0.13102995, 0.17571726, 0.0740372, -0.3167631, 0.17491543, 0.4459055, -0.4687942, -0.19755729, 0.03723031, -0.06757113, 0.03502462) * go_0(0.0, -1.0); + result += mat4(0.12098187, 0.12341856, -0.061940372, 0.7251308, 0.055730965, -0.5169302, 0.37959704, -0.08753306, -0.45700142, -0.4960699, 0.1690022, -0.40233734, 0.0262836, -0.13345262, 0.11002605, -0.16773209) * go_0(0.0, 0.0); + result += mat4(-0.20428565, 0.117523015, -0.044863444, -0.1770644, 0.22925, 0.029694336, -0.23891294, 0.039587863, -0.11235541, -0.23890465, 0.037618574, -0.039127905, 0.14058869, 0.020599412, -0.074353516, 0.12343045) * go_0(0.0, 1.0); + result += mat4(-0.04680316, -0.049870726, 0.06975308, -0.21486782, -0.08177838, 0.09760846, -0.031408366, 0.13881667, -0.14650045, 0.29182404, -0.080848776, -0.25525567, 0.018876432, -0.015662232, -0.016014043, -0.08435915) * go_0(1.0, -1.0); + result += mat4(-0.100864016, -0.24647528, -0.007994345, 0.13047779, 0.14746517, 0.25517163, 0.054900885, -0.07251866, -0.29500577, -0.03758923, 0.05514366, -0.058372885, -0.03055354, -0.062586576, 0.017739896, 0.08644674) * go_0(1.0, 0.0); + result += mat4(-0.029502464, -0.08905223, 0.0047584837, -0.09646073, 0.044714086, 0.15522493, -0.070930906, -0.026954453, 0.057949875, -0.017211404, -0.00566463, -0.0050975676, 0.0050182147, -0.010722001, 0.011812942, -0.04698445) * go_0(1.0, 1.0); + result += mat4(0.18863353, -0.11575336, 0.26541254, -0.15280409, 0.14376, -0.05783716, 0.08554402, 0.27605456, 0.004611954, 0.074173525, -0.07963756, 0.082979314, 0.099553905, -0.06539344, 0.4330784, 0.07996894) * go_1(-1.0, -1.0); + result += mat4(-0.31001288, 0.035875235, 0.049856357, -0.09614268, 0.23397788, -0.12425775, 0.45108303, 0.27973723, 0.0753222, 0.11388394, -0.043821793, -0.05610102, -0.06536777, 0.009822641, 0.7956708, -0.05798737) * go_1(-1.0, 0.0); + result += mat4(0.19827974, 0.010130333, -0.13153136, 0.11593003, -0.15762039, -0.0040722084, 0.20404483, 0.28999883, 0.08152756, 0.07773477, 0.019730574, 0.0123460535, -0.034676805, -0.19133334, 0.01860159, -0.12945038) * go_1(-1.0, 1.0); + result += mat4(-0.1861255, 0.039945368, 0.28345293, -0.17425321, 0.36748698, 0.03729066, -0.35957313, 0.11234573, -0.07122196, 0.012845119, -0.09049443, 0.10106711, 0.07425845, -0.14626606, 0.46169114, -0.2652126) * go_1(0.0, -1.0); + result += mat4(-0.6222811, -0.08538015, 0.023319554, -0.7206892, -0.33495513, 0.2960924, -0.033479776, -0.29255456, 0.29802337, 0.47570458, 0.012769826, 0.19874385, -0.25652033, -0.4018595, 0.3055839, 0.1881051) * go_1(0.0, 0.0); + result += mat4(0.32152474, 0.0024920676, -0.113435976, 0.14440896, -0.287736, 0.0251382, 0.28160754, 0.02769615, 0.067614004, 0.0832741, -0.095353454, -0.19792004, -0.40394694, -0.24224225, 0.3224996, 0.030300485) * go_1(0.0, 1.0); + result += mat4(0.0045148246, -0.04621849, -0.026470715, 0.0588576, 0.14559188, 0.037437905, -0.13778603, 0.08173416, 0.033548757, -0.015654223, 0.15016593, 0.07761835, -0.016546778, 0.02640291, 0.112717085, 0.020371364) * go_1(1.0, -1.0); + result += mat4(0.114227325, -0.0405595, -0.11662477, 0.014747093, 0.11170598, 0.58740836, -0.27560827, -0.1848705, -0.02491223, -0.15605451, 0.0028677192, -0.11290364, -0.12331832, -0.3191161, 0.3505101, 0.15236251) * go_1(1.0, 0.0); + result += mat4(0.21131381, 0.13965495, -0.103683874, 0.26049778, -0.010777816, 0.015093082, 0.13207617, 0.14064828, -0.007847294, 0.025702007, -0.082993574, -0.04923462, -0.052900862, -0.006775377, 0.1432969, 0.09598549) * go_1(1.0, 1.0); + result += vec4(0.08015534, 0.10264796, -0.031173404, 0.21282151); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.13262276, 0.18682314, -0.1433667, -0.0061677806, -0.15057871, -0.15389217, 0.40721065, -0.082456455, 0.028175479, -0.06136406, 0.13517159, -0.0066659097, -0.03311807, -0.056219388, 0.066265404, -0.017012158) * go_0(-1.0, -1.0); + result += mat4(0.0652481, -0.02717338, -0.17586891, -0.1458622, 0.37166637, -0.13651049, -0.095090784, 0.1450258, -0.08856753, -0.029000161, -0.11024598, 0.14231622, 0.027118085, 0.060637098, -0.028174674, 0.020973917) * go_0(-1.0, 0.0); + result += mat4(0.17137158, 0.015818363, -0.1761587, -0.07798954, -0.22039492, -0.08250406, 0.15350278, 0.05466543, 0.07231244, 0.124937475, -0.14530692, -0.036220204, -0.20202135, 0.16154502, -0.1472417, 0.045183204) * go_0(-1.0, 1.0); + result += mat4(-0.06751513, 0.3630837, -0.23374555, -0.17641832, 0.23866339, -0.12625019, 0.14955078, 0.3757683, 0.25546572, -0.0009440543, -0.029705383, 0.12500505, 0.039303612, 0.02745342, 0.06280759, -0.027673393) * go_0(0.0, -1.0); + result += mat4(-0.40253955, 0.5532656, 0.15580782, 0.23305601, 0.04307387, -0.37548792, 0.021682428, -0.14554474, -0.44655007, 0.12335231, 0.22693188, -0.19185324, -0.39905196, -0.36661598, 0.34626722, 0.3220371) * go_0(0.0, 0.0); + result += mat4(0.13051705, -0.051269528, 0.027860573, 0.12866034, 0.095374286, 0.0072371624, 0.06641015, -0.040609945, 0.14411138, 0.03813084, 0.024812538, -0.069997884, -0.2398024, 0.16384888, 0.004522481, -0.2734798) * go_0(0.0, 1.0); + result += mat4(-0.048976544, 0.36923414, -0.23769425, -0.02964149, 0.13426293, -0.070416726, -0.036279447, 0.21007125, -0.0062456504, 0.12307804, -0.18920022, 0.016429992, 0.091225415, -0.00714184, -0.079064, 0.050525308) * go_0(1.0, -1.0); + result += mat4(0.007005748, -0.1929285, -0.27960134, -0.014070343, -0.012031938, -0.21320626, 0.22591045, 0.06750757, 0.038049847, -0.08933499, 0.15640227, 0.36653376, 0.11274315, 0.0015512784, -0.14319079, -0.41117874) * go_0(1.0, 0.0); + result += mat4(0.039254356, 0.04123307, -0.14476523, 0.19676228, -0.1746638, 0.068685316, 0.19318552, -0.007086376, -0.08810745, 0.041937724, 0.1393943, 0.27539206, -0.08331265, 0.043064818, -0.02783017, -0.13006629) * go_0(1.0, 1.0); + result += mat4(0.18761271, -0.009960496, -0.18572417, 0.010640895, 0.10240658, 0.036137953, -0.109363064, 0.05820501, -0.04092678, 0.11809751, -0.11843415, 0.11893309, -0.06356792, 0.1509876, -0.12252014, -0.0070098704) * go_1(-1.0, -1.0); + result += mat4(-0.0012312894, 0.038436964, -0.046054237, 0.04859312, -0.4190657, 0.2529927, 0.23133701, -0.00065297337, -0.039581586, 0.00905735, 0.16532114, -0.12568031, 0.17818217, -0.28053075, 0.38509414, -0.03763847) * go_1(-1.0, 0.0); + result += mat4(-0.0897875, 0.063593514, 0.07660054, 0.12268424, 0.21554653, -0.1025501, 0.2557211, 0.04492533, 0.10992355, -0.035215836, -0.009733763, -0.02165148, 0.08618596, -0.19276536, 0.18174514, -0.18021213) * go_1(-1.0, 1.0); + result += mat4(-0.002999377, -0.12630916, -0.030010369, -0.2676409, -0.20229307, 0.15253967, -0.12200155, -0.1552754, -0.16193017, 0.10819683, 0.10696224, -0.1920264, -0.29354608, -0.32021165, 0.08644405, -0.16153689) * go_1(0.0, -1.0); + result += mat4(0.49931613, -0.3669461, -0.49107462, -0.3654748, 0.32047966, 0.03246311, -0.06424334, 0.009108802, 0.2367612, -0.46587244, 0.16957493, 0.3237888, 0.93676794, 0.01834384, -0.9349752, -0.04654371) * go_1(0.0, 0.0); + result += mat4(-0.112562165, 0.006074484, -0.12288025, -0.08560263, 0.25336134, 0.025205871, 0.25063732, 0.12370882, -0.40429187, 0.12992847, -0.2816234, 0.08179623, 0.27197668, 0.066299304, -0.12988937, 0.16257611) * go_1(0.0, 1.0); + result += mat4(0.047864527, -0.05821779, -0.06311128, -0.0065775234, -0.065763995, 0.014864688, 0.09148591, -0.25059348, 0.008846306, -0.22123712, 0.4062609, -0.100248575, -0.50293785, -0.13373566, 0.21480446, -0.0841981) * go_1(1.0, -1.0); + result += mat4(0.19313097, -0.061253734, -0.1801314, -0.20178059, -0.039574936, 0.08167749, 0.010974997, 0.069656976, -0.13193963, 0.35555324, 0.62686867, -0.28656846, -0.27831817, -0.0040086447, 0.4031064, 0.47767937) * go_1(1.0, 0.0); + result += mat4(0.15396428, 0.069321476, -0.15190981, -0.24133344, 0.106151104, -0.11271092, 0.06878746, 0.14279713, -0.02006402, -0.36284852, -0.00926688, -0.39887694, -0.20926239, -0.021860912, 0.07588468, 0.2620174) * go_1(1.0, 1.0); + result += vec4(-0.0073282495, -0.040352557, -0.063710704, 0.07255652); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.17903937, -0.0014294779, 0.1824805, -0.19555633, -0.0052551827, -0.013796094, 0.06358042, 0.13301018, 0.008874768, 0.06605332, 0.06117636, 0.012946474, 0.048656575, 0.0060409275, -0.0671362, -0.06897735) * go_0(-1.0, -1.0); + result += mat4(-0.16098012, 0.10772552, -0.13175552, -0.5299018, 0.068713695, -0.048258893, -0.49698257, 0.36581638, 0.21755004, -0.12125899, -0.27382872, -0.12268086, 0.014334542, 0.20573758, 0.45879167, -0.29648975) * go_0(-1.0, 0.0); + result += mat4(0.06860283, -0.18047708, 0.024707617, 0.11900479, 0.09474589, -0.16559775, -0.054095846, -0.011377782, -0.008733984, 0.105020404, -0.040116277, -0.0022003972, 0.1453799, -0.032110006, -0.018741792, -0.12511599) * go_0(-1.0, 1.0); + result += mat4(0.20024729, -0.01969923, -0.026999667, -0.39064395, -0.14559332, -0.11634086, -0.13226044, 0.11779975, -0.08838282, -0.0882447, -0.23166943, -0.15760234, 0.030928904, -0.032423917, 0.20324136, -0.19692755) * go_0(0.0, -1.0); + result += mat4(0.49499384, 0.7327846, -0.6173799, -0.53821295, -0.15000962, 0.11169762, 0.6942423, 0.07956513, 0.06913002, -0.19037646, -0.19826908, 0.68080276, -0.2747096, -0.15832238, 0.47366706, 0.090432756) * go_0(0.0, 0.0); + result += mat4(-0.18274948, 0.09204629, 0.16644076, 0.05641037, 0.03328184, -0.6218293, 0.26432592, -0.093742386, 0.33038342, -0.24853565, -0.23683667, -0.37430722, -0.20684583, -0.32283148, -0.07633969, -0.08765815) * go_0(0.0, 1.0); + result += mat4(0.06821987, 0.06395764, -0.14685121, -0.15894371, -0.093540885, 0.057568345, -0.048376244, -0.009256543, -0.26325077, -0.03193119, -0.16857445, -0.02404981, 0.110593356, 0.042911418, 0.06626762, -0.0312436) * go_0(1.0, -1.0); + result += mat4(0.3108626, 0.37123847, -0.082249805, -0.21339422, -0.3756041, -0.08518717, -0.16853802, 0.011641729, -0.30096757, 0.26942274, -0.08990497, -0.19451031, 0.21974437, -0.04231723, 0.26160353, -0.040834647) * go_0(1.0, 0.0); + result += mat4(0.11795158, 0.24436565, 0.043223023, -0.0159957, -0.19689156, 0.13223267, -0.013983249, 0.09437164, -0.47648698, -0.00082660443, -0.085406005, 0.10885898, 0.104696035, -0.053257108, 0.024389362, 0.0282572) * go_0(1.0, 1.0); + result += mat4(0.032890156, 0.0115719065, -0.01898909, -0.03034875, -0.041037276, -0.1026382, 0.03337663, 0.20108728, -0.00023235095, -0.018033072, -0.028535927, 0.07359915, 0.075182244, 0.02959868, 0.15107772, -0.09815672) * go_1(-1.0, -1.0); + result += mat4(-0.004040557, 0.06707476, 0.039022792, 0.52437925, -0.08027356, 0.040488366, 0.035332825, 0.07683081, -0.03521227, -0.081861034, 0.090804815, 0.10580108, 0.20452882, -0.58755285, 0.04303056, 0.41562977) * go_1(-1.0, 0.0); + result += mat4(0.09290062, 0.03495193, 0.02347216, -0.012873525, -0.076936446, 0.1453216, -0.03742271, -0.14174925, -0.058219753, 0.19095406, 0.055627216, 0.09437343, -0.010424211, -0.314692, 0.3314579, -0.053285643) * go_1(-1.0, 1.0); + result += mat4(-0.053961687, 0.1483992, 0.042458896, -0.1966439, 0.13864957, 0.07587672, -0.06519269, 0.09530391, 0.04215073, 0.039545458, 0.21056756, 0.09972659, 0.02987125, -0.08102741, 0.07075036, 0.21867757) * go_1(0.0, -1.0); + result += mat4(-0.5512795, 0.03104814, 0.27901977, 0.122875504, -0.2656715, 0.007895486, -0.6735937, 0.20810314, -0.31432617, 0.07420857, 0.2573659, -0.35361463, 0.19826569, -0.47774056, 0.15816487, -0.29203883) * go_1(0.0, 0.0); + result += mat4(0.35078493, -0.07371588, -0.026663188, -0.20976657, -0.009644347, 0.037428845, -0.33933878, -0.010807704, 0.088060796, 0.16753472, -0.12296045, 0.17563403, 0.1501952, 0.07353703, 0.32531765, 0.11667607) * go_1(0.0, 1.0); + result += mat4(0.096126616, -0.058021486, -0.03439203, 0.06868024, 0.047914367, 0.026945053, 0.04207778, 0.046023168, 0.16024022, 0.07846185, 0.004195093, 0.07272046, -0.10458233, -0.0904536, 0.16049337, 0.015941419) * go_1(1.0, -1.0); + result += mat4(0.032256138, -0.055398785, 0.079738356, 0.113359064, 0.11975066, -0.074372105, 0.102006756, -0.011490042, 0.15155345, 0.0025528704, 0.23328577, -0.059241068, -0.067783386, -0.18220833, 0.0057692174, 0.039900843) * go_1(1.0, 0.0); + result += mat4(-0.06173998, -0.07121991, -0.01118306, -0.063749574, -0.032665797, 0.0014987896, 0.03113169, 0.06916617, 0.0066490914, -0.052818965, -0.050131317, 0.10337558, -0.030870482, -0.14671221, 0.12152145, -0.05003445) * go_1(1.0, 1.0); + result += vec4(-0.010524109, -0.008519857, -0.08958723, -0.07917139); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.11029161, 0.027180295, -0.115622066, 0.16493714, 0.29633296, -0.11739625, -0.36390316, 0.15221693, -0.009233659, -0.062213745, -0.07184558, 0.07418268, -0.05182182, 0.0066014086, -0.006811494, -0.010030367) * go_0(-1.0, -1.0); + result += mat4(-0.18361749, 0.08565693, 0.24127418, -0.20478591, 0.6198113, -0.17994536, -0.011840256, 0.120292775, 0.2873902, -0.019704796, -0.062267166, 0.0104749305, -0.048370067, -0.028105626, 0.11494511, -0.15941763) * go_0(-1.0, 0.0); + result += mat4(-0.08084502, 0.10195475, -0.03200553, 0.032734055, 0.030348243, -0.028927604, 0.045914374, 0.029237835, 0.07756032, -0.06346545, -0.290196, 0.057043966, 0.13982558, -0.12195619, -0.15895663, -0.10097537) * go_0(-1.0, 1.0); + result += mat4(-0.12018707, -0.320156, -0.4089669, 0.26015735, 0.59622765, -0.05654362, 0.28581724, 0.32069868, -0.0013007161, -0.060870633, -0.2732852, 0.2357145, 0.2137239, 0.0110256495, -0.069258444, 0.113870576) * go_0(0.0, -1.0); + result += mat4(0.54700065, -0.072552234, 0.27267826, -0.26660076, 0.7043544, 0.18192886, 0.80024594, 0.2447395, -0.3289639, -0.2681839, 0.063631415, -1.0118654, 0.45691678, 0.42904988, -0.2301862, -0.6652257) * go_0(0.0, 0.0); + result += mat4(0.19215634, 0.030154131, 0.07679603, 0.50318545, 0.056434657, 0.028623195, -0.14471184, -0.13905096, -0.03254216, -0.1191584, -0.18907212, 0.49208716, 0.5069476, -0.1490824, -0.104480386, -0.06595394) * go_0(0.0, 1.0); + result += mat4(-0.08893682, 0.13113782, 0.023672188, 0.013086517, -0.25986442, 0.038162243, -0.10951209, -0.2027832, -0.013547809, -0.029482972, -0.17670235, 0.13529542, -0.0621569, -0.0979757, -0.10714689, -0.08474307) * go_0(1.0, -1.0); + result += mat4(-0.032828752, 0.00037559783, 0.023968933, -0.047482926, -0.20302027, 0.08830911, -0.20885307, -0.11137413, 0.16585048, -0.076796696, -0.030462325, -0.2020944, 0.048723634, -0.45607433, -0.29950324, -0.5867916) * go_0(1.0, 0.0); + result += mat4(0.008863689, 0.061761267, -0.039097138, 0.24465923, -0.05917457, -0.21383028, -0.085846715, -0.14150433, 0.0988731, -0.0160538, -0.045119412, 0.095252946, -0.057551738, 0.21348421, -0.03480491, -0.26071647) * go_0(1.0, 1.0); + result += mat4(-0.21351442, 0.10038809, 0.34001955, -0.100911774, 0.0208522, -0.028755441, 0.025793588, 0.013080005, 0.03849989, 0.13662058, 0.04311886, 0.17398632, -0.01397261, -0.016415505, -0.0070752064, 0.007656161) * go_1(-1.0, -1.0); + result += mat4(-0.280189, 0.09252764, -0.077729605, 0.12662902, -0.10433321, 0.03644144, -0.06625324, 0.05696802, 0.15468478, 0.08328583, 0.069849946, 0.061947342, -0.05560477, -0.0074776993, -0.15365681, -0.03526299) * go_1(-1.0, 0.0); + result += mat4(0.05886785, 0.15303846, 0.0066637015, -0.19983207, -0.07803175, -0.10772685, -0.12690999, -0.08275092, 0.033436153, 0.08424011, 0.17092863, 0.0043526487, 0.014620474, 0.044702258, 0.1686881, -0.016890949) * go_1(-1.0, 1.0); + result += mat4(0.1833738, 0.14381635, -0.025888365, -0.14182197, -0.25804865, 0.07216123, 0.025790794, 0.14096753, 0.023591481, 0.15610993, 0.026975863, 0.008755717, -0.13039349, -0.063048325, -0.121329494, -0.12331732) * go_1(0.0, -1.0); + result += mat4(0.0005065098, 0.44017914, 0.18493074, 0.13099027, -0.36087477, -0.37567857, -0.48981526, 0.5590752, -0.23918836, 0.19170256, 0.16816153, -0.29986876, -0.44738817, 0.018545123, 0.66217834, 0.31810755) * go_1(0.0, 0.0); + result += mat4(-0.16725904, 0.05753713, 0.058880586, -0.336765, 0.013667228, 0.056172702, 0.13465533, -0.07573556, -0.06313958, 0.06746643, 0.18878669, 0.09404202, -0.21780397, 0.12862128, -0.09476746, -0.34096682) * go_1(0.0, 1.0); + result += mat4(-0.07169524, 0.072302215, 0.052789338, -0.14035568, 0.078670934, -0.22246763, -0.0098074945, 0.024950746, 0.10949147, 0.06182366, 0.021721192, 0.12129548, 0.094007075, 0.06076156, 0.016474832, 0.08092115) * go_1(1.0, -1.0); + result += mat4(-0.10960447, 0.1878152, -0.029822018, 0.10598909, 0.1582181, 0.086522795, 0.093725055, 0.12908185, 0.23202112, -0.28859115, 0.26614165, 0.124523655, 0.19427507, 0.059677128, 0.003624697, 0.44220912) * go_1(1.0, 0.0); + result += mat4(-0.03620583, -0.102766834, 0.025527107, -0.11316131, -0.1507822, 0.0543862, -0.08225627, -0.06438472, 0.04580623, 0.6329729, 0.23854075, 0.35752076, 0.04363613, -0.12580468, -0.0006126687, -0.04995386) * go_1(1.0, 1.0); + result += vec4(0.060475674, -0.042036578, 0.06406282, 0.05569301); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.008187961, -0.08433309, -0.17281345, 0.1306418, -0.2925821, 0.20668334, 0.14854355, -0.15960559, 0.08599311, -0.096088655, -0.10121403, 0.067429096, 0.049158614, 0.036637552, 0.22137405, -0.17016457) * go_0(-1.0, -1.0); + result += mat4(0.024813082, 0.028489944, 0.06814137, -0.1245949, 0.54239255, 0.08648708, 0.28979865, 0.110916786, -0.1927179, -0.17756873, -0.1878214, 0.05795718, -0.080397904, 0.22125137, 0.1907366, -0.016493658) * go_0(-1.0, 0.0); + result += mat4(0.027259264, 0.01494357, 0.04852894, 0.037580628, 0.031005561, 0.003570554, -0.072993, -0.053475574, 0.031119492, -0.14140029, -0.10386501, -0.015266508, 0.01153506, 0.16006693, 0.088294305, 0.04201491) * go_0(-1.0, 1.0); + result += mat4(0.13026185, 0.097255, 0.49145448, -0.33619553, -0.21144676, 0.019042643, -0.27274492, 0.3033865, 0.14040698, -0.13656893, 0.28211337, -0.26930946, -0.1626638, 0.105105706, -0.50837296, 0.39536825) * go_0(0.0, -1.0); + result += mat4(-0.42495522, 0.14972518, 0.0007564128, 0.37367433, 0.44553527, 0.3338494, -0.26058698, 0.087256804, -0.4324135, 0.20706014, 0.33552194, -0.13375738, -0.13469471, 0.22374928, -0.36969653, -0.34171587) * go_0(0.0, 0.0); + result += mat4(0.26543954, -0.004381978, 0.10609993, -0.09718426, -0.15620759, -0.03287476, 0.093032375, 0.00028344034, -0.11699793, -0.016492033, 0.023340177, 0.0062737763, -0.14305823, -0.2721832, -0.160177, -0.06915171) * go_0(0.0, 1.0); + result += mat4(0.03334679, 0.12436332, -0.13226178, 0.13868971, 0.017779246, -0.012697869, -0.11553709, 0.08638636, 0.0955215, -0.0309646, 0.040856246, -0.03978358, 0.023490254, -0.07178907, 0.23794931, -0.1714287) * go_0(1.0, -1.0); + result += mat4(-0.11820261, 0.116130814, 0.58924234, -0.37785482, 0.016644944, -0.071019046, 0.0076222476, -0.024118654, -0.076183304, -0.14971451, 0.06356606, -0.07225465, -0.17400762, 0.030856986, 0.03957665, -0.0070553776) * go_0(1.0, 0.0); + result += mat4(0.10954708, 0.063694, -0.058218896, 0.0010372304, 0.032423936, 0.006164447, -0.031383317, 0.012955956, -0.17115591, 0.16328962, 0.07279567, 0.06571465, 0.005532307, 0.13575353, 0.04082173, 0.041579492) * go_0(1.0, 1.0); + result += mat4(0.03146011, -0.08227295, -0.03498218, 0.04772092, 0.12055223, -0.12383867, 0.05448358, -0.07948453, -0.019064998, -0.0964146, -0.024651276, 0.041473705, -0.06493721, -0.054806646, -0.21607941, 0.20078054) * go_1(-1.0, -1.0); + result += mat4(-0.25740683, -0.33160943, -0.37422308, 0.12679969, -0.032204475, 0.41485202, 0.4538808, -0.082535125, 0.11784846, 0.10195789, 0.064491615, -0.10170162, -0.09500746, -0.15640756, -0.079364255, -0.12576963) * go_1(-1.0, 0.0); + result += mat4(-0.02532797, -0.014487023, -0.09441118, -0.060885422, -0.41196415, -0.1359501, 0.07101173, -0.053279232, 0.010979353, 0.1914526, 0.054606825, 0.015926225, 0.10410896, 0.010272597, -0.048138764, -0.02698072) * go_1(-1.0, 1.0); + result += mat4(-0.35856235, 0.099759184, -0.11972965, -0.03850837, -0.5143867, 0.3721666, -0.100802526, 0.21814734, -0.11864143, 0.15086797, 0.047075786, -0.14188164, 0.48882273, -0.12767795, 0.4937544, -0.41288656) * go_1(0.0, -1.0); + result += mat4(0.21679138, 0.023770422, -0.5454043, 0.18567741, 0.15965948, -0.84900963, -0.4684333, -0.21884751, 0.5876668, -0.9346244, -0.30144307, 0.97177315, 0.24103107, 0.35953388, 0.2032729, 1.2934744) * go_1(0.0, 0.0); + result += mat4(-0.5121466, -0.123357795, 0.1833694, 0.048652876, -0.20895603, 0.0619325, 0.064119816, 0.072841786, -0.21813762, -0.126957, -0.23441431, -0.009071302, -0.09766064, -0.12546945, 0.086008705, -0.0072638122) * go_1(0.0, 1.0); + result += mat4(0.15312338, -0.051029235, 0.07638347, -0.14028431, 0.10694411, -0.14639509, 0.3193828, -0.22767228, -0.19987194, 0.18207504, -0.19648756, 0.24752761, -0.03402804, -0.04186147, -0.20177092, 0.09467012) * go_1(1.0, -1.0); + result += mat4(-0.3587345, -0.20358992, -0.11016057, 0.21079709, -0.26201126, 0.040362626, 0.3186598, -0.059521858, 0.27564716, -0.041431133, 0.19315968, -0.30228892, 0.01191173, -0.10380854, 0.03030344, 0.026699625) * go_1(1.0, 0.0); + result += mat4(0.13373446, -0.011457521, -0.24851708, 0.06563771, -0.051668253, 0.09096929, -0.013976447, 0.041433394, -0.046981215, -0.00015144625, 0.05696515, 0.024501698, 0.2714476, -0.017434085, 0.025333954, -0.054034695) * go_1(1.0, 1.0); + result += vec4(0.06757453, -0.021112159, -0.015639946, 0.05520713); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.03795613, 0.09572901, 0.019826923, 0.10568741, -0.0030050736, -0.018890928, 0.0095737, 0.00807826, -0.022741016, 0.0046556294, -0.017018225, -0.010523109, -0.017621946, -0.0006488902, -0.009405731, -0.0027796263) * g_0; + result += mat4(-0.046617493, -0.018167915, -0.039274286, -0.027566826, -0.015821747, 0.003789104, -0.0020801623, 0.004032968, -0.05708595, -0.018440764, -0.032891296, 0.004184342, 0.047413353, 0.0034510887, 0.019148773, -0.0035636695) * g_1; + result += mat4(-0.046619494, -0.017274255, -0.03372405, -0.011152855, 0.10981248, 0.036214054, 0.07969624, 0.05590572, -0.031791378, -0.00307391, -0.0032425344, 0.0025762853, 0.0053703627, -0.02076939, -0.00058634114, -0.012593452) * g_2; + result += mat4(0.110471316, 0.031102506, 0.07860556, -0.018570926, -0.05038586, -0.07667239, -0.0819002, -0.08958284, 0.03846167, -0.007570915, 0.008598097, -0.0082979705, -0.03610172, -0.022735123, 0.02343143, 0.030037913) * g_3; + result += mat4(-0.075562544, -0.020187575, -0.020969959, 0.0062222136, 0.019780673, 0.059694994, 0.019240001, 0.05951303, 0.004168261, 0.00041100322, -0.0013793377, 0.002048099, -0.040564027, -0.031818517, -0.015498987, -0.02695407) * g_4; + result += mat4(-0.0016428401, 0.018965026, -0.013192817, -0.008289604, -0.044686675, -0.009061507, -0.049217258, -0.043777503, -0.07308355, -0.063734084, 0.019393511, -0.028853234, 0.057311818, 0.04126226, 0.086301416, 0.11784249) * g_5; + result += mat4(-0.06087458, 0.046508487, -0.10723279, 0.017619802, 0.13637137, 0.2054238, 0.013641375, 0.091581754, 0.03556439, 0.0500333, 0.0696777, 0.0922045, -0.020914901, -0.025425691, -0.050319638, -0.049094327) * g_6; + result += mat4(0.0030941095, -0.008679898, -0.05815756, -0.038728733, -0.062450465, -0.073838525, -0.030359933, -0.08355475, -0.039032117, -0.0689333, -0.04834296, -0.079471886, 0.09694701, 0.17491414, 0.093450785, 0.16742545) * g_7; + result += mat4(0.035618782, -0.027659958, 0.055540156, 0.013073733, 0.12144545, 0.05981087, -0.015131131, -0.0476281, -0.090847984, 0.005347584, 0.015588529, 0.024184622, -0.10743599, -0.01785147, -0.08566232, -0.14611128) * g_8; + result += mat4(-0.03812077, 0.018126076, -0.016625525, -0.06906415, -0.06267368, -0.058914356, 0.0009385371, -0.026746314, 0.048242237, 0.028906677, -0.028120263, -0.004209134, 0.009636235, 0.013206963, 0.07449269, 0.038961377) * g_9; + result += mat4(-0.014510558, -0.021065345, 0.09356215, -0.005815953, 0.08807958, 0.067895725, 0.08723713, 0.057831496, -0.10227873, -0.07699344, -0.06321843, -0.07448854, 0.09820774, 0.007563063, -0.14045772, -0.014161681) * g_10; + result += mat4(-0.18385889, 0.2255883, -0.29741547, 0.14618248, -0.08100661, -0.06860545, -0.112705804, -0.122642964, -0.06736901, 0.06971933, 0.12909706, -0.0418256, -0.32786265, 0.032497127, 0.4390302, 0.032726523) * g_11; + result += mat4(0.10560793, 0.083280005, -0.20369564, -0.14290833, -0.119196005, -0.028741803, 0.020456403, -0.06509816, 0.073811695, 0.02724128, -0.08691891, 0.10240907, 0.16827166, -0.17502932, -0.18295282, 0.15154512) * g_12; + result += mat4(0.0036247042, -0.002368346, 0.049646147, 0.058079436, 0.14403848, 0.07125248, 0.040327612, -0.013934329, 0.03871744, -0.1717596, 0.20666012, -0.24093682, -0.09846371, 0.011563227, 0.11973811, -0.0574434) * g_13; + result += vec4(0.022095086, 0.021079032, 0.030224537, 0.02154015); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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/shaders/Anime4K_Upscale_Denoise_CNN_x2_S.glsl b/shaders/Anime4K_Upscale_Denoise_CNN_x2_S.glsl new file mode 100644 index 0000000..c1b4cb1 --- /dev/null +++ b/shaders/Anime4K_Upscale_Denoise_CNN_x2_S.glsl @@ -0,0 +1,158 @@ +// 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-Denoise-CNN-x2-(S)-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(6.5515305e-05, 0.09565814, -0.0022499533, 0.14627136, -0.0065872427, 0.1441769, 0.17772098, 0.16298898, 0.03727593, 0.02010636, 0.013131043, 0.07891907, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.029612074, -0.01204274, 0.07698074, 0.3855172, 0.0045466167, -0.0859741, 0.26930287, 0.67549795, -0.036623597, 0.051749162, -0.04714053, 0.16092339, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.030328937, -0.15884648, 0.0082092965, -0.05052196, 0.041409027, -0.23017453, 0.31568366, 0.05136558, -0.0106390705, -0.12503141, -0.07030922, -0.08512375, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.059616547, -0.12322959, 0.058520414, -0.039292034, 0.08059592, -0.22441447, 0.15380386, -0.17675085, -0.009270574, 0.034731936, -0.048767723, 0.025933916, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.4495482, 0.37551787, -0.4227873, -0.4890034, -0.9007091, 0.7524192, -1.271679, -0.68366605, -0.07302573, 0.09378561, 0.010367829, -0.24593607, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.12684742, -0.11042779, 0.01793761, 0.06982078, 0.12901784, -0.10123104, -0.2129385, -0.15062876, 0.019824497, -0.015181707, 0.070795976, 0.13549626, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.036070887, -0.2733308, 0.05836442, -0.06817092, -0.08980838, -0.514616, 0.2965783, 0.103823625, -0.015213521, -0.16376303, 0.0017071419, -0.0922202, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.053406045, 0.011273207, -0.05544644, 0.09432561, -0.04143601, -0.0783786, -0.39899537, 0.040322974, -0.046442945, 0.052499074, 0.03397099, 0.05516481, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.35976252, 0.197882, 0.031213427, -0.02211337, 0.7940331, 0.327452, 0.30120966, 0.03181121, 0.13782893, 0.060073618, -0.00940469, -0.0358819, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.004601904, -0.0030944077, 0.14569537, -0.016794242); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(S)-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.103708945, -0.050891697, -0.2067834, -0.033582103, -0.08676132, 0.15528207, -0.10070597, -0.13641205, 0.030959459, 0.12798834, -0.058627255, -0.008511715, 0.023304658, -0.027084433, 0.120355256, -0.023104342) * go_0(-1.0, -1.0); + result += mat4(0.0550643, -0.26851672, 0.11073926, 0.21989855, 0.012853378, 0.028077757, 0.073306665, -0.04551125, 0.16005373, -0.018154016, -0.12347146, -0.07590073, -0.10193998, 0.084696375, 0.04041413, -0.030883553) * go_0(-1.0, 0.0); + result += mat4(-0.04816972, 0.0804637, 0.0071406, -0.08482986, 0.11176785, 0.060121994, -0.047804814, -0.036170192, 0.01989302, -0.12537469, -0.16283676, 0.19132937, -0.052577138, -0.005143432, 0.045614418, 0.04198543) * go_0(-1.0, 1.0); + result += mat4(-0.33660156, 0.036350835, -0.4623589, -0.04140598, 0.2436438, -0.044735093, 0.20876355, -0.004252532, 0.81046224, -0.18550895, 0.32743093, 0.109012894, -0.34675312, -0.03464997, -0.09489919, -0.07961427) * go_0(0.0, -1.0); + result += mat4(-0.08862038, -0.8168393, 0.03584266, 0.32159033, 0.06634099, 0.2985745, -0.18204363, -0.016070427, 0.35503992, 1.1388919, 0.16171643, -0.63834023, -0.0037699202, -0.27919513, -0.20949292, 0.03270466) * go_0(0.0, 0.0); + result += mat4(0.021701936, -0.04537874, -0.05514495, 0.23225744, 0.024968185, 0.1816845, 0.03485249, -0.28249854, -0.37759346, -0.3225813, 0.021595621, 0.17104608, -0.0044055753, 0.01621266, -0.015169225, 0.08956203) * go_0(0.0, 1.0); + result += mat4(-0.033255238, -0.110517226, 0.10664505, 0.019566126, -0.0695305, 0.059743922, -0.19161415, -0.024217626, -0.08578889, -0.16358584, -0.23050265, -0.004697784, -0.060790297, 0.1174991, 0.08205285, -0.011846926) * go_0(1.0, -1.0); + result += mat4(0.6119327, 0.0791928, -0.118774265, 0.42233524, -0.16248553, -0.017692063, 0.13530938, -0.3207985, -0.147722, -0.24525681, 0.05243329, -0.38583818, 0.5147888, -0.072632834, -0.6014986, 0.26713687) * go_0(1.0, 0.0); + result += mat4(0.23735437, -0.032110002, 0.17445332, -0.3272264, 0.020623574, 0.26734766, -0.16806662, 0.0796467, -0.34921628, 0.016648084, -0.14200358, 0.59190625, 0.13177821, 0.11139572, -0.14972521, -0.16784541) * go_0(1.0, 1.0); + result += mat4(-0.047283772, -0.003196778, 0.44890094, 0.14619343, -0.17113213, -0.068454474, 0.07681565, -0.04306807, -0.0022641511, -0.20954822, 0.0344229, 0.014815744, -0.010632933, 0.13355999, -0.0860752, -0.069001146) * go_1(-1.0, -1.0); + result += mat4(0.11664345, 0.099102855, 0.1642523, 0.047408774, 0.038490184, 0.16064398, -0.08694127, -0.2149453, -0.1413128, -0.06531084, -0.10105762, 0.19743964, 0.10458527, -0.04133969, 0.1425028, -0.013283083) * go_1(-1.0, 0.0); + result += mat4(0.0138432095, -0.20053013, 0.079355195, 0.273772, 0.05484276, 0.13891658, 0.16240036, -0.25245088, 0.011192391, 0.104164094, 0.08112111, -0.250435, -0.0559613, -0.031029798, -0.015725998, 0.09240792) * go_1(-1.0, 1.0); + result += mat4(0.18754779, -0.33171803, 0.34917468, 0.29074225, -0.37954012, 0.20898043, -0.24973525, -0.13707505, -0.31585664, 0.13607393, -0.29118514, 0.015055187, 0.18549949, -0.06351915, 0.2823401, -0.00019733967) * go_1(0.0, -1.0); + result += mat4(0.10060476, 0.2883022, -0.15810104, -0.041112892, 0.31050095, 0.18517002, 0.020033397, -0.35919502, -0.17903808, -0.43506318, -0.14783014, 0.20092726, -0.002020754, 0.13320895, 0.040995706, 0.052643474) * go_1(0.0, 0.0); + result += mat4(-0.014892139, 0.005828587, 0.044784732, -0.27272886, 0.21069369, 0.044396695, -0.03411123, 0.031441864, 0.17224072, 0.1708587, -0.00729118, -0.13070418, -0.19128975, -0.09342688, -0.051133234, -0.089075714) * go_1(0.0, 1.0); + result += mat4(0.08799108, 0.04157696, -0.15010124, 0.26832178, -0.0040120087, 0.040308744, 0.17632529, -0.09464763, 0.07786305, 0.038288828, 0.40799135, 0.037377868, -0.049877923, -0.25080636, 0.00068664295, 0.0013101585) * go_1(1.0, -1.0); + result += mat4(0.0353459, -0.21445732, 0.112647906, -0.3513759, 0.16887255, 0.3224789, -0.17073384, 0.10875396, 0.18919177, 0.14288992, 0.07364533, 0.20205943, -0.34363645, -0.3520186, 0.6763608, -0.19051236) * go_1(1.0, 0.0); + result += mat4(-0.032245517, 0.039594565, -0.11825768, 0.16509856, 0.11749939, -0.005166539, 0.10740687, -0.3794017, 0.12722437, 0.14066173, 0.08025407, -0.34773758, -0.027300838, -0.08963159, 0.29774833, 0.053532287) * go_1(1.0, 1.0); + result += vec4(0.022899346, 0.033619333, 0.030674957, -0.017047008); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(S)-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.0714004, -0.0545495, -0.050848898, 0.04724593, 0.2214181, 0.26353878, 0.07314053, -0.18771721, 0.06282607, -0.03720548, 0.020577375, -0.08951135, 0.40820515, 0.012179098, 0.52947706, -0.48448065) * go_0(-1.0, -1.0); + result += mat4(0.10311368, -0.10970221, 0.07008208, -0.07143153, 0.073753305, 0.03786335, -0.4312538, -0.17680745, -0.15527713, -0.06711554, -0.21828765, 0.27252844, -0.0025433605, 0.31595528, -0.06065309, 0.059542265) * go_0(-1.0, 0.0); + result += mat4(-0.036736265, 0.08704119, -0.06530063, 0.04546563, 0.010335546, -0.040761005, -0.021500558, 0.104531065, 0.094652064, -0.05088704, 0.14768088, -0.08585825, 0.057680476, 0.09885713, 0.18074304, -0.14277679) * go_0(-1.0, 1.0); + result += mat4(-0.04810641, -0.01735864, -0.06405213, 0.04889552, -0.011552542, -0.04617259, 0.023976233, 0.27587202, -0.117965676, -0.07052052, -0.030583147, -0.036600694, -0.08542387, -0.053850796, 0.27242282, -0.73792183) * go_0(0.0, -1.0); + result += mat4(-0.1340838, 0.1256252, -0.040528856, 0.13554344, -0.13733707, -0.14641404, 0.42666963, -0.4933124, -0.34908, 0.054332364, -0.2768947, 0.44689894, 0.42182985, -0.027279109, -0.17136064, -0.009496184) * go_0(0.0, 0.0); + result += mat4(0.075086355, -0.025501372, 0.02172236, -0.052761186, -0.055753034, -0.028023237, -0.08829973, 0.14333946, 0.062496934, 0.034493748, 0.17640088, -0.084869936, 0.21283653, 0.1184779, 0.0016387368, -0.14988145) * go_0(0.0, 1.0); + result += mat4(0.054841094, 0.040639404, -0.025044259, -0.071105786, -0.07473824, -0.04719771, 0.016553668, -0.10028357, 0.009365985, -0.0133521445, 0.022320358, -0.09318326, 0.17342545, 0.19281831, 0.16737404, -0.09583887) * go_0(1.0, -1.0); + result += mat4(-0.03950585, 0.091417804, -0.021395942, 0.08735149, -0.029363452, -0.04763804, -0.1430701, 0.15344201, -0.006604305, 0.05897304, -0.13595524, 0.083323576, 0.008187976, 0.12946083, 0.14983748, -0.08178542) * go_0(1.0, 0.0); + result += mat4(-0.00046765045, -0.07914878, 0.03529457, -0.007752294, -0.10084779, -0.1531338, -0.1408283, 0.20638838, 0.01466853, -0.059309185, -0.11161097, 0.08481583, 0.090416916, 0.081118226, 0.08677104, -0.20095336) * go_0(1.0, 1.0); + result += mat4(0.3200496, -0.049090706, 0.11554867, -0.11949655, -0.18064958, 0.0012254696, -0.032284267, 0.00076361356, -0.13239916, -0.13838826, -0.20345089, 0.00692921, -0.2271236, -0.07132879, -0.097703665, 0.29881954) * go_1(-1.0, -1.0); + result += mat4(0.4095371, 0.3008338, -0.43109173, -0.495734, 0.15016843, -0.3890023, 1.0669806, -0.20876339, -0.32241493, -0.10387533, -0.018227777, 0.1349976, -0.0019588785, -0.19263229, 0.38952798, 0.08135965) * go_1(-1.0, 0.0); + result += mat4(0.01517036, -0.51562387, -0.13939962, -0.23287989, 0.09597558, 0.017624658, 0.16989397, -0.09395267, -0.29612765, 0.11843327, -0.07493133, 0.14523852, 0.040488124, 0.016568637, 0.10204776, -0.13137013) * go_1(-1.0, 1.0); + result += mat4(-0.1512155, -0.12732185, 0.08002965, 0.024762904, 0.05106389, 0.011125884, -0.043196492, -0.17617282, 0.09791206, 0.120643355, 0.075500526, 0.10948051, 0.04969893, -0.20776172, -0.06905779, -0.20245977) * go_1(0.0, -1.0); + result += mat4(-0.41836104, -0.82896453, -0.20962712, 0.7804863, 0.17322528, 0.53994787, -0.18730208, -0.021233026, 0.7417944, -0.4544313, 0.23165174, -0.63969344, 0.09383021, -0.046137553, -0.07796646, 0.11413524) * go_1(0.0, 0.0); + result += mat4(-0.32532063, 0.09456587, 0.43708017, -0.40595353, 0.061229162, 0.006663704, -0.19821976, 0.07661682, -0.21427135, 0.17748164, -0.31958643, 0.3883502, 0.068938896, 0.022886515, 0.022923468, -0.04269318) * go_1(0.0, 1.0); + result += mat4(0.23775512, 0.04026384, 0.12276414, -0.2545085, 0.0894177, 0.115443565, 0.029124375, 0.08887401, -0.0057824687, 0.017655179, -0.025270017, -0.06643964, 0.01316084, 0.024039604, 0.034566984, -0.12682836) * go_1(1.0, -1.0); + result += mat4(0.036596492, 0.22772355, -0.05508538, -0.18005793, -0.06432669, -0.037058707, 0.2718052, -0.10313161, 0.016055575, 0.051271006, -0.038919963, -0.036601298, -0.019457681, 0.03805731, 0.03252896, -0.07179724) * go_1(1.0, 0.0); + result += mat4(0.15046261, 0.13090402, -0.023847125, -0.039356075, 0.045424663, -0.20594294, 0.2154043, -0.18429665, -0.07969159, 0.08719893, -0.057626463, 0.08344988, -0.018651528, 0.047302175, 0.060727824, -0.035960387) * go_1(1.0, 1.0); + result += vec4(0.04921464, -0.0011432811, 0.062071066, -0.06594219); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(S)-Conv-4x3x3x8 +//!HOOK MAIN +//!BIND conv2d_2_tf +//!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 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.04508749, 0.00222134, 0.013338363, -0.0067310617, 0.099346675, 0.05804196, 0.018694466, -0.008126048, 0.007771997, -0.0072556734, -0.008293339, 0.001518462, -0.06296499, -0.064195156, 0.0727399, 0.044078834) * go_0(-1.0, -1.0); + result += mat4(0.20800652, -0.016071903, -0.08095607, -0.03472411, -0.20690396, 0.061331827, -0.10627648, 0.12838624, 0.036534917, -0.006113497, 0.029266752, -0.002263159, 0.2937966, -0.05544609, 0.14546311, -0.01290958) * go_0(-1.0, 0.0); + result += mat4(0.07792222, -7.288649e-05, 0.2800036, 0.019709835, -0.010950291, 0.021879988, 0.037608813, 0.055267945, 0.018646395, -0.016691998, 0.03787624, -0.006547077, 0.03214097, -0.018541625, 0.12142825, -0.070806496) * go_0(-1.0, 1.0); + result += mat4(-0.009798109, -0.06606263, 0.0010101331, 0.009924258, -0.10272075, -0.07983353, 0.028398676, 0.04967719, 0.12467993, 0.06775066, 0.017111637, 0.012814711, 0.0031143876, -0.0902014, 0.11242646, 0.076476306) * go_0(0.0, -1.0); + result += mat4(0.07650971, 0.35096344, 0.0612814, 0.06036218, 0.253547, -0.0460987, -0.11145313, -0.48844674, -0.050644107, 0.038706005, 0.19390784, 0.035322774, -0.010191005, 0.58071, -0.2856661, -0.009533105) * go_0(0.0, 0.0); + result += mat4(-0.071486905, -0.036179904, -0.07303894, 0.19301178, -0.11499898, -0.024847068, -0.0027055284, 0.20373714, -0.09671404, -0.020897992, -0.25572056, -0.008931707, -0.13582602, -0.006546881, -0.16154496, 0.26454738) * go_0(0.0, 1.0); + result += mat4(0.005463064, 0.006769753, 0.0039625713, 0.014121269, -0.068200685, -0.057850275, 0.008622973, 0.061149873, 0.017436448, 0.11660872, -0.02994459, 0.008590145, -0.03223439, 0.052557915, -0.011846354, 0.03523357) * go_0(1.0, -1.0); + result += mat4(-0.00015264735, 0.0012872831, 0.021878848, 0.022240406, 0.01822283, -0.008284247, -0.018443186, -0.04997753, -0.111760505, -0.20911667, 0.006166832, 0.14597091, 0.02305932, -0.16312876, 0.023375351, -0.028755601) * go_0(1.0, 0.0); + result += mat4(0.013701143, 0.010794129, 0.0024321147, -0.018976321, 0.0365032, -0.006783485, 0.01046472, -0.08473902, 0.057523903, 0.029831914, 0.0040916028, -0.2046352, 0.03542, -0.034598, 0.0031058635, -0.20746285) * go_0(1.0, 1.0); + result += mat4(0.09283864, -0.0035849356, 0.013190911, -0.035437535, 0.035798516, 0.022954805, -0.0029692063, -0.006633743, -0.13456796, -0.011448714, 0.011536131, 0.046695728, -0.0359048, -0.01144856, -0.0027279712, 0.0065755467) * go_1(-1.0, -1.0); + result += mat4(-0.14295974, -0.0034393691, 0.0051469817, -0.021334402, -0.05882422, -0.003004241, 0.011182507, 0.0015169785, 0.08474255, 0.1255887, -0.23984577, 0.07119401, -0.12547183, 0.038449038, 0.007738907, 0.031506266) * go_1(-1.0, 0.0); + result += mat4(-0.028237654, 0.010254326, -0.11843009, 0.03034298, -0.038323015, 0.0026470951, -0.060652684, 0.0022312272, -0.022539174, -0.01008126, 0.14868541, 0.02881852, -0.05327277, -0.012296453, -0.21280704, -0.021286633) * go_1(-1.0, 1.0); + result += mat4(-0.034825645, 0.0877418, -0.009103147, 0.041650586, 0.0135769, -0.005229229, 0.00082947424, -0.0020421906, 0.12402267, 0.007698874, -0.056337915, -0.006580138, -0.018867968, -0.08487179, -0.020938644, -0.029210499) * go_1(0.0, -1.0); + result += mat4(-0.37082648, -0.30321857, -0.22912364, -0.07368761, 0.15169628, 0.0013253551, 0.09232649, 0.011408914, 0.06347244, -0.377988, 0.13980117, -0.41065913, -0.00040237256, -0.23220152, -0.03643865, -0.10101427) * go_1(0.0, 0.0); + result += mat4(0.10692653, 0.049867555, -0.011915118, -0.10688069, 0.042109665, -0.017163716, 0.10852331, -0.0088934945, 0.06780516, -0.017808875, 0.26564032, 0.0523693, 0.099033475, 0.042864073, 0.18299587, -0.13503626) * go_1(0.0, 1.0); + result += mat4(0.07014404, 0.08841395, 0.01895322, 0.0036451078, -0.00933168, 0.044764042, -0.0034986525, 0.010701783, -0.043601245, -0.1375109, 0.0039965697, -0.054331, 0.018830067, 0.040386382, 0.007759782, -0.012478715) * go_1(1.0, -1.0); + result += mat4(0.024152381, -0.11462646, 0.07005155, 0.0424638, -0.0048070764, 0.06089261, -0.036675487, 0.057459857, 0.02478629, 0.2926517, -0.08248396, -0.053960845, 0.013205341, 0.09851673, -0.04310949, -0.001428641) * go_1(1.0, 0.0); + result += mat4(0.016168298, 0.009701502, 0.0064305146, -0.068672284, -0.044653386, -0.016051823, -0.015055443, 0.032019246, -0.0829852, -0.011304939, 0.0023902296, 0.30322486, -0.023831543, -0.0046928846, 0.026961725, 0.16314326) * go_1(1.0, 1.0); + result += vec4(-0.0031417734, -0.002754766, -0.004053268, -0.003937834); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-CNN-x2-(S)-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/shaders/Anime4K_Upscale_Denoise_CNN_x2_UL.glsl b/shaders/Anime4K_Upscale_Denoise_CNN_x2_UL.glsl new file mode 100644 index 0000000..18c8453 --- /dev/null +++ b/shaders/Anime4K_Upscale_Denoise_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-Denoise-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.21481565, -0.0914136, -0.067639425, -0.13521406, 0.14386347, -0.007917821, -0.0018606511, -0.07272963, 0.09651574, 0.09874618, 0.06434639, 0.1787858, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.06402414, -0.014693245, -0.25395226, 0.2960157, -0.12494867, 0.17711689, 0.31812787, -0.22346497, -0.1172598, -0.17087954, -0.031076867, -0.26865217, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.19254248, -0.049369957, 0.08171505, -0.12660322, 0.11544268, 0.15840095, -0.11473022, 0.144489, 0.07068809, 0.041438796, 0.10749463, -0.057156503, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.040826935, 0.0030781324, 0.094986334, -0.2573781, -0.11649985, 0.018165307, 0.039985053, -0.15652324, -0.014886749, -0.00988401, -0.15025067, -0.0031970344, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.15658751, 0.08227927, 0.23491348, 0.29900867, -0.45667845, 0.0438649, -0.39066258, 0.6590342, 0.009331404, 0.097770594, 0.21618316, 0.25005254, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.16455166, 0.013149855, 0.21515559, 0.03110101, -0.008973558, 0.33310282, -0.03276024, -0.3356557, 0.007899698, 0.295166, -0.73289853, 0.16696596, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.2691608, 0.09478436, 0.006536417, -0.04095308, -0.10942356, -0.0481289, -0.039660163, -0.20591366, -0.08013109, -0.052268907, 0.046878606, -0.024840442, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.17120434, -0.06828329, -0.23515487, 0.11830264, 0.67815524, -0.10693793, 0.2392081, -0.3192851, 0.06719006, -0.03441811, 0.020009553, -0.21328516, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.30072933, 0.0348702, 0.15155697, -0.15580897, -0.12755825, -0.57249874, -0.10091004, 0.22914392, -0.017671, -0.26088336, -0.00079997425, -0.022365946, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.0366252, 0.028346894, 0.033923555, 0.00025824012); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.042849753, -0.11642484, 0.073895186, 0.15186316, -0.024499241, 0.056690346, 0.05013788, -0.10182528, -0.024302427, 0.06578479, -0.028199008, -0.070577, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.040659044, 0.22913207, -0.1847038, -0.11781796, 0.044752445, 0.009552658, -0.11374249, 0.12798874, 0.056919675, -0.20839268, 0.11021251, 0.044297826, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(-0.009999239, 0.1996945, -0.29797587, -0.4280957, -0.008521183, -0.10773894, 0.22186345, 0.254737, -0.003993275, -0.07186837, 0.16690473, 0.19043307, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.16174923, 0.26882383, 0.50559163, 0.38955548, 0.14091976, -0.15637094, -0.11826545, -0.23424837, 0.01674066, -0.08578336, -0.16907434, -0.19845173, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(0.10735882, -0.016069679, 0.42237386, -0.19937111, 0.07271503, 0.07596921, -0.24035113, 0.12406044, 0.059160866, -0.051063746, -0.36897844, 0.061272774, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(0.015712388, -0.34878746, -0.66418105, -0.35441992, -0.12208571, 0.042238027, 0.30143425, 0.3610614, -0.09538538, 0.25334427, 0.24629802, 0.030739667, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.0035519397, 0.07191882, -0.20775351, -0.15425798, 0.07919461, 0.07578178, 0.12668823, 0.0011835548, 0.03245292, -0.105801836, 0.24585879, 0.13730717, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.2415042, -0.16800308, 0.48690978, 0.75166744, 0.3876131, 0.038878918, -0.3293806, -0.47433355, 0.057803743, 0.09533431, -0.1342232, -0.2982094, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.18697992, -0.60250723, -0.11149202, -0.015566043, -0.57483697, 0.07203411, 0.050863862, -0.078300595, -0.09433572, 0.27099958, -0.03195694, 0.10535165, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.043337345, 0.16099554, -0.030338328, 0.0074565704); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.05112635, -0.09334158, -0.031148188, -0.041258592, -0.04633252, 0.022155467, 0.16979018, 0.06819186, 0.094320215, 0.02111737, -0.15604521, -0.15083192, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.10213034, 0.41852444, 0.32454407, -0.058512308, -0.054484565, -0.24399261, -0.26164648, -0.34274867, -0.06912002, 0.02257528, 0.2588075, 0.24375258, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.019957408, 0.06354756, 0.10109863, 0.16890836, 0.06791468, 0.1259216, 0.3096521, 0.07912831, -0.08293642, -0.16565439, -0.050881315, -0.0576009, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.19822149, 0.34747612, -0.20176221, 0.042434175, -0.029007072, -0.1637076, -0.09433387, 0.32732537, -0.12577844, -0.049755163, 0.091352955, 0.27023584, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.26348627, 0.52249527, -0.4091685, -0.41065818, 0.050318573, 0.06534145, -0.15470429, 0.52704567, 0.08808197, -0.37854514, -0.22827432, 0.1498618, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.0865881, -0.8053624, 0.088793345, -0.22072543, -0.0141816195, 0.0049849018, 0.21256319, -0.327414, 0.1364984, 0.4927693, 0.1848864, -0.18559869, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.11838837, 0.056446314, 0.08738398, 0.31899074, 0.056432292, -0.0008520313, 0.018734995, -0.33501405, -0.00918473, -0.040785775, 0.04093389, -0.19747448, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.66065794, -0.5208613, -0.018835181, 0.26112127, 0.055486765, 0.113573246, -0.05028873, 0.05364108, 0.040549137, 0.28754827, -0.16565348, -0.37204087, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.06361742, 0.00907182, 0.06848412, 0.0057870117, -0.05289465, 0.068106346, -0.15660144, -0.20288356, -0.093512855, -0.17268412, 0.030761726, 0.36189792, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(-0.51499516, 0.026265146, 0.05636954, 0.03170462); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.028563375, 0.075096495, 0.054740135, -0.097906366, -0.26889417, 0.0982474, 0.0013334368, 0.10432092, 0.2450199, -0.12516013, 0.11230964, 0.01147953, 0.085179225, 0.117808536, -0.123295836, 0.1002614) * go_0(-1.0, -1.0); + result += mat4(0.19004358, 0.077133805, -0.42637873, -0.08600882, 0.041925456, -0.2716079, -0.1856413, 0.017397093, 0.037734076, 0.21233109, -0.2645201, 0.074807495, 0.047724582, -0.027935218, -0.003907437, -0.04731259) * go_0(-1.0, 0.0); + result += mat4(0.09745319, 0.22767977, 0.37006328, 0.05020985, 0.039997175, -0.029447127, 0.1779581, -0.01620031, -0.010955076, 0.13874966, -0.053154904, 0.020808663, -0.11724862, -0.20081818, 0.047436096, -0.08110093) * go_0(-1.0, 1.0); + result += mat4(0.18583415, -0.20435709, 0.01911209, -0.026401127, -0.12581685, 0.014082952, -0.2001187, -0.08042616, -0.10389668, -0.10207221, 0.04581297, -0.08704452, 0.09200634, -0.13755022, -0.007857635, 0.10011377) * go_0(0.0, -1.0); + result += mat4(0.21004692, 0.30619434, 0.10146727, -0.012386493, -0.093512, -0.22519337, 0.16826348, 0.14847179, -0.019215466, -0.18989901, 0.09468501, 0.26023552, -0.07841198, 0.23280892, 0.00941152, 0.16808987) * go_0(0.0, 0.0); + result += mat4(0.26988962, -0.022920275, -0.195991, 0.08438454, 0.12282865, -0.07083694, 0.07814293, -0.08369662, -0.05397518, 0.06164561, 0.070263356, -0.049779683, -0.12997615, -0.12259467, -0.29498726, -0.2244981) * go_0(0.0, 1.0); + result += mat4(0.22414525, -0.022969153, -0.063833915, -0.027190238, 0.13401125, 0.02098015, -0.22264218, -0.12177459, -0.12630488, 0.14246967, -0.06480293, -0.11353247, -0.12755829, -0.02848558, 0.006076032, 0.14054467) * go_0(1.0, -1.0); + result += mat4(0.13391276, 0.06295799, 0.31367007, -0.19527563, -0.040563866, 0.11965244, 0.27989656, -0.057327088, 0.035627916, -0.119488806, -0.24792899, 0.13612582, 0.029112214, -0.08201902, 0.17605872, -0.089963086) * go_0(1.0, 0.0); + result += mat4(-0.01927269, -0.034413125, -0.18000118, 0.042171028, 0.0791958, -0.1210223, -0.07674829, 0.02870783, 0.1884872, -0.012900881, 0.1311204, 0.06283302, 0.0027031084, -0.11157234, 0.06318397, -0.13527857) * go_0(1.0, 1.0); + result += mat4(0.1419255, -0.16276762, 0.00092816725, 0.0078547085, -0.48728654, -0.05630108, -0.33906484, 0.025995376, 0.07410779, -0.06377176, -0.038708985, -0.10480868, 0.096948944, -0.08378831, 0.08217461, 0.126169) * go_1(-1.0, -1.0); + result += mat4(-0.07488089, -0.2994524, 0.23773918, -0.034476187, 0.0592535, 0.29324362, -0.030512415, -0.17258315, 0.08022449, -0.17212203, 0.17636995, 0.06854101, -0.029770015, -0.10313743, 0.46230134, 0.026522856) * go_1(-1.0, 0.0); + result += mat4(-0.018750735, -0.032278806, -0.16665034, -0.05022533, 0.057606205, 0.13155009, 0.06575953, 0.10044875, -0.09888156, 0.263175, -0.3478382, -0.08823663, -0.081383094, -0.044876218, -0.47501948, -0.062558904) * go_1(-1.0, 1.0); + result += mat4(-0.105735146, 0.30434787, -0.04748756, 0.13275737, 0.3215866, -0.097894445, 0.027429244, -0.2778113, 0.07703074, 0.0012649142, -0.54314685, 0.17256977, 0.16500366, -0.0060054287, 0.17721342, -0.37938938) * go_1(0.0, -1.0); + result += mat4(0.14780188, 0.2596772, 0.31135467, -0.02797583, -0.015622625, -0.006320702, -0.08333076, -0.018904723, 0.1389364, 0.19142458, 0.6817067, -0.054837633, 0.21896258, 0.036575202, -0.9033377, -0.25137353) * go_1(0.0, 0.0); + result += mat4(-0.12165315, 0.18358506, -0.1983472, 0.08618611, -0.1101336, -0.02491273, 0.36231366, 0.24619159, 0.07281212, 0.35466114, 0.32505757, 0.022900501, -0.25818315, -0.49635252, 0.2928282, 0.057359587) * go_1(0.0, 1.0); + result += mat4(-0.23839255, 0.1707951, 0.09135314, 0.1034047, -0.034727763, -0.1243241, 0.118879616, 0.06359015, -0.12569816, -0.116403826, 0.13372615, -0.04866488, -0.070711434, 0.21472852, 0.098126635, 0.16186984) * go_1(1.0, -1.0); + result += mat4(-0.0020077212, -0.1095719, -0.20081437, 0.028084867, -0.1479706, -0.028820625, -0.09085524, 0.118761584, -0.15923466, -0.32149267, -0.50690764, 0.040582787, 0.039979883, 0.026478326, -0.040531024, -0.13908122) * go_1(1.0, 0.0); + result += mat4(-0.085969776, 0.18301825, 0.11408605, 0.025418868, 0.11126661, -0.044224992, -0.061021794, -0.015779478, 0.10210226, -0.19080523, -0.14473902, 0.14097509, 0.14796504, 0.14814787, 0.11975678, -0.039735712) * go_1(1.0, 1.0); + result += mat4(0.27801284, 0.20288002, -1.2655782, 0.32888517, -0.02334678, 0.18978934, 0.23810555, 0.0074393786, 0.08552408, -0.1274367, -0.086998045, -0.024746515, 0.102745675, -0.086740054, -0.038129628, -0.0651254) * go_2(-1.0, -1.0); + result += mat4(-1.190979, -0.19575417, -0.569518, -0.17817745, -0.059261408, 0.09253248, -0.27272785, 0.17687175, 0.12146025, -0.07960662, 0.15846346, -0.14022483, 0.007532498, -0.096234165, 0.2769003, -0.14700246) * go_2(-1.0, 0.0); + result += mat4(-0.042687517, 0.022726525, -1.078912, -0.6248177, 0.11832816, -0.1086772, 0.1261872, 0.16775566, -0.05851938, -0.0732127, -0.01822243, -0.009363452, 0.015375079, 0.036912445, 0.11969059, -0.07526642) * go_2(-1.0, 1.0); + result += mat4(0.31373152, 0.0693334, -0.07900261, 0.0070532965, -0.13916558, -0.08116685, -0.85886157, 0.18724924, 0.023858327, -0.2971659, -0.2337722, -0.17136115, 0.034164, 0.09053483, 0.28138685, -0.050052963) * go_2(0.0, -1.0); + result += mat4(0.69782144, -0.17773196, -1.8466626, -1.029225, -0.010800972, -0.0059786057, 0.7224214, 0.45541716, 0.09066342, -0.13732997, 0.009828377, 0.115971304, 0.13013129, 0.35331696, -0.633545, 0.23484547) * go_2(0.0, 0.0); + result += mat4(-0.24049048, 0.16627774, -0.020105539, -0.117568016, -0.0043368824, -0.20639539, 0.10247316, -0.037546206, 0.18750127, 0.12931745, -0.14076929, -0.08036072, 0.045171227, 0.19917291, -0.068400174, 0.17796516) * go_2(0.0, 1.0); + result += mat4(0.09404375, 0.049048338, 0.24326289, 0.17646226, -0.11654813, 0.2592855, 0.32776543, 0.4599728, -0.19997491, 0.11202324, 0.18054682, -0.005742288, -0.036823884, -0.042750888, 0.22441903, 0.038635597) * go_2(1.0, -1.0); + result += mat4(0.036728445, 0.08352167, 0.08909888, -0.02035385, 0.090846755, -0.14406498, -0.025689734, 0.057863228, -0.04390429, -0.25868183, 0.29578558, 0.30690736, -0.05475277, -0.10149075, -0.034297444, 0.10515887) * go_2(1.0, 0.0); + result += mat4(-0.062532455, -0.12673786, 0.16426907, -0.25397223, 0.051807977, 0.112844475, -0.496193, -0.2551257, 0.025220035, 0.15157217, -0.08517411, 0.07161397, -0.06691877, -0.13205263, -0.117163956, 0.065052904) * go_2(1.0, 1.0); + result += mat4(0.07364788, -0.05812666, -0.05958767, -0.027094465, 0.26366132, 0.07415391, 0.040515613, 0.039676376, -0.006552745, -0.012837193, -0.17393842, 0.02813939, -0.121285915, 0.0030941493, 0.16669592, -0.0712934) * go_3(-1.0, -1.0); + result += mat4(0.03629398, -0.3745122, 0.3940434, -0.06701516, 0.083452255, 0.03055438, 0.15637632, 0.0019212369, 0.019995827, -0.21137866, 0.2645297, -0.09081918, 0.025669578, -0.1560248, -0.10008925, -0.07828463) * go_3(-1.0, 0.0); + result += mat4(-0.053625695, -0.10420973, -0.35323003, -0.022054465, -0.08156209, 0.008921794, -0.15391788, -0.03960033, 0.017107122, -0.13479686, 0.068978906, -0.12981713, 0.025973944, -0.09934198, -0.022112468, 0.020573085) * go_3(-1.0, 1.0); + result += mat4(0.0018295953, 0.13670065, 0.004993195, 0.059238344, -0.13972434, -0.13108826, 0.1942548, 0.18194143, -0.12335718, 0.024078835, -0.13328132, 0.06978434, -0.0107950205, 0.14398722, -0.022609226, -0.0041353432) * go_3(0.0, -1.0); + result += mat4(0.27635157, 0.15513352, -0.12534688, 0.15107392, 0.22048512, -0.044253547, -0.1429736, -0.39647785, 0.029876633, 0.1842563, -0.06762048, -0.06029809, 0.07537981, -0.035769306, -0.0261646, -0.110136114) * go_3(0.0, 0.0); + result += mat4(-0.12261548, 0.22167495, 0.18503761, 0.02638229, -0.094690226, 0.061862398, -0.081829205, 0.15912767, 0.006990079, -0.010121606, -0.12535281, 0.024284743, 0.18360399, 0.16907142, 0.25744098, 0.24359013) * go_3(0.0, 1.0); + result += mat4(-0.14717774, -0.09528236, 0.054552622, 0.0036530807, -0.5273358, -0.03762757, 0.21280535, 0.25522852, 0.20926028, -0.022236722, 0.0377064, -0.07160359, 0.06345197, -0.046687063, 0.021401843, -0.14337662) * go_3(1.0, -1.0); + result += mat4(0.17630331, 0.06953194, -0.26126865, 0.029734965, 0.13158317, -0.11239223, -0.2805452, 0.106054045, -0.053220887, 0.09541345, 0.26539528, 0.15052572, 0.042701412, -0.025114734, -0.22815101, 0.06797245) * go_3(1.0, 0.0); + result += mat4(-0.11562362, 0.037828114, 0.15033676, 0.006264337, -0.049709305, 0.13406959, 0.055033628, -0.11243884, -0.18540126, 0.04862983, -0.13387235, -0.13529298, -0.096242204, 0.16761206, -0.032110162, 0.24142851) * go_3(1.0, 1.0); + result += mat4(-0.21116647, 0.058380276, 0.080453075, -0.2679615, -0.28600135, 0.042669408, 0.17540424, -0.14219923, 0.017092299, 0.05328859, 0.0065248194, 0.02395608, 0.05216899, 0.12829328, -0.116384834, -0.2828383) * go_4(-1.0, -1.0); + result += mat4(0.009241691, 0.10957236, -0.22526564, 0.2957556, -0.025253482, -0.08254481, 0.09223265, -0.051697835, -0.071490794, 0.094247855, -0.32692534, -0.12678702, 0.052934665, -0.050429285, -0.18388982, -0.039230555) * go_4(-1.0, 0.0); + result += mat4(-0.16137493, -0.04317478, 0.11681715, 0.16198912, -0.048432272, -0.22682366, -0.01725331, -0.04194597, 0.03203572, -0.16799524, 0.4784258, 0.086616606, 0.0017708768, -0.049688417, 0.064586475, -0.057059586) * go_4(-1.0, 1.0); + result += mat4(-0.11059055, 0.0029538488, 0.038545247, 0.066895224, 0.011218007, -0.003137218, 0.021355668, -0.168016, -0.0026601932, -0.14172328, 0.51700294, -0.33690482, -0.18839404, 0.07191177, -0.05362303, 0.20618927) * go_4(0.0, -1.0); + result += mat4(-0.24159928, -0.1053597, -0.28113043, 0.007160803, -0.0974629, 0.020222154, 0.050444435, -0.11046227, 0.24656764, -0.24290104, -0.53290504, 0.07402318, -0.015612266, 0.123455755, 0.018084416, -0.019945476) * go_4(0.0, 0.0); + result += mat4(0.09311286, -0.1032696, 0.19615465, 0.04846074, 0.029715529, 0.012683276, -0.38939312, -0.15030165, 0.0103463745, -0.3906085, -0.5047903, -0.1061866, 0.20654117, 0.32689643, 0.0086037805, -0.0681904) * go_4(0.0, 1.0); + result += mat4(0.18691367, -0.046374205, -0.05107187, -0.017465474, 0.11804314, 0.090009406, -0.075490244, 0.0036797172, -0.09327475, 0.18428694, -0.17598015, -0.076990046, 0.03992913, -0.116993815, -0.24077141, -0.48880583) * go_4(1.0, -1.0); + result += mat4(-0.0056006587, 0.104048744, 0.19665402, 0.0032775581, 0.15130368, 0.04196182, 0.050959308, 0.02474336, 0.036360126, 0.2724413, 0.35197738, 0.04588593, -0.24590112, -0.08575977, 0.18552561, 0.16555585) * go_4(1.0, 0.0); + result += mat4(0.09420384, -0.113198765, -0.13239664, 0.019001532, -0.0027163615, 0.078038216, 0.09880948, 0.15455763, -0.028529879, 0.20345445, 0.27439958, -0.094165966, -0.10702775, -0.18507981, -0.10240351, -0.02831745) * go_4(1.0, 1.0); + result += mat4(-0.05168434, 0.20330708, 0.10572813, 0.26246095, 0.021435333, -0.10574623, -0.1401922, 0.42713496, -0.030233249, 0.043342397, 0.11101976, 0.032030135, -0.12287885, 0.006734168, 0.024990475, -0.05208304) * go_5(-1.0, -1.0); + result += mat4(0.15237613, -0.15887943, -0.12718262, -0.06986501, 0.03136358, -0.0035889314, 0.2054987, -0.14852847, -0.22284113, -0.3410994, -0.2125513, 0.04496407, 0.094411716, -0.16842332, -0.25714603, 0.08910682) * go_5(-1.0, 0.0); + result += mat4(-0.19709085, -0.10590203, 0.07929334, 0.09949157, -0.0808941, 0.17018095, -0.09984616, -0.03477169, 0.11511119, 0.016829535, 0.05470175, 0.000366129, -0.07609101, -0.10981034, -0.14416353, -0.012299061) * go_5(-1.0, 1.0); + result += mat4(-0.12151653, -0.017303294, 0.055218883, 0.048941534, 0.1476368, 0.31801772, 0.68790305, 0.13284543, 0.11992122, -0.2362068, 0.20126005, 0.14724149, 0.01645638, 0.05896895, -0.30263412, 0.12367781) * go_5(0.0, -1.0); + result += mat4(0.19272023, 0.09102746, 0.31454524, -0.27032062, 0.2674956, 0.040032856, -0.670905, -0.12510742, -0.02879305, 0.34733048, 0.055205155, -0.22118829, 0.18704127, -0.27267426, 0.59989405, -0.14810604) * go_5(0.0, 0.0); + result += mat4(0.025540218, -0.07248532, -0.15664534, -0.19372375, 0.03556883, 0.03597721, -0.14901096, 0.27721658, -0.010668913, -0.29144233, 0.11746931, -0.13459797, 0.005971381, -0.08445966, 0.14954261, -0.11475002) * go_5(0.0, 1.0); + result += mat4(0.08029168, -0.061888658, -0.14104845, -0.06396443, 0.15312983, -0.2487142, -0.26357505, -0.049171742, 0.11320337, -0.055089038, -0.145923, -0.44234648, 0.03747512, 0.09540022, -0.20250735, 0.03820108) * go_5(1.0, -1.0); + result += mat4(-0.0191974, -0.05480732, -0.1930927, 0.01147343, -0.15684529, 0.28367257, -0.15252224, 0.45261058, 0.13849851, 0.08685002, -0.33513635, -0.14976694, 0.07475008, 0.01998271, 0.066315226, -0.13143158) * go_5(1.0, 0.0); + result += mat4(0.07728802, 0.14218356, 0.0850198, 0.09061631, -0.27746883, -0.18180014, 0.52573866, 0.19462089, 0.015337635, -0.3014013, 0.13493168, -0.055304635, 0.07148734, 0.10548237, 0.034149908, -0.12699014) * go_5(1.0, 1.0); + result += vec4(-0.117853574, 0.036960166, -0.0057268855, -0.032133963); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.04775777, 0.08222661, 0.061593954, 0.12055235, 0.008962983, -0.009267361, -0.53843796, 0.16952439, 0.016025536, 0.10542892, -0.042894494, 0.057321973, -0.055204723, -0.06992498, -0.00064485346, 0.007825405) * go_0(-1.0, -1.0); + result += mat4(-0.09411942, -0.23469426, 0.35026586, -0.22138432, 0.045611277, -0.20210607, -0.24638987, 0.22675677, -0.14620386, 0.04001241, 0.06581148, -0.18093623, 0.08063868, 0.16085242, -0.28524494, -0.04407303) * go_0(-1.0, 0.0); + result += mat4(0.016880078, 0.10823597, -0.0856685, 0.1394186, -0.035895467, 0.13400109, 0.08679763, 0.11814033, 0.06898399, 0.01606696, 0.01784015, 0.006547478, -0.042100497, 0.039176684, -0.09559512, -0.19490835) * go_0(-1.0, 1.0); + result += mat4(-0.10115389, -0.11022993, -0.004623271, 0.12206448, -0.040075306, 0.013587107, -0.059400085, 0.18945488, -0.009945642, -0.4523725, 0.20760842, -0.3546684, 0.10930277, 0.14101993, 0.17574343, 0.005993813) * go_0(0.0, -1.0); + result += mat4(-0.31806734, 0.31059268, 0.0034255723, -0.23206042, 0.26745492, 0.19362858, 0.12183108, 0.29931548, 0.09186783, 0.4084161, 0.04199913, -0.23650031, -0.14427313, -0.036473513, 0.11935153, 0.113769025) * go_0(0.0, 0.0); + result += mat4(0.20892154, -0.08097856, -0.20722318, -0.18344022, -0.05412969, 0.16550343, 0.12085539, 0.10199144, 0.112941146, 0.08606901, -0.036151443, -0.036627453, -0.12987532, -0.28756067, -0.06838574, -0.23512506) * go_0(0.0, 1.0); + result += mat4(-0.052661214, -0.104233526, -0.08693217, -0.1819736, -0.052437317, -0.15960887, 0.056683555, -0.040860362, -0.13381086, 0.13378991, -0.073331766, 0.047169458, -0.0479799, -0.0043481477, 0.0048899767, 0.019455308) * go_0(1.0, -1.0); + result += mat4(-0.13005687, 0.11126603, 0.09237425, 0.07877169, -0.042795215, -0.0542181, -0.056731407, 0.08586777, 0.08175868, -0.019688416, -0.104517676, 0.16199689, 0.0044128234, 0.0475487, 0.12852396, 0.024199896) * go_0(1.0, 0.0); + result += mat4(0.16616863, -0.16998464, -0.19154428, -0.09432494, -0.037008844, -0.12210065, 0.0055908067, 0.010815051, 0.17710204, -0.12695597, -0.110427454, 0.13080561, 0.09322074, -0.0012365612, 0.026606066, -0.10843771) * go_0(1.0, 1.0); + result += mat4(-0.47415322, -0.07343328, -0.041209448, 0.08565837, -0.17691295, -0.26137534, 0.2907085, 0.0946057, -0.10768325, -0.10086646, 0.13768727, -0.1253546, 0.12256107, 0.092663676, 0.006136057, 0.10492505) * go_1(-1.0, -1.0); + result += mat4(-0.36130214, 0.31970572, 0.01609707, 0.12488642, 0.09801414, 0.18358822, 0.08739752, 0.031744014, -0.07303357, -0.06802441, -0.05988708, -0.26767713, 0.08153729, 0.24952291, 0.12436414, -0.0748625) * go_1(-1.0, 0.0); + result += mat4(-0.09533404, -0.14277202, 0.0020947633, 0.1547468, -0.009082152, 0.025103271, 0.032984417, -0.120028794, -0.045810502, -0.2012922, -0.02991531, -0.13404511, 0.08140658, 0.064424135, 0.104641765, 0.067367226) * go_1(-1.0, 1.0); + result += mat4(0.053343832, -0.16905542, -0.05830104, -0.106561475, -0.078095205, -0.054910798, 0.061377183, 0.1524315, -0.16384287, -0.019450802, 0.13370255, -0.05160498, 0.15796599, 0.17254125, -0.12769255, 0.15248339) * go_1(0.0, -1.0); + result += mat4(-0.050160643, 0.005053776, -0.031104388, 0.09726363, -0.07693938, 0.102812484, -0.0756477, -0.048515156, 0.29591817, 0.35934618, 0.23326933, -0.23171274, -0.30232304, -0.43113515, -0.14196996, 0.28424993) * go_1(0.0, 0.0); + result += mat4(-0.10621949, -0.4280808, -0.08031358, -0.15168424, 0.26016018, 0.3142917, -0.11831494, -0.09303453, 0.10852745, -0.24068268, -0.037653822, -0.104800984, 0.0067478805, 0.14183025, -0.02230052, 0.2649731) * go_1(0.0, 1.0); + result += mat4(0.028874233, 0.12075906, 0.059678186, -9.616167e-05, -0.11149614, 0.122945406, -0.0767243, -0.040111836, 0.0735182, 0.21608177, 0.07806742, 0.0202061, -0.04776724, -0.11418923, -0.07523717, -0.12865649) * go_1(1.0, -1.0); + result += mat4(0.13507326, 0.06364227, 0.09873092, 0.038835276, 0.053677257, -0.036088385, -0.09081554, 0.02088773, 0.12252468, 0.15228558, 0.20928514, 0.09626035, -0.092850804, 0.12056272, -0.12500086, 0.14586885) * go_1(1.0, 0.0); + result += mat4(0.05855229, 0.11076543, 0.0058000707, -0.05286595, 0.06674972, -0.1913259, -0.04221818, 0.02681795, 0.18707529, -0.014904326, -0.1690741, 0.010544146, -0.07513052, -0.010648717, 0.15841635, 0.017503424) * go_1(1.0, 1.0); + result += mat4(0.09306208, -0.6048318, -0.16323692, -0.26322865, -0.064382344, 0.27984452, 0.0035378935, -0.0036242867, -0.08108908, 0.03801275, 0.09272382, 0.04653927, -0.09639203, 0.15146226, -0.022994163, -0.023005866) * go_2(-1.0, -1.0); + result += mat4(0.03692586, -0.1367785, -0.051587723, 0.35746527, -0.05847086, -0.28233027, -0.31080168, 0.08979567, -0.057873387, -0.11724922, 0.11995725, -0.076051556, 0.12823316, 0.20808434, -0.07491586, -0.04471266) * go_2(-1.0, 0.0); + result += mat4(0.17172146, -0.05962528, 0.10311508, -0.083008684, 0.017513666, 0.22941439, 0.08524968, -0.10340499, 0.047763754, 0.044772595, -0.087630406, -0.03647204, -0.043207247, -0.063256174, 0.14618406, 0.016736707) * go_2(-1.0, 1.0); + result += mat4(0.014591894, -0.16730154, 0.019834492, -0.2323314, 0.2671534, -0.14437476, -0.10937011, -0.10888569, -0.16981846, -0.02661075, 0.011989267, 0.06811342, 0.084967375, 0.22203213, 0.05655957, -0.047086637) * go_2(0.0, -1.0); + result += mat4(-0.5673005, -0.54090023, 0.03939861, 0.008678989, -0.06290456, 0.2747319, -0.09248065, -0.06692429, -0.029515319, 0.08507081, -0.06997918, 0.16636486, 0.04376864, -0.606549, -0.16454232, 0.0572748) * go_2(0.0, 0.0); + result += mat4(-0.048000906, 0.3200884, -0.23506963, 0.15561248, -0.06658933, 0.18984286, 0.018985203, -0.018811712, 0.107549496, -0.24059664, 0.112164706, -0.14813146, 0.08943945, 0.030038312, 0.01712719, -0.06440537) * go_2(0.0, 1.0); + result += mat4(-0.04633894, 0.06511225, -0.006903819, 0.3651269, -0.05099921, 0.13553265, -0.07041649, 0.051354278, -0.026775079, 0.071171924, -0.10163997, 0.056618143, 0.121235944, 0.04077609, -0.006905747, 0.055543922) * go_2(1.0, -1.0); + result += mat4(-0.1529992, -0.07230882, 0.020437848, -0.15099072, 0.091357104, 0.10063594, 0.048747428, -0.07472622, 0.35976312, 0.110254094, -0.23728304, 0.32811522, 0.05135238, -0.124221064, 0.05848079, 0.0090888655) * go_2(1.0, 0.0); + result += mat4(0.10010241, -0.1336736, -0.0735869, 0.09731084, -0.23581249, -0.13519719, 0.2017027, 0.0660746, 0.073186494, 0.0008078537, 0.052478943, 0.031610224, 0.094252445, 0.14641911, -0.0314029, -0.070713595) * go_2(1.0, 1.0); + result += mat4(-0.001959657, -0.090372644, -0.1899317, -0.18170601, -0.015885344, -0.016746698, -0.17908786, 0.12600435, 0.13394068, -0.45021582, -0.059900366, -0.045920644, 0.0831188, 0.07898813, -0.058199428, 0.010207674) * go_3(-1.0, -1.0); + result += mat4(0.10158406, 0.34609744, -0.4304491, -0.039079092, -0.053127635, 0.32419643, 0.16021784, -0.02009982, 0.22342832, 0.25363946, -0.10637694, 0.084691174, 0.1643795, -0.11600526, 0.048834067, 0.007816396) * go_3(-1.0, 0.0); + result += mat4(-0.030290471, -0.12146855, -0.098269686, -0.14657338, 0.024690658, -0.059267156, -0.04505794, -0.0884074, -0.048493493, -0.07872248, 0.024751894, 0.021942955, 0.026951233, -0.05689244, 0.1141836, 0.086177684) * go_3(-1.0, 1.0); + result += mat4(-0.024428055, 0.1539053, 0.035455618, -0.11955061, -0.32286185, -0.046298236, -0.29223973, 0.3565024, 0.19302315, -0.35743472, -0.108984865, -0.041046027, -0.0797479, -0.11923923, -0.11282003, 0.048069157) * go_3(0.0, -1.0); + result += mat4(-0.0021274649, -0.24638395, -0.051017568, 0.07722604, -0.13842508, -0.14636074, -0.09374905, 0.08258244, -0.09629832, 0.16782042, 0.036874052, -0.0015951502, 0.036216017, 0.09414314, -0.066247694, -0.051199514) * go_3(0.0, 0.0); + result += mat4(-0.20425437, -0.08040027, -0.1613387, 0.06440151, 0.029663296, -0.20683208, -0.058772508, -0.0026178176, -0.15718235, -0.14013653, 0.005723365, 0.09514025, 0.07905292, 0.188446, 0.16387165, 0.1911544) * go_3(0.0, 1.0); + result += mat4(0.07689394, 0.18216269, -0.02506441, 0.21607292, 0.14311059, 0.06318058, -0.081483, 0.28077206, 0.03948571, 0.17749293, 0.04567801, -0.07832511, 0.057806063, -0.0427108, 0.06306852, 0.0066801202) * go_3(1.0, -1.0); + result += mat4(0.04399039, -0.07077558, -0.0015600047, -0.118459396, 0.060310606, 0.13951941, 0.2013669, -0.021006014, -0.15264805, 0.26732397, 0.035647463, -0.002574387, -0.065619715, -0.05531379, -0.048837233, -0.059936836) * go_3(1.0, 0.0); + result += mat4(-0.05266133, 0.1071349, -0.053710256, -0.016416542, 0.022659063, -0.029553248, 0.09507555, 0.028677419, -0.20630527, 0.0651505, 0.077009074, -0.096268155, -0.14078818, 0.032669708, -0.01846629, 0.028775593) * go_3(1.0, 1.0); + result += mat4(-0.30971712, 0.19178517, 0.10254193, -0.12659942, 0.17826228, -0.26435316, -0.16852173, 0.04514394, 0.08112456, 0.11184146, -0.028571317, -0.030222327, 0.026687294, 0.17175198, 0.017020982, 0.0100025395) * go_4(-1.0, -1.0); + result += mat4(-0.1281852, -0.13685723, 0.046906084, -0.09659713, -0.02647301, 0.08286363, -0.19404687, -0.019731732, 0.12224579, -0.20480815, 0.08022694, 0.024619367, -0.040805798, -0.06307641, 0.07815454, 0.007009711) * go_4(-1.0, 0.0); + result += mat4(-0.036796696, 0.118744195, 0.020730056, -0.12533775, 0.018716114, 0.0073301513, 0.036968995, 0.009758767, 0.124895856, 0.105648, 0.1285451, 0.14944635, -0.22190575, -0.13435498, -0.07461175, -0.055744182) * go_4(-1.0, 1.0); + result += mat4(-0.41541776, 0.20976903, 0.089350834, 0.26153743, 0.050798908, 0.14616759, -0.06876315, -0.095800444, 0.21727456, -0.0044885483, -0.14532812, -0.03674323, -0.263549, 0.021403335, 0.090946734, 0.13801022) * go_4(0.0, -1.0); + result += mat4(-0.20373783, 0.23166335, 0.12597165, -0.041975934, -0.10023279, -0.08657454, 0.16618101, 0.079674155, 0.018388273, -0.5596407, -0.04870662, -0.23710895, 0.18640874, 0.57623607, -0.02575096, 0.28287143) * go_4(0.0, 0.0); + result += mat4(0.1625267, 0.343577, -0.04365838, 0.052335635, -0.2559281, -0.27649525, 0.13431759, 0.03831019, -0.03469164, 0.12000331, 0.073944256, -0.0061821216, 0.012677158, -0.1627391, 0.06749103, -0.20975526) * go_4(0.0, 1.0); + result += mat4(-0.05379292, -0.10857011, 0.008266894, -0.012603182, 0.04662801, -0.070871636, 0.084626876, 0.16364849, -0.06294956, -0.06461058, -0.063480906, -0.044693593, 0.1537702, 0.079038486, 0.10722227, 0.16421016) * go_4(1.0, -1.0); + result += mat4(-0.13676143, -0.117330894, -0.03341758, 0.052417997, -0.069416024, -0.005539735, 0.027587742, -0.01569091, 0.031894185, 0.019352077, -0.14948286, -0.09691313, -0.10240472, -0.06529738, 0.20694919, 0.04939535) * go_4(1.0, 0.0); + result += mat4(-0.046459045, -0.2141496, -0.0023247367, 0.05856765, 0.0020768675, 0.19858378, 0.03415911, -0.021161001, -0.09474892, 0.09751605, 0.24057122, -0.085236825, 0.17543921, -0.09822015, -0.15396087, 0.024678698) * go_4(1.0, 1.0); + result += mat4(0.040772438, -0.025752101, -0.03428472, 0.061078012, -0.1637086, 0.019983971, -0.018367078, -0.08065508, -0.025617149, -0.041705422, -0.02537782, 0.103540875, 0.13783963, -0.056066163, 0.028678486, -0.025464006) * go_5(-1.0, -1.0); + result += mat4(0.16858733, -0.4178858, -0.30253845, -0.11040479, 0.0029255438, 0.44697702, 0.03196007, -0.02552841, 0.126962, -0.009455916, -0.04901387, 0.04048729, -0.07694209, -0.21343406, 0.02947534, -0.11690606) * go_5(-1.0, 0.0); + result += mat4(-0.15951762, 0.34968317, 0.08819681, 0.15680845, -0.072727524, -0.26647118, -0.253673, 0.058939222, 0.05429744, 0.003959121, 0.051335268, -0.030295422, -0.0600908, 0.030300785, -0.13709414, -0.050647613) * go_5(-1.0, 1.0); + result += mat4(0.031981096, 0.056341853, 0.006849355, 0.10382841, -0.2824565, 0.4246147, -0.057729505, 0.058494158, 0.39074966, -0.017238816, -0.15450741, 0.087315544, -0.1110259, -0.1719534, -0.053078342, 0.009343979) * go_5(0.0, -1.0); + result += mat4(-0.041215084, 0.2654432, 0.1962931, 0.16274457, -0.08469727, -0.28789485, 0.05036308, -0.085442595, 0.12922712, -0.20311458, 0.38513032, -0.067850955, -0.025917724, 0.5953373, 0.12789808, 0.04950751) * go_5(0.0, 0.0); + result += mat4(-0.08700668, -0.2649261, -0.095573485, -0.07602774, 0.04200743, -0.23400396, -0.186786, -0.123978846, 0.022072228, 0.18627988, -0.0038654353, 0.18318067, 0.034251608, -0.008562812, -0.035015855, -0.043611784) * go_5(0.0, 1.0); + result += mat4(0.10827922, -0.03552119, 0.06193929, -0.18593708, 0.047373053, -0.2638056, 0.10326646, -0.040205717, 0.24228886, -0.0551458, 0.15253973, -0.215037, -0.07719752, -0.09540623, 0.028147982, -0.06663598) * go_5(1.0, -1.0); + result += mat4(0.033009805, -0.044830184, 0.050585333, 0.07272593, -0.057132445, -0.30405456, -0.14489187, 0.015766555, -0.096756496, -0.13879722, 0.16658057, -0.0430357, -0.06502151, 0.05498304, -0.10471709, 0.10994919) * go_5(1.0, 0.0); + result += mat4(-0.07091344, -0.01140124, -0.020643137, -0.067839414, -0.019193463, 0.07130566, -0.024614796, -0.09281402, -0.14832619, 0.18952662, 0.14351283, 0.11984917, 0.0012140581, -0.18912585, 0.07516603, -0.049291328) * go_5(1.0, 1.0); + result += vec4(0.06651301, -0.00047524707, 0.04855725, -0.15500803); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.046912298, 0.12213301, -0.05918361, 0.052398715, 0.117780685, -0.19340032, -0.26262107, 0.09843582, 0.16532594, 0.034989428, 0.118674256, -0.01665863, 0.01827071, 0.04668548, 0.022670027, -0.06799) * go_0(-1.0, -1.0); + result += mat4(-0.40916896, 0.3377319, 0.029743252, 0.11290685, -0.07931422, -0.28883788, 0.3388208, -0.14807604, -0.33062622, 0.07752993, 0.049297906, -0.05600763, -0.14054057, 0.023377405, -0.0025995467, -0.14438824) * go_0(-1.0, 0.0); + result += mat4(0.07433483, -0.20579776, 0.03441041, -0.039957307, 0.04162799, 0.07110215, -0.0790704, 0.08862456, 0.01354682, 0.008087094, -0.07781531, -0.0068795225, -0.27620977, 0.09188319, -0.0017635573, -0.057698507) * go_0(-1.0, 1.0); + result += mat4(-0.18007079, 0.061591875, -0.06492421, 0.039863963, 0.09325244, -0.14426552, -0.13588732, 0.004743928, 0.12880403, 0.115125105, -0.01579009, -0.1262388, 0.23080756, 0.12070204, 0.11815605, -0.29426062) * go_0(0.0, -1.0); + result += mat4(0.1900564, 0.0071030534, 0.15973419, -0.30519736, -0.25476542, 0.0012610232, 0.09859447, -0.027793204, 0.11796082, 0.22148512, -0.02944728, -0.2323803, -0.072938465, 0.17895398, -0.2180017, 0.00051390607) * go_0(0.0, 0.0); + result += mat4(0.14343776, -0.18127762, -0.1516819, -0.18503034, 0.13295251, 0.16055906, 0.001688556, 0.15969595, 0.069709465, -0.096013926, -0.0023911218, -0.06369028, -0.0918679, 0.010184961, 0.32301244, -0.5343658) * go_0(0.0, 1.0); + result += mat4(-0.22987153, 0.013441173, -0.0016071151, 0.04102444, 0.23534702, 0.035319816, 0.0796226, 0.030342614, 0.111898474, 0.16501214, 0.06689771, 0.115711525, -0.12146473, 0.09451704, 0.019306619, 0.047459804) * go_0(1.0, -1.0); + result += mat4(0.09487664, -0.1618273, -0.008389976, -0.19419155, -0.26922193, -0.02975308, -0.0045531704, 0.05960872, -0.0601089, -0.14437221, 0.04238319, 0.15810688, -0.13148667, -0.15829994, -0.088278085, -0.21758209) * go_0(1.0, 0.0); + result += mat4(-0.14536136, -0.07484773, 0.037670642, 0.1888735, 0.0018068363, -0.059262045, -0.018976264, 0.027972398, -0.14075996, -0.109049946, -0.25289303, -0.016418003, -0.06421179, -0.15405136, -0.13614438, -0.20679462) * go_0(1.0, 1.0); + result += mat4(-0.24795865, -0.13466923, 0.1273892, 0.091988094, 0.22714299, 0.28389248, 0.10408641, -0.03565174, 0.10762112, 0.27623466, 0.025095293, -0.019155044, 0.022266177, -0.103916764, 0.02987535, -0.08026279) * go_1(-1.0, -1.0); + result += mat4(-0.10837975, -0.21041337, 0.38324556, 0.34692577, -0.049697887, 0.1109414, 0.015196173, -0.13062784, -0.110540874, 0.085793406, 0.12470218, -0.034204576, 0.15388155, -0.10489124, -0.014710256, -0.024052056) * go_1(-1.0, 0.0); + result += mat4(0.14277099, -0.08891012, 0.12166876, 0.005790089, 0.0022349167, -0.06719074, 0.0009688607, -0.06891284, -0.10870797, 0.031759914, 0.07620448, 0.025514454, 0.07622103, -0.017910544, -0.1925603, -0.020678718) * go_1(-1.0, 1.0); + result += mat4(0.3488881, -0.3531885, -0.02848998, -0.105604745, 0.13216074, 0.059472002, 0.00468112, -0.003199541, -0.13952927, 0.12537865, 0.059789866, 0.047229134, 0.062295817, -0.20364402, -0.10756547, 0.010344998) * go_1(0.0, -1.0); + result += mat4(0.054537307, 0.003383981, -0.14703383, 0.23609836, 0.071702175, -0.03523012, -0.15024048, -0.15333411, -0.006573282, -0.17805523, 0.027630433, -0.10086782, -0.038341325, 0.16954458, -0.06587281, 0.061757658) * go_1(0.0, 0.0); + result += mat4(-0.14850424, -0.039801933, 0.091273226, 0.01890946, -0.074723765, -0.19870473, -0.10696538, 0.075856574, 0.18456846, -0.0575884, -0.19248867, 0.23468357, -0.06493671, 0.24994756, 0.2669619, -0.09178425) * go_1(0.0, 1.0); + result += mat4(0.05370938, -0.17381185, -0.06286066, -0.1121635, -0.124206446, 0.08903896, 0.01332919, 0.033238333, 0.10354104, 0.05441239, 0.093867265, -0.09941308, -0.13401549, -0.051170647, -0.05475329, 0.18579331) * go_1(1.0, -1.0); + result += mat4(0.17690988, 0.09592665, 0.0041792435, -0.012296416, -0.043736733, -0.19874738, -0.039244816, 0.093517475, 0.19160083, 0.0072470056, 0.20383999, -0.1518599, -0.056091193, -0.08362639, -0.13275301, 0.27358964) * go_1(1.0, 0.0); + result += mat4(0.03788787, 0.0504576, 0.011746947, -0.050620113, -0.13353047, 0.027618041, -0.015241799, 0.07525403, -0.016854452, -0.15185213, -0.23187985, 0.07745663, 0.019076057, 0.10091556, 0.22063738, -0.19460426) * go_1(1.0, 1.0); + result += mat4(0.4485975, -0.036630977, 0.08908842, -0.041333213, -0.33832982, -0.013137168, -0.12192155, 0.084681444, 0.05839531, 0.13613869, 0.01453744, -0.0015414358, 0.0554445, -0.0350119, 0.06942154, -0.09860217) * go_2(-1.0, -1.0); + result += mat4(-0.6445962, -0.04228771, 0.018886134, 0.19037853, 0.18697917, 0.08801122, 0.023849122, 0.00056543655, -0.1744559, -0.039909426, -0.015196202, 0.09911629, -0.19838926, -0.20182554, 0.030066699, -0.061113726) * go_2(-1.0, 0.0); + result += mat4(-0.28461948, -0.08841962, -0.03426622, 0.22100773, 0.10822605, 0.097787164, -0.035841815, 0.05503456, -0.038095083, -0.033080425, 0.059760638, -0.04379428, 0.016105307, 0.0015185064, -0.021058328, 0.07868167) * go_2(-1.0, 1.0); + result += mat4(-0.09884352, 0.226838, 0.0069547887, -0.31872275, 0.051640913, -0.103925325, -0.033120554, -0.19772157, -0.33196652, 0.10513085, 0.008538118, -0.0693001, 0.3184994, -0.073985405, 0.0021704638, -0.20955746) * go_2(0.0, -1.0); + result += mat4(0.09394457, -0.37714124, -0.45972842, 0.11636775, 0.15764596, 0.14252996, -0.16795024, 0.04769986, 0.31756726, -0.0994127, 0.36237487, -0.12276988, 0.062678345, 0.11386392, -0.18050511, -0.029450653) * go_2(0.0, 0.0); + result += mat4(0.10891149, 0.23599482, 0.19260155, -0.01750993, -0.04561139, 0.040145233, 0.11951016, 0.008283346, -0.060648404, -0.1730897, -0.011636677, -0.2882733, 0.03563051, 0.15347542, -0.21334615, 0.17908043) * go_2(0.0, 1.0); + result += mat4(-0.04223735, -0.106301874, 0.101336, 0.047846835, -0.1828391, -0.1129037, -0.034007143, 0.106865816, 0.05654089, -0.02757468, -0.012872868, 0.07485427, 0.086521536, -0.009762037, 0.08281756, -0.015632132) * go_2(1.0, -1.0); + result += mat4(-0.2240338, 0.031013511, -0.09923691, -0.0038778447, -0.058668714, -0.01593757, 0.05261272, -0.016138611, -0.0143839605, 0.023330573, 0.024790224, 0.09925016, -0.08682536, 0.11822586, -0.055234805, -0.32288945) * go_2(1.0, 0.0); + result += mat4(0.27888787, -0.0025142857, -0.17712368, -0.067581266, 0.10133261, 0.1115825, 0.015883798, -0.24481313, -0.10126581, 0.06092374, -0.0786993, 0.16768995, 0.053283595, 0.08446579, -0.032040086, 0.046178747) * go_2(1.0, 1.0); + result += mat4(-0.04943332, -0.027568894, -0.017933179, -0.13208579, 0.16813855, -0.06046279, 0.03472982, 0.24612981, -0.03915912, -0.120075725, -0.08060205, 0.106469646, 0.103227176, 0.000895164, -0.028227922, -0.059619144) * go_3(-1.0, -1.0); + result += mat4(0.10014512, -0.11341153, 0.0827132, -0.10706114, 0.076696716, 0.383278, -0.08201294, 0.14486443, 0.036368996, -0.07771363, 0.008495598, 0.0022753903, -0.13788359, -0.038493663, -0.051340178, 0.06483918) * go_3(-1.0, 0.0); + result += mat4(0.12283316, 0.22500943, -0.20364822, 0.117888406, 0.052540295, -0.016513767, -0.008835836, -0.008336872, 0.008117048, -0.014924188, 0.070445575, -0.011796183, 0.120677724, -0.08490536, -0.040835287, 0.021124307) * go_3(-1.0, 1.0); + result += mat4(0.07237057, -0.07651541, -0.07781679, -0.046119276, -0.29511476, -0.15473935, 0.12942854, -0.037749447, 0.055873062, 0.081330314, -0.115750924, -0.1830763, -0.35462645, -0.11207306, -0.14393376, 0.18869524) * go_3(0.0, -1.0); + result += mat4(-0.05859993, 0.09575829, -0.10934191, 0.1593984, 0.014064624, 0.23580766, -0.12417294, -0.0774491, -0.23603149, -0.17111291, 0.20246223, 0.24380091, 0.3189054, -0.21762544, 0.053053148, -0.057418585) * go_3(0.0, 0.0); + result += mat4(0.056782614, 0.2491224, 0.15162024, 0.25830385, -0.045144927, -0.067923054, -0.12930688, -0.049425337, 0.0071653076, 0.046733644, -0.013108831, 0.09266598, 0.095575206, 0.08086839, -0.14152451, 0.26396653) * go_3(0.0, 1.0); + result += mat4(0.079944104, -0.05263471, 0.021151286, 0.017748618, -0.20886436, -0.06915706, -0.078341156, -0.034786303, 0.053623807, -0.0655836, -0.11273695, -0.15438432, 0.06902305, 0.01620085, -0.011239084, -0.12818597) * go_3(1.0, -1.0); + result += mat4(0.0032226495, 0.12590717, -0.0031638641, 0.14866307, 0.21612068, 0.07715579, -0.105438486, -0.17400137, 0.04665547, 0.18666393, -0.127797, -0.19163142, -0.03993708, 0.16110541, 0.05756885, 0.13376385) * go_3(1.0, 0.0); + result += mat4(0.1687002, 0.021816095, -0.038648866, -0.052668236, 0.01839634, 0.07918797, -0.002949174, -0.062981784, 0.10759527, 0.096810766, 0.26538077, 0.042877536, 0.030417666, 0.2126483, 0.090904295, 0.12819949) * go_3(1.0, 1.0); + result += mat4(0.2518047, -0.06681589, 0.04622388, -0.070787035, -0.15511023, -0.41387925, -0.1730613, 0.044104673, -0.07129825, -0.16490258, -0.008386942, 0.016624527, -0.08768237, -0.018135691, -0.010196062, -0.012061386) * go_4(-1.0, -1.0); + result += mat4(-0.001268586, 0.061798558, 0.21913844, -0.044886224, 0.05442666, -0.16555135, 0.11374653, 0.035642505, 0.18183587, 0.08264069, -0.12153259, 0.11140945, -0.23343492, -0.11151265, 0.0064260047, 0.098349355) * go_4(-1.0, 0.0); + result += mat4(-0.13696936, 0.03562409, -0.0101959305, 0.07757505, 0.0394099, 0.08446535, 0.005326397, 0.06953561, 0.26667434, 0.070835635, -0.013025369, -0.09135739, -0.19930726, -0.15466705, 0.068868525, 0.06432818) * go_4(-1.0, 1.0); + result += mat4(-0.03636396, 0.082273535, 0.14712979, 0.00055138784, -0.29863998, -0.1502358, -0.10165026, -0.031016732, 0.017641982, -0.18515474, -0.13060197, -0.037918076, 0.0948058, 0.12216852, 0.1061389, 0.0049280017) * go_4(0.0, -1.0); + result += mat4(0.0772463, -0.16946481, 0.43130034, -0.07500874, 0.11102152, -0.16219406, 0.095144905, 0.09938664, -0.103036284, 0.17237557, 0.03153515, 0.17011715, 0.04090995, -0.19434042, 0.034989282, -0.10372025) * go_4(0.0, 0.0); + result += mat4(0.17383884, 0.00505153, -0.112281226, -0.034794528, 0.067649566, 0.20247048, 0.11118917, -0.10395416, -0.21711119, 0.032752357, 0.41753212, -0.16500826, 0.2285505, -0.10731952, -0.33513266, 0.17423174) * go_4(0.0, 1.0); + result += mat4(0.13510819, 0.05318901, 0.06842423, 0.111380026, 0.032170407, -0.07004064, -0.004727209, -0.055246145, -0.041120853, -0.066667765, -0.12091067, 0.064465545, 0.30983046, 0.062509745, 0.13394639, -0.2320897) * go_4(1.0, -1.0); + result += mat4(-0.11820305, -0.13822947, 0.042539548, -0.033613026, -0.0246929, 0.22179885, -0.0126101235, -0.12915117, -0.13849965, 0.02132361, -0.08306424, 0.25891247, 0.18283567, 0.031577725, 0.09138907, -0.26405686) * go_4(1.0, 0.0); + result += mat4(-0.0025576213, -0.0058528413, -0.03972553, 0.016412497, 0.13415, 0.11366292, 0.06300578, -0.082534134, 0.035222337, 0.14385511, 0.34487328, -0.069680765, 0.06340447, -0.05378387, -0.27624515, 0.14444257) * go_4(1.0, 1.0); + result += mat4(0.015041839, -0.05496326, -0.077136815, 0.06463054, 0.3453119, 0.1475871, 0.0863952, -0.13123451, 0.13890652, -0.1339041, -0.070329, 0.0090441145, -0.10499933, -0.031464122, -0.087687746, 0.14039505) * go_5(-1.0, -1.0); + result += mat4(0.03533054, -0.17344387, 0.07036492, -0.14549953, -0.17900857, 0.13214236, -0.06371722, 0.08584117, 0.124349214, -0.05172205, 0.0056213615, 0.0025381348, -0.07292916, 0.15549947, -0.12606966, 0.008277057) * go_5(-1.0, 0.0); + result += mat4(0.088395566, 0.16676022, -0.014194714, 0.15820222, -0.12253527, 0.008114694, 0.04552204, -0.0402224, -0.044774655, 0.00047680718, -0.061174177, 0.004499639, 0.0028164221, 0.021954915, 0.007457284, -0.016612154) * go_5(-1.0, 1.0); + result += mat4(0.07245913, -0.12444683, 0.08628018, -0.013259242, -0.00566908, 0.23597822, 0.030804869, 0.1812487, -0.28520152, -0.12640676, -0.014197547, 0.17321649, -0.3233707, 0.015355323, -0.04023063, 0.134901) * go_5(0.0, -1.0); + result += mat4(-0.008877037, 0.11245896, 0.013970579, -0.010476636, 0.046391398, -0.040462412, 0.43888882, -0.0028177807, 0.11008175, 0.22642863, -0.1705455, 0.25688764, -0.00687498, -0.0091281, 0.29534963, -0.023319326) * go_5(0.0, 0.0); + result += mat4(-0.08283213, -0.2042435, -0.117713675, -0.11703066, -0.16029139, -0.26878926, -0.30223095, 0.052414846, 0.019514319, 0.16193534, 0.053438045, 0.13924578, 0.120410524, -0.07575857, 0.19710456, -0.103417814) * go_5(0.0, 1.0); + result += mat4(-0.07692482, 0.034123767, -0.039485577, -0.11130344, 0.18672933, 0.07824195, 0.084815666, -0.1272111, -0.02006524, 0.20917512, -0.01049663, -0.15457591, -0.008278168, 0.08425196, -0.028542537, 0.021139478) * go_5(1.0, -1.0); + result += mat4(0.1287116, 0.08821239, 0.016782869, -0.042757493, -0.06598697, 0.0057867267, 0.0031201676, -0.09951182, -0.17255504, 0.037690736, 0.22092989, -0.14002815, -0.021178395, -0.05137917, -0.0183439, 0.12713785) * go_5(1.0, 0.0); + result += mat4(-0.12517771, 0.001307841, 0.102680914, -0.076987654, -0.063097425, -0.0044313464, -0.15392491, 0.18540211, 0.037581213, 0.0076559735, 0.064688995, -0.09571449, -0.079910435, 0.02357281, 0.102179624, 0.0054658144) * go_5(1.0, 1.0); + result += vec4(-0.062370587, 0.08095664, -0.05361836, 0.18749565); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.06917031, -0.09608972, 0.012436778, -0.026526913, 0.06718373, 0.057737235, 0.05510206, -0.103320934, 0.032443568, 0.05391639, -0.051994696, -0.036722053, 0.07307222, 0.030999443, 0.28896815, 0.12696978) * go_0(-1.0, -1.0); + result += mat4(-0.1135206, -0.0036884204, -0.067575626, -0.183155, 0.06799192, -0.040569484, 0.013326, -0.09218988, 0.027661508, 0.026157893, 0.07750759, 0.022186747, 0.034232542, -0.0006357425, -0.22527017, 0.09684553) * go_0(-1.0, 0.0); + result += mat4(-0.02058118, -0.09091551, -0.020349659, 0.026089376, -0.0035277302, -0.025624726, 0.069313295, -0.0885836, 0.03267256, 0.0021243643, -0.02949528, -0.015609551, -0.014725211, -0.067495994, -0.013350565, -0.02226788) * go_0(-1.0, 1.0); + result += mat4(-0.037397973, 0.031443134, 0.13686793, 0.033780698, -0.037809733, 0.14600267, -0.08467033, -0.062086526, -0.0037683318, -0.0025683658, -0.018997764, -0.032396015, 0.0760254, -0.06528604, 0.19034758, 0.25288334) * go_0(0.0, -1.0); + result += mat4(-0.01004077, 0.16253367, 0.02167237, -0.15804967, -0.07540531, -0.49940315, -0.08783108, -0.014712835, -0.0036181745, -0.13094778, 0.00012775385, -0.07735516, 0.00239906, 0.09345624, -0.44146279, 0.079626575) * go_0(0.0, 0.0); + result += mat4(0.018002989, 0.024756921, 0.08182335, -0.083457224, 0.033952054, 0.049469676, 0.06050263, -0.069849506, 0.0052918023, 0.06281211, 0.029289972, -0.033092137, -0.036357265, -0.10439873, 0.0023779173, 0.07888209) * go_0(0.0, 1.0); + result += mat4(-0.01730506, -0.022740714, 0.021063361, 0.082628556, -0.024639448, 0.023705823, -0.092249826, -0.0768989, -0.014783317, 0.0063639064, 0.0041929237, -0.015559529, 0.020817379, 0.065355465, -0.002106009, 0.04489612) * go_0(1.0, -1.0); + result += mat4(0.15640244, -0.016673775, 0.14370853, 0.0632943, -0.38425842, 0.106750414, 0.024923261, -0.31814602, -0.06830921, 0.028625946, 0.13381885, -0.022478523, -0.045712356, -0.045846578, -0.18020678, 0.09754457) * go_0(1.0, 0.0); + result += mat4(-0.08042041, -0.0629804, 0.00179941, 0.031233454, -0.031198358, 0.07125946, 0.13403404, -0.14895652, -0.007848355, 0.0073721707, 0.09500398, 0.008454506, 0.13026032, -0.067450196, -0.005805801, 0.028892282) * go_0(1.0, 1.0); + result += mat4(-0.08412081, 0.014766277, -0.020149631, 0.118712135, -0.04914816, -0.05792105, 0.29227188, 0.026034147, 0.1120047, 0.095002666, 0.00085259863, -0.048058935, 0.059555218, 0.016806047, -0.040286265, -0.013871916) * go_1(-1.0, -1.0); + result += mat4(-0.029837646, -0.12694171, -0.091747016, 0.06701937, 0.03595908, -0.06499107, 0.07718667, 0.16839191, 0.060453057, -0.062339257, 0.06462464, -0.12997168, -0.012287718, 0.021051696, 0.036752645, -0.012775891) * go_1(-1.0, 0.0); + result += mat4(0.020795425, 0.05475492, -0.05951276, -0.089259975, -0.016781978, -0.018492289, 0.037464686, 0.022631813, 0.04591149, -0.028302602, 0.021350577, -0.0019535497, 0.05372676, 0.0542445, -0.12681359, -0.16613637) * go_1(-1.0, 1.0); + result += mat4(-0.06331373, 0.08271697, 0.0863126, -0.12388494, 0.032725193, -0.056309905, 0.23224412, 0.2616971, 0.09393073, 0.117842734, 0.24552049, 0.022186337, -0.100860044, 0.08032638, 0.08049447, -0.09940537) * go_1(0.0, -1.0); + result += mat4(0.3909181, -0.07477156, -0.36466175, -0.17175487, -0.055392284, 0.23718156, -0.34149098, -0.3924147, 0.07390285, -0.028201863, -0.2988869, -0.059178505, -0.035545774, -0.049048856, -0.18053558, -0.15981394) * go_1(0.0, 0.0); + result += mat4(0.12357816, 0.016537879, 0.08740827, -0.16022646, 0.03273305, -0.0133974645, -0.089761056, 0.044843633, -0.08129866, 0.06891703, 0.0075367647, -0.037070137, -0.12439461, -0.0033269753, -0.06834715, 0.08675626) * go_1(0.0, 1.0); + result += mat4(0.0064779734, 0.014426835, 0.035886277, 0.06754253, 0.02203813, -0.04712386, 0.023021698, 0.16410176, -0.0851561, 0.04949104, 0.23652297, -0.09268624, -0.04759872, 0.0015944376, 0.05121314, 0.03872179) * go_1(1.0, -1.0); + result += mat4(-0.03296315, -0.07756158, 0.011254165, 0.07215864, 0.05212682, -0.119309366, -0.10098557, 0.065113194, -0.6075043, 0.0944948, -0.0025391292, 0.07257945, -0.059234653, -0.02663308, -0.0056367065, 0.07748455) * go_1(1.0, 0.0); + result += mat4(0.1963255, -0.094376676, 0.077393346, -0.061023213, -0.023002017, 0.011871082, -0.035235405, -0.14450419, -0.010873058, -0.10108094, -0.026334947, -0.048716616, 0.15553881, -0.056554224, 0.07016727, 0.09666785) * go_1(1.0, 1.0); + result += mat4(-0.045733463, -0.07430657, 0.08238815, -0.123395115, -0.040635027, -0.059792377, 0.04978978, 0.14278086, -0.0541127, -0.10427179, -0.16961274, -0.1371796, -0.0011499986, 0.012152467, -0.0815682, -0.054046102) * go_2(-1.0, -1.0); + result += mat4(0.0727944, 0.052526925, 0.009230718, -0.1476749, -0.09698198, -0.025520593, 0.02144377, 0.16131893, 0.0781747, -0.11812555, -0.035372186, -0.08136449, 0.05059057, 0.038647998, -0.037999127, -0.0015969436) * go_2(-1.0, 0.0); + result += mat4(-0.018785287, 0.03944137, 0.11725696, -0.05008342, -0.10257986, 0.20005476, -0.06610143, 0.06656378, 0.006863046, -0.047056478, -0.093303435, 0.05993721, 0.020760732, 0.019373491, 0.062371906, -0.037439793) * go_2(-1.0, 1.0); + result += mat4(-0.09267274, -0.098096795, 0.13675432, -0.06826833, -0.070104465, 0.099336594, -0.056031886, -0.089224756, -0.024747698, -0.0409895, -0.12682493, -0.2713339, -0.03058857, 0.074631155, 0.10274793, 0.0003064175) * go_2(0.0, -1.0); + result += mat4(-0.22578365, 0.35256356, -0.03433281, -0.16781186, 0.21457422, -0.028583825, 0.1498506, -0.17183648, -0.08763252, 0.12665057, 0.11524475, -0.122246034, 0.253632, -0.4412073, 0.1340533, 0.18091358) * go_2(0.0, 0.0); + result += mat4(-0.021586075, -0.13002236, 0.051525775, 0.018828293, -0.02971698, 0.1655956, -0.03223926, 0.097215585, -0.056743864, -0.029945962, 0.02934507, 0.03346959, 0.0409185, -0.0018111896, 0.04084656, -0.033254143) * go_2(0.0, 1.0); + result += mat4(0.029116312, 0.03399277, 0.05797433, -0.005187739, 0.051238127, 0.00043336756, -0.13381082, -0.11246873, 0.0627832, -0.1257258, 0.14857215, 0.08276562, -0.060543623, 0.066337794, 0.17844212, -0.039553978) * go_2(1.0, -1.0); + result += mat4(0.2723402, -0.08208666, -0.095256135, 0.097162515, -0.14603227, 0.098899886, -0.0382611, -0.13691731, 0.15835975, -0.11403104, 0.12741292, -0.0561908, -0.10390587, 0.1448454, -0.12705886, -0.08887692) * go_2(1.0, 0.0); + result += mat4(-0.07991212, -0.0016143702, -0.12167386, 0.07029745, -0.10117478, 0.02916672, -0.1567343, 0.037017304, 0.051464945, 0.040837154, -0.057838146, -0.043935794, -0.076173924, -0.0036469682, -0.16645731, 0.0867253) * go_2(1.0, 1.0); + result += mat4(-0.11595775, 0.1284538, -0.05438797, 0.0022007078, -0.029448986, -0.07199994, 0.08756202, -0.07034043, -0.025051784, -0.033049546, 0.042392526, -0.06789869, -0.02947519, -0.045615688, -0.04309908, 0.08332548) * go_3(-1.0, -1.0); + result += mat4(0.004717529, -0.103543915, -0.1741877, -0.22649112, -0.11224518, 0.03693626, 0.033321906, -0.10395231, 0.0022406306, 0.0030015993, -0.086861975, -0.08997641, -0.101462744, 0.018904945, 0.30255163, 0.18846805) * go_3(-1.0, 0.0); + result += mat4(-0.025068762, 0.117842294, -0.019883728, -0.30935752, 0.054619815, -0.00034203878, 0.045184523, -0.05716641, -0.0042491746, -0.014026439, 0.032082856, -0.076196544, 0.022468993, -0.03835101, 0.048660267, 0.11286454) * go_3(-1.0, 1.0); + result += mat4(0.02735938, -0.014684669, -0.08023435, 0.026778111, -0.0005380734, -0.11492771, 0.33912078, -0.042256307, 0.014511671, -0.0021652458, -0.032238156, -0.031997375, 0.0039656083, -0.023291625, 0.004515741, -0.08897747) * go_3(0.0, -1.0); + result += mat4(0.19014491, -0.016315972, -0.042010665, 0.09270843, 0.023101632, 0.47071022, 0.17964542, -0.077132106, -0.0037992029, 0.10508138, 0.06516077, -0.062698394, -0.09827762, -0.08044165, 0.04393759, -0.09197626) * go_3(0.0, 0.0); + result += mat4(0.032177076, -0.013111677, 0.074961565, -0.11895858, -0.027409771, -0.0819813, 0.1690814, -0.10718659, -0.011605623, -0.03553455, 0.057705663, 0.015013183, 0.056808244, 0.0005760722, -0.112802945, -0.077581756) * go_3(0.0, 1.0); + result += mat4(-0.05866174, -0.007548838, 0.06423205, 0.1352578, 0.0021120945, 0.038740613, 0.17343003, -0.1917378, -0.0038229288, 0.0017887303, -0.007761856, -0.040798064, 0.014540869, -0.03441534, 0.04668393, 0.03392203) * go_3(1.0, -1.0); + result += mat4(0.108784005, -0.032867312, 0.0037662825, 0.11089765, 0.29503173, -0.08232824, -0.034738302, 0.06927913, 0.013991651, -0.025746813, -0.020098314, -0.06911749, 0.030166877, 0.0090379, 0.009309999, -0.10990043) * go_3(1.0, 0.0); + result += mat4(0.07052432, 0.0040574945, -0.051168878, 0.03484591, 0.07261664, -0.07470608, -0.024008736, -0.021155195, 0.020727258, -0.03774776, -0.07994904, 0.0009939631, -0.06001779, 0.09822139, 0.08215828, -0.20103115) * go_3(1.0, 1.0); + result += mat4(0.04484158, -0.09804021, 0.030515645, 0.14875132, 0.10324463, 0.024846723, -0.067153946, 0.21652295, 0.025289498, -0.02001657, -0.0704581, 0.03809796, 0.022647271, -0.005611969, -0.036561944, -0.113084584) * go_4(-1.0, -1.0); + result += mat4(-0.05300202, 0.021789892, 0.059347153, 0.31309023, -0.051712107, 0.12630393, -0.08832499, 0.051365335, 0.040092044, 0.05133063, 0.0385234, 0.12962072, 0.17568372, -0.0060678395, -0.1781195, -0.14315312) * go_4(-1.0, 0.0); + result += mat4(-0.023102503, -0.0285927, -0.10403815, 0.09859985, -0.02698703, 0.08473415, -0.104872644, 0.05867982, 0.017683612, -0.03389112, 0.0026875678, 0.12684359, -0.009682843, -0.06191043, 0.054384083, -0.06014585) * go_4(-1.0, 1.0); + result += mat4(-0.02089963, -0.052726943, 0.07328917, 0.09252698, -0.027794342, 0.096590534, -0.059459552, -0.016572969, -0.079190515, -0.101752184, -0.21771683, -0.08526713, -0.10136575, -0.19844209, -0.00960798, 0.18323036) * go_4(0.0, -1.0); + result += mat4(-0.12765591, -0.118523166, 0.2949308, 0.3062008, 0.006089219, -0.19795562, 0.10176345, 0.5433496, -0.13549669, 0.18662079, 0.34634838, 0.15632492, -0.3137212, 0.09296755, 0.40942043, 0.35158914) * go_4(0.0, 0.0); + result += mat4(-0.044083003, 0.046661552, -0.29044914, 0.18718201, 0.019889789, -0.038973954, -0.13862126, 0.019615972, 0.06718448, -0.078045554, -0.15514913, 0.20315526, 0.12544951, -0.059773993, 0.011969989, -0.13825978) * go_4(0.0, 1.0); + result += mat4(0.024059854, -0.036478736, -0.06911277, -0.06703136, 0.018607026, 0.03248238, -0.045660738, -0.020493727, 0.07143626, -0.057682987, -0.14735365, -0.050512917, 0.086959876, -0.09022049, 0.17235179, -0.12725815) * go_4(1.0, -1.0); + result += mat4(0.13649525, 0.12862304, -0.17249407, 0.068115726, -0.038493074, 0.05827213, -0.1687499, 0.065070905, 0.27157575, -0.07905134, -0.087201245, -0.08858087, 0.034717344, 0.044884644, 0.08977019, 0.13647328) * go_4(1.0, 0.0); + result += mat4(-0.119835004, -0.02438879, -0.18067439, 0.20293695, 0.015848989, -0.04166136, 0.071957104, 0.124382295, -0.072059005, 0.071483135, -0.13201202, 0.0012418783, -0.10581831, 0.058075972, -0.17210579, 0.004112411) * go_4(1.0, 1.0); + result += mat4(0.00090041093, 0.0011212958, 0.031937573, -0.054099638, -0.017531581, 0.04035068, 0.037017923, 0.0010776994, 0.12191318, -0.007862255, 0.36464828, 0.21806385, 0.049670342, -0.011668101, 0.022543898, -0.025934925) * go_5(-1.0, -1.0); + result += mat4(-0.02645012, 0.02542059, 0.061260298, -0.029378504, 0.086143106, 0.030658819, -0.102650695, -0.10079073, -0.13305493, 0.121691555, 0.17571746, 0.20150271, -0.0353368, 0.13240956, -0.11879112, -0.09438184) * go_5(-1.0, 0.0); + result += mat4(-0.030693492, 0.023771469, -0.058636706, -0.08192801, 0.04515666, -0.18397073, -0.012662945, 0.0027336187, -0.036037542, -0.0677095, -0.030037174, 0.09132202, -0.042739432, 0.0677498, -0.0044881506, -0.08441004) * go_5(-1.0, 1.0); + result += mat4(0.10048813, 0.009793138, -0.041463297, 0.044800177, 0.04865773, -0.013068343, 0.11084613, -0.021099264, -0.16284342, 0.059396107, 0.34094337, -0.00569898, -0.013943217, 0.0776132, -0.2202739, 0.08115887) * go_5(0.0, -1.0); + result += mat4(0.09100969, -0.30055302, 0.027439067, 0.14045873, -0.06795197, 0.02795258, -0.3790362, -0.0782406, -0.044285815, 0.060324147, -0.06306254, 0.048571646, -0.010744797, 0.09238931, -0.30406076, -0.034953397) * go_5(0.0, 0.0); + result += mat4(-0.08555992, 0.30496204, -0.10318121, -0.109611206, 0.009205826, -0.13284884, -0.034745734, 0.116899915, 0.020474067, 0.087303326, -0.15484655, 0.07619201, 0.048834864, 0.09276454, 0.21443385, -0.16547905) * go_5(0.0, 1.0); + result += mat4(0.029452972, -0.029714083, -0.034528464, 0.092740804, 0.059716754, -0.036405306, 0.054758668, 0.20863086, -0.09970437, 0.021823952, -0.057097975, -0.31107625, -0.014428003, -0.055435028, -0.079654545, -0.014873982) * go_5(1.0, -1.0); + result += mat4(-0.30689985, 0.18918608, 0.08052377, 0.013860911, 0.07167599, 0.012683613, 0.09667366, 0.23917674, -0.092894726, 0.12865026, -0.23075777, -0.08828766, -0.19403586, -0.0040206606, 0.25459036, -0.09281851) * go_5(1.0, 0.0); + result += mat4(0.038235266, -0.028659683, 0.009189875, 0.035079453, 0.066741906, -0.09272636, 0.15878148, 0.22836047, 0.024399906, -0.15650764, 0.030108603, -0.02879869, 0.06306548, 0.020737246, 0.17805946, -0.0968242) * go_5(1.0, 1.0); + result += vec4(-5.518393e-05, 0.0062874877, -0.02661609, 0.07653855); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.11049855, -0.018907964, 0.10167619, -0.07320527, 0.16380642, 0.042582814, 0.15773618, -0.11309016, 0.030760022, 0.013475277, 0.034111183, -0.10673562, -0.06446281, 0.03170585, 0.065783545, -0.08132259) * go_0(-1.0, -1.0); + result += mat4(-0.10073572, -0.038558394, -0.18257987, 0.09736078, 0.07116485, 0.10689451, 0.037241623, 0.06911952, 0.15752609, 0.025548095, 0.09447296, -0.16955513, 0.015093913, 0.026273884, 0.26519024, -0.3108458) * go_0(-1.0, 0.0); + result += mat4(-0.07013285, 0.012493501, -0.03444474, 0.10600023, 0.031901475, -0.07758261, -0.036816508, -0.008185776, 0.04998539, 0.026604375, 0.08036296, -0.18479921, -0.098254114, 0.009431431, -0.056532584, 0.02986586) * go_0(-1.0, 1.0); + result += mat4(-0.0944328, -0.016084116, 0.057588827, -0.03322943, -0.21524993, -0.0121686235, 0.14730252, -0.23106548, 0.038413823, 0.03569419, 0.14861591, -0.10776637, -0.052853543, -0.019915907, 0.11759964, 0.11250295) * go_0(0.0, -1.0); + result += mat4(0.06219863, 0.04539895, 0.04698554, -0.31864423, -0.012272204, 0.36264813, 0.068282306, 0.2822775, 0.012628343, 0.02692176, 0.09148334, -0.08816395, -0.16482702, -0.06446881, -0.18384305, -0.29771352) * go_0(0.0, 0.0); + result += mat4(0.100148946, -0.09134751, -0.063103884, 0.1403596, -0.016843816, -0.046195876, 0.030014044, -0.004548106, 0.048431028, -0.040574916, 0.014735356, -0.15846166, -0.2263108, 0.13999973, -0.0633166, 0.27665257) * go_0(0.0, 1.0); + result += mat4(-0.12594071, 0.0677989, -0.049229424, -0.15385626, -0.12750685, 0.020224968, 0.072655775, -0.37103048, -0.013367309, 0.017096536, 0.07398892, -0.16839914, 0.006098842, 0.018147936, 0.055607572, 0.0040595555) * go_0(1.0, -1.0); + result += mat4(0.12726252, -0.06711981, 0.11226904, -0.034675833, 0.13163973, 0.09057499, 0.15357189, -0.35910082, 0.0003699172, 0.01971659, -0.041180152, -0.12111229, 0.00043315487, -0.053538464, -0.076018356, 0.042511243) * go_0(1.0, 0.0); + result += mat4(0.14136468, 0.06641704, 0.046442796, -0.025372686, 0.100791246, 0.03306327, 0.07611193, -0.17730577, -0.027955538, -0.0078110253, 0.008712534, -0.087275945, 0.08230878, -0.0052679684, -0.103350714, 0.0865688) * go_0(1.0, 1.0); + result += mat4(0.13361642, -0.039004393, -0.023543444, 0.07136099, -0.12098764, -0.02865035, 0.092850566, -0.082029596, 0.036575377, 0.14037344, 0.09989788, -0.06525852, 0.10002514, -0.026618406, -0.12002266, 0.04573298) * go_1(-1.0, -1.0); + result += mat4(-0.28081807, -0.08057377, -0.06789116, 0.019678107, -0.027069533, -0.016614377, -0.01618704, 0.24995302, -0.052341353, -0.07172657, 0.12574856, 0.1313798, -0.15072265, -0.09125269, 0.16099194, -0.13485655) * go_1(-1.0, 0.0); + result += mat4(-0.19550133, -0.04183744, 0.024049545, -0.09530149, 0.100007616, -0.05702025, -0.013796386, 0.04444768, 0.1344129, 0.0993129, 0.10404407, 0.09173625, 0.012862574, 0.06720736, 0.06611082, -0.055998694) * go_1(-1.0, 1.0); + result += mat4(0.16142978, -0.03735292, -0.043507334, -0.110913426, 0.10257733, -0.041712806, -0.18747051, 0.13936411, 0.020649113, -0.02688488, 0.21794553, -0.0689589, 0.16157758, -0.031158462, 0.13341765, -0.097379625) * go_1(0.0, -1.0); + result += mat4(-0.14022216, 0.15108277, -0.12174897, 0.034505684, -0.28282407, -0.0030200025, 0.06294236, -0.44982272, 0.09119184, 0.02005879, -0.09758412, -0.13265614, -0.21872388, 0.039521, -0.087356746, -0.20212357) * go_1(0.0, 0.0); + result += mat4(0.12638997, 0.5495008, 0.17717126, -0.08970275, 0.018967377, 0.04660826, 0.059454307, 0.17593576, -0.23507589, 0.12473919, -0.08162357, -0.06400482, -0.02973915, 0.009761158, 0.005129572, 0.051037535) * go_1(0.0, 1.0); + result += mat4(0.021429846, -0.034670793, 0.08353943, 0.02352908, 0.05054778, -0.019557012, -0.09459167, 0.2277268, 0.05714867, 0.075109184, 0.060369328, -0.10815987, 0.039977793, -0.058211602, -0.070377484, -0.0347485) * go_1(1.0, -1.0); + result += mat4(0.017368738, -0.015973292, 0.07625957, -0.08961148, 0.047681917, 0.050915856, 0.0910593, -0.0091246255, 0.14573355, 0.052380197, 0.15116148, -0.068882786, -0.0140725635, 0.02823435, -0.1579844, 0.07299422) * go_1(1.0, 0.0); + result += mat4(0.061255533, 0.03280513, 0.060110033, -0.036644097, -0.037236962, -0.026364978, 0.052616216, -0.13499284, 0.05801061, -0.0673201, -0.14684524, 0.23741283, -0.025241269, -0.1356566, -0.05841229, 0.1051435) * go_1(1.0, 1.0); + result += mat4(0.00022173181, 0.0643927, 0.028364835, 0.03683199, -0.031283405, -0.09468918, -0.29093724, 0.15719903, -0.021024697, 0.043887176, 0.0935728, 0.03710646, -0.0015930429, 0.1128033, 0.035463266, -0.017833339) * go_2(-1.0, -1.0); + result += mat4(0.016239017, 0.033160247, -0.0012980856, 0.1643084, -0.068570554, -0.011817288, 0.07238526, 0.09016985, -0.037720326, 0.039096065, 0.18127714, 0.040145792, -0.072754, -0.010240024, 0.003931741, 0.1961971) * go_2(-1.0, 0.0); + result += mat4(0.1582716, 0.059197184, -0.07311528, 0.15047154, 0.11910138, -0.16538778, -0.05161302, -0.13114272, 0.06918401, 0.09988292, -0.009128961, 0.022979198, -0.05816623, -0.0010521389, 0.049138065, 0.025934359) * go_2(-1.0, 1.0); + result += mat4(0.005232625, 0.06572209, 0.08158597, -0.041485008, 0.10972084, -0.100233644, -0.08123889, 0.22106615, -0.15856642, -0.00089599646, -0.2508091, -0.18100697, 0.05062669, 0.015029212, 0.037986293, -0.042927373) * go_2(0.0, -1.0); + result += mat4(-0.059474643, 0.027163196, -0.2604915, -0.010336377, -0.12445887, 0.13566798, -0.30654848, -0.060082927, 0.23085387, -0.091465, 0.39375424, 0.042889137, -0.056025308, 0.032562573, -0.24045426, -0.066820875) * go_2(0.0, 0.0); + result += mat4(0.37940925, 0.059039116, -0.23255952, 0.13268405, 0.09298355, -0.3546018, 0.20099486, 0.110705115, 0.1028718, 0.15027377, -0.052708015, 0.077674516, -0.012042469, -0.24452698, -0.0897586, -0.05299548) * go_2(0.0, 1.0); + result += mat4(-0.08723447, -0.04039763, 0.06555755, -0.01244263, 0.0631391, -0.07041029, 0.09457601, -0.07120963, -0.006443017, 0.022470789, 0.083783925, -0.21022923, 0.09100827, 0.004317152, 0.14609122, -0.058026843) * go_2(1.0, -1.0); + result += mat4(-0.0845435, 0.117686994, -0.12543106, 0.12503773, -0.10377896, -0.0026920936, 0.1349612, -0.069376774, 0.084404066, 0.11193638, 0.09126277, -0.054743435, -0.0032069946, 0.06509136, 0.0048303395, 0.10628396) * go_2(1.0, 0.0); + result += mat4(-0.029292313, 0.007759757, 0.025865927, 0.056625884, -0.07793367, -0.04091509, -0.003351621, -0.033380255, 0.07060131, -0.036421955, 0.081770964, -0.043511044, 0.017399874, 0.043617025, 0.005139266, -0.021786831) * go_2(1.0, 1.0); + result += mat4(-0.022271145, 0.00039645372, 0.010613543, -0.11776198, -0.02635221, 0.11864236, -0.0024596716, 0.03923893, 0.0029042386, 0.005011855, 0.0018216589, 0.008130081, 0.011119617, 0.06787836, -0.066421315, 0.08031844) * go_3(-1.0, -1.0); + result += mat4(-0.09813517, 0.06568305, -0.13860098, -0.0010828839, 0.14380379, -0.13478349, -0.022100717, 0.17066574, -0.029020214, -0.022638777, -0.0070202127, 0.030224288, 0.16366352, -0.06265367, -0.18798734, 0.011478987) * go_3(-1.0, 0.0); + result += mat4(0.05996043, -0.053815104, 0.11500831, -0.08236374, 0.044013776, -0.041716296, 0.041496664, 0.14121005, 0.08279138, 0.009773295, -0.010372792, 0.025527438, 0.014913059, -0.066181764, -0.011920773, 0.10358109) * go_3(-1.0, 1.0); + result += mat4(0.05652108, -0.004097921, -0.062982805, 0.1622035, 0.16812254, 0.03779725, 0.09811821, -0.30795518, -0.03712885, 0.014134829, -0.07531538, -0.0353742, -0.014039425, -0.011970228, 0.036651116, -0.0004495905) * go_3(0.0, -1.0); + result += mat4(0.11922151, -0.17507777, -0.04528375, -0.07090318, 0.19573775, -0.11706877, 0.0641675, -0.3705396, 0.0054832795, -0.048944287, -0.09650737, 0.09810468, -0.18202507, -0.08735016, 0.082755096, -0.018619625) * go_3(0.0, 0.0); + result += mat4(-0.2286063, 0.06487897, 0.041627876, -0.112286136, 0.055056084, -0.024040936, -0.072515465, 0.095542595, 0.017591938, 0.037572965, 0.086499356, -0.044066917, 0.09246921, -0.14498484, 0.017450534, -0.0031692435) * go_3(0.0, 1.0); + result += mat4(0.120006956, 0.029871983, -0.04091446, 0.1845348, 0.07152837, 0.0031324874, 0.3271476, -0.3842661, 0.015676577, 0.007722651, -0.01355098, 0.03852728, -0.036933925, -0.055561922, -0.08608098, 0.016633974) * go_3(1.0, -1.0); + result += mat4(0.042973485, -0.016934913, -0.054753687, 0.0057244487, 0.080229886, 0.07153676, 0.121217705, -0.1422365, -0.022736007, -0.005441552, 0.059987642, -0.06661513, -0.008356551, 0.026571274, 0.014096615, -0.034175288) * go_3(1.0, 0.0); + result += mat4(-0.10869293, 0.020983249, 0.014934219, -0.048246913, -0.043031503, 0.014160269, 0.012524968, 9.1027774e-05, 0.06874907, 0.041440487, 0.04364499, -0.049117107, -0.11006862, -0.028361427, 0.0666895, -0.15525119) * go_3(1.0, 1.0); + result += mat4(-0.13360004, -0.040586635, -0.011065811, 0.07590281, -0.17862478, 0.03176052, -0.0060847234, 0.06482111, -0.10241082, -0.06991013, -0.04906971, 0.111663744, -0.20776138, -0.065589525, 0.16063885, -0.1169129) * go_4(-1.0, -1.0); + result += mat4(-0.08239939, -0.016491726, -0.17447554, -0.17412238, -0.023073941, 0.024335802, 0.009998651, -0.2594834, 0.09212794, -0.047131993, 0.0023678474, -0.13931216, -0.093529895, 0.14654796, 0.2062498, -0.0979242) * go_4(-1.0, 0.0); + result += mat4(0.037110724, 0.16630705, -0.07703024, -0.09271235, -0.065290235, 0.011327393, 0.01392625, -0.08141591, -0.2544335, 0.11532231, -0.0038528284, -0.14333782, 0.052138682, 0.11441084, -0.13260897, 0.16820511) * go_4(-1.0, 1.0); + result += mat4(-0.30918753, -0.024295764, -0.027942184, -0.0860215, -0.055746336, -0.016570807, 0.17202388, 0.035703283, -0.16252916, 0.058050476, -0.15769738, 0.15678713, -0.116991155, 0.043470733, -0.383855, 0.18544619) * go_4(0.0, -1.0); + result += mat4(0.110480964, -0.0018562422, 0.11564728, -0.15973495, 0.28632364, 0.07150075, -0.02442135, 0.09562533, -0.031401016, -0.04514724, 0.31314585, -0.09337406, 0.108728535, 0.017531324, -0.024494028, -0.093123734) * go_4(0.0, 0.0); + result += mat4(-0.0803049, -0.23596147, -0.1215564, -0.07627238, -0.06644555, -0.02015921, -0.1534082, -0.0035896646, 0.20785846, -0.07450932, 0.083064035, 0.06505109, -0.06643723, -0.05675558, -0.06931419, -0.07988197) * go_4(0.0, 1.0); + result += mat4(0.0042541623, 0.026418367, 0.06019002, -0.120204665, -0.041487366, 0.021887602, 0.060255744, -0.07371016, -0.12069726, -0.12678316, -0.049600363, -0.12936749, 0.23514399, 0.037363835, 0.014190557, 0.12650439) * go_4(1.0, -1.0); + result += mat4(-0.09167683, -0.04038391, -0.022526316, -0.009859018, 0.008543954, -0.021847846, -0.09823242, 0.100713, 0.090360984, 0.09792457, -0.20315544, -0.035371944, 0.1085808, -0.06695963, 0.02482221, 0.024650661) * go_4(1.0, 0.0); + result += mat4(-0.20332499, -0.07027695, -0.087853126, 0.18171547, -0.047613457, -0.024246145, -0.10522111, 0.23672101, 0.036521245, -0.08921485, -0.03288885, -0.031625647, -0.06543899, -0.069383, -0.00516059, -0.0017956651) * go_4(1.0, 1.0); + result += mat4(0.024934843, 0.03389753, -0.08901605, -0.037079386, -0.046384435, -0.02585016, 0.11197663, 0.00346106, -0.36492983, -0.093989864, -0.04062576, -0.026857732, -0.0070361346, -0.043496076, -0.015871098, 0.043276284) * go_5(-1.0, -1.0); + result += mat4(-0.03606492, 0.004693198, 0.06704513, -0.06954089, -0.06506014, -0.037918013, -0.08111133, -0.009501841, 0.068508595, 0.08327213, -0.019518502, -0.022806957, 0.2190603, 0.17022887, 0.14800793, -0.08281432) * go_5(-1.0, 0.0); + result += mat4(-0.064694725, -0.07497781, -0.04672195, 0.014982018, 0.043382764, 0.18891387, -0.038317963, 0.07969728, -0.063571155, 0.030154549, -0.08465413, 0.16925031, 0.12671013, -0.04915839, -0.096187495, -0.051536918) * go_5(-1.0, 1.0); + result += mat4(-0.009621753, -0.0195934, -0.045811757, 0.13657679, -0.064056486, 0.038231816, -0.054827668, -0.12231228, 0.26552272, 0.12414302, 0.18624337, -0.046787616, -0.022237374, -0.053084116, 0.14358921, -0.042177454) * go_5(0.0, -1.0); + result += mat4(-0.07842658, 0.013456938, 0.032272052, 0.28887707, -0.10770709, -0.21856956, 0.37743518, 0.23959023, 0.37210184, 0.9503002, -0.025512097, -0.03633097, 0.022222593, 0.071377136, -0.20658484, 0.52729785) * go_5(0.0, 0.0); + result += mat4(-0.099430755, -0.24070781, 0.065863, -0.07808372, -0.16720702, 0.2676829, -0.27154264, -0.049355835, 0.19279453, 0.06852905, 0.06272968, 0.13116297, 0.07394523, 0.12975569, 0.26263225, 0.15205261) * go_5(0.0, 1.0); + result += mat4(-0.014191022, 0.018638015, -0.08631605, 0.061950725, -0.13144706, 0.084606856, -0.024304552, 0.0024966071, 0.021148616, 0.020798182, 0.13002335, -0.049378537, 0.017035907, -0.0116185695, -0.20568894, 0.2350694) * go_5(1.0, -1.0); + result += mat4(-0.013792852, -0.05215396, 0.06764889, -0.012962138, -0.11838281, -0.015625363, -0.12466692, 0.12504981, 0.14459728, 0.034634247, 0.14713274, -0.118111566, 0.18801935, -0.14544547, 0.04915958, -0.14483985) * go_5(1.0, 0.0); + result += mat4(0.04480321, 0.029159583, -0.06726701, -0.065100566, 0.094168976, 0.012941809, -0.035608374, 0.086288646, 0.043504182, 0.057368, -0.054148387, 0.09442852, 0.07997, -0.050284415, 0.046459693, -0.11076571) * go_5(1.0, 1.0); + result += vec4(-0.020544212, -0.052849937, -0.027093843, 0.018372845); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.039423067, 0.078436814, -0.069983914, -0.038171016, 0.14237583, -0.02642111, -0.20049703, 0.100611456, -0.029072462, -0.5085375, -0.018193128, 0.059373964, -0.030980011, -0.11949504, -0.06939915, -0.0759268) * go_0(-1.0, -1.0); + result += mat4(0.059159596, 0.17550206, 0.05612233, 0.13204549, -0.0050658686, -0.21678181, 0.07797472, -0.09275905, -0.06803014, -0.65021074, -0.07766355, 0.018018546, -0.26769254, 0.16147457, -0.2786428, 0.117244564) * go_0(-1.0, 0.0); + result += mat4(0.08737985, -0.10133755, -0.026567303, -0.03721374, 0.03300279, 0.15863386, 0.14206086, 0.10378439, -0.024067098, -0.41554677, -0.096829094, 0.037365302, 0.047267284, -0.014426036, 0.08224506, -0.02312597) * go_0(-1.0, 1.0); + result += mat4(0.054744978, 0.0014223085, 0.107521415, 0.044979066, -0.039141048, 0.23803799, -0.19850029, 0.19078358, -0.053693853, -0.51473075, -0.026663598, -0.03709435, 0.068645775, -0.461768, 0.05462371, -0.034951005) * go_0(0.0, -1.0); + result += mat4(-0.29620552, -0.008875074, 0.07487369, -0.22165461, -0.19263655, 0.048992947, -0.19407378, -0.04266071, -0.0410519, -0.9824355, -0.04094819, 0.1591373, -0.003784664, -0.03243022, 0.18372828, -0.21720201) * go_0(0.0, 0.0); + result += mat4(0.009888709, 0.13686997, -0.094822176, 0.05202961, 0.07718702, -0.111160606, -0.008345299, -0.03728517, 0.08747702, -0.609868, -0.004057196, -0.044258054, 0.06356071, 0.25430042, 0.020177737, 0.0132764075) * go_0(0.0, 1.0); + result += mat4(0.11496065, 0.21552022, -0.04389089, -0.0086625945, 0.09537117, -0.13809446, 0.08995812, 0.112047695, 0.011121139, -0.5289336, -0.022189362, 0.038001932, -0.1164996, 0.23712026, 0.020787118, -0.0011653812) * go_0(1.0, -1.0); + result += mat4(-0.09048339, -0.39137346, 0.21572241, 0.051918186, 0.11814622, 0.3203632, 0.024965152, -0.04971828, 0.009413184, -0.27384368, -0.06055165, 0.011737885, 0.06622072, 0.004352992, -0.16232811, -0.04402811) * go_0(1.0, 0.0); + result += mat4(0.09248723, 0.0889905, 0.024224376, 0.030123342, 0.03877418, -0.08895352, -0.13702047, 0.108477026, 0.040580783, -0.38253292, -0.017656842, -0.02734635, -0.10592393, -0.078880526, 0.06576184, 0.08253187) * go_0(1.0, 1.0); + result += mat4(0.015141747, -0.1309331, -0.02695935, -0.17821482, 0.06992731, 0.008076907, 0.04242278, -0.041699618, -0.2879429, 0.19774953, 0.049024932, 0.2859851, 0.07940857, 0.119633004, -0.0559928, 0.030878706) * go_1(-1.0, -1.0); + result += mat4(-0.24421887, 0.13531625, 0.16485777, -0.16606078, 0.013032199, 0.22538358, -0.08584098, -0.09070285, 0.2687854, 0.16989781, -0.032257568, -0.017058974, -0.009155003, 0.24833599, -0.037294723, -0.030808553) * go_1(-1.0, 0.0); + result += mat4(0.02493932, 0.114831686, 0.033882387, 0.14481047, -0.01829352, 0.115675755, -0.03021338, -0.004733893, 0.015008595, -0.19344689, -0.12460783, 0.047182407, -0.1743983, -0.09997754, -0.27779073, 0.07800383) * go_1(-1.0, 1.0); + result += mat4(-0.043531906, 0.07293452, -0.071971625, -0.0019219422, -0.04766082, -0.1400812, 0.025305094, 0.05111917, 0.08387639, -0.31426215, -0.004437485, 0.15080883, 0.046185132, -0.34772637, 0.1205064, -0.073153645) * go_1(0.0, -1.0); + result += mat4(-0.18307851, 0.09229181, -0.17735274, 0.50427365, 0.034740254, -0.13563888, 0.027704779, -0.10706108, 0.32057324, 0.1820803, -0.28548205, -0.20837711, 0.026674472, 0.015941067, -0.07913227, 0.10543624) * go_1(0.0, 0.0); + result += mat4(-0.19075814, -0.07901908, -0.09471109, 0.38521093, -0.051173307, 0.22712201, -0.0057217837, -0.008397543, -0.094950974, -0.07692618, 0.08312472, -0.1183983, 0.042578284, 0.055876415, 0.0013518286, -0.024476144) * go_1(0.0, 1.0); + result += mat4(0.07312584, -0.14143293, 0.039240487, -0.04388676, -0.040030226, 0.23504035, 0.049412448, 0.047472715, 0.01382807, -0.2750679, 0.21508247, 0.053023193, 0.029611293, -0.0056723547, -0.01997564, 0.03959638) * go_1(1.0, -1.0); + result += mat4(-0.15638126, -0.19253428, 0.10116556, 0.08715779, -0.11614563, 0.098930575, 0.087547146, -0.028423786, 0.21491656, 0.13664484, -0.24975125, -0.08325575, 0.032616112, -0.18295531, 0.065003626, 0.021616168) * go_1(1.0, 0.0); + result += mat4(-0.007087224, 0.3169042, 0.14880657, -0.18242247, 0.0064674197, 0.06109478, -0.059897806, -0.0011404125, 0.18070918, -0.08458671, -0.12923287, -0.08353918, -0.01897949, 0.06979917, 0.09025345, -0.017417897) * go_1(1.0, 1.0); + result += mat4(0.05179286, -0.034726117, 0.21951278, 0.082072996, 0.07295873, -0.08012756, 0.014272455, -0.056287043, -0.017637976, -0.013951062, 0.054536913, 0.017742792, -0.009336327, -0.03538978, 0.011911002, -0.11776655) * go_2(-1.0, -1.0); + result += mat4(0.13707292, -0.023107344, -0.00069132133, -0.08294918, -0.23168655, -0.096478485, 0.08214384, -0.059408333, 0.18943588, -0.03707817, -0.08321206, -0.22239017, -0.15046118, 0.120259546, 0.07002098, -0.09866878) * go_2(-1.0, 0.0); + result += mat4(-0.012951499, -0.27445596, -0.14348228, 0.0447087, 0.046177246, 0.017482923, 0.05994589, 0.015270621, 0.06457534, -0.05479883, 0.013528706, -0.12819076, -0.06994984, 0.07996559, -0.06996563, 0.054592125) * go_2(-1.0, 1.0); + result += mat4(0.10614017, -0.053328507, 0.08286402, -0.10957647, -0.12656961, 0.040465187, 0.17095993, 0.051273175, 0.04530683, 0.18120332, -0.027397426, -0.08206453, 0.069643475, -0.12606093, -0.058229, 0.18432495) * go_2(0.0, -1.0); + result += mat4(0.17823172, 0.41447365, 0.11639968, -0.06486261, 0.19411229, -0.19174264, -0.038545858, -0.10247162, -0.019421054, -0.009120293, 0.13342139, 0.04569454, -0.11488296, 0.080402605, 0.13746685, 0.14873841) * go_2(0.0, 0.0); + result += mat4(-0.0829372, -0.30971724, 0.032577418, 0.07669426, 0.018960338, 0.1791047, -0.047290523, -0.008268177, -0.04843848, 0.06855169, -0.07592713, 0.04155206, 0.08097685, 0.051547952, 0.011747727, -0.033211578) * go_2(0.0, 1.0); + result += mat4(-0.1373094, 0.15334417, -0.06870011, -0.06123882, 0.00090525567, 0.1162759, -0.082836166, 0.11193168, -0.08798139, 0.035071023, 0.01123731, -0.05533123, -0.024120709, 0.050991498, -0.1336545, -0.043407314) * go_2(1.0, -1.0); + result += mat4(-0.06407508, -0.33745393, 0.23901443, 0.052661825, 0.10159286, 0.07630392, -0.15228964, -0.03295662, -0.0060571227, 0.0071413037, 0.17815827, -0.12300588, 0.1899591, -0.25670734, 0.0070533925, -0.043219138) * go_2(1.0, 0.0); + result += mat4(-0.1732961, 0.30729872, 0.2262359, -0.21156187, 0.06456767, 0.021306427, 0.05425214, -0.083489835, -0.044103798, 0.052490056, -0.0044859303, -0.02098116, -0.0504092, -0.00038908, 0.039689723, -0.07444564) * go_2(1.0, 1.0); + result += mat4(-0.033599377, -0.08571998, -0.10530651, -0.08143152, -0.12479356, -0.060760368, 0.121969484, 0.038539995, 0.013419648, -0.08396321, 0.05109183, 0.017426316, -0.07328041, 0.05684259, 0.070007846, 0.10744751) * go_3(-1.0, -1.0); + result += mat4(-0.274972, 0.4282744, 0.22896598, -0.10019718, 0.16731918, 0.030695973, 0.041302808, 0.067710035, 0.023648342, -0.07225423, -0.038274363, 0.05649214, 0.2907932, -0.42040724, -0.012518357, -0.017642522) * go_3(-1.0, 0.0); + result += mat4(0.13465816, 0.25740397, 0.15255588, 0.095492624, 0.043392237, 0.020608524, 0.028149592, -0.02565965, 0.06586847, 0.0011866485, -0.037156094, 0.055193666, -0.04400515, 0.08791553, 0.010484813, -0.15319423) * go_3(-1.0, 1.0); + result += mat4(0.040082783, -0.06577737, -0.07995138, -0.16504121, 0.09325564, -0.22239633, 0.1648208, 0.028321613, 0.015860023, -0.08520523, -0.051657148, 0.061537597, 0.073225826, -0.14896914, 0.1299073, -0.006399767) * go_3(0.0, -1.0); + result += mat4(-0.09663643, -0.53566885, 0.025700806, 0.55880916, 0.2808175, 0.05318815, 0.062414836, 0.10828044, 0.05490069, -0.081015244, 0.09650798, -0.12189763, -0.07257968, 0.26949814, -0.012583941, 0.0008959956) * go_3(0.0, 0.0); + result += mat4(-0.011190751, 0.35855585, 0.1862791, 0.14002089, 0.027401952, 0.0042707003, -0.022745244, 0.10868378, -0.09141326, -0.17373067, 0.028805451, 0.017749606, 0.040033735, -0.011070057, -0.025801158, -0.13208073) * go_3(0.0, 1.0); + result += mat4(0.024512364, 0.08858363, -0.18131207, -0.027412666, -0.04424581, 0.011799249, -0.082901396, 0.038419988, 0.024691217, 0.052292384, -0.009439586, -0.00092504063, 0.008878617, 0.025503607, 0.021490294, 0.056503642) * go_3(1.0, -1.0); + result += mat4(-0.12956679, -0.34502396, 0.2046284, 0.026422406, -0.051775485, -0.004565459, 0.033549815, 0.24834748, -0.014039569, -0.008843974, -0.024532126, -0.028356941, 0.086490355, 0.19347343, -0.06651103, 0.01359097) * go_3(1.0, 0.0); + result += mat4(0.026218938, -0.071594626, 0.058404952, -0.0064054746, 0.021394106, 0.003737053, 0.013854575, 0.11512703, 0.041950155, -0.12979212, 0.029137189, -0.035896428, -0.052289136, 0.14120553, -0.069520056, 0.083379924) * go_3(1.0, 1.0); + result += mat4(0.10193102, -0.011678638, -0.08350273, -0.1182253, -0.15432937, 0.20543317, -0.20413567, -0.080253944, 0.07646635, -0.020952104, -0.0104566, -0.10925271, 0.055971812, 0.032747865, 0.04048261, 0.08953569) * go_4(-1.0, -1.0); + result += mat4(-0.016132157, -0.08411032, -0.14439175, 0.056656662, -0.12841295, -0.051562544, -0.040920693, -0.027162159, -0.05479628, -0.13349691, -0.28604138, 0.053583436, 0.13565014, 0.11799203, -0.28183892, -0.14269474) * go_4(-1.0, 0.0); + result += mat4(-0.062003274, -0.048884556, -0.20334347, 0.22376512, -0.089073546, 0.11118097, -0.009234466, -0.07418679, -0.14703932, 0.16732392, -0.07114778, -0.06633442, 0.04149066, 0.061250567, 0.18997967, 4.3616074e-05) * go_4(-1.0, 1.0); + result += mat4(-0.013199228, 0.04439229, 0.022987943, 0.031648617, 0.028317936, -0.065302536, 0.12444893, -0.10333742, -0.055278953, 0.0026120062, 0.292226, -0.048765816, 0.094359584, 0.080392964, 0.04476662, -0.05632204) * go_4(0.0, -1.0); + result += mat4(0.30331823, -0.13950066, 0.046152875, -0.049017597, -0.030433452, -0.098067395, 0.05823237, 0.23484923, -0.052533124, -0.17569515, 0.043904085, 0.34406292, 0.09246567, 0.44028738, -0.1541278, 0.10462374) * go_4(0.0, 0.0); + result += mat4(-0.053813357, -0.06074867, -0.08128881, -0.015421247, 0.1122167, 0.06750029, -0.07663203, 0.06962623, 0.016814634, -0.018121587, -0.17165172, 0.06247406, -0.061192635, -0.21323347, -0.20642947, 0.024856035) * go_4(0.0, 1.0); + result += mat4(-0.017261975, 0.001956938, 0.03585212, -0.051244717, -0.012848608, 0.060172677, -0.110458344, -0.14227545, 0.074150845, 0.122560345, 0.0022584137, 0.124024406, -0.0020875141, -0.44394484, 0.21422713, -0.04319881) * go_4(1.0, -1.0); + result += mat4(-0.034175355, -0.010641907, -0.035431314, 0.009394309, 0.06870524, -0.020846654, 0.0075500663, -0.10564474, 0.031213112, 0.32362583, -0.01739634, -0.080315515, -0.026090765, -0.2125432, 0.17748094, 0.08196893) * go_4(1.0, 0.0); + result += mat4(0.023425572, 0.058883358, -0.08460052, -0.06000809, -0.07512468, 0.15626664, 0.007509836, 0.019525077, 0.054792758, -0.23570415, -0.05554373, -0.14720254, -0.022515034, 0.04687545, -0.09122355, -0.08824173) * go_4(1.0, 1.0); + result += mat4(0.03242358, 0.009580177, 0.020231772, 0.022309156, -0.12902056, 0.14806129, -0.027296314, 0.063802026, -0.039501395, -0.01489755, -0.19859995, -0.10364646, 0.09310042, -0.028172733, -0.08560778, -0.030869158) * go_5(-1.0, -1.0); + result += mat4(-0.101350136, 0.05526243, 0.0035860895, 0.09896092, 0.19400865, 0.2449927, -0.18022242, 0.09199169, -0.0077618533, -0.18838565, -0.45503637, 0.20625886, 0.041608825, -0.114395924, -0.0850152, 0.0733077) * go_5(-1.0, 0.0); + result += mat4(-0.08502301, 0.15609683, 0.017885443, -0.02539383, -0.026503822, -0.036420856, 0.0021276672, 0.06999657, -0.046073034, 0.16763787, -0.14055778, -0.0049013835, 0.009052177, -0.09790551, 0.117615454, 0.048404485) * go_5(-1.0, 1.0); + result += mat4(-0.028804805, 0.004398154, 0.02801529, -0.0806873, -0.03933947, 0.12910266, -0.1326506, 0.08548417, -0.5164903, 0.07406561, 0.22457983, 0.14813408, -0.05975599, -0.019444315, 0.07565449, -0.23129421) * go_5(0.0, -1.0); + result += mat4(-0.2850856, -0.12607557, 0.014540369, -0.08426361, -0.027262088, 0.20371006, -0.12156548, 0.17130668, -0.31521708, 0.049210936, -0.35247996, 0.18296543, 0.42723244, 0.2039884, -0.035021685, 1.1381091) * go_5(0.0, 0.0); + result += mat4(0.08956528, -0.00317981, -0.07248739, -0.055904776, -0.03996253, 0.025405107, 0.00059332704, -0.037291884, -0.09004787, -0.23186557, -0.16186874, 0.0020177872, 0.022994975, -0.20395516, -0.17148314, 0.14748491) * go_5(0.0, 1.0); + result += mat4(-0.0061345818, -0.16014275, 0.17222595, -0.07567761, -0.061348878, -0.1720377, 0.12391044, -0.1664243, 0.20054317, 0.053534795, 0.18869756, -0.15747075, 0.023294995, 0.19970472, 0.14656426, 0.033892497) * go_5(1.0, -1.0); + result += mat4(-0.0951606, 0.114271455, -0.035583224, -0.0395411, -0.324703, -0.3520329, 0.32128307, -0.05776112, -0.12950924, 0.10391318, -0.0319499, -0.050979655, -0.13066222, -0.25933158, 0.021341946, 0.09927698) * go_5(1.0, 0.0); + result += mat4(0.18134786, -0.057574477, -0.1466477, -0.046258144, -0.024677455, 0.04083935, 0.14517285, -0.25801346, 0.18157719, -0.090125926, -0.0036604172, -0.20966503, -0.00015470991, -0.016252374, -0.03844368, 0.06726928) * go_5(1.0, 1.0); + result += vec4(0.057122286, 0.012267435, -0.008509618, -0.033430006); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.04442572, -0.021079494, 0.08133416, -0.14203873, -0.07575563, -0.036278915, -0.02581178, 0.074260384, 0.110657595, 0.022575535, 0.14307183, 0.009784463, 0.0019734183, -0.022827094, -0.10990385, 0.018472824) * go_0(-1.0, -1.0); + result += mat4(0.21470577, -0.102078706, -0.19685651, -0.10499778, -0.14538614, 0.12205785, -0.119196534, -0.12512656, -0.0157255, 0.06778767, 0.051144827, -0.061093763, -0.014912816, -0.10668368, 0.16782193, 0.04672345) * go_0(-1.0, 0.0); + result += mat4(0.23532265, -0.06437796, -0.1636927, 0.096415624, -0.14463958, 0.07062449, -0.009412339, -0.053424593, -0.020204574, 0.048089918, -0.036215715, -0.140922, -0.11925414, -0.05972305, 0.0024522278, 0.09344713) * go_0(-1.0, 1.0); + result += mat4(-0.007486091, -0.041294333, 0.03958969, 0.053319015, -0.0508917, -0.05159112, 0.11288304, 0.26939824, 0.024348699, 0.060014047, -0.034696687, 0.009803982, -0.019758658, -0.108922645, 0.14256927, -0.027265849) * go_0(0.0, -1.0); + result += mat4(0.08267747, 0.01354375, 0.33666995, 0.101669155, -0.110209286, 0.14248498, -0.16946654, -0.35839102, 0.20460105, 0.11426335, 0.11318654, -0.044304296, -0.076097116, 0.029738575, 0.15636109, -0.0552018) * go_0(0.0, 0.0); + result += mat4(0.14432563, 0.0046133446, -0.10694144, 0.022137064, -0.5636542, -0.13867012, -0.008164329, -0.12708999, 0.044234607, 0.115975946, -0.092227295, -0.07865807, 0.108110346, -0.017337924, 0.043074783, -0.041216116) * go_0(0.0, 1.0); + result += mat4(0.026432367, -0.06873426, 0.061831556, -0.00605308, -0.056780808, -0.07177329, -0.0057719476, 0.07050306, 0.027728474, 0.09348229, -0.09152759, -0.09133902, 0.024218138, 0.03562348, -0.018500235, 0.024786536) * go_0(1.0, -1.0); + result += mat4(-0.015634011, 0.00043256918, -0.08569041, 0.099786475, -0.13876541, 0.06958842, -0.21906306, 0.11165318, -0.09130837, 0.14580032, -0.102398746, 0.051243573, 0.059544906, 0.057559166, -0.033218343, 0.08339028) * go_0(1.0, 0.0); + result += mat4(0.006991434, -0.0743791, -0.088750206, -0.021417037, -0.29907656, 0.007902655, -0.036114752, -0.122924, -0.067659825, 0.029919846, 0.14793514, -0.097599104, 0.016503064, -0.1095046, -0.028360674, -0.058358364) * go_0(1.0, 1.0); + result += mat4(0.004909281, 0.071267895, 0.16850118, -0.054999575, -0.14304577, 0.02441106, 0.050973237, 0.009992714, -0.109278284, 0.07919291, 0.0077810627, 0.034462743, 0.047741413, 0.12163777, -0.12122584, 0.013382445) * go_1(-1.0, -1.0); + result += mat4(0.0005590338, -0.015862202, -0.046375863, -0.091307804, -0.20246892, -0.059480507, 0.11874404, 0.17396803, -0.17960979, -0.034825385, 0.004660247, 0.1359996, 0.0032430585, 0.07977283, 0.148807, -0.05778742) * go_1(-1.0, 0.0); + result += mat4(0.18160479, 0.043647032, -0.017925482, 0.017439943, 0.015033334, 0.011356719, 0.03396472, 0.004971239, -0.13910371, 0.044191893, -0.12855305, -0.056105338, 0.056831665, 0.133879, -0.063164115, 0.0071621994) * go_1(-1.0, 1.0); + result += mat4(-0.113280386, 0.0025519284, 0.18671317, 0.08804424, 0.20677073, -0.0804015, -0.08834917, 0.09533873, 0.083148256, -0.048961774, -0.07908736, -0.02688625, 0.035848085, 0.10695606, -0.22634004, -0.13171262) * go_1(0.0, -1.0); + result += mat4(0.1707226, 0.08533742, 0.21622618, -0.21757056, -0.1274536, 0.08398028, 0.3202134, 0.022998685, 0.04880864, -0.34749946, 0.13356782, 0.054071113, 0.27817082, 0.082054846, 0.1917598, -0.028963286) * go_1(0.0, 0.0); + result += mat4(0.017651493, 0.026090013, -0.15366435, 0.04745487, -0.083071895, 0.04845406, 0.05552361, 0.096130624, -0.010397022, 0.053183064, -0.07440269, -0.027566215, -0.1770849, -0.02905562, 0.07577059, 0.01106056) * go_1(0.0, 1.0); + result += mat4(-0.09079958, 0.07023978, 0.013599515, 0.03719188, -0.029139029, -0.12541416, -0.1298324, -0.089526765, 0.026374, -0.03675827, -0.0664432, -0.10954637, -0.03706898, 0.07195458, 0.2083045, -0.13173243) * go_1(1.0, -1.0); + result += mat4(0.119648434, 0.085478894, 0.1322845, -0.217921, -0.0493358, 0.016056411, -0.008486342, 0.121576615, -0.15643454, 0.03276933, 0.096999034, -0.04267362, -0.0680802, 0.19929416, -0.09860732, -0.20886037) * go_1(1.0, 0.0); + result += mat4(-0.03567257, 0.09823424, 0.097885884, -0.0057406626, -0.007873974, -0.103281036, -0.013342071, -0.052842017, -0.15585557, -0.127313, -0.08575327, 0.012302473, 0.14850815, 0.1284913, -0.11507875, -0.053595018) * go_1(1.0, 1.0); + result += mat4(-0.054356705, 0.029001048, 0.017115368, 0.03151991, 0.18608244, 0.13901179, 0.57566303, 0.06494094, 0.028459521, 0.14781436, 0.06256118, 0.030419847, 0.07467109, -0.06440686, 0.053834237, -0.0071851187) * go_2(-1.0, -1.0); + result += mat4(0.007199532, -0.121588215, 0.044833265, 0.27465758, 0.3438028, -0.023367146, 0.51061314, -0.238366, -0.2637815, 0.10414675, 0.23945883, 0.12390733, 0.23056524, -0.036144268, 0.029334458, -0.022119714) * go_2(-1.0, 0.0); + result += mat4(-0.05376701, -0.06664099, 0.059821654, -0.0018416446, 0.2638233, 0.043670908, 0.3815553, -0.13832693, -0.0050786, 0.09253983, 0.23859836, 0.07963589, 0.07718028, -0.079752676, 0.11433723, 0.011501202) * go_2(-1.0, 1.0); + result += mat4(0.1874364, -0.17093459, 0.010855328, 0.120664425, 0.111470625, 0.1484681, 0.5195336, -0.0069446685, 0.042319857, 0.05145161, -0.039009307, -0.01998825, -0.07303624, 0.09134541, 0.10079329, 0.030079208) * go_2(0.0, -1.0); + result += mat4(-0.2186243, -0.4428867, 0.092963874, 0.13073802, -0.019760692, 0.08763586, 0.34470505, -0.23975423, -0.49366876, 0.03650021, -0.26312304, -0.10178505, -0.19149905, 0.08961964, -0.03015555, -0.41838256) * go_2(0.0, 0.0); + result += mat4(-0.028188573, 0.031499006, -0.063600264, 0.24837458, 0.19443984, 0.058427423, 0.28769475, -0.08521067, -0.071029276, 0.14094949, 0.11166354, 0.049317956, -0.010624909, -0.06265303, 0.1114735, 0.02864904) * go_2(0.0, 1.0); + result += mat4(-0.052337993, -0.017547317, -0.03520667, 0.002673191, 0.1905491, 0.17264749, 0.32332307, 0.061626773, 0.136209, 0.19794804, 0.16509542, -0.04580146, 0.028514566, 0.041068107, 0.043710496, -0.13467996) * go_2(1.0, -1.0); + result += mat4(0.057524405, -0.0670017, 0.0016474138, 0.10262694, 0.036269784, 0.036402486, 0.44747186, 0.12797451, -0.047264162, 0.0766207, -0.23309897, -0.1266668, 0.074957475, 0.015929028, 0.2692563, 0.036415808) * go_2(1.0, 0.0); + result += mat4(0.17724822, -0.109371126, -0.0682871, 0.14675598, 0.054630626, 0.062969014, 0.36832303, -0.013787229, 0.024231227, 0.12613758, -0.055872746, -0.04053383, -0.006620505, 0.015584234, 0.035116877, 0.01693195) * go_2(1.0, 1.0); + result += mat4(0.19397566, 0.07098955, 0.18101004, 0.083367795, -0.070514366, -0.044412676, -0.062800385, 0.068795145, -0.19326128, -0.10733093, -0.1681797, 0.02347941, 0.09339788, 0.15950295, 0.057467394, 0.056237224) * go_3(-1.0, -1.0); + result += mat4(0.136637, -0.07271869, 0.26881287, 0.34395644, -0.04324773, 0.103202775, -0.16522674, -0.044781554, -0.086582124, 0.054414462, 0.065597564, 0.033376656, -0.111290336, -0.0014986617, -0.2212502, -0.25075877) * go_3(-1.0, 0.0); + result += mat4(-0.06789657, -0.18068478, 0.09911924, -0.23166406, -0.044929348, -0.031290393, 0.13361748, 0.03413577, -0.040923, 0.049681865, -0.07380375, 0.08915985, 0.07288317, 0.06554518, -0.1643758, 0.055818856) * go_3(-1.0, 1.0); + result += mat4(0.2203703, -0.037368517, 0.09785233, -0.06491308, -0.092911914, -0.031082682, -0.104810245, 0.034624774, -0.023380022, 0.0052404683, 0.06841838, -0.023614911, -0.03593765, -0.046437703, -0.1844866, -0.14166127) * go_3(0.0, -1.0); + result += mat4(0.05909365, -0.36332077, -0.2689632, 0.1739602, -0.45130134, 0.12989542, -0.005341447, -0.06824331, -0.15072067, -0.05676317, -0.13605535, -0.18169174, 0.07681412, 0.124912, -0.021684267, 0.0894891) * go_3(0.0, 0.0); + result += mat4(-0.035549298, -0.21778642, 0.097288795, -0.26111203, 0.10414918, 0.0061409012, -0.0556371, -0.032494467, 0.052588258, 0.06812076, -0.16265821, 0.118465446, -0.099786356, 0.0869041, -0.25942245, 0.009399633) * go_3(0.0, 1.0); + result += mat4(0.11580169, -0.024714155, 0.010325179, 0.013701658, -0.076200895, 0.10303264, -0.094055474, -0.029318763, 0.07376417, 0.049632907, 0.032555673, 0.10790659, -0.101094194, 0.071630724, -0.109847575, 0.0077851396) * go_3(1.0, -1.0); + result += mat4(0.1398949, -0.04883586, 0.23428173, -0.15378661, -0.100387186, 0.009293077, -0.008328632, -0.10520436, 0.035526622, 0.064958505, -0.1684589, -0.12430499, 0.13108692, 0.028732104, -0.0724291, -0.14364761) * go_3(1.0, 0.0); + result += mat4(0.13408709, 0.037318103, 0.030060692, -0.02245396, -0.11561478, -0.07266053, -0.14419918, -0.15680459, 0.104011424, 0.0289589, -0.05245363, 0.02856205, -0.0973203, -0.009120509, 0.08775658, -0.08062229) * go_3(1.0, 1.0); + result += mat4(0.115849026, 0.06085271, -0.015712146, -0.035179697, 0.14623754, -0.027535545, 0.105676346, 0.28401312, 0.00610444, -0.18113948, 0.003972312, 0.022277411, 0.030053148, -0.06660701, -0.007032331, -0.026460487) * go_4(-1.0, -1.0); + result += mat4(0.105825655, 0.031863045, -0.011142612, -0.023293436, 0.0680703, 0.12657744, -0.31427047, -0.045503054, 0.019428464, 0.055280883, 0.033349436, -0.0824765, 0.04048357, -0.039309558, -0.13541335, -0.0711577) * go_4(-1.0, 0.0); + result += mat4(0.00587736, 0.066619515, -0.1982745, -0.12112423, -0.001499343, -0.06931127, -0.17176788, 0.030141942, -0.10718468, 0.07443775, -0.12964384, 0.122857764, -0.06771741, -0.07971639, -0.044493467, -0.0075695426) * go_4(-1.0, 1.0); + result += mat4(0.023990182, 0.052072257, -0.07704469, -0.05818583, 0.2703359, -0.1253082, 0.3321394, 0.51275367, -0.20541172, 0.087123945, -0.21254195, -0.21670723, 0.00083692186, -0.04276457, 0.10195174, 0.03721505) * go_4(0.0, -1.0); + result += mat4(0.080449946, 0.18648995, -0.11595206, -0.15039912, -0.07889376, -0.31233358, -0.2996588, 0.551305, -0.20122233, 0.24880885, -0.04481761, -0.3973453, 0.10033973, 0.05511902, 0.029888729, 0.021694044) * go_4(0.0, 0.0); + result += mat4(0.03702065, -0.088798195, 0.06667468, 0.044227604, 0.07188657, -0.04998249, 0.2439061, -0.1476103, -0.064125344, 0.034045372, -0.13339408, 0.109842144, 0.19029056, -0.029507356, -0.08236508, 0.07658855) * go_4(0.0, 1.0); + result += mat4(0.028597932, -0.03854459, 0.047724374, 0.065792255, -0.09860975, -0.08000352, 0.10390718, 0.23593639, -0.11188388, 0.016842902, -0.11817977, 0.06368645, 0.055055078, 0.058349103, -0.08001618, -0.024517627) * go_4(1.0, -1.0); + result += mat4(-0.16921136, -0.04083932, -0.00835477, 0.2030543, -0.012638247, -0.27452287, 0.0956476, -0.04617994, 0.15653826, 0.06020273, -0.10202549, -0.06836085, 0.11841569, 0.048987422, -0.07977096, -0.012123196) * go_4(1.0, 0.0); + result += mat4(-0.0235341, -0.046976402, 0.032694343, -0.16520928, -0.017081633, -0.03708282, 0.07898976, -0.11212351, 0.11997062, 0.15722035, 0.06421537, 0.00097069755, 0.037570357, -0.040770754, -0.0743307, 0.0534563) * go_4(1.0, 1.0); + result += mat4(0.09699342, -0.09981163, -0.10912867, 0.10897145, -0.030223582, -0.014247349, -0.03482929, -0.01305651, -0.038396984, 0.009796579, -0.1132907, 0.077554524, 0.031296402, 0.014200385, 0.22940783, 0.13804206) * go_5(-1.0, -1.0); + result += mat4(0.1207108, -0.1887047, 0.15963583, 0.03816067, -0.017255, 0.008443818, -0.065400094, 0.044166937, 0.17263496, 0.14113733, 0.082817905, 0.082012236, 0.096803635, -0.06069386, -0.062445905, -0.04569513) * go_5(-1.0, 0.0); + result += mat4(-0.03677858, 0.027012087, -0.20495425, 0.16764086, -0.025615353, -0.0020314269, 0.007159334, -0.0044264444, -0.04242938, -0.04116411, -0.063763745, -0.016643412, -0.022430163, -0.09297498, 0.0027288082, 0.09743419) * go_5(-1.0, 1.0); + result += mat4(0.098948084, -0.13285282, 0.19235732, 0.2794696, 0.004499766, -0.015963264, -0.0557736, 0.0024319638, -0.048159864, 0.029840004, -0.32350582, -0.21436322, 0.11063215, -0.07647232, -0.061627094, -0.09123133) * go_5(0.0, -1.0); + result += mat4(0.13004114, -0.12624854, -0.1305723, -0.18789066, 0.041747153, 0.019262334, 0.17703997, 0.02054544, 0.16357894, 0.09787803, 0.07931654, 0.23711719, 0.07959038, -0.14655703, 0.19117653, 0.5182774) * go_5(0.0, 0.0); + result += mat4(-0.021226425, -0.15988874, -0.25700846, 0.08832854, 0.012499655, 0.011893902, 0.029938264, -0.0056565106, -0.047849346, -0.07041324, 0.1554268, -0.09428568, -0.057141136, 0.0027243465, 0.08234678, 0.028744241) * go_5(0.0, 1.0); + result += mat4(0.011884608, -0.14763886, -0.021171318, 0.14934142, -0.018248998, -0.024268437, -0.014130621, -0.0027485457, -0.0809039, 0.05827554, -0.14076029, -0.1408414, 0.033655114, -0.113111265, 0.007957397, 0.024406865) * go_5(1.0, -1.0); + result += mat4(-0.03952874, -0.10756346, -0.21955557, 0.07950554, -0.05224832, -0.0015799722, 0.019645864, 0.046215426, 0.025174068, 0.05614136, -0.02355428, 0.12604117, -0.05630602, -0.104844145, 0.0040577715, 0.20292816) * go_5(1.0, 0.0); + result += mat4(0.08337458, -0.04375854, 0.12814969, -0.0505745, -0.02162198, -0.022859862, -0.009827576, -0.06884463, -0.13378213, -0.024044786, -0.1587514, -0.09542159, -0.079674646, -0.118072495, -0.015328217, -0.034902822) * go_5(1.0, 1.0); + result += vec4(0.06617475, 0.031411394, -0.08600086, -0.12331019); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.104435995, 0.08523803, 0.13313451, 0.01485225, -0.067918435, 0.17933276, 0.021827344, 0.0296916, -0.07059249, 0.0037901546, 0.016877035, -0.029718481, 0.013821487, 0.0051245163, -0.009027754, -0.0703365) * go_0(-1.0, -1.0); + result += mat4(-0.13151535, 0.05132924, 0.2739186, 0.48619145, 0.13476053, 0.3685631, -0.027353717, -0.07500873, -0.05480841, -0.014034983, -0.085864894, 0.08971871, 0.07406436, -0.01183941, 0.16449541, -0.06773314) * go_0(-1.0, 0.0); + result += mat4(0.013538097, 0.1583598, -0.055277165, 0.07637614, 0.07473682, 0.22345996, 0.030919895, -0.06126728, 0.02978074, -0.10157281, -0.1264838, 0.00084818545, 0.10940815, -0.0269847, 0.063068226, -0.03479123) * go_0(-1.0, 1.0); + result += mat4(0.043592498, 0.18918565, 0.21017411, -0.023375075, -0.021484343, -0.06985366, 0.21826547, -0.00875028, 0.07610231, -0.08861247, 0.03791508, 0.0031226536, -0.028661136, 0.060399413, 0.0592066, -0.06264682) * go_0(0.0, -1.0); + result += mat4(0.21633635, 0.22528979, 0.47684777, -0.058535807, 0.08307837, -0.19632038, 0.12323838, -0.02472063, 0.056115244, 0.07563149, -0.083180495, -0.07311292, 0.03583403, -0.2776853, -0.20366116, -0.022084663) * go_0(0.0, 0.0); + result += mat4(0.057834644, 0.19703801, -0.047718063, 0.079801254, 0.12549312, 0.026414996, 0.023341564, 0.082731344, 0.14167784, 0.048134133, -0.04772942, 0.09571532, -0.097056195, 0.007009441, 0.06857669, 0.026794193) * go_0(0.0, 1.0); + result += mat4(0.041096892, 0.006188847, 0.11750499, -0.13447829, 0.0017394158, 0.01783059, 0.15956202, -0.03767544, 0.02673659, -0.05342451, -0.14283001, 0.004724371, -0.024063434, 0.023162393, 0.054349884, -0.10900122) * go_0(1.0, -1.0); + result += mat4(0.07189023, 0.014259161, -0.028867813, -0.045834795, 0.14308538, 0.17444627, 0.17258337, 0.022358263, -0.05739824, 0.07874781, 0.00055093376, -0.12329737, -0.063672766, 0.025692929, -0.052464493, 0.17745042) * go_0(1.0, 0.0); + result += mat4(0.026802428, 0.13577338, -0.06985617, 0.074659124, 0.1569288, 0.08905961, 0.012837567, -0.052218303, -0.025591483, 0.119624466, 0.024393069, 0.19790728, -0.037801497, 0.05334152, 0.019320685, -0.012112278) * go_0(1.0, 1.0); + result += mat4(0.05892214, -0.032721363, -0.045643594, -0.030719811, -0.104445435, -0.1574105, -0.06973961, 0.0880568, -0.015203705, -0.13851601, -0.01675903, -0.025943246, 0.05482791, -0.08070468, 0.0048817545, -0.2195491) * go_1(-1.0, -1.0); + result += mat4(0.21571757, -0.1806072, -0.010998025, 0.020393362, 0.021816706, -0.018158916, -0.11101471, 0.016325697, -0.12101562, -0.049236, -0.20187455, 0.1455995, 0.04611496, 0.08955074, -0.098323554, 0.009564463) * go_1(-1.0, 0.0); + result += mat4(0.005143037, 0.031717982, -0.050139457, -0.1109613, 0.03775848, 0.00954106, -0.06293631, 0.0890101, -0.00040289984, -0.03748492, -0.06439364, 0.07678777, 0.08420904, -0.019876583, -0.122263946, -0.06204237) * go_1(-1.0, 1.0); + result += mat4(-0.20215075, 0.050689973, -0.046013024, 0.0023596657, -0.15971628, -0.20731676, 0.12560777, 0.29917854, -0.111574054, -0.04077845, -0.11790463, 0.04522926, 0.18117487, -0.17887163, -0.09449106, -0.32954872) * go_1(0.0, -1.0); + result += mat4(-0.048394788, 0.0773854, 0.069474846, -0.15471548, -0.22533698, -0.03836189, 0.042107325, 0.07787484, -0.19023094, -0.31975862, 0.027023884, 0.22310641, -0.30156738, -0.18671185, 0.10680384, -0.17596984) * go_1(0.0, 0.0); + result += mat4(-0.049384125, -0.10053522, -0.02494229, 0.13089181, 0.12716612, -0.011930183, -0.055107582, -0.011396776, -0.037174955, -0.07332422, -0.037290994, -0.020584442, 0.12331001, -0.15849335, -0.11254808, -0.0070635113) * go_1(0.0, 1.0); + result += mat4(0.10335844, 0.014899349, -0.064154595, -0.0028669129, 0.034805696, -0.18495506, 0.005376811, 0.08496156, 0.013403576, -0.014818112, -0.01596864, -0.03724775, 0.07349724, -0.0763195, 0.0443468, -0.22289227) * go_1(1.0, -1.0); + result += mat4(0.121551886, 0.006529306, -0.013299677, -0.19693732, -0.0043474436, -0.19871178, -0.052884568, 0.074092165, -0.038850788, 0.033550348, -0.08163774, 0.06271596, 0.20859785, 0.0067883697, -0.046475146, -0.48063815) * go_1(1.0, 0.0); + result += mat4(0.083180554, 0.052318644, 0.03218632, 0.11313337, -0.031635284, -0.09441545, -0.004538136, 0.03766669, -0.15290408, 0.029063439, -0.08709602, 0.20032041, 0.10752559, -0.025936332, -0.16803461, -0.31867516) * go_1(1.0, 1.0); + result += mat4(-0.011112246, 0.05966688, 0.08825975, -0.06790863, -0.0754694, -0.19575286, 0.08554758, -0.18269138, -0.1280453, 0.18379766, -0.08955887, 0.17286651, -0.013172642, -0.0035751443, 0.055351105, -0.02254156) * go_2(-1.0, -1.0); + result += mat4(-0.11329527, 0.181477, -0.054028887, 0.037797876, -0.14424248, -0.15426451, -0.0749264, -0.15829895, -0.09827482, 0.13866791, 0.013977896, 0.3066159, 0.03892076, 0.0022721966, 0.088637464, -0.18673263) * go_2(-1.0, 0.0); + result += mat4(0.052434247, 0.1075718, 0.09951973, -0.026689908, -0.082213305, -0.068657055, -0.10954474, -0.36598998, 0.059983972, 0.071539626, 0.105706535, -0.014004922, -0.04493435, -0.00943364, 0.014306285, -0.086277805) * go_2(-1.0, 1.0); + result += mat4(-0.07653824, -0.05569481, 0.12022612, -0.02960086, -0.0827238, -0.12082348, 0.018902717, -0.17416616, -0.03121552, 0.008206833, -0.10166017, 0.0037599066, -0.009543466, 0.0020527479, 0.050042894, -0.10293714) * go_2(0.0, -1.0); + result += mat4(0.14261888, -0.1898871, -0.15847605, 0.028050601, -0.016525509, -0.03094436, -0.19239494, -0.18140908, 0.14230183, -0.33403888, -0.39611194, 0.13778488, 0.1988197, -0.06581933, 0.002683303, -0.108148) * go_2(0.0, 0.0); + result += mat4(-0.037351307, -0.09952294, 0.024785696, -0.0168355, -0.07218153, -0.1065052, -0.081961505, -0.15091445, 0.18406965, 0.13677996, -0.14867578, 0.089149386, -0.05840212, -0.059798297, -0.0201243, -0.029525604) * go_2(0.0, 1.0); + result += mat4(-0.009857878, -0.087470345, 0.011972532, -0.13542594, 0.0354294, -0.20797616, -0.024621738, -0.08760984, 0.072218195, -0.13620329, -0.050354343, -0.17628804, 0.0071922955, 0.0018819867, -0.03858231, 0.018087402) * go_2(1.0, -1.0); + result += mat4(-0.1553403, -0.03627257, 0.004989727, -0.0921159, -0.05149391, -0.21778369, -0.06126919, -0.072652444, 0.22329745, -0.11201775, -0.122997835, 0.05540077, -0.07249663, 0.0042517297, -0.05706445, 0.017356722) * go_2(1.0, 0.0); + result += mat4(-0.05847665, -0.015685597, 0.14335254, -0.007372796, -0.0077773617, -0.08556339, 0.06739385, -0.04068274, 0.15799382, 0.038163103, 0.05265575, -0.08238097, 0.040807348, -0.07065019, 0.028166778, -0.15436243) * go_2(1.0, 1.0); + result += mat4(-0.16044334, 0.283655, -0.022656776, 0.08448171, -0.038254652, -0.044832315, 0.08454063, 0.007472126, -0.009800128, 0.18591672, 0.10872203, -0.058036473, -0.098420285, 0.023155827, -0.04196021, 0.09891162) * go_3(-1.0, -1.0); + result += mat4(-0.17852576, 0.54625523, -0.081733584, 0.081366554, -0.069625385, -0.11218507, 0.028421586, 0.071588986, -0.014985082, -0.087979324, 0.3142317, -0.19760501, -0.16015647, 0.13895224, -0.2701074, 0.30648437) * go_3(-1.0, 0.0); + result += mat4(-0.014566373, 0.02057931, 0.10014358, 0.06578205, -0.15359782, -0.11839336, 0.13061163, 0.076945096, -0.01413561, -0.013397205, 0.015244041, -0.10279087, 0.09975661, -0.023128696, -0.016278943, 0.18001132) * go_3(-1.0, 1.0); + result += mat4(-0.06356644, 0.14646067, 0.016344864, -0.013904187, 0.064943634, -0.1281504, -0.06950529, -0.028252209, -0.011304186, 0.04061305, 0.09251525, -0.05251633, 0.09714447, -0.05430799, -0.17469239, 0.1850043) * go_3(0.0, -1.0); + result += mat4(-0.14378282, 0.22984904, 0.32252252, 0.26133427, 0.45289674, 0.14866802, -0.24101377, -0.18861331, -0.030501021, -0.1883431, -0.13604005, -0.15657176, 0.020317623, 0.23096721, 0.10420801, 0.15710264) * go_3(0.0, 0.0); + result += mat4(0.06454669, -0.04189079, 0.056962494, -0.04948231, -0.2148223, -0.039649688, -0.0113121355, 0.20814565, 0.111416936, -0.035151463, -0.056465276, -0.080573045, -0.07819258, 0.018179936, -0.2283728, 0.12155499) * go_3(0.0, 1.0); + result += mat4(-0.02560027, 0.070398115, -0.02989104, 0.028688442, 0.04278315, 0.013474358, -0.07253673, 0.02276444, 0.12581308, -0.03901054, 0.08311041, -0.08153711, 0.02564736, -0.043852035, -0.028089473, -0.044236403) * go_3(1.0, -1.0); + result += mat4(0.09625976, 0.005770156, 0.16631871, -0.1034893, -0.19147423, 0.004631949, -0.07540428, 0.015621006, 0.03929467, 0.04762953, -0.080173716, -0.10179307, 0.059833538, 0.05659006, -0.13382521, -0.0313998) * go_3(1.0, 0.0); + result += mat4(0.07715199, -0.03317866, -0.024203375, -0.1298324, -0.09655965, -0.026206894, 0.18922973, 0.07624604, -0.007847103, -0.058786727, -0.049493928, 0.019805223, -0.008090047, -0.019503202, -0.064513676, 0.10351463) * go_3(1.0, 1.0); + result += mat4(0.022054255, -0.07858889, -0.10127163, -0.06832876, -0.07584891, 0.04215273, -0.0029053919, 0.08290376, -0.03475005, 0.08332925, 0.009553486, 0.07245685, -0.017920833, 0.015080806, -0.0002565289, 0.006093501) * go_4(-1.0, -1.0); + result += mat4(0.09178481, 0.013873079, -0.02395207, -0.133258, -0.08877421, -0.21369275, -0.11754095, 0.17205496, 0.012909828, 0.10264451, 0.23808923, 0.055029023, 0.034399036, -0.046347205, 0.0067525543, 0.0777463) * go_4(-1.0, 0.0); + result += mat4(-0.02699122, 0.04746888, -0.113287434, -0.025223, -0.005920497, -0.21902934, -0.13731015, 0.014423957, 0.036004063, 0.05559045, -0.0655789, 0.13083544, -0.06181434, 0.042077873, 0.022695009, 0.043042142) * go_4(-1.0, 1.0); + result += mat4(0.05076442, -0.06772015, -0.044568565, -0.018430268, -0.046832457, 0.14489225, 0.118378006, 0.053310696, 0.117090195, 0.23086876, 0.058276806, -0.03198186, -0.026497893, 0.09645919, 0.08429416, -0.022437949) * go_4(0.0, -1.0); + result += mat4(0.06788362, -0.071499035, -0.03412108, -0.1442882, -0.061426826, 0.15115702, 0.20443979, 0.42235458, 0.34301203, 0.15906362, -0.4573595, -0.38218448, 0.074763715, 0.03956433, -0.2741876, -0.045825735) * go_4(0.0, 0.0); + result += mat4(0.042785604, 0.086842, 0.06526033, -0.26330376, -0.13392642, -0.09802622, -0.060285453, -0.04659627, 0.063904576, 0.030205727, -0.02990855, -0.03692373, 0.009259516, -0.033007562, -0.027945964, 0.12487634) * go_4(0.0, 1.0); + result += mat4(-0.04833785, 0.025812654, 0.09670586, -0.0398005, 0.084576905, 0.006827775, 0.21430464, -0.062337395, 0.01071662, 0.042277753, -0.07786652, 0.080589384, 0.050834, -0.018442666, -0.10043296, 0.0051965285) * go_4(1.0, -1.0); + result += mat4(-0.06940597, 0.0052362564, 0.11979121, 0.002420146, -0.014626038, -0.033247836, 0.07638099, 0.024731234, 0.13817027, -0.034607813, 0.069013715, -0.1591328, 0.017410269, 0.020814985, -0.071453065, 0.07467316) * go_4(1.0, 0.0); + result += mat4(-0.03586743, 0.0875829, 0.14604242, -0.08374493, -0.015870938, -0.037566822, -0.04257119, 0.013528102, 0.051471747, -0.00025074458, -0.043193746, -0.10538127, -0.0122199105, -0.0105835805, 0.096613646, -0.0008547738) * go_4(1.0, 1.0); + result += mat4(-0.09195929, -0.01251629, 0.1138194, -0.03152187, -0.027415436, 0.017695861, -0.05137721, -0.0006171527, 0.021749081, 0.070172004, 0.057883944, -0.031044329, -0.036268383, -0.17082807, -0.0331674, -0.03538632) * go_5(-1.0, -1.0); + result += mat4(-0.27754265, -0.029477704, 0.34336638, -0.0011287191, -0.025141917, 0.034894004, 0.048627432, 0.053214233, -0.053281713, 0.03867139, -0.028029127, 0.09459172, 0.008080466, -0.122576915, -0.020655254, -0.1817124) * go_5(-1.0, 0.0); + result += mat4(-0.1662597, -0.15292045, -0.0053951927, -0.067345075, 0.00020036062, -0.0026049272, -0.038856488, 0.00017393462, -0.03796784, -0.03248859, -0.024195418, 0.06486219, 0.09273242, -0.1581097, 0.03317699, -0.08153722) * go_5(-1.0, 1.0); + result += mat4(-0.11341117, 0.036644243, 0.20370142, -0.12600902, 0.02261616, -0.033919003, 0.028898139, 0.019782161, 0.20895214, -0.09579635, -0.08383094, -0.04259736, 0.0101915635, -0.034835722, 0.05754228, 0.027356239) * go_5(0.0, -1.0); + result += mat4(-0.104123175, 0.122171596, 0.2642155, -0.08453785, 0.019124847, -0.03925304, 0.08668516, -0.16025878, -0.17377967, 0.3448709, 0.024630664, -0.080416046, -0.41245192, 0.062051725, 0.0105510065, -0.19370769) * go_5(0.0, 0.0); + result += mat4(0.021447789, -0.06635468, 0.01480373, 0.04688862, 0.02536135, 0.031706117, 0.019310655, -0.045567643, -0.109611645, -0.11746073, 0.07113426, 0.16584454, 0.05936068, -0.027226295, 0.073482916, -0.12929685) * go_5(0.0, 1.0); + result += mat4(0.0190673, 0.0045874445, 0.09324168, -0.13466571, 0.010220709, 0.037733227, -0.0111948475, 0.006582617, -0.027675852, 0.103390485, -0.15095036, 0.1242396, 0.04393306, -0.0034322627, 0.12748775, -0.08938276) * go_5(1.0, -1.0); + result += mat4(0.05321518, 0.025193566, 0.17684115, -0.017202778, -0.019295435, -0.046254706, 0.055901498, 0.02723333, -0.1394657, 0.054581758, -0.0807223, -0.047655288, 0.048698746, -0.045940652, 0.19415994, 0.0033838819) * go_5(1.0, 0.0); + result += mat4(-0.017342623, 0.116635494, 0.012575626, 0.04339496, 0.0025065525, -0.004621888, -0.049964648, 0.0034235734, 0.04433295, 0.033285826, -0.11080989, 0.124883905, 0.06634157, -0.040422186, -0.04232008, 0.07501063) * go_5(1.0, 1.0); + result += vec4(-0.06898461, -0.06177714, -0.06478548, 0.022993876); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.0349472, -0.09146782, -0.015455071, -0.02013195, -0.013576279, 0.1715199, -0.060827523, -0.060094133, -0.06020249, -0.02977466, -0.010053687, -0.0333128, 0.08293437, 0.08380394, -0.062162157, 0.09678952) * go_0(-1.0, -1.0); + result += mat4(0.09930308, -0.07924828, 0.013899443, -0.44464898, -0.03707883, -0.006584696, -0.05389371, -0.060199857, -0.019344926, -0.01931973, -0.09749517, -0.0686553, -0.07339165, -0.048708685, 0.01131454, 0.1376503) * go_0(-1.0, 0.0); + result += mat4(-0.26070634, 0.040811583, 0.116160385, 0.21038511, -0.27048224, 0.0031473516, 0.032511245, 0.121619865, 0.047579095, -0.114472836, 0.058695633, 0.019592037, -0.03866724, 0.15776725, -0.008668879, 0.05827778) * go_0(-1.0, 1.0); + result += mat4(0.121598184, 0.08180447, -0.03398555, -0.063269034, 0.20604548, 0.0030689642, -0.009161656, -0.10142109, -0.09195833, -0.12376092, -0.05792068, 0.071478724, 0.055384632, 0.0047193686, -0.037130035, -0.04934333) * go_0(0.0, -1.0); + result += mat4(0.12193808, 0.1254089, 0.4908329, -0.21140434, 0.12811103, -0.15737641, -0.23926133, 0.43005112, 0.15134192, -0.08466868, 0.12739879, 0.0066337097, 0.16472779, -0.105588906, -0.22597887, 0.14652383) * go_0(0.0, 0.0); + result += mat4(-0.16729999, -0.03391507, 0.07358867, 0.060984816, -0.12153663, 0.06727532, 0.18193701, 0.08977565, 0.11250762, -0.018742424, -0.15230577, -0.14556353, 0.16327548, 0.095403135, -0.13089553, 0.072550654) * go_0(0.0, 1.0); + result += mat4(0.13752456, 0.03894747, 0.031068675, 0.023082117, 0.17917861, 0.07080096, -0.011008945, -0.09391019, -0.006836284, -0.015607849, 0.046196267, 0.015853055, -0.12630671, -0.081082314, -0.086036764, 0.1590758) * go_0(1.0, -1.0); + result += mat4(0.012728998, -0.09810741, 0.14294422, -0.059659157, 0.03056563, -0.024036996, -0.015403818, -0.118189946, -0.051906176, -0.17971419, -0.0959625, 0.08985921, 0.10979987, 0.10597462, -0.043452974, 0.03186385) * go_0(1.0, 0.0); + result += mat4(0.020659165, 0.049573228, 0.051704157, 0.028366942, 0.022190692, -0.051479015, 0.054295983, -0.017384693, 0.0026946815, 0.010077197, -0.012801315, 0.0016714733, 0.08869389, 0.05164402, 0.03406929, -0.037191015) * go_0(1.0, 1.0); + result += mat4(-0.10028344, -0.16634189, 0.019711684, 0.020383958, -0.084915325, 0.11053288, -0.07768085, -0.01981037, 0.107243344, -0.012217411, -0.023985125, -0.08483301, -0.19850655, -0.06305865, 0.03655547, 0.06864395) * go_1(-1.0, -1.0); + result += mat4(0.20698719, -0.2885775, 0.059498087, -0.008909828, -0.08331985, 0.13849287, 0.032946825, 0.14271452, -0.104721665, 0.12004092, 0.14654724, -0.004502498, 0.006716589, -0.17328952, 0.014115839, -0.016801946) * go_1(-1.0, 0.0); + result += mat4(0.041014872, -0.080156274, -0.043762606, 0.0528254, -0.04514068, -0.073835544, 0.04116111, -0.0028962197, 0.06113734, -0.00660851, 0.04496306, -0.19104107, 0.10144654, -0.19428198, -0.04189575, -0.027004357) * go_1(-1.0, 1.0); + result += mat4(0.076202326, 0.031882156, -0.08089088, 0.02722187, -0.24690835, -0.035489604, 0.17377102, -0.046913855, 0.09538933, 0.13880032, 0.032495037, -0.053468306, 0.018272033, -0.13557187, -0.0016809801, 0.16564687) * go_1(0.0, -1.0); + result += mat4(-0.1318004, 0.0781202, 0.026608787, 0.2782413, -0.015252272, 0.06966941, 0.6830404, -0.21273687, 0.035827838, -0.013433616, -0.19725588, 0.115758345, 0.12179782, -0.1338549, -0.041967906, 0.3419551) * go_1(0.0, 0.0); + result += mat4(-0.06732849, -0.00047242, -0.09643446, -0.048419215, 0.030914927, -0.13920021, 0.08296221, 0.042942315, 0.18975921, 0.023672665, -0.08061805, -0.11823857, -0.055623423, -0.1345549, 0.1951731, 0.10466201) * go_1(0.0, 1.0); + result += mat4(-0.042122774, -0.14092919, 0.097806625, -0.16809812, -0.0017256415, 0.07320015, 0.02623979, 0.056631763, -0.059066445, 0.050315112, 0.022210397, 0.020917628, 0.07918204, -0.047513902, -0.022105288, 0.017238917) * go_1(1.0, -1.0); + result += mat4(-0.10645019, -0.2826466, 0.06739196, 0.09756199, 0.031106336, -0.08260654, -0.036933657, 0.050086416, 0.0987824, -0.033137392, 0.08894681, -0.23773453, 0.023050837, -0.23565383, -0.09519961, 0.09613443) * go_1(1.0, 0.0); + result += mat4(-0.05644008, -0.21541502, 0.11537729, -0.13721548, -0.020957267, 0.10175056, -0.052707233, 0.17628355, 0.028461214, 0.3014536, -0.038585383, -0.014727664, -0.044595238, -0.10416226, -0.04355546, 0.22365475) * go_1(1.0, 1.0); + result += mat4(-0.08733939, 0.08058479, -0.004023699, -0.025807053, -0.002117148, -0.23746334, 0.065963335, 0.020958645, -0.22460108, -0.009205423, -0.07651075, -0.15989082, 0.05807728, 0.023019457, -0.05400351, 0.075997986) * go_2(-1.0, -1.0); + result += mat4(-0.18092917, 0.29806077, 0.024918934, 0.114404745, 0.049839694, -0.18546863, 0.12478854, 0.13304788, -0.15392973, 0.051560715, -0.06856269, -0.3036006, 0.08124072, -0.05298596, -0.030516481, 0.12273301) * go_2(-1.0, 0.0); + result += mat4(-0.09820723, 0.08067553, 0.029639702, 0.03668786, -0.10049537, -0.19294576, 0.17826727, 0.1635976, -0.16384046, -0.1220917, 0.008744192, 0.012697882, -0.043205783, 0.10298051, 0.021135183, 0.15958472) * go_2(-1.0, 1.0); + result += mat4(0.021761253, 0.1893263, -0.0020750812, 0.14222866, -0.103759706, -0.13740262, 0.08272797, -0.059319258, 0.13402042, -0.07973959, 0.08683529, -0.15174694, -0.1330933, -0.036825962, -0.0028282823, 0.021407785) * go_2(0.0, -1.0); + result += mat4(0.12504603, 0.2479715, -0.35803804, -0.026018003, 0.022745723, -0.07542199, 0.23766859, -0.056435704, 0.033115927, 0.22251359, 0.09025703, -0.39158693, 0.28631303, -0.13876301, -0.4956844, 0.55813307) * go_2(0.0, 0.0); + result += mat4(0.16973238, 0.107451506, -0.10936354, 0.025205612, -0.0154478075, -0.22515228, 0.0618484, -0.053435117, -0.1634102, -0.2720532, 0.22150621, 0.0012615388, 0.045661222, 0.028745374, 0.043213993, 0.014749005) * go_2(0.0, 1.0); + result += mat4(0.08600755, 0.11467286, -0.030524427, 0.025168872, -0.10489299, -0.37458676, 0.07771989, -0.0042441254, -0.11694848, -0.35681316, 0.04747507, -0.0027261428, -0.025253184, -0.08753649, -0.006478329, -0.027177837) * go_2(1.0, -1.0); + result += mat4(-0.0007465437, 0.28975293, -0.18405293, 0.119266, -0.10667221, -0.1802464, 0.19241495, 0.02650873, 0.010430683, -0.23149595, -0.031080026, -0.0006125235, 0.037027247, -0.09754189, 0.04630445, -0.018924896) * go_2(1.0, 0.0); + result += mat4(0.019050436, 0.17480409, -0.13520603, 0.09094483, -0.02445997, -0.21114577, 0.050991118, -0.029637761, -0.16994584, -0.2239252, 0.11126132, -0.06577722, 0.056996938, 0.006512977, -0.049459394, 0.07697084) * go_2(1.0, 1.0); + result += mat4(0.16364041, -0.058814153, -0.07960281, -0.22106613, 0.051421925, 0.13432528, 0.03029435, -0.053310465, -0.043934733, 0.28936264, -0.07070681, -0.04899224, -0.11805805, -0.028338438, 0.100599535, -0.048358817) * go_3(-1.0, -1.0); + result += mat4(-0.14466347, 0.2542083, 0.114321895, 0.060320944, 1.432933e-05, -0.009625721, -0.037658967, -0.22428983, -0.0722048, 0.03882146, 0.17885631, 0.16377795, 0.112711646, -0.13564147, -0.022007236, -0.20185186) * go_3(-1.0, 0.0); + result += mat4(0.1199308, 0.065274626, 0.040273953, -0.029960137, 0.14304884, 0.059161276, -0.02586767, -0.19456553, -0.020681847, -0.03329421, 0.026978612, 0.06485361, 0.088268556, -0.0095202075, -0.1777034, -0.06573516) * go_3(-1.0, 1.0); + result += mat4(0.19750524, -0.124522515, 0.04549369, -0.14726287, -0.13690545, 0.06770214, 0.105929896, 0.10787474, 0.21234562, 0.15915224, 0.12821364, -0.10518945, -0.019162156, 0.060908437, 0.0070991656, -0.05853554) * go_3(0.0, -1.0); + result += mat4(-0.332194, -0.1090442, 0.11825454, 0.0843628, -0.03258615, 0.08459736, 0.11480732, -0.047636237, -0.095243596, 0.07337737, -0.11959047, 0.14512871, 0.034495726, -0.086968474, 0.19812642, -0.013120597) * go_3(0.0, 0.0); + result += mat4(0.038461242, 0.03316589, 0.09561463, 0.18557192, -0.010941443, 0.0907286, -0.016086651, -0.23144832, -0.044253506, -0.058702238, -0.0011041966, -0.045634367, -0.09162548, -0.045157652, -0.021990022, 0.13162635) * go_3(0.0, 1.0); + result += mat4(-0.02456783, -0.03417151, 0.053517457, 0.0039862576, -0.005629444, -0.027595684, -0.09233445, -0.05521366, -0.028361535, -0.10314045, 0.05208228, -0.01962492, -0.096213296, -0.024513567, -0.05102384, 0.13520533) * go_3(1.0, -1.0); + result += mat4(0.08790174, -0.1792104, 0.06702363, 0.036870077, -0.08648169, 0.2826172, -0.17046972, 0.019982012, -0.036582787, -0.055289216, -0.008255741, 0.004824183, 0.03871658, 0.032730278, -0.05807295, 0.06396422) * go_3(1.0, 0.0); + result += mat4(0.032679293, -0.15864716, 0.06863736, 0.038946554, -0.009387644, 0.2248399, -0.022594031, -0.18380828, 0.08792525, -0.053283963, -0.112759285, 0.027726877, -0.086085774, -0.12300368, 0.05827494, -0.17386718) * go_3(1.0, 1.0); + result += mat4(0.08048039, -0.1314228, -0.037761286, 0.047317382, -0.08880487, 0.06179501, 0.07499687, 0.05924045, -0.045838207, 0.18014897, -0.025729936, 0.16530922, 0.06670338, 0.048252247, -0.012380218, 0.02654277) * go_4(-1.0, -1.0); + result += mat4(0.090738244, -0.07097098, 0.02538609, 0.025717502, -0.031697266, -0.09336655, -0.018525556, -0.18561147, 0.036027636, -0.044611387, -0.06725372, -0.183522, 0.0788194, -0.02451563, 0.034200825, -0.032755863) * go_4(-1.0, 0.0); + result += mat4(0.06220659, -0.042783756, -0.021792164, -0.0828951, -0.060966644, 0.0074828877, 0.10836738, 0.12144929, -0.07855744, -0.022806635, 0.02449449, -0.08472964, -0.00337497, 0.14822102, -0.0063337362, -0.022158459) * go_4(-1.0, 1.0); + result += mat4(-0.015443758, -0.14636597, 0.092075996, -0.032396555, 0.57801515, -0.038087387, -0.002455976, -0.21212098, -0.25436863, -0.0014624707, -0.06944989, 0.041554075, 0.07314171, -0.031875722, -0.0898564, -0.009711315) * go_4(0.0, -1.0); + result += mat4(0.39667594, -0.19510192, -0.15319824, 0.09397803, 0.11162815, 0.08910584, -0.17241088, -0.32170787, 0.099810265, -0.24704264, 0.3502755, 0.076993406, -0.011241086, -0.027046101, 0.24804646, -0.03629868) * go_4(0.0, 0.0); + result += mat4(0.04532466, -0.025737574, 0.076878645, -0.022860521, -0.21166173, 0.0066573257, 0.11451736, 0.098494835, 0.054614626, 0.0324795, -0.07475363, -0.016862292, 0.12980871, -0.12060518, -0.078866445, -0.037514597) * go_4(0.0, 1.0); + result += mat4(-0.077329785, 0.20992881, -0.024529329, 0.032680444, 0.28252345, -0.053790633, 0.17370275, -0.14319752, -0.19114175, 0.012085368, 0.0410558, 0.08803704, -0.077949844, -0.15750417, 0.030377569, 0.0388851) * go_4(1.0, -1.0); + result += mat4(-0.063492425, 0.12690471, 0.008844376, -0.14553507, 0.17035894, 0.18411207, 0.21632117, -0.015488823, -0.02806988, -0.13371038, -0.12625034, 0.20475954, -0.059775293, -0.055161443, -0.05210265, 0.15280373) * go_4(1.0, 0.0); + result += mat4(-0.03649832, 0.09987268, 0.05120556, 0.025184184, -0.058899805, -0.07387821, 0.18710648, -0.10555811, -0.02759419, -0.19976474, -0.064043306, 0.030171674, 0.016179368, 0.04791283, -0.053911958, 0.050767425) * go_4(1.0, 1.0); + result += mat4(0.03843477, 0.25258064, 0.016070124, 0.028574495, -0.0068474114, 0.06865137, 0.022342455, -0.0075285095, -0.025927907, 0.029985406, 0.013440689, -0.012433278, 0.014569347, -0.11100144, 0.12033138, 0.010771042) * go_5(-1.0, -1.0); + result += mat4(-0.015851736, 0.3167264, -0.0836191, -0.005717406, -0.064080216, 0.070136465, -0.06756247, -0.023658438, 0.011184833, -0.17086872, -0.01512278, -0.13807635, -0.077147275, 0.06359306, 0.044558518, 0.17371671) * go_5(-1.0, 0.0); + result += mat4(0.016337229, 0.2540961, -0.1538914, 0.05068191, 0.027084729, 0.00067840813, -0.00576344, -0.00596408, -0.011028981, 0.036047217, 0.03535427, -0.0008666505, -0.01604948, -0.035426773, 0.09279044, 0.16961862) * go_5(-1.0, 1.0); + result += mat4(0.26191124, 0.17618547, -0.060725193, -0.10107231, 0.028958656, 0.0012716176, 0.0041506914, -0.0021748038, -0.35696867, -0.09372129, 0.12742971, 0.23923989, 0.09219072, 0.024196591, 0.003192825, -0.041768644) * go_5(0.0, -1.0); + result += mat4(-0.17835465, 0.8621154, 0.32936049, -0.058551144, -0.021967549, -0.15256044, 0.07056792, -0.010208738, -0.25470692, -0.31490391, -0.16554967, 0.08553254, -0.14494352, 0.077428155, 0.29464936, -0.25275782) * go_5(0.0, 0.0); + result += mat4(-0.06149193, 0.16008708, 0.08229276, 0.027298545, -0.043383293, -0.025251184, 0.035522345, 0.043242358, -0.016117992, 0.0016717165, -0.011271885, -0.08116671, -0.06230632, -0.0059490846, 0.06996346, 0.087275974) * go_5(0.0, 1.0); + result += mat4(0.2020623, 0.18089826, -0.052554823, 0.09357937, 0.007033659, 0.026354209, 0.013584589, -0.005457746, -0.22913294, 0.13770905, -0.056017175, 0.027802086, 0.18037985, 0.03405338, 0.006718533, 0.02469646) * go_5(1.0, -1.0); + result += mat4(0.028112786, 0.16723098, 0.0066787126, 0.07016463, 0.046073828, 0.044055372, -0.047022585, -0.060435526, -0.041117955, 0.03657766, 0.0816698, -0.15707959, 0.22355783, 0.020610418, 0.0853779, -0.12445744) * go_5(1.0, 0.0); + result += mat4(0.05012942, -0.045172162, 0.08681702, -0.06541369, -0.01762828, 0.011376011, 0.015611381, 0.027792938, 0.013394507, 0.034215946, 0.06960491, -0.064838886, 0.03150636, -0.038445942, 0.17026442, 0.023619778) * go_5(1.0, 1.0); + result += vec4(0.067609355, -0.057853002, -0.09608125, 0.087347224); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.0903666, 0.07326563, 0.12570351, -0.0861333, 0.08773195, 0.08107881, -0.23008522, 0.081658274, -0.080930784, 0.095189065, -0.09599475, -0.012844856, -0.057758823, -0.05387305, 0.035611577, 0.06831291) * go_0(-1.0, -1.0); + result += mat4(0.10193587, 0.24297304, 0.052464593, -0.23271905, -0.051271625, -0.04671388, -0.41551715, 0.096072406, -0.08061266, 0.15575954, -0.02978901, 0.02782589, -0.12731546, 0.100969315, -0.036334585, 0.04111131) * go_0(-1.0, 0.0); + result += mat4(-0.07986279, 0.06354848, 0.054493763, 0.02064465, 0.1899048, -0.23340854, -0.020978438, -0.11192701, 0.0894504, 0.10851951, 0.022597404, -0.093431845, 0.1323124, -0.037850555, -0.07144082, -0.11149757) * go_0(-1.0, 1.0); + result += mat4(0.20984441, 0.1316296, 0.028271135, -0.3395805, -0.060018715, 0.09772287, 0.023952218, 0.09067281, -0.024634736, 0.11768398, 0.12226884, 0.11482385, 0.09000994, 0.17652623, 0.16630758, -0.11148413) * go_0(0.0, -1.0); + result += mat4(0.16063517, 0.05484425, -0.013026712, 0.09420388, -0.07708702, -0.15001677, -0.17628206, -0.29337302, -0.12929626, 0.19321969, -0.19692437, 0.18910687, -0.5376053, 0.0024577375, 0.18347259, -0.036233984) * go_0(0.0, 0.0); + result += mat4(-0.06877196, 0.057344403, -0.18521468, -0.26043263, -0.027829815, -0.3474636, 0.074399404, 0.02000891, 0.10101197, 0.18005812, 0.018405264, 0.16208377, 0.2572691, -0.061031613, 0.12526059, 0.015687834) * go_0(0.0, 1.0); + result += mat4(0.12139206, 0.10150127, 0.12223164, -0.0033110923, 0.025267506, 0.0043354593, 0.04014963, 0.054613993, 0.0041964273, 0.18711057, 0.1130988, -0.010105996, -0.11398717, 0.15550865, 0.011355651, 0.0013034486) * go_0(1.0, -1.0); + result += mat4(0.018920925, -0.1981446, -0.0015773224, 0.17280231, -0.1158759, 0.034413345, 0.18601055, -0.058082208, -0.05751512, -0.014871481, 0.026116839, 0.22214632, -0.109278515, -0.07075786, 0.14865029, 0.06923859) * go_0(1.0, 0.0); + result += mat4(-0.04858135, 0.06361807, 0.03608349, -0.35027486, -0.22905546, 0.228983, -0.080485426, -0.12832811, -0.08297812, 0.27370456, -0.040313505, 0.12175736, -0.0088722585, -0.027337799, 0.082081, 0.036823895) * go_0(1.0, 1.0); + result += mat4(-0.09081754, -0.121576175, -0.004420886, 0.03107195, -0.009208461, 0.093130514, -0.100094385, 0.07485617, 0.10638224, 0.10978887, 0.033434544, -0.0109705, 0.051747587, -0.04629124, 0.022032369, -0.061933544) * go_1(-1.0, -1.0); + result += mat4(-0.026675375, 0.24803858, -0.3505403, 0.061843242, 0.22817075, -0.22713637, 0.030461052, -0.28470376, 0.021492813, 0.026554195, -0.014637818, 0.05059166, 0.26264945, 0.019178726, -0.084112, -0.11228049) * go_1(-1.0, 0.0); + result += mat4(0.24368168, -0.09750266, -0.08355252, -0.19701716, -0.07022316, -0.021431576, -0.041753594, 0.097228795, 0.05831718, 0.046489198, -0.013535228, -0.1277287, -0.028432956, 0.11263107, -0.038870994, 0.052972272) * go_1(-1.0, 1.0); + result += mat4(0.34507847, 0.16310076, 0.3261618, -0.08031221, -0.024778686, 0.030581996, -0.23252021, 0.07368026, -0.1457359, -0.05583193, -0.08619469, 0.025661029, 0.122622915, 0.107637696, 0.07717542, -0.0069369692) * go_1(0.0, -1.0); + result += mat4(-0.025063993, -0.32267594, 0.04222844, -0.6405562, 0.08737213, 0.05898279, -0.24921863, -0.37281784, 0.33026382, -0.037117995, -0.48083028, -0.1576151, 0.031603996, 0.13712752, 0.08525082, 0.13751547) * go_1(0.0, 0.0); + result += mat4(-0.1717367, 0.16379626, -0.080398574, 0.02730318, -0.08700865, 0.18012185, -0.039455075, 0.1875848, -0.058620475, 0.070274726, -0.07203947, -0.004408652, 0.11834384, -0.17019957, -0.1841911, -0.16539739) * go_1(0.0, 1.0); + result += mat4(-0.00306162, -0.009568686, 0.04615716, 0.29750574, -0.016171249, -0.22235759, -0.032884303, -0.09805467, -0.23468043, -0.03662323, -0.03754542, 0.031607516, 0.1192756, 0.037513345, 0.06270457, -0.010091852) * go_1(1.0, -1.0); + result += mat4(-0.03238403, 0.044085886, -0.15184736, -0.16677259, 0.21868308, 0.033742618, 0.12541051, -0.20726953, 0.21332125, 0.18820943, 0.11516147, -0.04046913, -0.099226944, 0.008198145, 0.0044930377, 0.10445432) * go_1(1.0, 0.0); + result += mat4(-0.04825399, -0.10125744, -0.016809255, -0.2170602, -0.008085673, -0.0055932486, -0.14474209, 0.12402969, -0.06304857, -0.058890864, -0.03977117, 0.08338651, 0.051681735, -0.046300244, -0.027098775, -0.07750968) * go_1(1.0, 1.0); + result += mat4(-0.110792324, -0.07082374, -0.07643967, 0.0007350921, 0.12548494, 0.027903408, 0.08646201, -0.060506143, -0.0042042546, -0.037406266, 0.13233368, -0.040573254, -0.011526989, 0.0017727965, -0.024684377, 0.023611743) * go_2(-1.0, -1.0); + result += mat4(0.10507391, -0.11524923, -0.045419905, -0.018232401, 0.11517856, -0.017063787, -0.06844106, 0.01649028, 0.042487442, -0.0018217458, -0.048760284, -0.027432851, 0.0701538, -0.07122821, -0.040997203, -0.044356424) * go_2(-1.0, 0.0); + result += mat4(-0.16667375, 0.08508152, -0.1130823, 0.10425934, 0.048882842, 0.0026840174, -0.03628384, 0.017808143, 0.06952142, 0.056811754, -0.06279424, -0.08361375, 0.02647836, 0.07310232, 0.077748105, -0.086376086) * go_2(-1.0, 1.0); + result += mat4(-0.057241924, -0.0933121, -0.071363084, 0.04463695, 0.082285576, 0.11622887, 0.18159458, -0.109704174, -0.13580221, 0.07275989, 0.01771122, 0.05640307, 0.07454414, 0.14722411, 0.111302465, 0.07975774) * go_2(0.0, -1.0); + result += mat4(-0.1331026, -0.054009046, 0.12211443, 0.083527334, -0.13672769, -0.015313354, 0.13764748, -0.086164065, 0.12795652, -0.03282714, 0.1579073, 0.048787095, 0.012054846, -0.01882002, 0.13269778, -0.2241914) * go_2(0.0, 0.0); + result += mat4(-0.14854619, 0.11223546, -0.07340829, 0.17087477, -0.035288546, 0.073113, 0.031149026, 0.08732851, 0.11652912, 0.11133054, -0.011138846, -0.04347902, 0.22826026, -0.06315385, -0.083217576, -0.16983536) * go_2(0.0, 1.0); + result += mat4(6.0946622e-05, -0.1391396, -0.029762868, -0.07732276, 0.08408844, -0.0067310245, 0.018747361, 0.10870239, -0.14702435, 0.04659678, 0.049279176, -0.089539565, 0.008640545, -0.12693758, -0.012340728, -0.0010518627) * go_2(1.0, -1.0); + result += mat4(-0.031445112, -0.059538055, -0.10110316, -0.009243974, 0.07312848, -0.045987524, -0.07739988, -0.18289267, 0.19408458, 0.049652096, 0.1430416, 0.007823552, 0.12752487, 0.1404086, 0.014550228, -0.2000237) * go_2(1.0, 0.0); + result += mat4(-0.02328158, -0.055340275, -0.00890452, 0.05107875, 0.04028763, -0.033579618, -0.14551812, -0.07084914, 0.031724613, -0.11050497, 0.030539952, 0.017960407, 0.013022372, 0.048110507, -0.059791975, -0.069656074) * go_2(1.0, 1.0); + result += mat4(-0.011159195, 0.061231583, 0.023733439, 0.08318157, 0.051980533, -0.081164956, -0.12936994, 0.031314097, 0.038792897, -0.19316009, 0.012015963, 0.1274062, 0.007457571, -0.053334422, -0.06087007, -0.07500442) * go_3(-1.0, -1.0); + result += mat4(-0.12612286, -0.059262786, 0.0013960898, 0.16076264, -0.02753848, -0.040280215, 0.11748305, -0.06767023, -0.08982183, -0.2259159, 0.021500308, -0.050233077, 0.0174376, 0.08059276, -0.011338266, -0.021669568) * go_3(-1.0, 0.0); + result += mat4(-0.09231125, 0.05039252, 0.06589666, 0.0699502, -0.016866742, 0.16463608, 0.008424828, -0.044754602, 0.08277166, -0.26685247, -0.054916486, 0.035318345, 0.017051857, 0.004787585, 0.07064183, 0.08143896) * go_3(-1.0, 1.0); + result += mat4(0.040472284, 0.02196483, 0.019647326, -0.0042990106, -0.0111499615, 0.064750694, -0.1685468, 0.1236021, -0.14509638, -0.23636436, -0.03507012, -0.05882796, -0.003939107, -0.03427979, -0.15588285, 0.14955762) * go_3(0.0, -1.0); + result += mat4(-0.29209736, -0.056658156, 0.12503433, 0.059094626, 0.33155647, -0.31607324, -0.17409548, 0.28301534, -0.07269221, 0.31217432, -0.032151274, 0.13320662, 0.0067921844, 0.12724863, -0.079603665, -0.20445012) * go_3(0.0, 0.0); + result += mat4(0.04944913, -0.24652547, 0.084156096, -0.044976614, 0.13094465, -0.041729383, -0.0043662624, -0.025976455, 0.10950043, -0.24576949, 0.07637044, -0.17560403, 0.03770707, -0.14604908, -0.13370425, -0.08169505) * go_3(0.0, 1.0); + result += mat4(0.06215933, 0.014817449, -0.17584182, -0.119785294, 0.025916845, -0.0045085796, 0.051403407, -0.13932867, -0.029478246, -0.23803446, 0.026629616, -0.04838478, -0.05731936, -0.15141651, -0.014330421, 0.03173533) * go_3(1.0, -1.0); + result += mat4(-0.18867792, 0.1690159, 0.0077506024, -0.08768171, 0.13987596, -0.10401963, -0.00020402495, 0.095776096, -0.059084885, -0.15369008, 0.121360734, 0.11111317, -0.06857354, -0.24787377, -0.07358934, 0.05282127) * go_3(1.0, 0.0); + result += mat4(-0.05825966, 0.15936251, -0.009718466, 0.026246214, -0.054192465, 0.11259584, 0.106545866, 0.0037204623, 0.015858173, -0.2466447, -0.006608056, -0.08228397, 0.014153731, -0.024114707, -0.14019284, -0.008368259) * go_3(1.0, 1.0); + result += mat4(-0.12620875, -0.035311706, -0.017309954, 0.038676415, 0.010007554, 0.103891194, 0.2074349, -0.067182384, 0.04545331, 0.04189184, 0.04593296, 0.01145646, 0.027835514, 0.16188826, 0.12302215, 0.005847866) * go_4(-1.0, -1.0); + result += mat4(-0.08673945, -0.03605757, 0.008751013, 0.006012169, -0.100793496, -0.06794951, 0.22445437, 0.16843331, -0.04668748, 0.15526527, 0.16405432, 0.08034733, 0.095660806, 0.13993011, 0.0714316, -0.2271875) * go_4(-1.0, 0.0); + result += mat4(-0.051425643, -0.060941234, 0.014853939, -0.04170188, -0.040981892, 0.014460391, 0.06914827, -0.092892915, 0.011654809, -0.07164335, 0.05665548, -0.021757752, -0.15187486, 0.25099215, 0.06707618, 0.0014576896) * go_4(-1.0, 1.0); + result += mat4(-0.21007836, -0.02975774, -0.17765106, 0.08210864, 0.04128445, -0.03473088, 0.13388512, -0.062689856, -0.024399463, 0.060575683, 0.016895741, 0.053625587, -0.16646849, 0.20665659, -0.097400986, -0.11676045) * go_4(0.0, -1.0); + result += mat4(-0.012981402, -0.0035834755, -0.19967668, -0.055962507, 0.05755364, 0.16290179, 0.16108987, 0.0443184, 0.022384012, -0.21550876, 0.1993019, 0.10249744, 0.027157044, -0.48223755, 0.14306773, -0.042821236) * go_4(0.0, 0.0); + result += mat4(-0.023187606, -0.0006282703, -0.030281521, -0.034422845, 0.1269488, -0.046393935, 0.056179423, -0.07986905, -0.08863301, 0.033617917, 0.28032312, -0.016831966, -0.09741306, 0.082168706, -0.07072508, 0.1714769) * go_4(0.0, 1.0); + result += mat4(-0.10699955, 0.004617793, -0.13971107, -0.08070923, -0.18738483, 0.37386385, 0.095100455, 0.057784997, -0.048351936, -0.19038375, -0.1161272, 0.088465944, 0.21603039, 0.14161706, -0.17377359, 0.053336773) * go_4(1.0, -1.0); + result += mat4(-0.1607158, 0.11756463, 0.050999135, -0.082914345, -0.13728271, -0.29792574, 0.28438056, 0.45129618, 0.024746796, 0.15315229, -0.117851384, 0.07257279, -0.108341694, 0.20533404, 0.026013765, -0.34590483) * go_4(1.0, 0.0); + result += mat4(-0.14288151, 0.040327024, -0.14112945, -0.08908226, 0.22330604, -0.015938131, 0.033910606, -0.16407411, -0.016470572, 0.09259821, 0.08344142, 0.014396606, -0.04143325, 0.10638457, 0.12549427, 0.016800882) * go_4(1.0, 1.0); + result += mat4(-0.07430705, -0.21602099, -0.02395794, 0.16806927, 0.18771775, 0.040755376, 0.2715868, -0.034169577, 0.00522744, -0.02654015, -0.020816373, 0.16446163, -0.087030225, 0.01551686, 0.0048509445, 0.022507116) * go_5(-1.0, -1.0); + result += mat4(-0.024786156, 0.09243609, 0.09324701, 0.08799725, -0.03968033, -0.14894229, 0.0776629, -0.21654569, -0.099934116, -0.06997516, 0.10485336, 0.040500306, -0.25174686, -0.20299411, 0.13843295, 0.25696677) * go_5(-1.0, 0.0); + result += mat4(0.092044, -0.07171784, 0.23683146, -0.009319925, -0.08805518, 0.12598065, 0.06375242, 0.02844835, -0.029605612, -0.12549727, 0.022440229, 0.006380783, 0.1313304, 0.15739907, 0.08373962, 0.08992246) * go_5(-1.0, 1.0); + result += mat4(-0.27224204, -0.26631516, -0.027027579, -0.030660763, 0.069010764, 0.00686249, -0.17444538, -0.05701314, -0.035538822, -0.26050144, -0.010451579, -0.061782375, 0.16745842, -0.108107746, 0.030468695, -0.16402762) * go_5(0.0, -1.0); + result += mat4(-0.07276476, -0.15297028, -0.25568548, 0.27668282, 0.09677458, 0.098981895, -0.0004217196, -0.00091525156, -0.3077419, 0.44434202, -0.09468051, -0.08462181, -0.26978543, 0.27369836, -0.03669818, 0.2912635) * go_5(0.0, 0.0); + result += mat4(-0.28734738, 0.14579459, 0.22083919, -0.2297294, 0.17505005, -0.04844878, 0.021834318, -0.16736999, 0.0016747294, -0.060896724, 0.028344678, -0.06341938, 0.43723574, -0.2615166, 0.05107712, -0.20119043) * go_5(0.0, 1.0); + result += mat4(0.0272994, 0.22280678, 0.17716415, -0.093996234, -0.11316552, 0.18234952, -0.0010922098, -0.12163143, 0.04821719, 0.0022455743, -0.036408488, 0.022185026, -0.03437743, 0.022541165, -0.11003119, 0.14187692) * go_5(1.0, -1.0); + result += mat4(0.00013664822, -0.34958616, 0.33965272, 0.4091369, 0.047315825, 0.18665253, -0.09821825, 0.070298485, -0.07052871, -0.2640913, -0.13192001, 0.017230166, -0.22303015, 0.0023083845, -0.1482968, 0.0031197562) * go_5(1.0, 0.0); + result += mat4(-0.053096205, -0.023291215, -0.038235445, -0.2354219, -0.012032332, 0.17776853, 0.03697497, -0.25305814, 0.043709055, -0.09948032, -0.08828663, -0.09534956, 0.036391728, 0.05996495, 0.038689792, 0.053753372) * go_5(1.0, 1.0); + result += vec4(0.07657865, -0.057940323, 0.09216576, 0.08710758); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.12020708, 0.030450096, -0.022563199, 0.13941783, 0.42781577, 0.07196431, 0.03032568, -0.24368697, -0.12174075, 0.18298386, 0.09977972, 0.06440271, -0.021667495, -0.09582143, -0.02372221, -0.012161217) * go_0(-1.0, -1.0); + result += mat4(-0.08614557, -0.16138618, 0.17409417, 0.06457713, 0.2130565, 0.3841125, -0.030690523, 0.014650334, -0.024490908, 0.09859328, -0.033240438, 0.21537182, -0.11260519, 0.3600062, -0.21786173, 0.29394957) * go_0(-1.0, 0.0); + result += mat4(-0.065436006, 0.18217164, -0.009773951, 0.29613763, 0.15861033, 0.19769754, 0.026605047, -0.13012406, 0.049954694, -0.21985927, -0.114034064, -0.19775811, 0.15509593, -0.0096983, 0.04010453, -0.14786181) * go_0(-1.0, 1.0); + result += mat4(-0.12755093, -0.15312608, -0.12672725, 0.14637707, -0.044712905, -0.018509148, 0.34769905, 0.094541386, 0.018899806, -0.068810396, 0.03567579, 0.010715141, 0.26642382, 0.021787789, -0.045413516, -0.0099886125) * go_0(0.0, -1.0); + result += mat4(0.09399624, -0.22073774, -0.03728268, -0.14593096, -0.14311165, 0.01572586, -0.043170083, 0.14196606, -0.0057723937, -0.22462656, 0.28189817, -0.27393398, -0.04240093, -0.22494912, 0.088402055, -0.15256752) * go_0(0.0, 0.0); + result += mat4(-0.054694295, 0.24343663, 0.042853344, 0.2742606, -0.16395031, 0.25720948, -0.12372541, 0.15020733, 0.07335946, 0.06307917, -0.0035989506, 0.045006167, 0.12430964, -0.20227802, 0.16280155, -0.060202613) * go_0(0.0, 1.0); + result += mat4(0.015143897, 0.21408756, -0.12505236, -0.21357507, -0.103595965, -0.074590206, 0.015860647, 0.16365165, 0.082501106, -0.015283817, -0.047005404, 0.048750408, 0.06636161, 0.2280071, 0.0033000826, 0.15148918) * go_0(1.0, -1.0); + result += mat4(0.051213, 0.121158004, -0.2882391, 0.048057787, -0.15921837, -0.04850743, -0.32060388, -0.11430066, 0.0148464935, -0.069417626, 0.11761673, -0.030637275, 0.0030618436, 0.2583576, -0.03774937, -0.23215541) * go_0(1.0, 0.0); + result += mat4(-0.06589957, -0.18402125, -0.1908057, -0.15999734, -0.20722501, -0.41220245, -0.08732743, -0.2800872, -0.11615179, 0.08338717, 0.070668146, 0.16140378, -0.07519341, 0.04610659, 0.025006918, 0.09886883) * go_0(1.0, 1.0); + result += mat4(-0.05963709, 0.021905743, 0.019461332, 0.30714118, 0.053338766, -0.0036449512, 0.051735114, 0.031359527, -0.055139918, -0.03070095, 0.035309043, 0.03333981, -0.028844094, 0.076006815, 0.05232068, -0.0012779629) * go_1(-1.0, -1.0); + result += mat4(0.14548303, 0.08283497, 0.08181831, 0.015030586, 0.0053907307, -0.014007569, 0.051146433, 0.04916237, 0.15514989, 0.07423488, -0.08177836, 0.07886526, 0.05780981, 0.06978046, -0.015533511, 0.11043233) * go_1(-1.0, 0.0); + result += mat4(0.2718494, -0.019822083, -0.0057829386, -0.22661845, -0.099374995, 0.009107718, -0.06340475, -0.0010754272, 0.028092189, -0.20054619, -0.051893793, -0.29571667, 0.093114756, 0.07853305, -0.100233726, -0.0047704247) * go_1(-1.0, 1.0); + result += mat4(0.14986612, 0.0022451372, -0.062067125, -0.17486928, -0.0863647, 0.043254074, 0.2403272, 0.008611301, 0.022587517, -0.11991351, 0.021465946, -0.0043859156, 0.016005747, 0.15905066, -0.07992088, 0.0744741) * go_1(0.0, -1.0); + result += mat4(-0.28244218, 0.1579932, -0.53319496, -0.17382297, -0.015739711, -0.1284182, 0.14516716, 0.29700696, 0.11660257, 0.023022393, 0.07765215, -0.17613792, -0.0067801042, 0.103040695, 0.1726775, -0.05101466) * go_1(0.0, 0.0); + result += mat4(-0.07244159, 0.12475429, -0.15444236, 0.040789705, -0.12216188, 0.025828373, -0.15603372, 0.05882803, 0.18985634, -0.16016626, -0.068549834, -0.39872447, -0.018761588, 0.06250271, 0.16675957, -0.064201385) * go_1(0.0, 1.0); + result += mat4(0.11573142, 0.3193422, -0.07796038, 0.076522775, -0.17158118, -0.078293145, 0.100592226, 0.059703935, 0.12754959, -0.08411796, -0.18692641, -0.18266907, 0.06325651, -0.07590812, 0.16482389, 0.11334052) * go_1(1.0, -1.0); + result += mat4(0.043070253, -0.097845815, -0.16063489, 0.06901578, -0.12220174, 0.07733114, -0.057676736, -0.16375609, 0.14565262, 0.13176636, -0.16553006, 0.05554225, -0.09373497, -0.057028443, -0.23270036, -0.1320336) * go_1(1.0, 0.0); + result += mat4(0.004274229, -0.08707873, -0.07182644, -0.2983437, -0.04152557, 0.04764718, 0.18148302, 0.25483704, -0.079726525, 0.042573344, -0.108663455, -0.11411879, 0.04527909, -0.01938232, -0.0720563, -0.033436943) * go_1(1.0, 1.0); + result += mat4(-0.05914969, 0.03217603, 0.05620841, 0.11179769, 0.008934773, 0.13958941, -0.049832776, 0.011027975, 0.065970905, -0.0034222854, 0.03403987, 0.0469571, 0.046986744, 0.02688478, 0.10363807, -0.07991329) * go_2(-1.0, -1.0); + result += mat4(-0.08938713, 0.10607981, -0.042589642, -0.15378094, 0.031732727, 0.066124596, 0.045595378, 0.0021127507, 0.054374907, 0.0107482, -0.10671928, 0.0074089314, 0.04903823, 0.09358932, -0.018505096, 0.07349409) * go_2(-1.0, 0.0); + result += mat4(-0.010238883, 0.21940914, 0.007697137, 0.21205641, 0.06893976, 0.12995858, 0.057945974, 0.0840761, 0.08816238, 0.071576215, -0.042484447, 0.08113807, 0.08687212, -0.055440724, -0.08699462, -0.09570027) * go_2(-1.0, 1.0); + result += mat4(-0.106894106, -0.2096638, 0.05298109, 0.010998865, -0.08867521, 0.12988189, 0.10647452, -0.097984925, 0.0915472, 0.20006137, 0.18479815, 0.16927278, 0.1631858, 0.008064966, 0.027587382, -0.03482675) * go_2(0.0, -1.0); + result += mat4(-0.19826272, -0.1342889, -0.26001906, 0.04669503, 0.010580549, 0.004505948, -0.01596666, 0.101886965, 0.51708573, 0.01397845, 0.26731327, 0.048002556, -0.41174927, 0.22574128, 0.117833406, -0.06960611) * go_2(0.0, 0.0); + result += mat4(-0.14917673, -0.13293903, -0.031218676, 0.049667537, -0.1060632, 0.10442213, -0.09595242, 0.12595569, -0.016390745, -0.14521241, -0.11187397, -0.09977547, 0.25035715, -0.16168214, 0.1920289, -0.15843187) * go_2(0.0, 1.0); + result += mat4(-0.02411851, -0.11056269, 0.055056043, 0.043598007, -0.0066189542, 0.04634859, 0.12737647, 0.06846502, 0.056652352, -0.10612263, 0.08477219, -0.13697919, -0.04940175, -0.04095268, -0.007203606, 0.16084097) * go_2(1.0, -1.0); + result += mat4(0.052976605, 0.04408607, 0.072765656, -0.08981313, -0.058496203, -0.13047524, 0.04112392, 0.10585218, -0.1758069, -0.015050289, 0.17501082, 0.042282905, -0.12833239, -0.16907021, 0.034734186, -0.117356636) * go_2(1.0, 0.0); + result += mat4(0.009886183, -0.1072079, 0.032444023, 0.008510553, -0.09062318, 0.087005824, 0.03727608, 0.009528718, -0.10054762, -0.10859511, -0.048893284, -0.07000767, 0.056854695, -0.10528974, 0.05492607, -0.07096842) * go_2(1.0, 1.0); + result += mat4(-0.17860578, -0.0105161, 0.029562278, 0.024690636, 0.33631963, -0.029712414, -0.005475538, -0.03374888, 0.11327619, -0.04078819, 0.0033871653, 0.02554949, -0.12539335, 0.043788597, -0.091408, 0.049923938) * go_3(-1.0, -1.0); + result += mat4(0.06232113, 0.12859604, -0.062801324, -0.054190084, 0.024198689, -0.03283934, -0.11320382, -0.17320402, -0.051317126, -0.05357262, 0.06503374, 0.010334861, 0.18220812, -0.23972702, 0.026034402, -0.094274506) * go_3(-1.0, 0.0); + result += mat4(0.0039012742, 0.03340159, 0.00041976577, -0.09593378, -0.08368581, -0.171641, -0.15441188, -0.05075565, 0.017398436, -0.15752153, 0.11208059, -0.07801636, -0.024276018, -0.14415129, 0.053215727, 0.05285977) * go_3(-1.0, 1.0); + result += mat4(-0.0033036366, -0.0017531791, -0.06987429, 0.14468694, 0.32040435, -0.115356, -0.114271276, 0.08943164, -0.10405339, -0.08873277, -0.12369199, 0.10631109, 0.072591804, 0.07545677, 0.007450515, -0.062508635) * go_3(0.0, -1.0); + result += mat4(-0.32389352, 0.36626276, -0.24318767, 0.1114559, -0.041673217, 0.0123305125, 0.08265207, -0.089765444, 0.04077425, -0.10462959, 0.008208994, -0.24475563, 0.21966444, 0.4274681, 0.02538749, -0.072384804) * go_3(0.0, 0.0); + result += mat4(-0.060664598, -0.07931745, -0.04031839, 0.032503996, 0.09535501, 0.060271315, 0.050842766, -0.017118635, 0.20283295, 0.21311453, 0.048262708, 0.13562958, 0.09995353, 0.24902335, 0.166433, 0.1362172) * go_3(0.0, 1.0); + result += mat4(0.09678776, -0.022411423, 0.031022416, 0.04797599, -0.038225997, -0.049748596, 0.0046548736, -0.1178436, -0.070659816, 0.11345608, -0.0496577, -0.04467185, -0.05449646, -0.13758712, 0.037184708, -0.050822448) * go_3(1.0, -1.0); + result += mat4(-0.14028446, -0.019469494, 0.065940395, -0.058915302, -0.044744235, 0.20379432, 0.19095756, 0.077816576, 0.17204207, 0.1072162, -0.1361738, 0.08552834, 0.18237999, 0.08205425, -0.040794145, 0.20306163) * go_3(1.0, 0.0); + result += mat4(0.10820412, -0.0103201205, 0.11818202, 0.05081286, -0.034519948, -0.022716366, 0.012558799, -0.061788525, -0.019103106, -0.024869766, -0.01484149, -0.0041896743, 0.10513332, 0.0644455, -0.0060386304, 0.119789764) * go_3(1.0, 1.0); + result += mat4(-0.12900162, -0.024052832, 0.091144815, 0.042586617, 0.023100799, -0.008685231, -0.18520203, 0.04126034, 0.22155929, -0.053283233, 0.010883973, -0.23124413, 0.015983205, -0.16272338, -0.047610354, 0.09509212) * go_4(-1.0, -1.0); + result += mat4(-0.043675106, -0.13593669, 0.15423402, 0.006204822, -0.20298089, -0.24486437, 0.0793193, -0.04431099, -0.10573373, 0.14105141, 0.008124834, 0.08031386, -0.02944676, -0.0324013, -0.21952143, -0.14495796) * go_4(-1.0, 0.0); + result += mat4(0.096100524, 0.0038778677, 0.08775855, -0.061556816, -0.18265049, 0.10941394, 0.054334268, 0.21996409, -0.050350484, -0.004098584, 0.04015653, -0.022499854, -0.14539535, 0.14758524, -0.34231094, 0.010245374) * go_4(-1.0, 1.0); + result += mat4(-0.23592138, 0.108827986, 0.011998022, 0.08459366, 0.0366679, 0.17635424, -0.09780912, -0.0835654, 0.118454255, 0.035510838, -0.05113816, -0.14397779, 0.07003334, -0.012582954, -0.08026196, -0.07726739) * go_4(0.0, -1.0); + result += mat4(-0.065133855, -0.1601996, 0.30335194, -0.07679822, 0.0087142885, 0.36574212, -0.5694481, -0.0020462046, -0.08609347, -0.020676374, -0.13731648, 0.0025803284, -0.07613569, 0.011341814, -0.238015, 0.17618194) * go_4(0.0, 0.0); + result += mat4(0.056766525, -0.13898206, 0.031484123, 0.037802573, -0.11768987, 0.043203767, -0.12557015, 0.21512888, -0.20422752, 0.0033964422, -0.1128001, 0.031649, -0.18963163, -0.06865018, -0.015203186, 0.017272811) * go_4(0.0, 1.0); + result += mat4(-0.22707051, -0.12006254, 0.047220945, 0.033206593, -0.11796534, 0.14222418, -0.17649753, -0.07965604, -0.08325816, -0.04103228, 0.122222394, 0.05513519, 0.03045633, -0.014383039, 0.2659631, -0.14282666) * go_4(1.0, -1.0); + result += mat4(0.050211295, 0.106638566, -0.12575938, 0.042698536, 0.4065789, 0.48643333, -0.40594426, 0.23580477, -0.09891945, -0.27204368, 0.38514468, -0.17403792, -0.00021442943, 0.036901742, -0.07350521, -0.1137957) * go_4(1.0, 0.0); + result += mat4(0.08275032, -0.10175439, 0.024990086, 0.09118366, 0.054295644, 0.07601656, -0.17207645, 0.071827434, -0.09406783, -0.29794717, 0.062402938, -0.19291654, 0.057635557, 0.10152742, -0.16145273, 0.078694634) * go_4(1.0, 1.0); + result += mat4(-0.14024283, -0.020712407, -0.0006742049, -0.07990848, -0.2780156, 0.01990348, -0.007274932, 0.01683584, 0.058766432, -0.011117602, -0.11561118, -0.085818544, -0.07759575, -0.06813459, -0.117720075, 0.117459066) * go_5(-1.0, -1.0); + result += mat4(-0.11406997, 0.00070567254, 0.0015214743, -0.13617793, -0.1844734, 0.10463744, 0.042494643, 0.09081247, -0.1682752, -0.12013825, 0.15428415, 0.003604667, -0.04138629, -0.37951693, 0.18619955, -0.12595965) * go_5(-1.0, 0.0); + result += mat4(-0.09695181, 0.29682228, 0.042676754, 0.16024598, -0.094654515, -0.10530867, 0.02741278, -0.054255832, -0.02117601, -0.03741268, 0.10694513, -0.04951851, -0.106426254, -0.33196932, -0.14139625, -0.13504466) * go_5(-1.0, 1.0); + result += mat4(-0.1909862, -0.25864232, -0.050149377, -0.01613201, -0.27878955, 0.15964217, -0.16596937, 0.061238922, -0.21866739, -0.15153229, -0.27351984, -0.052200224, -0.04497165, 0.12572336, -0.08926984, -0.13085754) * go_5(0.0, -1.0); + result += mat4(0.1186159, -0.44323534, 0.24520016, -0.17869183, 0.07235415, 0.2055049, -0.15923528, -0.012734702, -0.7115807, -0.0783967, -0.48488334, -0.06875676, 0.2530569, -0.036582347, 0.029272651, 0.16227534) * go_5(0.0, 0.0); + result += mat4(-0.20962486, 0.36621055, -0.2653163, -0.12183859, -0.05926225, 0.19594035, 0.17680155, 0.3601037, 0.08084663, 0.076976806, 0.06040379, 0.16425474, 0.033630535, 0.1259935, 0.15317655, 0.16241911) * go_5(0.0, 1.0); + result += mat4(0.05553488, 0.13082667, 0.07025236, -0.16599798, -0.0755003, -0.06938985, -0.038283534, 0.010487185, -0.0030434306, 0.101001985, -0.09891444, -0.057115134, -0.10988094, 0.13917845, -0.16996992, -0.06362086) * go_5(1.0, -1.0); + result += mat4(0.052476093, 0.2736097, -0.34467006, 0.08840096, -0.2191552, 0.19051385, 0.04366143, 0.084381446, 0.24772783, 0.24381915, -0.19055025, 0.06811196, -0.049013868, 0.0047574267, -0.17637779, 0.18330449) * go_5(1.0, 0.0); + result += mat4(0.061494384, 0.19728619, 0.05241455, -0.12846167, -0.035130713, 0.20945111, 0.08781453, 0.3240593, 0.16286173, 0.028478097, 0.11730352, -0.057671197, 0.04265479, 0.053791273, -0.017982712, 0.0750495) * go_5(1.0, 1.0); + result += vec4(0.050651863, 0.044697866, 0.016666446, -0.015238534); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.024237188, -0.10422616, 0.06723804, 0.1826598, 0.012947932, 0.45517665, -0.44863597, -0.23032583, -0.13114794, 0.09810647, 0.058437135, -0.08195182, 0.08179358, -0.039700896, -0.039574802, -0.14186196) * go_0(-1.0, -1.0); + result += mat4(0.1629186, -0.2774174, 0.06411593, 0.07094711, -0.3600775, 0.32915217, -0.32015067, -0.28613016, -0.1612731, 0.010733298, -0.05708089, -0.15946425, 0.082519636, 0.09780667, 0.056797463, -0.11305572) * go_0(-1.0, 0.0); + result += mat4(-0.04339018, -0.05268632, 0.012107386, -0.050289553, 0.055016138, 0.09554764, -0.088567086, 0.07149162, 0.040378995, 0.18996446, -0.07771632, 0.13777791, 0.135759, 0.00097233645, -0.05469941, -0.0403182) * go_0(-1.0, 1.0); + result += mat4(-0.0817291, 0.21801636, 0.21970823, 0.32005847, 0.064489774, 0.06965839, -0.30358747, -0.11341012, -0.14858796, 0.11928792, -0.021813538, 0.17499882, 0.12947294, -0.051210806, -0.058405858, -0.025849868) * go_0(0.0, -1.0); + result += mat4(-0.017480569, -0.07665342, 0.055402935, 0.024532886, -0.103406206, 0.052755862, -0.13945164, -0.023136819, -0.08034683, 0.0090520345, -0.10195203, -0.11921826, -0.23000433, 0.35529178, 0.043689124, -0.39272285) * go_0(0.0, 0.0); + result += mat4(0.18001455, -0.19694266, 0.041117262, -0.004510925, 0.23145959, -0.119057, -0.27721423, 0.24195382, -0.10873344, 0.120489694, 0.0634931, 0.010593836, 0.12439531, 0.024893748, -0.34153914, 0.117560826) * go_0(0.0, 1.0); + result += mat4(0.10838369, 0.09057026, 0.051982816, 0.16478422, 0.18629162, -0.103127524, -0.14309822, -0.033989307, 0.021934774, -0.008789755, -0.04308787, -0.06250701, 0.12962283, -0.16955297, -0.14072357, -0.1573379) * go_0(1.0, -1.0); + result += mat4(-0.05150477, 0.19018193, -0.0018513565, 0.049800653, -0.0072638886, -0.09453535, 0.086251326, 0.19729123, -0.0754909, 0.14370134, -0.053820826, -0.04315332, -0.028823897, 0.075814255, -0.06760011, 0.010474355) * go_0(1.0, 0.0); + result += mat4(0.13249592, -0.12863821, -0.098677255, -0.008903099, -0.00075161987, -0.1422283, 0.1321076, -0.016739735, -0.052078467, 0.10682752, 0.072102524, 0.044046365, 0.016139982, 0.06351777, -0.09472882, -0.017490232) * go_0(1.0, 1.0); + result += mat4(-0.024706522, 0.048243694, -0.013107904, -0.19985148, 0.14576256, 0.06643448, -0.063278124, -0.037488308, 0.096271195, -0.05229867, -0.012707279, 0.004028418, -0.06064612, 0.12454419, 0.035423573, 0.19192193) * go_1(-1.0, -1.0); + result += mat4(0.058306698, 0.4169323, -0.2137428, 0.39399233, -0.018209185, -0.047926553, 0.0047757244, 0.18491194, -0.047317795, 0.027071197, 0.065773524, -0.16662115, 0.1758542, 0.040357858, -0.16389023, -0.08795879) * go_1(-1.0, 0.0); + result += mat4(0.1123842, -0.030895762, -0.027667578, -0.07902935, -0.102031484, -0.0044085253, 0.13276444, 0.0027152307, 0.11011939, -0.022880847, 0.08871766, 0.11890982, -0.16875012, 0.0763821, -0.01840331, 0.02001359) * go_1(-1.0, 1.0); + result += mat4(-0.02286322, 0.024675928, 0.10812478, 0.3268884, 0.18656765, -0.089817695, -0.045856882, -0.048997983, 0.09179813, -0.14574316, -0.05584585, 0.04601508, -0.04663327, 0.13533741, -0.027007475, 0.13568604) * go_1(0.0, -1.0); + result += mat4(0.3305947, 0.003312709, 0.38421127, 0.29569045, 0.27463832, -0.15641807, 0.27655235, 0.02949218, -0.049430016, 0.09262954, -0.05639441, -0.0015801551, -0.0867195, 0.01903508, -0.18103446, -0.13115436) * go_1(0.0, 0.0); + result += mat4(0.032399632, 0.035522558, 0.02029329, -0.15271226, -0.22600263, 0.018570898, 0.2614411, -0.043230906, -0.16090661, -0.03576041, 0.1163746, -0.12655982, 0.14196678, 0.043999534, -0.003735901, 0.041733805) * go_1(0.0, 1.0); + result += mat4(-0.17129399, 0.035248592, 0.03326124, 0.05614414, 0.08734728, 0.00025759568, -0.017390147, -0.018484343, -0.18716696, -0.11577566, -0.09411038, -0.0005942758, 0.20385277, -0.1574145, -0.13516964, -0.011578805) * go_1(1.0, -1.0); + result += mat4(0.10666493, 0.04735373, -0.0013807884, 0.0704135, -0.09550784, 0.12478301, 0.13349667, 0.11381725, 0.10344638, 0.036749367, -0.07850732, 0.067993365, -0.27189222, 0.12209588, 0.039368622, -0.11650519) * go_1(1.0, 0.0); + result += mat4(-0.048749734, -0.015611218, -0.058593888, -0.11054869, 0.15889384, -0.027153673, -0.15524355, -0.14243808, -0.078478426, -0.0005193828, 0.12036652, -0.10402722, -0.02370969, 0.13715413, 0.06436259, 0.06815996) * go_1(1.0, 1.0); + result += mat4(-0.018909978, 0.18138056, -0.10334352, -0.021526821, 0.010916664, -0.048124075, 0.06859281, -0.076912865, 0.09164643, 0.057818342, -0.17802145, -0.090189666, 0.03645826, 0.10256138, -0.0069766566, 0.036947094) * go_2(-1.0, -1.0); + result += mat4(-0.20622449, 0.012804213, 0.015042242, 0.19055699, -0.08001165, 0.03541219, -0.12968656, -0.030422881, -0.14057401, 0.13156182, -0.13859963, 0.00040263348, 0.10254204, -0.014539082, -0.107229605, -0.17474675) * go_2(-1.0, 0.0); + result += mat4(-0.107353106, 0.0014355447, 0.028790096, -0.0302504, -0.10989408, 0.038959417, -0.110921286, 0.0625821, -0.05460621, 0.002502421, 0.000936639, 0.048315868, 0.011345627, 0.08441578, -0.048639838, 0.09363101) * go_2(-1.0, 1.0); + result += mat4(0.028981669, 0.099419065, -0.14213188, -0.022163093, -0.05122637, -0.0046859765, 0.09862167, 0.049731493, 0.07676605, 0.003952691, -0.04136734, -0.24915272, 0.008263169, -0.22285973, -0.0962458, 0.172863) * go_2(0.0, -1.0); + result += mat4(-0.37248972, 0.11385456, 0.2061119, 0.022263438, 0.019234778, 0.00025653432, -0.050672278, 0.055690683, -0.123369195, 0.23665325, -0.071705356, 0.28199664, 0.22527444, -0.2209345, 0.109758556, -0.09677416) * go_2(0.0, 0.0); + result += mat4(-0.040162217, -0.076559134, -0.16174191, 0.04257142, -0.06335363, -0.014538781, 0.031642947, 0.07644203, 0.0073738038, 0.035876762, -0.025717935, 0.07372835, 0.07390335, 0.021775434, -0.0935753, 0.17936146) * go_2(0.0, 1.0); + result += mat4(0.038021766, 0.02849221, -0.04236583, -0.013963447, 0.019651154, 0.05580235, -0.13790283, -0.060389396, 0.021969974, 0.0056073754, -0.018980214, -0.025460985, -0.045908038, -0.010549833, -0.09338662, -0.057856735) * go_2(1.0, -1.0); + result += mat4(-0.08452829, 0.042145252, -0.0141162975, -0.07190146, 0.15463473, -0.063039616, 0.008285841, 0.0198927, 0.15278462, 0.023722362, -0.035441626, 0.09403419, 0.07525972, -0.044377264, -0.041365236, 0.043310255) * go_2(1.0, 0.0); + result += mat4(-0.0011264209, -0.06592647, 0.0049777217, -0.0060350257, 0.07328435, -0.18793981, -0.08557498, -0.04078665, 0.03258842, 0.07107648, 0.041932624, 0.037395928, 0.13042633, -0.032260742, -0.012588843, 0.023788324) * go_2(1.0, 1.0); + result += mat4(0.07511876, 0.019309277, -0.02078693, -0.14132647, 0.070082344, 0.04199505, -0.15632215, -0.032079816, 0.118265875, -0.08141349, -0.050177153, 0.11479062, 0.013268761, 0.1936229, -0.055244733, 0.020521875) * go_3(-1.0, -1.0); + result += mat4(-0.07828548, 0.018267812, 0.0028122417, 0.08941742, -0.019510742, -0.0045468058, 0.07431564, 0.24580373, 0.03412491, -0.21398748, 0.13018401, -0.01707844, 0.029651346, 0.020107506, -0.032851487, -0.10630331) * go_3(-1.0, 0.0); + result += mat4(0.049285315, -0.036977254, 0.15186474, -0.041290153, 0.036063142, -0.045490168, 0.046358738, -0.09886548, 0.08557266, -0.0694686, -0.068183534, 0.020261671, -0.026039243, -0.033528827, -0.07751181, -0.019434886) * go_3(-1.0, 1.0); + result += mat4(0.07950834, -0.0741639, 0.061423566, -0.15268423, 0.06533783, -0.03808615, -0.013910495, 0.020066373, -0.017489634, 0.050359994, 0.00039101843, 0.019134337, 0.16694714, -0.024450665, -0.065044865, -0.10637288) * go_3(0.0, -1.0); + result += mat4(0.24476409, -0.2805558, 0.10909579, 0.13605182, -0.01699378, 0.0065869414, -0.14624152, 0.1877048, -0.067427725, 0.21585129, 0.0055718115, -0.14159104, 0.31355727, -0.30447352, -0.13559367, -0.03584342) * go_3(0.0, 0.0); + result += mat4(0.01840529, 0.03616268, -0.062101822, -0.03462444, -0.09809899, 0.05688681, -0.06383556, 0.054451026, 0.046791434, -0.046537004, 0.0062966137, 0.036369126, 0.091391616, -0.06889375, -0.034196682, -0.09181384) * go_3(0.0, 1.0); + result += mat4(0.08672015, -0.15510495, 0.04554155, -0.05996463, -0.00072026957, -0.09829958, 0.15477605, 0.01794818, -0.012825052, 0.11114408, -0.040433116, -0.00646929, -0.043805078, 0.012829818, -0.008625017, -0.021682253) * go_3(1.0, -1.0); + result += mat4(-0.053777024, -0.12807386, 0.20205054, -0.05613513, 0.08030871, 0.12273628, -0.19011892, -0.007974216, -0.111842796, 0.09764242, 0.072857365, 0.049412534, -0.1310995, 0.12386843, -0.16210727, -0.001777189) * go_3(1.0, 0.0); + result += mat4(0.0018172731, 0.046203706, 0.16447084, -0.09419196, 0.0027008723, 0.037259165, 0.018473836, -0.007634073, -0.0017314702, -0.013679133, -0.061678763, 0.033567235, -0.073024705, 0.1608741, -0.093601726, 0.05785441) * go_3(1.0, 1.0); + result += mat4(-0.05863952, 0.07315827, 0.022440575, 0.035979047, 0.016238341, -0.24431372, 0.041630965, -0.0057747364, -0.10777149, -0.13047433, 0.070022196, 0.044547863, 0.13226376, -0.28246558, 0.062450863, -0.004404347) * go_4(-1.0, -1.0); + result += mat4(0.011212715, 0.05243611, -0.037797686, -0.15245487, 0.27008712, -0.40122086, 0.0011378871, 0.05367511, 0.07193383, -0.14046453, 0.12873498, 0.07182839, 0.1820151, 0.04283299, 0.11596543, 0.15673809) * go_4(-1.0, 0.0); + result += mat4(-0.07652156, 0.02990215, -0.038398147, 0.04733479, -0.05695788, -0.04636123, -0.05849599, -0.05204433, 0.057833705, -0.18150161, -0.030429238, -0.06927262, -0.14094613, 0.046653654, 0.1901663, -0.12395862) * go_4(-1.0, 1.0); + result += mat4(0.14467525, -0.1326973, 0.10119535, -0.019431135, -0.06226663, -0.0053785043, 0.08981591, 0.07009579, -0.17320351, 0.023860384, 0.062086526, 0.053025734, 0.18955843, -0.22512685, 0.05108636, 0.022267245) * go_4(0.0, -1.0); + result += mat4(0.10990955, 0.01449569, -0.17729793, -0.22559568, 0.011237511, -0.25115016, -0.24866548, -0.13571861, 0.072065, -0.10518834, 0.16031964, 0.33091673, 0.30525, -0.054976556, -0.051654782, 0.05343294) * go_4(0.0, 0.0); + result += mat4(-0.022414321, -0.03275696, 0.06263573, 0.0031694071, 0.08556633, -0.12222284, -0.01304348, -0.120147005, -0.04688651, -0.037210416, -0.072757326, 0.0537857, 0.08831744, -0.16069758, 0.07254542, -0.10207554) * go_4(0.0, 1.0); + result += mat4(-0.0033381188, -0.013647447, 0.05272343, 0.020168653, 0.064766616, 0.006531628, 0.08387307, 0.005267065, -0.1460191, 0.021020414, -0.012950353, -0.08051581, 0.11163487, -0.32247993, 0.04997282, 0.10706656) * go_4(1.0, -1.0); + result += mat4(0.1307456, -0.044469688, 0.0073461267, 0.037865613, -0.37522125, 0.29075947, -0.14347716, -0.037057046, 0.08405833, -0.22944225, 0.048562963, 0.016957987, 0.3850271, -0.2642814, 0.24302341, -0.009866295) * go_4(1.0, 0.0); + result += mat4(0.07751665, -0.07116216, -0.018697955, 0.013728456, 0.114070326, 0.082404934, -0.06866586, 0.0653056, -0.048189763, -0.094798714, 0.073528245, -0.09311469, 0.08910833, -0.0861494, -0.13601573, -0.03716929) * go_4(1.0, 1.0); + result += mat4(-0.3285286, -0.19887583, 0.22604318, -0.06683799, 0.07519015, -0.37451786, 0.341761, 0.47940642, -0.13582104, -0.0568941, 0.055691198, 0.077822134, -0.044976532, -0.16769643, 0.106551185, 0.06167237) * go_5(-1.0, -1.0); + result += mat4(0.2570433, -0.20537715, 0.057150505, 0.5306126, 0.23061736, -0.07200678, 0.23587582, -0.021194493, 0.0306967, -0.13228704, 0.05531426, 0.205256, -0.23213351, -0.32205653, 0.04496151, -0.114729114) * go_5(-1.0, 0.0); + result += mat4(0.08585821, -0.16611692, 0.19137008, 0.07955234, -0.07067079, -0.028957745, 0.116818264, 0.030655704, 0.044361178, 0.01137771, 0.13505548, -0.122196645, -0.120850466, 0.041478753, 0.1446364, 0.019547235) * go_5(-1.0, 1.0); + result += mat4(-0.39282933, 0.15466502, 0.21281202, -0.10871069, 0.09141795, -0.047807757, 0.13347113, -0.0070413537, -0.30001637, 0.1590897, 0.13185735, 0.26315352, 0.060256246, 0.013501628, 0.21543017, 0.18577099) * go_5(0.0, -1.0); + result += mat4(-0.104001306, -0.5267066, -0.4119273, 0.08457817, -0.077629924, 0.16720273, 0.12549257, -0.1173481, 0.36272144, -0.7772537, 0.17534287, -0.23318143, -0.15383753, 0.095170036, 0.2495684, -0.122358866) * go_5(0.0, 0.0); + result += mat4(0.12718932, -0.23085114, 0.44935048, -0.021294393, 0.005949905, 0.019026272, 0.075566776, 0.15591605, 0.115685046, -0.14728822, -0.05144243, 0.06136992, 0.13333684, -0.012480303, -0.088788785, 0.037873793) * go_5(0.0, 1.0); + result += mat4(0.07020059, -0.06063198, 0.1457899, 0.0056248507, -0.008290764, -0.06342888, 0.18459271, 0.015399551, -0.11359522, 0.17675807, 0.069318, -0.040129766, -0.07564287, -0.026339471, 0.14574161, 0.23760302) * go_5(1.0, -1.0); + result += mat4(-0.4500806, 0.37602243, 0.13479808, -0.003117945, 0.063341856, 0.061276495, 0.1102818, 0.19250661, -0.25082627, 0.22803108, 0.08279026, -0.07739116, -0.05543028, -0.1009643, 0.28930148, -0.08104323) * go_5(1.0, 0.0); + result += mat4(-0.009021877, 0.16090877, -0.03602814, 0.1261343, 0.034350336, -0.052137982, 0.21462724, -0.02009136, -0.070031494, 0.03347469, -0.052788753, -0.05233215, -0.16940826, -0.09597297, 0.12662534, 0.019423395) * go_5(1.0, 1.0); + result += vec4(-0.052461267, 0.15198341, -0.02276772, -0.03120894); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.091359325, -0.047575854, -0.0801013, 0.20167087, -0.09074628, 0.14914455, 0.06205747, 0.08365782, -0.07602618, 0.12077156, -0.14313725, -0.00097601005, 0.1820761, -0.24430461, 0.02867478, -0.115407124) * go_0(-1.0, -1.0); + result += mat4(-0.017759264, -0.17924258, -0.0345519, 0.08500409, -0.07076207, 0.080482826, 0.022080237, -0.007573794, 0.34499946, 0.008354738, 0.14645022, -0.3155209, 0.41903394, 0.008933743, -0.26766288, 0.12653211) * go_0(-1.0, 0.0); + result += mat4(-0.003709739, 0.027829988, 0.14320208, -0.011639459, -0.03870455, -0.06727105, -0.23741855, -0.04182651, 0.09618168, 0.06922006, -0.03409518, -0.038725164, -0.07008305, -0.09782443, 0.06599439, -0.055400725) * go_0(-1.0, 1.0); + result += mat4(0.12684472, 0.42739755, 0.05868158, 0.07929677, 0.062750086, 0.122842215, -0.2262321, -0.057169817, -0.10190911, 0.06661454, -0.2044338, -0.058569092, 0.06513055, -0.38419202, -0.2889477, 0.00075288495) * go_0(0.0, -1.0); + result += mat4(0.15597402, 0.050789982, 0.4612256, -0.1232455, 0.09143189, -0.056280397, 0.21547496, -0.043968584, -0.017269861, 0.1459616, -0.23092718, 0.27603424, 0.070095435, 0.42628354, 0.09857772, 0.023654036) * go_0(0.0, 0.0); + result += mat4(0.03566403, -0.089161746, -0.06622656, -0.043728504, 0.012655346, 0.07107657, 0.15460275, 0.09053651, -0.07001083, -0.09635171, 0.030271877, -0.010034998, 0.090245664, 0.11612592, -0.18119843, 0.115030274) * go_0(0.0, 1.0); + result += mat4(-0.055906393, 0.020972524, 0.04405409, -0.08206327, -0.030148225, 0.015709205, 0.056204747, -0.104014955, 0.044074293, -0.3603162, 0.009822444, -0.12735473, 0.0067433324, 0.21345942, -0.16173074, 0.062634476) * go_0(1.0, -1.0); + result += mat4(-0.048287738, 0.04504366, -0.16253331, -0.06976707, -0.13551746, -0.0069742347, -0.11613854, 0.13235438, 0.07955257, 0.14578325, -0.3022118, 0.02631827, 0.3573758, 0.12363717, -0.039339956, -0.21598001) * go_0(1.0, 0.0); + result += mat4(-0.075250365, -0.023891231, 0.13229692, -0.022614656, 0.08825453, 0.061776746, -0.0993127, -0.10578799, -0.1690626, 0.03054397, -0.07695639, -0.079353474, 0.0615981, 0.0034620631, 0.08599167, -0.085487425) * go_0(1.0, 1.0); + result += mat4(-0.13306135, 0.070102595, 0.0018800788, -0.09813606, -0.03170419, 0.01839398, -0.05142857, -0.010052865, -0.11429524, -0.07586167, -0.060972217, -0.022728505, -0.037173454, -0.01240384, 0.1636404, -0.1259204) * go_1(-1.0, -1.0); + result += mat4(0.21663728, -0.0165655, -0.19682632, 0.13902938, -0.081392035, 0.02523787, 0.1569057, -0.016838314, -0.20710535, 0.10089684, 0.2759473, -0.06408284, -0.17343125, -0.050983876, -0.09340315, 0.042417858) * go_1(-1.0, 0.0); + result += mat4(-0.44453263, -0.10516173, -0.056139067, 0.24120103, 0.14092721, 0.09527867, -0.10289124, 0.07447457, -0.07255724, -0.07065093, -0.19831358, -0.03145072, 0.062462587, -0.13137348, 0.1398097, -0.08052687) * go_1(-1.0, 1.0); + result += mat4(-0.20226036, -0.089287, -0.20396022, 0.16342834, -0.0715875, 0.030659283, -0.09019761, -0.050632484, -0.087833114, -0.4390073, 0.19481303, 0.03432329, 0.22792237, 0.023274168, 0.029200593, -0.018187294) * go_1(0.0, -1.0); + result += mat4(0.46787158, 0.17991507, 0.0023480568, -0.031941783, -0.060549572, -0.09330203, 0.055897802, 0.12673432, 0.4230312, -0.4516835, -0.00064001186, 0.109839454, 0.2836279, 0.07375687, 0.17711547, -0.34547985) * go_1(0.0, 0.0); + result += mat4(0.06408312, 0.009809225, 0.12017534, 0.12778811, 0.01949525, 0.00639294, -0.022816632, -0.20515566, -0.026015112, -0.088214, 0.09398295, 0.14219733, 0.021610592, -0.0133708725, 0.15716344, 0.15374821) * go_1(0.0, 1.0); + result += mat4(-0.38632336, 0.1055968, -0.16746776, 0.031227939, 0.048837874, 0.08812276, 0.08459655, 0.037026476, -0.012736664, -0.032292336, -0.043989874, 0.030728273, -0.117319904, 0.13062797, -0.17748901, 0.20819202) * go_1(1.0, -1.0); + result += mat4(0.02485017, -0.08059275, -0.14782152, 0.16193154, 0.038559932, 0.16653356, -0.01829594, -0.32613558, 0.09611959, -0.14201616, 0.19360055, -0.16462325, 0.110373735, -0.013233708, 0.06437815, 0.05023126) * go_1(1.0, 0.0); + result += mat4(-0.0939555, 0.08396099, -0.19401367, -0.072351895, 0.0011377602, -0.08304909, 0.18247987, -0.06868134, -0.13975257, -0.072047986, 0.13241461, -0.027208991, -0.13384572, -0.04257672, -0.19476503, 0.1448576) * go_1(1.0, 1.0); + result += mat4(-0.014496433, -0.08627452, 0.013479882, 0.08189796, -0.39928418, -0.23446554, 0.033236828, -0.073348634, 0.20772837, -0.12541759, 0.12547676, 0.15118147, 0.06343077, 0.13170359, 0.07456327, 0.037460607) * go_2(-1.0, -1.0); + result += mat4(0.22783525, -0.062255867, -0.015669081, 0.18545356, -0.14074744, -0.0977361, -0.15016074, 0.12626553, 0.025569597, 0.05259659, -0.1401111, 0.07791122, -0.25046918, 0.14517197, 0.051306423, 0.10093671) * go_2(-1.0, 0.0); + result += mat4(0.10963008, 0.10075975, -0.09315192, 0.03928484, -0.05507595, -0.027855752, -0.17043641, 0.013336898, -0.14907023, -0.098712295, -0.055508208, -0.017730046, -0.11934544, -0.10822632, -0.07726361, 0.070103206) * go_2(-1.0, 1.0); + result += mat4(-0.1622651, -0.12376016, -0.048875168, 0.030344466, -0.104258224, -0.30643496, 0.0542774, -0.21803202, -0.14617568, 0.3079984, -0.3006482, -0.116233975, -0.034087032, -0.21282312, -0.08974353, -0.21706651) * go_2(0.0, -1.0); + result += mat4(-0.17512108, -0.015798012, -0.2049979, 0.16415326, -0.037209652, -0.148847, 0.6209044, 0.35860595, 0.18044792, -0.030519703, 0.053781435, -0.4150754, 0.025012434, -0.049011238, -0.09130766, -0.12138916) * go_2(0.0, 0.0); + result += mat4(-0.044045687, 0.025672063, -0.021289285, -0.12346778, -0.12262819, -0.11085004, 0.15677044, -0.18353437, 0.35993704, -0.060050707, 0.36173448, 0.12406324, -0.006029473, -0.038038015, 0.10273825, 0.004656042) * go_2(0.0, 1.0); + result += mat4(0.08824971, 0.055099364, -0.029784897, -0.14293, 0.21541874, -0.3471079, 0.19006546, -0.25032708, 0.17953677, 0.07634346, 0.0943904, -0.14774932, -0.038256116, -0.043757852, -0.18224706, -0.0767931) * go_2(1.0, -1.0); + result += mat4(-0.14115013, -0.027943728, 0.043077346, 0.16837053, -0.30298868, -0.0012479749, -0.21017027, 0.08538537, -0.18856743, -0.1644689, 0.106126145, -0.05934489, -0.23814213, 0.089396715, -0.042591337, 0.07807625) * go_2(1.0, 0.0); + result += mat4(0.1340491, 0.052864898, 0.030508095, -0.053534534, 0.0763844, -0.083921455, -0.007467296, 0.10813974, -0.13826096, 0.07286494, 0.017945437, 0.12293839, -0.14042178, -0.02947513, -0.031838633, 0.12082989) * go_2(1.0, 1.0); + result += mat4(0.1102285, 0.19918683, 0.040284276, -0.0514123, -0.047394637, -0.021792434, 0.012939052, -0.0023403286, 0.23044759, 0.21366574, -0.1535014, 0.15519466, -0.006563226, 0.07491919, 0.122444265, -0.093628265) * go_3(-1.0, -1.0); + result += mat4(-0.23274226, 0.104155675, 0.1884381, 0.02142028, 0.11323431, 0.1554841, 0.123437695, -0.03776226, -0.45464247, -0.25061348, -0.032978028, -0.018654265, -0.024727726, 0.06470798, -0.122398995, -0.21492854) * go_3(-1.0, 0.0); + result += mat4(0.14285532, 0.0013011715, -0.06574208, 0.086654305, -0.048436016, -0.16197361, 0.008795141, -0.018098531, 0.3623435, 0.12052228, 0.21655083, -0.057346217, -0.08660433, 0.20646246, -0.145056, 0.009912266) * go_3(-1.0, 1.0); + result += mat4(-0.120041594, -0.25241104, -0.6336183, -0.12418686, 0.008573801, -0.06827598, -0.09228199, -0.07655123, 0.07855638, 0.089592285, 0.15033577, -0.2273755, 0.06294413, -0.011506087, -0.2499483, -0.35493052) * go_3(0.0, -1.0); + result += mat4(-0.06940104, -0.06756523, -0.53161937, 0.12494837, -0.06503322, 0.11604297, -0.34153852, 0.04156643, -0.45669356, -0.044081815, 0.004695825, -0.072227545, -0.02530914, -0.17312789, -0.09068418, -0.09982657) * go_3(0.0, 0.0); + result += mat4(-0.29282403, -0.010049017, -0.024964066, 0.017599167, 0.078072265, -0.02860973, 0.19687887, 0.19570877, 0.0462925, 0.09549612, -0.1492184, -0.23970652, 0.1505322, 0.019254023, -0.042950142, -0.015978891) * go_3(0.0, 1.0); + result += mat4(-0.03936397, -0.16615695, 0.031633284, -0.15845262, 0.07402319, -0.10969973, 0.1627256, -0.082409754, 0.25605643, 0.12996247, 0.0026216798, 0.09912746, 0.05241615, -0.19865209, 0.16946888, 0.05068021) * go_3(1.0, -1.0); + result += mat4(0.01114184, 0.084049165, 0.21976121, 0.2706964, -0.1294367, -0.06303496, -0.023219386, 0.077690855, 0.27775633, 0.00947329, -0.15350725, -0.33890706, -0.11828109, 0.09787361, -0.016221395, 0.016552113) * go_3(1.0, 0.0); + result += mat4(0.06600668, -0.038050972, 0.05673705, -0.074460626, -0.033874847, 0.04394138, -0.09962254, 0.024659669, 0.22614685, 0.0010322065, 0.09654571, -0.06633969, -0.10417394, -0.026023693, -0.022211308, 0.07900881) * go_3(1.0, 1.0); + result += mat4(0.036456246, -0.2124808, -0.012558569, -0.005300579, -0.00047140988, 0.35318285, -0.06906561, 0.17434907, 0.062296104, 0.07322263, 0.07417871, 0.018067235, -0.08858221, -0.14630227, 0.029234141, -0.15545718) * go_4(-1.0, -1.0); + result += mat4(0.0863986, -0.040072814, -0.06980794, 0.2665523, -0.16316326, 0.110833816, 0.095236875, -0.2692474, 0.04447339, 0.06251346, 0.22095545, -0.041103855, 0.06609487, -0.019505464, -0.05033705, 0.22964026) * go_4(-1.0, 0.0); + result += mat4(0.29361203, 0.13948435, -0.04883785, -0.055638783, -0.21016635, 0.06452464, 0.2573405, 0.015132235, -0.20484985, -0.21653354, 0.21269105, 0.0118991295, -0.081802815, 0.105966985, -0.3921394, 0.20990291) * go_4(-1.0, 1.0); + result += mat4(-0.08627829, 0.03343112, 0.31935173, 0.20275539, 0.069561645, 0.44631377, -0.16738373, -0.35273424, 0.1321877, 0.41263857, 0.15853775, 0.1095465, -0.14425585, 0.046967953, 0.052787095, 0.20420372) * go_4(0.0, -1.0); + result += mat4(-0.6400273, -0.02383611, 0.002919604, 0.20062971, 0.22101505, 0.13407028, -0.3607917, 0.097198665, -0.009687387, 0.20925479, -0.22717565, -0.077685565, -0.10238261, -0.30386773, -0.07093403, 0.3789904) * go_4(0.0, 0.0); + result += mat4(0.19998863, 0.11971228, -0.12407401, -0.020293633, 0.17083226, 0.07682446, 0.017597012, 0.16630399, -0.044776015, 0.038629167, 0.09155888, 0.2775535, 0.17645419, 0.05448149, 0.26603785, -0.23594949) * go_4(0.0, 1.0); + result += mat4(0.13560197, -0.12419031, -0.001434453, 0.096761554, -0.025025826, 0.23237492, -0.22578233, 0.39105797, -0.1521174, 0.012731402, -0.12703973, 0.17032094, -0.23923986, 0.15013756, -0.079769395, 0.21047747) * go_4(1.0, -1.0); + result += mat4(0.023834813, 0.042676624, -0.043734103, -0.0489564, 0.2968653, 0.12845509, 0.26865506, -0.1339746, 0.1031858, 0.06713386, 0.035661936, -0.008399658, -0.023008743, 0.14043713, -0.10849628, -0.29047936) * go_4(1.0, 0.0); + result += mat4(-0.15448047, 0.018301843, -0.11298581, 0.0643367, 0.19861038, 0.054608114, 0.053602763, -0.12229704, 0.1838333, 0.060085677, -0.054444484, -0.03963665, -0.09128162, -0.002571187, -0.011031746, 0.013937809) * go_4(1.0, 1.0); + result += mat4(-0.19042498, -0.10742417, -0.009482582, -0.13710654, 0.07004467, 0.054024436, -0.079347484, -0.069204524, -0.066065274, 0.029851453, 0.057536937, -0.10738562, -0.0019049636, -0.05961882, 0.015954375, -0.046048168) * go_5(-1.0, -1.0); + result += mat4(-0.30546746, 0.026462605, -0.16525201, -0.14865883, -0.22890806, -0.064678855, -0.07405687, -0.060555395, 0.19689551, -0.10453069, -0.13507089, 0.044260368, 0.3549059, -0.2059544, -0.017047137, -0.085279755) * go_5(-1.0, 0.0); + result += mat4(0.15902059, 0.27806246, -0.02470931, -0.071123265, -0.10959986, -0.061866783, 0.18073395, 0.027781103, 0.01899935, 0.0068895225, 0.09553635, 0.014020304, 0.48340565, 0.1568511, 0.18551165, -0.03941332) * go_5(-1.0, 1.0); + result += mat4(0.18007858, -0.18097854, -0.032877125, -0.13505274, 0.12229551, -0.19246832, 0.07324526, 0.16423881, -0.07985383, 0.102822796, 0.022348268, 0.20718963, 0.1657745, 0.09994554, -0.044875868, -0.04791159) * go_5(0.0, -1.0); + result += mat4(-0.1522259, -0.15503414, 0.5213648, 0.048220746, -0.03673415, -0.048296932, -0.0035913677, -0.33058712, -0.37347135, -0.107429914, -0.27443045, 0.1444104, -0.12858333, -0.0898987, 0.18059024, 0.2385074) * go_5(0.0, 0.0); + result += mat4(-0.17812404, 0.027946725, -0.15453176, -0.16888796, -0.1454275, -0.08521876, -0.09842795, 0.017285218, -0.15038043, 0.12944756, -0.0074227825, 0.049601924, -0.2942431, 0.3029513, 0.2346801, -0.010824461) * go_5(0.0, 1.0); + result += mat4(-0.13489157, -0.19739941, 0.19581558, -0.08267463, -0.16068561, 0.019075824, 0.0042642844, 0.1025828, 0.009590443, -0.042244606, 0.0069560697, 0.18787669, 0.08875559, 0.12666185, 0.27844438, -0.014087231) * go_5(1.0, -1.0); + result += mat4(-0.15345146, -0.088549316, -0.2007104, 0.08694364, 0.097901054, -0.09112625, 0.17398718, -0.08376772, 0.13471653, -0.11526493, 0.09551537, 0.000994288, 0.10547293, 0.027825898, 0.13316914, 0.27184469) * go_5(1.0, 0.0); + result += mat4(-0.2831289, -0.1077123, -0.015594004, -0.15530941, 0.030916838, -0.007725551, -0.0013768732, -0.0542834, 0.14217895, -0.019043038, -0.121255994, 0.1774951, -0.02571608, 0.08931403, -0.05238016, 0.49422094) * go_5(1.0, 1.0); + result += vec4(-0.05178692, 0.012992142, -0.09760262, -0.088807374); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.06822733, 0.047476072, 0.010553384, -0.06512182, -0.014951614, -0.023422068, 0.12602834, -0.06063965, 0.11658996, -0.0075021465, -0.015290296, -0.18518211, 0.06179118, 0.06263638, 0.2701791, 0.03897366) * go_0(-1.0, -1.0); + result += mat4(-0.005936342, 0.0046865293, 0.1009514, 0.113875, -0.22882754, 0.06882264, 0.044918634, -0.15084246, 0.27190965, -0.09802474, -0.17399205, -0.28109655, 0.115927316, 0.065323986, -0.07905437, 0.31301168) * go_0(-1.0, 0.0); + result += mat4(-0.058077507, 0.060739186, -0.047071032, 0.08625859, 0.18279932, -0.062378623, -0.020198788, -0.020209447, -0.03725052, -0.17194895, -0.009185631, -0.061395645, -0.10394699, 0.13250858, -0.02054919, 0.17315096) * go_0(-1.0, 1.0); + result += mat4(0.14755291, -0.15426354, -0.038297612, -0.002863782, 0.014281958, -0.1430333, -0.15214095, -0.25977355, 0.055283524, -0.020698514, -0.031711206, 0.043652818, -0.011913896, -0.15935701, 0.30120242, -0.07141416) * go_0(0.0, -1.0); + result += mat4(-0.07511256, 0.097857445, 0.1280642, -0.23440666, 0.07341128, 0.025019338, 0.2676868, -0.6392872, -0.018604822, -0.41209763, 0.036267836, 0.048222575, -0.049899656, 0.12035686, -0.415035, 0.111109026) * go_0(0.0, 0.0); + result += mat4(0.06660235, 0.10465846, 0.03231821, -0.057176817, -0.33603838, -0.117789224, -0.08611003, -0.14391285, -0.07540102, -0.049893077, 0.06534853, 0.014703251, 0.1686735, 0.21635768, -0.0004174196, -0.06970894) * go_0(0.0, 1.0); + result += mat4(-0.09123483, -0.02650008, -0.26045164, 0.008752753, -0.038899194, 0.056095514, -0.15680234, -0.21681328, -0.1807998, -0.08361851, -0.20086065, 0.13148476, 0.009767108, -0.0006198602, 0.15239619, -0.07983563) * go_0(1.0, -1.0); + result += mat4(0.07919758, -0.10799586, -0.11674191, 0.07721418, -0.02489812, 0.013862152, 0.14324659, -0.19167677, 0.47860634, 0.016703675, -0.025147682, -0.13012366, 0.021707488, -0.049213693, -0.049455807, -0.122704044) * go_0(1.0, 0.0); + result += mat4(-0.1036183, -0.0016137742, -0.010286528, 0.03161724, 0.111006066, -0.010090895, -0.13061818, -0.12827039, -0.06817742, -0.08191259, -0.010029781, 0.0756146, -0.024297824, 0.08189767, 0.0012347228, -0.061834745) * go_0(1.0, 1.0); + result += mat4(0.074035384, -0.0054270145, -0.054232355, 0.052020255, 0.039064236, 0.07612554, -0.07112709, -0.041343223, -0.04877365, -0.081693694, -0.19036053, -0.07976283, -0.019394593, 0.11878604, -0.17398894, 0.066551484) * go_1(-1.0, -1.0); + result += mat4(0.021499138, 0.11031255, 0.07942792, 0.19678888, -0.1660272, 0.12142711, 0.053864148, -0.09273723, -0.04266638, -0.092488594, 0.052425362, -0.13612169, 0.055963192, -0.08253813, -0.03933135, 0.01831182) * go_1(-1.0, 0.0); + result += mat4(-0.009105146, 0.25351846, 0.021370875, 0.07980244, 0.08131595, 0.0045822896, 0.024319764, 0.13540691, 0.10949155, -0.036669955, -0.0440662, 0.031805526, 0.0076850317, 0.0050480044, 0.010493236, -0.20307945) * go_1(-1.0, 1.0); + result += mat4(0.035208475, -0.016913606, 0.06748526, 0.28376573, -0.09829214, 0.03491954, -0.048616122, -0.022004133, 0.033356942, 0.041457683, -0.1141923, 0.053526472, 0.1301348, 0.032898832, 0.14776024, 0.11034088) * go_1(0.0, -1.0); + result += mat4(0.25044763, 0.1022549, 0.13824631, 0.15358314, -0.01792875, -0.023492826, -0.16425751, -0.04925489, -0.5415385, 0.22712392, 0.32446757, 0.061109796, -0.016136007, 0.09170503, -0.020712415, 0.22309552) * go_1(0.0, 0.0); + result += mat4(-0.16366409, -0.017794464, -0.12714142, -0.021118859, 0.03178183, 0.067133196, 0.105975136, 0.009305183, 0.08399536, 0.15291104, -0.029605338, 0.0134068895, -0.09861506, -0.059872147, -0.03844756, -0.12674972) * go_1(0.0, 1.0); + result += mat4(-0.07806115, 0.043562375, -0.009290437, 0.04422061, 0.044749737, 0.06424069, 0.026669348, 0.03424551, 0.024359688, -0.07599093, -0.037592914, 0.054648582, 0.06240557, 0.061408926, 0.030988218, 0.08729672) * go_1(1.0, -1.0); + result += mat4(-0.010351677, 0.028773759, 0.12303081, -0.046040278, -0.06785082, -0.24544333, -0.14512034, 0.028818216, -0.030756637, -0.070427775, 0.029058386, 0.11266564, -0.0126586575, -0.099691354, 0.23675011, 0.021924842) * go_1(1.0, 0.0); + result += mat4(0.29327697, 0.04030911, -0.10077885, -0.048846, -0.16350128, -0.054487552, 0.070820816, 0.047305796, -0.12812468, 0.007919711, -0.09975894, 0.06570609, 0.041386835, -0.027804038, 0.054338817, -0.09551541) * go_1(1.0, 1.0); + result += mat4(-0.08264294, 0.0022153752, 0.17625731, 0.108203925, -0.1994716, 0.13532871, 0.004684368, -0.068710595, 0.118159816, -0.07109689, 0.0926224, -0.24703208, -0.01173713, 0.033426084, -0.016495464, 0.12449714) * go_2(-1.0, -1.0); + result += mat4(-0.0937873, -0.065207124, 0.1289635, 0.17735708, -0.07141622, -0.116392545, -0.012032065, 0.2256439, -0.16182312, -0.12979633, 0.13266288, -0.029406255, -0.11667275, 0.010681019, -0.03679369, 0.12324768) * go_2(-1.0, 0.0); + result += mat4(-0.08298939, -0.04220063, 0.03483479, 0.13134407, 0.21608235, -0.034893714, -0.12628594, 0.16904697, 0.021075964, 0.1242292, 0.049865, 0.0012191305, 0.02183184, 0.106443465, -0.097153716, 0.10045028) * go_2(-1.0, 1.0); + result += mat4(-0.15327847, -0.03231816, 0.048716772, 0.04888897, 0.042859055, 0.15434006, -0.20086974, -0.05871333, -0.06012798, -0.16594929, -0.41956443, 0.02897127, 0.10374121, 0.0979167, -0.06796184, -0.16530903) * go_2(0.0, -1.0); + result += mat4(0.4286096, -0.29660472, -0.16605186, 0.27494267, 0.026896525, 0.28659457, -0.03428165, 0.2044704, 0.48915815, -0.33265522, 0.21135275, 0.33785677, 0.18982616, 0.10604258, -0.064662024, 0.096615575) * go_2(0.0, 0.0); + result += mat4(0.016727265, 0.17198113, -0.05871693, 0.054799933, -0.02786635, 0.15011124, -0.23983961, 0.033867355, -0.19206874, -0.13592441, 0.07261021, -0.043166462, -0.12164969, -0.07333818, 0.037067372, 0.08996417) * go_2(0.0, 1.0); + result += mat4(-0.070286445, -0.10659555, -0.04422945, -0.053230558, 0.0013350527, -0.017993074, -0.049735866, 0.11409308, 0.04892686, -0.06817943, -0.12813167, 0.039810136, 0.05252391, -0.06560004, -0.063294955, -0.07105003) * go_2(1.0, -1.0); + result += mat4(-0.13546339, 0.14185336, 0.006366223, -0.28422508, -0.21820036, 0.039592113, -0.07649182, -0.27793187, -0.2901769, -0.046293516, 0.25072086, -0.1427351, -0.0032531293, 0.03191745, -0.029102972, 0.050067473) * go_2(1.0, 0.0); + result += mat4(0.07247183, -0.0060611004, -0.04357295, -0.10875274, 0.12985152, 0.08760643, -0.19915642, -0.014556378, 0.1215484, 0.25098228, -0.21922487, 0.021113032, 0.0839372, 0.055542022, 0.13710897, -0.027615722) * go_2(1.0, 1.0); + result += mat4(0.19114621, 0.099159814, 0.011108828, 0.029784255, 0.08460498, 0.015443031, -0.044587217, 0.09834142, 0.10807179, -0.05328408, 0.13301793, 0.11193144, 0.18251152, 0.083096996, -0.08564835, -0.15828381) * go_3(-1.0, -1.0); + result += mat4(-0.28161234, 0.1756162, 0.17534174, -0.15757571, -0.08024952, 0.05677887, -0.1527151, -0.035949282, -0.16559522, -0.03176932, -0.15242305, 0.026554676, 0.07632302, -0.07731726, -0.17139448, -0.3687111) * go_3(-1.0, 0.0); + result += mat4(0.08050096, -0.0065235267, 0.064694345, -0.014644451, -0.079178736, 0.042656552, 0.09551645, 0.036842708, -0.03371497, -0.088755935, 0.07605894, -0.10299958, 0.08336513, -0.1338214, -0.051605105, -0.19725145) * go_3(-1.0, 1.0); + result += mat4(0.051400978, -0.02814356, -0.5582187, 0.05216139, -0.12328604, 0.07732251, -0.16055895, 0.14309604, 0.017186563, 0.08711397, -0.17381294, -0.011499491, -0.0481547, -0.04854952, -0.46566048, -0.3058923) * go_3(0.0, -1.0); + result += mat4(0.5119618, -0.38263124, 0.15986086, 0.010742568, 0.38711935, -0.336849, 0.040117126, 0.4004001, 0.19877116, 0.47289473, 0.021661036, -0.015238145, 0.09152666, 0.038322717, 0.06817698, 0.049476456) * go_3(0.0, 0.0); + result += mat4(-0.10441812, 0.21133856, -0.057014488, 0.23972808, -0.24930222, -0.050501857, 0.032259904, 0.12751378, 0.27306128, 0.30964115, -0.11031131, 0.12801209, 0.178222, -0.062289014, 0.022079576, -0.11246125) * go_3(0.0, 1.0); + result += mat4(-0.03134103, -0.22539799, 0.06857922, -0.10189109, -0.05753412, -0.024686527, 0.013851189, 0.1957986, -0.020091414, 0.14719157, 0.11946867, -0.09724786, 0.0028783937, 0.060009662, 0.013492387, 0.11172315) * go_3(1.0, -1.0); + result += mat4(0.025690198, 0.23751663, 0.12185973, -0.019141376, -0.084277906, 0.11608392, 0.16283877, 0.042005546, 0.072981484, -0.2306133, -0.071143106, -0.18201771, -0.031751275, -0.020903533, 0.12043939, 0.20526986) * go_3(1.0, 0.0); + result += mat4(-0.033504594, -0.09981515, 0.19222768, -0.00037204215, 0.07057902, 0.10403715, -0.03022699, 0.098804235, 0.18592818, 0.024603445, 0.11061402, -0.11533017, -0.12443965, 0.011813011, 0.07349946, 0.038668673) * go_3(1.0, 1.0); + result += mat4(-0.23181002, -0.17350966, 0.048837297, -0.08551675, 0.18603337, 0.058313303, 0.04316692, 0.058691278, -0.004881664, 0.0729517, -0.03626247, 0.15820287, -0.02682429, -0.0048006307, -0.094057836, -0.14746818) * go_4(-1.0, -1.0); + result += mat4(0.1383817, -0.1420967, 0.1424335, 0.22556119, -0.00086617674, 0.16489741, -0.26023895, -0.20425053, -0.034436412, 0.2758035, -0.059897684, -0.13402066, -0.16843258, -0.121999204, 0.3507855, 0.12512234) * go_4(-1.0, 0.0); + result += mat4(0.0632651, -0.025671296, -0.07224494, -0.037086867, -0.09273154, 0.0072819768, -0.049275056, -0.1953304, -0.17975083, 0.082679234, 0.053353265, -0.006074758, 0.20823684, 0.062092874, 0.11811291, 0.1815561) * go_4(-1.0, 1.0); + result += mat4(0.078111276, 0.25469536, 0.29218477, 0.004212939, -0.1232599, 0.021684207, -0.66154927, -0.343972, 0.010710011, -0.08535829, 0.18138462, 0.09095369, -0.103921935, 0.057450265, 0.25861067, -0.15153539) * go_4(0.0, -1.0); + result += mat4(-0.10782405, 0.18735452, -0.19443172, -0.15904504, 0.18990147, 0.48975512, 0.4310995, 0.1340281, 0.3089527, -0.10327674, -0.09608584, -0.123780966, -0.08807219, 0.14264533, -0.3084031, 0.02124611) * go_4(0.0, 0.0); + result += mat4(0.15577073, -0.06495954, 0.060370963, -0.114554875, 0.0047810473, 0.3622068, -0.3659395, 0.15643036, -0.07608074, 0.04065042, -0.039538994, -0.02360629, -0.02197194, 0.0048276316, 0.110902175, -0.16704206) * go_4(0.0, 1.0); + result += mat4(-0.0020525095, -0.012990091, 0.094804876, -0.02951601, 0.24626282, 0.124219425, 0.0463335, 0.094997995, -0.048861977, -0.005314135, 0.0059577175, -0.105576694, 0.048093226, 0.09738743, 0.21545859, 0.054231316) * go_4(1.0, -1.0); + result += mat4(0.07456489, 0.02194597, -0.20656359, -0.15409991, -0.04743203, -0.15427557, -0.24320696, 0.23521787, 0.016238466, -0.012914946, -0.05602358, 0.06522049, 0.102704614, -0.23755711, -0.08094957, 0.008219577) * go_4(1.0, 0.0); + result += mat4(0.035681196, -0.033441707, -0.11075713, 0.055746105, 0.019134156, -0.049570475, 0.06607101, -0.0073855054, 0.07943337, -0.11261986, 0.0008748123, -0.10753691, -0.10877436, -0.0108197965, -0.04098305, 0.020095402) * go_4(1.0, 1.0); + result += mat4(0.027692698, -0.023028603, -0.100124516, -0.103564754, 0.039096612, -0.010974292, -0.02888593, 0.08225068, -0.022655668, -0.023619713, -0.04132294, 0.06264889, 0.11349463, 0.074886896, -0.026237458, -0.13935888) * go_5(-1.0, -1.0); + result += mat4(-0.07625777, -0.02026929, -0.16509674, -0.07015678, 0.12159663, 0.11826456, -0.16222349, 0.02991282, 0.31014135, -0.18721381, 0.015715228, 0.013268594, -0.0226595, -0.086094275, 0.24472123, -0.10165225) * go_5(-1.0, 0.0); + result += mat4(-0.0046345745, -0.08258393, -0.0949934, -0.18188646, -0.082375005, 0.07654353, 0.023176871, -0.020692138, 0.024534898, -0.115623355, -0.012813735, 0.06324557, 0.10770564, -0.08825215, 0.049195863, -0.076814786) * go_5(-1.0, 1.0); + result += mat4(-0.038878765, -0.10554748, -0.03482947, -0.2024768, -0.09590611, -0.05518289, 0.17108603, 0.10745178, 0.14090835, 0.04451474, 0.33331943, -0.09338132, -0.13840568, -0.06591041, -0.13315365, 0.14895599) * go_5(0.0, -1.0); + result += mat4(-0.7184948, 0.20635058, -0.01087146, -0.25665486, 0.0694774, -0.08051657, -0.20419565, -0.29972658, -0.31587854, 0.26213837, -0.14282377, -0.14769338, -0.29376042, -0.24546684, 0.37429252, -0.01691138) * go_5(0.0, 0.0); + result += mat4(0.010284815, -0.29481632, 0.18720046, 0.028168285, -0.025520338, -0.031638097, 0.07629401, 0.23760115, -0.06497784, -0.09899808, -0.025247818, -0.141932, 0.30421942, 0.0839128, 0.15210237, -0.2547937) * go_5(0.0, 1.0); + result += mat4(-0.11730973, 0.08676562, -0.12592962, 0.059735335, 0.036849916, 0.01789285, -0.02247672, 0.034570415, 0.069350585, -0.047193673, 0.06288105, -0.016742256, -0.06302216, 0.00919547, 0.12617198, -0.001655632) * go_5(1.0, -1.0); + result += mat4(0.13489273, -0.05945722, 0.15636152, 0.10246266, -0.0492767, 0.13209876, -0.022542313, 0.1869006, 0.18273778, -0.009863488, 0.1475087, 0.009797511, 0.18775922, -0.08949364, 0.031399027, 0.16898693) * go_5(1.0, 0.0); + result += mat4(-0.17234778, -0.113925606, 0.0285368, 0.093877554, -0.010534175, 0.002686299, 0.033060588, -0.019788781, 0.12574218, 0.03520547, 0.0032812972, 0.04480523, 0.06951987, -0.25137702, 0.01562915, -0.02552195) * go_5(1.0, 1.0); + result += vec4(0.06121498, 0.024510587, -0.012219787, 0.074479066); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.06058286, 0.2195084, 0.19780184, -0.05155375, 0.09216426, 0.03457752, -0.096646644, -0.015035897, -0.13803566, 0.025244685, 0.13735959, -0.009401512, -0.16166702, -0.1815502, 0.007993552, 0.0069571338) * go_0(-1.0, -1.0); + result += mat4(0.047445912, 0.11488218, -0.17851587, -0.1392721, -0.038011838, 0.17368795, 0.106928326, -0.13197932, -0.2733485, -0.087136164, 0.07961574, 0.020573204, 0.029977003, -0.1667677, -0.17820576, 0.0118401665) * go_0(-1.0, 0.0); + result += mat4(0.07106099, -0.00185452, -0.027270012, -0.09875212, 0.06354194, -0.16046102, -0.034993082, -0.053045254, 0.068700135, 0.09387552, -0.09717345, -0.06485704, 0.050274733, -0.015956623, -0.14531186, -0.023925254) * go_0(-1.0, 1.0); + result += mat4(-0.020267177, 0.09845256, -0.22237779, -0.0704043, -0.03563008, 0.0058337585, -0.053230047, -0.0151015995, -0.004355268, -0.16663343, -0.022371203, 0.17783938, 0.27934113, 0.038911168, 0.053898126, 0.067584395) * go_0(0.0, -1.0); + result += mat4(-0.35373348, -0.04811985, -0.003069958, 0.22371289, 0.039519783, 0.08697823, 0.12242937, -0.05692152, 0.34154105, -0.30326834, -0.23093781, 0.060490705, -0.3779121, -0.12894416, 0.03531685, 0.27401015) * go_0(0.0, 0.0); + result += mat4(-0.27760014, 0.024816839, 0.16137716, 0.060659613, -0.0962453, -0.023302421, -0.0679713, 0.08072911, 0.10419372, -0.1286133, -0.06336595, -0.13529508, -0.033300906, 0.077698715, 0.13658288, -0.046092913) * go_0(0.0, 1.0); + result += mat4(0.004510119, -0.018816976, -0.023925988, -0.056694455, 0.021134097, 0.15678076, -0.034855466, -0.052143726, 0.11061209, -0.03679294, -0.15515395, 0.22478753, 0.030984117, 0.01664375, -0.010612448, -0.01799207) * go_0(1.0, -1.0); + result += mat4(0.18006827, 0.168574, 0.15232614, -0.1295002, -0.05264042, -0.12097018, -0.08624036, -0.20883065, 0.22397974, 0.041060217, -0.23898268, 0.09747489, 0.0005401559, -0.17116228, 0.03260164, 0.2373106) * go_0(1.0, 0.0); + result += mat4(0.0005155169, -0.10857663, -0.014398447, 0.004808808, -0.05587811, 0.1242163, 0.14578046, -0.09588132, 0.14351574, -0.10559421, -0.041078355, 0.0059864363, -0.061656762, -0.07678676, -0.10182491, -0.10634101) * go_0(1.0, 1.0); + result += mat4(-0.04443192, 0.13661186, -0.076222196, -0.081149, -0.041719135, -0.12614048, 0.018182557, 0.03125801, 0.06955725, 0.09229393, -0.0070879795, 0.038897008, 0.0052797156, 0.13088952, -0.073197, -0.11281815) * go_1(-1.0, -1.0); + result += mat4(0.19961423, 0.13726334, 0.27169493, 0.05927113, 0.0028651909, -0.1287458, 0.026732842, -0.095184654, 0.016316563, -0.11783113, 0.2360606, -0.30774674, 0.108432285, 0.23025006, -0.085001394, 0.08807084) * go_1(-1.0, 0.0); + result += mat4(-0.060046196, 0.15679826, 0.2430814, -0.13272808, 0.019943269, 0.015503196, -0.030504405, 0.06340887, 0.1670832, -0.13615952, -0.13015799, 0.042683575, -0.06566812, -0.062855676, 0.056155447, -0.13632087) * go_1(-1.0, 1.0); + result += mat4(-0.04923022, 0.053739548, 0.23691703, 0.045897946, 0.08574055, 0.015698176, 0.30700058, 0.03893632, -0.09240451, 0.13776198, -0.01634878, 0.1086944, -0.10443478, -0.038250007, -0.16425894, 0.069837235) * go_1(0.0, -1.0); + result += mat4(-0.4527755, -0.16416265, 0.45300293, 0.11527787, 0.06872868, 0.03514386, -0.02678375, 0.04558898, -0.21735664, -0.38876057, 0.15125597, 0.20117617, -0.15160187, -0.2531804, 0.15049757, -0.018326014) * go_1(0.0, 0.0); + result += mat4(0.013021216, 0.07807231, -0.025769137, 0.13387477, -0.16259682, -0.054581523, 0.17289965, -0.08043052, 0.0063357623, 0.11866516, -0.13520378, 0.0152135575, 0.061740812, 0.052589882, -0.16574025, 0.024117855) * go_1(0.0, 1.0); + result += mat4(0.04268464, 0.06037914, 0.06682348, 0.054433875, -0.14284062, 0.007709387, 0.05249287, -0.008818238, 0.02744223, 0.026029283, -0.068422645, 0.104170494, 0.011463976, 0.10870952, 0.11592658, 0.07393047) * go_1(1.0, -1.0); + result += mat4(-0.03750191, 0.0014403146, 0.1580456, 0.1137993, 0.08569837, 0.0005632574, 0.08939288, -0.004063193, 0.03108807, -0.1707586, 0.06543877, -0.02108999, -0.044783764, -0.09259009, 0.0018684827, 0.10293258) * go_1(1.0, 0.0); + result += mat4(-0.072144635, 0.13235292, 0.13174231, 0.06512337, 0.061325137, -0.1140173, -0.10778849, -0.0933897, -0.0026419833, 0.031816084, -0.05882651, -0.05534951, 0.05234496, -0.03341018, -0.028817033, -0.034064483) * go_1(1.0, 1.0); + result += mat4(0.06916357, -0.11582247, -0.06554703, 0.09624395, 0.11644621, 0.019876527, -0.08696374, 0.017086076, -0.054255698, 0.28372917, -0.000972655, -0.06400794, 0.030290179, -0.08620439, -0.08410291, -0.012277875) * go_2(-1.0, -1.0); + result += mat4(0.06226754, -0.040624045, -0.11270401, 0.10805481, 0.18899143, -0.1973884, -0.034787323, 0.05666152, -0.087144844, 0.032518808, -0.12266705, -0.12644689, 0.035625648, 0.13503525, 0.10947289, -0.02394309) * go_2(-1.0, 0.0); + result += mat4(-0.022302793, 0.10360904, 0.016256806, -0.021677233, 0.12430526, 0.042963423, -0.18037538, -0.14628161, 0.016152794, -0.11254728, 0.06434654, -0.005073352, 0.016403137, -0.035858087, -0.06591741, 0.08597588) * go_2(-1.0, 1.0); + result += mat4(0.004012092, -0.050453838, 0.07977573, 0.15305792, -0.05928047, -0.09349286, -0.14555392, 0.12337536, 0.16214384, -0.109313816, -0.044248413, -0.2963013, -0.14371789, -0.13369437, 0.07077758, 0.10006308) * go_2(0.0, -1.0); + result += mat4(0.06548829, -0.13058634, -0.26494655, -0.28315514, -0.45161557, -0.07177602, 0.10558368, 0.21007149, 0.45134485, 0.53428864, -0.24526665, -0.51175225, -0.16881745, 0.39553252, -0.059874248, -0.15100208) * go_2(0.0, 0.0); + result += mat4(-0.034883123, 0.09653819, 0.16275059, -0.10605186, -0.16961089, 0.15750273, -0.28543097, -0.12217311, 0.19074517, 0.00074714713, -0.07579063, 0.14993025, -0.013494211, 0.19434276, -0.038070716, 0.041972294) * go_2(0.0, 1.0); + result += mat4(0.077254616, 0.013449401, -0.068184, 0.10592368, 0.024376335, 0.0051301597, -0.13352032, 0.17067592, -0.07192257, 0.055784814, -0.12246667, 0.01487913, 0.116122164, 0.10971574, 0.026872944, -0.026666151) * go_2(1.0, -1.0); + result += mat4(0.05711798, -0.0010387006, -0.11265493, 0.27974793, 0.091452494, -0.20599814, -0.15438712, 0.32230932, -0.105436936, -0.35339028, -0.08469404, -0.03431861, -0.0006499669, -0.2701855, -0.011796139, -0.04423021) * go_2(1.0, 0.0); + result += mat4(-0.0829698, 0.06493657, -0.036546737, 0.024583373, 0.048521917, 0.1649191, -0.056993846, 0.08988572, -0.12735078, 0.3074979, 0.08563853, 0.119320676, 0.18576288, 0.14356904, -0.026636694, 0.05132804) * go_2(1.0, 1.0); + result += mat4(-0.0991048, -0.10884221, -0.12869547, 0.034603372, -0.06870907, -0.18230984, -0.021502903, 0.11301028, 0.18878941, -0.110253036, 0.040812176, -0.06389069, -0.15005918, 0.0037244866, 0.2132717, -0.013256287) * go_3(-1.0, -1.0); + result += mat4(-0.08388061, -0.112235, 0.065214306, -0.13957025, -0.19478679, 0.11254506, 0.054630954, 0.053645436, -0.2522801, 0.15058047, -0.07061216, -0.096459135, -0.11855631, -0.056933407, 0.035139047, 0.068258055) * go_3(-1.0, 0.0); + result += mat4(-0.06917721, 0.094096094, 0.07469013, 0.16470721, -0.11484115, -0.18424381, 0.016549148, 0.08468404, 0.04055001, -0.33645272, -0.0059957053, 0.08970189, 0.09028248, 0.04077987, -0.06547463, -0.006269863) * go_3(-1.0, 1.0); + result += mat4(0.21908568, 0.08401723, 0.0843042, 0.06545498, -0.08450129, -0.028926728, 0.19440761, 0.09694871, 0.07596912, 0.045503646, -0.006316475, -0.27986103, 0.06910375, -0.43196592, 0.03879253, 0.1638245) * go_3(0.0, -1.0); + result += mat4(0.8879269, -0.02551214, -0.030510996, -0.36941388, 0.3126625, 0.21035604, -0.15371346, -0.2780625, 0.06461355, 0.18609639, -0.149495, -0.23149131, 0.46026996, 0.035948373, 0.18278143, -0.20113651) * go_3(0.0, 0.0); + result += mat4(0.055903055, 0.08408526, 0.054170065, -0.2976025, 0.18558906, 0.029338092, -0.09893593, 0.059603147, -0.19218643, -0.008077081, 0.09550512, 0.051217057, -0.0276843, 0.33184877, -0.018644275, -0.11763111) * go_3(0.0, 1.0); + result += mat4(0.23338239, 0.011580942, -0.0787839, 0.09754503, 0.009759483, -0.075707465, -0.10206689, 0.08720839, -0.3039172, -0.2001228, 0.30864987, -0.16379629, -0.03914539, -0.06503792, -0.03883409, -0.065077074) * go_3(1.0, -1.0); + result += mat4(-0.1440983, 0.2827839, -0.07015957, 0.11515792, -0.1266345, -0.06969393, -0.009006173, 0.12875685, 0.031837627, 0.09990079, -0.1656627, 0.13870959, -0.08637978, 0.024281958, 0.12342855, -0.08816514) * go_3(1.0, 0.0); + result += mat4(-0.015464915, -0.19240353, -0.01967364, -0.11796279, -0.06462456, 0.154628, 0.076811045, 0.098927125, -0.20375597, 0.023598116, -0.10710138, 0.08929812, 0.07584669, -0.11928781, 0.049687184, -0.06122156) * go_3(1.0, 1.0); + result += mat4(0.16479358, 0.19148158, 0.098467164, 0.0618447, 0.0751567, 0.010100359, 0.05155746, -0.0778876, 0.0011591897, -0.056076154, -0.041074045, 0.024008576, -0.017050695, -0.18685716, -0.08527556, 0.0037657958) * go_4(-1.0, -1.0); + result += mat4(0.16866666, -0.29083413, -0.18637179, 0.0018769886, -0.2018132, 0.46180528, 0.13246574, -0.23898588, -0.12212059, 0.3341523, 0.1091505, 0.08251535, 0.19041067, -0.16169062, 0.07583192, 0.050573617) * go_4(-1.0, 0.0); + result += mat4(0.0129842255, -0.008741855, -0.053530104, -0.03131398, -0.0020409364, -0.07680617, 0.33556506, -0.011717628, -0.13952619, -0.05453907, 0.10336836, -0.027125375, 0.1751553, -0.030947112, -0.025735123, 0.041072566) * go_4(-1.0, 1.0); + result += mat4(-0.036542114, 0.10128076, -0.1880457, -0.17261198, 0.1431477, -0.18661828, 0.32769415, 0.0663247, 0.03365178, 0.19796737, -0.09132497, -0.21413301, 0.043885235, 0.20412171, 0.14644071, -0.06985309) * go_4(0.0, -1.0); + result += mat4(-0.2735308, 0.19792703, -0.21177524, 0.21988408, 0.32919964, 0.11183913, 0.2913821, 0.06404769, -0.004921694, 0.22249468, -0.010577357, -0.09632516, -0.15458032, -0.2982006, -0.041645106, 0.087833084) * go_4(0.0, 0.0); + result += mat4(-0.07113276, 0.07723143, -0.058266032, 0.08239994, -0.18380593, -0.09771933, 0.12499344, 0.031730324, 0.042094275, -0.010583603, 0.009981995, 0.107384935, -0.20355527, 0.017341057, 0.018268948, -0.15857501) * go_4(0.0, 1.0); + result += mat4(0.0013823194, -0.044928502, 0.025921093, 0.0012451003, -0.30528855, 0.3374342, 0.34150144, -0.09229386, -0.08328619, -0.10615052, 0.16300991, -0.19953482, -0.10911166, -0.036731765, 0.098331414, -0.06403792) * go_4(1.0, -1.0); + result += mat4(-0.023653124, 0.04610296, -0.03044758, -0.025650993, -0.32529983, 0.062136825, 0.24734603, -0.019307928, 0.03787457, 0.34381005, 0.113464035, -0.02037722, 0.32398093, 0.05488551, 0.055344287, 0.017325766) * go_4(1.0, 0.0); + result += mat4(0.0385026, 0.079174675, 0.059799727, -0.00725753, -0.0573653, -0.0420986, 0.16784842, 0.14938053, -0.009344561, -0.0778813, -0.017263457, -0.01132742, 0.077959225, -0.14751856, -0.20435876, -0.010041575) * go_4(1.0, 1.0); + result += mat4(-0.05931535, -0.08731735, 0.11970444, -0.09924397, 0.033911336, -0.0016364546, 0.0087679215, -0.076540634, 0.0077172252, 0.14911291, 0.11776904, -0.017065775, -0.059564207, 0.017132213, 0.06148217, -0.07582431) * go_5(-1.0, -1.0); + result += mat4(0.071270525, -0.24058339, -0.20233437, 0.001615171, 0.021383315, 0.09934347, -0.0011403296, -0.04854113, 0.12778723, 0.061408937, -0.071042776, 0.26612863, -0.10339047, -0.08749296, -0.04532682, -0.0615132) * go_5(-1.0, 0.0); + result += mat4(0.06391922, -0.016149543, -0.002464466, -0.00664347, -0.06338617, 0.04004229, 0.034720086, 0.054125533, 0.121965334, 0.2502773, -0.12270718, 0.011068944, -0.00047330794, 0.06449109, 0.17593135, 0.0040256707) * go_5(-1.0, 1.0); + result += mat4(0.03477346, -0.31120908, 0.28306037, 0.22833072, -0.017806482, -0.056919, 0.055360638, 0.020397838, -0.060393255, 0.02178207, -0.20644443, 0.088335134, 0.030195525, -0.19925289, -0.016580708, -0.007094466) * go_5(0.0, -1.0); + result += mat4(0.028902626, 0.12521821, 0.29966938, 0.20124513, 0.11820484, 0.23270105, -0.27059364, 0.0034185604, -0.0808993, -0.21187486, 0.14866447, 0.2362522, 0.2997781, 0.25243583, -0.010675219, -0.21490887) * go_5(0.0, 0.0); + result += mat4(0.017603166, -0.1354112, 0.07734325, -0.10108977, 0.095413536, -0.27478248, 0.15811092, 0.08514367, -0.0648521, -0.23040737, -0.015424236, -0.102597706, 0.018168293, 0.049426224, 0.24017967, -0.0076911957) * go_5(0.0, 1.0); + result += mat4(0.040054902, 0.10045824, -0.00088240346, 0.10863258, 0.004609783, 0.08008685, 0.0008943593, 0.04380173, 0.04113014, 0.17802699, 0.19284193, -0.09775915, -0.082003035, -0.04828276, -0.2212439, -0.08810767) * go_5(1.0, -1.0); + result += mat4(0.110144354, -0.17653003, -0.18453437, -0.13516864, -0.12592733, -0.031436298, 0.10997709, -0.26131755, 0.13670647, 0.33671942, 0.06641791, 0.022009498, -0.0843429, 0.2000657, 0.1431977, 0.23156545) * go_5(1.0, 0.0); + result += mat4(0.18203191, -0.30493334, 0.0012451819, 0.040420715, -0.09400875, -0.058327, -0.092143685, 0.08411573, 0.06618551, 0.066164635, -0.08439327, 0.07001009, 0.22673227, -0.1294288, -0.46530777, 0.2499909) * go_5(1.0, 1.0); + result += vec4(0.06602671, 0.113320544, -0.04297089, 0.007400785); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.19466089, -0.10927993, 0.09179887, 0.15121523, -0.037340622, 0.06053471, 0.038131684, -0.008113673, -0.18904036, -0.09559259, -0.17113, 0.03717301, -0.043611653, -0.16189677, 6.720818e-05, 0.087884724) * go_0(-1.0, -1.0); + result += mat4(-0.2376871, 0.07507205, 0.08144118, 0.266135, -0.0016601613, -0.075726755, 0.1405083, 0.05794102, 0.082300104, 0.42289656, -0.21715559, 0.066831395, 0.31216174, -0.14317952, 0.1725695, -0.17751537) * go_0(-1.0, 0.0); + result += mat4(0.037299458, -0.11762432, -0.011837041, 0.1465751, 0.039899126, -0.049513657, -0.0037649425, -0.17213967, 0.13214532, -0.035151232, 0.098905504, 0.25259635, -0.034471225, 0.22866723, 0.056768697, 0.04517098) * go_0(-1.0, 1.0); + result += mat4(-0.032002304, 0.0033130902, -0.11396168, -0.24947542, -0.01432499, 0.059397, 0.011829774, -0.039037425, 0.2855777, 0.38178965, 0.061862387, -0.3191097, 0.0013762182, 0.10873268, 0.13221635, 0.11438935) * go_0(0.0, -1.0); + result += mat4(-0.444183, 0.07429998, -0.24415193, 0.20763457, 0.005403234, -0.09182405, -0.33746308, 0.23260857, 0.80383587, 0.42822048, 0.15259221, 0.08751457, -0.18719546, 0.3931829, -0.3559663, 0.1288945) * go_0(0.0, 0.0); + result += mat4(0.038999066, 0.20546576, 0.17918825, 0.06601807, -0.09185307, 0.08308848, 0.3533222, 0.20337574, 0.2909968, -0.25924757, -0.18089646, -0.0856463, 0.1436575, -0.20405407, 0.08083093, -0.13420194) * go_0(0.0, 1.0); + result += mat4(-0.08427221, 0.029255591, 0.016859733, -0.011943696, 0.13574867, 0.040940672, 0.013232511, 0.026956066, 0.071955554, -0.06337127, -0.15357494, -0.026208352, -0.04108415, -0.06945617, 0.018760698, -0.023912333) * go_0(1.0, -1.0); + result += mat4(0.07994412, -0.00968056, 0.08030741, 0.16342168, 0.04104326, 0.073546335, 0.10782922, -0.27047744, -0.027339334, 0.012742752, 0.07632864, 0.3130092, -0.026107019, 0.14022668, 0.0019065946, 0.050307225) * go_0(1.0, 0.0); + result += mat4(-0.064752, -0.114935696, -0.101320885, -0.13594441, -0.0035874723, -0.21959865, -0.20514846, 0.06435263, -0.07910371, 0.22121632, -0.027385276, 0.11370377, -0.087538995, 0.02242176, 0.05138211, -0.055027794) * go_0(1.0, 1.0); + result += mat4(-0.07418348, -0.013085453, -0.23711763, 0.13872914, 0.10102951, 0.034057204, 0.09149018, 0.060473535, -0.00067378976, 0.05151344, -0.038349435, 0.05791031, 0.0049775504, -0.0063300184, 0.11502679, 0.11189162) * go_1(-1.0, -1.0); + result += mat4(-0.17575283, -0.026091507, -0.012820658, 0.02245792, 0.15239143, -0.12657113, 0.062418584, -0.12840585, 0.07613884, 0.12033655, -0.05695382, 0.03669604, -0.17113449, -0.15366605, 0.17787598, 0.06278569) * go_1(-1.0, 0.0); + result += mat4(0.015337286, -0.050423414, -0.08879978, 0.04760555, 0.12424041, -0.03367427, -0.0459138, 0.22050953, 0.12919267, 0.26828563, -0.1061058, -0.10099044, -0.04658635, -0.016307753, 0.14689955, -0.14597629) * go_1(-1.0, 1.0); + result += mat4(-0.01102339, 0.014672111, 0.13931917, -0.1345445, 0.031524513, -0.32458848, -0.056687858, 0.22222418, -0.056350503, 0.035747256, -0.10304222, -0.21285744, 0.25462946, 0.09982579, 0.09516444, -0.016217945) * go_1(0.0, -1.0); + result += mat4(-0.076081604, -0.23594818, 0.15077876, -0.21414931, 0.2282169, 0.59579784, -0.12744917, 0.35256362, -0.074862994, 0.16357085, 0.19566183, -0.05933472, 0.6046422, 0.17888334, -0.015507464, -0.08096589) * go_1(0.0, 0.0); + result += mat4(-0.07068054, -0.0079010865, 0.036364477, 0.14502864, -0.021085994, -0.07906985, 0.09793876, 0.07399657, 0.12093952, -0.18547052, -0.110405356, -0.10768624, 0.016976682, -0.030136436, 0.3050347, 0.25278243) * go_1(0.0, 1.0); + result += mat4(-0.010475713, -0.10232612, -0.108958706, -0.011528059, 0.11610843, -0.0014788646, 0.17262968, 0.031911, 0.08343287, -0.0021717772, -0.021841958, 0.0973525, -0.046819497, -0.05605018, 0.1291599, 0.09826176) * go_1(1.0, -1.0); + result += mat4(0.04663343, 0.04400759, -0.035258498, 0.00895981, -0.23123324, -0.055122357, 0.089720264, 0.09339213, 0.16230758, 0.01740431, 0.0010832906, 0.019101601, -0.28437567, -0.017914291, 0.06484634, -0.00661367) * go_1(1.0, 0.0); + result += mat4(0.08788325, 0.017547041, -0.12180048, -0.01287628, 0.014391497, 0.0098254625, -0.1297012, -0.08183671, 0.018999657, 0.09840126, 0.047082353, 0.24155243, 0.12269502, -0.08142539, 0.10323659, -0.033276822) * go_1(1.0, 1.0); + result += mat4(-0.14859885, -0.03888739, -0.15384491, -0.17175777, 0.04767615, 0.042373076, 0.013757687, -0.13237329, -0.04965534, 0.020163631, -0.11415436, -0.056286413, -0.16989873, 0.024179472, 0.037168648, -0.12176204) * go_2(-1.0, -1.0); + result += mat4(-0.05709518, -0.09206574, 0.04486005, -0.033150986, -0.017180622, 0.06052779, 0.16889273, -0.15518297, -0.24440864, 0.12658344, -0.139649, 0.037917744, -0.14727007, 0.038368758, -0.05098604, 0.09547945) * go_2(-1.0, 0.0); + result += mat4(-0.08096385, -0.010406064, -0.057036124, 0.13355646, -0.00612782, -0.0033356852, -0.06850302, 0.029461807, -0.17608377, -0.10943067, 0.030028753, 0.08070524, 0.022253908, -0.005548474, -0.045125946, 0.02093025) * go_2(-1.0, 1.0); + result += mat4(0.10988742, 0.27972367, -0.04232453, -0.43071312, -0.08219865, -0.12530999, -0.0016445538, 0.05443371, -0.014415479, -0.08840511, 0.066499956, -0.01336885, -0.15110426, 0.062335182, 0.052890446, 0.1044874) * go_2(0.0, -1.0); + result += mat4(0.33606815, -0.17963116, 0.34632006, 0.3946198, -0.10691484, -0.1038113, -0.019460114, 0.06895735, 0.59190637, -0.10203456, 0.008359275, 0.06353352, -0.32418385, -0.12430192, 0.24380416, -0.23094086) * go_2(0.0, 0.0); + result += mat4(-0.020480068, -0.01640171, -0.09763355, -0.02580198, -0.041970506, -0.042252183, -0.09769974, -0.045537427, 0.14187063, 0.06059797, 0.033730645, 0.020378796, -0.033819746, 0.09553117, -0.05334098, -0.09202247) * go_2(0.0, 1.0); + result += mat4(0.0246489, -0.086129375, 0.05148198, 0.16396165, -0.042565763, 0.047137372, 0.08882997, -0.0076635084, 0.020555299, -0.0018504986, -0.093162216, -0.002001032, -0.09805734, -0.09600409, -0.0027830484, -0.12433019) * go_2(1.0, -1.0); + result += mat4(-0.016701702, 0.19712164, -0.13269165, -0.10036325, -0.008542912, -0.006157372, -0.09184331, -0.097038, -0.11304494, 0.27655166, 0.060221743, 0.096516214, -0.043898825, 0.010273238, -0.07468758, -0.21701947) * go_2(1.0, 0.0); + result += mat4(-0.11392737, -0.15646808, -0.16859137, -0.1773589, 0.062430523, 0.0633658, 0.1578782, -0.02552433, -0.09023146, -0.03037661, -0.050063506, -0.018076949, 0.021033524, -0.06344241, 0.08951326, 0.06231262) * go_2(1.0, 1.0); + result += mat4(-0.094271734, 0.0114940265, -0.04097972, -0.06457978, 0.20086573, 0.035297886, -0.03792428, -0.15497704, 0.12542814, 0.006359964, 0.049963623, 0.06472255, -0.14664528, 0.10833471, 0.03922276, -0.1675095) * go_3(-1.0, -1.0); + result += mat4(-0.18032873, 0.011285189, -0.061522707, 0.008256017, 0.13692558, 0.15130165, 0.13422745, -0.22135267, 0.19946684, 0.24516532, 0.10290738, -0.2294601, -0.052056555, -0.13473587, 0.23919931, -0.042362213) * go_3(-1.0, 0.0); + result += mat4(-0.025423648, 0.026715705, 0.0060757576, -0.06410553, -0.04461674, -0.3029843, 0.092734374, 0.04524039, 0.033247333, -0.02790855, 0.056930248, -0.15256552, 0.02607904, 0.09423549, -0.18153918, 0.13832009) * go_3(-1.0, 1.0); + result += mat4(-0.049555343, 0.017360087, 0.057959676, 0.07956772, -0.075296454, -0.1470046, 0.021892669, 0.10043102, -0.024857812, -0.10644472, 0.09769508, 0.1249294, 0.007206734, -0.028977863, 0.10593961, 0.26716354) * go_3(0.0, -1.0); + result += mat4(-0.029734008, -0.3227415, 0.23771009, -0.19591968, -0.51607347, -0.25314853, -0.056235682, -0.07140848, 0.111049965, -0.06368735, -0.2866811, 0.013670416, 0.06847308, 0.30838242, -0.12282098, 0.0034061049) * go_3(0.0, 0.0); + result += mat4(-0.12762555, -0.04628489, -0.12804574, -0.040225446, 0.20549247, 0.40988892, 0.046733934, 0.0011979616, 0.060588628, 0.15362865, -0.022557247, -0.09853034, 0.06939786, -0.08854213, 0.0033144224, -0.20143713) * go_3(0.0, 1.0); + result += mat4(0.05962723, 0.05745424, -0.094456606, -0.20003895, -0.070974536, 0.026771205, 0.02564145, -0.02845018, -0.035351314, -0.0117768, 0.113437235, 0.08942642, 0.058360267, 0.024181651, 0.024502836, -0.073039465) * go_3(1.0, -1.0); + result += mat4(0.12510774, 0.045879837, -0.010349814, -0.019377183, -0.008772124, -0.16534139, -0.13212264, -0.21540141, 0.036527056, -0.10918482, 0.0049819928, -0.019343467, 0.13203917, -0.08569981, -0.061810624, -0.05108862) * go_3(1.0, 0.0); + result += mat4(0.04002694, -0.055285487, 0.053127788, 0.10067933, -0.027899982, -0.0050923983, -0.039490424, -0.121817835, -0.09340064, -0.0429694, 0.18118261, 0.049474712, 0.038677018, 0.14249925, 0.09504422, 0.122608855) * go_3(1.0, 1.0); + result += mat4(-0.14135127, 0.09016643, 0.025633719, 0.000614705, 0.070762664, -0.030985976, 0.042064067, 0.057410795, 0.0660935, -0.05050625, -0.10755477, 0.039620418, -0.10203836, -0.07814099, -0.014446629, 0.18048128) * go_4(-1.0, -1.0); + result += mat4(0.43030277, 0.18589582, 0.256173, -0.2844, 0.13945708, 0.14931135, 0.22740678, -0.3956166, -0.0724625, -0.08001986, 0.081810005, 0.025289046, 0.06736611, -0.07330548, -0.29192784, 0.21637453) * go_4(-1.0, 0.0); + result += mat4(-0.08737932, -0.1372706, 0.03159939, -0.21679185, -0.09027622, -0.041193455, 0.11512235, -0.24278319, -0.08837681, -0.018710367, 0.041880753, -0.014190375, 0.033047616, 0.06708754, -0.03391409, -0.07711031) * go_4(-1.0, 1.0); + result += mat4(0.12588775, 0.4317977, 0.077132806, -0.42811748, 0.031082593, 0.23937033, 0.08018833, -0.22718322, 0.060632102, 0.08067565, -0.042863563, -0.091845684, -0.04759955, 0.009588551, -0.17780636, -0.22400473) * go_4(0.0, -1.0); + result += mat4(-0.06745702, -0.0795159, -0.4350959, 0.35561585, -0.13962667, -0.5940183, -0.54777396, -0.68051004, -0.16509765, -0.34696493, 0.038297307, 0.13719557, -0.040833995, 0.031406473, -0.5174053, -0.08789825) * go_4(0.0, 0.0); + result += mat4(-0.12779349, 0.2936602, 0.13704172, 0.13110651, 0.10102365, 0.24163464, -0.069620885, -0.16209678, -0.07489114, -0.019360917, -0.070400774, -0.023681173, -0.1102226, -0.09275758, -0.31730032, 0.03576276) * go_4(0.0, 1.0); + result += mat4(-0.0986982, -0.14386573, 0.06295539, 0.2667051, 0.029192172, 0.028653674, -0.13940518, -0.022916485, -0.091007926, -0.062984526, 0.026765045, 0.058111303, 0.028423572, -0.016102828, -0.09699887, 0.118749924) * go_4(1.0, -1.0); + result += mat4(-0.40428874, 0.45658726, 0.20199502, 0.020573912, -0.08588765, 0.15927678, 0.29527012, 0.40756142, -0.15820621, 0.009576386, -0.009194596, -0.08242508, 0.0012625816, -0.03771835, -0.22807057, 0.035798464) * go_4(1.0, 0.0); + result += mat4(0.13749583, -0.04876742, -0.0065646684, -0.28335539, 0.117720984, 0.087982565, 0.16954121, 0.2363482, -0.17796999, -0.106926255, 0.0060180747, -0.11523375, 0.038097225, 0.09647209, -0.06873753, -0.056800433) * go_4(1.0, 1.0); + result += mat4(0.1768557, 0.13145363, 0.12556404, 0.03251624, -0.02287178, 0.12941027, -0.2394559, -0.37159434, 0.14269918, 0.08204633, 0.20483865, 0.05722901, 0.06699899, -0.04848409, 0.12399497, 0.124153495) * go_5(-1.0, -1.0); + result += mat4(0.14586149, 0.09655288, 0.03812125, 0.052801564, 0.065902874, -0.043486778, 0.0657983, 0.14589024, 0.011490019, -0.0021060712, -0.18636304, 0.24038431, 0.2249946, 0.14451164, -0.13322833, 0.109084174) * go_5(-1.0, 0.0); + result += mat4(-0.03467399, 0.076331206, -0.047301926, -0.10028459, -0.069450885, 0.103480145, -0.08315761, -0.00030933326, 0.04021727, 0.06693238, -0.02885415, 0.12737286, -0.042063054, -0.075277805, 0.21915779, 0.14529525) * go_5(-1.0, 1.0); + result += mat4(-0.21753858, 0.13885236, -0.03733484, 0.070192896, -0.42111662, 0.2257056, -0.0020320695, -0.4404435, -0.011731456, -0.031235369, -0.17156643, -0.00023724366, 0.16697505, 0.19261077, 0.054627284, -0.2635247) * go_5(0.0, -1.0); + result += mat4(0.4114966, -0.21771282, -0.30367702, -0.24675573, -0.41803458, 0.31936127, 0.13296337, 0.2682109, -0.035749484, 0.22223838, 0.012987173, -0.20490278, 0.013631246, -0.34068218, -0.60729563, -0.13018902) * go_5(0.0, 0.0); + result += mat4(-0.011740597, 0.07837384, 0.12748203, -0.013336406, -0.07607798, -0.39041027, 0.1939761, -0.08242594, -0.008299102, -0.23057082, 0.13972911, -0.21057422, 0.18126678, 0.004605364, 0.27230838, 0.04088039) * go_5(0.0, 1.0); + result += mat4(-0.0761628, 0.08201472, 0.00067113456, -0.000108762404, 0.119982824, 0.0067928904, -0.048988946, -0.007609898, 0.049381327, 0.010086041, 0.025384359, 0.002726633, -0.009928298, 0.05588474, 0.050830763, 0.17467195) * go_5(1.0, -1.0); + result += mat4(0.074037455, -0.16637659, -0.017491426, 0.013344787, 0.054212473, -0.29519126, -0.2467157, -0.17357266, -0.13876535, -0.04991683, 0.1392161, 0.05660303, 0.03868982, 0.10992501, 0.13167763, 0.060129613) * go_5(1.0, 0.0); + result += mat4(0.027297564, 0.069763646, 0.15132809, 0.11143169, -0.08621777, 0.23928702, 0.00017447853, 0.115308166, -0.061112467, 0.044474706, -0.02718813, 0.19822854, -0.057888303, 0.06540743, -0.051538624, -0.002416074) * go_5(1.0, 1.0); + result += vec4(-0.06036478, 0.0356493, -0.059101366, 0.0024990432); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.0023940788, -0.2570281, 0.021624887, -0.14413927, -0.042929508, 0.024798246, 0.06039514, -0.0385923, 0.18157732, -0.18974024, 0.3197193, -0.086097986, -0.23871095, -0.085877284, -0.15280978, 0.054582383) * go_0(-1.0, -1.0); + result += mat4(-0.2892671, -0.35989672, 0.14361507, 0.10109185, -0.008244152, -0.07610182, 0.016237438, 0.109711155, -0.03325961, 0.056557924, 0.093826056, 0.16487189, 0.12098654, 0.26959404, -0.32664284, -0.33652756) * go_0(-1.0, 0.0); + result += mat4(0.20426908, 0.00921726, -0.131825, -0.30112436, -0.29350808, -0.0059835073, -0.20881179, -0.15929249, 0.14798939, -0.039377835, 0.0022686112, -0.31745487, 0.1383128, 0.095711716, 0.24649502, 0.3734734) * go_0(-1.0, 1.0); + result += mat4(0.08007145, 0.059220374, -0.11955456, 0.02726716, -0.012340195, -3.9396626e-05, 0.23562932, 0.02603672, 0.0024148317, 0.48585725, -0.25960997, 0.12831855, 0.034503214, 0.26429248, 0.19966535, 0.34653723) * go_0(0.0, -1.0); + result += mat4(0.16401817, 0.05824359, 0.23210622, -0.4564646, 0.09790885, 0.0017682983, 0.12023501, -0.34214047, -0.3808189, -0.59095186, 0.3224012, 0.054841924, -0.14028488, -0.35759392, -0.012464827, -0.42101544) * go_0(0.0, 0.0); + result += mat4(0.18710142, -0.022806095, -0.03905798, 0.050422203, 0.21642984, -0.071577035, 0.165218, 0.10126085, 0.18105839, -0.09810516, -0.43905553, 0.5793889, -0.16706131, 0.13636151, 0.029069345, 0.28394657) * go_0(0.0, 1.0); + result += mat4(0.03242417, 0.03540981, 0.06596982, -0.11404851, -0.043041103, 0.118582286, -0.16384825, -0.021553654, -0.12775607, -0.055402167, -0.016003367, -0.06356131, -0.063166484, -0.09225374, 0.21487807, 0.18778628) * go_0(1.0, -1.0); + result += mat4(-0.29311153, -0.09822076, 0.1706967, -0.30188912, -0.11062667, -0.08119463, -0.13738254, -0.24389322, 0.2796491, 0.21054858, -0.08765812, 0.3177179, 0.10164016, 0.14627174, 0.15129958, -0.13566513) * go_0(1.0, 0.0); + result += mat4(-0.12295195, -0.12036253, -0.040527046, 0.10602722, -0.19854495, -0.05223541, -0.032363445, 0.122390084, 0.27342895, 0.09667149, 0.0423871, -0.17246284, -0.031107228, -0.005470437, 0.051434256, 0.07954733) * go_0(1.0, 1.0); + result += mat4(0.17945234, 0.051398605, 0.3032336, -0.36277965, -0.015693031, 0.0847029, -0.1128904, 0.04994005, 0.08276063, 0.07031328, 0.06770377, -0.1687264, -0.17490897, -0.09989766, -0.07715023, -0.010953815) * go_1(-1.0, -1.0); + result += mat4(0.014114998, -0.06209966, 0.057450738, 0.21318321, -0.093205266, -0.15646473, -0.22241333, -0.08228401, -0.4973326, -0.12547962, -0.07989991, -0.06822309, -0.106437586, -0.19071254, 0.14178663, 0.10448926) * go_1(-1.0, 0.0); + result += mat4(-0.005078645, -0.028730195, -0.04966596, -0.024377774, 0.0039325077, 0.10179092, -0.105298065, -0.1688019, -0.23554938, 0.058782354, 0.19999442, -0.027954772, -0.10502022, 0.016704066, -0.033541992, 0.1382609) * go_1(-1.0, 1.0); + result += mat4(-0.30713797, -0.0631538, -0.17524256, 0.12141287, 0.18175098, -0.13446523, -0.15921354, -0.0050512427, -0.00880753, -0.24464725, 0.10351903, -0.122694805, 0.2637432, 0.10111337, -0.05550657, -0.024864933) * go_1(0.0, -1.0); + result += mat4(-0.4845733, -0.13332175, 0.007910284, 0.5203373, 0.72870463, 0.15518989, -0.12580696, 0.04916096, 0.6244038, 0.3593719, 0.16328047, -0.14490198, 0.07803236, 0.26987454, -0.02258877, -0.21130653) * go_1(0.0, 0.0); + result += mat4(0.20343359, -0.048075967, 0.17489576, -0.18971623, -0.14069648, -0.029665243, -0.24902415, 0.07167198, -0.6412736, -0.041664686, 0.58569616, 0.02399211, 0.12831652, -0.058278285, -0.07922422, -0.108734205) * go_1(0.0, 1.0); + result += mat4(-0.004269588, -0.11554386, -0.0022618338, 0.12235181, 0.07379002, 0.0548718, -0.040107626, -0.040337294, -0.060385335, 0.119979575, -0.27628905, -0.023228448, -0.04064614, 0.0047100694, 0.048138026, 0.0057798214) * go_1(1.0, -1.0); + result += mat4(0.15257028, -0.005850462, -0.1434922, 0.07164339, -0.062233947, -0.0156128965, -0.019673312, -0.0002651659, -0.19478518, 0.11921539, -0.2361836, -0.09110679, 0.02719977, 0.0033712897, 0.17245373, 0.2532936) * go_1(1.0, 0.0); + result += mat4(0.0030309292, 0.10147757, -0.31425565, -0.10256, -0.05862195, -0.08736711, 0.084856585, 0.016700774, 0.06286386, -0.07443701, 0.08754631, -0.18171762, 0.06868201, -0.09278428, -0.053383432, 0.03826822) * go_1(1.0, 1.0); + result += mat4(-0.10183099, 0.06891697, 0.056318853, 0.13647571, -0.03353045, 0.016239524, 0.005603497, 0.035521563, 0.18905343, 0.041940115, 0.10048305, -0.04986043, 0.04298795, 0.050817303, 0.17744416, -0.010589751) * go_2(-1.0, -1.0); + result += mat4(-0.31862193, -0.13207828, -0.1375938, -0.23549932, -0.06217893, 0.0019514537, -0.005417935, 0.13736913, -0.10263318, -0.18941346, 0.15843, 0.27492487, 0.058868844, -0.1804736, 0.24544486, 0.10051148) * go_2(-1.0, 0.0); + result += mat4(0.15876879, 0.07879244, 0.0513651, 0.07673734, 0.015635801, 0.048305415, 0.019661602, -0.0479435, 0.027511599, -0.065881185, 0.21485852, -0.010372607, -0.19896457, -0.05555933, -0.054646876, -0.09143982) * go_2(-1.0, 1.0); + result += mat4(0.21596268, 0.21091351, 0.234315, -0.0006641688, 0.03455969, -0.12185912, -0.03052869, 0.15622592, -0.18506715, -0.24213594, -0.19364369, -0.07659142, 0.0379824, 0.0091246925, 0.1708395, 0.036304265) * go_2(0.0, -1.0); + result += mat4(-0.2730932, -0.23328209, 0.6977438, -0.2445981, 0.031650152, -0.004327604, -0.050584223, -0.07061773, -0.10755705, 0.30620542, -0.15688588, 0.16850896, -0.088513345, 0.2162286, -0.4329111, -0.52770174) * go_2(0.0, 0.0); + result += mat4(-0.068270594, 0.039348822, -0.08555022, 0.23533496, -0.062174525, 0.0193457, -0.13714077, 0.060169753, -0.06355557, -0.010862508, -0.17664193, -0.24809086, 0.032538615, 0.08074848, 0.20644335, 0.085532546) * go_2(0.0, 1.0); + result += mat4(-0.07677775, 0.0007320281, 0.0139939515, 0.19423772, 0.02928719, 0.05200053, 0.012181974, -0.005785729, 0.08011629, 0.03698694, 0.15808755, 0.04080324, -0.21732025, -0.10937562, -0.050028726, 0.088937156) * go_2(1.0, -1.0); + result += mat4(-0.06772194, 0.09471782, -0.0830642, -0.13875008, 0.003456362, 0.010889541, 0.08989434, 0.03261672, 0.19459227, 0.18803298, 0.16107602, 0.1490853, -0.22943772, 0.0005637327, 0.052380536, -0.06956663) * go_2(1.0, 0.0); + result += mat4(-0.15136889, -0.2523378, -0.037718855, 0.1728913, 0.067127876, -0.038833655, 0.14237632, -0.07256634, 0.0052903728, -0.11813482, -0.06309155, -0.015444354, 0.044696916, 0.0011587966, -0.008295438, 0.045684442) * go_2(1.0, 1.0); + result += mat4(0.029596262, 0.013380705, 0.19451803, -0.0217206, -0.03430266, 0.066089645, -0.22101538, 0.016455501, 0.122556984, -0.018319963, -0.06570934, -0.05489828, -0.13112561, 0.10740249, -0.07405227, 0.23262945) * go_3(-1.0, -1.0); + result += mat4(0.039601505, -0.0795478, 0.1524426, 0.22525507, -0.18371256, 0.009809418, -0.09180862, 0.03985826, -0.17215611, 0.104956195, -0.012817112, 0.12702619, -0.119846344, -0.1763627, -0.010298178, 0.059241127) * go_3(-1.0, 0.0); + result += mat4(-0.0823085, -0.07456769, 0.054212615, 0.009188054, 0.0017495407, -0.07561583, -0.17030309, 0.007888594, -0.11013637, -0.08417068, 0.061450012, -0.081912406, 0.11603573, 0.0490229, 0.119570516, -0.111465424) * go_3(-1.0, 1.0); + result += mat4(-0.21657833, -0.1643494, 0.19958968, -0.042039983, -0.0037797047, -0.13965121, -0.019386362, -0.024111586, 0.06518915, -0.15928997, -0.08175624, 0.050481785, 0.37915838, -0.09272705, 0.4887356, -0.13048859) * go_3(0.0, -1.0); + result += mat4(-0.3364342, -0.08892259, 0.2356529, 0.22063124, 0.31071013, 0.101701945, 0.25302443, 0.25084528, 0.22127245, 0.23771746, 0.35111645, -0.14120491, 0.09563979, 0.2781042, -0.17586009, -0.09176989) * go_3(0.0, 0.0); + result += mat4(-0.11986394, -0.093885854, 0.11733581, 0.05637956, 0.23623823, -0.007359601, 0.28527632, -0.16477823, 0.0035151376, 0.042055942, -0.0062996866, 0.021584665, -0.28436866, 0.1456055, -0.25843173, -0.07554441) * go_3(0.0, 1.0); + result += mat4(-0.03815117, 0.07561848, -0.07897604, -0.012987363, 0.02319023, 0.04150643, -0.019950474, 0.041954774, -0.07800387, -0.011202695, -0.11299979, -0.00864291, -0.114811376, 0.124991566, -0.46519995, 0.060762767) * go_3(1.0, -1.0); + result += mat4(-0.048102316, -0.04349749, -0.045696992, -0.06968446, -0.10201568, -0.10664441, -0.1271327, 0.014041653, -0.06944334, -0.024820644, 0.06449197, -0.118919216, -0.100525826, -0.081692286, -0.0036934754, -0.0950572) * go_3(1.0, 0.0); + result += mat4(0.028598474, 0.101999335, -0.10409241, -0.0008725121, -0.24365604, 0.09376613, -0.10155709, -0.019243455, -0.08370451, -0.08886542, 0.15643747, 0.094012596, 0.0989398, -0.003263144, 0.24052359, -0.05086219) * go_3(1.0, 1.0); + result += mat4(0.22825857, -0.041577056, 0.3575971, -0.019246848, 0.09680159, 0.05570423, -0.20628895, -0.02993351, 0.05210484, -0.049776137, 0.005964223, -0.22305849, 0.030647328, -0.088792734, 0.0043907063, 0.08531383) * go_4(-1.0, -1.0); + result += mat4(-0.30464846, -0.12842661, -0.3743522, 0.13156073, -0.32281575, 0.030088687, -0.09418602, 0.13464968, -0.0695602, 0.0936232, -0.038296524, 0.33601308, 0.17701761, 0.14289881, -0.047556065, -0.3338849) * go_4(-1.0, 0.0); + result += mat4(-0.005924107, 0.043742385, -0.064937405, 0.15786234, -0.09955057, -0.082465865, -0.03392436, 0.21772122, 0.15173042, 0.10373368, 0.051570628, 0.11137272, 0.15423453, 0.09124828, -0.014710869, 0.030298932) * go_4(-1.0, 1.0); + result += mat4(0.043112267, 0.5992106, -0.32294464, 0.31510955, -0.25169763, 0.04839851, 0.16124408, -0.14096124, -0.097060055, 0.06045283, -0.27082244, -0.12048959, 0.009364686, 0.11915612, 0.008150039, 0.08678112) * go_4(0.0, -1.0); + result += mat4(0.47620735, 0.6078475, -0.018170241, -0.50504035, -0.30020222, -0.24147978, 0.33480522, 0.43817788, -0.15983123, -0.19762735, 0.1549511, 0.292026, -0.31289634, -0.15204595, 0.3059814, 0.30576986) * go_4(0.0, 0.0); + result += mat4(0.13746189, -0.039151277, 0.62028766, -0.19905351, 0.13143681, 0.1407726, 0.18850237, -0.057907805, 0.086882025, 0.107989915, -0.0065579475, 0.31578153, -0.15049165, -0.20889415, -0.13337761, -0.035084542) * go_4(0.0, 1.0); + result += mat4(-0.071805745, -0.18944815, 0.25147218, -0.03606807, 0.23967369, 0.02687493, 0.0513247, -0.18633473, 0.063457586, -0.08531119, 0.21456662, 0.07793248, -0.08192292, -0.11563025, -0.020568466, -0.15659434) * go_4(1.0, -1.0); + result += mat4(0.17281517, 0.4232067, 0.32460606, -0.3712845, 0.41458213, 0.06034276, 0.2704778, 0.17323148, -0.06306892, -0.10192465, 0.17620242, -0.009122019, 0.1198333, 0.11001577, -0.3855991, 0.08933198) * go_4(1.0, 0.0); + result += mat4(-0.28324863, -0.041409206, 0.03248429, 0.24548076, 0.26409158, 0.24419361, -0.012711284, -0.30516157, -0.20289323, -0.13157755, 0.028014898, 0.16276212, 0.007050667, 0.08335203, 0.102254696, -0.11343822) * go_4(1.0, 1.0); + result += mat4(0.043687776, -0.004411872, -0.098016165, -0.055542797, 0.22615008, 0.13183828, 0.7488022, -0.33078304, 0.11318944, -0.047168892, 0.38564375, -0.030084245, 0.09062325, -0.16808534, -0.07371455, 0.20058438) * go_5(-1.0, -1.0); + result += mat4(0.19956557, -0.08747039, -0.029969914, 0.13122557, 0.049196698, -0.13465631, -0.22565748, -0.08703051, 0.26813537, 0.00821654, 0.032616418, -0.18458223, 0.17407443, 0.28091452, -0.16240835, -0.27060813) * go_5(-1.0, 0.0); + result += mat4(0.04535802, 0.037094936, 0.11686145, -0.002455908, 0.16012727, 0.14261092, -0.08348427, 0.18832053, 0.029025842, 0.054300968, 0.018998424, 0.014601349, 0.07728862, -0.034569506, 0.09937842, -0.076810405) * go_5(-1.0, 1.0); + result += mat4(-0.42146468, -0.10226207, -0.03932444, -0.17184897, -0.21222934, 0.050341085, 0.19828026, -0.07519326, -0.016190661, 0.08705493, -0.14219207, -0.08652689, -0.095818594, 0.18254876, -0.29907924, 0.049119983) * go_5(0.0, -1.0); + result += mat4(0.015439721, 0.24500765, -0.01930081, 0.24527666, -0.13847429, 0.5195186, 0.13352336, 0.12092768, -0.10859864, 0.043220174, -0.37466663, -0.0432489, -0.38647306, -0.33819455, 0.24641274, 0.6657115) * go_5(0.0, 0.0); + result += mat4(0.15343782, -0.004420619, -0.047215153, -0.16960907, -0.0707756, -0.29501325, -0.09699802, -0.15991725, -0.19104993, -0.115666404, -0.3558544, -0.0149508845, -0.1138187, -0.07019453, -0.16961712, -0.1560539) * go_5(0.0, 1.0); + result += mat4(-0.0016192662, 0.041725244, 0.003358041, -0.027749699, -0.001091161, 0.06779037, -0.15775087, -0.04927482, 0.016525732, -0.061703153, -0.011079543, -0.04828491, 0.19724323, 0.11623055, 0.11814769, -0.08236815) * go_5(1.0, -1.0); + result += mat4(-0.009845684, -0.18635233, -0.09976992, 0.12431404, -0.34134167, -0.34342697, -0.026243573, 0.088327765, 0.056699544, 0.07774804, 0.062026564, 0.09743545, 0.14937103, 0.11164576, 0.11233316, -0.071940914) * go_5(1.0, 0.0); + result += mat4(0.093613006, 0.08761063, 0.11849382, -0.06467931, 0.13939771, -0.05646352, -0.08747582, -0.3780521, 0.2270502, -0.042743817, 0.34419978, -0.11905452, 0.18841426, 0.044176128, 0.08761558, -0.0007557414) * go_5(1.0, 1.0); + result += vec4(0.07303222, -0.017307714, -0.017054217, -0.004928735); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.07753503, 0.18257454, 0.16630161, 0.018181466, 0.032217313, -0.029755782, -0.09729085, 0.090185136, 0.036025215, -0.07385567, -0.11479112, -0.009775693, -0.09510068, 0.099653766, 0.12464123, 0.11700322) * go_0(-1.0, -1.0); + result += mat4(0.63560385, 0.086338535, -0.13764763, 0.47561046, -0.124727264, 0.12672219, 0.070208505, -0.19783491, -0.17025535, -0.06808678, -0.020102726, -0.04832835, 0.036826584, -0.42171007, -0.06695269, 0.110764995) * go_0(-1.0, 0.0); + result += mat4(-0.21227197, 0.007874801, 0.23701921, 0.1677161, -0.09035146, -0.078691766, -0.14215821, 0.124355234, 0.22710884, 0.033057146, -0.056999616, -0.23319073, 0.22966021, -0.06883101, 0.16328879, -0.06578935) * go_0(-1.0, 1.0); + result += mat4(-0.054363396, -0.02026726, -0.3616366, 0.06780306, -0.04632169, 0.10096817, 0.0533077, -0.083695725, 0.23162244, 0.16473895, 0.19103514, 0.0071199746, 0.2165012, 0.04725686, 0.035206214, 0.022603447) * go_0(0.0, -1.0); + result += mat4(0.6271094, -0.09669194, 0.07382753, -0.30720463, 0.15260984, -0.36707088, -0.031697996, 0.01600927, -0.39879522, 0.101928055, -0.6943482, 0.14665292, -0.3587046, 0.021466898, -0.047919527, 0.2560715) * go_0(0.0, 0.0); + result += mat4(0.019088794, -0.0771604, -0.028177094, 0.088726945, -0.057697777, 0.2596943, 0.17144933, 0.058258526, 0.08891237, 0.106383145, 0.396072, 0.29374352, 0.06596987, -0.105576634, 0.055430118, -0.12292237) * go_0(0.0, 1.0); + result += mat4(-0.17208415, 0.12158739, 0.04662299, 0.21695717, 0.11738881, -0.067407556, -0.039283432, -0.1076609, 0.107738726, -0.121356055, -0.062349405, 0.048801728, 0.09052609, -0.11955365, 0.006165453, 0.06702327) * go_0(1.0, -1.0); + result += mat4(0.23194505, -0.2278423, -0.4579323, -0.4102899, -0.33038944, 0.10686308, 0.12578374, 0.14304528, -0.03290542, -0.22190952, -0.15582415, 0.10534921, 0.0939146, -0.04590803, -0.03591444, -0.030313203) * go_0(1.0, 0.0); + result += mat4(0.013647308, 0.16051029, 0.024319794, -0.10505089, 0.054013297, -0.06920784, -0.020672748, -0.08262819, 0.14681742, -0.07409691, -0.063802995, 0.05206, -0.041670747, -0.022410793, -0.034180272, 0.0044075833) * go_0(1.0, 1.0); + result += mat4(-0.16723743, -0.062276114, -0.06804346, -0.06663604, 0.14639418, -0.0013829652, 0.14537166, 0.08992991, 0.00034609268, -0.11339855, -0.24834645, -0.18017055, 0.08099037, -0.22302043, -0.1160269, 0.23041926) * go_1(-1.0, -1.0); + result += mat4(0.19984062, 0.11262733, -0.021448923, 0.005645689, -0.22319363, 0.025013078, 0.050730385, 0.04427755, 0.10756255, 0.65996444, 0.17024773, -0.16237848, -0.032943483, 0.3259415, -0.08211643, -0.17815286) * go_1(-1.0, 0.0); + result += mat4(0.022923036, 0.00817696, -0.024639564, -0.017746205, 0.08000752, -0.09480044, 0.049720343, -0.039725818, -0.07954878, -0.26012203, -0.053556137, 0.28696015, -0.145685, -0.12854065, -0.030942779, 0.15013586) * go_1(-1.0, 1.0); + result += mat4(0.050982554, 0.067020066, -0.041660026, 0.07976747, -0.31219116, -0.1589965, -0.14711075, -0.2931567, -0.12886077, 0.108178794, 0.112790324, 0.18239829, 0.028661542, 0.066967815, 0.36810458, 0.07042916) * go_1(0.0, -1.0); + result += mat4(0.019871455, 0.13281262, -0.24303706, -0.053014435, 0.056483634, 0.2225138, 0.32238156, 0.09232671, 0.19425367, -0.96300596, 0.25233442, 0.34456885, 0.2688357, -0.14355205, 0.04201295, -0.09642235) * go_1(0.0, 0.0); + result += mat4(0.0021202683, 0.010281568, -0.009938761, 0.074630536, -0.23044111, 0.005154135, -0.04620688, -0.10301254, -0.17195332, -0.04863239, 0.07042225, -0.20654899, 0.029428456, 0.0045313304, 0.0051823566, 0.046590757) * go_1(0.0, 1.0); + result += mat4(0.061882593, -0.005337726, 0.10121195, 0.01023931, -0.1310065, 0.10085874, 0.13651021, -0.09158545, 0.09086723, -0.031106705, 0.03951561, 0.03958167, 0.00533062, -0.058091614, -0.11571378, -0.18051541) * go_1(1.0, -1.0); + result += mat4(0.012350476, 0.020112693, 0.0865518, 0.025516901, -0.2874268, 0.00638599, -0.3849406, 0.043449268, 0.27883583, -0.06104393, 0.17362429, 0.3229962, -0.18683271, -0.051683012, -0.14111629, 0.20863265) * go_1(1.0, 0.0); + result += mat4(0.06548792, -0.031812105, 0.032238998, 0.070259914, -0.0037810719, 0.106959336, 0.030661082, -0.11430295, 0.075470194, -0.035097398, -0.08884117, 0.15083537, -0.048511047, 0.09958945, 0.2043977, -0.14497246) * go_1(1.0, 1.0); + result += mat4(-0.025868082, 0.06237453, -0.034789152, -0.035199117, -0.021047676, -0.04558201, -0.0013141828, 0.033968918, -0.068529084, -0.06589172, -0.035473417, -0.03182408, 0.016299484, 0.07821524, -0.19162482, -0.06681627) * go_2(-1.0, -1.0); + result += mat4(0.0052780746, 0.043558404, -0.24577554, 0.11166642, 0.016039649, 0.020174565, 0.0054034027, 0.023591455, 0.24817981, 0.08734375, -0.1477572, 0.1215117, -0.017666219, -0.012353692, -0.049153887, 0.0784066) * go_2(-1.0, 0.0); + result += mat4(0.06988246, 0.06763118, 0.09934897, -0.042905882, -0.09801134, -0.033267114, 0.01741649, 0.059379116, -0.08127772, 0.010377487, -0.012631491, -0.077160686, -0.08947271, -0.067014046, -0.14255494, -0.03131322) * go_2(-1.0, 1.0); + result += mat4(0.0059068906, 0.32045186, 0.3258453, 0.0071538044, -0.027888278, 0.0068888674, -0.0015216616, -0.050514743, -0.11685065, 0.02886966, -0.008737784, -0.09290019, -0.04111259, 0.0329059, -0.2584297, -0.07026411) * go_2(0.0, -1.0); + result += mat4(-0.25162768, -0.093273714, -0.029060591, 0.050672933, -0.025395831, 0.029609011, -0.13621128, -0.08097387, 0.39335665, -0.18867645, 0.8212168, 0.12602827, 0.5734114, 0.38603428, 0.23521046, 0.21041085) * go_2(0.0, 0.0); + result += mat4(0.020245805, -0.054311104, -0.0021298525, -0.08635577, 0.04203476, 0.054419816, 0.0032106396, 0.082799725, -0.03885507, -0.12756048, -0.19565445, -0.022734454, 0.10178226, 0.08269887, -0.0018781893, 0.11515606) * go_2(0.0, 1.0); + result += mat4(0.08051269, -0.25091916, -0.08014612, -0.29471904, -0.08183992, 0.02096263, -0.04595293, 0.053499684, -0.10576831, -0.01105415, 0.054239217, 0.05486181, -0.18503998, 0.06235187, -0.046460405, -0.072068095) * go_2(1.0, -1.0); + result += mat4(-0.14105208, 0.06913383, -0.129492, 0.18553926, 0.03405444, 0.0772168, 0.10576763, -0.04969428, 0.17356592, -0.10986026, -0.33151895, -0.11582152, -0.0016404261, -0.003514874, -0.2096539, 0.03649547) * go_2(1.0, 0.0); + result += mat4(0.020758089, 0.17374831, 0.039282177, -0.039052464, 0.050139774, -0.0005518581, -0.025435442, 0.023258803, -0.1458097, 0.090529695, 0.025673594, -0.026266405, 0.072392054, -0.055323754, 0.03383548, -0.033020195) * go_2(1.0, 1.0); + result += mat4(-0.09315446, -0.036772106, -0.09159718, -0.12479503, -0.018140549, -0.022523982, 0.047108658, -0.04837651, 0.007124631, -0.009751111, 0.055076525, -0.0057495553, 0.07268171, -0.054520987, -0.079869404, 0.28962412) * go_3(-1.0, -1.0); + result += mat4(0.040367916, 0.041719466, -0.07215196, -0.026521962, 0.23269388, 0.08115016, 0.10487475, 0.05837459, 0.09574069, 0.03150842, 0.12011107, 0.104198076, -0.25915185, 0.31970975, -0.053038772, -0.23452167) * go_3(-1.0, 0.0); + result += mat4(-0.089933544, 0.00026363076, -0.037807353, -0.0067500956, -0.13427527, 0.11757816, 0.020407641, -0.15267986, -0.13672389, -0.07098531, -0.050623354, -0.04904697, 0.05156428, -0.07822598, 0.07232775, 0.12266631) * go_3(-1.0, 1.0); + result += mat4(-0.050988704, -0.11840922, -0.06057243, -0.023974465, -0.047475163, -0.1388251, -0.052473098, 0.06360512, -0.016356083, -0.12530154, -0.044482324, -0.035020005, -0.02834032, -0.031647444, 0.07049413, -0.08899642) * go_3(0.0, -1.0); + result += mat4(-0.060299333, 0.2991397, 0.0035407627, -0.12897336, -0.39282677, 0.42156345, -0.22449674, -0.11054013, 0.04733773, -0.094842866, -0.11086912, 0.10083519, 0.13186517, 0.1557214, 0.11726571, -0.23863392) * go_3(0.0, 0.0); + result += mat4(-0.03155107, -0.002008898, -0.037107117, 0.04468562, 0.037719093, -0.10104318, -0.0021850376, -0.033998992, -0.033299964, -0.026892597, 0.012233978, -0.09816237, -0.15987061, -0.11821871, -0.11293413, 0.041385822) * go_3(0.0, 1.0); + result += mat4(-0.03189814, 0.028700352, 0.030834107, 0.008420813, -0.029382093, 0.10250884, 0.032190785, 0.042566366, -0.0066131293, 0.019135946, -0.06836444, -0.082475856, 0.0020301298, 0.06428329, 0.05401348, 0.10219137) * go_3(1.0, -1.0); + result += mat4(0.09569376, -0.104563974, 0.04412079, 0.046004657, -0.179229, 0.07610759, 0.21264501, -0.03126616, -0.08888636, 0.049238402, 0.09623378, 0.08347852, 0.034179587, 0.04112591, 0.020796875, 0.016594669) * go_3(1.0, 0.0); + result += mat4(-0.022230666, -0.06919777, 0.0070929914, -0.040181976, 0.04288458, -0.057510544, -0.15865, -0.046124704, -0.06199105, -0.033739343, -0.12126394, -0.053888205, 0.003457772, -0.05709056, 0.009589608, 0.061582502) * go_3(1.0, 1.0); + result += mat4(-0.2261687, -0.010483538, 0.070508964, 0.16609758, -0.07575776, 0.07133805, 0.108534805, 0.016434515, -0.06777619, -0.053581562, -0.009408219, -0.0219316, -0.009917843, -0.056226153, 0.09495687, 0.103568204) * go_4(-1.0, -1.0); + result += mat4(0.26707995, 0.038988136, 0.15722616, -0.15202025, 0.011516332, -0.22326125, -0.21010138, 0.021120701, 0.052979603, -0.052226435, 0.03128543, -0.02211858, 0.16997981, 0.060853012, 0.17988598, -0.042057697) * go_4(-1.0, 0.0); + result += mat4(-0.19020362, -0.0019182847, 0.11082178, 0.18037713, -0.086572066, 0.072597384, -0.08759872, -0.064898625, 0.0427911, 0.101790726, 0.035692267, -0.17279546, 0.049133815, 0.08832157, 0.03645548, 0.011682866) * go_4(-1.0, 1.0); + result += mat4(0.27870035, 0.06836818, 0.36847374, -0.38926098, 0.05053419, -0.2971805, -0.22622849, 0.1165501, 0.037631556, 0.1250731, 0.059861004, 0.1194484, -0.002153221, 0.28717375, 0.071283594, 0.0974051) * go_4(0.0, -1.0); + result += mat4(-0.040311184, 0.21025413, 0.32822168, -0.031298842, -0.06347585, 0.1510298, 0.00070645136, -0.34678075, -0.21172246, 0.05277019, -0.15126394, -0.33598784, -0.36668247, -0.36057234, -0.2734601, -0.2903695) * go_4(0.0, 0.0); + result += mat4(-0.28878236, 0.100743115, -0.012016584, -0.15287946, 0.1262014, 0.015991366, 0.07392021, 0.06277959, 0.07709602, 0.060382154, 0.013840257, -0.1493553, 0.12138542, -0.032591913, -0.002609394, 0.13922709) * go_4(0.0, 1.0); + result += mat4(0.13982488, -0.034557592, -0.35006866, -0.2928353, 0.11529845, 0.23494898, 0.0991676, 0.32742763, -0.03035729, 0.016935157, -0.04650478, -0.039851867, 0.16783717, -0.065768905, -0.102848, -0.03003262) * go_4(1.0, -1.0); + result += mat4(-0.53978115, 0.026080003, 0.018700078, 0.077284, 0.2975522, -0.11212302, 0.118295476, 0.088821776, -0.22738294, 0.030945897, -0.1766137, -0.098558865, 0.039936017, 0.046374835, 0.19131522, 0.19770078) * go_4(1.0, 0.0); + result += mat4(0.16857389, -0.020288788, 0.04038437, -0.25337628, -0.034605104, -0.094041236, -0.0049146856, -0.10170456, -0.14423485, 0.021705322, -0.09162893, -0.15423405, 0.08731724, 0.114831835, -0.028548159, -0.09497847) * go_4(1.0, 1.0); + result += mat4(-0.019900214, 0.17017384, -0.0002794323, -0.021626309, -0.5123191, -0.23828037, -0.10549822, -0.48781806, -0.12835194, -0.049513552, 0.08051828, -0.3390981, 0.21935092, 0.012243462, 0.13521184, 0.09005778) * go_5(-1.0, -1.0); + result += mat4(0.090306774, -0.31387252, -0.1616645, -0.063887075, 0.3674563, 0.19566801, 0.042223614, -0.38199827, -0.08814569, -0.14486119, 0.087531656, 0.18280624, -0.041397072, -0.025872236, -0.02853888, -0.047817115) * go_5(-1.0, 0.0); + result += mat4(-0.07662397, 0.10808078, 0.08065922, 0.033938166, 0.09167725, 0.09102921, 0.10393655, 0.09121259, 0.15521088, 0.026846137, 0.033644184, -0.006811738, -0.110427104, 0.0722537, 0.014346524, 0.019231822) * go_5(-1.0, 1.0); + result += mat4(-0.14094852, -0.21157825, 0.2149605, 0.28070143, -0.24665649, -0.16250402, -0.0730695, -0.1935525, 0.02327017, -0.13742846, -0.20341669, -0.19092573, 0.3781883, -0.14726567, 0.0033765805, -0.026217941) * go_5(0.0, -1.0); + result += mat4(0.23381747, -0.21297243, -0.16462179, -0.4404414, 0.2630713, -0.06808036, 0.5769483, 0.13606368, -0.14412731, 0.17307961, 0.15431021, -0.06048075, -0.93423635, 0.2661323, -0.27400798, -0.71388435) * go_5(0.0, 0.0); + result += mat4(-0.057459023, -0.044256542, -0.14173234, 0.17559054, 0.009228982, -0.20965119, -0.23656605, 0.0805913, -0.18358104, 0.04514636, -0.09859629, -0.00032626695, -0.10969266, -0.171687, -0.085197695, 0.067852624) * go_5(0.0, 1.0); + result += mat4(0.0783408, 0.0022921865, -0.20093176, -0.094298504, -0.031999376, 0.03923688, 0.088507205, 0.1756585, 0.0325784, 0.09271384, 0.08411006, -0.011803396, 0.060698293, -0.0653917, -0.02558477, -0.02075619) * go_5(1.0, -1.0); + result += mat4(-0.10503856, -0.058553405, 0.38081455, 0.13121964, 0.5770783, -0.10269853, -0.4627, -0.4232826, 0.11166562, -0.058157276, -0.15944225, 0.048007622, 0.06506096, -0.0067857644, -0.03218101, 0.08807966) * go_5(1.0, 0.0); + result += mat4(0.032330092, -0.07843012, -0.037207145, 0.06599961, -0.28124368, 0.14263964, -0.0070453, 0.14530747, -0.05910883, 0.16203453, 0.064827256, -0.0043987543, -0.03808922, 0.102124214, 0.06162945, 0.103994325) * go_5(1.0, 1.0); + result += vec4(-0.003073506, -0.033630643, 0.028479056, -0.025402397); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.06761509, 0.0010596798, 0.118115634, 0.14935187, -0.05466623, 0.091785856, -0.03665047, 0.076207176, -0.15206745, -0.074811794, -0.041557387, 0.020541618, -0.037649132, -0.07627772, -0.10156735, -0.07498991) * g_0; + result += mat4(-0.0541389, 0.007155582, -0.06095953, -0.016313383, -0.13457695, -0.03827954, -0.034835886, 0.04974308, 0.008285558, -0.06611796, -0.067563675, -0.11533022, -0.08719109, 0.042913426, -0.083873115, 0.027492668) * g_1; + result += mat4(0.17322378, -0.07721062, 0.076297946, -0.1325289, 0.00692486, 0.019282155, 0.038707003, 0.056305885, -0.037604675, -0.17109787, 0.052209407, -0.11086336, 0.0052244705, 0.056766637, -0.017374612, 0.06740667) * g_2; + result += mat4(0.053550255, 0.07344529, -0.10690144, -0.08243465, 0.028142922, -0.07358604, 0.070248306, 0.0053416835, 0.009705257, 0.09426246, 0.05850371, 0.08341002, 0.06166079, 0.102394834, 0.058707405, 0.19911417) * g_3; + result += mat4(-0.009806288, 0.061949313, 0.011325549, 0.031676874, 0.113277406, 0.07123387, -0.0022331094, -0.05520811, -0.021068804, 0.0073448666, 0.031778157, 0.06381251, -0.022977686, -0.0044090333, -0.028826792, -0.005600321) * g_4; + result += mat4(-0.13628425, -0.107186474, 0.010461016, 0.045646533, 0.010563035, 0.0005640543, 0.002957052, -0.01454462, 0.106655054, 0.13992403, -0.01641908, 0.0264948, 0.014378123, 0.024764376, -0.06435794, -0.076860085) * g_5; + result += mat4(0.031931117, 0.062713124, -0.049225837, -0.02620178, 0.20593183, 0.03311921, -0.02824421, -0.19422682, -0.017965427, 0.05093508, -0.07729694, -0.013976707, -0.054889455, -0.008431357, -0.00865999, 0.05323866) * g_6; + result += mat4(-0.07898102, 0.13033123, -0.24963257, -0.046712235, -0.017762529, -0.07267942, 0.039491024, -0.034781307, 0.02270499, -0.12520099, -0.02714401, -0.13284011, 0.014340563, -0.007257448, -0.07413879, -0.12837824) * g_7; + result += mat4(0.09598721, -0.006008832, 0.051995635, -0.07847789, 0.109905876, 0.18126504, -0.086034976, -0.0360382, 0.19074084, 0.054656357, 0.06871617, -0.041497722, 0.064660124, -0.10478427, 0.052080367, -0.1518587) * g_8; + result += mat4(-0.044614766, -0.08404386, 0.06729217, 0.03758003, -0.23567544, -0.0450765, 0.014905518, 0.19749434, 0.0070031853, -0.068472505, 0.04280405, -0.009026482, 0.03368337, 0.037044305, 0.014582284, -0.015817456) * g_9; + result += mat4(0.05070276, -0.13125883, 0.24694905, 0.049511425, 0.021699967, 0.080548055, -0.03720478, 0.032441437, -0.01215519, 0.09360713, 0.024676912, 0.11170701, -0.024200387, 0.0021200276, 0.06300166, 0.10979445) * g_10; + result += mat4(-0.1055991, 0.007073368, -0.07666124, 0.06573558, -0.10762247, -0.16527167, 0.09825201, 0.051373113, -0.1926851, -0.046607103, -0.07601954, 0.05199459, -0.06756806, 0.092222616, -0.026166819, 0.1535803) * g_11; + result += mat4(0.0067429054, 0.014872415, -0.019792963, 0.0014269215, 0.041500363, 0.018643422, 0.04487991, 0.031431414, -0.0278133, -0.028131608, -0.019798402, -0.041768856, -0.0063227355, 0.007656633, 0.0019235855, 0.00076331315) * g_12; + result += mat4(0.025489544, 0.023983652, 0.029175067, 0.0075372118, -0.010194142, -0.014977182, 0.011589661, 0.00036903258, -0.012841702, -0.010945794, -0.012143497, -0.0069256728, 0.007313037, 0.007576904, -0.016960602, 0.009170305) * g_13; + result += mat4(0.004188971, 0.017998729, -0.0046976185, -0.0034182668, 0.021841675, 0.012860078, 0.009202975, -0.0071324864, -0.0037808695, 0.01139587, -0.016267903, 0.007991299, 0.008879691, 0.007677154, 0.016209174, 0.011406443) * g_14; + result += mat4(-0.008698401, -0.017972758, 0.026514322, -0.0024080887, 0.00012845756, 0.021530064, 0.0014967524, 0.0060274163, 0.017589558, 0.031043446, 0.014386793, 0.051733218, -0.013435874, -0.020567564, 0.011874828, 0.0030195254) * g_15; + result += mat4(0.008565417, 0.0073839244, -0.012248247, -0.019089373, -0.04383907, 0.01000193, -0.003246391, 0.0502051, 0.012343873, 0.027492827, -0.011591099, 0.010474208, -0.009317595, -0.009244615, -0.00889853, -0.015167559) * g_16; + result += mat4(-0.0149119655, -0.05737016, 0.027463723, 0.0013402153, 0.0012228708, 4.653676e-05, 5.3374144e-05, 0.010701133, 0.011828213, -0.012499855, -0.009720743, -0.035716657, -0.06976149, -0.05596556, 0.0028440042, 0.013388718) * g_17; + result += mat4(-0.010236228, 0.08551208, -0.060067203, 0.012999882, -0.0060008806, 0.003534564, 0.009385839, 0.010742909, 0.02672157, -0.17606625, 0.13504161, -0.035290483, -0.014812689, -0.0236554, 0.031493064, 0.01800991) * g_18; + result += mat4(0.0005283657, -0.032297328, 0.023884023, 0.024165852, 0.0017424148, -0.015371204, 0.0058860597, -0.04624227, 0.04947679, 0.09081732, -0.04592456, -0.03128466, 0.00023743653, -0.032846384, -0.0013158394, 0.0037953698) * g_19; + result += mat4(0.0034766623, -0.006661828, 0.027227342, 0.033958994, -0.007990619, 0.0025515554, -0.016197672, -0.0010064896, 0.022598108, 0.014734878, 0.021482255, -0.0059315437, -0.038538814, 0.03478085, -0.05926627, 0.012918195) * g_20; + result += mat4(-0.023291608, -0.013129155, 0.0032865414, 0.026531553, -0.004495095, 0.0043812403, -0.027177097, -0.009125319, -0.006041235, -0.0031154896, -0.030664662, 0.005782464, -0.008880747, 0.015690446, -0.0108247, -0.022403536) * g_21; + result += mat4(-0.07639219, 0.05440532, 0.016447276, -0.055569574, 0.0014948049, -0.03464865, -0.006925237, 0.024131197, 0.009468209, -0.011771851, 0.013548103, 0.004704814, 0.063868396, 0.04857746, 0.08745972, 0.0690927) * g_22; + result += mat4(0.021505289, -0.06289818, 0.031038022, -0.047952045, 0.014759762, 0.10819852, -0.044093642, -0.020913709, -0.017672667, 0.007322798, -0.0030338434, -0.015471056, 0.017840479, -0.052742675, 0.044256743, -0.014589662) * g_23; + result += mat4(0.037849434, 0.04017271, 0.01840757, -0.05590355, 0.041468013, -0.015397055, -0.059170194, 0.08708615, 0.021914955, -0.0045240326, 0.03308673, 0.0141805615, -0.045770008, 0.048188016, -0.08913234, 0.046581928) * g_24; + result += mat4(-0.09374169, 0.07681035, -0.032266654, 0.066911325, 0.0071584303, 0.06599442, -0.0031403983, -0.062489454, 0.013248783, 0.018261025, -0.00095267413, -0.026741864, -0.0059258267, 0.03542517, -0.033440042, -0.0007421821) * g_25; + result += mat4(0.06491965, 0.0354909, -0.035559855, -0.07943817, 0.028543673, 0.026842002, -0.0029009457, -0.0022229373, 0.045988, -0.08896797, -0.04740724, 0.002011393, -0.067833476, -0.048432026, 0.025755037, 0.042066928) * g_26; + result += mat4(-0.0011515832, -0.067060925, 0.02632549, 0.019017957, -0.0021755556, 0.004405696, 0.03028079, -0.043944478, -0.06373467, -0.032911435, -0.07619137, -0.055402283, -0.014293524, -0.009286333, 0.032950103, 0.0020192636) * g_27; + result += mat4(0.033251163, -0.012636667, -0.019736348, -0.02221555, -0.035174683, -0.0024467881, -0.0020635366, 0.021488743, 0.054788366, -0.085087426, 0.06572526, -0.037050918, -0.06467607, -0.1047945, 0.10937466, 0.058931317) * g_28; + result += mat4(-0.0015108787, 0.016789518, -0.02054971, 0.014368727, -0.083879344, -0.0024550394, 0.047329154, 0.018185811, -0.008528356, 0.04782707, 0.0019893225, 0.0095295245, -0.0024202724, -0.022640519, 0.0033455987, 0.010862984) * g_29; + result += vec4(-0.00339168, 0.022745693, -0.021186745, 0.007273877); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.016521078, 0.02344092, -0.04535869, -0.02916889, -0.06936641, -0.1118498, -0.07784149, -0.10769916, 0.042465053, 0.023522044, 0.0057797814, -0.00933453, 0.0013065349, 0.006887965, 0.019049056, 0.00018660461) * g_0; + result += mat4(0.047062866, 0.030671, 0.018363738, 0.015970303, 0.03619224, 0.0009964193, 0.027005734, -0.010791107, -0.027404316, -0.017589977, 0.0027660786, 0.0064380392, 0.003131181, -0.03881711, 0.017278498, -0.026646316) * g_1; + result += mat4(-0.09417044, -0.030767195, -0.07023792, -0.015087274, -0.0007041566, -0.007214834, -0.010352469, -0.0208777, -0.006043107, 0.041942447, -0.027989924, 0.02058792, -0.004574836, -0.030063841, 0.0009874715, -0.030957421) * g_2; + result += mat4(0.008398759, -0.014724292, 0.05661028, 0.03329433, 0.06970151, 0.09905173, 0.045296658, 0.06785315, -0.0044002533, -0.033776686, -0.018678186, -0.029671727, -0.019401457, -0.018823013, -0.015008842, -0.06645454) * g_3; + result += mat4(-0.012770869, -0.039806906, -0.020173356, -0.033546574, -0.01800492, 0.005292071, -0.0040793624, 0.028466543, -0.0059105135, -0.01909232, -0.008970177, -0.023610232, 0.015667727, 0.021344513, 0.008805983, 0.012206504) * g_4; + result += mat4(0.09997275, 0.08955608, 0.035512842, 0.028650196, -0.0030424239, -0.0024058563, 0.0016431157, 0.006236751, -0.036105607, -0.04603557, 0.009145427, -0.0048202197, -0.020911733, -0.02017906, 0.016494693, 0.026199821) * g_5; + result += mat4(-0.038404938, -0.060263526, -6.756075e-05, -0.027351642, -0.088377364, -0.018328555, 0.0054546758, 0.080624446, 0.011837796, -0.020218652, 0.018197412, 0.0060563446, 0.025623528, 0.048627276, 0.023259064, 0.040498782) * g_6; + result += mat4(0.001184946, -0.010515342, 0.07386562, 0.059235208, 0.05555331, 0.062187005, 0.05260689, 0.053744275, -0.05839836, -0.037090734, -0.039248314, -0.020784492, -0.028018624, -0.019818485, 0.0076861596, 0.02911364) * g_7; + result += mat4(-0.00855134, 0.026217, 0.008748317, 0.044626243, -0.031007087, -0.040997487, 0.05034173, 0.048289847, -0.055651344, -0.0043054484, -0.022927478, 0.035169583, -0.008501671, 0.04446119, 0.011305084, 0.07596592) * g_8; + result += mat4(0.02517117, 0.04711998, 0.013574831, 0.035244223, 0.075724855, -0.0018857572, -0.01328286, -0.08398966, -0.018110974, 0.010837328, -0.040522598, -0.018411685, -0.059188075, -0.04547794, -0.029902466, -0.016604925) * g_9; + result += mat4(-0.035855412, 0.046150643, -0.10446721, -0.026326178, -0.04509233, -0.059326984, -0.035487395, -0.047976315, 0.07541923, 0.014728924, 0.046932008, 0.015592031, 0.017363356, 0.009260565, -0.014755931, -0.04052638) * g_10; + result += mat4(0.021554522, -0.011627397, -0.01343262, -0.04844844, 0.027149484, 0.05269421, -0.038861327, -0.034239817, 0.045947555, 0.0040015248, 0.007324502, -0.033051178, 0.0059830896, -0.069709964, 0.0073222807, -0.07108966) * g_11; + result += mat4(-0.009433482, 0.014257062, -0.034876116, -0.006570796, 0.01594308, 0.006663722, 0.025571914, 0.017348047, -0.00696648, 0.0012649806, -0.009151321, -0.016255042, -0.009809473, -0.0066239014, 0.013773972, 0.0009501933) * g_12; + result += mat4(0.026438858, 0.021545267, 0.028909115, -0.00084199436, -0.011350823, -0.010261177, 0.0064784726, 0.0028340816, 4.6254245e-05, 0.0022755957, 0.008798779, 0.010278017, -0.0011969887, 0.0035411653, -0.018417642, 0.0038709878) * g_13; + result += mat4(0.013238081, 6.1892446e-05, 0.002711564, -0.009014244, 0.03579594, 0.0009713739, 0.018199503, -0.010510502, -0.0019577555, -0.0035989769, -0.027621416, -0.000649344, 0.012450313, 0.005054388, 0.028295556, 0.016118951) * g_14; + result += mat4(0.0014749946, -0.023122363, 0.03635473, 0.0058698757, -0.001502294, 0.0056668227, -0.00653508, -0.0045331884, 0.0019510906, -0.0004722523, 0.0015459604, 0.02002365, -0.012883676, -0.02313574, 0.0055781654, 0.00042050896) * g_15; + result += mat4(0.010353148, 0.0061610388, -0.01620723, -0.025678562, -0.050585296, 0.0015720357, 0.006579174, 0.04645622, 0.0034451822, 0.01640892, -0.019171385, -0.002445667, 0.002142384, -0.00157746, -0.007453497, -0.012107003) * g_16; + result += mat4(-0.023626367, -0.03362931, 0.02775251, 0.00854008, -0.00731221, 0.0058875666, -0.0042465483, 0.011091973, 0.01608576, 0.008776418, -0.005520655, -0.02189608, -0.07337467, -0.04255072, 0.008632718, 0.024232844) * g_17; + result += mat4(-0.012279061, 0.09683549, -0.058048066, 0.009577618, -0.007927522, 0.0030408904, 0.0026037316, 0.0097128665, 0.039862663, -0.18592681, 0.15766914, -0.02878756, -0.015735846, -0.025808172, 0.035324212, 0.025404148) * g_18; + result += mat4(0.006978013, -0.023965824, 0.04186123, 0.035988815, 0.009321329, -0.015712317, 0.0018002216, -0.052822754, 0.05654876, 0.111119345, -0.041984286, -0.029346094, -0.007712756, -0.034608763, -0.0036700158, 0.0038703915) * g_19; + result += mat4(0.010860362, 0.006824253, 0.03891404, 0.049122907, -0.008826647, -0.0010997625, -0.021827312, -0.007863293, 0.033063967, 0.022403365, 0.032778744, 0.007655028, -0.04496311, 0.041045222, -0.07040422, 0.004163393) * g_20; + result += mat4(-0.024705354, -0.015902927, 0.0062216455, 0.032576248, -0.0073882695, 0.00312872, -0.034358293, -0.0108961025, -0.013837597, -0.01177598, -0.04495569, -0.0055595962, -0.01059331, 0.012361757, -0.014834784, -0.033682585) * g_21; + result += mat4(-0.09480182, 0.03846278, -0.0028056598, -0.07323092, -0.005995085, -0.043553468, -0.005056617, 0.024003377, 0.004277762, -0.012972639, 0.012475677, 0.008617157, 0.10223809, 0.07649263, 0.12168736, 0.097682655) * g_22; + result += mat4(0.015393864, -0.07291429, 0.02954706, -0.05294187, 0.013404429, 0.120944545, -0.042298347, -0.01288604, -0.019713184, 0.0020540208, -0.011201426, -0.02414191, 0.007575817, -0.07666445, 0.0432983, -0.026015261) * g_23; + result += mat4(0.03819905, 0.04372597, 0.01904637, -0.061578088, 0.040888324, -0.016588384, -0.064523876, 0.09287848, 0.01574791, -0.014614555, 0.02938285, 0.0042374404, -0.046039872, 0.056844704, -0.08844019, 0.052806962) * g_24; + result += mat4(-0.096315265, 0.07987954, -0.031859763, 0.072237074, 0.015652604, 0.07566605, -0.00032600394, -0.05746408, 0.014229001, 0.017113304, -0.0023968874, -0.03106284, -0.0069599864, 0.03968875, -0.038528994, -0.003121002) * g_25; + result += mat4(0.07314791, 0.03615158, -0.03678017, -0.0791755, 0.03634212, 0.039138626, 0.0035000257, 0.00436604, 0.044376615, -0.09974018, -0.051570408, -0.002901859, -0.06796205, -0.05585607, 0.02609314, 0.04431718) * g_26; + result += mat4(0.0026970597, -0.07160132, 0.03102004, 0.022031954, 0.000259048, 0.004125086, 0.033309445, -0.04846637, -0.06566389, -0.029620873, -0.07882971, -0.053104673, -0.013712152, -0.015054757, 0.033180926, 0.00034900242) * g_27; + result += mat4(0.034628514, -0.01001147, -0.021473913, -0.022840675, -0.045706123, -0.010280426, -0.0069577876, 0.01667532, 0.055181097, -0.087735586, 0.06744914, -0.034818206, -0.066513196, -0.10804274, 0.11681918, 0.06460058) * g_28; + result += mat4(-0.005054911, 0.01865763, -0.021856284, 0.010207481, -0.090607546, -0.014940299, 0.04399175, 0.013478195, -0.0072319377, 0.057889264, 0.0061306353, 0.021376813, -0.00018109869, -0.022432365, 0.004136804, 0.011778294) * g_29; + result += vec4(0.015986905, 0.006547183, 0.017682848, 0.0020978956); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.17312507, 0.18378204, 0.07926516, 0.1067288, 0.21052518, 0.13378853, 0.19536258, 0.14002354, 0.11711924, 0.08335183, 0.056983225, 0.028226014, 0.03449669, 0.044664416, 0.06761993, 0.044069722) * g_0; + result += mat4(0.049151406, 0.027747469, 0.013829845, 0.010793505, 0.16125697, 0.10510845, 0.13865222, 0.08505211, -0.20990449, -0.19430009, -0.15810025, -0.15454805, -0.035844944, -0.11059333, -0.018675208, -0.09188628) * g_1; + result += mat4(0.006685408, 0.11628241, 0.039672334, 0.1436817, 0.015559294, 0.009202889, 0.004621052, -0.006609141, 0.007991005, 0.08041883, -0.014427849, 0.057766948, -0.067192554, -0.10489045, -0.058118373, -0.10879217) * g_2; + result += mat4(-0.13102308, -0.16938946, -0.049558997, -0.08738032, -0.15949999, -0.098247744, -0.21387893, -0.16764748, -0.036459852, -0.08977845, -0.063770026, -0.085683785, -0.04874994, -0.050357077, -0.040709995, -0.12104794) * g_3; + result += mat4(-0.0016424131, -0.04231474, -0.008843509, -0.026220948, -0.13888876, -0.10844901, -0.10787409, -0.067019746, 0.1705322, 0.16687205, 0.16005264, 0.15010779, 0.084698394, 0.092028156, 0.07699169, 0.079460666) * g_4; + result += mat4(0.0075197075, -0.020141402, -0.1006905, -0.11359611, -0.0085215755, -0.005612361, -0.0018493677, 0.007426326, -0.06751104, -0.08159549, 0.0120629985, -0.012342098, 0.03995728, 0.036384724, 0.09553051, 0.09851564) * g_5; + result += mat4(-0.029465627, -0.054333087, 0.02729686, -0.0045043076, -0.13339953, -0.032064863, 0.0070489575, 0.1158326, -0.0006455828, -0.05559491, 0.016300855, -0.016093824, 0.0035336027, 0.025718046, -0.002194457, 0.009156581) * g_6; + result += mat4(-0.03060067, -0.088183194, 0.08511207, 0.023555957, 0.030279126, 0.037585177, 0.016086163, 0.017970216, -0.05365472, 0.008709411, -0.022766082, 0.026308894, -0.026761275, -0.012835554, 0.02677239, 0.06120358) * g_7; + result += mat4(-0.030154163, 0.016827311, -0.0070917453, 0.049568735, -0.06463202, -0.095433265, 0.059520688, 0.039794426, -0.11667492, -0.040507805, -0.05257038, 0.025766404, -0.04885214, 0.042495333, -0.022887079, 0.08385772) * g_8; + result += mat4(0.024346549, 0.054313555, -0.005122175, 0.019812366, 0.13365328, 0.014708698, -0.010476813, -0.1185288, 0.0023148789, 0.052297566, -0.03189476, 0.005272433, -0.03835005, -0.026765257, -0.0094220815, 0.0047409064) * g_9; + result += mat4(-0.007440264, 0.12066173, -0.12320844, 0.0016777752, -0.011408617, -0.029569637, 0.008827655, -0.007016294, 0.06650651, -0.031428255, 0.034667335, -0.023670185, 0.007218744, -0.004491109, -0.035605032, -0.07145819) * g_10; + result += mat4(0.049787126, -0.0017957676, -0.006283968, -0.058967303, 0.05774073, 0.09960317, -0.059987612, -0.036502153, 0.07282059, 0.005348924, 0.013446346, -0.04757274, 0.045422055, -0.0634229, 0.024715338, -0.08555914) * g_11; + result += mat4(-0.005835691, 0.016965812, -0.028456861, -0.0033920892, 0.009836867, 0.0006767609, 0.01886044, 0.012588657, -0.00884555, -0.0037418597, -0.009430517, -0.019091168, -0.002798804, 0.0039561144, 0.017126411, 0.004825749) * g_12; + result += mat4(0.028191822, 0.029202491, 0.032901034, 0.011502915, -0.010819439, -0.0069572316, 0.006472295, 0.0053685335, 0.00079939753, 0.0037769184, 0.011775226, 0.01399779, 0.0033956952, 0.0052899374, -0.010259701, 0.0077763535) * g_13; + result += mat4(0.008361512, -0.0117131, -0.0049652294, -0.01998969, 0.022627737, -0.008692346, 0.0019018264, -0.023467707, -0.008756792, -0.017017934, -0.031440705, -0.008512948, 0.0054877545, -0.00070786494, 0.019616788, 0.00793716) * g_14; + result += mat4(-0.013002159, -0.03813209, 0.026482832, -0.00023578315, -0.004977621, 0.0014138863, -0.0057627726, -0.0042974507, -0.007416917, -0.008726386, -0.011688116, 0.010687058, -0.011166254, -0.020983206, 0.0066195372, 0.003834876) * g_15; + result += mat4(0.0048169903, 0.0076203775, -0.015507004, -0.023508213, -0.052957263, -0.0069484734, -0.0011737008, 0.03410549, 0.0030833874, 0.012800496, -0.019242208, -0.005873537, -0.005420416, -0.009030759, -0.01785444, -0.01966881) * g_16; + result += mat4(-0.012387838, -0.014545728, 0.035943765, 0.024116462, 0.0008325086, 0.017050253, 0.0024911535, 0.019210132, 0.02221826, 0.020303903, 0.004521489, -0.009177796, -0.07020659, -0.040271588, 0.013064882, 0.028324096) * g_17; + result += mat4(-0.0069806273, 0.09828906, -0.049242873, 0.014799003, -0.008970328, 0.003844374, 0.0010211956, 0.008877965, 0.039977968, -0.17025097, 0.14956547, -0.02214056, -0.00973778, -0.018551195, 0.034893923, 0.027594449) * g_18; + result += mat4(0.011814281, -0.015895301, 0.04550156, 0.04049697, 0.0076704635, -0.018837227, 0.005477875, -0.04887477, 0.05526271, 0.11000575, -0.03529281, -0.023258513, -0.0022530397, -0.026560089, -0.0021712275, 0.0056000547) * g_19; + result += mat4(0.013357528, 0.014710138, 0.043349367, 0.053752452, -0.010020186, -0.0048438436, -0.023880936, -0.011357083, 0.033450976, 0.022771686, 0.0326334, 0.0068722614, -0.0512848, 0.026570365, -0.07270785, -0.006190101) * g_20; + result += mat4(-0.025186045, -0.01740991, 0.003838567, 0.027091907, -0.0071685803, -0.00027341367, -0.02992052, -0.008542527, -0.013445479, -0.015780428, -0.042524435, -0.00881602, -0.011120149, 0.009015556, -0.013422532, -0.032560103) * g_21; + result += mat4(-0.09606898, 0.025490688, -0.008527585, -0.075416856, -0.0028138838, -0.035580438, -0.006531162, 0.023687562, 0.0055310167, -0.010112962, 0.014539237, 0.01172912, 0.09965159, 0.075306684, 0.11886721, 0.095253) * g_22; + result += mat4(0.011965668, -0.072057776, 0.024608271, -0.054251578, 0.012394993, 0.114785306, -0.0419942, -0.011279603, -0.021266261, -0.0042840955, -0.015289745, -0.029362924, 0.0103631085, -0.06942332, 0.042722963, -0.021691492) * g_23; + result += mat4(0.033176757, 0.04084371, 0.015103838, -0.057419725, 0.037109293, -0.016537853, -0.059167393, 0.08598897, 0.015969522, -0.010902342, 0.03118472, 0.008363948, -0.041729625, 0.057053857, -0.08161458, 0.052837733) * g_24; + result += mat4(-0.092430755, 0.07110693, -0.034382034, 0.062702626, 0.014907711, 0.07141848, -0.0019698131, -0.054372307, 0.0128283445, 0.013943152, -0.0034115645, -0.030608373, -0.005405216, 0.03866557, -0.034109335, -0.0013265307) * g_25; + result += mat4(0.06594738, 0.029660825, -0.037681, -0.07724883, 0.03563272, 0.041913237, 0.0042468007, 0.0069140824, 0.039035708, -0.09520566, -0.04894546, -0.0034723799, -0.06357319, -0.052821137, 0.022598358, 0.041650392) * g_26; + result += mat4(0.004992455, -0.06508938, 0.030750059, 0.022826253, 0.002092941, 0.0037119875, 0.030300831, -0.0454966, -0.05877186, -0.024108075, -0.07177208, -0.047089674, -0.014241358, -0.015470063, 0.029174741, -0.0012050892) * g_27; + result += mat4(0.033182934, -0.0073093693, -0.017909355, -0.018535342, -0.0415075, -0.010425076, -0.0039859596, 0.015540642, 0.05229552, -0.08504954, 0.06377993, -0.035305116, -0.06266023, -0.102613874, 0.10803333, 0.06006112) * g_28; + result += mat4(-0.0026692066, 0.020269373, -0.018895708, 0.010902005, -0.084507205, -0.018323625, 0.03897616, 0.008709061, -0.005905961, 0.05540135, 0.0050392286, 0.019433267, -0.0011370446, -0.02185742, 0.004525434, 0.010520601) * g_29; + result += vec4(0.00428531, -0.011541925, 0.00898425, -0.01374321); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl b/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl new file mode 100644 index 0000000..ac122b9 --- /dev/null +++ b/shaders/Anime4K_Upscale_Denoise_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-Denoise-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.28296316, -0.020139743, 0.1038232, 0.09352482, -0.16964972, 0.07910997, -0.049914766, -0.10661066, -0.121037185, -0.029087039, -0.02511847, -0.078911744, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(-0.3927183, 0.01805193, -0.031168332, -0.13300525, 0.20814548, 0.118818566, 0.1655351, 0.095023684, 0.17600809, -0.03928444, -0.014350658, 0.08458312, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.079089314, -0.0421829, 0.05452305, -0.22055493, 0.013279097, -0.12875281, 0.02452735, -0.101503745, -0.085946664, 0.05539176, 0.022408713, 0.14837204, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(-0.102643915, -0.011254746, 0.1478563, 0.1030208, 0.12396588, 0.0016621432, 0.2551224, -0.10399001, -0.01068436, 0.07155532, -0.104522154, 0.026937222, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.8789423, 0.35707328, -0.29964274, -0.064913996, 0.4962815, 0.26001287, -0.9511284, 0.49574667, 0.39539725, 0.16308042, 0.119878456, -0.30259115, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.08852938, -0.32612664, -0.006712046, 0.28693515, 0.06320871, -0.3322611, 0.04651086, -0.11020996, 0.01821082, -0.22851005, -0.07803438, 0.021527015, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(0.12295851, -0.011285535, 0.015859747, 0.04005441, -0.018136669, 0.03171969, -0.0406123, -0.10731229, -0.12117574, 0.005033036, 0.047838476, 0.026843475, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(0.4655988, 0.05519082, 0.039515793, 0.28410903, -0.36144528, 0.13039446, 0.11338478, -0.2141387, -0.10026682, -0.07903024, -0.09410254, 0.043833878, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(0.110124744, -0.024725702, 0.028102143, -0.09493807, -0.06455328, -0.15164614, 0.04425987, 0.15483347, -0.045039337, 0.07210396, -0.005390788, -0.03832707, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.007907974, -0.035503313, 0.057224784, -0.19763541); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.012326053, 0.050769784, 0.1278702, -0.100782245, 0.14329414, -0.054558773, 0.023473471, 0.056829426, 0.048292916, 0.0046510273, -0.11478287, 0.0011030561, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0); + result += mat4(0.29542983, -0.55061895, -0.068554066, 0.1433222, -0.072878316, 0.30201668, -0.2223378, -0.06704077, 0.16955832, 0.3279914, 0.17619601, -0.1276919, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0); + result += mat4(0.09623417, 0.30559412, 0.094622105, -0.076706685, 0.07943858, -0.084815115, 0.12472551, 0.079850115, -0.13044213, -0.21300878, -0.095747225, 0.13412355, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0); + result += mat4(0.21291664, 0.17195296, -0.20080926, 0.1064855, 0.10228669, -0.09580175, -0.11217631, -0.09740562, -0.0033135475, -0.053094357, 0.2983595, 0.035281878, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0); + result += mat4(-0.08955812, -0.45707774, -0.4606922, -0.5754473, -0.11395895, 0.33530128, 0.29705846, -0.18877256, -0.43502945, 0.114171304, -0.3750776, -0.081597246, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0); + result += mat4(-0.26109028, 0.02662961, -0.10441071, 0.11199392, -0.12038989, -0.09642296, -0.061320662, -0.33058178, 0.20212512, 0.00840794, 0.14357455, -0.038080238, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0); + result += mat4(-0.09533881, -0.13644339, 0.068756215, 0.079305276, -0.053370547, 0.19572955, 0.0682981, 0.14469264, 0.15582883, -0.057183057, -0.13919263, -0.016394936, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0); + result += mat4(-0.041189935, 0.39878023, 0.028704925, 0.30194348, -0.04486593, -0.33899093, -0.103968106, 0.21802065, -0.077099144, -0.07389541, 0.18069103, 0.18894517, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0); + result += mat4(-0.12399862, 0.19246885, 0.034825478, -0.0044787163, 0.13121822, -0.13573012, -0.030162754, 0.1899518, 0.102326415, -0.061512686, -0.005647928, -0.0937634, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0); + result += vec4(0.019286277, -0.033644073, 0.08196311, 0.0054393094); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.04088509, -0.06585775, -0.3094732, 0.12059048, 0.041417453, -0.06144871, -0.06655134, 0.03308842, 0.09287731, 0.010969216, 0.10343026, -0.11185897, 0.05685865, -0.09490512, 0.040908635, 0.03501189) * go_0(-1.0, -1.0); + result += mat4(-0.04854754, -0.098667145, 0.67147833, -0.11299351, -0.022114437, -0.029202767, 0.014179382, 0.26027945, 0.22076549, -0.16490546, -0.0010764733, 0.08405975, 0.11849154, -0.19072372, -0.35719597, -0.059621073) * go_0(-1.0, 0.0); + result += mat4(0.079224996, 0.0669873, -0.1718969, -0.05002573, 0.044926763, -0.02904369, 0.017489236, 0.01144465, 0.059109706, 0.064998455, 0.14725484, -0.23879208, 0.039234288, -0.027365638, 0.26172164, -0.094598554) * go_0(-1.0, 1.0); + result += mat4(-0.07159218, -0.03181544, 0.113837324, -0.053089984, -0.098298974, -0.29500297, 0.1608509, -0.044355504, 0.050882854, -0.19417204, -0.080487266, -0.00879743, 0.0007914453, 0.16640955, 0.21786706, 0.16398212) * go_0(0.0, -1.0); + result += mat4(0.16324541, 0.19753313, -0.46597233, -0.2593132, -0.2781038, -0.21973547, -0.024623038, -0.16348499, 0.3628299, 0.044888914, 0.04054647, -0.63605887, 0.02099492, 0.060544077, -0.49359834, 0.36336297) * go_0(0.0, 0.0); + result += mat4(-0.16885692, 0.31907207, 0.020906802, 0.13290039, -0.037330728, -0.022859452, -0.020451576, -0.113437995, -0.085683934, 0.054102756, -0.044824492, 0.061346747, -0.038684413, 0.098444365, -0.06734984, -0.17084897) * go_0(0.0, 1.0); + result += mat4(-0.015821548, -0.119599186, 0.1614827, 0.08383641, -0.07933593, 0.12528986, -0.06300182, 0.09286327, -0.10199266, 0.02419403, 0.0028411683, -0.09028338, 0.07962534, -0.08676035, -0.19237737, -0.115502626) * go_0(1.0, -1.0); + result += mat4(0.09471972, 0.21153462, -0.14393018, 0.055180002, 0.1817461, 0.016607309, -0.0771979, 0.11181317, -0.5491086, -0.102757886, -0.20952754, 0.022466583, -0.075119644, -0.14725658, 0.38451517, 0.12920731) * go_0(1.0, 0.0); + result += mat4(0.0867803, 0.114654355, 0.21199988, -0.15367955, -0.01803536, 0.056378633, 0.0018388306, 0.024613786, -0.13306658, 0.017211098, 0.073351346, -0.12064064, -0.10484361, -0.067748636, 0.033206712, -0.13061953) * go_0(1.0, 1.0); + result += mat4(-0.002236411, -0.022144757, -0.04586377, 0.101181075, -0.03511624, 0.08440529, 0.18544284, -0.22786349, -0.042184375, 0.015734851, -0.038622506, 0.038529944, -0.09170703, 0.034527462, -0.07817406, 0.10547265) * go_1(-1.0, -1.0); + result += mat4(-0.12135524, -0.07412039, -0.04979351, -0.082267545, 0.13343571, 0.29196215, -0.4364121, -0.10226428, 0.060835477, -0.23307934, -0.018231759, 0.15550235, 0.09095689, 0.18164484, 0.1322021, -0.022567045) * go_1(-1.0, 0.0); + result += mat4(-0.0054531163, -0.039762255, -0.030490747, 0.04779882, -0.15290286, 0.056712102, -0.0776974, 0.04114215, 0.15946816, -0.03882117, 0.16770308, -0.026126247, -0.027203865, -0.064107865, -0.13670811, 0.1556276) * go_1(-1.0, 1.0); + result += mat4(-0.092548385, -0.027285473, 0.084179096, 0.014961629, 0.2564254, 0.07626849, 0.28534448, 0.2588713, -0.018600503, -0.2433456, 0.041392803, -0.045712482, 0.26388907, -0.053502295, 0.14522223, 0.032808404) * go_1(0.0, -1.0); + result += mat4(-0.0013780193, 0.3482449, 0.071003586, -0.30707207, -0.05122194, -0.2833618, 0.07910779, 0.051078696, 0.021535402, 0.13021478, 0.022049015, -0.533547, 0.57265025, -0.12843914, -0.14913581, -0.1433724) * go_1(0.0, 0.0); + result += mat4(0.07382619, -0.12152924, 0.13364957, 0.181974, 0.15804219, -0.10126773, 0.3029618, -0.12874149, 0.13743348, -0.23245592, -0.20119278, 0.029547188, 0.042436857, 0.04213892, -0.07975374, 0.023821082) * go_1(0.0, 1.0); + result += mat4(0.022782229, -0.08359311, -0.060623147, 0.06565042, 0.09828792, 0.044808697, -0.28872305, -0.00092168007, 0.021737702, -0.08698349, 0.1950025, 0.07931995, 0.040952396, -0.07443172, -0.021157127, 0.0056698937) * go_1(1.0, -1.0); + result += mat4(-0.09995892, -0.2047294, 0.1414849, 0.062335726, -0.22492298, 0.05269799, -0.029233055, -0.050517935, -0.12534393, -0.12194023, -0.07035469, -0.070764475, 0.18903446, 0.07691209, 0.06153371, 0.011280912) * go_1(1.0, 0.0); + result += mat4(-0.036189888, -0.07586571, -0.05888163, 0.010425367, -0.028375402, -0.18870986, -0.19146784, 0.19274063, -0.18856238, 0.0064240266, -0.14537223, -0.06971656, 0.0852742, -0.04866623, -0.031686075, 0.031702038) * go_1(1.0, 1.0); + result += mat4(0.0618941, 0.100858234, 0.2628019, -0.048507668, -0.051001363, -0.03195978, 0.035452217, -0.001991919, -0.09649028, -0.047445696, -0.09221298, 0.07602656, -0.02382384, -0.119645916, 0.085616075, -0.07076033) * go_2(-1.0, -1.0); + result += mat4(0.019222878, -0.0491929, -0.4902266, 0.18501294, 0.014529614, -0.077125326, 0.011563931, -0.20236616, -0.101982154, -0.021150962, -0.07537948, -0.1540349, 0.028949164, -0.06827332, 0.0067634755, 0.09582376) * go_2(-1.0, 0.0); + result += mat4(-0.05995539, -0.031138182, 0.01334257, 0.06827176, -0.030762246, 0.006615233, -0.03562788, 0.016249394, -0.14797118, 0.014671043, -0.09325859, 0.25653747, -0.11474991, 0.05436232, 0.031051394, 0.04179694) * go_2(-1.0, 1.0); + result += mat4(0.032279838, -0.030521005, 0.0029688699, 0.005165139, 0.15907808, -0.20421815, -0.07713175, 0.067530625, -0.08619395, 0.026114263, 0.08821273, 0.011591694, 0.018677557, 0.057708874, -0.25859246, -0.18693781) * go_2(0.0, -1.0); + result += mat4(0.10823143, -0.31875235, -0.24394153, -0.0025489891, 0.016761065, -0.19857498, -0.07858479, -0.07811158, -0.38551694, -0.049090322, -0.050053325, 0.23398961, 0.014974165, 0.17498055, 0.29105362, -0.353647) * go_2(0.0, 0.0); + result += mat4(0.05621677, -0.19492444, 0.460332, 0.055917628, -0.06404381, -0.06684098, 0.053624872, 0.057300456, -0.019248677, -0.15110065, 0.032379635, -0.12673225, 0.0068658157, -0.13001235, -0.017716292, 0.064182095) * go_2(0.0, 1.0); + result += mat4(-0.06764552, 0.004707433, -0.13827331, -0.21957871, -0.03789028, -0.04962028, 0.022955444, -0.058468018, 0.13735814, -0.031270552, -0.018490225, 0.0063876202, -0.052979283, -0.030049473, -0.004811771, -0.0044099926) * go_2(1.0, -1.0); + result += mat4(-0.028652798, -0.027029367, 0.62600744, 0.0900562, 0.03869923, -0.20111556, 0.095930666, -0.13164565, 0.5562579, 0.011937122, 0.22882107, 0.030288015, 0.09856272, 0.04736032, -0.077492185, -0.10207275) * go_2(1.0, 0.0); + result += mat4(-0.10581002, -0.16504957, -0.5688921, 0.0414545, 0.04749444, -0.052849945, -0.011017121, -0.025284614, 0.14316759, -0.08547362, -0.09654446, 0.08682504, 0.050776027, 0.0678741, -0.04913651, 0.07527552) * go_2(1.0, 1.0); + result += mat4(0.04126091, 0.0048704315, 0.041699376, -0.05820725, -0.09664279, 0.07648305, -0.17979898, 0.11698985, -0.025436765, 0.023232851, 0.010656572, 0.08157569, 0.19584864, -0.022928072, 0.053339157, 0.0039929505) * go_3(-1.0, -1.0); + result += mat4(0.040733483, 0.12260473, 0.08071146, 0.07257762, -0.016945919, -0.31637576, -0.24281953, -0.0038469466, -0.10203634, 0.13631973, 0.06505259, -0.13119389, -0.09723076, -0.139551, -0.07504509, 0.08645985) * go_3(-1.0, 0.0); + result += mat4(0.017005404, 0.049066268, -0.007544932, -0.04884536, 0.09984347, -0.04447364, 0.4902235, -0.062780835, -0.18389583, 0.07305648, -0.22014385, 0.08004685, 0.0992568, -0.08569604, 0.093966395, -0.07047139) * go_3(-1.0, 1.0); + result += mat4(0.0017705248, 0.020553982, -0.09167042, 0.0036356782, -0.11867446, -0.07055574, 0.40252638, 0.09657129, 0.0888632, 0.1031708, -0.022127641, -0.023769693, -0.0861388, 0.13420185, -0.11774454, 0.038774434) * go_3(0.0, -1.0); + result += mat4(-0.15173717, -0.13590458, -0.0891863, 0.12289548, 0.13942605, 0.22152588, -0.19292432, 0.14169839, 0.010543665, 0.07648361, -0.057333756, 0.09535759, -0.053601623, -0.026824495, 0.09365424, 0.17476946) * go_3(0.0, 0.0); + result += mat4(-0.070416056, -0.061970036, -0.039723337, -0.18874651, -0.07098426, -0.019835865, -0.5612458, 0.060437083, -0.03774378, 0.18536821, 0.28587544, 0.035555754, 0.15771326, -0.13527197, 0.13342534, -0.06564073) * go_3(0.0, 1.0); + result += mat4(-0.10967661, 0.025388904, 0.09003177, -0.04087592, 0.09531671, -0.11809294, -0.41613623, 0.038198076, 0.01019813, -0.018864965, -0.18400626, -0.038704176, 0.0105671035, 0.024449013, -0.008989595, -0.027171193) * go_3(1.0, -1.0); + result += mat4(0.16193569, -0.21445285, -0.20130903, -0.13498883, -0.008031679, 0.050757203, 0.78938776, -0.03749514, 0.11998137, 0.19368882, 0.12328945, 0.0058578993, -0.13852382, -0.033867255, -0.018267661, 0.036348555) * go_3(1.0, 0.0); + result += mat4(-0.06254118, 0.087295115, 0.031116437, 0.0416281, 0.061828617, 0.34479564, -0.15537797, -0.17144552, 0.13989387, -0.13792284, 0.056215156, 0.12714528, -0.0198865, 0.04927947, 0.013614583, -0.041810013) * go_3(1.0, 1.0); + result += vec4(-0.044073943, 0.12072677, -0.0022342638, -0.24414532); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.07115729, 0.01065505, 0.19167988, -0.02504489, -0.15064801, 0.079008736, 0.05437936, 0.027479589, -0.021383656, 0.032731537, -0.06657876, 0.022649521, -0.06501893, -0.02335689, 0.010445489, -0.05430297) * go_0(-1.0, -1.0); + result += mat4(-0.1178601, 0.07425715, 0.063272275, -0.18308601, -0.13955134, 0.005166404, -0.022591779, -0.016827974, -0.024990188, -0.13372071, -0.056342285, 0.12489847, 0.081861794, -0.07083351, 0.021897513, 0.0629395) * go_0(-1.0, 0.0); + result += mat4(0.051357627, -0.13874975, -0.09887168, -0.011908862, 0.03639772, -0.13195883, -0.05321156, 0.03913229, -0.08160194, -0.07128151, 0.043625016, 0.11966009, 0.03162217, 0.018834392, -0.0625129, 0.10726711) * go_0(-1.0, 1.0); + result += mat4(-0.15922394, -0.043482754, -0.22571066, 0.009280428, -0.3882705, 0.08418719, 0.15329506, -0.028419001, -0.011272379, 0.15897545, 0.041217074, -0.0143014155, 0.09451862, -0.056342427, -0.14568482, 0.05556279) * go_0(0.0, -1.0); + result += mat4(0.13879324, -0.23339099, -0.24573983, -0.09575104, 0.03823306, 0.4752516, -0.1696623, -0.18472373, -0.1510259, 0.23040254, 0.4196143, 0.3462817, 0.035172507, 0.18228662, 0.22475636, -0.19945027) * go_0(0.0, 0.0); + result += mat4(-0.08876766, 0.19567333, 0.25174314, -0.09637879, -0.007957943, 0.13510521, 0.030193076, -0.0018362573, -0.006884444, -0.41804117, -0.1026309, -0.053339038, -0.1283198, -0.03033918, 0.055674326, 0.094377995) * go_0(0.0, 1.0); + result += mat4(0.06780768, -0.07774435, -0.0616546, -0.046531744, -0.11723141, 0.10792474, 0.013314576, -0.031451598, -0.009870351, 0.10215877, -0.13101454, -0.19878799, -0.09712651, 0.10423937, 0.14170039, -0.03359521) * go_0(1.0, -1.0); + result += mat4(-0.020114673, -0.015194169, 0.03657608, 0.17162928, 0.070458665, -0.08041664, 0.14067306, 0.19699603, -0.28763783, -0.033556152, -0.6588468, -0.48221052, -0.123711474, -0.080758795, -0.3187303, 0.121004865) * go_0(1.0, 0.0); + result += mat4(-0.074900605, 0.09297913, -0.08621144, 0.116730206, -0.034766622, -0.10381484, 0.060793545, -0.014790814, -0.123858415, -0.0010626495, 0.20547503, -0.07206306, -0.17324795, 0.023932874, 0.017495958, -0.09924652) * go_0(1.0, 1.0); + result += mat4(-0.015568068, 0.005394868, 0.15463537, 0.06416607, -0.045670815, -0.013540727, -0.12960619, 0.0006581649, 0.09432853, 0.05575682, -0.022219105, 0.022416297, 0.0148129435, -0.067619696, 0.022989385, -0.09695771) * go_1(-1.0, -1.0); + result += mat4(-0.107209, 0.07072438, -0.10235772, -0.12078849, -0.02751833, -0.043195058, -0.17197154, 0.120612316, -0.17310137, -0.09429793, 0.06511165, 0.18072544, -0.21168593, 0.16383737, 0.25012484, -0.089589044) * go_1(-1.0, 0.0); + result += mat4(0.005439779, 0.0028433986, -0.09885586, -0.06572956, -0.0061691296, 0.15485546, -0.23724958, 0.004232802, 0.07794742, -0.012552598, 0.07554404, 0.10843201, -0.013223918, -0.08705092, -0.23228747, 0.03599732) * go_1(-1.0, 1.0); + result += mat4(-0.043396916, -0.10680695, -0.019935586, -0.06703658, -0.30075943, -0.010179525, 0.30197874, 0.04888297, 0.00779067, 0.22583807, 0.2039884, -0.0074303118, -0.19240093, -0.024718538, 0.057117213, 0.19431825) * go_1(0.0, -1.0); + result += mat4(-0.37633005, 0.043971814, -0.21423087, 0.118503235, -0.15058799, 0.115756795, -0.13719647, 0.020510519, 0.1123193, 0.14797291, 0.05467349, 0.2039607, -0.31973588, 0.1667847, -0.017739004, -0.11280262) * go_1(0.0, 0.0); + result += mat4(-0.0084394775, -0.1281101, -0.20841378, 0.01986435, -0.04122467, -0.21089631, -0.08062371, 0.11315133, 0.05693114, -0.23773515, 0.03792205, -0.008872407, 0.04554895, -0.10683658, 0.10683206, 0.06875721) * go_1(0.0, 1.0); + result += mat4(-0.103948504, -0.007483217, -0.12571928, 0.054868475, -0.030646881, -0.010098222, 0.019018777, -0.07072212, -0.10689893, 0.16498323, 0.048089568, -0.10912806, -0.027318537, -0.025491163, 0.012588013, 0.072701246) * go_1(1.0, -1.0); + result += mat4(0.14094622, -0.028118243, 0.016804086, -0.18000692, 0.33351874, 0.14980756, -0.07135749, -0.16573106, -0.17243773, 0.054617904, -0.2933543, -0.12602285, 0.08480712, -0.05704333, 0.22336398, 0.026583148) * go_1(1.0, 0.0); + result += mat4(0.046759557, -0.03100408, 0.40000245, -0.08521555, 0.19592628, -0.15150753, 0.25288078, -0.061794683, -0.047818147, -0.12249124, 0.020410215, -0.11503924, 0.046108168, 0.030459814, -0.14096366, 0.09120256) * go_1(1.0, 1.0); + result += mat4(-0.087491795, -0.024289595, -0.09060237, 0.020922959, 0.09557061, -0.08556962, -0.0503455, -0.010846053, 0.0030694185, -0.008256591, 0.08290225, -0.034981687, 0.07342003, -0.021816112, -0.13905519, -0.06265962) * go_2(-1.0, -1.0); + result += mat4(-0.08126147, -0.05866924, -0.015698025, 0.093630895, -0.02379264, 0.115918085, 0.19431724, 0.041815966, -0.051647816, 0.15277039, -0.03721037, -0.085520886, 0.041766718, 0.104392216, 0.0559556, 0.0049254233) * go_2(-1.0, 0.0); + result += mat4(-0.11176419, 0.112272635, 0.1367475, -0.010482275, -0.06719008, 0.064003386, -0.08132314, 0.015465676, 0.052741583, 0.06779717, 0.038533892, -0.16428822, 0.040990274, 0.002559234, 0.097567044, -0.058192518) * go_2(-1.0, 1.0); + result += mat4(0.17228632, 0.008296625, 0.009418271, 0.037103783, -0.0601486, 0.04531715, 0.19613501, 0.112170085, -0.02256726, -0.093685195, -0.1341531, -0.038480807, 0.109840475, 0.062418167, 0.15140085, 0.050787117) * go_2(0.0, -1.0); + result += mat4(0.15433665, 0.2104034, 0.12395812, 0.13799714, 0.14945604, 0.67457545, 0.27575177, -0.047493283, 0.24992993, -0.5305435, 0.0131732905, -0.36911693, 0.14442082, -0.18583177, -0.2861722, 0.19419897) * go_2(0.0, 0.0); + result += mat4(0.040242445, -0.13234852, 0.10056324, 0.055854917, 0.07447713, -0.023067042, 0.00021051937, -0.0495407, -0.22037992, 0.68047297, 0.05774606, -0.012461005, 0.104557075, 0.04832623, 0.010292581, -0.050617047) * go_2(0.0, 1.0); + result += mat4(-0.060079176, 0.086553656, 0.0060872175, -0.012576339, 0.025149338, -0.07379716, -0.18048704, -0.007130346, 0.007826557, -0.095655076, -0.0032888134, 0.21027069, -0.09868755, -0.1180311, 0.0081250835, -0.05078016) * go_2(1.0, -1.0); + result += mat4(0.19124818, -0.05949092, -0.36762074, -0.08203597, -0.10276991, 0.111005515, -0.2845309, 0.113985784, 0.07206471, -0.026585411, 0.20032002, 0.5691625, -0.0460136, 0.03874166, 0.09858682, -0.15913802) * go_2(1.0, 0.0); + result += mat4(-0.00397842, -0.014763085, 0.080231026, -0.09142265, 0.03637215, 0.064106315, -0.030963007, 0.0557953, 0.04173885, -0.024534896, -0.2092259, 0.06913638, 0.08103145, -0.0033994897, -0.10903093, 0.062850125) * go_2(1.0, 1.0); + result += mat4(0.01206918, 0.024855271, -0.051995132, 0.013999821, -0.021517826, 0.06216198, -0.050853133, -0.064136736, -0.047408275, -0.07858566, 0.074464396, -0.038218755, -0.13216262, 0.008905726, 0.10333, 0.03049554) * go_3(-1.0, -1.0); + result += mat4(-0.027152343, -0.069046065, -0.013017797, 0.0763, -0.08611993, -0.020867927, 0.012807627, -0.11971997, 0.025972975, 0.095127404, -0.070044935, -0.21399231, -0.22536097, -0.028828809, 0.123399965, -0.15967365) * go_3(-1.0, 0.0); + result += mat4(0.038314234, -0.014114242, 0.012115026, 0.05505015, 0.11785298, -0.08772618, 0.034408223, 0.09134674, -0.04727011, 0.020709611, -0.01780165, -0.14374214, -0.30412516, -0.011123043, -0.024216317, -0.007538433) * go_3(-1.0, 1.0); + result += mat4(-0.17673545, 0.077738725, 0.056153737, 0.028693894, 0.05688375, 0.021928595, 0.014585902, 0.019364892, 0.029056642, -0.2072201, -0.17548367, 0.085471265, 0.16439342, -0.0052957633, 0.22321554, -0.19246858) * go_3(0.0, -1.0); + result += mat4(0.1914782, -0.15620962, -0.16686897, -0.04141303, 0.07696967, -0.013115313, -0.057627093, -0.13849305, 0.08699377, -0.07339016, -0.053074118, -0.059418138, 0.19988623, -0.23852244, -0.12574267, -0.29139704) * go_3(0.0, 0.0); + result += mat4(-0.017691063, 0.18901291, 0.16250716, -0.11039392, 0.056900974, 0.036662772, -0.13399602, -0.11378214, -0.10924602, 0.2130181, -0.042094063, -0.012445028, 0.013168919, 0.119448364, -0.014406005, 0.0054324497) * go_3(0.0, 1.0); + result += mat4(0.11552786, 0.090796515, -0.11559005, -0.035706047, -0.044022456, -0.027642358, 0.08824298, 0.035067793, 0.18125483, -0.15502097, 0.094219126, 0.07493505, 0.022493582, 0.038250685, -0.076567575, -0.059311453) * go_3(1.0, -1.0); + result += mat4(-0.08612596, 0.016376335, -0.0023271537, 0.32511148, 0.03789289, 0.13106889, 0.22370385, 0.21145949, 0.1844514, -0.0766592, 0.093758754, 0.13821359, -0.062405586, 0.0028724174, -0.13588348, 0.00024406122) * go_3(1.0, 0.0); + result += mat4(-0.08991004, 0.074423954, -0.020964831, -0.070288494, -0.1192369, -0.015506713, -0.28136373, 0.042911243, 0.08215164, 0.11065419, -0.006201638, 0.057742044, 0.0014476188, -0.01443158, 0.22631277, -0.06787264) * go_3(1.0, 1.0); + result += vec4(-0.07235962, -0.019149294, 0.05072898, 0.03962245); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.14315613, -0.031299837, -0.011195234, 0.0073360316, 0.07264984, -0.110979274, 0.06560588, -0.040463638, 0.28964168, -0.05644335, -0.060729366, -0.15811591, 0.028339373, 0.027486937, 0.0360574, 0.05856459) * go_0(-1.0, -1.0); + result += mat4(0.16211128, 0.20672597, -0.30374205, -0.056202736, -0.10893948, 0.053066984, -0.18297112, 0.028844962, 0.22754766, -0.07141921, 0.07142953, -0.1357581, 0.008053467, 0.04668908, 0.17258649, 0.22506891) * go_0(-1.0, 0.0); + result += mat4(0.07014762, 0.032112304, 0.028849715, 0.09427007, 0.008323501, -0.085777245, 0.083501115, -0.16150802, 0.24127382, -0.1305689, -0.027557204, -0.15057805, 0.09748757, 0.08182083, -0.107643455, 0.020552907) * go_0(-1.0, 1.0); + result += mat4(-0.04630706, -0.056070503, 0.058440026, -0.005662525, 0.08736355, 0.08821088, -0.049539115, 0.08171937, 0.28466523, -0.025859421, -0.0026971614, -0.15181617, -0.022231927, 0.3566104, -0.024887348, 0.12051598) * go_0(0.0, -1.0); + result += mat4(-0.20976813, -0.23778942, 0.28854275, -0.27583683, -0.27604774, -0.15861328, 0.09581984, 0.06572128, 0.092306405, -0.06962751, -0.042226445, 0.035234913, 0.084891975, -0.03846841, -0.1473667, 0.2810354) * go_0(0.0, 0.0); + result += mat4(0.028011162, 0.08945262, 0.15859836, 0.18426442, 0.10649845, -0.0918649, -0.12257575, -0.00914911, 0.23701023, -0.030067213, -0.01938559, -0.11026175, -0.5953985, 0.28875506, -0.035278864, -0.05043055) * go_0(0.0, 1.0); + result += mat4(-0.14445779, -0.06907616, 0.13078876, -0.0089114, -0.110637166, -0.123719245, -0.094949, 0.046267383, 0.4727523, 0.0073195575, -0.014788787, -0.14922102, -0.021974785, -0.10706751, 0.00049029186, 0.09215345) * go_0(1.0, -1.0); + result += mat4(-0.20936993, -0.22377276, -0.07697398, 0.039161056, 0.044213686, 0.037542075, -0.06600642, 0.017124292, 0.3406197, 0.011907687, 0.019732054, -0.22745137, -0.22178015, 0.49051985, -0.03707166, 0.14849792) * go_0(1.0, 0.0); + result += mat4(0.07833466, 0.10888627, 0.16015877, -0.049263358, 0.29002127, -0.010949114, 0.013081097, -0.071674205, 0.3532135, 0.013165473, -0.05282189, -0.16688257, 0.009552089, -0.2740816, 0.04927233, -0.37047002) * go_0(1.0, 1.0); + result += mat4(0.23682123, -0.027914839, 0.02372468, -0.07127212, 0.053436097, 0.057737537, -0.008556659, -0.025973454, 0.06468388, 0.18805866, -0.08180048, 0.058999106, -0.3058321, -0.06642967, -0.092997625, 0.10527466) * go_1(-1.0, -1.0); + result += mat4(-0.1353085, -0.016593851, 0.21518163, -0.10272456, 0.14382689, 0.05056661, -0.27799338, 0.11351653, 0.05838342, 0.28104934, -0.03777824, 0.003435516, 0.057915565, -0.17574134, -0.24437475, 0.13420977) * go_1(-1.0, 0.0); + result += mat4(0.13400255, -0.056437124, 0.11310834, 0.040429913, 0.098928474, -0.020769242, -0.079605736, 0.0494632, 0.0660877, 0.098982334, -0.055884495, -0.046533633, 0.17815505, 0.027310565, -0.24176653, -0.025550256) * go_1(-1.0, 1.0); + result += mat4(0.03637618, -0.012618673, 0.11865397, 0.19804053, -0.03522831, 0.24310908, -0.056454524, -0.44885796, 0.02212509, -0.20253624, 0.038810212, -0.17396528, 0.08970355, 0.005103078, 0.061075203, 0.44292897) * go_1(0.0, -1.0); + result += mat4(-0.25074747, -0.0015575301, -0.685015, 0.07345307, -0.08419402, 0.06640714, 0.43799296, -0.17571151, 0.0049855476, 0.09024738, 0.055744022, 0.018739637, 0.34734032, 0.114896655, 0.0404696, -0.11327049) * go_1(0.0, 0.0); + result += mat4(-0.12284062, -0.31131, -0.14712588, -0.18645866, 0.17581487, 0.1357234, 0.09913364, 0.005298711, -0.056155153, 0.042429443, 0.039454732, -0.04111384, 0.2623163, 0.09701166, 0.022825675, 0.050480727) * go_1(0.0, 1.0); + result += mat4(0.058734808, 0.038528245, -0.042670116, -0.15190329, -0.028179986, -0.05362995, 0.017090468, -0.24449602, -0.08240927, -0.033122182, 0.009938243, -0.0052937623, 0.2171439, 0.06879817, -0.10361997, 0.018995138) * go_1(1.0, -1.0); + result += mat4(0.027555468, 0.016337285, 0.19074728, 0.26690376, -0.088713005, -0.0021182299, -0.23062791, -0.32101163, -0.0040022335, 0.16835448, 0.05424022, -0.02156396, 0.24163729, 0.10243619, -0.04331782, -0.014350939) * go_1(1.0, 0.0); + result += mat4(-0.13836963, 0.053369813, 0.036432605, 0.062288612, -0.06264361, -0.049093347, -0.0315955, -0.11237456, -0.064744405, -0.0151798045, 0.044210885, 0.010166375, -0.038355727, -0.05203739, -0.075036794, 0.1664177) * go_1(1.0, 1.0); + result += mat4(-0.08583114, 0.08268218, -0.05771351, 0.10195048, -0.10128163, 0.10874855, -0.02580701, 0.028834302, 0.1950179, -0.0130183315, 0.0092119705, -0.060479227, 0.117747106, 0.061403573, -0.0028475628, -0.032362986) * go_2(-1.0, -1.0); + result += mat4(-0.05310153, -0.061091065, 0.19438389, -0.10475873, 0.00045120303, -0.24876194, 0.017168125, -0.050173752, 0.012073283, 0.035660096, -0.017562328, -0.110271364, -0.015546384, 0.17965329, 0.10068208, -0.014481325) * go_2(-1.0, 0.0); + result += mat4(0.085558474, -0.0007109211, 0.20868625, 0.150163, -0.19283043, 0.025976779, 0.08384698, 0.031011146, 0.17268184, 0.008871077, -0.04097794, -0.12868725, 0.01336166, -0.038823843, 0.1703644, -0.067780636) * go_2(-1.0, 1.0); + result += mat4(0.06480841, -0.44256654, -0.19949587, -0.030677497, -0.27930573, -0.041867044, -0.15648738, 0.11573067, 0.28664824, 0.009770385, -0.058617204, -0.06607673, -0.038160402, 0.009497089, 0.03303058, -0.079379834) * go_2(0.0, -1.0); + result += mat4(0.17752203, 0.10979527, -0.058749028, -0.30194217, 0.30484176, -0.20980492, -0.05234784, -0.2590473, 0.23003183, 0.21903595, -0.024891363, -0.14337292, -0.02971356, -0.29613075, -0.045642294, 0.23826689) * go_2(0.0, 0.0); + result += mat4(0.018211683, -0.005840598, -0.19021381, -0.096696235, 0.39998052, -0.34746838, -0.039627917, 0.087701194, 0.15526368, -0.008095372, -0.044220537, -0.08634815, -0.121496454, -0.06792033, -0.14959472, 0.078917444) * go_2(0.0, 1.0); + result += mat4(0.33109078, 0.012287281, -0.034155898, -0.04840956, 0.068748444, 0.006142039, 0.06598935, 0.024775596, 0.22379673, 0.056089353, -0.006119644, -0.018509025, 0.10084137, 0.15556572, -0.041211523, -0.21550669) * go_2(1.0, -1.0); + result += mat4(-0.058160853, 0.08899222, -0.17401625, -0.1449813, -0.015872562, -0.03780256, 0.15702572, 0.34013954, 0.1580772, 0.074823864, 0.035488904, -0.01627819, -0.15551315, -0.3638866, -0.09833458, 0.15037175) * go_2(1.0, 0.0); + result += mat4(-0.12707977, -0.19947061, -0.11524648, 0.09216174, -0.07161296, 0.05675567, 0.06843247, 0.2803306, 0.25222927, -0.044076066, 0.053775772, -0.09939824, 0.16903089, 0.11475717, -0.07015584, -0.036021322) * go_2(1.0, 1.0); + result += mat4(-0.12290332, -0.05469477, 0.02696626, 0.051133692, -0.05541504, -0.2811521, -0.13008943, 0.031793896, -0.32529324, -0.01663752, -0.0658181, 0.17300756, 0.22281154, -0.11001508, 0.09578194, -0.055437982) * go_3(-1.0, -1.0); + result += mat4(0.083753526, -0.048933715, -0.13912897, 0.10929772, -0.1789828, -0.1586524, -0.10964165, -0.08210391, -0.11568187, -0.04813496, -0.2417861, 0.24446528, 0.13570863, -0.26869404, 0.3013413, 0.11678686) * go_3(-1.0, 0.0); + result += mat4(0.21105368, 0.15749952, -0.18983693, -0.023642758, -0.1633653, 0.10107988, 0.052329395, -0.080253236, 0.15375629, -0.045091413, 0.05070866, 0.12416106, 0.16600485, -0.10412354, 0.061849747, -0.084013924) * go_3(-1.0, 1.0); + result += mat4(0.03863923, 0.03690167, -0.053106382, -0.07523278, -0.04214836, 0.53898096, 0.15308584, 0.22835171, -0.24771535, 0.1402687, 0.1000896, -0.08719167, 0.0886567, 0.15255097, 0.14695966, -0.06659865) * go_3(0.0, -1.0); + result += mat4(0.110334344, -0.12696493, 0.24256139, 0.02536166, 0.08322421, 0.022147777, -0.35030407, 0.13734557, 0.053133942, 0.43650532, -0.30170345, 0.08751837, 0.012917502, 0.27496436, 0.11422729, 0.15508565) * go_3(0.0, 0.0); + result += mat4(0.16684863, 0.26743406, 0.15951683, 0.033597723, -0.044719726, 0.1127182, 0.007923161, 0.06415458, -0.07269362, -0.07828715, 0.09216738, 0.11528897, -0.13371283, -0.124177165, 0.14804523, 0.14156726) * go_3(0.0, 1.0); + result += mat4(-0.041141883, 0.023617791, 0.11484465, 0.13131519, -0.14753738, 0.17067687, -0.017538434, 0.24042644, -0.058103643, 0.3143255, 0.02476919, -0.0024666793, -0.26759955, -0.06099211, 0.006415725, 0.10394301) * go_3(1.0, -1.0); + result += mat4(-0.04198037, 0.03277123, -0.25069895, -0.21043587, -0.27417016, 0.08047665, 0.29731026, 0.07629813, -0.15695353, -0.14299184, 0.026618432, 0.13265325, 0.07727133, 0.12872085, 0.13887435, 0.1347057) * go_3(1.0, 0.0); + result += mat4(0.039232086, 0.117847264, -0.071643315, -0.040677182, -0.029160816, -0.06968689, 0.12880929, 0.037579957, -0.036671028, -0.022678757, -0.069731854, 0.10590314, 0.028034678, -0.015759282, 0.047180142, -0.16366881) * go_3(1.0, 1.0); + result += vec4(-0.079253934, 0.001511763, 0.100159355, 0.01585197); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.024126908, 0.01737047, 0.04563732, 0.08303721, -0.21339902, 0.00025652428, -0.09666459, -0.07654246, -0.01201168, 0.14373912, 0.22268519, 0.049181588, -0.0751725, 0.006847365, -0.025867194, 0.19233267) * go_0(-1.0, -1.0); + result += mat4(-0.25251204, -0.34213448, -0.0022676045, 0.29270738, 0.08876456, 0.067294724, 0.2865476, -0.009144941, -0.074606106, 0.14566834, 0.14162645, 0.10980335, -0.7958991, -0.15410729, 0.038512416, -0.17033637) * go_0(-1.0, 0.0); + result += mat4(-0.115404196, -0.11004134, 0.13174473, -0.0006875606, 0.0051814034, 0.058522645, -0.0795437, 0.0011465811, -0.019500278, 0.12752724, 0.16985136, -0.054932587, 0.16734739, -0.04686017, -0.072241016, 0.054562975) * go_0(-1.0, 1.0); + result += mat4(-0.07528159, -0.113516726, 0.2081102, 0.009942251, 0.08256535, 0.050133914, 0.012745932, 0.13902397, 0.009369715, 0.083261885, 0.17366019, 0.069754004, 0.030654406, -0.045856245, -0.055254143, 0.16265897) * go_0(0.0, -1.0); + result += mat4(-0.14366727, 0.24948351, 0.12160293, 0.10929859, -0.116071545, -0.11725494, -0.13926856, -0.026759636, 0.12723772, 0.1938045, -0.02745115, -0.0644584, -0.23854719, 0.059308372, -0.446269, -0.06978486) * go_0(0.0, 0.0); + result += mat4(0.21108554, -0.1717225, 0.066633105, 0.15418948, -0.08902029, 0.047925282, 0.15817304, -0.080941506, 0.007364865, 0.10506626, 0.20205018, -0.078695655, 0.14004812, -0.3195092, 0.19157887, -0.12697977) * go_0(0.0, 1.0); + result += mat4(-0.08145032, -0.14292753, 0.066565305, -0.061348185, -0.08738346, 0.011608093, -0.0024047727, -0.024741996, -0.11547277, 0.10013328, 0.21730538, 0.05598899, -0.17741105, 0.075944185, 0.027434295, -0.2550598) * go_0(1.0, -1.0); + result += mat4(-0.026223006, 0.11214396, -0.133987, 0.1303522, 9.32011e-05, -0.14755996, -0.14002979, -0.039624512, 0.045111652, 0.17618611, 0.17764348, 0.104528464, 0.20592515, 0.07240335, -0.27604735, 0.038880046) * go_0(1.0, 0.0); + result += mat4(0.17734227, -0.002935363, 0.07505682, -0.029969893, -0.024536638, 0.11236127, 0.119374484, 0.08002781, -0.003541722, 0.1428466, 0.1729824, 0.055412393, -0.04790376, 0.18020035, 0.05376964, -0.1520942) * go_0(1.0, 1.0); + result += mat4(-0.11352182, -0.019249126, 0.10782615, 0.03079928, 0.020381734, -0.08998433, -0.09211494, -0.054406203, 0.1828849, -0.07692097, 0.004733955, -0.026685018, -0.08044814, -0.071961075, 0.029184176, -0.22562811) * go_1(-1.0, -1.0); + result += mat4(-0.34489468, -0.07447471, 0.026422959, 0.33550653, 0.22130035, 0.059709545, -0.07646962, -0.18386386, 0.33911958, -0.07534871, 0.040870134, 0.051136248, 0.32681262, 0.20612194, -0.1609581, -0.70460784) * go_1(-1.0, 0.0); + result += mat4(0.27617922, 0.09758603, 0.05103887, -0.09281693, -0.007143339, 0.006635712, -0.055270564, -0.022629099, -0.13023081, -0.013819027, -0.038695697, 0.047280338, -0.13964762, 0.09852924, -0.10056262, -0.084967695) * go_1(-1.0, 1.0); + result += mat4(0.1370323, 0.030904075, -0.033860117, 0.08926374, -0.14616281, -0.29926816, -0.23738252, -0.21374625, -0.14039646, 0.11503669, 0.082101606, -0.061717354, 0.021357644, -0.10676707, 0.03214661, 0.029967157) * go_1(0.0, -1.0); + result += mat4(-0.29881296, -0.22195289, -0.3512607, -0.2277441, 0.033705913, -0.23267402, -0.119738854, -0.18925253, 0.068823405, -0.15160555, 0.2585695, 0.10484223, -0.012574211, 0.38808516, 0.2599094, -0.4991424) * go_1(0.0, 0.0); + result += mat4(-0.07474731, 0.22742131, 0.014462262, 0.08409484, 0.09579643, -0.0519534, 0.0007793075, -0.044820115, -0.010144471, -0.040506937, 0.0056340825, 0.057767954, -0.14988829, -0.05099549, 0.007204364, -0.07094934) * go_1(0.0, 1.0); + result += mat4(-0.05736621, 0.12072876, -0.02037183, 0.05012334, -0.1173538, -0.10062993, -0.0033958228, 0.0142556345, -0.011005385, -0.0066177617, -0.058390465, 0.048240293, 0.09835053, 0.17917523, -0.06466951, 0.017518612) * go_1(1.0, -1.0); + result += mat4(0.1413101, -0.30268928, -0.17851736, -0.10797371, -0.01964573, 0.14356858, -0.06759965, 0.17416531, 0.13905385, -0.017476829, 0.06541924, -0.044690568, -0.080723755, -0.08610206, 0.095347285, -0.09233214) * go_1(1.0, 0.0); + result += mat4(-0.07254187, -0.091158785, 0.018472971, 0.03514051, 0.018888336, 0.107934274, -0.018830854, 0.10007211, -0.053966418, -0.035646267, -0.031214178, -0.05980228, -0.13045661, -0.011743741, -0.03325275, 0.071065165) * go_1(1.0, 1.0); + result += mat4(-0.037697386, 0.054388218, -0.010934479, 0.2266702, 0.049999133, 0.017648092, -0.044225454, 0.21611899, -0.03805845, 0.054236397, -0.018563407, -0.060588073, -0.031215845, 0.075081706, 0.07333242, -0.09651128) * go_2(-1.0, -1.0); + result += mat4(-0.32236508, -0.0026381002, -0.30787975, 0.2963127, -0.13276175, 0.1058753, -0.12744896, 0.09749292, -0.02683677, -0.0041124597, 0.006103888, -0.09997201, 0.092101686, -0.08375288, 0.09641652, 0.053333007) * go_2(-1.0, 0.0); + result += mat4(0.027999232, -0.060004722, -0.009207874, -0.0952888, -0.038418446, -0.13316345, 0.099323496, 0.048450433, 0.0443969, 0.056023613, 0.1156147, 0.018980766, 0.040020484, 0.07555044, 0.0039174426, -0.044098593) * go_2(-1.0, 1.0); + result += mat4(-0.101029314, 0.33333415, -0.22052327, -0.035329416, 0.17229559, 0.12564908, -0.07879576, -0.09248896, -0.03239869, 0.022611454, 0.05610472, -0.02181683, -0.06347532, -0.077292696, 0.02005389, -0.078899406) * go_2(0.0, -1.0); + result += mat4(-0.028139396, -0.04349171, -0.019393284, 0.42110333, 0.37065667, 0.5282552, 0.43816927, 0.19155908, 0.051832534, 0.02050813, 0.030795977, 0.023960136, -0.27617985, 0.19165507, -0.005492024, -0.13349663) * go_2(0.0, 0.0); + result += mat4(5.0700226e-05, 0.21293098, -0.39902148, -0.058406413, -0.06766975, 0.1129277, -0.012398328, 0.025031524, 0.03519656, 0.06486415, 0.15710293, 0.014098051, 0.057754945, 0.116186336, -0.14429826, 0.051864166) * go_2(0.0, 1.0); + result += mat4(-0.012280755, 0.043744788, -0.06420968, 0.012739398, 0.043073926, 0.031230433, 0.00036492705, -0.039208546, -0.09329152, 0.06928111, 0.11622664, -0.009106846, 0.111528054, -0.020315262, 0.036427997, 0.15881014) * go_2(1.0, -1.0); + result += mat4(-0.066635534, 0.13901882, 0.0885122, 0.1030835, 0.08539728, -0.015466482, 0.0706688, -0.1611047, 0.02179479, -0.00048529037, 0.08708685, -0.00894464, -0.13046473, -0.21456988, -0.20666413, 0.049039323) * go_2(1.0, 0.0); + result += mat4(-0.100800075, -0.03772198, -0.095183305, -0.15150243, -0.08743059, -0.24299338, -0.019315414, -0.1574107, -0.013610722, 0.064871654, 0.058439128, 0.008972897, 0.10339555, -0.027356634, 0.07666196, 0.048524544) * go_2(1.0, 1.0); + result += mat4(0.046309173, -0.03858991, -0.13260359, 0.0017626585, 0.1453724, 0.1402359, -0.079240486, 0.13017912, 0.0629575, -0.15448172, -0.1856442, -0.044694453, -0.17226808, -0.08065212, -0.008038736, -0.15994963) * go_3(-1.0, -1.0); + result += mat4(0.18369722, 0.03849556, -0.035185467, -0.20205377, 0.03879293, 0.02712859, -0.051278092, 0.14862835, 0.10261192, 0.18085574, -0.025982017, -0.029160796, 0.5301373, 0.09614058, 0.35518438, -0.014906588) * go_3(-1.0, 0.0); + result += mat4(-0.31154996, -0.06868871, -0.012681131, 0.028093819, -0.37321633, -0.14738804, 0.06060776, 0.050054748, 0.013779029, -0.020390315, -0.12487434, -0.0029474346, -0.274524, -0.09142805, 0.0132142445, 0.1577639) * go_3(-1.0, 1.0); + result += mat4(-0.02177336, -0.020817943, -0.0111796055, -0.0046033757, 0.45033064, 0.3573757, 0.55279994, 0.602122, -0.05536106, -0.33642644, -0.1851379, -0.052192084, 0.03683446, 0.13613251, 0.20098919, -0.090587094) * go_3(0.0, -1.0); + result += mat4(0.1520822, 0.37173554, -0.061298244, 0.0019386727, 0.44656134, 0.13406622, 0.39018136, 0.5722051, -0.13074401, 0.012778576, -0.2837446, 0.16098566, 0.100189455, -0.40386122, 0.17464107, -0.17862785) * go_3(0.0, 0.0); + result += mat4(-0.01217905, -0.24295084, 0.08192982, -0.14160301, -0.05936872, -0.003312342, -0.07542139, 0.13488367, -0.21560493, -0.14342502, -0.19195864, -0.09448305, -0.1038431, -0.075766176, 0.03226791, 0.06455397) * go_3(0.0, 1.0); + result += mat4(-0.076916575, -0.10891301, 0.032635316, 0.03848802, 0.15750243, 0.48169684, 0.5410635, 0.017279895, 0.012730932, -0.0059071835, 0.030766146, -0.0225503, -0.030178519, -0.05866621, 0.033593398, -0.00033098995) * go_3(1.0, -1.0); + result += mat4(-0.10757409, 0.2644168, -0.025696747, -0.0077012815, 0.31728277, 0.29771668, 0.2443613, -0.047722775, -0.083712585, -0.12742844, -0.3138776, -0.059888497, 0.12291351, -0.14435866, 0.051414594, -0.11889901) * go_3(1.0, 0.0); + result += mat4(-0.063888945, 0.002844068, -0.06129518, 0.03381495, 0.10176077, -0.11625004, -0.10745763, -0.20636752, -0.03820934, 0.01926402, -0.20310643, 0.09767577, -0.00776684, 0.13453315, -0.036967937, 0.09780335) * go_3(1.0, 1.0); + result += vec4(0.019374544, -0.050425697, -0.005817216, -0.0059976326); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.028328063, 0.038015317, 0.14893384, 0.10103896, 0.028176744, -0.02067147, -0.10970998, 0.015726602, -0.07402682, -0.075281784, -0.012586929, 0.053476278, 0.14823362, 0.20312984, 0.24213, 0.039118115) * go_0(-1.0, -1.0); + result += mat4(0.009731573, -0.019011121, 0.016360838, -0.0073153526, 0.14594506, -0.0427664, -0.094225354, -0.013891855, -0.037061375, 0.024959227, -0.12289382, -0.21792257, -0.33579424, 0.052678566, 0.04346115, 0.07943186) * go_0(-1.0, 0.0); + result += mat4(0.0022269129, 0.013298362, -0.045071404, -0.007918287, 0.010860651, -0.073057, -0.0042394064, 0.03340809, 0.04938919, -0.024218693, -0.008147567, 0.08848061, -0.06840333, 0.10077341, -0.272586, -0.06542769) * go_0(-1.0, 1.0); + result += mat4(0.15929016, -0.1415167, 0.057084452, 0.06830724, 0.0046992986, 0.068573505, 0.22142749, -0.18493174, -0.1006019, -0.11373546, 0.17520057, -0.12888812, 0.05176946, -0.14703397, -0.20610721, 0.16611591) * go_0(0.0, -1.0); + result += mat4(-0.0069309813, 0.22358349, -0.18569049, 0.13456121, -0.21528137, 0.04618922, -0.47261322, -0.09682613, 0.5402922, 0.15818685, 0.05288464, -0.09949312, 0.21833964, 0.06652228, -0.2694682, 0.58216536) * go_0(0.0, 0.0); + result += mat4(0.040808782, 0.023110595, 0.12678777, -0.09057271, 0.03159572, 0.044006016, -0.10090222, 0.09940838, -0.08454473, -0.118349984, -0.053009644, 0.24352531, -0.103818566, 0.12536442, -0.17832974, 0.25161982) * go_0(0.0, 1.0); + result += mat4(-0.026323501, -0.14911288, -0.0073903934, 0.06902844, 0.07188603, -0.05006621, 0.06539817, -0.048083752, -0.08032579, -0.07449341, -0.015944218, 0.032426495, 0.069349505, -0.07441237, 0.055614363, 0.065174624) * go_0(1.0, -1.0); + result += mat4(-0.046432327, -0.051616143, 0.017791865, -0.047294978, 0.025944458, -0.0020909954, 0.083794415, -0.055740435, -0.3720184, 0.06654654, 0.1944378, 0.07806658, 0.00870193, 0.005404396, -0.059417505, -0.06270168) * go_0(1.0, 0.0); + result += mat4(-0.011699918, -0.03260685, 0.016413182, -0.02199741, -0.042898953, -0.018734168, -0.12387174, 0.06405199, -0.050764065, 0.07050078, 0.006969675, 0.05508108, -0.079687595, 0.12154926, 0.071177684, 0.046873443) * go_0(1.0, 1.0); + result += mat4(-0.2158498, 0.03612371, -0.05268691, -0.065594874, 0.06997431, -0.07327132, -0.03323361, -0.23306306, -0.00011140713, -0.1891967, -0.017328357, 0.15796778, -0.061359044, 0.008202449, -0.031317197, -0.020873578) * go_1(-1.0, -1.0); + result += mat4(-0.022816254, -0.014594548, 0.0064240466, 0.07976367, -0.0070318123, -0.07651652, -0.111756384, -0.2788498, 0.16634429, -0.1583179, -0.10245271, 0.10480152, 0.345051, -0.07809675, 0.046080578, -0.32139245) * go_1(-1.0, 0.0); + result += mat4(0.020630263, 0.032152038, 0.0019161701, 0.05435833, 0.078139454, -0.10090956, 0.14244889, 0.017286595, 0.0039871824, -0.026395446, 0.14158171, 0.0010112645, 0.17055373, -0.08093189, -0.049234428, -0.33473247) * go_1(-1.0, 1.0); + result += mat4(-0.10982378, 0.029386539, -0.15483, -0.04345961, -0.16869037, -0.30862433, 0.060743757, -0.032285906, 0.017884266, -0.09846199, -0.090971105, -0.1693697, -0.063690096, -0.08489718, 0.18247683, -0.19921213) * go_1(0.0, -1.0); + result += mat4(0.1898742, 0.22187345, -0.28495324, -0.42578775, 0.12833633, -0.2251503, -0.025917793, 0.6011678, -0.36586264, 0.23302059, -0.072634645, 0.0064221635, 0.56792957, -0.4684677, 0.05015159, 0.30121225) * go_1(0.0, 0.0); + result += mat4(0.10837159, 0.14743729, -0.03639783, -0.34797576, -0.18306817, -0.07957882, -0.111433275, 0.30104128, -0.102763996, -0.01020151, 0.016333267, -0.012390819, 0.11835027, -0.12597388, -0.006298998, 0.0513052) * go_1(0.0, 1.0); + result += mat4(-0.23662986, 0.23325302, -0.046104953, 0.36488137, 0.06990537, -0.06887873, -0.012611426, -0.02618366, -0.05296669, 0.195254, 0.016366778, 0.01693462, -0.08488424, -0.24656284, -0.035283253, -0.15318634) * go_1(1.0, -1.0); + result += mat4(0.061704446, -0.26930714, -0.24598889, 0.27657726, 0.05046488, -0.341884, 0.10704377, -0.15971762, 0.072999336, -0.2005826, -0.05874223, -0.053938035, -0.08284583, -0.22792995, 0.1027033, -0.012932447) * go_1(1.0, 0.0); + result += mat4(-0.029079054, 0.14774945, 0.026151389, 0.12380946, 0.08926635, -0.08387116, -0.17018612, -0.09304499, 0.086990625, -0.27579373, 0.003823722, -0.024723161, 0.08762848, -0.10080674, -0.012214886, -0.30239874) * go_1(1.0, 1.0); + result += mat4(-0.25756493, 0.2537789, 0.21723714, 0.0017929028, -0.014724892, 0.086692676, 0.11934202, -0.025869334, 0.008618976, -0.0046638376, -0.06863114, -0.07598151, -0.17309345, 0.009138105, -0.099874064, 0.07377463) * go_2(-1.0, -1.0); + result += mat4(-0.39971545, 0.16774859, 0.13102596, 0.30735064, -0.060374007, -0.036933452, 0.14408773, 0.06479284, 0.03806265, 0.045560133, 0.043136165, -0.019244662, 0.17573427, -0.11398941, -0.0751098, 0.041702736) * go_2(-1.0, 0.0); + result += mat4(-0.074492976, 0.18349282, -0.009050458, 0.0869807, -0.23123743, -0.015426683, -0.14346392, 0.005445149, -0.05322614, 0.10287576, 0.16083732, -0.09557319, -0.13891783, -0.13752605, -0.023572346, 0.13608918) * go_2(-1.0, 1.0); + result += mat4(-0.31140685, 0.40130782, 0.07704675, 0.27509958, 0.09711739, -0.18293281, -0.14500841, -0.15334702, 0.098314695, 0.22749798, 0.006017282, -0.013669673, 0.07147038, 0.022289474, -0.036797456, -0.0013958871) * go_2(0.0, -1.0); + result += mat4(0.0547557, -0.03036202, 0.65113044, 0.10668893, 0.304707, -0.1456157, 0.27668485, 0.2279428, -0.42439902, -0.0073047588, 0.045635667, 0.271637, -0.19595222, -0.28107607, 0.3905438, -0.29898256) * go_2(0.0, 0.0); + result += mat4(0.076843366, 0.037181348, 0.08652873, 0.1756985, 0.03728033, -0.22783624, 0.16810594, -0.022009399, 0.16058537, 0.24559903, 0.05266939, -0.13929726, 0.15964857, 0.0013167082, 0.015017631, 0.101646364) * go_2(0.0, 1.0); + result += mat4(-0.3022452, 0.20052882, 0.13433233, 0.04250016, -0.15248592, 0.014216527, -0.23489903, 0.13919333, 0.22891816, -0.0053335144, -0.05567782, -0.12769286, -0.05337762, -0.11429989, -0.00882089, -0.030790573) * go_2(1.0, -1.0); + result += mat4(-0.11763547, 0.1073185, 0.15810886, 0.013149736, -0.028268294, -0.24712053, 0.08592036, 0.075742744, 0.19626461, -0.10880887, -0.22599675, -0.37207767, -0.032548983, -0.011045266, -0.035218395, 0.099996395) * go_2(1.0, 0.0); + result += mat4(0.05631665, 0.029538663, 0.043909863, 0.13720988, 0.10980592, -0.047748722, 0.080308706, -0.06828442, 0.1144396, -0.12510885, -0.067976676, 0.030742755, 0.07134681, -0.06652312, -0.0642328, -0.034490924) * go_2(1.0, 1.0); + result += mat4(0.019588284, -0.15197967, -0.16797094, -0.026324488, 0.014429439, -0.028491383, 0.059453625, 0.23443304, 0.02504347, 0.08872467, 0.032782357, -0.085310735, 0.013040259, -0.09837991, 0.073533125, -0.03544458) * go_3(-1.0, -1.0); + result += mat4(0.02198588, -0.09614766, 0.024655875, 0.025384603, 0.012162857, 0.065071434, 0.018112874, 0.19828922, -0.33289856, 0.011323505, 0.13696423, 0.31772846, -0.06587399, -0.05569957, -0.16469179, -0.22545892) * go_3(-1.0, 0.0); + result += mat4(-0.009093827, 0.086783886, 0.060070645, 0.049957857, 0.041628215, 0.082412794, 0.117729135, -0.178277, 0.08326062, -0.07120824, 0.1788718, 0.050748438, -0.08952197, -0.14609487, 0.05515471, 0.14784457) * go_3(-1.0, 1.0); + result += mat4(-0.10823147, -0.05108019, 0.092807196, -0.13899301, 0.19123949, -0.044189975, 0.0030145745, 0.08935499, -0.10338727, 0.01996205, 0.15671325, -0.08229972, 0.05603653, 0.043324884, 0.13562247, -0.11487494) * go_3(0.0, -1.0); + result += mat4(-0.18872134, -0.07302765, 0.030137405, 0.30928415, -0.07689583, 0.045998566, 0.45554903, -0.1653404, 0.14705873, -0.10649596, 0.46833125, 0.17608039, -0.43967086, 0.056812476, -0.17908083, -0.40455228) * go_3(0.0, 0.0); + result += mat4(-0.08093384, 0.032636635, 0.124594346, 0.13655491, 0.16780408, -1.4671803e-05, 0.13044862, -0.397665, -0.013273644, 0.08253894, 0.16302188, -0.052874118, 0.04073075, -0.18063635, -0.00838661, -0.31084144) * go_3(0.0, 1.0); + result += mat4(0.06804371, -0.14755388, -0.12055216, -0.00437858, -0.044694718, 0.22744909, 0.012434794, 0.06245207, 0.00560859, -0.15815294, -0.19711316, 0.07711764, 0.03078979, -0.09560189, 0.10509056, 0.010651465) * go_3(1.0, -1.0); + result += mat4(-0.026342146, 0.13919179, -0.0030414977, 0.06607403, 0.071292974, 0.065464914, -0.027091878, 0.10620255, -0.052090824, 0.06840278, -0.08457357, 0.08867469, 0.2976581, -0.6702739, -0.15472057, -0.3066263) * go_3(1.0, 0.0); + result += mat4(-0.00072869845, 0.046573937, -0.08363707, 0.07867379, 0.038065, 0.01228845, 0.031746328, -0.024448024, -0.065555945, 0.1220454, 0.032151606, -0.022336006, -0.0010816467, -0.026455112, 0.112422734, -0.10285581) * go_3(1.0, 1.0); + result += vec4(0.052450567, 0.10404023, -0.059578225, 0.009724121); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.037506457, -0.06573841, -0.087879084, -0.06359248, -0.0017873603, -0.009097742, 0.010108622, 0.026364084, 0.012306545, 0.12607974, -0.088268295, 0.14034338, 0.24951904, 0.0983314, 0.03635719, -0.047059253) * go_0(-1.0, -1.0); + result += mat4(-0.05570699, 0.11044774, 0.04827364, -0.03185735, -0.032498132, -0.062959515, 0.2933071, 0.22244357, 0.061075654, 0.0064111133, 0.011452209, 0.11576761, 0.13969804, 0.20502032, 0.1114938, 0.022496287) * go_0(-1.0, 0.0); + result += mat4(-0.054194342, 0.000389916, -0.039589155, -0.018707246, -0.036095835, -0.06873059, -0.077109694, 0.028726012, -0.08820959, -0.109247595, -0.05745309, 0.043230128, 0.033671502, 0.16398554, 0.030398889, -0.17000203) * go_0(-1.0, 1.0); + result += mat4(-0.09218165, -0.12813722, -0.040984686, -0.016605416, 0.054269493, 0.12971285, -0.013961638, -0.17803082, -0.014683587, 0.2502267, -0.14249405, -0.025687713, -0.097426265, -0.30111355, -0.21776466, 0.008809217) * go_0(0.0, -1.0); + result += mat4(0.21033873, 0.15221386, 0.18138756, -0.08248389, -0.10091519, -0.06940753, -0.014009188, -0.3009861, -0.02452202, -0.08800422, -0.36376888, 0.18485394, 0.35076657, -0.13293292, 0.24624826, 0.39373755) * go_0(0.0, 0.0); + result += mat4(0.014170062, -0.029623963, 0.057001226, 0.09269898, -0.14630881, -0.16557585, 0.06735037, -0.015008042, -0.27238864, 0.081130914, -0.07869508, 0.098087415, 0.11217335, 0.48223323, 0.18613088, -0.035602476) * go_0(0.0, 1.0); + result += mat4(-0.21623239, -0.1125095, -0.09964635, 0.101452544, 0.11877652, 0.13471957, -0.10402355, 0.0077938605, 0.030518647, 0.22309083, -0.2115206, 0.017967062, -0.042780407, 0.099759325, -0.10465051, -0.033807248) * go_0(1.0, -1.0); + result += mat4(-0.059608232, 0.06684556, 0.00039066386, 0.08542961, 0.097183906, -0.1868667, 0.07778909, -0.06172202, 0.0021662437, -0.05387577, -0.4077133, -0.028940776, 0.110816136, -0.04154161, 0.030078325, 0.072834246) * go_0(1.0, 0.0); + result += mat4(-0.01881586, -0.06384429, -0.054874837, -0.016731417, -0.06570834, -0.13579571, 0.0033891131, -0.059161015, -0.11559389, 0.02149361, -0.08791608, -0.008113861, 0.08313892, -0.07327947, -0.013473171, 0.13254371) * go_0(1.0, 1.0); + result += mat4(-0.11458958, -0.08827364, -0.025030116, 0.12626298, 0.0070429775, 0.0337767, 0.051719055, -0.09654129, -0.04867615, -0.03609001, -0.06522421, -0.044131942, -0.048825134, 0.10652733, -0.015310965, -0.07341175) * go_1(-1.0, -1.0); + result += mat4(0.05782829, 0.014247012, 0.12126171, 0.100055166, 0.24079333, -0.20155986, 0.1640186, -0.12158374, -0.153708, -0.24445893, -0.10536192, 0.12758626, -0.19430119, -0.019024884, -0.080120996, -0.29866305) * go_1(-1.0, 0.0); + result += mat4(-0.017357074, 0.04390695, 0.12889594, 0.11451521, 0.03333342, -0.16417275, 0.10196121, 0.13059081, 0.09948873, 0.15007107, 0.22664218, 0.35449567, -0.089776486, 0.025239054, 0.12463201, -0.13109131) * go_1(-1.0, 1.0); + result += mat4(0.064875744, 0.40551752, 0.11903257, 0.14822967, 0.14993542, -0.12758526, 0.23159283, -0.06080246, -0.084577255, 0.14307548, -0.02186462, 0.05793564, -0.050965074, 0.23895216, -0.07796932, -0.1624384) * go_1(0.0, -1.0); + result += mat4(-0.15942748, 0.07191155, 0.42204422, 0.35219797, 0.23286703, -0.283381, -0.2749432, 0.25922084, 0.10494953, 0.14575887, -0.19649154, -0.14563714, -0.03709703, 0.023375817, -0.05610175, -0.32548484) * go_1(0.0, 0.0); + result += mat4(-0.04872624, -0.3592348, -0.027413938, 0.0836858, 0.046842758, -0.35193914, 0.06154142, 0.05559191, -0.22538327, -0.097689696, -0.21317257, -0.033945527, -0.23628096, -0.016477302, 0.027297588, -0.04105733) * go_1(0.0, 1.0); + result += mat4(0.11543502, -0.043297376, 0.118703, 0.15013209, 0.03191795, 0.014122794, 0.05156918, 0.023102578, 0.0808462, -0.06445798, 0.15860644, -0.062393136, -0.018691704, -0.00032888897, 0.01196705, -0.025045555) * go_1(1.0, -1.0); + result += mat4(0.08301664, 0.12298539, 0.20151077, 0.2993159, 0.16968682, -0.18196446, -0.13322797, -0.13693243, -0.0048389523, -0.057406515, 0.21409932, -0.060822334, -0.08554752, -0.19363636, -0.35241908, -0.32256603) * go_1(1.0, 0.0); + result += mat4(-0.0523748, 0.17082025, 0.08556144, 0.19181536, -0.2445756, -0.3616732, -0.01641404, -0.078599006, 0.23907976, 0.025989126, 0.07574993, -0.06859337, -0.06667767, -0.022847861, -0.037942342, -0.21112117) * go_1(1.0, 1.0); + result += mat4(0.15098672, 0.024212115, -0.19068481, -0.22606348, -0.15221487, -0.032165635, -0.06244531, -0.043535717, -0.07398802, -0.06088507, -0.013834592, -0.10145823, 0.06901983, -0.0862135, -0.05545454, 0.15514566) * go_2(-1.0, -1.0); + result += mat4(0.044767097, -0.07583697, -0.17739761, -0.25538698, 0.0966659, -0.0013492911, -0.23315248, -0.21652249, -0.14381947, 0.017784966, -0.15960035, -0.13297895, 0.009810349, -0.041348267, 0.05443229, 0.17781278) * go_2(-1.0, 0.0); + result += mat4(-0.0052824756, 0.087268956, -0.022167318, -0.09450279, 0.1254372, 0.075806946, 0.028893303, -0.09019378, 0.03488572, 0.046265777, 0.026162563, 0.003914548, -0.0632334, -0.19494742, -0.03602023, 0.113897055) * go_2(-1.0, 1.0); + result += mat4(-0.11311528, 0.2616239, 0.12303548, 0.13427438, -0.26537886, 0.015112677, -0.03641703, -0.014114427, -0.023280613, 0.03626403, 0.12833157, 0.19168468, 0.2119137, -0.02374797, 0.117919676, 0.07794395) * go_2(0.0, -1.0); + result += mat4(-0.13746078, 0.25739196, 0.008431936, -0.053867325, -0.13228695, -0.20661803, 0.026474724, 0.3205188, -0.41819036, 0.42812085, 0.17249924, -0.15810613, 0.39602605, -0.10873597, 0.1457145, -0.060503867) * go_2(0.0, 0.0); + result += mat4(0.03706167, -0.036211733, 0.06519942, -0.2123978, 0.019934088, 0.17494182, -0.017252771, -0.067341134, -0.15416612, -0.114118524, -0.00028491023, -0.08172238, -0.11722721, -0.2647645, 0.13316637, 0.13562322) * go_2(0.0, 1.0); + result += mat4(0.11832847, 0.22822993, 0.020318847, 0.0734738, -0.025950216, -0.072782144, 0.11133989, 0.18845533, -0.004584898, -0.10486471, 0.054522812, -0.14136603, 0.01940983, -0.039433163, 0.008390286, 0.013686628) * go_2(1.0, -1.0); + result += mat4(-0.042335663, 0.0035399816, -0.1813205, -0.25639042, 0.1042524, 0.07707001, -0.04922454, 0.18140413, -0.22322963, 0.030809738, -0.11041754, -0.040288754, 0.09431559, -0.08017892, -0.18317147, -0.019331435) * go_2(1.0, 0.0); + result += mat4(-0.061776266, 0.0069793356, 0.019964112, -0.14504445, -0.00070097746, -0.027107855, 0.030182542, -0.05625612, -0.04958449, 0.123165295, 0.0013953283, 0.017912487, 0.031161329, -0.31798717, 0.018331604, 0.030411277) * go_2(1.0, 1.0); + result += mat4(-0.0530594, -0.07933117, 0.024755973, 0.004785411, 0.045512546, 0.12833083, 0.023195961, -0.018028054, 0.014223835, 0.102213494, 0.052169293, -0.020509718, 0.017905682, 0.021354724, -0.0410789, -0.066523656) * go_3(-1.0, -1.0); + result += mat4(0.017061293, -0.08770806, -0.04889939, 0.01825556, -0.03228951, -0.06838898, -0.09249373, 0.18103507, 0.087000825, 0.04175679, -0.09305919, -0.2792485, 0.03405797, 0.062147446, -0.04757652, -0.021603985) * go_3(-1.0, 0.0); + result += mat4(-0.04115162, 0.02547615, 0.07033616, 0.09814065, 0.2597489, -0.0335038, 0.14097647, 0.047022782, 0.1374654, -0.27390274, 0.02080897, -0.15251215, -0.025431091, 0.08871465, -0.22243279, -0.07792812) * go_3(-1.0, 1.0); + result += mat4(-0.061674852, -0.051326606, -0.04885301, 0.08548189, -0.07100394, 0.044875987, -0.19810183, -0.09841128, -0.06628199, -0.041564234, 0.1111919, -0.044448826, 0.06980301, 0.00046094303, -0.045978926, -0.20736355) * go_3(0.0, -1.0); + result += mat4(-0.18405268, -0.28115878, -0.33536536, 0.0753763, 0.028309148, 0.0014874876, 0.28369543, -0.2133985, 0.16520546, 0.29562506, 0.109781906, 0.028433772, -0.02691105, -0.39038795, -0.12942268, -0.080103286) * go_3(0.0, 0.0); + result += mat4(-0.05387814, -0.04672615, 0.046064686, 0.2791977, 0.11359623, -0.204098, -0.018091407, 0.13550591, 0.04216003, -0.1631328, -0.043013666, -0.045698896, 0.032403514, 0.010206319, -0.25789943, -0.36328712) * go_3(0.0, 1.0); + result += mat4(0.11280466, 0.11671405, -0.02122692, 0.021664057, -0.07836575, 0.014747725, 0.030007286, -0.10128616, -0.13695373, -0.10353946, -0.043571353, 0.05922437, -0.11293257, 0.0828006, -0.07322761, -0.08197273) * go_3(1.0, -1.0); + result += mat4(-0.0010509897, -0.1674067, 0.08191839, 0.056608744, 0.061343428, 0.19574693, 0.05302967, -0.006813754, -0.016064182, 0.22949885, -0.06631832, 0.034382205, 0.12674272, 0.06583508, 0.19319807, 0.011400221) * go_3(1.0, 0.0); + result += mat4(-0.032175347, -0.021227444, -0.027698517, 0.067299634, 0.23929007, 0.20669897, 0.004856941, 0.0009404045, 0.04919408, 0.020296812, 0.012571405, -0.16185577, -0.012276781, 0.16609742, -0.15718406, -0.20344186) * go_3(1.0, 1.0); + result += vec4(0.022815697, 0.012251767, 0.045309987, -0.0879881); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.010501252, -0.046741538, -0.0017120431, -0.04840009, 0.20547974, 0.3366821, -0.10182207, 0.17451541, -0.03404171, -0.15138055, 0.16771653, -0.07168161, 0.102572344, 0.08266354, 0.20205829, 0.13429944) * go_0(-1.0, -1.0); + result += mat4(0.05584234, 0.06844309, 0.025430907, 0.124140054, 0.36385667, 0.12099467, -0.41671994, 0.085477844, 0.19748127, -0.21473993, 0.005037813, -0.3973761, 0.04669592, -0.100342326, -0.09403772, -0.034248166) * go_0(-1.0, 0.0); + result += mat4(-0.17654696, 0.009085064, 0.028360577, 0.033909567, 0.09377573, 0.27896938, 0.103994116, 0.0008595595, 0.064523555, 0.040994007, -0.06337235, 0.05662917, 0.0037455747, 0.017608117, -0.14610702, 1.2175746e-05) * go_0(-1.0, 1.0); + result += mat4(-0.04631749, -0.14251712, -0.16420849, -0.16259338, 0.46187812, 0.17576592, 0.00049142196, 0.029193122, -0.003925961, -0.11218227, 0.007026237, -0.20583045, -0.0010964901, 0.19355829, 0.2221649, 0.1187224) * go_0(0.0, -1.0); + result += mat4(-0.041567978, -0.31510913, 0.01618704, 0.04979329, 0.101294376, 0.16356954, 0.21361789, 0.20735294, 0.1900854, -0.4151726, -0.30471593, -0.59483325, 0.033624128, 0.11495109, -0.15194787, 0.4920959) * go_0(0.0, 0.0); + result += mat4(-0.18910064, -0.06516878, -0.20508374, -0.063928686, 0.7289614, 0.26674315, 0.2929481, 0.4026098, -0.033123735, -0.090371035, -0.029094126, -0.15197921, -0.08723726, -0.060160585, -0.07908409, -0.08826931) * go_0(0.0, 1.0); + result += mat4(-0.08321312, -0.09749648, -0.08783197, -0.23072585, 0.24343425, 0.10888949, 0.17419606, 0.04136083, 0.0066000987, -0.06112787, -0.12176007, -0.20907228, -0.0008522778, -0.054704696, -0.07197735, -0.0877179) * go_0(1.0, -1.0); + result += mat4(-0.40559706, -0.3801705, 0.05970925, -0.6157092, 0.28944594, 0.1252121, 0.403247, -0.122819394, -0.096336536, -0.2324694, 0.05980106, -0.19970767, -0.16646989, -0.10164633, -0.09282806, -0.08897996) * go_0(1.0, 0.0); + result += mat4(-0.14336498, -0.12967408, -0.016268672, -0.021431219, -0.0850116, 0.37105832, -0.04093888, 0.08540873, 0.035717323, -0.07282701, -0.009123291, -0.0036565473, -0.02508944, -0.087611906, 0.03604423, -0.00089080486) * go_0(1.0, 1.0); + result += mat4(0.1373875, 0.05283984, -0.11992707, 0.102294855, 0.3305128, 0.044920854, 0.31622922, -0.04711731, 0.001336024, 0.022799017, -0.062343203, 0.017140022, -0.07556853, -0.12864219, -0.25721326, -0.20741239) * go_1(-1.0, -1.0); + result += mat4(0.22062224, 0.09266222, 0.22466063, 0.18527372, -0.06940306, 0.1317168, 0.019784274, -0.07422301, 0.04061616, 0.0022494853, 0.21723995, 0.24732308, 0.14088804, 0.0116154915, 0.102064446, 0.020701224) * go_1(-1.0, 0.0); + result += mat4(-0.025154127, 0.045180723, -0.05877639, -0.099235624, 0.13630918, 0.24653725, -0.05723323, -0.022995364, -0.10826078, 0.049667366, 0.12618053, 0.1557369, 0.037487056, -0.22215757, 0.005912914, -0.20549043) * go_1(-1.0, 1.0); + result += mat4(0.09641055, 0.098845296, -0.08192096, -0.03691394, -0.18450394, 0.29955688, -0.082493715, -0.06268039, -0.0754319, 0.21018648, -0.016580105, -0.1810546, 0.13857666, -0.0327626, 0.03161804, -0.32589525) * go_1(0.0, -1.0); + result += mat4(-0.18272439, -0.17595461, 0.047229152, 0.14596708, 0.40453747, 0.5658558, -0.17969102, 0.21557859, -0.34232348, 0.40355968, 0.53874254, 0.0012561383, 0.28154096, -0.06745097, -0.13049632, 0.42997465) * go_1(0.0, 0.0); + result += mat4(0.081179485, -0.0041369614, -0.12001932, -0.102107175, -0.050293338, 0.29165673, 0.08062538, 0.22925815, 0.19389379, 0.28463286, -0.057207666, 0.23133168, -0.07545728, 0.06729763, -0.103593476, 0.014468794) * go_1(0.0, 1.0); + result += mat4(0.069821335, -0.010299579, 0.069458775, 0.03894593, -0.054688405, 0.32758355, 0.13935772, 0.37506017, 0.24083133, -0.06105339, 0.25636867, 0.09627044, 0.08939188, 0.006728639, 0.10629504, 0.07887502) * go_1(1.0, -1.0); + result += mat4(0.10563019, 0.077379815, 0.045456886, 0.09303406, 0.11326298, 0.28762257, -0.35142374, 0.10285745, 0.28762287, 0.3592446, 0.23816557, 0.22676824, 0.030372012, -0.028023086, -0.30956736, -0.27588373) * go_1(1.0, 0.0); + result += mat4(0.110499, 0.009828844, 0.086689755, 0.1839749, 0.16656482, 0.083707325, 0.19506347, -0.01547141, 0.13804145, 0.2206598, -0.16484791, -0.0021595939, -0.06844408, -0.07861768, 0.040771082, -0.13347322) * go_1(1.0, 1.0); + result += mat4(0.02667995, 0.019265587, -0.18211095, -0.102116466, -0.042541366, -0.07700912, -0.020587347, -0.03532171, 0.14816427, -0.1672272, -0.17522137, -0.04657808, 0.013430233, -0.0021270285, 0.109880306, 0.004838907) * go_2(-1.0, -1.0); + result += mat4(0.14285165, -0.1364756, 0.017568532, -0.27690783, -0.015461915, 0.045437083, 0.018187419, 0.12473493, 0.17991658, -0.15642665, 0.10009151, -0.19040193, 0.1734127, -0.13817501, 0.0710856, -0.12921426) * go_2(-1.0, 0.0); + result += mat4(-0.14114712, -0.18893671, 0.16121174, 0.035988737, 0.17872387, -0.106395856, -0.23183517, 0.012380416, 0.043066982, -0.28539032, -0.049011275, -0.21125022, -0.11976977, -0.015564958, 0.18880925, -0.0034812456) * go_2(-1.0, 1.0); + result += mat4(-0.05894521, 0.17266215, -0.0458901, 0.08049924, 0.0156061025, -0.0047465423, 0.09714626, 0.045990974, -0.08786066, -0.37803304, -0.19629405, -0.08546443, 0.014874948, 0.16931784, 0.24799919, 0.06316819) * go_2(0.0, -1.0); + result += mat4(-0.28352743, 0.29973608, -0.014540065, 0.2865005, 0.048086923, 0.18976144, 0.22969759, 0.1643124, -0.11259408, -0.107592925, 0.184308, 0.30998367, -1.0860825, -0.29118305, -0.51242536, -0.38492215) * go_2(0.0, 0.0); + result += mat4(-0.17199941, -0.14274743, -0.14213641, -0.1691383, -0.17294803, -0.013992068, -0.12135059, 0.082377024, -0.11255549, -0.124990575, -0.32526177, -0.08199375, -0.25591666, 0.1882329, 0.07895415, 0.22012262) * go_2(0.0, 1.0); + result += mat4(0.026025832, -0.07267515, 0.09738688, 0.074536435, -0.060470507, -0.037861936, 0.0507819, -0.054857653, 0.0043173633, -0.18107842, -0.02996759, 0.04072402, -0.012617744, 0.061665237, 0.0013981885, 0.08679919) * go_2(1.0, -1.0); + result += mat4(0.27913737, 0.39656082, 0.1579819, 0.2774727, -0.007996453, 0.08704765, -0.016933938, 0.07066135, 0.12361742, -0.20802726, -0.13705719, -0.18794124, 0.037409827, -0.03351758, -0.2970392, -0.11001984) * go_2(1.0, 0.0); + result += mat4(-0.027419567, 0.043236237, -0.19843115, -0.056489736, -0.017010912, 0.070949584, -0.14881176, -0.0780235, 0.0039477753, -0.16772608, -0.009547604, -0.14060417, 0.0103197545, 0.07129672, 0.034949142, 0.014112084) * go_2(1.0, 1.0); + result += mat4(-0.06467971, 0.084101565, 0.26296136, 0.08878442, -0.11232121, -0.054373942, -0.17263442, 0.046408508, 0.032239515, 0.042490713, 0.036938053, -0.034339923, -0.07139367, 0.032505415, 0.0045828503, 0.24428385) * go_3(-1.0, -1.0); + result += mat4(0.053585388, -0.08175568, -0.04787236, 0.06061965, -0.0740297, 0.11113596, -0.12467945, 0.08229154, -0.01941305, 0.12903687, 0.09095716, -0.13062255, -0.0102068605, 0.107291475, 0.030279635, 0.07464777) * go_3(-1.0, 0.0); + result += mat4(0.11041978, -0.0123585425, 0.11147018, 0.07380536, 0.06632908, 0.011784447, 0.029638765, -0.01566135, 0.009105331, 0.05252663, -0.17972581, 0.01210126, -0.10749957, -0.028144639, -0.105761215, 0.083784826) * go_3(-1.0, 1.0); + result += mat4(-0.058018316, 0.15083058, 0.2725673, 0.024263225, -0.067711554, 0.051117413, -0.31144425, -0.15761986, 0.017503206, -0.14361219, -0.38261738, -0.20354146, -0.04211545, 0.12921454, -0.01319619, 0.35809723) * go_3(0.0, -1.0); + result += mat4(-0.107978396, 0.3230084, -0.13806303, 0.12903036, 0.039864987, -0.006241628, 0.18701774, -0.10785807, 0.30056882, -0.3092082, -0.4273322, 0.3784662, -0.026107281, 0.23165871, 0.35258314, -0.06654702) * go_3(0.0, 0.0); + result += mat4(-0.15840323, 0.15210885, 0.04086692, 0.19169305, 0.11847602, 0.0009038581, 0.095951624, 0.043941673, 0.1512248, 0.0749449, -0.027045414, -0.19729601, 0.08265063, -0.045218006, -0.10732461, 0.05197371) * go_3(0.0, 1.0); + result += mat4(0.13637526, 0.28841978, 0.10298119, -0.005948496, 0.020897362, -0.02186902, -0.16207378, -0.021084815, 0.029192554, 0.07076991, -0.07210881, -0.06752328, 0.0006557475, 0.08986717, -0.29430988, 0.21411087) * go_3(1.0, -1.0); + result += mat4(0.18667863, 0.3117322, -0.0859705, -0.038189936, 0.10214859, -0.11244034, 0.2680223, -0.072901204, -0.07434324, -0.17855306, 0.23134363, -0.055360887, -0.020968167, 0.0858459, 0.078975916, 0.13254759) * go_3(1.0, 0.0); + result += mat4(-0.15676941, 0.03476677, -0.09922334, -0.15847856, -0.0033982224, 0.020932984, 0.12874377, 0.048792202, 0.06521213, 0.12456798, 0.15958112, 0.15981804, 0.07657683, 0.1759313, 0.012727211, 0.120304115) * go_3(1.0, 1.0); + result += vec4(0.08911729, -0.027969634, -0.010653148, -0.08001697); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.003206617, 0.04896987, 0.049652386, 0.10869342, 0.36313584, -0.070666805, 0.93581825, -0.52484274, -0.14278883, 0.064016834, -0.05534331, 0.02961736, -0.1319316, 0.05740655, 0.2405951, -0.12313382) * go_0(-1.0, -1.0); + result += mat4(0.014092832, 0.07058761, -0.07887866, -0.27478936, -0.31456405, -0.31036922, -0.18380909, -0.11277979, -0.034889866, -0.37914017, -0.056245584, 0.24008954, -0.03414483, -0.023189066, -0.010568316, -0.004604883) * go_0(-1.0, 0.0); + result += mat4(0.15443979, -0.050161768, -0.012300917, -0.08834887, 0.082193285, 0.06878423, 0.1478042, -0.3774468, -0.18659878, 0.14238152, 0.033605397, 0.13560006, -0.032682173, -0.024561955, 0.05656941, -0.034246165) * go_0(-1.0, 1.0); + result += mat4(0.04691462, 0.064624496, -0.15950382, 0.16081297, -0.1417951, -0.109690994, -0.021205869, 0.19361454, -0.006306647, 0.3401972, -0.00014070333, 0.11619607, -0.13437814, 0.05464789, 0.37712076, -0.12470751) * go_0(0.0, -1.0); + result += mat4(-0.40016884, 0.010666597, -0.005395378, 0.51084363, -0.009875391, 0.3969395, 0.47768033, -0.3392299, -0.1509509, -0.057620626, -0.1834601, -0.09998148, 0.10095897, -0.2213528, 0.02546703, -0.28506726) * go_0(0.0, 0.0); + result += mat4(0.26652217, -0.106772706, -0.12609608, -0.0949661, -0.10869194, -0.55331933, -0.011515521, -0.27978876, -0.2124893, 0.03954004, 0.1691768, 0.05590268, 0.1539662, 0.10703386, -0.027286088, 0.2168544) * go_0(0.0, 1.0); + result += mat4(-0.04862511, 0.06919758, -0.12962708, 0.016036907, -0.030030789, -0.20159967, 0.0013158675, -0.07799172, -0.032236706, -0.0035921712, -0.085437834, -0.025374755, -0.06251374, -0.009269627, -0.07519051, -0.01884611) * go_0(1.0, -1.0); + result += mat4(0.23940067, -0.19496065, -0.05494683, 0.11601073, -0.074225076, 0.24976431, 0.41665986, 0.12029472, 0.16815041, -0.115868434, 0.06333614, 0.032145746, 0.15990137, -0.14886795, 0.034102913, -0.07727595) * go_0(1.0, 0.0); + result += mat4(0.14702639, -0.013711502, 0.011437429, -0.11201445, -0.2582659, 0.34539905, 0.058082145, -0.18346462, 0.0027891365, 0.072565466, 0.12716974, 0.050636146, 0.092657596, 0.08541754, -0.1266164, 0.027881607) * go_0(1.0, 1.0); + result += mat4(0.043362036, 0.020758621, 0.09906072, -0.22401148, -0.19104514, -0.25774476, 0.074128486, 0.08558291, -0.075419895, 0.20380639, 0.06398196, 0.015925938, 0.089786015, -0.100721814, -0.1374862, 0.26110905) * go_1(-1.0, -1.0); + result += mat4(-0.12547149, 0.08151811, -0.15953775, -0.33995447, -0.50784314, 0.46155545, 0.24986996, 0.03404644, -0.047789436, -0.12438347, -0.14143273, -0.17951359, -0.08057819, 0.023863006, -0.008539273, -0.06775414) * go_1(-1.0, 0.0); + result += mat4(0.1430169, 0.056971863, -0.021576611, -0.045342956, -0.22356391, -0.15344621, -0.0467977, -0.22970036, -0.0125351725, 0.16957329, -0.0069183917, -0.013949834, -0.048609708, 0.05261722, 0.023262242, 0.2123519) * go_1(-1.0, 1.0); + result += mat4(-0.019523792, 0.008228363, -0.04616012, -0.14341992, -0.19307113, 0.005937241, 0.24048887, -0.04279845, 0.022574252, 0.15558265, -0.035000063, 0.18318397, -0.05392528, -0.26044658, -0.13493988, 0.056433514) * go_1(0.0, -1.0); + result += mat4(-0.28926027, -0.17381874, 0.07685766, -0.0061521684, -0.47455552, -0.49213487, 0.36924496, 0.29042044, 0.201094, -0.14280887, -0.4531411, -0.52902204, -0.28123, 0.1401882, 0.32054895, -0.11357518) * go_1(0.0, 0.0); + result += mat4(0.14173324, -0.12069898, -0.07242415, 0.105665006, 0.017373435, -0.056042343, 0.07270201, 0.022111928, -0.01106541, 0.01666006, 0.013564169, -0.36628693, -0.25450787, -0.28179473, -0.04721874, -0.21912882) * go_1(0.0, 1.0); + result += mat4(-0.09464695, -0.027919646, 0.13088459, 0.17504032, -0.101641014, 0.29687008, 0.08832321, 0.020538324, -0.15108941, -0.21930224, -0.026915176, -0.07078217, 0.10723033, 0.034364715, 0.18183397, -0.119012214) * go_1(1.0, -1.0); + result += mat4(-0.21713468, -0.0846604, 0.046551514, -0.14989382, 0.08672032, -0.07933831, 0.08093595, -0.064147756, -0.15980323, 0.50000644, -0.091568656, 0.03201994, -0.1848647, -0.0646309, 0.03288009, 0.046442386) * go_1(1.0, 0.0); + result += mat4(0.053532355, -0.054523747, -0.040242642, -0.31438905, 0.06452703, -0.18785381, -0.14987698, -0.067642935, -0.19892459, -0.057256676, 0.05943023, -0.17331842, 0.02588534, 0.13134238, -0.07121775, 0.23446162) * go_1(1.0, 1.0); + result += mat4(0.20633182, 0.01686198, 0.17934167, -0.02063493, 0.042606052, -0.05289458, 0.031508356, 0.00082803797, 0.0756423, -0.047548845, 0.01456339, 0.15910533, -0.20119642, 0.029213727, 0.111036316, -0.047010012) * go_2(-1.0, -1.0); + result += mat4(0.09258436, -0.27904224, -0.086695746, 0.33095327, -0.20126075, -0.050745636, -0.048944805, -0.10536587, -0.012995092, 0.07926994, 0.15071853, -0.13644052, -0.05188447, -0.06750699, -0.14227037, 0.028751127) * go_2(-1.0, 0.0); + result += mat4(-0.18562223, 0.10250865, -0.17573993, 0.20434102, -0.05187468, -0.06441594, -0.052127104, -0.01925564, 0.02927959, -0.12711872, 0.059629507, 0.15696885, -0.010168965, 0.09971862, -0.03177664, -0.022744441) * go_2(-1.0, 1.0); + result += mat4(0.21474063, -0.15679085, 0.09609374, 0.109079376, -0.049934637, -0.07393633, 0.16688468, -0.018888129, 0.04240162, -0.31895876, -0.106516436, 0.20008606, -0.054410245, 0.028970616, -0.18008347, -0.013362003) * go_2(0.0, -1.0); + result += mat4(0.37891293, 0.042730846, -0.24735828, -0.5234527, -0.3681344, -0.06609157, -0.14993733, -0.020316398, 0.123008475, 0.29632482, 0.32149333, 0.35999274, -0.18967044, 0.46154186, -0.016041815, 0.097378336) * go_2(0.0, 0.0); + result += mat4(-0.14873263, 0.07600569, -0.051758345, 0.1803135, -0.23121934, 0.13574593, 0.043973465, -0.13992754, -0.061972607, -0.124083005, -0.049196843, -0.07700431, 0.21572952, -0.25241727, 0.1218322, -0.07773728) * go_2(0.0, 1.0); + result += mat4(0.040287063, 0.024240922, 0.021917762, -0.050616946, -0.023174169, 0.05977014, 0.018892275, 0.04014965, 0.11715485, 0.062129, 0.024620812, 0.013617107, 0.075699426, 0.1858111, -0.11769179, -0.08085602) * go_2(1.0, -1.0); + result += mat4(-0.3194255, 0.08695645, -0.09453595, 0.2564516, 0.02192303, 0.08167247, -0.06257352, 0.043801844, 0.04392246, 0.2020571, 0.045180902, 0.18857521, 0.1835961, -0.043788187, -0.08768916, -0.14755538) * go_2(1.0, 0.0); + result += mat4(-0.22074097, 0.13768476, -0.16183749, 0.059949517, -0.011375954, 0.08581876, 0.004800447, 0.019403988, 0.014646056, 0.07363176, -0.058036458, 0.0706421, 0.08082624, 0.17740329, -0.05484784, 0.050796065) * go_2(1.0, 1.0); + result += mat4(-0.032330472, -0.067666024, 0.18980837, -0.19077848, 0.1111905, 0.03855666, -0.11272314, -0.00577739, 0.17697452, -0.053044144, -0.07510145, 0.061853852, -0.024240626, 0.14846492, 0.14804313, -0.20275854) * go_3(-1.0, -1.0); + result += mat4(0.17133904, -0.16356844, 0.1978664, 0.13877816, 0.28208038, 0.031539194, 0.11313891, -0.0014802719, 0.0033749861, 0.046372313, 0.054808807, -0.0024151779, 0.0068782056, -0.16414621, -0.07545907, -0.2521294) * go_3(-1.0, 0.0); + result += mat4(-0.1746992, -0.037628956, -0.0044012754, -0.004390821, 0.0050341445, -0.112742625, 0.051241755, 0.01984483, 0.0003531837, 0.043500375, 0.030881992, 0.003503799, 0.13611782, -0.02509031, -0.007503557, -0.009321301) * go_3(-1.0, 1.0); + result += mat4(0.087250136, 0.12374122, 0.2959519, 0.11314702, 0.22080182, 0.106726184, -0.29768205, 0.14931595, 0.23356548, -0.008709153, -0.0797829, 0.046940215, -0.07027616, 0.20533602, 0.0723021, -0.1963585) * go_3(0.0, -1.0); + result += mat4(0.00609982, 0.35277408, -0.22781096, -0.28912535, 0.42393112, -0.07654207, 0.12636793, 0.049337976, -0.0967726, -0.19349189, 0.36800626, 0.09745645, 0.47663373, 0.03876107, -0.042987954, 0.016161885) * go_3(0.0, 0.0); + result += mat4(-0.047490966, -0.05823166, 0.036158644, 0.025337253, -0.046618905, 0.108276576, -0.024148034, 0.0026794411, 0.1497962, -0.09328474, -0.03160641, 0.24351281, -0.05198027, 0.030720685, 0.00014528916, -0.2224931) * go_3(0.0, 1.0); + result += mat4(-0.007338369, 0.18710312, 0.14617369, -0.0070655346, 0.10464997, -0.029674934, -0.11842202, -0.09114357, 0.08524458, -0.08082762, 0.06479597, -0.023760766, 0.07523641, 0.0067315935, 0.101266846, -0.2780903) * go_3(1.0, -1.0); + result += mat4(0.14181875, -0.19523518, 0.1068169, -0.10284853, 0.11634046, -0.117397435, 0.09113022, 0.009371062, -0.022120507, -0.1127032, 0.092574745, -0.021989716, -0.088107705, -0.13541982, 0.08130504, -0.0678927) * go_3(1.0, 0.0); + result += mat4(0.09948295, 0.23699793, -0.042369924, 0.16744529, -0.10045506, -0.045623623, 0.04871897, -0.0023967526, 0.02602692, -0.089873284, -0.050681606, -0.09332558, -0.09596149, -0.06988313, 0.0007193808, -0.11936899) * go_3(1.0, 1.0); + result += vec4(-0.04928105, -0.003357327, -0.03886671, 0.076106146); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.13425097, -0.23487093, 0.2480183, -0.2806276, -0.041303713, 0.100773126, -0.110890545, 0.036205858, -0.331331, -0.12929262, 0.16300063, 0.3776673, -0.20316373, -0.011239426, 0.10650887, -0.027857736) * go_0(-1.0, -1.0); + result += mat4(0.09517376, -0.3004956, 0.05033304, -0.07464521, 0.009204248, -0.23034886, 0.30492118, -0.1215848, 0.15728685, -0.10430078, 0.04038878, 0.08034804, 0.04320418, -0.2929594, -0.018968396, 0.02542387) * go_0(-1.0, 0.0); + result += mat4(-0.10651935, -0.2736715, 0.19267319, -0.033337504, -0.06697293, 0.028424729, 0.047814637, 0.44929537, 0.02565344, -0.253426, -0.040931404, -0.05018104, 0.032979824, -0.035349697, -0.039578713, -0.3116414) * go_0(-1.0, 1.0); + result += mat4(0.09176126, 0.031713437, 0.24861507, 0.31351718, 0.36284143, 0.3622709, 0.16165464, 0.07319267, -0.6303202, -0.21209712, -0.02169929, 0.037275597, -0.1295319, 0.033090707, -0.029330662, 0.054679472) * go_0(0.0, -1.0); + result += mat4(0.15021572, -0.15177831, 0.1318225, 0.46864823, 0.059443284, 0.07404233, 0.22612074, 0.21105285, 0.319694, 0.09397257, 0.14277866, -0.0235649, -0.037205156, -0.40715128, -0.18572816, 0.058741573) * go_0(0.0, 0.0); + result += mat4(-0.122751735, -0.20926422, 0.2099333, -0.11627138, 0.04171681, 0.0669586, -0.03831368, 0.27334675, 0.0492008, 0.12854317, 0.03308622, 0.45236585, 0.03122829, 0.13853219, 0.05084764, -0.3965012) * go_0(0.0, 1.0); + result += mat4(-0.0019293908, -0.15562099, 0.12418126, 0.0045440597, 0.05442391, -0.15613738, 0.14828286, -0.17687118, -0.053517755, -0.33350968, -0.062314924, -0.31358472, -0.09670371, 0.043190923, 0.008150662, 0.09928506) * go_0(1.0, -1.0); + result += mat4(-0.06698031, -0.099411525, 0.24259582, -0.1073659, 0.06762824, 0.059605874, -0.20944163, -0.1598055, 0.32746908, -0.17759447, 0.2859796, -0.1274256, 0.30796206, -0.00791448, 0.114059694, 0.14775705) * go_0(1.0, 0.0); + result += mat4(0.16291203, -0.14958477, 0.14716864, 0.2056065, -0.019337546, 0.032286238, 0.0030445335, -0.08208513, -0.14208078, 0.13601872, -0.23367858, -0.19092909, -0.20207883, -0.016950991, 0.009309007, 0.1376546) * go_0(1.0, 1.0); + result += mat4(-0.11093091, -0.32362202, -0.041845415, 0.029758021, -0.07261404, -0.048653398, 0.19167832, 0.09343212, 0.030472826, -0.15078579, -0.0056376588, 0.0045257527, -0.24521805, -0.10473077, 0.11163019, -0.1724187) * go_1(-1.0, -1.0); + result += mat4(-0.08601668, 0.16612485, -0.07751539, 0.07261594, -0.19028407, 0.23896623, -0.10416726, 0.23500614, 0.1955228, 0.08699591, -0.049277775, 0.13447775, 0.19434914, -0.11481196, 0.088043146, 0.13352895) * go_1(-1.0, 0.0); + result += mat4(-0.013221233, 0.07521129, 0.042819552, -0.11163175, 0.066080205, -0.25043094, -0.010348969, -0.013258202, 0.09444396, 0.29623637, 0.025016114, 0.050744686, -0.12219596, -0.0735393, -0.024817836, -0.06897588) * go_1(-1.0, 1.0); + result += mat4(-0.25720942, 0.19861753, -0.18535058, 0.12190362, -0.33756095, -0.0038898317, 0.09739055, 0.41227046, -0.10030796, 0.025445882, -0.23542109, 0.08677691, 0.08140194, -0.22716106, 0.14016968, -0.0927231) * go_1(0.0, -1.0); + result += mat4(0.58745646, -0.12533307, 0.30129984, 0.08898194, -0.07972344, -0.37581098, 0.06863413, -0.13185541, 0.21801205, 0.31779078, -0.3804784, -0.3200699, 0.14534226, 0.05912262, 0.07938948, -0.34869507) * go_1(0.0, 0.0); + result += mat4(0.024675166, -0.067802526, 0.030065436, 0.06509131, 0.14367498, 0.022554757, 0.014991865, -0.029914752, 0.5123549, -0.012557206, -0.13014166, -0.34184244, -0.09080884, 0.13782553, -0.018931886, -0.35642785) * go_1(0.0, 1.0); + result += mat4(-0.37336427, -0.02705006, 0.14392053, 0.024049882, -0.024705589, 0.14556128, -0.12120506, -0.06275598, -0.1284325, 0.11409197, -0.08397436, -0.075944416, 0.056465942, 0.04016099, 0.096723564, -0.08359723) * go_1(1.0, -1.0); + result += mat4(0.20243345, -0.09287934, -0.11676041, 0.005206654, -0.2879361, 0.41677123, -0.16924824, 0.22429213, 0.082279116, -0.1780833, 0.20209241, 0.12970525, -0.030272234, -0.19200714, 0.0015769673, -0.1389732) * go_1(1.0, 0.0); + result += mat4(0.04211243, 0.07331798, -0.055724114, 0.04086206, -0.04635456, 0.027212424, 0.021861525, 0.12424812, 0.43009162, 0.021664696, 0.20828371, 0.11859106, 0.07390811, -0.1861182, 0.034559406, 0.18561925) * go_1(1.0, 1.0); + result += mat4(0.22596797, 0.025346763, -0.056839246, 0.09137385, 0.07363095, -0.12382036, 0.08911783, -0.012355983, -0.07869761, 0.051298574, 0.00816572, -0.044984274, 0.07962154, -0.2254524, -0.007821531, -0.04936664) * go_2(-1.0, -1.0); + result += mat4(0.06265961, -0.17783198, 0.11678783, -0.12965304, 0.014506855, -0.17513473, -0.23593299, 0.14054537, 0.1580306, 0.31872272, -0.0042505316, -0.070422255, -0.01316396, 0.0058355615, 0.062464185, -0.06086727) * go_2(-1.0, 0.0); + result += mat4(-0.079526044, 0.23932967, -0.1139716, 0.15888569, 0.06526993, -0.06958436, -0.04070066, -0.12081254, 0.026716579, 0.014887845, 0.0061467467, 0.127956, 0.040913627, -0.0032820841, 0.086145625, 0.22520025) * go_2(-1.0, 1.0); + result += mat4(0.25577608, 0.02553098, -0.14822578, -0.11907723, -0.09787419, -0.03544863, -0.08098151, -0.01305555, 0.20404844, 0.11294246, 0.10096346, 0.15795162, 0.2554626, 0.09361069, 0.001985862, -0.0051444587) * go_2(0.0, -1.0); + result += mat4(-0.24454486, -0.014714279, -0.2954907, -0.39995646, -0.15907967, 0.30107877, -0.34781745, 0.095281735, -0.12492393, -0.28375402, -0.16872306, 0.2531788, -0.52085644, 0.35986066, 0.07716912, 0.09565738) * go_2(0.0, 0.0); + result += mat4(0.2493129, 0.06395661, -0.09491958, 0.19702488, 0.109871864, -0.051376317, 0.15404263, -0.21282886, 0.1188967, 0.07824094, -0.016752928, -0.14027214, 0.10949832, -0.27629098, 0.081909016, 0.1354018) * go_2(0.0, 1.0); + result += mat4(0.18950915, -0.034574565, -0.10378051, -0.15800652, -0.06835184, -0.06987467, 0.035007782, 0.04686656, 0.054061133, 0.014833506, -0.0035361175, 0.016156103, 0.120767444, -0.10196722, 0.10668838, -0.09058739) * go_2(1.0, -1.0); + result += mat4(-0.032248627, 0.056413256, 0.042716432, 0.06681831, 0.047605485, -0.07629479, 0.14311917, -0.06909803, 0.10640394, 0.10701861, -0.0051839007, -0.15133362, -0.32146424, -0.039978918, -0.12280021, 0.0048507582) * go_2(1.0, 0.0); + result += mat4(-0.1954503, -0.09257865, 0.11023244, -0.01817947, -0.0035485283, -0.015536726, 0.0071826433, 0.042538714, -0.015454641, 0.079593316, -0.07242554, 0.031178504, 0.2319168, -0.10519467, 0.013837495, -0.040088437) * go_2(1.0, 1.0); + result += mat4(0.12625901, 0.04531166, 0.038758352, -0.05790713, -0.10029771, -0.118265375, -0.23944628, 0.11955388, 0.070732996, 0.19404806, -0.019913414, 0.04609079, 0.06262817, 0.022330387, -0.029681094, 0.03719176) * go_3(-1.0, -1.0); + result += mat4(-0.07737922, 0.0024623116, -0.037666153, -0.19271135, -0.015002153, -0.0059966356, 0.0024538909, -0.0401021, -0.18540399, -0.11140236, -0.11102473, -0.06390247, 0.016754225, 0.35000673, -0.19139731, 0.07363001) * go_3(-1.0, 0.0); + result += mat4(0.02150171, -0.2311761, -0.025124706, 0.16819553, -0.0013348719, 0.32091036, -0.061826598, 0.12579474, -0.036611024, -0.018266583, -0.11280143, 0.11073158, 0.050171874, -0.14706045, 0.029553955, 0.0052631944) * go_3(-1.0, 1.0); + result += mat4(0.19249865, -0.22854832, 0.09472751, 0.014705341, 0.059496958, 0.13427268, -0.06309558, -0.07153743, -0.31890163, -0.0657967, -0.040345218, 0.09544393, 0.07359761, 0.11245483, 0.00033233972, 0.031550154) * go_3(0.0, -1.0); + result += mat4(-0.24668917, -0.37181908, -0.50614715, -0.101197146, -0.1569055, 0.27734125, 0.17144768, -0.04336267, 0.03658949, 0.06747124, 0.30720958, 0.56301194, -0.11314631, -0.29258573, 0.16256689, 0.5221001) * go_3(0.0, 0.0); + result += mat4(-0.022761503, 0.13063031, 0.002526217, -0.03466151, -0.15225072, 0.40217137, -0.089131154, 0.19195192, -0.1379853, -0.04640692, 0.104670234, 0.12268618, -0.012009209, -0.20534724, 0.028777445, 0.22195113) * go_3(0.0, 1.0); + result += mat4(0.23697586, 0.08793654, -0.10565018, 0.013993297, -0.025932996, -0.13859354, 0.14333159, -0.099132575, -0.049601994, -0.0917448, -0.0021633878, -0.009032609, -0.034750953, -0.30761167, 0.058994945, -0.19427797) * go_3(1.0, -1.0); + result += mat4(-0.26944515, 0.30523893, -0.17787015, 0.10827742, 0.06457236, -0.12202401, 0.15371302, 0.011699893, -0.06253491, -0.10976804, -0.37283847, -0.23996784, -0.2750512, -0.024101513, -0.094127975, -0.17462716) * go_3(1.0, 0.0); + result += mat4(-0.026286924, 0.06250577, 0.095423855, -0.02849258, -0.12916361, -0.10954709, -0.05825132, -0.102924265, -0.19550376, -0.11730307, 0.032346163, -0.17682706, 0.16651174, 0.031927045, -0.004800601, -0.06323844) * go_3(1.0, 1.0); + result += vec4(0.0095873345, 0.04959374, -0.15246227, 0.0044831373); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.021453971, -0.108874515, 0.0005208881, -0.09774453, -0.0053757126, 0.20114918, 0.24454592, 0.04932251, -0.0037210248, -0.0240578, -0.07736935, 0.27604944, -0.12430849, -0.13093218, -0.014840212, 0.13450128) * go_0(-1.0, -1.0); + result += mat4(-0.19143668, -0.23023333, -0.10232715, 0.24396868, 0.056112397, 0.14535592, -0.25882182, -0.26274678, -0.23119931, 0.07735849, -0.14785223, -0.21026523, -0.2064457, -0.34512606, -0.17808662, 0.30146623) * go_0(-1.0, 0.0); + result += mat4(0.0072161015, -0.013303738, 0.07591899, 0.027883789, 0.210858, 0.1422139, -0.027882019, 0.2618474, -0.048504543, 0.07377317, -0.05427271, -0.10014041, -0.12974857, -0.13140713, -0.02249253, 0.08203184) * go_0(-1.0, 1.0); + result += mat4(0.07855138, -0.13984342, 0.10037151, -0.056781758, 0.24686107, -0.0048190085, -0.2693424, 0.31722167, -0.28716075, -0.06422215, -0.06738793, -0.06723655, -0.08194382, -0.007975044, 0.20108353, -0.13338897) * go_0(0.0, -1.0); + result += mat4(0.35129568, 0.27930936, 0.024239251, -0.10712293, 0.48684034, -0.04380574, -0.0064479653, 0.03754327, -0.13139078, -0.44939983, -1.0460628, -0.016004754, -0.14476573, -0.07113434, 0.515311, -0.400374) * go_0(0.0, 0.0); + result += mat4(0.13104302, -0.23410062, 0.091530964, -0.003652217, 0.16696814, 0.16406855, -0.08138474, 0.047526445, 0.25358474, 0.37850454, 0.0362802, -0.046476766, -0.093869686, -0.4143772, 0.08641024, 0.115896136) * go_0(0.0, 1.0); + result += mat4(-0.04416574, -0.052188106, 0.05141859, -0.008132604, -0.013658864, 0.1021097, 0.19391364, -0.09257973, 0.15225394, -0.16920799, -0.16172324, 0.41466942, -0.07087308, 0.08632938, -0.07496043, -0.023530172) * go_0(1.0, -1.0); + result += mat4(0.09337352, 0.062108494, -0.219173, -0.046151914, 0.22507025, -0.08966131, -0.123690315, 0.08666376, -0.10731867, -0.08518657, 0.024199447, 0.17898631, 0.120247275, 0.089923285, -0.08756211, 0.1775775) * go_0(1.0, 0.0); + result += mat4(0.20326594, -0.060535498, -0.061659336, 0.113954924, -0.073462196, 0.15917051, 0.11728326, -0.072256014, -0.0752342, 0.06265616, -0.19494365, -0.25413772, -0.06641352, -0.015642308, 0.16825356, 0.0027654327) * go_0(1.0, 1.0); + result += mat4(-0.17029639, -0.05388927, -0.13159063, 0.0795609, 0.00501164, -0.0703107, -0.08229201, 0.07546247, 0.092942156, 0.059050936, -0.07987315, 0.010874322, 0.037708692, -0.0017377702, -0.030414931, 0.28946167) * go_1(-1.0, -1.0); + result += mat4(-0.2692667, 0.2258295, 0.062060453, 0.1934921, -0.023051793, -0.038611185, 0.21473692, 0.33520013, 0.029885106, 0.103782356, 0.05217351, -0.13349791, -0.034186684, -0.3015818, 0.033423528, 0.21218027) * go_1(-1.0, 0.0); + result += mat4(-0.013587494, 0.021273775, -0.022650799, -0.011939531, -0.11202949, 0.09365859, -0.042938907, -0.009910716, 0.27254924, 0.07752608, 0.029586637, 0.024899973, 0.04375618, 0.31453863, -0.006775175, 0.008228053) * go_1(-1.0, 1.0); + result += mat4(-0.49562672, -0.12472124, -0.13618441, 0.09660054, -0.2275429, -0.0902811, 0.18311924, 0.11677185, -0.13325182, -0.061613016, -0.011462703, -0.12538978, 0.054934092, 0.06742866, 0.25515345, 0.35692096) * go_1(0.0, -1.0); + result += mat4(0.5266911, -0.09655596, -0.41069564, -0.3174325, 0.1431904, -0.17732115, -0.36320353, 0.37975433, -0.5158582, -0.21019879, 0.06852925, -0.06648648, -0.18956456, -0.018139647, 0.35707653, 0.07378416) * go_1(0.0, 0.0); + result += mat4(0.04151976, -0.037361674, 0.06936584, -0.10462262, -0.22264048, -0.043842267, -0.12742832, -0.21778631, 0.0715335, -0.17921853, -0.3856251, -0.16335362, 0.21045755, -0.5026229, 0.14405337, 0.23096423) * go_1(0.0, 1.0); + result += mat4(-0.32437655, 0.07860345, -0.0021187086, 0.123870686, -0.16616751, 0.11004699, 0.04754715, -0.0075211064, -0.08026408, 0.04284957, -0.018143758, 0.032623176, 0.06614686, -0.035856936, 0.13667971, -0.15696613) * go_1(1.0, -1.0); + result += mat4(0.11260625, 0.03274457, -0.033769324, -0.11558525, -0.35377702, 0.0019119612, 0.24906515, -0.06853208, 0.0009843144, -0.0050376705, 0.063123666, 0.009872904, 0.19592324, 0.0028321196, -0.114693984, 0.16404222) * go_1(1.0, 0.0); + result += mat4(-0.03699667, 0.011842293, -0.12273219, 0.04081692, 0.008484447, -0.052331816, 0.07151068, 0.018538639, 0.077749036, 0.07189092, 0.22443593, -0.2436085, 0.023654116, -0.05127411, 0.27350748, 0.12180999) * go_1(1.0, 1.0); + result += mat4(0.16090482, 0.059198547, 0.04856637, -0.19173436, 0.12747662, -0.079715036, -0.20203276, -0.13818277, -0.123076215, -0.07168488, 0.0644838, 0.03524764, 0.0005124138, -0.06789178, 0.048645556, -0.098922126) * go_2(-1.0, -1.0); + result += mat4(0.29220074, 0.25197285, 0.09825887, 0.030363245, -0.033246458, -0.08370418, -0.12231589, -0.023000835, 0.082732, -0.16907515, -0.052518822, 0.07991363, 0.06222654, -0.06747275, -0.18931144, -0.42009747) * go_2(-1.0, 0.0); + result += mat4(0.02667354, 0.03842717, -0.012755562, 0.061840586, 0.01060547, -0.29081437, 0.010907111, 0.07930905, 0.12273201, 0.017574295, 0.051024225, 0.019036688, 0.07671181, 0.049130872, -0.09734168, -0.070569195) * go_2(-1.0, 1.0); + result += mat4(0.08517651, 0.0767222, -0.15657257, 0.18501835, -0.13749431, -0.2833894, 0.109219365, 0.033763003, 0.18988928, 0.13461404, -0.036578514, -0.13256857, -0.097819485, -0.17316358, -0.06512401, 0.1937444) * go_2(0.0, -1.0); + result += mat4(-0.32173568, -0.072075866, 0.13004705, -0.15507852, -0.23741087, -0.29364398, 0.10723945, -0.11976219, 0.20620506, 0.17970093, 0.24463713, -0.12555319, -0.021192182, -0.1374317, 0.5359718, 0.59974134) * go_2(0.0, 0.0); + result += mat4(-0.01101575, 0.040466793, -0.009630791, 0.13422947, -0.13290837, -0.24789505, -0.061713737, -0.07838521, 0.05379315, -0.14643523, -0.09155805, -0.049997047, 0.06696885, 0.20043123, -0.07542329, -0.08041673) * go_2(0.0, 1.0); + result += mat4(0.022160506, 0.01611432, -0.10189221, -0.022767285, -0.06682965, 0.047138248, 0.06860934, -0.012574086, 0.04010214, -0.041280016, -0.034621384, -0.018262599, 0.09731754, -0.059062295, 0.14786182, -0.15185094) * go_2(1.0, -1.0); + result += mat4(-0.052484483, 0.06899427, 0.18380043, -0.058414727, 0.07685985, -0.07206598, -0.101362616, -0.012002652, 0.008517392, 0.079471916, -0.30394664, 0.028600946, -0.03270232, -0.23564856, 0.045065008, -0.0034684737) * go_2(1.0, 0.0); + result += mat4(-0.049757, 0.07614825, 0.16394803, 0.027053174, 0.0451278, -0.09351286, -0.0042182617, 0.12332257, -0.025281021, -0.03843008, 0.12857373, -0.07611989, -0.0062898803, 0.022618141, -0.13122174, -0.03328411) * go_2(1.0, 1.0); + result += mat4(0.12251631, 0.047008447, 0.027589995, -0.12207328, -0.1510795, 0.06724553, 0.17066906, 0.16992114, -0.0026905634, -0.035480864, 0.033738773, 0.018674552, 0.028614907, -0.019945908, -0.0156899, -0.09562145) * go_3(-1.0, -1.0); + result += mat4(0.116588935, 0.14205505, 0.099545434, -0.045527786, -0.049273346, 0.20760757, 0.053965498, -0.12198069, -0.14654607, 0.041820496, 0.038068503, 0.24565905, 0.09786504, 0.18309233, 0.23802327, -0.085740186) * go_3(-1.0, 0.0); + result += mat4(-0.1262052, -0.011846116, -0.058820397, -0.019373653, -0.09569547, -0.08265971, -0.05178388, -0.020502446, -0.17525336, -0.22874829, 0.0075891856, -0.189923, 0.09809122, 0.109637566, -0.0005973885, -0.06477921) * go_3(-1.0, 1.0); + result += mat4(0.28209856, 0.11276813, 0.054377034, -0.00891202, -0.095922634, 0.071109876, -0.039932176, -0.047409832, -0.06504704, 0.11923986, 0.0013364811, -0.122095086, -0.20282102, -0.022717483, -0.115474045, 0.020858249) * go_3(0.0, -1.0); + result += mat4(-0.16130303, 0.072821185, -0.021358958, -0.11687897, -0.15543966, 0.05783285, 0.10317231, -0.12240756, 0.053357504, -0.090291016, -0.21943556, 0.46947235, 0.19072579, 0.017349033, -0.55443907, -0.10510661) * go_3(0.0, 0.0); + result += mat4(-0.4155687, 0.019206723, -0.20055711, 0.028732464, -0.1981807, 0.20637372, 0.03305817, -0.17949893, -0.21051097, 0.21483344, 0.0061496794, -0.48980987, -0.26750582, 0.09230394, -0.117223755, -0.07636286) * go_3(0.0, 1.0); + result += mat4(0.20611528, -0.00095511036, -0.21555157, -0.07065484, 0.06880411, 0.068082534, -0.10104979, 0.16050354, -0.07437897, -0.13145325, -0.017651044, 0.055096775, -0.05443345, -0.018634815, -0.011232755, -0.10835) * go_3(1.0, -1.0); + result += mat4(-0.2637829, 0.07681072, 0.015995527, 0.004554211, 0.07495561, 0.18873464, -0.14303622, 0.25786543, -0.14117226, -0.008715274, -0.17176823, -0.0006595096, -0.06566383, -0.19184378, -0.18945406, 0.20968987) * go_3(1.0, 0.0); + result += mat4(-0.03293623, 0.003399063, 0.08051177, -0.0072856937, -0.07375858, 0.075319655, -0.10791501, -0.002204552, -0.093564905, -0.122712255, -0.10658267, -0.015067637, -0.033247817, 0.09952069, -0.13724248, 0.068189256) * go_3(1.0, 1.0); + result += vec4(-0.001935585, 0.05018077, -0.0154469935, -0.034524206); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.0053346683, 0.010174534, -0.050979972, -0.06134544, -0.007238652, -0.012790015, 0.036398683, -0.09181499, 0.11328388, -0.14236617, -0.17519625, -0.34661606, 0.008069393, -0.028871074, -0.02980949, -0.0853359) * go_0(-1.0, -1.0); + result += mat4(-0.05187267, -0.09381704, 0.035209883, 0.29482442, -0.0018002815, -0.029504262, 0.2609028, -0.09480671, -0.0737553, -0.070559524, 0.081991084, 0.1513024, 0.048344653, -0.09336617, 0.0034569732, 0.10530542) * go_0(-1.0, 0.0); + result += mat4(-0.06749591, 0.0065624053, 0.013237342, 0.14225115, 0.27183163, -0.15656447, 0.031672053, 0.009592649, -0.0202286, 0.26220062, 0.19387855, -0.18505628, 0.040554795, 0.07295961, -0.13291295, -0.12600344) * go_0(-1.0, 1.0); + result += mat4(0.039192002, 0.0846215, -0.06593224, 0.28147796, 0.06301313, 0.26323164, -0.16742979, 0.22004774, -0.17470881, 0.060716614, 0.15430811, 0.18970133, 0.08858931, -0.027321626, -0.037833836, 0.07344837) * go_0(0.0, -1.0); + result += mat4(0.0633813, 0.35046157, -0.101075254, 0.015974075, 0.19010352, -0.7135035, -0.24324696, -0.42072615, 0.06825536, -0.052808974, 0.28965715, -0.0015640302, -0.27062586, 0.4279925, 0.035623744, 0.46321228) * go_0(0.0, 0.0); + result += mat4(0.02639867, 0.26469797, -0.09086266, 0.07440796, -0.192054, 0.1010368, -0.04398074, 0.056824226, -0.27057743, -0.20455118, 0.19338831, -0.21843775, 0.20736177, -0.26259273, -0.07667085, -0.19504389) * go_0(0.0, 1.0); + result += mat4(-0.007056104, 0.04284205, 0.01933733, 0.07267832, 0.0012616975, -0.30140647, -0.019223223, -0.046687007, -0.037844718, -0.014929125, 0.022630794, 0.046716493, 0.057279173, -0.08055539, -0.027891241, 0.019557232) * go_0(1.0, -1.0); + result += mat4(0.035518404, -0.10087327, 0.0011048123, -0.123707846, 0.37190285, 0.43751532, -0.022599256, -0.041709043, 0.11357196, -0.029839104, -0.056960747, -0.17228557, 0.08558022, 0.046361133, 0.021548864, 0.24297418) * go_0(1.0, 0.0); + result += mat4(-0.043598346, -0.09812348, 0.056599542, -0.09833163, -0.07193007, 0.015760094, -0.053177495, -0.015448543, 0.035163186, -0.03889347, 0.121799015, 0.15738566, -0.115644835, 0.043310717, 0.060173217, -0.059635755) * go_0(1.0, 1.0); + result += mat4(-0.111604795, 0.1678389, 0.049967546, 0.045353863, -0.013896185, 0.035128903, 0.040686198, -0.16442506, 0.1149577, -0.14343217, -0.08858, 0.02656137, 0.059526477, -0.13914491, 0.12757027, 0.034920372) * go_1(-1.0, -1.0); + result += mat4(0.15849945, 0.12067003, -0.1579611, 0.30790725, -0.041249942, 0.03948043, -0.12535375, -0.02566875, 0.3150059, 0.027081972, -0.026308673, -0.25326517, 0.016824603, -0.13551097, 0.1412756, 0.037750524) * go_1(-1.0, 0.0); + result += mat4(0.1562541, -0.041948073, -0.14951487, 0.119380556, -0.21773878, -0.019281754, 0.08185942, 0.09982689, 0.017187534, -0.18181366, -0.09270861, 0.08527679, 0.051988564, 0.08686172, -0.12665209, -0.07205808) * go_1(-1.0, 1.0); + result += mat4(0.08860466, -0.17931758, 0.10191625, -0.47623265, 0.1562338, -0.2960855, 0.013664795, 0.29452285, 0.1463958, 0.17562817, -0.41623253, -0.196999, -0.049113005, 0.0556021, 0.054452494, 0.14073615) * go_1(0.0, -1.0); + result += mat4(-0.5345973, -0.069205046, 0.37001884, 0.6955835, 0.22635284, -0.09021557, -0.04693607, -0.4458824, 0.25049326, -0.06503396, 0.07584689, 0.5394811, 0.33387923, -0.010540017, 0.038980547, -0.13371105) * go_1(0.0, 0.0); + result += mat4(-0.04414677, -0.22056313, 0.05580458, 0.11914465, 0.19864987, -0.1025625, -0.010050287, 0.15919746, -0.40589634, 0.4966349, -0.47632688, -0.022637444, 0.17247641, -0.51093113, 0.21157944, -0.2890017) * go_1(0.0, 1.0); + result += mat4(-0.034673482, -0.0075900992, -0.061077584, -0.03859898, 0.32444152, -0.14619137, -0.1375446, -0.030322462, 0.029679669, 0.079344586, -0.03862258, -0.05766807, 0.104488336, 0.006179548, -0.1168102, 0.069729604) * go_1(1.0, -1.0); + result += mat4(0.08504003, 0.042162962, -0.17509954, -0.06258286, -0.45796555, -0.061748773, 0.25438437, -0.02988987, -0.06897794, 0.105180845, -0.08879189, -0.120605074, -0.1478659, -0.13201937, -0.01755498, 0.020606143) * go_1(1.0, 0.0); + result += mat4(0.08932581, 0.1453785, -0.12802933, 0.049442187, 0.045360584, 0.16079827, -0.14142223, 0.10168491, 0.20244479, -0.17981426, 0.19759466, 0.05217847, 0.04889828, 0.06941533, -0.111836776, -0.08046399) * go_1(1.0, 1.0); + result += mat4(-0.011953735, 0.11362504, -0.122588776, -0.10408559, 0.051712614, -0.05161036, -0.068698496, -0.015663281, -0.06346889, 0.06561636, 0.03783044, 0.02756004, -0.036310352, -0.16962235, -0.062494226, 0.0069608325) * go_2(-1.0, -1.0); + result += mat4(-0.16857432, -0.17322211, 0.15971284, 0.19980437, -0.007965961, -0.015480705, 0.036090557, 0.07414387, -0.2941106, -0.24430539, 0.01070864, 0.22401866, -0.34321144, 0.09537491, -0.08020218, 0.45404655) * go_2(-1.0, 0.0); + result += mat4(-0.021609096, -0.11348408, -0.01450652, -0.063170746, 0.06990935, -0.035983834, -0.038010992, -0.10578655, 0.29232737, 0.048835874, 0.054028947, -0.12924139, -0.03058583, 0.028469706, 0.09563202, 0.085674495) * go_2(-1.0, 1.0); + result += mat4(-0.01894022, 0.037628658, -0.102314636, -0.28041583, 0.07495663, -0.058895253, 0.16422969, -0.07163792, 0.039416216, -0.13800906, -0.039811566, -0.10612402, -0.047593113, -0.28491783, 0.41632858, 0.15253194) * go_2(0.0, -1.0); + result += mat4(0.26240867, -0.05335849, -0.014135048, 0.055749495, -0.020126658, 0.2952794, -0.015241771, 0.36143306, 0.43075684, 0.1921996, -0.4329065, 0.5114495, 0.7326109, -0.054901246, -0.076693356, -0.26104695) * go_2(0.0, 0.0); + result += mat4(0.14548428, 0.14578429, 0.17193514, -0.07973242, 0.011952286, -0.047767498, 0.025101405, 0.0016503566, -0.26948047, -0.16503395, -0.061791085, 0.030557185, 0.15400517, -0.054951698, -0.14611247, 0.3550633) * go_2(0.0, 1.0); + result += mat4(-0.05926111, -0.083442695, 0.046579204, -0.017723244, 0.12846185, 0.018434443, -0.17914511, -0.077696435, 0.060048338, 0.02956987, -0.11914462, 0.057770032, -0.054673657, -0.005353606, -0.39014184, 0.08306877) * go_2(1.0, -1.0); + result += mat4(0.07357362, 0.23051825, -0.22640751, 0.080715515, -0.14467078, 0.009734264, 0.054320686, 0.24534328, -0.16038458, 0.06575425, 0.058553413, 0.17755087, 0.08184439, 0.17078212, 0.148369, -0.09309279) * go_2(1.0, 0.0); + result += mat4(-0.11160211, -0.07590204, -0.01676188, -0.062253337, 0.016433533, 0.0146132, -0.040350936, 0.06749202, -0.031521842, 0.1441664, -0.09916073, 0.050578352, -0.06560962, -0.31174552, 0.056873083, -0.077912) * go_2(1.0, 1.0); + result += mat4(0.09344025, 0.075936995, -0.1627903, -0.04781558, -0.01878236, 0.045879602, -0.11507387, -0.025356822, -0.09113391, 0.07263937, 0.08232447, 0.08727616, -0.024921807, 0.051639438, 0.006532631, -0.018751068) * go_3(-1.0, -1.0); + result += mat4(0.022455849, -0.12924309, 0.26318657, -0.32464805, -0.09627585, 0.04496843, -0.09630052, -0.025761643, -0.090804085, 0.24410398, -0.03162944, -0.1961483, 0.14065808, -0.064709485, -0.0040163463, 0.05445074) * go_3(-1.0, 0.0); + result += mat4(-0.020935195, -0.1028065, 0.0012804621, 0.02302866, -0.00924972, -0.0041193594, 0.0060590385, -0.003394384, -0.23241943, -0.023235107, 0.08077456, 0.15720141, 0.06568382, -0.09971436, 0.09056065, 0.04271102) * go_3(-1.0, 1.0); + result += mat4(-0.20997737, -0.12892777, 0.4658528, 0.13622813, -0.2867294, -0.09359254, 0.18821026, 0.25550604, -0.18562363, 0.080713026, 0.13463654, 0.045504905, -0.013133853, -0.1316404, 0.08379897, -0.00047142128) * go_3(0.0, -1.0); + result += mat4(0.3276134, 0.21952826, -0.80777377, -0.69810224, 0.34190908, -0.09293263, 0.33313555, -0.27255502, -0.24287084, -0.07741488, 0.06090265, -0.10161252, -0.37684909, 0.4678029, 0.13506591, 0.42470258) * go_3(0.0, 0.0); + result += mat4(0.080790855, -0.09707547, -0.05506975, 0.027011644, -0.1434346, 0.01363872, 0.12616752, 0.16789167, 0.1656414, -0.11586835, 0.059612263, -0.074029386, -0.19813071, 0.46032718, -0.03935981, 0.0067143585) * go_3(0.0, 1.0); + result += mat4(0.10322512, 0.0822636, -0.16766444, 0.041008063, -0.027768405, 0.23103505, 0.06737122, 0.15258405, 0.04557388, -0.18179403, 0.12489025, -0.09759324, -0.05925805, 0.04869987, 0.07329833, -0.09738542) * go_3(1.0, -1.0); + result += mat4(-0.10823879, -0.403376, 0.3264802, -0.16503738, -0.057512645, -0.20902547, -0.14862378, -0.3192005, -0.046263676, 0.12744917, -0.019174274, -0.02318789, -0.085088454, -0.05723332, 0.0039772973, 0.07991316) * go_3(1.0, 0.0); + result += mat4(0.10313916, 0.04410904, 0.03286652, 0.059946325, 0.019948404, 0.070217304, -0.017572487, 0.20332281, 0.06776308, 0.029285522, -0.14116238, -0.05864782, -0.18382367, -0.06568212, 0.11855615, 0.101256005) * go_3(1.0, 1.0); + result += vec4(-0.036374483, 0.029420665, 0.04437756, -0.04474691); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.059325468, 0.10884231, 0.018158086, 0.031802185, 0.10368743, -0.06776637, 0.048326045, -0.06312353, -0.0025675546, 0.09309577, -0.025533969, 0.029684044, 0.017237723, 0.062099144, 0.047039766, 0.050348036) * go_0(-1.0, -1.0); + result += mat4(-0.04767078, -0.06409279, 0.112965874, 0.04621161, -0.28172916, -0.13897015, -0.022806352, 0.26966885, 0.02019569, -0.10707113, -0.43058416, -0.14103983, -0.13225646, -0.020053176, -0.17319782, -0.009653082) * go_0(-1.0, 0.0); + result += mat4(0.0031349238, -0.060933832, 0.107986666, -0.019791966, -0.23946726, -0.18045186, 0.18286318, -0.05431065, 0.11742379, -0.019123906, 0.33327517, 0.07455424, -0.035427105, 0.18659347, -0.050884776, 0.019193258) * go_0(-1.0, 1.0); + result += mat4(-0.22954239, 0.011265787, -0.026520751, -0.12629737, -0.07009803, 0.44925988, -0.15938939, 0.11956771, 0.11535644, -0.1302371, 0.1235775, 0.16483483, 0.022965495, 0.110546246, 0.00064579415, -0.12753843) * go_0(0.0, -1.0); + result += mat4(0.047553673, 0.16213869, 0.7510964, 0.21228868, 0.40994287, 0.61919236, 0.3982374, -0.016163021, 0.3291035, 0.1134356, 0.12384387, -0.31114763, 0.21338554, -0.04721641, 0.122114286, 0.2717476) * go_0(0.0, 0.0); + result += mat4(-0.06529201, -0.08936482, 0.031857736, -0.02372691, 0.0416097, 0.28484538, -0.38181338, -0.05129518, 0.40150553, -0.01970737, 0.1043854, 0.11986372, -0.2267319, 0.0014845231, -0.035269983, 0.11712099) * go_0(0.0, 1.0); + result += mat4(0.079867415, -0.09982735, 0.10313241, 0.055490237, -0.42685422, -0.3431141, -0.06037366, 0.17539841, -0.010511819, -0.09743252, 0.050748866, 0.11064108, -0.09785722, -0.10230299, -0.04106169, -0.016831731) * go_0(1.0, -1.0); + result += mat4(-0.06847075, -0.026447225, -0.123430386, 0.063637204, -0.37617612, -0.09615662, -0.26226708, -0.008175561, -0.08101131, 0.11093525, -0.13149206, -0.06363292, -0.0482858, -0.2771799, 0.10528571, 0.119109035) * go_0(1.0, 0.0); + result += mat4(0.09151277, 0.029019276, 0.041349206, -0.011239478, 0.035083957, 0.05281079, -0.0742173, -0.018509442, -0.17175299, -0.4226507, -0.118186444, -0.0771296, 0.107038856, 0.0819975, 0.12445646, 0.07091557) * go_0(1.0, 1.0); + result += mat4(0.1275357, -0.097659886, -0.0114354445, 0.023900568, -0.02511702, 0.005830569, -0.010882143, -0.04046068, -0.08638482, 0.08664022, -0.15654318, 0.03333846, -0.12521335, -0.11987078, 0.028556254, -0.020760164) * go_1(-1.0, -1.0); + result += mat4(-0.38474286, -0.15288061, 0.04925842, 0.050009686, 0.23555282, 0.054784663, -0.0971203, 0.017791113, -0.35539824, -0.08806168, 0.08992579, 0.22714761, -0.047685623, -0.17510797, 0.1137738, -0.069451034) * go_1(-1.0, 0.0); + result += mat4(-0.16623408, -0.08202571, -0.03291826, 0.0016267949, 0.20682698, 0.08788948, 0.10241089, 0.019209227, -0.14802241, 0.091788374, -0.238735, -0.06633396, 0.02360112, 0.1521805, -0.022510838, -0.08931379) * go_1(-1.0, 1.0); + result += mat4(0.034280665, -0.12431295, 0.092791, 0.15279225, -0.43373865, 0.20077267, -0.15919733, -0.27969292, -0.26948065, 0.19652127, -0.27456176, 0.04137772, 0.006545539, 0.0031402514, 0.03849979, -0.10978278) * go_1(0.0, -1.0); + result += mat4(0.62025917, -0.32462567, 0.2817292, -0.18380783, -0.3338593, -0.49056754, 0.32645953, 0.4146035, 0.3773462, 0.54346967, -0.032203436, -0.14506778, -0.30044907, 0.40134314, 0.24155408, 0.24397472) * go_1(0.0, 0.0); + result += mat4(0.089335114, -0.05529855, -0.18364899, -0.153323, -0.18347202, -0.060125064, -0.29216367, -0.2717291, 0.10592963, 0.38889876, 0.25363386, 0.33723134, -0.103703365, 0.14922962, -0.21206948, -0.20289616) * go_1(0.0, 1.0); + result += mat4(-0.035760924, 0.18820894, -0.12723185, -0.018780319, 0.124459654, 0.28909087, -0.2763883, -0.45110545, 0.098143585, 0.16052029, -0.055098705, -0.14840914, -0.0019514654, 0.07090622, -0.055036955, -0.0035953245) * go_1(1.0, -1.0); + result += mat4(-0.124669634, 0.23131305, -0.05750295, -0.056296032, 0.35691026, 0.2640789, 0.49912274, 0.26795143, -0.26460487, -0.026896512, -0.07179325, 0.17373477, -0.13186656, 0.0021319336, -0.016407885, 0.3014283) * go_1(1.0, 0.0); + result += mat4(-0.09491939, 0.11503968, -0.14077829, -0.043197304, -0.061866064, -0.1574549, 0.0054375776, 0.066160634, -0.17686372, -0.26767558, -0.038844116, 0.122724466, -0.05043839, 0.063884266, 0.0064002997, -0.13583377) * go_1(1.0, 1.0); + result += mat4(0.031301867, -0.02947819, -0.0016769855, 0.12952408, -0.025022922, 0.065425046, -0.072289295, -0.071249105, 0.14579567, -0.09058119, 0.12663712, 0.1515388, 0.44767743, 0.02971349, 0.015892735, -0.08058422) * go_2(-1.0, -1.0); + result += mat4(-0.2868111, -0.10812653, -0.29182926, -0.38444322, -0.0875354, -0.07220258, 0.05978065, 0.093328245, 0.058548283, -0.013913258, -0.20954674, -0.16400063, 0.3185215, 0.068897314, 0.15869021, 0.022877626) * go_2(-1.0, 0.0); + result += mat4(0.116845705, -0.12729645, 0.056697316, -0.21263942, -0.07000074, 0.073977455, -0.09006404, -0.029770354, -0.20823102, -0.20088868, 0.15658094, 0.24306639, -0.0453592, -0.16011035, 0.08521533, -0.032264974) * go_2(-1.0, 1.0); + result += mat4(0.1114789, -0.1083731, 0.10465276, -0.08903837, -0.06455987, 0.040030345, -0.07937248, -0.20654759, -0.26873547, -0.19390975, -0.039021965, -0.025602374, -0.5575801, -0.08876011, -0.19116728, -0.2401055) * go_2(0.0, -1.0); + result += mat4(0.37626424, -0.0912155, -0.6153361, -0.71465075, 0.018208932, -0.14997734, 0.23627761, 0.20832567, 0.07427123, -0.37869486, -0.26574427, 0.187582, -0.37201726, 0.17809474, -0.02568795, 0.23900814) * go_2(0.0, 0.0); + result += mat4(-0.085337594, -0.50634587, 0.30636734, -0.2760558, 0.01893911, -0.08425695, -0.023656169, 0.021421626, 0.16813251, -0.039550815, 0.21165498, -0.027628547, -0.123874225, 0.013802332, -0.2732087, -0.09419671) * go_2(0.0, 1.0); + result += mat4(-0.07190724, -0.019237598, 0.020249542, 0.07541295, -0.03817686, 0.09266451, -0.12214172, -0.01344174, 0.03281797, 0.057655178, -0.059896503, 0.014948791, -0.13952477, 0.18810949, -0.19016883, 0.06842416) * go_2(1.0, -1.0); + result += mat4(-0.13111524, 0.14539744, -0.10212538, -0.2169032, 0.13810973, -0.12576458, 0.124372825, 0.04992259, 0.21758182, -0.22160134, 0.24321079, 0.017698256, 0.39995426, 0.074034885, 0.120019354, -0.15522505) * go_2(1.0, 0.0); + result += mat4(0.023914235, 0.1424257, 0.010302871, 0.15150794, -0.040021677, 0.015862139, 0.14459212, 0.08632827, 0.04257336, 0.055059638, 0.0030461506, 0.011985334, -0.049230937, 0.07851301, -0.05119983, -0.111701734) * go_2(1.0, 1.0); + result += mat4(0.04485158, 0.116597414, 0.00014909732, -0.012128512, 0.15801767, 0.18273115, -0.033926453, 0.05170487, -0.040683754, -0.18606974, 0.08324687, 0.069539666, 0.07098698, -0.014132968, 0.029499048, -0.07263477) * go_3(-1.0, -1.0); + result += mat4(0.04309544, 0.089722805, -0.018306322, 0.29061043, 0.15191254, 0.15917647, 0.0073858183, 0.039199475, 0.42514518, -0.053955313, 0.10820046, -0.09134685, -0.3087313, -0.16339037, -0.05226669, 0.044995327) * go_3(-1.0, 0.0); + result += mat4(0.008636428, 0.029086163, -0.09151674, -0.36466715, -0.0128008155, 0.018820466, -0.02700147, -0.0064047636, 0.28287655, 0.02709404, -0.05233492, -0.08967187, -0.042183813, -0.13990502, -0.005085154, -0.028511493) * go_3(-1.0, 1.0); + result += mat4(0.00022532263, -0.09108507, 0.0089569865, 0.052016005, -0.19314727, -0.355347, 0.08082937, 0.2134498, 0.21036889, -0.10165983, 0.20334485, 0.14575538, 0.017676214, -0.13149881, -0.018741794, -0.019599862) * go_3(0.0, -1.0); + result += mat4(-0.20513605, 0.47578803, -0.18631598, 0.2535432, -0.049522053, -0.37224755, 0.11227206, -0.37000927, 0.19969453, -0.47287735, -0.07506754, -0.0957071, 0.82927394, -0.54057014, 0.5800732, 0.08937558) * go_3(0.0, 0.0); + result += mat4(-0.022189412, 0.14622113, -0.4772564, -0.31178755, 0.10667427, -0.07335338, 0.06144331, 0.00056827103, -0.08263861, -0.009126272, -0.22802618, -0.20760304, 0.12688845, -0.061324466, 0.33361357, 0.38350767) * go_3(0.0, 1.0); + result += mat4(0.021188622, 0.1151918, -0.10654739, -0.03341855, 0.24870358, -0.06689332, 0.11881217, -0.0045951125, -0.039464932, -0.030190004, 0.014174111, -0.025356272, 0.07469406, -0.0059695644, 0.008267219, -0.0991054) * go_3(1.0, -1.0); + result += mat4(-0.009981438, -0.36484948, 0.04801225, 0.22368562, -0.055985868, 0.229039, -0.10823553, 0.1477355, -0.0091677625, 0.06279847, 0.034393013, 0.031901076, 0.28783056, 0.086422645, 0.20860936, 0.054018307) * go_3(1.0, 0.0); + result += mat4(-0.08720452, -0.07756267, 0.018853918, -0.014108689, -0.019337144, 0.021249043, -0.05633926, -0.109904505, -0.088990815, 0.16876367, -0.13149975, -0.054357648, 0.08588134, -0.10262266, 0.12052009, 0.05154292) * go_3(1.0, 1.0); + result += vec4(-0.010602045, 0.053976092, 0.008913503, 0.0011945717); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.105475314, -0.07022547, -0.16326137, -0.12503424, -0.004623021, -0.0143323885, 0.042996034, 0.03422294, -0.38310882, -0.4431925, -0.28772846, -0.3213578, -0.018014904, 0.02429277, -0.07177951, -0.04458822) * g_0; + result += mat4(-0.0973233, -0.032439478, -0.08420249, -0.054693196, 0.012960555, 0.06929602, 0.004247494, 0.061315402, -0.09607745, -0.16862066, 0.01537482, -0.038459156, 0.019662246, 0.059920583, -0.1071646, -0.06478967) * g_1; + result += mat4(0.15711947, 0.0754732, 0.17891979, 0.098270796, 0.14122486, 0.14893766, 0.12408279, 0.14845194, 0.16199848, 0.14090912, 0.13496809, 0.1119815, 0.03974558, -0.057513904, 0.09213575, -0.0012252429) * g_2; + result += mat4(-0.011343602, -0.02488338, 0.07799659, 0.06503721, 0.06380687, 0.048929837, -0.05555838, -0.050519127, 0.14673206, 0.18085165, 0.07261422, 0.09738158, 0.07395791, 0.005573146, -0.05454926, -0.13565786) * g_3; + result += mat4(-0.08591514, -0.05664865, 0.23980616, 0.24876402, 0.19052829, 0.011938714, 0.21487322, 0.058656186, 0.036630988, 0.14918756, 0.013127693, 0.13092093, -0.37889576, -0.4068804, -0.27258882, -0.30605716) * g_4; + result += mat4(-0.25149816, -0.21979512, -0.24949454, -0.20483162, -0.10972783, -0.17315808, -0.08562763, -0.16086778, 0.044681527, 0.050807394, -0.019424994, -0.022418005, 0.10039492, -0.013666552, -0.22373566, -0.34493732) * g_5; + result += mat4(0.1419155, 0.081392206, -0.18103191, -0.2122926, -0.1445937, -0.015969204, -0.12368782, -0.0044421684, -0.09534078, -0.14815839, -0.1052107, -0.16341865, 0.3050403, 0.34488317, 0.16171226, 0.18700944) * g_6; + result += mat4(0.12444696, 0.08712589, 0.06266247, 0.031022022, 0.17707655, 0.24904409, 0.20961654, 0.2610619, -0.099262595, -0.06900819, -0.034567446, -0.020191457, -0.1468561, -0.04683958, 0.14910224, 0.244686) * g_7; + result += mat4(-0.002428158, -0.012889509, 0.0006541127, -0.0058380975, 0.096147396, 0.07791617, 0.119144954, 0.11699654, -0.024602454, -0.07894611, -0.00021709128, -0.03979557, 0.0028512406, -0.015790012, 0.0082511455, 0.029357092) * g_8; + result += mat4(-0.01410329, -0.004162405, -0.09005045, -0.07753674, 0.004509965, -0.024188736, 0.13799691, 0.10589621, -0.023018798, 0.0064198375, -0.103344224, -0.07463909, -0.060048997, -0.071094714, -0.13042289, -0.14482167) * g_9; + result += mat4(-0.009015246, 0.01581748, -0.035448726, -0.012348933, -0.101627484, -0.05530413, -0.14063041, -0.121775225, 0.074719116, 0.033839386, 0.045573987, -0.006698053, 0.0015141299, 0.003634417, 0.017102007, 0.0074890694) * g_10; + result += mat4(0.0042357175, 0.018735386, 0.058959343, 0.057424515, -0.021633089, -0.037194982, -0.14109972, -0.1506368, 0.004357002, -0.006871023, 0.05337361, 0.039684236, 0.087463334, 0.07772685, 0.12278512, 0.1224218) * g_11; + result += mat4(0.018359886, 0.046934873, -0.008225237, 0.020650858, -0.03961538, -0.014779162, -0.04161338, -0.00953579, 0.0017313146, 0.0068857935, -0.0024282748, 0.0047545764, 0.02635904, 0.027336216, 0.02701322, 0.029939381) * g_12; + result += mat4(-0.00067966996, 0.024480496, -0.015218739, -0.010472019, -0.03994461, -0.052318517, -0.04450191, -0.043226667, -0.03166469, -0.03799331, 0.015428865, -0.018422252, 0.00040845043, 0.03558268, -0.0099401595, -0.00054432114) * g_13; + result += mat4(-0.0032104475, 0.019604867, -0.02486679, 0.002134673, 0.014368818, -0.0013395248, 0.017318068, 0.0021403218, -0.02198377, 0.010297547, -0.041619625, -0.02740482, -0.067249276, -0.03040953, -0.021304253, -0.009557115) * g_14; + result += mat4(-0.019099236, -0.037010793, 0.013720462, 0.023708181, 0.016356282, -0.00028589502, -0.010570909, -0.009186907, 0.03493662, 0.055599142, -0.017043956, 0.004204044, -0.013573257, -0.013537684, 0.008151195, 0.0074913655) * g_15; + result += mat4(0.009309031, -0.0014795153, 0.025114728, -0.0066442797, -0.012085473, -0.0030560147, 0.002144206, 0.0009732741, 0.022301642, -0.0091133695, 0.0011837826, -0.020275833, -0.021349607, -0.011693419, -0.018912962, -0.022418445) * g_16; + result += mat4(-0.0045772395, 0.031085191, 0.01215795, 0.023887333, 0.023408212, 0.0005998807, 0.011254428, -0.004634461, 0.016601006, 0.046663348, 0.031117432, 0.04910873, -0.113230005, -0.035702843, -0.058746565, -0.053893737) * g_17; + result += mat4(-0.020218112, 0.056803435, -0.0037077996, 0.05123925, -0.016713811, -0.05551032, -0.005916611, -0.037839632, -0.007671626, -0.009099201, -0.0010055836, 0.003332688, 0.020744357, 0.01957675, 0.057906736, 0.041446246) * g_18; + result += mat4(0.022438819, 0.04616756, 0.035925094, 0.0639705, 0.0009332198, 0.020964272, -0.010805394, 0.031757344, 0.051255573, 0.032838948, 0.00055445684, -0.03195623, 0.04753827, 0.016436901, 0.04788274, 0.022093765) * g_19; + result += mat4(0.03479086, 0.035946105, 0.04343359, 0.04015664, 0.06081792, 0.061758887, 0.10128842, 0.007471392, -0.027261607, -0.01290544, -0.029938918, -0.050834358, -0.015550162, 0.0072828676, -0.04580556, -0.029642029) * g_20; + result += mat4(0.011150116, 0.029789668, -0.00354488, 0.045047592, -0.018265083, -0.020843878, 0.015457328, 0.0053232997, 0.0791804, -0.028661052, 0.079342775, -0.039631505, 0.14613943, 0.08323415, 0.049641483, 0.047863442) * g_21; + result += mat4(-0.103034586, -0.107580125, 0.00044325445, 0.007830247, -0.017059505, 0.010152936, -0.02845979, -0.01841766, -0.10722863, -0.025262646, -0.07402096, -0.025055556, 0.0013303137, 0.12574737, -0.0161103, 0.06077798) * g_22; + result += mat4(-0.0420636, -0.062703885, -0.06476972, -0.10516001, 0.018120673, 0.024305122, -0.013997766, 0.015815413, -0.06317691, -0.03968166, -0.054052643, -0.016300509, -0.08255892, -0.01612941, -0.04194852, -0.012637189) * g_23; + result += mat4(0.042659573, -0.10762496, -0.077143244, 0.12583935, -0.022020226, -0.0042312425, -0.016734738, 0.027007964, -0.06609771, -0.056038737, -0.0058528963, 0.035508137, -0.019722374, -0.055094264, 0.010977759, -0.009833099) * g_24; + result += mat4(0.063830875, -0.019885639, 0.055574782, 0.039456647, 0.01576898, -0.1389799, 0.063411795, -0.11600623, -0.013968303, -0.03318867, -0.06806915, -0.09373464, -0.022723546, -0.03329239, 0.014282872, 0.027576538) * g_25; + result += mat4(-0.018100513, 0.06204485, 0.010761461, -0.045085587, 0.009286288, 0.02310671, 0.10633246, -0.090849996, 0.13112675, -0.01639808, 0.0022725316, -0.076779045, 0.11831251, 0.1460306, -0.10849466, -0.07749171) * g_26; + result += mat4(-0.15850247, 0.118011266, -0.10121594, -0.007109052, 0.071873754, 0.06954878, 0.0377852, 0.044174008, -0.062925555, -0.01758927, 0.1416964, 0.17206357, -0.035632525, -0.04652215, 0.061932907, 0.034339) * g_27; + result += vec4(-0.11952045, -0.10779418, -0.0626279, -0.042614873); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.009000901, -0.018048609, 0.013095594, 0.002321373, 0.0004716619, 0.00504148, -0.016826658, -0.014922383, 0.15059204, 0.16593806, 0.115392484, 0.12520894, 0.05049829, 0.060210057, 0.086421266, 0.07242362) * g_0; + result += mat4(0.06268658, 0.030466434, 0.07876877, 0.04129863, 0.04142328, 0.009963961, 0.051785357, 0.012811113, 0.1295883, 0.139931, 0.07733839, 0.08014211, 0.07156476, 0.0342396, 0.051614303, 0.043559864) * g_1; + result += mat4(0.00041542648, 0.016051646, -0.011512418, 0.013076814, 0.03734479, 0.02791584, 0.012426691, 0.022044811, -0.034128398, -0.027107332, -0.021998279, -0.012139807, -0.033177473, -0.016310865, -0.078221664, -0.041203145) * g_2; + result += mat4(-0.008398536, -0.010332053, -0.050231732, -0.039691273, -0.042082537, -0.030281143, -0.014039778, -0.0020190612, -0.11956351, -0.13638765, -0.09794402, -0.10228069, -0.08344795, -0.07944541, -0.004189214, -0.028206991) * g_3; + result += mat4(0.0002908945, -0.00831185, -0.06870294, -0.083311856, -0.024992501, 0.0038247898, -0.049389005, -0.020098582, -0.0135326125, -0.040408995, -0.012083491, -0.042174604, 0.16112538, 0.13720983, 0.13937058, 0.10870099) * g_4; + result += mat4(0.078961425, 0.082619205, 0.06910667, 0.06579004, -0.0077012256, -0.00038692637, 0.00015553503, -0.012561662, 0.00053048285, -0.01461681, 0.02600344, 0.024862211, -0.06958201, -0.048246548, 0.058762506, 0.036662634) * g_5; + result += mat4(-0.023527982, -0.0028001352, 0.047800142, 0.09616409, 0.049143843, 0.030836122, 0.057244994, 0.025672587, 0.027565151, 0.039868724, 0.045296676, 0.04623187, -0.124759234, -0.14106254, -0.06337279, -0.076839216) * g_6; + result += mat4(-0.0911771, -0.064436875, -0.05308137, -0.022082496, -0.0040269364, 0.0014464161, -0.0029555515, 0.016098293, -0.026650434, -0.014081368, -0.06747348, -0.05481826, 0.097423114, 0.08620988, -0.01607732, -0.015440677) * g_7; + result += mat4(-0.014001735, -0.015001655, -0.013250577, -0.009930805, 0.04885879, 0.07092224, 0.025783395, 0.03792237, -0.04332465, -0.06244993, -0.046748653, -0.07132349, -0.0053951666, -0.016514057, 0.023807624, 0.044013456) * g_8; + result += mat4(-0.009097996, -0.016898679, -0.05043909, -0.063178614, -0.016210863, -0.02157998, -0.02654472, -0.042961173, 0.012103852, 0.019015301, 0.02492281, 0.03389976, 0.015276502, 0.009577683, 0.04132527, -0.00070621347) * g_9; + result += mat4(-0.0057500796, 0.00728164, -0.003422421, 0.0038979584, -0.03127353, -0.019125199, -0.012988815, -0.031890683, 0.09352588, 0.019210607, 0.09824038, 0.016637104, 0.010692808, 0.022393884, 0.008312123, 0.014120716) * g_10; + result += mat4(0.013895599, 0.023097904, 0.009370535, 0.014099512, 0.0124661345, -0.015076684, 0.03287286, 0.005912471, -0.03944815, -0.020340785, -0.06822037, -0.059383288, 0.03634978, 0.007832939, -0.007142306, -0.0061968984) * g_11; + result += mat4(0.033002097, 0.0516016, -0.021056438, 0.005715988, -0.02223013, -0.007962324, -0.024417123, -0.0014790733, 0.002167189, 0.00043749413, -0.007284963, -0.0027283782, 0.026238248, 0.01756047, 0.008969755, 0.014201024) * g_12; + result += mat4(0.011576685, 0.02087598, 0.0026766327, -0.0041780816, -0.05277701, -0.05412841, -0.05958835, -0.050426245, -0.00662945, -0.021645393, 0.03423904, -0.0064581474, -0.030403355, 0.018391011, -0.026089542, -0.0051510665) * g_13; + result += mat4(-0.046202097, -0.0066081425, -0.03698851, 0.0034165455, -0.011859245, -0.020945566, -0.0028196946, -0.010053285, -0.011400397, 0.030595876, -0.018915813, 0.006780077, -0.060040582, -0.009586898, -0.004477886, 0.011279908) * g_14; + result += mat4(-0.028692413, -0.032535568, 0.0017473884, 0.02207169, 0.0192618, 0.008956797, -0.0033381556, 0.006326402, 0.0169569, 0.041449737, -0.02611751, 0.0006410355, 0.006233776, 0.0008467914, 0.011884985, 0.009222136) * g_15; + result += mat4(0.017076496, -0.0045380928, 0.03444613, -0.009804047, -0.004829834, -0.004889702, 0.0057807956, 0.0015014127, 0.03458368, -0.0035773432, -0.007769679, -0.032449644, -0.021396799, -0.017612215, -0.012764735, -0.025224172) * g_16; + result += mat4(-0.011824532, 0.02335273, 0.00764845, 0.019215155, 0.022186808, 0.0066053392, 0.0071694753, -0.0036117272, 0.032144524, 0.05025988, 0.03982363, 0.052400436, -0.10555114, -0.03809396, -0.05334183, -0.05524487) * g_17; + result += mat4(-0.024599254, 0.058805298, 0.00069874676, 0.06263439, -0.018460508, -0.053566024, -0.0022889362, -0.035818785, -0.0135854995, -0.015712813, 0.0012080368, 0.005957637, 0.009450094, 0.03186346, 0.059969924, 0.057706963) * g_18; + result += mat4(0.026783831, 0.05475865, 0.027565574, 0.06032707, -0.0015639095, 0.024381682, -0.010199071, 0.037544634, 0.039889377, 0.03318851, -0.016529158, -0.0343188, 0.045666486, 0.021665907, 0.042189375, 0.02444145) * g_19; + result += mat4(0.03791853, 0.043746054, 0.056224477, 0.05098111, 0.075256795, 0.074653305, 0.116220035, 0.01853866, -0.04133627, -0.009134169, -0.0420953, -0.05210053, -0.021748418, 0.004422131, -0.05422814, -0.035721727) * g_20; + result += mat4(0.013814317, 0.03149986, -0.004971173, 0.04782029, -0.01693027, -0.017984565, 0.019328078, 0.008521426, 0.0845641, -0.027555496, 0.08150416, -0.04623306, 0.16494128, 0.09300831, 0.074097835, 0.0627848) * g_21; + result += mat4(-0.10307174, -0.112654425, -0.005589254, -0.0062108496, -0.012491583, 0.011512013, -0.03142282, -0.023683488, -0.099848576, -0.031290524, -0.07236223, -0.037460987, 0.008760208, 0.1473594, -0.009216949, 0.07251379) * g_22; + result += mat4(-0.04915367, -0.07121096, -0.06572174, -0.10967046, 0.019548079, 0.023992533, -0.019842865, 0.012366459, -0.07207817, -0.04237792, -0.054463565, -0.015374731, -0.092071235, -0.020860313, -0.054475963, -0.02303954) * g_23; + result += mat4(0.04160816, -0.118427366, -0.08661791, 0.12787233, -0.01990174, 0.0012960634, -0.016121056, 0.031429946, -0.06830865, -0.057132352, -0.0022302791, 0.03845933, -0.026981276, -0.063532256, 0.011805961, -0.009616678) * g_24; + result += mat4(0.07094465, -0.022284096, 0.060676746, 0.042626668, 0.011207256, -0.14960343, 0.05866539, -0.12742221, -0.021092903, -0.039463162, -0.07879986, -0.10232898, -0.026127055, -0.038111385, 0.019167708, 0.032637425) * g_25; + result += mat4(-0.014270794, 0.07157703, 0.013714203, -0.047801998, 0.0060221693, 0.022788104, 0.10630103, -0.09606649, 0.12690987, -0.017079826, -0.0077072172, -0.082584485, 0.13256006, 0.16012523, -0.10966099, -0.07927409) * g_26; + result += mat4(-0.17171615, 0.12114435, -0.10746857, -0.0074188868, 0.07854815, 0.07759372, 0.04310874, 0.051465522, -0.05963588, -0.014506484, 0.15522978, 0.18746643, -0.03845241, -0.0489534, 0.05837339, 0.032978524) * g_27; + result += vec4(0.05825913, 0.051491056, 0.038389463, 0.03321517); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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.2006987, 0.17832398, 0.26342955, 0.23500517, -0.012297829, -0.009008417, -0.039950736, -0.039973143, 0.34800097, 0.32196492, 0.30505183, 0.29214156, -0.21410535, -0.21166423, -0.16437815, -0.19172792) * g_0; + result += mat4(-0.008804151, -0.07085123, 0.013577994, -0.05192605, -0.08981402, -0.14702585, -0.09145975, -0.14835288, -0.15882517, -0.14785844, -0.2381482, -0.22867912, 0.010898514, 0.031957507, 0.040597558, 0.078252345) * g_1; + result += mat4(-0.21658613, -0.1803885, -0.25954962, -0.20839214, -0.09597461, -0.09222647, -0.03909875, -0.03456191, -0.19723509, -0.16976605, -0.2041716, -0.1751425, 0.22901416, 0.24922715, 0.1800083, 0.23346905) * g_2; + result += mat4(0.110020064, 0.103858806, 0.052446555, 0.061105963, 0.032901537, 0.07140097, 0.11518793, 0.13860466, 0.13930707, 0.12712196, 0.19071707, 0.18399614, -0.08036458, -0.07349171, 0.021504594, 0.0024937368) * g_3; + result += mat4(0.059065036, 0.00698257, -0.099622436, -0.15676253, -0.10942482, -0.04869624, -0.13654554, -0.07341863, -0.014169851, -0.06390744, 0.016093008, -0.04540248, 0.29041344, 0.24451919, 0.26292154, 0.22136512) * g_4; + result += mat4(0.107946776, 0.097849295, 0.10266876, 0.09360328, 0.08931344, 0.08896482, 0.046495322, 0.044040844, -0.020361643, -0.030911373, 0.026598722, 0.019815676, -0.072677925, -0.042410247, 0.14127749, 0.13434973) * g_5; + result += mat4(-0.08809133, -0.03476601, 0.06420393, 0.14691353, 0.09296839, 0.06162562, 0.10992992, 0.0615685, 0.0168736, 0.06520281, 0.020010693, 0.046929173, -0.2219495, -0.21249783, -0.14622301, -0.14599061) * g_6; + result += mat4(-0.13251069, -0.08977477, -0.08930347, -0.045490693, -0.10980218, -0.09510885, -0.07299872, -0.064053826, 0.011365247, 0.014091111, -0.054976214, -0.056936122, 0.10148144, 0.07451642, -0.08138598, -0.10161657) * g_7; + result += mat4(-0.0075518745, -0.005738622, -0.007577811, -0.00032088626, 0.032614008, 0.04858922, 0.00054855715, 0.011565026, -0.022675224, -0.034442738, -0.03580643, -0.05069376, -0.0020376542, -0.01505518, 0.019388825, 0.03746554) * g_8; + result += mat4(-0.011413172, -0.016877454, -0.048923567, -0.055012885, -0.007709447, -0.016109072, -0.047132388, -0.07146396, 0.002604099, 0.00014681708, 0.03429465, 0.043265607, 0.029014807, 0.03337814, 0.07582056, 0.041660666) * g_9; + result += mat4(-0.020768544, -0.014378527, -0.01999972, -0.01385916, -0.012264676, -0.009959511, 0.0119015165, -0.016787319, 0.07266734, -0.0029914333, 0.08549183, 0.004367342, 0.008236065, 0.020370748, 0.0043428927, 0.007301017) * g_10; + result += mat4(0.011654731, 0.025318999, -0.0029306612, 0.007426217, -0.00010868774, -0.020845588, 0.041991003, 0.024147986, -0.030741083, -0.012328637, -0.06617428, -0.06103115, 0.010491518, -0.013338451, -0.04666634, -0.046481613) * g_11; + result += mat4(0.0268538, 0.043785956, -0.01799385, 0.008743307, -0.013197458, -0.015049436, -0.017189734, -0.0047999253, -0.00059730676, -0.0008936153, -0.016006093, -0.0073406673, 0.014875853, 0.011491735, 9.819833e-05, 0.0073417514) * g_12; + result += mat4(0.019930955, 0.027112626, 0.01307941, 0.005268897, -0.060213763, -0.050415818, -0.069006495, -0.051405095, 0.0036414433, -0.008606397, 0.037427194, -0.0018103109, -0.037434716, 0.010187546, -0.026227329, -0.0033639795) * g_13; + result += mat4(-0.03634798, 0.0007093891, -0.026819145, 0.009025687, -0.01750318, -0.020098133, -0.0063864207, -0.006606755, 0.0008565766, 0.028647956, -0.0024974607, 0.015250743, -0.048884176, -0.004310685, -0.0010757383, 0.00974984) * g_14; + result += mat4(-0.031253602, -0.031743724, -0.009083253, 0.0145388115, 0.02048611, 0.0058071036, -0.0038228377, 0.00049654936, 0.0059105973, 0.03437731, -0.025785418, 0.004187733, 0.009980489, -4.08268e-05, 0.009384428, 0.0019492983) * g_15; + result += mat4(0.012587245, -0.0032654977, 0.029739188, -0.009440694, -0.0018237908, -0.0080032, 0.010499013, 0.0012466761, 0.03461923, -0.0060207327, -0.008771263, -0.034545746, -0.015023473, -0.008901684, -0.011490296, -0.01976464) * g_16; + result += mat4(-0.009444331, 0.020809013, 0.009985801, 0.020350901, 0.013234775, 0.004382635, -0.0007761826, -0.005247294, 0.034115106, 0.05190378, 0.039124765, 0.050993033, -0.0898732, -0.030428126, -0.044204578, -0.052484997) * g_17; + result += mat4(-0.020434443, 0.053520404, 0.0007571144, 0.05895061, -0.018991265, -0.043982152, -0.004035192, -0.025452444, -0.012197152, -0.013770753, 0.0012919102, 0.003996682, 0.0056104586, 0.025686186, 0.05128293, 0.05105745) * g_18; + result += mat4(0.030201769, 0.052521482, 0.029641917, 0.05559941, 0.0018870027, 0.020112835, -0.0043867202, 0.035877172, 0.02961142, 0.02163634, -0.027972858, -0.040669747, 0.03393723, 0.013455979, 0.03313782, 0.01968004) * g_19; + result += mat4(0.034817442, 0.04045217, 0.054816365, 0.05092461, 0.06600807, 0.062576495, 0.09923777, 0.006663677, -0.039958935, -0.010009866, -0.041522443, -0.04959681, -0.020962957, 0.003845031, -0.04910384, -0.03233655) * g_20; + result += mat4(0.015433112, 0.028965838, -0.0055138534, 0.042267464, -0.012690953, -0.009424165, 0.017896382, 0.01186686, 0.07231686, -0.038834292, 0.07033086, -0.052548733, 0.15721905, 0.09334892, 0.07676042, 0.06701375) * g_21; + result += mat4(-0.09797534, -0.11201098, -0.0037222446, -0.008105951, -0.01152357, 0.012165641, -0.029051905, -0.021293389, -0.09600697, -0.028819272, -0.069084235, -0.035421908, 0.0054322914, 0.14168966, -0.0200274, 0.06505187) * g_22; + result += mat4(-0.05034882, -0.06622497, -0.062471002, -0.100628324, 0.018115615, 0.019867867, -0.018836644, 0.007562053, -0.06317378, -0.034458403, -0.047243826, -0.009989589, -0.08270121, -0.018645251, -0.05160367, -0.023690399) * g_23; + result += mat4(0.03897899, -0.10862529, -0.081805214, 0.1202324, -0.021866674, -0.00041882638, -0.018235246, 0.027227063, -0.0656312, -0.053432237, -0.0029235696, 0.03549672, -0.022848906, -0.057047505, 0.013400545, -0.0072439364) * g_24; + result += mat4(0.06879516, -0.018637763, 0.058062725, 0.041045032, 0.011702424, -0.13693465, 0.05674195, -0.11679955, -0.022940686, -0.03856922, -0.07531371, -0.09692582, -0.019870926, -0.032572743, 0.026138868, 0.037639033) * g_25; + result += mat4(-0.015270301, 0.06478719, 0.011016518, -0.04533957, 0.00688319, 0.024815995, 0.10159924, -0.08467507, 0.11939162, -0.01939453, -0.0058689644, -0.077881604, 0.118726775, 0.14489114, -0.10831982, -0.07972515) * g_26; + result += mat4(-0.16734359, 0.10685446, -0.102714166, -0.010225307, 0.07306756, 0.07014447, 0.040464073, 0.04688462, -0.05489714, -0.01525318, 0.14690581, 0.17514132, -0.03250648, -0.03688211, 0.05047889, 0.03078089) * g_27; + result += vec4(0.06614842, 0.045779686, 0.032838725, 0.017085627); + return result; +} +//!DESC Anime4K-v3.2-Upscale-Denoise-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/shaders/Anime4K_Upscale_DoG_x2.glsl b/shaders/Anime4K_Upscale_DoG_x2.glsl new file mode 100644 index 0000000..829acbb --- /dev/null +++ b/shaders/Anime4K_Upscale_DoG_x2.glsl @@ -0,0 +1,143 @@ +// 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-DoG-x2-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-DoG-x2-Kernel-X +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE GAUSS_X2 +//!COMPONENTS 3 + +#define L_tex LINELUMA_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a = L_tex(pos - d).x; + float b = L_tex(pos).x; + float c = L_tex(pos + d).x; + + return vec2(min3v(a, b, c), max3v(a, b, c)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(HOOKED_pt.x, 0)), minmax3(HOOKED_pos, vec2(HOOKED_pt.x, 0)), 0); +} + + +//!DESC Anime4K-v3.2-Upscale-DoG-x2-Kernel-Y +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND GAUSS_X2 +//!SAVE GAUSS_X2 +//!COMPONENTS 3 + +#define L_tex GAUSS_X2_tex + +float max3v(float a, float b, float c) { + return max(max(a, b), c); +} +float min3v(float a, float b, float c) { + return min(min(a, b), c); +} + +vec2 minmax3(vec2 pos, vec2 d) { + float a0 = L_tex(pos - d).y; + float b0 = L_tex(pos).y; + float c0 = L_tex(pos + d).y; + + float a1 = L_tex(pos - d).z; + float b1 = L_tex(pos).z; + float c1 = L_tex(pos + d).z; + + return vec2(min3v(a0, b0, c0), max3v(a1, b1, c1)); +} + +float lumGaussian7(vec2 pos, vec2 d) { + float g = (L_tex(pos - (d + d)).x + L_tex(pos + (d + d)).x) * 0.06136; + g = g + (L_tex(pos - d).x + L_tex(pos + d).x) * 0.24477; + g = g + (L_tex(pos).x) * 0.38774; + + return g; +} + + +vec4 hook() { + return vec4(lumGaussian7(HOOKED_pos, vec2(0, HOOKED_pt.y)), minmax3(HOOKED_pos, vec2(0, HOOKED_pt.y)), 0); +} + +//!DESC Anime4K-v3.2-Upscale-DoG-x2-Apply +//!WHEN OUTPUT.w MAIN.w / 1.200 > OUTPUT.h MAIN.h / 1.200 > * +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!BIND GAUSS_X2 +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * + +#define STRENGTH 0.8 //De-blur proportional strength, higher is sharper. + +#define L_tex LINELUMA_tex + +vec4 hook() { + + float c = (L_tex(HOOKED_pos).x - GAUSS_X2_tex(HOOKED_pos).x) * STRENGTH; + float cc = clamp(c + L_tex(HOOKED_pos).x, GAUSS_X2_tex(HOOKED_pos).y, GAUSS_X2_tex(HOOKED_pos).z) - L_tex(HOOKED_pos).x; + + //This trick is only possible if the inverse Y->RGB 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) + cc; +} + + + diff --git a/shaders/Anime4K_Upscale_Original_x2.glsl b/shaders/Anime4K_Upscale_Original_x2.glsl new file mode 100644 index 0000000..fea93f4 --- /dev/null +++ b/shaders/Anime4K_Upscale_Original_x2.glsl @@ -0,0 +1,277 @@ +// 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-Original-x2-Luma +//!HOOK MAIN +//!BIND HOOKED +//!SAVE LINELUMA +//!COMPONENTS 1 + +float get_luma(vec4 rgba) { + return dot(vec4(0.299, 0.587, 0.114, 0.0), rgba); +} + +vec4 hook() { + return vec4(get_luma(HOOKED_tex(HOOKED_pos)), 0.0, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-Original-x2-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LINELUMA +//!SAVE LUMAD +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LINELUMA_tex(HOOKED_pos + vec2(-d.x, 0.0)).x; + float c = LINELUMA_tex(HOOKED_pos).x; + float r = LINELUMA_tex(HOOKED_pos + vec2(d.x, 0.0)).x; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + //Computes the luminance's gradient + return vec4(xgrad, ygrad, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Upscale-Original-x2-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAD +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + + +/* --------------------- SETTINGS --------------------- */ + +//Strength of edge refinement, good values are between 0.2 and 4 +#define REFINE_STRENGTH 0.5 + + +/* --- MODIFY THESE SETTINGS BELOW AT YOUR OWN RISK --- */ + +//Bias of the refinement function, good values are between 0 and 1 +#define REFINE_BIAS 0.0 + +//Polynomial fit obtained by minimizing MSE error on image +#define P5 ( 11.68129591) +#define P4 (-42.46906057) +#define P3 ( 60.28286266) +#define P2 (-41.84451327) +#define P1 ( 14.05517353) +#define P0 (-1.081521930) + +/* ----------------- END OF SETTINGS ----------------- */ + +float power_function(float x) { + float x2 = x * x; + float x3 = x2 * x; + float x4 = x2 * x2; + float x5 = x2 * x3; + + return P5*x5 + P4*x4 + P3*x3 + P2*x2 + P1*x + P0; +} + +vec4 hook() { + vec2 d = HOOKED_pt; + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAD_tex(HOOKED_pos + vec2(0.0, -d.y)).x; + float cx = LUMAD_tex(HOOKED_pos).x; + float bx = LUMAD_tex(HOOKED_pos + vec2(0.0, d.y)).x; + + + float ty = LUMAD_tex(HOOKED_pos + vec2(0.0, -d.y)).y; + //float cy = LUMAD_tex(HOOKED_pos).y; + float by = LUMAD_tex(HOOKED_pos + vec2(0.0, d.y)).y; + + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by); + + //Computes the luminance's gradient + float sobel_norm = clamp(sqrt(xgrad * xgrad + ygrad * ygrad), 0.0, 1.0); + + float dval = clamp(power_function(clamp(sobel_norm, 0.0, 1.0)) * REFINE_STRENGTH + REFINE_BIAS, 0.0, 1.0); + + return vec4(sobel_norm, dval, 0.0, 0.0); +} + +//!DESC Anime4K-v3.2-Upscale-Original-x2-Kernel-X +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!SAVE LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + + +vec4 hook() { + vec2 d = HOOKED_pt; + + if (LUMAD_tex(HOOKED_pos).y < 0.1) { + return vec4(0.0); + } + + //[tl t tr] + //[ l c r] + //[bl b br] + float l = LUMAD_tex(HOOKED_pos + vec2(-d.x, 0.0)).x; + float c = LUMAD_tex(HOOKED_pos).x; + float r = LUMAD_tex(HOOKED_pos + vec2(d.x, 0.0)).x; + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (-l + r); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (l + c + c + r); + + + return vec4(xgrad, ygrad, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Upscale-Original-x2-Kernel-Y +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAMM +//!SAVE LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * +//!COMPONENTS 2 + +vec4 hook() { + vec2 d = HOOKED_pt; + + if (LUMAD_tex(HOOKED_pos).y < 0.1) { + return vec4(0.0); + } + + //[tl t tr] + //[ l cc r] + //[bl b br] + float tx = LUMAMM_tex(HOOKED_pos + vec2(0.0, -d.y)).x; + float cx = LUMAMM_tex(HOOKED_pos).x; + float bx = LUMAMM_tex(HOOKED_pos + vec2(0.0, d.y)).x; + + float ty = LUMAMM_tex(HOOKED_pos + vec2(0.0, -d.y)).y; + //float cy = LUMAMM_tex(HOOKED_pos).y; + float by = LUMAMM_tex(HOOKED_pos + vec2(0.0, d.y)).y; + + //Horizontal Gradient + //[-1 0 1] + //[-2 0 2] + //[-1 0 1] + float xgrad = (tx + cx + cx + bx); + + //Vertical Gradient + //[-1 -2 -1] + //[ 0 0 0] + //[ 1 2 1] + float ygrad = (-ty + by); + + float norm = sqrt(xgrad * xgrad + ygrad * ygrad); + if (norm <= 0.001) { + xgrad = 0.0; + ygrad = 0.0; + norm = 1.0; + } + + return vec4(xgrad/norm, ygrad/norm, 0.0, 0.0); +} + + +//!DESC Anime4K-v3.2-Upscale-Original-x2-Apply +//!HOOK MAIN +//!BIND HOOKED +//!BIND LUMAD +//!BIND LUMAMM +//!WIDTH MAIN.w 2 * +//!HEIGHT MAIN.h 2 * + + +vec4 hook() { + vec2 d = HOOKED_pt; + + float dval = LUMAD_tex(HOOKED_pos).y; + if (dval < 0.1) { + return HOOKED_tex(HOOKED_pos); + } + + vec4 dc = LUMAMM_tex(HOOKED_pos); + if (abs(dc.x + dc.y) <= 0.0001) { + return HOOKED_tex(HOOKED_pos); + } + + float xpos = -sign(dc.x); + float ypos = -sign(dc.y); + + vec4 xval = HOOKED_tex(HOOKED_pos + vec2(d.x * xpos, 0.0)); + vec4 yval = HOOKED_tex(HOOKED_pos + vec2(0.0, d.y * ypos)); + + float xyratio = abs(dc.x) / (abs(dc.x) + abs(dc.y)); + + vec4 avg = xyratio * xval + (1.0 - xyratio) * yval; + + return avg * dval + HOOKED_tex(HOOKED_pos) * (1.0 - dval); + +}