Remote Upscaling

Remote Upscaling

Offload video upscaling to powerful cloud GPUs for dramatically faster processing. All pipeline settings work remotely, and results are downloaded automatically.

StudioRemote upscaling requires a Studio tier license.

Overview

Remote upscaling lets you process videos on cloud GPU instances instead of your local machine. This is especially useful for long videos, high scale factors (4x or 8x), or when your local GPU is not powerful enough. Cloud instances with modern GPUs like the RTX 3090 or RTX 4090 can process frames at 5 to 10 FPS, making even large upscaling jobs practical.

Full pipeline support

Every pipeline setting available locally also works on remote instances. This includes denoising, multi-pass upscaling, color correction, sharpening, and all tile configurations. Your settings are passed to the remote server as command-line arguments.

Instance Setup

Before you can upscale remotely, you need a running cloud instance of the correct type. Recaster uses Vast.ai for cloud GPU provisioning, and upscaling uses a dedicated UPSCALE instance type.

1

Open the Remote panel

Click the Remote tab in the sidebar or enable Remote mode from the Project Panel toggle. You need a Studio license to access this feature.
2

Launch an Upscale instance

Select the Upscale instance type from the instance launcher. The system will provision a cloud GPU with 20 GB of disk space. Provisioning typically takes 2 to 3 minutes.
3

Wait for provisioning

The provisioning script installs ONNX Runtime GPU 1.19.2, NumPy, OpenCV, and cuDNN 9. It also creates the workspace directory structure at /workspace/upscale/ with input, output, models, and previews subdirectories.
4

Instance ready

Once provisioning completes, the instance appears in the Remote panel with an "Upscale" badge. It is now ready to accept upscaling jobs.

Three-Phase Workflow

Remote upscaling follows a three-phase workflow: upload, process, and download. Each phase shows progress in the interface and can be canceled at any point.

Phase 1: Upload

Your video file is uploaded to the cloud instance via rsync. The progress bar shows upload percentage in real time. Upload speed depends on your internet connection and the file size.

Upload Details

  • Destination: /workspace/upscale/input/
  • Transfer method: rsync over SSH
  • Progress tracking: real-time percentage via rsync progress parsing

Phase 2: Process

The cloud instance runs the upscaling pipeline on each frame. Three standalone scripts are automatically deployed to the instance on first use:

  • upscale_server.py — Main processing server with CLI (approximately 500 lines)
  • swinir_upscaler.py — Standalone SwinIR implementation (approximately 320 lines)
  • real_esrgan_upscaler.py — Standalone Real-ESRGAN implementation (approximately 320 lines)

These scripts have no dependencies on Recaster itself — they are standalone ONNX Runtime + OpenCV implementations that run directly on the cloud instance. Models are downloaded automatically on demand.

During processing, the remote server outputs progress messages that Recaster parses in real time:

PROGRESS:100/1000:10%     # Frame progress
PROGRESS:200/1000:20%
PROGRESS:audio:0%         # Audio muxing started
PROGRESS:audio:100%       # Audio muxing complete
RESULT:/workspace/output.mp4  # Final result path

Phase 3: Download

Once processing completes, the upscaled video is downloaded back to your local machine via rsync. The progress bar shows download percentage. The final file is saved to your chosen output path.

Enabling Remote Mode

To switch the upscaling widget to remote mode:

  1. Open the Video Upscaling interface by clicking Upscale in the sidebar.
  2. Toggle the Remote switch at the top of the widget. This switch is only visible with a Studio license.
  3. If you have one UPSCALE instance running, it auto-selects. If you have multiple instances, a selection dialog appears.
  4. If no UPSCALE instances are running, you will be prompted to launch one from the Remote panel.

Performance Estimates

The table below shows typical total processing times for common scenarios on a modern cloud GPU (RTX 3090 or RTX 4090). Times include upload, processing, and download phases.

Video LengthUploadProcessingDownloadTotal
30 sec @ 30fps~15s (50 MB)~90s (900 frames)~45s (200 MB 4x)~2.5 min
2 min @ 30fps~60s (200 MB)~6 min (3600 frames)~3 min (800 MB 4x)~10 min

Processing rate is approximately 5 to 10 FPS depending on the model, scale factor, and GPU. SwinIR is slightly slower than Real-ESRGAN. Multi-pass upscaling takes proportionally longer (roughly 2x for 4x scale, 3x for 8x scale).

Reduce download size

The output file for 4x upscaling can be 4 to 8 times larger than the input. For faster downloads, consider processing shorter clips or using 2x upscaling when 4x is not strictly necessary.

Remote Server CLI

Recaster automatically constructs the remote command from your pipeline settings. For reference, the full set of CLI arguments supported by the remote server is listed below:

ArgumentDescription
--modelModel ID (swinir_x2, swinir_x4, real_esrgan_x2, real_esrgan_x4, real_esrgan_x8)
--scaleTarget scale factor (2, 4, 8)
--multi-passEnable multi-pass upscaling (flag, no value)
--denoiseEnable denoising (flag)
--denoise-strengthDenoise strength (0 – 10, default 2.0)
--sharpenEnable sharpening (flag)
--sharpen-strengthSharpen strength (0 – 2.0, default 0.5)
--color-correctionEnable color correction (flag)
--tile-sizeTile size in pixels (128 / 256 / 512, default 256)
--tile-overlapTile overlap in pixels (16 – 64, default 32)
--preview-intervalPreview snapshot interval in frames (default 30)

Cancellation

You can cancel remote upscaling at any point by clicking the Stop button. Recaster terminates the active worker (upload, processing, or download) with a graceful 3-second shutdown timeout. The rsync and SSH processes on the remote instance are properly terminated.

Costs continue while instance runs

Cloud GPU instances are billed by the hour regardless of whether you are actively processing. Remember to stop your instance from the Remote panel when you are finished upscaling to avoid unnecessary charges. See Cost Tracking for budget management.

Troubleshooting

Upload stuck or slow

Large video files take time to upload. Check your internet connection speed. For very large files (over 1 GB), consider trimming the video to the segment you need before uploading.

Processing stuck at 0%

The remote scripts are deployed on first use, which may take a moment. If progress remains at 0% for more than a minute, check that the instance is still running in the Remote panel and that the SSH connection is stable.

No UPSCALE instance available

Make sure you have launched an instance with the Upscale type from the Remote panel. Training or Quick Recast instances cannot be used for upscaling.

GPU not detected on remote

The provisioning script verifies CUDA provider availability. If the GPU is not detected, the system falls back to CPU processing. Ensure the Vast.ai instance has GPU drivers installed (this is standard for GPU instances).