Close
Tutorial

CoreML Upscaler For Beginners

Real-time 4x AI upscaling on Apple Silicon -- without killing your FPS.

This TOX runs a Real-ESRGAN CoreML model in a completely separate process from TouchDesigner. Your project stays at 60fps while the upscaler works in the background, pushing out 2048x2048 frames from 512x512 input using your Mac's Neural Engine and GPU.

How it works:

  • Drop the TOX in, wire any TOP input

  • Set the path to your .mlmodel file

  • Toggle Active, hit Load Model

  • Upscaled output appears on the COMP's output

Key features:

  • Zero GIL contention -- subprocess architecture means TD never drops a frame

  • File-based interchange -- no expensive memory copies between processes

  • Throttled submission -- only sends new frames when the worker is ready

  • Self-contained -- worker script is embedded inside the TOX

  • Custom parameters for compute unit selection (ALL, CPU+GPU, CPU+Neural Engine, CPU only)

  • Live stats: inference time, inference FPS, frame count

Requirements:

  • macOS with Apple Silicon (M1/M2/M3/M4)

  • TouchDesigner 2024+

  • Python packages: coremltools, Pillow, numpy (install via pip3 install coremltools Pillow numpy)

  • A Real-ESRGAN .mlmodel file (512 input, included separately)

Performance:

  • TD maintains 60fps with upscaler running

  • ~1-1.3s per upscaled frame on M4 (model-bound, not I/O)

  • No thread warnings, no CPU spikes

Designed for upscaling stills, textures, and slow-updating visuals inside TD. Not meant for real-time video -- the model itself takes ~1s per frame -- but perfect for enhancing renders, generative output, or any TOP where you want crisp 4x resolution.

Asset Downloads

Experience level 

Comments