Text-to-Image
Diffusers
Safetensors
English
BriaFibo2Pipeline
image-editing
image-to-image
inpainting
multi-reference
fine-tuning
structured-prompts
vgl
fibo
Instructions to use ml-resources/Fibo-2.0-dev with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use ml-resources/Fibo-2.0-dev with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("ml-resources/Fibo-2.0-dev", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
Mirror briaai/Fibo-2.0-dev
Browse files- .gitattributes +15 -0
- README.md +344 -0
- assets/benchmarks/aa_image_editing_v2.1.png +3 -0
- assets/benchmarks/aa_image_t2i_v2.1.png +3 -0
- assets/edit/masked_suitcase.png +3 -0
- assets/edit/multiref_dress.png +3 -0
- assets/edit/red_jacket.png +3 -0
- assets/fibo2_edit_strip.jpg +3 -0
- assets/fibo2_showcase.mp4 +3 -0
- assets/fibo2_showcase_poster.jpg +3 -0
- assets/fibo2_t2i_collage_opd.jpg +3 -0
- assets/t2i/inspire_blue_whale.png +3 -0
- assets/t2i/origami_whale.png +3 -0
- assets/t2i/still_life_alignment.png +3 -0
- fine_tuning/README.md +137 -0
- fine_tuning/train_lora.py +500 -0
- fonts/Aileron-Regular.otf +0 -0
- fonts/DejaVuSans.ttf +3 -0
- fonts/LICENSE-Aileron.txt +12 -0
- fonts/LICENSE-DejaVu.txt +78 -0
- fonts/README.md +21 -0
- model_index.json +24 -0
- processor/chat_template.jinja +120 -0
- processor/processor_config.json +61 -0
- processor/tokenizer.json +3 -0
- processor/tokenizer_config.json +31 -0
- scheduler/scheduler_config.json +18 -0
- text_encoder/config.json +70 -0
- text_encoder/generation_config.json +14 -0
- text_encoder/model.safetensors +3 -0
- transformer/config.json +37 -0
- transformer/diffusion_pytorch_model-00001-of-00002.safetensors +3 -0
- transformer/diffusion_pytorch_model-00002-of-00002.safetensors +3 -0
- transformer/diffusion_pytorch_model.safetensors.index.json +790 -0
- vae/config.json +40 -0
- vae/diffusion_pytorch_model.safetensors +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,18 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
assets/fibo2_edit_strip.jpg filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
assets/fibo2_showcase.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
assets/fibo2_showcase_poster.jpg filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
assets/fibo2_t2i_collage.jpg filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
assets/t2i/still_life_alignment.png filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
fonts/DejaVuSans.ttf filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
assets/fibo2_t2i_collage_opd.jpg filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
assets/t2i/origami_whale.png filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
assets/edit/red_jacket.png filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
assets/edit/masked_suitcase.png filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
assets/edit/multiref_dress.png filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
assets/t2i/inspire_blue_whale.png filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
assets/benchmarks/aa_image_editing_v2.1.png filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
assets/benchmarks/aa_image_t2i_v2.1.png filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: bria-fibo
|
| 4 |
+
license_link: https://creativecommons.org/licenses/by-nc/4.0/deed.en
|
| 5 |
+
language:
|
| 6 |
+
- en
|
| 7 |
+
library_name: diffusers
|
| 8 |
+
pipeline_tag: text-to-image
|
| 9 |
+
tags:
|
| 10 |
+
- image-editing
|
| 11 |
+
- text-to-image
|
| 12 |
+
- image-to-image
|
| 13 |
+
- inpainting
|
| 14 |
+
- multi-reference
|
| 15 |
+
- fine-tuning
|
| 16 |
+
- structured-prompts
|
| 17 |
+
- vgl
|
| 18 |
+
- fibo
|
| 19 |
+
---
|
| 20 |
+
> Mirror of [briaai/Fibo-2.0-dev](https://huggingface.co/briaai/Fibo-2.0-dev). All credit to Bria AI. Not an official release from them. License unchanged: [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.en), non-commercial use only. Commercial use requires a separate agreement with Bria AI.
|
| 21 |
+
|
| 22 |
+
<p align="center">
|
| 23 |
+
<img src="https://bria-public.s3.us-east-1.amazonaws.com/Bria-logo.svg" width="200"/>
|
| 24 |
+
</p>
|
| 25 |
+
|
| 26 |
+
<p align="center">
|
| 27 |
+
<a href="https://platform.bria.ai/"><img src="https://img.shields.io/badge/Bria-Platform-0EA5E9?style=for-the-badge"/></a>
|
| 28 |
+
<a href="https://discord.com/invite/Nxe9YW9zHS"><img src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=for-the-badge"/></a>
|
| 29 |
+
<a href="https://arxiv.org/abs/2511.06876"><img src="https://img.shields.io/badge/Tech%20Paper-lightgrey?logo=arxiv&logoColor=red&style=for-the-badge"/></a>
|
| 30 |
+
</p>
|
| 31 |
+
|
| 32 |
+
# Fibo 2.0 Dev
|
| 33 |
+
|
| 34 |
+
🏆 **#1 in image editing** and 🥈 **#2 in text-to-image** among open-weights models on [Artificial Analysis](https://artificialanalysis.ai) (October 20, 2026).
|
| 35 |
+
|
| 36 |
+
**One model to edit and generate images, and the foundation to build your own.**
|
| 37 |
+
|
| 38 |
+
Fibo 2.0 is the next generation of Bria's FIBO family. For the first time, **image editing and image generation live in a single unified model**. It keeps the foundation that made FIBO the most controllable open image model: training on long, structured captions through the [Visual GenAI Language (VGL)](https://docs.bria.ai/vgl). On top of that foundation it adds high-quality, general-purpose editing and a leap in text rendering, texture and anatomy. Like every FIBO model, it is trained exclusively on licensed data.
|
| 39 |
+
|
| 40 |
+
**Fibo 2.0 Dev** is the full, non-distilled base model. It runs with classifier-free guidance for maximum quality and control, and it is the starting point for **professional fine-tuning**. For few-step production editing, use [Fibo 2.0 Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo).
|
| 41 |
+
|
| 42 |
+
🚀 **Coming soon: multi-turn editing.** Chain edit after edit, each one building on the last, while the rest of the image stays pixel-stable.
|
| 43 |
+
|
| 44 |
+
---
|
| 45 |
+
|
| 46 |
+
## 🖼️ Text-to-Image
|
| 47 |
+
|
| 48 |
+
<p align="center">
|
| 49 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/fibo2_t2i_collage_opd.jpg" width="75%"/>
|
| 50 |
+
</p>
|
| 51 |
+
|
| 52 |
+
---
|
| 53 |
+
|
| 54 |
+
## ✏️ Image Editing
|
| 55 |
+
|
| 56 |
+
<p align="center">
|
| 57 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/fibo2_edit_strip.jpg" width="100%"/>
|
| 58 |
+
</p>
|
| 59 |
+
|
| 60 |
+
<!-- TODO: confirm the exact edit instructions used; add them as captions if desired. -->
|
| 61 |
+
|
| 62 |
+
---
|
| 63 |
+
|
| 64 |
+
## ✨ What's New in Fibo 2.0
|
| 65 |
+
|
| 66 |
+
| | |
|
| 67 |
+
|---|---|
|
| 68 |
+
| 🎯 **High-quality general editing** | Instruction-based edits that generalize across a wide range of tasks while preserving everything you didn't ask to change: identity, layout, lighting and fine detail. Masked and multi-reference edits are supported. |
|
| 69 |
+
| 🔀 **Unified editing + generation** | A single model handles image editing, text-to-image and iterative refinement. One deployment covers both. |
|
| 70 |
+
| 🔤 **Better text, texture and anatomy** | Clear gains in legible in-image typography, realistic material and surface texture, and correct human anatomy (hands, faces, poses). |
|
| 71 |
+
| ⚡ **Dev and Edit Turbo variants** | **[Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo)** is distilled for few-step, low-latency image editing. **Dev** (this model) is the full-quality base, built for professional fine-tuning and research. |
|
| 72 |
+
| 📐 **Still structured, still state of the art** | Still trained on structured captions, which gives Fibo 2.0 state-of-the-art prompt adherence and controllability among open models. |
|
| 73 |
+
| 🛡️ **Still 100% licensed** | Trained exclusively on licensed data, like every FIBO release. |
|
| 74 |
+
|
| 75 |
+
---
|
| 76 |
+
|
| 77 |
+
## 🛣️ Coming Soon
|
| 78 |
+
|
| 79 |
+
Fibo 2.0 is a platform, and we're already building on it:
|
| 80 |
+
|
| 81 |
+
| Release | What it does |
|
| 82 |
+
|---|---|
|
| 83 |
+
| 🔁 **Multi-Turn Local Editing LoRA** | Chain many localized edits in a row while the rest of the image stays pixel-stable, for true conversational editing. |
|
| 84 |
+
| ✂️ **Background Removal** | Clean, production-grade subject cutouts, built natively on Fibo 2.0. |
|
| 85 |
+
| 📦 **Product Shot LoRA** | Studio-quality product photography and placement for e-commerce and catalogs. |
|
| 86 |
+
| 📷 **Boring Reality Style** | Authentic, unpolished, everyday photo realism that looks captured, not generated. |
|
| 87 |
+
| 🧽 **Eraser by Mask** | Paint a mask and remove any object, with seamless, context-aware fill. |
|
| 88 |
+
| 🖼️ **Image Expansion** | Extend images beyond their borders (outpainting) to any aspect ratio, with a coherent continuation of the scene. |
|
| 89 |
+
|
| 90 |
+
Follow [Bria on Hugging Face](https://huggingface.co/briaai) and join our [Discord](https://discord.com/invite/Nxe9YW9zHS) to be the first to know.
|
| 91 |
+
|
| 92 |
+
---
|
| 93 |
+
|
| 94 |
+
## 🌍 What's Fibo?
|
| 95 |
+
|
| 96 |
+
Most image models excel at imagination but not at control. FIBO was built for professional workflows. It was trained on structured JSON captions of up to 1,000+ words that describe lighting, composition, color, camera and depth of field explicitly. This gives the model **native disentanglement**: you can change one attribute, such as the camera angle, the time of day or a subject's outfit, without the rest of the scene drifting.
|
| 97 |
+
|
| 98 |
+
Fibo 2.0 applies the same principle to editing. An edit is a precise, structured change to a visual blueprint, not a loose text prompt, so the results are **explicit, interpretable and repeatable**.
|
| 99 |
+
|
| 100 |
+
### 📐 The VGL Paradigm
|
| 101 |
+
|
| 102 |
+
Fibo 2.0 is natively built on **[Visual GenAI Language (VGL)](https://docs.bria.ai/vgl)**. VGL replaces vague natural-language descriptions with explicit JSON that both humans and machines can read. Lighting, composition, style, camera parameters and every object in the scene are separate, addressable fields. Generation becomes "render this blueprint," and editing becomes "apply this diff to the blueprint."
|
| 103 |
+
|
| 104 |
+
You never have to write JSON by hand. [`bria-vgl`](https://github.com/Bria-AI/vgl), the same open-source package behind Bria's API, turns short prompts and plain-language edit instructions into full structured prompts for you.
|
| 105 |
+
|
| 106 |
+
---
|
| 107 |
+
|
| 108 |
+
## 🎨 One Model, Every Workflow
|
| 109 |
+
|
| 110 |
+
| Mode | Input | What happens |
|
| 111 |
+
|---|---|---|
|
| 112 |
+
| **Edit** ✨ | Source image + instruction | Add, remove or replace objects, or change style, lighting, background, materials or text. Everything you didn't ask to change is preserved. |
|
| 113 |
+
| **Masked edit** ✨ | Source image + mask + instruction | The edit is confined to the masked region, and the rest of the image is left untouched. |
|
| 114 |
+
| **Multi-reference** ✨ | Up to 4 reference images + instruction | Information from every reference is combined into one result, for reference-guided composition, virtual try-on, product integration, and style or appearance transfer. |
|
| 115 |
+
| **Generate** | Short text prompt | The VLM expands your idea into a rich structured prompt, and Fibo 2.0 renders it. You get the image *and* the full JSON. |
|
| 116 |
+
| **Inspire** | Reference image + short prompt | A new structured prompt borrows the reference's subject, style or composition; Fibo 2.0 generates it from text and never sees the image. |
|
| 117 |
+
|
| 118 |
+
---
|
| 119 |
+
|
| 120 |
+
## 🔑 Key Features
|
| 121 |
+
|
| 122 |
+
- **Built for fine-tuning.** The full, non-distilled base model with classifier-free guidance. Train LoRAs or full fine-tunes for your own domain, style or editing task.
|
| 123 |
+
- **Unified architecture.** One set of weights for image editing *and* text-to-image: one model, one pipeline, one deployment.
|
| 124 |
+
- **High-fidelity editing.** Strong preservation of identity, structure and untouched regions across a wide range of edit types, with native mask and multi-reference support.
|
| 125 |
+
- **Structured JSON control.** Define images and edits with explicit parameters (lighting, composition, camera, style) for deterministic, reproducible results.
|
| 126 |
+
- **Disentangled refinement.** Tweak a single attribute without breaking the scene, and iterate without prompt drift.
|
| 127 |
+
- **Improved realism.** Sharper text rendering, richer textures and more reliable anatomy than previous FIBO releases.
|
| 128 |
+
- **Enterprise-grade.** 100% licensed training data, with governance, attribution traceability and legal clarity for commercial use.
|
| 129 |
+
- **Built for production.** At 8B parameters, it balances high-fidelity output with efficiency. Available as open weights, API endpoints and ComfyUI nodes.
|
| 130 |
+
|
| 131 |
+
---
|
| 132 |
+
|
| 133 |
+
## 📊 Evaluation
|
| 134 |
+
|
| 135 |
+
<!-- TODO: add benchmark results once available (editing benchmarks, T2I alignment/aesthetics, text rendering, Turbo vs. Dev quality/latency). -->
|
| 136 |
+
|
| 137 |
+
🏆 **#1 in image editing** and 🥈 **#2 in text-to-image** among open-weights models on the [Artificial Analysis](https://artificialanalysis.ai) Image Arena.
|
| 138 |
+
|
| 139 |
+
<p align="center">
|
| 140 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/benchmarks/aa_image_editing_v2.1.png" width="49%"/>
|
| 141 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/benchmarks/aa_image_t2i_v2.1.png" width="49%"/>
|
| 142 |
+
</p>
|
| 143 |
+
|
| 144 |
+
<p align="center"><sub>Rankings as of October 20, 2026.</sub></p>
|
| 145 |
+
|
| 146 |
+
### 🎯 Prompt Alignment
|
| 147 |
+
|
| 148 |
+
<table>
|
| 149 |
+
<tr>
|
| 150 |
+
<td width="30%"><img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/t2i/still_life_alignment.png" width="100%"/></td>
|
| 151 |
+
<td>
|
| 152 |
+
|
| 153 |
+
*"On a white windowsill, a row of exactly **five red apples** and **one green pear**, the pear in the **second position from the left**. A **small brass bell** sits on top of the third apple from the right. Morning light, minimal still life."*
|
| 154 |
+
|
| 155 |
+
Structured captions make Fibo 2.0 follow counts, positions and attributes precisely.
|
| 156 |
+
|
| 157 |
+
</td>
|
| 158 |
+
</tr>
|
| 159 |
+
</table>
|
| 160 |
+
|
| 161 |
+
---
|
| 162 |
+
|
| 163 |
+
## ⚡ Quick Start
|
| 164 |
+
|
| 165 |
+
| | Text-to-image | Image editing |
|
| 166 |
+
|---|---|---|
|
| 167 |
+
| 🚀 **Try it now** | [Generate sandbox](https://platform.bria.ai/image-generation/fibo-generate/sandbox) | [Edit sandbox](https://platform.bria.ai/image-editing/fibo-image-edit/sandbox) |
|
| 168 |
+
| ⚡ **Fal.ai** | [bria/fibo-2/generate](https://fal.ai/models/bria/fibo-2/generate) | [bria/fibo-2/edit](https://fal.ai/models/bria/fibo-2/edit) |
|
| 169 |
+
| 🤗 **Hugging Face Space** | [Fibo-2.0-T2I](https://huggingface.co/spaces/briaai/Fibo-2.0-T2I) | [Fibo-2.0-editing](https://huggingface.co/spaces/briaai/Fibo-2.0-editing) (runs Edit Turbo) |
|
| 170 |
+
|
| 171 |
+
**Bria API:** [docs.bria.ai](https://docs.bria.ai/) · **Bria Create:** [create.bria.ai](https://create.bria.ai/)
|
| 172 |
+
|
| 173 |
+
**ComfyUI:** [Bria ComfyUI nodes](https://github.com/Bria-AI/ComfyUI-BRIA-API) · **Agents:** [Bria agent skill](https://github.com/Bria-AI/bria-skill)
|
| 174 |
+
|
| 175 |
+
**License:** Creative Commons Attribution–Non-Commercial (CC BY-NC 4.0)<br>
|
| 176 |
+
The model is released under a CC BY-NC 4.0 license for non-commercial use.<br>
|
| 177 |
+
Commercial use is subject to a commercial agreement with BRIA. Available [here](https://platform.bria.ai/licensing/pricing?model=fibo-2).
|
| 178 |
+
|
| 179 |
+
### Installation
|
| 180 |
+
|
| 181 |
+
`BriaFibo2Pipeline` is being added to diffusers ([PR #14991](https://github.com/huggingface/diffusers/pull/14991)). Until it is merged, install diffusers from the PR branch. [`bria-vgl`](https://github.com/Bria-AI/vgl) writes the structured prompts, with the same prompts and model as the Bria API and fal endpoints.
|
| 182 |
+
|
| 183 |
+
```bash
|
| 184 |
+
pip install -U "git+https://github.com/muhammadali-afridi/diffusers@ali/fibo2" torch torchvision transformers accelerate
|
| 185 |
+
```
|
| 186 |
+
|
| 187 |
+
Install `bria-vgl` with pip or uv:
|
| 188 |
+
|
| 189 |
+
```bash
|
| 190 |
+
pip install bria-vgl
|
| 191 |
+
# or
|
| 192 |
+
uv add bria-vgl
|
| 193 |
+
```
|
| 194 |
+
|
| 195 |
+
`bria-vgl` runs on Gemini; set your key ([get one here](https://aistudio.google.com/apikey)):
|
| 196 |
+
|
| 197 |
+
```bash
|
| 198 |
+
export GEMINI_API_KEY="your-api-key"
|
| 199 |
+
```
|
| 200 |
+
|
| 201 |
+
> 🛠️ **Full base model.** Use `num_inference_steps=50` and `guidance_scale=5.0`. For few-step, guidance-free editing, use [Fibo 2.0 Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo).
|
| 202 |
+
|
| 203 |
+
### Setup
|
| 204 |
+
|
| 205 |
+
Fibo 2.0 reads structured VGL captions. `bria-vgl` turns a short prompt, or images plus a plain-language instruction, into one: `create()` for generation, `modify()` for edits.
|
| 206 |
+
|
| 207 |
+
```python
|
| 208 |
+
import json
|
| 209 |
+
import torch
|
| 210 |
+
from PIL import Image
|
| 211 |
+
from diffusers import BriaFibo2Pipeline
|
| 212 |
+
from huggingface_hub import hf_hub_download
|
| 213 |
+
from bria_vgl import create, modify
|
| 214 |
+
from bria_vgl.dialects.thales import EditImages, EditImageWithMask, Generate, Inspire
|
| 215 |
+
|
| 216 |
+
pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-dev", dtype=torch.bfloat16).to("cuda")
|
| 217 |
+
# On Hopper GPUs (H100), FlashAttention-3 is faster:
|
| 218 |
+
# pipe.transformer.set_attention_backend("_flash_3_varlen_hub")
|
| 219 |
+
|
| 220 |
+
# Fibo 2.0 sees each text in the caption drawn as a small image.
|
| 221 |
+
fonts = [hf_hub_download("briaai/Fibo-2.0-dev", name, subfolder="fonts") for name in ("Aileron-Regular.otf", "DejaVuSans.ttf")]
|
| 222 |
+
|
| 223 |
+
# Negative prompts: text-to-image steers away from soft, featureless, artifact-laden images; edits use the empty caption the model was trained with.
|
| 224 |
+
NEGATIVE_T2I = '{"short_description":"","objects":[{"description":"the main subject","texture":"smooth, featureless, plastic-like, airbrushed, no fine surface detail","appearance_details":"soft blurred edges, simplified shapes, no fine detail","skin_tone_and_texture":"waxy airbrushed skin, poreless, plastic smooth"}],"background_setting":"a plain seamless studio backdrop, perfectly smooth gradient, blurred and featureless, no visible texture","lighting":{},"aesthetics":{"artifacts":["oversaturated colours","neon colour cast","overexposed highlights","lens flare","slight blur","motion blur","haze"]},"photographic_characteristics":{"depth_of_field":"shallow, heavy bokeh obscuring most of the frame","focus":"soft, slightly out of focus, lacking fine texture"},"style_medium":"","context":"","artistic_style":""}'
|
| 225 |
+
NEGATIVE_EDIT = '{"short_description":"","objects":[],"background_setting":"","lighting":{},"aesthetics":{},"photographic_characteristics":{},"style_medium":"","context":"","artistic_style":""}'
|
| 226 |
+
|
| 227 |
+
|
| 228 |
+
# bria-vgl's scene as the JSON prompt the pipeline reads
|
| 229 |
+
def vgl(scene) -> str:
|
| 230 |
+
return json.dumps(scene.model_dump(exclude_none=True), ensure_ascii=False)
|
| 231 |
+
```
|
| 232 |
+
|
| 233 |
+
### Generate (text-to-image)
|
| 234 |
+
|
| 235 |
+
```python
|
| 236 |
+
scene = create(Generate(prompt="An origami whale swimming through paper clouds"), seed=0)
|
| 237 |
+
image = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_T2I, width=1424, height=800, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
|
| 238 |
+
image.save("generate.png")
|
| 239 |
+
```
|
| 240 |
+
|
| 241 |
+
`width` and `height` set the output size. Use multiples of 16 at about one megapixel, the area Fibo 2.0 was trained at: for example `1024×1024` (the default), `1424×800` (16:9) or `1248×832` (3:2).
|
| 242 |
+
|
| 243 |
+
<p align="center">
|
| 244 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/t2i/origami_whale.png" width="75%"/>
|
| 245 |
+
</p>
|
| 246 |
+
|
| 247 |
+
You get the image *and* its full structured caption (`scene`), which you can inspect, edit and render again.
|
| 248 |
+
|
| 249 |
+
### Edit
|
| 250 |
+
|
| 251 |
+
```python
|
| 252 |
+
source = Image.open("photo.jpg").convert("RGB")
|
| 253 |
+
scene = modify(EditImages(prompt="replace the jacket with a red leather one", images=[source]), seed=0)
|
| 254 |
+
print(scene.edit_instruction) # the instruction, rewritten in the form Fibo 2.0 was trained on
|
| 255 |
+
|
| 256 |
+
edited = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_EDIT, image=source, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
|
| 257 |
+
edited.save("edited.png")
|
| 258 |
+
```
|
| 259 |
+
|
| 260 |
+
<p align="center">
|
| 261 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/edit/red_jacket.png" width="100%"/>
|
| 262 |
+
</p>
|
| 263 |
+
|
| 264 |
+
### Masked edit
|
| 265 |
+
|
| 266 |
+
White marks the region to regenerate; everything else is kept. The mask goes to both `bria-vgl` and the pipeline.
|
| 267 |
+
|
| 268 |
+
```python
|
| 269 |
+
source = Image.open("suitcase.png").convert("RGB")
|
| 270 |
+
mask = Image.open("suitcase_mask.png").convert("L") # same size as the source
|
| 271 |
+
scene = modify(EditImageWithMask(prompt="replace the suitcase with a vintage brown leather one", image=source, mask=mask), seed=0)
|
| 272 |
+
edited = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_EDIT, image=source, mask=mask, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
|
| 273 |
+
```
|
| 274 |
+
|
| 275 |
+
<p align="center">
|
| 276 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/edit/masked_suitcase.png" width="100%"/>
|
| 277 |
+
</p>
|
| 278 |
+
|
| 279 |
+
### Multiple references
|
| 280 |
+
|
| 281 |
+
Up to 4 images, referred to in order as `<image_1>`, `<image_2>`, and so on.
|
| 282 |
+
|
| 283 |
+
```python
|
| 284 |
+
references = [Image.open("person.png").convert("RGB"), Image.open("dress.png").convert("RGB")]
|
| 285 |
+
scene = modify(EditImages(prompt="dress the person in <image_1> in the dress from <image_2>", images=references), seed=0)
|
| 286 |
+
result = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_EDIT, image=references, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
|
| 287 |
+
```
|
| 288 |
+
|
| 289 |
+
<p align="center">
|
| 290 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/edit/multiref_dress.png" width="100%"/>
|
| 291 |
+
</p>
|
| 292 |
+
|
| 293 |
+
### Inspire
|
| 294 |
+
|
| 295 |
+
Text-to-image with a reference image. `bria-vgl` looks at the image and writes a structured prompt for the scene you describe, carrying over what you ask for from the reference: its subject, style, colours or composition. The pipeline then generates from that prompt alone, without seeing the image, so the result is inspired by the reference rather than a copy of it.
|
| 296 |
+
|
| 297 |
+
```python
|
| 298 |
+
reference = Image.open("generate.png").convert("RGB") # the whale from the Generate example
|
| 299 |
+
scene = create(Inspire(prompt="the same scene, the whale is blue and the clouds are orange", image=reference), seed=0)
|
| 300 |
+
image = pipe(prompt=vgl(scene), negative_prompt=NEGATIVE_T2I, num_inference_steps=50, guidance_scale=5.0, fonts=fonts).images[0]
|
| 301 |
+
```
|
| 302 |
+
|
| 303 |
+
<p align="center">
|
| 304 |
+
<img src="https://d1uqrfwi55x6ib.cloudfront.net/fibo-2.0-dev/assets/t2i/inspire_blue_whale.png" width="50%"/>
|
| 305 |
+
</p>
|
| 306 |
+
|
| 307 |
+
---
|
| 308 |
+
|
| 309 |
+
## 🛠️ Fine-Tuning
|
| 310 |
+
|
| 311 |
+
Generation and editing share one set of weights, so a single fine-tune can teach Fibo 2.0 Dev a new style or domain *and* how to edit within it. Typical uses:
|
| 312 |
+
|
| 313 |
+
- **Brand and style LoRAs** that lock in a visual identity across every generated and edited asset.
|
| 314 |
+
- **Domain specialists** for product photography, fashion, interiors, food, or any vertical with its own visual language.
|
| 315 |
+
- **Task-specific editors**: narrow, highly reliable edit operations, like the upcoming Fibo 2.0 LoRAs.
|
| 316 |
+
|
| 317 |
+
Fine-tuning code: [`fine_tuning/`](fine_tuning/README.md) holds a single-GPU LoRA trainer for editing and text-to-image, with a guide to preparing data.
|
| 318 |
+
|
| 319 |
+
---
|
| 320 |
+
|
| 321 |
+
## 🧠 Training and Architecture
|
| 322 |
+
|
| 323 |
+
Fibo 2.0 is an **8B-parameter flow-matching model** operating in the latent space of the **FLUX.2 VAE**. Prompts are encoded by **Qwen3-VL-4B-Instruct**, and context images for editing are encoded by both the VLM and the VAE. A two-layer Perceiver resampler compresses the VLM output into **256–512 "gist" tokens**, with more tokens for longer prompts. These are prepended to the image tokens (the noisy latent and, when editing, the clean context latents) and processed by a **single-stream DiT with 44 blocks**. Internal VLM layers also feed five of those blocks directly through cross-attention.
|
| 324 |
+
|
| 325 |
+
Fibo 2.0 Dev is the base checkpoint of the release. [Fibo 2.0 Edit Turbo](https://huggingface.co/briaai/Fibo-2.0-edit-turbo) is distilled from it for few-step editing, with the same architecture.
|
| 326 |
+
|
| 327 |
+
**Data:** trained exclusively on licensed data, curated from Bria's ~1B-image dataset and paired with long, structured captions.
|
| 328 |
+
|
| 329 |
+
---
|
| 330 |
+
|
| 331 |
+
FIBO is inspired by the Fibonacci sequence, where math meets beauty through the golden ratio, nature's and design's timeless key to harmony.
|
| 332 |
+
|
| 333 |
+
If you have questions, feedback or want to contribute, we welcome your discussions and pull requests in this model's [Community tab](https://huggingface.co/briaai/Fibo-2.0-dev/discussions). If you're passionate about fundamental research, we're hiring full-time employees and research interns. Reach out to us at hr@bria.ai.
|
| 334 |
+
|
| 335 |
+
## Citation
|
| 336 |
+
|
| 337 |
+
```bibtex
|
| 338 |
+
@article{gutflaish2025generating,
|
| 339 |
+
title={Generating an Image From 1,000 Words: Enhancing Text-to-Image With Structured Captions},
|
| 340 |
+
author={Gutflaish, Eyal and Kachlon, Eliran and Zisman, Hezi and Hacham, Tal and Sarid, Nimrod and Visheratin, Alexander and Huberman, Saar and Davidi, Gal and Bukchin, Guy and Goldberg, Kfir and others},
|
| 341 |
+
journal={arXiv preprint arXiv:2511.06876},
|
| 342 |
+
year={2025}
|
| 343 |
+
}
|
| 344 |
+
```
|
assets/benchmarks/aa_image_editing_v2.1.png
ADDED
|
Git LFS Details
|
assets/benchmarks/aa_image_t2i_v2.1.png
ADDED
|
Git LFS Details
|
assets/edit/masked_suitcase.png
ADDED
|
Git LFS Details
|
assets/edit/multiref_dress.png
ADDED
|
Git LFS Details
|
assets/edit/red_jacket.png
ADDED
|
Git LFS Details
|
assets/fibo2_edit_strip.jpg
ADDED
|
Git LFS Details
|
assets/fibo2_showcase.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0912b1ac57c53b14ddb663a95511510f43e54ab5e8eae2a4819f2227c560b85e
|
| 3 |
+
size 7934028
|
assets/fibo2_showcase_poster.jpg
ADDED
|
Git LFS Details
|
assets/fibo2_t2i_collage_opd.jpg
ADDED
|
Git LFS Details
|
assets/t2i/inspire_blue_whale.png
ADDED
|
Git LFS Details
|
assets/t2i/origami_whale.png
ADDED
|
Git LFS Details
|
assets/t2i/still_life_alignment.png
ADDED
|
Git LFS Details
|
fine_tuning/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Fibo 2.0 LoRA fine-tuning
|
| 2 |
+
|
| 3 |
+
`train_lora.py` trains a LoRA on Fibo 2.0 Dev for image editing or text-to-image. It runs on one
|
| 4 |
+
GPU and uses the diffusers `BriaFibo2Pipeline` to encode its training data exactly as the pipeline
|
| 5 |
+
encodes prompts and images at inference. The module docstring has the full details.
|
| 6 |
+
|
| 7 |
+
## Install
|
| 8 |
+
|
| 9 |
+
`BriaFibo2Pipeline` is being added to diffusers in
|
| 10 |
+
[PR #14991](https://github.com/huggingface/diffusers/pull/14991). Until it is merged, install the
|
| 11 |
+
branch the model card uses:
|
| 12 |
+
|
| 13 |
+
```bash
|
| 14 |
+
pip install "torch==2.10.*" torchvision "transformers>=5.19" peft safetensors pillow numpy click \
|
| 15 |
+
"diffusers @ git+https://github.com/muhammadali-afridi/diffusers@ali/fibo2"
|
| 16 |
+
```
|
| 17 |
+
|
| 18 |
+
Then get the script. The model repo is gated, so accept its terms on Hugging Face and log in first:
|
| 19 |
+
|
| 20 |
+
```bash
|
| 21 |
+
hf auth login
|
| 22 |
+
hf download briaai/Fibo-2.0-dev --include "fine_tuning/*" --local-dir .
|
| 23 |
+
```
|
| 24 |
+
|
| 25 |
+
## Base model
|
| 26 |
+
|
| 27 |
+
`--base` defaults to `briaai/Fibo-2.0-dev`, which is downloaded on first use. It also takes a local
|
| 28 |
+
folder in the same diffusers layout.
|
| 29 |
+
|
| 30 |
+
## Data
|
| 31 |
+
|
| 32 |
+
The trainer picks the mode from the data folder. If `<data>/edits.jsonl` exists it trains edits,
|
| 33 |
+
otherwise text-to-image. `--mode` overrides this.
|
| 34 |
+
|
| 35 |
+
### Edit
|
| 36 |
+
|
| 37 |
+
`<data>/edits.jsonl` holds one row per training pair. Image paths are relative to `<data>`.
|
| 38 |
+
|
| 39 |
+
- `sources`: 1 to 4 input images. With several, the instruction can name them `<image_1>`,
|
| 40 |
+
`<image_2>` and so on.
|
| 41 |
+
- `target`: the edited result.
|
| 42 |
+
- `instruction`: the prompt.
|
| 43 |
+
|
| 44 |
+
The pipeline accepts edit prompts in two forms, and the `instruction` can use either:
|
| 45 |
+
|
| 46 |
+
- **Plain instruction:** the edit instruction alone.
|
| 47 |
+
- **Instruction with a caption of the result:** a structured JSON caption of the target image,
|
| 48 |
+
with the instruction under `edit_instruction`. This is what
|
| 49 |
+
[`bria-vgl`](https://github.com/Bria-AI/vgl)'s `modify()` writes, and what the model card's
|
| 50 |
+
inference examples use.
|
| 51 |
+
|
| 52 |
+
The two forms give different text embeddings, so train in the form you will prompt with at
|
| 53 |
+
inference. Rows can mix the two forms.
|
| 54 |
+
|
| 55 |
+
#### Plain instruction
|
| 56 |
+
|
| 57 |
+
```json
|
| 58 |
+
{"sources": ["images/0001_src.jpg"], "target": "images/0001_tgt.jpg", "instruction": "Remove the lamp."}
|
| 59 |
+
```
|
| 60 |
+
|
| 61 |
+
#### Instruction with a caption of the result
|
| 62 |
+
|
| 63 |
+
The pipeline sends the instruction and the caption to the text encoder as separate fields. Write
|
| 64 |
+
the caption as a JSON object, or as that object serialised into a string. A JSON caption without
|
| 65 |
+
`edit_instruction` is an error.
|
| 66 |
+
|
| 67 |
+
```json
|
| 68 |
+
{"sources": ["images/0002_src.jpg"], "target": "images/0002_tgt.jpg", "instruction": {"short_description": "An empty oak desk by a window.", "objects": [], "edit_instruction": "Remove the lamp."}}
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
The caption can also sit under a `structured_caption` key, next to `edit_instruction` and nothing
|
| 72 |
+
else. The pipeline drops empty values and the `aesthetic_score` and `preference_score` keys from a
|
| 73 |
+
caption.
|
| 74 |
+
|
| 75 |
+
### Text-to-image
|
| 76 |
+
|
| 77 |
+
Put each image next to a caption file with the same name: `<name>.json` for a structured caption,
|
| 78 |
+
or `<name>.txt` for a plain sentence. Subfolders are searched too.
|
| 79 |
+
|
| 80 |
+
```
|
| 81 |
+
my_t2i/
|
| 82 |
+
├── bicycle.jpg
|
| 83 |
+
├── bicycle.json
|
| 84 |
+
└── street/
|
| 85 |
+
├── 0001.webp
|
| 86 |
+
└── 0001.txt
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
- Images can be `png`, `jpg`, `jpeg` or `webp`.
|
| 90 |
+
- Images without a caption are skipped. If both caption files exist, the `.json` is used.
|
| 91 |
+
- The folder must not contain `edits.jsonl`, or the trainer switches to edit mode.
|
| 92 |
+
|
| 93 |
+
Prefer `.json` captions: the model was trained on structured captions, the same format you prompt
|
| 94 |
+
with at inference. [`bria-vgl`](https://github.com/Bria-AI/vgl)'s `create()` writes them. Leave
|
| 95 |
+
out keys you don't need. The trainer cleans and compacts the JSON as the pipeline does, and
|
| 96 |
+
handles `text_render` entries the same way too. For example, `bicycle.json`:
|
| 97 |
+
|
| 98 |
+
```json
|
| 99 |
+
{
|
| 100 |
+
"short_description": "A red bicycle leaning against a white brick wall on a sunny morning.",
|
| 101 |
+
"objects": [{"description": "a red city bicycle with a wicker basket", "location": "center"}],
|
| 102 |
+
"background_setting": "a white brick wall with a green door",
|
| 103 |
+
"lighting": {"conditions": "bright morning sun", "direction": "from the right"},
|
| 104 |
+
"style_medium": "photograph"
|
| 105 |
+
}
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
+
## Train
|
| 109 |
+
|
| 110 |
+
```bash
|
| 111 |
+
python fine_tuning/train_lora.py --data my_edits/ --output-dir out/ \
|
| 112 |
+
--resolution 1024 --rank 64 --lr 1e-4 --steps 1000 --grad-accum 8
|
| 113 |
+
```
|
| 114 |
+
|
| 115 |
+
The first run encodes every sample once and caches it in `<output-dir>/cache`. Checkpoints go to
|
| 116 |
+
`out/checkpoint-<step>/` and `out/final/`. The loss per step is in `out/loss.csv`. That loss uses a
|
| 117 |
+
random noise level per sample, so expect a noisy, flat-looking curve.
|
| 118 |
+
|
| 119 |
+
## Use the LoRA
|
| 120 |
+
|
| 121 |
+
```python
|
| 122 |
+
import torch
|
| 123 |
+
from diffusers import BriaFibo2Pipeline
|
| 124 |
+
|
| 125 |
+
pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-dev", dtype=torch.bfloat16).to("cuda")
|
| 126 |
+
pipe.transformer.load_lora_adapter("out/final", weight_name="pytorch_lora_weights.safetensors")
|
| 127 |
+
```
|
| 128 |
+
|
| 129 |
+
`weight_name` is required. Without it diffusers looks for a `.bin` file.
|
| 130 |
+
|
| 131 |
+
## Notes
|
| 132 |
+
|
| 133 |
+
- **Memory:** an edit LoRA at 1024, rank 128, grad accum 8 peaked at 31 GiB, at about 58 s per
|
| 134 |
+
step on an L40S.
|
| 135 |
+
- **Defaults:** AdamW, LR 1e-4 constant, LoRA on all 415 linear layers, LoRA weights kept in fp32.
|
| 136 |
+
- **Adapter size:** a rank-128 adapter is about 2.1 GB in fp32.
|
| 137 |
+
- **Gradient checkpointing** is on by default. Turn it off with `--no-gradient-checkpointing`.
|
fine_tuning/train_lora.py
ADDED
|
@@ -0,0 +1,500 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""LoRA trainer for Fibo 2.0 (edit and text-to-image) on the diffusers `BriaFibo2Pipeline`.
|
| 2 |
+
|
| 3 |
+
Self-contained: needs only torch, diffusers (with `BriaFibo2Pipeline`: until PR
|
| 4 |
+
huggingface/diffusers#14991 is merged, branch ali/fibo2 of muhammadali-afridi/diffusers, tested
|
| 5 |
+
at e158bdea), torchvision (Qwen3-VL's processor needs it), transformers, peft, safetensors,
|
| 6 |
+
pillow, numpy and click.
|
| 7 |
+
|
| 8 |
+
What it does
|
| 9 |
+
------------
|
| 10 |
+
1. Pre-encodes every training sample once with the pipeline's own methods (`encode_prompt`,
|
| 11 |
+
`prepare_image_latents`, `image_processor`, the pipeline's caption cleaning and its text
|
| 12 |
+
images, drawn in the base repo's fonts), writes the result to
|
| 13 |
+
`<cache-dir>/<idx>.safetensors`, then frees Qwen3-VL and the VAE.
|
| 14 |
+
2. Loads the transformer in bf16 (frozen), adds a LoRA to every `nn.Linear`, keeps the LoRA
|
| 15 |
+
weights in fp32, and trains them with flow matching (batch 1, gradient accumulation).
|
| 16 |
+
3. Saves `<output-dir>/checkpoint-<step>/` every `--save-every` steps and `<output-dir>/final/`
|
| 17 |
+
(`pytorch_lora_weights.safetensors`, see "Load the result"). Also writes `loss.csv`.
|
| 18 |
+
|
| 19 |
+
Data
|
| 20 |
+
----
|
| 21 |
+
edit mode (`<data>/edits.jsonl` exists, or `--mode edit`): one JSON object per line,
|
| 22 |
+
{"sources": ["a/src.jpg", ...1 to 4 paths], "target": "a/tgt.jpg", "instruction": "..."}
|
| 23 |
+
paths are relative to `<data>`. The instruction may refer to the sources as <image_1>, <image_2>.
|
| 24 |
+
"instruction" is a plain string, or a structured JSON caption of the target (an object, or that
|
| 25 |
+
object serialised) with an "edit_instruction" key; the pipeline splits it into the two.
|
| 26 |
+
t2i mode: images (png/jpg/jpeg/webp) anywhere under `<data>`. Each image's caption is a file next
|
| 27 |
+
to it with the same name: `<name>.json` (a structured caption object, re-serialised compact) or
|
| 28 |
+
`<name>.txt` (a plain sentence, used as is). The .json wins if both exist; uncaptioned images are
|
| 29 |
+
skipped. The README has an example.
|
| 30 |
+
|
| 31 |
+
Text images: a JSON caption with `text_render` entries gets an image of each entry's text, drawn
|
| 32 |
+
and shown to Qwen3-VL as the pipeline does at inference. Text-to-image samples also cache the
|
| 33 |
+
caption without them, used above noise level 0.9, where inference leaves them out.
|
| 34 |
+
|
| 35 |
+
Sizing: the result size is chosen on the 16-pixel grid within 10% of `--resolution`^2 pixels,
|
| 36 |
+
cropping the least from the first source (edit) or the target (t2i), exactly as the pipeline does
|
| 37 |
+
at inference (`image_processor.get_image_size` with area `--resolution`^2). Targets and extra
|
| 38 |
+
sources are cover-cropped to their sizes by `image_processor.preprocess`.
|
| 39 |
+
|
| 40 |
+
Run (1024 / rank 128 / grad accum 8 peaked at 31 GiB, about 58 s per step on an L40S)
|
| 41 |
+
--------------------------------------------------------------------------------------
|
| 42 |
+
python train_lora.py --base <hf-repo-or-local-dir> --data my_edits/ --output-dir out/ \\
|
| 43 |
+
--resolution 1024 --rank 64 --lr 1e-4 --steps 1000 --grad-accum 8
|
| 44 |
+
|
| 45 |
+
Load the result (`weight_name` is required: without it diffusers looks for a `.bin`):
|
| 46 |
+
pipe = BriaFibo2Pipeline.from_pretrained(base, dtype=torch.bfloat16)
|
| 47 |
+
pipe.transformer.load_lora_adapter("out/final", weight_name="pytorch_lora_weights.safetensors")
|
| 48 |
+
|
| 49 |
+
Recipe: sigma ~ sigmoid(N(shift, 1)) with prob 0.9 else U(0, 1), shift = 0.5 + 0.65 * (n - 256) /
|
| 50 |
+
3840 for n target tokens; x_t = sigma * noise + (1 - sigma) * x0; target = noise - x0; fp32 MSE.
|
| 51 |
+
Text dropout swaps in the null caption embedding; context dropout (edit) removes the ref latents
|
| 52 |
+
but keeps what Qwen3-VL saw. AdamW (wd 0.01), constant LR, grad clip 1.0.
|
| 53 |
+
"""
|
| 54 |
+
|
| 55 |
+
import csv
|
| 56 |
+
import gc
|
| 57 |
+
import json
|
| 58 |
+
import math
|
| 59 |
+
import random
|
| 60 |
+
import time
|
| 61 |
+
from pathlib import Path
|
| 62 |
+
from typing import Any
|
| 63 |
+
|
| 64 |
+
import click
|
| 65 |
+
import numpy as np
|
| 66 |
+
import torch
|
| 67 |
+
from PIL import Image, ImageOps
|
| 68 |
+
from safetensors import SafetensorError, safe_open
|
| 69 |
+
from safetensors.torch import load_file, save_file
|
| 70 |
+
from torch import nn
|
| 71 |
+
|
| 72 |
+
DEFAULT_BASE = "briaai/Fibo-2.0-dev"
|
| 73 |
+
EXPECTED_ADAPTED_MODULES = 415 # nn.Linear layers of the Fibo 2.0 transformer
|
| 74 |
+
IMAGE_SUFFIXES = {".png", ".jpg", ".jpeg", ".webp"}
|
| 75 |
+
FONT_FILES = ("Aileron-Regular.otf", "DejaVuSans.ttf")
|
| 76 |
+
SHIFT_BASE, SHIFT_MAX, SEQ_BASE, SEQ_MAX = 0.5, 1.15, 256, 4096
|
| 77 |
+
# text-to-image leaves out the text images above this noise level, as the pipeline does
|
| 78 |
+
TEXT_IMAGES_MAX_SIGMA = 0.9
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
# ------------------------------------------------------------------------------------ data
|
| 82 |
+
def compact(caption: dict) -> str:
|
| 83 |
+
return json.dumps(caption, separators=(",", ":"), ensure_ascii=False)
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
def as_prompt(value: str | dict) -> str:
|
| 87 |
+
"""A caption object serialised compactly, as Fibo 2.0 was trained, or a plain string as is."""
|
| 88 |
+
if isinstance(value, dict):
|
| 89 |
+
return compact(value)
|
| 90 |
+
return value
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
def edit_prompt(instruction: str | dict) -> str:
|
| 94 |
+
"""An edit row's prompt. A JSON caption must hold the "edit_instruction" key."""
|
| 95 |
+
prompt = as_prompt(instruction)
|
| 96 |
+
try:
|
| 97 |
+
caption = json.loads(prompt)
|
| 98 |
+
except json.JSONDecodeError:
|
| 99 |
+
return prompt
|
| 100 |
+
if not isinstance(caption, dict):
|
| 101 |
+
return prompt
|
| 102 |
+
if "edit_instruction" not in caption:
|
| 103 |
+
raise click.ClickException(
|
| 104 |
+
f'JSON instruction has no "edit_instruction" key: {prompt[:200]}'
|
| 105 |
+
)
|
| 106 |
+
if "structured_caption" in caption and (
|
| 107 |
+
not isinstance(caption["structured_caption"], (dict, str)) or len(caption) > 2
|
| 108 |
+
):
|
| 109 |
+
raise click.ClickException(
|
| 110 |
+
'a "structured_caption" instruction holds only "structured_caption" (an object or a'
|
| 111 |
+
f' string) and "edit_instruction": {prompt[:200]}'
|
| 112 |
+
)
|
| 113 |
+
return prompt
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
def load_samples(data: Path, mode: str) -> list[dict[str, Any]]:
|
| 117 |
+
"""Return [{'sources': [Path], 'target': Path, 'prompt': str}] (sources empty for t2i)."""
|
| 118 |
+
samples: list[dict[str, Any]] = []
|
| 119 |
+
if mode == "edit":
|
| 120 |
+
for line in (data / "edits.jsonl").read_text().splitlines():
|
| 121 |
+
if not line.strip():
|
| 122 |
+
continue
|
| 123 |
+
row = json.loads(line)
|
| 124 |
+
if not 1 <= len(row["sources"]) <= 4:
|
| 125 |
+
raise click.ClickException(f"need 1-4 sources, got {len(row['sources'])}")
|
| 126 |
+
samples.append(
|
| 127 |
+
{
|
| 128 |
+
"sources": [data / s for s in row["sources"]],
|
| 129 |
+
"target": data / row["target"],
|
| 130 |
+
"prompt": edit_prompt(row["instruction"]),
|
| 131 |
+
}
|
| 132 |
+
)
|
| 133 |
+
else:
|
| 134 |
+
for img in sorted(p for p in data.rglob("*") if p.suffix.lower() in IMAGE_SUFFIXES):
|
| 135 |
+
if img.with_suffix(".json").exists():
|
| 136 |
+
prompt = as_prompt(json.loads(img.with_suffix(".json").read_text()))
|
| 137 |
+
elif img.with_suffix(".txt").exists():
|
| 138 |
+
prompt = img.with_suffix(".txt").read_text().strip()
|
| 139 |
+
else:
|
| 140 |
+
continue
|
| 141 |
+
samples.append({"sources": [], "target": img, "prompt": prompt})
|
| 142 |
+
if not samples:
|
| 143 |
+
raise click.ClickException(f"no samples found in {data} (mode={mode})")
|
| 144 |
+
return samples
|
| 145 |
+
|
| 146 |
+
|
| 147 |
+
def load_image(path: Path) -> Image.Image:
|
| 148 |
+
return ImageOps.exif_transpose(Image.open(path)).convert("RGB")
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
# ----------------------------------------------------------------------- pre-encode phase
|
| 152 |
+
def cache_ok(path: Path, meta: dict[str, str]) -> bool:
|
| 153 |
+
if not path.exists():
|
| 154 |
+
return False
|
| 155 |
+
try:
|
| 156 |
+
with safe_open(path, "pt") as f:
|
| 157 |
+
got = f.metadata() or {}
|
| 158 |
+
except (OSError, SafetensorError): # partial or corrupt file: re-encode
|
| 159 |
+
return False
|
| 160 |
+
return all(got.get(k) == v for k, v in meta.items())
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
def load_fonts(base: str) -> list[Any]:
|
| 164 |
+
"""The fonts the base model's training drew text images with, from its `fonts` folder."""
|
| 165 |
+
from diffusers.pipelines.bria_fibo2.text_images import load_font
|
| 166 |
+
from huggingface_hub import hf_hub_download
|
| 167 |
+
|
| 168 |
+
paths = [
|
| 169 |
+
str(Path(base) / "fonts" / name)
|
| 170 |
+
if Path(base).is_dir()
|
| 171 |
+
else hf_hub_download(base, name, subfolder="fonts")
|
| 172 |
+
for name in FONT_FILES
|
| 173 |
+
]
|
| 174 |
+
return [load_font(path) for path in paths]
|
| 175 |
+
|
| 176 |
+
|
| 177 |
+
def text_images(caption: dict | str | None, fonts: list[Any]) -> list[Image.Image] | None:
|
| 178 |
+
"""Images of the caption's text_render entries that have text, drawn as the pipeline does."""
|
| 179 |
+
from diffusers.pipelines.bria_fibo2.text_images import draw_text_image
|
| 180 |
+
|
| 181 |
+
entries = (caption.get("text_render") or []) if isinstance(caption, dict) else []
|
| 182 |
+
images = [
|
| 183 |
+
draw_text_image(e["text"], fonts)
|
| 184 |
+
for e in entries
|
| 185 |
+
if isinstance(e, dict) and isinstance(e.get("text"), str) and e["text"]
|
| 186 |
+
]
|
| 187 |
+
return images or None
|
| 188 |
+
|
| 189 |
+
|
| 190 |
+
def pre_encode(
|
| 191 |
+
base: str,
|
| 192 |
+
samples: list[dict[str, Any]],
|
| 193 |
+
mode: str,
|
| 194 |
+
resolution: int,
|
| 195 |
+
cache_dir: Path,
|
| 196 |
+
dev: torch.device,
|
| 197 |
+
) -> None:
|
| 198 |
+
from diffusers import BriaFibo2Pipeline
|
| 199 |
+
from diffusers.pipelines.bria_fibo2.pipeline_bria_fibo2 import (
|
| 200 |
+
DEFAULT_NEGATIVE_PROMPT,
|
| 201 |
+
)
|
| 202 |
+
|
| 203 |
+
cache_dir.mkdir(parents=True, exist_ok=True)
|
| 204 |
+
# "encoding" changes whenever the cached embeddings would: older caches are re-encoded
|
| 205 |
+
meta = {"resolution": str(resolution), "mode": mode, "encoding": "3"}
|
| 206 |
+
todo = [i for i in range(len(samples)) if not cache_ok(cache_dir / f"{i}.safetensors", meta)]
|
| 207 |
+
need_null = not cache_ok(cache_dir / "null.safetensors", meta)
|
| 208 |
+
print(f"[encode] {len(samples)} samples, {len(todo)} to encode (cache: {cache_dir})")
|
| 209 |
+
if not todo and not need_null:
|
| 210 |
+
return
|
| 211 |
+
|
| 212 |
+
pipe = BriaFibo2Pipeline.from_pretrained(base, transformer=None, dtype=torch.bfloat16)
|
| 213 |
+
pipe.to(dev)
|
| 214 |
+
pipe.text_encoder.eval()
|
| 215 |
+
proc = pipe.image_processor
|
| 216 |
+
area = resolution * resolution
|
| 217 |
+
fonts = load_fonts(base)
|
| 218 |
+
tdtype = torch.bfloat16
|
| 219 |
+
|
| 220 |
+
def pack(emb: torch.Tensor, mask: torch.Tensor | None) -> dict[str, torch.Tensor]:
|
| 221 |
+
out = {"emb": emb.to(tdtype).cpu().contiguous()}
|
| 222 |
+
if mask is not None:
|
| 223 |
+
out["mask"] = mask.to(torch.uint8).cpu().contiguous()
|
| 224 |
+
return out
|
| 225 |
+
|
| 226 |
+
with torch.no_grad():
|
| 227 |
+
if need_null:
|
| 228 |
+
emb, mask = pipe.encode_prompt(DEFAULT_NEGATIVE_PROMPT, None, dev)
|
| 229 |
+
save_file(pack(emb, mask), cache_dir / "null.safetensors", metadata=meta)
|
| 230 |
+
for n, i in enumerate(todo):
|
| 231 |
+
s = samples[i]
|
| 232 |
+
target = load_image(s["target"])
|
| 233 |
+
caption, _ = pipe._parse_prompt(s["prompt"])
|
| 234 |
+
texts = text_images(caption, fonts)
|
| 235 |
+
extra = {}
|
| 236 |
+
if mode == "edit":
|
| 237 |
+
srcs = [load_image(p) for p in s["sources"]]
|
| 238 |
+
width, height = proc.get_image_size(srcs[0].width / srcs[0].height, area=area)
|
| 239 |
+
# one source: cropped to the result size; several: each to its own aspect's size
|
| 240 |
+
vae_srcs, thumbs = proc.preprocess(
|
| 241 |
+
srcs,
|
| 242 |
+
height=height,
|
| 243 |
+
width=width,
|
| 244 |
+
area=area,
|
| 245 |
+
text_encoder_image_size=pipe.text_encoder_image_size,
|
| 246 |
+
)
|
| 247 |
+
emb, mask = pipe.encode_prompt(s["prompt"], thumbs, dev, text_images=texts)
|
| 248 |
+
refs = pipe.prepare_image_latents(vae_srcs, 1, dev, torch.float32)
|
| 249 |
+
else:
|
| 250 |
+
width, height = proc.get_image_size(target.width / target.height, area=area)
|
| 251 |
+
# a JSON caption in its trained form; a plain sentence as is
|
| 252 |
+
prompt = s["prompt"] if isinstance(caption, str) else compact(caption or {})
|
| 253 |
+
emb, mask = pipe.encode_prompt(prompt, None, dev, text_images=texts)
|
| 254 |
+
refs = []
|
| 255 |
+
if texts:
|
| 256 |
+
# the caption without its text images, which inference uses at high noise
|
| 257 |
+
base_emb, base_mask = pipe.encode_prompt(
|
| 258 |
+
compact(pipe._mark_text_images(json.loads(prompt), "")), None, dev
|
| 259 |
+
)
|
| 260 |
+
extra = {f"base_{k}": v for k, v in pack(base_emb, base_mask).items()}
|
| 261 |
+
tgt, _ = proc.preprocess(target, height=height, width=width)
|
| 262 |
+
x0 = pipe.prepare_image_latents(tgt, 1, dev, torch.float32)[0]
|
| 263 |
+
tensors = {"x0": x0.cpu().contiguous(), **pack(emb, mask), **extra}
|
| 264 |
+
for k, r in enumerate(refs):
|
| 265 |
+
tensors[f"ref{k}"] = r.cpu().contiguous()
|
| 266 |
+
save_file(tensors, cache_dir / f"{i}.safetensors", metadata=meta)
|
| 267 |
+
if (n + 1) % 20 == 0 or n + 1 == len(todo):
|
| 268 |
+
print(f"[encode] {n + 1}/{len(todo)}")
|
| 269 |
+
del pipe
|
| 270 |
+
gc.collect()
|
| 271 |
+
torch.cuda.empty_cache()
|
| 272 |
+
|
| 273 |
+
|
| 274 |
+
def load_cached(path: Path, dev: torch.device) -> dict[str, Any]:
|
| 275 |
+
t = load_file(path)
|
| 276 |
+
refs = [t[f"ref{k}"].to(dev) for k in range(4) if f"ref{k}" in t]
|
| 277 |
+
|
| 278 |
+
def mask(key: str) -> torch.Tensor | None:
|
| 279 |
+
return t[key].to(dev).bool() if key in t else None
|
| 280 |
+
|
| 281 |
+
return {
|
| 282 |
+
"x0": t["x0"].to(dev),
|
| 283 |
+
"emb": t["emb"].to(dev),
|
| 284 |
+
"mask": mask("mask"),
|
| 285 |
+
"base_emb": t["base_emb"].to(dev) if "base_emb" in t else None,
|
| 286 |
+
"base_mask": mask("base_mask"),
|
| 287 |
+
"refs": refs or None,
|
| 288 |
+
}
|
| 289 |
+
|
| 290 |
+
|
| 291 |
+
# ---------------------------------------------------------------------------------- model
|
| 292 |
+
def build_model(
|
| 293 |
+
base: str, rank: int, alpha: int, grad_ckpt: bool, expect: int, dev: torch.device
|
| 294 |
+
) -> tuple[nn.Module, list[nn.Parameter]]:
|
| 295 |
+
from diffusers import BriaFibo2Transformer2DModel
|
| 296 |
+
from peft import LoraConfig
|
| 297 |
+
from peft.tuners.lora import LoraLayer
|
| 298 |
+
|
| 299 |
+
model = BriaFibo2Transformer2DModel.from_pretrained(
|
| 300 |
+
base, subfolder="transformer", dtype=torch.bfloat16
|
| 301 |
+
)
|
| 302 |
+
model.to(dev).requires_grad_(False)
|
| 303 |
+
linears = [n for n, m in model.named_modules() if isinstance(m, nn.Linear)]
|
| 304 |
+
model.add_adapter(
|
| 305 |
+
LoraConfig(r=rank, lora_alpha=alpha, init_lora_weights=True, target_modules=linears)
|
| 306 |
+
)
|
| 307 |
+
adapted = sum(isinstance(m, LoraLayer) for m in model.modules())
|
| 308 |
+
print(f"[model] nn.Linear layers: {len(linears)}, LoRA-adapted modules: {adapted}")
|
| 309 |
+
assert adapted == len(linears), "some Linear layers were not adapted"
|
| 310 |
+
if expect:
|
| 311 |
+
assert adapted == expect, f"expected {expect} adapted modules, got {adapted}"
|
| 312 |
+
params = []
|
| 313 |
+
for name, p in model.named_parameters():
|
| 314 |
+
if "lora_" in name:
|
| 315 |
+
# fp32 LoRA weights: bf16 would round small AdamW updates to zero
|
| 316 |
+
p.data = p.data.float()
|
| 317 |
+
p.requires_grad_(True)
|
| 318 |
+
params.append(p)
|
| 319 |
+
else:
|
| 320 |
+
assert not p.requires_grad, name
|
| 321 |
+
assert all(p.dtype == torch.float32 for p in params)
|
| 322 |
+
print(f"[model] LoRA params: {sum(p.numel() for p in params) / 1e6:.1f}M, all fp32")
|
| 323 |
+
if grad_ckpt:
|
| 324 |
+
model.enable_gradient_checkpointing()
|
| 325 |
+
model.train()
|
| 326 |
+
return model, params
|
| 327 |
+
|
| 328 |
+
|
| 329 |
+
def save_adapter(model: nn.Module, directory: Path) -> None:
|
| 330 |
+
"""Write the LoRA in the diffusers pipeline format: keys and metadata prefixed `transformer.`.
|
| 331 |
+
|
| 332 |
+
(`transformer.save_lora_adapter` writes unprefixed keys, which `load_lora_adapter` with its
|
| 333 |
+
default prefix silently ignores, leaving the model un-adapted.)
|
| 334 |
+
"""
|
| 335 |
+
from peft.utils import get_peft_model_state_dict
|
| 336 |
+
|
| 337 |
+
state = get_peft_model_state_dict(model, adapter_name="default")
|
| 338 |
+
state = {f"transformer.{k}": v.detach().contiguous() for k, v in state.items()}
|
| 339 |
+
cfg = {
|
| 340 |
+
k: sorted(v) if isinstance(v, set) else v
|
| 341 |
+
for k, v in model.peft_config["default"].to_dict().items()
|
| 342 |
+
}
|
| 343 |
+
meta = {f"transformer.{k}": v for k, v in cfg.items()}
|
| 344 |
+
directory.mkdir(parents=True, exist_ok=True)
|
| 345 |
+
save_file(
|
| 346 |
+
state,
|
| 347 |
+
directory / "pytorch_lora_weights.safetensors",
|
| 348 |
+
metadata={
|
| 349 |
+
"format": "pt",
|
| 350 |
+
"lora_adapter_metadata": json.dumps(meta, indent=2, sort_keys=True),
|
| 351 |
+
},
|
| 352 |
+
)
|
| 353 |
+
|
| 354 |
+
|
| 355 |
+
def sample_sigma(gen: torch.Generator, n_tokens: int) -> float:
|
| 356 |
+
if torch.rand(1, generator=gen).item() < 0.1:
|
| 357 |
+
return torch.rand(1, generator=gen).item()
|
| 358 |
+
shift = SHIFT_BASE + (SHIFT_MAX - SHIFT_BASE) * (n_tokens - SEQ_BASE) / (SEQ_MAX - SEQ_BASE)
|
| 359 |
+
z = torch.randn(1, generator=gen).item() + shift
|
| 360 |
+
return 1.0 / (1.0 + math.exp(-z))
|
| 361 |
+
|
| 362 |
+
|
| 363 |
+
# ------------------------------------------------------------------------------------ CLI
|
| 364 |
+
@click.command()
|
| 365 |
+
@click.option("--base", default=DEFAULT_BASE, show_default=True, help="HF repo id or local dir.")
|
| 366 |
+
@click.option(
|
| 367 |
+
"--data",
|
| 368 |
+
type=click.Path(exists=True, file_okay=False, path_type=Path),
|
| 369 |
+
required=True,
|
| 370 |
+
)
|
| 371 |
+
@click.option("--mode", type=click.Choice(["edit", "t2i"]), default=None, help="Default: auto.")
|
| 372 |
+
@click.option("--output-dir", type=click.Path(path_type=Path), required=True)
|
| 373 |
+
@click.option("--resolution", default=1024, show_default=True, help="Target side; area = side^2.")
|
| 374 |
+
@click.option("--rank", default=64, show_default=True)
|
| 375 |
+
@click.option("--alpha", type=int, default=None, help="LoRA alpha. Default: rank.")
|
| 376 |
+
@click.option("--lr", default=1e-4, show_default=True)
|
| 377 |
+
@click.option("--steps", default=1000, show_default=True, help="Optimizer steps.")
|
| 378 |
+
@click.option("--grad-accum", default=8, show_default=True)
|
| 379 |
+
@click.option("--save-every", default=250, show_default=True)
|
| 380 |
+
@click.option("--text-drop", default=0.1, show_default=True)
|
| 381 |
+
@click.option("--context-drop", default=0.2, show_default=True, help="Edit mode only.")
|
| 382 |
+
@click.option("--seed", default=0, show_default=True)
|
| 383 |
+
@click.option("--cache-dir", type=click.Path(path_type=Path), default=None)
|
| 384 |
+
@click.option("--gradient-checkpointing/--no-gradient-checkpointing", default=True)
|
| 385 |
+
@click.option(
|
| 386 |
+
"--expect-modules",
|
| 387 |
+
default=EXPECTED_ADAPTED_MODULES,
|
| 388 |
+
show_default=True,
|
| 389 |
+
help="Assert this many adapted Linear layers (0 disables; for other bases).",
|
| 390 |
+
)
|
| 391 |
+
def main(
|
| 392 |
+
base: str,
|
| 393 |
+
data: Path,
|
| 394 |
+
mode: str | None,
|
| 395 |
+
output_dir: Path,
|
| 396 |
+
resolution: int,
|
| 397 |
+
rank: int,
|
| 398 |
+
alpha: int | None,
|
| 399 |
+
lr: float,
|
| 400 |
+
steps: int,
|
| 401 |
+
grad_accum: int,
|
| 402 |
+
save_every: int,
|
| 403 |
+
text_drop: float,
|
| 404 |
+
context_drop: float,
|
| 405 |
+
seed: int,
|
| 406 |
+
cache_dir: Path | None,
|
| 407 |
+
gradient_checkpointing: bool,
|
| 408 |
+
expect_modules: int,
|
| 409 |
+
) -> None:
|
| 410 |
+
"""Train a LoRA on Fibo 2.0 from a folder of edit pairs or captioned images."""
|
| 411 |
+
if not torch.cuda.is_available():
|
| 412 |
+
raise click.ClickException("a CUDA GPU is required")
|
| 413 |
+
dev = torch.device("cuda")
|
| 414 |
+
mode = mode or ("edit" if (data / "edits.jsonl").exists() else "t2i")
|
| 415 |
+
alpha = alpha if alpha is not None else rank
|
| 416 |
+
cache_dir = cache_dir or output_dir / "cache"
|
| 417 |
+
output_dir.mkdir(parents=True, exist_ok=True)
|
| 418 |
+
(output_dir / "train_args.json").write_text(
|
| 419 |
+
json.dumps({k: str(v) for k, v in locals().items() if k != "dev"}, indent=2)
|
| 420 |
+
)
|
| 421 |
+
random.seed(seed)
|
| 422 |
+
np.random.seed(seed)
|
| 423 |
+
torch.manual_seed(seed)
|
| 424 |
+
|
| 425 |
+
samples = load_samples(data, mode)
|
| 426 |
+
print(f"[data] mode={mode}, {len(samples)} samples, resolution={resolution}")
|
| 427 |
+
pre_encode(base, samples, mode, resolution, cache_dir, dev)
|
| 428 |
+
nt = load_file(cache_dir / "null.safetensors")
|
| 429 |
+
null_emb = nt["emb"].to(dev)
|
| 430 |
+
null_mask = nt["mask"].to(dev).bool() if "mask" in nt else None
|
| 431 |
+
|
| 432 |
+
model, params = build_model(base, rank, alpha, gradient_checkpointing, expect_modules, dev)
|
| 433 |
+
opt = torch.optim.AdamW(params, lr=lr, betas=(0.9, 0.999), eps=1e-8, weight_decay=0.01)
|
| 434 |
+
torch.cuda.reset_peak_memory_stats()
|
| 435 |
+
|
| 436 |
+
gen = torch.Generator().manual_seed(seed)
|
| 437 |
+
order: list[int] = []
|
| 438 |
+
log_path = output_dir / "loss.csv"
|
| 439 |
+
with open(log_path, "w", newline="") as f:
|
| 440 |
+
csv.writer(f).writerow(["step", "loss", "mean_sigma", "seconds_per_step"])
|
| 441 |
+
patch = model.config.patch_size
|
| 442 |
+
|
| 443 |
+
for step in range(1, steps + 1):
|
| 444 |
+
t0 = time.time()
|
| 445 |
+
losses: list[float] = []
|
| 446 |
+
sigmas: list[float] = []
|
| 447 |
+
for _ in range(grad_accum):
|
| 448 |
+
if not order:
|
| 449 |
+
order = torch.randperm(len(samples), generator=gen).tolist()
|
| 450 |
+
s = load_cached(cache_dir / f"{order.pop()}.safetensors", dev)
|
| 451 |
+
x0 = s["x0"]
|
| 452 |
+
n_tokens = (x0.shape[2] // patch) * (x0.shape[3] // patch)
|
| 453 |
+
sigma = sample_sigma(gen, n_tokens)
|
| 454 |
+
emb, mask, refs = s["emb"], s["mask"], s["refs"]
|
| 455 |
+
if s["base_emb"] is not None and sigma > TEXT_IMAGES_MAX_SIGMA:
|
| 456 |
+
emb, mask = s["base_emb"], s["base_mask"]
|
| 457 |
+
if torch.rand(1, generator=gen).item() < text_drop:
|
| 458 |
+
emb, mask = null_emb, null_mask
|
| 459 |
+
if mode == "edit" and torch.rand(1, generator=gen).item() < context_drop:
|
| 460 |
+
refs = None
|
| 461 |
+
noise = torch.randn(x0.shape, generator=gen).to(dev)
|
| 462 |
+
x_t = sigma * noise + (1.0 - sigma) * x0
|
| 463 |
+
pred = model(
|
| 464 |
+
hidden_states=x_t.to(torch.bfloat16),
|
| 465 |
+
timestep=torch.full((1,), sigma, dtype=torch.float32, device=dev),
|
| 466 |
+
encoder_hidden_states=emb,
|
| 467 |
+
encoder_attention_mask=mask,
|
| 468 |
+
context_latents=None if refs is None else [r.to(torch.bfloat16) for r in refs],
|
| 469 |
+
return_dict=False,
|
| 470 |
+
)[0]
|
| 471 |
+
loss = torch.nn.functional.mse_loss(pred.float(), noise - x0)
|
| 472 |
+
(loss / grad_accum).backward()
|
| 473 |
+
losses.append(loss.item())
|
| 474 |
+
sigmas.append(sigma)
|
| 475 |
+
torch.nn.utils.clip_grad_norm_(params, 1.0)
|
| 476 |
+
opt.step()
|
| 477 |
+
opt.zero_grad(set_to_none=True)
|
| 478 |
+
|
| 479 |
+
dt = time.time() - t0
|
| 480 |
+
mean_loss = float(np.mean(losses))
|
| 481 |
+
if not math.isfinite(mean_loss):
|
| 482 |
+
raise RuntimeError(f"non-finite loss at step {step}")
|
| 483 |
+
with open(log_path, "a", newline="") as f:
|
| 484 |
+
csv.writer(f).writerow(
|
| 485 |
+
[step, f"{mean_loss:.6f}", f"{np.mean(sigmas):.4f}", f"{dt:.2f}"]
|
| 486 |
+
)
|
| 487 |
+
if step == 1 or step % 10 == 0 or step == steps:
|
| 488 |
+
peak = torch.cuda.max_memory_allocated() / 2**30
|
| 489 |
+
print(f"step {step}/{steps} loss {mean_loss:.4f} {dt:.1f}s/step peak {peak:.1f} GiB")
|
| 490 |
+
if step % save_every == 0 and step != steps:
|
| 491 |
+
save_adapter(model, output_dir / f"checkpoint-{step}")
|
| 492 |
+
save_adapter(model, output_dir / "final")
|
| 493 |
+
if steps % save_every == 0:
|
| 494 |
+
save_adapter(model, output_dir / f"checkpoint-{steps}")
|
| 495 |
+
print(f"peak memory allocated: {torch.cuda.max_memory_allocated() / 2**30:.2f} GiB")
|
| 496 |
+
print(f"saved to {output_dir}")
|
| 497 |
+
|
| 498 |
+
|
| 499 |
+
if __name__ == "__main__":
|
| 500 |
+
main()
|
fonts/Aileron-Regular.otf
ADDED
|
Binary file (27.6 kB). View file
|
|
|
fonts/DejaVuSans.ttf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:437a5ecec2ec177cba9284cbffc56055311347f3e9fe4f2b4b40323d0290a6db
|
| 3 |
+
size 757076
|
fonts/LICENSE-Aileron.txt
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Aileron Regular, version 1.102 (Aileron-Regular.otf)
|
| 2 |
+
Author: Sora Sagano (dot colon), https://www.dotcolon.net/font/aileron
|
| 3 |
+
Downloaded 2026-09-15 from https://www.dotcolon.net/files/fonts/aileron_0102.zip
|
| 4 |
+
|
| 5 |
+
Licence: CC0 1.0 Universal (Public Domain Dedication)
|
| 6 |
+
https://creativecommons.org/publicdomain/zero/1.0/
|
| 7 |
+
|
| 8 |
+
The font's own name table (nameID 0) reads: "No Rights Reserved."
|
| 9 |
+
|
| 10 |
+
To the extent possible under law, the author has waived all copyright and related or neighboring
|
| 11 |
+
rights to this work. You can copy, modify, distribute and perform the work, even for commercial
|
| 12 |
+
purposes, all without asking permission. The work is provided "as is", without warranty of any kind.
|
fonts/LICENSE-DejaVu.txt
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
| 2 |
+
Upstream-Name: DejaVu fonts
|
| 3 |
+
Upstream-Author: Stepan Roh <src@users.sourceforge.net> (original author),
|
| 4 |
+
see /usr/share/doc/ttf-dejavu/AUTHORS for full list
|
| 5 |
+
Source: http://dejavu-fonts.org/
|
| 6 |
+
|
| 7 |
+
Files: *
|
| 8 |
+
Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.
|
| 9 |
+
Bitstream Vera is a trademark of Bitstream, Inc.
|
| 10 |
+
DejaVu changes are in public domain.
|
| 11 |
+
License: bitstream-vera
|
| 12 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 13 |
+
of the fonts accompanying this license ("Fonts") and associated
|
| 14 |
+
documentation files (the "Font Software"), to reproduce and distribute the
|
| 15 |
+
Font Software, including without limitation the rights to use, copy, merge,
|
| 16 |
+
publish, distribute, and/or sell copies of the Font Software, and to permit
|
| 17 |
+
persons to whom the Font Software is furnished to do so, subject to the
|
| 18 |
+
following conditions:
|
| 19 |
+
.
|
| 20 |
+
The above copyright and trademark notices and this permission notice shall
|
| 21 |
+
be included in all copies of one or more of the Font Software typefaces.
|
| 22 |
+
.
|
| 23 |
+
The Font Software may be modified, altered, or added to, and in particular
|
| 24 |
+
the designs of glyphs or characters in the Fonts may be modified and
|
| 25 |
+
additional glyphs or characters may be added to the Fonts, only if the fonts
|
| 26 |
+
are renamed to names not containing either the words "Bitstream" or the word
|
| 27 |
+
"Vera".
|
| 28 |
+
.
|
| 29 |
+
This License becomes null and void to the extent applicable to Fonts or Font
|
| 30 |
+
Software that has been modified and is distributed under the "Bitstream
|
| 31 |
+
Vera" names.
|
| 32 |
+
.
|
| 33 |
+
The Font Software may be sold as part of a larger software package but no
|
| 34 |
+
copy of one or more of the Font Software typefaces may be sold by itself.
|
| 35 |
+
.
|
| 36 |
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| 37 |
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
| 38 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
|
| 39 |
+
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
|
| 40 |
+
FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
|
| 41 |
+
ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
| 42 |
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
| 43 |
+
THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
|
| 44 |
+
FONT SOFTWARE.
|
| 45 |
+
.
|
| 46 |
+
Except as contained in this notice, the names of Gnome, the Gnome
|
| 47 |
+
Foundation, and Bitstream Inc., shall not be used in advertising or
|
| 48 |
+
otherwise to promote the sale, use or other dealings in this Font Software
|
| 49 |
+
without prior written authorization from the Gnome Foundation or Bitstream
|
| 50 |
+
Inc., respectively. For further information, contact: fonts at gnome dot
|
| 51 |
+
org.
|
| 52 |
+
|
| 53 |
+
Files: debian/*
|
| 54 |
+
Copyright: (C) 2005-2006 Peter Cernak <pce@users.sourceforge.net>
|
| 55 |
+
(C) 2006-2011 Davide Viti <zinosat@tiscali.it>
|
| 56 |
+
(C) 2011-2013 Christian Perrier <bubulle@debian.org>
|
| 57 |
+
(C) 2013 Fabian Greffrath <fabian+debian@greffrath.com>
|
| 58 |
+
License: GPL-2+
|
| 59 |
+
This program is free software; you can redistribute it
|
| 60 |
+
and/or modify it under the terms of the GNU General Public
|
| 61 |
+
License as published by the Free Software Foundation; either
|
| 62 |
+
version 2 of the License, or (at your option) any later
|
| 63 |
+
version.
|
| 64 |
+
.
|
| 65 |
+
This program is distributed in the hope that it will be
|
| 66 |
+
useful, but WITHOUT ANY WARRANTY; without even the implied
|
| 67 |
+
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
| 68 |
+
PURPOSE. See the GNU General Public License for more
|
| 69 |
+
details.
|
| 70 |
+
.
|
| 71 |
+
You should have received a copy of the GNU General Public
|
| 72 |
+
License along with this package; if not, write to the Free
|
| 73 |
+
Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
| 74 |
+
Boston, MA 02110-1301 USA
|
| 75 |
+
.
|
| 76 |
+
On Debian systems, the full text of the GNU General Public
|
| 77 |
+
License version 2 can be found in the file
|
| 78 |
+
/usr/share/common-licenses/GPL-2'.
|
fonts/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# fonts
|
| 2 |
+
|
| 3 |
+
Fallback fonts for drawing the images of a caption's text (`render_text_images=True` in
|
| 4 |
+
`BriaFibo2Pipeline`), the way fibo-2's training drew them.
|
| 5 |
+
|
| 6 |
+
Each `text_render` text is drawn black on white at size 20. A character is drawn with the first of
|
| 7 |
+
these that has a glyph for it:
|
| 8 |
+
|
| 9 |
+
| order | font | source | licence |
|
| 10 |
+
|---|---|---|---|
|
| 11 |
+
| 1 | Pillow's built-in font, `ImageFont.load_default(20)` (a subset of Aileron Regular) | bundled with Pillow, not in this folder | — |
|
| 12 |
+
| 2 | `Aileron-Regular.otf`, Aileron Regular 1.102 | https://www.dotcolon.net/font/aileron | CC0 1.0, `LICENSE-Aileron.txt` |
|
| 13 |
+
| 3 | `DejaVuSans.ttf`, DejaVu Sans 2.37 | https://dejavu-fonts.github.io | Bitstream Vera licence, `LICENSE-DejaVu.txt` |
|
| 14 |
+
|
| 15 |
+
| file | bytes | md5 |
|
| 16 |
+
|---|---|---|
|
| 17 |
+
| `Aileron-Regular.otf` | 27,644 | `d321fa78bb7190a8ca7e14213ef63203` |
|
| 18 |
+
| `DejaVuSans.ttf` | 757,076 | `517a360397bbb5a7573c2558e78fa4ea` |
|
| 19 |
+
|
| 20 |
+
Training used Pillow 12.2. Characters none of the three fonts covers (CJK, emoji) are drawn as the
|
| 21 |
+
built-in font's missing-glyph box, as in training.
|
model_index.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "BriaFibo2Pipeline",
|
| 3 |
+
"_diffusers_version": "0.41.0.dev0",
|
| 4 |
+
"processor": [
|
| 5 |
+
"transformers",
|
| 6 |
+
"Qwen3VLProcessor"
|
| 7 |
+
],
|
| 8 |
+
"scheduler": [
|
| 9 |
+
"diffusers",
|
| 10 |
+
"FlowMatchEulerDiscreteScheduler"
|
| 11 |
+
],
|
| 12 |
+
"text_encoder": [
|
| 13 |
+
"transformers",
|
| 14 |
+
"Qwen3VLForConditionalGeneration"
|
| 15 |
+
],
|
| 16 |
+
"transformer": [
|
| 17 |
+
"diffusers",
|
| 18 |
+
"BriaFibo2Transformer2DModel"
|
| 19 |
+
],
|
| 20 |
+
"vae": [
|
| 21 |
+
"diffusers",
|
| 22 |
+
"AutoencoderKLFlux2"
|
| 23 |
+
]
|
| 24 |
+
}
|
processor/chat_template.jinja
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- if tools %}
|
| 2 |
+
{{- '<|im_start|>system\n' }}
|
| 3 |
+
{%- if messages[0].role == 'system' %}
|
| 4 |
+
{%- if messages[0].content is string %}
|
| 5 |
+
{{- messages[0].content }}
|
| 6 |
+
{%- else %}
|
| 7 |
+
{%- for content in messages[0].content %}
|
| 8 |
+
{%- if 'text' in content %}
|
| 9 |
+
{{- content.text }}
|
| 10 |
+
{%- endif %}
|
| 11 |
+
{%- endfor %}
|
| 12 |
+
{%- endif %}
|
| 13 |
+
{{- '\n\n' }}
|
| 14 |
+
{%- endif %}
|
| 15 |
+
{{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
|
| 16 |
+
{%- for tool in tools %}
|
| 17 |
+
{{- "\n" }}
|
| 18 |
+
{{- tool | tojson }}
|
| 19 |
+
{%- endfor %}
|
| 20 |
+
{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
|
| 21 |
+
{%- else %}
|
| 22 |
+
{%- if messages[0].role == 'system' %}
|
| 23 |
+
{{- '<|im_start|>system\n' }}
|
| 24 |
+
{%- if messages[0].content is string %}
|
| 25 |
+
{{- messages[0].content }}
|
| 26 |
+
{%- else %}
|
| 27 |
+
{%- for content in messages[0].content %}
|
| 28 |
+
{%- if 'text' in content %}
|
| 29 |
+
{{- content.text }}
|
| 30 |
+
{%- endif %}
|
| 31 |
+
{%- endfor %}
|
| 32 |
+
{%- endif %}
|
| 33 |
+
{{- '<|im_end|>\n' }}
|
| 34 |
+
{%- endif %}
|
| 35 |
+
{%- endif %}
|
| 36 |
+
{%- set image_count = namespace(value=0) %}
|
| 37 |
+
{%- set video_count = namespace(value=0) %}
|
| 38 |
+
{%- for message in messages %}
|
| 39 |
+
{%- if message.role == "user" %}
|
| 40 |
+
{{- '<|im_start|>' + message.role + '\n' }}
|
| 41 |
+
{%- if message.content is string %}
|
| 42 |
+
{{- message.content }}
|
| 43 |
+
{%- else %}
|
| 44 |
+
{%- for content in message.content %}
|
| 45 |
+
{%- if content.type == 'image' or 'image' in content or 'image_url' in content %}
|
| 46 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 47 |
+
{%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
|
| 48 |
+
<|vision_start|><|image_pad|><|vision_end|>
|
| 49 |
+
{%- elif content.type == 'video' or 'video' in content %}
|
| 50 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 51 |
+
{%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
|
| 52 |
+
<|vision_start|><|video_pad|><|vision_end|>
|
| 53 |
+
{%- elif 'text' in content %}
|
| 54 |
+
{{- content.text }}
|
| 55 |
+
{%- endif %}
|
| 56 |
+
{%- endfor %}
|
| 57 |
+
{%- endif %}
|
| 58 |
+
{{- '<|im_end|>\n' }}
|
| 59 |
+
{%- elif message.role == "assistant" %}
|
| 60 |
+
{{- '<|im_start|>' + message.role + '\n' }}
|
| 61 |
+
{%- if message.content is string %}
|
| 62 |
+
{{- message.content }}
|
| 63 |
+
{%- else %}
|
| 64 |
+
{%- for content_item in message.content %}
|
| 65 |
+
{%- if 'text' in content_item %}
|
| 66 |
+
{{- content_item.text }}
|
| 67 |
+
{%- endif %}
|
| 68 |
+
{%- endfor %}
|
| 69 |
+
{%- endif %}
|
| 70 |
+
{%- if message.tool_calls %}
|
| 71 |
+
{%- for tool_call in message.tool_calls %}
|
| 72 |
+
{%- if (loop.first and message.content) or (not loop.first) %}
|
| 73 |
+
{{- '\n' }}
|
| 74 |
+
{%- endif %}
|
| 75 |
+
{%- if tool_call.function %}
|
| 76 |
+
{%- set tool_call = tool_call.function %}
|
| 77 |
+
{%- endif %}
|
| 78 |
+
{{- '<tool_call>\n{"name": "' }}
|
| 79 |
+
{{- tool_call.name }}
|
| 80 |
+
{{- '", "arguments": ' }}
|
| 81 |
+
{%- if tool_call.arguments is string %}
|
| 82 |
+
{{- tool_call.arguments }}
|
| 83 |
+
{%- else %}
|
| 84 |
+
{{- tool_call.arguments | tojson }}
|
| 85 |
+
{%- endif %}
|
| 86 |
+
{{- '}\n</tool_call>' }}
|
| 87 |
+
{%- endfor %}
|
| 88 |
+
{%- endif %}
|
| 89 |
+
{{- '<|im_end|>\n' }}
|
| 90 |
+
{%- elif message.role == "tool" %}
|
| 91 |
+
{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
|
| 92 |
+
{{- '<|im_start|>user' }}
|
| 93 |
+
{%- endif %}
|
| 94 |
+
{{- '\n<tool_response>\n' }}
|
| 95 |
+
{%- if message.content is string %}
|
| 96 |
+
{{- message.content }}
|
| 97 |
+
{%- else %}
|
| 98 |
+
{%- for content in message.content %}
|
| 99 |
+
{%- if content.type == 'image' or 'image' in content or 'image_url' in content %}
|
| 100 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 101 |
+
{%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
|
| 102 |
+
<|vision_start|><|image_pad|><|vision_end|>
|
| 103 |
+
{%- elif content.type == 'video' or 'video' in content %}
|
| 104 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 105 |
+
{%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
|
| 106 |
+
<|vision_start|><|video_pad|><|vision_end|>
|
| 107 |
+
{%- elif 'text' in content %}
|
| 108 |
+
{{- content.text }}
|
| 109 |
+
{%- endif %}
|
| 110 |
+
{%- endfor %}
|
| 111 |
+
{%- endif %}
|
| 112 |
+
{{- '\n</tool_response>' }}
|
| 113 |
+
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
|
| 114 |
+
{{- '<|im_end|>\n' }}
|
| 115 |
+
{%- endif %}
|
| 116 |
+
{%- endif %}
|
| 117 |
+
{%- endfor %}
|
| 118 |
+
{%- if add_generation_prompt %}
|
| 119 |
+
{{- '<|im_start|>assistant\n' }}
|
| 120 |
+
{%- endif %}
|
processor/processor_config.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"image_processor": {
|
| 3 |
+
"do_convert_rgb": true,
|
| 4 |
+
"do_normalize": true,
|
| 5 |
+
"do_rescale": true,
|
| 6 |
+
"do_resize": true,
|
| 7 |
+
"image_mean": [
|
| 8 |
+
0.5,
|
| 9 |
+
0.5,
|
| 10 |
+
0.5
|
| 11 |
+
],
|
| 12 |
+
"image_processor_type": "Qwen2VLImageProcessor",
|
| 13 |
+
"image_std": [
|
| 14 |
+
0.5,
|
| 15 |
+
0.5,
|
| 16 |
+
0.5
|
| 17 |
+
],
|
| 18 |
+
"merge_size": 2,
|
| 19 |
+
"patch_size": 16,
|
| 20 |
+
"resample": 3,
|
| 21 |
+
"rescale_factor": 0.00392156862745098,
|
| 22 |
+
"size": {
|
| 23 |
+
"longest_edge": 1605632,
|
| 24 |
+
"shortest_edge": 3136
|
| 25 |
+
},
|
| 26 |
+
"temporal_patch_size": 2
|
| 27 |
+
},
|
| 28 |
+
"processor_class": "Qwen3VLProcessor",
|
| 29 |
+
"video_processor": {
|
| 30 |
+
"do_convert_rgb": true,
|
| 31 |
+
"do_normalize": true,
|
| 32 |
+
"do_rescale": true,
|
| 33 |
+
"do_resize": true,
|
| 34 |
+
"do_sample_frames": true,
|
| 35 |
+
"fps": 2,
|
| 36 |
+
"image_mean": [
|
| 37 |
+
0.5,
|
| 38 |
+
0.5,
|
| 39 |
+
0.5
|
| 40 |
+
],
|
| 41 |
+
"image_std": [
|
| 42 |
+
0.5,
|
| 43 |
+
0.5,
|
| 44 |
+
0.5
|
| 45 |
+
],
|
| 46 |
+
"max_frames": 768,
|
| 47 |
+
"max_video_tokens": 768,
|
| 48 |
+
"merge_size": 2,
|
| 49 |
+
"min_frames": 4,
|
| 50 |
+
"patch_size": 16,
|
| 51 |
+
"resample": 3,
|
| 52 |
+
"rescale_factor": 0.00392156862745098,
|
| 53 |
+
"return_metadata": false,
|
| 54 |
+
"size": {
|
| 55 |
+
"longest_edge": 25165824,
|
| 56 |
+
"shortest_edge": 4096
|
| 57 |
+
},
|
| 58 |
+
"temporal_patch_size": 2,
|
| 59 |
+
"video_processor_type": "Qwen3VLVideoProcessor"
|
| 60 |
+
}
|
| 61 |
+
}
|
processor/tokenizer.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506
|
| 3 |
+
size 11422650
|
processor/tokenizer_config.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_prefix_space": false,
|
| 3 |
+
"backend": "tokenizers",
|
| 4 |
+
"bos_token": null,
|
| 5 |
+
"clean_up_tokenization_spaces": false,
|
| 6 |
+
"eos_token": "<|im_end|>",
|
| 7 |
+
"errors": "replace",
|
| 8 |
+
"extra_special_tokens": [
|
| 9 |
+
"<|im_start|>",
|
| 10 |
+
"<|im_end|>",
|
| 11 |
+
"<|object_ref_start|>",
|
| 12 |
+
"<|object_ref_end|>",
|
| 13 |
+
"<|box_start|>",
|
| 14 |
+
"<|box_end|>",
|
| 15 |
+
"<|quad_start|>",
|
| 16 |
+
"<|quad_end|>",
|
| 17 |
+
"<|vision_start|>",
|
| 18 |
+
"<|vision_end|>",
|
| 19 |
+
"<|vision_pad|>",
|
| 20 |
+
"<|image_pad|>",
|
| 21 |
+
"<|video_pad|>"
|
| 22 |
+
],
|
| 23 |
+
"is_local": true,
|
| 24 |
+
"local_files_only": false,
|
| 25 |
+
"model_max_length": 262144,
|
| 26 |
+
"pad_token": "<|endoftext|>",
|
| 27 |
+
"processor_class": "Qwen3VLProcessor",
|
| 28 |
+
"split_special_tokens": false,
|
| 29 |
+
"tokenizer_class": "Qwen2Tokenizer",
|
| 30 |
+
"unk_token": null
|
| 31 |
+
}
|
scheduler/scheduler_config.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "FlowMatchEulerDiscreteScheduler",
|
| 3 |
+
"_diffusers_version": "0.41.0.dev0",
|
| 4 |
+
"base_image_seq_len": 256,
|
| 5 |
+
"base_shift": 0.5,
|
| 6 |
+
"invert_sigmas": false,
|
| 7 |
+
"max_image_seq_len": 4096,
|
| 8 |
+
"max_shift": 1.15,
|
| 9 |
+
"num_train_timesteps": 1000,
|
| 10 |
+
"shift": 3.0,
|
| 11 |
+
"shift_terminal": null,
|
| 12 |
+
"stochastic_sampling": false,
|
| 13 |
+
"time_shift_type": "exponential",
|
| 14 |
+
"use_beta_sigmas": false,
|
| 15 |
+
"use_dynamic_shifting": true,
|
| 16 |
+
"use_exponential_sigmas": false,
|
| 17 |
+
"use_karras_sigmas": false
|
| 18 |
+
}
|
text_encoder/config.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"Qwen3VLForConditionalGeneration"
|
| 4 |
+
],
|
| 5 |
+
"dtype": "bfloat16",
|
| 6 |
+
"image_token_id": 151655,
|
| 7 |
+
"model_type": "qwen3_vl",
|
| 8 |
+
"text_config": {
|
| 9 |
+
"attention_bias": false,
|
| 10 |
+
"attention_dropout": 0.0,
|
| 11 |
+
"bos_token_id": 151643,
|
| 12 |
+
"dtype": "bfloat16",
|
| 13 |
+
"eos_token_id": 151645,
|
| 14 |
+
"head_dim": 128,
|
| 15 |
+
"hidden_act": "silu",
|
| 16 |
+
"hidden_size": 2560,
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 9728,
|
| 19 |
+
"max_position_embeddings": 262144,
|
| 20 |
+
"model_type": "qwen3_vl_text",
|
| 21 |
+
"num_attention_heads": 32,
|
| 22 |
+
"num_hidden_layers": 36,
|
| 23 |
+
"num_key_value_heads": 8,
|
| 24 |
+
"pad_token_id": null,
|
| 25 |
+
"rms_norm_eps": 1e-06,
|
| 26 |
+
"rope_parameters": {
|
| 27 |
+
"mrope_interleaved": true,
|
| 28 |
+
"mrope_section": [
|
| 29 |
+
24,
|
| 30 |
+
20,
|
| 31 |
+
20
|
| 32 |
+
],
|
| 33 |
+
"rope_theta": 5000000,
|
| 34 |
+
"rope_type": "default"
|
| 35 |
+
},
|
| 36 |
+
"tie_word_embeddings": true,
|
| 37 |
+
"use_cache": true,
|
| 38 |
+
"vocab_size": 151936
|
| 39 |
+
},
|
| 40 |
+
"tie_word_embeddings": true,
|
| 41 |
+
"transformers_version": "5.20.1",
|
| 42 |
+
"video_token_id": 151656,
|
| 43 |
+
"vision_config": {
|
| 44 |
+
"deepstack_visual_indexes": [
|
| 45 |
+
5,
|
| 46 |
+
11,
|
| 47 |
+
17
|
| 48 |
+
],
|
| 49 |
+
"depth": 24,
|
| 50 |
+
"dtype": "bfloat16",
|
| 51 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 52 |
+
"hidden_size": 1024,
|
| 53 |
+
"in_channels": 3,
|
| 54 |
+
"initializer_range": 0.02,
|
| 55 |
+
"intermediate_size": 4096,
|
| 56 |
+
"model_type": "qwen3_vl_vision",
|
| 57 |
+
"num_heads": 16,
|
| 58 |
+
"num_position_embeddings": 2304,
|
| 59 |
+
"out_hidden_size": 2560,
|
| 60 |
+
"patch_size": 16,
|
| 61 |
+
"rope_parameters": {
|
| 62 |
+
"rope_theta": 10000.0,
|
| 63 |
+
"rope_type": "axial"
|
| 64 |
+
},
|
| 65 |
+
"spatial_merge_size": 2,
|
| 66 |
+
"temporal_patch_size": 2
|
| 67 |
+
},
|
| 68 |
+
"vision_end_token_id": 151653,
|
| 69 |
+
"vision_start_token_id": 151652
|
| 70 |
+
}
|
text_encoder/generation_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bos_token_id": 151643,
|
| 3 |
+
"do_sample": true,
|
| 4 |
+
"eos_token_id": [
|
| 5 |
+
151645,
|
| 6 |
+
151643
|
| 7 |
+
],
|
| 8 |
+
"pad_token_id": 151643,
|
| 9 |
+
"repetition_penalty": 1.0,
|
| 10 |
+
"temperature": 0.7,
|
| 11 |
+
"top_k": 20,
|
| 12 |
+
"top_p": 0.8,
|
| 13 |
+
"transformers_version": "5.20.1"
|
| 14 |
+
}
|
text_encoder/model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f0b24fc5c8d7c0ea6ca909da14c20af5cac53f22506be942c6c956f838b9630f
|
| 3 |
+
size 8875719408
|
transformer/config.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "BriaFibo2Transformer2DModel",
|
| 3 |
+
"_diffusers_version": "0.41.0.dev0",
|
| 4 |
+
"axes_dims": [
|
| 5 |
+
32,
|
| 6 |
+
48,
|
| 7 |
+
48
|
| 8 |
+
],
|
| 9 |
+
"axes_lens": [
|
| 10 |
+
2048,
|
| 11 |
+
512,
|
| 12 |
+
512
|
| 13 |
+
],
|
| 14 |
+
"cap_feat_dim": 7680,
|
| 15 |
+
"dim": 3584,
|
| 16 |
+
"gist_max_text_len": 2048,
|
| 17 |
+
"gist_min_text_len": 256,
|
| 18 |
+
"gist_step": 64,
|
| 19 |
+
"in_channels": 32,
|
| 20 |
+
"injection_layer_ids": [
|
| 21 |
+
6,
|
| 22 |
+
14,
|
| 23 |
+
22,
|
| 24 |
+
30,
|
| 25 |
+
38
|
| 26 |
+
],
|
| 27 |
+
"max_num_gist_tokens": 512,
|
| 28 |
+
"min_num_gist_tokens": 256,
|
| 29 |
+
"n_heads": 28,
|
| 30 |
+
"n_layers": 44,
|
| 31 |
+
"n_refiner_layers": 2,
|
| 32 |
+
"norm_eps": 1e-05,
|
| 33 |
+
"patch_size": 2,
|
| 34 |
+
"perceiver_num_layers": 2,
|
| 35 |
+
"rope_theta": 256.0,
|
| 36 |
+
"t_scale": 1000.0
|
| 37 |
+
}
|
transformer/diffusion_pytorch_model-00001-of-00002.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a7c0121ba051a8f9d5e447ab4d11e1e202a94971313936c5cce1daaf31c897f6
|
| 3 |
+
size 9991176550
|
transformer/diffusion_pytorch_model-00002-of-00002.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0edf2f2d5e8338f126f7992561e7691909392417dc4d484a9d3865709ef84a73
|
| 3 |
+
size 6263592868
|
transformer/diffusion_pytorch_model.safetensors.index.json
ADDED
|
@@ -0,0 +1,790 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"metadata": {
|
| 3 |
+
"total_size": 16254684426
|
| 4 |
+
},
|
| 5 |
+
"weight_map": {
|
| 6 |
+
"final_layer.adaLN_modulation.1.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 7 |
+
"final_layer.adaLN_modulation.1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 8 |
+
"final_layer.linear.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 9 |
+
"final_layer.linear.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 10 |
+
"layers.0.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 11 |
+
"layers.0.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 12 |
+
"layers.0.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 13 |
+
"layers.0.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 14 |
+
"layers.0.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 15 |
+
"layers.0.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 16 |
+
"layers.0.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 17 |
+
"layers.0.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 18 |
+
"layers.0.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 19 |
+
"layers.0.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 20 |
+
"layers.0.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 21 |
+
"layers.0.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 22 |
+
"layers.0.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 23 |
+
"layers.0.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 24 |
+
"layers.0.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 25 |
+
"layers.1.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 26 |
+
"layers.1.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 27 |
+
"layers.1.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 28 |
+
"layers.1.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 29 |
+
"layers.1.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 30 |
+
"layers.1.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 31 |
+
"layers.1.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 32 |
+
"layers.1.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 33 |
+
"layers.1.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 34 |
+
"layers.1.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 35 |
+
"layers.1.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 36 |
+
"layers.1.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 37 |
+
"layers.1.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 38 |
+
"layers.1.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 39 |
+
"layers.1.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 40 |
+
"layers.10.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 41 |
+
"layers.10.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 42 |
+
"layers.10.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 43 |
+
"layers.10.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 44 |
+
"layers.10.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 45 |
+
"layers.10.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 46 |
+
"layers.10.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 47 |
+
"layers.10.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 48 |
+
"layers.10.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 49 |
+
"layers.10.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 50 |
+
"layers.10.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 51 |
+
"layers.10.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 52 |
+
"layers.10.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 53 |
+
"layers.10.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 54 |
+
"layers.10.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 55 |
+
"layers.11.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 56 |
+
"layers.11.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 57 |
+
"layers.11.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 58 |
+
"layers.11.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 59 |
+
"layers.11.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 60 |
+
"layers.11.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 61 |
+
"layers.11.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 62 |
+
"layers.11.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 63 |
+
"layers.11.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 64 |
+
"layers.11.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 65 |
+
"layers.11.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 66 |
+
"layers.11.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 67 |
+
"layers.11.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 68 |
+
"layers.11.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 69 |
+
"layers.11.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 70 |
+
"layers.12.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 71 |
+
"layers.12.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 72 |
+
"layers.12.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 73 |
+
"layers.12.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 74 |
+
"layers.12.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 75 |
+
"layers.12.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 76 |
+
"layers.12.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 77 |
+
"layers.12.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 78 |
+
"layers.12.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 79 |
+
"layers.12.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 80 |
+
"layers.12.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 81 |
+
"layers.12.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 82 |
+
"layers.12.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 83 |
+
"layers.12.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 84 |
+
"layers.12.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 85 |
+
"layers.13.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 86 |
+
"layers.13.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 87 |
+
"layers.13.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 88 |
+
"layers.13.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 89 |
+
"layers.13.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 90 |
+
"layers.13.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 91 |
+
"layers.13.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 92 |
+
"layers.13.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 93 |
+
"layers.13.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 94 |
+
"layers.13.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 95 |
+
"layers.13.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 96 |
+
"layers.13.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 97 |
+
"layers.13.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 98 |
+
"layers.13.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 99 |
+
"layers.13.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 100 |
+
"layers.14.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 101 |
+
"layers.14.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 102 |
+
"layers.14.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 103 |
+
"layers.14.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 104 |
+
"layers.14.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 105 |
+
"layers.14.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 106 |
+
"layers.14.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 107 |
+
"layers.14.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 108 |
+
"layers.14.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 109 |
+
"layers.14.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 110 |
+
"layers.14.cross_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 111 |
+
"layers.14.cross_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 112 |
+
"layers.14.cross_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 113 |
+
"layers.14.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 114 |
+
"layers.14.cross_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 115 |
+
"layers.14.cross_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 116 |
+
"layers.14.cross_attn_gate": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 117 |
+
"layers.14.cross_attn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 118 |
+
"layers.14.cross_attn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 119 |
+
"layers.14.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 120 |
+
"layers.14.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 121 |
+
"layers.14.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 122 |
+
"layers.14.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 123 |
+
"layers.14.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 124 |
+
"layers.15.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 125 |
+
"layers.15.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 126 |
+
"layers.15.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 127 |
+
"layers.15.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 128 |
+
"layers.15.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 129 |
+
"layers.15.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 130 |
+
"layers.15.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 131 |
+
"layers.15.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 132 |
+
"layers.15.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 133 |
+
"layers.15.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 134 |
+
"layers.15.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 135 |
+
"layers.15.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 136 |
+
"layers.15.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 137 |
+
"layers.15.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 138 |
+
"layers.15.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 139 |
+
"layers.16.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 140 |
+
"layers.16.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 141 |
+
"layers.16.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 142 |
+
"layers.16.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 143 |
+
"layers.16.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 144 |
+
"layers.16.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 145 |
+
"layers.16.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 146 |
+
"layers.16.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 147 |
+
"layers.16.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 148 |
+
"layers.16.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 149 |
+
"layers.16.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 150 |
+
"layers.16.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 151 |
+
"layers.16.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 152 |
+
"layers.16.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 153 |
+
"layers.16.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 154 |
+
"layers.17.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 155 |
+
"layers.17.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 156 |
+
"layers.17.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 157 |
+
"layers.17.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 158 |
+
"layers.17.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 159 |
+
"layers.17.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 160 |
+
"layers.17.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 161 |
+
"layers.17.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 162 |
+
"layers.17.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 163 |
+
"layers.17.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 164 |
+
"layers.17.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 165 |
+
"layers.17.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 166 |
+
"layers.17.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 167 |
+
"layers.17.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 168 |
+
"layers.17.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 169 |
+
"layers.18.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 170 |
+
"layers.18.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 171 |
+
"layers.18.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 172 |
+
"layers.18.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 173 |
+
"layers.18.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 174 |
+
"layers.18.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 175 |
+
"layers.18.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 176 |
+
"layers.18.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 177 |
+
"layers.18.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 178 |
+
"layers.18.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 179 |
+
"layers.18.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 180 |
+
"layers.18.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 181 |
+
"layers.18.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 182 |
+
"layers.18.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 183 |
+
"layers.18.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 184 |
+
"layers.19.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 185 |
+
"layers.19.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 186 |
+
"layers.19.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 187 |
+
"layers.19.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 188 |
+
"layers.19.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 189 |
+
"layers.19.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 190 |
+
"layers.19.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 191 |
+
"layers.19.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 192 |
+
"layers.19.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 193 |
+
"layers.19.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 194 |
+
"layers.19.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 195 |
+
"layers.19.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 196 |
+
"layers.19.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 197 |
+
"layers.19.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 198 |
+
"layers.19.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 199 |
+
"layers.2.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 200 |
+
"layers.2.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 201 |
+
"layers.2.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 202 |
+
"layers.2.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 203 |
+
"layers.2.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 204 |
+
"layers.2.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 205 |
+
"layers.2.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 206 |
+
"layers.2.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 207 |
+
"layers.2.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 208 |
+
"layers.2.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 209 |
+
"layers.2.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 210 |
+
"layers.2.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 211 |
+
"layers.2.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 212 |
+
"layers.2.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 213 |
+
"layers.2.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 214 |
+
"layers.20.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 215 |
+
"layers.20.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 216 |
+
"layers.20.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 217 |
+
"layers.20.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 218 |
+
"layers.20.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 219 |
+
"layers.20.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 220 |
+
"layers.20.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 221 |
+
"layers.20.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 222 |
+
"layers.20.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 223 |
+
"layers.20.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 224 |
+
"layers.20.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 225 |
+
"layers.20.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 226 |
+
"layers.20.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 227 |
+
"layers.20.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 228 |
+
"layers.20.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 229 |
+
"layers.21.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 230 |
+
"layers.21.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 231 |
+
"layers.21.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 232 |
+
"layers.21.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 233 |
+
"layers.21.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 234 |
+
"layers.21.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 235 |
+
"layers.21.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 236 |
+
"layers.21.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 237 |
+
"layers.21.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 238 |
+
"layers.21.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 239 |
+
"layers.21.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 240 |
+
"layers.21.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 241 |
+
"layers.21.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 242 |
+
"layers.21.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 243 |
+
"layers.21.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 244 |
+
"layers.22.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 245 |
+
"layers.22.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 246 |
+
"layers.22.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 247 |
+
"layers.22.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 248 |
+
"layers.22.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 249 |
+
"layers.22.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 250 |
+
"layers.22.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 251 |
+
"layers.22.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 252 |
+
"layers.22.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 253 |
+
"layers.22.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 254 |
+
"layers.22.cross_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 255 |
+
"layers.22.cross_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 256 |
+
"layers.22.cross_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 257 |
+
"layers.22.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 258 |
+
"layers.22.cross_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 259 |
+
"layers.22.cross_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 260 |
+
"layers.22.cross_attn_gate": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 261 |
+
"layers.22.cross_attn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 262 |
+
"layers.22.cross_attn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 263 |
+
"layers.22.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 264 |
+
"layers.22.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 265 |
+
"layers.22.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 266 |
+
"layers.22.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 267 |
+
"layers.22.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 268 |
+
"layers.23.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 269 |
+
"layers.23.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 270 |
+
"layers.23.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 271 |
+
"layers.23.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 272 |
+
"layers.23.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 273 |
+
"layers.23.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 274 |
+
"layers.23.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 275 |
+
"layers.23.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 276 |
+
"layers.23.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 277 |
+
"layers.23.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 278 |
+
"layers.23.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 279 |
+
"layers.23.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 280 |
+
"layers.23.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 281 |
+
"layers.23.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 282 |
+
"layers.23.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 283 |
+
"layers.24.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 284 |
+
"layers.24.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 285 |
+
"layers.24.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 286 |
+
"layers.24.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 287 |
+
"layers.24.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 288 |
+
"layers.24.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 289 |
+
"layers.24.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 290 |
+
"layers.24.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 291 |
+
"layers.24.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 292 |
+
"layers.24.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 293 |
+
"layers.24.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 294 |
+
"layers.24.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 295 |
+
"layers.24.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 296 |
+
"layers.24.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 297 |
+
"layers.24.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 298 |
+
"layers.25.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 299 |
+
"layers.25.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 300 |
+
"layers.25.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 301 |
+
"layers.25.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 302 |
+
"layers.25.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 303 |
+
"layers.25.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 304 |
+
"layers.25.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 305 |
+
"layers.25.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 306 |
+
"layers.25.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 307 |
+
"layers.25.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 308 |
+
"layers.25.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 309 |
+
"layers.25.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 310 |
+
"layers.25.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 311 |
+
"layers.25.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 312 |
+
"layers.25.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 313 |
+
"layers.26.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 314 |
+
"layers.26.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 315 |
+
"layers.26.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 316 |
+
"layers.26.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 317 |
+
"layers.26.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 318 |
+
"layers.26.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 319 |
+
"layers.26.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 320 |
+
"layers.26.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 321 |
+
"layers.26.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 322 |
+
"layers.26.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 323 |
+
"layers.26.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 324 |
+
"layers.26.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 325 |
+
"layers.26.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 326 |
+
"layers.26.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 327 |
+
"layers.26.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 328 |
+
"layers.27.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 329 |
+
"layers.27.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 330 |
+
"layers.27.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 331 |
+
"layers.27.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 332 |
+
"layers.27.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 333 |
+
"layers.27.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 334 |
+
"layers.27.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 335 |
+
"layers.27.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 336 |
+
"layers.27.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 337 |
+
"layers.27.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 338 |
+
"layers.27.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 339 |
+
"layers.27.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 340 |
+
"layers.27.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 341 |
+
"layers.27.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 342 |
+
"layers.27.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 343 |
+
"layers.28.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 344 |
+
"layers.28.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 345 |
+
"layers.28.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 346 |
+
"layers.28.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 347 |
+
"layers.28.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 348 |
+
"layers.28.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 349 |
+
"layers.28.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 350 |
+
"layers.28.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 351 |
+
"layers.28.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 352 |
+
"layers.28.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 353 |
+
"layers.28.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 354 |
+
"layers.28.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 355 |
+
"layers.28.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 356 |
+
"layers.28.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 357 |
+
"layers.28.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 358 |
+
"layers.29.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 359 |
+
"layers.29.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 360 |
+
"layers.29.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 361 |
+
"layers.29.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 362 |
+
"layers.29.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 363 |
+
"layers.29.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 364 |
+
"layers.29.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 365 |
+
"layers.29.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 366 |
+
"layers.29.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 367 |
+
"layers.29.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 368 |
+
"layers.29.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 369 |
+
"layers.29.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 370 |
+
"layers.29.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 371 |
+
"layers.29.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 372 |
+
"layers.29.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 373 |
+
"layers.3.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 374 |
+
"layers.3.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 375 |
+
"layers.3.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 376 |
+
"layers.3.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 377 |
+
"layers.3.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 378 |
+
"layers.3.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 379 |
+
"layers.3.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 380 |
+
"layers.3.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 381 |
+
"layers.3.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 382 |
+
"layers.3.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 383 |
+
"layers.3.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 384 |
+
"layers.3.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 385 |
+
"layers.3.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 386 |
+
"layers.3.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 387 |
+
"layers.3.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 388 |
+
"layers.30.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 389 |
+
"layers.30.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 390 |
+
"layers.30.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 391 |
+
"layers.30.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 392 |
+
"layers.30.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 393 |
+
"layers.30.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 394 |
+
"layers.30.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 395 |
+
"layers.30.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 396 |
+
"layers.30.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 397 |
+
"layers.30.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 398 |
+
"layers.30.cross_attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 399 |
+
"layers.30.cross_attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 400 |
+
"layers.30.cross_attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 401 |
+
"layers.30.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 402 |
+
"layers.30.cross_attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 403 |
+
"layers.30.cross_attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 404 |
+
"layers.30.cross_attn_gate": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 405 |
+
"layers.30.cross_attn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 406 |
+
"layers.30.cross_attn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 407 |
+
"layers.30.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 408 |
+
"layers.30.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 409 |
+
"layers.30.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 410 |
+
"layers.30.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 411 |
+
"layers.30.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 412 |
+
"layers.31.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 413 |
+
"layers.31.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 414 |
+
"layers.31.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 415 |
+
"layers.31.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 416 |
+
"layers.31.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 417 |
+
"layers.31.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 418 |
+
"layers.31.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 419 |
+
"layers.31.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 420 |
+
"layers.31.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 421 |
+
"layers.31.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 422 |
+
"layers.31.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 423 |
+
"layers.31.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 424 |
+
"layers.31.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 425 |
+
"layers.31.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 426 |
+
"layers.31.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 427 |
+
"layers.32.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 428 |
+
"layers.32.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 429 |
+
"layers.32.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 430 |
+
"layers.32.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 431 |
+
"layers.32.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 432 |
+
"layers.32.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 433 |
+
"layers.32.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 434 |
+
"layers.32.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 435 |
+
"layers.32.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 436 |
+
"layers.32.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 437 |
+
"layers.32.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 438 |
+
"layers.32.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 439 |
+
"layers.32.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 440 |
+
"layers.32.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 441 |
+
"layers.32.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 442 |
+
"layers.33.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 443 |
+
"layers.33.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 444 |
+
"layers.33.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 445 |
+
"layers.33.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 446 |
+
"layers.33.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 447 |
+
"layers.33.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 448 |
+
"layers.33.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 449 |
+
"layers.33.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 450 |
+
"layers.33.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 451 |
+
"layers.33.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 452 |
+
"layers.33.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 453 |
+
"layers.33.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 454 |
+
"layers.33.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 455 |
+
"layers.33.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 456 |
+
"layers.33.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 457 |
+
"layers.34.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 458 |
+
"layers.34.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 459 |
+
"layers.34.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 460 |
+
"layers.34.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 461 |
+
"layers.34.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 462 |
+
"layers.34.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 463 |
+
"layers.34.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 464 |
+
"layers.34.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 465 |
+
"layers.34.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 466 |
+
"layers.34.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 467 |
+
"layers.34.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 468 |
+
"layers.34.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 469 |
+
"layers.34.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 470 |
+
"layers.34.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 471 |
+
"layers.34.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 472 |
+
"layers.35.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 473 |
+
"layers.35.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 474 |
+
"layers.35.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 475 |
+
"layers.35.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 476 |
+
"layers.35.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 477 |
+
"layers.35.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 478 |
+
"layers.35.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 479 |
+
"layers.35.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 480 |
+
"layers.35.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 481 |
+
"layers.35.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 482 |
+
"layers.35.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 483 |
+
"layers.35.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 484 |
+
"layers.35.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 485 |
+
"layers.35.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 486 |
+
"layers.35.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 487 |
+
"layers.36.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 488 |
+
"layers.36.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 489 |
+
"layers.36.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 490 |
+
"layers.36.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 491 |
+
"layers.36.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 492 |
+
"layers.36.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 493 |
+
"layers.36.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 494 |
+
"layers.36.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 495 |
+
"layers.36.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 496 |
+
"layers.36.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 497 |
+
"layers.36.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 498 |
+
"layers.36.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 499 |
+
"layers.36.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 500 |
+
"layers.36.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 501 |
+
"layers.36.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 502 |
+
"layers.37.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 503 |
+
"layers.37.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 504 |
+
"layers.37.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 505 |
+
"layers.37.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 506 |
+
"layers.37.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 507 |
+
"layers.37.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 508 |
+
"layers.37.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 509 |
+
"layers.37.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 510 |
+
"layers.37.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 511 |
+
"layers.37.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 512 |
+
"layers.37.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 513 |
+
"layers.37.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 514 |
+
"layers.37.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 515 |
+
"layers.37.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 516 |
+
"layers.37.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 517 |
+
"layers.38.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 518 |
+
"layers.38.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 519 |
+
"layers.38.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 520 |
+
"layers.38.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 521 |
+
"layers.38.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 522 |
+
"layers.38.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 523 |
+
"layers.38.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 524 |
+
"layers.38.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 525 |
+
"layers.38.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 526 |
+
"layers.38.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 527 |
+
"layers.38.cross_attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 528 |
+
"layers.38.cross_attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 529 |
+
"layers.38.cross_attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 530 |
+
"layers.38.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 531 |
+
"layers.38.cross_attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 532 |
+
"layers.38.cross_attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 533 |
+
"layers.38.cross_attn_gate": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 534 |
+
"layers.38.cross_attn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 535 |
+
"layers.38.cross_attn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 536 |
+
"layers.38.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 537 |
+
"layers.38.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 538 |
+
"layers.38.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 539 |
+
"layers.38.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 540 |
+
"layers.38.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 541 |
+
"layers.39.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 542 |
+
"layers.39.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 543 |
+
"layers.39.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 544 |
+
"layers.39.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 545 |
+
"layers.39.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 546 |
+
"layers.39.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 547 |
+
"layers.39.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 548 |
+
"layers.39.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 549 |
+
"layers.39.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 550 |
+
"layers.39.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 551 |
+
"layers.39.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 552 |
+
"layers.39.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 553 |
+
"layers.39.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 554 |
+
"layers.39.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 555 |
+
"layers.39.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 556 |
+
"layers.4.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 557 |
+
"layers.4.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 558 |
+
"layers.4.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 559 |
+
"layers.4.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 560 |
+
"layers.4.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 561 |
+
"layers.4.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 562 |
+
"layers.4.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 563 |
+
"layers.4.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 564 |
+
"layers.4.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 565 |
+
"layers.4.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 566 |
+
"layers.4.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 567 |
+
"layers.4.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 568 |
+
"layers.4.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 569 |
+
"layers.4.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 570 |
+
"layers.4.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 571 |
+
"layers.40.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 572 |
+
"layers.40.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 573 |
+
"layers.40.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 574 |
+
"layers.40.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 575 |
+
"layers.40.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 576 |
+
"layers.40.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 577 |
+
"layers.40.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 578 |
+
"layers.40.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 579 |
+
"layers.40.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 580 |
+
"layers.40.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 581 |
+
"layers.40.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 582 |
+
"layers.40.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 583 |
+
"layers.40.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 584 |
+
"layers.40.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 585 |
+
"layers.40.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 586 |
+
"layers.41.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 587 |
+
"layers.41.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 588 |
+
"layers.41.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 589 |
+
"layers.41.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 590 |
+
"layers.41.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 591 |
+
"layers.41.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 592 |
+
"layers.41.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 593 |
+
"layers.41.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 594 |
+
"layers.41.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 595 |
+
"layers.41.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 596 |
+
"layers.41.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 597 |
+
"layers.41.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 598 |
+
"layers.41.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 599 |
+
"layers.41.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 600 |
+
"layers.41.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 601 |
+
"layers.42.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 602 |
+
"layers.42.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 603 |
+
"layers.42.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 604 |
+
"layers.42.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 605 |
+
"layers.42.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 606 |
+
"layers.42.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 607 |
+
"layers.42.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 608 |
+
"layers.42.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 609 |
+
"layers.42.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 610 |
+
"layers.42.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 611 |
+
"layers.42.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 612 |
+
"layers.42.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 613 |
+
"layers.42.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 614 |
+
"layers.42.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 615 |
+
"layers.42.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 616 |
+
"layers.43.adaLN_modulation.0.bias": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 617 |
+
"layers.43.adaLN_modulation.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 618 |
+
"layers.43.attention.norm_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 619 |
+
"layers.43.attention.norm_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 620 |
+
"layers.43.attention.to_k.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 621 |
+
"layers.43.attention.to_out.0.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 622 |
+
"layers.43.attention.to_q.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 623 |
+
"layers.43.attention.to_v.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 624 |
+
"layers.43.attention_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 625 |
+
"layers.43.attention_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 626 |
+
"layers.43.feed_forward.w1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 627 |
+
"layers.43.feed_forward.w2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 628 |
+
"layers.43.feed_forward.w3.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 629 |
+
"layers.43.ffn_norm1.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 630 |
+
"layers.43.ffn_norm2.weight": "diffusion_pytorch_model-00002-of-00002.safetensors",
|
| 631 |
+
"layers.5.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 632 |
+
"layers.5.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 633 |
+
"layers.5.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 634 |
+
"layers.5.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 635 |
+
"layers.5.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 636 |
+
"layers.5.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 637 |
+
"layers.5.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 638 |
+
"layers.5.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 639 |
+
"layers.5.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 640 |
+
"layers.5.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 641 |
+
"layers.5.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 642 |
+
"layers.5.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 643 |
+
"layers.5.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 644 |
+
"layers.5.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 645 |
+
"layers.5.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 646 |
+
"layers.6.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 647 |
+
"layers.6.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 648 |
+
"layers.6.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 649 |
+
"layers.6.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 650 |
+
"layers.6.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 651 |
+
"layers.6.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 652 |
+
"layers.6.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 653 |
+
"layers.6.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 654 |
+
"layers.6.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 655 |
+
"layers.6.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 656 |
+
"layers.6.cross_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 657 |
+
"layers.6.cross_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 658 |
+
"layers.6.cross_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 659 |
+
"layers.6.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 660 |
+
"layers.6.cross_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 661 |
+
"layers.6.cross_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 662 |
+
"layers.6.cross_attn_gate": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 663 |
+
"layers.6.cross_attn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 664 |
+
"layers.6.cross_attn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 665 |
+
"layers.6.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 666 |
+
"layers.6.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 667 |
+
"layers.6.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 668 |
+
"layers.6.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 669 |
+
"layers.6.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 670 |
+
"layers.7.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 671 |
+
"layers.7.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 672 |
+
"layers.7.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 673 |
+
"layers.7.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 674 |
+
"layers.7.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 675 |
+
"layers.7.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 676 |
+
"layers.7.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 677 |
+
"layers.7.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 678 |
+
"layers.7.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 679 |
+
"layers.7.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 680 |
+
"layers.7.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 681 |
+
"layers.7.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 682 |
+
"layers.7.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 683 |
+
"layers.7.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 684 |
+
"layers.7.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 685 |
+
"layers.8.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 686 |
+
"layers.8.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 687 |
+
"layers.8.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 688 |
+
"layers.8.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 689 |
+
"layers.8.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 690 |
+
"layers.8.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 691 |
+
"layers.8.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 692 |
+
"layers.8.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 693 |
+
"layers.8.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 694 |
+
"layers.8.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 695 |
+
"layers.8.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 696 |
+
"layers.8.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 697 |
+
"layers.8.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 698 |
+
"layers.8.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 699 |
+
"layers.8.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 700 |
+
"layers.9.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 701 |
+
"layers.9.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 702 |
+
"layers.9.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 703 |
+
"layers.9.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 704 |
+
"layers.9.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 705 |
+
"layers.9.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 706 |
+
"layers.9.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 707 |
+
"layers.9.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 708 |
+
"layers.9.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 709 |
+
"layers.9.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 710 |
+
"layers.9.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 711 |
+
"layers.9.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 712 |
+
"layers.9.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 713 |
+
"layers.9.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 714 |
+
"layers.9.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 715 |
+
"noise_refiner.0.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 716 |
+
"noise_refiner.0.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 717 |
+
"noise_refiner.0.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 718 |
+
"noise_refiner.0.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 719 |
+
"noise_refiner.0.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 720 |
+
"noise_refiner.0.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 721 |
+
"noise_refiner.0.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 722 |
+
"noise_refiner.0.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 723 |
+
"noise_refiner.0.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 724 |
+
"noise_refiner.0.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 725 |
+
"noise_refiner.0.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 726 |
+
"noise_refiner.0.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 727 |
+
"noise_refiner.0.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 728 |
+
"noise_refiner.0.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 729 |
+
"noise_refiner.0.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 730 |
+
"noise_refiner.1.adaLN_modulation.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 731 |
+
"noise_refiner.1.adaLN_modulation.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 732 |
+
"noise_refiner.1.attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 733 |
+
"noise_refiner.1.attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 734 |
+
"noise_refiner.1.attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 735 |
+
"noise_refiner.1.attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 736 |
+
"noise_refiner.1.attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 737 |
+
"noise_refiner.1.attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 738 |
+
"noise_refiner.1.attention_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 739 |
+
"noise_refiner.1.attention_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 740 |
+
"noise_refiner.1.feed_forward.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 741 |
+
"noise_refiner.1.feed_forward.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 742 |
+
"noise_refiner.1.feed_forward.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 743 |
+
"noise_refiner.1.ffn_norm1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 744 |
+
"noise_refiner.1.ffn_norm2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 745 |
+
"perceiver.latent_queries": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 746 |
+
"perceiver.layers.0.cross_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 747 |
+
"perceiver.layers.0.cross_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 748 |
+
"perceiver.layers.0.cross_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 749 |
+
"perceiver.layers.0.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 750 |
+
"perceiver.layers.0.cross_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 751 |
+
"perceiver.layers.0.cross_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 752 |
+
"perceiver.layers.0.cross_attn_norm.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 753 |
+
"perceiver.layers.0.ffn.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 754 |
+
"perceiver.layers.0.ffn.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 755 |
+
"perceiver.layers.0.ffn.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 756 |
+
"perceiver.layers.0.ffn_norm.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 757 |
+
"perceiver.layers.0.self_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 758 |
+
"perceiver.layers.0.self_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 759 |
+
"perceiver.layers.0.self_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 760 |
+
"perceiver.layers.0.self_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 761 |
+
"perceiver.layers.0.self_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 762 |
+
"perceiver.layers.0.self_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 763 |
+
"perceiver.layers.0.self_attn_norm.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 764 |
+
"perceiver.layers.1.cross_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 765 |
+
"perceiver.layers.1.cross_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 766 |
+
"perceiver.layers.1.cross_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 767 |
+
"perceiver.layers.1.cross_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 768 |
+
"perceiver.layers.1.cross_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 769 |
+
"perceiver.layers.1.cross_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 770 |
+
"perceiver.layers.1.cross_attn_norm.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 771 |
+
"perceiver.layers.1.ffn.w1.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 772 |
+
"perceiver.layers.1.ffn.w2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 773 |
+
"perceiver.layers.1.ffn.w3.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 774 |
+
"perceiver.layers.1.ffn_norm.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 775 |
+
"perceiver.layers.1.self_attention.norm_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 776 |
+
"perceiver.layers.1.self_attention.norm_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 777 |
+
"perceiver.layers.1.self_attention.to_k.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 778 |
+
"perceiver.layers.1.self_attention.to_out.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 779 |
+
"perceiver.layers.1.self_attention.to_q.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 780 |
+
"perceiver.layers.1.self_attention.to_v.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 781 |
+
"perceiver.layers.1.self_attn_norm.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 782 |
+
"perceiver.norm_out.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 783 |
+
"t_embedder.mlp.0.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 784 |
+
"t_embedder.mlp.0.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 785 |
+
"t_embedder.mlp.2.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 786 |
+
"t_embedder.mlp.2.weight": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 787 |
+
"x_embedder.bias": "diffusion_pytorch_model-00001-of-00002.safetensors",
|
| 788 |
+
"x_embedder.weight": "diffusion_pytorch_model-00001-of-00002.safetensors"
|
| 789 |
+
}
|
| 790 |
+
}
|
vae/config.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "AutoencoderKLFlux2",
|
| 3 |
+
"_diffusers_version": "0.41.0.dev0",
|
| 4 |
+
"_name_or_path": "/tmp/fibo2_hf_release/hf/hub/models--briaai--fibo-2/snapshots/9e70dcfc6f8acf39cba59484947cf643293b5233",
|
| 5 |
+
"act_fn": "silu",
|
| 6 |
+
"batch_norm_eps": 0.0001,
|
| 7 |
+
"batch_norm_momentum": 0.1,
|
| 8 |
+
"block_out_channels": [
|
| 9 |
+
128,
|
| 10 |
+
256,
|
| 11 |
+
512,
|
| 12 |
+
512
|
| 13 |
+
],
|
| 14 |
+
"decoder_block_out_channels": null,
|
| 15 |
+
"down_block_types": [
|
| 16 |
+
"DownEncoderBlock2D",
|
| 17 |
+
"DownEncoderBlock2D",
|
| 18 |
+
"DownEncoderBlock2D",
|
| 19 |
+
"DownEncoderBlock2D"
|
| 20 |
+
],
|
| 21 |
+
"in_channels": 3,
|
| 22 |
+
"latent_channels": 32,
|
| 23 |
+
"layers_per_block": 2,
|
| 24 |
+
"mid_block_add_attention": true,
|
| 25 |
+
"norm_num_groups": 32,
|
| 26 |
+
"out_channels": 3,
|
| 27 |
+
"patch_size": [
|
| 28 |
+
2,
|
| 29 |
+
2
|
| 30 |
+
],
|
| 31 |
+
"sample_size": 1024,
|
| 32 |
+
"up_block_types": [
|
| 33 |
+
"UpDecoderBlock2D",
|
| 34 |
+
"UpDecoderBlock2D",
|
| 35 |
+
"UpDecoderBlock2D",
|
| 36 |
+
"UpDecoderBlock2D"
|
| 37 |
+
],
|
| 38 |
+
"use_post_quant_conv": true,
|
| 39 |
+
"use_quant_conv": true
|
| 40 |
+
}
|
vae/diffusion_pytorch_model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d64f3a68e1cc4f9f4e29b6e0da38a0204fe9a49f2d4053f0ec1fa1ca02f9c4b5
|
| 3 |
+
size 336213556
|