FP8 on Mac: does it fit and does it run?

FP8 is a weight-storage format, not a promise of FP8 computation on Apple Silicon. ComfyUI selects a runtime dtype conditionally, so neither a universal 2-byte rule nor a universal failure rule is correct.

Quick answer

Check the app and exact build. In current ComfyUI code, MPS is not treated as FP8-compute capable; the next dtype decision depends on model size and free memory.

How does ComfyUI choose a dtype?

When a model weight dtype is one of ComfyUI's recognized FP8 types, supports_fp8_compute(device) allows that dtype to remain selected. On MPS, ComfyUI's FP8-compute support check returns false.

Without FP8 compute support, the code returns the FP8 dtype when model_params * 2 > free_model_memory. Otherwise it can fall through to FP16, BF16 or FP32 according to the device and model.

That second branch is not a compatibility guarantee. It means the simple claim that every FP8 model on Mac becomes 16-bit, and the opposite claim that every FP8 model always stays 8-bit, are both wrong.

The conditional describes ComfyUI source behavior. It is not a fit measurement for your model or workflow.

Why is download size not runtime memory?

A complete generation workflow can include a diffusion model, text encoders and a VAE, plus activations, temporary buffers, caches and application overhead. Upcasting or retaining a dtype changes the weight contribution, not every other cost.

Use the media engine's complete-build verdict where available. Unknown runtime costs produce an unknown verdict rather than a conversion based only on parameter count.

Check complete image model builds

Is FP8 the same as GGUF?

No. FP8 names a floating-point storage format. GGUF is a container and quantization route supported in ComfyUI through the separate ComfyUI-GGUF custom nodes, whose README describes the pack as work in progress.

mflux has its own MLX quantization and saved-model layout. Do not rename an MLX or GGUF build as FP8, and do not move a file between apps without an explicit supported route.

What should you check when FP8 fails?

  • Confirm the exact app, app version, model build and every required component.
  • Check whether the error is an allocation failure, an unsupported operation or an invalid-value warning. These are different failures.
  • Try a documented lower-memory route from your app instead of assuming that another FP8 file will behave identically.
  • Do not use PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 as a routine fix. PyTorch warns that removing the limit may cause system failure.

Diagnose ComfyUI memory failures

Frequently asked questions

Does ComfyUI support FP8 compute on Apple Silicon?

Current ComfyUI source returns false for FP8 compute support on MPS. Its model dtype selection can still retain FP8 under a memory-pressure condition, which is not proof that every FP8 workflow will run.

Does FP8 always use 2 bytes per parameter on Mac?

No universal rule is valid. ComfyUI can retain FP8 or select another dtype depending on compute support and available memory. Complete runtime memory also includes other components and temporary costs.

Can every Mac run an FP8 FLUX checkpoint?

No. App support, dtype selection, the complete component bundle and workload memory all matter. Use an explicit supported build and the fit table rather than the filename alone.

Is GGUF a safer choice than FP8?

They are different routes, not interchangeable quality or safety labels. Check the app, the required files and the verdict for the exact build.

Sources

Related guides