04 · Enhance

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.

Source loaded: resolution, duration, frame rate, codec, and color info on the right.

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.

The Preset step: upscale mode on the left, resulting pipeline and output sizes summarized on the right.

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.

Settings: stage cards on the left (with intermediate artifact paths), job identity and encoding on the right.

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.

Activity: queue on the left, system telemetry on the right.
While a Regenerate-Q job runs, the visible app window competes with inference for the GPU. The app can collapse to a compact stats window automatically (Settings → Application → Minimize while upscaling). This makes a large difference on heavy jobs.
The compact stats window: per-stage progress while the GPU stays dedicated to the job. Click the expand icon (or the dock icon) to bring the app back.

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

SettingValuesDefaultWhat it does · when to change it
EngineAuto · manual pickAutoWhich 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 modelRegenerate-Q · StandardRegenerate-QWhich 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 unitsALL · CPU_ONLY · CPU_AND_GPU · CPU_AND_NEper modelWhich 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 / Hpx (4×-upscaled)0Extra 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 unitintengineFrames the Refocus engine batches per unit. Change only when tuning memory use against throughput.

Regenerate / Regenerate-Q

SettingValuesDefaultWhat it does · when to change it
Dtypefloat16 · bfloat16 · float32AutoCompute 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 unitsALL · CPU_AND_GPU · CPU_AND_NECPU_AND_GPUPer-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.
Concurrenton · offonRegenerate-Q: run the encoder/decoder (Neural Engine) concurrently with the transformer (GPU). Usually faster. Turn off only when diagnosing artifacts.
Concurrent max inflightint12Cap on processing units in flight across the encode, transform, and decode pipeline. Lower it if memory pressure climbs on long clips.
Disk-backed stateon · offonRegenerate-Q stores per-tile recurrent state in memory-mapped files so long, tiled jobs do not exhaust RAM. Keep this on.
Offload to disk / Resumeon · offoffRegenerate (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 stepint399Scheduler 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

SettingValuesDefaultWhat it does · when to change it
Interpolation factor2, 3, 4…2Frame-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–25530Noise 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 unitsALL · CPU_AND_GPU · CPU_AND_NEALLALL 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 unitint40VFI decode-window size. Change only when tuning memory on very high-resolution inputs.

Output encoding

SettingValuesDefaultWhat it does · when to change it
Codeccombo (any FFmpeg encoder)hardware HEVCThe 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.
Containermp4 · mov · mkv · avi · webmmp4Output file format. Use MOV for ProRes, MP4 for broad compatibility.
Quality (CRF)0–5118Constant-rate-factor: lower is higher quality and larger files. 18 is close to visually lossless for most content; 23 balances size and quality.
Presetultrafast … veryslowmediumSoftware-encoder speed/quality trade-off. Slower presets compress better at the same CRF. Hardware encoders mostly ignore it.
Pixel formatyuv420p · 10-bit · rgb24 …sourceChroma layout and bit depth of the output. yuv420p plays everywhere; the 10-bit formats preserve gradients on HDR and log footage.
Copy audioon · offonCopies the input's audio into the output without re-encoding, trimmed to any clip range. Ignored for image sequences.
Color tagsspace · primaries · TRC · rangesourceAdvanced: override the color metadata written to the file (for example bt709, bt2020, PQ/HLG). Set these only when your pipeline needs explicit tags.
Image sequencepng · jpeg · tiffpngWrite 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

SettingValuesDefaultWhat it does · when to change it
Upscale factor2 · 44Overall output scale. The models are 4× natives. The Effective output readout in the stage card shows the resulting resolution as you change it.
Input downscalefactor or W×HShrink 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 downscalefactor or W×HShrink the upscaled result after inference, for example render 4× for quality and deliver 1080p.
Clip start / end frameframe numbersProcess only part of the input. Useful for test slices before running a long job. Audio is trimmed to match.
Overlap per inference batchframesmodel-specificTemporal overlap between batches (Regenerate defaults to 8, VFI to 1). More overlap improves temporal consistency at batch boundaries at some speed cost.
Tile featheron · offonLinearly blends overlapping tile regions at assembly instead of hard-cropping. Softens visible tile seams at no inference cost. Keep this on.
Sharpen input / outputfactor + radiusoffOptional 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.
The deeper Advanced group (pipeline queues, assembly devices, float32 toggles, debug dumps) is for diagnostics. Leave those at their defaults unless support asks you to change them while investigating an issue.