From b821f1fd60778ba71988f0ac753d5cfbb8163640 Mon Sep 17 00:00:00 2001 From: IMvision12 Date: Sat, 12 Sep 2026 13:16:18 -0700 Subject: [PATCH 1/4] Add Stable Diffusion 2 --- README.md | 1 + assets/stable_diffusion_2_ramen.jpg | Bin 0 -> 60211 bytes ...table_diffusion_2_text_to_image_output.jpg | Bin 0 -> 120168 bytes docs/main_classes.md | 3 +- docs/models.md | 1 + docs/stable_diffusion_2.md | 191 ++++++++++++++++++ tests/base/model_test_registry.py | 22 ++ website/mkdocs.yml | 1 + zeromodels/auto/auto_mapping_names.py | 4 + zeromodels/models/__init__.py | 1 + ...ert_stable_diffusion_diffusers_to_keras.py | 37 +++- .../stable_diffusion_config.py | 15 +- .../stable_diffusion_layers.py | 71 ++++--- .../stable_diffusion_model.py | 38 +++- .../stable_diffusion_tokenizer.py | 15 +- .../models/stable_diffusion_2/__init__.py | 19 ++ ...t_stable_diffusion_2_diffusers_to_keras.py | 84 ++++++++ .../stable_diffusion_2_config.py | 79 ++++++++ .../stable_diffusion_2_model.py | 69 +++++++ .../stable_diffusion_2_tokenizer.py | 34 ++++ 20 files changed, 637 insertions(+), 48 deletions(-) create mode 100644 assets/stable_diffusion_2_ramen.jpg create mode 100644 assets/stable_diffusion_2_text_to_image_output.jpg create mode 100644 docs/stable_diffusion_2.md create mode 100644 zeromodels/models/stable_diffusion_2/__init__.py create mode 100644 zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py create mode 100644 zeromodels/models/stable_diffusion_2/stable_diffusion_2_config.py create mode 100644 zeromodels/models/stable_diffusion_2/stable_diffusion_2_model.py create mode 100644 zeromodels/models/stable_diffusion_2/stable_diffusion_2_tokenizer.py diff --git a/README.md b/README.md index b139feea..4cb3c7ba 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,7 @@ Documentation sources are also available in [`docs/`](docs/). | 🏷️ Model Name | 📜 Reference Paper | 📦 Source of Weights | |---------------|-------------------|---------------------| | Stable Diffusion 1.x (v1-1 to v1-5) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | + | Stable Diffusion 2.x (2, 2-base, 2-1, 2-1-base) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` |
diff --git a/assets/stable_diffusion_2_ramen.jpg b/assets/stable_diffusion_2_ramen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c2f8225813ec993c21499397ee98be55fc849c1 GIT binary patch literal 60211 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 literal 0 HcmV?d00001 diff --git a/docs/main_classes.md b/docs/main_classes.md index 84fa48e1..4d356daa 100644 --- a/docs/main_classes.md +++ b/docs/main_classes.md @@ -251,7 +251,8 @@ model.generate( ) ``` -The diffusion flavor, used by [Stable Diffusion](stable_diffusion.md). Where the LM +The diffusion flavor, used by [Stable Diffusion](stable_diffusion.md) and +[Stable Diffusion 2](stable_diffusion_2.md). Where the LM mixins decode tokens, this one runs a scheduler's denoising loop with classifier-free guidance over a latent and decodes it to `(batch, H, W, 3)` uint8 images. A model supplies five hooks (`encode_prompt`, `unconditional_ids`, `predict_noise`, diff --git a/docs/models.md b/docs/models.md index a8e3b412..ec2a19c9 100644 --- a/docs/models.md +++ b/docs/models.md @@ -106,3 +106,4 @@ Vision-language encoders, generative VLMs, grounding across detection, OCR, poin - [SigLIP](siglip.md) - [SigLIP 2](siglip2.md) - [Stable Diffusion](stable_diffusion.md) +- [Stable Diffusion 2](stable_diffusion_2.md) diff --git a/docs/stable_diffusion_2.md b/docs/stable_diffusion_2.md new file mode 100644 index 00000000..2fdd6b1a --- /dev/null +++ b/docs/stable_diffusion_2.md @@ -0,0 +1,191 @@ +# Stable Diffusion 2 + +

+Weights: pretrained Keras weights live on Hugging Face under +zeromodels/<variant> +(each repo carries zm_config.json + model.weights.h5 + +tokenizer.json). Load with from_weights("zeromodels/<variant>"). +
+ +Stable Diffusion 2.x, ported to pure Keras 3: the [Stable Diffusion](stable_diffusion.md) +latent-diffusion architecture with the second-generation conditioning. It reuses the +SD 1.x family end to end (`StableDiffusion2Model` is `StableDiffusionModel`, +`StableDiffusion2TextToImage` is `StableDiffusionTextToImage`, each with the SD 2 +configuration), so everything on that page applies: one container per repo, `generate` +from `BaseDiffusion`, the schedulers, both data formats. What changes is the config: + +- **Text encoder**: OpenCLIP ViT-H/14's text tower, 1024 wide, 16 heads, `gelu`, shipped + truncated to its 23rd (penultimate) layer, which SD 2 conditions on. +- **UNet**: 1024-d cross-attention, one head count per level (`(5, 10, 20, 20)`, a 64-wide + head everywhere, where SD 1.x used 8 heads at every level) and a linear token + projection in the Transformer2D blocks instead of the 1x1 conv. +- **Tokenizer**: the same CLIP BPE, padded with `!` (id 0) the OpenCLIP way rather than + `<|endoftext|>`, so the empty prompt used for classifier-free guidance is + `[<|startoftext|>, <|endoftext|>, !, !, ...]`. +- **768px checkpoints** (`stable-diffusion-2`, `stable-diffusion-2-1`): built at a 96x96 + latent and trained with the **v-prediction** objective; their repos carry a + v-prediction DDIM scheduler, which `generate` picks up from `scheduler_config`. + +The weights are converted once, offline, and hosted: on-the-fly `hf:` conversion is +deliberately **not supported** for diffusion models. The original `stabilityai/*` repos are +no longer on the Hub; the conversion sources are the `sd2-community` mirrors. + +Links: + +- Paper: [High-Resolution Image Synthesis with Latent Diffusion Models (arXiv:2112.10752)](https://arxiv.org/abs/2112.10752) +- Reference implementation: [diffusers `StableDiffusionPipeline`](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/text2img) +- License: [CreativeML Open RAIL++-M](https://huggingface.co/sd2-community/stable-diffusion-2-1/blob/main/LICENSE-MODEL) + +See also [stable_diffusion.md](stable_diffusion.md), [clip.md](clip.md). + +## Variants + +Preconverted, float32 weights are hosted under `zeromodels/`. Load with +`from_weights("zeromodels/")`. Each repo is one container: UNet (866M) + VAE +(84M) + OpenCLIP text encoder (340M), 1.29B parameters, 5.16 GB (4.81 GiB, one +`model.weights.h5`). All four are released under the CreativeML Open RAIL++-M license. + +| Variant | Hub | Resolution | Objective | Training | +|---|---|---|---|---| +| `stable-diffusion-2-base` | [`zeromodels/stable-diffusion-2-base`](https://huggingface.co/zeromodels/stable-diffusion-2-base) | 512 | epsilon | from scratch: 550k steps at 256px on LAION-5B (aesthetics >= 4.5), then 850k steps at 512px | +| `stable-diffusion-2` | [`zeromodels/stable-diffusion-2`](https://huggingface.co/zeromodels/stable-diffusion-2) | 768 | v-prediction | 2-base + 150k steps at 768px | +| `stable-diffusion-2-1-base` | [`zeromodels/stable-diffusion-2-1-base`](https://huggingface.co/zeromodels/stable-diffusion-2-1-base) | 512 | epsilon | 2-base + 220k steps at 512px (punsafe 0.98) | +| `stable-diffusion-2-1` | [`zeromodels/stable-diffusion-2-1`](https://huggingface.co/zeromodels/stable-diffusion-2-1) | 768 | v-prediction | 2 + 55k steps (punsafe 0.1) + 155k steps (punsafe 0.98) at 768px | + +Use the `-base` checkpoints for 512px images and the others for 768px; each repo's +`zm_config.json` builds the graph at its native size. + +## API + +Configs are typed: `StableDiffusion2Config` (composite, `model_type` +`"stable_diffusion_2"`) over `StableDiffusion2UNetConfig` (a `UNet2DConditionConfig` +with the SD 2 widths), `AutoencoderKLConfig` and `StableDiffusion2TextConfig` (a +`CLIPTextConfig` with the ViT-H/14 sizes), plus the scheduler config and the token ids +(`pad_token_id` 0). Flat constructor, `unet_` / `vae_` / `text_` prefixes, like SD 1.x. + +### `StableDiffusion2TextToImage` + +`StableDiffusionTextToImage` with the SD 2 configuration; `generate` is unchanged: + +```python +generate( + input_ids, + attention_mask=None, + negative_input_ids=None, + num_inference_steps=None, + guidance_scale=None, + seed=None, + latents=None, +) +``` + +Returns `(batch, H, W, 3)` uint8 images at the checkpoint's resolution; `latents` is +`(batch, 64, 64, 4)` for the 512px checkpoints and `(batch, 96, 96, 4)` for the 768px +ones (`channels_first`: channels second). Defaults come from the repo's `generate_args` +(50 steps, guidance 7.5). See [Stable Diffusion](stable_diffusion.md#stablediffusiontexttoimage) +for the argument table. + +### `StableDiffusion2Model` + +The container, `StableDiffusionModel` with the SD 2 configuration: the same three +disconnected paths (`.unet`, `.vae`, `.text_encoder`) and the same inputs / outputs, with +`encoder_hidden_states` 1024 wide. It loads the same repo as the task class. + +The components are the SD 1.x classes, `UNet2DConditionModel` (built with +`num_attention_heads=(5, 10, 20, 20)`, `use_linear_projection=True`, +`cross_attention_dim=1024`) and `AutoencoderKL`; see their tables on the +[Stable Diffusion](stable_diffusion.md#api) page. + +## Preprocessing + +### `StableDiffusion2Tokenizer` + +`StableDiffusionTokenizer` with `!` as the pad token: CLIP BPE, `<|startoftext|>` / +`<|endoftext|>` framing, truncated and `!`-padded to 77 tokens. Returns +`{"input_ids", "attention_mask"}`. + +```python +StableDiffusion2Tokenizer(hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="!") +``` + +## End-to-end example + +```python +import os + +os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" + +from PIL import Image +from zeromodels.models.stable_diffusion_2 import ( + StableDiffusion2TextToImage, + StableDiffusion2Tokenizer, +) + +model = StableDiffusion2TextToImage.from_weights("zeromodels/stable-diffusion-2-1-base") +tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/stable-diffusion-2-1-base") + +inputs = tokenizer( + "a steaming bowl of ramen on a wooden table, food photography, shallow depth of field" +) +images = model.generate(**inputs, num_inference_steps=50, guidance_scale=7.5, seed=2) + +Image.fromarray(images[0]).save("ramen.png") # (512, 512, 3) uint8 +``` + +Stable Diffusion 2.1-base: a steaming bowl of ramen on a wooden table, 512px + +### 768px, v-prediction + +The 768px checkpoints need no extra arguments; the v-prediction DDIM scheduler and the +96x96 latent come from the repo: + +```python +model = StableDiffusion2TextToImage.from_weights("zeromodels/stable-diffusion-2-1") +tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/stable-diffusion-2-1") +images = model.generate(**tokenizer("a lighthouse on a cliff at dusk, oil painting")) # (1, 768, 768, 3) +``` + +Negative prompts, batching, explicit `latents` for cross-backend reproducibility, other +resolutions and the container-only use work exactly as on the +[Stable Diffusion](stable_diffusion.md#end-to-end-example) page. + +### Verified against diffusers + +The ramen prompt above with the same initial latent, PNDM 50 steps and guidance 7.5 +through `StableDiffusion2TextToImage` (left) and diffusers' `StableDiffusionPipeline` +(right) on `stable-diffusion-2-1-base`, both fp32: + +zeromodels (left) and diffusers (right) generations of a bowl of ramen from stable-diffusion-2-1-base with the same latent + +``` +tokenizer input_ids identical +text_encoder max|d|=1.5e-05 +unet noise_pred (t=981) max|d|=7.2e-07 +vae decode max|d|=2.6e-06 +final image (uint8) max|d|=1 mean|d|=0.0095 PSNR=68.3 dB identical_pixels=97.22% +``` + +The 768px v-prediction checkpoint (`stable-diffusion-2-1`, DDIM 20 steps, same latent) +matches the same way: UNet 8.3e-6, VAE 7.9e-5, final image max 1 uint8 level, 99.3% of +pixels identical, PSNR 74.6 dB. + +## Data Format + +Both `channels_last` and `channels_first` are supported, as for +[Stable Diffusion](stable_diffusion.md#data-format); `generate` always returns +`(batch, H, W, 3)` uint8. + +## Memory and speed + +The fp32 container is 5.16 GB. At 512px a guided batch-1 run needs a little over 7 GB of +GPU memory in eager Torch (about 1.5x diffusers' eager time); at 768px the self-attention +runs over 9216 tokens, so the guided run needs roughly 12 GB, or the CPU. + +## Loading Fine-tuned Weights + +Any repo laid out like the hosted ones (`zm_config.json` declaring +`StableDiffusion2Model`, the weights, `tokenizer.json`) loads with +`from_weights("/")`. The `hf:` prefix raises for diffusion models: convert a +diffusers-format SD 2 checkpoint once with +`zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py` +(`build_from_diffusers(repo)`, `pip install zeromodels[conversion]`) and host the result. diff --git a/tests/base/model_test_registry.py b/tests/base/model_test_registry.py index 03da6faa..324ceea3 100644 --- a/tests/base/model_test_registry.py +++ b/tests/base/model_test_registry.py @@ -4366,6 +4366,28 @@ "expected_output_shape": dict(_sd_outputs), } +# Stable Diffusion 2.x: the same container / task over the SD 2 configuration (per-level +# attention heads, linear token projection, gelu OpenCLIP-style text tower, "!" padding). +_sd2_tiny = dict( + _sd_tiny, unet_num_attention_heads=(2, 4), unet_use_linear_projection=True +) +MODEL_TEST_CONFIGS["StableDiffusion2Model"] = { + "module": "zeromodels.models.stable_diffusion_2", + "model_cls": "StableDiffusion2Model", + "model_type": "diffusion", + "init_kwargs": dict(_sd2_tiny), + "input_factory": "stable_diffusion_input", + "expected_output_shape": dict(_sd_outputs), +} +MODEL_TEST_CONFIGS["StableDiffusion2TextToImage"] = { + "module": "zeromodels.models.stable_diffusion_2", + "model_cls": "StableDiffusion2TextToImage", + "model_type": "diffusion", + "init_kwargs": dict(_sd2_tiny), + "input_factory": "stable_diffusion_input", + "expected_output_shape": dict(_sd_outputs), +} + def get_all_model_ids(): return list(MODEL_TEST_CONFIGS.keys()) diff --git a/website/mkdocs.yml b/website/mkdocs.yml index 88c7fdab..bf80005c 100644 --- a/website/mkdocs.yml +++ b/website/mkdocs.yml @@ -231,6 +231,7 @@ nav: - SigLIP: siglip.md - SigLIP 2: siglip2.md - Stable Diffusion: stable_diffusion.md + - Stable Diffusion 2: stable_diffusion_2.md - TIPSv2: tipsv2.md - Loading Weights: loading_weights.md diff --git a/zeromodels/auto/auto_mapping_names.py b/zeromodels/auto/auto_mapping_names.py index 41ffd264..a87c35cb 100644 --- a/zeromodels/auto/auto_mapping_names.py +++ b/zeromodels/auto/auto_mapping_names.py @@ -271,6 +271,7 @@ "siglip": "SigLIPModel", "siglip2": "SigLIP2Model", "stable_diffusion": "StableDiffusionModel", + "stable_diffusion_2": "StableDiffusion2Model", "swin": "SwinModel", "swinv2": "SwinV2Model", "t5": "T5Model", @@ -399,6 +400,7 @@ }, "TextToImage": { "stable_diffusion": "StableDiffusionTextToImage", + "stable_diffusion_2": "StableDiffusion2TextToImage", }, "TokenClassify": { "bert": "BertTokenClassify", @@ -655,6 +657,7 @@ "speech_to_text_audio": "Speech2TextAudioConfig", "speech_to_text_text": "Speech2TextTextConfig", "stable_diffusion": "StableDiffusionConfig", + "stable_diffusion_2": "StableDiffusion2Config", "swin": "SwinConfig", "swinv2": "SwinV2Config", "t5": "T5Config", @@ -750,6 +753,7 @@ "siglip2": "SigLIP2Tokenizer", "speech_to_text": "Speech2TextTokenizer", "stable_diffusion": "StableDiffusionTokenizer", + "stable_diffusion_2": "StableDiffusion2Tokenizer", "t5": "T5Tokenizer", "tipsv2": "Tipsv2Tokenizer", "whisper": "WhisperTokenizer", diff --git a/zeromodels/models/__init__.py b/zeromodels/models/__init__.py index a08ae0c7..75590956 100644 --- a/zeromodels/models/__init__.py +++ b/zeromodels/models/__init__.py @@ -121,6 +121,7 @@ siglip2, speech2text, stable_diffusion, + stable_diffusion_2, swin, swinv2, t5, diff --git a/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py b/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py index 816d73c6..f0065105 100644 --- a/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py +++ b/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py @@ -123,8 +123,11 @@ def numpy_state_dict(module): def diffusers_configs(repo, token=None): from diffusers import AutoencoderKL, PNDMScheduler, UNet2DConditionModel - from transformers import CLIPTextConfig + from transformers import CLIPTextConfig, CLIPTokenizerFast + tokenizer = CLIPTokenizerFast.from_pretrained( + repo, subfolder="tokenizer", token=token + ) return { "unet": dict( UNet2DConditionModel.load_config(repo, subfolder="unet", token=token) @@ -137,14 +140,21 @@ def diffusers_configs(repo, token=None): "scheduler": dict( PNDMScheduler.load_config(repo, subfolder="scheduler", token=token) ), + # the pad token differs between checkpoints (<|endoftext|> 49407, "!" 0) + "tokens": { + "bos_token_id": tokenizer.bos_token_id, + "eos_token_id": tokenizer.eos_token_id, + "pad_token_id": tokenizer.pad_token_id, + }, } -def config_from_diffusers(repo, token=None): +def config_from_diffusers(repo, token=None, config_cls=None): from zeromodels.models.stable_diffusion.stable_diffusion_config import ( StableDiffusionConfig, ) + config_cls = config_cls or StableDiffusionConfig src = diffusers_configs(repo, token=token) unet, vae, text = src["unet"], src["vae"], src["text"] scheduler = { @@ -153,11 +163,12 @@ def config_from_diffusers(repo, token=None): if k == "_class_name" or not k.startswith("_") } + # diffusers' "attention_head_dim" is the head count, scalar or one per level heads = unet.get("num_attention_heads") or unet.get("attention_head_dim", 8) if isinstance(heads, (list, tuple)): - heads = heads[0] + heads = tuple(heads) hidden = text["hidden_size"] - return StableDiffusionConfig( + return config_cls( unet_config={ "sample_size": unet.get("sample_size", 64), "in_channels": unet.get("in_channels", 4), @@ -169,6 +180,7 @@ def config_from_diffusers(repo, token=None): "cross_attention_dim": unet.get("cross_attention_dim", 768), "num_attention_heads": heads, "norm_num_groups": unet.get("norm_num_groups", 32), + "use_linear_projection": unet.get("use_linear_projection", False), }, vae_config={ "in_channels": vae.get("in_channels", 3), @@ -177,8 +189,13 @@ def config_from_diffusers(repo, token=None): "block_out_channels": tuple(vae["block_out_channels"]), "layers_per_block": vae.get("layers_per_block", 2), "norm_num_groups": vae.get("norm_num_groups", 32), - "sample_size": vae.get("sample_size", 512), - "scaling_factor": vae.get("scaling_factor", 0.18215), + # the pipeline resolution is the UNet's latent size x the VAE's + # compression; the VAE config's own sample_size is not what the + # checkpoint generates at (768 on the 512px SD 2.1-base repo) + "sample_size": unet.get("sample_size", 64) + * 2 ** (len(vae["block_out_channels"]) - 1), + "scaling_factor": vae.get("scaling_factor") + or 0.18215, # null in some repos }, text_config={ "hidden_dim": hidden, @@ -191,10 +208,11 @@ def config_from_diffusers(repo, token=None): hidden_act=text.get("hidden_act", "quick_gelu"), layer_norm_eps=text.get("layer_norm_eps", 1e-5), scheduler_config=scheduler, + **src["tokens"], ) -def build_from_diffusers(repo, token=None): +def build_from_diffusers(repo, token=None, model_cls=None, config_cls=None): import gc import torch @@ -208,8 +226,9 @@ def build_from_diffusers(repo, token=None): UNet2DConditionModel, ) - config = config_from_diffusers(repo, token=token) - model = StableDiffusionModel(config) + model_cls = model_cls or StableDiffusionModel + config = config_from_diffusers(repo, token=token, config_cls=config_cls) + model = model_cls(config) load = {"torch_dtype": torch.float32, "token": token} unet = DiffusersUNet2DConditionModel.from_pretrained(repo, subfolder="unet", **load) diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_config.py b/zeromodels/models/stable_diffusion/stable_diffusion_config.py index 79a96b8c..b71b3d12 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_config.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_config.py @@ -7,7 +7,9 @@ class UNet2DConditionConfig(BaseConfig): The defaults match the Stable Diffusion 1.x UNet (860M parameters). Fields mirror the model constructor and serialize flat; build a model from it with - ``UNet2DConditionModel(config)``. + ``UNet2DConditionModel(config)``. The same class serves later UNets that only + change the widths (Stable Diffusion 2.x: 1024-d cross-attention, one head count + per level, a linear token projection). Args: sample_size (`int`, *optional*, defaults to 64): @@ -23,10 +25,14 @@ class UNet2DConditionConfig(BaseConfig): ResNet blocks per down level (up levels use one more). cross_attention_dim (`int`, *optional*, defaults to 768): Width of the text ``encoder_hidden_states``. - num_attention_heads (`int`, *optional*, defaults to 8): - Attention heads in the ``CrossAttn`` blocks. + num_attention_heads (`int` or `tuple`, *optional*, defaults to 8): + Attention heads in the ``CrossAttn`` blocks, one value for every level + or a tuple with one per level. norm_num_groups (`int`, *optional*, defaults to 32): GroupNorm group count. + use_linear_projection (`bool`, *optional*, defaults to False): + Project the Transformer2D tokens with a linear layer instead of a 1x1 + convolution on the feature map. text_seq_len (`int`, *optional*, defaults to 77): Static text sequence length (CLIP pads to 77). @@ -61,8 +67,9 @@ class UNet2DConditionConfig(BaseConfig): block_out_channels: tuple = (320, 640, 1280, 1280) layers_per_block: int = 2 cross_attention_dim: int = 768 - num_attention_heads: int = 8 + num_attention_heads: int | tuple = 8 norm_num_groups: int = 32 + use_linear_projection: bool = False text_seq_len: int = 77 diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_layers.py b/zeromodels/models/stable_diffusion/stable_diffusion_layers.py index 1ff117db..c4aa9f31 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_layers.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_layers.py @@ -360,8 +360,8 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") class Transformer2DModel(layers.Layer): - """Diffusers ``Transformer2DModel``: GroupNorm, 1x1 in-proj, one - ``BasicTransformerBlock`` over the flattened spatial tokens, 1x1 out-proj, + """Diffusers ``Transformer2DModel``: GroupNorm, in-proj, one + ``BasicTransformerBlock`` over the flattened spatial tokens, out-proj, residual. ``call([x, context])`` with ``x`` in the active image data format. Args: @@ -369,6 +369,8 @@ class Transformer2DModel(layers.Layer): heads: Attention heads. module_path: Diffusers module path (``down_blocks.0.attentions.0``). groups: GroupNorm groups. + use_linear_projection: Project the flattened tokens with a linear layer + instead of the feature map with a 1x1 conv. data_format: ``"channels_last"`` or ``"channels_first"``; defaults to ``keras.config.image_data_format()``. channels_axis: The channel axis of that layout (``-1`` or ``1``). @@ -380,6 +382,7 @@ def __init__( heads, module_path, groups=GROUPS, + use_linear_projection=False, data_format=None, channels_axis=None, **kwargs, @@ -390,6 +393,7 @@ def __init__( self.heads = heads self.module_path = module_path self.groups = groups + self.use_linear_projection = use_linear_projection self.data_format = data_format or keras.config.image_data_format() self.channels_axis = ( channels_axis @@ -402,23 +406,31 @@ def __init__( epsilon=GROUP_EPS, name=safe_name(f"{module_path}.norm"), ) - self.proj_in = layers.Conv2D( - channels, - 1, - padding="valid", - data_format=self.data_format, - name=safe_name(f"{module_path}.proj_in"), - ) + if use_linear_projection: + self.proj_in = layers.Dense( + channels, name=safe_name(f"{module_path}.proj_in") + ) + self.proj_out = layers.Dense( + channels, name=safe_name(f"{module_path}.proj_out") + ) + else: + self.proj_in = layers.Conv2D( + channels, + 1, + padding="valid", + data_format=self.data_format, + name=safe_name(f"{module_path}.proj_in"), + ) + self.proj_out = layers.Conv2D( + channels, + 1, + padding="valid", + data_format=self.data_format, + name=safe_name(f"{module_path}.proj_out"), + ) self.transformer_block = BasicTransformerBlock( channels, heads, module_path=f"{module_path}.transformer_blocks.0" ) - self.proj_out = layers.Conv2D( - channels, - 1, - padding="valid", - data_format=self.data_format, - name=safe_name(f"{module_path}.proj_out"), - ) def build(self, input_shape): x_shape, context_shape = input_shape @@ -428,17 +440,23 @@ def build(self, input_shape): else: height, width = x_shape[1], x_shape[2] proj_shape = (x_shape[0], height, width, self.channels) + tokens_shape = (x_shape[0], height * width, self.channels) self.norm.build(x_shape) - self.proj_in.build(x_shape) - self.transformer_block.build( - ((x_shape[0], height * width, self.channels), context_shape) - ) - self.proj_out.build(proj_shape) + if self.use_linear_projection: + # the projections act on the (B, H*W, C) tokens + self.proj_in.build(tokens_shape) + self.proj_out.build(tokens_shape) + else: + self.proj_in.build(x_shape) + self.proj_out.build(proj_shape) + self.transformer_block.build((tokens_shape, context_shape)) self.built = True def call(self, inputs): x, context = inputs - h = self.proj_in(self.norm(x)) + h = self.norm(x) + if not self.use_linear_projection: + h = self.proj_in(h) # 1x1 conv on the feature map shape = ops.shape(h) if self.data_format == "channels_first": # (B, C, H, W) -> (B, H*W, C) @@ -447,11 +465,17 @@ def call(self, inputs): else: height, width = shape[1], shape[2] h = ops.reshape(h, (-1, height * width, self.channels)) + if self.use_linear_projection: + h = self.proj_in(h) # linear on the tokens h = self.transformer_block([h, context]) + if self.use_linear_projection: + h = self.proj_out(h) h = ops.reshape(h, (-1, height, width, self.channels)) if self.data_format == "channels_first": h = ops.transpose(h, (0, 3, 1, 2)) - return x + self.proj_out(h) + if not self.use_linear_projection: + h = self.proj_out(h) + return x + h def compute_output_shape(self, input_shape): return tuple(input_shape[0]) @@ -464,6 +488,7 @@ def get_config(self): "heads": self.heads, "module_path": self.module_path, "groups": self.groups, + "use_linear_projection": self.use_linear_projection, "data_format": self.data_format, "channels_axis": self.channels_axis, } diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_model.py b/zeromodels/models/stable_diffusion/stable_diffusion_model.py index 5d449ee5..c0c02c36 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_model.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_model.py @@ -58,8 +58,10 @@ class UNet2DConditionModel(BaseModel): Args mirror the diffusers config: ``in_channels`` / ``out_channels`` (4), ``block_out_channels`` ((320, 640, 1280, 1280)), ``layers_per_block`` (2), - ``cross_attention_dim`` (768), ``num_attention_heads`` (8), ``norm_num_groups`` - (32), and the ``down_block_types`` / ``up_block_types`` lists. + ``cross_attention_dim`` (768), ``num_attention_heads`` (8, or one value per + level), ``norm_num_groups`` (32), ``use_linear_projection`` (a linear token + projection instead of the 1x1 conv) and the ``down_block_types`` / + ``up_block_types`` lists. """ HF_MODEL_TYPE = None @@ -77,6 +79,7 @@ def __init__( cross_attention_dim=768, num_attention_heads=8, norm_num_groups=32, + use_linear_projection=False, text_seq_len=77, data_format=None, channels_axis=None, @@ -86,7 +89,11 @@ def __init__( data_format = data_format or keras.config.image_data_format() if channels_axis is None: channels_axis = -1 if data_format == "channels_last" else 1 - heads = num_attention_heads + # heads per level (diffusers' attention_head_dim list), mirrored on the way up + if isinstance(num_attention_heads, (tuple, list)): + heads_per_level = tuple(num_attention_heads) + else: + heads_per_level = (num_attention_heads,) * len(block_out_channels) time_embed_dim = block_out_channels[0] * 4 sample_h, sample_w = ( sample_size @@ -130,9 +137,10 @@ def __init__( if block_type == CROSS_ATTN_DOWN: sample = Transformer2DModel( out_ch, - heads, + heads_per_level[i], module_path=f"down_blocks.{i}.attentions.{j}", groups=norm_num_groups, + use_linear_projection=use_linear_projection, data_format=data_format, channels_axis=channels_axis, )([sample, context]) @@ -156,9 +164,10 @@ def __init__( )([sample, temb]) sample = Transformer2DModel( mid_ch, - heads, + heads_per_level[-1], module_path="mid_block.attentions.0", groups=norm_num_groups, + use_linear_projection=use_linear_projection, data_format=data_format, channels_axis=channels_axis, )([sample, context]) @@ -171,6 +180,7 @@ def __init__( )([sample, temb]) reversed_channels = list(reversed(block_out_channels)) + reversed_heads = list(reversed(heads_per_level)) for i, block_type in enumerate(up_block_types): out_ch = reversed_channels[i] for j in range(layers_per_block + 1): @@ -185,9 +195,10 @@ def __init__( if block_type == CROSS_ATTN_UP: sample = Transformer2DModel( out_ch, - heads, + reversed_heads[i], module_path=f"up_blocks.{i}.attentions.{j}", groups=norm_num_groups, + use_linear_projection=use_linear_projection, data_format=data_format, channels_axis=channels_axis, )([sample, context]) @@ -235,16 +246,23 @@ def __init__( self.block_out_channels = tuple(block_out_channels) self.layers_per_block = layers_per_block self.cross_attention_dim = cross_attention_dim - self.num_attention_heads = num_attention_heads + self.num_attention_heads = ( + tuple(num_attention_heads) + if isinstance(num_attention_heads, (tuple, list)) + else num_attention_heads + ) self.norm_num_groups = norm_num_groups + self.use_linear_projection = use_linear_projection self.text_seq_len = text_seq_len @classmethod def from_diffusers_config(cls, config, **kwargs): """Build from a diffusers ``unet/config.json`` dict.""" + # diffusers' "attention_head_dim" is the head COUNT (legacy name), a scalar + # or one value per level heads = config.get("num_attention_heads") or config.get("attention_head_dim", 8) if isinstance(heads, (list, tuple)): - heads = heads[0] + heads = tuple(heads) return cls( sample_size=config.get("sample_size", 64), in_channels=config.get("in_channels", 4), @@ -256,6 +274,7 @@ def from_diffusers_config(cls, config, **kwargs): cross_attention_dim=config.get("cross_attention_dim", 768), num_attention_heads=heads, norm_num_groups=config.get("norm_num_groups", 32), + use_linear_projection=config.get("use_linear_projection", False), **kwargs, ) @@ -277,6 +296,7 @@ def get_config(self): "cross_attention_dim": self.cross_attention_dim, "num_attention_heads": self.num_attention_heads, "norm_num_groups": self.norm_num_groups, + "use_linear_projection": self.use_linear_projection, "text_seq_len": self.text_seq_len, "name": self.name, } @@ -657,7 +677,7 @@ class StableDiffusionModel(BaseModel): def __init__(self, name="StableDiffusionModel", **kwargs): keras_kwargs = {k: kwargs.pop(k) for k in ("trainable", "dtype") if k in kwargs} - config = StableDiffusionConfig.from_dict(kwargs) # regroup the flat kwargs + config = self.config_class.from_dict(kwargs) # regroup the flat kwargs u, v, t = config.unet_config, config.vae_config, config.text_config data_format = keras.config.image_data_format() diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_tokenizer.py b/zeromodels/models/stable_diffusion/stable_diffusion_tokenizer.py index f16868d3..6a20d1a0 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_tokenizer.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_tokenizer.py @@ -19,9 +19,17 @@ class StableDiffusionTokenizer(CLIPTokenizer): ``tokenizer_file`` is given (no default repo). tokenizer_file: Explicit ``tokenizer.json`` path (overrides ``hf_id``). max_seq_len: Padded / truncated length (default 77). + pad_token: Pad token string (``<|endoftext|>``). """ - def __init__(self, hf_id=None, tokenizer_file=None, max_seq_len=77, **kwargs): + def __init__( + self, + hf_id=None, + tokenizer_file=None, + max_seq_len=77, + pad_token="<|endoftext|>", + **kwargs, + ): if tokenizer_file is None and hf_id is None: raise ValueError( f"{type(self).__name__}() needs an hf_id (a hosted repo, read from its " @@ -32,7 +40,10 @@ def __init__(self, hf_id=None, tokenizer_file=None, max_seq_len=77, **kwargs): if tokenizer_file is None: tokenizer_file = self.download_tokenizer_json(hf_id) super().__init__( - tokenizer_file=tokenizer_file, max_seq_len=max_seq_len, **kwargs + tokenizer_file=tokenizer_file, + max_seq_len=max_seq_len, + pad_token=pad_token, + **kwargs, ) self.hf_id = hf_id diff --git a/zeromodels/models/stable_diffusion_2/__init__.py b/zeromodels/models/stable_diffusion_2/__init__.py new file mode 100644 index 00000000..45b64e47 --- /dev/null +++ b/zeromodels/models/stable_diffusion_2/__init__.py @@ -0,0 +1,19 @@ +from .stable_diffusion_2_config import ( + StableDiffusion2Config, + StableDiffusion2TextConfig, + StableDiffusion2UNetConfig, +) +from .stable_diffusion_2_model import ( + StableDiffusion2Model, + StableDiffusion2TextToImage, +) +from .stable_diffusion_2_tokenizer import StableDiffusion2Tokenizer + +__all__ = [ + "StableDiffusion2Model", + "StableDiffusion2TextToImage", + "StableDiffusion2Config", + "StableDiffusion2TextConfig", + "StableDiffusion2UNetConfig", + "StableDiffusion2Tokenizer", +] diff --git a/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py new file mode 100644 index 00000000..937ede91 --- /dev/null +++ b/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py @@ -0,0 +1,84 @@ +import numpy as np + +from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( + build_from_diffusers as build_stable_diffusion_from_diffusers, +) +from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( + config_from_diffusers as stable_diffusion_config_from_diffusers, +) + +# Stable Diffusion 2.x: one architecture, four checkpoints (the 768px ones are +# v-prediction models built at sample_size 96). The stabilityai repos are no longer +# on the Hub; sd2-community mirrors them in the same diffusers layout. This script +# only converts weights, the SD 1.x way (see that converter); the hosting tooling +# writes zm_config.json / tokenizer.json. +STABLE_DIFFUSION_2_SOURCES = { + "stable-diffusion-2-base": "sd2-community/stable-diffusion-2-base", + "stable-diffusion-2": "sd2-community/stable-diffusion-2", + "stable-diffusion-2-1-base": "sd2-community/stable-diffusion-2-1-base", + "stable-diffusion-2-1": "sd2-community/stable-diffusion-2-1", +} + + +def config_from_diffusers(repo, token=None): + from zeromodels.models.stable_diffusion_2.stable_diffusion_2_config import ( + StableDiffusion2Config, + ) + + return stable_diffusion_config_from_diffusers( + repo, token=token, config_cls=StableDiffusion2Config + ) + + +def build_from_diffusers(repo, token=None): + from zeromodels.models.stable_diffusion_2.stable_diffusion_2_config import ( + StableDiffusion2Config, + ) + from zeromodels.models.stable_diffusion_2.stable_diffusion_2_model import ( + StableDiffusion2Model, + ) + + return build_stable_diffusion_from_diffusers( + repo, + token=token, + model_cls=StableDiffusion2Model, + config_cls=StableDiffusion2Config, + ) + + +if __name__ == "__main__": + import gc + import os + + import keras + + OUT_DIR = os.environ.get("ZM_OUT_DIR", "C:/Users/gites/Desktop/code/v1_weights") + os.makedirs(OUT_DIR, exist_ok=True) + MAX_SHARD_GB = 5.0 + token = os.environ.get("HF_TOKEN") + # ZM_VARIANTS="stable-diffusion-2-1,stable-diffusion-2-1-base" converts a subset + # (each variant is a ~5 GB download and a ~5 GB output); default: all four. + selected = [v for v in os.environ.get("ZM_VARIANTS", "").split(",") if v] + sources = { + variant: source + for variant, source in STABLE_DIFFUSION_2_SOURCES.items() + if not selected or variant in selected + } + + for variant, source in sources.items(): + print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") + model, config = build_from_diffusers(source, token=token) + + n_bytes = sum(int(np.prod(w.shape)) * 4 for w in model.weights) + stem = os.path.join(OUT_DIR, variant.replace("-", "_")) + if n_bytes > MAX_SHARD_GB * 1024**3: + out = f"{stem}.weights.json" + model.save_weights(out, max_shard_size=MAX_SHARD_GB) + else: + out = f"{stem}.weights.h5" + model.save_weights(out) + print(f" saved -> {out} ({n_bytes / 1024**3:.2f} GB fp32)") + + del model + keras.backend.clear_session() + gc.collect() diff --git a/zeromodels/models/stable_diffusion_2/stable_diffusion_2_config.py b/zeromodels/models/stable_diffusion_2/stable_diffusion_2_config.py new file mode 100644 index 00000000..edf18cba --- /dev/null +++ b/zeromodels/models/stable_diffusion_2/stable_diffusion_2_config.py @@ -0,0 +1,79 @@ +from zeromodels.models.clip.clip_config import CLIPTextConfig +from zeromodels.models.stable_diffusion.stable_diffusion_config import ( + StableDiffusionConfig, + UNet2DConditionConfig, +) + + +class StableDiffusion2UNetConfig(UNet2DConditionConfig): + r"""The Stable Diffusion 2.x denoiser: a [`UNet2DConditionConfig`] with the SD 2 + widths. + + Same fields as [`UNet2DConditionConfig`]; the defaults are the SD 2.x UNet (865M + parameters): a 1024-d text context (OpenCLIP ViT-H/14), one head count per level + ((5, 10, 20, 20), a 64-wide head everywhere) and a linear token projection in the + Transformer2D blocks. ``sample_size`` is 64 for the 512px checkpoints and 96 for + the 768px ones.""" + + cross_attention_dim: int = 1024 + num_attention_heads: int | tuple = (5, 10, 20, 20) + use_linear_projection: bool = True + + +class StableDiffusion2TextConfig(CLIPTextConfig): + r"""The Stable Diffusion 2.x text tower: OpenCLIP ViT-H/14's text encoder. + + Same fields as [`CLIPTextConfig`], defaulted to the ViT-H/14 sizes (1024 wide, + 16 heads) with 23 layers: the checkpoints ship the encoder truncated to its + penultimate layer, which SD 2 conditions on. The activation is ``gelu`` (set + through the top-level ``hidden_act``).""" + + hidden_dim: int = 1024 + num_heads: int = 16 + num_layers: int = 23 + + +class StableDiffusion2Config(StableDiffusionConfig): + r"""Configuration for [`StableDiffusion2Model`], the hosted SD 2.x weights container. + + Same shape as [`StableDiffusionConfig`] (one nested ``unet_config`` / + ``vae_config`` / ``text_config`` plus the scheduler and token ids; flat + constructor), with the SD 2.x defaults: the [`StableDiffusion2UNetConfig`] + denoiser, the [`StableDiffusion2TextConfig`] OpenCLIP-H text tower with ``gelu``, + and ``!`` (id 0) as the pad token. The four SD 2.x checkpoints (2-base, 2, + 2-1-base, 2-1) share this architecture up to ``sample_size``; the 768px ones ship + a v-prediction scheduler. + + Args: + unet_config ([`StableDiffusion2UNetConfig`], *optional*): The denoiser. + vae_config ([`AutoencoderKLConfig`], *optional*): The VAE. + text_config ([`StableDiffusion2TextConfig`], *optional*): The OpenCLIP + ViT-H/14 text encoder. + hidden_act (`str`, *optional*, defaults to `"gelu"`): + Text encoder activation. + pad_token_id (`int`, *optional*, defaults to 0): + OpenCLIP pads with ``!`` (id 0) rather than ``<|endoftext|>``. + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_2 import StableDiffusion2Config, StableDiffusion2Model + + >>> config = StableDiffusion2Config() + >>> model = StableDiffusion2Model(config) # random weights, SD 2.x shapes + >>> model.config.unet_config.num_attention_heads + (5, 10, 20, 20) + ```""" + + model_type = "stable_diffusion_2" + + sub_configs = { + "unet_config": StableDiffusion2UNetConfig, + "vae_config": StableDiffusionConfig.sub_configs["vae_config"], + "text_config": StableDiffusion2TextConfig, + } + + unet_config: StableDiffusion2UNetConfig | dict | None = None + text_config: StableDiffusion2TextConfig | dict | None = None + hidden_act: str = "gelu" + pad_token_id: int = 0 diff --git a/zeromodels/models/stable_diffusion_2/stable_diffusion_2_model.py b/zeromodels/models/stable_diffusion_2/stable_diffusion_2_model.py new file mode 100644 index 00000000..e27ec14c --- /dev/null +++ b/zeromodels/models/stable_diffusion_2/stable_diffusion_2_model.py @@ -0,0 +1,69 @@ +import keras + +from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + StableDiffusionModel, + StableDiffusionTextToImage, +) + +from .stable_diffusion_2_config import StableDiffusion2Config + +# The container and the task build the identical graph, so both load the one +# hosted repo (whose zm_config.json names the container). +STABLE_DIFFUSION_2_HUB_SIBLINGS = frozenset( + {"StableDiffusion2Model", "StableDiffusion2TextToImage"} +) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion2Model(StableDiffusionModel): + """Stable Diffusion 2.x weights container: the UNet, the VAE and the OpenCLIP + ViT-H/14 text encoder as one functional ``keras.Model``. + + The SD 1.x container with the SD 2.x configuration + (:class:`StableDiffusion2Config`): the same three disconnected sub-graphs and + the same components (``.unet`` / ``.vae`` / ``.text_encoder``), with a 1024-d + text context, one attention head count per UNet level, a linear token + projection in the Transformer2D blocks and the 23-layer ``gelu`` text tower. + Hosted as one ``zm_config.json`` + ``model.weights.h5`` per checkpoint under + ``zeromodels/stable-diffusion-2*``; on-the-fly ``hf:`` conversion is not + supported for diffusion models. + + Args: + **kwargs: The flat :class:`StableDiffusion2Config` fields (``unet_`` / + ``vae_`` / ``text_`` prefixed), or a config positionally. Pass + ``unet_sample_size=96, vae_sample_size=768`` for the 768px checkpoints + (their repos already carry it). + """ + + config_class = StableDiffusion2Config + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_2_HUB_SIBLINGS + + def __init__(self, name="StableDiffusion2Model", **kwargs): + super().__init__(name=name, **kwargs) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion2TextToImage(StableDiffusionTextToImage): + """Text-to-image Stable Diffusion 2.x, pure Keras 3 and cross-backend. + + :class:`StableDiffusionTextToImage` with the SD 2.x configuration: the same + ``generate`` (``BaseDiffusion``) over the SD 2 graph, so the checkpoint's + ``!``-padded empty prompt drives classifier-free guidance and its scheduler + (PNDM for ``stable-diffusion-2-1-base``, DDIM for the others, v-prediction for + the 768px checkpoints) comes from the repo's ``scheduler_config``:: + + sd = StableDiffusion2TextToImage.from_weights("zeromodels/stable-diffusion-2-1") + tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/stable-diffusion-2-1") + image = sd.generate(**tokenizer("a photo of a cat")) # (1, 768, 768, 3) uint8 + + Args: + scheduler: A :class:`BaseScheduler`; defaults to the config's + ``scheduler_config``. + **kwargs: The flat :class:`StableDiffusion2Config` fields. + """ + + config_class = StableDiffusion2Config + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_2_HUB_SIBLINGS + + def __init__(self, scheduler=None, name="StableDiffusion2TextToImage", **kwargs): + super().__init__(scheduler=scheduler, name=name, **kwargs) diff --git a/zeromodels/models/stable_diffusion_2/stable_diffusion_2_tokenizer.py b/zeromodels/models/stable_diffusion_2/stable_diffusion_2_tokenizer.py new file mode 100644 index 00000000..c9d33103 --- /dev/null +++ b/zeromodels/models/stable_diffusion_2/stable_diffusion_2_tokenizer.py @@ -0,0 +1,34 @@ +import keras + +from zeromodels.models.stable_diffusion.stable_diffusion_tokenizer import ( + StableDiffusionTokenizer, +) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion2Tokenizer(StableDiffusionTokenizer): + """Stable Diffusion 2.x text tokenizer: the OpenCLIP ViT-H/14 BPE tokenizer. + + The same byte-pair encoding and ``<|startoftext|>`` / ``<|endoftext|>`` framing + as CLIP ViT-L/14's, truncated to 77 tokens, but padded with ``!`` (id 0) the + way OpenCLIP does, which is what the SD 2 text encoder was trained on. Loads by + repo id like the model: ``from_weights("zeromodels/stable-diffusion-2-1")``. + + Args: + hf_id: Hosted repo to read ``tokenizer.json`` from. Required unless + ``tokenizer_file`` is given (no default repo). + tokenizer_file: Explicit ``tokenizer.json`` path (overrides ``hf_id``). + max_seq_len: Padded / truncated length (default 77). + pad_token: Pad token string (``!``). + """ + + def __init__( + self, hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="!", **kwargs + ): + super().__init__( + hf_id=hf_id, + tokenizer_file=tokenizer_file, + max_seq_len=max_seq_len, + pad_token=pad_token, + **kwargs, + ) From d2e582547b659a044b9471037029d5f78a1191b3 Mon Sep 17 00:00:00 2001 From: IMvision12 Date: Sat, 12 Sep 2026 15:39:22 -0700 Subject: [PATCH 2/4] Add SDXL and Turbo --- README.md | 5 +- .../stable_diffusion_2_sd_turbo_raccoon.jpg | Bin 0 -> 64614 bytes assets/stable_diffusion_xl_lighthouse.jpg | Bin 0 -> 187101 bytes ...stable_diffusion_xl_refiner_lighthouse.jpg | Bin 0 -> 165565 bytes ...able_diffusion_xl_text_to_image_output.jpg | Bin 0 -> 327480 bytes assets/stable_diffusion_xl_turbo_raccoon.jpg | Bin 0 -> 53187 bytes docs/main_classes.md | 37 +- docs/models.md | 1 + docs/stable_diffusion_2.md | 26 +- docs/stable_diffusion_xl.md | 354 +++++++++++++ tests/base/model_test_registry.py | 109 ++++ tests/fixtures/dummy_inputs.py | 50 ++ tests/integration/test_auto_registry.py | 1 + website/mkdocs.yml | 1 + zeromodels/auto/auto_mapping_names.py | 10 + zeromodels/base/base_diffusion.py | 206 +++++++- zeromodels/base/base_scheduler.py | 135 +++-- zeromodels/models/__init__.py | 1 + zeromodels/models/clip/clip_model.py | 44 +- ...ert_stable_diffusion_diffusers_to_keras.py | 29 +- .../stable_diffusion_config.py | 24 + .../stable_diffusion_layers.py | 32 +- .../stable_diffusion_model.py | 384 +++++++++----- ...t_stable_diffusion_2_diffusers_to_keras.py | 11 +- .../models/stable_diffusion_xl/__init__.py | 29 + ..._stable_diffusion_xl_diffusers_to_keras.py | 251 +++++++++ .../stable_diffusion_xl_config.py | 215 ++++++++ .../stable_diffusion_xl_model.py | 496 ++++++++++++++++++ .../stable_diffusion_xl_tokenizer.py | 42 ++ 29 files changed, 2250 insertions(+), 243 deletions(-) create mode 100644 assets/stable_diffusion_2_sd_turbo_raccoon.jpg create mode 100644 assets/stable_diffusion_xl_lighthouse.jpg create mode 100644 assets/stable_diffusion_xl_refiner_lighthouse.jpg create mode 100644 assets/stable_diffusion_xl_text_to_image_output.jpg create mode 100644 assets/stable_diffusion_xl_turbo_raccoon.jpg create mode 100644 docs/stable_diffusion_xl.md create mode 100644 zeromodels/models/stable_diffusion_xl/__init__.py create mode 100644 zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py create mode 100644 zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_config.py create mode 100644 zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_model.py create mode 100644 zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_tokenizer.py diff --git a/README.md b/README.md index 4cb3c7ba..34621473 100644 --- a/README.md +++ b/README.md @@ -250,7 +250,8 @@ Documentation sources are also available in [`docs/`](docs/). | 🏷️ Model Name | 📜 Reference Paper | 📦 Source of Weights | |---------------|-------------------|---------------------| | Stable Diffusion 1.x (v1-1 to v1-5) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | - | Stable Diffusion 2.x (2, 2-base, 2-1, 2-1-base) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | + | Stable Diffusion 2.x (2, 2-base, 2-1, 2-1-base, SD-Turbo) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | + | Stable Diffusion XL (base + refiner 0.9 / 1.0, SDXL-Turbo) | [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis](https://arxiv.org/abs/2307.01952) | `diffusers` |
@@ -277,7 +278,7 @@ Documentation sources are also available in [`docs/`](docs/). ## 📜 License -This project leverages [timm](https://github.com/huggingface/pytorch-image-models#licenses), [transformers](https://github.com/huggingface/transformers#license) and [diffusers](https://github.com/huggingface/diffusers#license) for converting pretrained weights from PyTorch to Keras. For licensing details, please refer to the respective repositories. Converted weights keep their upstream license (for example, the Stable Diffusion checkpoints are CreativeML OpenRAIL-M). +This project leverages [timm](https://github.com/huggingface/pytorch-image-models#licenses), [transformers](https://github.com/huggingface/transformers#license) and [diffusers](https://github.com/huggingface/diffusers#license) for converting pretrained weights from PyTorch to Keras. For licensing details, please refer to the respective repositories. Converted weights keep their upstream license (for example, the Stable Diffusion checkpoints are CreativeML OpenRAIL-M / OpenRAIL++-M, and SDXL-Turbo is non-commercial under the Stability AI Community License). - 🔖 **zeromodels Code**: This repository is licensed under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0). diff --git a/assets/stable_diffusion_2_sd_turbo_raccoon.jpg b/assets/stable_diffusion_2_sd_turbo_raccoon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08f2086f73293f23236ac6feb0d46b3fb8a6c913 GIT binary patch literal 64614 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 literal 0 HcmV?d00001 diff --git a/assets/stable_diffusion_xl_lighthouse.jpg b/assets/stable_diffusion_xl_lighthouse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8abe970ab4b02c520fa1fd4d43f132d98647c405 GIT binary patch literal 187101 zcmbTdXH-*9^fnrLZyJy;9TEfu0@9n(LQO(5M5GBM6zL)eQbi-Z2!zm+&;&t36H!`d zia@9WDjg}oLa|`E`TcKO>;3fJJ4rrd%_L{`oM-QO_A~qZTllvE;D?%9nFAOY000L1 z3-E6Va0S4`$oSuz-k9lc7IqdEW@Z*nHa1pvZcc7)E>12k9^NzjJiG$DTwMG@`~qiz zf`WqFeCLFPfWl{hg24a&gn^0v8)g;`78VX54;K&c|8x7-3lLyu1~3Dd7-Rs90t`$7 z4F3iJ=jrogVfdd0_`ezhBYlpnZ0sDIT=W5L`~XGU2QUk;oRL;D zVLc1;WRnR6swd`Dvdfyb^a;YJzQ}2Kg(Y!t3Y`-c5tUa^R04q^np&5&b#$*>H8Z!c zw1OfWot#}u&5YURZSq0YHI81 zpS6Sx3)j+?0)@rcyxU7{m0K=|JlVr zxAXsQ|EFR9i(LYAyBL|7nV8xBvx|Z8HvPjSz|118#(KsC#^xD%Rz^LM9cY?U+0w@$ zs{#Ka=oL1_DI^D3mH+ymY5!x{|DIt<|GzBze+>J7?OFtIGcnL_9+LpT2=D{X84YBB zvJoSTShcHfYl{cAO_iP0PA4eb04GLz;=pTdR!z3Nw_fEBPzv~dN1 z^E$b@mI&nRWl;fyTVp){@I>Pp2IIjcI{+se6lO;8Sc0;sfW$|AKuBj>;Uqw?}W$;|AMb2+9U$1ffZiq@QX#Txy+gTo?40i zJRsQ-#at~8pNv89=fkr43xOkNMXHHP5b{`a0xTWARtQWQ2sKj$@d3Hf#LrMOc?}&E zW{Pk%r0PkE!ZNHqe^S>m-InZCYHh>1mL6F#Wf=tk^&-r46J1e=UQ)7Mg)@*76$|G? zVHx`cNd==j_9KJ}@2FEm6k<98mneLmKUVDcv~)| zMi>|8wyD0*l7?g#^`_%M@du?QOr1CVQ!Qqd(43H;J)T~N%d zY{vDb+BwKecQzqCy_CqbF1qUI~^p( zugtBOJPcnLcsi5~D!l*)67I9bzrx7PA zo{r;O&qRSb8RncsWw6?g7FU5=_`L zW~c_sO?pyP$Xo(sBvK?&GN z`0>cDT1LU8M=uacuB6t`5XPM*RUxR z%c|~?g1myVx20B4ebc8+JnwOun42laRBTF^Db6J$LR|w8w%XHfI8`2Qg=}nixQ#*G zatV*8O&uSEszaaL0FTsvH%wJXlvNLrL`~I4%!b?bdx2+0ifNV&6q`p*9)b>`@cPMD z(2z#{hx}jdKd=e%?!&ir2%|oILl{`wyabqJNxaq^r*uYzeJHN>+psM5f$e9gpAnK( z*&M8u?wdbacGUj^!pL7CIn)2+7rgtgpa3SA!uuZQT?V?m-g9*V_b4|^yIN3T(V<{y z!Z=GjVlAUhVNnY%SVZ?y!aJ-fnR7tR%AO*;R=>#u+yzinHI9iPTm0}TteP1mHdR%p zDj&fRYK;XDD?H7WC@KJ@J!|YOWC%eTZ6-x`Hcl2xP!(Q@!MMgNTQtgFl<7l>-Dj&` za1aL;G~<;E_@h(-bG%}LMZqZY=gyj#Nkc>dd=Llisz<35ps3B1ql0gPKY?Z)W~Pv* zO@N%WF{LKkRFx)Vhgwie%0S^bFRv*xk#Xk6D?P&1L=|=|F*_Iz8is8+8``Hsd`E*; z5twj3IVmUAz8F-TQq`uMNh>fF<89+fB}BbLs!?<-ATqfCuyK!)W8Gt2RV0#|%bp_#alxFxPwi9!{%+kdAA3Iem0Iop z)#B1mD8*Jh8Iezd#O*fO-cKIa7G+%jkPZuVjY6Ajl~B`X74-OOf@{CSaP0o^yG#fT zt1@(sm(3}4t9o1≶Ci=7 zvS&w<7e)bs_r&qPyU8seScm4H5DN}`1PoE zbSvpt%;1WL)s}#9(f3-eEu8zK^tNqI?&A8Ao!ivThp(q^&zRfC+$uI3GAP$SB0VNO z9*5vA2wh5=ZlP#%h6s+tM9D5e&uU7cre{HFu4!XyIByD4nF1loQM~G)wr!q|i=3Z^ z1zu^-Xj28T6I9{)Fl@XMg=td^3$wWQAUrh<(U<;G+&Bh@t z?UWSOIFWYb;tH?4agpz&Jad26w6hk#H0sLNqDQ#792V#uKh-KJ;XC z!Bd#jrj0{aBJ4bNsMjC#yN2fHSPy<88iLpaO1S#YRF_b6jUj4>c502+To5r9*S|1VJsuBm1jr^69z#9igx-G&Qw;J za;Xt|hh~Dj4dSP>lDaW!P(33*IjAn`6xN<|AuWgjbDbPian%F9R^A~|7qz`uI^bD} zHl6N2sYzKY?VlGG%2%;!&mcF6adTnWYu3^c&90unIpI2Xf-*&!<-u1I;2&~{KNk;0 z2~q)TPw>JbO|0iiDIr9f)rUli*u!0EQl6ax4$YD>E^<=Mn%Bb!#6guHJgolX!h{MF zoT-0R0zVEK0u;bDrd)>jVvRUGM7|SQ^RO@zt^XigRS0q4bdC2P*ML+^n|in6971j1 zTRkt9E9t7xw7^~ea3t8GuzT6@PBnyO^zzyNynh0C#_D-?+hxf81PL6EJZtv8bQKor zA-!j12g#>|?3uGy<-@&s$yMp_L^xw2MG06;6vvuz{en~Be}M<`q5p;Gh#F2aS2a6e zGEq;Y-gt6TP-fap-|@qmobxcI09gs#)Fyi6DZa-#98022h@K><7?z{9k2ucyaM@f_ zO!N*(z~(Vz+7hyBxuuV%ejx9Hn!K2gk&jEa(8GG8q8g9KKH z@Gb)C+F_f2foF`Jlfd_s7qf?H#t+m?1l7{1!aqqej2h

-i;oJ<>Tj!%(!K>I6p1 zAt4ReS;q-$FKV*Ds@X4DVT~^Xz3@Wm2nKQrVuS!;xi4T_gG1NLL2cku#w@^mGQg`4 zl0xP5XY<2BjY<_T4<)cjWB+l03UHaam2eIMXBr0rR?Xy90Ia$69(g(!>m)4j>{*%_ z0lgk&4yf6mFBKlAZ*V9tuY46fVIsx0H+WGE8wG++g=Wx!)mbfQM&AUDLA`MPDm-}- z)Ef`%jfPZX?Pka+`l2C_K073iTT`yael@d_}Dv&!b*wl*;iS6m!|P1P5(MlH;-N#(F@yNVX3z!=6`H zYhG5m6Jz?0wmm1@MHrV} zOEgY<3OU}Y7L?MTm6C(OmA;ceb?4eJIZ`e_DtLKnWrihS%;0h*2hgjmKR3zPu_5_0 z3>$V#QrlE|M~@a*fM22YChxJ7pbVCEtdR#o8NUvq*{V&2LCf6z`Ei{xqdV~7pyx&V zem{Ma&$s!v)iGB3_tbI$v4^(G&Ny9f3z|(X51EAynf6By9tEk670J^PVVj=(n)q!u zB%f9ez0%@xQ(>%ab87R{NkRQ-;kYXOi*NoFyHy{jcV#m#-7)h8SQx`FlqtVv)4L5q zaruo!Cokrx0Bsznh4h^M0c0oPV)t%QAEjbhFTn3a-f4Ur1HU7FRIfleD*+j%x!7pa zY%iTUsKSf0fbR<;27Vy86%twyLDKdZvKM4PW8_CK_z|3TjH87LfEG*Kd?Y#Ugr!6wu*TAF!s)UDXgy zly51;gSAlKfu8*=J9FwzrBf5oeEBxM^bAlOk%VLO?5qy5JO}Ca=i;XkDVEL&ZCc;~ z)4#x#{7q!GBJ^tdlKHY@(Mfd>K;xzu=K9N-?zlSMK{ur(Y#}{Q^z@P-uh1RyI+@)A zdA&_RiK3RXR*H?%sg@*9P9`8)%t1?Wwcvg_Z+GC)<}68~=lo#f;+h9pM1`@d9*(u- zDpgEGX2JLw*`*06PP^6KwWoer=qJTmRjtd_q;IYMwGhXzd6N_SY<%doLpO;*FQPh; zhr3#!_Pw&%$|Cql%OR5FweFRta<#va?DwH~bGoa<3{Eb=^rdrVq!D3q9^qzs=TpVd zRe@TC5O16s<(dqZ50c;Y8+~R_CZ7`oPB8+eH7b}fPYV;MXX$$e?rN4oUL*t$_f27H zHAfd$--h%?N<&iXxDcJGO0QNr7ds8* z;<7bec(Bo!wlKTQElSr~ZBLy+sp;`k@>4FJzW>XCW+%< zw~iW2b)%t-lpC$nb4v#G)JAL3aN~XWDQFmKII)L(Bx%NTt8Ah2QcK}REc}ijA*iR$ zaDwI(x-cQsi_5;|*XHgPxQ;EA>a7dz^Hy3ojV};;w{p}t&2vTWiXs+j;?2=$P;6%qA&B;4$H6Ml9&?*ZI7>*+ z(HA@)AQQv+@QLd^j`}VkUzf*dlJ0bX0u%A-T#6r7RZnC~7j2JuF}DqwX3@)qFZe4v zzY(E3@7m+Fwy|yy=WL!J-JxxwlnY1&4XlPQ;CCWMTU?*g-Jx~ktJMaMHRlGf5_3;( zYEzVPP#WEb@f0v5f8}8qGd>4dm2l;sPPq<3MJcCjmB}_Rf??;{l{#IMZ;EL+>sMo8 z66YA}vRLyioTFmlbmqlKUq`wyqr@dZJE@SjYA?;g7+ZAg7z@)W8k`@^AOd8tqo{(j z=aSW+EPA*o4dWvbEDEs`N@sUNN_BT%P#?4|Cdjz=fO>ri^eZbQ<;rr|alzSbb-WD8 zkD4jM4FWi`)GSPaXW-1UTzSiaKlS~{@M$9`R%t=tuV$UUn3Mo+yj!eKv5Ps%=cFMU z86<_9CAVD*Es*`v=t@@1i8oVt7I|j*2((HxN*T2l@3m7_53nuPK5jZ$GR{Y~Z*Egt zn#jHv!uyV%csglKeZ0W{$IB{oXxFXmVQb`HDQeE6cC5~Qkcx|b@;W6+-B{-r=PrCd zx|J}utv@#`4*G3&b&j@!oyA2LR@B3npK1$Mb?eCcz+z(_R#L9zuFHJ^x4sFun(j^r zOe%7|pZ#l^`+ohPnyVL%PCM>STRZU&ACL}6c~&_8`}$fIJ*w+A=RoTZcqE}3g1P{LETX8QjJ>uH90w^6y6SlwhC@SqO9xeVHEhQf{2AVj z(1{ret14}#r;h-ckeCzJzt(_iTcI3{XQh4_0@d)zNSNF3ZPtN|0c^!j;9e{VYwURR zw8(GHY~l6XUF}DpkS@7j&VmzZcIxN8JvF;_CSrqcs3y(IEq^n5@3`Jc+_@?uzg<6S z+cd)Hb|XAa^vS#VI2}yLGGzjc$oHUKy;1gt~kp`;CLEoc~C^vM^wfb+G<1H|c z_0)U1ng;#5r}Z!#khmJLPzznJlfZ5G$FhQ8u}kYUnuLgUwu70uxl}$=w2qX6x?OqZ z%+PfBZ*9Y>=e0*)Wir8`)jY4FYVd7#+d>i3JC+e^eD9muuWNYovtneu*ltmA#rkO% zE`-j&#RPV+yP|z=;*Rz;0Bu3k>eyR%Ya1qtbL=h5j^DGP_%?HEjlAI<$Kn!mrlnX% z+n~(Z7eVT}@dan!9j`SMl?dPPqe$8*UvD(1*J>AZk*>ZxwpCW=V%9tX%?UE8c_XB3 z-sUMgvV)K>7pb`;ZwHRa9ApKX2*vHr7uZ>Lk%W{l06!}OoTfNriI9GKOi3!%rj6^V zX2qnq(;aEqL(;>W2IMl=qq=uImxKJ3m(xaA@fQx4Ga7fp0aOvCR=7^@l*RaKgWw#5Z=AgPu8(mw6=$lq+4ee#&lk;(^g<^T%X8oqt zWe?_FY^jRk)tdFc+Gw#+yR9GvBK6{|98$slQCS6ww`d;7J zWv90lbY6-{%i8eYtP7Ypxn9XwTR(?*s<=T8;%;D7RYXAXqa z4d28mooewx=d@Nt(aAuR`Hgo!c5KwV$YuIbwGx-KYr>%1Wi$OR+ip((UMqsvva8_$ zbx?=1Sx63Hp+dio9jFV?fibXxs0Z zs{U0H98R-E{*QqU?AD7wv7IuX@ATI0lQm zj2!35Jk}5T>@fA@S|bPQxKYmuH7DQglR5j;cR*I5Ya^1nyc0n-57Fp*O8CnY{}wkt zXrQWsc#~#B^%=?BjZ~$stn8blCxnkmg?@M$K!rBc87LnyorM1wuDCexUd-b8b2sZf z_7`auBP_SiG?w9$40Oit(998=C6m8moRl3Zc0Jec#JIoi!498jv^<_4yLSdvo%31+ z$6|DU|8LvsE75ztwtlOr$r!IS6$?vMe$-(1HQ{ZBd3?lPuJQrt>xbl9zQIkJ)^4#O z#)mia!9HIMgYmeZH7EH$z7v1c47j*UQca@ou1tjezEi>{W*#jv;U4`7To0?ZyPTQ+ zMAEZ(9jxU1y>f0xuCU%3vD$-Nu5Lb1F7Dyx7>`_>;!!Sp*91R~nZJIys%y>r%yyJo zjiLbtpC*Ah?%i{|xvn{vB~itu$t9ZeYsUP^n~b`YnKVd0J+(+zgz)++k6+Gl>f(ci zTj8KKv;32E0!sDYv$UiO(n*DlEF3ruYpc1^6reBGhE7xF;k~G@mbT3F&19K+xgF4%uuJuuEnvqq7zL9>`G!Gz|P z+dpC#oiUEz82l z!*RqdebQOS-9(+ZgPdST%klReNeThwQ^XaClktlZHJ9 z;cN}uJIf)5UC-W%7WfO%?01B$B;6T`mRe0BUI3}!GX)Qlwmj_;JhOv|_50G8pSRi9 z_gxdhuPlBH{D~9A`r3%be@JSQuLIm|>kuk=AMc4E;>xP3%Qj;*ic4(N&qV!of*n26 z==~kgVeROyHiujEu^&PCQ47hq}E(J4s#Y;XOxO}U?U zTIaOJZ*5J}>lc#02fWI&hKFWR8?3A8=b`t&Q#NUqD`IxC`i}OVwCgVxwe=I7)P2)#pe6O88LWcuq>xy+1B?H-Mc0$Bh7kh;40e`FWCWivN7Sg6 zjx_Ug3p8)a zzXb;(eaVQ=;>UH(>}$`~N(9lW#w$m4Eq5vR-3>6^7X_8FB~8XbsBb#s3}JOBPH%>J zwl57;d?on55Pc?bKI-G7&A)zIAT2V2ou+v!=77rvGE?t<329Z@BiaWzpkK zx#~REN|gCoM40Hvhwi~7`H;8eTEw1)A_C3Dy;=wOV{kZ~mJf-!wxWp%;BHfnx8SG{ zbjf{;xy44U1So@l!hWn~WhK!t(QU_taz3E2PlqZ z0(nlM!rv^MHXdPT1MZf8sV)1sSgfE&88@HuB5x$KHoSsF?5oJ(k*@KEP?bc_b&ck0$xW+Od#pwGOCS7xSMUom+L5`#d( zPh7XQ8Z9C-kMpa;qwSU?oC-caHrc^`ej)IcccO3NcHKv0Q&kdc(uYNpe2rJ{eK$ht z#kbkmBsc^&_^(?jKk;YC`QdcooMDY(g@n~UxczD5g;o>!7iS2{LhrbjFBVl4F1oP^ z>wMBZ`WcSW^l0CW{Q-XVJj}kZG0SSkP-c0&hRkYyy`k%UxsGi40I+f0^;kknSoS_7 zcUgTjJn5;S>q_%mZKmY(Zvms#GfmPi9gi(pk8W-braU`Y&%xIo?ai}3;)$_#2?uN3 zX)FxcjoxKvYW^?lLPgXf(d}_%H}Qyu`vtnN)+jyeKbGB+0cW5oqb1y9etec zqh{pBA*7oYOc^@2Wr3(kPaBT&|_;S~Qwpwo|S1 znFb$jumm#BA|ppN-Kt&8@|L%|ZI&M)Lo+QK+1rxd@b2G3ZcZ;Y4mMRp)`ptZwYHMy z9%`%1HI9b0R&19Yj~UCYWQHQOsOsxdbMS{`-(Qbaqj!$$>mnRiX1^PM-6r~uix{+A zjpcdlysvdB0N%gi!x%jtjwRavnBB8_;}dS%fK`1%3)}?org%MlFj({%bx?YzGf2+6 zJs^0_6VHd-!VJS(&9Yi!c;i4`>6z?xDMg>liCh=8Wi`(!HHKq2-p^~gjj>w|1>CqV zK5OMAHbNp?G55jVS#gw;#K#N9yY_GYnsq^4ZbbSlq&70_C15xLU8ps=rhL=XoM7E# zY6DEe(2XCQ-|lUo=4LN*`L5Ho83v@e&3Ls4&6u^`8r`iQFW8_aJdVh~5$BMBL)E*Zcx_O-?;I4YvGQ!d(VtcM!Lor9#$V(}j z@yV65iUvIauu7g0iTdsab8Qid(}6Yi>V=I=u%cWt1uE;IZoxK}Q>gEK9_eqU$UJ*( zWtn3rz>HR$#RO65US~U>;a^;0aoM19;);{|OfvO(*M-?MW4<}Ymy zqv&T9!f~sEt+S@5Pm^g`v{h>g>8iF^`{q)tbMkBatd94xRlRvw9M+D`KP|%-N&e5L zxt+{ovaWFeX-BiBEUG**X$|p_Qh|=v6g>z7cocqrSA zpspqRRyOuxu(9U#wQXYHGiBbY25Z0;j!D$DvmQ>FfG$4f!_=Rw%#xIaCpgBhPC0ik zg~K%4ZS@|EU7EI0G*EV2JoU=k#~+c3FN|C&Ddn4%9-2|9|MfbT>uG#`n(aj3RE6u-8%1i~sLsyy^C#DiDn4zC zEI~h^QQP{@c*NKnM!)W>gT5_wCaC=Yx7t%+>e#m2!TAZYS<45Xm5#jaS331eu}c-o_2dV6d^6n>K>ZSt0T)S`44c> zAo4cwU_uwoUzoAn8^4Q=X;7RP`nlI(L_F+_? z1JfJAoH5&q^E0)-dq7E1bZJ{8?fa$BdFCv493^xuIrP#OZ8OQ&;Tg;?rZ-uYC3QWgD#Go`vmMG4q@YPt^fu%vx6Rgmabs zM}{1_M(B>Q=g^jXwzqNb(fNx88BPp2&z*k{Yh6VuN^Q8%MK`et6aum&V|f74G!e%5!Tx z=bHD6&8dpcOl1L;Em0`ePoZ#hOxPO}&ul)F^S}|Fi4oJ#g4QOg_qb_ zG}?-|&QD@{_zI*XOpcm--#s%&_D&t|Trqz7mN(#9Rr-1YMj=(*xKeFl=<$LEp3&@z zd>OFpeuw1p#b7XTjOBA*<5_w9i%(<2n&zw6(6Y9UIAQN^c*);$EcYUg{wo`*qnV>-UZ6WJO;cccyQx6krO_btXmDKvj4=KZ5GSxX)bRUgM7&18? zH(#LHs*4I68vr>2AMfr=Lw++rrvYkCp{^s{Z9iL+=W4A*Hh2S~tOO5n<2WhdUrq{F z9_D`uror0k8Z{(AxfjRczz1gOA6vbua}BE7u7{2re|`M<7ecd@{$)23V`ovM^vL z2QK95I$Sthe9lg@8d{|wvuxhKokWMb>hOBF`qkF(=zqUK?Pibga5*^qh8}Cdn_85>M`m|d4Ndy}w+bTu5plY^shVGG-&mbLznk^+ zm5tNuKN7OJ02s76Xemv2jBgKh(tT@_%NMJ}?7PaGAk*Y{z*e`t6*^tMGwjUK`YeAj zBggX}0Da2k(uKaO6IK&rL& z8s#0p8yB8gkQ465OgNxB^M2Ufwx17~!-r2T4h`E%Vk>qoyS-VABomXHB`xG=IcYZH zUv$3LZn~(97tMoxaM#$uK2dki;(hYcztaVf^mz+|2f@Z`wXeOgN6y2g3ZA;6snwdz zCw}x0T4MkzK9p5{ty3`+r)cMe#7Qgmhxf~`vlRl*{@9oD(SLr@i@Q+xs~sFCI(?+ zZf!=hximL_5^ygnnRJ;1TE5^VtYMKub7Qj$JRKxjKoP^^e|xK^!@Uyv=ALsudcmn(;Y=> zmeel?7K8f<1-JLNsfGK)RNPq*`;Mv86ebQ7KV}h(esH=_x}IF7=N!3Pak}uk{)uQ8 zz-PP7aQ8r`>SuV~N8(+tM>eNrK5rfo9Nca-!V4^#c(i``JsfrKT5FY?z2>%sI-S3Y z&{@u1eie!Fafmj$LVb3V%xU?_BBr#>(IaHIX5CTYrCgc)T7V_#Cde%PdGmWoYuI;PR!~B0y|2Fy_Wl%5bPbk?HS3GxnF~!X=XN9*Muz8JL@hb^FEuHXsK4#o zVB+iIzAdGO!%n(ABKx{gRXIzEIf;9S_S%#$%P!>$dr1)tZmf+wW__!jn#22dF*lEXkhwwOF>XOUhx#S>z4P<{8nS=By>vWCFjN|mt-M$2XHeT_ypE4-I;F-O#wM5 zWI^Cx_hY;0+Z%!+znqVz9y$vAbh=H}y8}Sjh;|L_M!A0KJP++HJ7;c?8pAT1onyJK znH)=s`~3L1tSl~62jp=ks_&PR2#x&{-|BVo6M1_sir+-aSQ%gAEfMi11*O!S`jDT( z!Bs?@861;e$Z0jQ)n>Ql+`N_F5Q^vvdlC{eD=T9Zk6|kr3l{rUzw9Ofh*Wm2>=vjM zo|x zKC|X7irVXQ1s)gl{%X4MAH24Xc1x#{2eFAkMUvlmqI^VwR6bi`ukOi{NlWe z(*i2F2UJZr$>b+2(Dw}7l=#8kzOtfLW~!}bWnU@B*YB3Kyt%sz${%_-o;cR^uAeWs z8c~oP_aXE{A(_v6VRhbC&ifYhy!l^!A9`^?R@N%yp5NV0sW_#R#Qko(*QcL`U#r%$**a*OfwjsfqmG9rVUx^fEyMNSh@7<1+K}M*vOORN)mU27w z)@;@5uo&kv&a)DZ8^mf*&;5ZB#wW-nRa4w#gjH+b7OuHy!VY|=DMJT-+muUi<$FVW z`z|Z{KfvDf*)7IKx5{;W(USZs_l{@oYU$2fh5p`B*s<2YOKijl-MbB`G*>&DPbsig z)}ju9i~(G$ z?i$tF8xK~4z3^^sKwR|>HZzTx$K2KyM=mFNGo-~dUqTlTYpV8T_Ut*n!JDh?V8ccR zdi2df{g=Q^b_uPaBNLr9NsZG_J4vZbz-|lSEu7CaPJ{$T$8*GpTE-gtSJ2vZ#;7&$ z#Y&aAsw@D{8~%r(E=WEKZrd$e{x!2&DCef&di{v$NY%N#*Y8VTY_nA|9X^%+s+e_A zq4lSV%Ie*Rtkj7lcF&pG-Iw=!9wEwUhWyQ4ot|gkGbs;xGxNQ02v$}5mhkbm{?n#_ z?fKgU(vR&y*5WS*a@jrDKN%Q_iyl^Ab1G>cEz7Tc?qK`b>+;v_2R5PEGU&_P>?=IK zul#vRG}rfBbA2yv66}P~BX*$p-me>JcuSrA3w-y%D5tpi%h(;A1A{;H&rlq4KG*b1 zrwW$YZ>-2tpP$vqa#p+lP)9CEysQVD{^is;Dr=3aq!IIB3|{7#)5KU~L+Ne`pU;}0 zK1T<3?cnxp*8I0Ok`11Ljh+S5++Mxg%(8L(vg2KMp6K*uMr5L?%&pDnRK6(gBek0= zNREEU*ogc)JdCl$DdEANh_6zp<$QUI-6KcD343bIb-DAae?X{U#nLR^vI)WV--MM|i0GV8rI(xb{R8-A z#|XeJyyBD_@~i>)bhrXegZij)VSBat=X0lpql43X(D#q*0GS*OumxU2WSX3+brFc< z!&j&&O${^rymK8Q#CcBQ&u(vvLl0Q|wc}e=TV?UodW7q`tl$#rTDl~Q&oYv`44mI& zQ|(=lJMolmYwqi^qNc~zCKJ#``3i~D8)_UHC9!^mB=qvtb5$Ob63lS~|q3!%Ur;e*iE1 zQB&Q8n7gltcI|+Z>LO>qXGsGyjw2$40Njhff-WY-xm-O&Ip(K@>^>Y_e7K-LX0Ac; z__&i^ENy#Rfg@=C<@Apk^>=0=HDNTO2>CMe1f-13GzLeMzNye%dc*voQ>h*Men4T@ zGdBG&J&k3Ee4kZ=}R4K-|C-fS?JG=P)>ZWPOfX$XR0B?>vmb= z_6*IoakCn%*e9WQ1XsMKawQEWIE-o4QVK^Fk0-m^)|G0Le7>@^F$$ ze-?84*oa4nnfAMT?n~|CZT+2&maW@1b|!n*sCl`{O|QP}=d}D(mRvW>vHEEnHDr0X z$?8E)wP!7I&HF(9XqA1BgOs82hX);Dp{y~}jv0ivxn0*x`+|$vp>=-!F%_Y#*8X|q zJ+-ZIGR~wv2mKa6aqno$G5=s@eUtDyATYh+3&yM+F%z$lD@HFWkO(jpgYV#-ZA+Av zs{+5rEtlyca^JVy7yb<%>z{fV66zu|z|aYMW9U|NTgakTVox-!1}^Q;}xrJgxZJkyS=Eo!$$S;CZ2Tl?3qnb&+G5_^W!eal+6 zTE_OZ=>DhUeN8TvOJeHuCnH$}xpOKF@y;nvo~U(q2$t)v;Qa)Zs)&PJ$;sDTVBDfp z#bbZKse{FAMy3Ag8(zzlqyPn4Ji_g^9Dji1{&CZTR-ENPmnjDYmMwtHOTgqm!q1!f zUC1d7dEer=kQ87V{mdTvFvwa9JblT(3IW01ZxiaxnVinV_xg!ceY*Rk`bIv%@AjS8{TY**7-A?m@?3m(x#6 zf#FS-Bfr6$ZDR+E0VSEME#DiU;~mX5j;h$08EKo?@rGOUEbpvHn2`6JfJ6mlN1mlsQk%f_;Ia%kKKyHV0JuAqZJ%-^o zyy{WA0UgOlTU}=x4wx>4fklpO>+OC|?GNA=duE30?7}}^dxl|nrs0~m`?9gT(V@@@ z@Wt|XKy>dA;&QOO%lG;-E9VPqh`#qQvD;rsT9rBT*mnx)ZZ=aN2;tV-L7&158bm(- z;W7I|a7q9A8A)jsxmGgtgW>aWjmoc%_<*ug|GbwV!$}LBk;bl^x9ba^&O4ZCzeT@V zgz~Y;?xFTOn15l@XczdHXBEtzL_WG(^J@KCnR2#u_4yCXg9!gl48nsoXBQ`BxV| zwCCgP?=ZPw39-`Z;5(?pgxKS!_{duL+^%~4As~#OH;grUV(!HSmKqk#neQ#5eczs? z>@%lIT7=a6kO>U^`xW`bdSv@MNlPCvg%4Ak5u&(u_LP1sifZ5gwqOuPf#+Hg!us`V z#j|7X;pf|PR@yU%S2xELA6*cNa<({QA?ctc=K)PWmKct2+xH!8kA8aThwbWuCJn8s za9>G|ihWC!9hnH(XujUtKHIk~dp;s`RFjsp>_-ePyYJkUAz8+U>5?p~jG-S}GjP_` z37Ve%0qLmcTL$g7Cni!{wN}=#%_Yz*WC6mknD|Egd4bUU67Z$519%$r8$^hirWY&L zGsprV0Q?p{B;2YqndVq5UM(uGv({jXDNRGRyBU%bnH=7yjrmxU8t{p*d%pE2!#%;z z0AR%|{95IkyCnEK770+J(8osq&XfAjBECC_urAKm*_fc;kz1u3E1{Mxw2he$>#!Dg z)Hh}I-3yWhPt~2!9v|3ZI=j!xM|h4(I2LFucD$u4Soywn%dQX$Ze{D`;etjRU%MBM z7bWfO$H*U+c3^Go;S^V#MhfbvqL&Xt6)HzH%7Ld)Unha zRjqmp1{u^3MwL~ynbmY`B8U}74P8P?7U%@+2J1ir@LC_uUI5POD6~f4pUn}}wn%i8 zT?*W%ZpMGv83K)aoV;Z~B~Px^p~o-Saps0zzg~Qzp z;E_}_c9l`zGpqBn>#v&R%0hXdM`lr@xBE~SF)pk0fc$+i9)TOh4c5Ii5$IM!eO5`4w7Wdc(jeC-`l_oeo2w2maz*%f-7YGCuXVPZ?L= z$XhL}$hFIAx?5V(==Di245Z#VO+L+sjTxN9{H@E$hNK{NLlSrk~@#-8`r2bYqWjjRzylTOFvm` zu=34KuicoFZ!b~5gwhI#8X0FSkPR_V*L8uA7v5jT25E68<{Z_3=J!104gJvJWpAkV zZG92<3)AX%o@komtRwbbUB`7Jd~fkt&7`-^Pm9&-Z*W#}zhC?Tvr;YTQvZ}=3$J47 z@{h=n5d0r-?Ux_2diS75=!hp@+ZznCh5>&y>!0}SEFad9rE^mHej&W4UIshzHO4S~ z8i>+b|3VZ!^ULFOu52O8Cp5>uqPG9*M{EyU+F(;RVymfL;@mA*-%;J%pxg5V^*Hc# zxBR-L@IpyRqrv-G`{wC*#hvR7y(4TkF#>j{7sAuUnP4=LyAM{+Tk_<(D1K;oO(tG_7Gt=5pN~c~Rv+X!`c2>2LDtbbiIj&@D=Rok_cW?S&n|rD`s)St+)xS+ zi33p}a!m2B@jhp_jW0Dg{BBiO*`m@X{9W@so#CoZXM?*x-Tl(389ycR+-99H{Vs+H zR%&p{81O7eDKUdohBE|=)X>hHA%yX}jh>eia9PWl>Y7-0L+td?%kRY0{w(S=iD&q` zP9MDXkmQMIhf=xkHzBp}zQmegTtB?vW|wnTcUf5ED-0)`YIrl}IoNXX4$ho(^hd}Y zX3m0O(jzOebE2hIB(j>~1N_|eWtGvU$7@T;S(}dXt*U&2=-jEXWz!$pPr8fT@Yp@y zX?&Sb-D^T2;@cJ(uAUzpdYK=OtCkDY6Q$j_azWh%TNzqay1+#VCS~5X#TP&LUPEx* zCI*jIXMc<;{*!NEjQN>UD64eUk*U+Sks@kI@MZ&UO&8tc7}wSNKLEx+Iloe;13XgP zX*6eC*o^Q!>Zr6TYoa#Wlb_bBJ*IQVG}MISb0|PD(x-|gwn4|^nxv{}!B3?~)`vxDs{FkERX6sT-NF3LbI@)MJ7%sT6HwAMi@CCz zp~tV|O&XYBLF3-DHn1J)84EA1Pbw|RqfPJGPY116n^A42zqMzJgPc?|Ob>0o-vBVj_9fDR-?HG z8O0VI?rMY#c*ZMN!<6s zZ>3>YPB4@5X7rMCit{gi)t*=UELjpQpezxoRa^}6dBF4{zFXB1Uj8$@WU>AqZ>PEZ ztLUHFBU!e&_=T$Mnig1!AZ`4NDC_Un^{<@uo0N-GkN1kLf(QzF5J&Ytg?V{=d1*y? z9;P~1o7AN0rf}Fez~i^_`c*0UE+aW&2>H5nKjBthLSG|x#yL~8{X2@McQbC7>~&5@ zmZLqJvB9rtZg_0Dfn^25~-1el9Mlpw8 zy(`*P@!LMs?o?IB2>75xPkMSVrSmXpT)t9BE{|5YHG>)1PXqdA4EbY795ln9SJkLXT1N>0-Q)1DcEM_~xwgPH~!Ces!ucD~LK% z#5n%|^;E+crwkf*5fZ~r5szw=W7?c5UgJX&JXE1aYH!!_rSDXcIu95W;q=WhML1@y zBQ`t^I#S~!r8F<&PYP+IBj_7H4NV>iT;rS({OeXNDU^VySB^mS?_RC{00`_L{lU#h zz8r-A000>DuZ49RKHAYoo7+V!7~>yNTNc*oaGSC74l!MXo*IS6DU(e90EBTPG>z@lo{Q&nEtgD|0#Kf-7dUUT(lT2RqR^v@jnNi5? zR;n~jk>vCEDj3^4HxAepU;YtGaNp|4J$hHD%V4e4ewAIctrb}l$rI0_@U$P? z8TwS~;cIpO0G2@e;=5+kk$Mb$1w__Z?Nq8Z9FaLS&|y)59zP129}nBgHZm@LmC(Je zKl;@RTY7M6x!-W*M?HJs+gXz;pb^JCE1kITXo5!h0Rz*xuR@aAQwho3eUD1ayM|JQ zTR8Oery7z(xJ90IK8CTjRAaSC6_W%51lIlCoPtC0(;>Hh!2VUgJ7~v|T**sT9YGao zAYh}Z8SPr>rAu@7Mi_TBZFG5JhjV~eJdxU$Iw?lQD`{jYw2t4EZfSdGP>ujTy^Srd zlC2PPi~;%8`%NvCvV((JIU_`iQRxw|1wiCf-`LBH?B~|4+AG6_#^LGI)~skB9AnnG z+hwB;Jv(MbF;gv$2TIx&+2jg$**Ny8<{5-+fbC2+S@x~wv*htiYd$&>Df0o($zzd& z(xLv(9S8EQ`7JS?DhGfLl+=L4eKASNQJ-8?XG>Agb6bKOo|L{#T9GCf*h-EuijA#+ zIVv;jir+A2wL>MS&rDP16GjZMlhc}rp-$Mxt!&Ex2cfFBC`sUPS|@TWP%>b01ys1W z#{lCsVr3&a;U$XJKnwp2rkZ@~N8yWK(PZAT5Dk7fMUK`-!41XH5kGODX)e83^W%i~N z&rw%4f;v=gzlXIujIXp~7^aBEdgJR-Fs4%^f@@`BPB2YWdv#jSU`Qi4s`5s0oMxFV z6nvG>N^-zB$jwcTPJdcTq-M$Oz(&Zem?jRO9<_-ZV2&#Fyx6H|(l4Q;aNK^h)wcwi zWO4#Qsn$XN0N1R|ZZO%S9#=HS(<5>Be>$`qKjTi%9cdMzp4v(>ImYXdn3CbR_j~gxdwx7G1K#{IgGgsQDkv~KS~X!x9BTb*8`gdpGn zPxE$Eq;94dGHKjet%oJh=u{d>c1Sv4(xskHtxPN#hg|zmJz0-D2Pbbl)i;U#4RkVT z?!4_aR!AF>igzKzz>+5wRpE2nHPRbh$E8aimXF5IrB^XLmpJEv^U|1LVc6r=yLa&E zVUV2tDF=nw)DW2-!k;=9vS$oqBex$)VN+eao)&Nq$@*1Ed^YMn?tYXhrYA~ACCvjM z*Fi3V%6Uqx`bl5mBChDo#iKD;gHxjs$g2ZRAoQyd*klZhP%APRZW&wpSEPImuo}E{{VDg4nATB9jn1L$>lo35pHlL zJQ~GWuxiv(f(A_{fk@d|GtP7Lq-Q^kRfb+Ys=#dZsWlVtRBp9kFe0On=e0BsVzF8j z8ki4JQb!4pfCmTKf^BlEM zb!g3^s}gC3BHoo~!g|xiyL6^Wo?t$-3vzj_AF|}svD%7G;E{~*ustcJ-HmUZJzoTM zqx&~#;820Y=UUx?=~0-D?)A_~Xa`YM-rw4+hKz9@I_8`g+}4SJW1y&70nP;k*s2zd zfEu66Ip}Ee{i^Iq2HH?6Z!6lDXV$Ei$h&l>4k_h$*>~UKAp_AqeGy2q0&Vzsn_of#y+RcFJ zP)Te@YTZJTDedfds2(I@dFH7$E0|3I?@SiM)AX&=W_!#|hO?@&s za!QPz_^n}T2RNk>Q@9-E$A=@6p!)GqMd8?@B$Usw71W4EY2HGS$fwN0$mQC>A^WI( zI29Axd6BZI*g9c_brM1kYJsgmJvgCAcSj&?B!d7FKo_&^AXw+O$?o0fSjTAT14IDk?t2rZS&0*hZ&H*4A@1}8bxt*FN zgzoFsv~5V-p!79D2#!T=Y1(s6%bo|VOLj()O_Li0o-B^N>XiN-X+dDTde>ndn6~N{ zVP@=WYQw`9mr5}K+IxXqj;|@$sPk@lG14A3#?$RxkAXZNCarxFG=I7c^A_n{eBK9^ zJAjV{@ZC1_{Oh&wy4&eizFbHmb>V>==Ci4Z_jD>4dpol-{{Z2YiYl;=A5Y~}hk>mk zjG&LDdIMhlp-SbIIe!}l#`zI(+SARP)zfCy#Z8^6BzcatBnRSPs#Y=y%z2SVsVVtMZ^d)ILEDa zLZdllO&kQ;5~=BmtlBvojzxBNHpqSZRYtN>eQR%MVeFC1uAk-hHR|89&5VoVOY4=VhrxJ~+ez`3?1g(YQpz&e{pa2H{{RZ%#!dZR zXHFKCtH;#&W8yTk+-sV=#w%+hHQb@1Syg}~$vqFFW1RZei|U)D)uaPsU}JKgp!~hQ zy}fJFb$fW=mAse`<2!f(fZdLHK7zcrRE?$8Uk98I=g?-lFwy0WjB!%tkz!vxq6SEt zKY4IYHk=$DpU$%wpE}?wHgVS-@N>}m=B2iT;HhTX*ekb>P6r>YR$-fo%P|{sj1Jg6 z@t)`Z0M%W{^V!*aEV$X@eL5!d6qk`Uasr<%`t$U!dy#N!zHlIbLDF9R4AQ&NQ{UO8duS@E++Q~jenXODV|TVlDo8S+^C zx#^F3s?l-Mww$YuxHU?6cASHe?^;FoGM3sDwtz887y-ciC}Btk*0wRYs{XYqkx=cW zKt&cE%h7TTJxIk>N5(2Z_!T<^?mA7cfO)9i&vM`j2>|3A3b2s09z`L9 z0l=w@>E9TrFLfJzKGIv8nM6=VrJ38H0A&4m>?znBB{5; z{TA6EOFLP$Ndq_98Wq?O0&qTImTX|)3}e3yjvvII7-!V(Bebx1G>dS-q?|C8P6l!E zfvMCb638K-f}|ucF~V{{ZV!_O0wc zWS07$uTnPNwF}ALCb#Z9IWbaKYmv?YtUKEY?YLxR{43&YeQIc~Zm>@{rkmeJ;;G6= zs?RPnR-y)|)L9P>N8?T!k#D|p?nPo5&(fG~53N2?o5pREAt!O5o?0^kwI{A#6*+eML% z8?O~<)n#ntf_q}6lhjZQzj2QpMrllJy+QnGfrJM<6H_hxZg9Y_Z1$z7u0(DOTylM? zSZ_mMINRBrlB^>r-8*FxqKMklsTrD!RiO)RUriqdK~7gti*;nnM|G)b28~3{wt0s(B*{xhEK^Gh9Z4B0*1a4`4@Xje_(%RaU->aUN>^CYmP? z(C6rCxmXs!6(Bh8nx?E<+wrF^{PoQ~P%Z|iEQB7vTCAb|wEfNPM=2$rH1!$!QVWLy zqlt+)D^di{L7G+=eW{OXPqjBvDgIV}hJkOMf}Mbm?IiZ6q~jepsaC|3QYC;qQDia? zFhACq@E7Aa&1gfXmp>|!J!(U0az+65qd{EA{?FaqlTpp3N~1gvsI9<)Ba_$ZOrBpc zagk2rxy-(u%Wo&AN~tx906;%2Ze2!s?kg(cNG6(h11ft+l$KG*9Whj-w~d(mpy#oz zD~Q;Vdes>YJA2lNfmUlI3Brtf3eA=jVTT-nTJQ5I!K~Y*IqRQVq{(JX=%{gutm=oV zt9yY~uD)*7n<*=v#*fnHARk~+AIH_*NiCmH%d)3qg zfIHT%jp3fBm&2rANiP0KOtxi|N-Wr=ylW~i1 zA9YT7{Hsd;0Kuloouvo?IU6_w+Pyfz4xWJ^j36ETeznbN&_{D4JC+Bh%UsHod8M3I6*wg+A+tU7d$Ce>2M*mGXn955;v{I%Lf z4&VqsTF1V$x3yxhLL=YV1~Xc!x9Dc*`J4`&;pUydBW^j%3|7^>kC7pbNB|C}*0vTr z42B^38rtywnH-auC0*fp0QaetOKQuFF2?VJd_1g+b9Ms((?0#{(c-s&+h#DNb_eNP z=AQ|kWmGs^egd~k2qD@JAY#1PJF}(fv73KjrOOs#JqJp~oFqL_9ODIQ}|PO_MQ##WzdYa z{gHw)2NB3mKky;PxUU_Ga8!VLis`ikzc7_LCirfZ9y^xNtalMpO$NeAWwC$Rqj9=NXhadAhVR##!ULW0UDw$ncA+h=UE}0y!Tr>Dc4fyzw`4GmfBk&q`j>`y#m)R(nP7#w|TvlGf7V=L6*|LT*1!NcH-5tgD}ltOg^riZ&U~ znIUoQ_i^65fv;{aBv{nRJIHpb@=4EOSFC(Hb8zME9xG_qab@nNW)VWG((s~w@VXEBMv)0nXOx5Fw)@d)Gjvepvo@7>RWC6;iF^_(rX9Di+VG+Qp zK}E*ZJ3^m9$^7{IDk*OR01E9GIecWFPEV&DDiIST8J8eG%n*)Gq0b}(&*h&?q>|iM zzQTR6BRLSZ2>Gx^M;@3w{y&vHuOd*}QZcs#JH!Az25?WkK=Q<=9tJ6tQbl z*{)-30y0->;2dL&`%}2B-JiGW#R$hvooYu&=1fST{f|nTF$Kzu5|RLL2YRn6d1GsW zr_&Yj=h5zS8kdE9>y~I4QAzv0l@fRwIr`i(9DjGe_*X(?WRnV{^Vb>vRcymEp=MHt z)48j=Dcu}Az5|pi;^jBw;db@^01D>s^vU$;HcXpMdZ9;i+)ak{bz-wD;ZStOJJe$O zJ=hF0Rj!G-18Za2sXeoUpX*ND#%Ww$g&!!%&MJ|+V%fzuD7TWXc=o9xv)b7#7 zL@OFPeyVs!865#97^}^F7T&*6Sf6JAR|y1#l04O69HPkxnvkTGsP6!MStz(rUv- zo%j;McD6k+TxPOmMI}k#_pYHF5rV~k3Ts)zI2@@y;~1wIa)pmBxSr%cF2nJs!KvIu z)yX}p&~AJy70~4aeJeHm5O?vAy@o5LRg2uuk@Pul_((4!Fw zYQdqTPxBUUt~yq3OQ7shh8ZO3$F4(zbo+|8GRLd$WFd+3KwQj_a+pZ(P9ml;xE!ywE7#%3MT#g+q zMmI4np1k6RTX;yqsXt0_txKynC!ws#pmop6MRg(>nQ|C+II1lsnh$7?HHq3GAf7%Ad-%i(O86A+X*lAxOr1)u?YaxWUE^XA4JH9Da2-miXyZ(j{Ez zVY?C_=BExCux(l6$RqKqi6eXdRg+dVTAHiuYE^QhuN9b+IP033E*OeIVq1kW9P{bc zslArt$g5s)#z>`EvG~(Y!m%BuhZN-QB}nIR?OWP5jRZGQ$s-0t8?aXg>sgV=dlA8{ z%_`FKQj-uwTn?ugADv}6KIV~2vDoQ)C)>VseW;{uEzciH>*9fIt<@Khqpxy(YlzeD zuWaBp&(#LrMt1k>U7n7&7uJej3=TGudB?qQ%R^$F?amd4=UmTpK8KuyqspO>d{CYvy!!qv4(orbP_O??pyP~V~^IX z+uW+>fDg51I4C)(;JJwh%rbrIn$Ss_rtcil=kCB^pK77~p%56@wB){sj#Lk&M=5tU zV7fsV83Bi0I@QFwMn5YR1okz}D~CAVLe<+?T4{W^-{xWhf_j>UicINXL398!Y*I0i z%|m&hwY*|zq-hr!IT%0Bn$@xJx7jUx$);&!A9+ylKOXf8q=6fBp-($TbH~!NQntlf z=OcF0M$B+jdQ}Fym75YVRUI-bXIHrLWGEan1Jzct;<1+PgOqYJjP@1P7Oi$-)4h?k zpxW6_7@A?{bN5dGR@B!Pycm!n9)qoO@>wpO2JqyAjlg#NDw}G1kEi2VIP)^^%c1Bx zUHU8~gAX$uG0jOPr7t^}^IR>Su47;Ut##D|ssm(u)-D!hUgnM6_n3NsM^b8y%%Rio z0#Bi;vt5G34ApYQ@^^RUsUR!ezRctGtZS*8o_{LUyKI6nS(61h&0J76Wlt*{gUx1K z%be!6E+QB_)-~LGXCRz(2D+khNXog%HJNi5KJ}>~>zb(~dCo<3MOfvYrWEkt@%dGM zEUC?INoW`vs`f+@MQhA+xU!^0myDcOq4?KK^1o+Y7Wc}C%(s(BvN-wGUEN4S{3PvM zo;Vf6M{04>y$9n%L#F=Eo)@!_sggj95Q0ufc@H1(A^D2n#Y^Bzx!r|U=Wns{4dz;D zF(APh=y(_y9ly>iiMmF8THq+$RFS(G$lQAMuHtp_%b^5<3t~OQjOV^F&;!MCCL}tg z(O;O1^&n&BJv})7wdh3i=2AA3I*dk)7-dT@Imi2_{GQbbj#aslUG{}+Io-)QBOOQe zt!Wl9xX8p6$QxJYCmnNx`RB3ps_z(U$^QUy!0$hF9)4m$I2ECYxA?=CAE)VGSX@i)OomG)Hu*qcg zsJz-oZq)-fJQ`wbk=r!WCI>jC@9b(hBn#co}wM(B{5aFVz={v-te zLt(x6$Z5t#PX_@{ZhgD^Qq;aE&tj^g#t}K{uFL@M#{)cI)GCmAT&GS+U8B<0Q=Te8 zKOFS>*O*#-UO*S^mInv;?WE7shR3&h+SGh~r^lqV&7|t{$cM>BQgYbnM;$tzeLZVS z#Lmw4J7G7WsBZPET`@P^-NS6YvbbFT0F8L|qvNes?j{EJ$V13TfQ^XbxXTaDx!JWj zu8TBz^BClq{$hQ3Ad^}1E`{>5*!53}nq`WSY_jSSWPhqstNEXAKx>@2_{FKPlkB#( zu`YOKEbIq<;C?vtuQW&Aa?%6-%X9p?e_zy0nuJ@HHHhyA?@AT99;5Ey9Q%F%)V9qM zM{Q;CXT*i3xLsRhGNVL@@Ssq7?@TXmQ(UgGsN8CIUUkjX@|JS)J<}3jAa~%8lxOhc zfmsu4QaLKF9AuVqa&md?{{Ysk`7Wh*7zB3OybN{~C0|3K)HRi2V~=SHs-+PA?<3oh z+Z=J%lTFj^@ZT8@jqX3Y0f^mb(ect?Z&16_wwae}~NR>|J>QAWtr1lvnioJEL zHkTP&cJk))7$F0YrFQPg>P}BM0eJ$ml&zvIE9%Nua}*LrT$T=Z=dT|q2Z7HAJazh2 zXk#-^60an--n?YfUe@9(WVn_VNStm~VU665gQ*;jdUI20*4HQ=}NM-0o4_|7rW1*Yqqr8)Ja5L>x>e68K&p*mdXqDKdk z#NZS4r$=OX6G)NAxG5mx9XRB5!Rf^%#n}kKK!^ds+6xSH>(i%hGAfjld5jFZi5vpX zagXkd{Y_QLv2Ctmw3TIz71=vGWD)-Fw;z|+H14mO;%Awh29b#%InTL2oicaA?sNbi zG2iv7>++Un$j@`znw`eU)&wz!W;olD0LD4#pQQ;CUEXa>?Qi18MfLXYOj6RhSimL6 zLU#1^{{TIz*V^N?wrG)+*8mbfi2L)~pYxiQ+Ss*czQ^r_mY~^EPZ;Z3*;~{??}EOa z>y@&Y1^K!P*SEY#)L@W(>*SB3XF(LoprdfAGH@^{zio-n$af56;2xES=b0IcNJ=+Q zKczU{+uOu*FCLiYf-GoUx-u5d#T{y{*yU5TgJYkY{3?vvirmG8KQE!{RE5}${`c2u zr(%*OySXttDFB}24nI1e*CiZ<;8u*Rlg6askE!SJtc#T>_(7hy6-a2Y=LzCVS9s71Q8>TWdgX>o2 znRXHgtQ|*GDo#3k8nmu5(}s+Vq?&wFF*sq6J9Msa_=v{jHUQ79PyYZ3EO6k31fO1? zoomR+x;nI2-80U6(lxj}4OPqQngHZxD9nWlZsGCs(f!C)MI)SHeBPk!1Xhm|n31PVV)&gAzP;*m9 zbAwLTB->kv*|1mJKJ`42#rLCpWAY}k1<*L;gHy*oGh%iiM6yAoQ$j%Z^+Q5Avx^_A`d#^r|;gEXO~@dYWi1IvL2tXhN?bJ6IAq#bItJ zz~`FiJUtPXMVENvKPmpS*c)L)Hedx2zTQHP_^wY>xmiiv-#9!R^Z3_Usm>BI17tTG z*AJ`2W0!C_2c;#bBvNS!Zj{pG9`w5jh_L9rd8mVQ?~1S_5*|qFQ^j$#YvA%EWZY3Qu3HOtHn~K?gs|4?nF#a%0DWCQ>3zHa5m%By`BDKiH8RQ~{tS2rPg{*|Mr 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

s_PG=2tJC?0u}pQ)uGF-g-SphOx z;J~TQ8MSw0e67R))-M5AR^eTh(;O~g-VzNG2`bu(#hD0EyrH6Ee4Tf1gg-a{;D3ug zsjdSpM|Lu?!r%kh_rJ^M5R8DS@To9(W0uv&Y7XwKMn|8Jd$XB+pJxryG+}o%yN)U~^OpqTciR zp~V+W0;_V_EA1^9`9R;VF3LvuWM}Y#u!@h9>pF{y4mR`m$)|KETyCjAmQ?STQHkS; z!XG$AaJdOHx?5T$W-Mv=8&}niP$5;~MayNF^hJT4lYQzC`caq=eYCp+ypFF)acoNK`nDoW?XN-$U6kIQyKEtS!54~ zhgac#V1wqyK6BJ;s$t!i{Lp&Hz+g#M-nY?h#Fo5M-$6tU6vl{+9M%aM^ECkPm(|$c zSysB=DI& zl<%?R9vFzzPw6zX?$-zS{2>ufMtR^aG3bC|#lYzI3qm!y?)XM(Ei^K4#;&_!?z-@ z)S4~|OpMv8vX*5M{}PcM)<)HPiiV@y+ElX@6^9qPBr!!8Nz6(uz9x`8PHf!4cfnel zV1Zx-uvxa1^Kdr*_;1#u#_5K_&eTi2%%(7^4{kY?IGzPk(k7-qp9ejboSO$b$ta3I z+hGz8C(pNTCgN)Sz8TGXzx*7H(&|X7{hOj>{n&5%ptwO=Q1wh;KKnHDn^Y?z9^BZE zc2kuONP*TnQ=km|UkgwiH$Kd*RZ_c2f@#6AHwLM0W$HEH(`e~+LS?Oinnl{@d|AvH zl)r3kk8w;^#S{kW_kj)2Eq@gDbp@qp{a9AGO@_7FpXWEH;b>TOtDLnqmOGB6^Z)akL6V2taTL#lOTMQcsm!w6e*O~z zv6*E*weTph90ARl73+m;!YL~&E=;iyaf7bA+G<*T9g%?qbyc6gI39D)={ss=2;4UtgpRiu_bbl1_<$S?K8M;cr0)=ikEmePv!WDlRvO^ z7`NOh0g*FcGeMxxvvuAt8N6#I%9@0eZ^>Sq7zV{pC(_Aq-< z!e=@>Pi_0TQ}B>eRJ=b$gurb*eM2~%nc1|;b=}x_`*_sCZt-IlxFvW}MR7

DE~ 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 dDrK)&`kc6> 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%0DZp)SNa;_XeXJjhq=*AkrjL3KW|m{k+Z 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 a06fWnd;3#2hR!%YT0(FshYEe^i2vEWavAdg literal 0 HcmV?d00001 diff --git a/assets/stable_diffusion_xl_refiner_lighthouse.jpg b/assets/stable_diffusion_xl_refiner_lighthouse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7797b843b213b3e6c782cab7ec00c23a55ffa3d5 GIT binary patch literal 165565 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͇Z6_rWBIXS09UHY-wIpp(Ih+G^TpL%*qLjcDM=x77c zJRRcXjKyO+WF8}bPh(z-XR1XTjBm%c^{)Yl>~&>q5za@gdY6Rt#ndcN$ahSiE97;p z;VbB6CD`;>FKs4lxmCye9cxAjZJ2)UPblY%9<|Ea?UM{p5!WM%)r|o`^9`fYtb=!a zakg^OXQ!n@J=7vIm`j}YYNHz#P@{J}hG~UoM!*>d_;Jl5khd2ysT*J_gP{bHKN_bc z#GChdjLqm;r;yI!mBs-a4a16vX{KobSriO(4b4c!k5rU`Bw$o_CnBz;`!NIsBiQkZ zqV`D`Y~}IB;l?Q-h9$ublh_JFM)Vqr#=OJ49@(p~-dhlNLn4#tYn?i>TPVwrM;|fG zVol;pmUma%uyO|6nv#z}6WcF4Q1mu$O?*#PbtjDfO zpt3+C8RUX#4D~kGKXOR&kO9|n z@6O)A0RD8W2ciq2s#|kO^;`;SPrZq3p#K1904vW|S-+5lXCZ&RxaaALu$uOz0^=TH z^xD~P&#f&+ckrj0{Zx+4kyA86Cdrja9N<4%;D?Im^7g%?BrgSl+6U`Qe;ZrD5Hh3* zC-ADtl4?eJDzwumA&v(-OHePH{Zx_0!?Q0@Tm*j*EjRq@Dlq$}1DcX=idtk2s`mF6 z1E~Nh#TFUdNv1<|cPxq+bB-#kx+IKpBiy5*{{Zz?Zh_<73thNK1HHAu`>{y4-Si`` z(z>gAyJd2b%eTIEnp%wIwW||rrQE*9ED(%G)O(upv10Fd?>J|HNW(q`ao7AS-SxR` zBh#*3=HH0O#y)K0-n?2@c;<581s^HN``*=@wba%+Xmj2sNc`E$Bb5{vSn>pgjF!IfzLPqoagZZv-RyvNi=&TQbGA5KmcAj z&1b%a?Wq!&=P|UgZ!XLZ#rd(%Bc5uaMk3Ty2jAqMn}9xZ?d&Ty>s@DbSinifL2#oZ zBlSM@4W76~t6QvW++JJ7yrh8J|wY`;_mA7FpnaXVdpQ+7f%VufKq0j0z zQ9-7x(=mDEkl^Q&$A3YdD+WwBQiB5+t!-@v*jb9JDB8%UzhA?xW62`Mr=Br`T`}0^ zkqLa{VD;*0ts4*s1pO%sdBI2=9x>}uE_VUHryvSs5wa3Wk;v`T(*SLwkEqQ^sB&43 z2;d4pnLCt_52(#Ck@1s}$E_j39;4cvW9$4s%9_gCaxsqhphS@tR3Sz|H9JTm7#xyw z^!BJC1aRLfjP>tQMIQFsyOMAP1066`MSNp->s91o$6hLXoQDXw+6Do|RCXA^>)wP6 zKJm+OPmbZOrdboJoQjKa!5n@x5J=8J%`qKTfXj4{z{+HfSwVFtj0662T6)EUL4MZu zq3%S#dl*E>J%?^9FTqkDD&@+nc@e(d#~Ca!*0i+!O8)>>)X&)vEVnGc067O3{IS-# zo|1Mt)tpuOmoz&Gu5aR$DGM8dlCc|O1-p9mJXVeT(Ah^l%sGI{Q~<*u5z8NLbH~!9 zvbc*$&@XU2!z_kXkg!}3NZLJzCbH&+d312oWsw*mRvFw$7(bEyYZm#QyBj6SwA_LP zGugp;xS3-Qv6!r4hG0%vL}}mu0M|++f>ZLD(S22N4QEB>W9De^ zdFL6Yq^vRv<$Xs=Kx_F{1y~uR&#Md%=T@!0&w#Onlh-J7{OckKAz$L$+3B#=#8(o|7sTI;efeP;a^K(Ul z=SpIU&&hVI=h3l`!l#Q*k;YBZC_b(Uu4FW74(Ble)GK2@fTS1EV+fm=bR?Qq9nPk0 zJ~iA8;sSe9(a;|pgwio%-m#)dYEnNhdiknvpG`fZ()Ydh$7_7`4s_ zotvMzwA9I`Ox*&E_aih2w71I!c5Rdn*cB{ykj(64wRITaXNramE<)fFxSrr*wJj`? zGyCawvEvvffJ70=3jofZQvU!BFlyuyT9Coz2h-&lKaFWNkp!u|qzngaVE(mK*}(}Z zZwJmljEstsiDL3vGEu}h9OQ6nOM9p{eA1bF4Wqqg&kpqxxMCBZka1ZLtIDhr7638E z2*xScIjnUP&K_V8IdR;#HKC_1>x`$AI2k!P4P9-d_b8cTagq&YT*wPBSxI5n zo`c$jOdU?gYjNUv9rl(!Pi!v&t4ZRw2u6Ih=m|Y*j*@x2qRTq%0|hgj)^+94lmZyC z_amsP_Gn(woqYO~R|JFe%11anVzZhaSi}fDaz{A!tSd{jR2&sRc_iaL)jXadNSLf6 z2kVe&@(Y}=t!aPS_dsRZBwfWw>V0d5*K|eEq?hc-G53jf0O!}9g1e>HBr4?mxiyQZ zMwjPw(Qjor-JIw1rR>Mfc(vz;+gHD0&f8Q14sw9|il=koMYNJjsczme8vV$}e@{yF z+r1@YiOOLCJf5fj0M}f1i9XLAtg(p6i~t#rKaD3AE@W`eb#!4-0chaQ8T-bm$tWyZ zRz(@%OL1lgP~>n*RXWuq&1G8fkyLy$uN| zmdQDVLgp*@9pMyo7_tO3aw%-=8({Y@(lAQ)DuA|?31FmXykLCN^3IL6_oD#frq~sh5vl^E;2LsgA%Y87(f=5ni z*e+JHjh(g-aC!>tJS=3gycq|}amejhkk~ktKs*kA8tybpGOX_O zWQED}!NpRRUo?^q!TsD-;RfX8RD;|eX@(VyaD=z64FFN|T>QBzJx@wh48-q|us^yD zT`?g-e7qjH0MukexZI7OYE~V}>mVz&dBN&N5B~sKi7r{8+5W0A&I1xnSU+b>e5OqH zVn!+nnfm;ypWVmHLqT%9I)wK4B2O_#0S-TvK|Y~;%E z2OJFWD`UeNjL_;(O$_ZE$CCuB0LzB)s8uKgbL-vqzepV!& zm?YPIrg)l5+eTZ01b}0=Ur}7PvcF`GdCPo=3zB`g{OV+^wKR*=;cp`sGFW9O>7H$8&Xk#Vif0b z@AMzzP1%!T(`sfSiwIW8I1wXY{c5eorE?-3(H7cH4&45=M^m{MOrqXDDF*<7^L}}( zxz&L@o_gfdQ9^QMomW*^t@e2(2JETNdgrbSNXnz{dR6K0$U$Z-Ip_LSK^QL5bL~~J z0^5a%mSPUkib&2?iyr)Dl!4_A`R1CS$T|UoKnPW{kaORy4n}fF_oqnMW&;3L{xqaCZmhsWHZATM6zXG3YajRr{@x^roIg zJ$M^I=qZTmbl3X_g&EO6dx>yZ`UA#4D!bvExpe66uMn(D6nj0Kv=Y?k`TwBag|ERmPoKJGG4^cBx7ozAGMwQk0>*$TRPNeZi^MmLRD zA2SSw9>4v1g8av6Vdj0H%QWBu3HeS*_3up7H7J)+mKdWU)yR#B+`&O39Q5hMWlpRt zLh~;78`yKO3}YVkichJ#Xe6I|D8pXYHcO|%N!?=9R&44k% zqT+cYlp8(87Xa<&BcP|)+1*L@pR`60$Vdw3l5#p#CCjNT^E(~4*q<3K$GOEIgJ~Z% zS${8rWY4mSJjhcRhj+Ug^$#eCVj1A`?af$QRza3cqt&>eUPuSZQX&4x=AtuX@_fVU z+|h8cGL>!>)Sqr@VTBx$Na{A#U}Zf{)%>YLN6z9&_Mi&_RO&|WZMZbyaS0d}`9ADG zs1>7r4&n9YtVIk`DBUW7?lC|M=7GWo9-$wKd~T`3BMkolcwp0$>~W4sJoQ!UQmy@} zoxW4IzV0Xi3|}$Y91M41NFtMO3UTY!i8UzHkqx>j{_}EbvAcPX&4cI{j8FxV6)-o2 z&u+Bcq>ODXx|tk-P~~vnojoQW#PR{`XaUP^LF6~k3Y{X10l#wkahhV?nDex|kM@RX zKG5R7cJxyxa!3>1X;&7m6VHF*Xoy_hWLn7m_JYu?iH^Xwx^Av2k;JR`u z9)%++8{26{)wW~%X;DJ|j^6qx$YMupicMZNm zRg|zCo}ZOL8U8m1{pzHVE==f#sL!4cC#6AksG%8DD0}y;_^$=GKnpi!=7yX~=bxX` zx8+Pkr%`oGAOIf3b)+{AIE@kRcyb^KfBhXiIdDMi-J2I^bD}k7PrTjk5Y1f zD$bq&fOpSM)uTS7^2LWy^!2Q1?&g&Iqkt$wWRG&m^930lML|8$kPW#6^#i?Don7nxis=2-mj1kQfj5m)E5ZeU<9{X z8oCm8Jf`wy9%Drq1Rmr0R!zzYWDL=~T{6SDuG?7Apfc@GnlsMQI-kP1-BR8-qX9bnaxwb7yBbB(nf`3Nmx+imNuJl3(t4oyj=HdHgCU85&tx@=Eg9?0?9t z>1Xm;*?v-3fO?vO%~|yzVr2U{0e)2s=Q;XS3GZaR2!$3sr}ziVeXBXA+`=^s%n#o0 z_*IzRCLnojk<%oT{{YsYMW3__c$GH|{+Z|Tq&KJ-0^8ee2?O-1a-iKIByQ=9{{WoR zW07Nz3xzqxO(B+NnP2@{5W|d4x<+1q0F0baxzafRvf$Fbno9B)u|;xv<=D!T#l3oN0ZCSFDu-RDlz~V##h%kpv;mu zJ3!+Z6pm4FK`qB5W`F^fKA88Y607NjwZtGEf5!pa3`> zsf~?*DeL@0wMYg5z#}KAs9BhHC$~=2#5_ABc>BKnX#>btgMrhhIHhLfVEzGnQ&^AT z!hy$LN4)?vsQH!OY3zTMHW<_v7&*^TL*_;RVX0L4Y*;?*a8{5H4l>KLIQygD{3(wp zS8p%oJqhRqGF!0DcCOUMKD8Ts#~>Vf4%EO3C?x0R#VDLGAmKRYjCn=scB%(Alfp0E3C59ivSuhq+^p-^z9vBjT-~ZJxCSOSZPYDmr{Fk-nEJ| zY|FOM0Dmy3&(gJEwh?0;xU1m`fT}pAuP@VYy;?-vjUdDI$Tb-z5N*;i0{Hz@on z^{%}zcHSbGe-9WnpEq+(Q?0jHxBR1idti#SAObd6;Z;5I*{*p!SLESEzGUf~@K2!i zsUOC7D};M^BLshZezdueS(-uPw&FzIdjrSvq!*UiJK-zr4NzYYeYJ7E7~44cTz^_g z8DAnx$g(?c0-exUx*pPDpEZ*o!gEqIa2y4>QR|Uei*s!lDvuMAKJjeSYczTP09HsG z=hlIm!rCIo5~)7DDH$U}{=5_Y+*VANobWKC_(eq}+a7*kK9mT(G^J19>F6q)+JXQ? zibx!Q4>c{NLR9nH9QsG9`9^B@orpKYnG}&fwptw{LIwv_<=(2#W?^Ih~G4li9s=+Rfvm;+j{cnU~V zi6@Cuu*Pvulvg~_EE-uz+Eg9_;<{ZALuQjG!Z{R;yk|As+IU|}wMEN$u0I9*s`rs? z5`N)CU~)$TCapwQD%;x|PcBXs`;72w7vg5G6j~%!s-($sc?qa^nd z95%zj>(-fT5o6|OYVtFj5`8gT{S98F%WHj)Gc!hvIKVi_sN_&NR={os2lS#9`#Jyt z&t^USsvDbuDu4it1A;;P>7g;3aS$wU7;%$P?M=jagQpnjQM+Nt&m*ADX!%0(%#Fu2 zL=2W7%y8kGJYutoyei4uAI`7Hr!TYu;Ac7QR6{g`vmQz2fFnFdu})jL6wv3(+6GTt z)TeGRtIi3g5(G=@Kn!9^obboLtua9>lTLLc^XW|k^Av_L$IHjzPG!m*=M>3)P&wkA zxZ{!X&;FYgZrAolN*jDB^==ujJtMKD3xmO1tn()d$QmeWzWkP+sH-!8-D z2R%(;Q&iE>OGcR%t8p#XsWr@Tx|ETWF!@Q(^{2I@-(-s1NJtKR&^ZWr>VMBQ7OOBf z-c%)JIVH-Iv@!nxCavkOJn%sp0{g%X)D}4V#;0V8TFI9JOMM6KWJu$PYzoVOTj}45 zS+<1n7LmPaFj)TqHdb5O}^C4`{^H286p3;^bX0D-m0_7wHDZG<5Rf7U%!;e%PHSKL zI7yA6s#NgvNJ||32^pYvFo0F*$I_pnf8_+-9yECrI&;B?J^Y}Tycf@SDfaex|2_aHb|yabN7}c&;C8@Svr^4)7jf| zn6lAQ5JX6*hn&eDC-APH!=Ddk)MSq4M`Vm0&l<4l^!KcrEizk+qa-nv4F3RnLQZ|_ z(KN9om8yx{9OH2V91fKdotB1>hcndZEHoPpF3bpu+m#%%;DTx5YbK4`?7~nFFDC%~ zD-!EpwP^}u1yP(4(z!i<#-`pTRGe)+fyM=Mq~y+);}mt*`mU8~A9buuJunVG#<+cV z#ad~R<77yP;4&Oyy#D}P@jK6wld&1(_Q&DYxf{)X-*`~IX#=VCuDDaS=OpSUvFNvV z_ELp5x8a=iMm*Lu`jbs7B3vwFbt-dScX6!3jqTadCK*Ji#6*u;Gik!52ZnKdL=+N2RQZqRYpfrc?1#M)g@vZCTXPJ z*&RPxaKB^7&IfZ*DytB8E>A$!X4RvN<(F~y=qZU0TZUyDS2-O>=Co}P1TXw#b?s9u zG0uRPmmRj_2A+|sFbXl;t}0n+3{=h^I3D#3<>Nf{Cj&KNNtb@&hX7|3%&fU*;C2VK zB8Xm65aa+qy;NT0zIObhJw;rdk+7@#z&Kw1tBH={NaNF`GDxnL zK5#NWm2le4l0hr7?sjv*Zh%*1HOOIrHva&HbK3R9EoUH;0e_2*O+=N^ac32HR?!?I zD@iCjhB3us#RQVWyc6>9j>q$<+Y-zqD0c2SfQ3JHGCnvQkk|S*N905Sf5lU7SRbAcp z5mN7y2LNZjd(%(^z~?8eNwYlT=mDl7rG|0-toQGlaFpW#i8#h^Ii=Wh$ieB5C@KiS z7(TRsY=H5CJvwx$qmLtKz!<1jHQssS9<-!x7*o@r9qEB9oF>qIZ%or803kgA;9;o< z5#auYg!w*Y8-{q#Lrg+G*g(n2J;~`&GY2>aAoGdE2P)|dem0ee$Ag@3>Q#Q1v*smX7(t(xTMshlyev}8tQ^$W=k|t(M6+OHnNtELt zw@h(S>?}aX;agfZoYG5@yQ!cjhfVWj7y(C2Vz#vFA0)5HN`uz5Y;=WCrG|0T`qu5G zk{mYCpK94hsheVH_M$XZ+DF#4f@~NWJaRKcHpHg~Z?-wB5n0IHIpdtxi5Xm`9hW&6 z_NTOfsQ_WB;%Viw8~JliYX?jnxL)+Y$}Zn@5~i~CiQV84FApd2k29P*(>YYYZR5(z;8X0l|HV@}EJ9 zp(c?ssmk$=tJ<-#t;}gdmnLa9KdT+aplFq_SOL#GR-Mj~Bv7oSn+J^NgH%4pEKl;N zIrTJ$awqcG-~!~HTQ~#orZNQigKlo)&{dzZObI0wRQhzNUN1619B3OO_(xMfh=^4| zwDHvY)Ui(>d`8T_?wYvNg4hTS4E;H+}MlmbDDMr#_6|nvDqUQ9;2;lMKL6T z>;Uxwp|@BgBPVe^LXOpB$peA1CJGKXszMZD+X6t}g*@B11Ii$`d>%zh5VycpM{JI8 zc+F{AS=)deyv(m|DTvRGNy{K@#P&JKts7fQrzGI8C#f}e?RJP5M+s)=3krnXxg+Ib z4;WqtZH5*S?dyzlQwyo&`F0Os-k66O zkhu)Z#Ptj~rpYoARE&imbTGw6QdA|bSm1vO_Mzv1ukP4J2i+IV6LlMv#dPHPDEVAPLVLq4;dtNHEIy|42JSi0raLp9rKum#NeO22RN!BiOP--T+`&ba?EfE zB!Yb^v+gW;@7s!CPQwTbe7PN}C*nSENIhwU4ml*#OoXAp=|B>044~vT3TQa z3kl&cJVRi&e@arY;c`Io!)#hYWG-^jj!KU~?s1A^+(^bap^cPCHu-JKV?C<0 z&XCO3k?xj5A=-=gGu!#pzHzp=-T{_O5WzmR7B2k{U2QFZ$z1zWf3w)|h)MPay&LSY zFD7MS=l~e}>dY2UPNNK<`t{9s+~DOr)B7FRZghNlZ6c?GO2`3F9(&iPCXr;zxDd=c z`DE14>DDT}y?H`Eoi1VWo_lYiNJw3|&pcJs@Z7se`BVg3fl>BVG_nJn9lzI>lykl)84W4K^Bh+ zNx^QUoPL6?&#dEkL_!JNTdB=wzQ&z35X$cV0B1=aX6xoL&*@tB_E6hfp(sfMJC6V# zQ(VB->H)Xt%<96I-+us=A z)yOVYUo1S;_Z7%mYEK>*1#mj%wrzD(nmlX@2XRPf>XTDA1~~W}XFV$1TC=d~2OULn zu-%3@-MM>J$ZmljBInnhX;`$)m%7{-jHvHansOA9Sg7?p8mlzy>xJjkbf{&Md@Q&m z_Y_zM$#xX|;&aXgFyC(A50|}WJ>sv(K5QCMa~LIa!RLx(+|y#Nna}4{W{V$pr7RN$ z10-$q^rlO25%GgS%-f|nBW`OlXvi!G!1ooiEc=w5zT-7cZ=DI-v>FMqfpu)#aySFt zxepj2777k>TaYWcy0(%=$YYFVx$Sz*rnO*KBy`BAmZ;J?GtDHGm4c=d3xF}+s5P^+ zq!XUxn&^{7c4A~0RV4A=v+r%TWX3xG02iRHYa86l+yUpH>(3|JqBFlZ`FY0`J3>?f ze=4rg^T#9C(wGcf;F3ma1Op`FfP0#q<0R*(_N9(3!GZZltpHSWxrhS_J?b(^QaTSx zxh=6pEDcxk!3Umc0Raq1?oX{x80e(!9<)UmXThf`fB_)-eiVR^f-uY9zG?Bvy|%F# z>BmD&3fSO$y*ksHF_Khg*NOmpouPLOk3ms07C2r>>`zL1DQ~@zj>e>p9JWDMI>5!c6YEYk%mzF6_NF4Ji+)QIGtO!I6h=uuy911OsoExu17jd? zD7Uj~h6(_|@99hm`94|4e)z#OfE5FbdYaTt8by<90=OB=4k}xH8bdb61wr+q%r0gG z%HS?Z=OUzQR$OKFgU_vXHvSorkP{i{#?gwk{{RS-)5Z^$Lmq&RDe{Wv8n!Jq&=j9w zI{VezeILnz+C}-u;1ONjmxaZYL5v~f`gEz!hozYhoCnQ}40Nhd7cu7YK<;@Pc*ZG- zVDb^QPdFjEFv{;m7Bm7lpsR7lI2az7t5Han?ozk1^2pkxkIuCqiI*4{KBQHfdt;794Oxv7jPl>5 zSp-o69PfG~OW0-VzTGs*glQYz+C zSu%pH9_)7lp?xAL0+|t?9fAIJwdd{}oO>E+oue2F^3>R?n3HI*UJL~aIsgw!&YQv! zs}KPUJq30Uwn*Wz=te3@V@Km@T=m5kL%HU9hlel%FylA^q_^2k3OzP3 zScNYAiKb1X3#9?jjB}4#n-1rmww2^uF?fuGjDmR;1d)|u3Kdh(06DJqZ7H{vU`q4@ zH4pYoFcM{5;Pg-j6s$Yk0nc%lvQx{Q$2HPJ8`^TuD z3L?>m-5)op?NcSY7WugB4m#5&)evO>$m(!0Ngd3SNsRoUblpfSPJv?uN6LEVH37eE z_+OhR8>+yzl683m&1cNLGr)qZ@DY-i~VL|oAa%n=sxZHrqdgGi`Ryo@v z1Gn0*+adcrj;J5gIO32J7BI)TF^-r3f0J4AJnf#Kbv$*e@LL&U1ddPXPcbZDm1CaZ z(zxtn-8gu5H_9u4@mhftQK#=Ee5eDzy>|Mq5y-;4{{X}j`7H9IkX3dm@9+K-h(B)!o04ddmJt}ERRYO^8n{Pzoz zc{L>RG_8Q&HaYel)e`dm0Noui>q#LIj4#Z35-0($C&~vv2LN}dcM>?_o^#an_NcOY z^ri!c9eSTyMqmarob{%Ur3#NDsvz9Va0k5r1-6bl({fHvdfl<`%FVP-F(l-9adLC% znzJ{C?clg*#_|;8mOPQ^fm3u>D>-}vf=xSdAOLx;*55?51w&gQAZ{QjAbm-w*G#gz zoeDxW#B#+zAD?Pm$b5{((fl<&ryrbHLl15;Tj(mp-W-b99Lny^_g8N<&S^RJqNXB-Cis1AiK9*=K_*)Y__72Rt+K>G)Y*wZ@u#owAH(qqKQ`pSe{&G9QG8; zNSfgb7<|_1tj7w!<5FC}va%}<0_BfQ-~D=*d+If|hGdr^w`1=P!=R`OG{YDp9eJy> zsysoXw+N?>z3RKHuA>S790OV-HYJ=Hyo__Xm|!1V*GmIK_K&nW?t|o0w-_fp{{SOg z?TPYlU}C%WxXB#%uFk|m7K?ZCtg=OgRF!$b=yCNmg;!>diYn=%hOmFLZXlizCY@wv zQJxfMBm65W+g!X`iDbEb;zk>bXRa^^`c~DkNiy+>geg#Uj&hb7s!m8HAEBc?jWIvH6(B$uX&Bs> zBF*-u^JfHlo^zVcdHl8W8Guhxc{LQ_U?4LWle!Aex>+T1S@teCTIfjUY>N9+X=L0P zik_6nE=!{`APzbc(yK~{%sFKvuL7MN)K;tV?vv~5Op?rTd5#^~fIq^$X=iw%Bn)S# z9Grb>v+4}-pPK-mOd5e?SWu2jpVEO7Nteh{R1R>XpsJTD#O^%@QJ!jWrH}gD9?Az= zWYNCTyzV^l{xra#*&ySusHn`X*}8fPe37(&DH}-S_o*VbFP3kWd$uS7vP#+dRhX~H z7(G4cYi08Q8;YN5j(B!90QVfw2DPo`akqj+Y}#Fsv=9$)bIo#A%)!T~t$SP6QlZx% z98e>)vz{q|Ab|bUoK=Q!pn$_3qPa+~qE;#!YWK}pTh@((82}x*;)0FiB+`sV4hM5l z7n&#I1QE_^gnGziAV1E14k@Qq8P43CdhtkN$U{i@&V5P7D!7zH#YyOR$9jt6Q4TPT z^OJ*$u9qZd3%DKuJ*X9pxb8yjc3=;&>rQKxoPtgd^Q=YP9DhGk(-mS9fBs|H9JSU;7N#!Y6`i@BG|E^&~13KwWrRsnZ+t8>BTF(ZWj=%%bI zCIMcZ2YLX8D^@!}`;~qjH2G!J=h~GlH_e3f`?#%`A(0hh2y$`GI@Kj{He`z;*b2iW z@(o;vM3#0_x2VTC=DG_#1>LgB7#`qO)xMMEkT#KzQ<}9B9F9&u4YMCDqdSKg9Ok#Q z-wnlMfaOl(oZ}=`snXe47|Bd^Z(5Y7fCRxg9I>iVu&z%QlV<9>xpCVSVRV~BIS~R! zLyVfI1Nnc!$8LD77;YS>1Pl>WNa&(xI0zL-sH-1mi2!VJ1vOu0NF@6jlon%>IK?n3 z$ioFfk(1w=jbL_S2+!2j^@KSGXb1Vz?-5oK3}{~ zpr!NUj1uPuu%rYjX&Q`^oK%r2akf7H0C>|{P?g_|L9kEW}YAy5xVVRR3-l()1v@tmJ zKjBs&u@OdEPsmcxV`H7jq>Q4Gl>A_jya%2vE3NP z3xD5Lb}N$D-OAQPjTEDFQhijKi6@;7cp!1sjmC7Ch1Zg+$4be&WsDIL6>Rc))KT3Y zta0vnrIF0a7naZANOvgMFrIaAxMQe!sn+_>w? zo(QF3+`3s{U9u~f`!?gp)~Ve|3l%O2$;L*13bk#_q)0GNql1c`T{%fsieTkO-2f9( zGaXrw>7J0 zXSyR82PAWjH&Cpywq79X*^fD`D_8qF5R3x$8R_`a)M%w1>vh3GxZoBQ6!EdiE1!Oq zxgbg7-}j^)y=x}wDJ2K41xU_&Q?oH!%I;JkT;%i>!{;{Eb|`y9VP47*o)dIs7UczKFD~t0s5umWZ)DW{c>rM zNVbr>22#)S5>F%B-m4b{c~)+66b|(EQL{2eL#f6W6s$XwmUp)=vut1V$YXc8rM5A7 za*|_J&kVyPwI`Uaud-qgV{)^I&2=d!c%^5lKSaj(}HHM>ii7JN5+tbCbutGWs#)gYn?#-~ zTV+p{GqB@1JnqNP*Cy!AnI9}O$vjs<;yprp&1Oi}BC-@JfksFNlY#G8vPN4OP&TjS zPM*nyNAEPYBeNbsJk?#2GWm=M9gBaSwIRP~e(SO?xfm5hnl{jEiHw1jKfD*M zM_2zuS7Ntp1ImF;XoI%qBhr`^B7u+|I`=gkw%%iI!O7s@R*8si z1PqUAWQcLR05Ccl0MA&)cCIo#MK{eUkaFDA(t#mThie|gy+$F)!zmyf(gI|eUOa8X zQkIaA4VWrqLUA4Cgr?baP6N$tm*Wbfg8i_f3t9-mk_?V{TMugPz{?M%nj_k-+rhnwe!1 zF=+`S7y^K?ePLp_W;=hK4r3~C4tip#&wfgkT!23VRR*W9;~67@XxwGni$$43azO1_ z)5F0kp-y|6xY~e7$RyP%uS2og`5u^{Y^c#XWs2{|pv^+g%-dEzJpienP;xea0)vWc zT%+>240?bl5gA!zq$Yn1IJopt2pbNbjhF&dr;8hnOI{P=rLU7&VumCh{hKk#doZ% z;EJszKq=a}KD}vKG2HXE(F056#seSk5sFsu)PyO=BaGs^w2Cw(wgo4z6&1$RQc!%} zqL(P{axm!oWLDeGIUwUT(`ok6d1@JX9=&Og0b~u0$IwznvIYPQ{d-j@-e zgY>CWVy-YT=tX1s?;Zhi4}2P)DG42ZnKeWjA)D2Dl&a3(ZY%b=g2)UYTQmh#x|$n(vT6yY|cJ#7t@M+ zKp`U}V;$+U-}z*!4cP8#r`sA%NaNCgEqTf~;Qe^2mlr3hk`J{uaCYT+?sHU~wm+Q%CvCBlh9f;f(m07Rxr>w30aTjtl|dQWc{x0_M;*h@xb4CZ zLrUReMoZOPEI_FDKhmjPTrvLumyBfeIp(64X`}~ePzQRh>pXxF)2|#+a2_VwNX~w> zG#8#F(4o9_ETZ56igWS?6y&}lxEs_sR zR6aomJBc2IQpI%pwu6!B*wRWj;C#wYU}*tn10cxxT@S5Hf$bS`Vjac}X2!Ck0lAcC zw@S9bpdpPtTbRn(pb0Mr*&tiv$EP_a2y&p%3tG;E=eY|l}e7UE>W zhbX>;@kNG3D?CaBuwl9!bw8Ch7K%PdV~^mg!|g1kWR?J@k)BNvS+foTll|pxf{+qh zOKhqR*E#+WF^VR+RRk*XIt*1SmS~37Vn?vWRXTx8DhZCVw*P3Vcfp3+VpK2^SmHbO@b8rq2Iv?)WoN78dERr+ZvFAHQ zdR*@-jNp(xIjpVGPQ*E!>#O6sn(AKaGcDK%l<=3^%qtJ*53ohNAu;Z0U}%8n}5 zl?xf&!jrXodY&p?#VySV^*HSnpobGaLvAa;HB?5eG2BZoa!+&XOETKTfUse3av4Gz6clU>4De(unR=`A5`_G=9-sY<)nnl^QRrh1- zR&HWH==QMfc76^IuTw)~NR8%2ky6zRjUfSv_4cXlrBQJkPa3%c3mHEtKJ?d(EobuK ziGc(lB=UXzsai8Egar=VWzRqUs+RN%GgDB_#IcrAWkpl5FsP%lf!pw^Q#A5jd7z|E z8|P@i8RPt#SuV_IQZz&ZA2=B~_CHFAr)fg{)B}yfjD0FnWxE${1bT!e-cT+9D~x|X zuQi(CB4x@GB7?X$J4dxe_K6{koxw>w7VnBKCP|P>y_xZ~i0DQ?&*@Do19$ZqCC~_1 z923}LvsugFoad%UsU;_VFbE^%z^IwLpm0X+nC(`Kn5{3B9>Cc3;;!fn!b#i!Rd$|E zJJx(r$$I2Q0moC=3edF+r?`eSEF15$dV2n}rK+&wz0K`S*2>`BS)J4UnMMdCjt*P# z;<=eOs=JrLBcShHKBI8$B<}!2BETX*r=7j)k+_+>u@aJ_jlkA)wl=G|8I^!_18z?> z8py-t9VsMy0#7G6;+lYrk}GqV`cQyQOoJ!b3{y#qJ4=Kky5+N3QaJ-9@I5hsOF`!AA(i5wnx^q^*h z?;ujBut24X(nF1I|_Mt?lM0!oKm7%lY)iF?q33gA(26E!FfXCwhm26 z0S@EKk9wXnQVU2zi5OvVfDuXkX~sKpm{pcA2VLCII~Jm}m2$xr6z&*~YRI0>CfM60 z80Tp`R$9XxfE>HAJOfjs6^)b2Sl7PNGH4Bp6Kd$A%D0aS4^|ai>H&)q8b&>b9MoIm zJS1qoq>^dIR8f+{^2Gu!M;MhslPVXIzx{f!E}SL-@*_U{pQUHVd7hjB-iEtU+;#Wn zs5UeM1s}UB81*M4)Uj zRwtUun$vLv$Qk>b(;7S;U+bRq(<2e`u1Bp=BvM2oB^2&++*BqGib*Hhts?|dc7yJC z6w`1S$x-uvvM3hih$AsXLV^k4oK=f^SfEqacU+!LRf^!oGDhR-=9Wvgmx9;>u;QJ- zvvnXw13qV<2BK?%S0pIUN{b5I6SR5?LQtG>^&O}S7GvQH4p{Xfril_ExQ)lIYPGtn zhTKXZ?dwnTi69`{oj9W6u_Tw6KPN(a)8c-9UG!JP zgqZ{#zMxV9Cp+7AIri^PhIT?ToO_ybCc;XP-npbIvMKp6-`=D$^m4{Q45L1vbgAQ& z!flMHQaw4WsM(c|Tzb^sXlPD*dWr!S#lr5}kk6k?3TE#zM!`fU_<-+KgTp%mou|{* zocDfN&eCz;sKo;;FnED74dC&bp4i1SWl!+*7_9#Qx2&LKoYRrdnVbNOVX)5>L{S^+5rY;GW)BH?+@wN+^(Cys~GmB@@?jt|nI^P8fMK9mTN-HH`CCYu`*jP?|gOcab`J;BUT%pI`c|qZh+(Qs){y&=}7XC z$Uj_A1+=+n+W__Tr#ym11RiRdICIZ5?f766kEH??)D_6>?^Uig`CyFkQ}PMTRdN+1 z0B6t|0Awr`NzZza#Ii2sJRa2wZB|eZ4c4Yd*!W-y&;p2*f3!VCO%y=qKQR7O!i~XP zk?JX>$nTDM6kIG>R&*n72qU*Rs}V_+$C5sz^{Up=6>Nin?cS_QDoCIf+JD)mz_IqI zqY8R3>IXF-)MItzx%4KoT@eo%VNsb$KQ0D46Vj0EZGE~qIN7xRbsUnR1F-bqR%Yp3 zV{o9ejAgUOOm(8+V?iH(O{3IjG}c($e9{4q#MX1j< z+UwC0pv5}<=va*XN3CnTte6QA+B)N{UgEX4G}d^PK~uBb^{JxN5x!Dzqp=l@xJaN7 zLF^4ZQf0>gucx&DYYV?N7ud>3{t|0E+{gxgZohjyDQ8ml<6zi7ygC}F#^FX;h+kvH zA)0XC89qV=dmPlF`PG6k&$mogL=2?mh7Nj)x@19>3>bCCJW?5TuapqSYcHs5kx~Bu zYT<}nss8>&XOMv9vyY}h{Ag%X8=*VBf##SRUut#$fEyiiNcUUvp%FdBWva8L56h0l zuxX7nkqiv7`nNQI)He?T{nf{+)NeJrsq-Q^J^EH}oX3Jc&$TQ?gn$;@5BJR%8Et&N z3{n(7-C}W3$$DbPm?CWSJxw=rM&JTNdV`TqHtTRQ-F@*$2q(FYMcjO`kK#tbtecBx z++WQMoj?aTtqJYok1?1VC!F(C=Cx6@#sCMLu%HSaT$7IH4a zqBx1#xd*B@0;=6=2!D-Sf$K?(z`L||VZ65;K9!MoXe8ddNj~+tcd3Ug22KWc@%}|+ z&3v;07CeE}=k%=Hquiwz*yk>^vcGg=+L>z?*`aXR8{7DLk}GE7DcSaHRRniz)l}22 zk@su_Fg^NyRg{`*Ls+Jsr7H_)-dQd~AV`k^&+#8`N`~_4HM?gG<^?3@CvJX*tX#U< zz|k|tBvK@70rPr(T-G(q9f+=Q?0L_p`85kyc2m(<)3&{VBazDHQg8?z{{W?Ew0qh( z;*@!_VVLj$7|0nM)>V`Xad+hczEYo?JPr?YS4xYy+E~uR7aSjyk<%ZgM7K1K#Hj?A zsUZp$Oz!!PFfm9rh~6Y(K;@me+(+~kW>%8w-Q-}1QJOLoef)AURbX}dDY%nrH)UL$ zRL5P*mYWP{5Dd*B033xa*YK*-NJ)@w8&qcmQcF3wW?_&z=RoaG-(Q6O&sc zVAxG@<`Awzs2IRC58B!?;X1bj_WuAp3W3RExw1+9X{GbW01oD=#9W*0JJ7NDTyRHT zDg@tiDk_1NJt?g0TPwx|ThmfCS9XlRS~01wj~2Fl3}g-|3unJdX8tkMo~P1) zFmdZzn4a>**P<5p#W>3*-eKVWH36S!Ayl{HnqM&P$QkrJR_0}qF;lq0N58E|w;wKA zGmhCcQ|(}$Ngl%{lwCG>4egp>X~%er%iE2>c4JR%QCUD+Ra5WHXRAvg0hbC#81Gjj z5#tQNAFgpo0i}{}nStY`(ZHttr^`4a2eHK~Uq+`Pw*l|h@TlKakPYSS3>;KyOnvZu`_R_~c>OU& z#8`FcHvl`WO&ohv;NW`IF*0>Od(wx!br=Klsu6Y9elmCC-=$9sSUCd&9qTbJRsL+1 zZ%VSaOahm^C1P76cePWzMkM4FIs4eC;+HN6Vy*S7f?{#M2kT5$G8z{LkVyBa zH?(;KaD5GQK3I?t(SnD%RXOdU9-|#bIiv3Ynx<}zu#!Ba}ekpvy2V9Zr zC<94Kk=B$#F`eB#YJ$zqa-ek1Y0D_x$qs$GQxSLMjdv51*a~Nx=C|Dg6%4WmQO+^j zr3)&kz#N{u&@#wnT!r1AdL>xd4mzH^RZZsvjy=hy{iqH;^#Dk#9smFno+?&+5Ts!J zdev{V4j2q$pv@t=65}}C??8+3Gb)?`k4jz0!2axJs2hd@1f2U*)!dvGJ9^MEc`g`z z(TsakEioggC)S5jafU5WvVoj~k=wN(B@>n49FMIV)y{YyTCXGI50{ThX<)dcIqoWWrRXq7>B+3)AQ=Sn>q1DN95!?6c%TinHpl}J$mjtSk1CQ1syDxS$n(ms z4$?lP)DqmJZVH`;sQ?p94b-`86=3C0_py)8s$FZAcFHp+n9IkOr*(7pw+82znbdX} zHJKtTV364UwHITt(p>nu*%d;>@}9g6xb~=%#x}%~@XWmA4Z^v7*c|OYLr^fuCm@fl zD~`u%JW*pQQlGld1TZyv+flWbaY>__1Ez6`^MfKU-EGIX6t8$K=S47`$ZvOx<;pGQ`>?<4ldgW3}WSUq}hSyB=AJF?%A#tz~&fi~C z{c0SpQbgN?Yu7m$7#KfOQ3hujb_zQVl@Ma%IU^?>a1Am>9A&nUK5U+Y-~1{@O#4*s zCvfSsaw@cv0_cJA$2q{q{{X6(lSs}$P&g+9^Zco?kg2)Z0{}Yb^QUnW%`u8FWpauK z1HEQXdL##G`A4B_;F_;}d|BAUK2zL|YMGtf0N*z~sfgK*OsN5ZAKoX7)Kc8A%xFmC z<{)M_6hKzzq&OK?TZGq~20%b9wQg;*TD28Gi1abb=c^89xPkC>ySjP7Z{FG zxVBbp*unG^#8(X=Z0+0Y&lIL%AMpd8!l0E7c7cRF`-)R!v991r1D+`XZV5_~FmdTq zB)~T10Zuwq1e8LfAgDd_NUZCIUR3@x0is+v8 zdxoH6otZI$ryO%qMZM3=psDCHQHMqcEEnoIp<-qrsL#F#pbK#@L$!|2Kt@5UvB<7+ zfp+)XS%psE4o|2(>UiN+91VlskjoN;L-PE}du`27)GsY;VBIUM1O2Z50EIs9RF24b zPz92H=cr$=zqN4sj-_i2#Ijt-ZsjaXC^_1F^NbH_%5@ZUMzMo>vi2#S%W6|vBLPkO@c zTbgMdjT>v}Z;P+X6iN5ko=-gmR{|;SWGKp<;FcsJ4^MMZLm_*0geXNuC8PtAeE_E! z3{h^BDyaLBD9QSs)LOxNk9m;^X2{9;LZ(>z}ssiD(&akiq#mg9r(_AcEv@wu^@~n>S%Wo=NSq+(Agk!h3qMkFuM$e7+lg4 zT=UH-T#Ozmm?@ldKoi4rCA%q&%KLV!x?nO*H1jyiM8q)q)=?$CP}nDdR-tl}4=aU5 z+mbr}0G?`Ou2fx_Z&91hbV5KV56#bhYLttG#_S&S;>GgLaNQ~*8B`1ptqEBPyRkN| z?Zc01H)NhVds3zcpvP)QZ3ZpwcujLhsq z5=Xc-BHix6-jl-5X;8X%#!{r}|H0;KQaoP{HATAdX4gdqvm+f(?jAXZ_IIQ=X2myX! zNN#~#0f9_K=~?E%3=goTlyy$KN4e`%h3aD)GJQ#h&v+eBzzNYWb1M0A(mgsH+f&)p~>e_g~7f7Wq_ej~PA5 zr;DP*Z#V~xns*Btk8p(GH{b<28I+8%-bZ42thI8lnAjZg$*X&2WFIPl-@O+DQ7>4a zRY0TI6(`zd;r9>^p&!bD7bcvbz(9R5%|s#GCB+a*S!NGB_dOizv^gP!kj87^aiDoB9jiIJajEhbvr=|$6mAy z7Wa6=gAB=06H8Z<91t7zWwgz~lN(M; zesuhtV3DvN;xy9=GaM4XUPS;Nc~!;%_st=gK{Hix_SA&nGIKNyTea%Gi9;bqRdr$-SnO7x<9`zZIX#3)j;DARU zQmcd4p`Zr&gvNH{dXhTSCQdl~c&jW^053T0nvZgkkUv~zkP94x2j<(J$E7^W&tI-8 zA_I)t0cJT_KI?sZQ<=wHV<)kyp#f|c=9C3f^I(BM%OSG80UpAml1pVA zkWEDL;3z-<`sS%lo68=a`JiOd-NHH_%bJK@sK8JM)YV5!9CaSm8v?ul38V$NFIk%& zXXVnW%PKMZ+mF38u*OKuXWv|{u^+@qKVsUgRljh@@9 z4({a1a9rir>%gdu(S^AQ*B~k2RC5($UTLF@ff+7;*&RO`t0l=SS0sbLP;frAmez<~iw2fikB%ColdghTu=%+qXq-48tbBnvfh2+7A9YVptui(llPnMpH)k0h zr1q#@SX2P3xsMzk4InK`FzLJj=^yyjcW*a^C0Ee!1y}RHEWlv&#_#1)BgWfVq$r(8 z&nB3QIUZQtdHQ2M+*WR-b~uelJbdMPeJVT6NXefpkhsA)>sikx_sINB064xnQ5zK{ zhd%V^<1W~2C_UCJxLutm0C#4Hz)8NDbFi57@h~dX*U@MJP%&9z+-Mf^ALm6G}a-G0~1QY zO9C)+??R{m-~!q2+JG!+w+m}HoIjT=L^5D!=C4H2ekRHoCG28cf&0i0BkC*6&;Yq} zliro2JBGjlk4h7051_0ym~}fZw81{~=y0cxVk&s#4tGZ3$8b5X3DLYmccR=Zkj}_6 z%I7NIQC^9mc-lQ$Z!Zf3j6Phq%HF{C{A)!bT02QrIl%chFziJ{ghY1jal7#Tbe8O7 zZg5EJ^Hl!;X4vY`F@ldXxvy1|Vwo28pc!+*Ua548yH0lKX^(8^U zVsStf&60IlFnflk;iJIikE+#%SlP)}+B*ZqA#oby1BwPS&rmSTLH_`Do`@v_<{+Nf zIi`u2e8o_wxfHL7NFyuzzp<2cI<)eUo8Z7$G=KY4K{2!tM;%|BGsBGPP3 z(thxC3LBDZ&$T^v;{IKYELO!EJJrrkJ1^&1RGqX&u#NR(^Xk`k&*x8S(Obq_at8UB z`tmC&ub{dv-(@(@1=uiNI$#`Ts@}+DxZSmt89*Lk$R4EnnsUgtWXT}u_X2=&J+acc zjjlw{`RoXQmpNmTjx*H%0EIe55=#}dEOt1_Bi9_%ayIbNh8vl&la4dontijSvt}mq zBypB@Y#a|tcNL8$G1^-&S22jj4jTme=ia%S>z7EvsM@kF2JGh^gEgUle6oXq<*(j3 z$t~X%&Rtx!+{Qx39RMewqCR0ObQr+yAe@qU#WjFH03_y&{Jfk}#sQO@U?0x4Gaj3j za1L3zgV<9ZZa@Gr2d{coU;{RJJqM*i$UAZBb3hvw5~btp+#`?`3Oi$==CyC60`(z$ zIf!7$gB$_=HOr%vDp9uJbrr0aKWGw67v^OHYVTF+4LwQ-hq-1OM5n CCe%Iv literal 0 HcmV?d00001 diff --git a/assets/stable_diffusion_xl_text_to_image_output.jpg b/assets/stable_diffusion_xl_text_to_image_output.jpg new file mode 100644 index 0000000000000000000000000000000000000000..521ba9b986b8e8eda8a17da9627b0c321ffa09f5 GIT binary patch literal 327480 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

8w^55DW4Drp7G42BP9#v+fkxcpqRJO=o>L9C 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

Fc*~@W!au}oc~eE$h%pO3G;o85LYN~ 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 literal 0 HcmV?d00001 diff --git a/assets/stable_diffusion_xl_turbo_raccoon.jpg b/assets/stable_diffusion_xl_turbo_raccoon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02d5bb377535899cd13c10e1f2553858979b4cd0 GIT binary patch literal 53187 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 literal 0 HcmV?d00001 diff --git a/docs/main_classes.md b/docs/main_classes.md index 4d356daa..3a8b70d9 100644 --- a/docs/main_classes.md +++ b/docs/main_classes.md @@ -248,16 +248,27 @@ model.generate( guidance_scale=None, seed=None, latents=None, + image=None, + strength=None, + denoising_start=None, + denoising_end=None, + output_type="image", + **conditioning, ) ``` -The diffusion flavor, used by [Stable Diffusion](stable_diffusion.md) and -[Stable Diffusion 2](stable_diffusion_2.md). Where the LM +The diffusion flavor, used by [Stable Diffusion](stable_diffusion.md), +[Stable Diffusion 2](stable_diffusion_2.md) and +[Stable Diffusion XL](stable_diffusion_xl.md). Where the LM mixins decode tokens, this one runs a scheduler's denoising loop with classifier-free guidance over a latent and decodes it to `(batch, H, W, 3)` uint8 images. A model supplies five hooks (`encode_prompt`, `unconditional_ids`, `predict_noise`, `decode_latents`, `latent_shape`) and a `scheduler`; the mixin owns the guidance batching, -the initial latent, the loop and the postprocess. The denoiser call is compiled per +the initial latent, the loop and the postprocess. `encode_prompt` may return a nested +structure of tensors rather than one (SDXL's context, pooled embedding and size ids), +which the guidance batching and the compiled step carry through unchanged; a model whose +unconditional branch is not an encoded prompt overrides `encode_negative_prompt` (SDXL +zeroes it). The denoiser call is compiled per backend (`jax.jit`, `tf.function(jit_compile=True)`, eager on Torch) and cached on the instance, like the LM decode loop. @@ -271,7 +282,21 @@ instance, like the LM decode loop. guidance off. - **seed** (`int`, *optional*): seeds the initial latent, reproducible per backend. - **latents** (*optional*): an explicit initial latent, for results identical across - backends. + backends; with `strength` or `denoising_start`, the clean latent to start from. +- **image** / **strength** (*optional*): image-to-image (diffusers' `Img2ImgPipeline`): + the `(batch, H, W, 3)` uint8 or `[0, 1]` float image is VAE-encoded (the + `encode_latents` hook), noised to the `strength` point of the schedule and the + remaining steps are run; `strength` defaults to the repo's `generate_args` (0.8, the + SDXL refiner 0.3). +- **denoising_end** / **denoising_start** (*optional*): stop after, or resume from, a + fraction of the schedule with no noise added: the SDXL base + refiner ensemble + (`output_type="latent"` hands the base's latent over). +- **output_type** (*optional*): `"image"` (uint8 images) or `"latent"`. +- **conditioning** (*optional*): any further keyword argument is model-specific + conditioning handed to `encode_prompt` (SDXL's `original_size` / + `crops_coords_top_left` / `target_size`); a `negative_` twin applies to the + negative branch only and defaults to the positive value, the way `negative_input_ids` + pairs with `input_ids`. ### BaseScheduler @@ -281,7 +306,9 @@ The samplers a diffusion model steps with (`PNDMScheduler`, `DDIMScheduler`, `set_timesteps(n)`, `scale_model_input(sample, t)`, `step(noise_pred, t, sample)` and `init_noise_sigma`. `get_scheduler(config)` builds the one a diffusers scheduler config dict names, which is what a repo's `scheduler_config` goes through; `model.scheduler` can -be swapped between calls. +be swapped between calls. The Euler samplers take the diffusers `timestep_spacing` +(`linspace`, `leading`, `trailing`) and `interpolation_type` (`linear`, `log_linear`), and +the schedules (betas, `alphas_cumprod`, sigmas, timesteps) match diffusers to the bit. ## Preprocessing diff --git a/docs/models.md b/docs/models.md index ec2a19c9..afa5cc39 100644 --- a/docs/models.md +++ b/docs/models.md @@ -107,3 +107,4 @@ Vision-language encoders, generative VLMs, grounding across detection, OCR, poin - [SigLIP 2](siglip2.md) - [Stable Diffusion](stable_diffusion.md) - [Stable Diffusion 2](stable_diffusion_2.md) +- [Stable Diffusion XL](stable_diffusion_xl.md) diff --git a/docs/stable_diffusion_2.md b/docs/stable_diffusion_2.md index 2fdd6b1a..d73e489b 100644 --- a/docs/stable_diffusion_2.md +++ b/docs/stable_diffusion_2.md @@ -25,6 +25,9 @@ from `BaseDiffusion`, the schedulers, both data formats. What changes is the con - **768px checkpoints** (`stable-diffusion-2`, `stable-diffusion-2-1`): built at a 96x96 latent and trained with the **v-prediction** objective; their repos carry a v-prediction DDIM scheduler, which `generate` picks up from `scheduler_config`. +- **SD-Turbo** (`sd-turbo`): SD 2.1 distilled with Adversarial Diffusion Distillation to + generate in 1 to 4 steps **without guidance**; its repo carries an Euler scheduler with + `trailing` timestep spacing and `generate_args` of 1 step, `guidance_scale=0.0`. The weights are converted once, offline, and hosted: on-the-fly `hf:` conversion is deliberately **not supported** for diffusion models. The original `stabilityai/*` repos are @@ -43,7 +46,8 @@ See also [stable_diffusion.md](stable_diffusion.md), [clip.md](clip.md). Preconverted, float32 weights are hosted under `zeromodels/`. Load with `from_weights("zeromodels/")`. Each repo is one container: UNet (866M) + VAE (84M) + OpenCLIP text encoder (340M), 1.29B parameters, 5.16 GB (4.81 GiB, one -`model.weights.h5`). All four are released under the CreativeML Open RAIL++-M license. +`model.weights.h5`). The SD 2 checkpoints are released under the CreativeML Open RAIL++-M +license; SD-Turbo under the Stability AI Non-Commercial Research Community License. | Variant | Hub | Resolution | Objective | Training | |---|---|---|---|---| @@ -51,6 +55,7 @@ Preconverted, float32 weights are hosted under `zeromodels/`. Load with | `stable-diffusion-2` | [`zeromodels/stable-diffusion-2`](https://huggingface.co/zeromodels/stable-diffusion-2) | 768 | v-prediction | 2-base + 150k steps at 768px | | `stable-diffusion-2-1-base` | [`zeromodels/stable-diffusion-2-1-base`](https://huggingface.co/zeromodels/stable-diffusion-2-1-base) | 512 | epsilon | 2-base + 220k steps at 512px (punsafe 0.98) | | `stable-diffusion-2-1` | [`zeromodels/stable-diffusion-2-1`](https://huggingface.co/zeromodels/stable-diffusion-2-1) | 768 | v-prediction | 2 + 55k steps (punsafe 0.1) + 155k steps (punsafe 0.98) at 768px | +| `sd-turbo` | [`zeromodels/sd-turbo`](https://huggingface.co/zeromodels/sd-turbo) | 512 | epsilon, 1 to 4 steps, no guidance | SD 2.1 distilled with Adversarial Diffusion Distillation (non-commercial) | Use the `-base` checkpoints for 512px images and the others for 768px; each repo's `zm_config.json` builds the graph at its native size. @@ -145,9 +150,26 @@ tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/stable-diffusion- images = model.generate(**tokenizer("a lighthouse on a cliff at dusk, oil painting")) # (1, 768, 768, 3) ``` +### SD-Turbo + +One step, no guidance (the repo's defaults; up to 4 steps sharpen a little): + +```python +model = StableDiffusion2TextToImage.from_weights("zeromodels/sd-turbo") +tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/sd-turbo") +images = model.generate(**tokenizer("a cinematic shot of a baby raccoon wearing an intricate italian priest robe")) +``` + +SD-Turbo, one step: a baby raccoon in an italian priest robe, 512px + +The same prompt and latent through diffusers' `StableDiffusionPipeline` (fp32) match to +1 uint8 level: 99.9% of pixels identical at 1 step (PSNR 82 dB), 99.8% at 4 steps. + Negative prompts, batching, explicit `latents` for cross-backend reproducibility, other resolutions and the container-only use work exactly as on the -[Stable Diffusion](stable_diffusion.md#end-to-end-example) page. +[Stable Diffusion](stable_diffusion.md#end-to-end-example) page. Image-to-image +(`generate(..., image=..., strength=...)`) works as described for +[`BaseDiffusion`](main_classes.md#basediffusion). ### Verified against diffusers diff --git a/docs/stable_diffusion_xl.md b/docs/stable_diffusion_xl.md new file mode 100644 index 00000000..c4952af7 --- /dev/null +++ b/docs/stable_diffusion_xl.md @@ -0,0 +1,354 @@ +# Stable Diffusion XL + +

+Weights: pretrained Keras weights live on Hugging Face under +zeromodels/<variant> +(each repo carries zm_config.json + the float16 weights + +tokenizer.json). Load with from_weights("zeromodels/<variant>"). +
+ +Stable Diffusion XL, ported to pure Keras 3: the [Stable Diffusion](stable_diffusion.md) +latent-diffusion recipe scaled up to 1024px with a 2.6B-parameter UNet and two text +encoders, plus the **refiner**, an image-to-image expert that finishes the base model's +latents, and **SDXL-Turbo**, the base distilled to a few steps. It subclasses the SD 1.x +family (`StableDiffusionXLModel` is a `StableDiffusionModel` with a fourth component, +`StableDiffusionXLTextToImage` is `StableDiffusionTextToImage` with the SDXL conditioning +hooks; the refiner classes subclass those), so everything on that page applies: one +container per repo, `generate` from `BaseDiffusion`, the schedulers, both data formats. +What changes: + +- **Two text encoders**: CLIP ViT-L/14's text tower (768-d, the SD 1.x one) and OpenCLIP + ViT-bigG/14's (1280-d, 32 layers, `gelu`, with a 1280-d `text_projection`). The prompt + goes through both; their **penultimate** hidden states (no final LayerNorm) are + concatenated into the UNet's 2048-d cross-attention context, and the second tower's + projected pooled (EOT) state is the `text_embeds` micro-conditioning. +- **One tokenizer call**: both towers use the same CLIP BPE and differ only in the pad + token (`<|endoftext|>` vs `!`), so `StableDiffusionXLTokenizer` is the first one and the + model derives the second tower's ids from the returned `attention_mask`. +- **Micro-conditioning**: the UNet's timestep embedding also receives the pooled text + embedding and six size / crop values (`original_size`, `crops_coords_top_left`, + `target_size`, each `(height, width)`), sinusoidally embedded and projected by the + `add_embedding` MLP (`addition_embed_type="text_time"`). +- **UNet**: three levels (320, 640, 1280) with no attention at the first, (1, 2, 10) + transformer blocks per Transformer2D, (5, 10, 20) heads (64 wide), linear token + projection, built at a 128x128 latent (1024px). +- **VAE**: the SDXL autoencoder (`scaling_factor` 0.13025), built in **float32 whatever + the load dtype** (`force_upcast`: it overflows in float16, as in diffusers). +- **Classifier-free guidance** with no negative prompt uses **zero** embeddings + (`force_zeros_for_empty_prompt`), not the encoded empty prompt. Default guidance is 5.0. +- **Scheduler**: Euler with `leading` timestep spacing (`steps_offset` 1) for the base + models and the refiners, ancestral Euler with `trailing` spacing for SDXL-Turbo; all + come from the repo's `scheduler_config`. +- **Refiner**: a second model (`StableDiffusionXLRefinerModel` / + `StableDiffusionXLRefinerImageToImage`) with the OpenCLIP tower alone (1280-d + context), a four-level UNet ((384, 768, 1536, 1536), attention at the middle levels, 4 + blocks per Transformer2D, 2.3B parameters) and an **aesthetic score** as the fifth + micro-conditioning id. It refines a latent the base left partially denoised + (`denoising_start`) or any image (`strength`); its empty negative prompt is encoded, not + zeroed. +- **float16 weights**: SDXL was released in float16, so the repos store that (the VAE in + float32) and `from_weights` builds the model in float16 by default (6.6 GB of weights). + Pass `load_dtype="float32"` for a float32 model (13.9 GB). + +The weights are converted once, offline, and hosted: on-the-fly `hf:` conversion is +deliberately **not supported** for diffusion models. + +Links: + +- Paper: [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis (arXiv:2307.01952)](https://arxiv.org/abs/2307.01952) +- Reference implementation: [diffusers `StableDiffusionXLPipeline`](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl) +- Licenses: [CreativeML Open RAIL++-M](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/LICENSE.md) + (1.0 base and refiner), [SDXL 0.9 Research License](https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9/blob/main/LICENSE.md) + (0.9, gated), [Stability AI Non-Commercial Research Community License](https://huggingface.co/stabilityai/sdxl-turbo/blob/main/LICENSE.md) + (Turbo) + +See also [stable_diffusion.md](stable_diffusion.md), [stable_diffusion_2.md](stable_diffusion_2.md), [clip.md](clip.md). + +## Variants + +Preconverted weights are hosted under `zeromodels/`. Load with +`from_weights("zeromodels/")`. A base repo is one container: UNet (2.57B) + VAE +(84M) + CLIP ViT-L/14 text encoder (123M) + OpenCLIP ViT-bigG/14 text encoder (695M), +3.47B parameters, 6.6 GB in float16 (two `model.weights.json` shards); a refiner repo is +UNet (2.26B) + VAE + OpenCLIP text encoder, 3.04B parameters, 5.8 GB. + +| Variant | Hub | Class | Resolution | Sampler | License | +|---|---|---|---|---|---| +| `stable-diffusion-xl-base-1.0` | [`zeromodels/stable-diffusion-xl-base-1.0`](https://huggingface.co/zeromodels/stable-diffusion-xl-base-1.0) | `StableDiffusionXLTextToImage` | 1024 | Euler, 50 steps, guidance 5.0 | CreativeML Open RAIL++-M | +| `stable-diffusion-xl-refiner-1.0` | [`zeromodels/stable-diffusion-xl-refiner-1.0`](https://huggingface.co/zeromodels/stable-diffusion-xl-refiner-1.0) | `StableDiffusionXLRefinerImageToImage` | 1024 | Euler, 50 steps, guidance 5.0, strength 0.3 | CreativeML Open RAIL++-M | +| `stable-diffusion-xl-base-0.9` | [`zeromodels/stable-diffusion-xl-base-0.9`](https://huggingface.co/zeromodels/stable-diffusion-xl-base-0.9) | `StableDiffusionXLTextToImage` | 1024 | Euler, 50 steps, guidance 5.0 | SDXL 0.9 Research License (gated) | +| `stable-diffusion-xl-refiner-0.9` | [`zeromodels/stable-diffusion-xl-refiner-0.9`](https://huggingface.co/zeromodels/stable-diffusion-xl-refiner-0.9) | `StableDiffusionXLRefinerImageToImage` | 1024 | Euler, 50 steps, guidance 5.0, strength 0.3 | SDXL 0.9 Research License (gated) | +| `sdxl-turbo` | [`zeromodels/sdxl-turbo`](https://huggingface.co/zeromodels/sdxl-turbo) | `StableDiffusionXLTextToImage` | 512 | Euler ancestral, 1 step, no guidance | Stability AI Non-Commercial Research Community | + +The 0.9 checkpoints are the research preview that preceded 1.0 (same architecture, +different weights); their upstream repos are gated behind the research license, so they +are converted with an authorized `HF_TOKEN`. SDXL-Turbo is a research-only, +non-commercial release; its repo defaults (`generate_args`) are 1 step and +`guidance_scale=0.0`, which is how it was trained (do not add guidance). + +## API + +Configs are typed: `StableDiffusionXLConfig` (composite, `model_type` +`"stable_diffusion_xl"`) over `StableDiffusionXLUNetConfig`, `StableDiffusionXLVAEConfig`, +`StableDiffusionTextConfig` (the CLIP ViT-L/14 tower, as SD 1.x) and +`StableDiffusionXLTextConfig2` (the OpenCLIP ViT-bigG/14 tower, with `projection_dim` and +its own `hidden_act`), plus the scheduler config, the token ids (`pad_token_id_2` for the +second tokenizer's `!`), `force_zeros_for_empty_prompt` and `requires_aesthetics_score`. +Flat constructor with `unet_` / `vae_` / `text_` / `text_2_` prefixes. +`StableDiffusionXLRefinerConfig` (`model_type` `"stable_diffusion_xl_refiner"`) is the +same with `text_config=None`, the `StableDiffusionXLRefinerUNetConfig` denoiser, +`requires_aesthetics_score=True` and `force_zeros_for_empty_prompt=False`. + +### `StableDiffusionXLTextToImage` + +`StableDiffusionTextToImage` over the SDXL graph; `generate` gains the micro-conditioning +arguments: + +```python +generate( + input_ids, + attention_mask=None, + negative_input_ids=None, + num_inference_steps=None, + guidance_scale=None, + seed=None, + latents=None, + image=None, + strength=None, + denoising_start=None, + denoising_end=None, + output_type="image", + original_size=None, + crops_coords_top_left=(0, 0), + target_size=None, + aesthetic_score=6.0, + negative_original_size=None, + negative_crops_coords_top_left=None, + negative_target_size=None, + negative_aesthetic_score=2.5, +) +``` + +| Argument | Description | +|---|---| +| `input_ids`, `attention_mask` | `**tokenizer(prompts)`; the mask tells the model which positions are padding, so the second tower's `!`-padded ids can be derived (without it, everything after the first `<|endoftext|>` counts as padding). | +| `negative_input_ids` | Tokenized negative prompt, one row per prompt or a single row shared by the batch. Without it the unconditional branch is zero embeddings (`force_zeros_for_empty_prompt`), as in diffusers. | +| `num_inference_steps`, `guidance_scale`, `seed`, `latents` | As for [Stable Diffusion](stable_diffusion.md#stablediffusiontexttoimage); defaults from the repo's `generate_args` (50 steps, guidance 5.0 for the base model). | +| `image`, `strength`, `denoising_start`, `denoising_end`, `output_type` | The image-to-image and ensemble controls of [`BaseDiffusion.generate`](main_classes.md#basediffusion): refine an `image` (noised to `strength`), stop early (`denoising_end`) and hand the latent over (`output_type="latent"`), or resume one (`denoising_start`). | +| `original_size`, `crops_coords_top_left`, `target_size` | SDXL's size / crop conditioning, `(height, width)` in pixels; the sizes default to the generated image's size, the crop to `(0, 0)`. | +| `aesthetic_score` | The refiner's fifth conditioning value (6.0), in place of `target_size`; ignored by the base models. | +| `negative_*` | The same for the negative branch; each defaults to its positive value, except `negative_aesthetic_score` (2.5). | + +Returns `(batch, H, W, 3)` uint8 images (or the latent); `latents` is +`(batch, 128, 128, 4)` at 1024px (`channels_first`: channels second). + +The hooks, for anyone composing their own loop: `encode_prompt(input_ids, attention_mask, +original_size, crops_coords_top_left, target_size)` returns the dict the UNet takes +(`encoder_hidden_states` (batch, 77, 2048), `text_embeds` (batch, 1280), `time_ids` +(batch, 6)); `encode_negative_prompt` zeroes the first two when no negative ids are given; +`predict_noise(latents, timesteps, embeddings)` runs the UNet. + +### `StableDiffusionXLRefinerImageToImage` + +The refiner task: the same class over the refiner container (`text_encoder_2` alone, +`aesthetic_score` in the conditioning, `generate_args` with `strength` 0.3). Its +`generate` is the one above; with no `image` / `latents` it runs text-to-image, which the +refiner was not trained for. The two intended uses: + +```python +base = StableDiffusionXLTextToImage.from_weights("zeromodels/stable-diffusion-xl-base-1.0") +refiner = StableDiffusionXLRefinerImageToImage.from_weights("zeromodels/stable-diffusion-xl-refiner-1.0") +tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/stable-diffusion-xl-base-1.0") +inputs = tokenizer("a lighthouse on a rocky coast at dawn, dramatic clouds, cinematic") + +# ensemble of experts: the base denoises 80% of the schedule, the refiner the rest +latent = base.generate(**inputs, num_inference_steps=50, denoising_end=0.8, output_type="latent") +images = refiner.generate(**inputs, latents=latent, num_inference_steps=50, denoising_start=0.8) + +# image-to-image: refine any image (uint8 or [0, 1] float, (batch, H, W, 3)) +images = refiner.generate(**inputs, image=images, strength=0.3, seed=0) +``` + +### `StableDiffusionXLModel` + +The container: four disconnected paths in one functional model, `.unet` / `.vae` / +`.text_encoder` / `.text_encoder_2`. + +| Inputs | Outputs | +|---|---| +| `sample` (B, 128, 128, 4), `timestep` (B,), `encoder_hidden_states` (B, 77, 2048), `text_embeds` (B, 1280), `time_ids` (B, 6) | `noise_pred` (B, 128, 128, 4) | +| `image` (B, 1024, 1024, 3), `latent` (B, 128, 128, 4) | `moments` (B, 128, 128, 8), `image` (B, 1024, 1024, 3) | +| `token_ids` (B, 77), `token_ids_2` (B, 77), `padding_mask` (B, 77) | `prompt_embeds` (B, 77, 2048), `pooled_prompt_embeds` (B, 1280) | + +Each text tower is a functional CLIP text model (the `clip` family's layers) whose outputs +are `penultimate_hidden_state`, `last_hidden_state`, `pooler_output` and, for the second, +`text_embeds`. The UNet is the SD 1.x `UNet2DConditionModel` with the SDXL config +(`transformer_layers_per_block=(1, 2, 10)`, `addition_embed_type="text_time"`); the VAE +is `AutoencoderKL` with `force_upcast=True`. `StableDiffusionXLRefinerModel` is the same +container without the first tower (`token_ids_2` + `padding_mask` in, `prompt_embeds` +(B, 77, 1280) out) and with `time_ids` (B, 5). + +## Preprocessing + +### `StableDiffusionXLTokenizer` + +`StableDiffusionTokenizer` (CLIP BPE, `<|startoftext|>` / `<|endoftext|>` framing, +`<|endoftext|>`-padded to 77 tokens). Returns `{"input_ids", "attention_mask"}`; pass both +to `generate`. + +```python +StableDiffusionXLTokenizer(hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="<|endoftext|>") +``` + +A literal `!` in a prompt is encoded as OpenCLIP encodes it (the BPE token `!`, id +256) in the second tower's derived ids; diffusers' `tokenizer_2`, whose pad token is `!`, +turns it into the pad id 0 instead. + +## End-to-end example + +```python +import os + +os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" + +from PIL import Image +from zeromodels.models.stable_diffusion_xl import ( + StableDiffusionXLTextToImage, + StableDiffusionXLTokenizer, +) + +model = StableDiffusionXLTextToImage.from_weights("zeromodels/stable-diffusion-xl-base-1.0") +tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/stable-diffusion-xl-base-1.0") + +inputs = tokenizer( + "a lighthouse on a rocky coast at dawn, dramatic clouds, cinematic, highly detailed" +) +images = model.generate(**inputs, num_inference_steps=30, guidance_scale=5.0, seed=3) + +Image.fromarray(images[0]).save("lighthouse.png") # (1024, 1024, 3) uint8 +``` + +Stable Diffusion XL base 1.0: a lighthouse on a rocky coast at dawn, 1024px + +### Base + refiner + +The SDXL "ensemble of experts": the base runs the first 80% of the schedule and hands its +latent to the refiner, which finishes it. Same prompt and initial latent as above: + +```python +refiner = StableDiffusionXLRefinerImageToImage.from_weights("zeromodels/stable-diffusion-xl-refiner-1.0") +latent = model.generate(**inputs, num_inference_steps=30, denoising_end=0.8, output_type="latent", seed=3) +images = refiner.generate(**inputs, latents=latent, num_inference_steps=30, denoising_start=0.8) +``` + +Stable Diffusion XL base + refiner: the lighthouse, refined + +### SDXL-Turbo + +One step, no guidance, 512px (the repo's defaults): + +```python +model = StableDiffusionXLTextToImage.from_weights("zeromodels/sdxl-turbo") +tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/sdxl-turbo") +images = model.generate(**tokenizer("a cinematic shot of a baby raccoon wearing an intricate italian priest robe")) +``` + +SDXL-Turbo, one step: a baby raccoon in an italian priest robe, 512px + +### Negative prompts, micro-conditioning + +```python +inputs = tokenizer(["a red bicycle", "a blue bicycle"]) +negative = tokenizer("blurry, low quality") # one row, shared by the batch +images = model.generate( + **inputs, + negative_input_ids=negative["input_ids"], + original_size=(2048, 2048), # "a crop of a larger image": sharper detail + crops_coords_top_left=(0, 0), + target_size=(1024, 1024), + seed=0, +) +``` + +### Other resolutions + +The graphs are built for the repo's resolution; pass overrides to build for another +(the weights are resolution-independent; multiples of 64px): + +```python +model = StableDiffusionXLTextToImage.from_weights( + "zeromodels/stable-diffusion-xl-base-1.0", unet_sample_size=(96, 128), vae_sample_size=(768, 1024) +) +images = model.generate(**tokenizer("a wide mountain valley")) # (1, 768, 1024, 3) +``` + +### float32 + +```python +model = StableDiffusionXLTextToImage.from_weights( + "zeromodels/stable-diffusion-xl-base-1.0", load_dtype="float32" +) +``` + +### Verified against diffusers + +The components of `stable-diffusion-xl-base-1.0` and `stable-diffusion-xl-refiner-1.0` +were checked one by one against diffusers 0.39 / transformers in float32 on the same +inputs (the converted float16 weights computed in float32): + +``` +base text_encoder penultimate max|d|=6.1e-05 (values up to 854) +base text_encoder_2 penultimate max|d|=3.1e-05 +base text_encoder_2 pooled max|d|=3.6e-06 +base unet noise_pred (t=981) max|d|=9.3e-06 +base vae decode (512px) max|d|=3.5e-05 +refiner text_encoder_2 penultimate max|d|=3.1e-05 +refiner unet noise_pred (t=181) max|d|=1.2e-05 +``` + +The pipelines (Euler `leading` spacing, classifier-free guidance with the zeroed or +encoded negative branch, the micro-conditioning values, negative prompts, batches, +`strength`, `denoising_end` / `denoising_start`) were checked against +`StableDiffusionXLPipeline` and `StableDiffusionXLImg2ImgPipeline` on small +random-weight models, where the generated images are pixel-identical on torch and jax. +At full size in float16 (the default load; diffusers in float16 with its float32 VAE), +the lighthouse above matches diffusers to PSNR 49.7 dB (98.5% of pixels within 2 uint8 +levels), the base + refiner ensemble to PSNR 51.9 dB (98.8% within 2) and SDXL-Turbo +(1 step, 512px) to PSNR 44.9 dB (92% within 2; a single step amplifies float16 rounding). +The lighthouse, zeromodels (left) and diffusers (right): + +zeromodels (left) and diffusers (right) generations of the lighthouse from stable-diffusion-xl-base-1.0 with the same latent + +## Data Format + +Both `channels_last` and `channels_first` are supported, as for +[Stable Diffusion](stable_diffusion.md#data-format); `generate` always returns +`(batch, H, W, 3)` uint8. + +## Memory and speed + +Measured on the torch backend with the default float16 load (weights resident: 6.8 GB for +a base model, 6.3 GB for the refiner, the VAE in float32): + +| Resolution | Denoising step (guided, batch 1) | VAE decode (float32) | +|---|---|---| +| 512px | peak 7.1 GB, 1.2 s/step on an RTX 4060 Laptop | peak 8.5 GB | +| 768px | peak 8.0 GB | peak 10.5 GB | +| 1024px | peak 10.4 GB | about 14 GB | + +Keras' functional executor keeps every layer output of a graph alive until the graph +returns, so the decoder's feature maps at 1024px add several GB on top of the weights: a +16 GB GPU runs 1024px comfortably, a 12 GB GPU 768px; on 8 GB, generate at 512px, or +denoise on the GPU (`output_type="latent"`) and decode the latent on the CPU (about 100 s +at 1024px) with a second, CPU-only process. In float32 the weights alone take 13.9 GB. +On JAX and TensorFlow the denoiser step is compiled once per run (see +[`BaseDiffusion`](main_classes.md#basediffusion)). + +## Loading Fine-tuned Weights + +Any repo laid out like the hosted ones (`zm_config.json` declaring +`StableDiffusionXLModel`, the weights, `tokenizer.json`) loads with +`from_weights("/")`. The `hf:` prefix raises for diffusion models: convert a +diffusers-format SDXL checkpoint once with +`zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py` +(`build_from_diffusers(repo)`, `pip install zeromodels[conversion]`) and host the result. diff --git a/tests/base/model_test_registry.py b/tests/base/model_test_registry.py index 324ceea3..39383b8f 100644 --- a/tests/base/model_test_registry.py +++ b/tests/base/model_test_registry.py @@ -4388,6 +4388,115 @@ "expected_output_shape": dict(_sd_outputs), } +# Stable Diffusion XL: three-level UNet (no attention at the first level, stacked +# transformer blocks, text_time micro-conditioning), two text towers whose penultimate +# states concatenate into the 2048-d context (here 32 + 32 = 64), float32 VAE. +_sdxl_tiny = { + "unet_sample_size": 8, + "unet_down_block_types": ("DownBlock2D", "CrossAttnDownBlock2D"), + "unet_up_block_types": ("CrossAttnUpBlock2D", "UpBlock2D"), + "unet_block_out_channels": (32, 64), + "unet_layers_per_block": 1, + "unet_cross_attention_dim": 64, + "unet_num_attention_heads": (2, 4), + "unet_norm_num_groups": 8, + "unet_use_linear_projection": True, + "unet_transformer_layers_per_block": (1, 2), + "unet_addition_embed_type": "text_time", + "unet_addition_time_embed_dim": 8, + "unet_projection_class_embeddings_input_dim": 16 + 6 * 8, + "unet_num_time_ids": 6, + "unet_text_seq_len": 16, + "vae_sample_size": 16, + "vae_block_out_channels": (16, 32), + "vae_layers_per_block": 1, + "vae_norm_num_groups": 8, + "text_hidden_dim": 32, + "text_num_heads": 2, + "text_num_layers": 2, + "max_seq_len": 16, + "vocab_size": 128, + "text_2_hidden_dim": 32, + "text_2_num_heads": 2, + "text_2_num_layers": 2, + "text_2_projection_dim": 16, + "text_2_max_seq_len": 16, + "text_2_vocab_size": 128, +} +_sdxl_outputs = { + "noise_pred": (2, 8, 8, 4), + "moments": (2, 8, 8, 8), + "image": (2, 16, 16, 3), + "prompt_embeds": (2, 16, 64), + "pooled_prompt_embeds": (2, 16), +} +MODEL_TEST_CONFIGS["StableDiffusionXLModel"] = { + "module": "zeromodels.models.stable_diffusion_xl", + "model_cls": "StableDiffusionXLModel", + "model_type": "diffusion", + "init_kwargs": dict(_sdxl_tiny), + "input_factory": "stable_diffusion_xl_input", + "expected_output_shape": dict(_sdxl_outputs), +} +MODEL_TEST_CONFIGS["StableDiffusionXLTextToImage"] = { + "module": "zeromodels.models.stable_diffusion_xl", + "model_cls": "StableDiffusionXLTextToImage", + "model_type": "diffusion", + "init_kwargs": dict(_sdxl_tiny), + "input_factory": "stable_diffusion_xl_input", + "expected_output_shape": dict(_sdxl_outputs), +} + +# SDXL refiner: the second text tower alone (a 32-d context), a four-level UNet with +# attention at the middle levels, five time ids (size, crop, aesthetic score). +_sdxl_refiner_tiny = { + k: v + for k, v in _sdxl_tiny.items() + if not k.startswith("text_") and k not in ("max_seq_len", "vocab_size") +} | { + "unet_down_block_types": ( + "DownBlock2D", + "CrossAttnDownBlock2D", + "CrossAttnDownBlock2D", + "DownBlock2D", + ), + "unet_up_block_types": ( + "UpBlock2D", + "CrossAttnUpBlock2D", + "CrossAttnUpBlock2D", + "UpBlock2D", + ), + "unet_block_out_channels": (32, 64, 64, 64), + "unet_cross_attention_dim": 32, + "unet_num_attention_heads": (2, 4, 4, 4), + "unet_transformer_layers_per_block": 2, + "unet_projection_class_embeddings_input_dim": 16 + 5 * 8, + "unet_num_time_ids": 5, + "text_2_hidden_dim": 32, + "text_2_num_heads": 2, + "text_2_num_layers": 2, + "text_2_projection_dim": 16, + "text_2_max_seq_len": 16, + "text_2_vocab_size": 128, +} +_sdxl_refiner_outputs = dict(_sdxl_outputs, prompt_embeds=(2, 16, 32)) +MODEL_TEST_CONFIGS["StableDiffusionXLRefinerModel"] = { + "module": "zeromodels.models.stable_diffusion_xl", + "model_cls": "StableDiffusionXLRefinerModel", + "model_type": "diffusion", + "init_kwargs": dict(_sdxl_refiner_tiny), + "input_factory": "stable_diffusion_xl_refiner_input", + "expected_output_shape": dict(_sdxl_refiner_outputs), +} +MODEL_TEST_CONFIGS["StableDiffusionXLRefinerImageToImage"] = { + "module": "zeromodels.models.stable_diffusion_xl", + "model_cls": "StableDiffusionXLRefinerImageToImage", + "model_type": "diffusion", + "init_kwargs": dict(_sdxl_refiner_tiny), + "input_factory": "stable_diffusion_xl_refiner_input", + "expected_output_shape": dict(_sdxl_refiner_outputs), +} + def get_all_model_ids(): return list(MODEL_TEST_CONFIGS.keys()) diff --git a/tests/fixtures/dummy_inputs.py b/tests/fixtures/dummy_inputs.py index 85168148..5cc8300e 100644 --- a/tests/fixtures/dummy_inputs.py +++ b/tests/fixtures/dummy_inputs.py @@ -160,6 +160,56 @@ def stable_diffusion_input( } +def stable_diffusion_xl_input( + batch_size=2, + sample_size=8, + image_size=16, + max_seq_len=16, + cross_attention_dim=64, + pooled_dim=16, + num_time_ids=6, +): + # SDXL adds the UNet's text_time micro-conditioning (pooled text embedding + + # size / crop ids) and the second text tower's ids to the SD 1.x paths + return { + "sample": ops.ones((batch_size, sample_size, sample_size, 4)), + "timestep": ops.ones((batch_size,)), + "encoder_hidden_states": ops.ones( + (batch_size, max_seq_len, cross_attention_dim) + ), + "text_embeds": ops.ones((batch_size, pooled_dim)), + "time_ids": ops.ones((batch_size, num_time_ids)), + "image": ops.ones((batch_size, image_size, image_size, 3)), + "latent": ops.ones((batch_size, sample_size, sample_size, 4)), + "token_ids": ops.ones((batch_size, max_seq_len), dtype="int32"), + "token_ids_2": ops.ones((batch_size, max_seq_len), dtype="int32"), + "padding_mask": ops.ones((batch_size, max_seq_len), dtype="int32"), + } + + +def stable_diffusion_xl_refiner_input( + batch_size=2, + sample_size=8, + image_size=16, + max_seq_len=16, + cross_attention_dim=32, + pooled_dim=16, + num_time_ids=5, +): + # the refiner has no first text tower: no token_ids, five time ids + inputs = stable_diffusion_xl_input( + batch_size, + sample_size, + image_size, + max_seq_len, + cross_attention_dim, + pooled_dim, + num_time_ids, + ) + inputs.pop("token_ids") + return inputs + + def tips_v2_text_input(batch_size=2, max_seq_len=16): return { "token_ids": ops.ones((batch_size, max_seq_len), dtype="int32"), diff --git a/tests/integration/test_auto_registry.py b/tests/integration/test_auto_registry.py index cd446bfb..795685f8 100644 --- a/tests/integration/test_auto_registry.py +++ b/tests/integration/test_auto_registry.py @@ -42,6 +42,7 @@ "PanopticSegment", "UniversalSegment", "TextToImage", + "ImageToImage", "DptDepthEstimation", "DptSemanticSegment", "DptDensePredict", diff --git a/website/mkdocs.yml b/website/mkdocs.yml index bf80005c..fa32072a 100644 --- a/website/mkdocs.yml +++ b/website/mkdocs.yml @@ -232,6 +232,7 @@ nav: - SigLIP 2: siglip2.md - Stable Diffusion: stable_diffusion.md - Stable Diffusion 2: stable_diffusion_2.md + - Stable Diffusion XL: stable_diffusion_xl.md - TIPSv2: tipsv2.md - Loading Weights: loading_weights.md diff --git a/zeromodels/auto/auto_mapping_names.py b/zeromodels/auto/auto_mapping_names.py index a87c35cb..caec7ee8 100644 --- a/zeromodels/auto/auto_mapping_names.py +++ b/zeromodels/auto/auto_mapping_names.py @@ -272,6 +272,8 @@ "siglip2": "SigLIP2Model", "stable_diffusion": "StableDiffusionModel", "stable_diffusion_2": "StableDiffusion2Model", + "stable_diffusion_xl": "StableDiffusionXLModel", + "stable_diffusion_xl_refiner": "StableDiffusionXLRefinerModel", "swin": "SwinModel", "swinv2": "SwinV2Model", "t5": "T5Model", @@ -401,6 +403,10 @@ "TextToImage": { "stable_diffusion": "StableDiffusionTextToImage", "stable_diffusion_2": "StableDiffusion2TextToImage", + "stable_diffusion_xl": "StableDiffusionXLTextToImage", + }, + "ImageToImage": { + "stable_diffusion_xl_refiner": "StableDiffusionXLRefinerImageToImage", }, "TokenClassify": { "bert": "BertTokenClassify", @@ -658,6 +664,8 @@ "speech_to_text_text": "Speech2TextTextConfig", "stable_diffusion": "StableDiffusionConfig", "stable_diffusion_2": "StableDiffusion2Config", + "stable_diffusion_xl": "StableDiffusionXLConfig", + "stable_diffusion_xl_refiner": "StableDiffusionXLRefinerConfig", "swin": "SwinConfig", "swinv2": "SwinV2Config", "t5": "T5Config", @@ -754,6 +762,8 @@ "speech_to_text": "Speech2TextTokenizer", "stable_diffusion": "StableDiffusionTokenizer", "stable_diffusion_2": "StableDiffusion2Tokenizer", + "stable_diffusion_xl": "StableDiffusionXLTokenizer", + "stable_diffusion_xl_refiner": "StableDiffusionXLTokenizer", "t5": "T5Tokenizer", "tipsv2": "Tipsv2Tokenizer", "whisper": "WhisperTokenizer", diff --git a/zeromodels/base/base_diffusion.py b/zeromodels/base/base_diffusion.py index d9ec7221..65515713 100644 --- a/zeromodels/base/base_diffusion.py +++ b/zeromodels/base/base_diffusion.py @@ -28,16 +28,39 @@ class BaseDiffusion: A model plugs in five hooks: - - ``encode_prompt(input_ids, attention_mask=None) -> (batch, seq, dim)`` -- the - conditioning for a batch of token ids (the text tower). + - ``encode_prompt(input_ids, attention_mask=None, **conditioning)`` -- the + conditioning for a batch of token ids (the text tower): a ``(batch, seq, dim)`` + tensor, or any nested structure of batch-major tensors when the denoiser + takes more than one (SDXL's ``{"encoder_hidden_states", "text_embeds", + "time_ids"}``). Extra ``generate`` keyword arguments arrive here (a model's + micro-conditioning), see below. - ``unconditional_ids(batch) -> (batch, seq)`` -- token ids of the empty prompt, - the unconditional branch of classifier-free guidance. + the unconditional branch of classifier-free guidance. A model whose + unconditional branch is not an encoded prompt (SDXL zeroes it) overrides + ``encode_negative_prompt`` instead. - ``predict_noise(latents, timesteps, embeddings) -> (batch, h, w, c)`` -- one - denoiser call (the UNet), ``timesteps`` being ``(batch,)`` floats. + denoiser call (the UNet), ``timesteps`` being ``(batch,)`` floats and + ``embeddings`` whatever ``encode_prompt`` returned (batched ``[uncond, cond]`` + along axis 0 under guidance). - ``decode_latents(latents) -> (batch, H, W, 3)`` -- the decoded image in ``[-1, 1]``, channels-last (the VAE decoder, latent scaling included). - ``latent_shape -> (height, width, channels)`` of one initial latent, and a ``scheduler`` attribute (a :class:`~zeromodels.base.base_scheduler.BaseScheduler`). + - ``encode_latents(image) -> (batch, h, w, c)`` -- optional, the VAE-encoded + (scaled) latent of a ``[-1, 1]`` channels-last image, for image-to-image. + + ``generate`` is also the image-to-image entry point (diffusers' + ``Img2ImgPipeline``): given an ``image`` (or a clean ``latents``) and a + ``strength``, it noises the encoded image to the matching point of the schedule + and denoises the remaining steps. ``denoising_end`` stops a run early and + ``denoising_start`` resumes one from a partially denoised latent, the SDXL + base + refiner "ensemble of experts" (``output_type="latent"`` hands the latent + over). + + Keyword arguments ``generate`` does not know are conditioning and go to + ``encode_prompt``; a ``negative_``-prefixed twin (``negative_original_size`` for + ``original_size``) goes to the negative branch instead, which otherwise reuses + the positive value, the way ``negative_input_ids`` pairs with ``input_ids``. Generation settings resolve like the LM mixins': an explicit ``generate`` argument wins, then the instance's ``generate_args`` (a repo's ``zm_config.json`` @@ -49,6 +72,7 @@ class BaseDiffusion: DEFAULT_NUM_INFERENCE_STEPS = 50 DEFAULT_GUIDANCE_SCALE = 7.5 + DEFAULT_STRENGTH = 0.8 def encode_prompt(self, input_ids, attention_mask=None): raise NotImplementedError( @@ -60,6 +84,20 @@ def unconditional_ids(self, batch): f"{type(self).__name__} must implement unconditional_ids()." ) + def encode_negative_prompt(self, negative_input_ids, batch, **conditioning): + """The unconditional branch of classifier-free guidance: the encoded negative + prompt, or the encoded empty prompt (``unconditional_ids``) when none is + given. A single ``(1, seq)`` negative row is shared by the whole batch. + """ + if negative_input_ids is None: + negative_input_ids = self.unconditional_ids(batch) + negative_input_ids = ops.cast( + ops.convert_to_tensor(negative_input_ids), "int32" + ) + if int(negative_input_ids.shape[0]) == 1 and batch > 1: + negative_input_ids = ops.repeat(negative_input_ids, batch, axis=0) + return self.encode_prompt(negative_input_ids, **conditioning) + def predict_noise(self, latents, timesteps, embeddings): raise NotImplementedError( f"{type(self).__name__} must implement predict_noise()." @@ -74,6 +112,11 @@ def decode_latents(self, latents): def latent_shape(self): raise NotImplementedError(f"{type(self).__name__} must define latent_shape.") + def encode_latents(self, image): + raise NotImplementedError( + f"{type(self).__name__} must implement encode_latents() for image-to-image." + ) + def generate( self, input_ids, @@ -83,8 +126,15 @@ def generate( guidance_scale=None, seed=None, latents=None, + image=None, + strength=None, + denoising_start=None, + denoising_end=None, + output_type="image", + **conditioning, ): - """Generate images from tokenized prompts. + """Generate images from tokenized prompts (text-to-image), or from an image + or latent and a prompt (image-to-image). Args: input_ids: ``(batch, seq)`` token ids, i.e. ``**tokenizer(prompts)``. @@ -95,38 +145,136 @@ def generate( num_inference_steps: Scheduler steps (``generate_args`` / 50). guidance_scale: Classifier-free guidance strength (``generate_args`` / 7.5); ``<= 1`` disables it. - seed: RNG seed for the initial latent (reproducible per backend). - latents: Explicit initial latent ``(batch, *latent_shape)``, for results - that are identical across backends. + seed: RNG seed for the initial latent / added noise (reproducible per + backend). + latents: Text-to-image: the explicit initial noise + ``(batch, *latent_shape)``, for results identical across backends. + Image-to-image (with ``strength`` or ``denoising_start``): the + clean, scaled latent to start from instead of ``image``. + image: ``(batch, H, W, 3)`` uint8 or ``[0, 1]`` float images to start + from (image-to-image); encoded by the VAE, then noised to the + ``strength`` point of the schedule. + strength: Image-to-image: the fraction of the schedule to run, + ``(0, 1]`` (``1.0`` ignores the image); the noise added matches. + Defaults to ``generate_args["strength"]`` when an ``image`` or + ``latents`` are given without ``denoising_start``, else 0.8. + denoising_start: Resume from a partially denoised latent at this + fraction of the schedule, adding no noise (the refiner's half of + the SDXL ensemble: the base ran with ``denoising_end`` at the + same value and ``output_type="latent"``). + denoising_end: Stop after this fraction of the schedule (the base's + half of the ensemble). + output_type: ``"image"`` (uint8 images) or ``"latent"`` (the final + latent, a backend tensor, e.g. for a refiner). + **conditioning: Model-specific conditioning handed to ``encode_prompt`` + (SDXL's ``original_size`` / ``crops_coords_top_left`` / + ``target_size``); ``negative_`` variants apply to the negative + branch only. Returns: - ``(batch, H, W, 3)`` uint8 numpy images. + ``(batch, H, W, 3)`` uint8 numpy images, or the latent. """ num_inference_steps, guidance_scale, seed = self.resolve_generation_args( num_inference_steps, guidance_scale, seed ) + positive, negative = self.split_conditioning(conditioning) input_ids = ops.cast(ops.convert_to_tensor(input_ids), "int32") batch = int(input_ids.shape[0]) + image_to_image = ( + image is not None or strength is not None or denoising_start is not None + ) + if image_to_image and strength is None and denoising_start is None: + strength = (getattr(self, "generate_args", None) or {}).get( + "strength", self.DEFAULT_STRENGTH + ) with inference_scope(): - embeddings = self.encode_prompt(input_ids, attention_mask) + embeddings = self.encode_prompt(input_ids, attention_mask, **positive) if guidance_scale > 1.0: - uncond_ids = ( - ops.cast(ops.convert_to_tensor(negative_input_ids), "int32") - if negative_input_ids is not None - else self.unconditional_ids(batch) + uncond = self.encode_negative_prompt( + negative_input_ids, batch, **negative + ) + embeddings = keras.tree.map_structure( + lambda u, c: ops.concatenate([u, c], axis=0), uncond, embeddings ) - if int(uncond_ids.shape[0]) == 1 and batch > 1: - uncond_ids = ops.repeat(uncond_ids, batch, axis=0) # one for all - embeddings = ops.concatenate( - [self.encode_prompt(uncond_ids), embeddings], axis=0 + # the scheduler's init_noise_sigma depends on the inference timesteps + self.scheduler.set_timesteps(num_inference_steps) + timesteps = self.scheduler.timesteps + if denoising_end is not None: + timesteps = timesteps[: self.steps_before(denoising_end, timesteps)] + if image_to_image: + timesteps, t_start = self.image_to_image_timesteps( + timesteps, strength, denoising_start ) - latents = self.prepare_latents(batch, seed=seed, latents=latents) + latents = self.prepare_image_latents( + image, + latents, + timesteps[0] if denoising_start is None else None, + seed=seed, + ) + self.scheduler.set_begin_index(t_start) + else: + latents = self.prepare_latents(batch, seed=seed, latents=latents) latents = self.denoise( - latents, embeddings, num_inference_steps, guidance_scale + latents, + embeddings, + num_inference_steps, + guidance_scale, + timesteps=timesteps, ) + if output_type == "latent": + return latents image = self.decode_latents(latents) return self.postprocess_image(image) + @staticmethod + def steps_before(fraction, timesteps): + """How many of ``timesteps`` lie in the first ``fraction`` of the schedule + (timesteps at or above the ``1 - fraction`` cutoff, diffusers' rounding).""" + cutoff = int(round(1000 - fraction * 1000)) + return int(np.sum(np.asarray(timesteps, dtype=np.float64) >= cutoff)) + + def image_to_image_timesteps(self, timesteps, strength, denoising_start): + """The tail of ``timesteps`` an image-to-image run covers and its start + index: the last ``strength`` fraction, or everything after + ``denoising_start``.""" + n = len(timesteps) + if denoising_start is not None: + t_start = self.steps_before(denoising_start, timesteps) + else: + t_start = max(n - min(int(n * strength), n), 0) + return timesteps[t_start:], t_start + + def prepare_image_latents(self, image, latents, timestep, seed=None): + """The starting latent of an image-to-image run: the encoded ``image`` (or + the given clean ``latents``), noised to ``timestep`` unless ``timestep`` is + ``None`` (resuming a partially denoised latent).""" + if latents is None: + if image is None: + raise ValueError("Image-to-image needs an image or latents.") + image = ops.convert_to_tensor(image) + if not keras.backend.is_float_dtype(image.dtype): + image = ops.cast(image, "float32") / 255.0 + latents = self.encode_latents(ops.cast(image, "float32") * 2.0 - 1.0) + latents = ops.cast(ops.convert_to_tensor(latents), "float32") + if timestep is None: + return latents + noise = keras.random.normal(ops.shape(latents), seed=seed, dtype="float32") + return self.scheduler.add_noise(latents, noise, [timestep]) + + @staticmethod + def split_conditioning(conditioning): + """Split ``generate``'s extra keyword arguments into the positive branch's + and the negative branch's (``negative_`` overrides ```` there; + a ``None`` override keeps the positive value).""" + positive = { + k: v for k, v in conditioning.items() if not k.startswith("negative_") + } + negative = dict(positive) + for key, value in conditioning.items(): + if key.startswith("negative_") and value is not None: + negative[key[len("negative_") :]] = value + return positive, negative + def resolve_generation_args(self, num_inference_steps, guidance_scale, seed): defaults = getattr(self, "generate_args", None) or {} if num_inference_steps is None: @@ -163,12 +311,16 @@ def classifier_free_guidance(noise_pred, guidance_scale): uncond, cond = ops.split(noise_pred, 2, axis=0) return uncond + guidance_scale * (cond - uncond) - def denoise(self, latents, embeddings, num_inference_steps, guidance_scale): + def denoise( + self, latents, embeddings, num_inference_steps, guidance_scale, timesteps=None + ): """Run the scheduler's denoising loop over ``predict_noise``. - ``embeddings`` is ``[uncond, cond]`` batched along axis 0 when - ``guidance_scale > 1`` (classifier-free guidance), else just ``cond``. - Returns the denoised latent. + ``embeddings`` is whatever ``encode_prompt`` returned, ``[uncond, cond]`` + batched along axis 0 when ``guidance_scale > 1`` (classifier-free + guidance), else just ``cond``. Loops over the scheduler's + ``num_inference_steps`` timesteps, or over the given ``timesteps`` (a + subset of them, the scheduler already set up). Returns the denoised latent. """ do_cfg = guidance_scale > 1.0 batch = int(ops.shape(latents)[0]) @@ -176,8 +328,10 @@ def denoise(self, latents, embeddings, num_inference_steps, guidance_scale): step = self.cached_denoise_step(do_cfg) guidance = ops.convert_to_tensor(guidance_scale, dtype="float32") scheduler = self.scheduler - scheduler.set_timesteps(num_inference_steps) - for t in scheduler.timesteps: + if timesteps is None: + scheduler.set_timesteps(num_inference_steps) + timesteps = scheduler.timesteps + for t in timesteps: model_input = ( ops.concatenate([latents, latents], axis=0) if do_cfg else latents ) diff --git a/zeromodels/base/base_scheduler.py b/zeromodels/base/base_scheduler.py index 1b70e6da..ea2cd6c0 100644 --- a/zeromodels/base/base_scheduler.py +++ b/zeromodels/base/base_scheduler.py @@ -126,6 +126,10 @@ def scale_model_input(self, sample, timestep=None): def set_timesteps(self, num_inference_steps): raise NotImplementedError + def set_begin_index(self, index): + """Start the loop at ``self.timesteps[index]`` (image-to-image skips the first + steps); a no-op for the samplers that index by timestep value.""" + def step(self, model_output, timestep, sample, **kwargs): raise NotImplementedError @@ -334,55 +338,126 @@ def to_config(self): class EulerDiscreteScheduler(BaseScheduler): - """Euler sampler over the karras-style sigma parameterization.""" + """Euler sampler over the karras-style sigma parameterization. - def __init__(self, **kwargs): + Args: + timestep_spacing: How the inference timesteps are spread over the training + ones: ``"linspace"`` (evenly from ``num_train_timesteps - 1`` to 0), + ``"leading"`` (multiples of the step ratio from 0, shifted by + ``steps_offset``; the SD 1.x / 2.x and SDXL repos) or ``"trailing"`` + (multiples counted back from ``num_train_timesteps``; SDXL-Turbo). + interpolation_type: ``"linear"`` interpolates the training sigmas at the + timesteps; ``"log_linear"`` spaces them evenly in log space. + """ + + def __init__( + self, timestep_spacing="linspace", interpolation_type="linear", **kwargs + ): super().__init__(**kwargs) + self.timestep_spacing = timestep_spacing + self.interpolation_type = interpolation_type ac = self.alphas_cumprod sigmas = ((np.float32(1.0) - ac) / ac) ** np.float32(0.5) self.train_sigmas = sigmas.astype(np.float32) self.sigmas = np.concatenate([sigmas[::-1], [0.0]]).astype(np.float32) + self.step_index = 0 @property def init_noise_sigma(self): - # "linspace" timestep spacing (the only one implemented): the reference - # scales the initial noise by the largest sigma itself. - return float(self.sigmas.max()) + # the reference scales the initial noise by the largest sigma itself for + # "linspace" / "trailing" spacing and by sqrt(sigma_max^2 + 1) for "leading" + max_sigma = float(self.sigmas.max()) + if self.timestep_spacing in ("linspace", "trailing"): + return max_sigma + return (max_sigma**2 + 1) ** 0.5 def scale_model_input(self, sample, timestep=None): sigma = self.sigmas[self.step_index] return sample / ((sigma**2 + 1) ** 0.5) + def set_begin_index(self, index): + self.step_index = int(index) + + def add_noise(self, original_samples, noise, timesteps): + # the Euler sample space is unscaled: x_t = x_0 + sigma_t * noise, sigma_t + # being the inference sigma of the timestep (set_timesteps first) + timesteps = np.asarray(timesteps, dtype=np.float32).reshape(-1) + index = [int(np.nonzero(self.timesteps == t)[0][0]) for t in timesteps] + sigma = self.sigmas[index] + while sigma.ndim < len(ops.shape(original_samples)): + sigma = sigma[..., None] + sigma = ops.convert_to_tensor(sigma, dtype=original_samples.dtype) + return original_samples + noise * sigma + + def spaced_timesteps(self, num_inference_steps): + n_train = self.num_train_timesteps + if self.timestep_spacing == "linspace": + timesteps = np.linspace( + 0, n_train - 1, num_inference_steps, dtype=np.float32 + ) + return timesteps[::-1].copy() + if self.timestep_spacing == "leading": + step_ratio = n_train // num_inference_steps + timesteps = (np.arange(0, num_inference_steps) * step_ratio).round() + return timesteps[::-1].copy().astype(np.float32) + self.steps_offset + if self.timestep_spacing == "trailing": + step_ratio = n_train / num_inference_steps + timesteps = np.arange(n_train, 0, -step_ratio).round() + return timesteps.astype(np.float32) - 1 + raise ValueError( + f"Unknown timestep_spacing {self.timestep_spacing!r}; expected " + "'linspace', 'leading' or 'trailing'." + ) + def set_timesteps(self, num_inference_steps): self.num_inference_steps = num_inference_steps - timesteps = np.linspace( - 0, self.num_train_timesteps - 1, num_inference_steps, dtype=np.float32 - )[::-1].copy() + timesteps = self.spaced_timesteps(num_inference_steps) sigmas = self.train_sigmas - interp = np.interp(timesteps, np.arange(len(sigmas)), sigmas) - self.sigmas = np.concatenate([interp, [0.0]]).astype(np.float32) + if self.interpolation_type == "linear": + sigmas = np.interp(timesteps, np.arange(len(sigmas)), sigmas) + elif self.interpolation_type == "log_linear": + sigmas = np.exp( + np.linspace( + np.log(sigmas[-1]), np.log(sigmas[0]), num_inference_steps + 1 + ) + )[:-1] + else: + raise ValueError( + f"Unknown interpolation_type {self.interpolation_type!r}; expected " + "'linear' or 'log_linear'." + ) + self.sigmas = np.concatenate([sigmas, [0.0]]).astype(np.float32) self.timesteps = timesteps self.step_index = 0 return self.timesteps - def step(self, model_output, timestep, sample, **kwargs): - sigma = float(self.sigmas[self.step_index]) - sigma_next = float(self.sigmas[self.step_index + 1]) + def pred_original_sample(self, model_output, sigma, sample): + # float32 sigma arithmetic, so the coefficients match the reference's bits if self.prediction_type == "epsilon": - pred_original = sample - sigma * model_output - elif self.prediction_type == "v_prediction": - pred_original = model_output * (-sigma / (sigma**2 + 1) ** 0.5) + ( + return sample - sigma * model_output + if self.prediction_type == "v_prediction": + return model_output * (-sigma / (sigma**2 + 1) ** 0.5) + ( sample / (sigma**2 + 1) ) - elif self.prediction_type == "sample": - pred_original = model_output - else: - raise ValueError(f"Unknown prediction_type {self.prediction_type!r}.") + if self.prediction_type == "sample": + return model_output + raise ValueError(f"Unknown prediction_type {self.prediction_type!r}.") + + def step(self, model_output, timestep, sample, **kwargs): + sigma = self.sigmas[self.step_index] + sigma_next = self.sigmas[self.step_index + 1] + pred_original = self.pred_original_sample(model_output, sigma, sample) derivative = (sample - pred_original) / sigma prev_sample = sample + derivative * (sigma_next - sigma) self.step_index += 1 return prev_sample + def to_config(self): + config = super().to_config() + config["timestep_spacing"] = self.timestep_spacing + config["interpolation_type"] = self.interpolation_type + return config + class EulerAncestralDiscreteScheduler(EulerDiscreteScheduler): """Ancestral Euler sampler: injects fresh noise at each step (stochastic).""" @@ -392,23 +467,15 @@ def __init__(self, seed=None, **kwargs): self.seed_generator = keras_random.SeedGenerator(seed) def step(self, model_output, timestep, sample, **kwargs): - sigma = float(self.sigmas[self.step_index]) - sigma_next = float(self.sigmas[self.step_index + 1]) - if self.prediction_type == "epsilon": - pred_original = sample - sigma * model_output - elif self.prediction_type == "v_prediction": - pred_original = model_output * (-sigma / (sigma**2 + 1) ** 0.5) + ( - sample / (sigma**2 + 1) - ) - else: - raise ValueError(f"Unknown prediction_type {self.prediction_type!r}.") - sigma_up = min( - sigma_next, + sigma = self.sigmas[self.step_index] + sigma_next = self.sigmas[self.step_index + 1] + pred_original = self.pred_original_sample(model_output, sigma, sample) + sigma_up = ( (sigma_next**2 * (sigma**2 - sigma_next**2) / sigma**2) ** 0.5 if sigma > 0 - else 0.0, + else np.float32(0.0) ) - sigma_down = (max(sigma_next**2 - sigma_up**2, 0.0)) ** 0.5 + sigma_down = (sigma_next**2 - sigma_up**2) ** 0.5 derivative = (sample - pred_original) / sigma prev_sample = sample + derivative * (sigma_down - sigma) noise = keras_random.normal( diff --git a/zeromodels/models/__init__.py b/zeromodels/models/__init__.py index 75590956..74e067ed 100644 --- a/zeromodels/models/__init__.py +++ b/zeromodels/models/__init__.py @@ -122,6 +122,7 @@ speech2text, stable_diffusion, stable_diffusion_2, + stable_diffusion_xl, swin, swinv2, t5, diff --git a/zeromodels/models/clip/clip_model.py b/zeromodels/models/clip/clip_model.py index 5a77594c..87324fd2 100644 --- a/zeromodels/models/clip/clip_model.py +++ b/zeromodels/models/clip/clip_model.py @@ -240,7 +240,7 @@ def clip_text_backbone( )(encoded_output) indices = ops.argmax(inputs, axis=-1) - one_hot_indices = ops.one_hot(indices, max_seq_len) + one_hot_indices = ops.one_hot(indices, max_seq_len, dtype=last_hidden_state.dtype) pooler_output = ops.einsum("bi,bij->bj", one_hot_indices, last_hidden_state) return last_hidden_state, pooler_output @@ -508,15 +508,21 @@ def __init__( if isinstance(input_tensor, dict): token_ids_input = input_tensor.get("token_ids") if token_ids_input is None: - token_ids_input = layers.Input(shape=[max_seq_len], name="token_ids") + token_ids_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="token_ids" + ) padding_mask_input = input_tensor.get("padding_mask") if padding_mask_input is None: padding_mask_input = layers.Input( - shape=[max_seq_len], name="padding_mask" + shape=[max_seq_len], dtype="int32", name="padding_mask" ) else: - token_ids_input = layers.Input(shape=[max_seq_len], name="token_ids") - padding_mask_input = layers.Input(shape=[max_seq_len], name="padding_mask") + token_ids_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="token_ids" + ) + padding_mask_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="padding_mask" + ) last_hidden_state, pooler_output = clip_text_backbone( token_ids_input, @@ -837,15 +843,21 @@ def __init__( if isinstance(input_tensor, dict): token_ids_input = input_tensor.get("token_ids") if token_ids_input is None: - token_ids_input = layers.Input(shape=[max_seq_len], name="token_ids") + token_ids_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="token_ids" + ) padding_mask_input = input_tensor.get("padding_mask") if padding_mask_input is None: padding_mask_input = layers.Input( - shape=[max_seq_len], name="padding_mask" + shape=[max_seq_len], dtype="int32", name="padding_mask" ) else: - token_ids_input = layers.Input(shape=[max_seq_len], name="token_ids") - padding_mask_input = layers.Input(shape=[max_seq_len], name="padding_mask") + token_ids_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="token_ids" + ) + padding_mask_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="padding_mask" + ) text_model = CLIPTextModel( max_seq_len=max_seq_len, @@ -1034,16 +1046,22 @@ def __init__( images_input = layers.Input(shape=input_shape, name="images") token_ids_input = input_tensor.get("token_ids") if token_ids_input is None: - token_ids_input = layers.Input(shape=[max_seq_len], name="token_ids") + token_ids_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="token_ids" + ) padding_mask_input = input_tensor.get("padding_mask") if padding_mask_input is None: padding_mask_input = layers.Input( - shape=[max_seq_len], name="padding_mask" + shape=[max_seq_len], dtype="int32", name="padding_mask" ) else: images_input = layers.Input(shape=input_shape, name="images") - token_ids_input = layers.Input(shape=[max_seq_len], name="token_ids") - padding_mask_input = layers.Input(shape=[max_seq_len], name="padding_mask") + token_ids_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="token_ids" + ) + padding_mask_input = layers.Input( + shape=[max_seq_len], dtype="int32", name="padding_mask" + ) vision_model = CLIPVisionModel( image_size=image_size, diff --git a/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py b/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py index f0065105..7a386199 100644 --- a/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py +++ b/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py @@ -102,9 +102,11 @@ def transfer_component(keras_model, state): raise WeightShapeMismatchError( keras_weight.path, keras_weight.shape, key, torch_weight.shape ) - if key.startswith("time_embedding.") and keras_weight.ndim == 2: + if key.startswith(("time_embedding.", "add_embedding.")) and ( + keras_weight.ndim == 2 + ): # transfer_weights treats any "embedding" 2D weight as a lookup table; - # the timestep MLP's linears are plain dense kernels + # the timestep / added-conditioning MLPs' linears are dense kernels keras_weight.assign(np.transpose(torch_weight)) continue transfer_weights(key, keras_weight, torch_weight) @@ -163,25 +165,13 @@ def config_from_diffusers(repo, token=None, config_cls=None): if k == "_class_name" or not k.startswith("_") } - # diffusers' "attention_head_dim" is the head count, scalar or one per level - heads = unet.get("num_attention_heads") or unet.get("attention_head_dim", 8) - if isinstance(heads, (list, tuple)): - heads = tuple(heads) + from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + UNet2DConditionModel, + ) + hidden = text["hidden_size"] return config_cls( - unet_config={ - "sample_size": unet.get("sample_size", 64), - "in_channels": unet.get("in_channels", 4), - "out_channels": unet.get("out_channels", 4), - "down_block_types": tuple(unet["down_block_types"]), - "up_block_types": tuple(unet["up_block_types"]), - "block_out_channels": tuple(unet["block_out_channels"]), - "layers_per_block": unet.get("layers_per_block", 2), - "cross_attention_dim": unet.get("cross_attention_dim", 768), - "num_attention_heads": heads, - "norm_num_groups": unet.get("norm_num_groups", 32), - "use_linear_projection": unet.get("use_linear_projection", False), - }, + unet_config=UNet2DConditionModel.kwargs_from_diffusers_config(unet), vae_config={ "in_channels": vae.get("in_channels", 3), "out_channels": vae.get("out_channels", 3), @@ -196,6 +186,7 @@ def config_from_diffusers(repo, token=None, config_cls=None): * 2 ** (len(vae["block_out_channels"]) - 1), "scaling_factor": vae.get("scaling_factor") or 0.18215, # null in some repos + "force_upcast": bool(vae.get("force_upcast", False)), }, text_config={ "hidden_dim": hidden, diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_config.py b/zeromodels/models/stable_diffusion/stable_diffusion_config.py index b71b3d12..85f6c9a2 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_config.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_config.py @@ -33,6 +33,21 @@ class UNet2DConditionConfig(BaseConfig): use_linear_projection (`bool`, *optional*, defaults to False): Project the Transformer2D tokens with a linear layer instead of a 1x1 convolution on the feature map. + transformer_layers_per_block (`int` or `tuple`, *optional*, defaults to 1): + Transformer blocks stacked in each Transformer2D, one value for every + level or one per level (SDXL: (1, 2, 10)). + addition_embed_type (`str`, *optional*): + `"text_time"` adds SDXL's micro-conditioning to the timestep embedding + (the pooled text embedding plus the sinusoidally embedded size / crop + `time_ids`, through the `add_embedding` MLP); `None` for SD 1.x / 2.x. + addition_time_embed_dim (`int`, *optional*, defaults to 256): + Sinusoidal embedding width of each time id. + projection_class_embeddings_input_dim (`int`, *optional*): + Input width of the `add_embedding` MLP: the pooled text width plus + `num_time_ids * addition_time_embed_dim` (SDXL: 1280 + 6 * 256 = 2816). + num_time_ids (`int`, *optional*, defaults to 6): + Micro-conditioning values per image (original size, crop offset, target + size). text_seq_len (`int`, *optional*, defaults to 77): Static text sequence length (CLIP pads to 77). @@ -70,6 +85,11 @@ class UNet2DConditionConfig(BaseConfig): num_attention_heads: int | tuple = 8 norm_num_groups: int = 32 use_linear_projection: bool = False + transformer_layers_per_block: int | tuple = 1 + addition_embed_type: str | None = None + addition_time_embed_dim: int = 256 + projection_class_embeddings_input_dim: int | None = None + num_time_ids: int = 6 text_seq_len: int = 77 @@ -94,6 +114,9 @@ class AutoencoderKLConfig(BaseConfig): Image resolution the encoder/decoder graphs are built for. scaling_factor (`float`, *optional*, defaults to 0.18215): Latent scaling applied by the pipeline around the VAE. + force_upcast (`bool`, *optional*, defaults to False): + Build the VAE in float32 whatever dtype the rest of the model loads in + (the SDXL VAE overflows in float16). Examples: @@ -116,6 +139,7 @@ class AutoencoderKLConfig(BaseConfig): norm_num_groups: int = 32 sample_size: int = 512 scaling_factor: float = 0.18215 + force_upcast: bool = False class StableDiffusionTextConfig(CLIPTextConfig): diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_layers.py b/zeromodels/models/stable_diffusion/stable_diffusion_layers.py index c4aa9f31..21ca200d 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_layers.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_layers.py @@ -360,7 +360,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") class Transformer2DModel(layers.Layer): - """Diffusers ``Transformer2DModel``: GroupNorm, in-proj, one + """Diffusers ``Transformer2DModel``: GroupNorm, in-proj, ``num_layers`` ``BasicTransformerBlock`` over the flattened spatial tokens, out-proj, residual. ``call([x, context])`` with ``x`` in the active image data format. @@ -371,6 +371,8 @@ class Transformer2DModel(layers.Layer): groups: GroupNorm groups. use_linear_projection: Project the flattened tokens with a linear layer instead of the feature map with a 1x1 conv. + num_layers: Transformer blocks in the stack (1 for SD 1.x / 2.x; SDXL + stacks up to 10). data_format: ``"channels_last"`` or ``"channels_first"``; defaults to ``keras.config.image_data_format()``. channels_axis: The channel axis of that layout (``-1`` or ``1``). @@ -383,6 +385,7 @@ def __init__( module_path, groups=GROUPS, use_linear_projection=False, + num_layers=1, data_format=None, channels_axis=None, **kwargs, @@ -394,6 +397,7 @@ def __init__( self.module_path = module_path self.groups = groups self.use_linear_projection = use_linear_projection + self.num_layers = num_layers self.data_format = data_format or keras.config.image_data_format() self.channels_axis = ( channels_axis @@ -428,9 +432,22 @@ def __init__( data_format=self.data_format, name=safe_name(f"{module_path}.proj_out"), ) - self.transformer_block = BasicTransformerBlock( - channels, heads, module_path=f"{module_path}.transformer_blocks.0" - ) + # Block 0 keeps the single-block attribute name (the hosted SD 1.x / 2.x + # checkpoints' h5 layout follows attribute names); the deeper SDXL stacks + # add transformer_block_1, transformer_block_2, ... + for k in range(num_layers): + block = BasicTransformerBlock( + channels, heads, module_path=f"{module_path}.transformer_blocks.{k}" + ) + setattr( + self, "transformer_block" if k == 0 else f"transformer_block_{k}", block + ) + + @property + def transformer_blocks(self): + return [self.transformer_block] + [ + getattr(self, f"transformer_block_{k}") for k in range(1, self.num_layers) + ] def build(self, input_shape): x_shape, context_shape = input_shape @@ -449,7 +466,8 @@ def build(self, input_shape): else: self.proj_in.build(x_shape) self.proj_out.build(proj_shape) - self.transformer_block.build((tokens_shape, context_shape)) + for block in self.transformer_blocks: + block.build((tokens_shape, context_shape)) self.built = True def call(self, inputs): @@ -467,7 +485,8 @@ def call(self, inputs): h = ops.reshape(h, (-1, height * width, self.channels)) if self.use_linear_projection: h = self.proj_in(h) # linear on the tokens - h = self.transformer_block([h, context]) + for block in self.transformer_blocks: + h = block([h, context]) if self.use_linear_projection: h = self.proj_out(h) h = ops.reshape(h, (-1, height, width, self.channels)) @@ -489,6 +508,7 @@ def get_config(self): "module_path": self.module_path, "groups": self.groups, "use_linear_projection": self.use_linear_projection, + "num_layers": self.num_layers, "data_format": self.data_format, "channels_axis": self.channels_axis, } diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_model.py b/zeromodels/models/stable_diffusion/stable_diffusion_model.py index c0c02c36..6dedfdd0 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_model.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_model.py @@ -3,6 +3,7 @@ from zeromodels.base import BaseModel from zeromodels.base.base_diffusion import BaseDiffusion +from zeromodels.base.base_mixin import build_dtype_scope from zeromodels.base.base_scheduler import PNDMScheduler, get_scheduler from zeromodels.models.clip import CLIPTextModel @@ -50,18 +51,25 @@ class UNet2DConditionModel(BaseModel): latents to the text ``encoder_hidden_states``. It predicts the noise (or ``v``) on a latent, and is called once per denoising step by the pipeline. - Inputs are a dict ``{"sample", "timestep", "encoder_hidden_states"}``; the - output dict is ``{"sample": (B, H, W, out_channels)}``. Built for a fixed latent - resolution (``sample_size``), since the Transformer2D reshapes need static - spatial dims; the weights are resolution-independent, so rebuild the graph for - another size and reload. + Inputs are a dict ``{"sample", "timestep", "encoder_hidden_states"}`` (plus + ``"text_embeds"`` and ``"time_ids"`` for the SDXL ``text_time`` conditioning); + the output dict is ``{"sample": (B, H, W, out_channels)}``. Built for a fixed + latent resolution (``sample_size``), since the Transformer2D reshapes need + static spatial dims; the weights are resolution-independent, so rebuild the + graph for another size and reload. Args mirror the diffusers config: ``in_channels`` / ``out_channels`` (4), ``block_out_channels`` ((320, 640, 1280, 1280)), ``layers_per_block`` (2), ``cross_attention_dim`` (768), ``num_attention_heads`` (8, or one value per level), ``norm_num_groups`` (32), ``use_linear_projection`` (a linear token - projection instead of the 1x1 conv) and the ``down_block_types`` / - ``up_block_types`` lists. + projection instead of the 1x1 conv), ``transformer_layers_per_block`` (1, or + one value per level: SDXL stacks (1, 2, 10) blocks per Transformer2D) and the + ``down_block_types`` / ``up_block_types`` lists. ``addition_embed_type`` + ``"text_time"`` adds SDXL's micro-conditioning to the timestep embedding: the + pooled text embedding and the ``num_time_ids`` size / crop values, each + sinusoidally embedded to ``addition_time_embed_dim``, concatenated + (``projection_class_embeddings_input_dim`` wide) and projected by the + ``add_embedding`` MLP. """ HF_MODEL_TYPE = None @@ -80,6 +88,11 @@ def __init__( num_attention_heads=8, norm_num_groups=32, use_linear_projection=False, + transformer_layers_per_block=1, + addition_embed_type=None, + addition_time_embed_dim=256, + projection_class_embeddings_input_dim=None, + num_time_ids=6, text_seq_len=77, data_format=None, channels_axis=None, @@ -89,11 +102,16 @@ def __init__( data_format = data_format or keras.config.image_data_format() if channels_axis is None: channels_axis = -1 if data_format == "channels_last" else 1 + levels = len(block_out_channels) # heads per level (diffusers' attention_head_dim list), mirrored on the way up if isinstance(num_attention_heads, (tuple, list)): heads_per_level = tuple(num_attention_heads) else: - heads_per_level = (num_attention_heads,) * len(block_out_channels) + heads_per_level = (num_attention_heads,) * levels + if isinstance(transformer_layers_per_block, (tuple, list)): + depth_per_level = tuple(transformer_layers_per_block) + else: + depth_per_level = (transformer_layers_per_block,) * levels time_embed_dim = block_out_channels[0] * 4 sample_h, sample_w = ( sample_size @@ -115,6 +133,33 @@ def __init__( temb = timestep_embedding(timestep_in, block_out_channels[0]) temb = time_embedding_mlp(temb, time_embed_dim, name="time_embedding") + extra_inputs = {} + if addition_embed_type == "text_time": + # SDXL micro-conditioning: the pooled text embedding and the sinusoidal + # embeddings of the size / crop ids, projected and added to temb + pooled_dim = ( + projection_class_embeddings_input_dim + - num_time_ids * addition_time_embed_dim + ) + text_embeds_in = layers.Input(shape=(pooled_dim,), name="text_embeds") + time_ids_in = layers.Input(shape=(num_time_ids,), name="time_ids") + time_embeds = timestep_embedding( + ops.reshape(time_ids_in, (-1,)), addition_time_embed_dim + ) + time_embeds = ops.reshape( + time_embeds, (-1, num_time_ids * addition_time_embed_dim) + ) + add_embeds = ops.concatenate([text_embeds_in, time_embeds], axis=-1) + temb = temb + time_embedding_mlp( + add_embeds, time_embed_dim, name="add_embedding" + ) + extra_inputs = {"text_embeds": text_embeds_in, "time_ids": time_ids_in} + elif addition_embed_type is not None: + raise ValueError( + f"Unsupported addition_embed_type {addition_embed_type!r}; expected " + "None or 'text_time'." + ) + sample = layers.Conv2D( block_out_channels[0], 3, @@ -141,6 +186,7 @@ def __init__( module_path=f"down_blocks.{i}.attentions.{j}", groups=norm_num_groups, use_linear_projection=use_linear_projection, + num_layers=depth_per_level[i], data_format=data_format, channels_axis=channels_axis, )([sample, context]) @@ -168,6 +214,7 @@ def __init__( module_path="mid_block.attentions.0", groups=norm_num_groups, use_linear_projection=use_linear_projection, + num_layers=depth_per_level[-1], data_format=data_format, channels_axis=channels_axis, )([sample, context]) @@ -181,6 +228,7 @@ def __init__( reversed_channels = list(reversed(block_out_channels)) reversed_heads = list(reversed(heads_per_level)) + reversed_depths = list(reversed(depth_per_level)) for i, block_type in enumerate(up_block_types): out_ch = reversed_channels[i] for j in range(layers_per_block + 1): @@ -199,6 +247,7 @@ def __init__( module_path=f"up_blocks.{i}.attentions.{j}", groups=norm_num_groups, use_linear_projection=use_linear_projection, + num_layers=reversed_depths[i], data_format=data_format, channels_axis=channels_axis, )([sample, context]) @@ -230,6 +279,7 @@ def __init__( "sample": sample_in, "timestep": timestep_in, "encoder_hidden_states": context, + **extra_inputs, }, outputs={"sample": sample}, name=name, @@ -253,30 +303,58 @@ def __init__( ) self.norm_num_groups = norm_num_groups self.use_linear_projection = use_linear_projection + self.transformer_layers_per_block = ( + tuple(transformer_layers_per_block) + if isinstance(transformer_layers_per_block, (tuple, list)) + else transformer_layers_per_block + ) + self.addition_embed_type = addition_embed_type + self.addition_time_embed_dim = addition_time_embed_dim + self.projection_class_embeddings_input_dim = ( + projection_class_embeddings_input_dim + ) + self.num_time_ids = num_time_ids self.text_seq_len = text_seq_len @classmethod def from_diffusers_config(cls, config, **kwargs): """Build from a diffusers ``unet/config.json`` dict.""" + return cls(**cls.kwargs_from_diffusers_config(config), **kwargs) + + @staticmethod + def kwargs_from_diffusers_config(config): + """The constructor kwargs a diffusers ``unet/config.json`` dict describes.""" # diffusers' "attention_head_dim" is the head COUNT (legacy name), a scalar # or one value per level heads = config.get("num_attention_heads") or config.get("attention_head_dim", 8) if isinstance(heads, (list, tuple)): heads = tuple(heads) - return cls( - sample_size=config.get("sample_size", 64), - in_channels=config.get("in_channels", 4), - out_channels=config.get("out_channels", 4), - down_block_types=tuple(config["down_block_types"]), - up_block_types=tuple(config["up_block_types"]), - block_out_channels=tuple(config["block_out_channels"]), - layers_per_block=config.get("layers_per_block", 2), - cross_attention_dim=config.get("cross_attention_dim", 768), - num_attention_heads=heads, - norm_num_groups=config.get("norm_num_groups", 32), - use_linear_projection=config.get("use_linear_projection", False), - **kwargs, - ) + depth = config.get("transformer_layers_per_block", 1) + if isinstance(depth, (list, tuple)): + depth = tuple(depth) + kwargs = { + "sample_size": config.get("sample_size", 64), + "in_channels": config.get("in_channels", 4), + "out_channels": config.get("out_channels", 4), + "down_block_types": tuple(config["down_block_types"]), + "up_block_types": tuple(config["up_block_types"]), + "block_out_channels": tuple(config["block_out_channels"]), + "layers_per_block": config.get("layers_per_block", 2), + "cross_attention_dim": config.get("cross_attention_dim", 768), + "num_attention_heads": heads, + "norm_num_groups": config.get("norm_num_groups", 32), + "use_linear_projection": config.get("use_linear_projection", False), + "transformer_layers_per_block": depth, + } + if config.get("addition_embed_type") is not None: + kwargs.update( + addition_embed_type=config["addition_embed_type"], + addition_time_embed_dim=config.get("addition_time_embed_dim", 256), + projection_class_embeddings_input_dim=config[ + "projection_class_embeddings_input_dim" + ], + ) + return kwargs @classmethod def transfer_from_hf(cls, keras_model, state_dict): @@ -297,6 +375,13 @@ def get_config(self): "num_attention_heads": self.num_attention_heads, "norm_num_groups": self.norm_num_groups, "use_linear_projection": self.use_linear_projection, + "transformer_layers_per_block": self.transformer_layers_per_block, + "addition_embed_type": self.addition_embed_type, + "addition_time_embed_dim": self.addition_time_embed_dim, + "projection_class_embeddings_input_dim": ( + self.projection_class_embeddings_input_dim + ), + "num_time_ids": self.num_time_ids, "text_seq_len": self.text_seq_len, "name": self.name, } @@ -499,8 +584,9 @@ class AutoencoderKL(BaseModel): Args mirror the diffusers config: ``in_channels`` / ``out_channels`` (3), ``latent_channels`` (4), ``block_out_channels`` ((128, 256, 512, 512)), ``layers_per_block`` (2), ``norm_num_groups`` (32), ``sample_size`` (the image - resolution the encoder/decoder graphs are built for), and ``scaling_factor`` - (0.18215). + resolution the encoder/decoder graphs are built for), ``scaling_factor`` + (0.18215) and ``force_upcast`` (build this VAE in float32 whatever dtype the + rest of the model loads in: the SDXL VAE overflows in float16). """ config_class = AutoencoderKLConfig @@ -516,6 +602,7 @@ def __init__( norm_num_groups=32, sample_size=512, scaling_factor=0.18215, + force_upcast=False, data_format=None, channels_axis=None, name="AutoencoderKL", @@ -532,60 +619,63 @@ def __init__( factor = 2 ** (len(block_out_channels) - 1) h_lat, w_lat = h_img // factor, w_img // factor - encoder = build_vae_encoder( - (h_img, w_img), - in_channels, - block_out_channels, - layers_per_block, - latent_channels, - norm_num_groups, - data_format, - channels_axis, - ) - decoder = build_vae_decoder( - (h_lat, w_lat), - out_channels, - block_out_channels, - layers_per_block, - latent_channels, - norm_num_groups, - data_format, - channels_axis, - ) - quant_conv = layers.Conv2D( - 2 * latent_channels, - 1, - data_format=data_format, - name="quant_conv", - ) - post_quant_conv = layers.Conv2D( - latent_channels, - 1, - data_format=data_format, - name="post_quant_conv", - ) - - image_in = layers.Input( - shape=(in_channels, h_img, w_img) - if data_format == "channels_first" - else (h_img, w_img, in_channels), - name="image", - ) - latent_in = layers.Input( - shape=(latent_channels, h_lat, w_lat) - if data_format == "channels_first" - else (h_lat, w_lat, latent_channels), - name="latent", - ) - moments = quant_conv(encoder(image_in)) - decoded = decoder(post_quant_conv(latent_in)) + # force_upcast: the layers are created under a float32 policy whatever the + # global (load) dtype is, as diffusers upcasts such a VAE around decode + with build_dtype_scope("float32" if force_upcast else None): + encoder = build_vae_encoder( + (h_img, w_img), + in_channels, + block_out_channels, + layers_per_block, + latent_channels, + norm_num_groups, + data_format, + channels_axis, + ) + decoder = build_vae_decoder( + (h_lat, w_lat), + out_channels, + block_out_channels, + layers_per_block, + latent_channels, + norm_num_groups, + data_format, + channels_axis, + ) + quant_conv = layers.Conv2D( + 2 * latent_channels, + 1, + data_format=data_format, + name="quant_conv", + ) + post_quant_conv = layers.Conv2D( + latent_channels, + 1, + data_format=data_format, + name="post_quant_conv", + ) - super().__init__( - inputs={"image": image_in, "latent": latent_in}, - outputs={"moments": moments, "sample": decoded}, - name=name, - **kwargs, - ) + image_in = layers.Input( + shape=(in_channels, h_img, w_img) + if data_format == "channels_first" + else (h_img, w_img, in_channels), + name="image", + ) + latent_in = layers.Input( + shape=(latent_channels, h_lat, w_lat) + if data_format == "channels_first" + else (h_lat, w_lat, latent_channels), + name="latent", + ) + moments = quant_conv(encoder(image_in)) + decoded = decoder(post_quant_conv(latent_in)) + + super().__init__( + inputs={"image": image_in, "latent": latent_in}, + outputs={"moments": moments, "sample": decoded}, + name=name, + **kwargs, + ) self.data_format = data_format self.channels_axis = channels_axis @@ -597,6 +687,7 @@ def __init__( self.norm_num_groups = norm_num_groups self.sample_size = sample_size self.scaling_factor = scaling_factor + self.force_upcast = force_upcast self.vae_scale_factor = factor self.encoder = encoder self.decoder = decoder @@ -632,6 +723,7 @@ def from_diffusers_config(cls, config, sample_size=512, **kwargs): norm_num_groups=config.get("norm_num_groups", 32), sample_size=sample_size, scaling_factor=config.get("scaling_factor", 0.18215), + force_upcast=config.get("force_upcast", False), **kwargs, ) @@ -678,11 +770,23 @@ class StableDiffusionModel(BaseModel): def __init__(self, name="StableDiffusionModel", **kwargs): keras_kwargs = {k: kwargs.pop(k) for k in ("trainable", "dtype") if k in kwargs} config = self.config_class.from_dict(kwargs) # regroup the flat kwargs - u, v, t = config.unet_config, config.vae_config, config.text_config data_format = keras.config.image_data_format() channels_axis = -1 if data_format == "channels_last" else 1 + components = self.build_components(config, data_format, channels_axis) + inputs, outputs = self.build_graph(config, components, data_format) + super().__init__(inputs=inputs, outputs=outputs, name=name, **keras_kwargs) + + self.data_format = data_format + self.channels_axis = channels_axis + for attr, component in components.items(): + setattr(self, attr, component) + + def build_components(self, config, data_format, channels_axis): + """The trained components, ``{attribute name: model}``: the UNet, the VAE + and the CLIP text tower (subclasses swap or add towers).""" + u, v, t = config.unet_config, config.vae_config, config.text_config unet = UNet2DConditionModel( u, data_format=data_format, channels_axis=channels_axis ) @@ -701,7 +805,12 @@ def __init__(self, name="StableDiffusionModel", **kwargs): hidden_act=config.hidden_act, layer_norm_eps=config.layer_norm_eps, ) + return {"unet": unet, "vae": vae, "text_encoder": text_encoder} + def unet_vae_inputs(self, config, components, data_format): + """The UNet's and the VAE's ``keras.Input`` dict (shared by every SD family).""" + u, v = config.unet_config, config.vae_config + vae = components["vae"] sample_h, sample_w = ( u.sample_size if isinstance(u.sample_size, (tuple, list)) @@ -713,69 +822,68 @@ def __init__(self, name="StableDiffusionModel", **kwargs): else (v.sample_size, v.sample_size) ) lat_h, lat_w = img_h // vae.vae_scale_factor, img_w // vae.vae_scale_factor - - sample_in = layers.Input( - shape=(u.in_channels, sample_h, sample_w) - if data_format == "channels_first" - else (sample_h, sample_w, u.in_channels), - name="sample", - ) - timestep_in = layers.Input(shape=(), name="timestep") - context_in = layers.Input( - shape=(u.text_seq_len, u.cross_attention_dim), name="encoder_hidden_states" + inputs = { + "sample": layers.Input( + shape=(u.in_channels, sample_h, sample_w) + if data_format == "channels_first" + else (sample_h, sample_w, u.in_channels), + name="sample", + ), + "timestep": layers.Input(shape=(), name="timestep"), + "encoder_hidden_states": layers.Input( + shape=(u.text_seq_len, u.cross_attention_dim), + name="encoder_hidden_states", + ), + "image": layers.Input( + shape=(v.in_channels, img_h, img_w) + if data_format == "channels_first" + else (img_h, img_w, v.in_channels), + name="image", + ), + "latent": layers.Input( + shape=(v.latent_channels, lat_h, lat_w) + if data_format == "channels_first" + else (lat_h, lat_w, v.latent_channels), + name="latent", + ), + } + return inputs + + def build_graph(self, config, components, data_format): + """Wire the components into the container's ``(inputs, outputs)`` dicts: + three disconnected paths, one per component.""" + t = config.text_config + unet, vae, text_encoder = ( + components["unet"], + components["vae"], + components["text_encoder"], ) - image_in = layers.Input( - shape=(v.in_channels, img_h, img_w) - if data_format == "channels_first" - else (img_h, img_w, v.in_channels), - name="image", + inputs = self.unet_vae_inputs(config, components, data_format) + inputs["token_ids"] = layers.Input( + shape=(t.max_seq_len,), dtype="int32", name="token_ids" ) - latent_in = layers.Input( - shape=(v.latent_channels, lat_h, lat_w) - if data_format == "channels_first" - else (lat_h, lat_w, v.latent_channels), - name="latent", + inputs["padding_mask"] = layers.Input( + shape=(t.max_seq_len,), dtype="int32", name="padding_mask" ) - token_ids_in = layers.Input(shape=(t.max_seq_len,), name="token_ids") - padding_mask_in = layers.Input(shape=(t.max_seq_len,), name="padding_mask") noise_pred = unet( { - "sample": sample_in, - "timestep": timestep_in, - "encoder_hidden_states": context_in, + "sample": inputs["sample"], + "timestep": inputs["timestep"], + "encoder_hidden_states": inputs["encoder_hidden_states"], } )["sample"] - vae_out = vae({"image": image_in, "latent": latent_in}) + vae_out = vae({"image": inputs["image"], "latent": inputs["latent"]}) text_embeds = text_encoder( - {"token_ids": token_ids_in, "padding_mask": padding_mask_in} + {"token_ids": inputs["token_ids"], "padding_mask": inputs["padding_mask"]} )["last_hidden_state"] - - super().__init__( - inputs={ - "sample": sample_in, - "timestep": timestep_in, - "encoder_hidden_states": context_in, - "image": image_in, - "latent": latent_in, - "token_ids": token_ids_in, - "padding_mask": padding_mask_in, - }, - outputs={ - "noise_pred": noise_pred, - "moments": vae_out["moments"], - "image": vae_out["sample"], - "text_embeds": text_embeds, - }, - name=name, - **keras_kwargs, - ) - - self.data_format = data_format - self.channels_axis = channels_axis - self.unet = unet - self.vae = vae - self.text_encoder = text_encoder + outputs = { + "noise_pred": noise_pred, + "moments": vae_out["moments"], + "image": vae_out["sample"], + "text_embeds": text_embeds, + } + return inputs, outputs @classmethod def from_hf(cls, repo, **kwargs): @@ -847,10 +955,14 @@ def __init__(self, scheduler=None, name="StableDiffusionTextToImage", **kwargs): scheduler = ( get_scheduler(scheduler_config) if scheduler_config - else PNDMScheduler(steps_offset=1) + else self.default_scheduler() ) self.scheduler = scheduler + def default_scheduler(self): + """The family's sampler when the config carries no ``scheduler_config``.""" + return PNDMScheduler(steps_offset=1) + @property def latent_shape(self): size = self.unet.sample_size @@ -887,3 +999,11 @@ def decode_latents(self, latents): if self.data_format == "channels_first": image = ops.transpose(image, (0, 2, 3, 1)) # generate() hands out HWC return image + + def encode_latents(self, image): + # the posterior mean, scaled: the image-to-image starting point (the + # reference samples the posterior; its noise is negligible next to the + # noise added for the strength) + if self.data_format == "channels_first": + image = ops.transpose(image, (0, 3, 1, 2)) # generate() hands in HWC + return self.vae.encode(image) * self.vae.scaling_factor diff --git a/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py index 937ede91..92a9ed1a 100644 --- a/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py +++ b/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py @@ -7,16 +7,19 @@ config_from_diffusers as stable_diffusion_config_from_diffusers, ) -# Stable Diffusion 2.x: one architecture, four checkpoints (the 768px ones are -# v-prediction models built at sample_size 96). The stabilityai repos are no longer -# on the Hub; sd2-community mirrors them in the same diffusers layout. This script -# only converts weights, the SD 1.x way (see that converter); the hosting tooling +# Stable Diffusion 2.x: one architecture, five checkpoints (the 768px ones are +# v-prediction models built at sample_size 96; SD-Turbo is the 512px 2.1 distilled +# to a few steps). The stabilityai SD 2 repos are no longer on the Hub; +# sd2-community mirrors them in the same diffusers layout. This script only +# converts weights, the SD 1.x way (see that converter); the hosting tooling # writes zm_config.json / tokenizer.json. STABLE_DIFFUSION_2_SOURCES = { "stable-diffusion-2-base": "sd2-community/stable-diffusion-2-base", "stable-diffusion-2": "sd2-community/stable-diffusion-2", "stable-diffusion-2-1-base": "sd2-community/stable-diffusion-2-1-base", "stable-diffusion-2-1": "sd2-community/stable-diffusion-2-1", + # SD 2.1 distilled for 1 to 4 steps without guidance (Euler, trailing spacing) + "sd-turbo": "stabilityai/sd-turbo", } diff --git a/zeromodels/models/stable_diffusion_xl/__init__.py b/zeromodels/models/stable_diffusion_xl/__init__.py new file mode 100644 index 00000000..0943c298 --- /dev/null +++ b/zeromodels/models/stable_diffusion_xl/__init__.py @@ -0,0 +1,29 @@ +from .stable_diffusion_xl_config import ( + StableDiffusionXLConfig, + StableDiffusionXLRefinerConfig, + StableDiffusionXLRefinerUNetConfig, + StableDiffusionXLTextConfig2, + StableDiffusionXLUNetConfig, + StableDiffusionXLVAEConfig, +) +from .stable_diffusion_xl_model import ( + StableDiffusionXLModel, + StableDiffusionXLRefinerImageToImage, + StableDiffusionXLRefinerModel, + StableDiffusionXLTextToImage, +) +from .stable_diffusion_xl_tokenizer import StableDiffusionXLTokenizer + +__all__ = [ + "StableDiffusionXLModel", + "StableDiffusionXLTextToImage", + "StableDiffusionXLRefinerModel", + "StableDiffusionXLRefinerImageToImage", + "StableDiffusionXLConfig", + "StableDiffusionXLRefinerConfig", + "StableDiffusionXLRefinerUNetConfig", + "StableDiffusionXLTextConfig2", + "StableDiffusionXLUNetConfig", + "StableDiffusionXLVAEConfig", + "StableDiffusionXLTokenizer", +] diff --git a/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py new file mode 100644 index 00000000..3b5d6a45 --- /dev/null +++ b/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py @@ -0,0 +1,251 @@ +import collections.abc + +import numpy as np + +from zeromodels.models.clip.convert_clip_hf_to_keras import transfer_clip_weights +from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( + numpy_state_dict, +) + +# SDXL ships in float16 (the release checkpoints' precision; the diffusers fp32 +# files are upcasts of the fp16 variant), so the container is built and saved in +# float16 (the VAE excepted: force_upcast keeps it float32). Loading a repo +# rebuilds at that precision by default; load_dtype="float32" upcasts. The 0.9 +# repos are gated (research license): set HF_TOKEN to convert them. The refiner +# repos (an image-to-image model: one text tower, a four-level UNet) convert to +# StableDiffusionXLRefinerModel, everything else to StableDiffusionXLModel. +STABLE_DIFFUSION_XL_SOURCES = { + "stable-diffusion-xl-base-0.9": "stabilityai/stable-diffusion-xl-base-0.9", + "stable-diffusion-xl-refiner-0.9": "stabilityai/stable-diffusion-xl-refiner-0.9", + "stable-diffusion-xl-base-1.0": "stabilityai/stable-diffusion-xl-base-1.0", + "stable-diffusion-xl-refiner-1.0": "stabilityai/stable-diffusion-xl-refiner-1.0", + "sdxl-turbo": "stabilityai/sdxl-turbo", +} + + +class LazyNumpyStateDict(collections.abc.Mapping): + def __init__(self, module): + self.state = module.state_dict() + + def __getitem__(self, key): + return self.state[key].detach().cpu().numpy() + + def __contains__(self, key): + return key in self.state + + def __iter__(self): + return iter(self.state) + + def __len__(self): + return len(self.state) + + +def diffusers_configs(repo, token=None): + from diffusers import AutoencoderKL, EulerDiscreteScheduler, UNet2DConditionModel + from diffusers.pipelines.pipeline_utils import DiffusionPipeline + from transformers import CLIPTextConfig, CLIPTokenizerFast + + pipeline = dict(DiffusionPipeline.load_config(repo, token=token)) + has_text = pipeline.get("text_encoder", [None])[0] is not None # refiner: no + tokenizer_2 = CLIPTokenizerFast.from_pretrained( + repo, subfolder="tokenizer_2", token=token + ) + tokenizer = ( + CLIPTokenizerFast.from_pretrained(repo, subfolder="tokenizer", token=token) + if has_text + else tokenizer_2 + ) + return { + "unet": dict( + UNet2DConditionModel.load_config(repo, subfolder="unet", token=token) + ), + "vae": dict(AutoencoderKL.load_config(repo, subfolder="vae", token=token)), + "text": CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder", token=token + ).to_dict() + if has_text + else None, + "text_2": CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder_2", token=token + ).to_dict(), + "scheduler": dict( + EulerDiscreteScheduler.load_config(repo, subfolder="scheduler", token=token) + ), + "force_zeros_for_empty_prompt": bool( + pipeline.get("force_zeros_for_empty_prompt", True) + ), + "requires_aesthetics_score": bool( + pipeline.get("requires_aesthetics_score", False) + ), + "tokens": { + "bos_token_id": tokenizer.bos_token_id, + "eos_token_id": tokenizer.eos_token_id, + "pad_token_id": tokenizer.pad_token_id, + "pad_token_id_2": tokenizer_2.pad_token_id, + }, + } + + +def text_config_kwargs(text): + hidden = text["hidden_size"] + return { + "hidden_dim": hidden, + "num_heads": text.get("num_attention_heads", 12), + "num_layers": text.get("num_hidden_layers", 12), + "mlp_ratio": text.get("intermediate_size", hidden * 4) / hidden, + "vocab_size": text.get("vocab_size", 49408), + "max_seq_len": text.get("max_position_embeddings", 77), + } + + +def config_from_diffusers(repo, token=None): + from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + UNet2DConditionModel, + ) + from zeromodels.models.stable_diffusion_xl.stable_diffusion_xl_config import ( + StableDiffusionXLConfig, + StableDiffusionXLRefinerConfig, + ) + + src = diffusers_configs(repo, token=token) + unet, vae, text, text_2 = src["unet"], src["vae"], src["text"], src["text_2"] + scheduler = { + k: v + for k, v in src["scheduler"].items() + if k == "_class_name" or not k.startswith("_") + } + unet_kwargs = UNet2DConditionModel.kwargs_from_diffusers_config(unet) + if src["requires_aesthetics_score"]: + # size (2) + crop (2) + aesthetic score (1) next to the pooled embedding + unet_kwargs["num_time_ids"] = 5 + config_cls = ( + StableDiffusionXLRefinerConfig if text is None else StableDiffusionXLConfig + ) + return config_cls( + unet_config=unet_kwargs, + vae_config={ + "in_channels": vae.get("in_channels", 3), + "out_channels": vae.get("out_channels", 3), + "latent_channels": vae.get("latent_channels", 4), + "block_out_channels": tuple(vae["block_out_channels"]), + "layers_per_block": vae.get("layers_per_block", 2), + "norm_num_groups": vae.get("norm_num_groups", 32), + "sample_size": unet.get("sample_size", 128) + * 2 ** (len(vae["block_out_channels"]) - 1), + "scaling_factor": vae.get("scaling_factor") or 0.13025, + "force_upcast": bool(vae.get("force_upcast", True)), + }, + text_config=None if text is None else text_config_kwargs(text), + text_config_2={ + **text_config_kwargs(text_2), + "projection_dim": text_2.get("projection_dim", 1280), + "hidden_act": text_2.get("hidden_act", "gelu"), + }, + hidden_act=(text or {}).get("hidden_act", "quick_gelu"), + layer_norm_eps=(text or text_2).get("layer_norm_eps", 1e-5), + scheduler_config=scheduler, + force_zeros_for_empty_prompt=src["force_zeros_for_empty_prompt"], + requires_aesthetics_score=src["requires_aesthetics_score"], + **src["tokens"], + ) + + +def transfer_text_encoder(keras_model, hf_module): + state = { + k if k.startswith(("text_model.", "text_projection.")) else f"text_model.{k}": v + for k, v in numpy_state_dict(hf_module).items() + } + transfer_clip_weights(keras_model, state) + + +def build_from_diffusers(repo, token=None, dtype="float16"): + import gc + + import torch + from diffusers import AutoencoderKL as DiffusersAutoencoderKL + from diffusers import UNet2DConditionModel as DiffusersUNet2DConditionModel + from transformers import CLIPTextModel, CLIPTextModelWithProjection + + from zeromodels.base.base_mixin import build_dtype_scope + from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + UNet2DConditionModel, + ) + from zeromodels.models.stable_diffusion_xl.stable_diffusion_xl_model import ( + StableDiffusionXLModel, + StableDiffusionXLRefinerModel, + ) + + config = config_from_diffusers(repo, token=token) + model_cls = ( + StableDiffusionXLRefinerModel + if config.text_config is None + else StableDiffusionXLModel + ) + with build_dtype_scope(dtype): + model = model_cls(config) + fp16 = {"torch_dtype": torch.float16, "variant": "fp16", "token": token} + fp32 = {"torch_dtype": torch.float32, "token": token} + + unet = DiffusersUNet2DConditionModel.from_pretrained(repo, subfolder="unet", **fp16) + UNet2DConditionModel.transfer_from_hf(model.unet, LazyNumpyStateDict(unet)) + del unet + gc.collect() + + vae = DiffusersAutoencoderKL.from_pretrained(repo, subfolder="vae", **fp32) + model.vae.transfer_from_hf(numpy_state_dict(vae)) + del vae + gc.collect() + + if config.text_config is not None: + text_encoder = CLIPTextModel.from_pretrained( + repo, subfolder="text_encoder", **fp32 + ) + transfer_text_encoder(model.text_encoder, text_encoder) + del text_encoder + gc.collect() + + text_encoder_2 = CLIPTextModelWithProjection.from_pretrained( + repo, subfolder="text_encoder_2", **fp32 + ) + transfer_text_encoder(model.text_encoder_2, text_encoder_2) + del text_encoder_2 + gc.collect() + return model, config + + +if __name__ == "__main__": + import gc + import os + + import keras + + OUT_DIR = os.environ.get("ZM_OUT_DIR", "C:/Users/gites/Desktop/code/v1_weights") + os.makedirs(OUT_DIR, exist_ok=True) + MAX_SHARD_GB = 5.0 + token = os.environ.get("HF_TOKEN") + selected = [v for v in os.environ.get("ZM_VARIANTS", "").split(",") if v] + sources = { + variant: source + for variant, source in STABLE_DIFFUSION_XL_SOURCES.items() + if not selected or variant in selected + } + + for variant, source in sources.items(): + print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") + model, config = build_from_diffusers(source, token=token) + + n_bytes = sum( + int(np.prod(w.shape)) * np.dtype(w.dtype).itemsize for w in model.weights + ) + stem = os.path.join(OUT_DIR, variant.replace("-", "_").replace(".", "_")) + if n_bytes > MAX_SHARD_GB * 1024**3: + out = f"{stem}.weights.json" + model.save_weights(out, max_shard_size=MAX_SHARD_GB) + else: + out = f"{stem}.weights.h5" + model.save_weights(out) + print(f" saved -> {out} ({n_bytes / 1024**3:.2f} GB)") + + del model + keras.backend.clear_session() + gc.collect() diff --git a/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_config.py b/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_config.py new file mode 100644 index 00000000..0ed30070 --- /dev/null +++ b/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_config.py @@ -0,0 +1,215 @@ +from zeromodels.models.clip.clip_config import CLIPTextConfig +from zeromodels.models.stable_diffusion.stable_diffusion_config import ( + AutoencoderKLConfig, + StableDiffusionConfig, + StableDiffusionTextConfig, + UNet2DConditionConfig, +) + + +class StableDiffusionXLUNetConfig(UNet2DConditionConfig): + r"""The Stable Diffusion XL denoiser: a [`UNet2DConditionConfig`] with the SDXL + layout. + + Same fields as [`UNet2DConditionConfig`]; the defaults are the SDXL base UNet + (2.57B parameters): three levels ((320, 640, 1280) wide, no attention at the + first), a 2048-d text context (the two text encoders concatenated), one head + count per level ((5, 10, 20), a 64-wide head everywhere), (1, 2, 10) transformer + blocks per Transformer2D, a linear token projection and the ``text_time`` + micro-conditioning (the pooled 1280-d text embedding plus six size / crop ids + embedded to 256 each, 2816 in all). ``sample_size`` is 128 (1024px); SDXL-Turbo + ships 64 (512px).""" + + sample_size: int = 128 + down_block_types: tuple = ( + "DownBlock2D", + "CrossAttnDownBlock2D", + "CrossAttnDownBlock2D", + ) + up_block_types: tuple = ("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D") + block_out_channels: tuple = (320, 640, 1280) + cross_attention_dim: int = 2048 + num_attention_heads: int | tuple = (5, 10, 20) + use_linear_projection: bool = True + transformer_layers_per_block: int | tuple = (1, 2, 10) + addition_embed_type: str | None = "text_time" + addition_time_embed_dim: int = 256 + projection_class_embeddings_input_dim: int | None = 2816 + num_time_ids: int = 6 + + +class StableDiffusionXLVAEConfig(AutoencoderKLConfig): + r"""The Stable Diffusion XL VAE: an [`AutoencoderKLConfig`] built for 1024px with + the SDXL latent scaling (0.13025) and ``force_upcast`` on (this VAE overflows in + float16, so it is always built in float32).""" + + sample_size: int = 1024 + scaling_factor: float = 0.13025 + force_upcast: bool = True + + +class StableDiffusionXLTextConfig2(CLIPTextConfig): + r"""The second Stable Diffusion XL text tower: OpenCLIP ViT-bigG/14's text encoder. + + Same fields as [`CLIPTextConfig`], defaulted to the ViT-bigG/14 sizes (1280 wide, + 20 heads, 32 layers), plus the joint-space projection whose pooled output is the + UNet's ``text_embeds`` conditioning. + + Args: + projection_dim (`int`, *optional*, defaults to 1280): + Width of the ``text_projection`` applied to the pooled (EOT) state. + hidden_act (`str`, *optional*, defaults to `"gelu"`): + Activation of this tower (the first tower uses the top-level + ``hidden_act``, ``quick_gelu``).""" + + hidden_dim: int = 1280 + num_heads: int = 20 + num_layers: int = 32 + projection_dim: int = 1280 + hidden_act: str = "gelu" + + +class StableDiffusionXLConfig(StableDiffusionConfig): + r"""Configuration for [`StableDiffusionXLModel`], the hosted SDXL weights container. + + The [`StableDiffusionConfig`] shape (nested sub-configs plus the scheduler and + token ids; flat constructor) with a fourth component: SDXL conditions on two + text encoders, CLIP ViT-L/14's (``text_config``, the SD 1.x tower) and OpenCLIP + ViT-bigG/14's (``text_config_2``, with a 1280-d projection), whose penultimate + hidden states are concatenated into the UNet's 2048-d context while the second + tower's projected pooled state feeds the ``text_time`` micro-conditioning. The + flat constructor prefixes the second tower's fields ``text_2_`` + (``text_2_hidden_dim``, ...). + + Args: + unet_config ([`StableDiffusionXLUNetConfig`], *optional*): The denoiser. + vae_config ([`StableDiffusionXLVAEConfig`], *optional*): The VAE. + text_config ([`StableDiffusionTextConfig`], *optional*): The CLIP ViT-L/14 + text encoder. + text_config_2 ([`StableDiffusionXLTextConfig2`], *optional*): The OpenCLIP + ViT-bigG/14 text encoder. + pad_token_id_2 (`int`, *optional*, defaults to 0): + The second tokenizer pads with ``!`` (id 0) where the first pads with + ``<|endoftext|>``; the model derives the second tower's ids from the + first tokenizer's output and this id. + force_zeros_for_empty_prompt (`bool`, *optional*, defaults to True): + Use zero embeddings, rather than the encoded empty prompt, as the + unconditional branch of classifier-free guidance when no negative + prompt is given (the SDXL repos' ``model_index.json`` setting). + requires_aesthetics_score (`bool`, *optional*, defaults to False): + The refiner's micro-conditioning: an aesthetic score as the fifth time + id instead of the target size (``num_time_ids`` 5). + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_xl import StableDiffusionXLConfig, StableDiffusionXLModel + + >>> config = StableDiffusionXLConfig() + >>> model = StableDiffusionXLModel(config) # random weights, SDXL shapes + >>> model.config.unet_config.transformer_layers_per_block + (1, 2, 10) + ```""" + + model_type = "stable_diffusion_xl" + + sub_configs = { + "unet_config": StableDiffusionXLUNetConfig, + "vae_config": StableDiffusionXLVAEConfig, + "text_config": StableDiffusionTextConfig, + "text_config_2": StableDiffusionXLTextConfig2, + } + sub_config_prefixes = { + "unet_config": "unet_", + "vae_config": "vae_", + "text_config": "text_", + "text_config_2": "text_2_", + } + group_extras = {"text_config": ("vocab_size", "max_seq_len")} + + unet_config: StableDiffusionXLUNetConfig | dict | None = None + vae_config: StableDiffusionXLVAEConfig | dict | None = None + text_config_2: StableDiffusionXLTextConfig2 | dict | None = None + pad_token_id_2: int = 0 + force_zeros_for_empty_prompt: bool = True + requires_aesthetics_score: bool = False + + +class StableDiffusionXLRefinerUNetConfig(StableDiffusionXLUNetConfig): + r"""The Stable Diffusion XL refiner's denoiser: a [`StableDiffusionXLUNetConfig`] + with the refiner layout. + + Four levels ((384, 768, 1536, 1536) wide, attention at the middle two), 4 + transformer blocks per Transformer2D, (6, 12, 24, 24) heads, a 1280-d context + (the OpenCLIP ViT-bigG/14 tower alone) and five micro-conditioning values (size, + crop and the aesthetic score, 2560 with the pooled embedding). 2.3B parameters.""" + + down_block_types: tuple = ( + "DownBlock2D", + "CrossAttnDownBlock2D", + "CrossAttnDownBlock2D", + "DownBlock2D", + ) + up_block_types: tuple = ( + "UpBlock2D", + "CrossAttnUpBlock2D", + "CrossAttnUpBlock2D", + "UpBlock2D", + ) + block_out_channels: tuple = (384, 768, 1536, 1536) + cross_attention_dim: int = 1280 + num_attention_heads: int | tuple = (6, 12, 24, 24) + transformer_layers_per_block: int | tuple = 4 + projection_class_embeddings_input_dim: int | None = 2560 + num_time_ids: int = 5 + + +class StableDiffusionXLRefinerConfig(StableDiffusionXLConfig): + r"""Configuration for [`StableDiffusionXLRefinerModel`], the hosted SDXL refiner + weights container. + + The [`StableDiffusionXLConfig`] shape with the refiner's parts: no first text + tower (``text_config`` is ``None``; the OpenCLIP ViT-bigG/14 ``text_config_2`` + alone conditions the UNet, 1280-d), the [`StableDiffusionXLRefinerUNetConfig`] + denoiser and the aesthetic-score micro-conditioning + (``requires_aesthetics_score``); the empty negative prompt is encoded rather than + zeroed (``force_zeros_for_empty_prompt`` off), as the refiner repos declare. + + Args: + unet_config ([`StableDiffusionXLRefinerUNetConfig`], *optional*): The denoiser. + vae_config ([`StableDiffusionXLVAEConfig`], *optional*): The VAE. + text_config (*optional*): Absent (``None``): the refiner has no CLIP ViT-L/14 + tower. + text_config_2 ([`StableDiffusionXLTextConfig2`], *optional*): The OpenCLIP + ViT-bigG/14 text encoder. + requires_aesthetics_score (`bool`, *optional*, defaults to True): + Condition on an aesthetic score (the fifth time id) instead of a target + size. + force_zeros_for_empty_prompt (`bool`, *optional*, defaults to False): + Encode the empty prompt for the unconditional branch. + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_xl import StableDiffusionXLRefinerConfig, StableDiffusionXLRefinerModel + + >>> config = StableDiffusionXLRefinerConfig() + >>> model = StableDiffusionXLRefinerModel(config) # random weights, refiner shapes + >>> model.config.unet_config.block_out_channels + (384, 768, 1536, 1536) + ```""" + + model_type = "stable_diffusion_xl_refiner" + + sub_configs = { + "unet_config": StableDiffusionXLRefinerUNetConfig, + "vae_config": StableDiffusionXLVAEConfig, + "text_config": StableDiffusionTextConfig, + "text_config_2": StableDiffusionXLTextConfig2, + } + optional_sub_configs = ("text_config",) + + unet_config: StableDiffusionXLRefinerUNetConfig | dict | None = None + text_config: StableDiffusionTextConfig | dict | None = None + requires_aesthetics_score: bool = True + force_zeros_for_empty_prompt: bool = False diff --git a/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_model.py b/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_model.py new file mode 100644 index 00000000..ccb94a9d --- /dev/null +++ b/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_model.py @@ -0,0 +1,496 @@ +import keras +from keras import layers, ops + +from zeromodels.base.base_scheduler import EulerDiscreteScheduler +from zeromodels.models.clip.clip_layers import CLIPTextModelEmbedding +from zeromodels.models.clip.clip_model import residual_attention_block +from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + AutoencoderKL, + StableDiffusionModel, + StableDiffusionTextToImage, + UNet2DConditionModel, +) + +from .stable_diffusion_xl_config import ( + StableDiffusionXLConfig, + StableDiffusionXLRefinerConfig, +) + +# The container and the task build the identical graph, so both load the one +# hosted repo (whose zm_config.json names the container). +STABLE_DIFFUSION_XL_HUB_SIBLINGS = frozenset( + {"StableDiffusionXLModel", "StableDiffusionXLTextToImage"} +) +STABLE_DIFFUSION_XL_REFINER_HUB_SIBLINGS = frozenset( + {"StableDiffusionXLRefinerModel", "StableDiffusionXLRefinerImageToImage"} +) + + +def build_text_encoder( + config, hidden_act, layer_norm_eps, projection_dim=None, name="text_encoder" +): + """Functional CLIP text tower (the ``clip`` family's layers and leaf names) + that also exposes the penultimate hidden state SDXL conditions on. + + Outputs ``penultimate_hidden_state`` (the input of the last transformer block, + no final LayerNorm: diffusers' ``hidden_states[-2]``), the usual + ``last_hidden_state`` / ``pooler_output`` (EOT position, argmax of the ids) and, + when ``projection_dim`` is set, ``text_embeds``, the pooled state through the + bias-free ``text_projection`` (the second SDXL tower). Built under a + ``keras.name_scope(name)`` so the two towers' identically named layers keep + distinct weight paths inside the container. + """ + length = config.max_seq_len + with keras.name_scope(name): + # int32 inputs: under a float16 load policy a float input would round the + # ids (49407 is not representable in float16) + token_ids = layers.Input(shape=(length,), dtype="int32", name="token_ids") + padding_mask = layers.Input(shape=(length,), dtype="int32", name="padding_mask") + x = CLIPTextModelEmbedding( + vocab_size=config.vocab_size, + max_seq_len=length, + embed_dim=config.hidden_dim, + name="text_model_embedding", + )(token_ids) + + causal_mask = ops.cast(ops.triu(ops.ones((length, length)), k=1), "float32") + causal_mask = causal_mask * (-1e8) + key_mask = ops.reshape(ops.cast(padding_mask, "float32"), (-1, 1, 1, length)) + key_mask = (1.0 - ops.repeat(key_mask, length, axis=2)) * (-1e8) + + penultimate = None + for i in range(config.num_layers): + if i == config.num_layers - 1: + penultimate = x + x = residual_attention_block( + x, + proj_dim=config.hidden_dim, + num_heads=config.num_heads, + layer_name_prefix="text_model_encoder", + layer_idx=i, + causal_attention_mask=causal_mask, + attention_mask=key_mask, + mlp_ratio=config.mlp_ratio, + hidden_act=hidden_act, + layer_norm_eps=layer_norm_eps, + ) + last_hidden_state = layers.LayerNormalization( + epsilon=layer_norm_eps, name="text_model_layernorm" + )(x) + one_hot = ops.one_hot( + ops.argmax(token_ids, axis=-1), length, dtype=last_hidden_state.dtype + ) + pooler_output = ops.einsum("bi,bij->bj", one_hot, last_hidden_state) + + outputs = { + "penultimate_hidden_state": penultimate, + "last_hidden_state": last_hidden_state, + "pooler_output": pooler_output, + } + if projection_dim is not None: + # the Dense runs on a (B, 1, D) view, as CLIPTextEmbed does, so the + # kernel maps to the checkpoint's text_projection.weight unchanged + projected = layers.Dense( + projection_dim, use_bias=False, name="text_projection" + )(ops.expand_dims(pooler_output, axis=1)) + outputs["text_embeds"] = ops.squeeze(projected, axis=1) + return keras.Model( + inputs={"token_ids": token_ids, "padding_mask": padding_mask}, + outputs=outputs, + name=name, + ) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusionXLModel(StableDiffusionModel): + """Stable Diffusion XL weights container: the UNet, the VAE and the two text + encoders (CLIP ViT-L/14 and OpenCLIP ViT-bigG/14) as one functional + ``keras.Model``. + + The SD 1.x container (:class:`StableDiffusionModel`) with the SDXL + configuration and a fourth component: four disconnected sub-graphs, + ``{"sample", "timestep", "encoder_hidden_states", "text_embeds", "time_ids"} + -> "noise_pred"`` (the UNet with its ``text_time`` micro-conditioning), + ``{"image", "latent"} -> "moments" / "image"`` (the VAE, built in float32 + whatever the load dtype, ``force_upcast``) and ``{"token_ids", "token_ids_2", + "padding_mask"} -> "prompt_embeds" / "pooled_prompt_embeds"`` (the two text + towers: their penultimate hidden states concatenated to the UNet's 2048-d + context, and the second tower's projected pooled state). The components are + ``.unet`` / ``.vae`` / ``.text_encoder`` / ``.text_encoder_2``. Hosted as one + ``zm_config.json`` + float16 weights (the checkpoints' native precision) per + variant under ``zeromodels/stable-diffusion-xl-base-1.0`` and + ``zeromodels/sdxl-turbo``; on-the-fly ``hf:`` conversion is not supported for + diffusion models. + + Args: + **kwargs: The flat :class:`StableDiffusionXLConfig` fields (``unet_`` / + ``vae_`` / ``text_`` / ``text_2_`` prefixed), or a config positionally. + Pass ``unet_sample_size`` / ``vae_sample_size`` to build for another + resolution (the weights are resolution-independent). + """ + + config_class = StableDiffusionXLConfig + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_XL_HUB_SIBLINGS + + def __init__(self, name="StableDiffusionXLModel", **kwargs): + super().__init__(name=name, **kwargs) + + def build_components(self, config, data_format, channels_axis): + u, v, t, t2 = ( + config.unet_config, + config.vae_config, + config.text_config, + config.text_config_2, + ) + unet = UNet2DConditionModel( + u, data_format=data_format, channels_axis=channels_axis + ) + vae = AutoencoderKL( + **v.constructor_kwargs(), + data_format=data_format, + channels_axis=channels_axis, + ) + components = {"unet": unet, "vae": vae} + if t is not None: # the refiner has no CLIP ViT-L/14 tower + components["text_encoder"] = build_text_encoder( + t, config.hidden_act, config.layer_norm_eps, name="text_encoder" + ) + components["text_encoder_2"] = build_text_encoder( + t2, + t2.hidden_act, + config.layer_norm_eps, + projection_dim=t2.projection_dim, + name="text_encoder_2", + ) + return components + + def build_graph(self, config, components, data_format): + u, length = config.unet_config, config.text_config_2.max_seq_len + unet, vae = components["unet"], components["vae"] + text_encoder = components.get("text_encoder") + text_encoder_2 = components["text_encoder_2"] + inputs = self.unet_vae_inputs(config, components, data_format) + pooled_dim = ( + u.projection_class_embeddings_input_dim + - u.num_time_ids * u.addition_time_embed_dim + ) + inputs["text_embeds"] = layers.Input(shape=(pooled_dim,), name="text_embeds") + inputs["time_ids"] = layers.Input(shape=(u.num_time_ids,), name="time_ids") + if text_encoder is not None: + inputs["token_ids"] = layers.Input( + shape=(length,), dtype="int32", name="token_ids" + ) + inputs["token_ids_2"] = layers.Input( + shape=(length,), dtype="int32", name="token_ids_2" + ) + inputs["padding_mask"] = layers.Input( + shape=(length,), dtype="int32", name="padding_mask" + ) + + noise_pred = unet( + { + key: inputs[key] + for key in ( + "sample", + "timestep", + "encoder_hidden_states", + "text_embeds", + "time_ids", + ) + } + )["sample"] + vae_out = vae({"image": inputs["image"], "latent": inputs["latent"]}) + text_out_2 = text_encoder_2( + { + "token_ids": inputs["token_ids_2"], + "padding_mask": inputs["padding_mask"], + } + ) + hidden_states = [text_out_2["penultimate_hidden_state"]] + if text_encoder is not None: + text_out = text_encoder( + { + "token_ids": inputs["token_ids"], + "padding_mask": inputs["padding_mask"], + } + ) + hidden_states.insert(0, text_out["penultimate_hidden_state"]) + prompt_embeds = ( + ops.concatenate(hidden_states, axis=-1) + if len(hidden_states) > 1 + else hidden_states[0] + ) + outputs = { + "noise_pred": noise_pred, + "moments": vae_out["moments"], + "image": vae_out["sample"], + "prompt_embeds": prompt_embeds, + "pooled_prompt_embeds": text_out_2["text_embeds"], + } + return inputs, outputs + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusionXLTextToImage(StableDiffusionTextToImage, StableDiffusionXLModel): + """Text-to-image Stable Diffusion XL, pure Keras 3 and cross-backend (the + diffusers ``StableDiffusionXLPipeline`` in this library's task-class form). + + :class:`StableDiffusionTextToImage`'s ``generate`` (``BaseDiffusion``) over the + :class:`StableDiffusionXLModel` graph. The hooks follow the SDXL recipe: the + prompt goes through both text towers (the second tower's ``!``-padded ids are + derived from the first tokenizer's output), their penultimate hidden states + are concatenated into the UNet context and the second tower's projected pooled + state becomes the ``text_embeds`` micro-conditioning, next to the ``time_ids`` + built from ``original_size`` / ``crops_coords_top_left`` / ``target_size``. + With no negative prompt the unconditional branch of classifier-free guidance + is zero embeddings (``force_zeros_for_empty_prompt``), as in the reference. + The sampler is the repo's ``scheduler_config`` (Euler with ``leading`` spacing + for the base model, ancestral Euler with ``trailing`` spacing for SDXL-Turbo):: + + sd = StableDiffusionXLTextToImage.from_weights("zeromodels/stable-diffusion-xl-base-1.0") + tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/stable-diffusion-xl-base-1.0") + image = sd.generate(**tokenizer("a photo of a cat")) # (1, 1024, 1024, 3) uint8 + + Args: + scheduler: A :class:`BaseScheduler`; defaults to the config's + ``scheduler_config``, else Euler with ``leading`` spacing. + **kwargs: The flat :class:`StableDiffusionXLConfig` fields. + """ + + config_class = StableDiffusionXLConfig + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_XL_HUB_SIBLINGS + # diffusers' StableDiffusionXLPipeline defaults; a repo's generate_args override + generate_args = {"num_inference_steps": 50, "guidance_scale": 5.0} + + def __init__(self, scheduler=None, name="StableDiffusionXLTextToImage", **kwargs): + super().__init__(scheduler=scheduler, name=name, **kwargs) + + def default_scheduler(self): + return EulerDiscreteScheduler(timestep_spacing="leading", steps_offset=1) + + def generate( + self, + input_ids, + attention_mask=None, + negative_input_ids=None, + num_inference_steps=None, + guidance_scale=None, + seed=None, + latents=None, + image=None, + strength=None, + denoising_start=None, + denoising_end=None, + output_type="image", + original_size=None, + crops_coords_top_left=(0, 0), + target_size=None, + aesthetic_score=6.0, + negative_original_size=None, + negative_crops_coords_top_left=None, + negative_target_size=None, + negative_aesthetic_score=2.5, + ): + """Generate images from tokenized prompts, or refine an ``image`` / latent + (see ``BaseDiffusion.generate`` for the shared arguments). + + The SDXL micro-conditioning arguments are ``(height, width)`` pairs in + pixels: ``original_size`` and ``target_size`` default to the generated + image's size, ``crops_coords_top_left`` to ``(0, 0)``; the ``negative_`` + variants condition the negative branch and default to the positive values. + ``aesthetic_score`` / ``negative_aesthetic_score`` (6.0 / 2.5) replace the + target size on the refiner (``requires_aesthetics_score``). For the SDXL + ensemble, run the base with ``denoising_end=0.8, output_type="latent"`` and + hand the latent to the refiner's ``generate(..., latents=..., + denoising_start=0.8)``. + """ + return super().generate( + input_ids, + attention_mask=attention_mask, + negative_input_ids=negative_input_ids, + num_inference_steps=num_inference_steps, + guidance_scale=guidance_scale, + seed=seed, + latents=latents, + image=image, + strength=strength, + denoising_start=denoising_start, + denoising_end=denoising_end, + output_type=output_type, + original_size=original_size, + crops_coords_top_left=crops_coords_top_left, + target_size=target_size, + aesthetic_score=aesthetic_score, + negative_original_size=negative_original_size, + negative_crops_coords_top_left=negative_crops_coords_top_left, + negative_target_size=negative_target_size, + negative_aesthetic_score=negative_aesthetic_score, + ) + + def image_size(self): + size = self.vae.sample_size + return tuple(size) if isinstance(size, (tuple, list)) else (size, size) + + def time_ids( + self, + batch, + original_size=None, + crops_coords_top_left=(0, 0), + target_size=None, + aesthetic_score=6.0, + ): + """The ``(batch, 6)`` float32 micro-conditioning row: original size, crop + offset and target size, each ``(height, width)``; ``(batch, 5)`` with the + aesthetic score in place of the target size when + ``requires_aesthetics_score`` (the refiner).""" + original_size = tuple(original_size or self.image_size()) + row = list(original_size) + list(crops_coords_top_left) + if self.config.requires_aesthetics_score: + row = row + [aesthetic_score] + else: + row = row + list(target_size or self.image_size()) + return ops.convert_to_tensor([row] * batch, dtype="float32") + + def unconditional_ids(self, batch): + cfg = self.config + length = cfg.text_config_2.max_seq_len + row = [cfg.bos_token_id, cfg.eos_token_id] + [cfg.pad_token_id] * (length - 2) + return ops.convert_to_tensor([row] * batch, dtype="int32") + + def prompt_mask(self, input_ids): + # the tokens up to and including the first <|endoftext|>; what follows is + # padding (the first tokenizer pads with <|endoftext|> itself) + is_eos = ops.cast(ops.equal(input_ids, self.config.eos_token_id), "int32") + return ops.equal(ops.cumsum(is_eos, axis=1) - is_eos, 0) + + def encode_prompt( + self, + input_ids, + attention_mask=None, + original_size=None, + crops_coords_top_left=(0, 0), + target_size=None, + aesthetic_score=6.0, + ): + input_ids = ops.cast(ops.convert_to_tensor(input_ids), "int32") + if attention_mask is None: + real = self.prompt_mask(input_ids) + else: + real = ops.greater( + ops.cast(ops.convert_to_tensor(attention_mask), "int32"), 0 + ) + # the second tokenizer pads with "!" (id 0) where the first pads with + # <|endoftext|>; the towers attend the padding (no attention mask), as the + # reference does + input_ids_2 = ops.where(real, input_ids, self.config.pad_token_id_2) + ones = ops.ones_like(input_ids) + out_2 = self.text_encoder_2({"token_ids": input_ids_2, "padding_mask": ones}) + hidden = out_2["penultimate_hidden_state"] + if self.config.text_config is not None: + out = self.text_encoder({"token_ids": input_ids, "padding_mask": ones}) + hidden = ops.concatenate([out["penultimate_hidden_state"], hidden], -1) + batch = int(input_ids.shape[0]) + return { + "encoder_hidden_states": hidden, + "text_embeds": out_2["text_embeds"], + "time_ids": self.time_ids( + batch, + original_size, + crops_coords_top_left, + target_size, + aesthetic_score, + ), + } + + def encode_negative_prompt(self, negative_input_ids, batch, **conditioning): + if ( + negative_input_ids is not None + or not self.config.force_zeros_for_empty_prompt + ): + return super().encode_negative_prompt( + negative_input_ids, batch, **conditioning + ) + # force_zeros_for_empty_prompt: zero embeddings stand in for the empty + # prompt; the micro-conditioning keeps its (negative) values + u, length = self.config.unet_config, self.config.text_config_2.max_seq_len + pooled_dim = ( + u.projection_class_embeddings_input_dim + - u.num_time_ids * u.addition_time_embed_dim + ) + return { + "encoder_hidden_states": ops.zeros( + (batch, length, u.cross_attention_dim), dtype="float32" + ), + "text_embeds": ops.zeros((batch, pooled_dim), dtype="float32"), + "time_ids": self.time_ids(batch, **conditioning), + } + + def predict_noise(self, latents, timesteps, embeddings): + return self.unet({"sample": latents, "timestep": timesteps, **embeddings})[ + "sample" + ] + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusionXLRefinerModel(StableDiffusionXLModel): + """Stable Diffusion XL refiner weights container: the refiner UNet, the VAE and + the OpenCLIP ViT-bigG/14 text encoder as one functional ``keras.Model``. + + :class:`StableDiffusionXLModel` with the refiner configuration + (:class:`StableDiffusionXLRefinerConfig`): three disconnected sub-graphs (no + CLIP ViT-L/14 tower, so the UNet's context is the second tower's 1280-d + penultimate state alone), the four-level refiner UNet and five + micro-conditioning ids (size, crop, aesthetic score). Components: + ``.unet`` / ``.vae`` / ``.text_encoder_2``. Hosted under + ``zeromodels/stable-diffusion-xl-refiner-1.0`` (float16, the VAE float32). + + Args: + **kwargs: The flat :class:`StableDiffusionXLRefinerConfig` fields, or a + config positionally. + """ + + config_class = StableDiffusionXLRefinerConfig + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_XL_REFINER_HUB_SIBLINGS + + def __init__(self, name="StableDiffusionXLRefinerModel", **kwargs): + super().__init__(name=name, **kwargs) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusionXLRefinerImageToImage( + StableDiffusionXLTextToImage, StableDiffusionXLRefinerModel +): + """Image-to-image Stable Diffusion XL refiner, pure Keras 3 and cross-backend + (diffusers' ``StableDiffusionXLImg2ImgPipeline`` with the refiner weights). + + :class:`StableDiffusionXLTextToImage`'s hooks over the + :class:`StableDiffusionXLRefinerModel` graph, the prompt encoded by the + OpenCLIP ViT-bigG/14 tower alone and the aesthetic score + (``aesthetic_score`` 6.0 / ``negative_aesthetic_score`` 2.5) as the fifth + micro-conditioning id. ``generate`` refines an ``image`` (noised to + ``strength``, 0.3 by default) or, as the second half of the SDXL ensemble of + experts, a latent the base model left partially denoised + (``denoising_start`` at the base's ``denoising_end``):: + + base = StableDiffusionXLTextToImage.from_weights("zeromodels/stable-diffusion-xl-base-1.0") + refiner = StableDiffusionXLRefinerImageToImage.from_weights("zeromodels/stable-diffusion-xl-refiner-1.0") + tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/stable-diffusion-xl-base-1.0") + inputs = tokenizer("a photo of a cat") + latent = base.generate(**inputs, denoising_end=0.8, output_type="latent") + image = refiner.generate(**inputs, latents=latent, denoising_start=0.8) + + Args: + scheduler: A :class:`BaseScheduler`; defaults to the config's + ``scheduler_config``, else Euler with ``leading`` spacing. + **kwargs: The flat :class:`StableDiffusionXLRefinerConfig` fields. + """ + + config_class = StableDiffusionXLRefinerConfig + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_XL_REFINER_HUB_SIBLINGS + # diffusers' StableDiffusionXLImg2ImgPipeline defaults + generate_args = {"num_inference_steps": 50, "guidance_scale": 5.0, "strength": 0.3} + + def __init__( + self, scheduler=None, name="StableDiffusionXLRefinerImageToImage", **kwargs + ): + super().__init__(scheduler=scheduler, name=name, **kwargs) diff --git a/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_tokenizer.py b/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_tokenizer.py new file mode 100644 index 00000000..88046a65 --- /dev/null +++ b/zeromodels/models/stable_diffusion_xl/stable_diffusion_xl_tokenizer.py @@ -0,0 +1,42 @@ +import keras + +from zeromodels.models.stable_diffusion.stable_diffusion_tokenizer import ( + StableDiffusionTokenizer, +) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusionXLTokenizer(StableDiffusionTokenizer): + """Stable Diffusion XL text tokenizer: the CLIP ViT-L/14 BPE tokenizer. + + SDXL tokenizes the prompt twice, once per text encoder, with the same + byte-pair encoding and ``<|startoftext|>`` / ``<|endoftext|>`` framing: the + two tokenizers differ only in the pad token (``<|endoftext|>`` for the CLIP + ViT-L/14 tower, ``!`` for the OpenCLIP ViT-bigG/14 one). This is the first; + :class:`StableDiffusionXLTextToImage` derives the second tower's ids from the + returned ``attention_mask``, so one call feeds ``generate``. Loads by repo id + like the model: ``from_weights("zeromodels/stable-diffusion-xl-base-1.0")``. + + Args: + hf_id: Hosted repo to read ``tokenizer.json`` from. Required unless + ``tokenizer_file`` is given (no default repo). + tokenizer_file: Explicit ``tokenizer.json`` path (overrides ``hf_id``). + max_seq_len: Padded / truncated length (default 77). + pad_token: Pad token string (``<|endoftext|>``). + """ + + def __init__( + self, + hf_id=None, + tokenizer_file=None, + max_seq_len=77, + pad_token="<|endoftext|>", + **kwargs, + ): + super().__init__( + hf_id=hf_id, + tokenizer_file=tokenizer_file, + max_seq_len=max_seq_len, + pad_token=pad_token, + **kwargs, + ) From ae3155972458d059ae2c23115cb631eb0d9f876e Mon Sep 17 00:00:00 2001 From: IMvision12 Date: Sun, 13 Sep 2026 20:55:35 -0700 Subject: [PATCH 3/4] Add Stable Diffusion XL, 3, 3.5 --- README.md | 2 + assets/stable_diffusion_3_5_treehouse.jpg | Bin 0 -> 381932 bytes assets/stable_diffusion_3_corgi.jpg | Bin 0 -> 155948 bytes docs/main_classes.md | 36 +- docs/models.md | 2 + docs/stable_diffusion.md | 11 +- docs/stable_diffusion_2.md | 20 +- docs/stable_diffusion_3.md | 268 ++ docs/stable_diffusion_3_5.md | 128 + docs/stable_diffusion_xl.md | 64 +- tests/base/model_test_registry.py | 100 + tests/fixtures/cross_backend_parity.json | 4023 +++++++++++++++++ tests/fixtures/dummy_inputs.py | 26 + tests/integration/test_auto_registry.py | 7 +- website/mkdocs.yml | 2 + zeromodels/auto/auto_mapping_names.py | 10 + zeromodels/base/base_attention.py | 62 +- zeromodels/base/base_mixin.py | 15 +- zeromodels/base/base_scheduler.py | 81 + zeromodels/models/__init__.py | 2 + ...ert_stable_diffusion_diffusers_to_keras.py | 234 +- .../stable_diffusion_config.py | 7 + .../stable_diffusion_layers.py | 32 +- .../stable_diffusion_model.py | 120 +- ...t_stable_diffusion_2_diffusers_to_keras.py | 10 +- .../models/stable_diffusion_3/__init__.py | 27 + ...t_stable_diffusion_3_diffusers_to_keras.py | 336 ++ .../stable_diffusion_3_config.py | 236 + .../stable_diffusion_3_layers.py | 668 +++ .../stable_diffusion_3_model.py | 720 +++ .../stable_diffusion_3_tokenizer.py | 89 + .../models/stable_diffusion_3_5/__init__.py | 17 + ...stable_diffusion_3_5_diffusers_to_keras.py | 79 + .../stable_diffusion_3_5_config.py | 52 + .../stable_diffusion_3_5_model.py | 69 + .../stable_diffusion_3_5_tokenizer.py | 39 + ..._stable_diffusion_xl_diffusers_to_keras.py | 190 +- 37 files changed, 7434 insertions(+), 350 deletions(-) create mode 100644 assets/stable_diffusion_3_5_treehouse.jpg create mode 100644 assets/stable_diffusion_3_corgi.jpg create mode 100644 docs/stable_diffusion_3.md create mode 100644 docs/stable_diffusion_3_5.md create mode 100644 zeromodels/models/stable_diffusion_3/__init__.py create mode 100644 zeromodels/models/stable_diffusion_3/convert_stable_diffusion_3_diffusers_to_keras.py create mode 100644 zeromodels/models/stable_diffusion_3/stable_diffusion_3_config.py create mode 100644 zeromodels/models/stable_diffusion_3/stable_diffusion_3_layers.py create mode 100644 zeromodels/models/stable_diffusion_3/stable_diffusion_3_model.py create mode 100644 zeromodels/models/stable_diffusion_3/stable_diffusion_3_tokenizer.py create mode 100644 zeromodels/models/stable_diffusion_3_5/__init__.py create mode 100644 zeromodels/models/stable_diffusion_3_5/convert_stable_diffusion_3_5_diffusers_to_keras.py create mode 100644 zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_config.py create mode 100644 zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_model.py create mode 100644 zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_tokenizer.py diff --git a/README.md b/README.md index 34621473..9f72eae8 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,8 @@ Documentation sources are also available in [`docs/`](docs/). | Stable Diffusion 1.x (v1-1 to v1-5) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | | Stable Diffusion 2.x (2, 2-base, 2-1, 2-1-base, SD-Turbo) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | | Stable Diffusion XL (base + refiner 0.9 / 1.0, SDXL-Turbo) | [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis](https://arxiv.org/abs/2307.01952) | `diffusers` | + | Stable Diffusion 3 (medium) | [Scaling Rectified Flow Transformers for High-Resolution Image Synthesis](https://arxiv.org/abs/2403.03206) | `diffusers` | + | Stable Diffusion 3.5 (large, large-turbo, medium) | [Scaling Rectified Flow Transformers for High-Resolution Image Synthesis](https://arxiv.org/abs/2403.03206) | `diffusers` |
diff --git a/assets/stable_diffusion_3_5_treehouse.jpg b/assets/stable_diffusion_3_5_treehouse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c20622b7d869f400378ff992ec577b874d5c57c4 GIT binary patch literal 381932 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
  • kRCj^h6SmO1dHh&YrfH?S;k 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%0AwI7_!s_|CUV-U+Cr^U5s&}}l%XJP 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

    UK*{>ASQkM`U~|7yM?t-V_|nuSpi#HgQTi| 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®u=l9fB#A9B<1wYe&W>vv(4 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 literal 0 HcmV?d00001 diff --git a/docs/main_classes.md b/docs/main_classes.md index 3a8b70d9..64bad0b9 100644 --- a/docs/main_classes.md +++ b/docs/main_classes.md @@ -258,8 +258,8 @@ model.generate( ``` The diffusion flavor, used by [Stable Diffusion](stable_diffusion.md), -[Stable Diffusion 2](stable_diffusion_2.md) and -[Stable Diffusion XL](stable_diffusion_xl.md). Where the LM +[Stable Diffusion 2](stable_diffusion_2.md), [Stable Diffusion XL](stable_diffusion_xl.md) +and [Stable Diffusion 3 / 3.5](stable_diffusion_3.md). Where the LM mixins decode tokens, this one runs a scheduler's denoising loop with classifier-free guidance over a latent and decodes it to `(batch, H, W, 3)` uint8 images. A model supplies five hooks (`encode_prompt`, `unconditional_ids`, `predict_noise`, @@ -301,7 +301,8 @@ instance, like the LM decode loop. ### BaseScheduler The samplers a diffusion model steps with (`PNDMScheduler`, `DDIMScheduler`, -`EulerDiscreteScheduler`, `EulerAncestralDiscreteScheduler` in +`EulerDiscreteScheduler`, `EulerAncestralDiscreteScheduler`, +`FlowMatchEulerDiscreteScheduler` (rectified flow, SD 3) in `zeromodels.base.base_scheduler`) are weightless classes with the diffusers interface: `set_timesteps(n)`, `scale_model_input(sample, t)`, `step(noise_pred, t, sample)` and `init_noise_sigma`. `get_scheduler(config)` builds the one a diffusers scheduler config @@ -417,6 +418,33 @@ layer in the library so a single implementation choice applies everywhere. - **scale** (`float`): the `1/sqrt(head_dim)` factor, applied inside. - **attention_mask** (*optional*): additive mask broadcastable to `(B, heads, T_q, T_kv)`. - **soft_cap** (`float`, *optional*): logit soft-capping, used by Gemma 2. -- **attn_implementation** (`str`, *optional*): pick the kernel; pass it through `from_weights` to set it model-wide. +- **attn_implementation** (`str`, *optional*): `"sdpa"`, `"fused"` or `"flash"` (below); `None` uses the implementation active in the current context, else the layer's own default. + +**Implementations.** All three compute the same `softmax(QKᵀ · scale + mask) · V`; they differ in +memory, speed and portability: + +| | `"sdpa"` (library default) | `"fused"` | `"flash"` | +|---|---|---|---| +| What runs | hand-written `matmul`, float32 `softmax`, `matmul` | `keras.ops.dot_product_attention`, the backend picks the kernel | the same op with `flash_attention=True` | +| torch | the math on any device / dtype | `scaled_dot_product_attention`: flash or memory-efficient kernel on a CUDA GPU in fp16 / bf16, else its math kernel | the flash kernel, or an error | +| JAX | the math | the XLA reference implementation (same memory as the math) | cuDNN flash on a capable GPU, or an error | +| TensorFlow | the math | falls back to the math | falls back to the math | +| Logits memory | the full `(B, heads, T_q, T_kv)` matrix, materialized in fp16 and again in float32 for the softmax | tiled, never materialized when a fused kernel applies | tiled | +| Masks / soft-cap / dropout | all supported | additive masks yes; a soft-cap or attention dropout falls back to the math | no masks; soft-cap / dropout fall back | + +The math path is what every parity number in this library was measured with and what runs +everywhere identically. Its cost is quadratic memory: at 1024px the Stable Diffusion 3 joint +attention (4429 tokens) needs about 3.8 GB of float32 logits per block, which runs an 8 GB GPU +out of memory, while `"fused"` runs the same model at a 6.9 GB peak, 1.0 s/step on an RTX +4060 Laptop (the SDXL 1024px step drops from a 10.3 GB to a 7.6 GB peak). The fused kernels +accumulate in float32 and differ from the math only by rounding (about 3e-7 in float32). + +**Precedence.** `Model.from_weights(attn_implementation=...)` activates the choice for the +model's build and every forward / generation step (a `ContextVar`, restored on exit, so it +never leaks to another model). A layer may carry its own default for when nothing is +chosen: the SD 3 MMDiT's `StableDiffusion3JointAttention` defaults to `"fused"` because of the sequence +length above; every other layer defaults to `"sdpa"`. An explicit choice always wins over a +layer default. Outside `from_weights`, `zeromodels.base.base_attention.use_attn_implementation("fused")` +wraps a build or a forward the same way. See also [Utilities](utils.md) for the image, video, visualization, and label helpers. diff --git a/docs/models.md b/docs/models.md index afa5cc39..f5328f81 100644 --- a/docs/models.md +++ b/docs/models.md @@ -108,3 +108,5 @@ Vision-language encoders, generative VLMs, grounding across detection, OCR, poin - [Stable Diffusion](stable_diffusion.md) - [Stable Diffusion 2](stable_diffusion_2.md) - [Stable Diffusion XL](stable_diffusion_xl.md) +- [Stable Diffusion 3](stable_diffusion_3.md) +- [Stable Diffusion 3.5](stable_diffusion_3_5.md) diff --git a/docs/stable_diffusion.md b/docs/stable_diffusion.md index 96b0bfe2..2993961d 100644 --- a/docs/stable_diffusion.md +++ b/docs/stable_diffusion.md @@ -28,10 +28,11 @@ Key facts of the port: Weights are layout-independent, so one hosted checkpoint serves both, and the converter is a `(O, I, H, W) -> (H, W, I, O)` kernel transpose and nothing else. - **Block-level layers**: the UNet and VAE are built from composite Keras layers - (`ResnetBlock2D`, `Transformer2DModel`, `CrossAttention`, ...). A functional graph keeps - every node's output alive until the forward ends, and at 512px the UNet's per-op - intermediates (4096x4096 attention maps above all) would need several GB; a layer's - internals are freed when its call returns. + (`StableDiffusionResnetBlock2D`, `StableDiffusionTransformer2DModel`, + `StableDiffusionCrossAttention`, ...). A functional graph keeps every node's output + alive until the forward ends, and at 512px the UNet's per-op intermediates (4096x4096 + attention maps above all) would need several GB; a layer's internals are freed when + its call returns. - **Schedulers match diffusers to the bit**: the training noise schedule is built in float32 the way torch does it, so `alphas_cumprod` and the Euler sigmas are identical and a 50-step run stays within float rounding of the reference. @@ -347,4 +348,4 @@ The five hosted checkpoints are the supported weights; any repo laid out like th loads with `from_weights("/")`. The `hf:` prefix raises for diffusion models: convert a diffusers-format checkpoint once with `zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py` -(`build_from_diffusers(repo)`, `pip install zeromodels[conversion]`) and host the result. +(`transfer_stable_diffusion(repo)`, `pip install zeromodels[conversion]`) and host the result. diff --git a/docs/stable_diffusion_2.md b/docs/stable_diffusion_2.md index d73e489b..f08fb024 100644 --- a/docs/stable_diffusion_2.md +++ b/docs/stable_diffusion_2.md @@ -110,7 +110,9 @@ The components are the SD 1.x classes, `UNet2DConditionModel` (built with `{"input_ids", "attention_mask"}`. ```python -StableDiffusion2Tokenizer(hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="!") +StableDiffusion2Tokenizer( + hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="!" +) ``` ## End-to-end example @@ -127,7 +129,9 @@ from zeromodels.models.stable_diffusion_2 import ( ) model = StableDiffusion2TextToImage.from_weights("zeromodels/stable-diffusion-2-1-base") -tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/stable-diffusion-2-1-base") +tokenizer = StableDiffusion2Tokenizer.from_weights( + "zeromodels/stable-diffusion-2-1-base" +) inputs = tokenizer( "a steaming bowl of ramen on a wooden table, food photography, shallow depth of field" @@ -147,7 +151,9 @@ The 768px checkpoints need no extra arguments; the v-prediction DDIM scheduler a ```python model = StableDiffusion2TextToImage.from_weights("zeromodels/stable-diffusion-2-1") tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/stable-diffusion-2-1") -images = model.generate(**tokenizer("a lighthouse on a cliff at dusk, oil painting")) # (1, 768, 768, 3) +images = model.generate( + **tokenizer("a lighthouse on a cliff at dusk, oil painting") +) # (1, 768, 768, 3) ``` ### SD-Turbo @@ -157,7 +163,11 @@ One step, no guidance (the repo's defaults; up to 4 steps sharpen a little): ```python model = StableDiffusion2TextToImage.from_weights("zeromodels/sd-turbo") tokenizer = StableDiffusion2Tokenizer.from_weights("zeromodels/sd-turbo") -images = model.generate(**tokenizer("a cinematic shot of a baby raccoon wearing an intricate italian priest robe")) +images = model.generate( + **tokenizer( + "a cinematic shot of a baby raccoon wearing an intricate italian priest robe" + ) +) ``` SD-Turbo, one step: a baby raccoon in an italian priest robe, 512px @@ -210,4 +220,4 @@ Any repo laid out like the hosted ones (`zm_config.json` declaring `from_weights("/")`. The `hf:` prefix raises for diffusion models: convert a diffusers-format SD 2 checkpoint once with `zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py` -(`build_from_diffusers(repo)`, `pip install zeromodels[conversion]`) and host the result. +(`transfer_stable_diffusion_2(repo)`, `pip install zeromodels[conversion]`) and host the result. diff --git a/docs/stable_diffusion_3.md b/docs/stable_diffusion_3.md new file mode 100644 index 00000000..bf699bbe --- /dev/null +++ b/docs/stable_diffusion_3.md @@ -0,0 +1,268 @@ +# Stable Diffusion 3 + +

    +Weights: pretrained Keras weights live on Hugging Face under +zeromodels/<variant> +(each repo carries zm_config.json + the float16 weights + +tokenizer.json / tokenizer_3.json). Load with +from_weights("zeromodels/<variant>"). +
    + +Stable Diffusion 3, ported to pure Keras 3: a rectified-flow model whose denoiser is the +**MMDiT**, a multimodal diffusion transformer in which the latent tokens and the text tokens +attend to each other jointly, conditioned on the timestep and the pooled text embeddings +through adaptive layer norms. It keeps the SD family's shape (one container per repo, +`generate` from `BaseDiffusion`, the schedulers, both data formats) with new parts: + +- **MMDiT** (`SD3Transformer2DModel`): the 16-channel latent is patchified (2x2) into 1536-d + tokens with a sinusoidal position table cropped from a 192x192 grid; 24 joint blocks of + 24 heads, each with AdaLN-Zero modulation of both streams, joint attention over the + concatenated latent + text tokens, and gated GELU feed-forwards; a final adaptive norm + and projection unpatchify the velocity. 2B parameters. +- **Three text encoders**: CLIP ViT-L/14 (768-d) and OpenCLIP ViT-bigG/14 (1280-d), each + with a projection, and **T5-XXL** (4.7B, 4096-d, 256 tokens). The two CLIP penultimate + states are concatenated (2048-d), zero-padded to 4096 and followed along the sequence by + the T5 states (77 + 256 tokens); the projected pooled CLIP states (2048-d) feed the + conditioning embedding. +- **T5 is optional and separate**: the container holds the MMDiT, the VAE and the two CLIP + towers (2.9B, 5.8 GB float16); the T5-XXL encoder is hosted once for every SD 3 / 3.5 + checkpoint (`zeromodels/t5-v1_1-xxl-encoder`, an + [`SD3T5EncoderModel`](#sd3t5encodermodel), 9.5 GB float16) and attached with + `text_encoder_3=`. Without it the T5 features are zeros, SD 3's documented + memory-saving mode (prompt adherence drops, the images stay good). +- **VAE**: 16 latent channels, no quant convolutions, `scaling_factor` 1.5305 and + `shift_factor` 0.0609 (`z = (x - shift) * scale`), built in float32 (`force_upcast`). +- **Sampler**: `FlowMatchEulerDiscreteScheduler` with `shift` 3.0 (rectified flow: the + timesteps are `sigma * 1000`, a step is `x + (sigma_next - sigma) * v`); 28 steps at + guidance 7.0 by default. No negative prompt means the encoded empty prompt. +- **One tokenizer call**: `StableDiffusion3Tokenizer` runs the CLIP BPE (the second + tower's `!`-padded ids are derived from the mask, as SDXL) and the T5 SentencePiece + tokenizer, returning `{"input_ids", "attention_mask", "input_ids_3"}`. +- **float16 weights**, the release precision; `from_weights` builds the model in float16 + by default (`load_dtype="float32"` for float32). + +The weights are converted once, offline, and hosted: on-the-fly `hf:` conversion is +deliberately **not supported** for diffusion models. The upstream repo is gated behind the +Stability AI Non-Commercial Research Community License. + +Links: + +- Paper: [Scaling Rectified Flow Transformers for High-Resolution Image Synthesis (arXiv:2403.03206)](https://arxiv.org/abs/2403.03206) +- Reference implementation: [diffusers `StableDiffusion3Pipeline`](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_3) +- License: [Stability AI Non-Commercial Research Community License](https://huggingface.co/stabilityai/stable-diffusion-3-medium-diffusers/blob/main/LICENSE.md) + +See also [stable_diffusion_3_5.md](stable_diffusion_3_5.md), [stable_diffusion_xl.md](stable_diffusion_xl.md), [clip.md](clip.md). + +## Variants + +| Variant | Hub | Resolution | Sampler | License | +|---|---|---|---|---| +| `stable-diffusion-3-medium` | [`zeromodels/stable-diffusion-3-medium`](https://huggingface.co/zeromodels/stable-diffusion-3-medium) | 1024 | flow-match Euler (shift 3), 28 steps, guidance 7.0 | Stability AI Non-Commercial Research Community | +| `t5-v1_1-xxl-encoder` | [`zeromodels/t5-v1_1-xxl-encoder`](https://huggingface.co/zeromodels/t5-v1_1-xxl-encoder) | text encoder (shared with SD 3.5) | | Apache 2.0 (Google T5 v1.1) | + +## API + +Configs are typed: `StableDiffusion3Config` (composite, `model_type` `"stable_diffusion_3"`) +over `StableDiffusion3TransformerConfig`, `StableDiffusion3VAEConfig`, +`StableDiffusion3TextConfig` (CLIP ViT-L/14 with its 768-d projection) and +`StableDiffusionXLTextConfig2` (OpenCLIP ViT-bigG/14 with its 1280-d projection), plus +the scheduler config, the CLIP and T5 token ids and `max_sequence_length` (256). Flat +constructor with `transformer_` / `vae_` / `text_` / `text_2_` prefixes. + +### `StableDiffusion3TextToImage` + +`StableDiffusionTextToImage`'s `generate` over the SD 3 graph: + +```python +generate( + input_ids, + attention_mask=None, + negative_input_ids=None, + num_inference_steps=None, + guidance_scale=None, + seed=None, + latents=None, + image=None, + strength=None, + denoising_start=None, + denoising_end=None, + output_type="image", + input_ids_3=None, + negative_input_ids_3=None, +) +``` + +| Argument | Description | +|---|---| +| `input_ids`, `attention_mask`, `input_ids_3` | `**tokenizer(prompts)`: the CLIP ids and mask (the second tower's ids are derived from the mask) and the T5 ids (`(batch, 256)`). Without `input_ids_3`, or without an attached T5, the T5 features are zeros. | +| `negative_input_ids`, `negative_input_ids_3` | The tokenized negative prompt (`neg = tokenizer("..."); negative_input_ids=neg["input_ids"], negative_input_ids_3=neg["input_ids_3"]`); the empty prompt when omitted. | +| `num_inference_steps`, `guidance_scale`, `seed`, `latents`, `image`, `strength`, ... | As for [`BaseDiffusion.generate`](main_classes.md#basediffusion); defaults from the repo's `generate_args` (28 steps, guidance 7.0). `latents` is `(batch, 128, 128, 16)` at 1024px. | + +Returns `(batch, H, W, 3)` uint8 images. + +`from_weights` takes one extra argument, `text_encoder_3`: a hosted `SD3T5EncoderModel` +repo id (loaded at the same `load_dtype`) or a built `SD3T5EncoderModel`; +`sd.text_encoder_3` can also be assigned later (or set to `None`). It lives outside the +container's weights. + +### `StableDiffusion3Model` + +The container: four disconnected paths in one functional model, `.transformer` / `.vae` / +`.text_encoder` / `.text_encoder_2`. + +| Inputs | Outputs | +|---|---| +| `sample` (B, 128, 128, 16), `timestep` (B,), `encoder_hidden_states` (B, 333, 4096), `pooled_projections` (B, 2048) | `noise_pred` (B, 128, 128, 16) | +| `image` (B, 1024, 1024, 3), `latent` (B, 128, 128, 16) | `moments` (B, 128, 128, 32), `image` (B, 1024, 1024, 3) | +| `token_ids` (B, 77), `token_ids_2` (B, 77), `padding_mask` (B, 77) | `prompt_embeds` (B, 77, 2048), `pooled_prompt_embeds` (B, 2048) | + +### `SD3Transformer2DModel` + +The MMDiT on its own (`{"sample", "timestep", "encoder_hidden_states", +"pooled_projections"} -> {"sample"}`), built from `StableDiffusion3TransformerConfig` +(`sample_size` 128, `patch_size` 2, `num_layers` 24, `num_attention_heads` 24 x +`attention_head_dim` 64, `joint_attention_dim` 4096, `caption_projection_dim` 1536, +`pooled_projection_dim` 2048, `pos_embed_max_size` 192, `qk_norm`, +`dual_attention_layers`). Its layers (`StableDiffusion3PatchEmbed`, +`StableDiffusion3AdaLayerNorm`, `StableDiffusion3JointAttention`, +`StableDiffusion3JointTransformerBlock`, `StableDiffusion3GELUFeedForward`) are named +with the diffusers module paths. + +The joint attention runs over 4429 tokens at 1024px, so `StableDiffusion3JointAttention` +defaults to the `"fused"` attention implementation (`keras.ops.dot_product_attention`, +the backend's own kernel: torch's flash / memory-efficient kernels never materialize the +4429 x 4429 logits; see [`fused_attention`](main_classes.md#fused_attention)) instead of +the library-wide `"sdpa"` math. `from_weights(..., attn_implementation="sdpa")` switches +it back. + +### `SD3T5EncoderModel` + +The third text encoder, the encoder half of T5 v1.1 XXL (transformers `T5EncoderModel` on +`google/t5-v1_1-xxl`), as its own model in this family: `{"input_ids", "attention_mask"}` +(`(batch, 256)` int32) `-> {"last_hidden_state": (batch, 256, 4096)}`, built from +`StableDiffusion3T5EncoderConfig` (`vocab_size` 32128, `embed_dim` 4096, `key_value_dim` +64, `mlp_dim` 10240, `num_layers` 24, `num_heads` 64, `relative_attention_num_buckets` 32, +`relative_attention_max_distance` 128, `layer_norm_eps` 1e-6; 4.7B parameters). The blocks +reuse the [T5](t5.md) family's attention, RMSNorm and relative position bias, and add the +gated-GELU feed-forward of T5 v1.1 (`wo(gelu_tanh(wi_0(x)) * wi_1(x))`, +`StableDiffusion3T5GatedFeedForward`), which the original T5 does not have. Loads on its own with +`SD3T5EncoderModel.from_weights("zeromodels/t5-v1_1-xxl-encoder")` (`load_dtype`, +`quantization="int8"` as needed); its inputs are the `input_ids_3` of the SD 3 tokenizer. + +## Preprocessing + +### `StableDiffusion3Tokenizer` + +```python +StableDiffusion3Tokenizer( + hf_id=None, + tokenizer_file=None, + tokenizer_file_3=None, + max_seq_len=77, + max_sequence_length=256, +) +``` + +Returns `{"input_ids", "attention_mask", "input_ids_3"}`; pass all three to `generate`. + +## End-to-end example + +```python +import os + +os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" + +from PIL import Image +from zeromodels.models.stable_diffusion_3 import ( + StableDiffusion3TextToImage, + StableDiffusion3Tokenizer, +) + +model = StableDiffusion3TextToImage.from_weights( + "zeromodels/stable-diffusion-3-medium", + text_encoder_3="zeromodels/t5-v1_1-xxl-encoder", # omit on small machines: T5 features zeroed +) +tokenizer = StableDiffusion3Tokenizer.from_weights( + "zeromodels/stable-diffusion-3-medium" +) + +inputs = tokenizer( + "a fluffy corgi wearing round sunglasses, sitting on a surfboard at a sunny beach, photo" +) +images = model.generate(**inputs, num_inference_steps=28, guidance_scale=7.0, seed=4) + +Image.fromarray(images[0]).save("corgi.png") # (1024, 1024, 3) uint8 +``` + +Stable Diffusion 3 medium: a corgi with sunglasses on a surfboard, 1024px + +### The T5 encoder on the CPU + +The 9.5 GB T5-XXL rarely fits next to the MMDiT on a consumer GPU. Encode the prompt +separately (an `SD3T5EncoderModel` in another process, or int8) and hand the ids to a +model without T5 for the CLIP part only, or attach it in full on a large machine. The +`encode_prompt` hook returns the conditioning dict the transformer takes, so any +precomputed T5 features can be substituted there. + +### Verified against diffusers + +The components of `stable-diffusion-3-medium` were checked one by one against diffusers +0.39 / transformers 5 in float32 on the same inputs (the converted float16 weights +computed in float32): + +``` +text_encoder penultimate max|d|=6.1e-05 (values up to 854) +text_encoder_2 penultimate max|d|=3.1e-05 +pooled (L + G, projected) max|d|=3.8e-06 +t5-v1_1-xxl encoder (256 tok) max|d|=1.1e-04 (values up to 6.3) +mmdit velocity (t=1000) max|d|=9.9e-06 +vae decode (512px) max|d|=6.3e-05 +vae encode max|d|=1.4e-05 +``` + +The pipeline (flow-match Euler with shift 3, classifier-free guidance with the encoded +empty prompt, the three tokenizers, batched negative prompts, the no-T5 mode) was checked +against `StableDiffusion3Pipeline` on a small random-weight SD 3, where the generated images +are pixel-identical on torch and jax. End to end, `stable-diffusion-3-medium` without the +T5 encoder (28 steps, guidance 7, the same initial latent) reproduces the diffusers +pipeline in float32 at 512px: 92.8% identical pixels, max |d| 2 / 255, PSNR 63.9 dB (the +final latent differs by at most 2.5e-2 with values up to 5.1). In float16 on the GPU the +two implementations round differently through the 28 guided steps: the pictures agree in +composition but not pixel for pixel (PSNR 26 dB at 1024px, 29 dB at 768px, float16 MMDiT +on both sides), the usual float16 sampling noise. + +## Data Format + +Both `channels_last` and `channels_first` are supported; `generate` always returns +`(batch, H, W, 3)` uint8. + +## Memory and speed + +The container is 5.8 GB in float16 (the T5 encoder adds 9.5 GB). Measured on the torch +backend with the default float16 load (RTX 4060 Laptop, 8 GB), T5 features precomputed: + +| Resolution | Denoising step (guided, batch 1) | VAE decode (float32) | +|---|---|---| +| 512px | peak 6.1 GB, 0.5 s/step | peak 7.6 GB, 4 s | +| 768px | peak 6.4 GB, 0.8 s/step | peak 9.5 GB | +| 1024px | peak 6.9 GB, 1.0 s/step | peak 12.4 GB | + +The MMDiT itself fits an 8 GB GPU at the native 1024px thanks to the fused attention +kernel (the `"sdpa"` math needs 3.8 GB per block for the 4429 x 4429 float32 logits and +runs out of memory). The VAE decoder is the SDXL one (16 latent channels aside) and Keras' +functional executor keeps its feature maps alive, see the +[SDXL notes](stable_diffusion_xl.md#memory-and-speed): on 8 GB, denoise on the GPU +(`output_type="latent"`) and decode on the CPU (75 to 90 s at 1024px). The T5-XXL encoder +encodes a prompt and its negative on the CPU in about 10 to 25 s (float32 compute over +the float16 weights); a 24 GB GPU holds everything. On JAX and TensorFlow the denoiser +step is compiled once per run. + +## Loading Fine-tuned Weights + +Any repo laid out like the hosted ones (`zm_config.json` declaring +`StableDiffusion3Model`, the weights, the two tokenizer files) loads with +`from_weights("/")`. The `hf:` prefix raises for diffusion models: convert a +diffusers-format SD 3 checkpoint once with +`zeromodels/models/stable_diffusion_3/convert_stable_diffusion_3_diffusers_to_keras.py` +(`transfer_stable_diffusion_3(repo)`; `transfer_t5_encoder(repo)` for the T5 tower) and host the +result. diff --git a/docs/stable_diffusion_3_5.md b/docs/stable_diffusion_3_5.md new file mode 100644 index 00000000..5a2e843e --- /dev/null +++ b/docs/stable_diffusion_3_5.md @@ -0,0 +1,128 @@ +# Stable Diffusion 3.5 + +
    +Weights: pretrained Keras weights live on Hugging Face under +zeromodels/<variant> +(each repo carries zm_config.json + the float16 weights + +tokenizer.json / tokenizer_3.json). Load with +from_weights("zeromodels/<variant>"). +
    + +Stable Diffusion 3.5, ported to pure Keras 3: the [Stable Diffusion 3](stable_diffusion_3.md) +architecture, retrained and scaled. It reuses the SD 3 family end to end +(`StableDiffusion3_5Model` is `StableDiffusion3Model`, `StableDiffusion3_5TextToImage` is +`StableDiffusion3TextToImage`, each with the SD 3.5 configuration), so everything on that +page applies: the MMDiT, the three text encoders with the separately hosted T5-XXL, the +16-channel VAE, the flow-match sampler, one tokenizer call. What changes is the config: + +- **QK normalization**: every attention block RMS-normalizes its queries and keys per head + (`qk_norm="rms_norm"`), the training stabilizer of SD 3.5. +- **Large** (8B): 38 blocks of 38 heads (2432-d tokens), 28 steps at guidance 3.5. +- **Large Turbo**: the large model distilled with Adversarial Diffusion Distillation to 4 + steps without guidance (`guidance_scale=0.0`). +- **Medium** (2.5B, MMDiT-X): 24 blocks of 24 heads with **dual attention** in blocks 0 to + 12 (a second, latent-only attention with its own modulation next to the joint one) and a + 384x384 position grid (up to 2 MP); 40 steps at guidance 4.5. + +The weights are converted once, offline, and hosted: on-the-fly `hf:` conversion is +deliberately **not supported** for diffusion models. The upstream repos are gated behind +the Stability AI Community License. + +Links: + +- Paper: [Scaling Rectified Flow Transformers for High-Resolution Image Synthesis (arXiv:2403.03206)](https://arxiv.org/abs/2403.03206) +- Reference implementation: [diffusers `StableDiffusion3Pipeline`](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_3) +- License: [Stability AI Community License](https://huggingface.co/stabilityai/stable-diffusion-3.5-large/blob/main/LICENSE.md) + +See also [stable_diffusion_3.md](stable_diffusion_3.md). + +## Variants + +Each repo is one container: MMDiT + VAE (84M) + CLIP ViT-L/14 (123M) + OpenCLIP +ViT-bigG/14 (695M); the T5-XXL encoder (`zeromodels/t5-v1_1-xxl-encoder`, the SD 3 +family's `SD3T5EncoderModel`, 9.5 GB) is shared and optional. + +| Variant | Hub | MMDiT | Sampler | Size | +|---|---|---|---|---| +| `stable-diffusion-3.5-large` | [`zeromodels/stable-diffusion-3.5-large`](https://huggingface.co/zeromodels/stable-diffusion-3.5-large) | 38 x 38 heads, 8B | flow-match Euler (shift 3), 28 steps, guidance 3.5 | 17.8 GB float16 | +| `stable-diffusion-3.5-large-turbo` | [`zeromodels/stable-diffusion-3.5-large-turbo`](https://huggingface.co/zeromodels/stable-diffusion-3.5-large-turbo) | 38 x 38 heads, 8B | 4 steps, no guidance | 17.8 GB float16 | +| `stable-diffusion-3.5-medium` | [`zeromodels/stable-diffusion-3.5-medium`](https://huggingface.co/zeromodels/stable-diffusion-3.5-medium) | 24 x 24 heads + dual attention, 2.5B | flow-match Euler (shift 3), 40 steps, guidance 4.5 | 6.8 GB float16 | + +## API + +`StableDiffusion3_5Config` (`model_type` `"stable_diffusion_3_5"`) is +`StableDiffusion3Config` over `StableDiffusion3_5TransformerConfig` (the SD 3.5 large +defaults: `num_layers` 38, `num_attention_heads` 38, `caption_projection_dim` 2432, +`qk_norm="rms_norm"`; medium's repo carries `dual_attention_layers=(0, ..., 12)` and +`pos_embed_max_size=384`). `StableDiffusion3_5TextToImage.generate` and +`StableDiffusion3_5Tokenizer` are the SD 3 ones; see +[Stable Diffusion 3](stable_diffusion_3.md#api). + +## End-to-end example + +```python +import os + +os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" + +from PIL import Image +from zeromodels.models.stable_diffusion_3_5 import ( + StableDiffusion3_5TextToImage, + StableDiffusion3_5Tokenizer, +) + +model = StableDiffusion3_5TextToImage.from_weights( + "zeromodels/stable-diffusion-3.5-medium", + text_encoder_3="zeromodels/t5-v1_1-xxl-encoder", # optional +) +tokenizer = StableDiffusion3_5Tokenizer.from_weights( + "zeromodels/stable-diffusion-3.5-medium" +) + +inputs = tokenizer( + "a whimsical treehouse village at twilight, lanterns glowing, watercolor illustration" +) +images = model.generate(**inputs, num_inference_steps=40, guidance_scale=4.5, seed=5) + +Image.fromarray(images[0]).save("treehouse.png") # (1024, 1024, 3) uint8 +``` + +Stable Diffusion 3.5 medium: a treehouse village at twilight, 1024px + +### Large Turbo + +```python +model = StableDiffusion3_5TextToImage.from_weights( + "zeromodels/stable-diffusion-3.5-large-turbo" +) +images = model.generate( + **tokenizer("a red panda reading a book") +) # 4 steps, guidance 0 (the repo defaults) +``` + +### Verified against diffusers + +The components of `stable-diffusion-3.5-medium` (the MMDiT-X with dual attention and RMS +qk norms) were checked against diffusers 0.39 in float32 on the same inputs (the converted +float16 weights computed in float32): MMDiT velocity max|d| 1.6e-5 (values up to 5.2), the +text encoders and the VAE as for [SD 3](stable_diffusion_3.md#verified-against-diffusers). +The SD 3.5 block variants (dual attention, `qk_norm`) are also covered by the small +random-weight pipeline test, pixel-identical to `StableDiffusion3Pipeline` on torch and +jax, and by the SD 3 float32 end-to-end check (92.8% identical pixels, PSNR 63.9 dB at +512px), which the two families share down to the sampler. The picture above is the +1024px float16 output of `stable-diffusion-3.5-medium` with the T5 encoder. + +## Memory and speed + +The medium container is 6.8 GB in float16, the large ones 17.8 GB (a 24 GB GPU); the +T5-XXL encoder adds 9.5 GB. See [Stable Diffusion 3](stable_diffusion_3.md#memory-and-speed): +the medium MMDiT-X at 1024px peaks at 7.5 GB during the guided denoising step on the torch +backend (fused attention, float16), which an 8 GB GPU runs with the VAE decode on the CPU. + +## Loading Fine-tuned Weights + +Any repo laid out like the hosted ones (`zm_config.json` declaring +`StableDiffusion3_5Model`, the weights, the two tokenizer files) loads with +`from_weights("/")`. Convert a diffusers-format checkpoint once with +`zeromodels/models/stable_diffusion_3_5/convert_stable_diffusion_3_5_diffusers_to_keras.py` +and host the result. diff --git a/docs/stable_diffusion_xl.md b/docs/stable_diffusion_xl.md index c4952af7..91122a42 100644 --- a/docs/stable_diffusion_xl.md +++ b/docs/stable_diffusion_xl.md @@ -156,14 +156,24 @@ The refiner task: the same class over the refiner container (`text_encoder_2` al refiner was not trained for. The two intended uses: ```python -base = StableDiffusionXLTextToImage.from_weights("zeromodels/stable-diffusion-xl-base-1.0") -refiner = StableDiffusionXLRefinerImageToImage.from_weights("zeromodels/stable-diffusion-xl-refiner-1.0") -tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/stable-diffusion-xl-base-1.0") +base = StableDiffusionXLTextToImage.from_weights( + "zeromodels/stable-diffusion-xl-base-1.0" +) +refiner = StableDiffusionXLRefinerImageToImage.from_weights( + "zeromodels/stable-diffusion-xl-refiner-1.0" +) +tokenizer = StableDiffusionXLTokenizer.from_weights( + "zeromodels/stable-diffusion-xl-base-1.0" +) inputs = tokenizer("a lighthouse on a rocky coast at dawn, dramatic clouds, cinematic") # ensemble of experts: the base denoises 80% of the schedule, the refiner the rest -latent = base.generate(**inputs, num_inference_steps=50, denoising_end=0.8, output_type="latent") -images = refiner.generate(**inputs, latents=latent, num_inference_steps=50, denoising_start=0.8) +latent = base.generate( + **inputs, num_inference_steps=50, denoising_end=0.8, output_type="latent" +) +images = refiner.generate( + **inputs, latents=latent, num_inference_steps=50, denoising_start=0.8 +) # image-to-image: refine any image (uint8 or [0, 1] float, (batch, H, W, 3)) images = refiner.generate(**inputs, image=images, strength=0.3, seed=0) @@ -197,7 +207,9 @@ container without the first tower (`token_ids_2` + `padding_mask` in, `prompt_em to `generate`. ```python -StableDiffusionXLTokenizer(hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="<|endoftext|>") +StableDiffusionXLTokenizer( + hf_id=None, tokenizer_file=None, max_seq_len=77, pad_token="<|endoftext|>" +) ``` A literal `!` in a prompt is encoded as OpenCLIP encodes it (the BPE token `!`, id @@ -217,8 +229,12 @@ from zeromodels.models.stable_diffusion_xl import ( StableDiffusionXLTokenizer, ) -model = StableDiffusionXLTextToImage.from_weights("zeromodels/stable-diffusion-xl-base-1.0") -tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/stable-diffusion-xl-base-1.0") +model = StableDiffusionXLTextToImage.from_weights( + "zeromodels/stable-diffusion-xl-base-1.0" +) +tokenizer = StableDiffusionXLTokenizer.from_weights( + "zeromodels/stable-diffusion-xl-base-1.0" +) inputs = tokenizer( "a lighthouse on a rocky coast at dawn, dramatic clouds, cinematic, highly detailed" @@ -236,9 +252,15 @@ The SDXL "ensemble of experts": the base runs the first 80% of the schedule and latent to the refiner, which finishes it. Same prompt and initial latent as above: ```python -refiner = StableDiffusionXLRefinerImageToImage.from_weights("zeromodels/stable-diffusion-xl-refiner-1.0") -latent = model.generate(**inputs, num_inference_steps=30, denoising_end=0.8, output_type="latent", seed=3) -images = refiner.generate(**inputs, latents=latent, num_inference_steps=30, denoising_start=0.8) +refiner = StableDiffusionXLRefinerImageToImage.from_weights( + "zeromodels/stable-diffusion-xl-refiner-1.0" +) +latent = model.generate( + **inputs, num_inference_steps=30, denoising_end=0.8, output_type="latent", seed=3 +) +images = refiner.generate( + **inputs, latents=latent, num_inference_steps=30, denoising_start=0.8 +) ``` Stable Diffusion XL base + refiner: the lighthouse, refined @@ -250,7 +272,11 @@ One step, no guidance, 512px (the repo's defaults): ```python model = StableDiffusionXLTextToImage.from_weights("zeromodels/sdxl-turbo") tokenizer = StableDiffusionXLTokenizer.from_weights("zeromodels/sdxl-turbo") -images = model.generate(**tokenizer("a cinematic shot of a baby raccoon wearing an intricate italian priest robe")) +images = model.generate( + **tokenizer( + "a cinematic shot of a baby raccoon wearing an intricate italian priest robe" + ) +) ``` SDXL-Turbo, one step: a baby raccoon in an italian priest robe, 512px @@ -277,7 +303,9 @@ The graphs are built for the repo's resolution; pass overrides to build for anot ```python model = StableDiffusionXLTextToImage.from_weights( - "zeromodels/stable-diffusion-xl-base-1.0", unet_sample_size=(96, 128), vae_sample_size=(768, 1024) + "zeromodels/stable-diffusion-xl-base-1.0", + unet_sample_size=(96, 128), + vae_sample_size=(768, 1024), ) images = model.generate(**tokenizer("a wide mountain valley")) # (1, 768, 1024, 3) ``` @@ -341,8 +369,12 @@ returns, so the decoder's feature maps at 1024px add several GB on top of the we 16 GB GPU runs 1024px comfortably, a 12 GB GPU 768px; on 8 GB, generate at 512px, or denoise on the GPU (`output_type="latent"`) and decode the latent on the CPU (about 100 s at 1024px) with a second, CPU-only process. In float32 the weights alone take 13.9 GB. -On JAX and TensorFlow the denoiser step is compiled once per run (see -[`BaseDiffusion`](main_classes.md#basediffusion)). +The UNet's attention runs the portable `"sdpa"` math by default, which materializes the +4096 x 4096 float32 logits of the 64 x 64 level at 1024px; loading with +`attn_implementation="fused"` (the backend's fused kernel, see +[`fused_attention`](main_classes.md#fused_attention)) cuts the 1024px step from a 10.3 GB +peak to 7.6 GB on the same GPU. On JAX and TensorFlow the denoiser step is compiled once +per run (see [`BaseDiffusion`](main_classes.md#basediffusion)). ## Loading Fine-tuned Weights @@ -351,4 +383,4 @@ Any repo laid out like the hosted ones (`zm_config.json` declaring `from_weights("/")`. The `hf:` prefix raises for diffusion models: convert a diffusers-format SDXL checkpoint once with `zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py` -(`build_from_diffusers(repo)`, `pip install zeromodels[conversion]`) and host the result. +(`transfer_stable_diffusion_xl(repo)`, `pip install zeromodels[conversion]`) and host the result. diff --git a/tests/base/model_test_registry.py b/tests/base/model_test_registry.py index 39383b8f..c59c7421 100644 --- a/tests/base/model_test_registry.py +++ b/tests/base/model_test_registry.py @@ -4497,6 +4497,106 @@ "expected_output_shape": dict(_sdxl_refiner_outputs), } +# Stable Diffusion 3: the MMDiT (joint text/latent transformer with AdaLN-Zero +# modulation), the 16-channel VAE without quant convs, two CLIP towers with +# projections; the T5 tower is external. SD 3.5 adds RMS qk norms and (medium) the +# dual-attention blocks. +_sd3_tiny = { + "transformer_sample_size": 8, + "transformer_patch_size": 2, + "transformer_in_channels": 4, + "transformer_out_channels": 4, + "transformer_num_layers": 2, + "transformer_attention_head_dim": 8, + "transformer_num_attention_heads": 2, + "transformer_joint_attention_dim": 24, + "transformer_caption_projection_dim": 16, + "transformer_pooled_projection_dim": 24, + "transformer_pos_embed_max_size": 12, + "transformer_text_seq_len": 16 + 8, + "vae_sample_size": 16, + "vae_block_out_channels": (16, 32), + "vae_layers_per_block": 1, + "vae_norm_num_groups": 8, + "vae_latent_channels": 4, + "text_hidden_dim": 16, + "text_num_heads": 2, + "text_num_layers": 2, + "text_projection_dim": 16, + "max_seq_len": 16, + "vocab_size": 128, + "text_2_hidden_dim": 8, + "text_2_num_heads": 2, + "text_2_num_layers": 2, + "text_2_projection_dim": 8, + "text_2_max_seq_len": 16, + "text_2_vocab_size": 128, + "max_sequence_length": 8, +} +_sd3_outputs = { + "noise_pred": (2, 8, 8, 4), + "moments": (2, 8, 8, 8), + "image": (2, 16, 16, 3), + "prompt_embeds": (2, 16, 24), + "pooled_prompt_embeds": (2, 24), +} +MODEL_TEST_CONFIGS["StableDiffusion3Model"] = { + "module": "zeromodels.models.stable_diffusion_3", + "model_cls": "StableDiffusion3Model", + "model_type": "diffusion", + "init_kwargs": dict(_sd3_tiny), + "input_factory": "stable_diffusion_3_input", + "expected_output_shape": dict(_sd3_outputs), +} +MODEL_TEST_CONFIGS["StableDiffusion3TextToImage"] = { + "module": "zeromodels.models.stable_diffusion_3", + "model_cls": "StableDiffusion3TextToImage", + "model_type": "diffusion", + "init_kwargs": dict(_sd3_tiny), + "input_factory": "stable_diffusion_3_input", + "expected_output_shape": dict(_sd3_outputs), +} +# the separately hosted third text encoder (T5 v1.1 XXL layout: gated-GELU blocks) +MODEL_TEST_CONFIGS["SD3T5EncoderModel"] = { + "module": "zeromodels.models.stable_diffusion_3", + "model_cls": "SD3T5EncoderModel", + "model_type": "llm", + "init_kwargs": { + "vocab_size": 128, + "embed_dim": 32, + "key_value_dim": 8, + "mlp_dim": 64, + "num_layers": 2, + "num_heads": 4, + "relative_attention_num_buckets": 8, + "relative_attention_max_distance": 16, + }, + "input_factory": "t5_encoder_input", + "input_factory_kwargs": {"seq_len": 16}, + "expected_output_shape": {"last_hidden_state": (2, 16, 32)}, +} +_sd3_5_tiny = dict( + _sd3_tiny, + transformer_qk_norm="rms_norm", + transformer_dual_attention_layers=(0,), +) +MODEL_TEST_CONFIGS["StableDiffusion3_5Model"] = { + "module": "zeromodels.models.stable_diffusion_3_5", + "model_cls": "StableDiffusion3_5Model", + "model_type": "diffusion", + "init_kwargs": dict(_sd3_5_tiny), + "input_factory": "stable_diffusion_3_input", + "expected_output_shape": dict(_sd3_outputs), +} +MODEL_TEST_CONFIGS["StableDiffusion3_5TextToImage"] = { + "module": "zeromodels.models.stable_diffusion_3_5", + "model_cls": "StableDiffusion3_5TextToImage", + "model_type": "diffusion", + "init_kwargs": dict(_sd3_5_tiny), + "input_factory": "stable_diffusion_3_input", + "expected_output_shape": dict(_sd3_outputs), +} + def get_all_model_ids(): return list(MODEL_TEST_CONFIGS.keys()) diff --git a/tests/fixtures/cross_backend_parity.json b/tests/fixtures/cross_backend_parity.json index 71bd021e..70e27c96 100644 --- a/tests/fixtures/cross_backend_parity.json +++ b/tests/fixtures/cross_backend_parity.json @@ -21755,6 +21755,81 @@ ] } ], + "SD3T5EncoderModel": [ + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + 0.00707, + 0.006957, + 0.009331, + 0.004635, + -0.015012, + -0.007533, + -0.008983, + 0.000647, + 0.005648, + -0.0074, + 0.003372, + -0.011393, + 0.001414, + 0.027524, + -0.005903, + -0.011301, + 0.012131, + 0.013565, + 0.020675, + 0.002784, + 0.028628, + -0.004386, + 0.000328, + -0.004168, + 0.012268, + -0.01554, + -2.8e-05, + -0.012873, + 2.4e-05, + 0.054132, + -0.010922, + 0.005437, + 0.015127, + -0.027579, + -0.002549, + 0.003275, + 0.001096, + 0.010374, + -0.008043, + -0.030602, + 0.000448, + -0.032054, + 0.014059, + -0.003486, + -0.030945, + -0.000766, + -0.015376, + -0.001499, + -0.00409, + 0.001824, + 0.002497, + 0.015728, + 0.018065, + -0.01547, + -0.037632, + -0.002506, + -0.001476, + -0.004758, + 0.0006, + -0.01241, + 0.000607, + -0.003328, + 5.1e-05, + -0.014076 + ] + } + ], "SENetImageClassify": [ { "shape": [ @@ -22605,6 +22680,3954 @@ ] } ], + "StableDiffusion2Model": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015141, + 0.014566, + 0.01507, + -0.013042, + -0.014793, + -0.013933, + 0.01303, + 0.014152, + 0.013037, + 0.014178, + 0.014338, + -0.013882, + -0.013874, + -0.013862, + 0.01476, + 0.014129, + 0.014743, + 0.014246, + 0.014257, + 0.014225, + -0.014007, + -0.013831, + 0.014013, + 0.014092, + 0.014013, + 0.014246, + 0.014301, + 0.014293, + -0.013722, + -0.013693, + -0.013301, + 0.014484, + 0.010029, + 0.014481, + 0.015246, + 0.015245, + -0.013927, + -0.013932, + -0.01385, + 0.014118, + 0.014105, + 0.014152, + 0.014243, + 0.01403, + -0.013841, + -0.013774, + -0.013812, + 0.014105, + 0.014097, + 0.014094, + 0.014242, + 0.014448, + 0.014266, + -0.014007, + -0.013837, + 0.014, + 0.014121, + 0.014003, + 0.014259, + 0.011565, + 0.014413, + -0.011314, + -0.01329, + 0.013126 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051589, + 0.051341, + 0.051341, + 0.05132, + 0.051681, + -0.006162, + -0.006151, + -0.006155, + -0.006046, + 0.006829, + 0.006821, + 0.006841, + 0.006748, + 0.010876, + 0.010889, + 0.010892, + 0.010883, + -0.021278, + -0.02128, + -0.021273, + -0.021104, + -0.005376, + -0.005379, + -0.005368, + -0.005528, + -0.005407, + -0.000975, + -0.000971, + -0.00076, + -0.000734, + -0.043369, + -0.043349, + -0.043402, + -0.043551, + 0.051337, + 0.051297, + 0.05151, + 0.051494, + -0.006147, + -0.006312, + -0.006151, + -0.006165, + 0.006816, + 0.006766, + 0.006782, + 0.006824, + 0.006837, + 0.010968, + 0.010946, + 0.0109, + 0.010906, + -0.021234, + -0.021271, + -0.021282, + -0.021255, + -0.005589, + -0.005439, + -0.005423, + -0.005422, + -0.000794, + -0.00072, + -0.000731, + -0.000732, + -0.043442 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.006219, + 0.002704, + 0.003533, + 0.003418, + 0.008001, + 0.005587, + 0.005602, + 0.005686, + 0.008691, + 0.002119, + -0.000714, + 0.001933, + -0.002422, + 0.002237, + 0.001836, + 0.002578, + -0.001956, + 0.00071, + -0.003084, + -0.002698, + -0.005522, + -0.001268, + -0.001686, + -1.2e-05, + -0.004803, + 0.000822, + 0.000538, + 0.013731, + 0.01433, + 0.014584, + 0.015002, + 0.015691, + 0.013323, + 0.015859, + 0.016175, + 0.015331, + 0.004414, + 0.004255, + 0.006079, + 0.002555, + 0.005861, + 0.004837, + 0.005748, + 0.002341, + 0.005368, + -9.1e-05, + 0.001814, + 0.003786, + 0.001644, + 0.001444, + 0.00205, + 0.00168, + 8.1e-05, + 0.000167, + -0.001057, + -0.002688, + -0.000987, + -0.000541, + -0.000336, + -0.002546, + -0.005307, + -0.003004, + -0.006414, + 0.018894 + ] + }, + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + -0.012036, + 0.027224, + -0.017103, + 0.027472, + -0.020236, + 0.000332, + -0.016442, + 0.015828, + -0.018295, + 0.014603, + -0.005828, + 0.016616, + -0.00709, + -0.005843, + 0.009211, + 0.000567, + 0.049181, + -0.012505, + 0.000328, + -0.009735, + -0.003474, + -0.007774, + -0.024105, + -0.00845, + -0.020531, + -0.008289, + -0.052391, + 0.003785, + -0.052397, + 0.003749, + -0.019434, + 0.013164, + -0.022706, + 0.014415, + 0.028551, + -0.025012, + 0.017438, + -0.033488, + 0.051644, + -0.027285, + 0.047169, + -0.013412, + 0.049211, + 0.009689, + 0.039967, + 0.02768, + 0.015537, + -0.001814, + -0.01621, + -0.001629, + -0.021368, + 0.015966, + -0.035636, + 0.013777, + -0.038478, + 0.024581, + 0.014664, + 0.015239, + 0.014259, + -0.002774, + 0.006665, + -0.001414, + -0.025644, + 0.009934 + ] + } + ], + "StableDiffusion2TextToImage": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015141, + 0.014566, + 0.01507, + -0.013042, + -0.014793, + -0.013933, + 0.01303, + 0.014152, + 0.013037, + 0.014178, + 0.014338, + -0.013882, + -0.013874, + -0.013862, + 0.01476, + 0.014129, + 0.014743, + 0.014246, + 0.014257, + 0.014225, + -0.014007, + -0.013831, + 0.014013, + 0.014092, + 0.014013, + 0.014246, + 0.014301, + 0.014293, + -0.013722, + -0.013693, + -0.013301, + 0.014484, + 0.010029, + 0.014481, + 0.015246, + 0.015245, + -0.013927, + -0.013932, + -0.01385, + 0.014118, + 0.014105, + 0.014152, + 0.014243, + 0.01403, + -0.013841, + -0.013774, + -0.013812, + 0.014105, + 0.014097, + 0.014094, + 0.014242, + 0.014448, + 0.014266, + -0.014007, + -0.013837, + 0.014, + 0.014121, + 0.014003, + 0.014259, + 0.011565, + 0.014413, + -0.011314, + -0.01329, + 0.013126 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051589, + 0.051341, + 0.051341, + 0.05132, + 0.051681, + -0.006162, + -0.006151, + -0.006155, + -0.006046, + 0.006829, + 0.006821, + 0.006841, + 0.006748, + 0.010876, + 0.010889, + 0.010892, + 0.010883, + -0.021278, + -0.02128, + -0.021273, + -0.021104, + -0.005376, + -0.005379, + -0.005368, + -0.005528, + -0.005407, + -0.000975, + -0.000971, + -0.00076, + -0.000734, + -0.043369, + -0.043349, + -0.043402, + -0.043551, + 0.051337, + 0.051297, + 0.05151, + 0.051494, + -0.006147, + -0.006312, + -0.006151, + -0.006165, + 0.006816, + 0.006766, + 0.006782, + 0.006824, + 0.006837, + 0.010968, + 0.010946, + 0.0109, + 0.010906, + -0.021234, + -0.021271, + -0.021282, + -0.021255, + -0.005589, + -0.005439, + -0.005423, + -0.005422, + -0.000794, + -0.00072, + -0.000731, + -0.000732, + -0.043442 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.006219, + 0.002704, + 0.003533, + 0.003418, + 0.008001, + 0.005587, + 0.005602, + 0.005686, + 0.008691, + 0.002119, + -0.000714, + 0.001933, + -0.002422, + 0.002237, + 0.001836, + 0.002578, + -0.001956, + 0.00071, + -0.003084, + -0.002698, + -0.005522, + -0.001268, + -0.001686, + -1.2e-05, + -0.004803, + 0.000822, + 0.000538, + 0.013731, + 0.01433, + 0.014584, + 0.015002, + 0.015691, + 0.013323, + 0.015859, + 0.016175, + 0.015331, + 0.004414, + 0.004255, + 0.006079, + 0.002555, + 0.005861, + 0.004837, + 0.005748, + 0.002341, + 0.005368, + -9.1e-05, + 0.001814, + 0.003786, + 0.001644, + 0.001444, + 0.00205, + 0.00168, + 8.1e-05, + 0.000167, + -0.001057, + -0.002688, + -0.000987, + -0.000541, + -0.000336, + -0.002546, + -0.005307, + -0.003004, + -0.006414, + 0.018894 + ] + }, + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + -0.012036, + 0.027224, + -0.017103, + 0.027472, + -0.020236, + 0.000332, + -0.016442, + 0.015828, + -0.018295, + 0.014603, + -0.005828, + 0.016616, + -0.00709, + -0.005843, + 0.009211, + 0.000567, + 0.049181, + -0.012505, + 0.000328, + -0.009735, + -0.003474, + -0.007774, + -0.024105, + -0.00845, + -0.020531, + -0.008289, + -0.052391, + 0.003785, + -0.052397, + 0.003749, + -0.019434, + 0.013164, + -0.022706, + 0.014415, + 0.028551, + -0.025012, + 0.017438, + -0.033488, + 0.051644, + -0.027285, + 0.047169, + -0.013412, + 0.049211, + 0.009689, + 0.039967, + 0.02768, + 0.015537, + -0.001814, + -0.01621, + -0.001629, + -0.021368, + 0.015966, + -0.035636, + 0.013777, + -0.038478, + 0.024581, + 0.014664, + 0.015239, + 0.014259, + -0.002774, + 0.006665, + -0.001414, + -0.025644, + 0.009934 + ] + } + ], + "StableDiffusion3Model": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.014955, + 0.014535, + 0.015039, + -0.01294, + -0.015078, + -0.01354, + 0.012603, + 0.014234, + 0.013028, + 0.014104, + 0.014657, + -0.013961, + -0.01397, + -0.013705, + 0.014085, + 0.014107, + 0.01454, + 0.014684, + 0.014214, + 0.01473, + -0.014538, + -0.013919, + 0.013891, + 0.013894, + 0.013345, + 0.014624, + 0.015308, + 0.015109, + -0.013916, + -0.013549, + -0.013454, + 0.015281, + 0.010778, + 0.014866, + 0.015276, + 0.014992, + -0.014008, + -0.013972, + -0.013274, + 0.014006, + 0.014443, + 0.014339, + 0.013793, + 0.014472, + -0.013407, + -0.013649, + -0.013639, + 0.014388, + 0.014662, + 0.014543, + 0.015311, + 0.014633, + 0.013674, + -0.01387, + -0.01422, + 0.013761, + 0.014448, + 0.013939, + 0.01379, + 0.011211, + 0.013861, + -0.010878, + -0.012983, + 0.013007 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.017274, + 0.019562, + 0.019478, + 0.019517, + 0.016443, + 0.035483, + 0.035683, + 0.035216, + 0.030619, + -0.011854, + -0.012384, + -0.011986, + -0.008521, + 0.008372, + 0.008306, + 0.008393, + 0.006177, + 0.009252, + 0.009079, + 0.008854, + 0.009121, + -0.050123, + -0.050035, + -0.050299, + -0.042257, + -0.050059, + 0.019482, + 0.019644, + 0.015013, + 0.013524, + 0.016211, + 0.016645, + 0.0115, + 0.018172, + 0.019602, + 0.017579, + 0.015945, + 0.01631, + 0.035517, + 0.037192, + 0.036485, + 0.035644, + -0.012204, + -0.015612, + -0.012235, + -0.012165, + -0.012408, + 0.012303, + 0.009171, + 0.008228, + 0.008402, + 0.00942, + 0.008764, + 0.00924, + 0.009194, + -0.047951, + -0.049781, + -0.049926, + -0.050071, + 0.018187, + 0.013454, + 0.013745, + 0.013502, + 0.018325 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.012091, + 0.097546, + 0.1286, + 0.065201, + -0.030095, + 0.150227, + 0.080477, + -0.046941, + 0.100516, + -0.039675, + -0.109624, + -0.035173, + -0.018982, + 0.017097, + 0.0496, + -0.016586, + -0.028893, + -0.045285, + 0.017648, + -0.007875, + -0.051069, + 0.043383, + 0.113692, + -0.142047, + -0.113984, + -0.090202, + -0.088588, + 0.136368, + 0.105976, + 0.16715, + 0.126743, + 0.109739, + -0.003245, + 0.006413, + 0.211325, + 0.010501, + 0.100809, + -0.026821, + -0.011584, + -0.063026, + 0.151531, + 0.07651, + 0.149342, + 0.198445, + -0.054413, + 0.071169, + 0.004813, + -0.014978, + 0.154012, + 0.049127, + -0.056784, + 0.082541, + 0.070801, + 0.150369, + 0.045853, + -0.040565, + 0.095416, + -0.002005, + 0.055735, + 0.052691, + -0.016378, + 0.060451, + 0.060556, + 0.000441 + ] + }, + { + "shape": [ + 2, + 24 + ], + "sample": [ + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829, + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829 + ] + }, + { + "shape": [ + 2, + 16, + 24 + ], + "sample": [ + 0.01991, + 0.004829, + 0.01725, + 0.038287, + -0.006734, + 0.004269, + 0.045626, + 0.02678, + 0.05008, + 0.019808, + 0.082032, + 0.008582, + 0.014972, + 0.010277, + 0.034913, + 0.022746, + 0.015038, + 0.01132, + -0.021046, + -0.056212, + -0.001057, + -0.067862, + -0.024714, + -0.057371, + -0.035649, + -0.058719, + -0.052335, + -0.043667, + -0.032667, + -0.017269, + 0.023394, + -0.025872, + 0.037565, + -0.039031, + 0.032609, + -0.011299, + 0.029473, + 0.035091, + 0.006203, + 0.019498, + 0.028072, + 0.015388, + -0.055906, + 0.0522, + -0.031006, + 0.028746, + -0.001313, + -0.05912, + -0.015437, + -0.072604, + 0.00309, + -0.052105, + -0.060652, + 0.002501, + -0.005301, + -0.016556, + 0.004076, + -0.030116, + 0.015446, + -0.040764, + 0.025618, + -0.082329, + 0.017716, + 0.019545 + ] + } + ], + "StableDiffusion3TextToImage": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.014955, + 0.014535, + 0.015039, + -0.01294, + -0.015078, + -0.01354, + 0.012603, + 0.014234, + 0.013028, + 0.014104, + 0.014657, + -0.013961, + -0.01397, + -0.013705, + 0.014085, + 0.014107, + 0.01454, + 0.014684, + 0.014214, + 0.01473, + -0.014538, + -0.013919, + 0.013891, + 0.013894, + 0.013345, + 0.014624, + 0.015308, + 0.015109, + -0.013916, + -0.013549, + -0.013454, + 0.015281, + 0.010778, + 0.014866, + 0.015276, + 0.014992, + -0.014008, + -0.013972, + -0.013274, + 0.014006, + 0.014443, + 0.014339, + 0.013793, + 0.014472, + -0.013407, + -0.013649, + -0.013639, + 0.014388, + 0.014662, + 0.014543, + 0.015311, + 0.014633, + 0.013674, + -0.01387, + -0.01422, + 0.013761, + 0.014448, + 0.013939, + 0.01379, + 0.011211, + 0.013861, + -0.010878, + -0.012983, + 0.013007 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.017274, + 0.019562, + 0.019478, + 0.019517, + 0.016443, + 0.035483, + 0.035683, + 0.035216, + 0.030619, + -0.011854, + -0.012384, + -0.011986, + -0.008521, + 0.008372, + 0.008306, + 0.008393, + 0.006177, + 0.009252, + 0.009079, + 0.008854, + 0.009121, + -0.050123, + -0.050035, + -0.050299, + -0.042257, + -0.050059, + 0.019482, + 0.019644, + 0.015013, + 0.013524, + 0.016211, + 0.016645, + 0.0115, + 0.018172, + 0.019602, + 0.017579, + 0.015945, + 0.01631, + 0.035517, + 0.037192, + 0.036485, + 0.035644, + -0.012204, + -0.015612, + -0.012235, + -0.012165, + -0.012408, + 0.012303, + 0.009171, + 0.008228, + 0.008402, + 0.00942, + 0.008764, + 0.00924, + 0.009194, + -0.047951, + -0.049781, + -0.049926, + -0.050071, + 0.018187, + 0.013454, + 0.013745, + 0.013502, + 0.018325 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.012091, + 0.097546, + 0.1286, + 0.065201, + -0.030095, + 0.150227, + 0.080477, + -0.046941, + 0.100516, + -0.039675, + -0.109624, + -0.035173, + -0.018982, + 0.017097, + 0.0496, + -0.016586, + -0.028893, + -0.045285, + 0.017648, + -0.007875, + -0.051069, + 0.043383, + 0.113692, + -0.142047, + -0.113984, + -0.090202, + -0.088588, + 0.136368, + 0.105976, + 0.16715, + 0.126743, + 0.109739, + -0.003245, + 0.006413, + 0.211325, + 0.010501, + 0.100809, + -0.026821, + -0.011584, + -0.063026, + 0.151531, + 0.07651, + 0.149342, + 0.198445, + -0.054413, + 0.071169, + 0.004813, + -0.014978, + 0.154012, + 0.049127, + -0.056784, + 0.082541, + 0.070801, + 0.150369, + 0.045853, + -0.040565, + 0.095416, + -0.002005, + 0.055735, + 0.052691, + -0.016378, + 0.060451, + 0.060556, + 0.000441 + ] + }, + { + "shape": [ + 2, + 24 + ], + "sample": [ + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829, + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829 + ] + }, + { + "shape": [ + 2, + 16, + 24 + ], + "sample": [ + 0.01991, + 0.004829, + 0.01725, + 0.038287, + -0.006734, + 0.004269, + 0.045626, + 0.02678, + 0.05008, + 0.019808, + 0.082032, + 0.008582, + 0.014972, + 0.010277, + 0.034913, + 0.022746, + 0.015038, + 0.01132, + -0.021046, + -0.056212, + -0.001057, + -0.067862, + -0.024714, + -0.057371, + -0.035649, + -0.058719, + -0.052335, + -0.043667, + -0.032667, + -0.017269, + 0.023394, + -0.025872, + 0.037565, + -0.039031, + 0.032609, + -0.011299, + 0.029473, + 0.035091, + 0.006203, + 0.019498, + 0.028072, + 0.015388, + -0.055906, + 0.0522, + -0.031006, + 0.028746, + -0.001313, + -0.05912, + -0.015437, + -0.072604, + 0.00309, + -0.052105, + -0.060652, + 0.002501, + -0.005301, + -0.016556, + 0.004076, + -0.030116, + 0.015446, + -0.040764, + 0.025618, + -0.082329, + 0.017716, + 0.019545 + ] + } + ], + "StableDiffusion3_5Model": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.014955, + 0.014535, + 0.015039, + -0.01294, + -0.015078, + -0.01354, + 0.012603, + 0.014234, + 0.013028, + 0.014104, + 0.014657, + -0.013961, + -0.01397, + -0.013705, + 0.014085, + 0.014107, + 0.01454, + 0.014684, + 0.014214, + 0.01473, + -0.014538, + -0.013919, + 0.013891, + 0.013894, + 0.013345, + 0.014624, + 0.015308, + 0.015109, + -0.013916, + -0.013549, + -0.013454, + 0.015281, + 0.010778, + 0.014866, + 0.015276, + 0.014992, + -0.014008, + -0.013972, + -0.013274, + 0.014006, + 0.014443, + 0.014339, + 0.013793, + 0.014472, + -0.013407, + -0.013649, + -0.013639, + 0.014388, + 0.014662, + 0.014543, + 0.015311, + 0.014633, + 0.013674, + -0.01387, + -0.01422, + 0.013761, + 0.014448, + 0.013939, + 0.01379, + 0.011211, + 0.013861, + -0.010878, + -0.012983, + 0.013007 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.017274, + 0.019562, + 0.019478, + 0.019517, + 0.016443, + 0.035483, + 0.035683, + 0.035216, + 0.030619, + -0.011854, + -0.012384, + -0.011986, + -0.008521, + 0.008372, + 0.008306, + 0.008393, + 0.006177, + 0.009252, + 0.009079, + 0.008854, + 0.009121, + -0.050123, + -0.050035, + -0.050299, + -0.042257, + -0.050059, + 0.019482, + 0.019644, + 0.015013, + 0.013524, + 0.016211, + 0.016645, + 0.0115, + 0.018172, + 0.019602, + 0.017579, + 0.015945, + 0.01631, + 0.035517, + 0.037192, + 0.036485, + 0.035644, + -0.012204, + -0.015612, + -0.012235, + -0.012165, + -0.012408, + 0.012303, + 0.009171, + 0.008228, + 0.008402, + 0.00942, + 0.008764, + 0.00924, + 0.009194, + -0.047951, + -0.049781, + -0.049926, + -0.050071, + 0.018187, + 0.013454, + 0.013745, + 0.013502, + 0.018325 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.01323, + 0.098254, + 0.129669, + 0.066239, + -0.028639, + 0.150828, + 0.081944, + -0.045938, + 0.101357, + -0.039674, + -0.10952, + -0.035309, + -0.019402, + 0.016394, + 0.048952, + -0.017228, + -0.029025, + -0.045206, + 0.018156, + -0.007403, + -0.051539, + 0.042579, + 0.113596, + -0.142042, + -0.113807, + -0.089958, + -0.088259, + 0.136318, + 0.105069, + 0.166323, + 0.125724, + 0.108803, + -0.003717, + 0.005988, + 0.211244, + 0.010028, + 0.100874, + -0.026819, + -0.011773, + -0.063357, + 0.151896, + 0.077693, + 0.151372, + 0.199062, + -0.054222, + 0.072171, + 0.006164, + -0.014138, + 0.153723, + 0.049434, + -0.056111, + 0.083136, + 0.071386, + 0.150738, + 0.046609, + -0.039163, + 0.09659, + -0.00176, + 0.055724, + 0.053063, + -0.015067, + 0.061407, + 0.061014, + 0.002211 + ] + }, + { + "shape": [ + 2, + 24 + ], + "sample": [ + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829, + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829 + ] + }, + { + "shape": [ + 2, + 16, + 24 + ], + "sample": [ + 0.01991, + 0.004829, + 0.01725, + 0.038287, + -0.006734, + 0.004269, + 0.045626, + 0.02678, + 0.05008, + 0.019808, + 0.082032, + 0.008582, + 0.014972, + 0.010277, + 0.034913, + 0.022746, + 0.015038, + 0.01132, + -0.021046, + -0.056212, + -0.001057, + -0.067862, + -0.024714, + -0.057371, + -0.035649, + -0.058719, + -0.052335, + -0.043667, + -0.032667, + -0.017269, + 0.023394, + -0.025872, + 0.037565, + -0.039031, + 0.032609, + -0.011299, + 0.029473, + 0.035091, + 0.006203, + 0.019498, + 0.028072, + 0.015388, + -0.055906, + 0.0522, + -0.031006, + 0.028746, + -0.001313, + -0.05912, + -0.015437, + -0.072604, + 0.00309, + -0.052105, + -0.060652, + 0.002501, + -0.005301, + -0.016556, + 0.004076, + -0.030116, + 0.015446, + -0.040764, + 0.025618, + -0.082329, + 0.017716, + 0.019545 + ] + } + ], + "StableDiffusion3_5TextToImage": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.014955, + 0.014535, + 0.015039, + -0.01294, + -0.015078, + -0.01354, + 0.012603, + 0.014234, + 0.013028, + 0.014104, + 0.014657, + -0.013961, + -0.01397, + -0.013705, + 0.014085, + 0.014107, + 0.01454, + 0.014684, + 0.014214, + 0.01473, + -0.014538, + -0.013919, + 0.013891, + 0.013894, + 0.013345, + 0.014624, + 0.015308, + 0.015109, + -0.013916, + -0.013549, + -0.013454, + 0.015281, + 0.010778, + 0.014866, + 0.015276, + 0.014992, + -0.014008, + -0.013972, + -0.013274, + 0.014006, + 0.014443, + 0.014339, + 0.013793, + 0.014472, + -0.013407, + -0.013649, + -0.013639, + 0.014388, + 0.014662, + 0.014543, + 0.015311, + 0.014633, + 0.013674, + -0.01387, + -0.01422, + 0.013761, + 0.014448, + 0.013939, + 0.01379, + 0.011211, + 0.013861, + -0.010878, + -0.012983, + 0.013007 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.017274, + 0.019562, + 0.019478, + 0.019517, + 0.016443, + 0.035483, + 0.035683, + 0.035216, + 0.030619, + -0.011854, + -0.012384, + -0.011986, + -0.008521, + 0.008372, + 0.008306, + 0.008393, + 0.006177, + 0.009252, + 0.009079, + 0.008854, + 0.009121, + -0.050123, + -0.050035, + -0.050299, + -0.042257, + -0.050059, + 0.019482, + 0.019644, + 0.015013, + 0.013524, + 0.016211, + 0.016645, + 0.0115, + 0.018172, + 0.019602, + 0.017579, + 0.015945, + 0.01631, + 0.035517, + 0.037192, + 0.036485, + 0.035644, + -0.012204, + -0.015612, + -0.012235, + -0.012165, + -0.012408, + 0.012303, + 0.009171, + 0.008228, + 0.008402, + 0.00942, + 0.008764, + 0.00924, + 0.009194, + -0.047951, + -0.049781, + -0.049926, + -0.050071, + 0.018187, + 0.013454, + 0.013745, + 0.013502, + 0.018325 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.01323, + 0.098254, + 0.129669, + 0.066239, + -0.028639, + 0.150828, + 0.081944, + -0.045938, + 0.101357, + -0.039674, + -0.10952, + -0.035309, + -0.019402, + 0.016394, + 0.048952, + -0.017228, + -0.029025, + -0.045206, + 0.018156, + -0.007403, + -0.051539, + 0.042579, + 0.113596, + -0.142042, + -0.113807, + -0.089958, + -0.088259, + 0.136318, + 0.105069, + 0.166323, + 0.125724, + 0.108803, + -0.003717, + 0.005988, + 0.211244, + 0.010028, + 0.100874, + -0.026819, + -0.011773, + -0.063357, + 0.151896, + 0.077693, + 0.151372, + 0.199062, + -0.054222, + 0.072171, + 0.006164, + -0.014138, + 0.153723, + 0.049434, + -0.056111, + 0.083136, + 0.071386, + 0.150738, + 0.046609, + -0.039163, + 0.09659, + -0.00176, + 0.055724, + 0.053063, + -0.015067, + 0.061407, + 0.061014, + 0.002211 + ] + }, + { + "shape": [ + 2, + 24 + ], + "sample": [ + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829, + 0.000567, + -0.002695, + -0.000344, + 0.001872, + -0.000507, + -0.002267, + -0.003681, + 0.002676, + 0.004716, + -0.00181, + 0.001028, + 0.001284, + -0.000525, + -0.000201, + 0.001415, + 0.002244, + -0.000562, + 0.001038, + 0.00074, + 0.002248, + 0.000935, + 0.002127, + -0.000101, + 0.000829 + ] + }, + { + "shape": [ + 2, + 16, + 24 + ], + "sample": [ + 0.01991, + 0.004829, + 0.01725, + 0.038287, + -0.006734, + 0.004269, + 0.045626, + 0.02678, + 0.05008, + 0.019808, + 0.082032, + 0.008582, + 0.014972, + 0.010277, + 0.034913, + 0.022746, + 0.015038, + 0.01132, + -0.021046, + -0.056212, + -0.001057, + -0.067862, + -0.024714, + -0.057371, + -0.035649, + -0.058719, + -0.052335, + -0.043667, + -0.032667, + -0.017269, + 0.023394, + -0.025872, + 0.037565, + -0.039031, + 0.032609, + -0.011299, + 0.029473, + 0.035091, + 0.006203, + 0.019498, + 0.028072, + 0.015388, + -0.055906, + 0.0522, + -0.031006, + 0.028746, + -0.001313, + -0.05912, + -0.015437, + -0.072604, + 0.00309, + -0.052105, + -0.060652, + 0.002501, + -0.005301, + -0.016556, + 0.004076, + -0.030116, + 0.015446, + -0.040764, + 0.025618, + -0.082329, + 0.017716, + 0.019545 + ] + } + ], + "StableDiffusionModel": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015141, + 0.014566, + 0.01507, + -0.013042, + -0.014793, + -0.013933, + 0.01303, + 0.014152, + 0.013037, + 0.014178, + 0.014338, + -0.013882, + -0.013874, + -0.013862, + 0.01476, + 0.014129, + 0.014743, + 0.014246, + 0.014257, + 0.014225, + -0.014007, + -0.013831, + 0.014013, + 0.014092, + 0.014013, + 0.014246, + 0.014301, + 0.014293, + -0.013722, + -0.013693, + -0.013301, + 0.014484, + 0.010029, + 0.014481, + 0.015246, + 0.015245, + -0.013927, + -0.013932, + -0.01385, + 0.014118, + 0.014105, + 0.014152, + 0.014243, + 0.01403, + -0.013841, + -0.013774, + -0.013812, + 0.014105, + 0.014097, + 0.014094, + 0.014242, + 0.014448, + 0.014266, + -0.014007, + -0.013837, + 0.014, + 0.014121, + 0.014003, + 0.014259, + 0.011565, + 0.014413, + -0.011314, + -0.01329, + 0.013126 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051589, + 0.051341, + 0.051341, + 0.05132, + 0.051681, + -0.006162, + -0.006151, + -0.006155, + -0.006046, + 0.006829, + 0.006821, + 0.006841, + 0.006748, + 0.010876, + 0.010889, + 0.010892, + 0.010883, + -0.021278, + -0.02128, + -0.021273, + -0.021104, + -0.005376, + -0.005379, + -0.005368, + -0.005528, + -0.005407, + -0.000975, + -0.000971, + -0.00076, + -0.000734, + -0.043369, + -0.043349, + -0.043402, + -0.043551, + 0.051337, + 0.051297, + 0.05151, + 0.051494, + -0.006147, + -0.006312, + -0.006151, + -0.006165, + 0.006816, + 0.006766, + 0.006782, + 0.006824, + 0.006837, + 0.010968, + 0.010946, + 0.0109, + 0.010906, + -0.021234, + -0.021271, + -0.021282, + -0.021255, + -0.005589, + -0.005439, + -0.005423, + -0.005422, + -0.000794, + -0.00072, + -0.000731, + -0.000732, + -0.043442 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.006219, + 0.002704, + 0.003533, + 0.003418, + 0.008001, + 0.005587, + 0.005602, + 0.005686, + 0.008691, + 0.002119, + -0.000714, + 0.001933, + -0.002422, + 0.002237, + 0.001836, + 0.002578, + -0.001956, + 0.00071, + -0.003084, + -0.002698, + -0.005522, + -0.001268, + -0.001686, + -1.2e-05, + -0.004803, + 0.000822, + 0.000538, + 0.013731, + 0.01433, + 0.014584, + 0.015002, + 0.015691, + 0.013323, + 0.015859, + 0.016175, + 0.015331, + 0.004414, + 0.004255, + 0.006079, + 0.002555, + 0.005861, + 0.004837, + 0.005748, + 0.002341, + 0.005368, + -9.1e-05, + 0.001814, + 0.003786, + 0.001644, + 0.001444, + 0.00205, + 0.00168, + 8.1e-05, + 0.000167, + -0.001057, + -0.002688, + -0.000987, + -0.000541, + -0.000336, + -0.002546, + -0.005307, + -0.003004, + -0.006414, + 0.018894 + ] + }, + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + -0.012037, + 0.027224, + -0.017103, + 0.027472, + -0.020236, + 0.000331, + -0.01644, + 0.015825, + -0.018293, + 0.014603, + -0.005827, + 0.016616, + -0.007089, + -0.005842, + 0.009213, + 0.000568, + 0.049181, + -0.012505, + 0.000328, + -0.009735, + -0.003473, + -0.007774, + -0.024105, + -0.00845, + -0.020531, + -0.008289, + -0.052391, + 0.003785, + -0.052397, + 0.003749, + -0.019436, + 0.013164, + -0.022708, + 0.014415, + 0.028549, + -0.025015, + 0.017437, + -0.03349, + 0.051644, + -0.027284, + 0.04717, + -0.013412, + 0.04921, + 0.009694, + 0.039967, + 0.027683, + 0.015538, + -0.001814, + -0.016217, + -0.001629, + -0.021373, + 0.015966, + -0.035635, + 0.013777, + -0.038477, + 0.024585, + 0.014664, + 0.015243, + 0.014259, + -0.002774, + 0.006661, + -0.001414, + -0.025646, + 0.00993 + ] + } + ], + "StableDiffusionTextToImage": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015141, + 0.014566, + 0.01507, + -0.013042, + -0.014793, + -0.013933, + 0.01303, + 0.014152, + 0.013037, + 0.014178, + 0.014338, + -0.013882, + -0.013874, + -0.013862, + 0.01476, + 0.014129, + 0.014743, + 0.014246, + 0.014257, + 0.014225, + -0.014007, + -0.013831, + 0.014013, + 0.014092, + 0.014013, + 0.014246, + 0.014301, + 0.014293, + -0.013722, + -0.013693, + -0.013301, + 0.014484, + 0.010029, + 0.014481, + 0.015246, + 0.015245, + -0.013927, + -0.013932, + -0.01385, + 0.014118, + 0.014105, + 0.014152, + 0.014243, + 0.01403, + -0.013841, + -0.013774, + -0.013812, + 0.014105, + 0.014097, + 0.014094, + 0.014242, + 0.014448, + 0.014266, + -0.014007, + -0.013837, + 0.014, + 0.014121, + 0.014003, + 0.014259, + 0.011565, + 0.014413, + -0.011314, + -0.01329, + 0.013126 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051589, + 0.051341, + 0.051341, + 0.05132, + 0.051681, + -0.006162, + -0.006151, + -0.006155, + -0.006046, + 0.006829, + 0.006821, + 0.006841, + 0.006748, + 0.010876, + 0.010889, + 0.010892, + 0.010883, + -0.021278, + -0.02128, + -0.021273, + -0.021104, + -0.005376, + -0.005379, + -0.005368, + -0.005528, + -0.005407, + -0.000975, + -0.000971, + -0.00076, + -0.000734, + -0.043369, + -0.043349, + -0.043402, + -0.043551, + 0.051337, + 0.051297, + 0.05151, + 0.051494, + -0.006147, + -0.006312, + -0.006151, + -0.006165, + 0.006816, + 0.006766, + 0.006782, + 0.006824, + 0.006837, + 0.010968, + 0.010946, + 0.0109, + 0.010906, + -0.021234, + -0.021271, + -0.021282, + -0.021255, + -0.005589, + -0.005439, + -0.005423, + -0.005422, + -0.000794, + -0.00072, + -0.000731, + -0.000732, + -0.043442 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.006219, + 0.002704, + 0.003533, + 0.003418, + 0.008001, + 0.005587, + 0.005602, + 0.005686, + 0.008691, + 0.002119, + -0.000714, + 0.001933, + -0.002422, + 0.002237, + 0.001836, + 0.002578, + -0.001956, + 0.00071, + -0.003084, + -0.002698, + -0.005522, + -0.001268, + -0.001686, + -1.2e-05, + -0.004803, + 0.000822, + 0.000538, + 0.013731, + 0.01433, + 0.014584, + 0.015002, + 0.015691, + 0.013323, + 0.015859, + 0.016175, + 0.015331, + 0.004414, + 0.004255, + 0.006079, + 0.002555, + 0.005861, + 0.004837, + 0.005748, + 0.002341, + 0.005368, + -9.1e-05, + 0.001814, + 0.003786, + 0.001644, + 0.001444, + 0.00205, + 0.00168, + 8.1e-05, + 0.000167, + -0.001057, + -0.002688, + -0.000987, + -0.000541, + -0.000336, + -0.002546, + -0.005307, + -0.003004, + -0.006414, + 0.018894 + ] + }, + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + -0.012037, + 0.027224, + -0.017103, + 0.027472, + -0.020236, + 0.000331, + -0.01644, + 0.015825, + -0.018293, + 0.014603, + -0.005827, + 0.016616, + -0.007089, + -0.005842, + 0.009213, + 0.000568, + 0.049181, + -0.012505, + 0.000328, + -0.009735, + -0.003473, + -0.007774, + -0.024105, + -0.00845, + -0.020531, + -0.008289, + -0.052391, + 0.003785, + -0.052397, + 0.003749, + -0.019436, + 0.013164, + -0.022708, + 0.014415, + 0.028549, + -0.025015, + 0.017437, + -0.03349, + 0.051644, + -0.027284, + 0.04717, + -0.013412, + 0.04921, + 0.009694, + 0.039967, + 0.027683, + 0.015538, + -0.001814, + -0.016217, + -0.001629, + -0.021373, + 0.015966, + -0.035635, + 0.013777, + -0.038477, + 0.024585, + 0.014664, + 0.015243, + 0.014259, + -0.002774, + 0.006661, + -0.001414, + -0.025646, + 0.00993 + ] + } + ], + "StableDiffusionXLModel": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015117, + 0.014538, + 0.015099, + -0.013055, + -0.014773, + -0.013969, + 0.013046, + 0.014114, + 0.013047, + 0.014206, + 0.01431, + -0.013879, + -0.013879, + -0.013813, + 0.014727, + 0.014137, + 0.014728, + 0.014265, + 0.014223, + 0.014277, + -0.013994, + -0.013862, + 0.013943, + 0.014071, + 0.01396, + 0.0142, + 0.014354, + 0.014264, + -0.01367, + -0.013662, + -0.013273, + 0.014495, + 0.009997, + 0.014473, + 0.015255, + 0.015218, + -0.013923, + -0.01392, + -0.013851, + 0.014064, + 0.014162, + 0.014085, + 0.014243, + 0.014099, + -0.013891, + -0.013708, + -0.013863, + 0.014129, + 0.01412, + 0.014114, + 0.014283, + 0.014466, + 0.014317, + -0.014031, + -0.013894, + 0.013986, + 0.01413, + 0.014016, + 0.014216, + 0.011546, + 0.014328, + -0.011294, + -0.013285, + 0.013122 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051605, + 0.051336, + 0.051333, + 0.051329, + 0.051681, + -0.006148, + -0.006164, + -0.006143, + -0.006038, + 0.006828, + 0.006835, + 0.006854, + 0.006746, + 0.01086, + 0.010873, + 0.010902, + 0.010893, + -0.021265, + -0.021276, + -0.021282, + -0.021111, + -0.005397, + -0.005385, + -0.005377, + -0.005534, + -0.005419, + -0.000964, + -0.000972, + -0.000765, + -0.000732, + -0.043374, + -0.043356, + -0.043409, + -0.043543, + 0.051326, + 0.051296, + 0.051495, + 0.051486, + -0.006144, + -0.006299, + -0.006143, + -0.006163, + 0.006826, + 0.006775, + 0.006793, + 0.006821, + 0.006818, + 0.010973, + 0.010951, + 0.010897, + 0.010886, + -0.02123, + -0.021273, + -0.021282, + -0.021264, + -0.005587, + -0.005444, + -0.005419, + -0.005421, + -0.000796, + -0.000722, + -0.000731, + -0.00073, + -0.043448 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.005391, + 0.001505, + 0.002643, + 0.002754, + 0.005352, + 0.003054, + 0.002996, + 0.002889, + 0.006612, + 0.001375, + -0.00157, + 0.001698, + -0.003237, + 0.002067, + 0.001719, + 0.002174, + -0.003029, + -0.000492, + -0.005456, + -0.005545, + -0.007489, + -0.002657, + -0.003191, + -0.000723, + -0.006884, + -0.000489, + -0.000329, + 0.013296, + 0.014399, + 0.012816, + 0.013579, + 0.014752, + 0.014613, + 0.016026, + 0.016497, + 0.015358, + 0.001693, + 0.000713, + 0.00396, + 0.001166, + 0.003711, + 0.002246, + 0.002561, + 0.000427, + 0.00251, + -0.001125, + 0.002253, + 0.004757, + 0.001045, + 0.000851, + 0.001967, + 0.001514, + -0.000799, + -5.2e-05, + -0.002928, + -0.003612, + -0.003489, + -0.002121, + -0.001713, + -0.003564, + -0.005562, + -0.003289, + -0.007317, + 0.016749 + ] + }, + { + "shape": [ + 2, + 16 + ], + "sample": [ + -0.001651, + 0.004384, + 0.000777, + 0.001588, + 0.001558, + 0.002165, + -0.002537, + 0.002124, + -0.002929, + 0.004796, + 0.002518, + -0.000757, + -0.006795, + -0.003231, + -0.005023, + 0.002541, + -0.001651, + 0.004384, + 0.000777, + 0.001588, + 0.001558, + 0.002165, + -0.002537, + 0.002124, + -0.002929, + 0.004796, + 0.002518, + -0.000757, + -0.006795, + -0.003231, + -0.005023, + 0.002541 + ] + }, + { + "shape": [ + 2, + 16, + 64 + ], + "sample": [ + 0.022025, + -0.090905, + -0.005076, + 0.007606, + 0.008709, + -0.020836, + -0.006304, + 0.056435, + -0.066661, + -0.024251, + -0.024757, + -0.038454, + 0.083587, + -0.02392, + 0.07096, + -0.037477, + -0.053752, + 0.016964, + -0.025098, + -0.000555, + 0.048412, + -0.056334, + -0.012582, + 0.013893, + -0.012235, + 0.048392, + 0.008929, + -0.023006, + -0.018066, + 0.025023, + -0.021386, + -0.020507, + -0.118211, + -0.040016, + -0.012872, + -0.005505, + 0.041438, + -0.029135, + 0.015047, + 0.003094, + 0.003135, + -0.052091, + -0.026491, + 0.025553, + 0.032734, + -0.047294, + -0.003716, + -0.016993, + 0.002541, + -0.002171, + -0.05959, + -0.001694, + 0.016903, + -0.071585, + 0.046993, + 0.011406, + -0.007823, + -0.061899, + 0.043031, + -0.024788, + -0.030914, + -0.014168, + -0.01589, + -0.052181 + ] + } + ], + "StableDiffusionXLRefinerImageToImage": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015128, + 0.014555, + 0.015074, + -0.013027, + -0.014804, + -0.013913, + 0.013123, + 0.014134, + 0.013115, + 0.014175, + 0.01428, + -0.01386, + -0.013889, + -0.013869, + 0.014721, + 0.014142, + 0.014713, + 0.014238, + 0.014288, + 0.014254, + -0.013996, + -0.013801, + 0.013976, + 0.014124, + 0.013997, + 0.014224, + 0.01436, + 0.014271, + -0.013665, + -0.013693, + -0.013272, + 0.014464, + 0.010032, + 0.014493, + 0.015215, + 0.015217, + -0.013947, + -0.013935, + -0.013853, + 0.014106, + 0.014111, + 0.014094, + 0.014294, + 0.014129, + -0.01385, + -0.013772, + -0.01386, + 0.014143, + 0.014081, + 0.014134, + 0.014289, + 0.014426, + 0.014263, + -0.014039, + -0.013828, + 0.013967, + 0.014145, + 0.013975, + 0.014264, + 0.011534, + 0.014323, + -0.011284, + -0.013253, + 0.013137 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051589, + 0.051339, + 0.05134, + 0.051333, + 0.051681, + -0.006151, + -0.00616, + -0.006148, + -0.006045, + 0.006832, + 0.006832, + 0.006855, + 0.00675, + 0.0109, + 0.010893, + 0.010888, + 0.010893, + -0.02127, + -0.021268, + -0.021271, + -0.021117, + -0.005368, + -0.00538, + -0.005377, + -0.005524, + -0.005409, + -0.000983, + -0.000983, + -0.000756, + -0.000733, + -0.043366, + -0.043358, + -0.043399, + -0.043558, + 0.051339, + 0.051289, + 0.051522, + 0.051488, + -0.006163, + -0.006294, + -0.006157, + -0.006156, + 0.006832, + 0.006773, + 0.006796, + 0.006826, + 0.006832, + 0.010985, + 0.010941, + 0.01088, + 0.010879, + -0.021234, + -0.021277, + -0.021264, + -0.02128, + -0.005601, + -0.005452, + -0.005426, + -0.00543, + -0.000791, + -0.00072, + -0.000728, + -0.000727, + -0.043441 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.000481, + -0.002919, + -0.00179, + -0.000417, + 0.003282, + 0.003562, + 0.004124, + 0.003136, + 0.003245, + -0.009335, + -0.007721, + -0.008315, + -0.007362, + -0.010133, + -0.009758, + -0.009103, + -0.008528, + -0.010434, + -0.010003, + -0.007856, + -0.008889, + -0.008763, + -0.01003, + -0.008096, + -0.009952, + -0.006777, + -0.007405, + 0.009624, + 0.010534, + 0.013684, + 0.014548, + 0.014422, + 0.008618, + 0.009694, + 0.008467, + 0.007777, + 0.00285, + 0.003307, + 0.004301, + 0.00407, + 0.003844, + 0.0041, + 0.002652, + 0.003409, + 0.001842, + -0.00776, + -0.008313, + -0.003254, + -0.007042, + -0.009972, + -0.009185, + -0.0035, + -0.008157, + -0.009825, + -0.008416, + -0.006144, + -0.007326, + -0.007724, + -0.008343, + -0.006462, + -0.009628, + -0.010498, + -0.010122, + 0.016935 + ] + }, + { + "shape": [ + 2, + 16 + ], + "sample": [ + -0.004386, + 0.005251, + -0.001644, + 0.002351, + 0.002163, + 0.003551, + -0.002766, + 0.001111, + -0.001758, + 0.005881, + -0.000112, + 0.002642, + -0.006228, + -0.002458, + -0.002431, + -0.000691, + -0.004386, + 0.005251, + -0.001644, + 0.002351, + 0.002163, + 0.003551, + -0.002766, + 0.001111, + -0.001758, + 0.005881, + -0.000112, + 0.002642, + -0.006228, + -0.002458, + -0.002431, + -0.000691 + ] + }, + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + -0.07549, + -0.036797, + -0.06729, + -0.010316, + -0.087311, + 0.026806, + 0.046183, + 0.080015, + 0.028766, + 0.010841, + -0.001441, + 0.025617, + -0.022712, + 0.002993, + 0.03557, + 0.032339, + 0.039893, + -0.003567, + -0.040687, + -0.018836, + -0.055347, + -0.010683, + 0.006929, + 0.011367, + 0.034529, + -0.008013, + 0.033182, + -0.019324, + 0.047424, + -0.047148, + -0.093025, + 0.054083, + -0.060365, + 0.062953, + 0.030306, + 0.02033, + 0.052184, + 0.016348, + -0.005382, + -0.010774, + 0.03376, + -0.011427, + -0.024654, + -0.077269, + -0.040009, + -0.079375, + -0.008919, + 0.042451, + -0.07994, + 0.030593, + -0.049702, + -0.078214, + 0.049456, + -0.093707, + 0.04243, + -0.034284, + -0.032833, + -0.028629, + -0.038116, + 0.025034, + 0.0324, + -0.014014, + 0.029427, + -0.024193 + ] + } + ], + "StableDiffusionXLRefinerModel": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015128, + 0.014555, + 0.015074, + -0.013027, + -0.014804, + -0.013913, + 0.013123, + 0.014134, + 0.013115, + 0.014175, + 0.01428, + -0.01386, + -0.013889, + -0.013869, + 0.014721, + 0.014142, + 0.014713, + 0.014238, + 0.014288, + 0.014254, + -0.013996, + -0.013801, + 0.013976, + 0.014124, + 0.013997, + 0.014224, + 0.01436, + 0.014271, + -0.013665, + -0.013693, + -0.013272, + 0.014464, + 0.010032, + 0.014493, + 0.015215, + 0.015217, + -0.013947, + -0.013935, + -0.013853, + 0.014106, + 0.014111, + 0.014094, + 0.014294, + 0.014129, + -0.01385, + -0.013772, + -0.01386, + 0.014143, + 0.014081, + 0.014134, + 0.014289, + 0.014426, + 0.014263, + -0.014039, + -0.013828, + 0.013967, + 0.014145, + 0.013975, + 0.014264, + 0.011534, + 0.014323, + -0.011284, + -0.013253, + 0.013137 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051589, + 0.051339, + 0.05134, + 0.051333, + 0.051681, + -0.006151, + -0.00616, + -0.006148, + -0.006045, + 0.006832, + 0.006832, + 0.006855, + 0.00675, + 0.0109, + 0.010893, + 0.010888, + 0.010893, + -0.02127, + -0.021268, + -0.021271, + -0.021117, + -0.005368, + -0.00538, + -0.005377, + -0.005524, + -0.005409, + -0.000983, + -0.000983, + -0.000756, + -0.000733, + -0.043366, + -0.043358, + -0.043399, + -0.043558, + 0.051339, + 0.051289, + 0.051522, + 0.051488, + -0.006163, + -0.006294, + -0.006157, + -0.006156, + 0.006832, + 0.006773, + 0.006796, + 0.006826, + 0.006832, + 0.010985, + 0.010941, + 0.01088, + 0.010879, + -0.021234, + -0.021277, + -0.021264, + -0.02128, + -0.005601, + -0.005452, + -0.005426, + -0.00543, + -0.000791, + -0.00072, + -0.000728, + -0.000727, + -0.043441 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.000481, + -0.002919, + -0.00179, + -0.000417, + 0.003282, + 0.003562, + 0.004124, + 0.003136, + 0.003245, + -0.009335, + -0.007721, + -0.008315, + -0.007362, + -0.010133, + -0.009758, + -0.009103, + -0.008528, + -0.010434, + -0.010003, + -0.007856, + -0.008889, + -0.008763, + -0.01003, + -0.008096, + -0.009952, + -0.006777, + -0.007405, + 0.009624, + 0.010534, + 0.013684, + 0.014548, + 0.014422, + 0.008618, + 0.009694, + 0.008467, + 0.007777, + 0.00285, + 0.003307, + 0.004301, + 0.00407, + 0.003844, + 0.0041, + 0.002652, + 0.003409, + 0.001842, + -0.00776, + -0.008313, + -0.003254, + -0.007042, + -0.009972, + -0.009185, + -0.0035, + -0.008157, + -0.009825, + -0.008416, + -0.006144, + -0.007326, + -0.007724, + -0.008343, + -0.006462, + -0.009628, + -0.010498, + -0.010122, + 0.016935 + ] + }, + { + "shape": [ + 2, + 16 + ], + "sample": [ + -0.004386, + 0.005251, + -0.001644, + 0.002351, + 0.002163, + 0.003551, + -0.002766, + 0.001111, + -0.001758, + 0.005881, + -0.000112, + 0.002642, + -0.006228, + -0.002458, + -0.002431, + -0.000691, + -0.004386, + 0.005251, + -0.001644, + 0.002351, + 0.002163, + 0.003551, + -0.002766, + 0.001111, + -0.001758, + 0.005881, + -0.000112, + 0.002642, + -0.006228, + -0.002458, + -0.002431, + -0.000691 + ] + }, + { + "shape": [ + 2, + 16, + 32 + ], + "sample": [ + -0.07549, + -0.036797, + -0.06729, + -0.010316, + -0.087311, + 0.026806, + 0.046183, + 0.080015, + 0.028766, + 0.010841, + -0.001441, + 0.025617, + -0.022712, + 0.002993, + 0.03557, + 0.032339, + 0.039893, + -0.003567, + -0.040687, + -0.018836, + -0.055347, + -0.010683, + 0.006929, + 0.011367, + 0.034529, + -0.008013, + 0.033182, + -0.019324, + 0.047424, + -0.047148, + -0.093025, + 0.054083, + -0.060365, + 0.062953, + 0.030306, + 0.02033, + 0.052184, + 0.016348, + -0.005382, + -0.010774, + 0.03376, + -0.011427, + -0.024654, + -0.077269, + -0.040009, + -0.079375, + -0.008919, + 0.042451, + -0.07994, + 0.030593, + -0.049702, + -0.078214, + 0.049456, + -0.093707, + 0.04243, + -0.034284, + -0.032833, + -0.028629, + -0.038116, + 0.025034, + 0.0324, + -0.014014, + 0.029427, + -0.024193 + ] + } + ], + "StableDiffusionXLTextToImage": [ + { + "shape": [ + 2, + 16, + 16, + 3 + ], + "sample": [ + 0.015117, + 0.014538, + 0.015099, + -0.013055, + -0.014773, + -0.013969, + 0.013046, + 0.014114, + 0.013047, + 0.014206, + 0.01431, + -0.013879, + -0.013879, + -0.013813, + 0.014727, + 0.014137, + 0.014728, + 0.014265, + 0.014223, + 0.014277, + -0.013994, + -0.013862, + 0.013943, + 0.014071, + 0.01396, + 0.0142, + 0.014354, + 0.014264, + -0.01367, + -0.013662, + -0.013273, + 0.014495, + 0.009997, + 0.014473, + 0.015255, + 0.015218, + -0.013923, + -0.01392, + -0.013851, + 0.014064, + 0.014162, + 0.014085, + 0.014243, + 0.014099, + -0.013891, + -0.013708, + -0.013863, + 0.014129, + 0.01412, + 0.014114, + 0.014283, + 0.014466, + 0.014317, + -0.014031, + -0.013894, + 0.013986, + 0.01413, + 0.014016, + 0.014216, + 0.011546, + 0.014328, + -0.011294, + -0.013285, + 0.013122 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 8 + ], + "sample": [ + 0.051605, + 0.051336, + 0.051333, + 0.051329, + 0.051681, + -0.006148, + -0.006164, + -0.006143, + -0.006038, + 0.006828, + 0.006835, + 0.006854, + 0.006746, + 0.01086, + 0.010873, + 0.010902, + 0.010893, + -0.021265, + -0.021276, + -0.021282, + -0.021111, + -0.005397, + -0.005385, + -0.005377, + -0.005534, + -0.005419, + -0.000964, + -0.000972, + -0.000765, + -0.000732, + -0.043374, + -0.043356, + -0.043409, + -0.043543, + 0.051326, + 0.051296, + 0.051495, + 0.051486, + -0.006144, + -0.006299, + -0.006143, + -0.006163, + 0.006826, + 0.006775, + 0.006793, + 0.006821, + 0.006818, + 0.010973, + 0.010951, + 0.010897, + 0.010886, + -0.02123, + -0.021273, + -0.021282, + -0.021264, + -0.005587, + -0.005444, + -0.005419, + -0.005421, + -0.000796, + -0.000722, + -0.000731, + -0.00073, + -0.043448 + ] + }, + { + "shape": [ + 2, + 8, + 8, + 4 + ], + "sample": [ + 0.005391, + 0.001505, + 0.002643, + 0.002754, + 0.005352, + 0.003054, + 0.002996, + 0.002889, + 0.006612, + 0.001375, + -0.00157, + 0.001698, + -0.003237, + 0.002067, + 0.001719, + 0.002174, + -0.003029, + -0.000492, + -0.005456, + -0.005545, + -0.007489, + -0.002657, + -0.003191, + -0.000723, + -0.006884, + -0.000489, + -0.000329, + 0.013296, + 0.014399, + 0.012816, + 0.013579, + 0.014752, + 0.014613, + 0.016026, + 0.016497, + 0.015358, + 0.001693, + 0.000713, + 0.00396, + 0.001166, + 0.003711, + 0.002246, + 0.002561, + 0.000427, + 0.00251, + -0.001125, + 0.002253, + 0.004757, + 0.001045, + 0.000851, + 0.001967, + 0.001514, + -0.000799, + -5.2e-05, + -0.002928, + -0.003612, + -0.003489, + -0.002121, + -0.001713, + -0.003564, + -0.005562, + -0.003289, + -0.007317, + 0.016749 + ] + }, + { + "shape": [ + 2, + 16 + ], + "sample": [ + -0.001651, + 0.004384, + 0.000777, + 0.001588, + 0.001558, + 0.002165, + -0.002537, + 0.002124, + -0.002929, + 0.004796, + 0.002518, + -0.000757, + -0.006795, + -0.003231, + -0.005023, + 0.002541, + -0.001651, + 0.004384, + 0.000777, + 0.001588, + 0.001558, + 0.002165, + -0.002537, + 0.002124, + -0.002929, + 0.004796, + 0.002518, + -0.000757, + -0.006795, + -0.003231, + -0.005023, + 0.002541 + ] + }, + { + "shape": [ + 2, + 16, + 64 + ], + "sample": [ + 0.022025, + -0.090905, + -0.005076, + 0.007606, + 0.008709, + -0.020836, + -0.006304, + 0.056435, + -0.066661, + -0.024251, + -0.024757, + -0.038454, + 0.083587, + -0.02392, + 0.07096, + -0.037477, + -0.053752, + 0.016964, + -0.025098, + -0.000555, + 0.048412, + -0.056334, + -0.012582, + 0.013893, + -0.012235, + 0.048392, + 0.008929, + -0.023006, + -0.018066, + 0.025023, + -0.021386, + -0.020507, + -0.118211, + -0.040016, + -0.012872, + -0.005505, + 0.041438, + -0.029135, + 0.015047, + 0.003094, + 0.003135, + -0.052091, + -0.026491, + 0.025553, + 0.032734, + -0.047294, + -0.003716, + -0.016993, + 0.002541, + -0.002171, + -0.05959, + -0.001694, + 0.016903, + -0.071585, + 0.046993, + 0.011406, + -0.007823, + -0.061899, + 0.043031, + -0.024788, + -0.030914, + -0.014168, + -0.01589, + -0.052181 + ] + } + ], "SwinImageClassify": [ { "shape": [ diff --git a/tests/fixtures/dummy_inputs.py b/tests/fixtures/dummy_inputs.py index 5cc8300e..3d926da8 100644 --- a/tests/fixtures/dummy_inputs.py +++ b/tests/fixtures/dummy_inputs.py @@ -210,6 +210,32 @@ def stable_diffusion_xl_refiner_input( return inputs +def stable_diffusion_3_input( + batch_size=2, + sample_size=8, + image_size=16, + max_seq_len=16, + text_seq_len=24, + joint_attention_dim=24, + pooled_dim=24, +): + # the MMDiT takes the text tokens (CLIP + T5 length) at the joint width and + # the pooled CLIP embeddings; the VAE and the two CLIP towers as in SDXL + return { + "sample": ops.ones((batch_size, sample_size, sample_size, 4)), + "timestep": ops.ones((batch_size,)), + "encoder_hidden_states": ops.ones( + (batch_size, text_seq_len, joint_attention_dim) + ), + "pooled_projections": ops.ones((batch_size, pooled_dim)), + "image": ops.ones((batch_size, image_size, image_size, 3)), + "latent": ops.ones((batch_size, sample_size, sample_size, 4)), + "token_ids": ops.ones((batch_size, max_seq_len), dtype="int32"), + "token_ids_2": ops.ones((batch_size, max_seq_len), dtype="int32"), + "padding_mask": ops.ones((batch_size, max_seq_len), dtype="int32"), + } + + def tips_v2_text_input(batch_size=2, max_seq_len=16): return { "token_ids": ops.ones((batch_size, max_seq_len), dtype="int32"), diff --git a/tests/integration/test_auto_registry.py b/tests/integration/test_auto_registry.py index 795685f8..63e3469f 100644 --- a/tests/integration/test_auto_registry.py +++ b/tests/integration/test_auto_registry.py @@ -277,10 +277,11 @@ def test_every_table_value_resolves_and_matches_its_task(): # Redundant transformers-named alias whose model_type ("grounding-dino") already maps to # the zeromodels-convention sibling GroundingDinoDetect. "GroundingDinoForObjectDetection", - # A component of the Stable Diffusion container (loaded through StableDiffusionModel / - # StableDiffusionTextToImage), never a hosted repo of its own; keeps diffusers' name, - # which carries no task suffix. + # Components of the Stable Diffusion containers (loaded through the family's + # XModel / XTextToImage), never hosted repos of their own; keep diffusers' names, + # which carry no task suffix. "AutoencoderKL", + "SD3Transformer2DModel", } diff --git a/website/mkdocs.yml b/website/mkdocs.yml index fa32072a..4803be20 100644 --- a/website/mkdocs.yml +++ b/website/mkdocs.yml @@ -233,6 +233,8 @@ nav: - Stable Diffusion: stable_diffusion.md - Stable Diffusion 2: stable_diffusion_2.md - Stable Diffusion XL: stable_diffusion_xl.md + - Stable Diffusion 3: stable_diffusion_3.md + - Stable Diffusion 3.5: stable_diffusion_3_5.md - TIPSv2: tipsv2.md - Loading Weights: loading_weights.md diff --git a/zeromodels/auto/auto_mapping_names.py b/zeromodels/auto/auto_mapping_names.py index caec7ee8..514fd155 100644 --- a/zeromodels/auto/auto_mapping_names.py +++ b/zeromodels/auto/auto_mapping_names.py @@ -75,6 +75,7 @@ "table-transformer": "TableTransformerDetect", }, "EncoderModel": { + "stable_diffusion_3_t5_encoder": "SD3T5EncoderModel", "t5": "T5EncoderModel", }, "ImageClassify": { @@ -274,6 +275,8 @@ "stable_diffusion_2": "StableDiffusion2Model", "stable_diffusion_xl": "StableDiffusionXLModel", "stable_diffusion_xl_refiner": "StableDiffusionXLRefinerModel", + "stable_diffusion_3": "StableDiffusion3Model", + "stable_diffusion_3_5": "StableDiffusion3_5Model", "swin": "SwinModel", "swinv2": "SwinV2Model", "t5": "T5Model", @@ -404,6 +407,8 @@ "stable_diffusion": "StableDiffusionTextToImage", "stable_diffusion_2": "StableDiffusion2TextToImage", "stable_diffusion_xl": "StableDiffusionXLTextToImage", + "stable_diffusion_3": "StableDiffusion3TextToImage", + "stable_diffusion_3_5": "StableDiffusion3_5TextToImage", }, "ImageToImage": { "stable_diffusion_xl_refiner": "StableDiffusionXLRefinerImageToImage", @@ -666,6 +671,9 @@ "stable_diffusion_2": "StableDiffusion2Config", "stable_diffusion_xl": "StableDiffusionXLConfig", "stable_diffusion_xl_refiner": "StableDiffusionXLRefinerConfig", + "stable_diffusion_3": "StableDiffusion3Config", + "stable_diffusion_3_5": "StableDiffusion3_5Config", + "stable_diffusion_3_t5_encoder": "StableDiffusion3T5EncoderConfig", "swin": "SwinConfig", "swinv2": "SwinV2Config", "t5": "T5Config", @@ -764,6 +772,8 @@ "stable_diffusion_2": "StableDiffusion2Tokenizer", "stable_diffusion_xl": "StableDiffusionXLTokenizer", "stable_diffusion_xl_refiner": "StableDiffusionXLTokenizer", + "stable_diffusion_3": "StableDiffusion3Tokenizer", + "stable_diffusion_3_5": "StableDiffusion3_5Tokenizer", "t5": "T5Tokenizer", "tipsv2": "Tipsv2Tokenizer", "whisper": "WhisperTokenizer", diff --git a/zeromodels/base/base_attention.py b/zeromodels/base/base_attention.py index cc275fd3..ff7b1d18 100644 --- a/zeromodels/base/base_attention.py +++ b/zeromodels/base/base_attention.py @@ -5,30 +5,32 @@ import keras from keras import ops -VALID_ATTN_IMPL = ("sdpa", "flash") +VALID_ATTN_IMPL = ("sdpa", "fused", "flash") DEFAULT_ATTN_IMPLEMENTATION = "sdpa" -# The attention implementation active for the current build or forward. This is -# a ContextVar, not a plain module global: ``Model.from_weights`` activates a -# model's implementation only for the scope of that model's build (so a -# functional graph bakes the right branch) and each of that model's forwards / -# generation steps (so an imperative decode reads it), always restoring the -# previous value. A per-model choice therefore never leaks to another model, a -# later forward, or another thread. -_ATTN_IMPLEMENTATION = contextvars.ContextVar( - "attn_implementation", default=DEFAULT_ATTN_IMPLEMENTATION -) +# The attention implementation explicitly chosen for the current build or +# forward (``None``: nothing chosen, each layer falls back to its own default, +# ``"sdpa"`` unless a model family says otherwise). This is a ContextVar, not a +# plain module global: ``Model.from_weights`` activates a model's implementation +# only for the scope of that model's build (so a functional graph bakes the +# right branch) and each of that model's forwards / generation steps (so an +# imperative decode reads it), always restoring the previous value. A per-model +# choice therefore never leaks to another model, a later forward, or another +# thread. +_ATTN_IMPLEMENTATION = contextvars.ContextVar("attn_implementation", default=None) @contextlib.contextmanager def use_attn_implementation(attn_implementation): """Activate ``attn_implementation`` for the enclosed build or forward. - ``None`` selects the default (``"sdpa"``). The previous value is always - restored on exit, so a per-model implementation never leaks past its scope. + ``None`` clears the choice (layers use their default, ``"sdpa"`` unless the + model family picks another, such as the SD 3 MMDiT's ``"fused"``). The + previous value is always restored on exit, so a per-model implementation + never leaks past its scope. """ - impl = attn_implementation or DEFAULT_ATTN_IMPLEMENTATION - if impl not in VALID_ATTN_IMPL: + impl = attn_implementation + if impl is not None and impl not in VALID_ATTN_IMPL: raise ValueError( f"attn_implementation must be one of {VALID_ATTN_IMPL}, got {impl!r}" ) @@ -39,6 +41,13 @@ def use_attn_implementation(attn_implementation): _ATTN_IMPLEMENTATION.reset(token) +def active_attn_implementation(): + """The implementation explicitly activated for the current build or forward + (by ``Model.from_weights`` or :func:`use_attn_implementation`), or ``None``. + """ + return _ATTN_IMPLEMENTATION.get() + + def with_model_attn_implementation(method): """Decorate a model method so it runs under the model's captured implementation. @@ -97,6 +106,12 @@ def fused_attention( * ``"sdpa"`` -- hand-written matmul/softmax math. Portable across every backend, dtype and device. This is the default. + * ``"fused"`` -- :func:`keras.ops.dot_product_attention` with the backend's + own kernel selection: torch's ``scaled_dot_product_attention`` (flash / + memory-efficient / math, so the logits are never materialized on a GPU + when a fused kernel applies; masks allowed), XLA on JAX. Falls back to + the ``"sdpa"`` math on TensorFlow, with attention dropout or a logit + soft-cap. * ``"flash"`` -- :func:`keras.ops.dot_product_attention` with ``flash_attention=True`` (the real flash kernel). Used only when the backend supports it and there is no attention dropout or logit soft-cap; @@ -120,13 +135,16 @@ def fused_attention( probabilities. Only active during training with a positive rate, in which case the ``"sdpa"`` path is used so it can be applied. training: Whether the call is in training mode. - attn_implementation: ``"sdpa"`` / ``"flash"`` / ``None`` (use the - implementation active in the current context). + attn_implementation: ``"sdpa"`` / ``"fused"`` / ``"flash"`` / ``None`` + (use the implementation active in the current context, else + ``"sdpa"``). Returns: ``(batch, num_heads, q_len, head_dim)``. """ - impl = attn_implementation or _ATTN_IMPLEMENTATION.get() + impl = ( + attn_implementation or _ATTN_IMPLEMENTATION.get() or DEFAULT_ATTN_IMPLEMENTATION + ) if impl not in VALID_ATTN_IMPL: raise ValueError( f"attn_implementation must be one of {VALID_ATTN_IMPL}, got {impl!r}" @@ -135,8 +153,8 @@ def fused_attention( use_dropout = ( bool(training) and dropout is not None and getattr(dropout, "rate", 0.0) > 0.0 ) - use_flash = ( - impl == "flash" + use_fused_op = ( + impl in ("fused", "flash") and _fused_op_available() and not use_dropout and soft_cap is None @@ -145,7 +163,7 @@ def fused_attention( # float32 mask against bf16 logits, but tensorflow raises on the mismatch. if attention_mask is not None: attention_mask = ops.cast(attention_mask, query.dtype) - if use_flash: + if use_fused_op: q = ops.transpose(query, (0, 2, 1, 3)) k = ops.transpose(key, (0, 2, 1, 3)) v = ops.transpose(value, (0, 2, 1, 3)) @@ -155,7 +173,7 @@ def fused_attention( v, bias=attention_mask, scale=scale, - flash_attention=True, + flash_attention=True if impl == "flash" else None, ) return ops.transpose(out, (0, 2, 1, 3)) diff --git a/zeromodels/base/base_mixin.py b/zeromodels/base/base_mixin.py index a83e0a04..247dfa14 100644 --- a/zeromodels/base/base_mixin.py +++ b/zeromodels/base/base_mixin.py @@ -264,10 +264,13 @@ def from_weights( backbone. Applied on both the repo-id ``zm_config.json`` load path and the ``hf:`` / variant converter transfer path (mismatched targets left at init). - attn_implementation: ``"sdpa"`` (portable manual math, the default) - or ``"flash"`` (``keras.ops.dot_product_attention`` with the - flash kernel; needs a flash-capable GPU/TPU and fp16/bf16). Set - before the model is built. + attn_implementation: ``"sdpa"`` (portable manual math, the default + of most layers), ``"fused"`` (``keras.ops.dot_product_attention`` + with the backend's own kernel selection: torch's flash / + memory-efficient kernels, XLA on JAX; the SD 3 MMDiT's default) + or ``"flash"`` (the flash kernel; needs a flash-capable GPU/TPU + and fp16/bf16). ``None`` leaves every layer at its own default. + Set before the model is built. quantization: ``None`` (default), ``"int8"``, ``"int4"`` or ``"fp8"`` (or a :class:`~zeromodels.quantization.\ QuantizationConfig` / scheme). When set, the model is quantized weight-only: @@ -314,9 +317,7 @@ def from_weights( f"attn_implementation must be one of " f"{base_attention.VALID_ATTN_IMPL}, got {attn_implementation!r}" ) - resolved_attn = ( - attn_implementation or base_attention.DEFAULT_ATTN_IMPLEMENTATION - ) + resolved_attn = attn_implementation if load_dtype is None: load_dtype = cls.hub_repo_weight_dtype(identifier) diff --git a/zeromodels/base/base_scheduler.py b/zeromodels/base/base_scheduler.py index ea2cd6c0..9bebb6c4 100644 --- a/zeromodels/base/base_scheduler.py +++ b/zeromodels/base/base_scheduler.py @@ -486,11 +486,92 @@ def step(self, model_output, timestep, sample, **kwargs): return prev_sample +class FlowMatchEulerDiscreteScheduler(BaseScheduler): + """Euler sampler for rectified-flow models (Stable Diffusion 3 / 3.5, FLUX). + + There is no beta schedule: the noise level is the flow time ``sigma`` in + ``[0, 1]`` (``x_t = (1 - sigma) x_0 + sigma * noise``), the model predicts the + velocity and a step is ``x + (sigma_next - sigma) * v``. The timesteps handed to + the model are ``sigma * num_train_timesteps``. + + Args: + num_train_timesteps: The flow time resolution (1000). + shift: Timestep shift towards noisier levels, ``shift * s / (1 + (shift - 1) s)`` + (3.0 for SD3 / SD3.5). + """ + + def __init__(self, num_train_timesteps=1000, shift=1.0, **kwargs): + # the base (beta) schedule is irrelevant here; keep the constructor + # compatible with from_config (a repo's scheduler_config may carry extra keys) + super().__init__(num_train_timesteps=num_train_timesteps) + self.shift = shift + timesteps = np.linspace( + 1, num_train_timesteps, num_train_timesteps, dtype=np.float32 + )[::-1].copy() + sigmas = timesteps / np.float32(num_train_timesteps) + sigmas = self.shift_sigmas(sigmas) + self.sigma_min = float(sigmas[-1]) + self.sigma_max = float(sigmas[0]) + self.sigmas = sigmas + self.timesteps = sigmas * np.float32(num_train_timesteps) + self.step_index = 0 + + def shift_sigmas(self, sigmas): + shift = np.float32(self.shift) + return (shift * sigmas / (1 + (shift - 1) * sigmas)).astype(np.float32) + + @property + def init_noise_sigma(self): + return 1.0 + + def set_begin_index(self, index): + self.step_index = int(index) + + def set_timesteps(self, num_inference_steps): + self.num_inference_steps = num_inference_steps + n_train = self.num_train_timesteps + timesteps = np.linspace( + self.sigma_max * n_train, self.sigma_min * n_train, num_inference_steps + ) + sigmas = timesteps / n_train + sigmas = self.shift * sigmas / (1 + (self.shift - 1) * sigmas) + sigmas = sigmas.astype(np.float32) + self.sigmas = np.concatenate([sigmas, [0.0]]).astype(np.float32) + self.timesteps = sigmas * np.float32(n_train) + self.step_index = 0 + return self.timesteps + + def add_noise(self, original_samples, noise, timesteps): + # the forward flow: x_t = (1 - sigma) x_0 + sigma * noise + timesteps = np.asarray(timesteps, dtype=np.float32).reshape(-1) + index = [int(np.nonzero(self.timesteps == t)[0][0]) for t in timesteps] + sigma = self.sigmas[index] + while sigma.ndim < len(ops.shape(original_samples)): + sigma = sigma[..., None] + sigma = ops.convert_to_tensor(sigma, dtype=original_samples.dtype) + return sigma * noise + (1.0 - sigma) * original_samples + + def step(self, model_output, timestep, sample, **kwargs): + sigma = self.sigmas[self.step_index] + sigma_next = self.sigmas[self.step_index + 1] + prev_sample = sample + (sigma_next - sigma) * model_output + self.step_index += 1 + return prev_sample + + def to_config(self): + return { + "_class_name": type(self).__name__, + "num_train_timesteps": self.num_train_timesteps, + "shift": self.shift, + } + + SCHEDULER_REGISTRY = { "DDIMScheduler": DDIMScheduler, "PNDMScheduler": PNDMScheduler, "EulerDiscreteScheduler": EulerDiscreteScheduler, "EulerAncestralDiscreteScheduler": EulerAncestralDiscreteScheduler, + "FlowMatchEulerDiscreteScheduler": FlowMatchEulerDiscreteScheduler, } diff --git a/zeromodels/models/__init__.py b/zeromodels/models/__init__.py index 74e067ed..4707d7a9 100644 --- a/zeromodels/models/__init__.py +++ b/zeromodels/models/__init__.py @@ -122,6 +122,8 @@ speech2text, stable_diffusion, stable_diffusion_2, + stable_diffusion_3, + stable_diffusion_3_5, stable_diffusion_xl, swin, swinv2, diff --git a/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py b/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py index 7a386199..84a68e64 100644 --- a/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py +++ b/zeromodels/models/stable_diffusion/convert_stable_diffusion_diffusers_to_keras.py @@ -1,4 +1,4 @@ -import collections.abc +from typing import Dict import numpy as np from tqdm import tqdm @@ -10,7 +10,6 @@ from zeromodels.conversion.weight_split_util import split_model_weights from zeromodels.conversion.weight_transfer_util import ( compare_keras_torch_names, - transfer_attention_weights, transfer_weights, ) @@ -22,156 +21,48 @@ "stable-diffusion-v1-5": "stable-diffusion-v1-5/stable-diffusion-v1-5", } -LEGACY_ATTENTION_KEYS = { - ".query.": ".to_q.", - ".key.": ".to_k.", - ".value.": ".to_v.", - ".proj_attn.": ".to_out.0.", +WEIGHT_NAME_MAPPING: Dict[str, str] = { + "__": ".", + "/kernel": ".weight", + "/gamma": ".weight", + "/beta": ".bias", + "/scale": ".weight", # RMSNormalization (the SD 3.5 qk norms) + "/": ".", } -class RenamedStateDict(collections.abc.Mapping): - def __init__(self, state_dict): - self.state_dict = state_dict - self.to_source = {} - for key in state_dict: - new = key - if ".attentions." in key: - for old, current in LEGACY_ATTENTION_KEYS.items(): - new = new.replace(old, current) - self.to_source[new] = key - - def __getitem__(self, key): - return self.state_dict[self.to_source[key]] - - def __contains__(self, key): - return key in self.to_source - - def __iter__(self): - return iter(self.to_source) - - def __len__(self): - return len(self.to_source) - - -WEIGHT_SUFFIX = {"kernel": "weight", "bias": "bias", "gamma": "weight", "beta": "bias"} - -ATTN_NAME_REPLACE = { - "..": ".", - "down.blocks": "down_blocks", - "up.blocks": "up_blocks", - "mid.block": "mid_block", - "transformer.blocks": "transformer_blocks", - "proj.in": "proj_in", - "proj.out": "proj_out", - "to.q": "to_q", - "to.k": "to_k", - "to.v": "to_v", - "to.out": "to_out", - "group.norm": "group_norm", -} - - -def torch_key(keras_weight): - leaf, variable = keras_weight.path.split("/")[-2:] - return f"{leaf.replace('__', '.')}.{WEIGHT_SUFFIX[variable]}" - - -def transfer_component(keras_model, state): - consumed = set() - trainable, non_trainable = split_model_weights(keras_model) - - for keras_weight, _ in tqdm( - trainable + non_trainable, desc="Transferring weights to Keras" - ): - key = torch_key(keras_weight) - consumed.add(key) - - if "attention" in key: - transfer_attention_weights( - keras_weight.path, keras_weight, state, ATTN_NAME_REPLACE - ) - continue - - if key not in state: - raise WeightMappingError(keras_weight.path, key) - torch_weight = state[key] - if not compare_keras_torch_names( - keras_weight.path, keras_weight, key, torch_weight - ): - raise WeightShapeMismatchError( - keras_weight.path, keras_weight.shape, key, torch_weight.shape - ) - if key.startswith(("time_embedding.", "add_embedding.")) and ( - keras_weight.ndim == 2 - ): - # transfer_weights treats any "embedding" 2D weight as a lookup table; - # the timestep / added-conditioning MLPs' linears are dense kernels - keras_weight.assign(np.transpose(torch_weight)) - continue - transfer_weights(key, keras_weight, torch_weight) - - unused = sorted(set(state) - consumed) - if unused: - raise ValueError( - f"{type(keras_model).__name__}: {len(unused)} checkpoint tensors unused, " - f"e.g. {unused[:3]}." - ) - - -def numpy_state_dict(module): - return {k: v.detach().cpu().numpy() for k, v in module.state_dict().items()} - - -def diffusers_configs(repo, token=None): +def config_from_diffusers(repo, token=None, config_cls=None): from diffusers import AutoencoderKL, PNDMScheduler, UNet2DConditionModel from transformers import CLIPTextConfig, CLIPTokenizerFast - tokenizer = CLIPTokenizerFast.from_pretrained( - repo, subfolder="tokenizer", token=token - ) - return { - "unet": dict( - UNet2DConditionModel.load_config(repo, subfolder="unet", token=token) - ), - "vae": dict(AutoencoderKL.load_config(repo, subfolder="vae", token=token)), - "text": CLIPTextConfig.from_pretrained( - repo, subfolder="text_encoder", token=token - ).to_dict(), - # load_config only reads the json, whichever scheduler the repo declares - "scheduler": dict( - PNDMScheduler.load_config(repo, subfolder="scheduler", token=token) - ), - # the pad token differs between checkpoints (<|endoftext|> 49407, "!" 0) - "tokens": { - "bos_token_id": tokenizer.bos_token_id, - "eos_token_id": tokenizer.eos_token_id, - "pad_token_id": tokenizer.pad_token_id, - }, - } - - -def config_from_diffusers(repo, token=None, config_cls=None): from zeromodels.models.stable_diffusion.stable_diffusion_config import ( StableDiffusionConfig, ) + from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + UNet2DConditionModel as KerasUNet2DConditionModel, + ) config_cls = config_cls or StableDiffusionConfig - src = diffusers_configs(repo, token=token) - unet, vae, text = src["unet"], src["vae"], src["text"] + unet = dict(UNet2DConditionModel.load_config(repo, subfolder="unet", token=token)) + vae = dict(AutoencoderKL.load_config(repo, subfolder="vae", token=token)) + text = CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder", token=token + ).to_dict() + # load_config only reads the json, whichever scheduler the repo declares scheduler = { k: v - for k, v in src["scheduler"].items() + for k, v in PNDMScheduler.load_config( + repo, subfolder="scheduler", token=token + ).items() if k == "_class_name" or not k.startswith("_") } - - from zeromodels.models.stable_diffusion.stable_diffusion_model import ( - UNet2DConditionModel, + # the pad token differs between checkpoints (<|endoftext|> 49407, "!" 0) + tokenizer = CLIPTokenizerFast.from_pretrained( + repo, subfolder="tokenizer", token=token ) - hidden = text["hidden_size"] return config_cls( - unet_config=UNet2DConditionModel.kwargs_from_diffusers_config(unet), + unet_config=KerasUNet2DConditionModel.kwargs_from_diffusers_config(unet), vae_config={ "in_channels": vae.get("in_channels", 3), "out_channels": vae.get("out_channels", 3), @@ -199,11 +90,13 @@ def config_from_diffusers(repo, token=None, config_cls=None): hidden_act=text.get("hidden_act", "quick_gelu"), layer_norm_eps=text.get("layer_norm_eps", 1e-5), scheduler_config=scheduler, - **src["tokens"], + bos_token_id=tokenizer.bos_token_id, + eos_token_id=tokenizer.eos_token_id, + pad_token_id=tokenizer.pad_token_id, ) -def build_from_diffusers(repo, token=None, model_cls=None, config_cls=None): +def transfer_stable_diffusion(repo, token=None, model_cls=None, config_cls=None): import gc import torch @@ -214,7 +107,6 @@ def build_from_diffusers(repo, token=None, model_cls=None, config_cls=None): from zeromodels.models.clip import CLIPTextModel from zeromodels.models.stable_diffusion.stable_diffusion_model import ( StableDiffusionModel, - UNet2DConditionModel, ) model_cls = model_cls or StableDiffusionModel @@ -222,22 +114,68 @@ def build_from_diffusers(repo, token=None, model_cls=None, config_cls=None): model = model_cls(config) load = {"torch_dtype": torch.float32, "token": token} - unet = DiffusersUNet2DConditionModel.from_pretrained(repo, subfolder="unet", **load) - UNet2DConditionModel.transfer_from_hf(model.unet, numpy_state_dict(unet)) - del unet - gc.collect() - - vae = DiffusersAutoencoderKL.from_pretrained(repo, subfolder="vae", **load) - model.vae.transfer_from_hf(numpy_state_dict(vae)) - del vae - gc.collect() + # the SD 1.x era VAE files spell the mid-block attention query / key / value / + # proj_attn (diffusers renames them on load, a raw checkpoint read keeps them): + # map them to the to_q / to_k / to_v / to_out.0 names the layers use + legacy = { + ".query.": ".to_q.", + ".key.": ".to_k.", + ".value.": ".to_v.", + ".proj_attn.": ".to_out.0.", + } + for component, module_cls, subfolder in ( + (model.unet, DiffusersUNet2DConditionModel, "unet"), + (model.vae, DiffusersAutoencoderKL, "vae"), + ): + module = module_cls.from_pretrained(repo, subfolder=subfolder, **load) + state = {} + for key, value in module.state_dict().items(): + if subfolder == "vae" and ".attentions." in key: + for old, new in legacy.items(): + key = key.replace(old, new) + state[key] = value.detach().cpu().numpy() + del module + consumed = set() + trainable, non_trainable = split_model_weights(component) + for keras_weight, _ in tqdm( + trainable + non_trainable, desc=f"Transferring {subfolder} weights to Keras" + ): + key = "/".join(keras_weight.path.split("/")[-2:]) + for old, new in WEIGHT_NAME_MAPPING.items(): + key = key.replace(old, new) + consumed.add(key) + if key not in state: + raise WeightMappingError(keras_weight.path, key) + torch_weight = state[key] + if not compare_keras_torch_names( + keras_weight.path, keras_weight, key, torch_weight + ): + raise WeightShapeMismatchError( + keras_weight.path, keras_weight.shape, key, torch_weight.shape + ) + if key.startswith("time_embedding.") and keras_weight.ndim == 2: + # transfer_weights treats any "embedding" 2D weight as a lookup + # table; the timestep MLP's linears are dense kernels + keras_weight.assign(np.transpose(torch_weight)) + continue + transfer_weights(key, keras_weight, torch_weight) + unused = sorted(set(state) - consumed) + if unused: + raise ValueError( + f"{type(component).__name__}: {len(unused)} checkpoint tensors " + f"unused, e.g. {unused[:3]}." + ) + del state + gc.collect() text_encoder = HFCLIPTextModel.from_pretrained( repo, subfolder="text_encoder", **load ) text_state = { k if k.startswith("text_model.") else f"text_model.{k}": v - for k, v in numpy_state_dict(text_encoder).items() + for k, v in { + k: v.detach().cpu().numpy() for k, v in text_encoder.state_dict().items() + }.items() } CLIPTextModel.transfer_from_hf(model.text_encoder, text_state) del text_encoder @@ -264,7 +202,7 @@ def build_from_diffusers(repo, token=None, model_cls=None, config_cls=None): for variant, source in sources.items(): print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") - model, config = build_from_diffusers(source, token=token) + model, config = transfer_stable_diffusion(source, token=token) n_bytes = sum(int(np.prod(w.shape)) * 4 for w in model.weights) stem = os.path.join(OUT_DIR, variant.replace("-", "_")) diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_config.py b/zeromodels/models/stable_diffusion/stable_diffusion_config.py index 85f6c9a2..ad5c6128 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_config.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_config.py @@ -117,6 +117,10 @@ class AutoencoderKLConfig(BaseConfig): force_upcast (`bool`, *optional*, defaults to False): Build the VAE in float32 whatever dtype the rest of the model loads in (the SDXL VAE overflows in float16). + shift_factor (`float`, *optional*, defaults to 0.0): + Latent offset applied with the scaling (SD3: ``(z - shift) * scale``). + use_quant_conv / use_post_quant_conv (`bool`, *optional*, defaults to True): + The 1x1 convolutions around the latent (absent in the SD3 VAE). Examples: @@ -140,6 +144,9 @@ class AutoencoderKLConfig(BaseConfig): sample_size: int = 512 scaling_factor: float = 0.18215 force_upcast: bool = False + shift_factor: float = 0.0 + use_quant_conv: bool = True + use_post_quant_conv: bool = True class StableDiffusionTextConfig(CLIPTextConfig): diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_layers.py b/zeromodels/models/stable_diffusion/stable_diffusion_layers.py index 21ca200d..63ba4f8c 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_layers.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_layers.py @@ -51,7 +51,7 @@ def group_norm(x, name, channels_axis, groups=GROUPS, eps=1e-5): @keras.saving.register_keras_serializable(package="zeromodels") -class ResnetBlock2D(layers.Layer): +class StableDiffusionResnetBlock2D(layers.Layer): """Diffusers ``ResnetBlock2D``: GroupNorm/SiLU/conv, additive time embedding, GroupNorm/SiLU/conv, plus a 1x1 shortcut when the channel count changes. @@ -187,7 +187,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class CrossAttention(layers.Layer): +class StableDiffusionCrossAttention(layers.Layer): """Diffusers ``Attention`` (``to_q`` / ``to_k`` / ``to_v`` / ``to_out.0``) over ``(B, N, C)`` tokens; self-attention when called without a context. @@ -258,7 +258,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class GEGLUFeedForward(layers.Layer): +class StableDiffusionGEGLUFeedForward(layers.Layer): """Diffusers ``FeedForward`` with GEGLU: ``proj`` to ``2 * inner`` gated by GELU, then back down (``net.0.proj`` / ``net.2``). @@ -302,7 +302,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class BasicTransformerBlock(layers.Layer): +class StableDiffusionBasicTransformerBlock(layers.Layer): """Self-attention, cross-attention, GEGLU feed-forward, each pre-normed with a residual (diffusers ``BasicTransformerBlock``). @@ -321,15 +321,19 @@ def __init__(self, dim, heads, module_path, **kwargs): self.norm1 = layers.LayerNormalization( epsilon=1e-5, name=safe_name(f"{module_path}.norm1") ) - self.attn1 = CrossAttention(dim, heads, module_path=f"{module_path}.attn1") + self.attn1 = StableDiffusionCrossAttention( + dim, heads, module_path=f"{module_path}.attn1" + ) self.norm2 = layers.LayerNormalization( epsilon=1e-5, name=safe_name(f"{module_path}.norm2") ) - self.attn2 = CrossAttention(dim, heads, module_path=f"{module_path}.attn2") + self.attn2 = StableDiffusionCrossAttention( + dim, heads, module_path=f"{module_path}.attn2" + ) self.norm3 = layers.LayerNormalization( epsilon=1e-5, name=safe_name(f"{module_path}.norm3") ) - self.ff = GEGLUFeedForward(dim, module_path=f"{module_path}.ff") + self.ff = StableDiffusionGEGLUFeedForward(dim, module_path=f"{module_path}.ff") def build(self, input_shape): x_shape, context_shape = input_shape @@ -359,9 +363,9 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class Transformer2DModel(layers.Layer): +class StableDiffusionTransformer2DModel(layers.Layer): """Diffusers ``Transformer2DModel``: GroupNorm, in-proj, ``num_layers`` - ``BasicTransformerBlock`` over the flattened spatial tokens, out-proj, + ``StableDiffusionBasicTransformerBlock`` over the flattened spatial tokens, out-proj, residual. ``call([x, context])`` with ``x`` in the active image data format. Args: @@ -436,7 +440,7 @@ def __init__( # checkpoints' h5 layout follows attribute names); the deeper SDXL stacks # add transformer_block_1, transformer_block_2, ... for k in range(num_layers): - block = BasicTransformerBlock( + block = StableDiffusionBasicTransformerBlock( channels, heads, module_path=f"{module_path}.transformer_blocks.{k}" ) setattr( @@ -517,7 +521,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class Downsample2D(layers.Layer): +class StableDiffusionDownsample2D(layers.Layer): """Strided 3x3 conv downsample (diffusers ``Downsample2D``). Args: @@ -605,7 +609,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class Upsample2D(layers.Layer): +class StableDiffusionUpsample2D(layers.Layer): """Nearest 2x upsample + 3x3 conv (diffusers ``Upsample2D``). Args: @@ -673,7 +677,7 @@ def get_config(self): @keras.saving.register_keras_serializable(package="zeromodels") -class VaeAttentionBlock(layers.Layer): +class StableDiffusionVaeAttentionBlock(layers.Layer): """Single-head spatial self-attention of the VAE mid block: GroupNorm, attention over the flattened pixels (biased q/k/v), residual. @@ -712,7 +716,7 @@ def __init__( epsilon=GROUP_EPS, name=safe_name(f"{module_path}.group_norm"), ) - self.attention = CrossAttention( + self.attention = StableDiffusionCrossAttention( channels, heads=1, module_path=module_path, diff --git a/zeromodels/models/stable_diffusion/stable_diffusion_model.py b/zeromodels/models/stable_diffusion/stable_diffusion_model.py index 6dedfdd0..7956b43e 100644 --- a/zeromodels/models/stable_diffusion/stable_diffusion_model.py +++ b/zeromodels/models/stable_diffusion/stable_diffusion_model.py @@ -7,10 +7,6 @@ from zeromodels.base.base_scheduler import PNDMScheduler, get_scheduler from zeromodels.models.clip import CLIPTextModel -from .convert_stable_diffusion_diffusers_to_keras import ( - RenamedStateDict, - transfer_component, -) from .stable_diffusion_config import ( AutoencoderKLConfig, StableDiffusionConfig, @@ -18,11 +14,11 @@ ) from .stable_diffusion_layers import ( GROUP_EPS, - Downsample2D, - ResnetBlock2D, - Transformer2DModel, - Upsample2D, - VaeAttentionBlock, + StableDiffusionDownsample2D, + StableDiffusionResnetBlock2D, + StableDiffusionTransformer2DModel, + StableDiffusionUpsample2D, + StableDiffusionVaeAttentionBlock, group_norm, safe_name, time_embedding_mlp, @@ -172,7 +168,7 @@ def __init__( for i, block_type in enumerate(down_block_types): out_ch = block_out_channels[i] for j in range(layers_per_block): - sample = ResnetBlock2D( + sample = StableDiffusionResnetBlock2D( out_ch, module_path=f"down_blocks.{i}.resnets.{j}", groups=norm_num_groups, @@ -180,7 +176,7 @@ def __init__( channels_axis=channels_axis, )([sample, temb]) if block_type == CROSS_ATTN_DOWN: - sample = Transformer2DModel( + sample = StableDiffusionTransformer2DModel( out_ch, heads_per_level[i], module_path=f"down_blocks.{i}.attentions.{j}", @@ -192,7 +188,7 @@ def __init__( )([sample, context]) skips.append(sample) if i != len(down_block_types) - 1: - sample = Downsample2D( + sample = StableDiffusionDownsample2D( out_ch, module_path=f"down_blocks.{i}.downsamplers.0", data_format=data_format, @@ -201,14 +197,14 @@ def __init__( skips.append(sample) mid_ch = block_out_channels[-1] - sample = ResnetBlock2D( + sample = StableDiffusionResnetBlock2D( mid_ch, module_path="mid_block.resnets.0", groups=norm_num_groups, data_format=data_format, channels_axis=channels_axis, )([sample, temb]) - sample = Transformer2DModel( + sample = StableDiffusionTransformer2DModel( mid_ch, heads_per_level[-1], module_path="mid_block.attentions.0", @@ -218,7 +214,7 @@ def __init__( data_format=data_format, channels_axis=channels_axis, )([sample, context]) - sample = ResnetBlock2D( + sample = StableDiffusionResnetBlock2D( mid_ch, module_path="mid_block.resnets.1", groups=norm_num_groups, @@ -233,7 +229,7 @@ def __init__( out_ch = reversed_channels[i] for j in range(layers_per_block + 1): sample = layers.Concatenate(axis=channels_axis)([sample, skips.pop()]) - sample = ResnetBlock2D( + sample = StableDiffusionResnetBlock2D( out_ch, module_path=f"up_blocks.{i}.resnets.{j}", groups=norm_num_groups, @@ -241,7 +237,7 @@ def __init__( channels_axis=channels_axis, )([sample, temb]) if block_type == CROSS_ATTN_UP: - sample = Transformer2DModel( + sample = StableDiffusionTransformer2DModel( out_ch, reversed_heads[i], module_path=f"up_blocks.{i}.attentions.{j}", @@ -252,7 +248,7 @@ def __init__( channels_axis=channels_axis, )([sample, context]) if i != len(up_block_types) - 1: - sample = Upsample2D( + sample = StableDiffusionUpsample2D( out_ch, module_path=f"up_blocks.{i}.upsamplers.0", data_format=data_format, @@ -356,10 +352,6 @@ def kwargs_from_diffusers_config(config): ) return kwargs - @classmethod - def transfer_from_hf(cls, keras_model, state_dict): - transfer_component(keras_model, state_dict) - def get_config(self): config = super().get_config() config.update( @@ -390,8 +382,8 @@ def get_config(self): def vae_resnet(channels, module_path, groups, data_format, channels_axis): - """A VAE ``ResnetBlock2D``: no timestep conditioning, GroupNorm eps 1e-6.""" - return ResnetBlock2D( + """A VAE ``StableDiffusionResnetBlock2D``: no timestep conditioning, GroupNorm eps 1e-6.""" + return StableDiffusionResnetBlock2D( channels, module_path=module_path, groups=groups, @@ -444,7 +436,7 @@ def build_vae_encoder( )(x) if i != len(block_out_channels) - 1: # the VAE pads bottom/right only before its stride-2 conv (padding=0) - x = Downsample2D( + x = StableDiffusionDownsample2D( ch, module_path=f"encoder.down_blocks.{i}.downsamplers.0", padding=0, @@ -455,7 +447,7 @@ def build_vae_encoder( x = vae_resnet( mid, "encoder.mid_block.resnets.0", groups, data_format, channels_axis )(x) - x = VaeAttentionBlock( + x = StableDiffusionVaeAttentionBlock( mid, module_path="encoder.mid_block.attentions.0", groups=groups, @@ -518,7 +510,7 @@ def build_vae_decoder( x = vae_resnet( mid, "decoder.mid_block.resnets.0", groups, data_format, channels_axis )(x) - x = VaeAttentionBlock( + x = StableDiffusionVaeAttentionBlock( mid, module_path="decoder.mid_block.attentions.0", groups=groups, @@ -539,7 +531,7 @@ def build_vae_decoder( channels_axis, )(x) if i != len(reversed_channels) - 1: - x = Upsample2D( + x = StableDiffusionUpsample2D( ch, module_path=f"decoder.up_blocks.{i}.upsamplers.0", data_format=data_format, @@ -585,8 +577,11 @@ class AutoencoderKL(BaseModel): ``latent_channels`` (4), ``block_out_channels`` ((128, 256, 512, 512)), ``layers_per_block`` (2), ``norm_num_groups`` (32), ``sample_size`` (the image resolution the encoder/decoder graphs are built for), ``scaling_factor`` - (0.18215) and ``force_upcast`` (build this VAE in float32 whatever dtype the - rest of the model loads in: the SDXL VAE overflows in float16). + (0.18215), ``force_upcast`` (build this VAE in float32 whatever dtype the + rest of the model loads in: the SDXL VAE overflows in float16), + ``shift_factor`` (the SD3 latent offset) and ``use_quant_conv`` / + ``use_post_quant_conv`` (the 1x1 convolutions around the latent, absent in the + SD3 VAE). """ config_class = AutoencoderKLConfig @@ -603,6 +598,9 @@ def __init__( sample_size=512, scaling_factor=0.18215, force_upcast=False, + shift_factor=0.0, + use_quant_conv=True, + use_post_quant_conv=True, data_format=None, channels_axis=None, name="AutoencoderKL", @@ -642,17 +640,25 @@ def __init__( data_format, channels_axis, ) - quant_conv = layers.Conv2D( - 2 * latent_channels, - 1, - data_format=data_format, - name="quant_conv", + quant_conv = ( + layers.Conv2D( + 2 * latent_channels, + 1, + data_format=data_format, + name="quant_conv", + ) + if use_quant_conv + else None ) - post_quant_conv = layers.Conv2D( - latent_channels, - 1, - data_format=data_format, - name="post_quant_conv", + post_quant_conv = ( + layers.Conv2D( + latent_channels, + 1, + data_format=data_format, + name="post_quant_conv", + ) + if use_post_quant_conv + else None ) image_in = layers.Input( @@ -667,8 +673,12 @@ def __init__( else (h_lat, w_lat, latent_channels), name="latent", ) - moments = quant_conv(encoder(image_in)) - decoded = decoder(post_quant_conv(latent_in)) + moments = encoder(image_in) + if quant_conv is not None: + moments = quant_conv(moments) + decoded = decoder( + latent_in if post_quant_conv is None else post_quant_conv(latent_in) + ) super().__init__( inputs={"image": image_in, "latent": latent_in}, @@ -688,6 +698,9 @@ def __init__( self.sample_size = sample_size self.scaling_factor = scaling_factor self.force_upcast = force_upcast + self.shift_factor = shift_factor + self.use_quant_conv = use_quant_conv + self.use_post_quant_conv = use_post_quant_conv self.vae_scale_factor = factor self.encoder = encoder self.decoder = decoder @@ -695,7 +708,9 @@ def __init__( self.post_quant_conv = post_quant_conv def encode(self, image, sample=False, seed=None): - moments = self.quant_conv(self.encoder(image)) + moments = self.encoder(image) + if self.quant_conv is not None: + moments = self.quant_conv(moments) mean, logvar = ops.split(moments, 2, axis=self.channels_axis) if not sample: return mean @@ -705,7 +720,9 @@ def encode(self, image, sample=False, seed=None): return mean + std * noise def decode(self, latent): - return self.decoder(self.post_quant_conv(latent)) + if self.post_quant_conv is not None: + latent = self.post_quant_conv(latent) + return self.decoder(latent) def get_config(self): config = super().get_config() @@ -724,13 +741,12 @@ def from_diffusers_config(cls, config, sample_size=512, **kwargs): sample_size=sample_size, scaling_factor=config.get("scaling_factor", 0.18215), force_upcast=config.get("force_upcast", False), + shift_factor=config.get("shift_factor") or 0.0, + use_quant_conv=config.get("use_quant_conv", True), + use_post_quant_conv=config.get("use_post_quant_conv", True), **kwargs, ) - def transfer_from_hf(self, state_dict): - # legacy query/key/value/proj_attn spelling of a raw checkpoint read - transfer_component(self, RenamedStateDict(state_dict)) - @keras.saving.register_keras_serializable(package="zeromodels") class StableDiffusionModel(BaseModel): @@ -995,7 +1011,9 @@ def predict_noise(self, latents, timesteps, embeddings): )["sample"] def decode_latents(self, latents): - image = self.vae.decode(latents / self.vae.scaling_factor) + image = self.vae.decode( + latents / self.vae.scaling_factor + self.vae.shift_factor + ) if self.data_format == "channels_first": image = ops.transpose(image, (0, 2, 3, 1)) # generate() hands out HWC return image @@ -1006,4 +1024,6 @@ def encode_latents(self, image): # noise added for the strength) if self.data_format == "channels_first": image = ops.transpose(image, (0, 3, 1, 2)) # generate() hands in HWC - return self.vae.encode(image) * self.vae.scaling_factor + return ( + self.vae.encode(image) - self.vae.shift_factor + ) * self.vae.scaling_factor diff --git a/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py index 92a9ed1a..97ff389b 100644 --- a/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py +++ b/zeromodels/models/stable_diffusion_2/convert_stable_diffusion_2_diffusers_to_keras.py @@ -1,10 +1,10 @@ import numpy as np from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( - build_from_diffusers as build_stable_diffusion_from_diffusers, + config_from_diffusers as stable_diffusion_config_from_diffusers, ) from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( - config_from_diffusers as stable_diffusion_config_from_diffusers, + transfer_stable_diffusion, ) # Stable Diffusion 2.x: one architecture, five checkpoints (the 768px ones are @@ -33,7 +33,7 @@ def config_from_diffusers(repo, token=None): ) -def build_from_diffusers(repo, token=None): +def transfer_stable_diffusion_2(repo, token=None): from zeromodels.models.stable_diffusion_2.stable_diffusion_2_config import ( StableDiffusion2Config, ) @@ -41,7 +41,7 @@ def build_from_diffusers(repo, token=None): StableDiffusion2Model, ) - return build_stable_diffusion_from_diffusers( + return transfer_stable_diffusion( repo, token=token, model_cls=StableDiffusion2Model, @@ -70,7 +70,7 @@ def build_from_diffusers(repo, token=None): for variant, source in sources.items(): print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") - model, config = build_from_diffusers(source, token=token) + model, config = transfer_stable_diffusion_2(source, token=token) n_bytes = sum(int(np.prod(w.shape)) * 4 for w in model.weights) stem = os.path.join(OUT_DIR, variant.replace("-", "_")) diff --git a/zeromodels/models/stable_diffusion_3/__init__.py b/zeromodels/models/stable_diffusion_3/__init__.py new file mode 100644 index 00000000..df0f4cbe --- /dev/null +++ b/zeromodels/models/stable_diffusion_3/__init__.py @@ -0,0 +1,27 @@ +from .stable_diffusion_3_config import ( + StableDiffusion3Config, + StableDiffusion3T5EncoderConfig, + StableDiffusion3TextConfig, + StableDiffusion3TransformerConfig, + StableDiffusion3VAEConfig, +) +from .stable_diffusion_3_model import ( + SD3T5EncoderModel, + SD3Transformer2DModel, + StableDiffusion3Model, + StableDiffusion3TextToImage, +) +from .stable_diffusion_3_tokenizer import StableDiffusion3Tokenizer + +__all__ = [ + "SD3T5EncoderModel", + "SD3Transformer2DModel", + "StableDiffusion3Model", + "StableDiffusion3TextToImage", + "StableDiffusion3Config", + "StableDiffusion3T5EncoderConfig", + "StableDiffusion3TextConfig", + "StableDiffusion3TransformerConfig", + "StableDiffusion3VAEConfig", + "StableDiffusion3Tokenizer", +] diff --git a/zeromodels/models/stable_diffusion_3/convert_stable_diffusion_3_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_3/convert_stable_diffusion_3_diffusers_to_keras.py new file mode 100644 index 00000000..73f0958d --- /dev/null +++ b/zeromodels/models/stable_diffusion_3/convert_stable_diffusion_3_diffusers_to_keras.py @@ -0,0 +1,336 @@ +import re + +import numpy as np +from tqdm import tqdm + +from zeromodels.conversion.exceptions import ( + WeightMappingError, + WeightShapeMismatchError, +) +from zeromodels.conversion.weight_split_util import split_model_weights +from zeromodels.conversion.weight_transfer_util import ( + compare_keras_torch_names, + transfer_weights, +) +from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( + WEIGHT_NAME_MAPPING, +) +from zeromodels.models.stable_diffusion_xl.convert_stable_diffusion_xl_diffusers_to_keras import ( + LazyNumpyStateDict, + text_config_kwargs, + transfer_text_encoder, +) + +STABLE_DIFFUSION_3_SOURCES = { + "stable-diffusion-3-medium": "stabilityai/stable-diffusion-3-medium-diffusers", +} +T5_XXL_ENCODER_VARIANT = "t5-v1_1-xxl-encoder" +T5_ENCODER_FIXED_LEAVES = { + "shared": "shared.weight", + "encoder_rel_bias": ( + "encoder.block.0.layer.0.SelfAttention.relative_attention_bias.weight" + ), + "encoder_final_layer_norm": "encoder.final_layer_norm.weight", +} + + +def config_from_diffusers(repo, token=None, config_cls=None): + from diffusers import AutoencoderKL, FlowMatchEulerDiscreteScheduler + from diffusers import SD3Transformer2DModel as DiffusersSD3Transformer2DModel + from transformers import CLIPTextConfig, CLIPTokenizerFast, T5TokenizerFast + + from zeromodels.models.stable_diffusion_3.stable_diffusion_3_config import ( + StableDiffusion3Config, + ) + from zeromodels.models.stable_diffusion_3.stable_diffusion_3_model import ( + SD3Transformer2DModel, + ) + + config_cls = config_cls or StableDiffusion3Config + transformer = dict( + DiffusersSD3Transformer2DModel.load_config( + repo, subfolder="transformer", token=token + ) + ) + vae = dict(AutoencoderKL.load_config(repo, subfolder="vae", token=token)) + text = CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder", token=token + ).to_dict() + text_2 = CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder_2", token=token + ).to_dict() + scheduler = { + k: v + for k, v in FlowMatchEulerDiscreteScheduler.load_config( + repo, subfolder="scheduler", token=token + ).items() + if k == "_class_name" or not k.startswith("_") + } + tokenizer = CLIPTokenizerFast.from_pretrained( + repo, subfolder="tokenizer", token=token + ) + tokenizer_2 = CLIPTokenizerFast.from_pretrained( + repo, subfolder="tokenizer_2", token=token + ) + tokenizer_3 = T5TokenizerFast.from_pretrained( + repo, subfolder="tokenizer_3", token=token + ) + return config_cls( + transformer_config=SD3Transformer2DModel.kwargs_from_diffusers_config( + transformer + ), + vae_config={ + "in_channels": vae.get("in_channels", 3), + "out_channels": vae.get("out_channels", 3), + "latent_channels": vae.get("latent_channels", 16), + "block_out_channels": tuple(vae["block_out_channels"]), + "layers_per_block": vae.get("layers_per_block", 2), + "norm_num_groups": vae.get("norm_num_groups", 32), + "sample_size": transformer.get("sample_size", 128) + * 2 ** (len(vae["block_out_channels"]) - 1), + "scaling_factor": vae.get("scaling_factor") or 1.5305, + "shift_factor": vae.get("shift_factor") or 0.0, + "force_upcast": bool(vae.get("force_upcast", True)), + "use_quant_conv": bool(vae.get("use_quant_conv", True)), + "use_post_quant_conv": bool(vae.get("use_post_quant_conv", True)), + }, + text_config={ + **text_config_kwargs(text), + "projection_dim": text.get("projection_dim", 768), + "hidden_act": text.get("hidden_act", "quick_gelu"), + }, + text_config_2={ + **text_config_kwargs(text_2), + "projection_dim": text_2.get("projection_dim", 1280), + "hidden_act": text_2.get("hidden_act", "gelu"), + }, + hidden_act=text.get("hidden_act", "quick_gelu"), + layer_norm_eps=text.get("layer_norm_eps", 1e-5), + scheduler_config=scheduler, + bos_token_id=tokenizer.bos_token_id, + eos_token_id=tokenizer.eos_token_id, + pad_token_id=tokenizer.pad_token_id, + pad_token_id_2=tokenizer_2.pad_token_id, + eos_token_id_3=tokenizer_3.eos_token_id, + pad_token_id_3=tokenizer_3.pad_token_id, + ) + + +def from_pretrained_fp16(cls, repo, subfolder, token=None): + import torch + + try: + return cls.from_pretrained( + repo, + subfolder=subfolder, + variant="fp16", + torch_dtype=torch.float16, + token=token, + ) + except OSError: + return cls.from_pretrained( + repo, subfolder=subfolder, torch_dtype=torch.float16, token=token + ) + + +def transfer_stable_diffusion_3( + repo, token=None, dtype="float16", model_cls=None, config_cls=None +): + import gc + + import torch + from diffusers import AutoencoderKL as DiffusersAutoencoderKL + from diffusers import SD3Transformer2DModel as DiffusersSD3Transformer2DModel + from transformers import CLIPTextModelWithProjection + + from zeromodels.base.base_mixin import build_dtype_scope + from zeromodels.models.stable_diffusion_3.stable_diffusion_3_model import ( + StableDiffusion3Model, + ) + + model_cls = model_cls or StableDiffusion3Model + config = config_from_diffusers(repo, token=token, config_cls=config_cls) + with build_dtype_scope(dtype): + model = model_cls(config) + + legacy = { + ".query.": ".to_q.", + ".key.": ".to_k.", + ".value.": ".to_v.", + ".proj_attn.": ".to_out.0.", + } + for component, subfolder in ( + (model.transformer, "transformer"), + (model.vae, "vae"), + ): + ignore = () + if subfolder == "transformer": + module = from_pretrained_fp16( + DiffusersSD3Transformer2DModel, repo, subfolder, token=token + ) + state = LazyNumpyStateDict(module) + table = component.get_layer("pos_embed").pos_embed + table.assign(np.asarray(state["pos_embed.pos_embed"]).reshape(table.shape)) + ignore = ("pos_embed.pos_embed",) + else: + module = DiffusersAutoencoderKL.from_pretrained( + repo, subfolder=subfolder, torch_dtype=torch.float32, token=token + ) + state = {} + for key, value in module.state_dict().items(): + if ".attentions." in key: + for old, new in legacy.items(): + key = key.replace(old, new) + state[key] = value.detach().cpu().numpy() + del module + consumed = set(ignore) + trainable, non_trainable = split_model_weights(component) + for keras_weight, _ in tqdm( + trainable + non_trainable, desc=f"Transferring {subfolder} weights to Keras" + ): + key = "/".join(keras_weight.path.split("/")[-2:]) + for old, new in WEIGHT_NAME_MAPPING.items(): + key = key.replace(old, new) + if key in ignore: + continue + consumed.add(key) + if key not in state: + raise WeightMappingError(keras_weight.path, key) + torch_weight = state[key] + if not compare_keras_torch_names( + keras_weight.path, keras_weight, key, torch_weight + ): + raise WeightShapeMismatchError( + keras_weight.path, keras_weight.shape, key, torch_weight.shape + ) + transfer_weights(key, keras_weight, torch_weight) + unused = sorted(set(state) - consumed) + if unused: + raise ValueError( + f"{type(component).__name__}: {len(unused)} checkpoint tensors " + f"unused, e.g. {unused[:3]}." + ) + del state + gc.collect() + + for attr, subfolder in ( + ("text_encoder", "text_encoder"), + ("text_encoder_2", "text_encoder_2"), + ): + text_encoder = CLIPTextModelWithProjection.from_pretrained( + repo, subfolder=subfolder, torch_dtype=torch.float32, token=token + ) + transfer_text_encoder(getattr(model, attr), text_encoder) + del text_encoder + gc.collect() + return model, config + + +def transfer_t5_encoder(repo, token=None, dtype="float16"): + import json + + from huggingface_hub import hf_hub_download + from safetensors import safe_open + from transformers import T5Config + + from zeromodels.base.base_mixin import build_dtype_scope + from zeromodels.models.stable_diffusion_3.stable_diffusion_3_model import ( + SD3T5EncoderModel, + ) + + hf_config = T5Config.from_pretrained(repo, subfolder="text_encoder_3", token=token) + cfg = SD3T5EncoderModel.kwargs_from_hf_config(hf_config.to_dict()) + with build_dtype_scope(dtype): + model = SD3T5EncoderModel(**cfg) + + from huggingface_hub.errors import EntryNotFoundError + + try: + index = hf_hub_download( + repo, + "model.safetensors.index.fp16.json", + subfolder="text_encoder_3", + token=token, + ) + except EntryNotFoundError: + index = hf_hub_download( + repo, + "model.safetensors.index.json", + subfolder="text_encoder_3", + token=token, + ) + with open(index, encoding="utf-8") as f: + weight_map = json.load(f)["weight_map"] + shard_paths = { + shard: hf_hub_download(repo, shard, subfolder="text_encoder_3", token=token) + for shard in sorted(set(weight_map.values())) + } + for weight in tqdm(model.weights, desc="Transferring weights to Keras"): + leaf = weight.path.split("/")[-2] + if leaf in T5_ENCODER_FIXED_LEAVES: + key = T5_ENCODER_FIXED_LEAVES[leaf] + else: + m = re.match(r"enc_(\d+)_(attn|ff)_(q|k|v|o|ln|wi_0|wi_1|wo)$", leaf) + if not m: + raise WeightMappingError(weight.path, leaf) + idx, role, part = m.groups() + sub, name = ( + ("0", "SelfAttention") if role == "attn" else ("1", "DenseReluDense") + ) + if part == "ln": + key = f"encoder.block.{idx}.layer.{sub}.layer_norm.weight" + else: + key = f"encoder.block.{idx}.layer.{sub}.{name}.{part}.weight" + with safe_open(shard_paths[weight_map[key]], framework="np") as shard: + transfer_weights(weight.path, weight, shard.get_tensor(key)) + return model, cfg + + +if __name__ == "__main__": + import gc + import os + + import keras + + OUT_DIR = os.environ.get("ZM_OUT_DIR", "C:/Users/gites/Desktop/code/v1_weights") + os.makedirs(OUT_DIR, exist_ok=True) + MAX_SHARD_GB = 5.0 + token = os.environ.get("HF_TOKEN") + selected = [v for v in os.environ.get("ZM_VARIANTS", "").split(",") if v] + sources = { + variant: source + for variant, source in STABLE_DIFFUSION_3_SOURCES.items() + if not selected or variant in selected + } + + def save(model, variant): + n_bytes = sum( + int(np.prod(w.shape)) * np.dtype(w.dtype).itemsize for w in model.weights + ) + stem = os.path.join(OUT_DIR, variant.replace("-", "_").replace(".", "_")) + if n_bytes > MAX_SHARD_GB * 1024**3: + out = f"{stem}.weights.json" + model.save_weights(out, max_shard_size=MAX_SHARD_GB) + else: + out = f"{stem}.weights.h5" + model.save_weights(out) + print(f" saved -> {out} ({n_bytes / 1024**3:.2f} GB)") + + for variant, source in sources.items(): + print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") + model, config = transfer_stable_diffusion_3(source, token=token) + save(model, variant) + del model + keras.backend.clear_session() + gc.collect() + + if not selected or T5_XXL_ENCODER_VARIANT in selected: + source = next(iter(STABLE_DIFFUSION_3_SOURCES.values())) + print( + f"\n{'=' * 60}\nConverting: {T5_XXL_ENCODER_VARIANT} <- {source}\n{'=' * 60}" + ) + model, cfg = transfer_t5_encoder(source, token=token) + save(model, T5_XXL_ENCODER_VARIANT) + del model + keras.backend.clear_session() + gc.collect() diff --git a/zeromodels/models/stable_diffusion_3/stable_diffusion_3_config.py b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_config.py new file mode 100644 index 00000000..3da5514f --- /dev/null +++ b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_config.py @@ -0,0 +1,236 @@ +from zeromodels.base import BaseConfig +from zeromodels.models.stable_diffusion.stable_diffusion_config import ( + AutoencoderKLConfig, +) +from zeromodels.models.stable_diffusion_xl.stable_diffusion_xl_config import ( + StableDiffusionXLTextConfig2, +) + + +class StableDiffusion3TransformerConfig(BaseConfig): + r"""Configuration for [`SD3Transformer2DModel`], the Stable Diffusion 3 MMDiT. + + The defaults match the SD 3 medium transformer (2B parameters). Fields mirror + the model constructor and serialize flat; build a model from it with + ``SD3Transformer2DModel(config)``. + + Args: + sample_size (`int`, *optional*, defaults to 128): + Latent spatial size the graph is built for (image size / 8). + patch_size (`int`, *optional*, defaults to 2): + Patch side; the token grid is ``sample_size / patch_size``. + in_channels / out_channels (`int`, *optional*, defaults to 16): + Latent channel counts in and out. + num_layers (`int`, *optional*, defaults to 24): + Joint transformer blocks. + attention_head_dim (`int`, *optional*, defaults to 64): + Width of one attention head. + num_attention_heads (`int`, *optional*, defaults to 24): + Attention heads; the token width is ``num_attention_heads * + attention_head_dim``. + joint_attention_dim (`int`, *optional*, defaults to 4096): + Width of the text features (the T5 width; the CLIP features are padded + to it). + caption_projection_dim (`int`, *optional*, defaults to 1536): + Width the text features are projected to (the token width). + pooled_projection_dim (`int`, *optional*, defaults to 2048): + Width of the pooled CLIP embeddings added to the timestep embedding. + pos_embed_max_size (`int`, *optional*, defaults to 192): + Side of the precomputed position grid the latent grid is cropped from. + qk_norm (`str`, *optional*): + ``"rms_norm"`` normalizes q and k per head (SD 3.5); `None` for SD 3. + dual_attention_layers (`tuple`, *optional*): + Blocks with a second, latent-only attention (SD 3.5 medium: 0 to 12). + text_seq_len (`int`, *optional*, defaults to 333): + Static text sequence length (77 CLIP + 256 T5 tokens). + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_3 import StableDiffusion3TransformerConfig, SD3Transformer2DModel + + >>> config = StableDiffusion3TransformerConfig() + >>> model = SD3Transformer2DModel(config) + >>> model.config.num_layers + 24 + ```""" + + model_type = "sd3_transformer_2d" + + sample_size: int = 128 + patch_size: int = 2 + in_channels: int = 16 + out_channels: int = 16 + num_layers: int = 24 + attention_head_dim: int = 64 + num_attention_heads: int = 24 + joint_attention_dim: int = 4096 + caption_projection_dim: int = 1536 + pooled_projection_dim: int = 2048 + pos_embed_max_size: int = 192 + qk_norm: str | None = None + dual_attention_layers: tuple = () + text_seq_len: int = 333 + + +class StableDiffusion3T5EncoderConfig(BaseConfig): + r"""Configuration for [`SD3T5EncoderModel`], the third Stable Diffusion 3 text + encoder: the encoder half of T5 v1.1 XXL. + + The defaults are the T5-XXL encoder every SD 3 / 3.5 checkpoint conditions on + (24 layers, 4096 wide, 64 heads of 64, gated-GELU feed-forward of 10240, 4.7B + parameters), hosted once as ``zeromodels/t5-v1_1-xxl-encoder``. Fields mirror + the model constructor and serialize flat. + + Args: + vocab_size (`int`, *optional*, defaults to 32128): + SentencePiece vocabulary. + embed_dim (`int`, *optional*, defaults to 4096): + Token width (``d_model``). + key_value_dim (`int`, *optional*, defaults to 64): + Width of one attention head (``d_kv``). + mlp_dim (`int`, *optional*, defaults to 10240): + Feed-forward inner width (``d_ff``). + num_layers (`int`, *optional*, defaults to 24): + Encoder blocks. + num_heads (`int`, *optional*, defaults to 64): + Attention heads. + relative_attention_num_buckets (`int`, *optional*, defaults to 32): + Relative-position-bias buckets. + relative_attention_max_distance (`int`, *optional*, defaults to 128): + Largest bucketed distance. + layer_norm_eps (`float`, *optional*, defaults to 1e-06): + RMSNorm epsilon. + pad_token_id / eos_token_id (`int`, *optional*, defaults to 0 / 1): + The tokenizer's ```` and ``
    ``. + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_3 import StableDiffusion3T5EncoderConfig, SD3T5EncoderModel + + >>> config = StableDiffusion3T5EncoderConfig(num_layers=2, embed_dim=64, mlp_dim=128, num_heads=4) + >>> model = SD3T5EncoderModel(config) + >>> model.config.num_layers + 2 + ```""" + + model_type = "stable_diffusion_3_t5_encoder" + + vocab_size: int = 32128 + embed_dim: int = 4096 + key_value_dim: int = 64 + mlp_dim: int = 10240 + num_layers: int = 24 + num_heads: int = 64 + relative_attention_num_buckets: int = 32 + relative_attention_max_distance: int = 128 + layer_norm_eps: float = 1e-06 + pad_token_id: int = 0 + eos_token_id: int = 1 + + +class StableDiffusion3VAEConfig(AutoencoderKLConfig): + r"""The Stable Diffusion 3 VAE: an [`AutoencoderKLConfig`] with 16 latent channels, + no quant convolutions, the SD 3 latent scaling (1.5305) and shift (0.0609), + built for 1024px in float32 (``force_upcast``).""" + + latent_channels: int = 16 + sample_size: int = 1024 + scaling_factor: float = 1.5305 + shift_factor: float = 0.0609 + force_upcast: bool = True + use_quant_conv: bool = False + use_post_quant_conv: bool = False + + +class StableDiffusion3TextConfig(StableDiffusionXLTextConfig2): + r"""The first Stable Diffusion 3 text tower: CLIP ViT-L/14's text encoder with + its 768-d projection (``CLIPTextModelWithProjection``), ``quick_gelu``.""" + + hidden_dim: int = 768 + num_heads: int = 12 + num_layers: int = 12 + projection_dim: int = 768 + hidden_act: str = "quick_gelu" + + +class StableDiffusion3Config(BaseConfig): + r"""Configuration for [`StableDiffusion3Model`], the hosted SD 3 weights container. + + One config for the container's components, so a repo carries a single + ``zm_config.json`` (nested ``transformer_config`` / ``vae_config`` / + ``text_config`` / ``text_config_2``) plus the weights, and loads with the + standard ``from_weights("zeromodels/")``. The constructor stays flat: + sub-config fields are prefixed ``transformer_`` / ``vae_`` / ``text_`` / + ``text_2_``. The third text encoder (T5-XXL) is not a component: it is a + separately hosted :class:`SD3T5EncoderModel` (its own + [`StableDiffusion3T5EncoderConfig`]) the task attaches on demand; + ``max_sequence_length`` and the T5 token ids describe its inputs. + + Args: + transformer_config ([`StableDiffusion3TransformerConfig`], *optional*): The + MMDiT. + vae_config ([`StableDiffusion3VAEConfig`], *optional*): The 16-channel VAE. + text_config ([`StableDiffusion3TextConfig`], *optional*): The CLIP ViT-L/14 + text encoder (with projection). + text_config_2 ([`StableDiffusionXLTextConfig2`], *optional*): The OpenCLIP + ViT-bigG/14 text encoder (with projection). + hidden_act (`str`, *optional*, defaults to `"quick_gelu"`): + First text tower activation (the second carries its own). + layer_norm_eps (`float`, *optional*, defaults to 1e-05): + Text encoder LayerNorm epsilon. + bos_token_id / eos_token_id / pad_token_id (`int`, *optional*): + CLIP's ``<|startoftext|>`` (49406) and ``<|endoftext|>`` (49407, also the + first tokenizer's pad). + pad_token_id_2 (`int`, *optional*, defaults to 0): + The second CLIP tokenizer pads with ``!`` (id 0). + max_sequence_length (`int`, *optional*, defaults to 256): + T5 token length. + eos_token_id_3 / pad_token_id_3 (`int`, *optional*, defaults to 1 / 0): + The T5 tokenizer's ``
    `` and ````. + scheduler_config (`dict`, *optional*): + The checkpoint's sampler in the diffusers ``scheduler_config.json`` form + (``FlowMatchEulerDiscreteScheduler`` with its ``shift``). + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_3 import StableDiffusion3Config, StableDiffusion3Model + + >>> config = StableDiffusion3Config() + >>> model = StableDiffusion3Model(config) # random weights, SD 3 medium shapes + >>> model.config.transformer_config.num_layers + 24 + ```""" + + model_type = "stable_diffusion_3" + + sub_configs = { + "transformer_config": StableDiffusion3TransformerConfig, + "vae_config": StableDiffusion3VAEConfig, + "text_config": StableDiffusion3TextConfig, + "text_config_2": StableDiffusionXLTextConfig2, + } + sub_config_prefixes = { + "transformer_config": "transformer_", + "vae_config": "vae_", + "text_config": "text_", + "text_config_2": "text_2_", + } + group_extras = {"text_config": ("vocab_size", "max_seq_len")} + + transformer_config: StableDiffusion3TransformerConfig | dict | None = None + vae_config: StableDiffusion3VAEConfig | dict | None = None + text_config: StableDiffusion3TextConfig | dict | None = None + text_config_2: StableDiffusionXLTextConfig2 | dict | None = None + hidden_act: str = "quick_gelu" + layer_norm_eps: float = 1e-05 + bos_token_id: int = 49406 + eos_token_id: int = 49407 + pad_token_id: int = 49407 + pad_token_id_2: int = 0 + max_sequence_length: int = 256 + eos_token_id_3: int = 1 + pad_token_id_3: int = 0 + scheduler_config: dict | None = None diff --git a/zeromodels/models/stable_diffusion_3/stable_diffusion_3_layers.py b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_layers.py new file mode 100644 index 00000000..9b373c0d --- /dev/null +++ b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_layers.py @@ -0,0 +1,668 @@ +import keras +import numpy as np +from keras import layers, ops + +from zeromodels.base.base_attention import active_attn_implementation, fused_attention +from zeromodels.models.stable_diffusion.stable_diffusion_layers import safe_name +from zeromodels.models.t5.t5_layers import T5LayerNorm, T5SelfAttentionLayer + +NORM_EPS = 1e-6 + + +def sincos_pos_embed_2d(embed_dim, grid_size, base_size): + """The MMDiT 2D sinusoidal position table ``(grid_size**2, embed_dim)`` + (diffusers ``get_2d_sincos_pos_embed``): positions ``arange(grid_size) * + base_size / grid_size``, the first half of the channels embedding the column + and the second half the row, each as ``[sin, cos]`` over ``embed_dim // 4`` + geometric frequencies. Computed in float64 like the reference, stored float32. + """ + positions = np.arange(grid_size, dtype=np.float64) / (grid_size / base_size) + cols, rows = np.meshgrid(positions, positions, indexing="xy") # (H, W) each + half = embed_dim // 2 + omega = np.arange(half // 2, dtype=np.float64) / (half / 2.0) + omega = 1.0 / 10000**omega + + def embed(pos): + out = np.outer(pos.reshape(-1), omega) + return np.concatenate([np.sin(out), np.cos(out)], axis=1) + + table = np.concatenate([embed(cols), embed(rows)], axis=1) + return table.astype(np.float32) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3PatchEmbed(layers.Layer): + """MMDiT patch embedding (diffusers ``StableDiffusion3PatchEmbed`` with SD3 cropping): a + ``patch_size`` strided convolution flattens the latent to tokens, plus the + sinusoidal position table of a ``pos_embed_max_size`` grid cropped (centered) + to the actual latent grid. The table is a non-trainable weight: the checkpoints + carry their own (the released SD 3 tables are not the textbook grid, and the + reference loads them rather than recomputing), initialized to the sinusoid. + + Args: + embed_dim: Token width. + patch_size: Patch (and stride) size. + pos_embed_max_size: Side of the precomputed position grid. + base_size: The latent side (in patches) the table is scaled to. + module_path: Diffusers module path (``pos_embed``). + data_format / channels_axis: Layout of the latent. + """ + + def __init__( + self, + embed_dim, + patch_size, + pos_embed_max_size, + base_size, + module_path="pos_embed", + data_format=None, + channels_axis=None, + **kwargs, + ): + kwargs.setdefault("name", safe_name(module_path)) + super().__init__(**kwargs) + self.embed_dim = embed_dim + self.patch_size = patch_size + self.pos_embed_max_size = pos_embed_max_size + self.base_size = base_size + self.module_path = module_path + self.data_format = data_format or keras.config.image_data_format() + self.channels_axis = ( + channels_axis + if channels_axis is not None + else (-1 if self.data_format == "channels_last" else 1) + ) + self.proj = layers.Conv2D( + embed_dim, + patch_size, + strides=patch_size, + padding="valid", + data_format=self.data_format, + name=safe_name(f"{module_path}.proj"), + ) + + def grid(self, input_shape): + if self.data_format == "channels_first": + return input_shape[2] // self.patch_size, input_shape[3] // self.patch_size + return input_shape[1] // self.patch_size, input_shape[2] // self.patch_size + + def build(self, input_shape): + self.proj.build(input_shape) + self.height, self.width = self.grid(input_shape) + if max(self.height, self.width) > self.pos_embed_max_size: + raise ValueError( + f"A {self.height}x{self.width} latent grid exceeds the " + f"{self.pos_embed_max_size}-patch position table." + ) + self.pos_embed = self.add_weight( + name="pos_embed", + shape=(self.pos_embed_max_size**2, self.embed_dim), + initializer=keras.initializers.Constant( + sincos_pos_embed_2d( + self.embed_dim, self.pos_embed_max_size, self.base_size + ) + ), + trainable=False, + ) + self.built = True + + def call(self, x): + h = self.proj(x) + if self.data_format == "channels_first": + h = ops.transpose(h, (0, 2, 3, 1)) + h = ops.reshape(h, (-1, self.height * self.width, self.embed_dim)) + # the centered crop of the table (the graph is built for one grid) + top = (self.pos_embed_max_size - self.height) // 2 + left = (self.pos_embed_max_size - self.width) // 2 + table = ops.reshape( + self.pos_embed, + (self.pos_embed_max_size, self.pos_embed_max_size, self.embed_dim), + ) + table = table[top : top + self.height, left : left + self.width] + table = ops.reshape(table, (1, self.height * self.width, self.embed_dim)) + return h + ops.cast(table, h.dtype) + + def compute_output_shape(self, input_shape): + height, width = self.grid(input_shape) + return (input_shape[0], height * width, self.embed_dim) + + def get_config(self): + config = super().get_config() + config.update( + { + "embed_dim": self.embed_dim, + "patch_size": self.patch_size, + "pos_embed_max_size": self.pos_embed_max_size, + "base_size": self.base_size, + "module_path": self.module_path, + "data_format": self.data_format, + "channels_axis": self.channels_axis, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3AdaLayerNorm(layers.Layer): + """Adaptive LayerNorm of the MMDiT blocks: a LayerNorm without affine + parameters, modulated by ``num_chunks`` vectors projected from the SiLU'd + conditioning embedding (diffusers ``AdaLayerNormZero`` (6 chunks), + ``SD35AdaLayerNormZeroX`` (9, the dual-attention blocks) and + ``AdaLayerNormContinuous`` (2, the final norm and the last block's context)). + + ``call(x, temb)`` returns ``(x_modulated, gate_msa, shift_mlp, scale_mlp, + gate_mlp)`` for 6 chunks (plus ``x_modulated_2, gate_msa2`` for 9), or just the + modulated ``x`` for 2 chunks (``scale, shift`` order there). + + Args: + dim: Token width. + num_chunks: 2, 6 or 9. + module_path: Diffusers module path (``transformer_blocks.0.norm1``). + """ + + def __init__(self, dim, num_chunks, module_path, **kwargs): + kwargs.setdefault("name", safe_name(module_path)) + super().__init__(**kwargs) + self.dim = dim + self.num_chunks = num_chunks + self.module_path = module_path + self.linear = layers.Dense( + num_chunks * dim, name=safe_name(f"{module_path}.linear") + ) + self.norm = layers.LayerNormalization( + epsilon=NORM_EPS, + center=False, + scale=False, + name=safe_name(f"{module_path}.norm"), + ) + + def build(self, input_shape): + x_shape, temb_shape = input_shape + self.linear.build(temb_shape) + self.norm.build(x_shape) + self.built = True + + def call(self, inputs): + x, temb = inputs + emb = self.linear(ops.silu(temb)) + chunks = ops.split(emb, self.num_chunks, axis=-1) + normed = self.norm(x) + if self.num_chunks == 2: + scale, shift = chunks + return normed * (1.0 + scale[:, None, :]) + shift[:, None, :] + shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = chunks[:6] + modulated = normed * (1.0 + scale_msa[:, None, :]) + shift_msa[:, None, :] + outputs = [modulated, gate_msa, shift_mlp, scale_mlp, gate_mlp] + if self.num_chunks == 9: + shift_msa2, scale_msa2, gate_msa2 = chunks[6:] + outputs.append( + normed * (1.0 + scale_msa2[:, None, :]) + shift_msa2[:, None, :] + ) + outputs.append(gate_msa2) + return outputs + + def compute_output_shape(self, input_shape): + x_shape, temb_shape = input_shape + if self.num_chunks == 2: + return tuple(x_shape) + vector = (x_shape[0], self.dim) + outputs = [tuple(x_shape), vector, vector, vector, vector] + if self.num_chunks == 9: + outputs += [tuple(x_shape), vector] + return outputs + + def get_config(self): + config = super().get_config() + config.update( + { + "dim": self.dim, + "num_chunks": self.num_chunks, + "module_path": self.module_path, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3JointAttention(layers.Layer): + """MMDiT joint attention (diffusers ``Attention`` + ``JointAttnProcessor``): + the latent tokens and the text tokens get their own q / k / v projections + (``to_q`` / ``add_q_proj``, ...), attend jointly over the concatenated + sequence, and are projected back separately (``to_out.0`` / ``to_add_out``). + + Args: + dim: Token width (inner attention width). + heads: Attention heads. + module_path: Diffusers module path (``transformer_blocks.0.attn``). + context: Whether the text stream takes part (the dual-attention ``attn2`` + of SD 3.5 attends the latent tokens alone). + context_out: Whether the text stream is projected back (not in the last + block, whose text output is unused). + qk_norm: ``"rms_norm"`` normalizes q and k per head (SD 3.5), ``None`` not. + attn_implementation: The :func:`fused_attention` implementation used + when the model was built and is run without an explicit one + (``Model.from_weights(attn_implementation=...)``). ``"fused"``: the + joint sequence is 4429 tokens at 1024px, where the portable + ``"sdpa"`` math materializes ``(B, heads, 4429, 4429)`` float32 + logits (3.8 GB) per block. + """ + + def __init__( + self, + dim, + heads, + module_path, + context=True, + context_out=True, + qk_norm=None, + attn_implementation="fused", + **kwargs, + ): + kwargs.setdefault("name", safe_name(module_path)) + super().__init__(**kwargs) + self.dim = dim + self.heads = heads + self.module_path = module_path + self.context = context + self.context_out = context_out + self.qk_norm = qk_norm + self.attn_implementation = attn_implementation + self.head_dim = dim // heads + self.scale = self.head_dim**-0.5 + self.to_q, self.to_k, self.to_v = ( + self.dense("to_q"), + self.dense("to_k"), + self.dense("to_v"), + ) + self.to_out = self.dense("to_out.0") + if qk_norm == "rms_norm": + self.norm_q = self.rms_norm("norm_q") + self.norm_k = self.rms_norm("norm_k") + if context: + self.add_q_proj = self.dense("add_q_proj") + self.add_k_proj = self.dense("add_k_proj") + self.add_v_proj = self.dense("add_v_proj") + if qk_norm == "rms_norm": + self.norm_added_q = self.rms_norm("norm_added_q") + self.norm_added_k = self.rms_norm("norm_added_k") + if context_out: + self.to_add_out = self.dense("to_add_out") + + def dense(self, leaf): + return layers.Dense(self.dim, name=safe_name(f"{self.module_path}.{leaf}")) + + def rms_norm(self, leaf): + return layers.RMSNormalization( + epsilon=NORM_EPS, name=safe_name(f"{self.module_path}.{leaf}") + ) + + def build(self, input_shape, context_shape=None): + head_shape = (input_shape[0], self.heads, input_shape[1], self.head_dim) + for layer in (self.to_q, self.to_k, self.to_v, self.to_out): + layer.build(input_shape) + if self.qk_norm == "rms_norm": + self.norm_q.build(head_shape) + self.norm_k.build(head_shape) + if self.context: + ctx_heads = (context_shape[0], self.heads, context_shape[1], self.head_dim) + for layer in (self.add_q_proj, self.add_k_proj, self.add_v_proj): + layer.build(context_shape) + if self.qk_norm == "rms_norm": + self.norm_added_q.build(ctx_heads) + self.norm_added_k.build(ctx_heads) + if self.context_out: + self.to_add_out.build(context_shape) + self.built = True + + def split_heads(self, t): + t = ops.reshape(t, (-1, ops.shape(t)[1], self.heads, self.head_dim)) + return ops.transpose(t, (0, 2, 1, 3)) + + def call(self, x, context=None): + q = self.split_heads(self.to_q(x)) + k = self.split_heads(self.to_k(x)) + v = self.split_heads(self.to_v(x)) + if self.qk_norm == "rms_norm": + q, k = self.norm_q(q), self.norm_k(k) + n_x = ops.shape(x)[1] + if self.context: + cq = self.split_heads(self.add_q_proj(context)) + ck = self.split_heads(self.add_k_proj(context)) + cv = self.split_heads(self.add_v_proj(context)) + if self.qk_norm == "rms_norm": + cq, ck = self.norm_added_q(cq), self.norm_added_k(ck) + # the latent tokens first, then the text tokens, as the reference + q = ops.concatenate([q, cq], axis=2) + k = ops.concatenate([k, ck], axis=2) + v = ops.concatenate([v, cv], axis=2) + out = fused_attention( + q, + k, + v, + self.scale, + attn_implementation=active_attn_implementation() + or self.attn_implementation, + ) + out = ops.transpose(out, (0, 2, 1, 3)) + out = ops.reshape(out, (-1, ops.shape(out)[1], self.dim)) + if not self.context: + return self.to_out(out) + x_out = self.to_out(out[:, :n_x]) + if not self.context_out: + return x_out + return x_out, self.to_add_out(out[:, n_x:]) + + def compute_output_shape(self, input_shape, context_shape=None): + x_out = tuple(input_shape[:-1]) + (self.dim,) + if self.context and self.context_out: + return x_out, tuple(context_shape[:-1]) + (self.dim,) + return x_out + + def get_config(self): + config = super().get_config() + config.update( + { + "dim": self.dim, + "heads": self.heads, + "module_path": self.module_path, + "context": self.context, + "context_out": self.context_out, + "qk_norm": self.qk_norm, + "attn_implementation": self.attn_implementation, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3GELUFeedForward(layers.Layer): + """Diffusers ``FeedForward(activation_fn="gelu-approximate")``: ``net.0.proj`` + to ``mult * dim``, tanh GELU, ``net.2`` back to ``dim``. + + Args: + dim: Token width. + module_path: Diffusers module path (``transformer_blocks.0.ff``). + mult: Inner width multiplier (4). + """ + + def __init__(self, dim, module_path, mult=4, **kwargs): + kwargs.setdefault("name", safe_name(module_path)) + super().__init__(**kwargs) + self.dim = dim + self.module_path = module_path + self.mult = mult + self.proj = layers.Dense( + dim * mult, name=safe_name(f"{module_path}.net.0.proj") + ) + self.out = layers.Dense(dim, name=safe_name(f"{module_path}.net.2")) + + def build(self, input_shape): + self.proj.build(input_shape) + self.out.build(tuple(input_shape[:-1]) + (self.dim * self.mult,)) + self.built = True + + def call(self, x): + return self.out(ops.gelu(self.proj(x), approximate=True)) + + def compute_output_shape(self, input_shape): + return tuple(input_shape[:-1]) + (self.dim,) + + def get_config(self): + config = super().get_config() + config.update( + {"dim": self.dim, "module_path": self.module_path, "mult": self.mult} + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3JointTransformerBlock(layers.Layer): + """One MMDiT block (diffusers ``StableDiffusion3JointTransformerBlock``): the latent and text + streams are each AdaLN-modulated by the conditioning embedding, attend jointly, + and pass through their own gated feed-forwards. ``call([x, context, temb])`` + returns ``[x, context]``, or ``x`` alone for the last block + (``context_pre_only``: its text stream is not updated). SD 3.5's dual-attention + blocks add a second, latent-only attention (``attn2``) with its own modulation. + + Args: + dim: Token width. + heads: Attention heads. + module_path: Diffusers module path (``transformer_blocks.0``). + context_pre_only: Last-block variant (2-chunk context norm, no text output). + qk_norm: ``"rms_norm"`` or ``None``. + use_dual_attention: The SD 3.5 dual-attention variant. + """ + + def __init__( + self, + dim, + heads, + module_path, + context_pre_only=False, + qk_norm=None, + use_dual_attention=False, + **kwargs, + ): + kwargs.setdefault("name", safe_name(module_path)) + super().__init__(**kwargs) + self.dim = dim + self.heads = heads + self.module_path = module_path + self.context_pre_only = context_pre_only + self.qk_norm = qk_norm + self.use_dual_attention = use_dual_attention + self.norm1 = StableDiffusion3AdaLayerNorm( + dim, 9 if use_dual_attention else 6, module_path=f"{module_path}.norm1" + ) + self.norm1_context = StableDiffusion3AdaLayerNorm( + dim, + 2 if context_pre_only else 6, + module_path=f"{module_path}.norm1_context", + ) + self.attn = StableDiffusion3JointAttention( + dim, + heads, + module_path=f"{module_path}.attn", + context=True, + context_out=not context_pre_only, + qk_norm=qk_norm, + ) + if use_dual_attention: + self.attn2 = StableDiffusion3JointAttention( + dim, + heads, + module_path=f"{module_path}.attn2", + context=False, + qk_norm=qk_norm, + ) + self.norm2 = layers.LayerNormalization( + epsilon=NORM_EPS, + center=False, + scale=False, + name=safe_name(f"{module_path}.norm2"), + ) + self.ff = StableDiffusion3GELUFeedForward(dim, module_path=f"{module_path}.ff") + if not context_pre_only: + self.norm2_context = layers.LayerNormalization( + epsilon=NORM_EPS, + center=False, + scale=False, + name=safe_name(f"{module_path}.norm2_context"), + ) + self.ff_context = StableDiffusion3GELUFeedForward( + dim, module_path=f"{module_path}.ff_context" + ) + + def build(self, input_shape): + x_shape, context_shape, temb_shape = input_shape + self.norm1.build((x_shape, temb_shape)) + self.norm1_context.build((context_shape, temb_shape)) + self.attn.build(x_shape, context_shape) + if self.use_dual_attention: + self.attn2.build(x_shape) + self.norm2.build(x_shape) + self.ff.build(x_shape) + if not self.context_pre_only: + self.norm2_context.build(context_shape) + self.ff_context.build(context_shape) + self.built = True + + def call(self, inputs): + x, context, temb = inputs + modulated = self.norm1([x, temb]) + normed_x, gate_msa, shift_mlp, scale_mlp, gate_mlp = modulated[:5] + if self.context_pre_only: + normed_context = self.norm1_context([context, temb]) + attn_x = self.attn(normed_x, normed_context) + else: + normed_context, c_gate_msa, c_shift_mlp, c_scale_mlp, c_gate_mlp = ( + self.norm1_context([context, temb]) + ) + attn_x, attn_context = self.attn(normed_x, normed_context) + x = x + gate_msa[:, None, :] * attn_x + if self.use_dual_attention: + normed_x2, gate_msa2 = modulated[5:] + x = x + gate_msa2[:, None, :] * self.attn2(normed_x2) + h = self.norm2(x) * (1.0 + scale_mlp[:, None, :]) + shift_mlp[:, None, :] + x = x + gate_mlp[:, None, :] * self.ff(h) + if self.context_pre_only: + return x + context = context + c_gate_msa[:, None, :] * attn_context + h = self.norm2_context(context) * (1.0 + c_scale_mlp[:, None, :]) + h = h + c_shift_mlp[:, None, :] + context = context + c_gate_mlp[:, None, :] * self.ff_context(h) + return [x, context] + + def compute_output_shape(self, input_shape): + x_shape, context_shape, _ = input_shape + if self.context_pre_only: + return tuple(x_shape) + return [tuple(x_shape), tuple(context_shape)] + + def get_config(self): + config = super().get_config() + config.update( + { + "dim": self.dim, + "heads": self.heads, + "module_path": self.module_path, + "context_pre_only": self.context_pre_only, + "qk_norm": self.qk_norm, + "use_dual_attention": self.use_dual_attention, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3T5GatedFeedForward(layers.Layer): + """The T5 v1.1 feed-forward (``T5DenseGatedActDense``) with its pre-norm and + residual: ``x + wo(gelu_tanh(wi_0(norm(x))) * wi_1(norm(x)))``, bias-free + projections and the T5 RMSNorm. The original T5's ``relu(wi(x))`` block lives + in the t5 family; this gated form is what the SD 3 T5-XXL encoder uses. The + sub-layers are named ``{prefix}_ln`` / ``{prefix}_wi_0`` / ``{prefix}_wi_1`` / + ``{prefix}_wo`` so every weight path is unique across blocks. + + Args: + embed_dim: Token width. + mlp_dim: Inner width. + eps: RMSNorm epsilon. + prefix: Leaf-name prefix (``enc_3_ff``). + """ + + def __init__(self, embed_dim, mlp_dim, eps, prefix, **kwargs): + super().__init__(**kwargs) + self.embed_dim = embed_dim + self.mlp_dim = mlp_dim + self.eps = eps + self.prefix = prefix + self.layer_norm = T5LayerNorm(eps, name=f"{prefix}_ln") + self.wi_0 = layers.Dense(mlp_dim, use_bias=False, name=f"{prefix}_wi_0") + self.wi_1 = layers.Dense(mlp_dim, use_bias=False, name=f"{prefix}_wi_1") + self.wo = layers.Dense(embed_dim, use_bias=False, name=f"{prefix}_wo") + + def build(self, input_shape): + self.layer_norm.build(input_shape) + self.wi_0.build(input_shape) + self.wi_1.build(input_shape) + self.wo.build(tuple(input_shape[:-1]) + (self.mlp_dim,)) + self.built = True + + def call(self, hidden_states): + normed = self.layer_norm(hidden_states) + # "gelu_new": the tanh-approximate GELU of the T5 v1.1 checkpoints + inner = ops.gelu(self.wi_0(normed), approximate=True) * self.wi_1(normed) + return hidden_states + self.wo(inner) + + def compute_output_shape(self, input_shape): + return tuple(input_shape) + + def get_config(self): + config = super().get_config() + config.update( + { + "embed_dim": self.embed_dim, + "mlp_dim": self.mlp_dim, + "eps": self.eps, + "prefix": self.prefix, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3T5GatedEncoderBlock(layers.Layer): + """One T5 v1.1 encoder block: the t5 family's pre-norm self-attention with the + shared relative position bias, then :class:`StableDiffusion3T5GatedFeedForward`. + + Args: + embed_dim: Token width. + key_value_dim: Width of one attention head. + num_heads: Attention heads. + mlp_dim: Feed-forward inner width. + eps: RMSNorm epsilon. + prefix: Leaf-name prefix (``enc_3``). + """ + + def __init__( + self, embed_dim, key_value_dim, num_heads, mlp_dim, eps, prefix, **kwargs + ): + super().__init__(**kwargs) + self.embed_dim = embed_dim + self.key_value_dim = key_value_dim + self.num_heads = num_heads + self.mlp_dim = mlp_dim + self.eps = eps + self.prefix = prefix + self.self_attention = T5SelfAttentionLayer( + embed_dim, key_value_dim, num_heads, eps, prefix=f"{prefix}_attn" + ) + self.ff = StableDiffusion3T5GatedFeedForward( + embed_dim, mlp_dim, eps, prefix=f"{prefix}_ff" + ) + + def build(self, input_shape): + self.self_attention.build(input_shape) + self.ff.build(input_shape) + self.built = True + + def call(self, hidden_states, position_bias): + hidden_states = self.self_attention(hidden_states, position_bias) + return self.ff(hidden_states) + + def compute_output_spec(self, hidden_states, position_bias): + return keras.KerasTensor(hidden_states.shape, dtype=hidden_states.dtype) + + def get_config(self): + config = super().get_config() + config.update( + { + "embed_dim": self.embed_dim, + "key_value_dim": self.key_value_dim, + "num_heads": self.num_heads, + "mlp_dim": self.mlp_dim, + "eps": self.eps, + "prefix": self.prefix, + } + ) + return config diff --git a/zeromodels/models/stable_diffusion_3/stable_diffusion_3_model.py b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_model.py new file mode 100644 index 00000000..9ea4a7fe --- /dev/null +++ b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_model.py @@ -0,0 +1,720 @@ +import keras +from keras import layers, ops + +from zeromodels.base import BaseModel +from zeromodels.base.base_mixin import inference_scope +from zeromodels.base.base_scheduler import FlowMatchEulerDiscreteScheduler +from zeromodels.models.stable_diffusion.stable_diffusion_layers import ( + time_embedding_mlp, + timestep_embedding, +) +from zeromodels.models.stable_diffusion.stable_diffusion_model import ( + AutoencoderKL, + StableDiffusionModel, + StableDiffusionTextToImage, +) +from zeromodels.models.stable_diffusion_xl.stable_diffusion_xl_model import ( + build_text_encoder, +) +from zeromodels.models.t5.t5_layers import T5LayerNorm +from zeromodels.models.t5.t5_model import T5PositionBias + +from .stable_diffusion_3_config import ( + StableDiffusion3Config, + StableDiffusion3T5EncoderConfig, + StableDiffusion3TransformerConfig, +) +from .stable_diffusion_3_layers import ( + StableDiffusion3AdaLayerNorm, + StableDiffusion3JointTransformerBlock, + StableDiffusion3PatchEmbed, + StableDiffusion3T5GatedEncoderBlock, +) + +# The container and the task build the identical graph, so both load the one +# hosted repo (whose zm_config.json names the container). +STABLE_DIFFUSION_3_HUB_SIBLINGS = frozenset( + {"StableDiffusion3Model", "StableDiffusion3TextToImage"} +) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class SD3Transformer2DModel(BaseModel): + """Stable Diffusion 3 denoiser, the MMDiT (diffusers ``SD3Transformer2DModel``). + + A multimodal diffusion transformer: the latent is patchified into tokens with + a cropped sinusoidal position table, the text tokens are projected to the same + width, and ``num_layers`` joint blocks let the two streams attend to each other + while a conditioning embedding (the sinusoidal timestep plus the pooled text + embedding) modulates every norm (AdaLN-Zero). The final norm and projection + unpatchify the latent tokens back to a velocity field of the latent's shape. + + Inputs are a dict ``{"sample", "timestep", "encoder_hidden_states", + "pooled_projections"}``; the output dict is ``{"sample": (B, H, W, C)}``. + Built for a fixed latent resolution (``sample_size``) like the SD UNet; the + weights are resolution-independent up to ``pos_embed_max_size`` patches. + + Args mirror the diffusers config: ``sample_size`` (128), ``patch_size`` (2), + ``in_channels`` / ``out_channels`` (16), ``num_layers`` (24), ``attention_head_dim`` + (64), ``num_attention_heads`` (24), ``joint_attention_dim`` (4096, the text + features' width), ``caption_projection_dim`` (the projected text width, the + token width), ``pooled_projection_dim`` (2048), ``pos_embed_max_size`` (192), + ``qk_norm`` (``"rms_norm"`` in SD 3.5), ``dual_attention_layers`` (the SD 3.5 + medium blocks with a second latent-only attention) and ``text_seq_len`` (the + static text length, 77 + 256). + """ + + HF_MODEL_TYPE = None + config_class = StableDiffusion3TransformerConfig + + def __init__( + self, + sample_size=128, + patch_size=2, + in_channels=16, + out_channels=16, + num_layers=24, + attention_head_dim=64, + num_attention_heads=24, + joint_attention_dim=4096, + caption_projection_dim=1536, + pooled_projection_dim=2048, + pos_embed_max_size=192, + qk_norm=None, + dual_attention_layers=(), + text_seq_len=333, + data_format=None, + channels_axis=None, + name="SD3Transformer2DModel", + **kwargs, + ): + data_format = data_format or keras.config.image_data_format() + if channels_axis is None: + channels_axis = -1 if data_format == "channels_last" else 1 + inner_dim = num_attention_heads * attention_head_dim + sample_h, sample_w = ( + sample_size + if isinstance(sample_size, (tuple, list)) + else (sample_size, sample_size) + ) + dual_attention_layers = tuple(dual_attention_layers) + + sample_in = layers.Input( + shape=(in_channels, sample_h, sample_w) + if data_format == "channels_first" + else (sample_h, sample_w, in_channels), + name="sample", + ) + timestep_in = layers.Input(shape=(), name="timestep") + context_in = layers.Input( + shape=(text_seq_len, joint_attention_dim), name="encoder_hidden_states" + ) + pooled_in = layers.Input( + shape=(pooled_projection_dim,), name="pooled_projections" + ) + + x = StableDiffusion3PatchEmbed( + inner_dim, + patch_size, + pos_embed_max_size, + base_size=sample_h // patch_size, + module_path="pos_embed", + data_format=data_format, + channels_axis=channels_axis, + )(sample_in) + temb = timestep_embedding(timestep_in, 256) + temb = time_embedding_mlp( + temb, inner_dim, name="time_text_embed.timestep_embedder" + ) + temb = temb + time_embedding_mlp( + pooled_in, inner_dim, name="time_text_embed.text_embedder" + ) + context = layers.Dense(caption_projection_dim, name="context_embedder")( + context_in + ) + for i in range(num_layers): + block = StableDiffusion3JointTransformerBlock( + inner_dim, + num_attention_heads, + module_path=f"transformer_blocks.{i}", + context_pre_only=i == num_layers - 1, + qk_norm=qk_norm, + use_dual_attention=i in dual_attention_layers, + ) + if i == num_layers - 1: + x = block([x, context, temb]) + else: + x, context = block([x, context, temb]) + x = StableDiffusion3AdaLayerNorm(inner_dim, 2, module_path="norm_out")( + [x, temb] + ) + x = layers.Dense(patch_size * patch_size * out_channels, name="proj_out")(x) + + # unpatchify: (B, h*w, p*p*C) -> (B, h*p, w*p, C) + h, w = sample_h // patch_size, sample_w // patch_size + x = ops.reshape(x, (-1, h, w, patch_size, patch_size, out_channels)) + x = ops.transpose(x, (0, 1, 3, 2, 4, 5)) + x = ops.reshape(x, (-1, h * patch_size, w * patch_size, out_channels)) + if data_format == "channels_first": + x = ops.transpose(x, (0, 3, 1, 2)) + + super().__init__( + inputs={ + "sample": sample_in, + "timestep": timestep_in, + "encoder_hidden_states": context_in, + "pooled_projections": pooled_in, + }, + outputs={"sample": x}, + name=name, + **kwargs, + ) + + self.data_format = data_format + self.channels_axis = channels_axis + self.sample_size = sample_size + self.patch_size = patch_size + self.in_channels = in_channels + self.out_channels = out_channels + self.num_layers = num_layers + self.attention_head_dim = attention_head_dim + self.num_attention_heads = num_attention_heads + self.joint_attention_dim = joint_attention_dim + self.caption_projection_dim = caption_projection_dim + self.pooled_projection_dim = pooled_projection_dim + self.pos_embed_max_size = pos_embed_max_size + self.qk_norm = qk_norm + self.dual_attention_layers = dual_attention_layers + self.text_seq_len = text_seq_len + + @classmethod + def from_diffusers_config(cls, config, **kwargs): + """Build from a diffusers ``transformer/config.json`` dict.""" + return cls(**cls.kwargs_from_diffusers_config(config), **kwargs) + + @staticmethod + def kwargs_from_diffusers_config(config): + """The constructor kwargs a diffusers ``transformer/config.json`` describes.""" + return { + "sample_size": config.get("sample_size", 128), + "patch_size": config.get("patch_size", 2), + "in_channels": config.get("in_channels", 16), + "out_channels": config.get("out_channels") or config.get("in_channels", 16), + "num_layers": config.get("num_layers", 24), + "attention_head_dim": config.get("attention_head_dim", 64), + "num_attention_heads": config.get("num_attention_heads", 24), + "joint_attention_dim": config.get("joint_attention_dim", 4096), + "caption_projection_dim": config.get("caption_projection_dim", 1536), + "pooled_projection_dim": config.get("pooled_projection_dim", 2048), + "pos_embed_max_size": config.get("pos_embed_max_size", 192), + "qk_norm": config.get("qk_norm"), + "dual_attention_layers": tuple(config.get("dual_attention_layers") or ()), + } + + def get_config(self): + config = super().get_config() + config.update( + { + "sample_size": self.sample_size, + "patch_size": self.patch_size, + "in_channels": self.in_channels, + "out_channels": self.out_channels, + "num_layers": self.num_layers, + "attention_head_dim": self.attention_head_dim, + "num_attention_heads": self.num_attention_heads, + "joint_attention_dim": self.joint_attention_dim, + "caption_projection_dim": self.caption_projection_dim, + "pooled_projection_dim": self.pooled_projection_dim, + "pos_embed_max_size": self.pos_embed_max_size, + "qk_norm": self.qk_norm, + "dual_attention_layers": self.dual_attention_layers, + "text_seq_len": self.text_seq_len, + "name": self.name, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class SD3T5EncoderModel(BaseModel): + """The third Stable Diffusion 3 text encoder: the encoder half of T5 v1.1 XXL + (transformers ``T5EncoderModel`` on ``google/t5-v1_1-xxl``), pure Keras 3. + + A shared token embedding, ``num_layers`` pre-norm blocks (bias-free self-attention + without ``1/sqrt(d)`` scaling, one learned relative position bias shared by all + blocks, the gated-GELU feed-forward of T5 v1.1) and a final RMSNorm. The + attention, norm and position-bias layers are the t5 family's; the gated + feed-forward, which the original T5 does not have, is + :class:`~zeromodels.models.stable_diffusion_3.stable_diffusion_3_layers.StableDiffusion3T5GatedFeedForward`. + Inputs ``{"input_ids", "attention_mask"}`` (``(B, T)`` int32), output + ``{"last_hidden_state": (B, T, embed_dim)}``. + + Every SD 3 / 3.5 checkpoint conditions on the same 4.7B-parameter encoder, so it + is hosted once (``zeromodels/t5-v1_1-xxl-encoder``, float16 weights) and attached + to a task model on demand: + ``StableDiffusion3TextToImage.from_weights(repo, text_encoder_3="zeromodels/t5-v1_1-xxl-encoder")``. + + Args: + vocab_size: SentencePiece vocabulary (32128). + embed_dim: Token width (4096). + key_value_dim: Width of one attention head (64). + mlp_dim: Feed-forward inner width (10240). + num_layers: Encoder blocks (24). + num_heads: Attention heads (64). + relative_attention_num_buckets: Relative-position-bias buckets (32). + relative_attention_max_distance: Largest bucketed distance (128). + layer_norm_eps: RMSNorm epsilon. + pad_token_id / eos_token_id: The tokenizer's ```` and ``
    `` ids. + """ + + HF_MODEL_TYPE = None + config_class = StableDiffusion3T5EncoderConfig + + def __init__( + self, + vocab_size=32128, + embed_dim=4096, + key_value_dim=64, + mlp_dim=10240, + num_layers=24, + num_heads=64, + relative_attention_num_buckets=32, + relative_attention_max_distance=128, + layer_norm_eps=1e-6, + pad_token_id=0, + eos_token_id=1, + name="SD3T5EncoderModel", + **kwargs, + ): + shared = layers.Embedding(vocab_size, embed_dim, name="shared") + rel_bias = layers.Embedding( + relative_attention_num_buckets, num_heads, name="encoder_rel_bias" + ) + bias = T5PositionBias( + rel_bias, + num_heads, + relative_attention_num_buckets, + relative_attention_max_distance, + bidirectional=True, + causal=False, + name="encoder_bias", + ) + blocks = [ + StableDiffusion3T5GatedEncoderBlock( + embed_dim, + key_value_dim, + num_heads, + mlp_dim, + layer_norm_eps, + prefix=f"enc_{i}", + name=f"encoder_block_{i}", + ) + for i in range(num_layers) + ] + final_norm = T5LayerNorm(layer_norm_eps, name="encoder_final_layer_norm") + + input_ids_in = layers.Input(shape=(None,), dtype="int32", name="input_ids") + attn_in = layers.Input(shape=(None,), dtype="int32", name="attention_mask") + hidden = shared(input_ids_in) + position_bias = bias(hidden, attn_in) + for block in blocks: + hidden = block(hidden, position_bias) + hidden = final_norm(hidden) + super().__init__( + inputs={"input_ids": input_ids_in, "attention_mask": attn_in}, + outputs={"last_hidden_state": hidden}, + name=name, + **kwargs, + ) + self.shared = shared + self.encoder_rel_bias = rel_bias + self.encoder_bias = bias + self.encoder_blocks = blocks + self.encoder_final_layer_norm = final_norm + self.vocab_size = vocab_size + self.embed_dim = embed_dim + self.key_value_dim = key_value_dim + self.mlp_dim = mlp_dim + self.num_layers = num_layers + self.num_heads = num_heads + self.relative_attention_num_buckets = relative_attention_num_buckets + self.relative_attention_max_distance = relative_attention_max_distance + self.layer_norm_eps = layer_norm_eps + self.pad_token_id = pad_token_id + self.eos_token_id = eos_token_id + # the relative bias table is read inside the position-bias layer at run + # time (not traced into the graph): one eager call creates its weight so + # the checkpoint can load into it + with inference_scope(): + self( + { + "input_ids": ops.zeros((1, 4), dtype="int32"), + "attention_mask": ops.ones((1, 4), dtype="int32"), + } + ) + + @classmethod + def from_hf_config(cls, hf_config, **kwargs): + """Build from a transformers ``T5Config`` dict (``text_encoder_3/config.json``).""" + return cls(**cls.kwargs_from_hf_config(hf_config), **kwargs) + + @staticmethod + def kwargs_from_hf_config(hf_config): + """The constructor kwargs a transformers T5 v1.1 ``config.json`` describes.""" + return { + "vocab_size": hf_config.get("vocab_size", 32128), + "embed_dim": hf_config.get("d_model", 4096), + "key_value_dim": hf_config.get("d_kv", 64), + "mlp_dim": hf_config.get("d_ff", 10240), + "num_layers": hf_config.get("num_layers", 24), + "num_heads": hf_config.get("num_heads", 64), + "relative_attention_num_buckets": hf_config.get( + "relative_attention_num_buckets", 32 + ), + "relative_attention_max_distance": hf_config.get( + "relative_attention_max_distance", 128 + ), + "layer_norm_eps": hf_config.get("layer_norm_epsilon", 1e-6), + "pad_token_id": hf_config.get("pad_token_id", 0), + "eos_token_id": hf_config.get("eos_token_id", 1), + } + + def get_config(self): + config = super().get_config() + config.update( + { + "vocab_size": self.vocab_size, + "embed_dim": self.embed_dim, + "key_value_dim": self.key_value_dim, + "mlp_dim": self.mlp_dim, + "num_layers": self.num_layers, + "num_heads": self.num_heads, + "relative_attention_num_buckets": self.relative_attention_num_buckets, + "relative_attention_max_distance": self.relative_attention_max_distance, + "layer_norm_eps": self.layer_norm_eps, + "pad_token_id": self.pad_token_id, + "eos_token_id": self.eos_token_id, + "name": self.name, + } + ) + return config + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3Model(StableDiffusionModel): + """Stable Diffusion 3 weights container: the MMDiT, the 16-channel VAE and the + two CLIP text encoders (ViT-L/14 and OpenCLIP ViT-bigG/14, each with its + projection) as one functional ``keras.Model``. + + The SD 1.x container (:class:`StableDiffusionModel`) with the SD 3 parts: four + disconnected sub-graphs, ``{"sample", "timestep", "encoder_hidden_states", + "pooled_projections"} -> "noise_pred"`` (the transformer), ``{"image", + "latent"} -> "moments" / "image"`` (the VAE) and ``{"token_ids", "token_ids_2", + "padding_mask"} -> "prompt_embeds" / "pooled_prompt_embeds"`` (the CLIP towers: + penultimate states concatenated to 2048-d, projected pooled states concatenated + to 2048-d). Components: ``.transformer`` / ``.vae`` / ``.text_encoder`` / + ``.text_encoder_2``. + + The third text encoder, the 4.7B-parameter T5-XXL, is not part of the + container: it is shared by every SD 3 / 3.5 checkpoint and hosted once + (``zeromodels/t5-v1_1-xxl-encoder``, an :class:`SD3T5EncoderModel`), and the + task class attaches it on demand (``text_encoder_3``); without it the + T5 features are zeros, SD 3's documented memory-saving mode. Hosted as one + ``zm_config.json`` + float16 weights per variant; on-the-fly ``hf:`` conversion + is not supported for diffusion models. + + Args: + **kwargs: The flat :class:`StableDiffusion3Config` fields + (``transformer_`` / ``vae_`` / ``text_`` / ``text_2_`` prefixed), or a + config positionally. + """ + + config_class = StableDiffusion3Config + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_3_HUB_SIBLINGS + + def __init__(self, name="StableDiffusion3Model", **kwargs): + super().__init__(name=name, **kwargs) + + def build_components(self, config, data_format, channels_axis): + d, v, t, t2 = ( + config.transformer_config, + config.vae_config, + config.text_config, + config.text_config_2, + ) + transformer = SD3Transformer2DModel( + d, + text_seq_len=t.max_seq_len + config.max_sequence_length, + data_format=data_format, + channels_axis=channels_axis, + ) + vae = AutoencoderKL( + **v.constructor_kwargs(), + data_format=data_format, + channels_axis=channels_axis, + ) + text_encoder = build_text_encoder( + t, + config.hidden_act, + config.layer_norm_eps, + projection_dim=t.projection_dim, + name="text_encoder", + ) + text_encoder_2 = build_text_encoder( + t2, + t2.hidden_act, + config.layer_norm_eps, + projection_dim=t2.projection_dim, + name="text_encoder_2", + ) + return { + "transformer": transformer, + "vae": vae, + "text_encoder": text_encoder, + "text_encoder_2": text_encoder_2, + } + + def build_graph(self, config, components, data_format): + d, v, t = config.transformer_config, config.vae_config, config.text_config + transformer, vae = components["transformer"], components["vae"] + text_encoder, text_encoder_2 = ( + components["text_encoder"], + components["text_encoder_2"], + ) + sample_h, sample_w = ( + d.sample_size + if isinstance(d.sample_size, (tuple, list)) + else (d.sample_size, d.sample_size) + ) + img_h, img_w = ( + v.sample_size + if isinstance(v.sample_size, (tuple, list)) + else (v.sample_size, v.sample_size) + ) + lat_h, lat_w = img_h // vae.vae_scale_factor, img_w // vae.vae_scale_factor + inputs = { + "sample": layers.Input( + shape=(d.in_channels, sample_h, sample_w) + if data_format == "channels_first" + else (sample_h, sample_w, d.in_channels), + name="sample", + ), + "timestep": layers.Input(shape=(), name="timestep"), + "encoder_hidden_states": layers.Input( + shape=(transformer.text_seq_len, d.joint_attention_dim), + name="encoder_hidden_states", + ), + "pooled_projections": layers.Input( + shape=(d.pooled_projection_dim,), name="pooled_projections" + ), + "image": layers.Input( + shape=(v.in_channels, img_h, img_w) + if data_format == "channels_first" + else (img_h, img_w, v.in_channels), + name="image", + ), + "latent": layers.Input( + shape=(v.latent_channels, lat_h, lat_w) + if data_format == "channels_first" + else (lat_h, lat_w, v.latent_channels), + name="latent", + ), + "token_ids": layers.Input( + shape=(t.max_seq_len,), dtype="int32", name="token_ids" + ), + "token_ids_2": layers.Input( + shape=(t.max_seq_len,), dtype="int32", name="token_ids_2" + ), + "padding_mask": layers.Input( + shape=(t.max_seq_len,), dtype="int32", name="padding_mask" + ), + } + noise_pred = transformer( + { + key: inputs[key] + for key in ( + "sample", + "timestep", + "encoder_hidden_states", + "pooled_projections", + ) + } + )["sample"] + vae_out = vae({"image": inputs["image"], "latent": inputs["latent"]}) + text_out = text_encoder( + {"token_ids": inputs["token_ids"], "padding_mask": inputs["padding_mask"]} + ) + text_out_2 = text_encoder_2( + { + "token_ids": inputs["token_ids_2"], + "padding_mask": inputs["padding_mask"], + } + ) + outputs = { + "noise_pred": noise_pred, + "moments": vae_out["moments"], + "image": vae_out["sample"], + "prompt_embeds": ops.concatenate( + [ + text_out["penultimate_hidden_state"], + text_out_2["penultimate_hidden_state"], + ], + axis=-1, + ), + "pooled_prompt_embeds": ops.concatenate( + [text_out["text_embeds"], text_out_2["text_embeds"]], axis=-1 + ), + } + return inputs, outputs + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3TextToImage(StableDiffusionTextToImage, StableDiffusion3Model): + """Text-to-image Stable Diffusion 3, pure Keras 3 and cross-backend (the + diffusers ``StableDiffusion3Pipeline`` in this library's task-class form). + + :class:`StableDiffusionTextToImage`'s ``generate`` (``BaseDiffusion``) over the + :class:`StableDiffusion3Model` graph with the rectified-flow sampler + (:class:`FlowMatchEulerDiscreteScheduler`). The prompt goes through the two + CLIP towers (penultimate states concatenated, zero-padded to the T5 width) and, + when a T5-XXL encoder is attached, through it (256 tokens); the text tokens are + concatenated along the sequence, the pooled CLIP states along the features. With + no negative prompt the empty prompt is encoded (no zeroing). The T5 encoder is + loaded separately and optionally:: + + sd = StableDiffusion3TextToImage.from_weights( + "zeromodels/stable-diffusion-3-medium", + text_encoder_3="zeromodels/t5-v1_1-xxl-encoder", # or omit: T5 features zeroed + ) + tokenizer = StableDiffusion3Tokenizer.from_weights("zeromodels/stable-diffusion-3-medium") + image = sd.generate(**tokenizer("a photo of a cat")) # (1, 1024, 1024, 3) uint8 + + ``sd.text_encoder_3`` can also be assigned directly (an + :class:`SD3T5EncoderModel`, e.g. one loaded with ``quantization="int8"``); it + lives outside the container's weights. + + Args: + scheduler: A :class:`BaseScheduler`; defaults to the config's + ``scheduler_config``, else the flow-match Euler sampler with shift 3. + **kwargs: The flat :class:`StableDiffusion3Config` fields. + """ + + config_class = StableDiffusion3Config + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_3_HUB_SIBLINGS + # diffusers' StableDiffusion3Pipeline defaults; a repo's generate_args override + generate_args = {"num_inference_steps": 28, "guidance_scale": 7.0} + + def __init__(self, scheduler=None, name="StableDiffusion3TextToImage", **kwargs): + super().__init__(scheduler=scheduler, name=name, **kwargs) + + @classmethod + def from_weights(cls, identifier, text_encoder_3=None, **kwargs): + """``BaseModel.from_weights`` plus ``text_encoder_3``: a hosted + :class:`SD3T5EncoderModel` repo id (loaded with the same ``load_dtype``) or + a built model to attach as the third text encoder.""" + model = super().from_weights(identifier, **kwargs) + if text_encoder_3 is not None: + if isinstance(text_encoder_3, str): + text_encoder_3 = SD3T5EncoderModel.from_weights( + text_encoder_3, load_dtype=kwargs.get("load_dtype") + ) + model.text_encoder_3 = text_encoder_3 + return model + + @property + def text_encoder_3(self): + return self.__dict__.get("_text_encoder_3") + + def __setattr__(self, name, value): + # the T5 encoder is kept out of the tracked (saved / loaded / device-moved) + # sub-layers, like the LM mixins' caches: Keras (and torch's Module on that + # backend) would otherwise register any model assigned as an attribute + if name == "text_encoder_3": + self.__dict__["_text_encoder_3"] = value + return + super().__setattr__(name, value) + + def default_scheduler(self): + return FlowMatchEulerDiscreteScheduler(shift=3.0) + + @property + def latent_shape(self): + size = self.transformer.sample_size + height, width = size if isinstance(size, (tuple, list)) else (size, size) + if self.data_format == "channels_first": + return (self.transformer.in_channels, height, width) + return (height, width, self.transformer.in_channels) + + def unconditional_ids(self, batch): + cfg = self.config + length = cfg.text_config.max_seq_len + row = [cfg.bos_token_id, cfg.eos_token_id] + [cfg.pad_token_id] * (length - 2) + return ops.convert_to_tensor([row] * batch, dtype="int32") + + def unconditional_ids_3(self, batch): + cfg = self.config + row = [cfg.eos_token_id_3] + [cfg.pad_token_id_3] * ( + cfg.max_sequence_length - 1 + ) + return ops.convert_to_tensor([row] * batch, dtype="int32") + + def prompt_mask(self, input_ids): + # the tokens up to and including the first <|endoftext|>; what follows is + # padding (the first tokenizer pads with <|endoftext|> itself) + is_eos = ops.cast(ops.equal(input_ids, self.config.eos_token_id), "int32") + return ops.equal(ops.cumsum(is_eos, axis=1) - is_eos, 0) + + def encode_prompt(self, input_ids, attention_mask=None, input_ids_3=None): + input_ids = ops.cast(ops.convert_to_tensor(input_ids), "int32") + batch = int(input_ids.shape[0]) + if attention_mask is None: + real = self.prompt_mask(input_ids) + else: + real = ops.greater( + ops.cast(ops.convert_to_tensor(attention_mask), "int32"), 0 + ) + # the second tokenizer pads with "!" (id 0) where the first pads with + # <|endoftext|>; the towers attend the padding, as the reference does + input_ids_2 = ops.where(real, input_ids, self.config.pad_token_id_2) + ones = ops.ones_like(input_ids) + out = self.text_encoder({"token_ids": input_ids, "padding_mask": ones}) + out_2 = self.text_encoder_2({"token_ids": input_ids_2, "padding_mask": ones}) + clip_embeds = ops.concatenate( + [out["penultimate_hidden_state"], out_2["penultimate_hidden_state"]], + axis=-1, + ) + pooled = ops.concatenate([out["text_embeds"], out_2["text_embeds"]], axis=-1) + # the CLIP features are zero-padded to the T5 width, then the T5 tokens + # (or zeros without a T5 encoder) follow along the sequence + t5_dim = self.transformer.joint_attention_dim + clip_embeds = ops.pad( + clip_embeds, ((0, 0), (0, 0), (0, t5_dim - clip_embeds.shape[-1])) + ) + length = self.config.max_sequence_length + if self.text_encoder_3 is None: + t5_embeds = ops.zeros((batch, length, t5_dim), dtype=clip_embeds.dtype) + else: + if input_ids_3 is None: + input_ids_3 = self.unconditional_ids_3(batch) + input_ids_3 = ops.cast(ops.convert_to_tensor(input_ids_3), "int32") + if int(input_ids_3.shape[0]) == 1 and batch > 1: + input_ids_3 = ops.repeat(input_ids_3, batch, axis=0) # one for all + t5_embeds = self.text_encoder_3( + {"input_ids": input_ids_3, "attention_mask": ops.ones_like(input_ids_3)} + )["last_hidden_state"] + t5_embeds = ops.cast(t5_embeds, clip_embeds.dtype) + return { + "encoder_hidden_states": ops.concatenate([clip_embeds, t5_embeds], axis=1), + "pooled_projections": pooled, + } + + def encode_negative_prompt(self, negative_input_ids, batch, **conditioning): + if negative_input_ids is None: + # the empty prompt for the T5 tower as well, not the positive prompt's ids + conditioning = dict(conditioning, input_ids_3=None) + return super().encode_negative_prompt(negative_input_ids, batch, **conditioning) + + def predict_noise(self, latents, timesteps, embeddings): + return self.transformer( + {"sample": latents, "timestep": timesteps, **embeddings} + )["sample"] diff --git a/zeromodels/models/stable_diffusion_3/stable_diffusion_3_tokenizer.py b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_tokenizer.py new file mode 100644 index 00000000..ee4ebb65 --- /dev/null +++ b/zeromodels/models/stable_diffusion_3/stable_diffusion_3_tokenizer.py @@ -0,0 +1,89 @@ +import keras +from keras import ops + +from zeromodels.models.stable_diffusion.stable_diffusion_tokenizer import ( + StableDiffusionTokenizer, +) +from zeromodels.models.t5.t5_tokenizer import T5Tokenizer + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3Tokenizer(StableDiffusionTokenizer): + """Stable Diffusion 3 text tokenizer: the CLIP ViT-L/14 BPE tokenizer plus the + T5 SentencePiece tokenizer, in one call. + + SD 3 tokenizes the prompt three times: with the two CLIP tokenizers (the same + BPE, padded with ``<|endoftext|>`` and ``!`` respectively; this class is the + first, and :class:`StableDiffusion3TextToImage` derives the second tower's ids + from the returned ``attention_mask``, as SDXL does) and with the T5 tokenizer + (``

    Raw%(S-id`kZQ^@Rb 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 C92Y47 literal 0 HcmV?d00001 diff --git a/assets/stable_diffusion_3_corgi.jpg b/assets/stable_diffusion_3_corgi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..862f1fbe1e6098b97d32c92f864684b7eb8ceb4b GIT binary patch literal 155948 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

    ``-terminated, ````-padded to ``max_sequence_length``, 256). The + returned dict is ``{"input_ids", "attention_mask", "input_ids_3"}``, what + ``generate`` takes. Loads by repo id like the model, reading the hosted repo's + ``tokenizer.json`` (CLIP) and ``tokenizer_3.json`` (T5): + ``from_weights("zeromodels/stable-diffusion-3-medium")``. + + Args: + hf_id: Hosted repo to read the tokenizer files from. Required unless the + files are given (no default repo). + tokenizer_file: Explicit CLIP ``tokenizer.json`` path (overrides ``hf_id``). + tokenizer_file_3: Explicit T5 ``tokenizer.json`` path (overrides ``hf_id``). + max_seq_len: CLIP padded / truncated length (default 77). + max_sequence_length: T5 padded / truncated length (default 256). + pad_token: CLIP pad token string (``<|endoftext|>``). + """ + + def __init__( + self, + hf_id=None, + tokenizer_file=None, + tokenizer_file_3=None, + max_seq_len=77, + max_sequence_length=256, + pad_token="<|endoftext|>", + **kwargs, + ): + super().__init__( + hf_id=hf_id, + tokenizer_file=tokenizer_file, + max_seq_len=max_seq_len, + pad_token=pad_token, + **kwargs, + ) + if tokenizer_file_3 is None: + tokenizer_file_3 = self.download_tokenizer_json(hf_id, "tokenizer_3.json") + self.tokenizer_file_3 = tokenizer_file_3 + self.max_sequence_length = max_sequence_length + self.tokenizer_3 = T5Tokenizer( + tokenizer_file=tokenizer_file_3, max_seq_len=max_sequence_length + ) + + @staticmethod + def download_tokenizer_json(hf_id, filename="tokenizer.json"): + import os + + from huggingface_hub import hf_hub_download + + return hf_hub_download(hf_id, filename, token=os.environ.get("HF_TOKEN")) + + def call(self, inputs): + out = super().call(inputs) + # the T5 tokenizer truncates to max_sequence_length and pads to the longest + # prompt; the transformer takes the fixed 256-token length, so pad the rest + ids = self.tokenizer_3(inputs)["input_ids"] + short = self.max_sequence_length - int(ids.shape[1]) + if short > 0: + ids = ops.pad( + ids, ((0, 0), (0, short)), constant_values=self.tokenizer_3.pad_token_id + ) + out["input_ids_3"] = ids + return out + + def get_config(self): + config = super().get_config() + config.update( + { + "tokenizer_file_3": self.tokenizer_file_3, + "max_sequence_length": self.max_sequence_length, + } + ) + return config diff --git a/zeromodels/models/stable_diffusion_3_5/__init__.py b/zeromodels/models/stable_diffusion_3_5/__init__.py new file mode 100644 index 00000000..29ea0ff8 --- /dev/null +++ b/zeromodels/models/stable_diffusion_3_5/__init__.py @@ -0,0 +1,17 @@ +from .stable_diffusion_3_5_config import ( + StableDiffusion3_5Config, + StableDiffusion3_5TransformerConfig, +) +from .stable_diffusion_3_5_model import ( + StableDiffusion3_5Model, + StableDiffusion3_5TextToImage, +) +from .stable_diffusion_3_5_tokenizer import StableDiffusion3_5Tokenizer + +__all__ = [ + "StableDiffusion3_5Model", + "StableDiffusion3_5TextToImage", + "StableDiffusion3_5Config", + "StableDiffusion3_5TransformerConfig", + "StableDiffusion3_5Tokenizer", +] diff --git a/zeromodels/models/stable_diffusion_3_5/convert_stable_diffusion_3_5_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_3_5/convert_stable_diffusion_3_5_diffusers_to_keras.py new file mode 100644 index 00000000..52c919c3 --- /dev/null +++ b/zeromodels/models/stable_diffusion_3_5/convert_stable_diffusion_3_5_diffusers_to_keras.py @@ -0,0 +1,79 @@ +import numpy as np + +from zeromodels.models.stable_diffusion_3.convert_stable_diffusion_3_diffusers_to_keras import ( + config_from_diffusers as stable_diffusion_3_config_from_diffusers, +) +from zeromodels.models.stable_diffusion_3.convert_stable_diffusion_3_diffusers_to_keras import ( + transfer_stable_diffusion_3, +) + +STABLE_DIFFUSION_3_5_SOURCES = { + "stable-diffusion-3.5-large": "stabilityai/stable-diffusion-3.5-large", + "stable-diffusion-3.5-large-turbo": "stabilityai/stable-diffusion-3.5-large-turbo", + "stable-diffusion-3.5-medium": "stabilityai/stable-diffusion-3.5-medium", +} + + +def config_from_diffusers(repo, token=None): + from zeromodels.models.stable_diffusion_3_5.stable_diffusion_3_5_config import ( + StableDiffusion3_5Config, + ) + + return stable_diffusion_3_config_from_diffusers( + repo, token=token, config_cls=StableDiffusion3_5Config + ) + + +def transfer_stable_diffusion_3_5(repo, token=None, dtype="float16"): + from zeromodels.models.stable_diffusion_3_5.stable_diffusion_3_5_config import ( + StableDiffusion3_5Config, + ) + from zeromodels.models.stable_diffusion_3_5.stable_diffusion_3_5_model import ( + StableDiffusion3_5Model, + ) + + return transfer_stable_diffusion_3( + repo, + token=token, + dtype=dtype, + model_cls=StableDiffusion3_5Model, + config_cls=StableDiffusion3_5Config, + ) + + +if __name__ == "__main__": + import gc + import os + + import keras + + OUT_DIR = os.environ.get("ZM_OUT_DIR", "C:/Users/gites/Desktop/code/v1_weights") + os.makedirs(OUT_DIR, exist_ok=True) + MAX_SHARD_GB = 5.0 + token = os.environ.get("HF_TOKEN") + selected = [v for v in os.environ.get("ZM_VARIANTS", "").split(",") if v] + sources = { + variant: source + for variant, source in STABLE_DIFFUSION_3_5_SOURCES.items() + if not selected or variant in selected + } + + for variant, source in sources.items(): + print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") + model, config = transfer_stable_diffusion_3_5(source, token=token) + + n_bytes = sum( + int(np.prod(w.shape)) * np.dtype(w.dtype).itemsize for w in model.weights + ) + stem = os.path.join(OUT_DIR, variant.replace("-", "_").replace(".", "_")) + if n_bytes > MAX_SHARD_GB * 1024**3: + out = f"{stem}.weights.json" + model.save_weights(out, max_shard_size=MAX_SHARD_GB) + else: + out = f"{stem}.weights.h5" + model.save_weights(out) + print(f" saved -> {out} ({n_bytes / 1024**3:.2f} GB)") + + del model + keras.backend.clear_session() + gc.collect() diff --git a/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_config.py b/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_config.py new file mode 100644 index 00000000..f71459a8 --- /dev/null +++ b/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_config.py @@ -0,0 +1,52 @@ +from zeromodels.models.stable_diffusion_3.stable_diffusion_3_config import ( + StableDiffusion3Config, + StableDiffusion3TransformerConfig, +) + + +class StableDiffusion3_5TransformerConfig(StableDiffusion3TransformerConfig): + r"""The Stable Diffusion 3.5 MMDiT: a [`StableDiffusion3TransformerConfig`] with + the SD 3.5 large layout. + + Same fields as [`StableDiffusion3TransformerConfig`]; the defaults are SD 3.5 + large (8B parameters): 38 blocks of 38 heads (2432 wide) with RMS-normalized + queries and keys. SD 3.5 medium (2.5B, MMDiT-X) is 24 blocks of 24 heads with + ``dual_attention_layers`` 0 to 12 and a 384-patch position grid; each repo's + ``zm_config.json`` carries its own values.""" + + num_layers: int = 38 + num_attention_heads: int = 38 + caption_projection_dim: int = 2432 + qk_norm: str | None = "rms_norm" + + +class StableDiffusion3_5Config(StableDiffusion3Config): + r"""Configuration for [`StableDiffusion3_5Model`], the hosted SD 3.5 weights container. + + Same shape as [`StableDiffusion3Config`] (nested ``transformer_config`` / + ``vae_config`` / ``text_config`` / ``text_config_2`` plus the scheduler, the + token ids and the T5 length; flat constructor) with the + [`StableDiffusion3_5TransformerConfig`] denoiser. The three SD 3.5 checkpoints + (large, large-turbo, medium) share the VAE and the text encoders with SD 3. + + Examples: + + ```python + >>> from zeromodels.models.stable_diffusion_3_5 import StableDiffusion3_5Config, StableDiffusion3_5Model + + >>> config = StableDiffusion3_5Config() + >>> model = StableDiffusion3_5Model(config) # random weights, SD 3.5 large shapes + >>> model.config.transformer_config.qk_norm + 'rms_norm' + ```""" + + model_type = "stable_diffusion_3_5" + + sub_configs = { + "transformer_config": StableDiffusion3_5TransformerConfig, + "vae_config": StableDiffusion3Config.sub_configs["vae_config"], + "text_config": StableDiffusion3Config.sub_configs["text_config"], + "text_config_2": StableDiffusion3Config.sub_configs["text_config_2"], + } + + transformer_config: StableDiffusion3_5TransformerConfig | dict | None = None diff --git a/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_model.py b/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_model.py new file mode 100644 index 00000000..12c56582 --- /dev/null +++ b/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_model.py @@ -0,0 +1,69 @@ +import keras + +from zeromodels.models.stable_diffusion_3.stable_diffusion_3_model import ( + StableDiffusion3Model, + StableDiffusion3TextToImage, +) + +from .stable_diffusion_3_5_config import StableDiffusion3_5Config + +# The container and the task build the identical graph, so both load the one +# hosted repo (whose zm_config.json names the container). +STABLE_DIFFUSION_3_5_HUB_SIBLINGS = frozenset( + {"StableDiffusion3_5Model", "StableDiffusion3_5TextToImage"} +) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3_5Model(StableDiffusion3Model): + """Stable Diffusion 3.5 weights container: the MMDiT (large) or MMDiT-X (medium), + the 16-channel VAE and the two CLIP text encoders as one functional + ``keras.Model``. + + The SD 3 container (:class:`StableDiffusion3Model`) with the SD 3.5 + configuration (:class:`StableDiffusion3_5Config`): RMS-normalized queries and + keys in every block and, for the medium checkpoint, the dual-attention blocks. + Same components (``.transformer`` / ``.vae`` / ``.text_encoder`` / + ``.text_encoder_2``), same separately hosted T5-XXL. Hosted under + ``zeromodels/stable-diffusion-3.5-*`` in float16. + + Args: + **kwargs: The flat :class:`StableDiffusion3_5Config` fields, or a config + positionally. + """ + + config_class = StableDiffusion3_5Config + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_3_5_HUB_SIBLINGS + + def __init__(self, name="StableDiffusion3_5Model", **kwargs): + super().__init__(name=name, **kwargs) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3_5TextToImage(StableDiffusion3TextToImage): + """Text-to-image Stable Diffusion 3.5, pure Keras 3 and cross-backend. + + :class:`StableDiffusion3TextToImage` with the SD 3.5 configuration: the same + ``generate`` over the SD 3.5 graph, the repo's flow-match sampler and + defaults (28 steps at guidance 3.5 for large, 40 at 4.5 for medium, 4 without + guidance for large-turbo):: + + sd = StableDiffusion3_5TextToImage.from_weights( + "zeromodels/stable-diffusion-3.5-large", text_encoder_3="zeromodels/t5-v1_1-xxl-encoder" + ) + tokenizer = StableDiffusion3_5Tokenizer.from_weights("zeromodels/stable-diffusion-3.5-large") + image = sd.generate(**tokenizer("a photo of a cat")) # (1, 1024, 1024, 3) uint8 + + Args: + scheduler: A :class:`BaseScheduler`; defaults to the config's + ``scheduler_config``. + **kwargs: The flat :class:`StableDiffusion3_5Config` fields. + """ + + config_class = StableDiffusion3_5Config + HUB_REPO_SIBLINGS = STABLE_DIFFUSION_3_5_HUB_SIBLINGS + # diffusers' defaults for SD 3.5 large; each repo's generate_args override + generate_args = {"num_inference_steps": 28, "guidance_scale": 3.5} + + def __init__(self, scheduler=None, name="StableDiffusion3_5TextToImage", **kwargs): + super().__init__(scheduler=scheduler, name=name, **kwargs) diff --git a/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_tokenizer.py b/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_tokenizer.py new file mode 100644 index 00000000..b3259457 --- /dev/null +++ b/zeromodels/models/stable_diffusion_3_5/stable_diffusion_3_5_tokenizer.py @@ -0,0 +1,39 @@ +import keras + +from zeromodels.models.stable_diffusion_3.stable_diffusion_3_tokenizer import ( + StableDiffusion3Tokenizer, +) + + +@keras.saving.register_keras_serializable(package="zeromodels") +class StableDiffusion3_5Tokenizer(StableDiffusion3Tokenizer): + """Stable Diffusion 3.5 text tokenizer: the SD 3 tokenizer (CLIP BPE plus the T5 + SentencePiece tokenizer, ``{"input_ids", "attention_mask", "input_ids_3"}``); + the checkpoints share their tokenizers with SD 3. Loads by repo id like the + model: ``from_weights("zeromodels/stable-diffusion-3.5-large")``. + + Args: + hf_id: Hosted repo to read the tokenizer files from. Required unless the + files are given (no default repo). + tokenizer_file / tokenizer_file_3: Explicit CLIP / T5 ``tokenizer.json`` paths. + max_seq_len: CLIP padded / truncated length (default 77). + max_sequence_length: T5 padded / truncated length (default 256). + """ + + def __init__( + self, + hf_id=None, + tokenizer_file=None, + tokenizer_file_3=None, + max_seq_len=77, + max_sequence_length=256, + **kwargs, + ): + super().__init__( + hf_id=hf_id, + tokenizer_file=tokenizer_file, + tokenizer_file_3=tokenizer_file_3, + max_seq_len=max_seq_len, + max_sequence_length=max_sequence_length, + **kwargs, + ) diff --git a/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py b/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py index 3b5d6a45..b29628d7 100644 --- a/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py +++ b/zeromodels/models/stable_diffusion_xl/convert_stable_diffusion_xl_diffusers_to_keras.py @@ -1,10 +1,20 @@ import collections.abc import numpy as np +from tqdm import tqdm +from zeromodels.conversion.exceptions import ( + WeightMappingError, + WeightShapeMismatchError, +) +from zeromodels.conversion.weight_split_util import split_model_weights +from zeromodels.conversion.weight_transfer_util import ( + compare_keras_torch_names, + transfer_weights, +) from zeromodels.models.clip.convert_clip_hf_to_keras import transfer_clip_weights from zeromodels.models.stable_diffusion.convert_stable_diffusion_diffusers_to_keras import ( - numpy_state_dict, + WEIGHT_NAME_MAPPING, ) # SDXL ships in float16 (the release checkpoints' precision; the diffusers fp32 @@ -40,52 +50,6 @@ def __len__(self): return len(self.state) -def diffusers_configs(repo, token=None): - from diffusers import AutoencoderKL, EulerDiscreteScheduler, UNet2DConditionModel - from diffusers.pipelines.pipeline_utils import DiffusionPipeline - from transformers import CLIPTextConfig, CLIPTokenizerFast - - pipeline = dict(DiffusionPipeline.load_config(repo, token=token)) - has_text = pipeline.get("text_encoder", [None])[0] is not None # refiner: no - tokenizer_2 = CLIPTokenizerFast.from_pretrained( - repo, subfolder="tokenizer_2", token=token - ) - tokenizer = ( - CLIPTokenizerFast.from_pretrained(repo, subfolder="tokenizer", token=token) - if has_text - else tokenizer_2 - ) - return { - "unet": dict( - UNet2DConditionModel.load_config(repo, subfolder="unet", token=token) - ), - "vae": dict(AutoencoderKL.load_config(repo, subfolder="vae", token=token)), - "text": CLIPTextConfig.from_pretrained( - repo, subfolder="text_encoder", token=token - ).to_dict() - if has_text - else None, - "text_2": CLIPTextConfig.from_pretrained( - repo, subfolder="text_encoder_2", token=token - ).to_dict(), - "scheduler": dict( - EulerDiscreteScheduler.load_config(repo, subfolder="scheduler", token=token) - ), - "force_zeros_for_empty_prompt": bool( - pipeline.get("force_zeros_for_empty_prompt", True) - ), - "requires_aesthetics_score": bool( - pipeline.get("requires_aesthetics_score", False) - ), - "tokens": { - "bos_token_id": tokenizer.bos_token_id, - "eos_token_id": tokenizer.eos_token_id, - "pad_token_id": tokenizer.pad_token_id, - "pad_token_id_2": tokenizer_2.pad_token_id, - }, - } - - def text_config_kwargs(text): hidden = text["hidden_size"] return { @@ -99,23 +63,53 @@ def text_config_kwargs(text): def config_from_diffusers(repo, token=None): + from diffusers import AutoencoderKL, EulerDiscreteScheduler, UNet2DConditionModel + from diffusers.pipelines.pipeline_utils import DiffusionPipeline + from transformers import CLIPTextConfig, CLIPTokenizerFast + from zeromodels.models.stable_diffusion.stable_diffusion_model import ( - UNet2DConditionModel, + UNet2DConditionModel as KerasUNet2DConditionModel, ) from zeromodels.models.stable_diffusion_xl.stable_diffusion_xl_config import ( StableDiffusionXLConfig, StableDiffusionXLRefinerConfig, ) - src = diffusers_configs(repo, token=token) - unet, vae, text, text_2 = src["unet"], src["vae"], src["text"], src["text_2"] + pipeline = dict(DiffusionPipeline.load_config(repo, token=token)) + has_text = pipeline.get("text_encoder", [None])[0] is not None # refiner: no + force_zeros_for_empty_prompt = bool( + pipeline.get("force_zeros_for_empty_prompt", True) + ) + requires_aesthetics_score = bool(pipeline.get("requires_aesthetics_score", False)) + unet = dict(UNet2DConditionModel.load_config(repo, subfolder="unet", token=token)) + vae = dict(AutoencoderKL.load_config(repo, subfolder="vae", token=token)) + text = ( + CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder", token=token + ).to_dict() + if has_text + else None + ) + text_2 = CLIPTextConfig.from_pretrained( + repo, subfolder="text_encoder_2", token=token + ).to_dict() scheduler = { k: v - for k, v in src["scheduler"].items() + for k, v in EulerDiscreteScheduler.load_config( + repo, subfolder="scheduler", token=token + ).items() if k == "_class_name" or not k.startswith("_") } - unet_kwargs = UNet2DConditionModel.kwargs_from_diffusers_config(unet) - if src["requires_aesthetics_score"]: + tokenizer_2 = CLIPTokenizerFast.from_pretrained( + repo, subfolder="tokenizer_2", token=token + ) + tokenizer = ( + CLIPTokenizerFast.from_pretrained(repo, subfolder="tokenizer", token=token) + if has_text + else tokenizer_2 + ) + unet_kwargs = KerasUNet2DConditionModel.kwargs_from_diffusers_config(unet) + if requires_aesthetics_score: # size (2) + crop (2) + aesthetic score (1) next to the pooled embedding unet_kwargs["num_time_ids"] = 5 config_cls = ( @@ -144,21 +138,26 @@ def config_from_diffusers(repo, token=None): hidden_act=(text or {}).get("hidden_act", "quick_gelu"), layer_norm_eps=(text or text_2).get("layer_norm_eps", 1e-5), scheduler_config=scheduler, - force_zeros_for_empty_prompt=src["force_zeros_for_empty_prompt"], - requires_aesthetics_score=src["requires_aesthetics_score"], - **src["tokens"], + force_zeros_for_empty_prompt=force_zeros_for_empty_prompt, + requires_aesthetics_score=requires_aesthetics_score, + bos_token_id=tokenizer.bos_token_id, + eos_token_id=tokenizer.eos_token_id, + pad_token_id=tokenizer.pad_token_id, + pad_token_id_2=tokenizer_2.pad_token_id, ) def transfer_text_encoder(keras_model, hf_module): state = { k if k.startswith(("text_model.", "text_projection.")) else f"text_model.{k}": v - for k, v in numpy_state_dict(hf_module).items() + for k, v in { + k: v.detach().cpu().numpy() for k, v in hf_module.state_dict().items() + }.items() } transfer_clip_weights(keras_model, state) -def build_from_diffusers(repo, token=None, dtype="float16"): +def transfer_stable_diffusion_xl(repo, token=None, dtype="float16"): import gc import torch @@ -167,9 +166,6 @@ def build_from_diffusers(repo, token=None, dtype="float16"): from transformers import CLIPTextModel, CLIPTextModelWithProjection from zeromodels.base.base_mixin import build_dtype_scope - from zeromodels.models.stable_diffusion.stable_diffusion_model import ( - UNet2DConditionModel, - ) from zeromodels.models.stable_diffusion_xl.stable_diffusion_xl_model import ( StableDiffusionXLModel, StableDiffusionXLRefinerModel, @@ -186,15 +182,67 @@ def build_from_diffusers(repo, token=None, dtype="float16"): fp16 = {"torch_dtype": torch.float16, "variant": "fp16", "token": token} fp32 = {"torch_dtype": torch.float32, "token": token} - unet = DiffusersUNet2DConditionModel.from_pretrained(repo, subfolder="unet", **fp16) - UNet2DConditionModel.transfer_from_hf(model.unet, LazyNumpyStateDict(unet)) - del unet - gc.collect() - - vae = DiffusersAutoencoderKL.from_pretrained(repo, subfolder="vae", **fp32) - model.vae.transfer_from_hf(numpy_state_dict(vae)) - del vae - gc.collect() + # the UNet (2.6B parameters: read tensor by tensor, no second in-memory copy) + # and the VAE: every keras weight's / maps to the diffusers key + # through WEIGHT_NAME_MAPPING. The SD 1.x era VAE files spell the mid-block + # attention query / key / value / proj_attn (diffusers renames them on load, a + # raw checkpoint read keeps them) + legacy = { + ".query.": ".to_q.", + ".key.": ".to_k.", + ".value.": ".to_v.", + ".proj_attn.": ".to_out.0.", + } + for component, module_cls, subfolder, load, lazy in ( + (model.unet, DiffusersUNet2DConditionModel, "unet", fp16, True), + (model.vae, DiffusersAutoencoderKL, "vae", fp32, False), + ): + module = module_cls.from_pretrained(repo, subfolder=subfolder, **load) + if lazy: + state = LazyNumpyStateDict(module) + else: + state = {} + for key, value in module.state_dict().items(): + if ".attentions." in key: + for old, new in legacy.items(): + key = key.replace(old, new) + state[key] = value.detach().cpu().numpy() + del module + consumed = set() + trainable, non_trainable = split_model_weights(component) + for keras_weight, _ in tqdm( + trainable + non_trainable, desc=f"Transferring {subfolder} weights to Keras" + ): + key = "/".join(keras_weight.path.split("/")[-2:]) + for old, new in WEIGHT_NAME_MAPPING.items(): + key = key.replace(old, new) + consumed.add(key) + if key not in state: + raise WeightMappingError(keras_weight.path, key) + torch_weight = state[key] + if not compare_keras_torch_names( + keras_weight.path, keras_weight, key, torch_weight + ): + raise WeightShapeMismatchError( + keras_weight.path, keras_weight.shape, key, torch_weight.shape + ) + if key.startswith(("time_embedding.", "add_embedding.")) and ( + keras_weight.ndim == 2 + ): + # transfer_weights treats any "embedding" 2D weight as a lookup + # table; the timestep / added-conditioning MLPs' linears are dense + # kernels + keras_weight.assign(np.transpose(torch_weight)) + continue + transfer_weights(key, keras_weight, torch_weight) + unused = sorted(set(state) - consumed) + if unused: + raise ValueError( + f"{type(component).__name__}: {len(unused)} checkpoint tensors " + f"unused, e.g. {unused[:3]}." + ) + del state + gc.collect() if config.text_config is not None: text_encoder = CLIPTextModel.from_pretrained( @@ -232,7 +280,7 @@ def build_from_diffusers(repo, token=None, dtype="float16"): for variant, source in sources.items(): print(f"\n{'=' * 60}\nConverting: {variant} <- {source}\n{'=' * 60}") - model, config = build_from_diffusers(source, token=token) + model, config = transfer_stable_diffusion_xl(source, token=token) n_bytes = sum( int(np.prod(w.shape)) * np.dtype(w.dtype).itemsize for w in model.weights From 1ec2e0c3a126ff65f08c1712162c0c87c8cb4810 Mon Sep 17 00:00:00 2001 From: IMvision12 Date: Sun, 13 Sep 2026 23:48:05 -0700 Subject: [PATCH 4/4] Fix models --- README.md | 2 +- docs/stable_diffusion_xl.md | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9f72eae8..2163a6f4 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ Documentation sources are also available in [`docs/`](docs/). |---------------|-------------------|---------------------| | Stable Diffusion 1.x (v1-1 to v1-5) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | | Stable Diffusion 2.x (2, 2-base, 2-1, 2-1-base, SD-Turbo) | [High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) | `diffusers` | - | Stable Diffusion XL (base + refiner 0.9 / 1.0, SDXL-Turbo) | [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis](https://arxiv.org/abs/2307.01952) | `diffusers` | + | Stable Diffusion XL (base + refiner 1.0, SDXL-Turbo) | [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis](https://arxiv.org/abs/2307.01952) | `diffusers` | | Stable Diffusion 3 (medium) | [Scaling Rectified Flow Transformers for High-Resolution Image Synthesis](https://arxiv.org/abs/2403.03206) | `diffusers` | | Stable Diffusion 3.5 (large, large-turbo, medium) | [Scaling Rectified Flow Transformers for High-Resolution Image Synthesis](https://arxiv.org/abs/2403.03206) | `diffusers` | diff --git a/docs/stable_diffusion_xl.md b/docs/stable_diffusion_xl.md index 91122a42..c62ad479 100644 --- a/docs/stable_diffusion_xl.md +++ b/docs/stable_diffusion_xl.md @@ -58,9 +58,8 @@ Links: - Paper: [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis (arXiv:2307.01952)](https://arxiv.org/abs/2307.01952) - Reference implementation: [diffusers `StableDiffusionXLPipeline`](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl) - Licenses: [CreativeML Open RAIL++-M](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/LICENSE.md) - (1.0 base and refiner), [SDXL 0.9 Research License](https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9/blob/main/LICENSE.md) - (0.9, gated), [Stability AI Non-Commercial Research Community License](https://huggingface.co/stabilityai/sdxl-turbo/blob/main/LICENSE.md) - (Turbo) + (1.0 base and refiner), [Stability AI Non-Commercial Research Community License](https://huggingface.co/stabilityai/sdxl-turbo/blob/main/LICENSE.md) + (Turbo); the 0.9 research previews are not hosted See also [stable_diffusion.md](stable_diffusion.md), [stable_diffusion_2.md](stable_diffusion_2.md), [clip.md](clip.md). @@ -76,14 +75,14 @@ UNet (2.26B) + VAE + OpenCLIP text encoder, 3.04B parameters, 5.8 GB. |---|---|---|---|---|---| | `stable-diffusion-xl-base-1.0` | [`zeromodels/stable-diffusion-xl-base-1.0`](https://huggingface.co/zeromodels/stable-diffusion-xl-base-1.0) | `StableDiffusionXLTextToImage` | 1024 | Euler, 50 steps, guidance 5.0 | CreativeML Open RAIL++-M | | `stable-diffusion-xl-refiner-1.0` | [`zeromodels/stable-diffusion-xl-refiner-1.0`](https://huggingface.co/zeromodels/stable-diffusion-xl-refiner-1.0) | `StableDiffusionXLRefinerImageToImage` | 1024 | Euler, 50 steps, guidance 5.0, strength 0.3 | CreativeML Open RAIL++-M | -| `stable-diffusion-xl-base-0.9` | [`zeromodels/stable-diffusion-xl-base-0.9`](https://huggingface.co/zeromodels/stable-diffusion-xl-base-0.9) | `StableDiffusionXLTextToImage` | 1024 | Euler, 50 steps, guidance 5.0 | SDXL 0.9 Research License (gated) | -| `stable-diffusion-xl-refiner-0.9` | [`zeromodels/stable-diffusion-xl-refiner-0.9`](https://huggingface.co/zeromodels/stable-diffusion-xl-refiner-0.9) | `StableDiffusionXLRefinerImageToImage` | 1024 | Euler, 50 steps, guidance 5.0, strength 0.3 | SDXL 0.9 Research License (gated) | | `sdxl-turbo` | [`zeromodels/sdxl-turbo`](https://huggingface.co/zeromodels/sdxl-turbo) | `StableDiffusionXLTextToImage` | 512 | Euler ancestral, 1 step, no guidance | Stability AI Non-Commercial Research Community | -The 0.9 checkpoints are the research preview that preceded 1.0 (same architecture, -different weights); their upstream repos are gated behind the research license, so they -are converted with an authorized `HF_TOKEN`. SDXL-Turbo is a research-only, -non-commercial release; its repo defaults (`generate_args`) are 1 step and +The SDXL 0.9 research previews (`stabilityai/stable-diffusion-xl-base-0.9` and +`-refiner-0.9`, the same architecture with different weights, gated behind the research +license) are not hosted; with an authorized token the converter turns them into the same +containers (`transfer_stable_diffusion_xl(repo, token=...)`, see +[Loading Fine-tuned Weights](#loading-fine-tuned-weights)). SDXL-Turbo is a +research-only, non-commercial release; its repo defaults (`generate_args`) are 1 step and `guidance_scale=0.0`, which is how it was trained (do not add guidance). ## API