Enhance: upscale a video
A three-step workflow: Source, Preset, Settings. This page walks through each step, the Activity screen, and every parameter the stage cards expose.
Step 1 · Source
Drag a video in (MP4, MOV, AVI), browse, or paste a path. The side card fills with the clip's specs. To trim or crop first, click Edit video: it opens a crop / clip / rotate / flip editor that writes a new source file. This is useful for testing a few seconds before running the full clip.
Step 2 · Preset
Pick the shape of the pipeline. With the upscale pass on, choose Full (Refocus, then a diffusion stage: consistency first, then detail), Express (Refocus only, fastest), or Diffusion (the diffusion stage only, maximum detail). The diffusion stage uses Regenerate-Q by default; you can switch it to the Standard Regenerate model in the stage settings. Add Frame interpolation or Denoise stages at any open position. The chips (Pre Upscale, Pre Diffusion, Post Diffusion…) control where in the pipeline they run. Saved presets restore a whole configuration in one click.
Step 3 · Settings
Each pipeline stage is a card. Click a card to open its settings (engine selection, compute units, denoise strength, interpolation factor, tile overlap, and more; all documented in the reference below). On the right, set the Job ID and output location, and click the Encoding summary to change codec, container, quality, or switch to an image sequence. To reuse a configuration later, save it as a preset, either Pipeline only or All settings.
Click Start job and the app switches to the Activity screen. Multi-stage jobs keep their intermediate files (suffixes like _stage1) alongside the final output. They appear in the project afterwards, and the Refine workspace can load them.
Watch it run
Activity shows the engine connection, the job queue with per-stage progress (Decoder → Preprocessor → Inferencer → Postprocessor → Encoder), and live system usage. Click any gauge for an expanded view. Stop Engine and Start Engine are here too.
Parameter reference
Every setting the stage cards expose, by category. Values marked combo accept custom strings (raw FFmpeg names) beyond the listed options. Rows are filtered to the platform selected in the sidebar.
Model & engine
| Setting | Values | Default | What it does · when to change it |
|---|---|---|---|
| Engine | Auto · manual pick | Auto | Which compiled engine runs the stage. Auto picks the best installed engine for your video's shape. Override it only to force a specific tile size you built. |
| Diffusion model | Regenerate-Q · Standard | Regenerate-Q | Which generative upscaler the diffusion stage uses. Regenerate-Q is the default: it streams and uses moderate memory. Standard (beta) produces the most detail but needs much more compute and memory. |
| Compute units | ALL · CPU_ONLY · CPU_AND_GPU · CPU_AND_NE | per model | Which Apple Silicon units run inference. ALL runs dual GPU and Neural Engine inferencers where supported, which is fastest. Pick CPU_AND_GPU or CPU_AND_NE to keep one unit free for other work. |
| Minimum tile overlap W / H | px (4×-upscaled) | 0 | Extra overlap between Regenerate tiles, in output pixels. Raise it (for example 64 to 128) if you can see tile seams in the output. 0 uses only the engine's natural overlap. |
| Frames per processing unit | int | engine | Frames the Refocus engine batches per unit. Change only when tuning memory use against throughput. |
Regenerate / Regenerate-Q
| Setting | Values | Default | What it does · when to change it |
|---|---|---|---|
| Dtype | float16 · bfloat16 · float32 | Auto | Compute precision for the diffusion stage. float16 is the fast default. bfloat16 and float32 trade speed for numerical headroom if you see color banding or artifacts. |
| VAE encoder / Transformer / VAE decoder units | ALL · CPU_AND_GPU · CPU_AND_NE | CPU_AND_GPU | Per-component compute units. ALL loads dual GPU and Neural Engine copies. With concurrency on, the app routes encode/decode to the Neural Engine and the transformer to the GPU. |
| Concurrent | on · off | on | Regenerate-Q: run the encoder/decoder (Neural Engine) concurrently with the transformer (GPU). Usually faster. Turn off only when diagnosing artifacts. |
| Concurrent max inflight | int | 12 | Cap on processing units in flight across the encode, transform, and decode pipeline. Lower it if memory pressure climbs on long clips. |
| Disk-backed state | on · off | on | Regenerate-Q stores per-tile recurrent state in memory-mapped files so long, tiled jobs do not exhaust RAM. Keep this on. |
| Offload to disk / Resume | on · off | off | Regenerate (Standard): write decoded tiles to disk as the job runs, so a crashed or interrupted job can resume from its checkpoint instead of starting over. The app's crash recovery relies on this. |
| SR noise step | int | 399 | Scheduler noise step for Regenerate. Controls how aggressively detail is re-generated. The default matches the trained model; small decreases stay closer to the input. |
Frame interpolation & denoise
| Setting | Values | Default | What it does · when to change it |
|---|---|---|---|
| Interpolation factor | 2, 3, 4… | 2 | Frame-rate multiplier: each input pair yields k−1 new frames, so 2 doubles the frame rate. Higher factors amplify any motion errors; 2 works best for most footage. |
| Denoise strength (σ) | 0–255 | 30 | Noise level the denoiser assumes. Higher removes more noise but also fine texture. 30 matches the trained model. Raise it for heavy low-light grain, lower it for lightly noisy sources. |
| Compute units | ALL · CPU_AND_GPU · CPU_AND_NE | ALL | ALL runs dual GPU and Neural Engine inferencers for both VFI and Denoise, which is fastest. The other options run a single inferencer on that unit pair. |
| Frames per processing unit | int | 40 | VFI decode-window size. Change only when tuning memory on very high-resolution inputs. |
Output encoding
| Setting | Values | Default | What it does · when to change it |
|---|---|---|---|
| Codec | combo (any FFmpeg encoder) | hardware HEVC | The video encoder. The list covers the common options (H.264/H.265 software and hardware, VP9, AV1, ProRes) and accepts any FFmpeg encoder name. ProRes requires the MOV container. The Standard (LGPL) bundle does not include x264/x265; the app uses Apple VideoToolbox hardware encoders instead. |
| Container | mp4 · mov · mkv · avi · webm | mp4 | Output file format. Use MOV for ProRes, MP4 for broad compatibility. |
| Quality (CRF) | 0–51 | 18 | Constant-rate-factor: lower is higher quality and larger files. 18 is close to visually lossless for most content; 23 balances size and quality. |
| Preset | ultrafast … veryslow | medium | Software-encoder speed/quality trade-off. Slower presets compress better at the same CRF. Hardware encoders mostly ignore it. |
| Pixel format | yuv420p · 10-bit · rgb24 … | source | Chroma layout and bit depth of the output. yuv420p plays everywhere; the 10-bit formats preserve gradients on HDR and log footage. |
| Copy audio | on · off | on | Copies the input's audio into the output without re-encoding, trimmed to any clip range. Ignored for image sequences. |
| Color tags | space · primaries · TRC · range | source | Advanced: override the color metadata written to the file (for example bt709, bt2020, PQ/HLG). Set these only when your pipeline needs explicit tags. |
| Image sequence | png · jpeg · tiff | png | Write one image per frame instead of a video, with bit depth (8/16), alpha, JPEG quality and subsampling, and a filename pattern like frame_%05d.png. Used for VFX round-trips. |
Scaling, clipping & finishing
| Setting | Values | Default | What it does · when to change it |
|---|---|---|---|
| Upscale factor | 2 · 4 | 4 | Overall output scale. The models are 4× natives. The Effective output readout in the stage card shows the resulting resolution as you change it. |
| Input downscale | factor or W×H | Shrink the source before inference. Useful to clean very noisy high-resolution sources, or to hit an exact engine tile. Combined with a 4× model, a 0.5 input downscale yields a net 2× output. | |
| Output downscale | factor or W×H | Shrink the upscaled result after inference, for example render 4× for quality and deliver 1080p. | |
| Clip start / end frame | frame numbers | Process only part of the input. Useful for test slices before running a long job. Audio is trimmed to match. | |
| Overlap per inference batch | frames | model-specific | Temporal overlap between batches (Regenerate defaults to 8, VFI to 1). More overlap improves temporal consistency at batch boundaries at some speed cost. |
| Tile feather | on · off | on | Linearly blends overlapping tile regions at assembly instead of hard-cropping. Softens visible tile seams at no inference cost. Keep this on. |
| Sharpen input / output | factor + radius | off | Optional unsharp passes before or after inference (for example factor 0.5, radius 50). A light input sharpen can help very soft sources; use output sharpening for taste adjustments. |