jrrjrr's picture
Update README.md
963483f
|
raw
history blame
6.81 kB
---
license: creativeml-openrail-m
tags:
- coreml
- stable-diffusion
- text-to-image
---
# ControlNet v1.1 Models And Compatible Stable Diffusion v1.5 Type Models Converted To Apple CoreML Format
## For use with a Swift app like [**MOCHI DIFFUSION**](https://github.com/godly-devotion/MochiDiffusion) or the SwiftCLI
The SD models in this repo are all "Original" and built for CPU and GPU. They are each for the output size noted. They are fp16, with the standard SD-1.5 VAE embedded.
The Stable Diffusion v1.5 model and the other SD 1.5 type models contain both the standard Unet and the ControlledUnet used for a ControlNet pipeline. The correct one will be used automatically based on whether a ControlNet is enabled or not.
They have VAEEncoder.mlmodelc bundles that allow Image2Image to operate correctly at the noted resolutions, when used with a current Swift CLI pipeline or a current GUI built with ml-stable-diffusion 0.4.0 or ml-stable-diffusion 1.0.0, such as [**MOCHI DIFFUSION**](https://github.com/godly-devotion/MochiDiffusion) 3.2, 4.0, or later.
All of the ControlNet models in this repo are "Original" ones, built for CPU and GPU compute units (cpuAndGPU) and for SD-1.5 type models. They will not work with SD-2.1 type models. The zip files each have a set of models at 4 resolutions. "Split-Einsum" versions for use with the Neural Engine (CPU and NE) are available at a different repo. A link to that repo is at the bottom of this page.
All of the models in this repo work with Swift and the apple/ml-stable-diffusion pipeline (release 0.4.0 or 1.0.0). They were not built for, and will not work with, a Python Diffusers pipeline. They need [**ml-stable-diffusion**](https://github.com/apple/ml-stable-diffusion) for command line use, or a Swift app that supports ControlNet, such as the new (June 2023) [**MOCHI DIFFUSION**](https://github.com/godly-devotion/MochiDiffusion) 4.0 version.
The full SD models are in the "SD" folder of this repo. They are in subfolders by model name and individually zipped for a particular resolution. They need to be unzipped for use after downloading.
The ControlNet model files are in the "CN" folder of this repo. They are zipped and need to be unzipped after downloading. Each zip holds a set of 4 resolutions for that ControlNet type, built for 512x512, 512x768, 768x512 and 768x768.
There is also a "MISC" folder that has text files with some notes and a screencap of my directory structure. These are provided for those who want to convert models themselves and/or run the models with a SwiftCLI. The notes are not perfect, and may be out of date if any of the Python or CoreML packages referenced have been updated recently. You can open a Discussion here if you need help with any of the "MISC" items.
For command line use, the "MISC" notes cover setting up a miniconda3 environment. If you are using the command line, please read the notes concerning naming and placement of your ControlNet model folder. Briefly, they will need to go inside a "controlnet" folder that you placed inside your base model folder. You'll need a "controlnet" folder inside each base model folder, or a symlink named "controlnet" pointing to a central folder with all your ControlNet models inside it.
If you are using a GUI like [**MOCHI DIFFUSION**](https://github.com/godly-devotion/MochiDiffusion) 4.0, the app will most likely guide you to the correct location/arrangement for your ConrolNet model folder.
Please note that when you unzip the ControlNet files (for example Canny.zip) from this repo, they will unzip into a folder, with the actual four model files inside that folder. This folder is just for the zipping process. **What you want to move into your ControlNet model folder in Mochi Diffusion will be the individual files, not the folder they unzip into.** To make things even more confusing, on some Mac systems, an individual ControlNet model file, for example Canny-5x5.mlmodelc, will appear in Finder as a folder, not a file. You want to move the Canny-5x5.mlmodelc file or folder, and the 3 other .mlmodelc files or folders, into your ControlNet store folder. Don't move the Canny folder. This is different from base models, where you do want to be moving the folder that the downloaded zip file unzips into. See the images [**here**](https://huggingface.co/jrrjrr/CoreML-Models-For-ControlNet/blob/main/CN/-Settings.jpg) and [**here**](https://huggingface.co/jrrjrr/CoreML-Models-For-ControlNet/blob/main/CN/-Folders.jpg) for an example of how my folders are set up for Mochi Diffusion.
The sizes noted for all model type inputs/outputs are WIDTH x HEIGHT. A 512x768 is "portrait" orientation and a 768x512 is "landscape" orientation.
**If you encounter any models that do not work correctly with image2image and/or a ControlNet, using the current apple/ml-stable-diffusion SwiftCLI pipeline for i2i or CN, or Mochi Diffusion 3.2 using i2i, or Mochi Diffusion 4.0 using i2i or CN, please leave a report in the Community Discussion area. If you would like to add models that you have converted, leave a message there as well, and we will grant you access to this repo.**
## Base Models - A Variety Of SD-1.5-Type Models For Use With ControlNet
Each folder contains 4 zipped model files, output sizes as indicated: 512x512, 512x768, 768x512 or 768x768
- DreamShaper v5.0, 1.5-type model, "Original"
- GhostMix v1.1, 1.5-type anime model, "Original"
- MeinaMix v9.0 1.5-type anime model, "Original"
- MyMerge v1.0 1.5-type NSFW model, "Original"
- Realistic Vision v2.0, 1.5-type model, "Original"
- Stable Diffusion v1.5, "Original"
## ControlNet Models - All Current SD-1.5-Type ControlNet Models
Each zip file contains a set of 4 resolutions: 512x512, 512x768, 768x512 and 768x768
- Canny -- Edge Detection, Outlines As Input
- Depth -- Reproduces Depth Relationships From An Image
- InPaint -- Use Masks To Define And Modify An Area (not sure how this works)
- InstrP2P -- Instruct Pixel2Pixel - "Change X to Y"
- LineAnime -- Find And Reuse Small Outlines, Optimized For Anime
- LineArt -- Find And Reuse Small Outlines
- MLSD -- Find And Reuse Straight Lines And Edges
- NormalBAE -- Reproduce Depth Relationships Using Surface Normal Depth Maps
- OpenPose -- Copy Body Poses
- Scribble -- Freehand Sketch As Input
- Segmentation -- Find And Reuse Distinct Areas
- Shuffle -- Find And Reorder Major Elements
- SoftEdge -- Find And Reuse Soft Edges
- Tile -- Subtle Variations Within Batch Run
## A Set Of 14 ControlNet Models Built For Split-Einsum Are Available [**HERE**](https://huggingface.co/atatakun/CoreML-Models-For-ControlNet1-1-NE/tree/main)
They are divided into 3 zip files: controlnet5x5.NE.zip, controlnet5x5.NE2.zip, and controlnet5x5.NE3.zip