------------------------------------------------------------------------------- Model folders (noted with -cn when built for use with ControlNet) live in the /models folder. Each -cn model must have a /controlnet folder inside it that is a symlink to the real /controlnet folder. You need to add this folder symlink to any model you download from my HF repo, after you unzip the model and put it in your /models folder. (( The SwiftCLI scripts look for the ControlNet *.mlmodelc you are using inside the full model's /controlnet folder. This is crazy. It means every full model needs a folder inside symlinked to the /controlnet store folder. That is how they set it up and I haven't looked into editing their scripts yet. )) The input image(s) you want to use with the ControlNet need to be inside the /input folder. Generated images will be saved to the /images folder. There is a screencap of the folder structure I have that matches all these notes in the MISC section at my HF page. ------------------------------------------------------------------------------- Inference Without ControlNet (Using any standard SD-1.5 or SD-2.1 type CoreML model): Test your setup with this first, before trying with ControlNet. conda activate python_playground cd xxxxx/miniconda3/envs/python_playground/coreml-swift/ml-stable-diffusion swift run StableDiffusionSample "a photo of a cat" --seed 12 --guidance-scale 8.0 --step-count 24 --image-count 1 --scheduler dpmpp --compute-units cpuAndGPU --resource-path ../models/SD21 --output-path ../images ------------------------------------------------------------------------------- Inference With ControlNet: conda activate python_playground cd /Users/jrittvo/miniconda3/envs/python_playground/coreml-swift/ml-stable-diffusion swift run StableDiffusionSample "a photo of a green yellow and red bird" --seed 12 --guidance-scale 8.0 --step-count 24 --image-count 1 --scheduler dpmpp --compute-units cpuAndGPU --resource-path ../models/SD15-cn --controlnet Canny --controlnet-inputs ../input/canny-bird.png --output-path ../images --negative-prompt "in quotes" --seed default is random --guidance-scale default is 7 --step-count default is 50 --image-count batch size, default is 1 --image path to image for image2image --strength strength for image2image, 0.0 - 1.0, default 0.5 --scheduler pndm or dpmpp (DPM++), default is pndm --compute-units all, cpuOnly, cpuAndGPU, cpuAndNeuralEngine --resource-path one of the model checkpoint .mlmodelc bundle folders --controlnet path/controlnet-model <> (no extension) --controlnet-inputs path/image.png <> (same order as --controlnet) --output-path folder to save image(s) (auto-named to: prompt.seed.final.png) --help