Core ML Adapter (Experimental)
Use your Core ML model with ComfyUI's stock nodes
- coreml_model
- MODEL
Every node in the Core ML Suite has been pushing you toward a Core ML Sampler. The Adapter is the rebel: it takes your coreml_model and wraps it into a standard ComfyUI MODEL, so you can plug it into ComfyUI's normal nodes - a stock KSampler, ModelSamplingDiscrete, anything that takes a model - instead of the suite's own sampler.
Why would you want that? The README's own example makes the case: LCM LoRAs. When you bake an LCM LoRA into a converted model, sampling it correctly requires running the model through ModelSamplingDiscrete before a sampler - and that combination is built for ComfyUI's native model objects, not the suite's coreml_model. The adapter is the bridge. You convert with the LoRA baked in, run the result through this node, patch the sampling with ModelSamplingDiscrete, and sample with a plain KSampler. It also lets you drop Core ML UNets into custom nodes that expect a standard MODEL - which is exactly the flexibility the suite otherwise doesn't give you.
What it is (and is not)
One input, one output: coreml_model in, MODEL out. Under the hood it's the same model patcher the Core ML Sampler uses internally - the adapter just hands it to you instead of hiding it. So you're not getting any different performance; you're getting a standard interface.
The word "Experimental" in the display name isn't decoration. The README's warning is specific: the wrapped model's expected inputs are not checked. ComfyUI nodes will happily feed it things it can't accept, and you'll get opaque errors from deep inside coremltools instead of a helpful "wrong shape" message. Use it with models you understand - know the fixed resolution, know whether it expects ControlNet inputs - and it's fine. Treat it as a magic "make it a MODEL" button and you will be confused at some point.
When to reach for it
- Baking an LCM LoRA and need
ModelSamplingDiscrete+ stock KSampler (the README's documented path). - You have a custom node that only accepts
MODELand you want Core ML speed behind it. - You want to sample with samplers or scheduling tricks that the Core ML Sampler's own list doesn't expose - though honestly, the suite's samplers already inherit nearly all of ComfyUI's sampler list, so this is mostly about node compatibility, not sampler variety.
Install
Part of the Core ML Suite pack, Apple Silicon only:
cd ComfyUI/custom_nodes
git clone https://github.com/aszc-dev/ComfyUI-CoreMLSuite
cd ComfyUI-CoreMLSuite
pip install -r requirements.txt
Or ComfyUI Manager → search "Core ML" → install → restart. And remember the one rule that applies to every node in this pack: if the model wasn't converted with SPLIT_EINSUM attention, your "Core ML speedup" is mostly a GPU workload wearing a costume.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| coreml_model | COREML_UNET | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |