Skip to content

How to use SDXL models on macOS 14 Sonoma

Joshua Park edited this page Oct 30, 2023 · 1 revision

SDXL base models are handled the same as SD-1.5 base models. Put them in the same place. They show up in the same list of models. They are all ORIGINAL type for CPU & GPU.

Some of them may be quantized/palletized. These are methods that reduce the Unet size by 50% to 70% at the expense of minor simplifications in the generated images as compared to a full size model. SDXL models take a few minutes to load, and they run at maybe 1/10 the speed of a 1.5 model for each inference step.

Using the SDXL refiner is also very simple. Mochi uses a single model file that adds a piece of the refiner model into a full base model. This is done by renaming a Unet.mlmodelc from a refiner model to UnetRefiner.mlmodelc and then it gets copied into a SDXL base model folder. Make sure the refiner Unet and the base Unet are at the same dimension.

When a SDXL model is selected that has the 2 Unet types, Mochi uses the base model Unet for the first 80% of the steps, and then switches to the refiner Unet for the last 20%.

SDXL doesn't support image2image or ControlNet. And it is slow. There are some potential speedups in the works, but it is going to be slow no matter what, because of the large file sizes and our memory constraints.