From 31774e33245020a6f6b9ddf2d4e88bfddf65cd48 Mon Sep 17 00:00:00 2001 From: aszc-dev Date: Mon, 25 May 2026 18:37:04 +0200 Subject: [PATCH] chore: slim PR to user-facing essentials Carry only the code, tests, and user-facing docs that matter to end users; drop the modernization scaffolding accumulated while building it. - Remove the bench harness, results, and environment captures (bench/). - Remove internal docs and research spikes (docs/). - Remove the Makefile; tests run via uv / pytest directly. - Strip the bench harness and quantization-matrix steps from the Tier 2 workflow. The golden-image test drives conversion through the Core ML Converter node at runtime, so no separate convert step is needed. - Replace phase/handoff annotations across code, tests, and config with neutral docstrings and comments. --- .github/workflows/tier0.yml | 4 +- .github/workflows/tier2.yml | 48 +- .gitignore | 1 - Makefile | 88 ---- README.md | 10 +- bench/env/baseline-1e5791d.txt | 134 ------ bench/env/baseline-ef2a18c.txt | 129 ------ bench/env/capture.sh | 100 ----- bench/env/pytest-unit-1e5791d.txt | 98 ---- bench/env/pytest-unit-ef2a18c.txt | 39 -- bench/prompts.json | 19 - bench/results/1e5791d.json | 103 ----- bench/results/1e5791d.md | 19 - bench/results/ef2a18c.json | 103 ----- bench/results/ef2a18c.md | 19 - bench/results/quant_matrix_0bbd8d8.json | 49 -- bench/results/quant_matrix_0bbd8d8.md | 12 - .../smoke/ef2a18c/E2E-1.5-CoreML_00002_.png | Bin 462241 -> 0 bytes bench/results/smoke/ef2a18c/report.json | 10 - bench/run.py | 417 ------------------ bench/scripts/convert_sd15.py | 99 ----- bench/scripts/quant_matrix.py | 188 -------- bench/scripts/smoke_image.py | 163 ------- constraints/comfy-ceiling.txt | 4 +- coreml_suite/controlnet.py | 2 +- coreml_suite/converter.py | 4 +- coreml_suite/core/controlnet.py | 4 +- coreml_suite/core/inputs.py | 3 +- coreml_suite/core/latents.py | 6 +- coreml_suite/core/naming.py | 10 +- coreml_suite/core/sdxl.py | 8 +- coreml_suite/latents.py | 2 +- coreml_suite/models.py | 2 +- coreml_suite/nodes.py | 11 +- docs/ci-m2.md | 137 ------ docs/deps.md | 163 ------- docs/spikes/01-multifunction-models.md | 122 ----- docs/spikes/02-flexible-shapes.md | 135 ------ docs/spikes/03-mlx-interop.md | 106 ----- docs/spikes/README.md | 49 -- pyproject.toml | 30 +- tests/conftest.py | 17 +- tests/m2/test_golden_image.py | 9 +- .../unit/test_characterization_controlnet.py | 2 +- tests/unit/test_characterization_inputs.py | 4 +- tests/unit/test_characterization_latents.py | 6 +- tests/unit/test_characterization_out_name.py | 12 +- .../test_characterization_sdxl_options.py | 6 +- tests/unit/test_chunks.py | 7 +- tests/unit/test_tier0_purity.py | 2 +- 50 files changed, 85 insertions(+), 2630 deletions(-) delete mode 100644 Makefile delete mode 100644 bench/env/baseline-1e5791d.txt delete mode 100644 bench/env/baseline-ef2a18c.txt delete mode 100755 bench/env/capture.sh delete mode 100644 bench/env/pytest-unit-1e5791d.txt delete mode 100644 bench/env/pytest-unit-ef2a18c.txt delete mode 100644 bench/prompts.json delete mode 100644 bench/results/1e5791d.json delete mode 100644 bench/results/1e5791d.md delete mode 100644 bench/results/ef2a18c.json delete mode 100644 bench/results/ef2a18c.md delete mode 100644 bench/results/quant_matrix_0bbd8d8.json delete mode 100644 bench/results/quant_matrix_0bbd8d8.md delete mode 100644 bench/results/smoke/ef2a18c/E2E-1.5-CoreML_00002_.png delete mode 100644 bench/results/smoke/ef2a18c/report.json delete mode 100644 bench/run.py delete mode 100644 bench/scripts/convert_sd15.py delete mode 100644 bench/scripts/quant_matrix.py delete mode 100644 bench/scripts/smoke_image.py delete mode 100644 docs/ci-m2.md delete mode 100644 docs/deps.md delete mode 100644 docs/spikes/01-multifunction-models.md delete mode 100644 docs/spikes/02-flexible-shapes.md delete mode 100644 docs/spikes/03-mlx-interop.md delete mode 100644 docs/spikes/README.md diff --git a/.github/workflows/tier0.yml b/.github/workflows/tier0.yml index 75dead2..f380824 100644 --- a/.github/workflows/tier0.yml +++ b/.github/workflows/tier0.yml @@ -23,8 +23,8 @@ jobs: - name: Install Tier 0 deps run: | python -m pip install --upgrade pip - # Pins mirror pyproject (Phase 1 baseline). Tier 0 only needs - # torch + numpy + pytest; everything else is Mac-only. + # Tier 0 only needs torch + numpy + pytest; everything else + # is Mac-only. python -m pip install \ "torch==2.0.1" "numpy<1.25" \ "pytest>=8" "pytest-xdist" diff --git a/.github/workflows/tier2.yml b/.github/workflows/tier2.yml index 0950dc7..98943f4 100644 --- a/.github/workflows/tier2.yml +++ b/.github/workflows/tier2.yml @@ -16,14 +16,14 @@ jobs: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'run-m2')) - # Self-hosted Mac registered by the maintainer. See docs/ci-m2.md - # for runner setup and the COMFY_DIR / checkpoint prerequisites. + # Self-hosted Apple Silicon runner. Prerequisites: COMFY_DIR pointing at + # a runner-owned ComfyUI clone, plus a cached SD1.5 checkpoint. runs-on: [self-hosted, macOS, ARM64, coreml] timeout-minutes: 90 steps: - uses: actions/checkout@v4 - # Hybrid ComfyUI strategy (see docs/ci-m2.md "ComfyUI version under test"): + # Hybrid ComfyUI strategy: # - schedule (nightly) -> latest origin/master + ComfyUI's own # requirements.txt (constrained). Canary for upstream API breakage. # - PR label / dispatch -> the pinned requires-comfyui SHA + the frozen @@ -46,7 +46,7 @@ jobs: # git reset --hard and rewrites custom_nodes). Cloned on first run. run: | set -euo pipefail - if [ -z "${COMFY_DIR:-}" ]; then echo "COMFY_DIR unset (see docs/ci-m2.md)"; exit 1; fi + if [ -z "${COMFY_DIR:-}" ]; then echo "COMFY_DIR unset"; exit 1; fi # Init-in-place rather than `git clone`: COMFY_DIR may already hold the # cached checkpoint (models/checkpoints) or converted .mlmodelc, and # `git clone` refuses a non-empty target. init + fetch + `checkout -f` @@ -95,22 +95,6 @@ jobs: uv sync --group comfy fi - - name: Convert UNet variants if missing - # Idempotent: converter.convert / compile_model skip when the .mlmodelc - # already exists, so this is a no-op once the runner cache is warm. - run: | - set -euo pipefail - for V in none 8 6 4; do - if [ "$V" = "none" ]; then SUF=""; else SUF="_q$V"; fi - OUT="$COMFY_DIR/models/unet/v1-5-pruned-emaonly_1x512x512_se${SUF}_unet.mlmodelc" - if [ -d "$OUT" ]; then echo "skip nbits=$V (exists)"; continue; fi - echo "converting nbits=$V" - # --no-sync: keep the deps we just installed (latest mode's - # ComfyUI requirements / pinned mode's --group comfy); a bare - # `uv run` would re-sync to the lock and drop them. - QUANT_NBITS="$V" uv run --no-sync python bench/scripts/convert_sd15.py - done - - name: Start ComfyUI server (background) run: | cd "$COMFY_DIR" @@ -126,29 +110,11 @@ jobs: echo "comfy failed to start"; tail -100 /tmp/comfyui-ci.log; exit 1 - name: Run Tier 2 (m2 marker) + # The golden-image workflow drives the Core ML Converter node, so the + # UNet is converted on demand on the first run and reused from the + # runner-local cache afterwards. run: uv run --no-sync pytest -m m2 tests/ -v - - name: Run bench harness (baseline UNet) - run: | - uv run --no-sync python bench/run.py \ - --model "$COMFY_DIR/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc" \ - --compute-units CPU_AND_NE CPU_AND_GPU \ - --repeats 30 --assumed-steps 20 - - - name: Run quantization tradeoff matrix (Phase 6) - # Benches none/8/6/4 on ANE and records size / ms-step / PSNR-vs-none - # into bench/results/quant_matrix_.{json,md}. - run: uv run --no-sync python bench/scripts/quant_matrix.py - - - name: Upload bench results - uses: actions/upload-artifact@v4 - if: always() - with: - name: bench-results - path: | - bench/results/*.json - bench/results/*.md - - name: Stop ComfyUI server if: always() run: pkill -f "main.py.*8188" || true diff --git a/.gitignore b/.gitignore index b578bb9..b883889 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,4 @@ comfy_env/ coremlsuite-venv/ experiment_results/ test_results/ -bench/scripts/*.log tests/m2/_latest_generated.png diff --git a/Makefile b/Makefile deleted file mode 100644 index c1d51d8..0000000 --- a/Makefile +++ /dev/null @@ -1,88 +0,0 @@ -# ComfyUI-CoreMLSuite — tiered test/bench dispatcher (Phase 4). -# -# Tiers (see MODERNIZATION_SPEC.md): -# Tier 0 (unit): framework-free pure-logic tests, run anywhere in seconds. -# Tier 1 (smoke): macOS-ARM, no ANE, no full model — converts a synthetic -# micro-UNet to catch coremltools / ml-stable-diffusion -# API breakage in minutes. -# Tier 2 (m2): real ANE on Apple Silicon; integration + bench. -# -# COMFY_DIR defaults to the canonical custom-node layout (two dirs up from here). -# PY defaults to the project's uv-managed venv interpreter. - -COMFY_DIR ?= $(realpath $(CURDIR)/../..) -PY ?= $(CURDIR)/.venv/bin/python -PYTEST ?= $(PY) -m pytest - -UNAME_S := $(shell uname -s) -UNAME_M := $(shell uname -m) -IS_MACOS_ARM := $(filter Darwin,$(UNAME_S))$(filter arm64,$(UNAME_M)) - -.PHONY: help test-unit test-smoke test-m2 bench bench-rerun ci-tier0 ci-tier1 clean check-macos-arm - -help: - @echo "ComfyUI-CoreMLSuite — make targets" - @echo "" - @echo " test-unit Tier 0: pure-logic pytest, runs anywhere, seconds" - @echo " test-smoke Tier 1: synthetic micro-UNet ct.convert + load (macOS-ARM, minutes)" - @echo " test-m2 Tier 2: pytest -m m2 against a real Core ML UNet (Apple Silicon + ANE)" - @echo " bench Run bench/run.py against a converted .mlmodelc" - @echo "" - @echo "Vars: COMFY_DIR (default: $(COMFY_DIR)), PY (default: $(PY))" - -check-macos-arm: - @if [ -z "$(IS_MACOS_ARM)" ]; then \ - echo "this target requires macOS on Apple Silicon (got $(UNAME_S)/$(UNAME_M))"; \ - exit 2; \ - fi - -# Tier 0 — Linux-safe pure logic. Should not import comfy/coremltools. -test-unit: - $(PYTEST) -m unit tests/ - -# Tier 1 — macOS-ARM smoke. Converts a synthetic UNet through coremltools to -# catch API breakage without needing a real SD checkpoint or the ANE. -test-smoke: check-macos-arm - $(PYTEST) -m smoke tests/ - -# Tier 2 — full Apple Silicon path: integration + m2 golden + bench. -# Requires a converted .mlmodelc (see bench/scripts/convert_sd15.py). -test-m2: check-macos-arm - $(PYTEST) -m m2 tests/ - -# Bench harness. Override MODEL=/path/to/.mlmodelc for an explicit model. -MODEL ?= $(COMFY_DIR)/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc -COMPUTE_UNITS ?= CPU_AND_NE CPU_AND_GPU -REPEATS ?= 30 -ASSUMED_STEPS ?= 20 -bench: check-macos-arm - $(PY) bench/run.py \ - --model "$(MODEL)" \ - --compute-units $(COMPUTE_UNITS) \ - --repeats $(REPEATS) \ - --assumed-steps $(ASSUMED_STEPS) - -# Phase 6: quantization tradeoff matrix. Expects the {none, 8, 6, 4} -# variants to already exist on disk (run `make convert-quant` first or -# QUANT_NBITS=8 .venv/bin/python bench/scripts/convert_sd15.py). -bench-quant: check-macos-arm - $(PY) bench/scripts/quant_matrix.py - -convert-quant: check-macos-arm - @for n in 8 6 4; do \ - echo "=== converting nbits=$$n ==="; \ - QUANT_NBITS=$$n $(PY) bench/scripts/convert_sd15.py || exit 1; \ - done - -# What CI actually invokes — same as test-unit but echoes the env capture -# alongside so failed runs land with diagnostics. -ci-tier0: - @echo "## env (Tier 0)" && $(PY) --version && uv pip freeze --python "$(PY)" 2>/dev/null | head -50 || true - $(MAKE) test-unit - -ci-tier1: check-macos-arm - @echo "## env (Tier 1)" && $(PY) --version && uv pip freeze --python "$(PY)" 2>/dev/null | head -50 || true - $(MAKE) test-smoke - -clean: - rm -rf .pytest_cache tests/m2/_latest_generated.png pytestdebug.log diff --git a/README.md b/README.md index 7571fa1..1c48973 100644 --- a/README.md +++ b/README.md @@ -370,21 +370,21 @@ The models used in this workflow are available at the following links: ![sdxl](./assets/sdxl_conversion.png?raw=true) -## Quantization (Phase 6, opt-in) +## Quantization (opt-in) The `Core ML Converter` and `Core ML LCM Converter` nodes accept an optional `quantize_nbits` dropdown that runs k-means weight palettization (`coremltools.optimize.coreml.palettize_weights`) on the UNet before save. -Values: `none` (default — no quantization, identical to pre-Phase-6 +Values: `none` (default — no quantization, identical to unquantized behavior and filenames), `8`, `6`, `4`. The number is appended to the .mlpackage stem as `_q` so quantized and unquantized variants coexist on disk and in cache. ### SD1.5 1×512×512 SPLIT_EINSUM tradeoffs (M2 Pro, ANE) -Measured by `bench/scripts/quant_matrix.py` (20 forward passes, fixed -seed for the PSNR comparison): +Measured with 20 UNet forward passes at a fixed seed for the PSNR +comparison: | nbits | size (MB) | size vs none | fwd median (ms) | PSNR vs `none` (dB) | |---|---:|---:|---:|---:| @@ -408,7 +408,7 @@ PSNR is comfortably higher (the sampler averages over 20 steps). margin, `none` if you want bit-identical output for golden testing. The default stays `none` so existing workflows produce byte-for-byte -identical output — the Phase 6 anchor (`tests/m2/test_golden_image.py`) +identical output — the golden-image anchor (`tests/m2/test_golden_image.py`) verifies this on every Tier 2 run. ## Limitations diff --git a/bench/env/baseline-1e5791d.txt b/bench/env/baseline-1e5791d.txt deleted file mode 100644 index ad2819d..0000000 --- a/bench/env/baseline-1e5791d.txt +++ /dev/null @@ -1,134 +0,0 @@ -# Phase 1 baseline environment capture -timestamp_utc: 2026-05-24T14:36:51Z -repo_sha: 1e5791d1087b4dfb095e7761f05ac4e82c92cf7a -repo_branch: modernize/phase5-toolchain-bump -comfyui_dir: /Users/aszczepanski/dev/ComfyUI -comfyui_sha: ab5413351eee61f3d7f10c74e75286df0058bb18 -python_bin: /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite/.venv/bin/python -python_version: Python 3.12.11 -platform_machine: arm64 -platform_uname: Darwin mac-2.home 25.1.0 Darwin Kernel Version 25.1.0: Mon Oct 20 19:33:00 PDT 2025; root:xnu-12377.41.6~2/RELEASE_ARM64_T6020 arm64 -macos_product: macOS -macos_version: 26.1 -macos_build: 25B78 - -## python-coreml-stable-diffusion (resolved) -Name: python-coreml-stable-diffusion -Version: 1.1.0 -Location: /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite/.venv/lib/python3.12/site-packages -Requires: coremltools, diffusers, diffusionkit, huggingface-hub, invisible-watermark, matplotlib, numpy, pytest, safetensors, scikit-learn, scipy, torch, transformers -Required-by: - -## python-coreml-stable-diffusion installed git metadata -{"url":"https://github.com/apple/ml-stable-diffusion.git","vcs_info":{"vcs":"git","commit_id":"e5d960c41a6a4ab200b8db379194127607b1c590","requested_revision":"e5d960c41a6a4ab200b8db379194127607b1c590"}} - -## coremltools version -scikit-learn version 1.7.2 is not supported. Minimum required version: 0.17. Maximum required version: 1.5.1. Disabling scikit-learn conversion API. -Torch version 2.7.1 has not been tested with coremltools. You may run into unexpected errors. Torch 2.7.0 is the most recent version that has been tested. -coremltools 9.0 - -## torch version -torch 2.7.1 - -## numpy version -numpy 1.26.4 - -## freeze -accelerate==1.13.0 -aiohappyeyeballs==2.6.2 -aiohttp==3.13.5 -aiosignal==1.4.0 -annotated-types==0.7.0 -antlr4-python3-runtime==4.9.3 -argmaxtools==0.1.23 -attrs==26.1.0 -beartype==0.22.9 -cattrs==26.1.0 -certifi==2026.5.20 -cffi==2.0.0 -charset-normalizer==3.4.7 -click==8.4.1 -comfyui-frontend-package==1.14.6 -contourpy==1.3.2 -coremltools==9.0 -cycler==0.12.1 -diffusers==0.30.2 -diffusionkit==0.4.0 -einops==0.8.2 -filelock==3.29.0 -fonttools==4.63.0 -frozenlist==1.8.0 -fsspec==2026.4.0 -gitdb==4.0.12 -gitpython==3.1.50 -huggingface-hub==0.24.6 -idna==3.16 -importlib-metadata==9.0.0 -iniconfig==2.3.0 -invisible-watermark==0.2.0 -jaxtyping==0.3.9 -jinja2==3.1.6 -joblib==1.5.3 -kiwisolver==1.5.0 -kornia==0.8.3 -kornia-rs==0.1.14 -markupsafe==3.0.3 -matplotlib==3.10.9 -mlx==0.31.2 -mlx-metal==0.31.2 -mpmath==1.3.0 -multidict==6.7.1 -networkx==3.6.1 -numpy==1.26.4 -omegaconf==2.3.0 -opencv-python==4.11.0.86 -overrides==7.7.0 -packaging==26.2 -peft==0.13.2 -pillow==12.2.0 -platformdirs==4.9.6 -pluggy==1.6.0 -propcache==0.5.2 -protobuf==7.35.0 -psutil==7.2.2 -pyaml==26.2.1 -pycparser==3.0 -pydantic==2.13.4 -pydantic-core==2.46.4 -pygments==2.20.0 -pyparsing==3.3.2 -pytest==9.0.3 -python-coreml-stable-diffusion @ git+https://github.com/apple/ml-stable-diffusion.git@e5d960c41a6a4ab200b8db379194127607b1c590 -python-dateutil==2.9.0.post0 -pywavelets==1.8.0 -pyyaml==6.0.3 -regex==2026.5.9 -requests==2.34.2 -safetensors==0.7.0 -scikit-learn==1.7.2 -scipy==1.15.3 -sentencepiece==0.2.1 -sentry-sdk==2.60.0 -setuptools==81.0.0 -six==1.17.0 -smmap==5.0.3 -soundfile==0.13.1 -spandrel==0.4.2 -sympy==1.14.0 -tabulate==0.10.0 -threadpoolctl==3.6.0 -tokenizers==0.19.1 -torch==2.7.1 -torchaudio==2.11.0 -torchsde==0.2.6 -torchvision==0.22.1 -tqdm==4.67.3 -trampoline==0.1.2 -transformers==4.44.2 -typing-extensions==4.15.0 -typing-inspection==0.4.2 -urllib3==2.7.0 -wadler-lindig==0.1.7 -wandb==0.27.0 -yarl==1.24.2 -zipp==4.1.0 diff --git a/bench/env/baseline-ef2a18c.txt b/bench/env/baseline-ef2a18c.txt deleted file mode 100644 index f8bc2b9..0000000 --- a/bench/env/baseline-ef2a18c.txt +++ /dev/null @@ -1,129 +0,0 @@ -# Phase 1 baseline environment capture -timestamp_utc: 2026-05-22T13:06:37Z -repo_sha: ef2a18cff3d8b563ae053d27c1c5c233bd05d47f -repo_branch: modernize/phase1-freeze-baseline -comfyui_dir: /Users/aszczepanski/dev/ComfyUI -comfyui_sha: ab5413351eee61f3d7f10c74e75286df0058bb18 -python_bin: /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite/.venv/bin/python -python_version: Python 3.11.14 -platform_machine: arm64 -platform_uname: Darwin mac-2.home 25.1.0 Darwin Kernel Version 25.1.0: Mon Oct 20 19:33:00 PDT 2025; root:xnu-12377.41.6~2/RELEASE_ARM64_T6020 arm64 -macos_product: macOS -macos_version: 26.1 -macos_build: 25B78 - -## python-coreml-stable-diffusion (resolved) -Name: python-coreml-stable-diffusion -Version: 1.1.0 -Location: /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite/.venv/lib/python3.11/site-packages -Requires: coremltools, diffusers, diffusionkit, huggingface-hub, invisible-watermark, matplotlib, numpy, pytest, safetensors, scikit-learn, scipy, torch, transformers -Required-by: - -## python-coreml-stable-diffusion installed git metadata -{"url":"https://github.com/apple/ml-stable-diffusion.git","vcs_info":{"vcs":"git","commit_id":"e5d960c41a6a4ab200b8db379194127607b1c590","requested_revision":"e5d960c41a6a4ab200b8db379194127607b1c590"}} - -## coremltools version -scikit-learn version 1.7.2 is not supported. Minimum required version: 0.17. Maximum required version: 1.5.1. Disabling scikit-learn conversion API. -Minimum required torch version for importing coremltools.optimize.torch is 2.1.0. Got torch version 2.0.1. -coremltools 8.2 - -## torch version -torch 2.0.1 - -## numpy version -numpy 1.23.5 - -## freeze -accelerate==1.13.0 -aiohappyeyeballs==2.6.2 -aiohttp==3.13.5 -aiosignal==1.4.0 -annotated-types==0.7.0 -antlr4-python3-runtime==4.9.3 -argmaxtools==0.1.23 -attrs==26.1.0 -beartype==0.22.9 -cattrs==26.1.0 -certifi==2026.5.20 -charset-normalizer==3.4.7 -click==8.4.1 -comfyui-frontend-package==1.14.6 -contourpy==1.3.2 -coremltools==8.2 -cycler==0.12.1 -diffusers==0.30.2 -diffusionkit==0.4.0 -einops==0.8.2 -filelock==3.29.0 -fonttools==4.63.0 -frozenlist==1.8.0 -fsspec==2026.4.0 -gitdb==4.0.12 -gitpython==3.1.50 -huggingface-hub==0.24.6 -idna==3.16 -importlib-metadata==9.0.0 -iniconfig==2.3.0 -invisible-watermark==0.2.0 -jaxtyping==0.3.9 -jinja2==3.1.6 -joblib==1.5.3 -kiwisolver==1.5.0 -kornia==0.8.3 -kornia-rs==0.1.14 -markupsafe==3.0.3 -matplotlib==3.10.9 -mlx==0.31.2 -mlx-metal==0.31.2 -mpmath==1.3.0 -multidict==6.7.1 -networkx==3.6.1 -numpy==1.23.5 -omegaconf==2.3.0 -opencv-python==4.11.0.86 -overrides==7.7.0 -packaging==26.2 -peft==0.13.2 -pillow==12.2.0 -platformdirs==4.9.6 -pluggy==1.6.0 -propcache==0.5.2 -protobuf==7.35.0 -psutil==7.2.2 -pyaml==26.2.1 -pydantic==2.13.4 -pydantic-core==2.46.4 -pygments==2.20.0 -pyparsing==3.3.2 -pytest==9.0.3 -python-coreml-stable-diffusion @ git+https://github.com/apple/ml-stable-diffusion.git@e5d960c41a6a4ab200b8db379194127607b1c590 -python-dateutil==2.9.0.post0 -pywavelets==1.8.0 -pyyaml==6.0.3 -regex==2026.5.9 -requests==2.34.2 -safetensors==0.7.0 -scikit-learn==1.7.2 -scipy==1.15.3 -sentencepiece==0.2.1 -sentry-sdk==2.60.0 -setuptools==81.0.0 -six==1.17.0 -smmap==5.0.3 -sympy==1.14.0 -tabulate==0.10.0 -threadpoolctl==3.6.0 -tokenizers==0.19.1 -torch==2.0.1 -torchsde==0.2.6 -torchvision==0.15.2 -tqdm==4.67.3 -trampoline==0.1.2 -transformers==4.44.2 -typing-extensions==4.15.0 -typing-inspection==0.4.2 -urllib3==2.7.0 -wadler-lindig==0.1.7 -wandb==0.27.0 -yarl==1.24.2 -zipp==4.1.0 diff --git a/bench/env/capture.sh b/bench/env/capture.sh deleted file mode 100755 index aec3d9b..0000000 --- a/bench/env/capture.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env bash -# Phase 1 baseline environment capture. -# -# Default mode: query the project's .venv via `uv pip` (matches how uv builds -# the venv — without a bundled pip executable). For a non-uv setup, point -# PYTHON_BIN at the right interpreter; pip freeze then falls back to -# `python -m pip` if available, otherwise `uv pip`. -# -# Usage: -# bash bench/env/capture.sh # uses .venv (uv-managed) -# PYTHON_BIN=apple_env/bin/python bash bench/env/capture.sh -# -# Writes bench/env/baseline-.txt with: this repo's git sha, -# ComfyUI's git sha (override path with COMFY_DIR=...), python + macOS -# versions, the resolved git commit of python-coreml-stable-diffusion as -# installed, and the full freeze of the active venv (for fresh-venv -# reproducibility). -set -euo pipefail - -REPO_ROOT="$(git rev-parse --show-toplevel)" -cd "$REPO_ROOT" - -SHA_SHORT="$(git rev-parse --short HEAD)" -OUT_DIR="bench/env" -OUT="${OUT_DIR}/baseline-${SHA_SHORT}.txt" -mkdir -p "$OUT_DIR" - -COMFY_DIR="${COMFY_DIR:-$(cd ../.. && pwd)}" -PYTHON_BIN="${PYTHON_BIN:-$REPO_ROOT/.venv/bin/python}" - -if [ ! -x "$PYTHON_BIN" ]; then - echo "PYTHON_BIN not executable: $PYTHON_BIN" >&2 - exit 1 -fi - -# Prefer `python -m pip` (works in classic venvs). Fall back to `uv pip`, -# which queries any interpreter without needing pip installed in it. -run_freeze() { - if "$PYTHON_BIN" -m pip --version >/dev/null 2>&1; then - "$PYTHON_BIN" -m pip freeze - elif command -v uv >/dev/null 2>&1; then - uv pip freeze --python "$PYTHON_BIN" - else - echo "neither pip nor uv available for freeze" - fi -} - -run_show_msd() { - if "$PYTHON_BIN" -m pip --version >/dev/null 2>&1; then - "$PYTHON_BIN" -m pip show python-coreml-stable-diffusion 2>/dev/null || echo "not-installed" - elif command -v uv >/dev/null 2>&1; then - uv pip show --python "$PYTHON_BIN" python-coreml-stable-diffusion 2>/dev/null || echo "not-installed" - else - echo "neither pip nor uv available for show" - fi -} - -{ - echo "# Phase 1 baseline environment capture" - echo "timestamp_utc: $(date -u +%Y-%m-%dT%H:%M:%SZ)" - echo "repo_sha: $(git rev-parse HEAD)" - echo "repo_branch: $(git rev-parse --abbrev-ref HEAD)" - echo "comfyui_dir: ${COMFY_DIR}" - echo "comfyui_sha: $(git -C "$COMFY_DIR" rev-parse HEAD 2>/dev/null || echo unknown)" - echo "python_bin: ${PYTHON_BIN}" - echo "python_version: $("$PYTHON_BIN" --version 2>&1)" - echo "platform_machine: $(uname -m)" - echo "platform_uname: $(uname -a)" - if command -v sw_vers >/dev/null 2>&1; then - echo "macos_product: $(sw_vers -productName)" - echo "macos_version: $(sw_vers -productVersion)" - echo "macos_build: $(sw_vers -buildVersion)" - fi - echo - echo "## python-coreml-stable-diffusion (resolved)" - run_show_msd - echo - echo "## python-coreml-stable-diffusion installed git metadata" - DIST_INFO="$("$PYTHON_BIN" -c "import importlib.metadata as m; d=m.distribution('python-coreml-stable-diffusion'); print(d._path)" 2>/dev/null || true)" - if [ -n "${DIST_INFO}" ] && [ -f "${DIST_INFO}/direct_url.json" ]; then - cat "${DIST_INFO}/direct_url.json" - echo - else - echo "direct_url.json not found" - fi - echo - echo "## coremltools version" - "$PYTHON_BIN" -c "import coremltools; print('coremltools', coremltools.__version__)" 2>&1 || true - echo - echo "## torch version" - "$PYTHON_BIN" -c "import torch; print('torch', torch.__version__)" 2>&1 || true - echo - echo "## numpy version" - "$PYTHON_BIN" -c "import numpy; print('numpy', numpy.__version__)" 2>&1 || true - echo - echo "## freeze" - run_freeze -} > "$OUT" - -echo "wrote $OUT" diff --git a/bench/env/pytest-unit-1e5791d.txt b/bench/env/pytest-unit-1e5791d.txt deleted file mode 100644 index f0e81e6..0000000 --- a/bench/env/pytest-unit-1e5791d.txt +++ /dev/null @@ -1,98 +0,0 @@ -============================= test session starts ============================== -platform darwin -- Python 3.12.11, pytest-9.0.3, pluggy-1.6.0 -- /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite/.venv/bin/python -cachedir: .pytest_cache -rootdir: /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite -configfile: pyproject.toml -plugins: jaxtyping-0.3.9 -collecting ... collected 88 items - -tests/unit/test_characterization_controlnet.py::test_expand_inputs_doubles_singleton_numpy PASSED [ 1%] -tests/unit/test_characterization_controlnet.py::test_expand_inputs_doubles_singleton_torch PASSED [ 2%] -tests/unit/test_characterization_controlnet.py::test_expand_inputs_doubles_singleton_list PASSED [ 3%] -tests/unit/test_characterization_controlnet.py::test_expand_inputs_skips_already_batched PASSED [ 4%] -tests/unit/test_characterization_controlnet.py::test_expand_inputs_preserves_unknown_value_types PASSED [ 5%] -tests/unit/test_characterization_controlnet.py::test_no_control_returns_zero_fp16_for_residuals PASSED [ 6%] -tests/unit/test_characterization_controlnet.py::test_no_control_returns_empty_when_no_residuals PASSED [ 7%] -tests/unit/test_characterization_controlnet.py::test_extract_residual_kwargs_empty_when_model_has_no_residual_inputs PASSED [ 9%] -tests/unit/test_characterization_controlnet.py::test_extract_residual_kwargs_none_control_returns_no_control_shapes PASSED [ 10%] -tests/unit/test_characterization_controlnet.py::test_extract_residual_kwargs_flattens_output_then_middle_and_casts_fp16 PASSED [ 11%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_none_returns_list_of_nones_with_length_target PASSED [ 12%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_shapes_after_chunking[1-2-1] PASSED [ 13%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_shapes_after_chunking[2-2-1] PASSED [ 14%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_shapes_after_chunking[3-2-2] PASSED [ 15%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_shapes_after_chunking[4-2-2] PASSED [ 17%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_shapes_after_chunking[5-3-2] PASSED [ 18%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_shapes_after_chunking[9-4-3] PASSED [ 19%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_preserves_keys_order PASSED [ 20%] -tests/unit/test_characterization_controlnet.py::test_chunk_control_zero_pads_remainder PASSED [ 21%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_sd15_shapes_and_fp16 PASSED [ 22%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_sd15_with_controlnet_emits_residuals PASSED [ 23%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_sd15_without_controlnet_zero_fills_residuals PASSED [ 25%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_lcm_adds_timestep_cond PASSED [ 26%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_lcm_skips_timestep_cond_when_not_provided PASSED [ 27%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_sdxl_base_emits_time_ids_and_text_embeds PASSED [ 28%] -tests/unit/test_characterization_inputs.py::test_coreml_kwargs_sdxl_refiner_uses_len5_time_ids PASSED [ 29%] -tests/unit/test_characterization_inputs.py::test_chunks_sd15_pad_to_batch2_returns_one_chunk PASSED [ 30%] -tests/unit/test_characterization_inputs.py::test_chunks_sd15_with_controlnet_chunks_residuals_too PASSED [ 31%] -tests/unit/test_characterization_inputs.py::test_chunks_lcm_carries_timestep_cond_per_chunk PASSED [ 32%] -tests/unit/test_characterization_inputs.py::test_chunks_sdxl_base_propagates_time_ids_and_text_embeds PASSED [ 34%] -tests/unit/test_characterization_inputs.py::test_chunks_sdxl_refiner_uses_len5_time_ids PASSED [ 35%] -tests/unit/test_characterization_inputs.py::test_chunks_sdxl_synthesizes_zero_time_ids_when_caller_omits PASSED [ 36%] -tests/unit/test_characterization_inputs.py::test_chunks_splits_batch_into_multiple_target2_chunks PASSED [ 37%] -tests/unit/test_characterization_inputs.py::test_chunks_timestep_is_broadcast_from_first_value PASSED [ 38%] -tests/unit/test_characterization_latents.py::test_chunk_batch_passthrough_when_shape_matches PASSED [ 39%] -tests/unit/test_characterization_latents.py::test_chunk_batch_pads_single_chunk_when_input_smaller PASSED [ 40%] -tests/unit/test_characterization_latents.py::test_chunk_batch_splits_exact_multiple PASSED [ 42%] -tests/unit/test_characterization_latents.py::test_chunk_batch_pads_remainder_chunk PASSED [ 43%] -tests/unit/test_characterization_latents.py::test_chunk_batch_pad_region_is_zero[1-4-1] PASSED [ 44%] -tests/unit/test_characterization_latents.py::test_chunk_batch_pad_region_is_zero[3-2-2] PASSED [ 45%] -tests/unit/test_characterization_latents.py::test_chunk_batch_pad_region_is_zero[5-3-2] PASSED [ 46%] -tests/unit/test_characterization_latents.py::test_chunk_batch_pad_region_is_zero[9-4-3] PASSED [ 47%] -tests/unit/test_characterization_latents.py::test_merge_chunks_exact_concat PASSED [ 48%] -tests/unit/test_characterization_latents.py::test_merge_chunks_truncates_padding PASSED [ 50%] -tests/unit/test_characterization_latents.py::test_merge_chunks_singleton_returns_equal_copy_when_shape_matches PASSED [ 51%] -tests/unit/test_characterization_out_name.py::test_attention_suffix[SPLIT_EINSUM-se] PASSED [ 52%] -tests/unit/test_characterization_out_name.py::test_attention_suffix[SPLIT_EINSUM_V2-se2] PASSED [ 53%] -tests/unit/test_characterization_out_name.py::test_attention_suffix[ORIGINAL-orig] PASSED [ 54%] -tests/unit/test_characterization_out_name.py::test_includes_batch_and_size PASSED [ 55%] -tests/unit/test_characterization_out_name.py::test_appends_cn_suffix_when_controlnet_support_true PASSED [ 56%] -tests/unit/test_characterization_out_name.py::test_drops_extension_at_first_period PASSED [ 57%] -tests/unit/test_characterization_out_name.py::test_replaces_spaces_with_underscores PASSED [ 59%] -tests/unit/test_characterization_out_name.py::test_single_lora PASSED [ 60%] -tests/unit/test_characterization_out_name.py::test_multiple_loras_sorted PASSED [ 61%] -tests/unit/test_characterization_out_name.py::test_lora_plus_controlnet PASSED [ 62%] -tests/unit/test_characterization_out_name.py::test_sdxl_1024_original_gpu PASSED [ 63%] -tests/unit/test_characterization_out_name.py::test_lora_names_from_params_sorts_by_name PASSED [ 64%] -tests/unit/test_characterization_out_name.py::test_lora_names_from_params_empty_list PASSED [ 65%] -tests/unit/test_characterization_sdxl_options.py::test_build_time_ids_base_defaults PASSED [ 67%] -tests/unit/test_characterization_sdxl_options.py::test_build_time_ids_base_respects_overrides PASSED [ 68%] -tests/unit/test_characterization_sdxl_options.py::test_build_time_ids_refiner_defaults PASSED [ 69%] -tests/unit/test_characterization_sdxl_options.py::test_build_time_ids_refiner_respects_aesthetic_score PASSED [ 70%] -tests/unit/test_characterization_sdxl_options.py::test_build_time_ids_neither_base_nor_refiner_returns_len4 PASSED [ 71%] -tests/unit/test_characterization_sdxl_options.py::test_text_embeds_concat_pos_then_neg PASSED [ 72%] -tests/unit/test_characterization_sdxl_options.py::test_wrapper_captures_time_ids_text_embeds_refiner_via_closure PASSED [ 73%] -tests/unit/test_characterization_sdxl_options.py::test_wrapper_returns_zero_when_context_missing PASSED [ 75%] -tests/unit/test_characterization_sdxl_options.py::test_wrapper_refiner_truncates_context_to_g_clip PASSED [ 76%] -tests/unit/test_chunks.py::test_batch_chunking[1] PASSED [ 77%] -tests/unit/test_chunks.py::test_batch_chunking[2] PASSED [ 78%] -tests/unit/test_chunks.py::test_batch_chunking[4] PASSED [ 79%] -tests/unit/test_chunks.py::test_batch_chunking[5] PASSED [ 80%] -tests/unit/test_chunks.py::test_batch_chunking[9] PASSED [ 81%] -tests/unit/test_chunks.py::test_merge_chunks[1] PASSED [ 82%] -tests/unit/test_chunks.py::test_merge_chunks[2] PASSED [ 84%] -tests/unit/test_chunks.py::test_merge_chunks[4] PASSED [ 85%] -tests/unit/test_chunks.py::test_merge_chunks[5] PASSED [ 86%] -tests/unit/test_chunks.py::test_merge_chunks[9] PASSED [ 87%] -tests/unit/test_chunks.py::test_chunking_controlnet[1-2-1] PASSED [ 88%] -tests/unit/test_chunks.py::test_chunking_controlnet[1-1-1] PASSED [ 89%] -tests/unit/test_chunks.py::test_chunking_controlnet[2-2-1] PASSED [ 90%] -tests/unit/test_chunks.py::test_chunking_controlnet[3-2-2] PASSED [ 92%] -tests/unit/test_chunks.py::test_chunking_controlnet[4-2-2] PASSED [ 93%] -tests/unit/test_chunks.py::test_chunking_controlnet[5-3-2] PASSED [ 94%] -tests/unit/test_chunks.py::test_chunking_controlnet[9-4-3] PASSED [ 95%] -tests/unit/test_chunks.py::test_chunking_no_control PASSED [ 96%] -tests/unit/test_chunks.py::test_chunking_inputs PASSED [ 97%] -tests/unit/test_controlnet.py::test_no_control PASSED [ 98%] -tests/unit/test_tier0_purity.py::test_no_framework_modules_loaded_by_unit_tier PASSED [100%] - -============================== 88 passed in 1.83s ============================== diff --git a/bench/env/pytest-unit-ef2a18c.txt b/bench/env/pytest-unit-ef2a18c.txt deleted file mode 100644 index 984defe..0000000 --- a/bench/env/pytest-unit-ef2a18c.txt +++ /dev/null @@ -1,39 +0,0 @@ -============================= test session starts ============================== -platform darwin -- Python 3.11.14, pytest-9.0.3, pluggy-1.6.0 -- /Users/aszczepanski/dev/ComfyUI/custom_nodes/ComfyUI-CoreMLSuite/.venv/bin/python -cachedir: .pytest_cache -rootdir: /Users/aszczepanski/dev/ComfyUI -configfile: pytest.ini -plugins: jaxtyping-0.3.9 -collecting ... collected 20 items - -tests/unit/test_chunks.py::test_batch_chunking[1] PASSED -tests/unit/test_chunks.py::test_batch_chunking[2] PASSED -tests/unit/test_chunks.py::test_batch_chunking[4] PASSED -tests/unit/test_chunks.py::test_batch_chunking[5] PASSED -tests/unit/test_chunks.py::test_batch_chunking[9] PASSED -tests/unit/test_chunks.py::test_merge_chunks[1] PASSED -tests/unit/test_chunks.py::test_merge_chunks[2] PASSED -tests/unit/test_chunks.py::test_merge_chunks[4] PASSED -tests/unit/test_chunks.py::test_merge_chunks[5] PASSED -tests/unit/test_chunks.py::test_merge_chunks[9] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[1-2-1] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[1-1-1] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[2-2-1] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[3-2-2] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[4-2-2] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[5-3-2] PASSED -tests/unit/test_chunks.py::test_chunking_controlnet[9-4-3] PASSED -tests/unit/test_chunks.py::test_chunking_no_control PASSED -tests/unit/test_chunks.py::test_chunking_inputs PASSED -tests/unit/test_controlnet.py::test_no_control PASSED - -=============================== warnings summary =============================== -:241 - :241: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute - -:241 - :241: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute - --- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html -======================== 20 passed, 2 warnings in 2.81s ======================== -sys:1: DeprecationWarning: builtin type swigvarlink has no __module__ attribute diff --git a/bench/prompts.json b/bench/prompts.json deleted file mode 100644 index 6a4017e..0000000 --- a/bench/prompts.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "_comment": "Fixed prompt set for Phase 1 baseline reproducibility. Do not edit without bumping the bench version: changing prompts invalidates cross-baseline PSNR comparisons.", - "seed": 0, - "negative_prompt": "blurry, low quality, text, watermark", - "prompts": [ - { - "id": "p01_portrait", - "text": "a portrait of an astronaut in a sunflower field, soft natural light, 35mm film" - }, - { - "id": "p02_cityscape", - "text": "a futuristic city skyline at sunset, glass towers, volumetric lighting, cinematic" - }, - { - "id": "p03_still_life", - "text": "a still life of fruit on a wooden table, oil painting, dramatic chiaroscuro" - } - ] -} diff --git a/bench/results/1e5791d.json b/bench/results/1e5791d.json deleted file mode 100644 index a3e1fcd..0000000 --- a/bench/results/1e5791d.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "git_sha": "1e5791d", - "timestamp": "2026-05-24T14:37:16+00:00", - "host": { - "machine": "arm64", - "system": "Darwin", - "release": "25.1.0", - "python": "3.12.11" - }, - "tool_versions": { - "coremltools": "9.0", - "numpy": "1.26.4" - }, - "settings": { - "repeats": 30, - "assumed_steps": 20, - "input_seed": 0, - "compute_units": [ - "CPU_AND_NE", - "CPU_AND_GPU" - ] - }, - "results": [ - { - "label": "v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_NE", - "model_path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc", - "compute_unit": "CPU_AND_NE", - "error": null, - "model_size_bytes": 1720796055, - "load_time_s": 0.2086, - "kind": "sd15", - "expected_inputs": { - "sample": [ - 1, - 4, - 64, - 64 - ], - "timestep": [ - 1 - ], - "encoder_hidden_states": [ - 1, - 768, - 1, - 77 - ] - }, - "warmup_ms": 219.471, - "forward_ms": { - "mean": 199.435, - "std": 5.333, - "min": 196.825, - "median": 197.493, - "n": 30 - }, - "est_e2e_ms": 3949.9, - "peak_rss_mb": 399.0 - }, - { - "label": "v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_GPU", - "model_path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc", - "compute_unit": "CPU_AND_GPU", - "error": null, - "model_size_bytes": 1720796055, - "load_time_s": 1.2334, - "kind": "sd15", - "expected_inputs": { - "sample": [ - 1, - 4, - 64, - 64 - ], - "timestep": [ - 1 - ], - "encoder_hidden_states": [ - 1, - 768, - 1, - 77 - ] - }, - "warmup_ms": 1392.959, - "forward_ms": { - "mean": 281.433, - "std": 11.822, - "min": 268.273, - "median": 278.577, - "n": 30 - }, - "est_e2e_ms": 5571.5, - "peak_rss_mb": 2113.5 - } - ], - "notes": [ - "forward_ms is the latency of a single Core ML UNet forward pass with synthetic inputs; with classifier-free guidance one sampler step typically maps to one batched forward (cond+uncond) \u2014 interpret est_e2e_ms accordingly.", - "peak_rss_mb is process RSS only and excludes ANE/wired GPU memory; treat as a floor.", - "quality_psnr is null unless --reference-images and --candidate-images are provided.", - "Latency varies run-to-run; 'min' is the most reproducible figure for comparisons." - ] -} \ No newline at end of file diff --git a/bench/results/1e5791d.md b/bench/results/1e5791d.md deleted file mode 100644 index 1b854df..0000000 --- a/bench/results/1e5791d.md +++ /dev/null @@ -1,19 +0,0 @@ -# CoreMLSuite baseline — `1e5791d` - -- timestamp: 2026-05-24T14:37:16+00:00 -- host: arm64 / Darwin 25.1.0 -- python: 3.12.11 -- coremltools: 9.0, numpy: 1.26.4 -- settings: repeats=30, input_seed=0, assumed_steps=20 - -| label | kind | compute | size (MB) | load (s) | warmup (ms) | fwd median (ms) | fwd min (ms) | est e2e (ms) | peak RSS (MB) | error | -|---|---|---|---|---|---|---|---|---|---|---| -| v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_NE | sd15 | CPU_AND_NE | 1641.1 | 0.2086 | 219.471 | 197.493 | 196.825 | 3949.9 | 399.0 | | -| v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_GPU | sd15 | CPU_AND_GPU | 1641.1 | 1.2334 | 1392.959 | 278.577 | 268.273 | 5571.5 | 2113.5 | | - -## Notes - -- forward_ms is the latency of a single Core ML UNet forward pass with synthetic inputs; with classifier-free guidance one sampler step typically maps to one batched forward (cond+uncond) — interpret est_e2e_ms accordingly. -- peak_rss_mb is process RSS only and excludes ANE/wired GPU memory; treat as a floor. -- quality_psnr is null unless --reference-images and --candidate-images are provided. -- Latency varies run-to-run; 'min' is the most reproducible figure for comparisons. diff --git a/bench/results/ef2a18c.json b/bench/results/ef2a18c.json deleted file mode 100644 index b5f52ae..0000000 --- a/bench/results/ef2a18c.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "git_sha": "ef2a18c", - "timestamp": "2026-05-22T13:07:25+00:00", - "host": { - "machine": "arm64", - "system": "Darwin", - "release": "25.1.0", - "python": "3.11.14" - }, - "tool_versions": { - "coremltools": "8.2", - "numpy": "1.23.5" - }, - "settings": { - "repeats": 30, - "assumed_steps": 20, - "input_seed": 0, - "compute_units": [ - "CPU_AND_NE", - "CPU_AND_GPU" - ] - }, - "results": [ - { - "label": "v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_NE", - "model_path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc", - "compute_unit": "CPU_AND_NE", - "error": null, - "model_size_bytes": 1720795925, - "load_time_s": 0.2841, - "kind": "sd15", - "expected_inputs": { - "sample": [ - 1, - 4, - 64, - 64 - ], - "timestep": [ - 1 - ], - "encoder_hidden_states": [ - 1, - 768, - 1, - 77 - ] - }, - "warmup_ms": 225.201, - "forward_ms": { - "mean": 197.126, - "std": 0.476, - "min": 196.812, - "median": 196.969, - "n": 30 - }, - "est_e2e_ms": 3939.4, - "peak_rss_mb": 349.7 - }, - { - "label": "v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_GPU", - "model_path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc", - "compute_unit": "CPU_AND_GPU", - "error": null, - "model_size_bytes": 1720795925, - "load_time_s": 19.959, - "kind": "sd15", - "expected_inputs": { - "sample": [ - 1, - 4, - 64, - 64 - ], - "timestep": [ - 1 - ], - "encoder_hidden_states": [ - 1, - 768, - 1, - 77 - ] - }, - "warmup_ms": 558.865, - "forward_ms": { - "mean": 270.275, - "std": 1.312, - "min": 267.398, - "median": 270.259, - "n": 30 - }, - "est_e2e_ms": 5405.2, - "peak_rss_mb": 2132.9 - } - ], - "notes": [ - "forward_ms is the latency of a single Core ML UNet forward pass with synthetic inputs; with classifier-free guidance one sampler step typically maps to one batched forward (cond+uncond) \u2014 interpret est_e2e_ms accordingly.", - "peak_rss_mb is process RSS only and excludes ANE/wired GPU memory; treat as a floor.", - "quality_psnr is null unless --reference-images and --candidate-images are provided.", - "Latency varies run-to-run; 'min' is the most reproducible figure for comparisons." - ] -} \ No newline at end of file diff --git a/bench/results/ef2a18c.md b/bench/results/ef2a18c.md deleted file mode 100644 index 9db2035..0000000 --- a/bench/results/ef2a18c.md +++ /dev/null @@ -1,19 +0,0 @@ -# CoreMLSuite baseline — `ef2a18c` - -- timestamp: 2026-05-22T13:07:25+00:00 -- host: arm64 / Darwin 25.1.0 -- python: 3.11.14 -- coremltools: 8.2, numpy: 1.23.5 -- settings: repeats=30, input_seed=0, assumed_steps=20 - -| label | kind | compute | size (MB) | load (s) | warmup (ms) | fwd median (ms) | fwd min (ms) | est e2e (ms) | peak RSS (MB) | error | -|---|---|---|---|---|---|---|---|---|---|---| -| v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_NE | sd15 | CPU_AND_NE | 1641.1 | 0.2841 | 225.201 | 196.969 | 196.812 | 3939.4 | 349.7 | | -| v1-5-pruned-emaonly_1x512x512_se_unet-CPU_AND_GPU | sd15 | CPU_AND_GPU | 1641.1 | 19.959 | 558.865 | 270.259 | 267.398 | 5405.2 | 2132.9 | | - -## Notes - -- forward_ms is the latency of a single Core ML UNet forward pass with synthetic inputs; with classifier-free guidance one sampler step typically maps to one batched forward (cond+uncond) — interpret est_e2e_ms accordingly. -- peak_rss_mb is process RSS only and excludes ANE/wired GPU memory; treat as a floor. -- quality_psnr is null unless --reference-images and --candidate-images are provided. -- Latency varies run-to-run; 'min' is the most reproducible figure for comparisons. diff --git a/bench/results/quant_matrix_0bbd8d8.json b/bench/results/quant_matrix_0bbd8d8.json deleted file mode 100644 index 8055500..0000000 --- a/bench/results/quant_matrix_0bbd8d8.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "git_sha": "0bbd8d8", - "compute_unit": "CPU_AND_NE", - "repeats": 20, - "input_seed": 0, - "ckpt_stem": "v1-5-pruned-emaonly", - "rows": [ - { - "nbits": "none", - "path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc", - "size_bytes": 1720796055, - "load_time_s": 0.1997, - "fwd_ms_median": 196.651, - "fwd_ms_min": 196.588, - "psnr_db_vs_none": null, - "size_ratio_vs_none": 1.0 - }, - { - "nbits": "8", - "path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_q8_unet.mlmodelc", - "size_bytes": 861946375, - "load_time_s": 0.1475, - "fwd_ms_median": 185.223, - "fwd_ms_min": 183.373, - "psnr_db_vs_none": 53.54, - "size_ratio_vs_none": 0.501 - }, - { - "nbits": "6", - "path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_q6_unet.mlmodelc", - "size_bytes": 647068433, - "load_time_s": 0.1457, - "fwd_ms_median": 181.091, - "fwd_ms_min": 180.977, - "psnr_db_vs_none": 40.2, - "size_ratio_vs_none": 0.376 - }, - { - "nbits": "4", - "path": "/Users/aszczepanski/dev/ComfyUI/models/unet/v1-5-pruned-emaonly_1x512x512_se_q4_unet.mlmodelc", - "size_bytes": 432280915, - "load_time_s": 0.1427, - "fwd_ms_median": 178.953, - "fwd_ms_min": 178.753, - "psnr_db_vs_none": 27.47, - "size_ratio_vs_none": 0.251 - } - ] -} \ No newline at end of file diff --git a/bench/results/quant_matrix_0bbd8d8.md b/bench/results/quant_matrix_0bbd8d8.md deleted file mode 100644 index 0e14a57..0000000 --- a/bench/results/quant_matrix_0bbd8d8.md +++ /dev/null @@ -1,12 +0,0 @@ -# Quantization tradeoff matrix — `0bbd8d8` - -- compute unit: CPU_AND_NE -- repeats per variant: 20 -- ckpt: v1-5-pruned-emaonly, 1x512x512, attn=se - -| nbits | size (MB) | size vs none | load (s) | fwd median (ms) | fwd min (ms) | PSNR vs none (dB) | error | -|---|---|---|---|---|---|---|---| -| none | 1641.1 | 1.0 | 0.1997 | 196.651 | 196.588 | - | | -| 8 | 822.0 | 0.501 | 0.1475 | 185.223 | 183.373 | 53.54 | | -| 6 | 617.1 | 0.376 | 0.1457 | 181.091 | 180.977 | 40.2 | | -| 4 | 412.3 | 0.251 | 0.1427 | 178.953 | 178.753 | 27.47 | | diff --git a/bench/results/smoke/ef2a18c/E2E-1.5-CoreML_00002_.png b/bench/results/smoke/ef2a18c/E2E-1.5-CoreML_00002_.png deleted file mode 100644 index a561e1635ed30e811e7c45d84a05844cbeca9423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462241 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

&_L6yPtwYbQ4Z0-i)dcE8F?^ei zN=Xnj1aut)5@{i{`gX@HO0~{^N=?c(vea$_Ol-4UCh{eu^Qe^`n%5EohG>0wTAib0 ztXoBWYw<7Pm6lvu9BAIpKIi!dP)r(spUfTTn)sC^saMJm6M4mLQ>DZZgoNY!-zupL zns+i)H7yGeh{SMk+vu>Uhy{QK@=q8Wc_njg3r^!|NJ+?V4O#S>Z9ZqUdYZY@P&cin zqC#quK-9Jvl6ztzYS9hrDv{MxKnJ^df=z)>J*NXm2q0pvsh0DxHRk&Ide`^fn5$hE zE0SF)s*NF`*4vl<`Y?2$VDz@{uZIrwtFCpY38IF!XuYZ;M<{I!FHA#*1n(ttRh~K? z-e-;?Mm)hGFr!E-T(x_8=yAOK%dh_R|M-9Z_xsPEUcPt}W3GX0k~dXFwp+%eWtmHr zeb*i@XLMz`blz)t7-@#sBOfg-8L~Cnp>uH(hY0m9X6I#O(ts90fZr+@a z$D0>dPsekd;myreh~@4aKRg}toNcg&{jfW{ZU-An zydJLJz5R5(zjmfcN;JQ^z3EY*+ld5}iBf3Yjbtj9qf=w z@?BfPyz~3^WpBzqB6qU9Uy*&IM#meOo%e@l+|swnb|bhA9>#S|0mZS-C@Zt=_9oWk zgJ`g#Y073>;Z+J{f;UzZnX+Nhm1)kxhe(F3AYVOU)Z!fG$ZVK*t5t^}pb0dB3k`KE zhUQ9}O4RRlttN(Z0ISr76@|jNU?ttg1EgF$4_>xKrs6`jbz_Mf43?=k-F70cRCPJM zIAanpn*ilnoC*?58uEuR09SC%K_fd(kmLCRPfU`waiw!b0hy>;)LzoNFyDu-qC^kfk!E}MeCTTf%S zRijF>k#cGCAS*rK|Z`90JU9fiK-H>g|&Y}PR|BJDj44@gm_!zgoZrwC-7KnDz&;TlHpkeiw9ko z;94Sni%l@~>Ep-$@wb2b&wu|9w(E}Pr>pDw?!$fE+P>|b@g)b}*|jm_h&H?1v4Ikz zg+4o{&<^{y&vi}mhTtCcq1(5fOJW+&ruM_(#&>?W2LNp?^>1U!Zntl(KcAnxI5I@&8ah_^hTy36CkGHqvB9JcMv?V3${9%9K6Jowb@V%J!6Mk9L6;nX&6t#hnq-_{r;nS9nwSCX0feIM5IV+e!YxoULH&Z2aWZfK6n z=Vi&Q?Uz#O;O`&F-u!9*x;8tq{HoEEamklCjb?%*=~A24;)iyB7`}e}I>z$w;qK{j z*>^*?dl5qU{P6VY z8V}$Ckid2xX$2TVo5CpA;?HS>CqucwSch|PZD>rW8zit1$c1KjixT6edtO zTbVvWiB?khVC_U)v~4cyXL2>Aj7UYK>$Vjqw0=C5`(#7fR^fmYdI$npoo+$X*lZCo z6-0u#o)sgGX@HAU6=(DGbY>icB?wgB#=!%MCP*4kV^$hErFoa>Cj~)Z(<%0~gpE3b z=CW+4V1Y6TMpQVU5c8T6B)$MPr3-v}ju;^&_;HarQXW`X+m=oMJs6*GrfS}To^=;9 z*Telu3KQ}SNgTo3Zn{q){uOwF@{vis;MtpCfDe>gH|LO;S!s+7Z=5v@)(=GsY(7GM z5grH1SMCtRmJa$N1SMfOah5UI(mdzc?hBNW30h+e4Wal%8*)=a9Ew>@xv+u!7+Oo-fDa3SC}jepNmKy{QeACYkIrYaqM+~6Oj)vJCYySYw|78_s4WZ! z(3SjJ*n?R-%HYSpCD`Y4YMuI5(czmF;gSWa5`$#MHAQ+UMU*Xmct_a!-0cR3p@WJk zH&rBVaHSvvUWTy{!Cgf(akaL_H13fCNDumFC);tDB)4hLl5&|E7CS|Ez&EC$9bIQ5U%z% z#A8gHagB3W|LSHK2G=y>@f_F1y9WP(S?sV9>fz0P=y&_8T$R)LG3RuBI}{D>U>dtN zE-Q)DW-@hs-M)CtbMj3)fJBZRuWIKV)l`{MTFUB5lmT_7x@xZYjuwM*Y# z5HY1>fr&&$mayCzKMege1qB(Ys8V06X!3C+w2{yf z$CxE~6=B<`Q!g>TZ+Ro>CpLEY^Uhs1Ug+7@cCutOO-r>dpRS1iwpV7~bCm1Wn#g5? zu?k_IqPSUG!XZGHlx4DkJH@O31ep+T6b^*B#U# z>ZDO1(|g~tk;k|O4U<*$7I&*5mUa@@pv<`0Un{`{#qVT8s^ngQz!)_s>;>H~@d5lX zoJRaurG_>xm@sOyZGNw#R)a?4I~>3B4AqE+Ojzf(?-dlNt4YErRLrAU^%`@3>@XS`M!FL|OK$1RXF?cnz1t?2r84K^rEh&@nlJ_Z+S~?uwOCKr*a9N0 z(h8=u_rO?# zw|Vu|a(T=a?L}S52&1OnA7X&Ym-%^|ZES&z#@(cB=%a-J>}En>LL zX?b^in8M|>oTju6fN{%*&+ki2x3^b0w#TPSp4Zd))H&*3@-iD2(_5?UlIvoY&*1<_aAb@_=VTgn$Mp;r(D0T>xZY)yexip?$8-lV+`dn zuQuyx95=_E82LIAE7?|SU^py>HN$1%vc{%KjrU|>S8S~U{9U$`RHAyXw*qVl5r8cz zQrjQ_**rrCUKaJ+0U^+q6fHPB1)Ti;{Cl$IGHgVLLXk+7`Ak_B zzG>>P#@)U%qy8i)HN-cuA@5cBFp^1KC#h&omNS6=OkmuEn08)fR#q$=u*fW7QeDX3 z4LpMl06zJcQpa1XN*Ge0sCE>$EMi1#USq>3jC!N0?0A_G8}$7cXATekI9sH^0lmmM z+C&G)lQK}hwu)?yNF1tc1zLUrwH(}r8nbT=nrz9$(&iE*O=UEw&lUUv*B*cV7NWw8 zn=dY*U^0xvn76VnCFG$=fnB*cq)@wBZ{fgrq@7I-mk2YY$jw_?xX5qVuTj?59@r!o zKk*ZrJa&r?S9*yIq&oji(~RTH(h`6Hk5P+b$&s)UJpZPsyY?UthUA18kQ|WjY&3;+QjUe9XPE^VbvxOU4t|btAtWX1X*OZ zQ+FOwqh7kG8&RPGAh^NAN0}A?c+9i!+&o@P)|D*X4Y!b_MEpDy1q#Aq0?Q03OIRQ% z_I3d%Divij_8yJIQbW6nWUt^zM6STJ>p6{*=O2J#q@j-TWGWGi%`YFUG3Rjk)xZ7Q zhmY@;vK$Uq&WF4E`z2m7bMc|u0X?o!2N6)1a)sEoF3UVk^QrAT>RZ=fAZI8<_nCdY z%x6>8!>+fD+o$~abh^yr)z#I?+N_!`Q%+$~Oti=$Y}H_q@&LmrcQVi&FDF}BaQn;L1228OYA&>Tqae)yX8kCq`O%ZBfURWw|Jeuz26>x;3I3sn*xQk&2#E-Vg4}H#b$Nnb+icnx`ethwJWTHyo~R zKD~SU@`eBM%{SkE_tRZ}_3rI{I-_&`@ag{P>3#~Ap&M*%-+g-b>dkBK`rrKepMU+k ze|h!h%a8YWKmY2R&VtWtJAXM|lEv4eVN4ylqHr?Cz^U5xWNlLUK}0rzvuDP^wW42` zrujMeYO{vb4T@yP23k)$0?fQd>vL6&(y=hx(UVAciDPmAzM&+pS^SI)hE;gU(X#p7 zBaJRjdtt*-M`(e^Ij=BRDzGU3m*%=U!;#jA1VmNLso7XNjwit^nMV);sC{o!;}fWx zDsJL_c8Xgr*GBeLA+FAavRBWO@o+Q+Ek#+RcqnY(m*#yR2G3e4)JB1u;WWeEr;6>Yub*6;q==w(dzxhO)zQpc<-!|!RX9%qyy`u5Va*ny>I$hoF+cxnScpgH6!A^;y@Ej zVFe9sY625j`pX?i`%mwW7S}d4>+9{~N(vK}lAnH%R6IUn-2{Afn9>~9c_|i<{BL?# zUDN!S=znGK2Jl%M$cv3brw?E!At#r%C&kqD?UrqDdv)8O;AHfP|B0iOEK}dL(D~{0 zLQ{jb^AfkxROv~;Vy{mRE?-<2F)NIk1xDX(nF;zAgDNy^eCnLh=sGMe52j{St6}GBIs8m*K7IQ5_y72hA09v0ZrASp z(Dfm7r(?NH=W%)*uJ?U6fR!J3ZCtS^dU^Dk%5(%lriE%DL(XFQ&pJIL!)Djz*l^YL z{^|-Xp!drXkonKcIA7%duYtx$?183orS)r#%hjCM<#awO?0faC>*`^x9DB<=BSNut z*Ew-L%^WT(6+P-ce$y#dYt?%kh)lXuT;}O;wcqzUi~kgpqHqJNMZjtm_<;-|TGb?RPk+NfMupsyWxP!Gj1SvJch=g&`H#Q zk$8C?GDqJ;-L{4j+Uya2DJ?`JmuHO)`!0>A8YcUITpHb22}dVeIOSw$LW&lRwvv`3 z=FO;pXhLnOMAMK#ahU6%L@r2}VB9z{TUTlz2C(fyT(3M&WwO$LDO&>NdTsFB@;O8q ziPk2?z=jBOJOdN&Y-iX%*A1Bv8J3)clfsd45MQ2UCZvy4ZYxI|MS({d!%0o@r~1xq zaw^xY20RGxFs3!OZk8}3nUn5@xDn?yo8?)SjJfsS#;RRIjpv z5SE8Ol{pN@AD8W>UuR6twP))or)tgKySPL}fA~2NC|1`}$m+u&V}RD&`OX`RU5(P3 zmu{zqp4* zHxRp^SvBhw{Ti8OgXTd|sFZ$)@HbT)bwQ!Bw(=n%&Vj6`C4;LSWsSN7PUTFHsbj3E z&5U|iWhpZ`+v@6=_++FE!XYei6JNxV2;%6S4@AD=JC93%8%6f6<7XBsIp+m!!;RIj4n%Lu+qdT({>Yu7Mt}BwO)FFhXri z3Uh6WZ)o|jprhO;S##<`qh-!bg2n|f&5 zf|yOS2)QX!j!TLwF&j|Z#QkQ#nvGqenHWmDs&-QhpXyI#renxCcm1H@K)3gOrsgfa ztHR3$i)QoXi*Ws1I1>~4cv z1;op|%qQDA?UA+gs@3mO>`Dq=n0*rkp+&30YO1xC5J&+NTjGXHYBndyQQNCqp6zhHY6sQ>w7I74|YEP=oUK?AlTT6}V%v@iplf&LC%iPqF; zWKfJ}bEvy1Mc~mHZllf>?nLX^fL6h9Vsku!NayCVoKgHz0AyeoC|8KgN&+Iq5amp= zN;B5rjKOTH!6SVOdLCVH^vxT&h~*#p#MRYU-b7-SW*vQq`Y^y-kw^fYY5WbE4RDMK zV8+KwPhnf~!qlg*P#{`?+5zW173Fr=vKM7MY^zp5K@@?O&O)?`(qM`pJ;$*+VX?y( zhK(v3Q%#p+jF}W_asl}%hTa1NH7s~inH&CU290!~+6quA5}2Z;J`=r-Tfl^>Z0;(t zZ8plMshi~zXvulR|K#368UyvDfQoG!PI)_rC5%k5BsXH&=RGDwj$GY#+ja;S3w>V` z=0*AQ{4uS!T32950oLJQA`}idW{VC)Ay-;QaE=HO+D~-)yw%N);PX`JbMj@6~ar-%C=-o3rPIehcw8*4j}QtDLY$EV|dH_*{nl;n+X=4s{^ zu@+Jz7dZ2+c^vOQe|S7I^d~nH@Vsk%*S+j;1{_@Q)i` z$4oGU^?u*)YUdYLo&-oD<4tMFPb9lncCKAVNxUjSXw0yY+htrMTt*e~en2zMg1t*LFw& zs|MjR^(fy4ANA%-)ASXRu}EcHv1TnWNYN%LLclUtvI-MmS;_r^37qq2bC`0~)K%4Y zt(FhfzU`aFnPTZc3S%*rxMJHdt!*4m9hpM~TBo;FyH3rBwx=r25R9w@4_|pCGqwPm zt0vgK^OE}>_!VU?dmgSd)Ppen*&pOJ@%&4D&8|y`>n)xdVT8h(NQvlB^++}LR&J}@^| z6uPdvO=QCtOPv7QbYYB6J;;Z}n^xQG+JRRygvGA4P&TXzlxtu7rV9}<20+l7P1%}s zMX*w1B8>Ll^{s6g{iBQGrN#U!9Nh+#VCy2tsP4ke>b;$LstpSC4ds#>Q;XfOI^SxM zg1U)nns1cUKj;W4&0}z$2*$7^`p&hU=V&Sfsx*a})`6@Dc0($wYuc2~`pbOj+GeGb zl&x>0oKowfV5+V00@b?4w8TDO`cy0pr@L#K-gi>U0=%mYSO|`!%7((;xH4P@l#VUt zJCB*Zo|ourcQfqF+MG|9B{8wFyRI?SI9+xQE2c{S=lrBC+FTmnwdDe;146Mve1)D% zeq1qENb-o~beS%rX>D_VcmMX?yI=k4AHI0?x~kTH|BGKXwHv4DGEV9%whPn zPM{W1kvL8l=3}bz*1BHme0%+(thkOJo}R+8SY%H1@p9fG2IqOk*=Vpdqp$ajKq;D# zUD@1JOX8ZZsu~SdS~6TlX37$?lAC0#?e;r{O3J2!H-!~cjE-EE2*i*wVT&&13~PvD z;ERKThN?aDmI1cthT3%t83NCv%ek-|h$!EiDmT75#8|()y5SqBX1}}cuU_6AAAWrI zp2DQ-PT{k2LorR7a#JkV$6S8;v!8$c^;hri?tlOGk7c#vH2?8;--kJ#=c%eM-4d30 ziYdPR@bSkV{urxZT)U)*B4w+nV;L{AH}y1KnjUXIO<=Qn9S-W;Y2NAVXjfZ;#zU+l zm<_A3#+pi7Aw+4t?}mZlWv+L-K>#;ib-`5FH3~Qnv!HQszY~^d6}IbYyH3u_+FO8Y ziMBQ@ArKR-oUsBfJ&{z78@-@c5{A$aIE;<47+_+Y5LRR#?ww7`&eTw$=@R5?!p$v` zqB6-jdmPg$OWdUzOa+huE?5CDfMS-^p=Mj6(S^pVTe2WFNt8>}PqasRk2#|FWx3U8 z3%kzokFt%Rv0#L`61S^2Wu6;f4;|Dd-m|o#A#7?T7WJ(PijY%>#9-TgR`WWCwQ{>Y zo3%Og{m?0xK%!U~nK5HXp~AByXt89*)p)t0R2y<6@eCv zn_P>UvG#MA&;=p|Fj?{(q3f!U7L+t7l$e^)Wpdz{IYt^O;(51N7>p_&jXyui_2GKs zLwM`ZV`#9&*uqP^gK9HTB{~;k0P2I8C6lx+jiq;_8}a;0g*p%kP*2NTfi+7YT5EX( zpR?$h8A{i)&T*l-Wj?j~wQgI(JgUTYx0i1dg91@O#G*0Yy)3{~Z~P9*>Si5Oj@XKF zdt>GyI@TPljPvF6`1tO_yLQ*rP4o7{=Wo9INq=aqX`U{Zr^lxkFRoy?;wl63kgKw& zpg*0D-nF*t*2t#q>Wka&zWdqRw|D&Maod7~1>Yh2t{|deNu;YF=bNTfV%uBqaA|~+ zre)@tZ%hmcv4FDB#%VrXroQcLO%!3&6s*DE&nvOtANISw*0x+8fX6#>$0$kUZc&;^ z6XwvhUDMblq{}qR6tAVFcl*BAk>?k(K^SGgE8FB8aY0{Fc&_B!;d}H1COPjt^<>lZ zb(cjB2XGDZ1ux68EWH~nQ;|*#a@VwL6BbuhhusUCeZExq9IJZhhtSjuTo9W|oz|vv zyQSDtyBy6lp66*!XIxhKRrAxI)z|&5eeFKp-QB*p{?$MJ!=c?(wf*tO_g60trtdFd zzQoIUeEM|vA=~=pt2eu=D{AYI$w51w%ba0!HBH;Ll$<#sPtfdSBfk??-gIam6|7|X zc0nA0H3UCjHZG$the1{q>wPIrn4ZI^)?$XP-*!fXYlPr>UIfT6h_=M&!RM)tR^drRtt@FZL#)*lkBV2EX9m*P zCaU@}Oq6bYC!ETZc*H5KEyRu>dR0e(Z80VW$Qmi~fdIPn6t z9#H{h2)zc$UmAUIH_aBZhY5JN_D5)Pwl?fOZOTvlF?0&9aknsyr) zw*?_ZI6|cv8>FA?&t14@t90)5)@K1 zorsE!-uHj=AO5G?+v`97^3UFW{(KmAcOM>(Pv<}U`2B9zy?k*glDMe9OQ;F0QKaw2+TkYQ!_|<KfkhYV*~ zqhRyaa2N+;T(f6XP;=OA0qkv;w)GRtz%^egoxUEbPl~Y#>{i128zABcs(p{=s)6`csf-PB#r6?d? ziMtTfLnWyk+A!Sk3Sr*V)*JRy5>POlvKc960Ee2ymoh%79+wtcKm-h0dNBA*YdFmO z_zbQ$8>Lna;NCYe9e)h77Ut4uZ1pS lxlDdKUHT5oNKa@F-lAh}kA7czJ2&f|np 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 z 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

tPq_NQv!AombQ=)5GzG67X?|t4+;xcx+RT* z`BxwZpx!~qs@Ee>uyB|X_QYBk2*%d+UG0a7ij&h{^$sHx4nC2~F|)~swk!a|p^0os zuw{x&u#{-OH{=A`Ml)^a&w-6^T4E7}Z`FOkDw)p?r)u7(Ww!4ig^F2h(1&pwYphlx zCJsBGUWao&a$ONwGpjZRNgDk^Sqz8t(v%ohb z@njdT#8vJgO%;Hude1ek8Ur4+BM+KQI6xCd#t4=bA`x3+2}r|IQ1fQI*DwG|t-53N z@d|*m4#_O}^Bx=q%%TwZ`8Buzc#wDB_i35G{PK%`dism+f9Lz-bpGtq&mjL}gGkuO zs@>IoW%mH@jK_{2DOh&Vlv$$6K(%0u-nPfXDa3i*E_J)E@iH!*Y2utFw{=b3E%SVS zSd8+h>HW+g|e|vqryR2_s{pIU7uV21+;aTUL<2Emy{xw}3be*C+?`QZZQFBFJ#MoR?|7oX^$H zz?yjr|7|tR3-E|eo4n5Ur-Pd>eSfHH?qK@w&UV9qs5BCqSmizBu%?CiE@UJRo}3#ED$=6AM26DtI{^SG zMK~@BKG%$zrdOMTdgX|SR6KMFNLiT7z#)ctIxEkMVw&|;py{s?>(jQ`0E$4|YPqG0 z&&O~W>F-e17uYqi^r_Ve$N^EX}3EW8#l?62&}!9wgl++6b|9U8`DyS7SR00^W(DO84fS3)MPsMs#Y3 z94y+2x{85bOt@(_vc2%*!X{t^V4%r#kLqc#uP06hbQ(cx4w26!HL%ZRHftVA73Zk%W4KwFxpS(|B^734M~Ht6=Enp8%1 zsfH9q0E3lJvILnb_7g@nKgZ=f9uJ4Dg+?Q{8}~wdtyD)pDbh9h%fvs@xac5~Wi^_RGf@!oLF zyaoD%)^vi)lHGVW2j0b|H8JJ;acpz*`1){leYNEC6xREPyK1lQ-rjFp6;j*z-e6Pk zhwH1{xLlj-o7?Yw=i~9~*GME&`jbEX)BoWA`FF0bZ*t(yj9*+L~Fwl-b0P!PtfeN0n%Ce?u3Fo>|qPN zIWWrb%ED>&Hw@#+vldNtnL-adNzXbtOS8n657-}vEgTpzC<9?rk| z;Z?3{i2^y#1d8J@4Oo|#5Szc(%Cbcwz9 zBr;GC0>-%-jw~So!4d<&Ufb0E=o`Q9QtGD=u5S)G=Xn~@MRF?fYBJNsq=OUIvH$(*@e{i3S2xC*no*nADRL#_p0|D zhyJk_4-}0Vqz{Dj_yHP2>wwINw~=cyZ~1iW(ajgum~A!zmAPqfK_MF{fOs6>RkfsT zQ8eDXM8HkCiqH+IL>b*g;Cg7U64yDS`52bnwA&uL7R6ItRr8{oa^SBl&Y(%+ijys z>N+wHmU(V%o5rxD*n0Ey+4GM+`grKv!`;I#fBCb$+)rn3i?uk>gdSBS(QRFrQ9` z+nd|C&g1$JfaKOW)kufs=Dy7H>$h*_d3p5c@zbXt%=hD)SFfhG4=LsA)9G*;f{b>D z#)efi{P4ciXmcoLKeCB&IxoI!?2@c|^V6wjaL#{K@U3^ZESp?cG;jz6i_Yti4Q^ zhw&`@NWE-vePH+9wzcnU2=KlhKYMhzK7Re`%NH-cc>eVLCr=*tpyto{hM&I5_ixzJ$1|g9F~7y*I+5%jao7Y`_@#}1CU_ThPHwuD+!!xTXaX1 zQi6BN6xoQwyxSVdiD}7|Dyv29Cd=wEi(X)Kq;Sk>#HQ^4(K=LM%L;#@Z5xI?r9UPQ zoq@Cmun-$uUfL2uvZk}qV8bi%)sQurz-v?faW09 zu=ikaXRFMy)^P62v&2DyF2#4YB{iBxGS3omHY8_22kAS~5Xc=vr$Yjd&@)T~Sds(# zN?Yt06q6+f_o!m-pF=?Ur9G-f#5H;GT)Axs`x-OZ25BGXWx6aYc1WuczNCzqK|E93 zHj@h@nmL+c&Z8>o+?3YBn<{KeT#cyH>*=eH4vDLy4z5+6mN(%8(+h7Qk zfS{>%{F8E-RXGAT)L-2YQiX8G5yHTK8`q?-q%s(<+R73#j3?IRxUwQARW-9Rk<;9&)wg=54#UQ$jHROo}5o-ws2zDnLdL7;rK?O+)N64l;O zDcjP2L2^-h8@M)jdgKoxVKL|Z_V#9;Rwuu7-BjavA%8q?mvQdi^Ut3@d+*7Uk3Rh1 zm+yV`?eBi?voBvvYdSna%T{C!`X={%jRvVku-&`hUsjHSf>?)Oe9!H1xQ^SB@;vn2 zz=G8F-QoS`@23Eo!jioQnc&cOS2tIOz6%V{?SwmopfPONReN{7d;R9kG=(Q9_f7Bm z>1xdp-O(~H!}Y-;4SIc#(fW!sfK( zQaNJ5jU_pwN|mYZ9`5c(;^c~3rFdnh%V^l40;SM|04d1r^-T)tm%seWfAmNH*d5HX zC(nN8M?ZY}-qUY=^dXnuGS_we(fQj9G#c~v)vI;9+@J453bk$Kd6n~1!~M1!hAVQ( z4kzPG0Ar<)+l<4}w+{V+)>Nodusy?S7S>yC1Kj24o|qM&FGng5r$AjD`5}77iml`Wndj;f{MgYx-+6911Ei5mJ>b=eIrnzIVT!@Y=M>mLA6n1r+Rxqx(I8r@LVV;tf zChfz+*b={oK#_ztzTKDpzR;@?(>2|v}aKfvmUZ_EM6rm`4yG5YewBa#y zU5~xCYL=zZGQhHDWev!;mcd1dYfo38%^7ny#q%=8p-1Kf|U}TR=plhr6NmL$TK4|JIW$xGB3C-G!U)pjAg@iH*7Q?@?$AajddrRQpI&KRYDR8)ecf~)bY+R$AR;+ z+5vG;mlau97VWap_oMQsy;GWyhW=_pWW?g2hyNq(4kD*%SvBvf7ZxOV$Tate?V7yp zc~a)$>aNnySK~RirE%7rSUX~DXo`>v`bbX7hr8$GmbM^yN$EG zxw(0ocROCf{hRyyw{Pz5-&A!vUJY?y&v$okzIoBv;n91~D}<-ht2b{i=ZBEitJBSo ze(N{B`x`&{qkr(nKmW;3;$Gb}&2V)X$G2a6`b9|bTR-^j_4SjzHJAGlHj(QO#{*Id zO#s6d9Z5R}-+2bpaJ0~0A|*f*UxzAM*8yO`SiZ+43|B|!k0gy)lDaOzLB$RklMZr3 zi9%cq`J1m_ZF{v&5H57sx~j3i`o&*9%;R*qfA8_*pUbx)ml?|<-dSSGOiz|xrjd+eMPb(~EwcvxO; zTO`*-cv^*I(H<;e-QWZ}A}VT&v>YGSJFWA+E627>ex%L=et_IZuC%6JBTpj$7^sx{ zx;MHdZLA|d?P8ZH&UmQCB@0?upYSqp=b4nhFnaU@v*4~{nbo%8Cn zm3j`{Y)>Kvb;O;5FY{2K+1Tss(z1nJNY!<8JX-3p|5cvc)(}BeB8kO<*#ZP@gm*Oh z#u_f7Mpgnj(PeAp*r8rmS0;@e1G9av*OVSE^So?p%JY(!B{zE)=R&HV=jfgM zs(E9TD%vXh4P#s1u?5W1Xd}kA^mo+bd9%Kk-{KvYAIB`k0*af=tcCVXAyYcKGDK`l zNsPmU0Lzp)K=L>cX_W~vZ(AncO|3JRe=gF;WXeY14eVP${a{H0V43$k41@QstfS?t zt}Tk=EbNaKF*w+1plfQtwPH6y0kJbofVQYHTGQK}YmX@-OKGiOd9u}102OIlW_@S<}almM^e=0MDbNz zd(htqZz}nyl?&@)K-$i4-n=^W*Hy0HfA1N$tFfWm-hc9}zwTVucf)a8ldH|m>9(!? z)2C0KJbw1!haX3jzFj2vh24{tr@Xs)1jx{|3TTt)IL5jKm;qNRFb;#M5XQ!=H_x6J zj>rIO2v4E`HrKe$F_xtwD3Rpa=ZOqS)!h5eyB_PZ)?1hJ{oC{Smp}R0PyYO;ZQ4$^ zrww9zw{Ky*zg#~*e)!1;`%=An`Rdi@Z~T?}?H~Wn@BG$p|I2^lUrcNI(?9+5kG}td zU;Ol^DQ@5S!4Gr%>6_QDr~CQgZv55{zk4{|yllR{z?nE)osLPAiy6QndoNFdg+DK= zuIasn5uWGE3`o)Wgf3g0dW%RhGBem)>o(Nr!CBuy`e|KjysLfF#%V<-qMXZl9K&V) z)t~>&^yY9p9jJqdw;q*`M!PgaCaFm&UYVt_z|cgQ%w&%&h0^|K_r(`b?}uD zipm-lFfH#NE4&yHslHQ~E7vT8{sx8H%10(sM9Id`p(RK&Ks5mw6%j+&?>w*g^pPY3 zd)QeBF(cymj!aVxUJ+?&3c4CeGF;VVTA@`c%P-e^nAZ;XkHh7lJPZbq6g}Gd<{f|t zV<6DkC<5n|n}dUaKbsH$OrQV|#HbL$x~(G}1+`f;sgR|s>>lj3NA^HQuMuvd}Xv43R8H!Qw>QkdJkz!Zi<%SwT zvoqWh`m#4=s8He}AuVn>A^CthY}MwB+uV**th_#4HvOSzCqs^*;lYXoQe(MH6#pvA zw6Rtcy9(VZuB`_7z*BXti7)NSKjR zYOR{{8l$Of52iyL+P%(^v1+|1==mAf4+|jpYlx|+FlwZz(`90oEAb5CdSW2L#f+IZJ1cRH@q{WyL8>5DI4d=uyJJ3syn#w^}C z=e~LQ`t3O0TwTS>a=ANC)A-`cuTvHO3xD&!_`T=f`?vo4|J_F?_wWCE|G}f%M~B<% zuU>wI%sHfPIGX!=knv+|w#M$h-dbn7>+4&5oEkv$x?pbxh%zsv&ZZb3Lc@E4s}q)B z=qLB2@SM6j)LT7tSFLmVwi9`8x#7;QUvJ~QoL^T>GoSr&@ZDf;j@QewY}@9&`|kI? z?}zSq^T>F+)#Fcjv4#(q@$2U)IpE0`G;seW92GUv;0UA=O9hIgGMO6xOWw`-_ zAmPL*Ig9Aco5uA{$0H8*Vyi5Ff{q2eE|sYbdDQ~r3uT%tb6V0&g%v2J%w`m5T5Wu9 z7-AH59b%DGh7ia~+$$P-DhgHsRn^Q(WE3FJ6T)#m4VW?1^l48kid%RmREXSYl+mE` z^?0>S3|lf=s3K(UI=6VTbGr*SFnFzJO9xB~{fi7S-9 zl#;QXQX>#-Xuw_e++?S~Y++t0!!Lpsf%0qmb94?OfFj(Z_5}9rjMK;yDGkioLJTd* zeB1@JS8_d9ZH_I^F8?{_GUbJqy}I7}zGGOx(Hxn@?llQK2%qHWBn2|b8o;EiWiSGi zUs*`|yo7N=B;HnCic?(l@xEi-?ur%?EiR?Lw{^`gBA+7jM=*!T9$J)alyJ81j!z#w z9}cI-Po970JKq`a&!Voj0LG;u8TzY3*Sl8r8X%!{3HO)rmBM5xaB7Ti?eTcu>&-{*{0A>DA5O|GWS1fA-UVlBx@7>?!)zuj7p4o~ctj!SG~ec=Wx^ zO=lU|IY&WtHnypzwG{m)3^SJnf3FGwj zXP7r*~oKYI4w)8GBQ-)^ev+3k~WzPYmGmk zm!JP>cl-1H>UgjpeE9xw?2W0%`}1^v{`jMhZ;vNQ$eJflp1%LVM=xL0mxtHq6x{HL ztz=VQ-CW&0od4n{Ki#+dqaS|90iCO?GdGW~$A=jbb#d{562wK1bP>eD5;cd1-Ahmj zRAI|Z7w8-NO{OkP!`Z4b0sxwYZUVu)rUIIcG!0WqtfQK7GU0;{0ZC@VEhL?1MG&5M zPKgGHo3$fx66L9nWK&rDqqOR!0L@gfg~*$Xu|h&<^&emd(QdAIhq=6}ouFANe`exU zu23aa+u&`g^KiP79hLwu`JZx3p|KqCG3K@2Xq?Fw)tbt-^SnY+#wx}S?-9#kNj1jw zxzmeZvwhnEY-2c5`eyA7BR}R9oKU$&M}*Q>o-qd6Dq~~JExcyQE45&$B<0ZONqA0a zFjCwXMDjc4`FYLR#FbIXJMcr=L&P+t!ewhD8sxsx{(ys2pc`VCR5If7WBXhoSVUxH zE!-=#LQHVjag{b)sk6>v)WY9^CXohE*@Ey1b}D-$n<&gW%4y+uh!bj?mW3>T8n%U^ zNMR=5qBvp^?9E>D)1!ouWU3G>(eUn+;@r#yy-`wUN$nldOnH?6e((^P#)njGAJ3zNmh`9Qb5d`o(?|h*O)R7{9>or$RLYz$6*)q?$ zs;7Crj8kho^1hjb5k-mBjfDzgtlN*VZ2n z2tKzhKRmo%r}=a>5T(gsnk%yp{h{x!-%M|utq0dV>Tk&UXyet<+rFx|DW%D@*}BHp zdwlg^8((r;d3(0~aPZP};o4SxNe^MIy**vo1~0eo&GFdV#tyElx61nd;hVepGG1TZ z^oRb_4%9s$N&A`{rmsvAIAo00WlWVhGm*A_b`8J z#$wG@EmH_<=!c}k=e$2mn8J7)Wx>#w}&hT*UgT{~T-%eall zr&rhgW8yKk+}We=hd1H=aC-FP-}|f2pFIC7f9`^4^n2r+!P@qwa9s_vi7t z8-^!OZm*8R&C$mcpZ3G8?LK+_{$6i~gFjv!s(QbB_4>`Lw^eH^YsN8r^XlQvt2bZ1 z_;NbGjd(`a^YrlY)yogQ^}%ob-j72_>t#HhhWDO4n#X(eYNwTyLDa1jgrzpBy~$74ZjKhPs(vg>@=t?KLCe*>DuXx_lksNK=(*mq?2Rr3=_Nf zNmJ!Xi`q23&m{hu?$G(6cMO3gSZNH68YVL0n|9Ip;W5JE;|`+^Xk+6X3++0tl18?9 zTXTiaAm?gcLtE1U<-KB>QjlWM%=UT@u!|64^3&MV_89DO25Lpf>>$RBSYRi;t0<3? zhBmA)v6XNdm3KjQ>unKYb+6lLBF&vkN10JEZNBRyQzeUST~~uMDY0@dnZRtTOG*p% zX5443L(whD(}nHIsC!WC3{*INl*}T%p_b=A;cH`E)k>(JF+wPVcqejCq93j}Ex2`# zD-VT}sHnrigcKEK5;2B)7m6677Nk1XG25BBE!Vi#At*~;Ps&E(R-sO=BseR*A!9_` zk-KU&U+pnO>&vVKiT@nPTjpe9c9Ou}wkQsLXFL8m#W;(xR7;7Ee_A6T!~O^S93I$p zAE6zVD8wcK6$ot@n9FBJVmsxMR~c-QX)!%d2fo zf3#bbudlAr{Ain25vF)q=IPnf4?cYV zX*MkLU;OmvpMU!0PyXU3Uw!q}liSnHZ*RS7@6Gus> zOjV@iJgju&lux0xXi}?&c^B<_U8jcWrG+FwY1-5c`zKaWSQjbMOS_M5j684UVd44` z9jvH(06j1{HK;clq#~Q`RQyV6DuEvk*UGf9Ws0WLg7;Jca?F)fZ@?8LHBs$~UY>H2 z+b6E9NrhDe@VSPC9G@!7im3Pk)a&F{w{7KZJ9Hk#T-#7<^4M``&TJ~eyoMS?2Thwd z7D*~##2I4~+Ey0amhYQ6%1qu1idBnM1ucx?&RAcc$4hHl!oupx8$VTKHCz4}gcFeB zDznZ(=UCeD0JB;UkN{VPqTaM%Wl3S%+QFw{lgGY9`7CQmc|t%*#xox!L#LR!zC$wG zLhzK&3U&ySdNOXItBY-mAGKaWu#L^~Vled3vCPkr0B%|%xFgkjlO){%>ZQdFP^XP~ zj*3~@iUvA1_fJWJ)a_T8!?aE%BTG9baS^1$lVOPfBji}B3y=^XyxnQXXeby5=~Ua- zdGX$ZCf_zx>TyRp9?BRiuk#w#1jvNDS|c~kX@sJ1Fl@7J3o8LNuMEdo>Qlwr4Y9wn z<`sb~q7%atLCpbAO45klX4{vQrOXz|`^BFUbDBkc$Z<{4V5cNsrA7V>nacxfB_=|r zhSa3WO^wT1;kMsVi^?ZO)PZ#r-tF7!+@Y%Nv-duH^4^C}A3f{csm>;+yhzCIArYF&SPJ2J zLBm_+bG*2ltB*eU#2J5g_p06Pqr+{ryNAoU%GIk^Usq{+_VjV>eTv)Z*#G!9zdy~( zi?3fV>-^QrZ{FU$y?b-{;~I{*VVp>tI-HK0 zp*49o`?iM>9EJkxB%s)~IB#voB7ILyMFL;F?e@iIU*ElXb2=Q-vVQrOU+ud++&mgX zeDeNB|JncC-~9N;KmM~n`-lJj|NejdcmI>W|8IWr-~8(S^*l$D-M*z4zxraSw!{5! zhP|`QFb6_)F>l5+9Q_-~929fA_Ea{`05Lo;-cL=LA{UHZxlh^WM|_d_Uhk%&c5vUg1guG2e2UCc@uX z&^65hH6gXEM%}>-!_8rwr`imst6_rm#u3&H$HIueI^Epf-1xrnotdYH;b4}*;DuVJ zec$GB-1BzmyT(*6zka!{)40sjJdOxSo15E5@_SD?aPVw3HD!t91y)jy?wU~X0(E9t zhit9w8e39&fKjJZQKBH@Rn{R+7Zh#y?%Ay(ev7LBsVKs+5hEv|@hEX48tE4!F|;}@ z^EPF!lapK#TvR8g#|wo-(tWU1H|Jl#B~)CJ)NBN6nbiOfa)(~z-APh-8!_}iJL z^LDQw`;xo_!w#o8C>j;7gZ6f6fb<&#Bx{OS^6MB^zO)=c*WnLE_c5+7aSI2jZwfD!NVqA+KDnoTL0z@XVG;C9gDbP&d%8 z;*bu33#z~r`14zsdLk#(ikxKM$P|^s+X}b45wOK!ltq3MoP>!K0p#S7mIxQ}3f!Tk zE8%;W`V}p6=Q>7XE8)f5@ikN&^z3}VRQhl+jVoiNl&K?`7j>SZLk_ZenPqM!S-x)A zO9Va(YCN674CzBa)}}I@Xh8UG?E1|-6U6MDpT!&42)Pc3qCj^bo(xFVXm48uTJqHd z1<^4>PmLkW52&1GGd$HCnyo~{;MASt<7=xLiT#?K^9q1=Em-(%UI|<0u}F9Vu>}EW z=h#hqZC%g$rqyJu!mKZOfF6H7Y9J>S<#NU^S|n>lPf_zNHUvPo-QYlaFg~O$WGF$?*@A#Q#h9YCqJpZTQ6(f z_T$@g6>|ID^G7$=h0^7FJBFISl0Re>u;vFZz@Dg z;qK*YD&+5c+_CNLI_QBB-rYUi zzxe#K`&XC!*$2Euhi8BI2Y>kd+aFy$x%$>8AODTN@rREdJ^8=6{L#<;$*(RC)8jGz=zHIK`|>j0jj`I!ae4CegWvn>f9<1BzVn;E|DQ1) zfa%jGx7(Vey6O17g4Xnr$y;mc!|6aWkCV;^UWBQ0eK?-Fu7C3A8fr}{)4P4%Rt`hP zc_`}k1abg>2Nege>8^YvUHGKC6(kOQ(7K%t-C;OTz1P*6!Yqqg)7IlOU!AV&J&)6J z`=~#h4u`|B8+^U@&Q~$jL}!{pJ@c(GH`iBOLYF({DlweL3rCwjnAQ!)0J0uc;3Ln9OxOjldcOfVdm(_Sfwu+h+ik*iDm zEp8XcloF~_O*7Kr6q~f|Q5JCxD;I1vrK{Q$aZIW7ao$R9q#$t(nyVVLiP>w<);90^ z(4aJBGE~sTs^`q{!I8#MD z4UE@h`k}^*L7Mnlpf@HE5h}RBEMRhXAojx%*2J8;BoAUwRWNdj5U|%sp8>?jF>n{h zj4zvaUTW5oUrYz5t*?Gke$`}5+hgtr@Y2BAhAJRmnEbiQg~x=-i@`n?E)A|c;gXma zF)$K?4)iQTFNxIa9rA>T()}+WBlAd-^RO<~UILkK{ z)Z&(sZbiGs#(T!w!f(k^fL-JoHj81H5U~((<#2m7h6uwJ%Hjv_zkf9h%9VKLx-gR+Hx4c{aaJ+f*=I+_EXSE^a{Cq#Zc=762pMLh)XP>@( z^)hn0b(j0g_N+E-|H&ucubXBH^WEFGuU@~Lr?Kl8#h7k*7_qHD!&1ZyRB0RyX4`gl zcqTXQ^z7rC|MI`_{iC~n_TJOO;e=@4_wRrF*DrqYWmVaf(*N;) z`|oV~`0(QGsq5nF@n8CbKZx(AzxStq`ptOms_tL=TmS06^|$|fPoIB4Y7q4bMqMv$ z6;48J+FAKXk0NTTv?yo*wbr8Wq@a~B9;<7VhfpDIiUx4CrG;+#LpMrJh{0w*7ZZ*AN)E`IK8Xkp&PDFw^uhe_jlvvGCuv_gT6nkBTYE|b^&}UK&SYg z#dc(c%Ol*9S!NvoTtRWrL^L(QCLsosN~H3{BK?TEHgG&so4fQ%R zKgjbq8abo6D3I%ALSWvd|4I-bo@(z{%<96|ra~VHO20C)K*~x9Lm&~l=Nd=2#z*4% zFSJ8NlwwzSOL zzzQ!_W>(>^Gq`KgwmR?Qict>lYqc4m?yO0DHweDW3mL_eH3T>E*e#L1EVpeSW-!j< z+&1=IBAYSv=~&DwqV<%q(;3GsRct+7{9KD6Y^JW~di9l(Xn=z=Mr6dtN<_?tB8<>g zMJOF)j?6QI52V_+Hm5YrGkdM7$pky{NiYPZW1V>`oUiCQc`FQ2e|lO8OPJn!@9~d* z{JT$YZod5Di(`MfCu0Sy?z8tkdVKTja5%BcVjHzy9Z^tfQ}OOb?_Jk9KltwH^<)0z zs_MHTuHgsY|Lyla_yqFV@i-yqw71t+kFE}QdKnBNCAdse*tVyS-oHLwbq6mybNlkm z2bfYjr(N`%K(=?qCh zJ8v5Qi^PFiM=H@px2w(WZfx}}Bpm?m}M zOM~3!&N|m0x|Z#006M*IwcU+rP=!ZI6(BiPHO~_zCs&ENT<%Ba)Fo`F>4#I_Uxg5k zSGPCUSE#OYAQO9=>0PzfIvj4uF0}o+MAk1n#(4>=f~**(<3|x6JQm^z)Dzp=8(l5;41C3*|G~_UN7IIxY2V zm6=(ieBByeHHZ-8-Qz{w;W}p5kW;a1c!iKqn?^ReOzHM*3FEquj|R&@m8;0?V6vEy zr)6F+aVu-vnH&W%YpTnf1A;%uWiWjr(Pl{MxoS9Z**rB-<_>DqhLMoo zwu--%Be@Jx;D!_$2nVcIEp$UAXqXR|5UaK;QuG|@YAN1u!9?ZB$=Zzxx^x5Ckh{+={M1204=1P&e($U0~df)}l4G<4$YgAmKVeHOvTB3R?kL1FI|+ zp^Ts!Lnw?4f=aG?XMN#~%Z+n!3#fT%`u)CykKh09_rCqZJ?871t*QOt>X8y1y3Tet zH&2eoQ$HMZZ3Fb5Ig!B)@>5jC3LnS^1^(q}8?N=IZ$L@!|39_kZtqz6adCsx)(Avwd@OI`q!6;7#+>Cy%cl zz5VusSX|;~^<>>{QvQHf5`RWeLFfxmjs=2L3B>Sl4C}H4Or@!MyM|9+eBC$0`@kaTtpRxDY%yDHP&&}eU?#T=xY*fjR(0b>*c88` zw@u3a;DRLiAx7`(UZFFrSLf`rbvr>KBD8DIg;;<#Wq?+H_4vu-HO+5dzm8B{{U83d zKlDTQ_U>++SWxU+{OE(H+fMYZXqRS-+s7Y$`}qeSe)icHxdEO?qQGzv%e_FqxqCG8 z%t{{QjO1k``f6iVt(65G04J=HJ+NkOVBY}(4#bCfDSq+<1`!k&a$WZNF(F>qBI)Fo zi4c{gcOlkJj29Ye(=eIr4A{&LD=0THGCb7x&`H~>w*&L+t%@d)*T9F*7i5opM!R3< zuEW8t`+OLDu431dy68MjTx59+b94u7Kx1uv3rAAh5B(pKv1~(rg0`BBE>I@~)IO{r z0r7I~MDi2sh?=7?+$idi`n3CINPed9L-QS-x74Z)3qEv<%tvwwh}OJGqZe7#OluwJ+L1C01C(xEfILL4g7lNUj$VPa zG#3~Ls75Bu&@-pQ4aQOfMFC4NlsaY|rbFI`D8`PIJjI&}+2bmd>WPIrSGVfojN~bir=ouV zUax}sWC4D6b0ACxlUt)1SLISM$)#Cl`YVFJt~u8G!p2ebG2Y%9cE|*yvt0rwRW}Gu zNot@LD9^n@ptx|U7n%5Aa4+QDz1n);i<6ov;3bFC^&@8wZCjmAvC8(5cm2@i1ds1@ zI)L;-d{Ffrp|!2;d*{X7rm?LpNq#cZS2DY^ijXMZp!{gf!?t8Z+oQ$R|N_a;|6sou1-xS=%M1{kIDKO>ZYsR0Yi zBO9lHO_`#Rh@`e&^m?LYP*KO3RX6o21tcnttdKNXE-hZrm>>FXP2{_Ez3V$?6=hiD z2sPNw60FFSBBr#arA`qIbyHoP4!4hQ?jGK}ef?(Nt0PE`+pE*i*2gcu{^J*)fBNlj zfBf{>`zcP-#P)vM_h}B_d-V8QAAkJm7ccT2E!2CRoieDaP31t+j!;FZVk8vEZW$|r zbx|u@NiHTaK2kl|lxoVRP&v1v&)GL|-J3|kXT4KAABcz?=xl(yNu$mIgijK^DXX`g z-k)hSQfF{jP~RK;n6#WEV6xUK@8)KTFwbGzO<}Gv=hlcoW;EWV z*6hAB^;%NE>$t?$);-PrJD>w>{2Vef>Gj>uA*ELFYiT&c5|JSXW@_>il#on?2USUF zH0+QV+uFTDWy^wxD}vLYZXiu@*NCl9T$7yGhFPu%R}HnV0!iyy#4%GT zJexADu}*0RD4E)vRCWN-tlJ%*nx<*RvaI$sZ`qoz=Va9L2uqI>im!-i4CwL_<*2DW z-==;p%4IOq?4Y;I=2D7eQatI z<_Rf`hFmy7BvL94Tj+^_uo`R;5?Q`0vdffET!j)8gMtA+mo_EJ9adZ#R|p|!6?cMW zi!_2#MF{S378`WR%zu# zB2&y0K&F^Cerg8U$KmLb*`ul(V^!&R| z-#ny|>Z+YX=qOH=h(U?Uc7=4t6jl2$-7_t)1pM$yyXCM^EVEL^TUi4+LuE>lOP>0y z-r475sf!!OvXoDaDLXz|E*s@9Wl{U!^)UP^J+j!q5^WP-+Qg)A!|vgHe);0Xi?3gV z7#=--+#mZt|H;qq@81lkqc{Gye)D&J_=E3${QS{B{qujKrJpIF=EKm(C1L#U+{{G` z0Ra^c!-3c!NRR}BPNvm!3o%)oaUs|f=@N`56#KzAsCGo~A^XQ3giyPJe3jV{wBB`V zig~&~LKGL&w>G9&APV%6U?CI_$cYFYzVE&B_$-WO6N(RMIX4B}-|^K`M3c+Mk<-}L zmmD!=An$v-9MZwC;v^}>$W5NMOgg;) z!=a~RP=f`Y$AGS@s#@=eaw1s+aNHPc#`CoAxj*(L{t|W>)K46#)+wJA6ah)nXbp%8 zmd>NzHn2RIEJKu_5*#(AT~{^H#VIBsic*GIJx$ZhLHI7!QN(|)IPMMjzg*jNixi=C zv&;l|5{cI;$wpWTwxz->bZsY+H4PLWAJ4qS2^AQ;Y-ym8A{)+*Mhq@*CwjllgS8=levup#4lGl|SOx?lFzOdrTRX3j`}ncl! zHq&@%)K$JzqdF-4wtlDr7?nHrlK&wsVJUJu?$QV5nLuhNWkDDV?5>%U} z6iwHmP~!U%)v00@$BlY@IWwhmf^|#I~K^RC-^z;7iIIUyYO&Gv#m{-3oujfb+fQHo%BJdg z=uh^r?fYZ*_@|dY`_(qu+itj@GEcWc`8uy8J7RTsL;Jo{ zt{PKOXKn8>&7_v3m7vv6M54f6>e>zD zopGdaCk7@+3Dr1i1lzjKcm08Lh3}s#SWqt^Xtjrs!8nuYB2p)%hI7|fUZh)QAT>*c z&5%Y^t#B0T&Jo>#(jROAq3v8eskWvKdGAgsyMOLd@sA$S6flqN zh`tHNDciY3CnX9hWFIEpC5BBIc?vw?Xvpidij2tt%dp>2kAt5BQCp<1T*aEj7atvV;vv=kt|Y29Mz9Q&#Avx2 zZ|JYJT%h1y8rA^VwZ zJN1hCi$<7lg~LTHcvA-D+;KcD64J>gX=Od6&V{Nf*e?WGSxT@eKn|Ae2xdt`EC949 zQv>wRap5u2q!9}pm!hGzl0>9=`siR>^WMkT{!flqr{Q;g{NtBje*X36Urcp=cKhu6 zzxCVGi#Pw|?(Xe&xqSNN@cEa&{K=ne%YUV9E6rkMgOcD1e+hUmln5oZ2a*TWCR7x4 z-1jw^u5CQ<6lBI~z@?VTS^#<_!L-QIVm1ypW(s&XQBTXvqkckKq9M#J)E+oDMNh<_E2N;Iuv>#gp8 z;y&9JW+D$VW&;8mm_bPRnfl5!LMN;GgvMviBB?JA%#d$Es9k}8=PA)qJ3up z;$*&A93kMmFkR#F1@_OsSkRck!_}tsy^;=14*Sm7zqq&=ETug=$BY!sHPU+G zy@a#Y&Oyg%QE?TYQVff{nk17+m5V}&_^=ID{?5dWl}^(D%a#?HiiX`|OUQfM(t;GZ zRY?b9hupYdUylOMvo=5}j9WvS2kTs5<6OJWXH-UL)we3q8Pe8LmN%w$VA@&KamUbW zfCdM;&1{NCT@j`l9chrPNL#+1uoMtA7cqlR!uLdpQ18OorJ<4zQXUH`fUu%4*cs&Q z6*M;iw^2ID)=CQ^$b%sIdEewJNpY)-Ek?yMv-YN;xM`J3R5fcx9q+p%-!#hr4eRKf zU`UB{%VLeCnd@R|j>l8yy{Vgxevs?{QU7?_g5+5}uzFehb(|bj*I$2i|LW`G@jHEE)@r}D{_*Ll$*%X!1evg^2fQ1m zp=?|u!5H*Iiq=*P152siHNa9TUE7%0xjVFRMEauYM*p8akuB~Up)#O&I;B)lfk`Zq za~?WhUV6+u%6b+zt7Qt}_~IV&L_i6*Dm?{h)eWR>*P3abuCK0~bJIBOY4eS1JM-=D ze&_L%$2j=z-#&Wuq_=s#+Dp;P zG|{X=4Yz?4wD=>r@Tl3S?Htdg5|L<;ccND`ir{aO9G?GPQ;G6yS2s7uuJap>MciAQ zKty=d8#;gX+GQ>sNh}!5UKs>|IUgD~Ep4z{ShtFstzY45Qi;Dqxe&AB5TLLwmUDRv zZDnaU*oxCT@uKjEGKn{y20O7B*ar~shAMF3E?vXw$;}4RTw4Lqv<=onF1VgXqRx}U zBeDa{J6@W&@m(`MV4R)NP^=xUx*dsFb-<**(f$ zt3HYw6=F`FE_2`Yc$WAQk~79b;iERBmEqr`4N=dK=`->wLNRA+L`PRs+EuzaMY4Ve z4QHOt&H{9>^~JE@tP7D=Zk_1?3G*_X<~5_FOU+KKvksWER0n0)jMj=dk0A(Lk4@(XSjsF7 zQ^18jr;R~vV`{?&#H&9MQ9ea}Vb3OjWjIUeIxNfagVS+1Fqt#iN-@rm#~KXAAqaRa zLnhiY5;KUaB>S`2x)oHVHjTp+jJTdcF3H+T4J|P+FP%_^{L@9pr~L}756WJY1`OsI z-sp6x+gxUv6xd2*<69%Ud|~xcbL2G4jifJ>D^T7M{$j5Ye1WJk#43OYWfRt!XR)eM z!_c#xmL*6Z!gD#tX%3(N;#XCb9vu$9_3dxneR}uxX0@&%gQ#F?ZUoPFLrL^LtMopN8YUO~?N9_VwGYKmGP!{m37O z;dG3bc>nM)4E>met?m)vQrkL6FJLb8svqUkJMBm_m4CcKlBL`|;p zI8A-;W#eU;$K{5DjI#m{f$oH=YPU5QKCew_w>6ZirdsBSO$Lvn)L zSi07+d^?r~Vo?<|;9gf90nQi*#wjut1>+zKG%LI0p_MUp$vIl5J_5lnI~<9EkQ=hP z5OAtoSCCzeD}AshdjNEVvFxr%U89iY)E6*TeF4$uRpQs4J%k zVnyObetl)AF#)9n;0gj9s9ywQ1X#K~#&r%8+p84J<`4(VO)y7tAGU2fblu)G@Il#l zFzj3A;GH@49oofT_f^c1Wu>D+kD(@|h;bgH)p}EQXH_-?`dC$$$(_f-2Hz!(IZ6$h zr(9lHK{2TGwdwr-6ZL1$wq*HzAGR{r%C$20-e702#D6$rde! zB1AcCJxHPOlOOFr!o!QgPhy0^L6frN5Jd`rNU#C2!N$;-(G$9>yKAnx^F8+rduQev zG991q+C?F#P)~L5IeTZW_4|ECrQ0go13XGLmE$C)(megN)$yQR8li3Ge9$mY@(%(x zZvRU8HVpNAM0`Wa#K3D?3E5+=DhCTT`PR6kKbINM^u2#}Go~1yzkSO)_ucRR;Je@Y zhNzD6oj>@KyUqCvX8R<%i#I>`E1&qH8*P5{#K#g^`^$g*@BZ)qPyffxH~VqUj36TA zgnRprbc(E27`*%HvfwUXOwh*+0!h$WlQRPl^OSxOesK9nNfJzngB!O5D$kU0CIX5U z1d-_Fxj#$jJ(ydM08+hML=WbakOY~Ifi;p9Q@seh0SaHq7~pBU`}k`gKR-Wnu6h66 z4<6lr{IO5HvKuzeHqS1e_Q9Q;oj*V0Z~5X+{K(xq&)+&fzjtwu15}gbW-~NhD-_1~ z9=8y&Tf7%s^_rqOa2M7O@v*>ng!P+jI%Le8niKjbq$M~NZYIBNLRcyAuv*a0o-2x78b|miu8_sRvy$Rc-SU=TM(JA!_$rwvua+j^Ix`+c36wZ3m30F}NX;Fh zIBRS($L@4C8$NuAdX=}rDlZCCFQn@@J5A1wMP0_=Xxo%HWJAx0hZid##U^lnExy~t zIbKgU$WfR9EUMlb=+F3qyOTB)7(I+#(hsZMMd>vl`?czzE#SWsOJoalBl%McN5;>y zusx@us3H=B5d=z_o0)fW*_>{qeQmHffz}v$%G*$h zGAa|1Jg1b%cP+WVl5_g=Z>d&HX|vnZ!gNkFxKC0uRF8q5pt>ZnuPJXXMq56t?Crx!d-|7K0X(k5Npnx6022>OGr~= z*3gHXXEox+j?kszgUe;SPNzlL5-z2S4 zA~jMDXysegMnHv2({-axhh=RNNENp{=dXmJh~e6KZY-5s+TVG(xa!0Xg%C=&&VY|2 zC#w#}rEn2yjYw-s1bkqHQ5HFWJ4mUw>UY9SNFr1m59A#B?pQGm%*hoKN4B41f{FyG zH8!9^kG`LF!+ zPo9RYJF!!_#M?5@%fb>#!5;`S?-J3r2qJW?Wz*}-VP@li(n#wt+Z*=jTB0P|i#{BJ zNsu5g575rB7Ccd<4cs(jp|x#0#o}DM-3`2+9^wRb2D6&HNd-5*wKgv5%TdfNZ5?XV z8iIfMh37l(@7_M^g4+$7m!5zA*4;C^nEUr1OzCPPf~a?z|8zE)Y71 zN+PeIvw1;ahLgO5Q>E@1h@MnL4ko@0zH8D{szpI!Wm<87>44QY((hNsuHQ1Wb3Rk1 zvJ68%jyGW9bc{gxP{Kt8q*N)4CyH8RSnh=V$_`#-@W?O|$aw*VZ zem(KzCf-x6xK-7sttiGuage#BjzUMpUxH;Ut;g-m&PbuW>9QAK#mfdts`4>JA|%xs0Id0YXDcJ+BW&L0l(8k^eV!~ zJZFrfyu6a!={>H4HFTTS_&H5|?{(m_SwpyUC|k0Rf_|Yi znQ0ozAT`P{kn-vRqbx0Wz4CDCOc=s2?qT#6jQ+8vh0v;_+GxI7V#0(!sfR`AGZIql z3z(2mkAck;PAKntfPJK}n#4h4YlSJ_lFYX3BfL1;0(6wJ$Fn$Ej8IskA?_fSIjmVa zYeFl(qgr~Frh^?_m1f>JU$P=Fxe<7P6obw#D|TgxIYRAfg(gdGtqw+P*Bl3Wbr#olx6W_(q0^qFN=RXD zT+1}z@D4Q%-VPORklqTkC&#tgE1-|~3$aEj5)0{kb+BU_Ru1lh(3)UYNdX5v79l8D=Y5;-9gg-H6YXw!~ zr8s=z)Tc3?oo-*bbNAxe;WvKcx4-t=zh=y3V}`Ej|LR})rTByQ-h1<1Ys{BE_OTa- zlSdCP*3$j?)3@8{=DWZ5+pE9$(tq$v&2TdG=IPa;$1J@#kDEVo2&#&Ycn*#q44Po$ z3O!rkBn@g;j-yUa8eOO?PxZqmkZ+Exz(R}0n{m^hR7#@`7g{%M$TrUr#YpS>0I{zw zCI;Gu5h`}J^>%*;Er}SZ|%XjG7yPtabKd~TD}^k6FT>B-bK*?8veDMm*f^LlvcA;O$y5-Uk`ou|xNLww2YFDTd zFfPJob@&t3wHGdkDVMm(<4@!oEMqz^>IV-#p%D$#MJ_JIlj?D;FSXVWSamL*k2<|H zW5O}ed`f^OJG66tj^%JYLVV+qQVnEhH>X2MWc!dt?9izIS4#a!Su6-LY+9p*ATP^d zJ`_s*M(EFm%0Dol27kjG$FfEhHtNz^Tc8&eAaAyVuBgfRHc~!;!b6A?84`U@A2p5n8Dz?J`euRKl8K^}(%x%*`_N9dToP`l)p- zxp*D&(u(?OM8(TSBp|~9ta?tf{!-q077IY<1{zC9Ak2esw3Xll>4z4Mc)|h;**gF% zIV!oFqo8QhlWr$^e)7st(g0$pL#MlOR)MvxeZ*08H!f(ZY{))6oW| z^GP;*RKr-c=qA)Tq(EEVO6sBt-Bi5N{6%sb*K>>&Qf~p4;NFwOQGaXlrHF1IyRR{@ z|ICOOURF$rd9mYErMD7LHMn{r=?9!4cz)njq4wF37UnHp0xmwddc^UVfol_Ig0h#v zg0K~6#$g!FPtN$BnCdExQA^K+*jv%yv@a0HyegFd5pHf3u%jkwy>rZTmPIf(Nv;TuB&-xpL6EpQ zS?k3BW4Y|`$I121t|q&pDjwG2{E+hc=;>9?gcNz}e*f!#{JUTOxAEEg)^DkKUGulT z_pPUIebC%Kdwx0HTL04d>2+z}d-x=}Wi-=&_dopiuYcnY{>#^2{oK$0RQ3hrP+Q?( zAgF2{K5AETiEwgt9_DtQ>j23(@{wa^k=sO)VSSRgHuYEmk_fXN5bpvcH6Xc(@Gt&I zp=a6`5fQfJ^)|?l`IGy#Yq{NYVwi@~yqQc;iuruA+4YbKuDx^Xj(6?lv&*aNeel+8 zw{)8{=E>7Xw{G2e;rUzkfh{OV)N_j`f$4|+vZ1T1V%8FK$)-%DL=(EcS)0Q+%l*UH z#NL3Uq-v$=p@}@-we9U&=j=~0hk*QVo+5KAPFP+xXfVBFG0#v{OKzke72dabghh0!yU1R<=;aJ&$Lbb{b9%ESsD+>e@r0 zR~_`qUsE)&=r_JE1);F4X>=3r*?@_u%K(Xcf`(yrPn7+c;!2(!Y=m7*##~x>X$y6D zEwn9?FHQx7sv6;IlTyv+*>1Nb)dYV~AeI5mQq+JSQ&~`D2yeBX{5v<1e82|o{Ay?Z zUef;&Te3xNwu2z<)%Ogxy6V`}$h(%5uEb3F3RM2m#Bs8&DS_7(Q25w)tU@as+itg| zuK=}ZY=|yei)$Bl4r@Y>{zr6}-eN=?klcOn{3TQz6yNoWS?9w{hya!-=5)X%GPemO z5`WA^N6)Hi*np}#xp+kLR9%Y3V!mS_=9+S+iyfS00X=|N05NE`1GkgfC)zN03aZE* zbe*UFd79DfXz)aWq)?Zo%$Wp!P_KnL0pZ%r12}Z7iYobi>Hx)a4+%P!%{yOI2Lx<6eH0vQCFdG#5@-AA0+j z{Wd7DPbe6Y*^G;7N{b7SZ6s00bai?8+KaE;KEKr(Ly-y>Sz%dMx|6DrVL0GFa7rJw z%_xfjdGLZV`&W>ZTS(c{62sR`vEjDX)d(w~B0V?{HUlPOSs0EA>x%y<+p_8kndDGW zSI?noJGwX+qH4N}vN4(B1f58O3Zudag|t8mwtV9nHuT~OTtWCjZBKJ^NDm%8Yh3%W z*514K>|cNNYj3>qXQo}Yx3~Fndi3<->(}2**W>ejD7HK*hkK9jzk4-4NY`$6(sup* zNB6?x%ZCpxf5d?pk~yN*Y@Ru;0#u3+k$jXWJ#qXderaK2R1cx^QQQrWOI1e@)o?Ue zf=aYbQW;H8+!;-%g?F8}Zc!STIXZN)Wg&IEqy)iN3-Vff>(+_2mM^`vw{{zgJ)Wy4 zrFeb4FDW{^I)$U%e{{Xwb$7~1<=cyZQngtn+mRZNaA-Jdox^5`L30 z3&r70t5ReY-AKQH?vktk5`x4y)nSz9^VqizwWdU9b>GSyRLe-#LOQg3+JO>;Vhfh< zmR{?&%LMHhur$ma?LugB+8I}J3+MQj5U)Nm5vk&&Jx2VjY>Z_yZ0pqw+j#5;0lON8 zpo~T|C%$u=;nXzi97ll^6mm&;Dkp*N50)M{9wm)321ve>*6C)Cs5le&aQ-TCi6@^vt)F5L~^If$Mm1U*@J@sC# zY2*p0A)+xPeQ8rsPn@Cxc=-^j9x-$zCPv;9lrWerk(3na0*HzjuMTHlxP9yFToee~ ze5FjqOIDpe6aZ&27?P5Suotr+QAq18YlhBxj%E>fd682rGQgXrsjWr z)<+{7mrdQJrK91rX3dt3Znp{e7;_%T!(Eq!EHdea@PpOtIqVut7(RUZ@bqN&?#wDpp|7!aI}BJ8BT>f4R8&?0nCiP>gQ|Wl zaphK2Lq`q1YPuP_X^B%h#MBS|Cx7%4jAnXh=6OCpJ0o>@S-arfY;hJ!np9IvU{L!e z?ytcwMLpNKs%zSL1+he`kKl@Xn)nSVbZG=ZL+pW_Qn9#*q2nuLTfLCpWBnn!5Ji=t zD#{t6u4&W2-(I6KeDC=ODTNMU<9Q^T)VVH}5xWmC0pY41X8>*+3G|k<#Fow!&tIko zj7+MUT&h_?S-KJC68x<0YEo?Rtg4Y%_;ZcAAX8W7lp6WKg@9;5f&`BpEU!x!I_(SS zVwS>o=)6k_v3t|*LLf?6934u3N9CC^9q^#F>(a%AQG0D=v{Xm9HjYIYJCCy;bniF~ zA3QTHP99~ybM6UCA-fD^(?-1rX4nP_rjT8!z#tvU+KegrfE~4}DEQf1ohK{#HlPsB z0;SCpULNLm{6|gKneDbuC8BERd?7*5Se#s3Y%15JmkBV$xU!HiN1B%A%HxU&=Pg`3rQRs1l3sFbRm1M!$xvRGkRhfZD;pS#2P0tX9RYO_p-H z8j=ASyUuO;feUb1HlZ&NS!+-MkNzyo;=HhQLX?^IDnOex<#B%?J%+i(uzc1LRuRoP z8M{~)RA#9zOd+#`5VRb}NF0T;%$~H3v;00O^I0N*Um=1}B2rtZ2I0n`!+DEEx~BuhyV6I3;k(W6dMpK2F{exwws8WBLg>HXb1cTP4N zUZ=WslU~oKQ1cb2I|iDR8dV4UQV4Is%np6YdZpis0i@&Ct;{#j8=>?>5(4k@2(ohr$?tI>uD&pS*QX)VdX*0nD`cV|AB@BZ0)fAV{O^6;&!F>NG{wyeuiP5k@a%B! zhC|Zau_rsfdwBKakgol5I$#~$|NcMwwV(L;pXtxtAyI>2YRYNN{}aRomd$m@!&d7? zxvAs>uO)YejjD=*`4Dj=ee_2V2EeActeQ}@Bk@TlmDX|xFQ)JDzO57K-?gcHU6z}X zqKn&ixz|_Lf;?Zxo?!1523dcRzjbaq2JmNd>RP5$)3gunKe^st-+%f*=Mnk%>LBC? z9uFfjKe=zgszlWAs9{`Lz4yxZA|D0BwK`#?7@i_)gjz0|l%pxFYg7)C(qX2o2E&qU zNMb3qbj0O>3|5(|*@xDe0I`CNnR+Z|iGN3; z(Yv0AZ(^baQgM$eJr5S7q)g^Y6~I{zGUk1mM2N*@=yqxaY*LA>qHMMEk(HyV0_i8m z3;}$L+u!ViCoBLYg7X<#(<=g!W|wC20dBM3a4`=XM6CG!`BSjoD2ym~o!-ORRYLG{ z69!Tg0zcL!rUlKCH1U3=R4d+G1MKPyTb8NjJG7n}OmIJlNAx3b`q&QS>;t>1o<|~B zY2)jId_gEdiE5BHZB>#n5G!mC^QX0%3hOo1xjAEnQ1psVf^0GS@q+P66ZWvo0Lqy6 zWmuE2%*a~+veVg|XHIR=jubl#RAe37G>b4)5v5I?sP8kLJ-4ramyn7(P?BtN~>KnpCeR zd1Oo$OheUm!#i1{3R*M=j3WW*G%&rGWzw7&_xQI9!Z8Vx>$1Qzh*KB|6_&L+h$?_U z$P51)$$wbkrG=BkNDGQiGi(N%9+A?k&)xaU^4`|i)U0j_vx0dD*m+`@M`JaTCE3|<#&hAAm#_`O-v-PwIB#SdIii0JyWEwVsElKQe^od9Z%+A+H>7P zBsme7330HWXQ`I+YJGQp;?AYYQ->z&!BSSY<$jcK3DCKjy-7Z+C-k1q)6I*h|W z9Y>tviaT3fc+1iUUlu!I%Hv)GFsQpHf3lpd-l!Y4kv}V@= zzOPMQ_9LVvxW&kVykpa&_Fg3D@rmh4?TFD1gMau)E3Lp~|-p2@v})D=yYS&PV%h{a9f zB{-M_K7e7Cn)E7Ot7;Wlxho5Z!rceAP~{j9>1R4ygp=}qH^v0i8zxa5UZxq1BPUvi zDSBNkKIX+(E$)^{qv>2v0EFHakzpdhISuREp|6L!8kg5XiTc9mLw148C-ao5Kwpo6 zqNGfdM0F})Ug*P|9S^LvBq1w#fGyiwZl@aO)6RWwZHTTfo1tr(*;+evO7tcVA~mdC z;_D^mG?od(1@uBoQ(Sh4b@9A11d(sig{3TU;*KnNo%Jtd4ALgA%ZfN}VH7x+brmTs zSz$9Op|NWlf>)&{_HP_9ZL`~uH_MMCp@gExPz@oAVhyC1AkoPb8)hGpl?kIj#yhLe zS_%}4kIbStLh!^e)7fgzQIZfbzEU2m1_^(F7NJ!IY}hMQP^)i@QK#nC;rl3FAUo64 zijA|i=tTKe5sFg?LkNd7LJIT;b5VRebF_9+4(YK>lHcop!s}Ht_!KMOut+toDHA`8 z58ZSqyVH}qcb{WPpJqXt+I)rk*M3p$%JM8R*YG~T{&G{XK&f+yLq#AqH-IEArbBUD zQ8Kn--kf7jr>1fi!8)sge(Ir>&5IFNF-daW9Oqg7J3T;>h*oGUrvwV5ho80xxSXoA zg_J6VR_ba&$99e=mcB|ZG`ZR@4+rbK>Dp}<=9%kmyx#NO<%2OKo`e&Z$LZbgzPUTU zbLZBb;bC|8?%mg4edXOp@1CBWN_md5rtRSF zQeNi6ba8V?OF22+sf@3LzB@S`nuUy~P`P6fD{{s0nWB!W?IDfXkbS@$O6ZN@A1P(I zynK3o`dZ)lXV*9LIL5ePy_U*(DQTSccGFDz(O^O729^4;n((v{nxJP%Ng>pl=eZp`)FbPh0ouxOo{$lDI{1NNPH zo=K$CquX_OZ>$|~Gu&~=SW?|QInR&TyPR<7YWElrSSR0$e&NxR? zB*H;3KpLgCH4&7FXj5#PW~Dx99!Y?~N|9m9^ST0oa(u`t!tuz7)LKu28kz?p zY0;}SYKUSV1#6tLl zJV{edLm?VfMOsu8B?NfQAg9(cqR7>5rxaEQ28D%Ic2_Zzb!e0vLmG;j<3|FOxMV`y z*!T6#e$=$2$DFkUiFMO>@3Gz2o*_t4*g(|h_35t!iCVn%dhjhP4btsP-kqHN!Eb-> zAOE9Y|G{^@x#T#U__5fq8xZhaKkm-X(DnCW_rgo`Okj*(@r6;v`UplU?BT=O~Md-4|Ai#HZ zY|N8|3L^!dIa?TIH-xxhv4zYWN3$+N@A>TXVxS0Er6i#`CMbMR`4WqPc&nw_ie;3d zmd{&CM|w2nk72fru{?fsNqp(rq&fNE6LmdTH~T$V=t7`adRM|>2xK<;OXX&$NVqHl zD5jP9u5$M3nRQ)@8%eAmk5HQC$r-O_jF-BY(yX?`1HVvPhM^5UgwSrdbU*{~X;m4& zR@BX~aa2OdEv5QIpz1ah4uqmi1*VwJ^4=N6e}N64s)Pa70V>Q;h9`u&TDe%z^b1mu zB@%@tTYFax;&!%&yI83zIc}pFWBCHa%DKLjRVkWY`u|2iia14NvWGZehq4{P** zgtQS$0k9T>In8S=&;@(mN8thzqbQ$u91)CoN8Xb&HkUGnA((dVaMLaQ#&$mU8<+(8 zWjgH<6jvPPc`s;gy?9cWNyP|;k&nOK{3@tq^%o@z5JHUx{e z*o)!sEp4Kr7MZ>mm@8;Up@PKnx!|x(vF?G|2VD5p)9K23(FdR=sCL)$YU&26T48X3 zilMETJRPC-{o0Vp;9TBzbxu~Iq(M%yAhjq|br<7VMt>qagjQ7r=E92n6 zU&eT-026*8)FVP}YCIYok!=dGPR~8}{GD638pa5kFR@68^OC7j;m+DE5m;zF(lw@> zZ)iQGx$8jJuUL%(HCmf>O`H=aFR^%F#>~I+?Mf;nIA4N0_-F1C7BT*>s=3$N0Z`rJ zYP#2$3A}()n*LLmJmDwc{^C&}JYd5Z{h4lN864G`AVnCzp3zqy9zVRl?9Cti(GP$B ztG{i`U!0tueD{kuTpm@9#C`{mYB(`K^7tS#ue@ z`^8WH{9jDh_bzWRR`R-|dYE%kVB`^ClnMzMLUk}yqu=p5W4RV*h{BWo2ip>FjWUav zo%w0m_3Kk5)Ds`6R5RY&&byP-EsYTzm>^|R@G`infPhbmze@?^HEl>*TpD83 zoTC&2{yCdUnMw@X&87`x3ia-T@xwWd5n?H>OWBWyX+CJMSf@Gmn=Mrzk}DoB>H0C( z1*7%OgvKP-*qA5LQ3SI~JzCY%gm&pw;+|?6GCBI-`mPy3hl^JjMza#T&m5f=bsU1Z zBtpEKifF5#DI>z*d{oCn-6c!e4qMG}C@HJ81Va%oGF@;)^e1EmtH3vQOlnA&u1cZ1 zrZrSHElve|e0bK-_rOGyQl8@^*pXSKYD#G);GkyhNU4DJ)eIwoO+Z#V=caj@=b5(w zo~s#xI0?MpR0kfTLzH~S_oV9-wny)r&O>_PvE27m-2wW=2^&yh%fzyjGL8zEGY>of zxLgHGxusg5mWn$fweSxP@KQ~8$Rpn!!!H(b67*Ix?kCqYGmVT3L6w5?*WtvSoLYjG z0l_h~`+!G-q#DVG7fT5+w`d&10=ruzlYvT!wwT55C{@oy=Df0C-f-gh=S(k--ND zKyS;s^LIq^OLwN<>3VGuNk&T!W}L&>>T?<{LcqJlJTLY7PX; zkoaqk9*tezu3TgC6*Ox9v2M57tSg~xX`h>B*>1NRDn{7>Z3m2`J6N(Ve)40;PlaE| zYN=IF%Gs$I43*D3A~sq96nxAEQ|(L|f>pK*0C?Q`1@2eIEqfC@$ ztr!tKC6Hg0oDz2N?`tkBiFpDsG$P5;i4#DAKKVIR??nxvcv(PO@(y$iJ58yS1Rrl-IE;MK$IrHhBt=d z(@n2fRtemxhFH5``vwo1H71ROkNBSR4MBgsZuA!^N`#k6uNP#iLPQm-rUR(o^l4iA z&1QGHOL30|a9Lh^{p0r^eyD2<7Durb=s|kl5B<<}(#xay@BbOrI{tf13>kgO~0{HcCMRkyVZE_x0D z^u*+2$e^)itnzE|28)A*?bkZ2@jy8cY->&HHXH8A4lIkInDl16M(aw9pKPL~U?*w& z%#7I<1%rx`H9hu>HYNac8L#=-g#I&eOKwbB26@-jy(}v*%1h0&p=W3p-YRmg%(76B zR#ZEd*`?Mn(ioX2fM1&_66C2Us7$t>`~^Bbn60JoDU6SRb?qvNY{$lZd@Ry zlF_^0^kUB&{2g7$D+;rdla22PM-U35myDyC^GQ#?s6C+!Mb0v8kQPymt_KCY>nEzx z2{D#(iB&R6GoEfJb%ZFEQY)wea*sM7eUFTwVx3nebutI5+(P|;^{}srctTr++{!Xs zflH}$8K!H9ETu@Y%&9nt;gmn2nu;ZAoyU2OIqdpRy!!knUOKE`CilFRjje7JjF;xZrNE6=~2X-x`kF@O4LMFBIlGAIoG^!()J@GO;^ z2IUpcdB52V!>0Fx;;i|S0)0W9qGYo*?GU=wyZy~g%CYK&o#d|iYE*met;ub7>YK); zIg(t$lgmM=kh>+$<7V53-kt1*lO5Lp(+;#J`fNRw2vX5hWfUlqw=f@&Iu6Tf@(Q8) zkvU1)NNlIlXTazsjz#tpti=4&8U4GCQo`GKoUnHCp|vdycR9t*dW3#TbV$Tbit$3D z1}@(<&B@75OmFLJ$u}qUY$?dT$I4TK(2?k#%# z8pEZ`gGpKf3!@EQ+g-CLoEEz^4qW6AmE=;~DaP?}z7cEZ0%$EOMUCpEQJ_|%Y3}ni zCa7H+J8{h6!_eW~F7%^eZLn>7ve|7nL!A+EqX@eccc;`akuH+!=uxYNa}X*nr7B%e z=0Xj?RMM_&ae85oF#R#hLET3h?Ll5Y(s6wx&C&6tLzANsyc^<+^l&y0MKbZn3+5O2 z3P&oOLHXqhYZ0QWMk9jfcFtzJ+FPoIr~6Mo^iA{p?!`OJNlA~M?@xZ^XMgm$ zlatW(orwrpYp@ZrLV4K~4GzkWB(zG9R3NLm3?y3;Es@{JBSuXWe2+9#WaglzNB=Bm z!y-r#>s{qdID}e5uYqK^(wso`>y_5ZEoC1}PK6jCjW=+hBK6y5M3aBb-fRa6L>d4b4d zXV6&^&r9_qa_gmc053R>Ydn`sOV$zoD#5M{rHW!->5oz7BYOY?IN?iqZ95J)1)<<6 zlg^TK(%^?N&O)0jokxx#Z{lXRhHdBj)emLZ;zIPH4V+}8@@19?xmf9zS4S>b5LN}Z zIuYh8)@TzDH4{o_O5wZmfkG{(V)ksz%y9j=`tXtPHB4x4VZ-BS3zIWZBrISd0F zB@`%kzFn8J>3i<>oc-z6TiY{fF`M_?v7$Sa2FClRamPu+ieNS~BT?6JJ5ai$)$ZRw9r2?ZOY8b(kQ0}8}-eUFD;l9)(*BLRWL zpNas5XhP11b%Nq-!uY9@S9NBC^*csF{UmdR-}`7S;ob&F&}mBspK z>pv$9=ZNo0@80si*F?{5url%j4^g*TMO`(nlV~_KeOGM;TbKL<@)(Ju(#mioRF3Ix zvMXq+;Y{SNfEd>gaJ*Vj&4`S(bV0jK-#xs4W!L!X?bGMZ&f_6&PTeb?zH5G;30WKy z>y`5FxIOT-78}B#z2m6oNX9<8c@XUWHPfAyVKH1%-}_DP z&rWw1s&d9}LSuXN6PTQ%NFNi?mGNv6NJ#8p)ZDP3va87(dPacJ(Cm<*O@uDzE%{k2 zh8SxUo3hUJAV!UX`M!~Ak0BKqp1{e7RsC;VTUn!qG=WAK?R>XmB<3X?1XBS;OYCy_^Zq59yMU;EBy z(RWoZCuItmU3}y!5!2GimrCR?Teu}nmg8Q%xe8zkoJ8DtrNqu5nh-g~?_2AO+%Omy z5;8Q>g%OalL&-lu%zpLS5^5cng2kTcMED7&WIPzHZaMYi&`*u4*{ryEMflRRg|TpH zm)(ZYH&o1$elt;HG?g;S5Os*gi}*tm82I!}kPyzRPN4Bn?cG2z!Rl+_X)evhS6$&QCLX;_b>WX00&}H#p9DLH56UZf0?RbCGqzL*`F3+Y|P7~gL)_jftnozK_ykgoat>#S^=aooGkubd`K zYV#5o+uchy|BrwCPrCo{>_7a!{Fi_AKmU6REgb7SXW@&YcF-9+#7wLz6{1kIEv#IP zOwo5r0EyU`hnaOgAi%DU$uN#oR*ZrJq0CODW$zBQ{zXAV4djKR$) z;T;e~IYI!|^3o~7hsj9)TRAEkN-F$`4RclGU;!0*3yX(;>V4S(x?{isZx`ffgd)qOr2kSa~xdiE# zglIq)F1Qapj3vgISr$u67BR|oU`{Xa8zQs z*iQ%aAOw{7n*PlkR~i?=LB=#t1SxZfiy_0!G);4ZBW~^ei6iM0FCd+XghsW=)13#Z z%lw&!-sjwm(;*CD(|35I8sh@rBcyLjE`lj0gud_i!8aRE&YFUQIpMfDtFaV9Lx6(v z<+#uZKQpMT5dJHcF2c9a=>W0_q|URYoa#o#60WuyS*DI5UOoUs1h0ANLfiH9{#2Kf zk`<&kV-<(H=O5t@!R}BuyUfnN;&UlY%**BVO`O@LNLo$2pK2Aceb^|Dt@EMZZni^@ z)~}*_KvywSSX>`pbb0!r1#PnYkTAtHR`vE!ewbz%l{TRxbWa+NV}wZ^$B$CMT7w}G zrPu|5pIn35CwSPkcVJ7Y5R6V|k=4p$t5TP`8A$S?1D^Mrf32C6<5e)B4teo#wF{+Y zI(@|UiZHDxzI1KK>J-(YlS})_u@SGWW$QeE>!OUP8V`;`r!niz{;=)+CtrK@eA|8f z-+c2Q{@4F_ICIZ#MpF=AEURK-8$XRRyB;=pJU)tLwmX0N+0T5|?P;2R_lH01{N__H zeg2KNeh`Ws7W4ME-uWwI!9J_7Saw~dc>&)rTWT#*!*snP)hW#>Bgvrn0o7Epo^!dP z71(aWl9T41S~sL{v|631X;AJvkTN{@Y=UHk{ zDV-H1Q!~G-aF8dGakNDqi9@)PYC#`pO19WVCEvew?>5_Qzzcx}k_o-Fs7UzrlscwjfvW6+dC`+V-F+2KIJ5wIA*-SXrkL0^$S36H z4c~&4#Y#l#JZw-Q9^bXcGfecZ_lu_n&a`c^^!0GA9mVo!80sJoLrXsZ@_p1Eh^Q>h zAVOSW1m=;efsA^!Gvm*vTRi%Xj6yDJbg506b0%@z+#L3s?M8#<+LbkQOVg%d<5Hej z@jR)COF%&%GcpAb`X*iNMAe?y#^cnGZsDwrdqpDJ9yq>CpP8J;z5>F~7 zWF^&qPGYz|4Vkc1kbs6^F2XVE&8DMg*8QMVnQMAtD8lR^-gKjbjA30g38LEGp zY1X;E-m@FV9LKmSrioERZUB5D8fMw!2+D(Pp9}8^ffEw6)rqR&CAC3bX^~RHI!ApB zEwxF7eB6Py3xSkKLKGBUz(>+=#G)dzlx$tQZ`A@Z3VT+m8tPC*qQ{W%s_LvE?{tJ| zBM?ASd#k0(tc<-_3JT6@6aG&zp8?O(@26Aq<<_`-dM+ zavjR~=+%wqKK}emUw-XJp1gJM(aqJFJOB7|&zsY`>*=HS_mjK0xbw|7OfJKg>TC%O zk*M*W5xi6+e^T^m296;0UMXW#`&4?QK3bfL$FSMDp?3U-3N0bfA(89JP0UJLtdviVYp3gI;G{tCD zQdlcRQ%?Kw2HPsoCc6n;fkA0k{KeQ43B}@Xre7TzIs2A!I!Jgg=W!SY*%#g?8mf!;~Pa~ zC!Gs-k$S+D4ZMKVqeh{s#-bo%*^N`0=A>Z}7fXE=`+<63AE;21KA5j7EpeU>wPFwU zPfJJD71z@VG>Z@#z$`K;C^D(%gP}YXxq%=%c%r;PPNqh8mNJD#VBKZ*r-c$q5^XsD zh;gg+z_iE-$c(7L%&a>SiSuUWWu0OT?dQ;F+d#HinfGIy=Q53DJQVs}P^R-2;tn@6 zT&5r@ABMqm`o{(@L|T`#lP#~tQpRQJwmznbDq`p;zEneykV0Vm8hpD8{dO3rXPG1W zQ%mH9GPYog_z*0}qiIZJevsrC*LC7Fg04Y~UxnwAb}8SDUA$_DDH%0p)=P)Afc;#@ zi<;S2=X(STz|R0F(n3%M#9PlJl8jb1@BIQQH5UbDMTNgDrit2$_BSJ|MNW|prfFT; z9)O;bsS0!-4Ox2TP_H&*T_u3p&`@l$L?qLa%Wx3j)K^x3uJIP;ifkY>Hryi8i%4Ep zo#@amt4l~b4gdiF07*naREY>pr9S4YsIFYj4C%i0Z)K5`Tvf6!)vRjl(o#{Mc?KCh zf5KpD3=Wupo>kpY$G`>=1NDZGZC8H|T@VEID2Pb^k6D_uAmzIYGgm*JLexd?3Tu&+ zvc|B+r{8|?7jxfS?#s@Yc^*qNp_S|(F(PM$ zt}Z=ls#UAHrez)CN1&@7)~*jt&Mf7ULNzf>>WZYahlc~sF)PrU5kXZ$ z^8FA=aP-vkY<7Wt>exI(NJHJU;K)}p85Tp)V~rM6rW^f548>{#p|?>9p-XNv=Ii3f zV*q!Bq!mDng;Onua+=p_TZPH8ZBdU-d2S7K>14B4!>tys%sjS^DXwu=M{O$8G&=N% z9Km`cNj77jl)4F~jkh8S>Zy`9g;g}>1VMrFw+QE9Vi^WJ->XV2y0$yaBj1+>Xbp9> z$dB(`9!E_6jkPJyZs>@9fJ6x5j)+s?k5+~@J!r}aufA7Jr+hOA)zso$rx1D#OPpI} zND2R-&KI$pa{$kJxEZ$T0RtUDU`B2zBGbb@p{g<-Pr+fFqZSRKx(TdVa_PHs##31P zLS+cqA*~&}VhB_+pJLMzeB61W25MUd`w-#A+GN;0dXW>6I{OYvrmsp(R&E#%d9Mge zYOKpEs(FH-X<_3`Ll&aLUbWj~Gcl&6{I*S4|aJT{G;;&t$6IxgvV_Jgl! zHiR$|?})_#7QQU%$z#Z}ZiRVcZjxM(;5@STt1w3EuIwe8K5UBs9Gp5rq${w}GkHfe-2nj0};TQB8#=9*H=Nn5$;^jRppjcYFAt`H?i8nl-n;6dljV# zx+0VjS#k9X2<`Z2hhkH>tYEc9aR6veDQI8FkO zbf4is`zCp5oZZAc+SA=h+n70uI$nW~*n=6H&|+}EtMQ~G=%#Dzz&-~yrJLaBE^{hM zsS%65wOyuMM6nVU|GBP0R&d+kD#aSczvSm(n$-%;9H7WR8Sksd#v<8ROkt3BQzRBe z6uMwHuqW=SBBg1eFTTm+qJ}fjFts+w^)8txIvVkagjvC5FV5S!L{DpJVs=#CqS8Vz z?G*$gQ?)68caRv|5^O*uK7&-wGgxq8Oawg8rmje4#;V$Pttu)Um!tqNh_0ScG3g*c zH57<|5S^k7k|)49(3nXy!P_JiMqODF=^@PJZb>VnI-;AXU^D(c_-gCz&~$ybsq;=8 zCn$F)M*hYW5!1{u3j%Xfp7#61^|!d2s~eVfW4$jY+cP7?!-S>_Hn_eew~QYmmNKTf zBkMevHeXynBXh$0>Vq#u+ZjhpAT%^i(Y6EGfK4VkoKz;;+9}UUlBkIpE7sl?LTWMV zNY?h+D3pJN1>ty>$Qi4;=2(7?dc5%U%ax;JG$Izo0pO8sOdKf{2RlmR6>FO4UtX<& z&F|EOX@DSkN0BDvbyC%L)HF{z;GFr6@$QF|%5Hnd*=`7gz4p7E^A78vbbV@4UGfrZ zR{^oCN7K-8`d;|-jc+j_!qN>0N!jm(pEJrRdo#tfIoXO(R)v-!mt4;2`sdX1w?YFL zj#dJUnFzE3ON&T&xRf{w5Yj(UB}&Rb6>3EPnC8NIZcDya-$r~=g7P$_>u^y^I-mM6 z9!OBnzsu4})Ixx?)~rmk@`&@P64NIGJ8U6Cbd6X1C{@4lx?1v>JxwFa=5&i}Zp`m} zaI+A{J<5#EQ}C%5J{9gh_x=yReUqYHml+$&^y&+rc;NQ$y#IsW`s07`wd5Ye`zGC_ zn~QhMG`HnEZ10|I^Rwyh?tI%*v7%H1Y4w_@S#s}%|wHR3oQ2uG77RB^eS6pAcm!=Y;z6%(2qPyb)D zXf3Pp7Ib_#U&G#I)>PMoo;r(`?`V^6N*$Q=OEK;vtduN@|CWVAVFpw}`5yg|7 zK>~#Cd!m@x<7a*nfG9>iljwZyP$q!S6JIyMw#BXsbScpR&MUr_v>SHo`tPtBEi){m zbi(qtsWVCmzNTZ?2Hdgb`x?pi*?SpV_%^1hVB!WGNQ}R7lR3zr(IKjx+ zhNG%PXZxI{CXfliO#xiYU3x6Vl9*KjAvB%ZV_c^XHqjeF5QySX$lriMH0uj+P zgHCxULuJ!~n1OuMENd!@VV4LJwqB@?L(53}0+;V_P6e={$O5kZ@--p%OPZ#^2Zv5yN;PgA#5KUD3joP> z4op%gjh3bd-3B#=ahsu(kg zhozb=*e)cwme>2}o77{w7BRYf6X>%l(8HDj{KMVQT2Mp8)#~L?7nPL3U_AUJ3uOc2 z9I@ENv?SDALc-Yb+Lp!!wUtp%Lno?obZXDmVcb_Syl7oXy|j4oM)5)wLY7#WNgEk9 zAxG7xRPnNbf@?~Pqj6aYvOv77yiBN0Hd6(WAGL}4S#=Wtnbf=pHSKENs>)0T+mHNN z8hMW%vYI$h;b+{8*b)`Xtc`(FU4M?`w@1aOQh?Zlwb9l_85wIe`FC{&1ufwRYii^{ z6?}d~0Ur@WU`0U}oetLf};g$)Xz5Vk2`Fb3$^g^#2XM01l zuGT;|1U^K51H{5g!B{DHFasx#hIVj&)-NSuaGV@-2o_>FI|H@EeI)t*NB^&yEF`dE zn*a<1_K>ncS)o`xoDI$+B^GZDa~TM6Y!KjQ_G{Hc2v4iAEbP0wS*pYe6me~^h;wO8 z^VRirjezcuhj2gy$Xs49lejVF!y%S-=ugRBv}GC(jExKmM4i}{dg_&$b#5Ej`D*IZ zaS!_j6)q^bnx`wWwYDZ7?XKFT89JJ#gV&I-7dDk&Kzpb7Van!-7^qbvDP7~~=+5$-JE3wDPB#06SCkMrO zsS_rmnWX2kXU2=s_b!gPqv0#a$KR2L)_~nRzyr^7O-7kp%(8KPi@R$@z@no+=9!nC z^~>S}l26SvjWprF^qCgk*r|G6XR(BN=sW z`LH*%iGkXcnC2N}ke4DjPdT}GxV{RvyufMdtT^o)X=nyb5$EK5*jFb^Kon3?H9{%P z1ozs?=I)wy%K6Y*J8%#o;lR*^WS%KmW)MdVG9V&P`2-5DpfW7aRIriI5P`RpJ0S29 z`c}1kmAir{7J-RsE(BLH2Ndy4(yAiflIjDLRo0}o_pR*pdaxO~rzt9=l~Nx1?ltz- z5iUp+K@w`ScJxazAQO2TLg+UUAA%XD1LRLCsmmsE9oMO?D&N!0O4P3HR(&{t3R?N) zRC8-uI|7=By+!t0%;9igG($&G`@BS`)Z`**3t0{{1)xe&Op3sDt^lyfD)kgDRF7}S z6hfY7ahv%J;1uxi_MXIS=>)$%NoKswM!1dsBZ0eyiI^>eZH; zg%26Eu|m_(&Y*~cB-j6^%XU#3s_lcd?L4Mo7v@jul&egzVp2%UQf~N`r+p0Vt;Y5F3T46+3t%kf9XH`iC_HJfAQ6; z`{`ndhpWpkeCFdHe<{59a(nNC_s>86V!g|jrEG@|(1BRMGEGUntZhIEzDBy`9r>@? zj|c&S8X$j$jY_#UHAX|F*J3hxFyw$G$N=M#UD(4klkmS3La0%OrX)ZXXNMV+Q8!Q2 zHzwAdV_-eUIz=F&f*Uh0bdJ%#G?PHyIXm?I{_+|@#L~=%L%#(IR)6R2gsa~R2g8GqTu?fuG7-Mxc zcCMxFP_=RO7???HHl8%(j#?(r0&XW!>tM?UUqx$sMsLAlx$9Q%MWjIiVDJF2vd2!` zbA(ereA7uy9zIMaPi zk0EWpsLQYlD_*hQ^5{(=COL2%;OIJy6V{^6OD2i?FVDnIpvjbKoAVh|bjcCvG2gBa zVVdTduB(MDieL}cK1L}q z0kS`n(%IUMLY2d`C$R#Qhg2L9`kJ2<5e)f4lP9_PcGJf+6ScDv0-++qV`@xX_)5!;dd*3O2ftvgFo!2 z!^O?+^khF@-QM|)dG1c@e)X^Y*sx!|^3VVID~_9&T)hfRc!G(gmjR zFmuXM1goH6tb&~^lkw)}DvmcNryFAABnb2L6k=r}5rHRPdT^P!<}}IhOunjo;ev9w zQkKlL$FXr-cC>OU6+>ES2>n(5dd!2zgx7k}BQj-Q)IX@}kX;H;fCsD^`V>#w+Gexa zuBDxF)MKjzkr-=UCf5wZFPSct7-#4d-e@~oQ`BKjnq18k;RA-#QUHk~O9?X$IgA}( z5yKNTf1&rn%_T9y-^HKE`U2|;IJGvj552??q_1mAvfv=lo+*k}m2pSC)=jsh;<^ER z149GOf7fBI?tL#0iKGy+FOb*@q6OKTkR+f{gy)c01J6M&c1gJM6x&smJkt2E&(P)W z$P1=dr)zDJ>qx@lZkop!$CB3022b_@i6J#qx%Hr1dIOh06MWk=k&BqUK2rti3~{RUv)#nN%eM9|c3GI7YxCwcsi@LYd}D@et)-MV&IT)Q%x$A2H)K z8Xu!pWh5#sAxrRa6;kkLHD57^9qkDG6?O&wRtpN%OTb)`+{n=+g(%M`{{(cNZh(MV zW6_{ZKGl9d?JxJCcQ@1c+UvLf*T4E>SKs@Y^6-OS{`?oG51;+U^^>1^?xnx;V?Xm7 z|N1vRW_G(5UU>8B!F$i%B&)n_f9}VB<&D4m_TvXv`PTgWdh$*?ytsK`JUqQ=^Pm3U zU;OzW{LapVFaPiU&c}Y@vu)SzFAhWBkC76d*0whYbYz$|&6r}Fn=!%S>i(-fU=V-B z*(-=!q>4Tr$g6sjLf_QjcKvIO$)eNi^jyVIHRucZJvCU2+r}JbE@zF_HCdIg_!{)5 zK8c3hku;!i!>4kMiK?I;mtcepCT5)dML8%GU zZdLJ*xLVefTMuwg=!m8Q6) zG7*SGcj4eUTWpSO+v+9Z&sVZJQPuGJ+2m=O;#5l7o@^0y$GjP~ITdF?Ryd4h#+h$! zsBoufrBF11`oqBk#d)H8IIpH9_+d?;!)@;S!Qii3IhHXcwxT@Yr8(6)=f`fYSGsM&#C5b6IdDb%-5}B~9>y(gvAP82sm?L%)TA1lW$AF9c=+D9{UurZVbc=87jvr|E}2r&&h2n)X7FN6q+M7*aU1 z7}2am+DEvAA6|74WbY`yOqqnzTB_!o({fzad753@MHIFmPr~ek!_(%>!92$}O-O4K zwnTWLG)jY|feI~H+l++y#(pgY7Kl&)-}bJ7z1UDHskBsikQ!&_tFdNN1M(tom1rBx zXIUNdHdz|_U}_GKP$LpubiFOAV`n)K{Ky-n1-;H#lJ@go97Eb%tObCvvvg29zAo57!W31k>3hYtSYjW{-S_BMi^Tq%BuraasRr<^@M5utuACh z7#=vnVQXC{A|pvaYXuJ`-yGw7nD+ad8;sDz^;#A4Mq`&d=jYI*Gln?vkie>iC32-m z&chHGvXNok;Kp>%S40Qru+|Il^hJT>*l*V+iO&ZH2dNVmIpw)xqLLnPw`U}LygeCJ z9!cK+YtQ8`JpCN z{%NcrlXx*0buLkiR1_EFyc`Y_zaQRJ#?*w+2AY)p8r2alTza1XdP>b%R1cAgqzAuQ zN_2*>2PkinKsp7CscT!JeGN0@v&J?}(}7#mHESeB1HeR=b*K5QgAZ%_q3;8;sH%Tf z7g}f9e2B)Gc{+^K80F8R=Ojry%i#grqBcR)lM1@YqeHS0bR>WfLwnoM1tR^rp{CJc zix?wO6dKFZ938I{6RUG<%BE{NHB=djRMGM)Vu2G2q{{`hInIS@k!A>ikm_o7L_J+o zUWrrqXz*YRkvK{z!I(0%-Xic&4;I&>>)|Ai44BRW;$#_vV=-yHnfJ?Ly3k7+!-mL2 zFJeNHEJU9&h06Mgxf%KycZBOo(`={~l6klk&$qVRZZI~A}s@+2G5ZYWh4D=1)#b3)t&cqng zvy026}&ts%cpmSCjRirJL}`CU;gq>tkcb>?%sK@`e|Kn**ku>`ORPd%@=?4i=X&w zKSi-$F|$}~#1N99aTu9}K5N0yT5*(8K|($4a;R(2IEan)hHXYqNyTK%x=f%BxOn8F z7NIKOJj-dXyfB^cS{Mb@u1sgtA8QCfE+DW34+lNFlIV!KN0il$`5wOdN= zanw?SYu9LZm40Y2unez2i`o0WYl(K4=9%+NzZ%9kAi?C-D9@>wQ9rfB?h(n_wPXWT zxi+FfnrInbmB!M+C0N8DC|r23Y3MYZ z$V)XsUnXyR-bb?Hp*j+N7Xf0TE1a_>BH4qhpyZN+Vj3}w5;`FDs028Tnt&Vcx9ZaI zNR*d#I*=`4+jd+M9fE{RG58T|;#=Puq8et;$>@ol0+Lg9w)k4J_{Fl9T6`B7dx#i` z-rwwJVdC&Ygjz|o(*~yC8jnLJ)Nv|A%VK@IpGVn&IaPt;x`s}9(?BLuoPb$6srsW; zlF@jW)-FF=$$8&yhQa%3ii8LvA?enFNWVsm$@S1pf%a*LG*SGhVF}*Fum;!%38|Q1H^wF9wIf5XsZw149OO6%FKSh>|KwXOsmL zYE4>V1$KqbgPL`ggM`BvEx00ewNq&yQs#eM1C;e}4E&L&xf)~y5mm4oUo>s9a+%eV zLj(~O_7qj2(}bG_mpMOEhn0zYcvh+8n9@|{v(ruM+w03`U;FJpD1CbQGq;SpxW4${ z~yeK7H}_`MeE(bnmUSU)!8^>T2O+jz($?a$UUV1)K;yYqN84%SSDE< z@)(zX(;Ksd#xqXx>GD%41w$Hy6$6mM%zUA^J0kqk>xg%zwGp8XPDv%5tMI+1jZ@L? zJEHM~PQhiuGiaOT@Fn~?l7CGlhbessQ_QgXl#|QSfxdo*lWN%FS`#8bR-4f)s{7g^ zO_ouT-+DnGTu_HECdDeEtB2L)ay*AOicBYMvY*-X%DhrcXCd@Fa zKn1l>h$l_QAhjt#5Zz3|SF~{*x?s=|rH=YyxJd`a>g83znBHtRgRo&hRcqQv5o|PT za=Gn8r@W9Q5ro9PrahO`%@mc5tb0&?EJ?Q->KdrrYWq5e2)_gNskzk(DW*7=#b;er z9n7A^uWg$qwkxggWb03vNm-dZbrNR`Wr~sLhMxfZt7K{**TdmvnrBzmI8K3b%DFi@ z^cLH*%DL9|$|!ZA%T!yezH_9EElDOm+BO6MDYe5Oo8y;RmE)bIcCPn6%|K)~&`G-z z`j5(zWsEMK>K9)~>qM&0lf?GPNtxqXVj+UHBph97B_i1HMyRxhtVg}%W}aq?mIieb zgQNGuHefx|qyz^Fk%C2ABY(*IacTYja({a3RxiItt?;NAGxUcR6SAV}BCf;?rR~)` zA&7VGa=e;+-ked`RiPKOUDO<2RhZFNGt@bv`u7z6D{B)Br0zT^*^l|rAB7L`+)0jr z%v|8U?2BL~k|ncEcRbte8VOCU@*uFIk3c0pMDl^?xTpnVFoC{%@s$_IH{O8b{=(n* znOna3-Cz6XfAOt9zWwr-+x_&JlaKx7`)@xPKe$-0Z<_H0WZAy3Jw12ft;g@Uw%MF- z;*c+G`ES1aJ5MjKlbN25&#uif>_YVI<$U?oumA2(|H`kv`sI(aha^;$>}s-B9FrS> zGQdBYg<^)OFicP*r5>IsMg|OLC(InEDXY_2pWVV6tNn(ijw5?>RB+V^H0DAub3NR_ zt5=?DB9Cjuo+9CDd)LBqj4yYZGil7co2R>7=bLGshJL%K{Hq<*-N|SK{>DKq8iD@4 zYLSm~*!Ie_sR2;9NSTn7;I=T1^R-q*MiBv9(YYkQVKrKc24OCo5wD^Q=0O+9X&O6D z3E;T%t?L#vZ15Zt{4M1_dgAy2+4;R~rUKl%%!`v&P;g}x2a}GX@KlU1An|BJ^*Cqc zbP(C7Vr`PBLF{@5uZsePs8K>D$$=+>S`0UR?P~qyR7Xf!yCzm=(sD@CF+Co`UW0lO zvoEg}-c*_-JB7Q}Rx9q2T5rB&;{L`llF7f~f|~XdH&9;b8IiuZZJX266Be0{>uDlH zh~Y;H(bCa60HF=t!M98a0TCjt7f{$v?8L}q`9jH5ZOPMy@LxJtR{9bxv}}ZciA!<& z@w$mi8_+)KF0F}S71LOAgQbX(p|L3~iN7sT7PBmIE^{v9&8P=%=^V?8_Kv`8pnxkh zg(aabBGuWf(~{{Gz(lA740@a?))BS`-o3QJ4NhUI&0<35F`Lc0+)_@~W~w{{32R`< z#*A@qRvR<_co(*ZFO(~w<@}-o+c&Jis<(3jFUBuAvJ8E06WhCTfA`w$@SIM4j zT?z(V>=^o`Ba*H`Zwp)*o&?n13{Bi!t9PDbPlhte;ZQ&obyrFK$0Ap^BlQ5fHgEv= zT=>avt`Cj!oEA<7CW2c3O%C5Q)=oj3&x=hHn;@c6wqt@-(=;grFcGB4k8I}s!QXjq z<9j7e0;jqT5vO8lfVf~(#5d>wP)!x+noeu6k0|_T596V9mzqE;_Mn1! z!L`UJP^MvCP{zs(%gv8@cE0=akA3d(w?26C_)zBb-r?$Q*t~ss_6Ohj#xwWq?KE9A zvp?i`5id{H>vJ>w(&s<-=7;b9+0*yt!&MGpM(uU~ z@Z{YvHJfc;@_4e_cxTBDCQ5`Uit@P5Zu(9N&?U`qE$T%PWsgeStZ5BoePbG*iBA!Q z#t7emI$&;CLFI_}J;qA`)h%TL3gIJzTF}Fh7v5QL7gg}+z-4dnM-s|3UG)#Ml=OXH z%&dEbxm(`RHW^|nDJdfRpGTWm0)5ELV+uMTSTQXzl0JmwvHBOXlHb*YTc0X@=j72a z0C2*A2&q8LP_v~^fM*7&8v70D4JGe}6JsdSl121rq|Ygl%vy!*bVd@kC)kGOZEym7 zO_o_3U4|^Gn%30cNSCVezDOz+TPv={6jT_5hGso5@=UV&=gy)eMmF7tC=zuTHb=lh zZ3=o@tnWBdYF;ESDR6E^PlTkZmRi9hW_A1u4`$DhvQ7k}+%)Vo3IDux%=kp(@cGGu zRkda0FIggrWLf1EfFMrTz0(K}VDiMMAIb}1B=`hAh zdCJIV*QNDD=;te80~;=L@&j*?fWN)2SyAwi~X$30y+{m?J%;)iWz*xI!nZ$>mR z+4RmaNEfpkPCQdRKNqE)5xWGqsbWrC(`IgS9`MWt%7oGoqac8`!=}VFDP637LC!0Q zV?lV?+&>alDXkh;f$jj5BDLOE8zDr!{%J0l+C?n&C-0;3=9E%WHKUbU6d52yq5e5s zN*wo9Q^Ous^AuG9UlZd{Ffl`HNC@{=PcQG?Tx?(8j#u-W-+%DI`%jnh?9JW1{_e*< zym;p_%-_Czd|~MSd#*d#F5&iNSTDwt;%;rvW|Qw<-XG2Usk2YrZEyX=t=I2Py_?$o zruiUVKaKk`pZxLf{pRbR`s8cB@Y9$)}<73ER?3a7qE8p%8y5MoQTD2jgE zA#C6vnVswS$I0J15{ss_{KX7#eAh}YOBP`Qf)ukhaVle*c?Ad_NAqTYH(3DbI0Ini zbhC{Ca*>lduiGWJk?&6u%{;X`V zrF1r+%M$7(BecIBFGHaCSGn|f#f6>;Uq%b(xi)o^jE7NU4u@ev>Ijm@(gKVJB$bGR=*P?j>}*pRtxHfgF|t|y1_Vt zsa=65Bw`^KWQ8G)kzo>%>P*7>Q2(O>7yrZahnRxK zqQsNjl?IouJgrg+%9EP%8e>`Q>h&O|vWz1u0fBaG+w;T}P0i+<;s)zu^g}14Odyp2 zM}?3uEp*Pun7#Mhj}4!P%9^>~NSEY&WB*dfm4FH|a6z4cjbPIFj*-TiPER*3N6q@( zJf+rQAt76HX;{}-5|pOPquc>M%IeNL4DcO6T3qQ9HD zsV$>UNrindC!sHCSk&OIciX`Sl`8=U^2|w%EZk7~+89#`iJUu2r5;>6e=-B*z~ktY z%c6~&f0$yLHyczdGn-M%}w4vGSf+Sc3#{o_Uw+`zV*(x&eQby&5O1>-J8p3!j)Nm^7+p^ z7tY(Obr|gz{0nzpy!D5V-+Oj-@6pr!Z~gio?zXT0r(gWS_W6^zF8j-U%n_eELGyre zRj$KTFJP()7Zk75`i}hGk|-{&(ji04K2|uj1hc%0?lhrSjyJPhn_1V9j6@-3sVr$q zUGJqX7t=0)1qh-Rf691F%DF^o96_dyBBJJ$w?fgVW+FHfzU}P%TqUFGodo{0eHT^} z<>)2$Tp1JmMjtf+@k4Gmn-!}XOewvjq>AxHsUMFEOo`6Ct*mt@*|MCHgy9hJYrA=- zfOMReX{Ad`Vpg6mb+D+w&~+uipQkxdVA(Wdj!RZiwzAb0;&GV1fxPIv#=o`tW=dm` zx*v^Y)2*br0V}oHwt?dp2ut0J++?EAK#`}?d87%7K7m$R7vn95GGpa@Q{xJ`FqnZ> zIwJ)4l?a?J{;?Kc00K7vM}jWp|Bz#8MvMfW%qNozhhAB8=rK>UtqViw$oyfd(>7jB z*@Q5oEw8n#>rxJpJG)pzJIx{(imFlN{XpAr(XsQ;;vRxe1c*tNi``kNFi3eMKUj@Z zdMaNOAs^k&G*H{FX|As0sCu5Vu7~Rz5g@R~*%HbsHhr8C=iyY$VXS)Rv+oQ;0<>$th>5 zPEn?D6K*vbI3!+{X4y$KU^zF@PN>5SUW6oVP5p8Z@rW=ZRO?Em=v7m!?LnO`O03GZ zrRBj}hw2He4JntNB{pIJ0p(a!iIKHGut+a_(iW^W*#q9gfo(W@WB98f6zzDOGTsUrpVM(nOm7i zut`nETU#syRp_bhM(2r-M=OY=-^xjcd4`MzZCoI0m;%=h0FFD7OdUPOQrYS{B%2bn zxmNNqhAO;JG>TtWfZ`hXltETSf-pG&pYsRN&jD#GQ(KMF1p($z6UGI3C-}$nZt|t& zq<|1i`=lNF&|xe+O!SeBBRA+oK!eg{$i;JA$5)$~J98{8y%tEld0F`H;qQQ$WUBFa z`oy4dY(`}Sh!4~Yz1eOE4p^E0VwzIhZYku1#_Vtt=mLQ(Jxn>l1ekU0!)Bgyj294` zY~H{#hEvTxu@Mppr&+)8;FxPf98MN1ANaba zRQvOkj*S%x5Ci*EyX@DI$6YN#v6P!G>Bw{-b~A zA3XWN5C7;-{_Sfoz4q6?^s{e&@c!e&vSm}0MayvZbBXkKYN zm=6W4H?MqQs!zg^YDkKlW@(dwc0mV-8&nAaw@;z4*QiabS?q)#VV22YrX|oer>Cbq zed-JtjBdI{st;B21@e$_q5+RGH-OW!p&PItLN`@dqW6fSmJNnj6_E>KX;G0jgcZX! zNoWBw&szX)%dl)>Or7lz*NG@oPB4GFt^|t%N#0ga9NVTPsn8S%p592&A~gfIvLLl@ zMu!-XE4Mj+1o28$go#!!!V4e|l8)Iq`C;H3P_CllBKRdZ zPc*JI=vfiZWIo%`(1wNNlk*Uq11eN~A}pg^SXBCy()9`sXFr8m#Y)C6hDK;z^LV(H z#&!jy1BC$500^E`o$bDWII4VW1;dk#K2QI(FF1 zx&nJ48x&F{O5kA^QtEi-aCwPb)WzR+6n9C11FuY0MHc zmne^WJ?7-~1;a08fx<;wd~1AT>Qa)yMLBP*oXP~LnUbol2ena`uqNZ9#Itq*uslkQfkF|Y zljo@l#`Fo*)q{)w_$uIW7k5>QBCGvNcV-PoW75-S-r@pd{$D4NGtK&AKtoODE4gKesQ1-6wYE-+S--*7&!};Tu;s*CywS^=DuEl1=Nw zc=68Dd-tAR{P;!u*cUJU@b~`k?RS4*&YB-Q`u^47P|WcB>z}&&{4H`}8W8_9D$S;% zBNTU$;FT%#<{HSP*VObREFMSE6lVikCfy_~Qq)(J#q-2!-l$;*x*#i*TtfxWRfre@ zK@}7xaSESK21KF_s9rVoOsdU2Rk%wUjFf}=Hr7qw&yO(C!ZLTgGHyqpgW z%dy-P)OFjvO9}&kz z3RNaSi*lX;`ArsKYrP z7a}A&X1~8V9HxoP*(3u92npm&#-#!HKw$hzp>9qA#JRdcwSq~nJ)&?=#9mUVpgj6q z2;3u_L|>LhTFseiY+&zGrj&!$0{cQb0SkdQSO;g#lM-%k_TyADgi?y6PqePda~F0M zX23-(?G%O1Qb!2yW8l>qS8r~9fUff#=n8%k+F~VhXZ#{^a49_B_#KI#q>!`H+3;O@ zdeuZyzXL+7itzx&~Def777(7pDFS6wz2 zhr_nrt=ea`*C>!yv44t8QI7VyU~Dz-YQ)z!uJLVTfA{-O(N z8npbba&OfyUOFtmQ%Dlc_R7cMbHF*JNP}85t^Y#GVR4-h?F)oV(K}pnxw?$Ww`H82 zU7x!XLs+O*=_UPciuH-=}mjyZn}BAwYa{_yWym)XYWpro|r?% zU1)#)r+(>6XFvA;{K|jx#s}Y6O&Po4TW@^x8{hr2-C6hPpZY(15Wl^4aNO#|#nEGl45(?BQiviWQ`oC2+_bJSZwlvyYy=xswg+!`P3M(; zf=d(Or9=w)vsG20X6G6RqzZ=GxBxatHxd=B9Qt)2?4@_%{S~A=jni)1OV3>V(5-X2 zy1p75F%Q!`$tzns*i(n5gKJ&^oS-PB72!?8%Py5^~O&9%61g>I`oVllX7~ zOC^T^!fcv3xZaS_k|wYqOl+u?JY?8M{&}7;+xeLj(5D=wLau(eIwq^$?&u|Hyn>f` z$pN)WN-(-$50SrFCPy+O2q36s%A7fp^EW6L;ylYI*GAywT>G|_Q7F-|%H@%Oiqt_< zgrtbSm%1i0DJ1S8X=5Dv07MLbQ%Nt-i*3INl-Ek}LE#rk3o|-!GJsGGaa2G~D9@9a zPh%FcekFO3ZUuWL&OD5S#I>au`(dB~2C5YxTdf`~@ttB&mbFt^5LZ`g+TMH9`r6h9 zzpX4*a)KF*8?T@QmuF)K<*(8nu%P;HTq(;uPlVygpbBHYWZ#9HGb>Pa7$On?PtI`~ zHp8;y&Iji}0F6<5QAXBjT+faxe#d!S(Y579u?@r_;5rw3gtUX$84ft4C6dnrl@b=- zV7gTa+A&!IEAh+F4!Yp- zqD_oaJ!Q>QSqivjw-h=K7t{2Cx5cb2K~sd6Q3aF;(c@y_d9la?_@lvy)D0<>8q9-= zQ9I}7`JlcQUVD=H$OPBGExl2m<*Wt*t_32%@q~*Z9@nZbr*^ef^07rOKR`Am$>b$@ zLh!hBfp|*pdV-14etQ4Cx4-#~KmDse{Zq{DvZ4r0b{ZdQJ~*XzRL!464B*W$J%}D^GJ&XF$vqVd456$YS|^=^R7#dn^?+&+ zK{n7+)Dmt-re(G2M{#U>8FaLP|{g0o&_}#z!>bq~>`@~Ou;cxyI|M6#j?#H^*;o^b{q)m_0 zl2$S#(?A{if~cD&I0n5lZ>GArwZhcHyXOBW*;I=m*e4&eD0b;UwEAef5^r#j7Q3Ty*fLog4di82EsixGOM#kKm? z3ni;?C`d%}Fpy}U^U`laV!066i;_qII8xv#uapzOyUoUAs?Mu;} z(rE>f?g{|J5)?401*|NyrVvbr^jo$mM)j2ObTc@qWe<;uRN%54=|!M8l8b3=>^#rT zd5L%VnCF=`VBg`Kkb2@s{47hE3t4-5y!nu+r4;4niQ4o`MzXui^quf#5eUlR$Av+J z5uJve+isRzl*5<-6U?RrKR$Q3q?4)O9eJ* z;Z~>h4TC4zA>s;3TCtW&H))#1yKYfW9#bV(B+s3gVC01C_7lq{d#0t!RBsZOR!kgu z!)~XAtji_Ob8MX(PBv>IYGRxw=WQy{_g*_r#x6lEFd0TCCtI{$iXmgf;a7*Xw7)9(hPs5z$W#C^mOc?WK{-dB>_-(q{w$Y^q6k+!RemU_yqWa zW?ZQc3g4*V)an3WlLe7cWrUzxwb<8cNO}#?%;jA7Q$=2{o9%YH*-{?B6`FS2o$KAj zv!~B49zT3=UmGQYI>otmwzTL5R5~hq2hm!C_m#7)S3Tb)ubzfhW^+mXpw`vXvefz) zeqK?S!Z@a2v6}s(H3q~?6dRILMeGTW<&Um!t-!Nm4y2$B1?BS<&wOqy zxefU+7;^Z~+{NYLYhV4dKl{q>|EGWNZ+-6N7cRd4{)4Z+{he?BrME7uVb|Cf&Tf6- z?n~)#^TFZbN#q)S;r!*F`l%mz@9OEpZ~WfBefRr*iRbNZx7>Q})lWT|pM2%p|Kh?u zdH?>^H~;DX_0^Yd{}=z~|Lo&G{&~0U57S)Q=5)7dTbCxRUbX+6qtg^mD+%U7u4rs_ zbsMS;CdWz$6r~%v9A;b@WIJb3R(FCC(?# z3`kv{w0e*-LvhoZIgWYLr#ynHx^|rRlu?!_%o@JISr>fR&-)tO+bqIfo7Dwh62X4J z0I50540FJz2o`u!BoJc})*39=2PrwYmYS9D3ALO{M5zg{S~}F61nIgq?UdrM-NdEz zNMpHpIC;@JNOq~u0Z}O&8>hcisMTmDk0o#caffu(&ILX>;Qmzrxil5+5?a)^gk3?v zA}j$k@58*GRTEOkdRwz~I0H~Z0(~3>g!7cQn-fU@0Yh^l#X(waP<0i8_Jo;ob+V}t z;Hcwdo~31E6rf-^D?>tbGPYSIpAv_xuoUIr>YWSTdShqsv>ZZM)jQ&Pe8oh#u_$w( z^|qhWEMt|DeQ6os)}rQKFE#&0k5Po&_R6qBHLIDTxHzuf;Z0re)HKkUWVsM(QTO|$ zEW^-)L)dQ94?2SL6laD`j2bj1htTvr?G&^*FYDslLQH_2XEdkrkcR$*>2E|Gr4OH_)InBy2ztWvutH$Gl=zLmiqBmY-58JNNy1dVO`$t^wbm1l zv}RQbuyZs_ClZPw$bl8)V&iT!^ElV`c%7{3<1x)L)&QfbgQxe9Z8EJk1Wgb8eZ0VI z1$Fsit`@hf&@}5HR;%4{p5rw7K5Tp3jrGdtJfYlAE}uQUe%AMW?~l6g>i6dBRvJ&u zWsrh||DFkox=}GwDhGv^R><2z5V^!AER_o9QCSC*YEssgmhKv?t2Aj4#yL-BA5A&Ztd1rFVlXTN};nC&w7jFId$6oxx z^4;IRytw+6*FN(PzVz4Mxg6Hde)`Yf`}+N>51ZX`Har)u)Asb%olm@Ua(8=}^24W( zmL_cafd(|tW~OuwI(>lP08GP*S=HcrRE7iMND6{B7KBFtUqGP0nIb}uGz8&+!*;C^wo%1lN*fbaKCJ1#S;74Dd7u4Ur>~|6}A!Iio{SiZ}uRmRfE%#pO26z`60! z02JkdtY1mmf*_Qh&l-u8#j$-7CJ`e~RxhfdX#ti=KF86?=czO#PN=e%hkv2<8n&>B zbDZW$mSB*}JSDnTl+==Qlv;H0zMoJ@lJ!f^=aIz8M~$|a*m@#@?Gn>IJF01 z0_s|?i4Yz$a!{_e_0vRyF+7X~La+q)vl;0Qkn^J^iN=}pS=?TUYqs>?)ha!b8Od34 zNSu_7CX~2MeEYyz>JDoLssbdG=sFrDi6KIPRMm0gJdq6QJ>VZ3MhJb-gTOsUalMoP z9^6>g4gDWL12jo)rfCg^sJOPR7td!b~b4;Kn2HjWUJa+u(`i zE4hhDB1mIra)s$eN2uEXqE%c49SE7jOpbbI$P97T67ySG7kLj+*s%L3su-l76cNQ* zQgo>S(3Ckl2aL!cZW42zh*qw+ViqEiqT2+82B07HxY*H<)ogmGZc|z(VL$(#)jD%Y zD*y}4E6;)Uz%>%ps#{CBY)JQTufgZFuo(2fpe+*$S012LIsi~$L zR{ol)Ce3?o&LY(8Fk^BHLyB`30<8Q(h==^Q0@XF+h(^=PPk3fC%?Eq~jv;aIL*EaX zdwM_gTk0~V>G9*I#{r~GlQ|=zpc8-_R)9?PpcfWK0{hV)Z$L%k@{@DjNKRDTU z&HFKY+D~Sp(4!axWviX&?>uT;)w)=TrH`z%$LXI+ZmEUHb^VAbuW=}nx2R58Ee9M6 z>U~#kl)Q))G~$=$(3HDOc?DG(TLMs=&ng)+X{K*A!>(y`(d1XC0viDN>B3f~`3sk15lv5Op8Iu;j#%(KNmO2k6I; zbucI^R4fr$D(9b)(Tc!tFbf2!D*9x_Mk8Ll4Vj|=3$%J1VeaEt3VOpz)j+{6#9C7u zsR@^F-084Y8jbo5m$|0DfzVd73Ed8QuE0XcvQ%q4Ax;S1SEaWCi=}FaldKQAnxn>| zb6wNorm2*6aTuxaf9h4WL|WGXZ32ae#i)~;QVX$pq%tenm{ufe)Y^o4v}-p*x2*l) zChaFAtKM%Ki<17h;|R>nvE(B+%fGF=bE4*rY_e)nZ_G+N9nW<;&cyvI_76D_ib-tB zFve&>DdMP6)yx+1pdSO*KuK3TFnYt!}-~X@4GaUw7Ng+V?O7XRcN-3^vc^}(i0G>>$rBd0?BI_;@d*^F6Eni zM&yWB&4%EIk33LZ66*DA5TPY0?U zEhSb@4O#Z??X!VjYW(oM2aCCUc=7J<|H<;|C-1!R{yP`u=Jxj1K99gGZur5Ir|*?% z^lKY-GoHiiJlWs-?(aW;cDcLBr{?zG|GB^Y=)=oz{rO+MaqIGC9lh^A_rhoYqo4c_ zez^P7{pRY~n>Xv(55sG>8k$wX-{&MumJxwtu_m@v4KjueY^zAc+%fx;>p@j^_55du zkvjTFbkk6+d`XC@F(Ydm?Dc^VH_ zSI^9n&vw0pqDT*<{OCFfLvuOQOCkivkJK^93-L44I3k_&eO^&H`(fyOR~w7v+5yPV z%PesrKeB#)`in?9(^7(SrK(scEovHs@P^4e5__UjcRWh^M9i`xcADp?Uw2iasb*?r z0oEumM8(QR_y|WOkxbRGwO~{933PCd01Yq^%1!B~Y04=Leb1>7o7T7c!(0n_*QN9n zDB&j4G}#=+Irt7GBB!4!2olwAr9g%o+LdQIjC9em1oG}O&Q}}PT1<+E(DjEUN(bPl zI3Ckd5%{9Kz%t8|B0CV9zu;U&fiVwMI@G~A$jG_oB}oX|Hmk=Ktx8U{_waTIFT|Fs z;7j0;szd}LL1D0!s%sA0(93YLg(;Pd_pe(07NSSqQNwgd^&hw2a=!%|%l`36j zf9pNXQBilxcG#Sr4q#fm6*|8ugAEL=+i9#Z8NLdm$J{ zqGiVOvV^`<&=MmX@7N3rf@M6eQ_dhpw75dd%2J|LK?l9q&1$?<&#^FT_D@=>`5NNH z5=2oouZ~|by_t1ZCPKEuwiY4V!Hb>aDyq9zAZ3DbCJZEz{n^s4Ed;D;ETlVSL*kiO z&`oy(`(cTL?>C#F4;v^o2zK6xXO~x(`+!^aCy?NBDOWefGgA1+SqXa190n@zixXBW|gda5H{R$GK- z5COQlsiX=8f3A5(k_735Qtfe#)R#H>*sLacOERJQV!)+KJwPz8tOu;6VrDyvKB^a5 zvUe^}jgD0sOp7|>8tv^O7~(YXFV`UAhKaiOL+ta^$LV@h(t%=H%aY@)Tqa^@rwJUn zt^L*D$Lrd8ℜA45t(MBJ&}S0>sxxc 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

PWxk(}L%PvAhSdzN+ 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 Sy>!6<0000.json and bench/results/.md -""" - -import argparse -import dataclasses -import datetime as _dt -import glob -import json -import os -import platform -import statistics -import subprocess -import sys -import time -from pathlib import Path -from typing import Any, Optional - -import numpy as np - -# ----- optional deps (graceful) --------------------------------------------- -try: - import psutil # type: ignore - - _PROC = psutil.Process(os.getpid()) -except Exception: # pragma: no cover - optional - psutil = None - _PROC = None - -DEFAULT_COMPUTE_UNITS = ["CPU_AND_NE", "CPU_AND_GPU"] -COREML_EXTS = (".mlmodelc", ".mlpackage") - - -# ----- small helpers -------------------------------------------------------- -def git_sha() -> str: - try: - out = subprocess.check_output( - ["git", "rev-parse", "--short", "HEAD"], stderr=subprocess.DEVNULL - ) - return out.decode().strip() or "nogit" - except Exception: - return "nogit" - - -def coremltools_version() -> str: - try: - import coremltools as ct # noqa: WPS433 (local import is intentional) - - return getattr(ct, "__version__", "unknown") - except Exception as exc: # pragma: no cover - return f"import-failed: {exc}" - - -def dir_size_bytes(path: Path) -> int: - """Core ML models are directories (.mlmodelc / .mlpackage).""" - if path.is_file(): - return path.stat().st_size - total = 0 - for root, _dirs, files in os.walk(path): - for f in files: - try: - total += (Path(root) / f).stat().st_size - except OSError: - pass - return total - - -def sample_rss_mb() -> Optional[float]: - if _PROC is None: - return None - try: - return _PROC.memory_info().rss / (1024 * 1024) - except Exception: - return None - - -def detect_kind(expected_inputs: dict) -> str: - """Mirror the suite's detection WITHOUT importing comfy (keeps bench light).""" - if "time_ids" in expected_inputs and "text_embeds" in expected_inputs: - try: - n = expected_inputs["time_ids"]["shape"][1] - except Exception: - n = -1 - return "sdxl_base" if n == 6 else "sdxl_refiner" if n == 5 else "sdxl_unknown" - if "timestep_cond" in expected_inputs: - return "lcm" - return "sd15" - - -def make_inputs(expected_inputs: dict, rng: np.random.Generator) -> dict[str, np.ndarray]: - """Build synthetic fp16 inputs matching the model's expected shapes. - - Values are random; they do not affect latency in any meaningful way, and - we feed fp16 to match how CoreMLModelWrapper feeds the model at runtime. - """ - inputs: dict[str, np.ndarray] = {} - for name, spec in expected_inputs.items(): - shape = tuple(int(d) for d in spec["shape"]) - inputs[name] = rng.standard_normal(shape).astype(np.float16) - return inputs - - -def psnr(img_a: "np.ndarray", img_b: "np.ndarray") -> float: - mse = float(np.mean((img_a.astype(np.float64) - img_b.astype(np.float64)) ** 2)) - if mse == 0: - return 100.0 - return 20.0 * float(np.log10(255.0 / np.sqrt(mse))) - - -# ----- core measurement ----------------------------------------------------- -@dataclasses.dataclass -class Config: - label: str - model_path: str - compute_unit: str - - -def resolve_matrix(args) -> list[Config]: - configs: list[Config] = [] - - if args.matrix: - entries = json.loads(Path(args.matrix).read_text()) - for e in entries: - model = e["model"] - if not os.path.isabs(model): - if not args.models_dir: - raise SystemExit("matrix uses relative model names but --models-dir not given") - model = os.path.join(args.models_dir, model) - configs.append(Config(e.get("label", Path(model).stem), model, e.get("compute_unit", "CPU_AND_NE"))) - return configs - - if args.model: - for m in args.model: - for cu in args.compute_units: - configs.append(Config(f"{Path(m).stem}-{cu}", m, cu)) - return configs - - if args.models_dir: - found: list[str] = [] - for ext in COREML_EXTS: - found += glob.glob(os.path.join(args.models_dir, f"*{ext}")) - found = sorted(set(found)) - if not found: - raise SystemExit(f"No {COREML_EXTS} models found under {args.models_dir}") - for m in found: - for cu in args.compute_units: - configs.append(Config(f"{Path(m).stem}-{cu}", m, cu)) - return configs - - raise SystemExit("Provide one of: --matrix, --model, or --models-dir") - - -def measure(cfg: Config, args, rng: np.random.Generator) -> dict[str, Any]: - from python_coreml_stable_diffusion.coreml_model import CoreMLModel # local import: M2 only - - result: dict[str, Any] = { - "label": cfg.label, - "model_path": cfg.model_path, - "compute_unit": cfg.compute_unit, - "error": None, - } - path = Path(cfg.model_path) - if not path.exists(): - result["error"] = "model path does not exist" - return result - - sources = "compiled" if cfg.model_path.endswith(".mlmodelc") else "packages" - peak_rss = sample_rss_mb() - - try: - result["model_size_bytes"] = dir_size_bytes(path) - - t0 = time.perf_counter() - model = CoreMLModel(cfg.model_path, cfg.compute_unit, sources) - result["load_time_s"] = round(time.perf_counter() - t0, 4) - peak_rss = max(filter(None, [peak_rss, sample_rss_mb()]), default=None) - - expected = dict(model.expected_inputs) - result["kind"] = detect_kind(expected) - result["expected_inputs"] = {k: list(v["shape"]) for k, v in expected.items()} - - # Pre-generate all input sets so timing excludes array allocation. - warm_in = make_inputs(expected, rng) - step_inputs = [make_inputs(expected, rng) for _ in range(args.repeats)] - - # Warmup (first forward — ANE prepares its graph here). - t0 = time.perf_counter() - out = model(**warm_in) - result["warmup_ms"] = round((time.perf_counter() - t0) * 1000.0, 3) - if not (isinstance(out, dict) and "noise_pred" in out): - result["error"] = "unexpected output (no 'noise_pred')" - peak_rss = max(filter(None, [peak_rss, sample_rss_mb()]), default=None) - - # Steady-state forward latency. - times_ms: list[float] = [] - for inp in step_inputs: - t0 = time.perf_counter() - model(**inp) - times_ms.append((time.perf_counter() - t0) * 1000.0) - rss = sample_rss_mb() - if rss is not None: - peak_rss = rss if peak_rss is None else max(peak_rss, rss) - - result["forward_ms"] = { - "mean": round(statistics.fmean(times_ms), 3), - "std": round(statistics.pstdev(times_ms), 3) if len(times_ms) > 1 else 0.0, - "min": round(min(times_ms), 3), - "median": round(statistics.median(times_ms), 3), - "n": len(times_ms), - } - result["est_e2e_ms"] = round(result["forward_ms"]["median"] * args.assumed_steps, 1) - result["peak_rss_mb"] = round(peak_rss, 1) if peak_rss is not None else None - - except Exception as exc: # keep one bad model from killing the whole run - result["error"] = f"{type(exc).__name__}: {exc}" - - return result - - -def compute_quality(reference_dir: str, candidate_dir: str) -> dict[str, Any]: - try: - from PIL import Image # type: ignore - except Exception as exc: # pragma: no cover - return {"error": f"Pillow not available: {exc}"} - - ref = {p.name: p for p in Path(reference_dir).glob("*.png")} - cand = {p.name: p for p in Path(candidate_dir).glob("*.png")} - common = sorted(set(ref) & set(cand)) - pairs: dict[str, Any] = {} - for name in common: - try: - a = np.array(Image.open(ref[name]).convert("RGB")) - b = np.array(Image.open(cand[name]).convert("RGB")) - if a.shape != b.shape: - pairs[name] = {"error": f"shape mismatch {a.shape} vs {b.shape}"} - continue - pairs[name] = {"psnr_db": round(psnr(a, b), 2)} - except Exception as exc: - pairs[name] = {"error": str(exc)} - return { - "reference_dir": reference_dir, - "candidate_dir": candidate_dir, - "matched": len(common), - "pairs": pairs, - } - - -# ----- reporting ------------------------------------------------------------ -def to_markdown(report: dict[str, Any]) -> str: - lines = [ - f"# CoreMLSuite baseline — `{report['git_sha']}`", - "", - f"- timestamp: {report['timestamp']}", - f"- host: {report['host']['machine']} / {report['host']['system']} {report['host']['release']}", - f"- python: {report['host']['python']}", - f"- coremltools: {report['tool_versions']['coremltools']}, numpy: {report['tool_versions']['numpy']}", - f"- settings: repeats={report['settings']['repeats']}, " - f"input_seed={report['settings']['input_seed']}, " - f"assumed_steps={report['settings']['assumed_steps']}", - "", - "| label | kind | compute | size (MB) | load (s) | warmup (ms) | fwd median (ms) | fwd min (ms) | est e2e (ms) | peak RSS (MB) | error |", - "|---|---|---|---|---|---|---|---|---|---|---|", - ] - for r in report["results"]: - if r.get("error") and "forward_ms" not in r: - lines.append( - f"| {r['label']} | - | {r['compute_unit']} | - | - | - | - | - | - | - | {r['error']} |" - ) - continue - size_mb = round(r.get("model_size_bytes", 0) / (1024 * 1024), 1) - fwd = r.get("forward_ms", {}) - lines.append( - f"| {r['label']} | {r.get('kind','?')} | {r['compute_unit']} | {size_mb} | " - f"{r.get('load_time_s','-')} | {r.get('warmup_ms','-')} | {fwd.get('median','-')} | " - f"{fwd.get('min','-')} | {r.get('est_e2e_ms','-')} | {r.get('peak_rss_mb','-')} | " - f"{r.get('error') or ''} |" - ) - - q = report.get("quality") - if q and q.get("pairs"): - lines += ["", "## Quality (PSNR vs reference)", "", "| image | PSNR (dB) |", "|---|---|"] - for name, val in q["pairs"].items(): - lines.append(f"| {name} | {val.get('psnr_db', val.get('error','?'))} |") - - if report.get("notes"): - lines += ["", "## Notes", ""] + [f"- {n}" for n in report["notes"]] - return "\n".join(lines) + "\n" - - -def main(argv: Optional[list[str]] = None) -> int: - ap = argparse.ArgumentParser(description="CoreMLSuite Phase-1 baseline benchmark") - ap.add_argument("--matrix", help="path to matrix.json (list of {label, model, compute_unit})") - ap.add_argument("--models-dir", help="dir holding .mlmodelc/.mlpackage models") - ap.add_argument("--model", action="append", help="explicit model path (repeatable)") - ap.add_argument("--compute-units", nargs="+", default=DEFAULT_COMPUTE_UNITS, - help="compute units to sweep in auto/--model mode") - ap.add_argument("--repeats", type=int, default=30, help="steady-state forward passes") - ap.add_argument("--assumed-steps", type=int, default=20, - help="sampler steps used ONLY for the est_e2e_ms estimate") - ap.add_argument("--input-seed", type=int, default=0, help="seed for synthetic input generation") - ap.add_argument("--reference-images", help="dir of reference PNGs (e.g. MPS) for optional PSNR") - ap.add_argument("--candidate-images", help="dir of candidate PNGs (e.g. CoreML) for optional PSNR") - ap.add_argument("--out-dir", default="bench/results", help="where to write .json/.md") - args = ap.parse_args(argv) - - sha = git_sha() - rng = np.random.default_rng(args.input_seed) - configs = resolve_matrix(args) - - notes = [ - "forward_ms is the latency of a single Core ML UNet forward pass with synthetic " - "inputs; with classifier-free guidance one sampler step typically maps to one " - "batched forward (cond+uncond) — interpret est_e2e_ms accordingly.", - "peak_rss_mb is process RSS only and excludes ANE/wired GPU memory; treat as a floor.", - "quality_psnr is null unless --reference-images and --candidate-images are provided.", - "Latency varies run-to-run; 'min' is the most reproducible figure for comparisons.", - ] - if psutil is None: - notes.append("psutil not installed -> peak_rss_mb is null. `pip install psutil` to capture it.") - - print(f"[bench] git={sha} coremltools={coremltools_version()} configs={len(configs)}", file=sys.stderr) - - results = [] - for cfg in configs: - print(f"[bench] measuring {cfg.label} ({cfg.compute_unit}) ...", file=sys.stderr) - results.append(measure(cfg, args, rng)) - - report: dict[str, Any] = { - "git_sha": sha, - "timestamp": _dt.datetime.now(_dt.timezone.utc).isoformat(timespec="seconds"), - "host": { - "machine": platform.machine(), - "system": platform.system(), - "release": platform.release(), - "python": platform.python_version(), - }, - "tool_versions": {"coremltools": coremltools_version(), "numpy": np.__version__}, - "settings": { - "repeats": args.repeats, - "assumed_steps": args.assumed_steps, - "input_seed": args.input_seed, - "compute_units": args.compute_units, - }, - "results": results, - "notes": notes, - } - - if args.reference_images and args.candidate_images: - report["quality"] = compute_quality(args.reference_images, args.candidate_images) - - out_dir = Path(args.out_dir) - out_dir.mkdir(parents=True, exist_ok=True) - json_path = out_dir / f"{sha}.json" - md_path = out_dir / f"{sha}.md" - json_path.write_text(json.dumps(report, indent=2)) - md_path.write_text(to_markdown(report)) - - print(f"[bench] wrote {json_path}", file=sys.stderr) - print(f"[bench] wrote {md_path}", file=sys.stderr) - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/bench/scripts/convert_sd15.py b/bench/scripts/convert_sd15.py deleted file mode 100644 index 5e9388e..0000000 --- a/bench/scripts/convert_sd15.py +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python3 -"""bench/scripts/convert_sd15.py — Phase 1 baseline UNet conversion. - -Converts a SD1.5 checkpoint to a Core ML UNet (.mlmodelc) for the bench harness. -Bypasses the ComfyUI node graph and calls coreml_suite.converter directly so -the conversion is reproducible from a single command. - -Run from the repo root with the project venv: - .venv/bin/python bench/scripts/convert_sd15.py - -Environment overrides: - COMFY_DIR=... (default: ../..) - CKPT_NAME=v1-5-pruned-emaonly.safetensors - ATTN=SPLIT_EINSUM (SPLIT_EINSUM | SPLIT_EINSUM_V2 | ORIGINAL) - HEIGHT=512 WIDTH=512 BATCH_SIZE=1 - CONTROLNET=0 -""" -import logging -import os -import sys -from pathlib import Path - -logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") -log = logging.getLogger("convert_sd15") - -REPO_ROOT = Path(__file__).resolve().parents[2] -COMFY_DIR = Path(os.environ.get("COMFY_DIR", REPO_ROOT.parents[1])).resolve() - -if str(COMFY_DIR) not in sys.path: - sys.path.insert(0, str(COMFY_DIR)) -if str(REPO_ROOT) not in sys.path: - sys.path.insert(0, str(REPO_ROOT)) - -import folder_paths # noqa: E402 (ComfyUI module — needs sys.path above) - -# Ensure ComfyUI's folder_paths is pointed at the real install for checkpoints. -folder_paths.base_path = str(COMFY_DIR) -folder_paths.add_model_folder_path("checkpoints", str(COMFY_DIR / "models" / "checkpoints")) -folder_paths.add_model_folder_path("unet", str(COMFY_DIR / "models" / "unet")) - -from coreml_suite import converter # noqa: E402 -from coreml_suite.config import ModelVersion # noqa: E402 - - -def main() -> int: - ckpt_name = os.environ.get("CKPT_NAME", "v1-5-pruned-emaonly.safetensors") - attn = os.environ.get("ATTN", "SPLIT_EINSUM") - height = int(os.environ.get("HEIGHT", "512")) - width = int(os.environ.get("WIDTH", "512")) - batch_size = int(os.environ.get("BATCH_SIZE", "1")) - controlnet = os.environ.get("CONTROLNET", "0") not in ("0", "false", "False", "") - quantize_nbits = os.environ.get("QUANT_NBITS", "none") - - ckpt_path = folder_paths.get_full_path("checkpoints", ckpt_name) - if not ckpt_path: - log.error("checkpoint not found: %s under %s", ckpt_name, COMFY_DIR / "models" / "checkpoints") - return 2 - - from coreml_suite.core.naming import compose_out_name - - out_name = compose_out_name( - ckpt_name=ckpt_name, - batch_size=batch_size, - width=width, - height=height, - controlnet_support=controlnet, - attention_implementation=attn, - quantize_nbits=quantize_nbits, - ) - unet_out_path = converter.get_out_path("unet", out_name) - - log.info("repo_root=%s comfy_dir=%s", REPO_ROOT, COMFY_DIR) - log.info("ckpt=%s out_name=%s", ckpt_path, out_name) - log.info( - "attn=%s size=%dx%d batch=%d controlnet=%s quant=%s", - attn, width, height, batch_size, controlnet, quantize_nbits, - ) - - converter.convert( - ckpt_path=ckpt_path, - model_version=ModelVersion.SD15, - unet_out_path=unet_out_path, - batch_size=batch_size, - sample_size=(height // 8, width // 8), - controlnet_support=controlnet, - lora_weights=[], - attn_impl=attn, - config_path=None, - quantize_nbits=quantize_nbits, - ) - - target_path = converter.compile_model(out_path=unet_out_path, out_name=out_name, submodule_name="unet") - log.info("compiled: %s", target_path) - print(target_path) - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/bench/scripts/quant_matrix.py b/bench/scripts/quant_matrix.py deleted file mode 100644 index d35456a..0000000 --- a/bench/scripts/quant_matrix.py +++ /dev/null @@ -1,188 +0,0 @@ -#!/usr/bin/env python3 -"""bench/scripts/quant_matrix.py — Phase 6 quantization tradeoff matrix. - -For each variant in {none, 8, 6, 4}, load the corresponding .mlmodelc, -run a synthetic forward pass with a fixed seed, and record: - - on-disk size - - load time - - forward-pass median latency - - PSNR of noise_pred vs the `none` baseline (proxy for output drift) - -Writes a JSON + Markdown summary into bench/results/quant_matrix_.{json,md}. - -Assumes converted .mlmodelc files exist under $COMFY_DIR/models/unet/ -following the convention from coreml_suite.core.naming.compose_out_name -(e.g. v1-5-pruned-emaonly_1x512x512_se_unet.mlmodelc for the baseline, -v1-5-pruned-emaonly_1x512x512_se_q4_unet.mlmodelc for 4-bit, etc.). -""" -import json -import os -import statistics -import subprocess -import sys -import time -from pathlib import Path -from typing import Any - -import numpy as np - -REPO_ROOT = Path(__file__).resolve().parents[2] -COMFY_DIR = Path(os.environ.get("COMFY_DIR", REPO_ROOT.parents[1])).resolve() -MODELS_DIR = COMFY_DIR / "models" / "unet" - -VARIANTS = ["none", "8", "6", "4"] -CKPT_STEM = os.environ.get("CKPT_STEM", "v1-5-pruned-emaonly") -BATCH = int(os.environ.get("BATCH", "1")) -WIDTH = int(os.environ.get("WIDTH", "512")) -HEIGHT = int(os.environ.get("HEIGHT", "512")) -ATTN_SUFFIX = os.environ.get("ATTN_SUFFIX", "se") -COMPUTE_UNIT = os.environ.get("COMPUTE_UNIT", "CPU_AND_NE") -REPEATS = int(os.environ.get("REPEATS", "20")) -INPUT_SEED = int(os.environ.get("INPUT_SEED", "0")) - - -def variant_path(nbits: str) -> Path: - quant_suffix = f"_q{nbits}" if nbits != "none" else "" - name = f"{CKPT_STEM}_{BATCH}x{WIDTH}x{HEIGHT}_{ATTN_SUFFIX}{quant_suffix}_unet.mlmodelc" - return MODELS_DIR / name - - -def dir_size_bytes(path: Path) -> int: - total = 0 - for root, _dirs, files in os.walk(path): - for f in files: - try: - total += (Path(root) / f).stat().st_size - except OSError: - pass - return total - - -def psnr(a: np.ndarray, b: np.ndarray) -> float: - """Float PSNR for noise_pred tensors normalized to a [-1, 1]-ish range.""" - a = a.astype(np.float64) - b = b.astype(np.float64) - peak = max(float(np.max(np.abs(a))), float(np.max(np.abs(b))), 1.0) - mse = float(np.mean((a - b) ** 2)) - if mse == 0: - return 100.0 - return 20.0 * float(np.log10(peak / np.sqrt(mse))) - - -def measure_variant( - nbits: str, ref_output: "np.ndarray | None" -) -> "tuple[dict[str, Any], np.ndarray | None]": - from python_coreml_stable_diffusion.coreml_model import CoreMLModel - - path = variant_path(nbits) - result: dict[str, Any] = {"nbits": nbits, "path": str(path)} - if not path.exists(): - result["error"] = f"model not found at {path}" - return result, None - result["size_bytes"] = dir_size_bytes(path) - - rng = np.random.default_rng(INPUT_SEED) - t0 = time.perf_counter() - model = CoreMLModel(str(path), COMPUTE_UNIT, "compiled") - result["load_time_s"] = round(time.perf_counter() - t0, 4) - - expected = dict(model.expected_inputs) - fixed_inputs = { - name: rng.standard_normal(tuple(int(d) for d in spec["shape"])).astype(np.float16) - for name, spec in expected.items() - } - - # Warmup - out = model(**fixed_inputs) - times = [] - for _ in range(REPEATS): - # Fresh randomness per repeat for steady-state timing, but keep - # output capture deterministic (we run fixed_inputs at end). - live = { - name: rng.standard_normal(tuple(int(d) for d in spec["shape"])).astype(np.float16) - for name, spec in expected.items() - } - t0 = time.perf_counter() - model(**live) - times.append((time.perf_counter() - t0) * 1000.0) - result["fwd_ms_median"] = round(statistics.median(times), 3) - result["fwd_ms_min"] = round(min(times), 3) - - # Deterministic forward for PSNR comparison across variants. - deterministic_out = model(**fixed_inputs)["noise_pred"] - if ref_output is None: - result["psnr_db_vs_none"] = None - else: - result["psnr_db_vs_none"] = round(psnr(ref_output, deterministic_out), 2) - return result, deterministic_out - - -def main() -> int: - try: - sha = subprocess.check_output( - ["git", "-C", str(REPO_ROOT), "rev-parse", "--short", "HEAD"], - stderr=subprocess.DEVNULL, - ).decode().strip() - except Exception: - sha = "nogit" - - out_dir = REPO_ROOT / "bench" / "results" - out_dir.mkdir(parents=True, exist_ok=True) - - print(f"[quant-matrix] git={sha} compute_unit={COMPUTE_UNIT} repeats={REPEATS}", file=sys.stderr) - - rows: list[dict[str, Any]] = [] - ref_output: np.ndarray | None = None - for v in VARIANTS: - print(f"[quant-matrix] measuring nbits={v} ...", file=sys.stderr) - try: - row, out_tensor = measure_variant(v, ref_output) - if v == "none": - ref_output = out_tensor - rows.append(row) - except Exception as exc: - rows.append({"nbits": v, "error": f"{type(exc).__name__}: {exc}"}) - - baseline_size = next((r["size_bytes"] for r in rows if r.get("nbits") == "none" and "size_bytes" in r), None) - for r in rows: - if "size_bytes" in r and baseline_size: - r["size_ratio_vs_none"] = round(r["size_bytes"] / baseline_size, 3) - - report = { - "git_sha": sha, - "compute_unit": COMPUTE_UNIT, - "repeats": REPEATS, - "input_seed": INPUT_SEED, - "ckpt_stem": CKPT_STEM, - "rows": rows, - } - (out_dir / f"quant_matrix_{sha}.json").write_text(json.dumps(report, indent=2)) - - lines = [ - f"# Quantization tradeoff matrix — `{sha}`", - "", - f"- compute unit: {COMPUTE_UNIT}", - f"- repeats per variant: {REPEATS}", - f"- ckpt: {CKPT_STEM}, {BATCH}x{WIDTH}x{HEIGHT}, attn={ATTN_SUFFIX}", - "", - "| nbits | size (MB) | size vs none | load (s) | fwd median (ms) | fwd min (ms) | PSNR vs none (dB) | error |", - "|---|---|---|---|---|---|---|---|", - ] - for r in rows: - if "error" in r and "size_bytes" not in r: - lines.append(f"| {r.get('nbits','?')} | - | - | - | - | - | - | {r['error']} |") - continue - size_mb = round(r.get("size_bytes", 0) / (1024 * 1024), 1) - lines.append( - f"| {r['nbits']} | {size_mb} | {r.get('size_ratio_vs_none','-')} | " - f"{r.get('load_time_s','-')} | {r.get('fwd_ms_median','-')} | " - f"{r.get('fwd_ms_min','-')} | {r.get('psnr_db_vs_none') if r.get('psnr_db_vs_none') is not None else '-'} | " - f"{r.get('error','')} |" - ) - (out_dir / f"quant_matrix_{sha}.md").write_text("\n".join(lines) + "\n") - print(f"[quant-matrix] wrote {out_dir / f'quant_matrix_{sha}.md'}", file=sys.stderr) - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/bench/scripts/smoke_image.py b/bench/scripts/smoke_image.py deleted file mode 100644 index 74fa1fa..0000000 --- a/bench/scripts/smoke_image.py +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/env python3 -"""bench/scripts/smoke_image.py — Phase 1 known-good-workflow image smoke test. - -Posts a Stable Diffusion 1.5 workflow (CLIP → Core ML UNet → VAE → PNG) to a -locally running ComfyUI server, waits for the queue to drain, then copies the -generated CoreML + MPS reference images into bench/results/smoke// -and writes a small report.json with the PSNR between them. This is the Phase 1 -"known-good workflow still produces an image [M2-ANE]" artifact. - -Prereqs: - - ComfyUI server running locally on $COMFY_HOST:$COMFY_PORT (default - http://localhost:8188), started against the project .venv so it picks up - the pinned ml-stable-diffusion + Core ML Suite nodes. - - The Core ML UNet has already been converted (see convert_sd15.py); the - workflow's Core ML Converter node will skip if the .mlmodelc exists. - -Run from the repo root: - .venv/bin/python bench/scripts/smoke_image.py -""" -import json -import os -import shutil -import subprocess -import sys -import time -import urllib.error -import urllib.request -from pathlib import Path - -import numpy as np -from PIL import Image - -REPO_ROOT = Path(__file__).resolve().parents[2] -COMFY_DIR = Path(os.environ.get("COMFY_DIR", REPO_ROOT.parents[1])).resolve() -COMFY_HOST = os.environ.get("COMFY_HOST", "localhost") -COMFY_PORT = int(os.environ.get("COMFY_PORT", "8188")) -COMFY_URL = f"http://{COMFY_HOST}:{COMFY_PORT}" - -CKPT_NAME = os.environ.get("CKPT_NAME", "v1-5-pruned-emaonly.safetensors") -WORKFLOW_PATH = Path(os.environ.get( - "WORKFLOW_PATH", - REPO_ROOT / "tests" / "integration" / "workflows" / "e2e-1.5-basic-conversion.json", -)) -TIMEOUT_S = int(os.environ.get("TIMEOUT_S", "1800")) # 30min cap - - -def git_sha() -> str: - try: - return subprocess.check_output( - ["git", "-C", str(REPO_ROOT), "rev-parse", "--short", "HEAD"], - stderr=subprocess.DEVNULL, - ).decode().strip() - except Exception: - return "nogit" - - -def http_get_json(path: str) -> dict: - with urllib.request.urlopen(f"{COMFY_URL}{path}", timeout=60) as r: - return json.loads(r.read().decode()) - - -def http_post_json(path: str, payload: dict) -> dict: - data = json.dumps(payload).encode("utf-8") - req = urllib.request.Request( - f"{COMFY_URL}{path}", data=data, - headers={"Content-Type": "application/json"}, method="POST", - ) - # Long timeout: first POST blocks while the server warms model loaders + - # the Core ML compile-on-load pass (~60-90s on a cold cache). - with urllib.request.urlopen(req, timeout=300) as r: - return json.loads(r.read().decode()) - - -def psnr(a: np.ndarray, b: np.ndarray) -> float: - mse = float(np.mean((a.astype(np.float64) - b.astype(np.float64)) ** 2)) - if mse == 0: - return 100.0 - return 20.0 * float(np.log10(255.0 / np.sqrt(mse))) - - -def find_image(out_dir: Path, prefix: str) -> Path | None: - matches = sorted(out_dir.glob(f"{prefix}_*.png"), reverse=True) - return matches[0] if matches else None - - -def main() -> int: - sha = git_sha() - out_root = REPO_ROOT / "bench" / "results" / "smoke" / sha - out_root.mkdir(parents=True, exist_ok=True) - - workflow = json.loads(WORKFLOW_PATH.read_text()) - # Point both checkpoint nodes at the maintainer's available SD1.5 ckpt. - for nid in ("4", "10"): - if nid in workflow: - workflow[nid]["inputs"]["ckpt_name"] = CKPT_NAME - # Fixed seed for reproducibility (Phase 1 baseline). - seed = int(os.environ.get("SEED", "42")) - for nid in ("3", "11"): - if nid in workflow and "seed" in workflow[nid].get("inputs", {}): - workflow[nid]["inputs"]["seed"] = seed - # Phase 1 only needs a Core ML image. The reference MPS branch (nodes - # 3/8/9) trips a known MPS f16/f32 mismatch on torch 2.0.1 + macOS 26+, - # which would crash the whole server. Strip those nodes so the queue - # only runs the Core ML path; SKIP_MPS=0 to opt back in. - if os.environ.get("SKIP_MPS", "1") not in ("0", "false", "False"): - for nid in ("3", "8", "9"): - workflow.pop(nid, None) - - print(f"[smoke] git={sha} server={COMFY_URL} ckpt={CKPT_NAME} seed={seed}", file=sys.stderr) - - resp = http_post_json("/prompt", {"prompt": workflow}) - print(f"[smoke] queued: {resp}", file=sys.stderr) - - t0 = time.time() - while True: - if time.time() - t0 > TIMEOUT_S: - print(f"[smoke] TIMEOUT after {TIMEOUT_S}s waiting for queue drain", file=sys.stderr) - return 2 - try: - q = http_get_json("/prompt") - remaining = q.get("exec_info", {}).get("queue_remaining", -1) - if remaining == 0: - break - except (urllib.error.URLError, json.JSONDecodeError) as exc: - print(f"[smoke] poll error: {exc}", file=sys.stderr) - time.sleep(2) - - comfy_out = COMFY_DIR / "output" - coreml_png = find_image(comfy_out, "E2E-1.5-CoreML") - if coreml_png is None: - print(f"[smoke] missing Core ML image under {comfy_out}", file=sys.stderr) - return 3 - coreml_dst = out_root / coreml_png.name - shutil.copy2(coreml_png, coreml_dst) - - mps_png = find_image(comfy_out, "E2E-1.5-MPS") - mps_dst = None - psnr_db = None - if mps_png is not None: - mps_dst = out_root / mps_png.name - shutil.copy2(mps_png, mps_dst) - a = np.array(Image.open(coreml_dst).convert("RGB")) - b = np.array(Image.open(mps_dst).convert("RGB")) - if a.shape == b.shape: - psnr_db = round(psnr(a, b), 2) - - report = { - "git_sha": sha, - "seed": seed, - "ckpt_name": CKPT_NAME, - "workflow": str(WORKFLOW_PATH.relative_to(REPO_ROOT)), - "coreml_image": str(coreml_dst.relative_to(REPO_ROOT)), - "mps_image": str(mps_dst.relative_to(REPO_ROOT)) if mps_dst else None, - "psnr_db": psnr_db, - "wall_seconds": round(time.time() - t0, 1), - } - (out_root / "report.json").write_text(json.dumps(report, indent=2)) - print(json.dumps(report, indent=2)) - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/constraints/comfy-ceiling.txt b/constraints/comfy-ceiling.txt index c582dec..013d2b6 100644 --- a/constraints/comfy-ceiling.txt +++ b/constraints/comfy-ceiling.txt @@ -3,14 +3,14 @@ # # ComfyUI's requirements.txt requests bare `torch`/`torchvision`/`torchaudio` # and `numpy>=1.25.0`, which would float past the versions coremltools 9 / -# apple-ml-stable-diffusion have been validated against (see docs/deps.md). +# apple-ml-stable-diffusion have been validated against. # These constraints cap the resolution so the canary keeps testing the same # toolchain the suite actually ships. # # If upstream ComfyUI ever hard-requires something beyond these bounds, the # install FAILS — and that failure is the signal we want: it means the host # outgrew the pinned toolchain and coremltools / ml-stable-diffusion need a -# deliberate bump (a Phase 5-style upgrade), not a silent float. +# deliberate bump, not a silent float. torch>=2.7,<2.8 torchvision>=0.22,<0.23 torchaudio>=2.7,<2.8 diff --git a/coreml_suite/controlnet.py b/coreml_suite/controlnet.py index 141b471..dbac4c4 100644 --- a/coreml_suite/controlnet.py +++ b/coreml_suite/controlnet.py @@ -1,4 +1,4 @@ -"""Phase 3 compatibility shim — re-exports from coreml_suite.core.controlnet.""" +"""Compatibility shim — re-exports from coreml_suite.core.controlnet.""" from coreml_suite.core.controlnet import ( chunk_control, expand_inputs, diff --git a/coreml_suite/converter.py b/coreml_suite/converter.py index c2a5b55..1af74cd 100644 --- a/coreml_suite/converter.py +++ b/coreml_suite/converter.py @@ -307,8 +307,8 @@ def convert_unet( gc.collect() if quantize_nbits != "none": - # Phase 6: opt-in k-means weight palettization. Default path - # (quantize_nbits="none") is byte-for-byte unchanged from Phase 5. + # Opt-in k-means weight palettization. The default path + # (quantize_nbits="none") leaves the traced UNet untouched. from coremltools.optimize.coreml import ( OpPalettizerConfig, OptimizationConfig, diff --git a/coreml_suite/core/controlnet.py b/coreml_suite/core/controlnet.py index 0f063d3..72a1ba5 100644 --- a/coreml_suite/core/controlnet.py +++ b/coreml_suite/core/controlnet.py @@ -1,7 +1,7 @@ """Pure helpers around the ControlNet residual inputs of the Core ML UNet. -Moved from coreml_suite.controlnet in Phase 3. Behavior unchanged — Phase 2 -characterization tests cover shapes, dtype (fp16), and zero-fill fallback. +Re-exported by coreml_suite.controlnet. Characterization tests cover +shapes, dtype (fp16), and zero-fill fallback. """ from itertools import chain from math import ceil diff --git a/coreml_suite/core/inputs.py b/coreml_suite/core/inputs.py index 9263a47..b875c5a 100644 --- a/coreml_suite/core/inputs.py +++ b/coreml_suite/core/inputs.py @@ -1,7 +1,6 @@ """Pure transform from torch sampler inputs to Core ML UNet kwargs. -Moved from coreml_suite.models in Phase 3. Behavior unchanged — Phase 2 -characterization tests cover SD1.5 / SDXL base / SDXL refiner / LCM +Characterization tests cover SD1.5 / SDXL base / SDXL refiner / LCM variants and the chunked-batch fan-out. """ import numpy as np diff --git a/coreml_suite/core/latents.py b/coreml_suite/core/latents.py index 58f72ce..d6ad528 100644 --- a/coreml_suite/core/latents.py +++ b/coreml_suite/core/latents.py @@ -1,8 +1,8 @@ """Pure batch-chunking helpers for Core ML's fixed-shape UNet inputs. -Moved from coreml_suite.latents in Phase 3. Behavior unchanged — Phase 2 -characterization tests cover the contract (padding-zero regions, truncation -in merge_chunks, identity-passthrough when shape already matches). +Re-exported by coreml_suite.latents. Characterization tests cover the +contract (padding-zero regions, truncation in merge_chunks, +identity-passthrough when shape already matches). """ import torch diff --git a/coreml_suite/core/naming.py b/coreml_suite/core/naming.py index 16f2024..71d186d 100644 --- a/coreml_suite/core/naming.py +++ b/coreml_suite/core/naming.py @@ -1,6 +1,6 @@ """Pure out_name composition for the Core ML UNet artifact. -Extracted from CoreMLConverter.convert in Phase 3 so the filename contract +Extracted from CoreMLConverter.convert so the filename contract can be tested + reused without instantiating the node. The string is the cache key: every workflow that references a converted .mlpackage depends on it staying byte-for-byte identical. @@ -13,8 +13,8 @@ ATTN_SUFFIX = { "ORIGINAL": "orig", } -# Phase 6: palettization bits. "none" = no quantization (default; keeps the -# pre-Phase-6 filename intact so existing workflows still resolve their +# Palettization bits. "none" = no quantization (default; keeps the +# unquantized filename intact so existing workflows still resolve their # cached .mlpackage). Numeric values append a `_q` suffix. QUANT_NBITS_VALUES = ("none", "8", "6", "4") @@ -32,7 +32,7 @@ def compose_out_name( ) -> str: """Build the .mlpackage stem from convert() parameters. - Locked behaviour (Phase 2 characterization tests): + Locked behaviour (characterization tests): - first '.' in ckpt_name wins (`a.b.c.safetensors` -> `a`) - spaces collapse to underscores - LoRA names are taken stem-only, sorted, joined with '_' and @@ -41,7 +41,7 @@ def compose_out_name( - controlnet adds `_cn` - attn suffix is `_se` | `_se2` | `_orig` - Phase 6 addition: + Quantization: - quantize_nbits "none" (default) appends nothing — existing unquantized .mlpackages keep the old filename - "4" / "6" / "8" appends `_q` after the attn suffix diff --git a/coreml_suite/core/sdxl.py b/coreml_suite/core/sdxl.py index 7ea16eb..fd1e8d2 100644 --- a/coreml_suite/core/sdxl.py +++ b/coreml_suite/core/sdxl.py @@ -1,9 +1,9 @@ """Pure SDXL detection + time_ids/text_embeds assembly. -Moved from coreml_suite.models in Phase 3. The framework-coupled adapter -`add_sdxl_model_options` lives in models.py and now delegates the math -here. Phase 2 characterization tests cover base (len 6) vs refiner -(len 5) and the closure free-vars produced by `sdxl_model_function_wrapper`. +The framework-coupled adapter `add_sdxl_model_options` lives in models.py +and delegates the math here. Characterization tests cover base (len 6) vs +refiner (len 5) and the closure free-vars produced by +`sdxl_model_function_wrapper`. """ import torch diff --git a/coreml_suite/latents.py b/coreml_suite/latents.py index d2896df..b3b55d6 100644 --- a/coreml_suite/latents.py +++ b/coreml_suite/latents.py @@ -1,4 +1,4 @@ -"""Phase 3 compatibility shim — re-exports from coreml_suite.core.latents.""" +"""Compatibility shim — re-exports from coreml_suite.core.latents.""" from coreml_suite.core.latents import chunk_batch, merge_chunks __all__ = ["chunk_batch", "merge_chunks"] diff --git a/coreml_suite/models.py b/coreml_suite/models.py index f4bc360..358d7b1 100644 --- a/coreml_suite/models.py +++ b/coreml_suite/models.py @@ -1,7 +1,7 @@ """Framework-coupled glue between Core ML UNets and ComfyUI's sampler stack. Pure math (CoreMLInputs, SDXL detection, time_ids/text_embeds assembly, -sdxl_model_function_wrapper) lives in coreml_suite.core.* after Phase 3. +sdxl_model_function_wrapper) lives in coreml_suite.core.*. This module is what touches comfy.*: model_base, ModelPatcher, the diffusion_model wrapper, and the maintainer-facing add_sdxl_model_options adapter. diff --git a/coreml_suite/nodes.py b/coreml_suite/nodes.py index 96f1d78..00025fc 100644 --- a/coreml_suite/nodes.py +++ b/coreml_suite/nodes.py @@ -249,12 +249,11 @@ class CoreMLConverter(COREML_NODE): "controlnet_support": ("BOOLEAN", {"default": False}), }, "optional": { - # Phase 6: k-means weight palettization. Kept optional so - # workflows saved before Phase 6 still validate — ComfyUI - # rejects a prompt that omits any `required` input. When - # omitted it defaults to "none", identical to pre-Phase-6 - # behavior and filename, so existing cached .mlpackages - # still resolve. + # k-means weight palettization. Kept optional so workflows + # that omit it still validate — ComfyUI rejects a prompt that + # omits any `required` input. When omitted it defaults to + # "none", identical to unquantized behavior and filename, so + # existing cached .mlpackages still resolve. "quantize_nbits": (list(QUANT_NBITS_VALUES), {"default": "none"}), "lora_params": ("LORA_PARAMS",), }, diff --git a/docs/ci-m2.md b/docs/ci-m2.md deleted file mode 100644 index dee42cc..0000000 --- a/docs/ci-m2.md +++ /dev/null @@ -1,137 +0,0 @@ -# Self-hosted M2 runner — setup - -Tier 2 (ANE + integration + bench) runs on a self-hosted GitHub Actions -runner registered against the maintainer's M-series Mac. Hosted macOS -runners on GitHub do not expose the Apple Neural Engine, so the ANE -half of the matrix has to live on real hardware. - -## One-time runner setup - -1. **Install dependencies on the Mac.** Python 3.12.x (matching the - `requires-python = ">=3.12,<3.13"` pin), `uv`, and `git`. The workflow - clones and manages the ComfyUI checkout itself (see step 3), so you do - not pre-install ComfyUI. - - ```bash - brew install python@3.12 uv git - ``` - -2. **Register the runner.** From the repo Settings → Actions → Runners - → New self-hosted runner, follow the macOS-ARM instructions. Add the - labels exactly: `self-hosted`, `macOS`, `ARM64`, `coreml` (the - workflow `runs-on` clause requires all four). - - ```bash - mkdir ~/actions-runner && cd ~/actions-runner - curl -O -L https://github.com/actions/runner/releases/download/v2.317.0/actions-runner-osx-arm64-2.317.0.tar.gz - tar xzf actions-runner-osx-arm64-2.317.0.tar.gz - ./config.sh --url https://github.com// \ - --token \ - --labels self-hosted,macOS,ARM64,coreml \ - --name "$(hostname)-m2" - ./svc.sh install && ./svc.sh start # run as a launchd service - ``` - -3. **Persist `COMFY_DIR` for the runner.** Point it at a **dedicated, - runner-owned** ComfyUI directory — **not** your personal dev checkout. - The workflow does `git reset --hard` on it and rewrites its - `custom_nodes/ComfyUI-CoreMLSuite` symlink, so it must be disposable. - Add it to the runner's `.env`: - - ```bash - echo 'COMFY_DIR=/Users//actions-runner/comfyui' >> ~/actions-runner/.env - ``` - - You don't have to clone ComfyUI yourself: the `Set up ComfyUI checkout` - step clones it on first run, checks out the right ref (latest or the - pinned SHA — see *ComfyUI version under test*), installs ComfyUI's deps, - and symlinks `$COMFY_DIR/custom_nodes/ComfyUI-CoreMLSuite` → - `$GITHUB_WORKSPACE` so the server always loads the checked-out PR. If - `COMFY_DIR` is a real node directory rather than a symlink, the step - fails loudly instead of deleting it. - -4. **Provide the SD1.5 checkpoint.** Drop - `v1-5-pruned-emaonly.safetensors` (~4 GB) into - `$COMFY_DIR/models/checkpoints/`. This is the one heavy artifact that - stays as a runner-local cache; everything derived from it (the - `.mlmodelc` UNet variants) is converted automatically by the - `Convert UNet variants if missing` step and cached across runs. Override - the filename with `CKPT_NAME` in the runner `.env` if needed. - - Order is free: do this before or after the first run. The setup step - initialises the ComfyUI repo **in place** (`git init`, not `git clone`, - which would refuse a non-empty directory) and uses `checkout -f`, which - never removes untracked files — so a checkpoint you dropped in first is - preserved. - -## Triggers - -The Tier 2 workflow (`.github/workflows/tier2.yml`) runs: - -- **On PR label `run-m2`** — maintainers add the label to opt a PR - into the ANE lane (the runner is not free; default off). -- **Nightly at 04:00 UTC** via `schedule:`. -- **Manually** via the workflow_dispatch button. - -## ComfyUI version under test - -Tier 2 runs a **hybrid** strategy, keyed on the trigger, so the suite tracks a -moving host without making PRs flaky to overnight upstream drift: - -| Trigger | ComfyUI ref | ComfyUI deps | -|---|---|---| -| **schedule** (nightly) | latest `origin/master` | its own `requirements.txt`, capped by `constraints/comfy-ceiling.txt` | -| **PR label `run-m2`** / **dispatch** | pinned `requires-comfyui` SHA | the frozen `comfy` uv group | - -- **Nightly = canary.** It pulls the latest ComfyUI and installs *ComfyUI's - own* dependency set. The frozen `comfy` uv group cannot track a moving host - by hand (a latest checkout needs e.g. `comfyui-frontend-package==1.44.19`, - `comfy_aimdo`, `alembic`, `blake3` that an older pin never listed), so latest - mode defers to upstream's `requirements.txt`. Upstream API or dependency - breakage surfaces here, in CI, instead of in a user's install. -- **PR / dispatch = reproducible gate.** It checks out the pinned - `requires-comfyui` SHA and uses the frozen `comfy` group — the known-good - combination — so a PR fails for its own reasons, not because ComfyUI moved. - -The resolved ComfyUI SHA and mode are written to the job step summary (and -`COMFY_SHA` in the env), so any failure names the exact commit it hit. - -**The toolchain ceiling is deliberate.** `constraints/comfy-ceiling.txt` caps -`torch<2.8` / `numpy<2` / `coremltools 9` while installing latest ComfyUI's -requirements. If upstream ever hard-requires something past those bounds the -nightly install *fails on purpose* — that is the signal that coremltools / -`ml-stable-diffusion` need a deliberate Phase-5-style bump, not a silent float -that would break the ANE path (see `docs/deps.md`). - -`pyproject.toml`'s `requires-comfyui` is both the PR-gate ref and the -published-compatibility declaration for the Comfy registry. Bump it once a -newer ComfyUI is validated (the nightly canary is what tells you it's safe). - -## Artifacts - -- Bench JSON/MD are uploaded as `bench-results`. -- M2 golden image regressions surface as test failures in - `tests/m2/test_golden_image.py`; diff PNG is written next to the - golden under `tests/m2/_latest_generated.png` (gitignored). - -## When the runner is down - -If the maintainer's Mac is offline, the workflow queues until the -runner comes back. Cancel a stuck run from the Actions UI; the gate is -not blocking by default (Tier 0 + Tier 1 carry PR status). Tier 2 is -"good to merge once it goes green," not "blocked until then." - -## Replacing the integration e2e - -The legacy `tests/integration/test_basic_conversion_1_5.py` checked -CoreML output against an MPS reference image at PSNR > 25 dB. That -reference path is broken on macOS 26.x with torch 2.0.1 (see Phase 1 -Gate report). Phase 4 moves the same coverage to -`tests/m2/test_golden_image.py`, which: - -- runs the Core ML pipeline only (no MPS reference), -- asserts SHA256 against `tests/m2/goldens/sd15_seed42.sha256`, -- falls back to PSNR ≥ 40 dB if the hash drifts. - -This removes the human-eyeball dependency: a regression is now a -numerical fail, not a "looks different to me." diff --git a/docs/deps.md b/docs/deps.md deleted file mode 100644 index 3606707..0000000 --- a/docs/deps.md +++ /dev/null @@ -1,163 +0,0 @@ -# Dependency decisions - -## Phase 5: ml-stable-diffusion compatibility under the bumped toolchain - -### Scope - -Bumped: Python 3.11 → 3.12, torch 2.0.1 → 2.7.1, coremltools 8.2 → 9.0. -**Not bumped:** numpy stays in the 1.24..1.x range. Phase 5 spec asked -for numpy 2 as a goal; in practice the bump is decoupled — see -"Why not numpy 2" below. - -### Problem - -`python_coreml_stable_diffusion` pins three transitive dependencies in -its `setup.py` that block any modern install: - -```python -install_requires=[ - "coremltools>=8.0", - "diffusers[torch]==0.30.2", - "transformers==4.44.2", - "huggingface-hub==0.24.6", - "numpy<1.24", - ... -] -``` - -The exact-pin lines on diffusers/transformers/huggingface-hub block the -Python-3.12 / torch-2.7 / coremltools-9 combo. The numpy ceiling at -1.24 also blocks newer numpy. - -The upstream `main` branch as of 2026-05-24 (commit `e12202c1f`) has -the same pins as our Phase 1 `e5d960c4` SHA — no working alternative -exists upstream. No maintained fork on PyPI either. - -### Decision - -**Keep the SHA pinned at `e5d960c4`** (Phase 1 baseline) and apply -`[tool.uv] override-dependencies` to relax the four blocking pins: - -```toml -[tool.uv] -override-dependencies = [ - "numpy>=1.24,<2", - "diffusers>=0.30", - "transformers>=4.44", - "huggingface-hub>=0.24", -] -``` - -### Why not bump the SHA, vendor the code, or fork? - -- **Bump SHA:** the only newer SHA on `main` (`e12202c1f`) has identical - pins. No upstream fix. -- **Vendor the imports:** our code only uses `unet.UNet2DConditionModel`, - `unet.UNet2DConditionModelXL`, `unet.AttentionImplementations`, - `unet.calculate_conv2d_output_shape`, and `coreml_model.CoreMLModel`. - Copying these into `coreml_suite/_vendor/` would work but adds - hundreds of lines of code, owns a maintenance burden we don't want - yet, and detaches us from upstream bug fixes. -- **Public fork:** would also need maintenance + CI to keep current with - Apple's main. - -The override is the smallest workable patch: it trusts that the API -surface we touch (`unet.*` + `coreml_model.CoreMLModel`) is stable -across the bumped versions — verified empirically by Tier 1 (synthetic -UNet round-trip through `ct.convert`) and Tier 2 (real SD1.5 conversion -+ golden image PSNR ≥ 25 dB). - -### Why not numpy 2 - -The Phase 5 spec asked for numpy 2 alongside the Python / coremltools / -torch bumps. Tier 0 + Tier 1 are happy on numpy 2 — none of our own -modules touch numpy in a way that breaks. The SD UNet conversion path -is not: - -1. `coremltools 9.0 (and 8.3) `_cast(int)` in - `converters/mil/frontend/torch/ops.py` does - `dtype(x.val)` where `x.val` is a numpy ndarray with a single - element. Under numpy 2 that raises `TypeError: only 0-dimensional - arrays can be converted to Python scalars`. Fixable via a - `np.ndarray.item()` shim. -2. After patching (1), `view` then trips - `mb.cast(x=shape, dtype="int32")` where `shape` is a Python list of - non-scalar `Var`s — a code path the upstream guard - `all([isinstance(dim, Var) and len(dim.shape) == 0 for dim in shape])` - doesn't cover. Different bug class; needs a separate, larger shim - on the `view` op (and probably more elsewhere — each patch reveals - the next). - -Neither bug is a Phase-5 deliverable. None of our code paths require -numpy 2. **Decision: hold numpy at >=1.24,<2 and unblock the rest of -the bump.** numpy 2 stays as an explicit follow-up once coremltools -ships an upstream fix (or we sign up for the shim work). - -### Tier 2 PSNR threshold - -Phase 2 anchored the golden image as a SHA256 + 40 dB PSNR fallback. -The toolchain bump changes the bit-exact output: the SD1.5 baseline at -seed=42 lands at ~29 dB against the Phase 2 PNG. The image is -visually identical (same composition, same colors, sub-pixel drift), -just numerically different — typical for a coremltools/torch upgrade. - -`tests/m2/test_golden_image.py` was bumped to a 25 dB threshold and the -golden anchor was re-captured against the bumped toolchain. Refactor PRs -(Phase 3-style "should not change math") should raise the threshold via -`GOLDEN_PSNR_MIN_DB=40` (or higher); future toolchain bumps can repeat -the Phase 5 dance and recapture. - -### Bench diff vs Phase 1 - -| metric | Phase 1 (ct8.2/np1.23/py3.11) | Phase 5 (ct9.0/np1.26/py3.12/torch2.7) | delta | -|---|---:|---:|---:| -| SD1.5 NE fwd median (ms) | 196.97 | 197.32 | +0.2% | -| SD1.5 GPU fwd median (ms) | 270.26 | 272.01 | +0.6% | -| Model size (MB) | 1641 | 1641 | 0 | - -Within run-to-run noise (Phase 1 reproducibility check landed at -+0.0% / -0.3% across two consecutive runs). The bump is performance- -neutral on the SD1.5 baseline. - -### Rollback - -Reverting Phase 5 = restoring the Phase 1 pin set: - -```toml -requires-python = ">=3.11,<3.12" -dependencies = [ - "python-coreml-stable-diffusion @ git+https://github.com/apple/ml-stable-diffusion.git@e5d960c41a6a4ab200b8db379194127607b1c590", - "torch==2.0.1", - "coremltools==8.2", - "numpy<1.25", - "overrides", - "diffusers>=0.22", - "peft>=0.6.2", - "omegaconf>=2.3", -] -# Drop the [tool.uv] override-dependencies block entirely. -# Restore tests/m2/test_golden_image.py GOLDEN_PSNR_MIN_DB to 40. -# Restore tests/m2/goldens/sd15_seed42.{png,sha256} from the -# `modernize/phase4-tiered-ci` branch tip (the Phase 2 anchor). -``` - -Concretely: `git revert ` followed by -`rm -rf .venv && uv venv --python 3.11 && uv sync` will restore the -Phase 1 environment. The Phase 1 `bench/results/ef2a18c.json` is the -performance reference the rollback gets you back to. - -## Symbols we depend on from ml-stable-diffusion - -If we ever do need to vendor (option above), this is the surface to -copy: - -| Import path | Used in | -|---|---| -| `python_coreml_stable_diffusion.unet.UNet2DConditionModel` | `coreml_suite/converter.py` | -| `python_coreml_stable_diffusion.unet.UNet2DConditionModelXL` | `coreml_suite/converter.py` | -| `python_coreml_stable_diffusion.unet.AttentionImplementations` | `coreml_suite/converter.py`, `coreml_suite/nodes.py` | -| `python_coreml_stable_diffusion.unet.calculate_conv2d_output_shape` | `coreml_suite/converter.py` | -| `python_coreml_stable_diffusion.coreml_model.CoreMLModel` | `coreml_suite/nodes.py` | - -Plus the LCM-specific conversion helpers in -`coreml_suite/lcm/converter.py` (same `unet.*` symbols). diff --git a/docs/spikes/01-multifunction-models.md b/docs/spikes/01-multifunction-models.md deleted file mode 100644 index a1b4b07..0000000 --- a/docs/spikes/01-multifunction-models.md +++ /dev/null @@ -1,122 +0,0 @@ -# Spike 1 — MultiFunction models - -**Question (from spec):** Can one `.mlpackage` hold multiple batch sizes / -controlnet-on-off variants sharing weights, replacing the -"reconvert-per-config / encode-in-filename" approach? - -**Verdict:** Prototype for **controlnet-on/off only**. Use enumerated shapes -(spike 2), not multifunction, for batch size. Hard-gated behind **macOS 15 / -iOS 18**. Medium effort, medium payoff. - -## What it is - -MultiFunction packs several "functions" into one `mlprogram` `.mlpackage` and -**deduplicates identical weights across them**, so disk and in-memory footprint -shrink rather than just bundling N models. - -- Introduced: **coremltools 8.0** (2024-09-16). Unchanged through 9.0. -- Runtime minimum: **macOS 15 / iOS 18** (enforced — `save_multifunction` forces - `spec_version = max(spec_version, iOS18)`). -- `mlprogram` only (all of this suite's `.mlpackage`s already are). - -Build a multifunction package: - -```python -from coremltools.utils import MultiFunctionDescriptor, save_multifunction - -desc = MultiFunctionDescriptor() -desc.add_function(model_path="unet.mlpackage", - source_function_name="main", target_function_name="plain") -desc.add_function(model_path="unet_cn.mlpackage", - source_function_name="main", target_function_name="controlnet") -desc.default_function_name = "plain" # mandatory -save_multifunction(desc, "unet_multi.mlpackage") -``` - -Load a specific function (the save-time `CPU_ONLY` default does **not** bind -runtime compute units — reload with the unit you want): - -```python -import coremltools as ct -m = ct.models.MLModel("unet_multi.mlpackage", - function_name="controlnet", - compute_units=ct.ComputeUnit.CPU_AND_NE) -``` - -Swift runtime selection: `MLModelConfiguration.functionName`. - -## Does it actually share weights? - -Yes, genuinely — not just a bundle. `save_multifunction` runs the MIL pass -`const_deduplication` across functions. Dedup is **value-based (weight-hash)**, -not reference-based: two *independently converted* packages dedup their -bit-identical tensors at merge time. - -**Critical caveat for this suite:** dedup only fires if the shared tensors are -**byte-identical**. Different palettization/quantization (this repo's -`quantize_nbits` k-means path, `converter.py:309-325`) between two functions -defeats the hash match — you silently get a bundle, not a shared-weight model, -with no error. To benefit, convert the shared UNet trunk with identical -precision for both functions. - -Apple's documented benefit is **smaller size + shared in-memory weights** (load -base once, switch functions cheaply). No Apple source claims an ANE *compute* -speedup beyond that memory/load win. - -## How the two targets map - -| Target | Fit | Why | -|--------|-----|-----| -| **controlnet-on / controlnet-off** | **Good** | Structurally the adapter case Apple pushes (WWDC24 10159/10161): shared UNet trunk + extra control inputs in one function. Different I/O signatures per function are fully supported. This is the prototype candidate. | -| **different batch sizes** | **Awkward — wrong tool** | Batch is a *shape* difference, not a graph/weight difference. The idiomatic answer is `EnumeratedShapes` on a single function (spike 2): same weights, multiple shapes, no merge step, works on older OS targets. | - -Current per-config grounding: `converter.py:288-289` adds controlnet inputs via -`add_cnet_support`; `naming.py:22-63` encodes `_cn` into the filename cache key. -A 2-function package would replace the two separate `*_cn` / non-`cn` artifacts -with one — but only for macOS 15+ users. - -## Pipeline support - -`python_coreml_stable_diffusion` / `apple/ml-stable-diffusion` has **no -multifunction support** — it still emits separate `.mlpackage`s per component -and per config (`--unet-batch-one`, separate `*_control-unet.mlpackage`). You -would convert each variant as today, then add your **own** post-merge step -calling `MultiFunctionDescriptor`/`save_multifunction`. - -## Effort / risk - -- **Hard OS gate (macOS 15 / iOS 18).** Single biggest adoption risk — many Mac - SD users lag on OS. Likely need to keep the per-config path as fallback, which - erodes the simplicity win. The suite currently targets macOS 13. -- **Dedup defeated by mismatched quant** between functions (see above). -- `default_function_name` is mandatory; `source_function_name` is almost always - `"main"` for `ct.convert` output — verify per package. -- Spec version is forced up to the max of inputs (≥ iOS18); cannot keep a lower - target after merge. - -## Recommendation - -Low priority. If pursued: prototype **controlnet-on/off as a two-function -package**, converting the shared trunk with identical precision so dedup fires; -gate behind a macOS 15+ check; keep per-config reconvert as fallback. Do **not** -use multifunction for batch size — that is spike 2's job. Measure ANE engagement -and first-load compile time on real hardware before committing — those are the -make-or-break unknowns. - -## Unverified (needs [M2-ANE]) - -- Real-world ANE behavior of a merged SD UNet — no public report either way. -- Whether Core ML compiles a multifunction package per-function or whole-package - on first load (SD UNet first-load compile is minutes — could worsen startup). -- Exact `@available` version string for Swift `MLModelConfiguration.functionName` - (property confirmed; version inferred iOS 18 from the feature gate). - -## Sources - -- coremltools MultiFunction guide — https://apple.github.io/coremltools/docs-guides/source/multifunction-models.html -- `coremltools/models/utils.py` source — https://github.com/apple/coremltools/blob/main/coremltools/models/utils.py -- coremltools 8.0 release notes — https://github.com/apple/coremltools/releases/tag/8.0 -- WWDC24 10159 (Bring your ML/AI models to Apple silicon) — https://developer.apple.com/videos/play/wwdc2024/10159/ -- WWDC24 10161 (Deploy ML/AI models on-device with Core ML) — https://developer.apple.com/videos/play/wwdc2024/10161/ -- `MLModelConfiguration.functionName` — https://developer.apple.com/documentation/coreml/mlmodelconfiguration/functionname -- apple/ml-stable-diffusion `torch2coreml.py` — https://github.com/apple/ml-stable-diffusion/blob/main/python_coreml_stable_diffusion/torch2coreml.py diff --git a/docs/spikes/02-flexible-shapes.md b/docs/spikes/02-flexible-shapes.md deleted file mode 100644 index 6f2b72f..0000000 --- a/docs/spikes/02-flexible-shapes.md +++ /dev/null @@ -1,135 +0,0 @@ -# Spike 2 — Flexible / enumerated shapes - -**Question (from spec):** Can enumerated/dynamic shapes + -`materialize_dynamic_shape_mlmodel` remove the fixed 512×512 / per-size -reconversion and simplify the `chunk_batch` padding? - -**Verdict:** Use `ct.EnumeratedShapes` over a small set of **spatial** latent -sizes to kill per-size reconversion while keeping the ANE. Keep `chunk_batch` -for the **batch** dimension. Medium effort, medium–high payoff. The batch logic -is only partially eliminable and not worth the OS-gate cost. - -## The three mechanisms - -```python -import coremltools as ct - -# (a) RangeDim — continuous bounded range per dim -shape = ct.Shape(shape=(1, 4, - ct.RangeDim(lower_bound=64, upper_bound=128, default=64), - ct.RangeDim(lower_bound=64, upper_bound=128, default=64))) - -# (b) EnumeratedShapes — fixed finite set (≤128 shapes) -shape = ct.EnumeratedShapes( - shapes=[[1,4,64,64],[1,4,96,96],[1,4,128,128]], default=[1,4,64,64]) - -# (c) fixed — what converter.py:80 uses today -ct.TensorType(name="sample", shape=(1,4,64,64)) -``` - -## The ANE crux (confirmed, not inferred) - -coremltools maintainers confirmed in issue -[#2370](https://github.com/apple/coremltools/issues/2370) (tested coremltools -8.0 / macOS 15 / M3 Pro): - -- **`EnumeratedShapes` → runs every listed shape on the ANE.** This is the only - flexible option Apple endorses for an ANE model, and the only one their own - SD repo points to. -- **`RangeDim` → only the *default* shape runs on ANE.** Non-default shapes fall - to GPU/CPU (measured ~10× slower). The `ReshapeFrequency.Infrequent` - optimization hint (iOS 17.4+) lets RangeDim use the ANE for arbitrary shapes, - but **each new shape triggers an ANE recompile** (latency spike). - -coremltools FAQ, verbatim: *"Use `EnumeratedShapes` for best performance ... -The converted model will run on the NE, unless the conversion introduces dynamic -layers not supported on the NE, such as converting a static reshape to a fully -dynamic reshape."* - -## `materialize_dynamic_shape_mlmodel` - -Alternative path: convert once with symbolic dims, then bake out N fixed-shape -**functions** into one weight-shared package. - -```python -from coremltools.utils import materialize_dynamic_shape_mlmodel -materialize_dynamic_shape_mlmodel( - dynamic_shape_mlmodel, - {"size_64": {"sample": (1,4,64,64)}, "size_96": {"sample": (1,4,96,96)}}, - "unet_materialized.mlpackage") -``` - -- Introduced coremltools **8.0**. Tensor I/O only (SD UNet is `MLMultiArray` — OK). -- Deployment target: materializing **>1 function** (or non-`main` source) emits a - multifunction model → forced to **iOS 18 / macOS 15**. Materializing exactly - **one** function from `"main"` stays unifunction at the **original** target - (macOS 13 stays viable for the single-shape case). -- Materialized functions are fully static → run on ANE like normal fixed-shape - models, with shared weights across functions. - -## Does this kill `chunk_batch` or just per-size reconversion? - -Current grounding: -- `converter.py:266-271` converts for a fixed `(batch, C, H, W)` `sample_shape`. -- `latents.py:10-35` `chunk_batch` pads/splits the **batch** dim to the fixed - converted batch size. - -| Approach | ANE | Kills per-size reconv? | Kills `chunk_batch`? | Min target | Effort | -|----------|-----|------------------------|----------------------|------------|--------| -| `EnumeratedShapes` (spatial only) | Yes (all shapes) | **Yes** | No | macOS 13 | Med — `group_norm` hurdle | -| `EnumeratedShapes` (spatial × batch) | Yes | Yes | Partially | **macOS 15** (multi-input) | Med–High | -| `RangeDim` | Default only / `Infrequent`=recompile | Yes but slow | Partially | iOS 17.4 (hint) | Low code, bad ANE | -| `materialize_dynamic_shape_mlmodel` | Yes (static funcs) | Yes (1 package) | No | macOS 15 if >1 func | Med | - -- **Per-size (spatial H/W) reconversion → realistically eliminable** via - `EnumeratedShapes` over a curated size set, keeping the ANE. -- **`chunk_batch` batch padding → only partially eliminable, higher risk.** - Reasons: (1) batch must co-vary across multiple UNet inputs (`sample`, - `encoder_hidden_states`, `timestep`, SDXL/LCM/cnet extras), which hits the - **pre-iOS 18 single-`EnumeratedShapes`-input limit** — a hard wall unless you - target macOS 15+; (2) enumeration only covers the exact batch sizes you list, - so you still need `chunk_batch`-style fallback for unlisted counts; - (3) batch × spatial multiplies the enumerated-shape count, inflating compile - time and package size. - -## What breaks / risk - -- **`group_norm` conversion failure** is documented for flexible-shape SD UNet - (ml-stable-diffusion [#70](https://github.com/apple/ml-stable-diffusion/issues/70)): - flexible shapes failed at `group_norm`, and `SPLIT_EINSUM` with non-standard - dims caused kernel panics. Flexible *spatial* dims on the SD UNet are known to - be fiddly, not turnkey. (This suite defaults to `SPLIT_EINSUM` — - `converter.py:339`.) -- One **unreproduced** report in #2370 of `EnumeratedShapes` on `mlprogram` - running only the default shape on ANE; the maintainer could not reproduce. - Treat the documented "all shapes on ANE" as expected but **benchmark on target - hardware** — this is the single biggest verification gap. - -## Recommendation - -Highest-value direction of the three packaging spikes. If pursued: -`EnumeratedShapes` over a curated set of latent **spatial** sizes (e.g. 64²/96²/ -128²), keep batch fixed at the CFG-doubled value, keep `chunk_batch` for batch. -Stays on macOS 13. Budget time for the `group_norm` conversion hurdle and -**prove ANE residency on real hardware first** before removing any per-size -reconversion. `materialize_dynamic_shape_mlmodel` is a clean fallback for -"ship N fixed sizes in one weight-shared package" but forces macOS 15 once you -bake >1 function. - -## Unverified (needs [M2-ANE]) - -- `EnumeratedShapes`-on-`mlprogram` ANE residency for a *real* SD UNet - (the #2370 regression — unreproduced by maintainer). -- That materialized functions run on ANE (strongly implied; no benchmark found). -- `.mlmodelc` size / compile-time growth per enumerated shape (qualitative only). -- Whether batch-as-flexible-dim is ANE-safe for the SD UNet (no API prohibition, - no positive confirmation). - -## Sources - -- coremltools flexible inputs guide — https://apple.github.io/coremltools/docs-guides/source/flexible-inputs.html -- coremltools #2370 (Flexible shapes on Neural Engine) — https://github.com/apple/coremltools/issues/2370 -- coremltools #2386 (docs fix) — https://github.com/apple/coremltools/pull/2386 -- `materialize_dynamic_shape_mlmodel` source — https://github.com/apple/coremltools/blob/main/coremltools/models/utils.py -- coremltools 8.0 release notes — https://github.com/apple/coremltools/releases/tag/8.0 -- ml-stable-diffusion #70 (flexible-shape group_norm failure) — https://github.com/apple/ml-stable-diffusion/issues/70 diff --git a/docs/spikes/03-mlx-interop.md b/docs/spikes/03-mlx-interop.md deleted file mode 100644 index bda9e04..0000000 --- a/docs/spikes/03-mlx-interop.md +++ /dev/null @@ -1,106 +0,0 @@ -# Spike 3 — MLX interop decision - -**Question (from spec):** Should the suite stay pure Core ML/ANE, or add an -interop path with DiffusionKit / ComfyUI-MLX for SD3/Flux (GPU/MLX)? Recommend, -don't implement. - -**Verdict:** **Stay pure Core ML/ANE.** Document an off-ramp (point users to -existing MLX nodes for Flux); do **not** absorb MLX into the suite. The niche -MLX cannot reach — low-power, background, GPU-free — is exactly this suite's -moat. The optional on-brand build is **SD3 Medium on ANE** (upstream-supported), -plus a power benchmark to make the moat quantitative. - -## The two are complements, not substitutes - -MLX runs on **GPU + CPU only — it cannot target the ANE** (confirmed: MLX -devices are `mx.cpu` / `mx.gpu`; the M5 "Neural Accelerators" are inside the -GPU via Metal 4, *not* the ANE). So MLX structurally cannot serve this suite's -niche. - -| Axis | Core ML / ANE (this suite) | MLX (mflux / DiffusionKit) | -|------|----------------------------|----------------------------| -| Compute target | **ANE** (or GPU) | GPU + CPU only | -| Power draw | **Very low** (~5 W GEMM-level on M4) | High (~24 W; saturates GPU) | -| Thermal / fanless / background | **Wins** — cool, doesn't block GPU | Pins the GPU | -| Concurrent with GPU work | **Yes** (game/render/train running) | No — competes for GPU | -| Raw speed | Competitive on SD1.5/SDXL | **Faster** for Flux/SDXL when GPU free | -| Model coverage | SD1.5 / SDXL / **SD3** | **Flux**, FLUX.2, Qwen-Image, Z-Image; no SD3 | -| Conversion friction | High (convert+chunk+palettize ahead) | Low (load HF weights, quant on the fly) | - -The power figures are **GEMM-level, not full-pipeline diffusion** — directional, -not citable per-image. See "Unverified". - -## Ecosystem reality (2024–2026) - -- **DiffusionKit** (argmaxinc) — MIT. Python side runs SD3 + Flux on **MLX**; - Swift side does SD3 on Core ML (upstreamed to apple/ml-stable-diffusion). - **Repo archived (read-only) March 2026** — effectively end-of-life. Building - interop on it means depending on a dead repo. -- **mflux** (filipstrand) — MIT, **active** (v0.17.x, Apr 2026, ~2k stars). The - healthy MLX-image engine: FLUX.1/FLUX.2, Qwen-Image, Z-Image, 4/8-bit quant. - No SD3. **GPU only.** -- **Mflux-ComfyUI** (raysers) — MIT, wraps mflux; the most-starred Comfy MLX-Flux - node. The Flux-on-Mac-ComfyUI niche is **already occupied** here. -- The original `thoddnn/ComfyUI-MLX` that blogs cite ("70% faster") **no longer - exists** (404, deliberately removed). Treat those claims as referencing a dead - repo. - -## Can SD3 / Flux run on ANE via Core ML? - -- **apple/ml-stable-diffusion** — MIT, 17.8k stars. Not abandoned but coasting: - **last tagged release 1.1.1 (May 2024)**, main branch commits through - **July 2025**. Maintained at a trickle. -- **SD3 on Core ML/ANE: YES.** The README has a `--sd3-version` conversion path - (MMDiT, 16-ch VAE, T5), upstreamed from DiffusionKit. SD3 Medium ~2B params — - within ANE feasibility with palettization/chunking, same playbook as SDXL. -- **Flux on Core ML/ANE: effectively NO.** Flux is ~12B params (~24 GB fp16 - transformer + ~9 GB T5). ANE wants aggressive chunking (this suite already - bisects the 1.72 GB SD1.5 UNet into sub-1 GB chunks via `bisect_model`). - Flux would need heavy low-bit palettization **and** a dozen-plus chunks just to - fit, with precision risk on MMDiT attention. No maintained community Core ML - Flux exists. Flux on Mac in practice = MLX/GPU (mflux). - -## Maintenance burden if we went interop (rejected) - -- Two heavy new deps: **MLX** (large native, Apple-silicon-only, moves fast) + - **mflux** (DiffusionKit is archived, so mflux is the only live option). Both - violate the spec's "no new runtime dependencies without flagging" rule - (`MODERNIZATION_SPEC.md` §0.7) and would coexist with the already-fragile - `python_coreml_stable_diffusion` git dependency — doubling the moving surface. -- The interop would be a thin re-wrap of `Mflux-ComfyUI`, which already exists - and is MIT. Zero differentiation for real maintenance cost. - -## Recommendation - -| Option | Effort | Payoff | Verdict | -|--------|--------|--------|---------| -| **A. Stay pure Core ML/ANE; optionally extend to SD3 Medium** | Low–Med | Med | **Do** | -| **B. Document an off-ramp** in README (Flux/SD3-on-GPU → mflux / Mflux-ComfyUI; this suite = low-power / background / GPU-free / SD1.5/SDXL/SD3 on ANE) | Trivial | High | **Do** | -| C. Build MLX interop inside the suite (mflux dep) | High | Low | **Reject** | -| D. Build Flux-on-ANE Core ML conversion | Very high (research) | Low/uncertain | **Reject** | - -Net: stay pure, lean into the moat, point users elsewhere for Flux. The market -already built the MLX-Flux bridge; this suite's value is the orthogonal axis MLX -provably cannot reach. The one new build worth considering is **SD3 Medium on -ANE** (feasible, upstream-supported, on-brand) plus a **power benchmark** to -make the moat quantitative. - -## Unverified - -- A clean full-pipeline **diffusion** joules-per-image ANE-vs-MLX-GPU benchmark - (only GEMM-level ~5 W vs ~24 W on M4 exists). `bench/run.py` already measures - `CPU_AND_NE` vs `CPU_AND_GPU` — generating this would be the highest-value - artifact to prove the moat. -- Any working community Core ML Flux conversion (none found). -- Whether Argmax has a successor to DiffusionKit (archived Mar 2026, no announced - replacement; the live MLX-Flux torch is carried by mflux). - -## Sources - -- argmaxinc/DiffusionKit (archived) — https://github.com/argmaxinc/DiffusionKit -- apple/ml-stable-diffusion (+ releases) — https://github.com/apple/ml-stable-diffusion / https://github.com/apple/ml-stable-diffusion/releases -- filipstrand/mflux — https://github.com/filipstrand/mflux -- raysers/Mflux-ComfyUI — https://github.com/raysers/Mflux-ComfyUI -- MLX (unified memory / devices) — https://ml-explore.github.io/mlx/ -- Apple ML research, LLMs with MLX on M5 — https://machinelearning.apple.com/research/exploring-llms-mlx-m5 -- NPU vs GPU power (GEMM-level, directional) — arXiv 2511.13450 diff --git a/docs/spikes/README.md b/docs/spikes/README.md deleted file mode 100644 index f464ce9..0000000 --- a/docs/spikes/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Phase 7 — Strategic spikes (research only) - -Research-only investigations per `MODERNIZATION_SPEC.md` Phase 7. None of these -are merged behavior changes. Each spike delivers a written recommendation with -effort/payoff so the maintainer can choose which (if any) become real phases. - -| # | Spike | Verdict | Effort | Payoff | -|---|-------|---------|--------|--------| -| 1 | [MultiFunction models](01-multifunction-models.md) | Prototype for **controlnet-on/off only**; use enumerated shapes for batch | Medium | Medium (gated by macOS 15) | -| 2 | [Flexible / enumerated shapes](02-flexible-shapes.md) | `EnumeratedShapes` for **spatial size**; keep `chunk_batch` for batch | Medium | Medium–High | -| 3 | [MLX interop decision](03-mlx-interop.md) | **Stay pure Core ML/ANE.** Document an off-ramp; do not absorb MLX | Trivial (docs) | High (positioning) | - -## Cross-cutting finding - -Spikes 1 and 2 both run into the same wall: the high-value packaging features -(`MultiFunctionDescriptor`, `materialize_dynamic_shape_mlmodel`, multi-input -`EnumeratedShapes`) require **macOS 15 / iOS 18** at runtime, while the suite -today targets **macOS 13** (`coreml_suite/converter.py:110`). Adopting either -means either raising the floor (drops older-OS users — a real cost for a -community ComfyUI pack) or keeping the current per-config path as a fallback -(erodes the "one artifact" simplicity win). This OS gate, not the API, is the -dominant decision factor. - -## Gate 7 report - -``` -## Gate 7 report -- Spike 1 (MultiFunction): recommendation written — prototype controlnet-on/off - as 2-function package; NOT for batch size. Gated macOS 15. No code merged. -- Spike 2 (flexible shapes): recommendation written — EnumeratedShapes for - spatial size, retains ANE per coremltools maintainer confirmation; keep - chunk_batch for batch. No code merged. -- Spike 3 (MLX interop): recommendation written — stay pure Core ML/ANE, - document off-ramp to mflux/Mflux-ComfyUI for Flux. Reject in-suite interop. - No code merged. -- Open verification gaps requiring on-hardware [M2-ANE] measurement are listed - per spike under "Unverified". -``` - -## Verification debt (must measure on [M2-ANE] before any promotion) - -- EnumeratedShapes ANE residency for a *real* SD UNet (one unreproduced - coremltools regression report exists — spike 2). -- Multifunction SD UNet ANE behavior + first-load compile time (no public - report either way — spike 1). -- Full-pipeline diffusion power draw ANE vs MLX-GPU (only GEMM-level figures - exist — spike 3). `bench/run.py` already measures `CPU_AND_NE` vs - `CPU_AND_GPU`, so this is the highest-value artifact to make the moat - quantitative. diff --git a/pyproject.toml b/pyproject.toml index 8eb088b..79aeea4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,11 +6,11 @@ license = "MIT" requires-python = ">=3.12,<3.13" packages = [{ include = "coreml_suite" }] dependencies = [ - # Phase 5 toolchain bump: Python 3.12, coremltools 9, torch 2.7. + # Python 3.12, coremltools 9, torch 2.7. # numpy stays in the 1.24..1.x range — none of our modules need # numpy 2, and coremltools + ml-stable-diffusion's SD UNet trace # hit hard bugs under numpy 2 (`_cast` int(ndarray) strictness and - # `view` mixed-Var shape lists). See docs/deps.md. + # `view` mixed-Var shape lists). # torch 2.7 is the latest version coremltools 9's PyTorch frontend # has been tested against. "python-coreml-stable-diffusion @ git+https://github.com/apple/ml-stable-diffusion.git@e5d960c41a6a4ab200b8db379194127607b1c590", @@ -31,8 +31,7 @@ Repository = "https://github.com/aszc-dev/ComfyUI-CoreMLSuite" PublisherId = "aszc-dev" DisplayName = "ComfyUI-CoreMLSuite" Icon = "" -# Pinned to the ComfyUI commit this Phase 1 baseline was validated against. -# Bump together with the toolchain upgrade in Phase 5. +# Pinned to the ComfyUI commit this toolchain was validated against. requires-comfyui = "==ab5413351eee61f3d7f10c74e75286df0058bb18" [dependency-groups] @@ -41,7 +40,7 @@ dev = [ "psutil>=7.2.2", ] # ComfyUI runtime deps that aren't part of our package's runtime contract -# but are needed to spin up the ComfyUI server for Tier 2 / smoke_image. +# but are needed to spin up the ComfyUI server for Tier 2 integration tests. # Kept in a uv group so `uv sync --group comfy` brings them in without # polluting the published metadata (and without re-bumping our torch pin # via `uv pip install -r ComfyUI/requirements.txt`, which would float to @@ -63,11 +62,11 @@ comfy = [ ] [tool.uv] -# Phase 5 toolchain bump: ml-stable-diffusion's setup.py hard-pins -# numpy<1.24, diffusers==0.30.2 and transformers==4.44.2, which blocks -# the modern torch / coremltools combo on Python 3.12. Override the -# four blocking pins; the .unet / .coreml_model symbols we actually -# import (see docs/deps.md) are stable across the bumped versions. +# ml-stable-diffusion's setup.py hard-pins numpy<1.24, diffusers==0.30.2 +# and transformers==4.44.2, which blocks the modern torch / coremltools +# combo on Python 3.12. Override the four blocking pins; the .unet / +# .coreml_model symbols we actually import are stable across the bumped +# versions. override-dependencies = [ "numpy>=1.24,<2", "diffusers>=0.30", @@ -76,14 +75,13 @@ override-dependencies = [ ] [tool.pytest.ini_options] -# Phase 2: tier markers gate which environment a test needs. -# - unit: framework-free pure-logic tests (Tier 0; future Phase 3 will run -# these without ComfyUI on Linux). For now they may still transitively -# import comfy. +# Tier markers gate which environment a test needs. +# - unit: framework-free pure-logic tests (Tier 0; run without ComfyUI on +# Linux). # - m2: needs an Apple Silicon Mac with the Neural Engine (Tier 2), -# typically the maintainer's self-hosted runner or local M-series box. +# typically a self-hosted runner or local M-series box. # - smoke: lightweight checks that need Apple Silicon + coremltools but no -# ANE/real model (reserved for Phase 4 Tier 1 smoke harness). +# ANE/real model (Tier 1). markers = [ "unit: framework-free unit test (Tier 0)", "m2: requires Apple Silicon + Neural Engine (Tier 2)", diff --git a/tests/conftest.py b/tests/conftest.py index 1587338..5fd4a7c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,14 +1,12 @@ """Pytest bootstrap for ComfyUI-CoreMLSuite tests. -- Adds the ComfyUI checkout to sys.path so production modules that - transitively import `comfy.*` resolve when pytest is invoked from this - package's root. Phase 3 will split pure logic into a comfy-free core and - this hack can go. +- Adds the ComfyUI checkout to sys.path so the framework-coupled modules + that transitively import `comfy.*` resolve when pytest is invoked from + this package's root. - Auto-applies tier markers based on the directory a test lives in, so individual files don't have to repeat @pytest.mark.unit / .m2. -- Skips the maintainer's in-progress test scaffolds so they don't break - collection (they reference modules / venv layouts that aren't part of - Phase 2 scope). +- Skips in-progress test scaffolds so they don't break collection (they + reference modules / venv layouts that aren't part of this suite). """ import sys from pathlib import Path @@ -23,9 +21,8 @@ for p in (str(COMFY_DIR), str(REPO_ROOT)): sys.path.insert(0, p) -# Skip WIP test scaffolds left in the tree by the maintainer; they import -# modules (coreml_suite.experiments, convert_apple) that are not part of -# Phase 2 scope. +# Skip WIP test scaffolds; they import modules (coreml_suite.experiments, +# convert_apple) that are not part of this suite. collect_ignore_glob = [ "unit/test_experiments.py", "unit/test_unet_conversion.py", diff --git a/tests/m2/test_golden_image.py b/tests/m2/test_golden_image.py index 7bb4dcc..a43495e 100644 --- a/tests/m2/test_golden_image.py +++ b/tests/m2/test_golden_image.py @@ -1,4 +1,4 @@ -"""Phase 2 [M2-ANE] golden-image anchor. +"""[M2-ANE] golden-image anchor. Runs the e2e SD1.5 + CoreML workflow against a local ComfyUI server, fetches the generated PNG, and asserts both: @@ -14,8 +14,8 @@ regression. The 25 dB default reflects empirical drift between Core ML toolchains (8.2/np1.23/py3.11/torch2.0 → 9.0/np1.26/py3.12/torch2.7 measured at ~29 dB on the SD1.5 baseline; the image is visually identical at that -level). Bump the threshold up for refactor PRs (Phase 3-style "should -not change math"), down for toolchain PRs. +level). Bump the threshold up for refactor PRs ("should not change +math"), down for toolchain PRs. Skips entirely on non-Apple-Silicon hosts or when the server / converted model is missing, so the unit lane on Linux still passes. @@ -111,8 +111,7 @@ def _post_workflow_and_collect_png() -> bytes: for nid in ("3", "11"): if nid in workflow and "seed" in workflow[nid].get("inputs", {}): workflow[nid]["inputs"]["seed"] = SEED - # Drop the MPS reference branch — torch 2.0.1 MPS path is broken on macOS 26 - # (see Phase 1 gate report). Only the Core ML pipeline is needed here. + # Drop the MPS reference branch — only the Core ML pipeline is needed here. for nid in ("3", "8", "9"): workflow.pop(nid, None) diff --git a/tests/unit/test_characterization_controlnet.py b/tests/unit/test_characterization_controlnet.py index bb46258..dfdcecb 100644 --- a/tests/unit/test_characterization_controlnet.py +++ b/tests/unit/test_characterization_controlnet.py @@ -1,4 +1,4 @@ -"""Phase 2 characterization tests for coreml_suite.controlnet. +"""Characterization tests for coreml_suite.controlnet. Locks shapes + dtypes + zero-fill behavior of expand_inputs / no_control / extract_residual_kwargs / chunk_control. These pure helpers feed the Core ML diff --git a/tests/unit/test_characterization_inputs.py b/tests/unit/test_characterization_inputs.py index 8209b1d..2f47b5f 100644 --- a/tests/unit/test_characterization_inputs.py +++ b/tests/unit/test_characterization_inputs.py @@ -1,10 +1,10 @@ -"""Phase 2 characterization tests for coreml_suite.models.CoreMLInputs. +"""Characterization tests for coreml_suite.models.CoreMLInputs. Locks the shape transforms applied by chunks() and coreml_kwargs() for the four model variants the suite supports: SD1.5, LCM (SD1.5 + timestep_cond), SDXL base (time_ids len 6), and SDXL refiner (time_ids len 5). -These contracts feed the Core ML UNet at runtime; if Phase 3 silently +These contracts feed the Core ML UNet at runtime; if a refactor silently re-shapes them, generation breaks. """ import numpy as np diff --git a/tests/unit/test_characterization_latents.py b/tests/unit/test_characterization_latents.py index 24e3df7..0ad40a0 100644 --- a/tests/unit/test_characterization_latents.py +++ b/tests/unit/test_characterization_latents.py @@ -1,7 +1,7 @@ -"""Phase 2 characterization tests for coreml_suite.latents. +"""Characterization tests for coreml_suite.latents. Locks the *current* behavior of chunk_batch / merge_chunks — including the -zero-pad regions and the truncation in merge — so the Phase 3 refactor +zero-pad regions and the truncation in merge — so a refactor cannot silently shift either contract. """ import pytest @@ -110,7 +110,7 @@ def test_merge_chunks_truncates_padding(): def test_merge_chunks_singleton_returns_equal_copy_when_shape_matches(): """A singleton chunk list still goes through torch.cat, so we get a new - tensor equal to the input — locked here because Phase 3 might be tempted + tensor equal to the input — locked here because a refactor might be tempted to short-circuit and accidentally return the same object.""" x = _const_tensor(2) out = merge_chunks([x], x.shape) diff --git a/tests/unit/test_characterization_out_name.py b/tests/unit/test_characterization_out_name.py index dce672b..a246a50 100644 --- a/tests/unit/test_characterization_out_name.py +++ b/tests/unit/test_characterization_out_name.py @@ -1,9 +1,9 @@ -"""Phase 2 characterization tests, Phase 3 re-pointed. +"""Characterization tests for the .mlpackage filename composition. -After Phase 3 the .mlpackage filename composition is the pure +The filename composition is the pure coreml_suite.core.naming.compose_out_name function. CoreMLConverter.convert -calls it; the previous Phase 2 test had to monkey-patch heavy converter -internals just to capture the string, which made the test framework-coupled. +calls it; testing the pure function avoids monkey-patching heavy converter +internals just to capture the string. """ import pytest @@ -145,11 +145,11 @@ def test_lora_names_from_params_empty_list(): assert lora_names_from_params([]) == [] -# ---------- Phase 6: quantize_nbits suffix --------------------------------- +# ---------- quantize_nbits suffix ------------------------------------------ def test_quantize_nbits_none_appends_nothing(): - """'none' is the default and must keep the pre-Phase-6 filename so + """'none' is the default and must keep the unquantized filename so existing cached .mlpackages still resolve.""" out = compose_out_name( ckpt_name="dreamshaper_8.safetensors", diff --git a/tests/unit/test_characterization_sdxl_options.py b/tests/unit/test_characterization_sdxl_options.py index c51c374..85cbd1b 100644 --- a/tests/unit/test_characterization_sdxl_options.py +++ b/tests/unit/test_characterization_sdxl_options.py @@ -1,6 +1,6 @@ -"""Phase 2 characterization tests, Phase 3 re-pointed. +"""Characterization tests for the SDXL options math. -After Phase 3 the SDXL time_ids / text_embeds math lives in +The SDXL time_ids / text_embeds math lives in coreml_suite.core.sdxl as pure builders. The framework adapter add_sdxl_model_options (in models.py) is exercised separately by the m2 golden image test; here we just lock the pure math. @@ -95,7 +95,7 @@ def test_wrapper_captures_time_ids_text_embeds_refiner_via_closure(): def test_wrapper_returns_zero_when_context_missing(): """When c_crossattn is None the wrapper short-circuits to zeros_like(x). - Locked here because Phase 3 mustn't change this default.""" + Locked here because the refactor mustn't change this default.""" wrapper = sdxl_model_function_wrapper(torch.zeros(2, 6), torch.zeros(2, 1280)) x = torch.randn(2, 4, 16, 16) out = wrapper( diff --git a/tests/unit/test_chunks.py b/tests/unit/test_chunks.py index 8ead7ed..f1f1dd7 100644 --- a/tests/unit/test_chunks.py +++ b/tests/unit/test_chunks.py @@ -1,8 +1,7 @@ -"""Original smoke tests, re-pointed at coreml_suite.core.* in Phase 3. +"""Smoke tests for the pure batch-chunking helpers in coreml_suite.core. -Drops the `from comfy.model_management import get_torch_device` import -(replaced with torch.device('cpu') so Tier 0 runs without ComfyUI) and the -dead `model_config` fixture (defined in Phase 1 but never consumed). +Uses torch.device('cpu') instead of comfy.model_management.get_torch_device +so Tier 0 runs without ComfyUI. """ import pytest import torch diff --git a/tests/unit/test_tier0_purity.py b/tests/unit/test_tier0_purity.py index ffa0690..cff52f5 100644 --- a/tests/unit/test_tier0_purity.py +++ b/tests/unit/test_tier0_purity.py @@ -1,4 +1,4 @@ -"""Phase 3 gate: prove the Tier-0 lane is framework-free. +"""Gate: prove the Tier-0 lane is framework-free. In a pure `pytest -m unit` run, none of the banned runtime modules (comfy, coremltools, python_coreml_stable_diffusion, folder_paths,