Repository navigation
Upflow2x 0.5.1: one-click setup, faster renders, renders out of clip folders - #26
Merged
Merged
Conversation
Real-ESRGAN upscaled every output frame, so a 190-frame render ran it 190 times for 10 drawings. RIFE's own motion, its last flow and blend mask, is now added to the model's outputs when it loads, and each in-between is drawn at 2x by moving and mixing the upscaled drawings with it. On Hero's walk that came within 46 dB of upscaling the network's frame. The conversions around both networks now use OpenCV instead of numpy transposes, and the network's input is reused between in-betweens of the same two frames.
The 2x in-betweens were drawn on the main thread and only three threads wrote PNGs, so on a 7900 XT the GPU sat at 20%. The 2x in-betweens are now Futures drawn in a pool of up to eight threads, which also writes the frames, and the network starts on the next frame meanwhile. A video still gets its frames in order.
Renders went in an Upflow2x folder beside each clip, so they ended up among the recordings in every folder clips came from. The panel now passes the project's name and Resolve's cache folder, and renders go in <cache folder's parent>/Upflow2x/<project>. Without a cache folder, or with one on a drive that is not there, they go in Videos/Upflow2x, or Movies on a Mac. An output_dir in the settings still wins.
Stage runs in the tests that name no output folder now render into the Videos folder, which was the real one on the machine running them.
On a 7900 XT each call spent 83 ms on the GPU and 64 ms on the CPU around it, on the thread that feeds the GPU. An in-between drawn at 2x now only brings back the network's motion, not a frame nobody uses, and each frame's planes are kept for the next call that takes the same frame.
Eight workers each spreading every remap over all 32 threads of a 5950X slowed the thread feeding the GPU. With half the cores shared between them, the same render took 31.6 s instead of 34.6 s.
A folder like D:\CacheClip\ escaped its own closing quote, and the next argument, the status file, became part of it. Progress and Stop then had nowhere to go.
Windows will not make a folder called NUL or COM1, so the render failed on its first frame. Such a name gets an underscore in front.
The specs were only on the website. Both installers now list them before installing anything, the (i) at the top of the panel shows them, and the README has the full list. A test keeps every copy in line with the site.
"Older Macs need an older one" pointed at a guide the installer cannot link to. An Intel Mac on Python 3.14 gets no AI runtime and draws no in-betweens, so the list now says 3.13 or older for Intel and macOS 13, and 3.12 or older for macOS 12, as the Mac guide does.
# Conflicts: # Installer/gui_installer.py # README.md # release/upflow2x-mac/Installer/gui_installer.py # release/upflow2x-mac/README.md # release/upflow2x-win/Installer/gui_installer.py # release/upflow2x-win/README.md
With no cache folder, renders went in the Videos folder, which OneDrive can back up, uploading gigabytes of frames. They now go in Resolve's own folder, the one its scripts are installed in, and so does a render whose cache folder is in OneDrive.
A cache path with .. or a short 8.3 name hid that it was in OneDrive, and a render folder that was already there but refused files skipped the fallback, so the render failed. Paths are resolved before the check, the check is on the folder renders go to, and a file is written there first.
# Conflicts: # README.md # release/upflow2x-mac/README.md # release/upflow2x-win/README.md
It never goes into Resolve, so its frames only took space, about 6 MB a frame at 4K. A finished render is never deleted, since the timeline points at it.
Two runs could pick the same empty folder, and one that failed then deleted the other's finished render. The render's folder or file is now made when its name is picked, and an existing one is never reused. A Stop during the last status write now deletes the render too, and a delete that fails no longer hides the Stop.
A Save to row under Output keeps Resolve's folder as the default and opens Fusion's folder dialog to choose another, like a drive with more space. The choice is kept in the settings. A chosen folder gets a folder per project too, and one that cannot be written stops the render with a message saying so, rather than saving somewhere unasked.
# Conflicts: # Installer/Eternal2x.lua # release/upflow2x-mac/Installer/Eternal2x.lua # release/upflow2x-win/Installer/Eternal2x.lua
OpenCV deletes a video file its encoder cannot start, which freed the reserved name for another render of the same clip, and this run's cleanup then deleted that one. The video is now drawn into a file named after the run and moved onto its name when done.
Choosing D:\ kept D:, which means the folder that drive was last in, and choosing / kept nothing, so renders went to Resolve's folder unasked. Roots now keep their separator. Save to also ignores an index change that picks the folder already in use, so its own refill cannot set off another.
Setup put the plugin in an Upflow2x folder of its own in the user's app data. It now goes in Resolve's folder beside Fusion, not in its Scripts folder, where Resolve would list every file as a script. Renders that fall back to Resolve's folder go in a Renders folder in it, so a project named like one of the plugin's folders can never land among its code.
CI still ran Python 3.9, which setup now refuses, since ONNX Runtime has no builds Upflow2x can use there. The installer test that prefers the running Python failed on it for that reason.
A manual install, or one updated from 0.5.0, keeps the plugin folder it was installed in, so the new setup folder isn't where its log is.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upflow2x 0.5.1: one-click setup, renders about three times faster, and renders saved out of your clip folders.
One-click install
Upflow2xInstaller.exeon Windows, andUpflow2xInstaller-mac.zipon a Mac, which holds one app for Apple Silicon and Intel.%APPDATA%\Blackmagic Design\DaVinci Resolve\Support\Upflow2xon Windows or~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Upflow2xon a Mac. It sits beside Fusion, not in its Scripts folder, and the download can be deleted afterwards.Faster renders
Where renders go
Upflow2xfolder beside the project's Resolve cache folder, with a folder for each project.Upflow2x\Rendersin Resolve's own folder.Fixes
NULorCOM1, failed on its first frame.D:\under Save to no longer turns into the drive-relativeD:.README and site
Testing
Updating from 0.5.0: the panel updates itself. Restart Resolve, and renders go to the new folders after the restart.