Files
aszc-dev-ComfyUI-CoreMLSuite/docs/nodes.md
T
aszc-dev 8f94f0eea5 docs: rewrite README and split into docs/ pages
Rewrite the README as a lean landing page and move depth into a docs/
folder. Correct the supported-model story and several stale facts, and
answer the recurring questions from issue #21.

- Convert-only is the supported path: suite-converted .mlpackage is the
  only supported input; drop coreml-community download guidance.
- Remove all .mlmodelc / Xcode references — compilation was dropped and
  the loader handles .mlpackage only.
- Fix compute-unit name (CPU_AND_NE, not CPU_AND_ANE) and the loader
  input name (coreml_name).
- Document CoreMLSamplerAdvanced (previously undocumented).
- Add docs/: hardware, nodes, conversion, workflows, faq,
  troubleshooting, limitations (with a support matrix).
- Note conversion now lives in the coreml-diffusion package.
- Remove dev scaffolding specs; ignore *.log, .DS_Store, .claude/.
2026-07-09 18:30:26 +02:00

6.8 KiB
Raw Blame History

Node Reference

All nodes live in the Core ML Suite category. Right-click the canvas → Add Node → Core ML Suite, or double-click and search.

Display name Class Purpose
Load Core ML UNet CoreMLUNetLoader Load a converted .mlpackage
Core ML Sampler CoreMLSampler Sample (KSampler-style)
Core ML Sampler (Advanced) CoreMLSamplerAdvanced Sample (KSamplerAdvanced-style)
Core ML Adapter (Experimental) CoreMLModelAdapter Wrap as a standard MODEL
Load LoRA to use with Core ML Core ML LoRA Loader Bake LoRA(s) at conversion
Convert Checkpoint to Core ML Core ML Converter Convert a checkpoint
Convert LCM to Core ML Core ML LCM Converter Convert LCM Dreamshaper v7

Load Core ML UNet (CoreMLUNetLoader)

Load Core ML UNet

Loads a converted .mlpackage from models/unet and outputs a coreml_model for the samplers. Only .mlpackage files are listed — this suite no longer uses .mlmodelc.

  • Inputs
    • coreml_name — the .mlpackage to load from models/unet.
    • compute_unit — hardware to run on: CPU_AND_NE (default), CPU_AND_GPU, CPU_ONLY, ALL. See hardware.
  • Output
    • coreml_model — for the Core ML Sampler or Adapter.

Core ML Sampler (CoreMLSampler)

Core ML Sampler

Generates a latent from a Core ML model. Behaves like the standard KSampler and outputs a LATENT you can decode or feed downstream.

  • Inputs
    • coreml_model — output of the loader or a converter.
    • latent_image (optional) — must match the model's input size. If omitted, a suitable empty latent is created. Provide one for img2img.
    • negative (optional) — required for normal models; optional for LCM.
    • Remaining inputs (seed, steps, cfg, sampler_name, scheduler, positive, denoise) match the KSampler.
  • Output
    • LATENT — decode with a VAE Decode, or use downstream.

Core ML Sampler (Advanced) (CoreMLSamplerAdvanced)

The KSamplerAdvanced counterpart of the Core ML Sampler — same Core ML input, plus the advanced sampling controls. Use it for partial denoising, fixed noise, and multi-stage (e.g. SDXL base → refiner) workflows.

  • Inputs
    • coreml_model — output of the loader or a converter.
    • add_noise, noise_seed, start_at_step, end_at_step, return_with_leftover_noise — as in KSamplerAdvanced.
    • steps, cfg, sampler_name, scheduler, positive — as usual.
    • latent_image (optional), negative (optional, required for non-LCM).
  • Output
    • LATENT.

Core ML Adapter (Experimental) (CoreMLModelAdapter)

Core ML Adapter

Wraps a Core ML model so it presents as a standard ComfyUI MODEL, letting you feed it to the normal KSampler and many other nodes (e.g. ModelSamplingDiscrete for LCM LoRAs).

  • Input
    • coreml_model.
  • Output
    • MODEL — a Core ML model wrapped as a ComfyUI model.

Note

Experimental. The wrapper presents a MODEL interface but cannot fully emulate one — model merges, IPAdapter, and similar advanced uses generally won't work, and the model's fixed input shapes are not validated, so mismatched inputs error at runtime. The native Core ML Sampler is faster when you don't need the MODEL type. See the FAQ and limitations.


Load LoRA to use with Core ML (Core ML LoRA Loader)

LoRA Loader

Collects LoRA name + strength_model to bake into the model at conversion, and applies the LoRA to CLIP (which is not part of the Core ML path). Chain multiple loaders for multiple LoRAs.

Because a converted model is immutable, the baked weights and strength_model cannot be changed afterward — changing them means re-converting. strength_clip only affects CLIP and can be changed freely. After conversion, when loading with CoreMLUNetLoader, apply the same LoRAs to CLIP manually (see workflows).

  • Inputs
    • lora_name, strength_model, strength_clip.
    • clip — from CLIPLoader / CheckpointLoaderSimple or another LoRA loader.
    • lora_params (optional) — chain from another LoRA loader.
  • Outputs
    • CLIP — with the LoRA applied.
    • lora_params — pass to the converter or the next LoRA loader.

Note

LoRA support is experimental and inconsistent — some LoRAs convert cleanly, others produce poor results. Test per-LoRA. See troubleshooting.


Convert Checkpoint to Core ML (Core ML Converter)

Checkpoint Converter

Converts a SD1.5- or SDXL-based checkpoint from models/checkpoints to a Core ML .mlpackage in models/unet. The conversion parameters are encoded in the output name, so an already-converted model is reused instead of re-converted. See conversion for details.

  • Inputs
    • ckpt_name — checkpoint in models/checkpoints.
    • model_version — SD15 or SDXL (list is discovered from coreml-diffusion).
    • height, width — target image size; any positive multiple of 8 (default 512). The model's input size is fixed at these values.
    • batch_size — default 1; raise to convert a batch-capable model.
    • attention_implementation — SPLIT_EINSUM / SPLIT_EINSUM_V2 (ANE) or ORIGINAL (GPU). See hardware.
    • compute_unit — used only when loading the result; does not affect conversion.
    • controlnet_support — set True to make the model usable with ControlNet (default False).
    • quantize_nbits (optional) — none (default), 8, 6, 4. See conversion → quantization.
    • lora_params (optional) — from the LoRA loader, to bake LoRAs in.
  • Output
    • coreml_model.

Note

Some checkpoints need a custom config .yaml. Place it in models/configs named like the checkpoint (e.g. juggernaut.safetensors → juggernaut.yaml); it is loaded automatically during conversion.


Convert LCM to Core ML (Core ML LCM Converter)

LCM Converter

Converts SimianLuo/LCM_Dreamshaper_v7 to Core ML in models/unet. As with the checkpoint converter, the parameters are encoded in the name and an existing model is reused.

  • Inputs
    • height, width — 512–768, multiple of 8 (default 512).
    • batch_size — default 1.
    • compute_unit — used only when loading.
    • controlnet_support — default False.
  • Output
    • coreml_model.

Note

When sampling an LCM model, set sampler_name to lcm and scheduler to sgm_uniform. Conversion can take a while.