| # Provenance |
|
|
| ## Exact checkpoint |
|
|
| - Creator: KandooAI / RunDiffusion |
| - Civitai model: Juggernaut XL (133005) |
| - Civitai version: Jugg_XI_Lightning_by_RD (920957) |
| - File: `juggernautXL_juggXILightningByRD.safetensors` |
| - Size: `7,105,348,616` bytes |
| - SHA-256: `609fde646e7fc60a259ad67351e02258ac7929a0a1f5040049dfec6a15f37b1a` |
| - Tensor validation: 2,515 tensors; no NaN or Infinity values |
|
|
| ## Architecture configuration |
|
|
| The checkpoint is a single-file SDXL model. Only architecture configuration |
| and tokenizer assets were taken from the creator reference repository: |
|
|
| - Repository: `RunDiffusion/Juggernaut-XL-Lightning` |
| - Revision: `9c35e7ca1112b7e567ae7b24400b83935909916d` |
| - Config snapshot manifest SHA-256: |
| `4b05f6a337bcdf1a319054b9ad4493021993aea6d2760c774b7944e865d59481` |
|
|
| All learned UNet, VAE, text encoder 1, and text encoder 2 tensors came from the |
| authenticated Civitai checkpoint above. No learned weights were copied from |
| the different checkpoint hosted in the reference repository. |
|
|
| ## Reproducible conversion |
|
|
| - Apple converter: `apple/ml-stable-diffusion` |
| - Converter revision: `e12202c1f6405b83918b58a5d097cd61e3e1f702` |
| - LocalMuse wrappers: `Tools/CoreML/convert_sdxl_unet.py` and |
| `Tools/CoreML/convert_sdxl_text_encoders.py` |
| - Resolution: 1024×1024 (`128×128` latent) |
| - UNet: 6-bit palettized, `SPLIT_EINSUM`, two chunks |
| - Text encoder 1: FP16 |
| - Text encoder 2: 8-bit palettized |
| - VAE encoder/decoder: checkpoint-specific FP16 weights |
| - Minimum target: iOS 17 |
|
|
| Conversion parity checks (PSNR): VAE decoder 106.3 dB, VAE encoder 101.5 dB, |
| FP16 Core ML UNet 47.4 dB, text encoder 1 78.9 dB, text encoder 2 75.4 dB. |
| All exceeded the 35 dB acceptance threshold. Every compiled component was |
| loaded sequentially with Core ML using `CPU_ONLY` after compilation. |
|
|
| ## Tensor contracts |
|
|
| - UNet input: `[2, 4, 128, 128]` |
| - UNet output: `[2, 4, 128, 128]` |
| - VAE encoder input: `[1, 3, 1024, 1024]` |
| - VAE encoder output: `[1, 8, 128, 128]` |
| - VAE decoder input: `[1, 4, 128, 128]` |
| - VAE decoder output: `[1, 3, 1024, 1024]` |
| - Text encoder token input: `[1, 77]` |
|
|
|
|