Upflow 2X

Help

Installing, using the panel, and what to do when it tells you something went wrong. If your answer isn't here, write to us.

Install on Windows

Extract, run the installer, restart Resolve.

  1. Download the Windows zip

    Get upflow2x-win.zip from the download page.

  2. Extract it somewhere permanent

    Right-click the zip and choose Extract All. Put it somewhere it can stay, not your Downloads folder. If you move the folder after installing, run the installer again.

  3. Run the installer

    You need Python 3.10 to 3.14. Get Python 3.14 from python.org, not 3.15, which is too new for the AI runtime. In its installer, tick Add python.exe to PATH.

    Open the extracted folder, then the upflow2x-win folder inside it, the one that contains Installer. Type cmd in the address bar, press Enter, and run:

    python Installer\gui_installer.py

    Click Install and wait for it to finish. It installs the Python packages, copies the panel into Resolve and writes the settings file.

  4. Open it in Resolve

    Restart DaVinci Resolve Studio, then go to

    Workspace → Scripts → Upflow2x

If the installer window doesn't open

Your Python was built without Tk. These two commands do the same job from the same folder, without a window. Then restart Resolve.

python -m pip install numpy opencv-python
python Installer/install_eternal2x.py

Install on macOS

The same steps, with Terminal.

  1. Download the macOS zip

    Get upflow2x-mac.zip from the download page.

  2. Extract it somewhere permanent

    Double-click the zip, then move the folder somewhere it can stay, like your home folder or Applications.

  3. Run the installer

    Which Python works depends on the Mac, because the AI runtime only has builds for some pairs. On macOS 14 or newer, use 3.10 to 3.14 on Apple Silicon and 3.10 to 3.13 on Intel. On macOS 13, use 3.10 to 3.13, and on macOS 12, 3.10 to 3.12. Get 3.14, 3.13 or 3.12 from python.org. Then open Terminal and run:

    cd ~/path/to/upflow2x-mac python3 Installer/gui_installer.py

    Click Install and wait for it to finish. It works on Apple Silicon and Intel Macs.

  4. Open it in Resolve

    Restart DaVinci Resolve Studio, then go to

    Workspace → Scripts → Upflow2x

If the installer window doesn't open

Run these from the same folder instead, then restart Resolve.

python3 -m pip install numpy opencv-python
python3 Installer/install_eternal2x.py

Using the panel

Analyse marks the drawings. Check the markers, then render.

  1. Put the playhead on a clip

    Move the playhead over the clip on your timeline, then open the panel. It shows the clip it picked up and the part of the file the clip uses. Analyse and Render pick up the clip under the playhead when you press them, and if the playhead sits in a gap, they keep the last clip. Use Clip at Playhead shows you which one that is.

  2. Analyse

    Press Analyse. Upflow2x reads the clip and reports what it found, for example 1438 frames, 719 unique drawings (719 held, 50%). Animated on 2s. It also puts a marker on the clip at every drawing, replacing only the markers it placed before. A pose held for more than twice the clip's pattern is a pause. It gets a second marker just before the next drawing, so it stays still and then moves on at the clip's pace. If a clip has no duplicated frames, it says so and places none.

  3. Check the markers

    If Analyse marked too many or too few, move Threshold and analyse again. That replaces only its own markers, never yours, and puts back any of its markers you deleted. Then delete a marker to leave its frame out, even if it moved, or select the clip and press M to mark a frame Analyse missed.

    Every marker on the clip counts, whatever its colour, and the clip's first frame always does. Markers on the timeline's ruler don't, so beat markers are safe there. You can skip Analyse and mark the frames yourself.

  4. Render

    Press Render. It keeps every marked frame as drawn and draws every frame between two markers fresh, so a part you leave unmarked never counts. A clip with no markers at all is rendered from the drawings Upflow2x finds on its own. The render runs in the background with a progress bar and the time left, and Resolve stays usable. The first time, it installs the AI runtime and downloads the model, about 50 MB, so the bar can sit at 0% for a minute or two.

    When it's done, the result is imported, at 2x if Upscale 2x is ticked, and placed above the original, starting on the same frame, at the same length and frame rate. It goes on the lowest track that is empty there, or a new track named Upflow2x, so none of your clips get covered. Only the part of the file you trimmed to is rebuilt.

    If another timeline is open when it finishes, or the original was deleted or retrimmed, it goes at the end of the timeline instead. An image sequence whose frame rate Resolve won't set stays in the media pool, since it would play at the wrong speed.

  5. Compare

    Show Original switches the smoothed clip off so the original shows through, and Show Upflow2x switches it back. Show in Folder opens where the render was saved.

Settings

The panel remembers them between sessions.

Threshold
How big a change Analyse counts as a new drawing, 1 to 9. Lower catches small moves, like only a mouth or a slow drift. Higher counts only big ones, like the whole shot moving. It does nothing to frames you've marked.
Hold pattern
Leave it on Auto detect. Force On 2s or On 3s if a clip has unusual timing that trips the detector.
Output
Image sequence is lossless and imports most reliably. MP4 is one compact file but lossy. MKV is one lossless file. All three are 8-bit RGB, so transparency and 10-bit colour aren't kept. MP4 and MKV need an even width and height.
Upscale 2x
Draws every frame at 2x with Real-ESRGAN's anime video model, on the GPU through DirectML, about 0.14 s a 1080p frame on a Radeon. The model comes with Upflow2x. Without a GPU, on a Mac for one, Resolve's Super Scale is applied to the imported clip instead. Either way it only shows on a timeline bigger than the clip, such as 3840x2160 for 1080p footage. As an image sequence, a 4K frame is about 6 to 7 MB.
Interpolate
On, the RIFE network draws every missing in-between. On Windows it runs on the GPU through DirectML, about 0.13 s an in-between at 2K on a Radeon, and falls back to the CPU, which is about ten times slower. Off, every drawing comes back on its own frame with nothing new drawn. Use that with Upscale 2x to only upscale.
Grainy source
For film grain, which makes every held frame differ a little so they all look new. It raises the threshold above the clip's own grain. Leave it off for clean animation, where it can merge fine real changes. Analyse suggests it when the differences look like grain.
Auto-update
Checks for a new version each time the panel opens. Untick it to check only when you press Check for Updates.

What to expect

Held poses stay still

A drawing held on purpose keeps its full length instead of drifting. Only the timing between drawings is smoothed.

Cuts stay hard

Upflow2x never blends across a scene change, which would show both shots at once.

Nothing was smoothed

The first render installs the network's runtime and downloads its model, so it needs a connection once. Without one, every drawing is kept as drawn rather than filled in some other way, since warping pixels doubles lines on drawn animation. The status says why. Render again once you're online.

Troubleshooting

Find the message the panel showed you.

The plugin doesn't appear in Resolve

Check that the installer finished. The panel is at Workspace, Scripts, Upflow2x. If it's not there, restart Resolve, and if it still isn't, run the installer again.

If Resolve says you need Studio, you're on the free edition, which blocks script panels since Resolve 19.1.

Clicking Upflow2x does nothing

Open Workspace, Console. If it says UI script not found or Missing repo_root, the plugin folder was moved, renamed or deleted after installing, since the settings file records its path. Run the installer again from where the folder is now. The panel's "Plugin folder not configured" means the same thing.

"Could not reach Resolve"

The panel isn't running inside DaVinci Resolve. Open it from Workspace, Scripts, Upflow2x, not by double-clicking the Lua file.

"No clip under the playhead"

Upflow2x works on the clip under the playhead, since Resolve doesn't tell scripts which clip is selected. Move the playhead over the clip, then press Use Clip at Playhead.

"No duplicate frames. This clip is already on 1s."

Analyse found nothing to do. The clip has no repeated frames, so there is nothing to recover. It's live action or animation already drawn on 1s, and smoothing it would only invent motion that was never there, so Upflow2x stops.

If the panel says instead that every frame differs but the differences look like grain, tick Grainy source and analyse again. Leave it off for clean animation.

"...has a variable frame rate"

Phone and screen recordings often space their frames unevenly. Upflow2x writes every frame for the same length of time, so such a clip would come out a different length and drift against its audio. It stops instead.

Render the clip to a constant frame rate first, from Resolve's Deliver page or with ffmpeg at your timeline's rate, then use that.

ffmpeg -i clip.mp4 -r 24 clip_cfr.mp4
Rendering is slow on long clips

Every frame is read and every missing in-between drawn, so the time grows with the length of the clip on your timeline. Only the part of the file the clip uses is rebuilt, so trimming helps, though a cut late in a long file is still decoded up to its start first, shown as Seeking.

On Windows the in-betweens are drawn on the GPU, and ten seconds of 1080p takes roughly ten to twenty seconds. On the CPU it's about ten times slower. Upscale 2x on the GPU adds about 0.3 to 0.5 s a frame, much of it writing the 4K images. With Grainy source on, Analyse reads the clip twice. Resolve stays usable the whole time.

Progress seems stuck

Press Refresh Progress. If the panel says Python hasn't started, or that there's been no progress for a few minutes, the run stopped, often because its window was closed. Press Reset and run it again.

For anything else, email us the panel's status text and the .eternal2x_last_run.log file from the plugin folder.

"Could not start the run"

The panel couldn't write its run script into the plugin folder, or Windows refused to start it. Check that the folder isn't read-only or held by antivirus, then try again.

The upscale was skipped

On Windows the upscale is drawn on the GPU. Without a GPU, Upflow2x hands it to Super Scale, a DaVinci Resolve Studio feature. If the panel says the upscale wasn't applied, check that Studio is activated. The smoothing still runs.

Resolve wouldn't import the result

The render still finished. The panel shows where it is, so you can drag it into the media pool. Setting Output to Image sequence usually avoids this, since Resolve imports those most reliably.

"python" is not recognised

Install Python 3.14 from python.org. Any version from 3.10 to 3.14 works on Windows. 3.15 is too new for the AI runtime, and Upflow2x would keep every drawing as drawn. On a Mac the range depends on the macOS version. See Install on macOS.

On Windows, tick Add python.exe to PATH in its installer, then open a new Command Prompt window.

Updates

They arrive on their own.

Automatically

Each time the panel opens, Upflow2x checks for a new version. If there is one, it downloads it, checks it against its checksum and applies it. Restart Resolve afterwards to load it. Untick Auto-update to stop this.

When you ask

Press Check for Updates at any time. If nothing changed, it says so and leaves your install alone. A failed check never stops you working, and an update that can't finish is undone, so you keep the version you had.

Run the installer again once if you're updating from 0.3.1 or earlier. Those versions put the panel where Resolve lists it only on the Fusion page, or on Windows not at all. After that, you only need it if you move or rename the plugin folder.