Image-Text-to-Video
MiniMax H3
Diffusers
Safetensors
GGUF
English
Chinese
hyperflow-h3
audio-video-generation
text-to-video
image-to-video
reference-to-video
few-step
int8
comfyui
stable-diffusion.cpp
unsloth
Instructions to use VideoRebirthAI/hyperflow-h3-flash with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Local Apps Settings
- Unsloth Desktop
Commit ·
9e9ed14
0
Parent(s):
HyperFlow H3 Flash 1.0.0: INT8 convrot and GGUF for fl2va and ref2va
Browse files- .gitattributes +36 -0
- LICENSE +84 -0
- NOTICE +19 -0
- README.md +303 -0
- fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q3_K_M.gguf +3 -0
- fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q4_K_M.gguf +3 -0
- fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q4_K_S.gguf +3 -0
- fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q5_K_M.gguf +3 -0
- fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q6_K.gguf +3 -0
- fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q8_0.gguf +3 -0
- fl2va_int8_convrot/config.json +325 -0
- fl2va_int8_convrot/diffusion_pytorch_model-00001-of-00003.safetensors +3 -0
- fl2va_int8_convrot/diffusion_pytorch_model-00002-of-00003.safetensors +3 -0
- fl2va_int8_convrot/diffusion_pytorch_model-00003-of-00003.safetensors +3 -0
- fl2va_int8_convrot/diffusion_pytorch_model.safetensors.index.json +895 -0
- fl2va_int8_convrot/hyperflow_h3_flash_int8.py +410 -0
- fl2va_int8_convrot/hyperflow_h3_flash_transformer.py +403 -0
- ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q3_K_M.gguf +3 -0
- ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q4_K_M.gguf +3 -0
- ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q4_K_S.gguf +3 -0
- ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q5_K_M.gguf +3 -0
- ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q6_K.gguf +3 -0
- ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q8_0.gguf +3 -0
- ref2va_int8_convrot/config.json +335 -0
- ref2va_int8_convrot/diffusion_pytorch_model-00001-of-00004.safetensors +3 -0
- ref2va_int8_convrot/diffusion_pytorch_model-00002-of-00004.safetensors +3 -0
- ref2va_int8_convrot/diffusion_pytorch_model-00003-of-00004.safetensors +3 -0
- ref2va_int8_convrot/diffusion_pytorch_model-00004-of-00004.safetensors +3 -0
- ref2va_int8_convrot/diffusion_pytorch_model.safetensors.index.json +931 -0
- ref2va_int8_convrot/hyperflow_h3_flash_int8.py +410 -0
- ref2va_int8_convrot/hyperflow_h3_flash_transformer.py +403 -0
.gitattributes
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gguf filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
LICENSE
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MiniMax H3 COMMUNITY LICENSE AGREEMENT
|
| 2 |
+
MiniMax H3 release date/License date: August 2, 2026.
|
| 3 |
+
The scope of this License Agreement (this “Agreement”) is expressly limited to the “Applicable Territory” as defined below.
|
| 4 |
+
By clicking to accept, or by using, reproducing, modifying, distributing, running, or displaying any portion or element of the MiniMax H3 Works (including through any Hosted Services) in any manner, you acknowledge and accept the terms of this Agreement, and this Agreement shall take immediate effect upon the occurrence of such act.
|
| 5 |
+
I. Definitions
|
| 6 |
+
1. “Acceptable Use Policy” means the policy published by MiniMax in Exhibit A.
|
| 7 |
+
2. “Agreement” means the terms and conditions set forth herein that govern the use, reproduction, distribution, modification, running, and display of the MiniMax H3 Works or any portion or element thereof.
|
| 8 |
+
3. “Applicable Territory” means worldwide, excluding the Excluded Territories.
|
| 9 |
+
4. “Documentation” means the specifications, manuals, and documentation concerning MiniMax H3 that are publicly released by MiniMax.
|
| 10 |
+
5. “Excluded Territories” means the European Union, the United Kingdom, the Republic of Korea and the United States of America.
|
| 11 |
+
6. “MiniMax H3” means the video generation model, together with its software and algorithms, including trained model weights, parameters (including optimizer states), machine-learning model code, inference-supporting code, and other elements thereof made publicly available by Us, as released at https://huggingface.co/MiniMaxAI/MiniMax-H3.
|
| 12 |
+
7. “MiniMax H3 Works” means (i) the Materials, (ii) the Model Derivatives, and (iii) all derivatives thereof.
|
| 13 |
+
8. “Hosted Services” means hosted services provided via application programming interfaces (APIs), web access, or any other electronic or remote means.
|
| 14 |
+
9. “Licensee,” “you,” or “your” means the natural or legal person exercising rights and/or using the MiniMax H3 Works for any purpose in any field of use under this Agreement.
|
| 15 |
+
10. “Materials” means, collectively, MiniMax H3 and the Documentation (and any portion thereof), in each case as made available by MiniMax under this Agreement and proprietary to MiniMax.
|
| 16 |
+
11. “Model Derivatives” means all of the following: (i) any modification of MiniMax H3 or any Model Derivative thereof; (ii) any work based on MiniMax H3 or any Model Derivative thereof; or (iii) any other machine learning model created by transferring the patterns of the weights, parameters, operational patterns, or Outputs of MiniMax H3 or any Model Derivative thereof to another model, such that the latter model exhibits behavior similar to MiniMax H3 or its Model Derivatives, including by distillation methods, methods using intermediate data representations, or methods based on training using synthetic-data Outputs generated by MiniMax H3 or its Model Derivatives. For the avoidance of doubt, Outputs are not deemed Model Derivatives.
|
| 17 |
+
12. “Output” means any result of operating or otherwise using MiniMax H3 or any Model Derivatives (including through Hosted Services).
|
| 18 |
+
13. “Third Party” means any natural or legal person that is not under common control with us or with you.
|
| 19 |
+
14. “Including” means “including but not limited to.”
|
| 20 |
+
15. “We,” “Us” or “MiniMax” means Nanonoble Pte. Ltd..
|
| 21 |
+
II. Grant of Rights
|
| 22 |
+
Solely within the Applicable Territory, we grant you a non-exclusive, non-transferable, royalty-free, limited license to use, reproduce, distribute, create derivative works (including Model Derivatives), and modify the Materials in accordance with the terms of this Agreement and the Acceptable Use Policy, based on the intellectual property and other rights owned by MiniMax that are embodied in or used by the Materials. You shall not violate (or encourage or permit any person to violate) any term of this Agreement or the Acceptable Use Policy.
|
| 23 |
+
We will continuously evaluate the applicable laws, regulations and compliance requirements for the Excluded Territories. In the meantime, should any person in such Excluded Territories be interested in deploying our models, you are welcome to contact us about obtaining a license, which will be granted based on robust controls and guardrails for purposes of complying with the laws, regulations and compliance requirements of the Excluded Territories.
|
| 24 |
+
III. Distribution and Redistribution
|
| 25 |
+
Subject to and conditioned on your continuing compliance with this Agreement, including its territorial restrictions and the Acceptable Use Policy, and solely within the Applicable Territory, you may distribute or make available the MiniMax H3 Works to Third Parties within the Applicable Territory; provided, that all of the following conditions are met:
|
| 26 |
+
1. You must provide a copy of this Agreement to all such Third Parties who receive the MiniMax H3 Works or use your products or services related thereto;
|
| 27 |
+
2. You must cause any modified files to carry prominent notices stating that you have modified such files;
|
| 28 |
+
3. You are encouraged to:
|
| 29 |
+
a. display a notice on any product or service developed using MiniMax H3 indicating that the product or service is “Powered by MiniMax H3”;
|
| 30 |
+
b. add an AI-generation identifier to files produced using generative AI models including MiniMax H3; and
|
| 31 |
+
c. publish at least one technical blog post or a public statement describing your experience using MiniMax H3 Works;
|
| 32 |
+
4. All distributions to Third Parties (other than through Hosted Services) must be accompanied by a “NOTICE” text file containing the following notice:
|
| 33 |
+
“MiniMax H3 is licensed under the MiniMax H3 Community License Agreement, Copyright © 2026 MiniMax. All Rights Reserved.”
|
| 34 |
+
You may add your own copyright notices on your modifications; except as provided in this Section and in Section V, however, you may not impose additional or different terms and conditions on the use, reproduction, or distribution of your modifications or of any aggregate Model Derivatives, and your use, reproduction, modification, distribution, running, and display of the work must otherwise comply with the terms and conditions of this Agreement (including the provisions concerning the Applicable Territory). If you receive the MiniMax H3 Works from a Licensee as part of an integrated end-user product, the provisions of Section III of this Agreement do not apply to you, but Section V and Exhibit A remain applicable.
|
| 35 |
+
IV. Additional Commercial Terms
|
| 36 |
+
1. You shall obtain a separate, prior written authorization from MiniMax by contacting api@minimax.io with the subject line “MiniMax H3 licensing - authorization request”, if your commercial products and services generate more than 20 million US dollars (or equivalent in other currencies) in yearly revenue.
|
| 37 |
+
2. You shall prominently display “MiniMax H3”on the user interface of commercial product or service that uses MiniMax H3 or MiniMax H3 Works.
|
| 38 |
+
V. Use Restrictions
|
| 39 |
+
1. Your use of the MiniMax H3 Works must comply with applicable laws and regulations (including trade-compliance laws and regulations) and must comply with the Acceptable Use Policy for the MiniMax H3 Works, which is incorporated into this Agreement by reference.
|
| 40 |
+
2. Before providing access to the MiniMax H3 Works or any product, service, or Hosted Service incorporating them, you must bind each recipient or user to enforceable terms at least as protective as the use restrictions in this Section V and Exhibit A, and you must notify each recipient or user that those restrictions apply.
|
| 41 |
+
3. You may not use the MiniMax H3 Works or any of their Outputs or results to improve any other artificial intelligence model (other than MiniMax H3 or its Model Derivatives).
|
| 42 |
+
4. You may not use, reproduce, modify, distribute, or display the MiniMax H3 Works or any of their Outputs or results outside the Applicable Territory. Any such use outside the Applicable Territory is not authorized by this Agreement.
|
| 43 |
+
5. If you provide or make available to any Third Party a product, service, or Hosted Service that permits the generation of Outputs using MiniMax H3 or any Model Derivative, you must, before making that product or service available and throughout its operation, implement, maintain, test, and periodically review reasonable and proportionate technical and organizational safeguards designed to prevent and mitigate access, uses, and Outputs that violate this Section V or Exhibit A, including uses or Outputs that infringe, misappropriate, or otherwise violate any Third Party’s intellectual-property or other rights. You must not knowingly disable, materially weaken, or permit the circumvention of those safeguards. You must maintain a reasonably accessible mechanism for reporting suspected violations. Upon receiving a good-faith report or otherwise obtaining actual knowledge of a violation, you must promptly investigate and take reasonable steps within your control to stop or mitigate the violation, including removing or disabling access to offending content or services and suspending or terminating repeat violators where appropriate. You are responsible for implementing and enforcing these requirements with respect to your products, services, systems, users, and downstream recipients.
|
| 44 |
+
VI. Intellectual Property
|
| 45 |
+
1. Subject to MiniMax’s rights in the MiniMax H3 Works (and the intellectual property therein), and to your compliance with the terms and conditions of this Agreement, as between you and MiniMax, you will own the derivative works and modifications of the Materials that you have created or had created, as well as any Model Derivatives.
|
| 46 |
+
2. Except for the limited license expressly granted in this paragraph, no trademark license is granted under this Agreement; with respect to MiniMax H3 Works, the Licensee may not use any name or mark owned by or associated with MiniMax or any of its affiliates, except as reasonably and customarily necessary to describe and distribute the MiniMax H3 Works. MiniMax hereby grants you a license to use the “MiniMax H3” mark (the “Mark”) within the Applicable Territory solely for the purpose of complying with Section III.3; provided, that you comply with all applicable trademark-protection laws. All goodwill arising from your use of the Mark shall inure to the benefit of MiniMax.
|
| 47 |
+
3. If you bring or assert any suit or other legal proceeding (including a cross-claim or counterclaim in any action) against us or any other natural or legal person alleging that the Materials, any Output, or any portion of the foregoing infringes any intellectual property right or other right owned by you or for which you can obtain a license, all licenses granted to you under this Agreement will terminate as of the date such suit or proceeding is filed. You shall defend, indemnify, and hold us harmless against any Third-Party claim arising out of or related to the use or distribution of the MiniMax H3 Works by you or by any Third Party.
|
| 48 |
+
4. MiniMax claims no rights over the Outputs you generate. You and your users are entirely responsible for the Outputs and any subsequent use thereof.
|
| 49 |
+
VII. Disclaimers and Limitations of Liability
|
| 50 |
+
1. We have no obligation to support, update, provide training for, or develop any further version of the MiniMax H3 Works, or to grant any license with respect thereto.
|
| 51 |
+
2. UNLESS AND ONLY TO THE EXTENT REQUIRED BY APPLICABLE LAW, THE MINIMAX H3 WORKS AND ANY OUTPUT AND RESULTS THEREFROM ARE PROVIDED “AS IS” WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND INCLUDING ANY WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, COURSE OF DEALING, USAGE OF TRADE, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING, REPRODUCING, MODIFYING, PERFORMING, DISPLAYING OR DISTRIBUTING ANY OF THE MINIMAX H3 WORKS OR OUTPUTS AND ASSUME ANY AND ALL RISKS ASSOCIATED WITH YOUR OR A THIRD PARTY’S USE OR DISTRIBUTION OF ANY OF THE MINIMAX H3 WORKS OR OUTPUTS AND YOUR EXERCISE OF RIGHTS AND PERMISSIONS UNDER THIS AGREEMENT.
|
| 52 |
+
3. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MINIMAX OR ITS AFFILIATES BE LIABLE UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, FOR ANY DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY, CONSEQUENTIAL OR PUNITIVE DAMAGES, OR LOST PROFITS OF ANY KIND ARISING FROM THIS AGREEMENT OR RELATED TO ANY OF THE MINIMAX H3 WORKS OR OUTPUTS, EVEN IF MINIMAX OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF ANY OF THE FOREGOING.
|
| 53 |
+
VIII. Term and Termination
|
| 54 |
+
1. This Agreement is effective from the moment you accept this Agreement or begin accessing the Materials, and, subject to your compliance with its terms and conditions, will remain in effect until terminated as provided herein.
|
| 55 |
+
2. If you breach any term or condition of this Agreement, we have the right to terminate this Agreement. Upon termination, you must immediately cease accessing, using, and distributing the MiniMax H3 Works; delete or destroy all copies within your possession or control; and notify each downstream recipient that your authorization has ended. The obligations in the preceding sentence and Sections VI.1, VI.3, VII, and IX survive termination.
|
| 56 |
+
IX. Governing Law and Jurisdiction
|
| 57 |
+
1. This Agreement, and any dispute arising out of or related to this Agreement, shall be governed by the laws of the Hong Kong Special Administrative Region of the People’s Republic of China, without regard to its conflict-of-laws rules. The United Nations Convention on Contracts for the International Sale of Goods does not apply to this Agreement.
|
| 58 |
+
2. Any dispute arising out of or related to this Agreement shall be subject to the exclusive jurisdiction of the courts of the Hong Kong Special Administrative Region of the People’s Republic of China with competent jurisdiction. Both MiniMax and the Licensee hereby consent to the exclusive jurisdiction of such courts for any such dispute.
|
| 59 |
+
Additional Note: Please note that the encoder of MiniMax H3 uses Qwen3-VL-32B, which is licensed under Apache 2.0 License: https://github.com/QwenLM/Qwen3-VL/blob/main/LICENSE.
|
| 60 |
+
|
| 61 |
+
Exhibit A — Acceptable Use Policy
|
| 62 |
+
MiniMax reserves the right to update this Acceptable Use Policy from time to time.
|
| 63 |
+
Last revised: August 2, 2026.
|
| 64 |
+
MiniMax is committed to promoting the safe and fair use of its tools and features, including MiniMax H3. You agree not to use MiniMax H3, any Model Derivatives, or any Output in any of the following ways:
|
| 65 |
+
1. Use outside the Applicable Territory;
|
| 66 |
+
2. Use in any manner that violates any applicable national, federal, state, local, or international law, regulation, or other legal requirement, or that infringes, misappropriates, or otherwise violates any Third Party’s intellectual-property or other proprietary rights, including through unauthorized reproduction, distribution, public display, public performance, or creation of derivative works;
|
| 67 |
+
3. Use in any manner that may harm yourself or others;
|
| 68 |
+
4. Use to repurpose or distribute the Outputs of MiniMax H3 or any Model Derivatives in order to harm yourself or others;
|
| 69 |
+
5. Use to circumvent or bypass any safety guardrails or safeguards we have implemented;
|
| 70 |
+
6. Use in any manner that exploits or harms, or intends to exploit or harm, minors;
|
| 71 |
+
7. Use to generate or disseminate verifiably false information and/or content for the purpose of harming others or influencing elections;
|
| 72 |
+
8. Use to manufacture or facilitate false online engagement, including fake reviews and other means of false online engagement;
|
| 73 |
+
9. Use to intentionally defame, disparage, or otherwise harass others;
|
| 74 |
+
10. Use to generate and/or disseminate malware (including ransomware) or any other content intended to damage electronic systems;
|
| 75 |
+
11. Use to generate or disseminate personally identifiable information for the purpose of harming others;
|
| 76 |
+
12. Use to generate or disseminate information (including images, code, posts, or articles) in or to any public environment (including via bot tweets or similar means) without clearly and prominently disclosing that such information and/or content is machine-generated;
|
| 77 |
+
13. Use to impersonate another person without that person’s consent, authorization, or lawful right to do so;
|
| 78 |
+
14. Use to make high-risk automated decisions in critical domains that affect individual safety, rights, or well-being (such as law enforcement, immigration, healthcare or medical services, critical-infrastructure management, product-safety components, essential services, credit, employment, housing, education, social scoring, or insurance);
|
| 79 |
+
15. Use in any manner that violates or disregards the social, ethical, or moral standards of other countries or regions;
|
| 80 |
+
16. Use to carry out, assist, threaten, incite, plan, advocate for, or encourage violent extremism or terrorism;
|
| 81 |
+
17. Use for any purpose intended to discriminate against, or harm, individuals or groups based on protected characteristics or categories, online or offline social behavior, or known or predicted personality traits;
|
| 82 |
+
18. Use to intentionally exploit the vulnerabilities of specific populations based on age, social, physical, or psychological characteristics, so as to materially distort the behavior of a member of that group in a manner that causes, or is likely to cause, physical or psychological harm to that person or to others;
|
| 83 |
+
19. Use for military purposes;
|
| 84 |
+
20. Use to engage in any unauthorized or unlicensed professional activity, including but not limited to financial, legal, medical or healthcare, or other professional practice.
|
NOTICE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MiniMax H3 is licensed under the MiniMax H3 Community License Agreement, Copyright © 2026 MiniMax. All Rights Reserved.
|
| 2 |
+
|
| 3 |
+
The HyperFlow H3 Flash weights in this repository are a Model Derivative of MiniMax-H3
|
| 4 |
+
(https://huggingface.co/MiniMaxAI/MiniMax-H3) as defined in Section I.11 of that Agreement. Video Rebirth created these
|
| 5 |
+
weights (Copyright 2026 Video Rebirth) and distributes them under the same MiniMax H3 Community License Agreement. A
|
| 6 |
+
copy of the Agreement is included in this repository as LICENSE.
|
| 7 |
+
|
| 8 |
+
Modifications from MiniMax H3 (Section III.2):
|
| 9 |
+
- fl2va_int8_convrot/ and ref2va_int8_convrot/: The transformer weights are pruned, low-rank factored, and quantized to
|
| 10 |
+
rotated W8A8 INT8.
|
| 11 |
+
- fl2va_gguf/ and ref2va_gguf/: The compressed transformer weights are converted to the stable-diffusion.cpp tensor
|
| 12 |
+
layout and quantized to GGUF.
|
| 13 |
+
- hyperflow_h3_flash_transformer.py: Modified from the diffusers MiniMax-H3 transformer (paired with
|
| 14 |
+
hyperflow_h3_flash_int8.py for rotated INT8 linear layers).
|
| 15 |
+
- The upstream text encoder, VAEs, tokenizer, and processor are not redistributed here and remain the official
|
| 16 |
+
MiniMax-H3 files.
|
| 17 |
+
|
| 18 |
+
HyperFlow H3 Flash is not an official MiniMax product and is not affiliated with or endorsed by MiniMax.
|
| 19 |
+
Powered by MiniMax H3.
|
README.md
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: minimax-h3-community-license-agreement
|
| 4 |
+
license_link: LICENSE
|
| 5 |
+
base_model:
|
| 6 |
+
- MiniMaxAI/MiniMax-H3
|
| 7 |
+
language:
|
| 8 |
+
- en
|
| 9 |
+
- zh
|
| 10 |
+
library_name: minimax-h3
|
| 11 |
+
pipeline_tag: image-text-to-video
|
| 12 |
+
tags:
|
| 13 |
+
- hyperflow-h3
|
| 14 |
+
- minimax-h3
|
| 15 |
+
- audio-video-generation
|
| 16 |
+
- text-to-video
|
| 17 |
+
- image-to-video
|
| 18 |
+
- reference-to-video
|
| 19 |
+
- few-step
|
| 20 |
+
- int8
|
| 21 |
+
- gguf
|
| 22 |
+
- comfyui
|
| 23 |
+
- stable-diffusion.cpp
|
| 24 |
+
- unsloth
|
| 25 |
+
---
|
| 26 |
+
|
| 27 |
+
# HyperFlow H3 Flash (14B)
|
| 28 |
+
|
| 29 |
+
> By downloading or using these weights, you accept the [MiniMax H3 Community License Agreement](LICENSE). The Agreement restricts territory (not licensed in the EU, UK, South Korea, or the US without prior authorization from MiniMax) and includes an Acceptable Use Policy. See [License](#license). This repository is not an official MiniMax product.
|
| 30 |
+
|
| 31 |
+
HyperFlow H3 Flash is [Video Rebirth](https://www.videorebirth.com/)'s compressed, few-step version of [MiniMax-H3](https://huggingface.co/MiniMaxAI/MiniMax-H3). It generates video and synchronized stereo audio together.
|
| 32 |
+
|
| 33 |
+
**Showcase:** See [HyperFlow H3 Flash generated video and audio examples](https://www.videorebirth.com/lp/hyperflow-flash).
|
| 34 |
+
|
| 35 |
+
- **Output:** a 5.2 to 15 s video at 24 fps (1344×768 by default) with a 32 kHz stereo soundtrack.
|
| 36 |
+
- **Sampling:** 4, 6, or 8 steps without classifier-free guidance (CFG). The default is 6 steps.
|
| 37 |
+
- **Speed (5.2 s clip, 6 steps):** 8.7 s on 4× B200, 36 s on 1× H200, and 92 s on an RTX 5090.
|
| 38 |
+
- **Real time on 4× Blackwell GPUs:** [NVIDIA SOL-H3](https://github.com/NVlabs/Sana/tree/sol-engine/models/minimax_h3/HyperFlow-Flash) runs HyperFlow H3 Flash in real time on 4× B-series GPUs. SOL-H3 is our inference-acceleration partner and supports this model from day 0.
|
| 39 |
+
- **Model size:** 13.7B (`fl2va`) or 13.9B (`ref2va`) parameters, less than half of the ~31B MiniMax-H3 transformer.
|
| 40 |
+
- **Minimum footprint:** `Q4_K_M` is **9.1 GB** (`Q8_0` is **14.9 GB**). It runs on 24 GB and 32 GB GPUs in PCs with 16 GB of system RAM. 16 GB GPUs are not measured yet.
|
| 41 |
+
|
| 42 |
+
Code, setup guides, and ComfyUI workflows are in [`Video-Rebirth/hyperflow-h3-flash`](https://github.com/Video-Rebirth/hyperflow-h3-flash). For the 8-step LoRA on the full-size MiniMax-H3 transformer, see [`VideoRebirthAI/hyperflow`](https://huggingface.co/VideoRebirthAI/hyperflow) ([GitHub](https://github.com/Video-Rebirth/hyperflow)).
|
| 43 |
+
|
| 44 |
+
### Supported Tasks
|
| 45 |
+
|
| 46 |
+
| Task | Input | Hub partition | ComfyUI template | GGUF support | Python INT8 support |
|
| 47 |
+
|---|---|---|---|---|---|
|
| 48 |
+
| `t2va` | Text prompt | `fl2va_*` | `hyperflow_t2v` | Yes | Yes |
|
| 49 |
+
| `fl2va` | Prompt + first keyframe, or first and last keyframes | `fl2va_*` | `hyperflow_i2v`, `hyperflow_flf2v` | Yes | Yes |
|
| 50 |
+
| `ref2va` | Prompt + up to 12 references | `ref2va_*` | `hyperflow_ref2v` | Images only | Images, videos, and audio |
|
| 51 |
+
|
| 52 |
+
---
|
| 53 |
+
|
| 54 |
+
## Choose a Weight Format
|
| 55 |
+
|
| 56 |
+
**Decision rule:** Use **GGUF** on any PC with 64 GB of system RAM or less. Use **INT8 convrot** on data-center GPUs, or on 24 GB+ RTX GPUs with at least 69 GiB of system RAM.
|
| 57 |
+
|
| 58 |
+
| Feature | GGUF | INT8 convrot |
|
| 59 |
+
|---|---|---|
|
| 60 |
+
| **Hub folders** | `fl2va_gguf/`, `ref2va_gguf/` | `fl2va_int8_convrot/`, `ref2va_int8_convrot/` |
|
| 61 |
+
| **Precision & size** | `Q3_K_M` to `Q8_0` (7.2–15.2 GB) | W8A8 INT8 + low-rank (~16 GB) |
|
| 62 |
+
| **Runtime** | ComfyUI, Unsloth Studio, `stable-diffusion.cpp` | [`hyperflow-h3-flash`](https://github.com/Video-Rebirth/hyperflow-h3-flash) CLI and `diffusers` |
|
| 63 |
+
| **Target GPU** | Consumer GPUs; measured on **24 GB and 32 GB** RTX GPUs (16 GB GPUs not measured yet) | **H100 / H200 / B200 / B300** (1–8 GPUs), or **24 GB+ RTX GPUs** |
|
| 64 |
+
| **System RAM** | **16 GB+** | **~16 GiB** without offload; **≥ 69 GiB** (`fp8` text encoder) or **≥ 91 GiB** (`bf16`) with offload |
|
| 65 |
+
| **`ref2va` inputs** | Images | Images, videos, and audio |
|
| 66 |
+
|
| 67 |
+
---
|
| 68 |
+
|
| 69 |
+
## Repository Layout and Companion Files
|
| 70 |
+
|
| 71 |
+
```text
|
| 72 |
+
fl2va_int8_convrot/ config.json, diffusion_pytorch_model-0000{1..3}-of-00003.safetensors (+ index), model code
|
| 73 |
+
ref2va_int8_convrot/ config.json, diffusion_pytorch_model-0000{1..4}-of-00004.safetensors (+ index), model code
|
| 74 |
+
fl2va_gguf/ minimax_h3_fl2va_hyperflow_flash_14b-<QUANT>.gguf (6 quant levels)
|
| 75 |
+
ref2va_gguf/ minimax_h3_ref2va_hyperflow_flash_14b-<QUANT>.gguf (6 quant levels)
|
| 76 |
+
```
|
| 77 |
+
|
| 78 |
+
This repository stores only the compressed transformers (`transformer` for `fl2va`, `transformer_ref` for `ref2va`). Each runtime loads the shared text encoder, video VAE, audio VAE, tokenizer, and processor from their upstream repositories:
|
| 79 |
+
|
| 80 |
+
| Runtime | Companion text encoder and VAEs |
|
| 81 |
+
|---|---|
|
| 82 |
+
| **`hyperflow-h3-flash` (Python)** | Downloads automatically from [`MiniMaxAI/MiniMax-H3`](https://huggingface.co/MiniMaxAI/MiniMax-H3), or from [`Qwen/Qwen3-VL-32B-Instruct-FP8`](https://huggingface.co/Qwen/Qwen3-VL-32B-Instruct-FP8) with `--text-encoder-precision fp8`. Never downloads the 62 GB base transformer. |
|
| 83 |
+
| **ComfyUI & stable-diffusion.cpp** | [`Comfy-Org/MiniMax-H3`](https://huggingface.co/Comfy-Org/MiniMax-H3): `text_encoders/qwen3vl_32b_minimax_h3_*.safetensors` (`nvfp4_awq` 15.7 GB, `int8_convrot` 27.1 GB, or `bf16` 51.5 GB), `vae/minimax_h3_video_vae_fp16.safetensors`, `vae/minimax_h3_audio_vae_fp32.safetensors` |
|
| 84 |
+
| **Unsloth Studio** | Downloads automatically from [`unsloth/MiniMax-H3-GGUF`](https://huggingface.co/unsloth/MiniMax-H3-GGUF) |
|
| 85 |
+
|
| 86 |
+
---
|
| 87 |
+
|
| 88 |
+
## GGUF (ComfyUI, Unsloth Studio, stable-diffusion.cpp)
|
| 89 |
+
|
| 90 |
+
| Quant | `fl2va_gguf/` | `ref2va_gguf/` | Recipe | When to use |
|
| 91 |
+
|---|---:|---:|---|---|
|
| 92 |
+
| **`Q4_K_M`** | **9.1 GB** | **9.2 GB** | `Q4_K` (lifted layers `Q6_K`) | **Recommended default for 24 GB GPUs** |
|
| 93 |
+
| `Q8_0` | 14.9 GB | 15.2 GB | `Q8_0` | Closest to full precision when VRAM and RAM fit |
|
| 94 |
+
| `Q6_K` | 11.6 GB | 11.8 GB | `Q6_K` | High quality, smaller than `Q8_0` |
|
| 95 |
+
| `Q5_K_M` | 10.3 GB | 10.5 GB | `Q5_K` (lifted layers `Q6_K`) | Balanced intermediate quant |
|
| 96 |
+
| `Q4_K_S` | 8.0 GB | 8.1 GB | `Q4_K` | Compact 4-bit quant |
|
| 97 |
+
| `Q3_K_M` | 7.2 GB | 7.4 GB | `Q3_K` (lifted layers `Q5_K`) | Smallest footprint |
|
| 98 |
+
|
| 99 |
+
Full setup instructions are in [`integrations/README.md`](https://github.com/Video-Rebirth/hyperflow-h3-flash/blob/main/integrations/README.md). Summary:
|
| 100 |
+
|
| 101 |
+
- **ComfyUI:**
|
| 102 |
+
1. Clone [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) and [ComfyUI-HyperFlow-Flash](https://github.com/Video-Rebirth/ComfyUI-HyperFlow-Flash) into `ComfyUI/custom_nodes/`.
|
| 103 |
+
2. Put the `.gguf` file in `models/diffusion_models/` and download the 15.7 GB `qwen3vl_32b_minimax_h3_nvfp4_awq` text encoder.
|
| 104 |
+
3. On 16 GB or 32 GB RAM PCs, start ComfyUI with `python main.py --fast-disk`.
|
| 105 |
+
4. Open **Workflow > Browse Templates > ComfyUI-HyperFlow-Flash** and select `hyperflow_t2v`, `hyperflow_i2v`, `hyperflow_flf2v`, or `hyperflow_ref2v`.
|
| 106 |
+
- **Unsloth Studio:** Point `SD_CLI_PATH` at the patched `sd-cli` binary (`export SD_CLI_PATH=/path/to/stable-diffusion.cpp/build/bin/sd-cli`), run `unsloth studio`, and load `VideoRebirthAI/hyperflow-h3-flash` (`fl2va_gguf/` or `ref2va_gguf/`). Studio downloads the companion files and runs the 6-step schedule at `CFG = 1`.
|
| 107 |
+
- **stable-diffusion.cpp:** Apply [`integrations/stable-diffusion.cpp/hyperflow-two-time.patch`](https://github.com/Video-Rebirth/hyperflow-h3-flash/tree/main/integrations/stable-diffusion.cpp) to upstream commit `3be2378`, build, and run:
|
| 108 |
+
```bash
|
| 109 |
+
sd-cli -M vid_gen \
|
| 110 |
+
--diffusion-model minimax_h3_fl2va_hyperflow_flash_14b-Q4_K_M.gguf \
|
| 111 |
+
--llm qwen3vl_32b_minimax_h3_bf16.safetensors \
|
| 112 |
+
--vae minimax_h3_video_vae_fp16.safetensors \
|
| 113 |
+
--audio-vae minimax_h3_audio_vae_fp32.safetensors \
|
| 114 |
+
--sampling-method euler --cfg-scale 1.0 --steps 6 \
|
| 115 |
+
-W 1344 -H 768 --video-frames 124 --fps 24 -s 42 \
|
| 116 |
+
-p "A chef slides a steaming bowl of ramen across a wooden counter; rain taps on the window." \
|
| 117 |
+
-o output.webm
|
| 118 |
+
```
|
| 119 |
+
Add `-i first.png` (and `--end-img last.png`) for keyframes. Use `minimax_h3_ref2va_...` with `--ref-image a.png --ref-image b.png` for reference images. Add `--offload-to-cpu` on smaller GPUs.
|
| 120 |
+
|
| 121 |
+
---
|
| 122 |
+
|
| 123 |
+
## INT8 convrot (`hyperflow-h3-flash` & `diffusers`)
|
| 124 |
+
|
| 125 |
+
### Install
|
| 126 |
+
|
| 127 |
+
```bash
|
| 128 |
+
pip install git+https://github.com/Video-Rebirth/hyperflow-h3-flash
|
| 129 |
+
pip install "hyperflow-h3-flash[hopper] @ git+https://github.com/Video-Rebirth/hyperflow-h3-flash" # H100 / H200: FlashAttention-3
|
| 130 |
+
pip install "hyperflow-h3-flash[fp8] @ git+https://github.com/Video-Rebirth/hyperflow-h3-flash" # --text-encoder-precision fp8
|
| 131 |
+
```
|
| 132 |
+
|
| 133 |
+
- **Requirements:** Python 3.10+, PyTorch 2.6+ with CUDA and Triton (`pip install triton-windows` on native Windows), an Ampere or newer NVIDIA GPU, and `diffusers >= 0.40`. Multi-GPU (`--gpus` > 1) requires Linux or WSL2.
|
| 134 |
+
- **First run:** Downloads ~90 GB (~68 GB with `--text-encoder-precision fp8`), covering the text encoder, VAEs, and the 16 GB INT8 transformer for the selected task. Triton INT8 kernels compile on first use (~1 min).
|
| 135 |
+
|
| 136 |
+
### Command Line
|
| 137 |
+
|
| 138 |
+
```bash
|
| 139 |
+
# Text to video + audio (t2va)
|
| 140 |
+
hyperflow-h3-flash --prompt "A chef slides a steaming bowl of ramen across a wooden counter; rain taps on the window." \
|
| 141 |
+
--output ramen.mp4
|
| 142 |
+
|
| 143 |
+
# First keyframe, or first + last keyframe (fl2va)
|
| 144 |
+
hyperflow-h3-flash --prompt "..." --image first.png --last-image last.png --output clip.mp4
|
| 145 |
+
|
| 146 |
+
# Reference images, videos, and audio clips in prompt order (ref2va)
|
| 147 |
+
hyperflow-h3-flash --prompt "<Picture 1> walks through the scene of <Picture 2> ..." \
|
| 148 |
+
--reference person.png --reference scene.png --output clip.mp4
|
| 149 |
+
|
| 150 |
+
# 15 s clip across 4 GPUs; or fp8 text encoder to save ~22 GiB system RAM when offloading
|
| 151 |
+
hyperflow-h3-flash --prompt "..." --num-frames 360 --gpus 4
|
| 152 |
+
hyperflow-h3-flash --prompt "..." --steps 4 --text-encoder-precision fp8
|
| 153 |
+
```
|
| 154 |
+
|
| 155 |
+
| Option | Values (default) | Description |
|
| 156 |
+
|---|---|---|
|
| 157 |
+
| `--steps` | `4`, `6` (`6`), `8` | `4` for speed, `6` balanced, `8` for quality |
|
| 158 |
+
| `--num-frames` | `124`–`362` (`124`) | 5.2 to 15 s at 24 fps; rounds up to `17n + 5` |
|
| 159 |
+
| `--gpus` | `1`, `2`, `4`, `7`, `8`, `auto` | Context and VAE tile parallelism under `torchrun` |
|
| 160 |
+
| `--offload` | `auto` (`auto`), `none`, `model`, `stream` | `none` needs ≥ 90 GiB VRAM; `model`/`stream` need ≥ 91 GiB RAM (`bf16`) or ≥ 69 GiB (`fp8`) |
|
| 161 |
+
| `--text-encoder-precision` | `bf16` (`bf16`), `fp8` | `fp8` saves ~22 GiB system RAM when offloading (requires `[fp8]`) |
|
| 162 |
+
| `--attention` | `auto` (`auto`), `sdpa`, `fa3` | Uses FlashAttention-3 (`fa3`) on Hopper when `kernels` is installed |
|
| 163 |
+
| `--block-chunk` | `0` (`0`), `16384`, ... | Slice token-wise block ops (`--block-chunk 16384` fits 15 s mixed `ref2va` on 24 GB GPUs) |
|
| 164 |
+
|
| 165 |
+
### Python API (`load_pipeline`)
|
| 166 |
+
|
| 167 |
+
```python
|
| 168 |
+
import torch
|
| 169 |
+
from diffusers.utils.export_utils import encode_video
|
| 170 |
+
from hyperflow_h3_flash import load_pipeline
|
| 171 |
+
|
| 172 |
+
pipe = load_pipeline("t2va") # "fl2va": pass image=... (and last_image=...); "ref2va": pass references=[...]
|
| 173 |
+
out = pipe(
|
| 174 |
+
prompt="A chef slides a steaming bowl of ramen across a wooden counter; rain taps on the window.",
|
| 175 |
+
num_frames=124,
|
| 176 |
+
num_inference_steps=6, # 4, 6, or 8
|
| 177 |
+
generator=torch.Generator().manual_seed(0),
|
| 178 |
+
output=["videos", "audio", "sampling_rate"],
|
| 179 |
+
)
|
| 180 |
+
encode_video(
|
| 181 |
+
out["videos"][0],
|
| 182 |
+
fps=24,
|
| 183 |
+
output_path="ramen.mp4",
|
| 184 |
+
audio=out["audio"][0],
|
| 185 |
+
audio_sample_rate=out["sampling_rate"],
|
| 186 |
+
)
|
| 187 |
+
```
|
| 188 |
+
|
| 189 |
+
### Standalone Transformer (`AutoModel`)
|
| 190 |
+
|
| 191 |
+
Each INT8 folder ships `hyperflow_h3_flash_transformer.py` and `hyperflow_h3_flash_int8.py`. `AutoModel` loads the transformer without installing `hyperflow-h3-flash`:
|
| 192 |
+
|
| 193 |
+
```python
|
| 194 |
+
import torch
|
| 195 |
+
from diffusers import AutoModel
|
| 196 |
+
|
| 197 |
+
model = AutoModel.from_pretrained(
|
| 198 |
+
"VideoRebirthAI/hyperflow-h3-flash",
|
| 199 |
+
subfolder="fl2va_int8_convrot", # or "ref2va_int8_convrot"
|
| 200 |
+
trust_remote_code=True,
|
| 201 |
+
torch_dtype=torch.bfloat16,
|
| 202 |
+
)
|
| 203 |
+
model.pad_lowrank_ranks() # pad low-rank dimensions to multiples of 64 for aligned GEMMs
|
| 204 |
+
model.to("cuda")
|
| 205 |
+
|
| 206 |
+
# Optional on Hopper GPUs (requires `pip install kernels`):
|
| 207 |
+
model.set_attention_backend("_flash_3_hub")
|
| 208 |
+
```
|
| 209 |
+
|
| 210 |
+
> Note: The transformer requires `endpoint_timestep` on every forward pass for two-time `(t, r)` conditioning. Use `load_pipeline` or `hyperflow_h3_flash.flash_blocks` to run the full sampling loop.
|
| 211 |
+
|
| 212 |
+
---
|
| 213 |
+
|
| 214 |
+
## Benchmarks and Memory
|
| 215 |
+
|
| 216 |
+
All benchmarks measure end-to-end generation (text encoding, 6-step transformer, and video and audio VAE decode) at **1344×768 and 6 steps**. Clip lengths: `5.2 s` = 124 frames; `15 s` = 362 frames.
|
| 217 |
+
|
| 218 |
+
### 1. Consumer RTX GPUs (`5.2 s / 15 s` total time)
|
| 219 |
+
|
| 220 |
+
| GPU | GGUF `Q4_K_M` (ComfyUI)<br>≥ 64 GB RAM | GGUF `--fast-disk`<br>32 GB PC | GGUF `--fast-disk`<br>16 GB PC | INT8 (`hyperflow-h3-flash`)¹<br>`--offload stream` |
|
| 221 |
+
|---|---|---|---|---|
|
| 222 |
+
| **RTX 5090 (32 GB)** | 99 s / 575 s | 118 s / 618 s | 130 s / 615 s | 92 s / 551 s |
|
| 223 |
+
| **RTX 4090 (24 GB)** | 157 s / 830 s | 151 s / 815 s | 153 s / 812 s | 130 s / 750 s |
|
| 224 |
+
| **RTX 3090 (24 GB)** | 315 s / 1835 s | 318 s / 1869 s | 325 s / 1866 s | 266 s / 1684 s |
|
| 225 |
+
| *Peak VRAM (5.2 s / 15 s)* | *5090: 28 / 27 GiB; 24 GB: 23 / 22 GiB* | *same as ≥ 64 GB* | *same as ≥ 64 GB* | *12.0–12.5 / 21.8–22.4 GiB* |
|
| 226 |
+
|
| 227 |
+
- **GGUF columns:** Use the 15.7 GB `nvfp4_awq` text encoder. `--fast-disk` streams unresident weights from the OS file page cache instead of pinned RAM, keeping anonymous RSS at ~8–16 GiB.
|
| 228 |
+
- **¹ INT8 column:** Requires ≥ 91 GiB system RAM with the `bf16` text encoder, or ~69 GiB with `--text-encoder-precision fp8`.
|
| 229 |
+
|
| 230 |
+
**Reference to video (`ref2va`) on one RTX GPU (`5.2 s / 15 s` total time):**
|
| 231 |
+
|
| 232 |
+
| GPU | INT8, 2 images | INT8, mixed² | GGUF `match`, 2 images | GGUF `max`, 2 images |
|
| 233 |
+
|---|---|---|---|---|
|
| 234 |
+
| **RTX 5090 (32 GB)** | 266 s / 914 s | 503 s / 1318 s | 135 s / 660 s | 295 s / 995 s³ |
|
| 235 |
+
| **RTX 4090 (24 GB)** | 319 s / 1167 s | 630 s / 1702 s⁴ | 194 s / 885 s | 398 s / 1275 s³ |
|
| 236 |
+
| **RTX 3090 (24 GB)** | 726 s / 2763 s | 1441 s / 4033 s⁴ | 401 s / 2059 s | 885 s / 2995 s³ |
|
| 237 |
+
|
| 238 |
+
- **² Mixed:** One reference image, one 5.2 s reference video with soundtrack, and one audio clip. **³** Start ComfyUI with `--disable-cuda-malloc` for `max` at 15 s. **⁴** Pass `--block-chunk 16384` on 24 GB GPUs for 15 s mixed `ref2va`. On 32 GB / 16 GB PCs with `--fast-disk`, 2-image `ref2v` (`match`) runs in `139 s / 663 s` and `157 s / 684 s` on RTX 5090, `180 s / 866 s` and `178 s / 876 s` on RTX 4090, and `385 s / 2010 s` and `384 s / 2025 s` on RTX 3090.
|
| 239 |
+
|
| 240 |
+
### 2. Data-Center GPUs (`hyperflow-h3-flash` INT8)
|
| 241 |
+
|
| 242 |
+
| GPUs | `--offload` | 5.2 s (124 frames) | 15 s (362 frames) | Peak VRAM / GPU (5.2 s / 15 s) | System RAM / GPU |
|
| 243 |
+
|---|---|---|---|---|---|
|
| 244 |
+
| 1× H200 (141 GB) | `none` | 36 s | 229 s | 80 / 91 GiB | 16 GiB |
|
| 245 |
+
| 2× H200 (141 GB) | `none` | 24 s | 119 s | — / 71 GiB | 16 GiB |
|
| 246 |
+
| 4× H200 (141 GB) | `none` | 12.6 s | 66 s | 47 / 59 GiB | 16 GiB |
|
| 247 |
+
| 4× B200 | `none` | 8.7 s | — | 46 GiB | 16 GiB |
|
| 248 |
+
|
| 249 |
+
The table measures the `hyperflow-h3-flash` package. For real time on 4× B-series GPUs, use [NVIDIA SOL-H3](https://github.com/NVlabs/Sana/tree/sol-engine/models/minimax_h3/HyperFlow-Flash).
|
| 250 |
+
|
| 251 |
+
---
|
| 252 |
+
|
| 253 |
+
## Step Schedules and Prompting
|
| 254 |
+
|
| 255 |
+
### Step Grids
|
| 256 |
+
|
| 257 |
+
Both partitions and both weight formats share three unshifted sigma grids (`video_shift = 12`, `audio_shift = 3`):
|
| 258 |
+
|
| 259 |
+
| Steps | Mode | Raw sigmas |
|
| 260 |
+
|---:|---|---|
|
| 261 |
+
| `4` | Speed | `1, 0.681872, 0.205019, 0.036496, 0` |
|
| 262 |
+
| `6` | Balanced (default) | `1, 0.825217, 0.471725, 0.147401, 0.049626, 0.015517, 0` |
|
| 263 |
+
| `8` | Quality | `1, 0.931506, 0.839236, 0.703462, 0.5, 0.296538, 0.160764, 0.068494, 0` |
|
| 264 |
+
|
| 265 |
+
### Prompts
|
| 266 |
+
|
| 267 |
+
- Describe the subject, action, setting, camera movement, and sound in one prompt. Do not use a negative prompt (`CFG = 1.0`).
|
| 268 |
+
- For `ref2va`, name inputs in prompt order as `<Picture i>`, `<Video i>`, and `<Audio i>`. Limits: 9 images, 3 videos, 3 audio clips, and 12 references total. Audio references require at least one image or video reference. GGUF runtimes accept image references only; video and audio references require the Python package.
|
| 269 |
+
|
| 270 |
+
---
|
| 271 |
+
|
| 272 |
+
## How It Works
|
| 273 |
+
|
| 274 |
+
1. **Structural pruning and low-rank factorization:** `fl2va` drops 3 of 50 blocks (6, 21, 22) and factors 102 linear layers (13.7B parameters). `ref2va` drops 1 of 50 blocks (9) and factors 114 linear layers (13.9B parameters).
|
| 275 |
+
2. **Rotated W8A8 INT8 (`convrot`):** 180 linear layers are quantized to W8A8 INT8 behind a block-diagonal Hadamard rotation. Kernels dispatch to fused Triton (`sm_80`–`sm_90`, `sm_120`), `cuBLASLt` INT8 (`sm_100`), or BF16 tensor cores (`sm_103` B300).
|
| 276 |
+
3. **Two-time `(t, r)` conditioning:** Every token receives the current noise level `t` and the step endpoint `r`. This enables 4-to-8-step sampling without CFG.
|
| 277 |
+
|
| 278 |
+
---
|
| 279 |
+
|
| 280 |
+
## Acknowledgements
|
| 281 |
+
|
| 282 |
+
Thanks to the MiniMax team for releasing [MiniMax-H3](https://huggingface.co/MiniMaxAI/MiniMax-H3), to [Unsloth](https://huggingface.co/unsloth/MiniMax-H3-GGUF) for the MiniMax-H3 GGUF layout and naming convention, to [`WAS/Minimax-h3_Singularity_v2_pruned`](https://huggingface.co/WAS/Minimax-h3_Singularity_v2_pruned) for pioneering rotated INT8 on MiniMax-H3, and to [stable-diffusion.cpp](https://github.com/leejet/stable-diffusion.cpp), [ComfyUI](https://github.com/Comfy-Org/ComfyUI), and [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF).
|
| 283 |
+
|
| 284 |
+
## Intended Use and Limitations
|
| 285 |
+
|
| 286 |
+
- HyperFlow H3 Flash provides fast, reduced-memory joint video and stereo audio generation across data-center and consumer GPUs (4–8 steps, 7.2–16 GB transformer weights).
|
| 287 |
+
- Prompt adherence, supported languages, biases, and failure modes follow the [MiniMax-H3 base model](https://huggingface.co/MiniMaxAI/MiniMax-H3).
|
| 288 |
+
- Every use of these weights is bound by the license terms below, including territorial restrictions and the Acceptable Use Policy.
|
| 289 |
+
|
| 290 |
+
## License
|
| 291 |
+
|
| 292 |
+
The transformer weights in this repository (both INT8 convrot and GGUF) are a Model Derivative of MiniMax-H3 and are distributed under the [MiniMax H3 Community License Agreement](LICENSE) with no additional terms. By downloading or using them, you accept that Agreement:
|
| 293 |
+
|
| 294 |
+
- **Territory:** Licensed worldwide **excluding the European Union, the United Kingdom, the Republic of Korea, and the United States of America**. Individuals and organizations in those jurisdictions must obtain MiniMax's prior authorization before downloading ([application form](https://platform.minimax.io/h3-license); [License Q&A](https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/docs/QA-about-License.md)).
|
| 295 |
+
- **Redistribution:** Include a copy of the Agreement and the [`NOTICE`](NOTICE) file, clearly mark modified files, and do not impose additional or different terms (Section III).
|
| 296 |
+
- **AI-Generated Content Disclosure:** Publicly distributed content generated with these weights must be clearly disclosed as AI-generated (Acceptable Use Policy, item 12).
|
| 297 |
+
- **Commercial Use:** Products or services exceeding $20 million USD in annual revenue require prior written authorization from MiniMax (`api@minimax.io`). Products and services built with the weights must prominently display `"MiniMax H3"` on their user interface (Section IV.2).
|
| 298 |
+
- **Hosted Services & Use Restrictions:** Hosted services must implement the safeguards in Section V.5 and bind end users to Section V and the Acceptable Use Policy (Exhibit A). Outputs may not be used to train or improve other AI models.
|
| 299 |
+
- **Upstream Text:** [`LICENSE`](LICENSE) reproduces the August 2, 2026 Agreement text; the version in the [upstream repository](https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/LICENSE) governs.
|
| 300 |
+
|
| 301 |
+
See [`NOTICE`](NOTICE) for the architectural and numerical modifications from MiniMax-H3. The inference code on [GitHub](https://github.com/Video-Rebirth/hyperflow-h3-flash) is licensed separately under Apache-2.0 (ComfyUI custom node under GPL-3.0; `stable-diffusion.cpp` patch under MIT).
|
| 302 |
+
|
| 303 |
+
HyperFlow H3 Flash is developed by Video Rebirth and is not an official MiniMax product. Powered by MiniMax H3.
|
fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q3_K_M.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f43bf830bb0097046eb6332c7aa95ede02885f0485e989f98031928b7bcd3d06
|
| 3 |
+
size 7215807072
|
fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q4_K_M.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ee251661dffdebfa4a8c2555d2967b642f0efe9f2e350830a6e5c691935e23c3
|
| 3 |
+
size 9053456480
|
fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q4_K_S.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6fc38b0bf62505811bc009cd22345a03f213ee2c8a7ffb342f993036e75024b6
|
| 3 |
+
size 8011480160
|
fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q5_K_M.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a3173754d6b62df6faab50f86b97d7117b525f16db66b5715b33a92e177578e0
|
| 3 |
+
size 10277808224
|
fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q6_K.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9870823daa5238e0e33a1661b82e59f8fad18ed281ae4bc19c5b5945b0556b74
|
| 3 |
+
size 11578681952
|
fl2va_gguf/minimax_h3_fl2va_hyperflow_flash_14b-Q8_0.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9b7aebc17bd1be998bb82aa65409514c85e97e7b63559b75f206c44db17f7b2b
|
| 3 |
+
size 14929689696
|
fl2va_int8_convrot/config.json
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "HyperFlowH3FlashTransformer3DModel",
|
| 3 |
+
"_diffusers_version": "0.36.0.dev0",
|
| 4 |
+
"num_attention_heads": 56,
|
| 5 |
+
"attention_head_dim": 128,
|
| 6 |
+
"hidden_size": 5376,
|
| 7 |
+
"num_layers": 50,
|
| 8 |
+
"num_refiner_layers": 2,
|
| 9 |
+
"ffn_dim": 14336,
|
| 10 |
+
"in_channels": 24,
|
| 11 |
+
"audio_in_channels": 32,
|
| 12 |
+
"patch_size": [
|
| 13 |
+
1,
|
| 14 |
+
2,
|
| 15 |
+
2
|
| 16 |
+
],
|
| 17 |
+
"text_dim": 5120,
|
| 18 |
+
"freq_dim": 256,
|
| 19 |
+
"time_embed_hidden_dim": 5376,
|
| 20 |
+
"time_embed_dim": 16,
|
| 21 |
+
"rope_freq_dim": 16,
|
| 22 |
+
"rope_theta": 10000.0,
|
| 23 |
+
"norm_eps": 1e-05,
|
| 24 |
+
"qk_norm_eps": 1e-05,
|
| 25 |
+
"final_norm_eps": 1e-05,
|
| 26 |
+
"hyperflow_gate": 0.25,
|
| 27 |
+
"lowrank_ranks": {
|
| 28 |
+
"transformer_blocks.1.attn.to_k": 670,
|
| 29 |
+
"transformer_blocks.1.attn.to_out.0": 1731,
|
| 30 |
+
"transformer_blocks.1.attn.to_q": 743,
|
| 31 |
+
"transformer_blocks.1.attn.to_v": 836,
|
| 32 |
+
"transformer_blocks.1.ff.net.0.proj": 1642,
|
| 33 |
+
"transformer_blocks.1.ff.net.2": 2450,
|
| 34 |
+
"transformer_blocks.10.attn.to_k": 273,
|
| 35 |
+
"transformer_blocks.10.attn.to_out.0": 388,
|
| 36 |
+
"transformer_blocks.10.attn.to_q": 265,
|
| 37 |
+
"transformer_blocks.10.attn.to_v": 448,
|
| 38 |
+
"transformer_blocks.10.ff.net.0.proj": 335,
|
| 39 |
+
"transformer_blocks.10.ff.net.2": 1478,
|
| 40 |
+
"transformer_blocks.11.attn.to_k": 256,
|
| 41 |
+
"transformer_blocks.11.attn.to_out.0": 410,
|
| 42 |
+
"transformer_blocks.11.attn.to_q": 264,
|
| 43 |
+
"transformer_blocks.11.attn.to_v": 445,
|
| 44 |
+
"transformer_blocks.11.ff.net.0.proj": 361,
|
| 45 |
+
"transformer_blocks.11.ff.net.2": 456,
|
| 46 |
+
"transformer_blocks.12.attn.to_k": 145,
|
| 47 |
+
"transformer_blocks.12.attn.to_out.0": 201,
|
| 48 |
+
"transformer_blocks.12.attn.to_q": 155,
|
| 49 |
+
"transformer_blocks.12.attn.to_v": 300,
|
| 50 |
+
"transformer_blocks.12.ff.net.0.proj": 210,
|
| 51 |
+
"transformer_blocks.12.ff.net.2": 1082,
|
| 52 |
+
"transformer_blocks.13.attn.to_k": 559,
|
| 53 |
+
"transformer_blocks.13.attn.to_out.0": 696,
|
| 54 |
+
"transformer_blocks.13.attn.to_q": 565,
|
| 55 |
+
"transformer_blocks.13.attn.to_v": 790,
|
| 56 |
+
"transformer_blocks.13.ff.net.0.proj": 734,
|
| 57 |
+
"transformer_blocks.13.ff.net.2": 2,
|
| 58 |
+
"transformer_blocks.14.attn.to_k": 238,
|
| 59 |
+
"transformer_blocks.14.attn.to_out.0": 357,
|
| 60 |
+
"transformer_blocks.14.attn.to_q": 258,
|
| 61 |
+
"transformer_blocks.14.attn.to_v": 438,
|
| 62 |
+
"transformer_blocks.14.ff.net.0.proj": 315,
|
| 63 |
+
"transformer_blocks.14.ff.net.2": 1566,
|
| 64 |
+
"transformer_blocks.15.attn.to_k": 248,
|
| 65 |
+
"transformer_blocks.15.attn.to_out.0": 394,
|
| 66 |
+
"transformer_blocks.15.attn.to_q": 261,
|
| 67 |
+
"transformer_blocks.15.attn.to_v": 431,
|
| 68 |
+
"transformer_blocks.15.ff.net.0.proj": 315,
|
| 69 |
+
"transformer_blocks.15.ff.net.2": 1539,
|
| 70 |
+
"transformer_blocks.16.attn.to_k": 451,
|
| 71 |
+
"transformer_blocks.16.attn.to_out.0": 711,
|
| 72 |
+
"transformer_blocks.16.attn.to_q": 460,
|
| 73 |
+
"transformer_blocks.16.attn.to_v": 694,
|
| 74 |
+
"transformer_blocks.16.ff.net.0.proj": 652,
|
| 75 |
+
"transformer_blocks.16.ff.net.2": 2287,
|
| 76 |
+
"transformer_blocks.17.attn.to_k": 242,
|
| 77 |
+
"transformer_blocks.17.attn.to_out.0": 413,
|
| 78 |
+
"transformer_blocks.17.attn.to_q": 261,
|
| 79 |
+
"transformer_blocks.17.attn.to_v": 443,
|
| 80 |
+
"transformer_blocks.17.ff.net.0.proj": 334,
|
| 81 |
+
"transformer_blocks.17.ff.net.2": 1489,
|
| 82 |
+
"transformer_blocks.18.attn.to_k": 210,
|
| 83 |
+
"transformer_blocks.18.attn.to_out.0": 440,
|
| 84 |
+
"transformer_blocks.18.attn.to_q": 238,
|
| 85 |
+
"transformer_blocks.18.attn.to_v": 433,
|
| 86 |
+
"transformer_blocks.18.ff.net.0.proj": 390,
|
| 87 |
+
"transformer_blocks.18.ff.net.2": 1417,
|
| 88 |
+
"transformer_blocks.2.attn.to_k": 1551,
|
| 89 |
+
"transformer_blocks.2.attn.to_out.0": 2092,
|
| 90 |
+
"transformer_blocks.2.attn.to_q": 1587,
|
| 91 |
+
"transformer_blocks.2.attn.to_v": 1615,
|
| 92 |
+
"transformer_blocks.2.ff.net.0.proj": 3137,
|
| 93 |
+
"transformer_blocks.20.attn.to_k": 814,
|
| 94 |
+
"transformer_blocks.20.attn.to_out.0": 1209,
|
| 95 |
+
"transformer_blocks.20.attn.to_q": 831,
|
| 96 |
+
"transformer_blocks.20.attn.to_v": 1093,
|
| 97 |
+
"transformer_blocks.20.ff.net.0.proj": 1300,
|
| 98 |
+
"transformer_blocks.20.ff.net.2": 3061,
|
| 99 |
+
"transformer_blocks.23.attn.to_k": 70,
|
| 100 |
+
"transformer_blocks.23.attn.to_out.0": 267,
|
| 101 |
+
"transformer_blocks.23.attn.to_q": 102,
|
| 102 |
+
"transformer_blocks.23.attn.to_v": 241,
|
| 103 |
+
"transformer_blocks.23.ff.net.0.proj": 232,
|
| 104 |
+
"transformer_blocks.23.ff.net.2": 1121,
|
| 105 |
+
"transformer_blocks.4.attn.to_k": 182,
|
| 106 |
+
"transformer_blocks.4.attn.to_out.0": 255,
|
| 107 |
+
"transformer_blocks.4.attn.to_q": 170,
|
| 108 |
+
"transformer_blocks.4.attn.to_v": 280,
|
| 109 |
+
"transformer_blocks.4.ff.net.0.proj": 333,
|
| 110 |
+
"transformer_blocks.4.ff.net.2": 815,
|
| 111 |
+
"transformer_blocks.49.ff.net.2": 2932,
|
| 112 |
+
"transformer_blocks.7.attn.to_k": 186,
|
| 113 |
+
"transformer_blocks.7.attn.to_out.0": 315,
|
| 114 |
+
"transformer_blocks.7.attn.to_q": 197,
|
| 115 |
+
"transformer_blocks.7.attn.to_v": 330,
|
| 116 |
+
"transformer_blocks.7.ff.net.0.proj": 265,
|
| 117 |
+
"transformer_blocks.7.ff.net.2": 843,
|
| 118 |
+
"transformer_blocks.8.attn.to_k": 129,
|
| 119 |
+
"transformer_blocks.8.attn.to_out.0": 224,
|
| 120 |
+
"transformer_blocks.8.attn.to_q": 136,
|
| 121 |
+
"transformer_blocks.8.attn.to_v": 255,
|
| 122 |
+
"transformer_blocks.8.ff.net.0.proj": 209,
|
| 123 |
+
"transformer_blocks.8.ff.net.2": 1120,
|
| 124 |
+
"transformer_blocks.9.attn.to_k": 132,
|
| 125 |
+
"transformer_blocks.9.attn.to_out.0": 270,
|
| 126 |
+
"transformer_blocks.9.attn.to_q": 146,
|
| 127 |
+
"transformer_blocks.9.attn.to_v": 260,
|
| 128 |
+
"transformer_blocks.9.ff.net.0.proj": 185,
|
| 129 |
+
"transformer_blocks.9.ff.net.2": 1121
|
| 130 |
+
},
|
| 131 |
+
"dropped_blocks": [
|
| 132 |
+
6,
|
| 133 |
+
21,
|
| 134 |
+
22
|
| 135 |
+
],
|
| 136 |
+
"auto_map": {
|
| 137 |
+
"AutoModel": "hyperflow_h3_flash_transformer.HyperFlowH3FlashTransformer3DModel"
|
| 138 |
+
},
|
| 139 |
+
"quantization": {
|
| 140 |
+
"method": "int8_convrot",
|
| 141 |
+
"group": 256,
|
| 142 |
+
"linears": [
|
| 143 |
+
"transformer_blocks.0.attn.to_k",
|
| 144 |
+
"transformer_blocks.0.attn.to_out.0",
|
| 145 |
+
"transformer_blocks.0.attn.to_q",
|
| 146 |
+
"transformer_blocks.0.attn.to_v",
|
| 147 |
+
"transformer_blocks.0.ff.net.0.proj",
|
| 148 |
+
"transformer_blocks.0.ff.net.2",
|
| 149 |
+
"transformer_blocks.19.attn.to_k",
|
| 150 |
+
"transformer_blocks.19.attn.to_out.0",
|
| 151 |
+
"transformer_blocks.19.attn.to_q",
|
| 152 |
+
"transformer_blocks.19.attn.to_v",
|
| 153 |
+
"transformer_blocks.19.ff.net.0.proj",
|
| 154 |
+
"transformer_blocks.19.ff.net.2",
|
| 155 |
+
"transformer_blocks.2.ff.net.2",
|
| 156 |
+
"transformer_blocks.24.attn.to_k",
|
| 157 |
+
"transformer_blocks.24.attn.to_out.0",
|
| 158 |
+
"transformer_blocks.24.attn.to_q",
|
| 159 |
+
"transformer_blocks.24.attn.to_v",
|
| 160 |
+
"transformer_blocks.24.ff.net.0.proj",
|
| 161 |
+
"transformer_blocks.24.ff.net.2",
|
| 162 |
+
"transformer_blocks.25.attn.to_k",
|
| 163 |
+
"transformer_blocks.25.attn.to_out.0",
|
| 164 |
+
"transformer_blocks.25.attn.to_q",
|
| 165 |
+
"transformer_blocks.25.attn.to_v",
|
| 166 |
+
"transformer_blocks.25.ff.net.0.proj",
|
| 167 |
+
"transformer_blocks.25.ff.net.2",
|
| 168 |
+
"transformer_blocks.26.attn.to_k",
|
| 169 |
+
"transformer_blocks.26.attn.to_out.0",
|
| 170 |
+
"transformer_blocks.26.attn.to_q",
|
| 171 |
+
"transformer_blocks.26.attn.to_v",
|
| 172 |
+
"transformer_blocks.26.ff.net.0.proj",
|
| 173 |
+
"transformer_blocks.26.ff.net.2",
|
| 174 |
+
"transformer_blocks.27.attn.to_k",
|
| 175 |
+
"transformer_blocks.27.attn.to_out.0",
|
| 176 |
+
"transformer_blocks.27.attn.to_q",
|
| 177 |
+
"transformer_blocks.27.attn.to_v",
|
| 178 |
+
"transformer_blocks.27.ff.net.0.proj",
|
| 179 |
+
"transformer_blocks.27.ff.net.2",
|
| 180 |
+
"transformer_blocks.28.attn.to_k",
|
| 181 |
+
"transformer_blocks.28.attn.to_out.0",
|
| 182 |
+
"transformer_blocks.28.attn.to_q",
|
| 183 |
+
"transformer_blocks.28.attn.to_v",
|
| 184 |
+
"transformer_blocks.28.ff.net.0.proj",
|
| 185 |
+
"transformer_blocks.28.ff.net.2",
|
| 186 |
+
"transformer_blocks.29.attn.to_k",
|
| 187 |
+
"transformer_blocks.29.attn.to_out.0",
|
| 188 |
+
"transformer_blocks.29.attn.to_q",
|
| 189 |
+
"transformer_blocks.29.attn.to_v",
|
| 190 |
+
"transformer_blocks.29.ff.net.0.proj",
|
| 191 |
+
"transformer_blocks.29.ff.net.2",
|
| 192 |
+
"transformer_blocks.3.attn.to_k",
|
| 193 |
+
"transformer_blocks.3.attn.to_out.0",
|
| 194 |
+
"transformer_blocks.3.attn.to_q",
|
| 195 |
+
"transformer_blocks.3.attn.to_v",
|
| 196 |
+
"transformer_blocks.3.ff.net.0.proj",
|
| 197 |
+
"transformer_blocks.3.ff.net.2",
|
| 198 |
+
"transformer_blocks.30.attn.to_k",
|
| 199 |
+
"transformer_blocks.30.attn.to_out.0",
|
| 200 |
+
"transformer_blocks.30.attn.to_q",
|
| 201 |
+
"transformer_blocks.30.attn.to_v",
|
| 202 |
+
"transformer_blocks.30.ff.net.0.proj",
|
| 203 |
+
"transformer_blocks.30.ff.net.2",
|
| 204 |
+
"transformer_blocks.31.attn.to_k",
|
| 205 |
+
"transformer_blocks.31.attn.to_out.0",
|
| 206 |
+
"transformer_blocks.31.attn.to_q",
|
| 207 |
+
"transformer_blocks.31.attn.to_v",
|
| 208 |
+
"transformer_blocks.31.ff.net.0.proj",
|
| 209 |
+
"transformer_blocks.31.ff.net.2",
|
| 210 |
+
"transformer_blocks.32.attn.to_k",
|
| 211 |
+
"transformer_blocks.32.attn.to_out.0",
|
| 212 |
+
"transformer_blocks.32.attn.to_q",
|
| 213 |
+
"transformer_blocks.32.attn.to_v",
|
| 214 |
+
"transformer_blocks.32.ff.net.0.proj",
|
| 215 |
+
"transformer_blocks.32.ff.net.2",
|
| 216 |
+
"transformer_blocks.33.attn.to_k",
|
| 217 |
+
"transformer_blocks.33.attn.to_out.0",
|
| 218 |
+
"transformer_blocks.33.attn.to_q",
|
| 219 |
+
"transformer_blocks.33.attn.to_v",
|
| 220 |
+
"transformer_blocks.33.ff.net.0.proj",
|
| 221 |
+
"transformer_blocks.33.ff.net.2",
|
| 222 |
+
"transformer_blocks.34.attn.to_k",
|
| 223 |
+
"transformer_blocks.34.attn.to_out.0",
|
| 224 |
+
"transformer_blocks.34.attn.to_q",
|
| 225 |
+
"transformer_blocks.34.attn.to_v",
|
| 226 |
+
"transformer_blocks.34.ff.net.0.proj",
|
| 227 |
+
"transformer_blocks.34.ff.net.2",
|
| 228 |
+
"transformer_blocks.35.attn.to_k",
|
| 229 |
+
"transformer_blocks.35.attn.to_out.0",
|
| 230 |
+
"transformer_blocks.35.attn.to_q",
|
| 231 |
+
"transformer_blocks.35.attn.to_v",
|
| 232 |
+
"transformer_blocks.35.ff.net.0.proj",
|
| 233 |
+
"transformer_blocks.35.ff.net.2",
|
| 234 |
+
"transformer_blocks.36.attn.to_k",
|
| 235 |
+
"transformer_blocks.36.attn.to_out.0",
|
| 236 |
+
"transformer_blocks.36.attn.to_q",
|
| 237 |
+
"transformer_blocks.36.attn.to_v",
|
| 238 |
+
"transformer_blocks.36.ff.net.0.proj",
|
| 239 |
+
"transformer_blocks.36.ff.net.2",
|
| 240 |
+
"transformer_blocks.37.attn.to_k",
|
| 241 |
+
"transformer_blocks.37.attn.to_out.0",
|
| 242 |
+
"transformer_blocks.37.attn.to_q",
|
| 243 |
+
"transformer_blocks.37.attn.to_v",
|
| 244 |
+
"transformer_blocks.37.ff.net.0.proj",
|
| 245 |
+
"transformer_blocks.37.ff.net.2",
|
| 246 |
+
"transformer_blocks.38.attn.to_k",
|
| 247 |
+
"transformer_blocks.38.attn.to_out.0",
|
| 248 |
+
"transformer_blocks.38.attn.to_q",
|
| 249 |
+
"transformer_blocks.38.attn.to_v",
|
| 250 |
+
"transformer_blocks.38.ff.net.0.proj",
|
| 251 |
+
"transformer_blocks.38.ff.net.2",
|
| 252 |
+
"transformer_blocks.39.attn.to_k",
|
| 253 |
+
"transformer_blocks.39.attn.to_out.0",
|
| 254 |
+
"transformer_blocks.39.attn.to_q",
|
| 255 |
+
"transformer_blocks.39.attn.to_v",
|
| 256 |
+
"transformer_blocks.39.ff.net.0.proj",
|
| 257 |
+
"transformer_blocks.39.ff.net.2",
|
| 258 |
+
"transformer_blocks.40.attn.to_k",
|
| 259 |
+
"transformer_blocks.40.attn.to_out.0",
|
| 260 |
+
"transformer_blocks.40.attn.to_q",
|
| 261 |
+
"transformer_blocks.40.attn.to_v",
|
| 262 |
+
"transformer_blocks.40.ff.net.0.proj",
|
| 263 |
+
"transformer_blocks.40.ff.net.2",
|
| 264 |
+
"transformer_blocks.41.attn.to_k",
|
| 265 |
+
"transformer_blocks.41.attn.to_out.0",
|
| 266 |
+
"transformer_blocks.41.attn.to_q",
|
| 267 |
+
"transformer_blocks.41.attn.to_v",
|
| 268 |
+
"transformer_blocks.41.ff.net.0.proj",
|
| 269 |
+
"transformer_blocks.41.ff.net.2",
|
| 270 |
+
"transformer_blocks.42.attn.to_k",
|
| 271 |
+
"transformer_blocks.42.attn.to_out.0",
|
| 272 |
+
"transformer_blocks.42.attn.to_q",
|
| 273 |
+
"transformer_blocks.42.attn.to_v",
|
| 274 |
+
"transformer_blocks.42.ff.net.0.proj",
|
| 275 |
+
"transformer_blocks.42.ff.net.2",
|
| 276 |
+
"transformer_blocks.43.attn.to_k",
|
| 277 |
+
"transformer_blocks.43.attn.to_out.0",
|
| 278 |
+
"transformer_blocks.43.attn.to_q",
|
| 279 |
+
"transformer_blocks.43.attn.to_v",
|
| 280 |
+
"transformer_blocks.43.ff.net.0.proj",
|
| 281 |
+
"transformer_blocks.43.ff.net.2",
|
| 282 |
+
"transformer_blocks.44.attn.to_k",
|
| 283 |
+
"transformer_blocks.44.attn.to_out.0",
|
| 284 |
+
"transformer_blocks.44.attn.to_q",
|
| 285 |
+
"transformer_blocks.44.attn.to_v",
|
| 286 |
+
"transformer_blocks.44.ff.net.0.proj",
|
| 287 |
+
"transformer_blocks.44.ff.net.2",
|
| 288 |
+
"transformer_blocks.45.attn.to_k",
|
| 289 |
+
"transformer_blocks.45.attn.to_out.0",
|
| 290 |
+
"transformer_blocks.45.attn.to_q",
|
| 291 |
+
"transformer_blocks.45.attn.to_v",
|
| 292 |
+
"transformer_blocks.45.ff.net.0.proj",
|
| 293 |
+
"transformer_blocks.45.ff.net.2",
|
| 294 |
+
"transformer_blocks.46.attn.to_k",
|
| 295 |
+
"transformer_blocks.46.attn.to_out.0",
|
| 296 |
+
"transformer_blocks.46.attn.to_q",
|
| 297 |
+
"transformer_blocks.46.attn.to_v",
|
| 298 |
+
"transformer_blocks.46.ff.net.0.proj",
|
| 299 |
+
"transformer_blocks.46.ff.net.2",
|
| 300 |
+
"transformer_blocks.47.attn.to_k",
|
| 301 |
+
"transformer_blocks.47.attn.to_out.0",
|
| 302 |
+
"transformer_blocks.47.attn.to_q",
|
| 303 |
+
"transformer_blocks.47.attn.to_v",
|
| 304 |
+
"transformer_blocks.47.ff.net.0.proj",
|
| 305 |
+
"transformer_blocks.47.ff.net.2",
|
| 306 |
+
"transformer_blocks.48.attn.to_k",
|
| 307 |
+
"transformer_blocks.48.attn.to_out.0",
|
| 308 |
+
"transformer_blocks.48.attn.to_q",
|
| 309 |
+
"transformer_blocks.48.attn.to_v",
|
| 310 |
+
"transformer_blocks.48.ff.net.0.proj",
|
| 311 |
+
"transformer_blocks.48.ff.net.2",
|
| 312 |
+
"transformer_blocks.49.attn.to_k",
|
| 313 |
+
"transformer_blocks.49.attn.to_out.0",
|
| 314 |
+
"transformer_blocks.49.attn.to_q",
|
| 315 |
+
"transformer_blocks.49.attn.to_v",
|
| 316 |
+
"transformer_blocks.49.ff.net.0.proj",
|
| 317 |
+
"transformer_blocks.5.attn.to_k",
|
| 318 |
+
"transformer_blocks.5.attn.to_out.0",
|
| 319 |
+
"transformer_blocks.5.attn.to_q",
|
| 320 |
+
"transformer_blocks.5.attn.to_v",
|
| 321 |
+
"transformer_blocks.5.ff.net.0.proj",
|
| 322 |
+
"transformer_blocks.5.ff.net.2"
|
| 323 |
+
]
|
| 324 |
+
}
|
| 325 |
+
}
|
fl2va_int8_convrot/diffusion_pytorch_model-00001-of-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:175790b38e171f1b0027b6b7a5cbb9a946a9e98e9a6e9e0f897da681be9e0fa2
|
| 3 |
+
size 5331906296
|
fl2va_int8_convrot/diffusion_pytorch_model-00002-of-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:47853b57cfc421245d4fa365dafaab474b113c7144a0cef5855849ed4a73d142
|
| 3 |
+
size 5290477648
|
fl2va_int8_convrot/diffusion_pytorch_model-00003-of-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b5f6516bb503b5ecc64f507037b341de7de42c792904d9f977e3c9c49a11d1c1
|
| 3 |
+
size 5258285344
|
fl2va_int8_convrot/diffusion_pytorch_model.safetensors.index.json
ADDED
|
@@ -0,0 +1,895 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"metadata": {
|
| 3 |
+
"total_size": 15880568448
|
| 4 |
+
},
|
| 5 |
+
"weight_map": {
|
| 6 |
+
"audio_proj_in.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 7 |
+
"audio_proj_in.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 8 |
+
"audio_proj_out.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 9 |
+
"audio_proj_out.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 10 |
+
"context_embedder.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 11 |
+
"context_embedder.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 12 |
+
"endpoint_time_embedder.linear_1.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 13 |
+
"endpoint_time_embedder.linear_1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 14 |
+
"endpoint_time_embedder.linear_2.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 15 |
+
"endpoint_time_embedder.linear_2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 16 |
+
"norm_out.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 17 |
+
"norm_out.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 18 |
+
"norm_out.norm.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 19 |
+
"proj_in.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 20 |
+
"proj_in.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 21 |
+
"proj_out.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 22 |
+
"proj_out.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 23 |
+
"time_embedder.linear_1.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 24 |
+
"time_embedder.linear_1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 25 |
+
"time_embedder.linear_2.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 26 |
+
"time_embedder.linear_2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 27 |
+
"token_refiner.final_norm.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 28 |
+
"token_refiner.refiner_blocks.0.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 29 |
+
"token_refiner.refiner_blocks.0.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 30 |
+
"token_refiner.refiner_blocks.0.attn.to_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 31 |
+
"token_refiner.refiner_blocks.0.attn.to_out.0.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 32 |
+
"token_refiner.refiner_blocks.0.attn.to_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 33 |
+
"token_refiner.refiner_blocks.0.attn.to_v.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 34 |
+
"token_refiner.refiner_blocks.0.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 35 |
+
"token_refiner.refiner_blocks.0.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 36 |
+
"token_refiner.refiner_blocks.0.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 37 |
+
"token_refiner.refiner_blocks.0.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 38 |
+
"token_refiner.refiner_blocks.1.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 39 |
+
"token_refiner.refiner_blocks.1.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 40 |
+
"token_refiner.refiner_blocks.1.attn.to_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 41 |
+
"token_refiner.refiner_blocks.1.attn.to_out.0.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 42 |
+
"token_refiner.refiner_blocks.1.attn.to_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 43 |
+
"token_refiner.refiner_blocks.1.attn.to_v.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 44 |
+
"token_refiner.refiner_blocks.1.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 45 |
+
"token_refiner.refiner_blocks.1.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 46 |
+
"token_refiner.refiner_blocks.1.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 47 |
+
"token_refiner.refiner_blocks.1.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 48 |
+
"transformer_blocks.0.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 49 |
+
"transformer_blocks.0.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 50 |
+
"transformer_blocks.0.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 51 |
+
"transformer_blocks.0.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 52 |
+
"transformer_blocks.0.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 53 |
+
"transformer_blocks.0.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 54 |
+
"transformer_blocks.0.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 55 |
+
"transformer_blocks.0.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 56 |
+
"transformer_blocks.0.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 57 |
+
"transformer_blocks.0.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 58 |
+
"transformer_blocks.0.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 59 |
+
"transformer_blocks.0.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 60 |
+
"transformer_blocks.0.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 61 |
+
"transformer_blocks.0.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 62 |
+
"transformer_blocks.0.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 63 |
+
"transformer_blocks.0.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 64 |
+
"transformer_blocks.0.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 65 |
+
"transformer_blocks.0.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 66 |
+
"transformer_blocks.1.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 67 |
+
"transformer_blocks.1.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 68 |
+
"transformer_blocks.1.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 69 |
+
"transformer_blocks.1.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 70 |
+
"transformer_blocks.1.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 71 |
+
"transformer_blocks.1.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 72 |
+
"transformer_blocks.1.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 73 |
+
"transformer_blocks.1.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 74 |
+
"transformer_blocks.1.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 75 |
+
"transformer_blocks.1.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 76 |
+
"transformer_blocks.1.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 77 |
+
"transformer_blocks.1.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 78 |
+
"transformer_blocks.1.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 79 |
+
"transformer_blocks.1.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 80 |
+
"transformer_blocks.1.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 81 |
+
"transformer_blocks.1.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 82 |
+
"transformer_blocks.1.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 83 |
+
"transformer_blocks.1.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 84 |
+
"transformer_blocks.10.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 85 |
+
"transformer_blocks.10.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 86 |
+
"transformer_blocks.10.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 87 |
+
"transformer_blocks.10.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 88 |
+
"transformer_blocks.10.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 89 |
+
"transformer_blocks.10.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 90 |
+
"transformer_blocks.10.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 91 |
+
"transformer_blocks.10.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 92 |
+
"transformer_blocks.10.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 93 |
+
"transformer_blocks.10.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 94 |
+
"transformer_blocks.10.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 95 |
+
"transformer_blocks.10.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 96 |
+
"transformer_blocks.10.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 97 |
+
"transformer_blocks.10.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 98 |
+
"transformer_blocks.10.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 99 |
+
"transformer_blocks.10.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 100 |
+
"transformer_blocks.10.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 101 |
+
"transformer_blocks.10.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 102 |
+
"transformer_blocks.11.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 103 |
+
"transformer_blocks.11.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 104 |
+
"transformer_blocks.11.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 105 |
+
"transformer_blocks.11.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 106 |
+
"transformer_blocks.11.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 107 |
+
"transformer_blocks.11.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 108 |
+
"transformer_blocks.11.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 109 |
+
"transformer_blocks.11.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 110 |
+
"transformer_blocks.11.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 111 |
+
"transformer_blocks.11.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 112 |
+
"transformer_blocks.11.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 113 |
+
"transformer_blocks.11.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 114 |
+
"transformer_blocks.11.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 115 |
+
"transformer_blocks.11.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 116 |
+
"transformer_blocks.11.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 117 |
+
"transformer_blocks.11.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 118 |
+
"transformer_blocks.11.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 119 |
+
"transformer_blocks.11.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 120 |
+
"transformer_blocks.12.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 121 |
+
"transformer_blocks.12.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 122 |
+
"transformer_blocks.12.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 123 |
+
"transformer_blocks.12.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 124 |
+
"transformer_blocks.12.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 125 |
+
"transformer_blocks.12.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 126 |
+
"transformer_blocks.12.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 127 |
+
"transformer_blocks.12.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 128 |
+
"transformer_blocks.12.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 129 |
+
"transformer_blocks.12.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 130 |
+
"transformer_blocks.12.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 131 |
+
"transformer_blocks.12.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 132 |
+
"transformer_blocks.12.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 133 |
+
"transformer_blocks.12.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 134 |
+
"transformer_blocks.12.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 135 |
+
"transformer_blocks.12.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 136 |
+
"transformer_blocks.12.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 137 |
+
"transformer_blocks.12.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 138 |
+
"transformer_blocks.13.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 139 |
+
"transformer_blocks.13.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 140 |
+
"transformer_blocks.13.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 141 |
+
"transformer_blocks.13.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 142 |
+
"transformer_blocks.13.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 143 |
+
"transformer_blocks.13.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 144 |
+
"transformer_blocks.13.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 145 |
+
"transformer_blocks.13.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 146 |
+
"transformer_blocks.13.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 147 |
+
"transformer_blocks.13.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 148 |
+
"transformer_blocks.13.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 149 |
+
"transformer_blocks.13.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 150 |
+
"transformer_blocks.13.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 151 |
+
"transformer_blocks.13.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 152 |
+
"transformer_blocks.13.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 153 |
+
"transformer_blocks.13.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 154 |
+
"transformer_blocks.13.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 155 |
+
"transformer_blocks.13.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 156 |
+
"transformer_blocks.14.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 157 |
+
"transformer_blocks.14.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 158 |
+
"transformer_blocks.14.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 159 |
+
"transformer_blocks.14.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 160 |
+
"transformer_blocks.14.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 161 |
+
"transformer_blocks.14.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 162 |
+
"transformer_blocks.14.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 163 |
+
"transformer_blocks.14.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 164 |
+
"transformer_blocks.14.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 165 |
+
"transformer_blocks.14.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 166 |
+
"transformer_blocks.14.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 167 |
+
"transformer_blocks.14.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 168 |
+
"transformer_blocks.14.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 169 |
+
"transformer_blocks.14.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 170 |
+
"transformer_blocks.14.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 171 |
+
"transformer_blocks.14.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 172 |
+
"transformer_blocks.14.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 173 |
+
"transformer_blocks.14.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 174 |
+
"transformer_blocks.15.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 175 |
+
"transformer_blocks.15.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 176 |
+
"transformer_blocks.15.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 177 |
+
"transformer_blocks.15.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 178 |
+
"transformer_blocks.15.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 179 |
+
"transformer_blocks.15.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 180 |
+
"transformer_blocks.15.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 181 |
+
"transformer_blocks.15.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 182 |
+
"transformer_blocks.15.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 183 |
+
"transformer_blocks.15.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 184 |
+
"transformer_blocks.15.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 185 |
+
"transformer_blocks.15.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 186 |
+
"transformer_blocks.15.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 187 |
+
"transformer_blocks.15.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 188 |
+
"transformer_blocks.15.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 189 |
+
"transformer_blocks.15.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 190 |
+
"transformer_blocks.15.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 191 |
+
"transformer_blocks.15.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 192 |
+
"transformer_blocks.16.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 193 |
+
"transformer_blocks.16.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 194 |
+
"transformer_blocks.16.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 195 |
+
"transformer_blocks.16.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 196 |
+
"transformer_blocks.16.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 197 |
+
"transformer_blocks.16.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 198 |
+
"transformer_blocks.16.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 199 |
+
"transformer_blocks.16.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 200 |
+
"transformer_blocks.16.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 201 |
+
"transformer_blocks.16.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 202 |
+
"transformer_blocks.16.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 203 |
+
"transformer_blocks.16.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 204 |
+
"transformer_blocks.16.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 205 |
+
"transformer_blocks.16.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 206 |
+
"transformer_blocks.16.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 207 |
+
"transformer_blocks.16.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 208 |
+
"transformer_blocks.16.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 209 |
+
"transformer_blocks.16.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 210 |
+
"transformer_blocks.17.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 211 |
+
"transformer_blocks.17.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 212 |
+
"transformer_blocks.17.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 213 |
+
"transformer_blocks.17.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 214 |
+
"transformer_blocks.17.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 215 |
+
"transformer_blocks.17.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 216 |
+
"transformer_blocks.17.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 217 |
+
"transformer_blocks.17.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 218 |
+
"transformer_blocks.17.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 219 |
+
"transformer_blocks.17.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 220 |
+
"transformer_blocks.17.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 221 |
+
"transformer_blocks.17.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 222 |
+
"transformer_blocks.17.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 223 |
+
"transformer_blocks.17.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 224 |
+
"transformer_blocks.17.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 225 |
+
"transformer_blocks.17.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 226 |
+
"transformer_blocks.17.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 227 |
+
"transformer_blocks.17.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 228 |
+
"transformer_blocks.18.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 229 |
+
"transformer_blocks.18.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 230 |
+
"transformer_blocks.18.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 231 |
+
"transformer_blocks.18.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 232 |
+
"transformer_blocks.18.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 233 |
+
"transformer_blocks.18.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 234 |
+
"transformer_blocks.18.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 235 |
+
"transformer_blocks.18.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 236 |
+
"transformer_blocks.18.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 237 |
+
"transformer_blocks.18.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 238 |
+
"transformer_blocks.18.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 239 |
+
"transformer_blocks.18.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 240 |
+
"transformer_blocks.18.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 241 |
+
"transformer_blocks.18.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 242 |
+
"transformer_blocks.18.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 243 |
+
"transformer_blocks.18.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 244 |
+
"transformer_blocks.18.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 245 |
+
"transformer_blocks.18.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 246 |
+
"transformer_blocks.19.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 247 |
+
"transformer_blocks.19.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 248 |
+
"transformer_blocks.19.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 249 |
+
"transformer_blocks.19.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 250 |
+
"transformer_blocks.19.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 251 |
+
"transformer_blocks.19.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 252 |
+
"transformer_blocks.19.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 253 |
+
"transformer_blocks.19.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 254 |
+
"transformer_blocks.19.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 255 |
+
"transformer_blocks.19.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 256 |
+
"transformer_blocks.19.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 257 |
+
"transformer_blocks.19.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 258 |
+
"transformer_blocks.19.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 259 |
+
"transformer_blocks.19.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 260 |
+
"transformer_blocks.19.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 261 |
+
"transformer_blocks.19.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 262 |
+
"transformer_blocks.19.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 263 |
+
"transformer_blocks.19.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 264 |
+
"transformer_blocks.2.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 265 |
+
"transformer_blocks.2.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 266 |
+
"transformer_blocks.2.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 267 |
+
"transformer_blocks.2.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 268 |
+
"transformer_blocks.2.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 269 |
+
"transformer_blocks.2.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 270 |
+
"transformer_blocks.2.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 271 |
+
"transformer_blocks.2.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 272 |
+
"transformer_blocks.2.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 273 |
+
"transformer_blocks.2.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 274 |
+
"transformer_blocks.2.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 275 |
+
"transformer_blocks.2.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 276 |
+
"transformer_blocks.2.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 277 |
+
"transformer_blocks.2.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 278 |
+
"transformer_blocks.2.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 279 |
+
"transformer_blocks.2.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 280 |
+
"transformer_blocks.2.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 281 |
+
"transformer_blocks.2.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 282 |
+
"transformer_blocks.20.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 283 |
+
"transformer_blocks.20.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 284 |
+
"transformer_blocks.20.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 285 |
+
"transformer_blocks.20.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 286 |
+
"transformer_blocks.20.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 287 |
+
"transformer_blocks.20.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 288 |
+
"transformer_blocks.20.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 289 |
+
"transformer_blocks.20.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 290 |
+
"transformer_blocks.20.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 291 |
+
"transformer_blocks.20.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 292 |
+
"transformer_blocks.20.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 293 |
+
"transformer_blocks.20.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 294 |
+
"transformer_blocks.20.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 295 |
+
"transformer_blocks.20.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 296 |
+
"transformer_blocks.20.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 297 |
+
"transformer_blocks.20.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 298 |
+
"transformer_blocks.20.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 299 |
+
"transformer_blocks.20.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 300 |
+
"transformer_blocks.23.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 301 |
+
"transformer_blocks.23.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 302 |
+
"transformer_blocks.23.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 303 |
+
"transformer_blocks.23.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 304 |
+
"transformer_blocks.23.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 305 |
+
"transformer_blocks.23.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 306 |
+
"transformer_blocks.23.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 307 |
+
"transformer_blocks.23.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 308 |
+
"transformer_blocks.23.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 309 |
+
"transformer_blocks.23.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 310 |
+
"transformer_blocks.23.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 311 |
+
"transformer_blocks.23.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 312 |
+
"transformer_blocks.23.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 313 |
+
"transformer_blocks.23.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 314 |
+
"transformer_blocks.23.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 315 |
+
"transformer_blocks.23.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 316 |
+
"transformer_blocks.23.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 317 |
+
"transformer_blocks.23.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 318 |
+
"transformer_blocks.24.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 319 |
+
"transformer_blocks.24.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 320 |
+
"transformer_blocks.24.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 321 |
+
"transformer_blocks.24.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 322 |
+
"transformer_blocks.24.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 323 |
+
"transformer_blocks.24.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 324 |
+
"transformer_blocks.24.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 325 |
+
"transformer_blocks.24.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 326 |
+
"transformer_blocks.24.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 327 |
+
"transformer_blocks.24.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 328 |
+
"transformer_blocks.24.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 329 |
+
"transformer_blocks.24.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 330 |
+
"transformer_blocks.24.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 331 |
+
"transformer_blocks.24.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 332 |
+
"transformer_blocks.24.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 333 |
+
"transformer_blocks.24.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 334 |
+
"transformer_blocks.24.norm1.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 335 |
+
"transformer_blocks.24.norm2.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 336 |
+
"transformer_blocks.25.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 337 |
+
"transformer_blocks.25.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 338 |
+
"transformer_blocks.25.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 339 |
+
"transformer_blocks.25.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 340 |
+
"transformer_blocks.25.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 341 |
+
"transformer_blocks.25.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 342 |
+
"transformer_blocks.25.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 343 |
+
"transformer_blocks.25.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 344 |
+
"transformer_blocks.25.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 345 |
+
"transformer_blocks.25.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 346 |
+
"transformer_blocks.25.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 347 |
+
"transformer_blocks.25.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 348 |
+
"transformer_blocks.25.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 349 |
+
"transformer_blocks.25.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00003.safetensors",
|
| 350 |
+
"transformer_blocks.25.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 351 |
+
"transformer_blocks.25.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 352 |
+
"transformer_blocks.25.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 353 |
+
"transformer_blocks.25.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 354 |
+
"transformer_blocks.26.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 355 |
+
"transformer_blocks.26.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 356 |
+
"transformer_blocks.26.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 357 |
+
"transformer_blocks.26.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 358 |
+
"transformer_blocks.26.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 359 |
+
"transformer_blocks.26.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 360 |
+
"transformer_blocks.26.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 361 |
+
"transformer_blocks.26.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 362 |
+
"transformer_blocks.26.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 363 |
+
"transformer_blocks.26.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 364 |
+
"transformer_blocks.26.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 365 |
+
"transformer_blocks.26.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 366 |
+
"transformer_blocks.26.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 367 |
+
"transformer_blocks.26.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 368 |
+
"transformer_blocks.26.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 369 |
+
"transformer_blocks.26.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 370 |
+
"transformer_blocks.26.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 371 |
+
"transformer_blocks.26.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 372 |
+
"transformer_blocks.27.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 373 |
+
"transformer_blocks.27.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 374 |
+
"transformer_blocks.27.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 375 |
+
"transformer_blocks.27.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 376 |
+
"transformer_blocks.27.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 377 |
+
"transformer_blocks.27.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 378 |
+
"transformer_blocks.27.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 379 |
+
"transformer_blocks.27.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 380 |
+
"transformer_blocks.27.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 381 |
+
"transformer_blocks.27.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 382 |
+
"transformer_blocks.27.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 383 |
+
"transformer_blocks.27.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 384 |
+
"transformer_blocks.27.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 385 |
+
"transformer_blocks.27.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 386 |
+
"transformer_blocks.27.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 387 |
+
"transformer_blocks.27.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 388 |
+
"transformer_blocks.27.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 389 |
+
"transformer_blocks.27.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 390 |
+
"transformer_blocks.28.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 391 |
+
"transformer_blocks.28.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 392 |
+
"transformer_blocks.28.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 393 |
+
"transformer_blocks.28.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 394 |
+
"transformer_blocks.28.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 395 |
+
"transformer_blocks.28.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 396 |
+
"transformer_blocks.28.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 397 |
+
"transformer_blocks.28.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 398 |
+
"transformer_blocks.28.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 399 |
+
"transformer_blocks.28.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 400 |
+
"transformer_blocks.28.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 401 |
+
"transformer_blocks.28.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 402 |
+
"transformer_blocks.28.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 403 |
+
"transformer_blocks.28.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 404 |
+
"transformer_blocks.28.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 405 |
+
"transformer_blocks.28.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 406 |
+
"transformer_blocks.28.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 407 |
+
"transformer_blocks.28.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 408 |
+
"transformer_blocks.29.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 409 |
+
"transformer_blocks.29.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 410 |
+
"transformer_blocks.29.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 411 |
+
"transformer_blocks.29.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 412 |
+
"transformer_blocks.29.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 413 |
+
"transformer_blocks.29.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 414 |
+
"transformer_blocks.29.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 415 |
+
"transformer_blocks.29.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 416 |
+
"transformer_blocks.29.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 417 |
+
"transformer_blocks.29.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 418 |
+
"transformer_blocks.29.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 419 |
+
"transformer_blocks.29.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 420 |
+
"transformer_blocks.29.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 421 |
+
"transformer_blocks.29.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 422 |
+
"transformer_blocks.29.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 423 |
+
"transformer_blocks.29.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 424 |
+
"transformer_blocks.29.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 425 |
+
"transformer_blocks.29.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 426 |
+
"transformer_blocks.3.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 427 |
+
"transformer_blocks.3.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 428 |
+
"transformer_blocks.3.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 429 |
+
"transformer_blocks.3.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 430 |
+
"transformer_blocks.3.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 431 |
+
"transformer_blocks.3.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 432 |
+
"transformer_blocks.3.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 433 |
+
"transformer_blocks.3.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 434 |
+
"transformer_blocks.3.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 435 |
+
"transformer_blocks.3.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 436 |
+
"transformer_blocks.3.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 437 |
+
"transformer_blocks.3.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 438 |
+
"transformer_blocks.3.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 439 |
+
"transformer_blocks.3.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 440 |
+
"transformer_blocks.3.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 441 |
+
"transformer_blocks.3.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 442 |
+
"transformer_blocks.3.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 443 |
+
"transformer_blocks.3.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 444 |
+
"transformer_blocks.30.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 445 |
+
"transformer_blocks.30.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 446 |
+
"transformer_blocks.30.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 447 |
+
"transformer_blocks.30.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 448 |
+
"transformer_blocks.30.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 449 |
+
"transformer_blocks.30.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 450 |
+
"transformer_blocks.30.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 451 |
+
"transformer_blocks.30.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 452 |
+
"transformer_blocks.30.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 453 |
+
"transformer_blocks.30.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 454 |
+
"transformer_blocks.30.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 455 |
+
"transformer_blocks.30.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 456 |
+
"transformer_blocks.30.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 457 |
+
"transformer_blocks.30.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 458 |
+
"transformer_blocks.30.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 459 |
+
"transformer_blocks.30.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 460 |
+
"transformer_blocks.30.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 461 |
+
"transformer_blocks.30.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 462 |
+
"transformer_blocks.31.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 463 |
+
"transformer_blocks.31.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 464 |
+
"transformer_blocks.31.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 465 |
+
"transformer_blocks.31.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 466 |
+
"transformer_blocks.31.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 467 |
+
"transformer_blocks.31.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 468 |
+
"transformer_blocks.31.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 469 |
+
"transformer_blocks.31.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 470 |
+
"transformer_blocks.31.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 471 |
+
"transformer_blocks.31.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 472 |
+
"transformer_blocks.31.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 473 |
+
"transformer_blocks.31.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 474 |
+
"transformer_blocks.31.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 475 |
+
"transformer_blocks.31.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 476 |
+
"transformer_blocks.31.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 477 |
+
"transformer_blocks.31.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 478 |
+
"transformer_blocks.31.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 479 |
+
"transformer_blocks.31.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 480 |
+
"transformer_blocks.32.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 481 |
+
"transformer_blocks.32.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 482 |
+
"transformer_blocks.32.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 483 |
+
"transformer_blocks.32.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 484 |
+
"transformer_blocks.32.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 485 |
+
"transformer_blocks.32.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 486 |
+
"transformer_blocks.32.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 487 |
+
"transformer_blocks.32.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 488 |
+
"transformer_blocks.32.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 489 |
+
"transformer_blocks.32.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 490 |
+
"transformer_blocks.32.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 491 |
+
"transformer_blocks.32.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 492 |
+
"transformer_blocks.32.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 493 |
+
"transformer_blocks.32.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 494 |
+
"transformer_blocks.32.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 495 |
+
"transformer_blocks.32.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 496 |
+
"transformer_blocks.32.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 497 |
+
"transformer_blocks.32.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 498 |
+
"transformer_blocks.33.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 499 |
+
"transformer_blocks.33.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 500 |
+
"transformer_blocks.33.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 501 |
+
"transformer_blocks.33.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 502 |
+
"transformer_blocks.33.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 503 |
+
"transformer_blocks.33.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 504 |
+
"transformer_blocks.33.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 505 |
+
"transformer_blocks.33.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 506 |
+
"transformer_blocks.33.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 507 |
+
"transformer_blocks.33.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 508 |
+
"transformer_blocks.33.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 509 |
+
"transformer_blocks.33.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 510 |
+
"transformer_blocks.33.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 511 |
+
"transformer_blocks.33.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 512 |
+
"transformer_blocks.33.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 513 |
+
"transformer_blocks.33.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 514 |
+
"transformer_blocks.33.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 515 |
+
"transformer_blocks.33.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 516 |
+
"transformer_blocks.34.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 517 |
+
"transformer_blocks.34.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 518 |
+
"transformer_blocks.34.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 519 |
+
"transformer_blocks.34.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 520 |
+
"transformer_blocks.34.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 521 |
+
"transformer_blocks.34.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 522 |
+
"transformer_blocks.34.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 523 |
+
"transformer_blocks.34.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 524 |
+
"transformer_blocks.34.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 525 |
+
"transformer_blocks.34.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 526 |
+
"transformer_blocks.34.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 527 |
+
"transformer_blocks.34.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 528 |
+
"transformer_blocks.34.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 529 |
+
"transformer_blocks.34.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 530 |
+
"transformer_blocks.34.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 531 |
+
"transformer_blocks.34.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 532 |
+
"transformer_blocks.34.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 533 |
+
"transformer_blocks.34.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 534 |
+
"transformer_blocks.35.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 535 |
+
"transformer_blocks.35.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 536 |
+
"transformer_blocks.35.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 537 |
+
"transformer_blocks.35.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 538 |
+
"transformer_blocks.35.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 539 |
+
"transformer_blocks.35.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 540 |
+
"transformer_blocks.35.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 541 |
+
"transformer_blocks.35.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 542 |
+
"transformer_blocks.35.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 543 |
+
"transformer_blocks.35.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 544 |
+
"transformer_blocks.35.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 545 |
+
"transformer_blocks.35.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 546 |
+
"transformer_blocks.35.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 547 |
+
"transformer_blocks.35.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 548 |
+
"transformer_blocks.35.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 549 |
+
"transformer_blocks.35.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 550 |
+
"transformer_blocks.35.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 551 |
+
"transformer_blocks.35.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 552 |
+
"transformer_blocks.36.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 553 |
+
"transformer_blocks.36.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 554 |
+
"transformer_blocks.36.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 555 |
+
"transformer_blocks.36.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 556 |
+
"transformer_blocks.36.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 557 |
+
"transformer_blocks.36.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 558 |
+
"transformer_blocks.36.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 559 |
+
"transformer_blocks.36.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 560 |
+
"transformer_blocks.36.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 561 |
+
"transformer_blocks.36.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 562 |
+
"transformer_blocks.36.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 563 |
+
"transformer_blocks.36.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 564 |
+
"transformer_blocks.36.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 565 |
+
"transformer_blocks.36.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 566 |
+
"transformer_blocks.36.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 567 |
+
"transformer_blocks.36.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 568 |
+
"transformer_blocks.36.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 569 |
+
"transformer_blocks.36.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 570 |
+
"transformer_blocks.37.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 571 |
+
"transformer_blocks.37.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 572 |
+
"transformer_blocks.37.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 573 |
+
"transformer_blocks.37.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 574 |
+
"transformer_blocks.37.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 575 |
+
"transformer_blocks.37.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 576 |
+
"transformer_blocks.37.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 577 |
+
"transformer_blocks.37.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 578 |
+
"transformer_blocks.37.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 579 |
+
"transformer_blocks.37.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 580 |
+
"transformer_blocks.37.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 581 |
+
"transformer_blocks.37.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 582 |
+
"transformer_blocks.37.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 583 |
+
"transformer_blocks.37.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 584 |
+
"transformer_blocks.37.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 585 |
+
"transformer_blocks.37.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 586 |
+
"transformer_blocks.37.norm1.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 587 |
+
"transformer_blocks.37.norm2.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 588 |
+
"transformer_blocks.38.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 589 |
+
"transformer_blocks.38.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 590 |
+
"transformer_blocks.38.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 591 |
+
"transformer_blocks.38.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 592 |
+
"transformer_blocks.38.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 593 |
+
"transformer_blocks.38.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 594 |
+
"transformer_blocks.38.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 595 |
+
"transformer_blocks.38.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 596 |
+
"transformer_blocks.38.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 597 |
+
"transformer_blocks.38.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 598 |
+
"transformer_blocks.38.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 599 |
+
"transformer_blocks.38.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00003.safetensors",
|
| 600 |
+
"transformer_blocks.38.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 601 |
+
"transformer_blocks.38.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 602 |
+
"transformer_blocks.38.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 603 |
+
"transformer_blocks.38.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 604 |
+
"transformer_blocks.38.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 605 |
+
"transformer_blocks.38.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 606 |
+
"transformer_blocks.39.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 607 |
+
"transformer_blocks.39.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 608 |
+
"transformer_blocks.39.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 609 |
+
"transformer_blocks.39.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 610 |
+
"transformer_blocks.39.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 611 |
+
"transformer_blocks.39.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 612 |
+
"transformer_blocks.39.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 613 |
+
"transformer_blocks.39.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 614 |
+
"transformer_blocks.39.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 615 |
+
"transformer_blocks.39.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 616 |
+
"transformer_blocks.39.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 617 |
+
"transformer_blocks.39.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 618 |
+
"transformer_blocks.39.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 619 |
+
"transformer_blocks.39.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 620 |
+
"transformer_blocks.39.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 621 |
+
"transformer_blocks.39.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 622 |
+
"transformer_blocks.39.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 623 |
+
"transformer_blocks.39.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 624 |
+
"transformer_blocks.4.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 625 |
+
"transformer_blocks.4.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 626 |
+
"transformer_blocks.4.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 627 |
+
"transformer_blocks.4.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 628 |
+
"transformer_blocks.4.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 629 |
+
"transformer_blocks.4.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 630 |
+
"transformer_blocks.4.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 631 |
+
"transformer_blocks.4.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 632 |
+
"transformer_blocks.4.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 633 |
+
"transformer_blocks.4.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 634 |
+
"transformer_blocks.4.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 635 |
+
"transformer_blocks.4.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 636 |
+
"transformer_blocks.4.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 637 |
+
"transformer_blocks.4.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 638 |
+
"transformer_blocks.4.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 639 |
+
"transformer_blocks.4.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 640 |
+
"transformer_blocks.4.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 641 |
+
"transformer_blocks.4.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 642 |
+
"transformer_blocks.40.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 643 |
+
"transformer_blocks.40.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 644 |
+
"transformer_blocks.40.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 645 |
+
"transformer_blocks.40.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 646 |
+
"transformer_blocks.40.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 647 |
+
"transformer_blocks.40.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 648 |
+
"transformer_blocks.40.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 649 |
+
"transformer_blocks.40.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 650 |
+
"transformer_blocks.40.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 651 |
+
"transformer_blocks.40.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 652 |
+
"transformer_blocks.40.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 653 |
+
"transformer_blocks.40.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 654 |
+
"transformer_blocks.40.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 655 |
+
"transformer_blocks.40.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 656 |
+
"transformer_blocks.40.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 657 |
+
"transformer_blocks.40.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 658 |
+
"transformer_blocks.40.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 659 |
+
"transformer_blocks.40.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 660 |
+
"transformer_blocks.41.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 661 |
+
"transformer_blocks.41.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 662 |
+
"transformer_blocks.41.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 663 |
+
"transformer_blocks.41.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 664 |
+
"transformer_blocks.41.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 665 |
+
"transformer_blocks.41.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 666 |
+
"transformer_blocks.41.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 667 |
+
"transformer_blocks.41.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 668 |
+
"transformer_blocks.41.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 669 |
+
"transformer_blocks.41.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 670 |
+
"transformer_blocks.41.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 671 |
+
"transformer_blocks.41.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 672 |
+
"transformer_blocks.41.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 673 |
+
"transformer_blocks.41.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 674 |
+
"transformer_blocks.41.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 675 |
+
"transformer_blocks.41.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 676 |
+
"transformer_blocks.41.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 677 |
+
"transformer_blocks.41.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 678 |
+
"transformer_blocks.42.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 679 |
+
"transformer_blocks.42.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 680 |
+
"transformer_blocks.42.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 681 |
+
"transformer_blocks.42.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 682 |
+
"transformer_blocks.42.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 683 |
+
"transformer_blocks.42.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 684 |
+
"transformer_blocks.42.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 685 |
+
"transformer_blocks.42.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 686 |
+
"transformer_blocks.42.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 687 |
+
"transformer_blocks.42.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 688 |
+
"transformer_blocks.42.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 689 |
+
"transformer_blocks.42.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 690 |
+
"transformer_blocks.42.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 691 |
+
"transformer_blocks.42.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 692 |
+
"transformer_blocks.42.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 693 |
+
"transformer_blocks.42.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 694 |
+
"transformer_blocks.42.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 695 |
+
"transformer_blocks.42.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 696 |
+
"transformer_blocks.43.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 697 |
+
"transformer_blocks.43.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 698 |
+
"transformer_blocks.43.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 699 |
+
"transformer_blocks.43.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 700 |
+
"transformer_blocks.43.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 701 |
+
"transformer_blocks.43.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 702 |
+
"transformer_blocks.43.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 703 |
+
"transformer_blocks.43.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 704 |
+
"transformer_blocks.43.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 705 |
+
"transformer_blocks.43.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 706 |
+
"transformer_blocks.43.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 707 |
+
"transformer_blocks.43.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 708 |
+
"transformer_blocks.43.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 709 |
+
"transformer_blocks.43.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 710 |
+
"transformer_blocks.43.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 711 |
+
"transformer_blocks.43.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 712 |
+
"transformer_blocks.43.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 713 |
+
"transformer_blocks.43.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 714 |
+
"transformer_blocks.44.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 715 |
+
"transformer_blocks.44.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 716 |
+
"transformer_blocks.44.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 717 |
+
"transformer_blocks.44.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 718 |
+
"transformer_blocks.44.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 719 |
+
"transformer_blocks.44.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 720 |
+
"transformer_blocks.44.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 721 |
+
"transformer_blocks.44.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 722 |
+
"transformer_blocks.44.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 723 |
+
"transformer_blocks.44.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 724 |
+
"transformer_blocks.44.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 725 |
+
"transformer_blocks.44.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 726 |
+
"transformer_blocks.44.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 727 |
+
"transformer_blocks.44.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 728 |
+
"transformer_blocks.44.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 729 |
+
"transformer_blocks.44.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 730 |
+
"transformer_blocks.44.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 731 |
+
"transformer_blocks.44.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 732 |
+
"transformer_blocks.45.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 733 |
+
"transformer_blocks.45.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 734 |
+
"transformer_blocks.45.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 735 |
+
"transformer_blocks.45.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 736 |
+
"transformer_blocks.45.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 737 |
+
"transformer_blocks.45.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 738 |
+
"transformer_blocks.45.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 739 |
+
"transformer_blocks.45.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 740 |
+
"transformer_blocks.45.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 741 |
+
"transformer_blocks.45.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 742 |
+
"transformer_blocks.45.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 743 |
+
"transformer_blocks.45.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 744 |
+
"transformer_blocks.45.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 745 |
+
"transformer_blocks.45.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 746 |
+
"transformer_blocks.45.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 747 |
+
"transformer_blocks.45.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 748 |
+
"transformer_blocks.45.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 749 |
+
"transformer_blocks.45.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 750 |
+
"transformer_blocks.46.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 751 |
+
"transformer_blocks.46.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 752 |
+
"transformer_blocks.46.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 753 |
+
"transformer_blocks.46.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 754 |
+
"transformer_blocks.46.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 755 |
+
"transformer_blocks.46.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 756 |
+
"transformer_blocks.46.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 757 |
+
"transformer_blocks.46.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 758 |
+
"transformer_blocks.46.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 759 |
+
"transformer_blocks.46.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 760 |
+
"transformer_blocks.46.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 761 |
+
"transformer_blocks.46.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 762 |
+
"transformer_blocks.46.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 763 |
+
"transformer_blocks.46.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 764 |
+
"transformer_blocks.46.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 765 |
+
"transformer_blocks.46.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 766 |
+
"transformer_blocks.46.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 767 |
+
"transformer_blocks.46.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 768 |
+
"transformer_blocks.47.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 769 |
+
"transformer_blocks.47.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 770 |
+
"transformer_blocks.47.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 771 |
+
"transformer_blocks.47.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 772 |
+
"transformer_blocks.47.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 773 |
+
"transformer_blocks.47.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 774 |
+
"transformer_blocks.47.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 775 |
+
"transformer_blocks.47.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 776 |
+
"transformer_blocks.47.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 777 |
+
"transformer_blocks.47.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 778 |
+
"transformer_blocks.47.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 779 |
+
"transformer_blocks.47.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 780 |
+
"transformer_blocks.47.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 781 |
+
"transformer_blocks.47.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 782 |
+
"transformer_blocks.47.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 783 |
+
"transformer_blocks.47.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 784 |
+
"transformer_blocks.47.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 785 |
+
"transformer_blocks.47.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 786 |
+
"transformer_blocks.48.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 787 |
+
"transformer_blocks.48.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 788 |
+
"transformer_blocks.48.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 789 |
+
"transformer_blocks.48.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 790 |
+
"transformer_blocks.48.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 791 |
+
"transformer_blocks.48.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 792 |
+
"transformer_blocks.48.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 793 |
+
"transformer_blocks.48.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 794 |
+
"transformer_blocks.48.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 795 |
+
"transformer_blocks.48.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 796 |
+
"transformer_blocks.48.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 797 |
+
"transformer_blocks.48.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 798 |
+
"transformer_blocks.48.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 799 |
+
"transformer_blocks.48.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 800 |
+
"transformer_blocks.48.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 801 |
+
"transformer_blocks.48.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 802 |
+
"transformer_blocks.48.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 803 |
+
"transformer_blocks.48.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 804 |
+
"transformer_blocks.49.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 805 |
+
"transformer_blocks.49.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 806 |
+
"transformer_blocks.49.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 807 |
+
"transformer_blocks.49.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 808 |
+
"transformer_blocks.49.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 809 |
+
"transformer_blocks.49.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 810 |
+
"transformer_blocks.49.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 811 |
+
"transformer_blocks.49.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 812 |
+
"transformer_blocks.49.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 813 |
+
"transformer_blocks.49.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 814 |
+
"transformer_blocks.49.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 815 |
+
"transformer_blocks.49.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 816 |
+
"transformer_blocks.49.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 817 |
+
"transformer_blocks.49.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 818 |
+
"transformer_blocks.49.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 819 |
+
"transformer_blocks.49.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 820 |
+
"transformer_blocks.49.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 821 |
+
"transformer_blocks.49.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 822 |
+
"transformer_blocks.5.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 823 |
+
"transformer_blocks.5.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 824 |
+
"transformer_blocks.5.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 825 |
+
"transformer_blocks.5.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 826 |
+
"transformer_blocks.5.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 827 |
+
"transformer_blocks.5.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 828 |
+
"transformer_blocks.5.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 829 |
+
"transformer_blocks.5.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 830 |
+
"transformer_blocks.5.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 831 |
+
"transformer_blocks.5.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 832 |
+
"transformer_blocks.5.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 833 |
+
"transformer_blocks.5.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 834 |
+
"transformer_blocks.5.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 835 |
+
"transformer_blocks.5.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 836 |
+
"transformer_blocks.5.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 837 |
+
"transformer_blocks.5.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 838 |
+
"transformer_blocks.5.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 839 |
+
"transformer_blocks.5.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 840 |
+
"transformer_blocks.7.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 841 |
+
"transformer_blocks.7.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 842 |
+
"transformer_blocks.7.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 843 |
+
"transformer_blocks.7.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 844 |
+
"transformer_blocks.7.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 845 |
+
"transformer_blocks.7.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 846 |
+
"transformer_blocks.7.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 847 |
+
"transformer_blocks.7.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 848 |
+
"transformer_blocks.7.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 849 |
+
"transformer_blocks.7.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 850 |
+
"transformer_blocks.7.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 851 |
+
"transformer_blocks.7.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 852 |
+
"transformer_blocks.7.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 853 |
+
"transformer_blocks.7.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 854 |
+
"transformer_blocks.7.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 855 |
+
"transformer_blocks.7.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 856 |
+
"transformer_blocks.7.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 857 |
+
"transformer_blocks.7.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 858 |
+
"transformer_blocks.8.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 859 |
+
"transformer_blocks.8.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 860 |
+
"transformer_blocks.8.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 861 |
+
"transformer_blocks.8.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 862 |
+
"transformer_blocks.8.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 863 |
+
"transformer_blocks.8.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 864 |
+
"transformer_blocks.8.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 865 |
+
"transformer_blocks.8.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 866 |
+
"transformer_blocks.8.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 867 |
+
"transformer_blocks.8.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 868 |
+
"transformer_blocks.8.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 869 |
+
"transformer_blocks.8.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 870 |
+
"transformer_blocks.8.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 871 |
+
"transformer_blocks.8.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 872 |
+
"transformer_blocks.8.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 873 |
+
"transformer_blocks.8.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 874 |
+
"transformer_blocks.8.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 875 |
+
"transformer_blocks.8.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 876 |
+
"transformer_blocks.9.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 877 |
+
"transformer_blocks.9.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 878 |
+
"transformer_blocks.9.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 879 |
+
"transformer_blocks.9.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 880 |
+
"transformer_blocks.9.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 881 |
+
"transformer_blocks.9.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 882 |
+
"transformer_blocks.9.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 883 |
+
"transformer_blocks.9.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 884 |
+
"transformer_blocks.9.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 885 |
+
"transformer_blocks.9.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 886 |
+
"transformer_blocks.9.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 887 |
+
"transformer_blocks.9.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 888 |
+
"transformer_blocks.9.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 889 |
+
"transformer_blocks.9.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 890 |
+
"transformer_blocks.9.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 891 |
+
"transformer_blocks.9.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 892 |
+
"transformer_blocks.9.norm1.weight": "diffusion_pytorch_model-00003-of-00003.safetensors",
|
| 893 |
+
"transformer_blocks.9.norm2.weight": "diffusion_pytorch_model-00003-of-00003.safetensors"
|
| 894 |
+
}
|
| 895 |
+
}
|
fl2va_int8_convrot/hyperflow_h3_flash_int8.py
ADDED
|
@@ -0,0 +1,410 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2026 The HyperFlow authors. Licensed under the Apache License, Version 2.0.
|
| 2 |
+
"""INT8 W8A8 linears with a Hadamard-rotated input dimension.
|
| 3 |
+
|
| 4 |
+
A dense ``y = x @ W^T`` is stored as ``qweight = round(W R / wscale)`` (int8, one fp32 scale per output channel), where
|
| 5 |
+
``R`` is a block-diagonal regular Hadamard of size ``group``. ``R`` is orthonormal, so ``y = (x R) @ (W R)^T``: at run
|
| 6 |
+
time the activation is rotated and quantized per token, multiplied in int8 with an exact int32 accumulator, and
|
| 7 |
+
rescaled. The rotation spreads outlier channels across the group, which is what makes per-token int8 activations work.
|
| 8 |
+
|
| 9 |
+
On CUDA the rotation + quantization and the GEMM are Triton kernels (compiled on first use). Every kernel fits the
|
| 10 |
+
99 KiB of shared memory per block of Ampere, Ada and consumer Blackwell GPUs. The int8 GEMM runs as a Triton kernel or
|
| 11 |
+
as cuBLASLt (``torch._int_mm``) plus a Triton epilogue; both use the same int32 accumulator and the same fp32 multiply
|
| 12 |
+
order, so they give bitwise identical outputs. cuBLASLt is faster from compute capability 10 on, Triton on Hopper.
|
| 13 |
+
The B300 (compute capability 10.3) has INT8 tensor cores at about 1/20 of the B200's, so there the int8 codes are
|
| 14 |
+
multiplied on bf16 tensor cores into an fp32 accumulator: products are exact, and the sum matches the int32 one while
|
| 15 |
+
it stays below 2**24, which the rotated activations keep well clear of.
|
| 16 |
+
Elsewhere a plain torch implementation of the same scheme runs.
|
| 17 |
+
|
| 18 |
+
`KERNEL_OPTIONS` (set by `load_pipeline`, no weight change) picks the kernels at run time:
|
| 19 |
+
|
| 20 |
+
* ``int8_gemm``: ``"auto"`` (the choice above), ``"triton"``, ``"cublas"``, ``"bf16"``, or ``"sgl"``: CUTLASS
|
| 21 |
+
``sgl_kernel.int8_scaled_mm`` with the scales in its epilogue, within 1 ulp of Triton and 1.25 to 1.45x faster on
|
| 22 |
+
H200 (Triton when sgl_kernel is missing).
|
| 23 |
+
* ``rotate_quant``: ``"dense"`` (the kernel above) or ``"factored"``: a 256-channel group rotated as ``H16 X H16``, two
|
| 24 |
+
K = 16 dots in 8.5 KiB of shared memory, 1.6 to 2.0x faster on H200; it rounds the rotated activation like the dense
|
| 25 |
+
kernel up to rare one-code differences.
|
| 26 |
+
"""
|
| 27 |
+
|
| 28 |
+
from __future__ import annotations
|
| 29 |
+
|
| 30 |
+
import functools
|
| 31 |
+
from types import SimpleNamespace
|
| 32 |
+
from typing import Any, ClassVar
|
| 33 |
+
|
| 34 |
+
import torch
|
| 35 |
+
from torch import Tensor, nn
|
| 36 |
+
|
| 37 |
+
#: Run-time kernel choices.
|
| 38 |
+
INT8_GEMMS = ("auto", "triton", "cublas", "sgl", "bf16")
|
| 39 |
+
ROTATE_QUANTS = ("dense", "factored")
|
| 40 |
+
|
| 41 |
+
#: Rows below this go through the torch path: `torch._int_mm` needs more than 16 rows, and so few rows are not worth
|
| 42 |
+
#: a kernel launch.
|
| 43 |
+
_MIN_KERNEL_ROWS = 17
|
| 44 |
+
|
| 45 |
+
#: Run-time kernel choices for every `Int8RotLinear`; `load_pipeline` sets them.
|
| 46 |
+
KERNEL_OPTIONS: dict[str, Any] = {"int8_gemm": "auto", "rotate_quant": "dense"}
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
def set_kernel_options(*, int8_gemm: str | None = None, rotate_quant: str | None = None) -> None:
|
| 50 |
+
if int8_gemm is not None:
|
| 51 |
+
if int8_gemm not in INT8_GEMMS:
|
| 52 |
+
raise ValueError(f"int8_gemm must be one of {INT8_GEMMS}, got {int8_gemm!r}")
|
| 53 |
+
KERNEL_OPTIONS["int8_gemm"] = int8_gemm
|
| 54 |
+
if rotate_quant is not None:
|
| 55 |
+
if rotate_quant not in ROTATE_QUANTS:
|
| 56 |
+
raise ValueError(f"rotate_quant must be one of {ROTATE_QUANTS}, got {rotate_quant!r}")
|
| 57 |
+
KERNEL_OPTIONS["rotate_quant"] = rotate_quant
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
@functools.cache
|
| 61 |
+
def _sgl_int8_scaled_mm():
|
| 62 |
+
"""sgl_kernel's ``int8_scaled_mm``, or None when sgl_kernel is not importable."""
|
| 63 |
+
try:
|
| 64 |
+
from sgl_kernel import int8_scaled_mm
|
| 65 |
+
except ImportError:
|
| 66 |
+
return None
|
| 67 |
+
return int8_scaled_mm
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def _has_bf16_mm() -> bool:
|
| 71 |
+
# `torch.mm(..., out_dtype=)` is PyTorch 2.8+.
|
| 72 |
+
return tuple(int(v) for v in torch.__version__.split(".")[:2]) >= (2, 8)
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
@functools.cache
|
| 76 |
+
def _auto_int8_gemm(device: torch.device) -> str:
|
| 77 |
+
capability = torch.cuda.get_device_capability(device)
|
| 78 |
+
if capability == (10, 3) and _has_bf16_mm():
|
| 79 |
+
return "bf16"
|
| 80 |
+
if hasattr(torch, "_int_mm") and capability[0] >= 10:
|
| 81 |
+
return "cublas"
|
| 82 |
+
return "triton"
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def resolve_int8_gemm(device: torch.device) -> str:
|
| 86 |
+
"""The GEMM ``KERNEL_OPTIONS["int8_gemm"]`` runs as on ``device``: ``"triton"``, ``"cublas"``, ``"bf16"`` or
|
| 87 |
+
``"sgl"``."""
|
| 88 |
+
choice = KERNEL_OPTIONS["int8_gemm"]
|
| 89 |
+
if choice == "auto":
|
| 90 |
+
return _auto_int8_gemm(device)
|
| 91 |
+
if (
|
| 92 |
+
(choice == "sgl" and _sgl_int8_scaled_mm() is None)
|
| 93 |
+
or (choice == "cublas" and not hasattr(torch, "_int_mm"))
|
| 94 |
+
or (choice == "bf16" and not _has_bf16_mm())
|
| 95 |
+
):
|
| 96 |
+
return "triton"
|
| 97 |
+
return choice
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
@functools.cache
|
| 101 |
+
def regular_hadamard(group: int) -> Tensor:
|
| 102 |
+
"""``kron(H4 / 2, ..., H4 / 2)`` of size ``group`` (a power of 4): orthonormal, symmetric, rows sum to one."""
|
| 103 |
+
h4 = torch.tensor([[1, 1, 1, -1], [1, 1, -1, 1], [1, -1, 1, 1], [-1, 1, 1, 1]], dtype=torch.float64) / 2
|
| 104 |
+
h, n = torch.ones(1, 1, dtype=torch.float64), 1
|
| 105 |
+
while n < group:
|
| 106 |
+
h, n = torch.kron(h, h4), n * 4
|
| 107 |
+
if n != group:
|
| 108 |
+
raise ValueError(f"Hadamard group {group} is not a power of 4")
|
| 109 |
+
return h.float()
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
def hadamard_factors(group: int) -> tuple[int, int] | None:
|
| 113 |
+
"""``(GA, GB)`` with ``regular_hadamard(group) == kron(regular_hadamard(GA), regular_hadamard(GB))``, both at
|
| 114 |
+
least 16 (the smallest bf16 ``tl.dot`` K); None when ``group`` cannot be split that way."""
|
| 115 |
+
n = group.bit_length() - 1
|
| 116 |
+
if group < 256 or group != 1 << n or n % 2:
|
| 117 |
+
return None
|
| 118 |
+
ga = 4 ** (n // 4)
|
| 119 |
+
return ga, group // ga
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
@functools.cache
|
| 123 |
+
def _rotation(group: int, device: torch.device) -> Tensor:
|
| 124 |
+
return regular_hadamard(group).to(device=device, dtype=torch.bfloat16)
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
class Int8RotLinear(nn.Module):
|
| 128 |
+
"""Bias-free W8A8 linear: ``y = (q(x R) @ qweight^T) * s_x * wscale``, ``R = blockdiag(regular Hadamard)``.
|
| 129 |
+
|
| 130 |
+
Linears that read one input (``to_q``, ``to_k``, ``to_v``) quantize it once: a layer with ``keep_input = True``
|
| 131 |
+
leaves its quantized input for the next layer, which reuses it if it receives the exact same, unmodified tensor.
|
| 132 |
+
Any other layer clears it, so nothing outlives the projections.
|
| 133 |
+
"""
|
| 134 |
+
|
| 135 |
+
_last_input: ClassVar[dict[str, Any]] = {}
|
| 136 |
+
|
| 137 |
+
def __init__(self, in_features: int, out_features: int, group: int) -> None:
|
| 138 |
+
super().__init__()
|
| 139 |
+
if in_features % group:
|
| 140 |
+
raise ValueError(f"in_features {in_features} is not a multiple of the Hadamard group {group}")
|
| 141 |
+
self.in_features, self.out_features, self.group = in_features, out_features, group
|
| 142 |
+
self.keep_input = False
|
| 143 |
+
# Parameters, not buffers: diffusers' streamed group offloading moves module buffers on but never back off.
|
| 144 |
+
self.qweight = nn.Parameter(torch.zeros(out_features, in_features, dtype=torch.int8), requires_grad=False)
|
| 145 |
+
self.wscale = nn.Parameter(torch.ones(out_features, dtype=torch.float32), requires_grad=False)
|
| 146 |
+
|
| 147 |
+
def extra_repr(self) -> str:
|
| 148 |
+
return f"in_features={self.in_features}, out_features={self.out_features}, group={self.group}"
|
| 149 |
+
|
| 150 |
+
def _quantize(self, x: Tensor, x2: Tensor, kernels: SimpleNamespace) -> tuple[Tensor, Tensor]:
|
| 151 |
+
cache = Int8RotLinear._last_input
|
| 152 |
+
# Inference tensors (`torch.inference_mode`) have no version counter.
|
| 153 |
+
version = None if x.is_inference() else x._version
|
| 154 |
+
hit = cache.get("x") is x and cache.get("version") == version and cache.get("group") == self.group
|
| 155 |
+
quantized = cache["value"] if hit else kernels.rotate_quant(x2, self.group)
|
| 156 |
+
cache.clear()
|
| 157 |
+
if self.keep_input:
|
| 158 |
+
cache.update(x=x, version=version, group=self.group, value=quantized)
|
| 159 |
+
return quantized
|
| 160 |
+
|
| 161 |
+
def forward(self, x: Tensor) -> Tensor:
|
| 162 |
+
shape = x.shape
|
| 163 |
+
x2 = x.reshape(-1, self.in_features).to(torch.bfloat16).contiguous()
|
| 164 |
+
kernels = _kernels() if x2.is_cuda and x2.shape[0] >= _MIN_KERNEL_ROWS else None
|
| 165 |
+
if kernels is None:
|
| 166 |
+
Int8RotLinear._last_input.clear()
|
| 167 |
+
y = self._forward_torch(x2, _rotation(self.group, x2.device))
|
| 168 |
+
else:
|
| 169 |
+
xq, sx = self._quantize(x, x2, kernels)
|
| 170 |
+
y = kernels.int8_matmul(xq, self.qweight, sx, self.wscale)
|
| 171 |
+
return y.reshape(*shape[:-1], self.out_features).to(x.dtype)
|
| 172 |
+
|
| 173 |
+
def _forward_torch(self, x2: Tensor, rot: Tensor) -> Tensor:
|
| 174 |
+
"""The same scheme in plain torch; the rotated activation is rounded to bf16 before quantization."""
|
| 175 |
+
g = self.group
|
| 176 |
+
xr = (x2.reshape(-1, self.in_features // g, g) @ rot).reshape(x2.shape).float()
|
| 177 |
+
sx = xr.abs().amax(1, keepdim=True).clamp_min(1e-12) / 127.0
|
| 178 |
+
xq = (xr / sx).round().clamp(-127, 127)
|
| 179 |
+
return ((xq @ self.qweight.float().t()) * sx * self.wscale[None, :]).to(torch.bfloat16)
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
@functools.cache
|
| 183 |
+
def _kernels() -> SimpleNamespace | None:
|
| 184 |
+
"""``rotate_quant`` and ``int8_matmul`` as Triton kernels; ``None`` when Triton is not installed."""
|
| 185 |
+
try:
|
| 186 |
+
import triton
|
| 187 |
+
import triton.language as tl
|
| 188 |
+
except ImportError:
|
| 189 |
+
return None
|
| 190 |
+
|
| 191 |
+
ROTATE_BM = 64
|
| 192 |
+
FACTORED_BM = 16
|
| 193 |
+
|
| 194 |
+
@triton.jit
|
| 195 |
+
def rotate_quant_kernel(
|
| 196 |
+
x_ptr, h_ptr, q_ptr, s_ptr, M, K, stride_xm, stride_qm,
|
| 197 |
+
G: tl.constexpr, BM: tl.constexpr, BN: tl.constexpr,
|
| 198 |
+
): # fmt: skip
|
| 199 |
+
# Two passes over the row block: the per-token scale needs the absmax of the whole rotated row first.
|
| 200 |
+
# The Hadamard streams through in G x BN column tiles, so shared memory is (BM * G + G * BN) * 2 bytes.
|
| 201 |
+
rows = tl.program_id(0) * BM + tl.arange(0, BM)
|
| 202 |
+
rows64 = rows.to(tl.int64)
|
| 203 |
+
cols = tl.arange(0, G)
|
| 204 |
+
tile = tl.arange(0, BN)
|
| 205 |
+
rmask = rows < M
|
| 206 |
+
amax = tl.zeros((BM,), dtype=tl.float32)
|
| 207 |
+
for g in range(0, K, G):
|
| 208 |
+
x = tl.load(x_ptr + rows64[:, None] * stride_xm + (g + cols)[None, :], mask=rmask[:, None], other=0.0)
|
| 209 |
+
for n in range(0, G, BN):
|
| 210 |
+
h = tl.load(h_ptr + cols[:, None] * G + (n + tile)[None, :])
|
| 211 |
+
amax = tl.maximum(amax, tl.max(tl.abs(tl.dot(x, h)), axis=1))
|
| 212 |
+
scale = tl.maximum(amax, 1e-12) / 127.0
|
| 213 |
+
tl.store(s_ptr + rows, scale, mask=rmask)
|
| 214 |
+
inv = 1.0 / scale
|
| 215 |
+
for g in range(0, K, G):
|
| 216 |
+
x = tl.load(x_ptr + rows64[:, None] * stride_xm + (g + cols)[None, :], mask=rmask[:, None], other=0.0)
|
| 217 |
+
for n in range(0, G, BN):
|
| 218 |
+
h = tl.load(h_ptr + cols[:, None] * G + (n + tile)[None, :])
|
| 219 |
+
q = tl.extra.cuda.libdevice.rint(tl.dot(x, h) * inv[:, None])
|
| 220 |
+
q = tl.minimum(tl.maximum(q, -127.0), 127.0).to(tl.int8)
|
| 221 |
+
tl.store(q_ptr + rows64[:, None] * stride_qm + (g + n + tile)[None, :], q, mask=rmask[:, None])
|
| 222 |
+
|
| 223 |
+
@triton.jit
|
| 224 |
+
def rotate_quant_factored_kernel(
|
| 225 |
+
x_ptr, ha_ptr, hb_ptr, q_ptr, s_ptr, M, K, stride_xm, stride_qm,
|
| 226 |
+
GA: tl.constexpr, GB: tl.constexpr, BM: tl.constexpr,
|
| 227 |
+
): # fmt: skip
|
| 228 |
+
# Channel g + a * GB + b of a group is X[a, b]; the rotated group is H_GA X H_GB. Pass 0 takes the row absmax,
|
| 229 |
+
# pass 1 rotates again and writes int8. The fp32 input of the second dot is split into three bf16 terms
|
| 230 |
+
# (8 + 8 + 8 significand bits), so it is exact; a tf32 dot or a two-term split rounds it measurably.
|
| 231 |
+
# The second dot is batched per row, so its result is already in channel order.
|
| 232 |
+
G: tl.constexpr = GA * GB
|
| 233 |
+
rows = tl.program_id(0) * BM + tl.arange(0, BM)
|
| 234 |
+
rows64 = rows.to(tl.int64)
|
| 235 |
+
cols = tl.arange(0, G)
|
| 236 |
+
rmask = rows < M
|
| 237 |
+
ia = tl.arange(0, GA)
|
| 238 |
+
ib = tl.arange(0, GB)
|
| 239 |
+
ha = tl.broadcast_to(tl.load(ha_ptr + ia[:, None] * GA + ia[None, :])[None, :, :], (BM, GA, GA))
|
| 240 |
+
hb = tl.load(hb_ptr + ib[:, None] * GB + ib[None, :])
|
| 241 |
+
amax = tl.zeros((BM,), dtype=tl.float32)
|
| 242 |
+
inv = tl.zeros((BM,), dtype=tl.float32)
|
| 243 |
+
for p in tl.static_range(2):
|
| 244 |
+
for g in range(0, K, G):
|
| 245 |
+
x = tl.load(x_ptr + rows64[:, None] * stride_xm + (g + cols)[None, :], mask=rmask[:, None], other=0.0)
|
| 246 |
+
z = tl.reshape(tl.dot(tl.reshape(x, (BM * GA, GB)), hb), (BM, GA, GB))
|
| 247 |
+
z_hi = z.to(tl.bfloat16)
|
| 248 |
+
z = z - z_hi.to(tl.float32)
|
| 249 |
+
z_mid = z.to(tl.bfloat16)
|
| 250 |
+
z_lo = (z - z_mid.to(tl.float32)).to(tl.bfloat16)
|
| 251 |
+
y = tl.dot(ha, z_lo, acc=tl.dot(ha, z_mid, acc=tl.dot(ha, z_hi)))
|
| 252 |
+
y = tl.reshape(y, (BM, G))
|
| 253 |
+
if p == 0:
|
| 254 |
+
amax = tl.maximum(amax, tl.max(tl.abs(y), axis=1))
|
| 255 |
+
else:
|
| 256 |
+
q = tl.extra.cuda.libdevice.rint(y * inv[:, None])
|
| 257 |
+
q = tl.minimum(tl.maximum(q, -127.0), 127.0).to(tl.int8)
|
| 258 |
+
tl.store(q_ptr + rows64[:, None] * stride_qm + (g + cols)[None, :], q, mask=rmask[:, None])
|
| 259 |
+
if p == 0:
|
| 260 |
+
scale = tl.maximum(amax, 1e-12) / 127.0
|
| 261 |
+
tl.store(s_ptr + rows, scale, mask=rmask)
|
| 262 |
+
inv = 1.0 / scale
|
| 263 |
+
|
| 264 |
+
@functools.cache
|
| 265 |
+
def rotate_tile(device_index: int, group: int) -> int:
|
| 266 |
+
# At group 256, 128 columns take 96 KiB: that fits every GPU from Ampere on (99 KiB per block).
|
| 267 |
+
shared = triton.runtime.driver.active.utils.get_device_properties(device_index)["max_shared_mem"]
|
| 268 |
+
tile = 128 if (ROTATE_BM * group + group * 128) * 2 <= shared else 64
|
| 269 |
+
return min(tile, group)
|
| 270 |
+
|
| 271 |
+
configs = [
|
| 272 |
+
triton.Config({"BM": bm, "BN": bn, "BK": bk, "GROUP_M": 8}, num_stages=stages, num_warps=warps)
|
| 273 |
+
for bm, bn, bk, stages, warps in [
|
| 274 |
+
(128, 256, 128, 3, 8),
|
| 275 |
+
(256, 128, 128, 3, 8),
|
| 276 |
+
(128, 128, 128, 4, 8),
|
| 277 |
+
(128, 256, 64, 4, 8),
|
| 278 |
+
(256, 128, 64, 4, 8),
|
| 279 |
+
(128, 128, 64, 5, 4),
|
| 280 |
+
]
|
| 281 |
+
]
|
| 282 |
+
|
| 283 |
+
@triton.autotune(configs=configs, key=["M_BUCKET", "N", "K"])
|
| 284 |
+
@triton.jit
|
| 285 |
+
def int8_mm_kernel(
|
| 286 |
+
a_ptr, b_ptr, c_ptr, sa_ptr, sb_ptr, M, N, K, M_BUCKET, stride_am, stride_bn, stride_cm,
|
| 287 |
+
BM: tl.constexpr, BN: tl.constexpr, BK: tl.constexpr, GROUP_M: tl.constexpr,
|
| 288 |
+
): # fmt: skip
|
| 289 |
+
pid = tl.program_id(0)
|
| 290 |
+
num_m = tl.cdiv(M, BM)
|
| 291 |
+
num_n = tl.cdiv(N, BN)
|
| 292 |
+
group = GROUP_M * num_n
|
| 293 |
+
first_m = (pid // group) * GROUP_M
|
| 294 |
+
size_m = tl.minimum(num_m - first_m, GROUP_M)
|
| 295 |
+
pid_m = first_m + (pid % group) % size_m
|
| 296 |
+
pid_n = (pid % group) // size_m
|
| 297 |
+
rm = pid_m * BM + tl.arange(0, BM)
|
| 298 |
+
rn = pid_n * BN + tl.arange(0, BN)
|
| 299 |
+
rk = tl.arange(0, BK)
|
| 300 |
+
a_ptrs = a_ptr + rm.to(tl.int64)[:, None] * stride_am + rk[None, :]
|
| 301 |
+
b_ptrs = b_ptr + rn.to(tl.int64)[None, :] * stride_bn + rk[:, None]
|
| 302 |
+
acc = tl.zeros((BM, BN), dtype=tl.int32)
|
| 303 |
+
for k in range(0, K, BK):
|
| 304 |
+
a = tl.load(a_ptrs, mask=(rm[:, None] < M) & (k + rk[None, :] < K), other=0)
|
| 305 |
+
b = tl.load(b_ptrs, mask=(rn[None, :] < N) & (k + rk[:, None] < K), other=0)
|
| 306 |
+
acc += tl.dot(a, b, out_dtype=tl.int32)
|
| 307 |
+
a_ptrs += BK
|
| 308 |
+
b_ptrs += BK
|
| 309 |
+
sa = tl.load(sa_ptr + rm, mask=rm < M, other=0.0)
|
| 310 |
+
sb = tl.load(sb_ptr + rn, mask=rn < N, other=0.0)
|
| 311 |
+
c = (acc.to(tl.float32) * sa[:, None] * sb[None, :]).to(tl.bfloat16)
|
| 312 |
+
mask = (rm[:, None] < M) & (rn[None, :] < N)
|
| 313 |
+
tl.store(c_ptr + rm.to(tl.int64)[:, None] * stride_cm + rn[None, :], c, mask=mask)
|
| 314 |
+
|
| 315 |
+
@triton.jit
|
| 316 |
+
def rescale_kernel(acc_ptr, sa_ptr, sb_ptr, c_ptr, M, N, BM: tl.constexpr, BN: tl.constexpr):
|
| 317 |
+
rm = tl.program_id(0) * BM + tl.arange(0, BM)
|
| 318 |
+
rn = tl.program_id(1) * BN + tl.arange(0, BN)
|
| 319 |
+
mask = (rm[:, None] < M) & (rn[None, :] < N)
|
| 320 |
+
offsets = rm.to(tl.int64)[:, None] * N + rn[None, :]
|
| 321 |
+
acc = tl.load(acc_ptr + offsets, mask=mask, other=0)
|
| 322 |
+
sa = tl.load(sa_ptr + rm, mask=rm < M, other=0.0)
|
| 323 |
+
sb = tl.load(sb_ptr + rn, mask=rn < N, other=0.0)
|
| 324 |
+
tl.store(c_ptr + offsets, (acc.to(tl.float32) * sa[:, None] * sb[None, :]).to(tl.bfloat16), mask=mask)
|
| 325 |
+
|
| 326 |
+
def rotate_quant(x: Tensor, group: int) -> tuple[Tensor, Tensor]:
|
| 327 |
+
M, K = x.shape
|
| 328 |
+
q = torch.empty(M, K, device=x.device, dtype=torch.int8)
|
| 329 |
+
s = torch.empty(M, device=x.device, dtype=torch.float32)
|
| 330 |
+
factors = hadamard_factors(group) if KERNEL_OPTIONS["rotate_quant"] == "factored" else None
|
| 331 |
+
if factors is not None:
|
| 332 |
+
ga, gb = factors
|
| 333 |
+
ha, hb = _rotation(ga, x.device), _rotation(gb, x.device)
|
| 334 |
+
rotate_quant_factored_kernel[(triton.cdiv(M, FACTORED_BM),)](
|
| 335 |
+
x, ha, hb, q, s, M, K, x.stride(0), q.stride(0), GA=ga, GB=gb, BM=FACTORED_BM, num_warps=4,
|
| 336 |
+
num_stages=4,
|
| 337 |
+
) # fmt: skip
|
| 338 |
+
return q, s
|
| 339 |
+
BN = rotate_tile(x.device.index, group)
|
| 340 |
+
rotate_quant_kernel[(triton.cdiv(M, ROTATE_BM),)](
|
| 341 |
+
x, _rotation(group, x.device), q, s, M, K, x.stride(0), q.stride(0), G=group, BM=ROTATE_BM, BN=BN,
|
| 342 |
+
num_warps=8, num_stages=1,
|
| 343 |
+
) # fmt: skip
|
| 344 |
+
return q, s
|
| 345 |
+
|
| 346 |
+
def matmul_triton(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor, c: Tensor) -> None:
|
| 347 |
+
M, K = a.shape
|
| 348 |
+
N = b.shape[0]
|
| 349 |
+
grid = lambda meta: (triton.cdiv(M, meta["BM"]) * triton.cdiv(N, meta["BN"]),) # noqa: E731
|
| 350 |
+
m_bucket = 1 << max(M - 1, 1).bit_length()
|
| 351 |
+
int8_mm_kernel[grid](a, b, c, sa, sb, M, N, K, m_bucket, a.stride(0), b.stride(0), c.stride(0))
|
| 352 |
+
|
| 353 |
+
def matmul_cublas(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor, c: Tensor) -> None:
|
| 354 |
+
# Row chunks keep the int32 accumulator near 1 GiB.
|
| 355 |
+
M, N = a.shape[0], b.shape[0]
|
| 356 |
+
chunk = max(128, ((1 << 28) // N) // 128 * 128)
|
| 357 |
+
for start in range(0, M, chunk):
|
| 358 |
+
stop = min(M, start + chunk)
|
| 359 |
+
if stop - start < _MIN_KERNEL_ROWS:
|
| 360 |
+
matmul_triton(a[start:stop], b, sa[start:stop], sb, c[start:stop])
|
| 361 |
+
continue
|
| 362 |
+
acc = torch._int_mm(a[start:stop], b.t())
|
| 363 |
+
grid = (triton.cdiv(stop - start, 64), triton.cdiv(N, 128))
|
| 364 |
+
rescale_kernel[grid](acc, sa[start:stop], sb, c[start:stop], stop - start, N, BM=64, BN=128, num_warps=8)
|
| 365 |
+
|
| 366 |
+
def matmul_bf16(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor, c: Tensor) -> None:
|
| 367 |
+
M, N = a.shape[0], b.shape[0]
|
| 368 |
+
weight = b.to(torch.bfloat16)
|
| 369 |
+
chunk = max(128, ((1 << 28) // N) // 128 * 128)
|
| 370 |
+
for start in range(0, M, chunk):
|
| 371 |
+
stop = min(M, start + chunk)
|
| 372 |
+
acc = torch.mm(a[start:stop].to(torch.bfloat16), weight.t(), out_dtype=torch.float32)
|
| 373 |
+
grid = (triton.cdiv(stop - start, 64), triton.cdiv(N, 128))
|
| 374 |
+
rescale_kernel[grid](acc, sa[start:stop], sb, c[start:stop], stop - start, N, BM=64, BN=128, num_warps=8)
|
| 375 |
+
|
| 376 |
+
def int8_matmul(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor) -> Tensor:
|
| 377 |
+
M, K = a.shape
|
| 378 |
+
N = b.shape[0]
|
| 379 |
+
gemm = resolve_int8_gemm(a.device)
|
| 380 |
+
if gemm == "sgl" and K % 16 == 0 and N % 16 == 0:
|
| 381 |
+
# b is the [N, K] row-major qweight; its transpose is the column-major [K, N] operand CUTLASS expects.
|
| 382 |
+
return _sgl_int8_scaled_mm()(a, b.t(), sa, sb, torch.bfloat16)
|
| 383 |
+
c = torch.empty(M, N, device=a.device, dtype=torch.bfloat16)
|
| 384 |
+
if gemm == "bf16":
|
| 385 |
+
matmul_bf16(a, b, sa, sb, c)
|
| 386 |
+
elif gemm == "cublas" and K % 8 == 0 and N % 8 == 0:
|
| 387 |
+
matmul_cublas(a, b, sa, sb, c)
|
| 388 |
+
else:
|
| 389 |
+
matmul_triton(a, b, sa, sb, c)
|
| 390 |
+
return c
|
| 391 |
+
|
| 392 |
+
jit = SimpleNamespace(
|
| 393 |
+
rotate_quant=rotate_quant_kernel,
|
| 394 |
+
rotate_quant_factored=rotate_quant_factored_kernel,
|
| 395 |
+
int8_mm=int8_mm_kernel,
|
| 396 |
+
rescale=rescale_kernel,
|
| 397 |
+
)
|
| 398 |
+
return SimpleNamespace(rotate_quant=rotate_quant, int8_matmul=int8_matmul, jit=jit, rotate_tile=rotate_tile)
|
| 399 |
+
|
| 400 |
+
|
| 401 |
+
__all__ = [
|
| 402 |
+
"INT8_GEMMS",
|
| 403 |
+
"KERNEL_OPTIONS",
|
| 404 |
+
"ROTATE_QUANTS",
|
| 405 |
+
"Int8RotLinear",
|
| 406 |
+
"hadamard_factors",
|
| 407 |
+
"regular_hadamard",
|
| 408 |
+
"resolve_int8_gemm",
|
| 409 |
+
"set_kernel_options",
|
| 410 |
+
]
|
fl2va_int8_convrot/hyperflow_h3_flash_transformer.py
ADDED
|
@@ -0,0 +1,403 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2026 The HyperFlow authors. Licensed under the Apache License, Version 2.0.
|
| 2 |
+
#
|
| 3 |
+
# `HyperFlowH3FlashTransformer3DModel.forward` is derived from `MiniMaxH3Transformer3DModel.forward` in diffusers
|
| 4 |
+
# (`models/transformers/transformer_minimax_h3.py`), Copyright 2025 The MiniMax Team and The HuggingFace Team,
|
| 5 |
+
# Apache License 2.0. See https://github.com/Video-Rebirth/hyperflow-h3-flash/blob/main/THIRD_PARTY_NOTICES.md.
|
| 6 |
+
"""The HyperFlow H3 Flash transformer: MiniMax-H3, compressed and conditioned on two times.
|
| 7 |
+
|
| 8 |
+
Four changes to `MiniMaxH3Transformer3DModel`, all driven by `config.json`:
|
| 9 |
+
|
| 10 |
+
* **Two-time conditioning.** An `endpoint_time_embedder` embeds the step's endpoint ``r`` next to the current time
|
| 11 |
+
``t``; every AdaLN reads ``temb(t, r) = emb_t(t) + hyperflow_gate * (emb_r(r) - emb_t(t))``.
|
| 12 |
+
* **Dropped blocks** (`dropped_blocks`): those blocks are identities and have no weights.
|
| 13 |
+
* **Low-rank linears** (`lowrank_ranks`): ``W ~= up @ down``, stored as `<name>.down.weight` (rank x in) and
|
| 14 |
+
`<name>.up.weight` (out x rank). Ranks are zero-padded to multiples of 64, in the checkpoint or at load
|
| 15 |
+
(`pad_lowrank_ranks`), so both GEMMs are aligned; `set_lowrank_rank_multiple` re-pads them at run time.
|
| 16 |
+
* **INT8 linears** (`quantization`): W8A8 with a Hadamard-rotated input, see `int8.py`.
|
| 17 |
+
|
| 18 |
+
Embeddings, AdaLN, the token refiner and the output heads are the base model's, in bf16 / fp32. The block
|
| 19 |
+
feed-forwards run in token chunks (`ChunkedFeedForward`, `set_ff_chunk`), which bounds their activations;
|
| 20 |
+
`set_block_chunk` slices every token-wise op of a block.
|
| 21 |
+
"""
|
| 22 |
+
|
| 23 |
+
from __future__ import annotations
|
| 24 |
+
|
| 25 |
+
import sys
|
| 26 |
+
from typing import Any, ClassVar
|
| 27 |
+
|
| 28 |
+
import torch
|
| 29 |
+
from diffusers import MiniMaxH3Transformer3DModel
|
| 30 |
+
from diffusers.configuration_utils import register_to_config
|
| 31 |
+
from diffusers.models.embeddings import TimestepEmbedding
|
| 32 |
+
from diffusers.models.modeling_utils import get_parameter_dtype
|
| 33 |
+
from diffusers.models.transformers.transformer_minimax_h3 import (
|
| 34 |
+
MINIMAX_H3_MODALITY_NUM,
|
| 35 |
+
MiniMaxH3TransformerOutput,
|
| 36 |
+
)
|
| 37 |
+
from diffusers.utils import apply_lora_scale
|
| 38 |
+
from torch import Tensor, nn
|
| 39 |
+
|
| 40 |
+
from .hyperflow_h3_flash_int8 import Int8RotLinear
|
| 41 |
+
|
| 42 |
+
#: Tokens per feed-forward chunk; a 5.2 s clip has about 38k, a 14.4 s clip about 105k.
|
| 43 |
+
FF_CHUNK_TOKENS = 16384
|
| 44 |
+
#: Low-rank ranks are padded to multiples of this at load, so both GEMMs of a low-rank linear are aligned.
|
| 45 |
+
RANK_MULTIPLE = 64
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
class LowRankLinear(nn.Module):
|
| 49 |
+
"""``y = up(down(x))``, the factorized replacement of a bias-free `nn.Linear`."""
|
| 50 |
+
|
| 51 |
+
def __init__(self, in_features: int, out_features: int, rank: int) -> None:
|
| 52 |
+
super().__init__()
|
| 53 |
+
self.in_features, self.out_features, self.rank = in_features, out_features, rank
|
| 54 |
+
self.down = nn.Linear(in_features, rank, bias=False)
|
| 55 |
+
self.up = nn.Linear(rank, out_features, bias=False)
|
| 56 |
+
|
| 57 |
+
def forward(self, x: Tensor) -> Tensor:
|
| 58 |
+
return self.up(self.down(x))
|
| 59 |
+
|
| 60 |
+
@torch.no_grad()
|
| 61 |
+
def pad_rank(self, multiple: int = RANK_MULTIPLE) -> bool:
|
| 62 |
+
"""Zero-pad the rank up to a multiple of ``multiple``: new rows of ``down`` and columns of ``up`` are zero, so
|
| 63 |
+
``up @ down`` is unchanged. Returns whether the rank changed."""
|
| 64 |
+
rank = -(-self.rank // multiple) * multiple
|
| 65 |
+
if rank == self.rank:
|
| 66 |
+
return False
|
| 67 |
+
extra = rank - self.rank
|
| 68 |
+
down, up = self.down.weight, self.up.weight
|
| 69 |
+
self.down.weight = nn.Parameter(torch.cat([down, down.new_zeros(extra, down.shape[1])]), requires_grad=False)
|
| 70 |
+
self.up.weight = nn.Parameter(torch.cat([up, up.new_zeros(up.shape[0], extra)], dim=1), requires_grad=False)
|
| 71 |
+
self.down.out_features = self.up.in_features = self.rank = rank
|
| 72 |
+
return True
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
class ChunkedFeedForward(nn.Module):
|
| 76 |
+
"""A block's feed-forward run over at most ``chunk_tokens`` tokens at a time; it keeps the block's ``net``.
|
| 77 |
+
|
| 78 |
+
The feed-forward is token-wise, so the chunks compute the same function; only the rounding of bf16 GEMMs can
|
| 79 |
+
change with their row count. It bounds the SwiGLU input, ``2 * ffn_dim`` wide per token (6 GiB for a 14.4 s
|
| 80 |
+
clip), to one chunk.
|
| 81 |
+
"""
|
| 82 |
+
|
| 83 |
+
def __init__(self, net: nn.ModuleList, out_features: int, chunk_tokens: int) -> None:
|
| 84 |
+
super().__init__()
|
| 85 |
+
self.net, self.out_features, self.chunk_tokens = net, out_features, chunk_tokens
|
| 86 |
+
|
| 87 |
+
def _forward(self, hidden_states: Tensor) -> Tensor:
|
| 88 |
+
for module in self.net:
|
| 89 |
+
hidden_states = module(hidden_states)
|
| 90 |
+
return hidden_states
|
| 91 |
+
|
| 92 |
+
def forward(self, hidden_states: Tensor) -> Tensor:
|
| 93 |
+
if hidden_states.shape[-2] <= self.chunk_tokens:
|
| 94 |
+
return self._forward(hidden_states)
|
| 95 |
+
out = hidden_states.new_empty(*hidden_states.shape[:-1], self.out_features)
|
| 96 |
+
for start in range(0, hidden_states.shape[-2], self.chunk_tokens):
|
| 97 |
+
stop = start + self.chunk_tokens
|
| 98 |
+
out[..., start:stop, :] = self._forward(hidden_states[..., start:stop, :])
|
| 99 |
+
return out
|
| 100 |
+
|
| 101 |
+
|
| 102 |
+
class DroppedBlock(nn.Module):
|
| 103 |
+
"""A removed transformer block: the hidden states go straight to the next block.
|
| 104 |
+
|
| 105 |
+
The signature is the block's own: context parallel hooks address `adaln_indices` by name.
|
| 106 |
+
"""
|
| 107 |
+
|
| 108 |
+
def forward(self, hidden_states: Tensor, temb=None, adaln_indices=None, rotary_emb=None, attention_mask=None):
|
| 109 |
+
return hidden_states
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
def _replace_linear(model: nn.Module, name: str, make: type[nn.Module], *args: Any) -> None:
|
| 113 |
+
owner_name, _, attr = name.rpartition(".")
|
| 114 |
+
owner = model.get_submodule(owner_name)
|
| 115 |
+
dense = owner[int(attr)] if isinstance(owner, nn.ModuleList) else getattr(owner, attr)
|
| 116 |
+
if type(dense) is not nn.Linear or dense.bias is not None:
|
| 117 |
+
raise TypeError(f"{name} is not a bias-free nn.Linear")
|
| 118 |
+
replacement = make(dense.in_features, dense.out_features, *args)
|
| 119 |
+
if isinstance(owner, nn.ModuleList):
|
| 120 |
+
owner[int(attr)] = replacement
|
| 121 |
+
else:
|
| 122 |
+
setattr(owner, attr, replacement)
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
class HyperFlowH3FlashTransformer3DModel(MiniMaxH3Transformer3DModel):
|
| 126 |
+
"""`MiniMaxH3Transformer3DModel` conditioned on ``(t, r)``, with dropped blocks, low-rank and INT8 linears."""
|
| 127 |
+
|
| 128 |
+
# Matched against whole dotted name parts at load time, so `time_embedder` does not cover the endpoint embedder.
|
| 129 |
+
_keep_in_fp32_modules: ClassVar[list[str]] = [
|
| 130 |
+
*MiniMaxH3Transformer3DModel._keep_in_fp32_modules,
|
| 131 |
+
"endpoint_time_embedder",
|
| 132 |
+
"wscale",
|
| 133 |
+
]
|
| 134 |
+
|
| 135 |
+
@register_to_config
|
| 136 |
+
def __init__(
|
| 137 |
+
self,
|
| 138 |
+
num_attention_heads: int = 56,
|
| 139 |
+
attention_head_dim: int = 128,
|
| 140 |
+
hidden_size: int = 5376,
|
| 141 |
+
num_layers: int = 50,
|
| 142 |
+
num_refiner_layers: int = 2,
|
| 143 |
+
ffn_dim: int = 14336,
|
| 144 |
+
in_channels: int = 24,
|
| 145 |
+
audio_in_channels: int = 32,
|
| 146 |
+
patch_size: tuple[int, int, int] = (1, 2, 2),
|
| 147 |
+
text_dim: int = 5120,
|
| 148 |
+
freq_dim: int = 256,
|
| 149 |
+
time_embed_hidden_dim: int = 5376,
|
| 150 |
+
time_embed_dim: int = 16,
|
| 151 |
+
rope_freq_dim: int = 16,
|
| 152 |
+
rope_theta: float = 10000.0,
|
| 153 |
+
norm_eps: float = 1e-5,
|
| 154 |
+
qk_norm_eps: float = 1e-5,
|
| 155 |
+
final_norm_eps: float = 1e-5,
|
| 156 |
+
hyperflow_gate: float = 0.25,
|
| 157 |
+
dropped_blocks: list[int] | None = None,
|
| 158 |
+
lowrank_ranks: dict[str, int] | None = None,
|
| 159 |
+
quantization: dict[str, Any] | None = None,
|
| 160 |
+
) -> None:
|
| 161 |
+
super().__init__(
|
| 162 |
+
num_attention_heads=num_attention_heads,
|
| 163 |
+
attention_head_dim=attention_head_dim,
|
| 164 |
+
hidden_size=hidden_size,
|
| 165 |
+
num_layers=num_layers,
|
| 166 |
+
num_refiner_layers=num_refiner_layers,
|
| 167 |
+
ffn_dim=ffn_dim,
|
| 168 |
+
in_channels=in_channels,
|
| 169 |
+
audio_in_channels=audio_in_channels,
|
| 170 |
+
patch_size=patch_size,
|
| 171 |
+
text_dim=text_dim,
|
| 172 |
+
freq_dim=freq_dim,
|
| 173 |
+
time_embed_hidden_dim=time_embed_hidden_dim,
|
| 174 |
+
time_embed_dim=time_embed_dim,
|
| 175 |
+
rope_freq_dim=rope_freq_dim,
|
| 176 |
+
rope_theta=rope_theta,
|
| 177 |
+
norm_eps=norm_eps,
|
| 178 |
+
qk_norm_eps=qk_norm_eps,
|
| 179 |
+
final_norm_eps=final_norm_eps,
|
| 180 |
+
)
|
| 181 |
+
self.endpoint_time_embedder = TimestepEmbedding(
|
| 182 |
+
in_channels=freq_dim, time_embed_dim=time_embed_hidden_dim, out_dim=time_embed_dim
|
| 183 |
+
)
|
| 184 |
+
|
| 185 |
+
dropped = set(dropped_blocks or [])
|
| 186 |
+
for index, block in enumerate(self.transformer_blocks):
|
| 187 |
+
if index in dropped:
|
| 188 |
+
self.transformer_blocks[index] = DroppedBlock()
|
| 189 |
+
else:
|
| 190 |
+
block.ff = ChunkedFeedForward(block.ff.net, block.ff.net[-1].out_features, FF_CHUNK_TOKENS)
|
| 191 |
+
for name, rank in (lowrank_ranks or {}).items():
|
| 192 |
+
if int(name.split(".")[1]) not in dropped:
|
| 193 |
+
_replace_linear(self, name, LowRankLinear, int(rank))
|
| 194 |
+
if quantization:
|
| 195 |
+
if quantization.get("method") != "int8_convrot":
|
| 196 |
+
raise ValueError(f"unsupported quantization method {quantization.get('method')!r}")
|
| 197 |
+
for name in quantization["linears"]:
|
| 198 |
+
_replace_linear(self, name, Int8RotLinear, int(quantization["group"]))
|
| 199 |
+
for block in self.transformer_blocks:
|
| 200 |
+
attn = getattr(block, "attn", None)
|
| 201 |
+
for name in ("to_q", "to_k"):
|
| 202 |
+
if isinstance(layer := getattr(attn, name, None), Int8RotLinear):
|
| 203 |
+
layer.keep_input = True
|
| 204 |
+
|
| 205 |
+
def pad_lowrank_ranks(self, multiple: int = RANK_MULTIPLE) -> int:
|
| 206 |
+
"""Zero-pad every low-rank linear to a rank multiple of ``multiple`` (see `LowRankLinear.pad_rank`) for a
|
| 207 |
+
checkpoint stored at its unpadded ranks. Returns how many linears changed."""
|
| 208 |
+
ranks = dict(self.config.lowrank_ranks or {})
|
| 209 |
+
padded = 0
|
| 210 |
+
for name, module in self.named_modules():
|
| 211 |
+
if isinstance(module, LowRankLinear) and module.pad_rank(multiple):
|
| 212 |
+
ranks[name] = module.rank
|
| 213 |
+
padded += 1
|
| 214 |
+
if padded:
|
| 215 |
+
self.register_to_config(lowrank_ranks=ranks)
|
| 216 |
+
return padded
|
| 217 |
+
|
| 218 |
+
def time_embedding(self, timestep: Tensor, endpoint_timestep: Tensor) -> Tensor:
|
| 219 |
+
"""``temb`` of every distinct ``(t, r)`` pair, at the time embedders' precision (fp32)."""
|
| 220 |
+
if endpoint_timestep.shape != timestep.shape:
|
| 221 |
+
raise ValueError(f"endpoint_timestep {list(endpoint_timestep.shape)} != timestep {list(timestep.shape)}")
|
| 222 |
+
dtype = get_parameter_dtype(self.time_embedder)
|
| 223 |
+
current = self.time_embedder(self.time_proj(timestep).to(dtype))
|
| 224 |
+
endpoint = self.endpoint_time_embedder(self.time_proj(endpoint_timestep).to(dtype))
|
| 225 |
+
return current + self.config.hyperflow_gate * (endpoint - current)
|
| 226 |
+
|
| 227 |
+
@apply_lora_scale("attention_kwargs")
|
| 228 |
+
def forward(
|
| 229 |
+
self,
|
| 230 |
+
hidden_states: Tensor,
|
| 231 |
+
audio_hidden_states: Tensor,
|
| 232 |
+
encoder_hidden_states: Tensor,
|
| 233 |
+
timestep: Tensor,
|
| 234 |
+
timestep_indices: Tensor,
|
| 235 |
+
token_tags: Tensor,
|
| 236 |
+
position_ids: Tensor,
|
| 237 |
+
video_indices: Tensor,
|
| 238 |
+
audio_indices: Tensor,
|
| 239 |
+
text_indices: Tensor,
|
| 240 |
+
endpoint_timestep: Tensor | None = None,
|
| 241 |
+
attention_kwargs: dict[str, Any] | None = None,
|
| 242 |
+
return_dict: bool = True,
|
| 243 |
+
) -> MiniMaxH3TransformerOutput | tuple[Tensor, Tensor]:
|
| 244 |
+
"""The base forward plus ``endpoint_timestep``: ``(timestep[i], endpoint_timestep[i])`` is the ``i``-th pair.
|
| 245 |
+
|
| 246 |
+
``timestep_indices`` maps every row of the packed sequence to its pair. Build the pairs with
|
| 247 |
+
`hyperflow_h3_flash.schedule.build_row_time_pairs`, or run the model through `flash_blocks(...)`.
|
| 248 |
+
"""
|
| 249 |
+
if endpoint_timestep is None:
|
| 250 |
+
raise ValueError(
|
| 251 |
+
"HyperFlow H3 Flash needs `endpoint_timestep`, the endpoint `r` of every `(t, r)` pair: it is a "
|
| 252 |
+
"few-step model and has no single-time mode. Run it through `hyperflow_h3_flash.flash_blocks(...)`."
|
| 253 |
+
)
|
| 254 |
+
if position_ids.ndim != 2 or position_ids.shape[-1] != 3:
|
| 255 |
+
raise ValueError(f"`position_ids` must be a `(seq_len, 3)` tensor, got {list(position_ids.shape)}.")
|
| 256 |
+
sequence_length = position_ids.shape[0]
|
| 257 |
+
if token_tags.shape != (sequence_length,) or timestep_indices.shape != (sequence_length,):
|
| 258 |
+
raise ValueError("`token_tags` and `timestep_indices` must both be `(seq_len,)` tensors.")
|
| 259 |
+
|
| 260 |
+
rotary_emb = self.rope(position_ids)
|
| 261 |
+
|
| 262 |
+
video_embeds = self.proj_in(hidden_states.to(get_parameter_dtype(self.proj_in)))
|
| 263 |
+
audio_embeds = self.audio_proj_in(audio_hidden_states.to(get_parameter_dtype(self.audio_proj_in)))
|
| 264 |
+
text_embeds = self.context_embedder(encoder_hidden_states.to(get_parameter_dtype(self.context_embedder)))
|
| 265 |
+
text_embeds = self.token_refiner(text_embeds)
|
| 266 |
+
|
| 267 |
+
hidden_states = text_embeds.new_zeros((text_embeds.shape[0], sequence_length, text_embeds.shape[-1]))
|
| 268 |
+
hidden_states = hidden_states.index_copy(1, text_indices, text_embeds)
|
| 269 |
+
hidden_states = hidden_states.index_copy(1, video_indices, video_embeds.to(text_embeds.dtype))
|
| 270 |
+
hidden_states = hidden_states.index_copy(1, audio_indices, audio_embeds.to(text_embeds.dtype))
|
| 271 |
+
|
| 272 |
+
temb = self.time_embedding(timestep, endpoint_timestep)
|
| 273 |
+
adaln_indices = timestep_indices * MINIMAX_H3_MODALITY_NUM + token_tags
|
| 274 |
+
for block in self.transformer_blocks:
|
| 275 |
+
hidden_states = block(hidden_states, temb, adaln_indices, rotary_emb)
|
| 276 |
+
|
| 277 |
+
hidden_states = self.norm_out(hidden_states, temb, timestep_indices).to(get_parameter_dtype(self.proj_out))
|
| 278 |
+
video_output = self.proj_out(hidden_states).index_select(1, video_indices)
|
| 279 |
+
audio_output = self.audio_proj_out(hidden_states).index_select(1, audio_indices)
|
| 280 |
+
if not return_dict:
|
| 281 |
+
return (video_output, audio_output)
|
| 282 |
+
return MiniMaxH3TransformerOutput(sample=video_output, audio_sample=audio_output)
|
| 283 |
+
|
| 284 |
+
|
| 285 |
+
def _used_rank(layer: LowRankLinear) -> int:
|
| 286 |
+
"""The rank without the zero padding (trailing zero rows of ``down`` and columns of ``up``)."""
|
| 287 |
+
used = (layer.down.weight.detach().abs().amax(1) != 0) | (layer.up.weight.detach().abs().amax(0) != 0)
|
| 288 |
+
nonzero = used.nonzero()
|
| 289 |
+
return int(nonzero[-1]) + 1 if len(nonzero) else 1
|
| 290 |
+
|
| 291 |
+
|
| 292 |
+
def set_lowrank_rank_multiple(model: nn.Module, multiple: int) -> int:
|
| 293 |
+
"""Re-pad every low-rank linear to a rank multiple of ``multiple`` (0: no padding); returns the layers changed.
|
| 294 |
+
|
| 295 |
+
Zero rows and columns add exact zeros, so any multiple computes the same function; the GEMM shapes change, and with
|
| 296 |
+
them the bf16 rounding (8 is 2 to 7 % faster than 64 on H200). Run time only: the config still lists the stored
|
| 297 |
+
ranks, so do not `save_pretrained` the re-padded model.
|
| 298 |
+
"""
|
| 299 |
+
changed = 0
|
| 300 |
+
for layer in model.modules():
|
| 301 |
+
if not isinstance(layer, LowRankLinear):
|
| 302 |
+
continue
|
| 303 |
+
rank = _used_rank(layer)
|
| 304 |
+
target = -(-rank // multiple) * multiple if multiple > 0 else rank
|
| 305 |
+
if target == layer.rank:
|
| 306 |
+
continue
|
| 307 |
+
down, up = layer.down.weight.detach(), layer.up.weight.detach()
|
| 308 |
+
if target < layer.rank:
|
| 309 |
+
down, up = down[:target], up[:, :target]
|
| 310 |
+
else:
|
| 311 |
+
down = torch.cat([down, down.new_zeros(target - layer.rank, down.shape[1])])
|
| 312 |
+
up = torch.cat([up, up.new_zeros(up.shape[0], target - layer.rank)], dim=1)
|
| 313 |
+
layer.down.weight = nn.Parameter(down.contiguous(), requires_grad=False)
|
| 314 |
+
layer.up.weight = nn.Parameter(up.contiguous(), requires_grad=False)
|
| 315 |
+
layer.rank = layer.down.out_features = layer.up.in_features = target
|
| 316 |
+
changed += 1
|
| 317 |
+
return changed
|
| 318 |
+
|
| 319 |
+
|
| 320 |
+
def set_ff_chunk(model: nn.Module, tokens: int) -> None:
|
| 321 |
+
"""Run every feed-forward over at most ``tokens`` tokens at a time (0: whole sequence)."""
|
| 322 |
+
for module in model.modules():
|
| 323 |
+
if isinstance(module, ChunkedFeedForward):
|
| 324 |
+
module.chunk_tokens = tokens if tokens > 0 else sys.maxsize
|
| 325 |
+
|
| 326 |
+
|
| 327 |
+
def chunk_block(block: nn.Module, chunk: int) -> None:
|
| 328 |
+
"""Run every token-wise op of a transformer block over ``chunk``-token slices; only the attention sees all of q /
|
| 329 |
+
k / v.
|
| 330 |
+
|
| 331 |
+
The unchunked block holds about a dozen ``(seq, hidden)`` tensors at once (each modulation picked per token, the
|
| 332 |
+
modulated norm, the residual sums), 1.2 GB apiece at 108k tokens. Per-row results are the same up to the bf16 GEMM
|
| 333 |
+
rounding for the smaller row count. Apply before context parallelism and offloading, which hook the block.
|
| 334 |
+
"""
|
| 335 |
+
import diffusers.models.transformers.transformer_minimax_h3 as h3
|
| 336 |
+
|
| 337 |
+
attn = block.attn
|
| 338 |
+
|
| 339 |
+
def forward(hidden_states, temb, adaln_indices, rotary_emb, attention_mask=None):
|
| 340 |
+
shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = block.adaln_proj(temb)
|
| 341 |
+
batch, seq, _ = hidden_states.shape
|
| 342 |
+
cos, sin = rotary_emb
|
| 343 |
+
qkv = None
|
| 344 |
+
for start in range(0, seq, chunk):
|
| 345 |
+
rows = slice(start, min(start + chunk, seq))
|
| 346 |
+
idx = adaln_indices[rows]
|
| 347 |
+
h = block.norm1(hidden_states[:, rows])
|
| 348 |
+
h = h * (1.0 + scale_msa.index_select(0, idx)) + shift_msa.index_select(0, idx)
|
| 349 |
+
parts = []
|
| 350 |
+
for proj, norm in ((attn.to_q, attn.norm_q), (attn.to_k, attn.norm_k), (attn.to_v, None)):
|
| 351 |
+
x = proj(h).unflatten(-1, (attn.heads, -1))
|
| 352 |
+
if norm is not None:
|
| 353 |
+
x = h3._apply_rotary_emb(norm(x), cos[rows], sin[rows])
|
| 354 |
+
parts.append(x)
|
| 355 |
+
if qkv is None:
|
| 356 |
+
qkv = [x.new_empty((batch, seq, *x.shape[2:])) for x in parts]
|
| 357 |
+
for full, x in zip(qkv, parts, strict=True):
|
| 358 |
+
full[:, rows] = x
|
| 359 |
+
del h, parts, x
|
| 360 |
+
out = h3.dispatch_attention_fn(
|
| 361 |
+
*qkv,
|
| 362 |
+
attn_mask=attention_mask,
|
| 363 |
+
dropout_p=0.0,
|
| 364 |
+
is_causal=False,
|
| 365 |
+
backend=attn.processor._attention_backend,
|
| 366 |
+
parallel_config=attn.processor._parallel_config,
|
| 367 |
+
)
|
| 368 |
+
dtype = qkv[0].dtype
|
| 369 |
+
del qkv
|
| 370 |
+
result = torch.empty_like(hidden_states)
|
| 371 |
+
for start in range(0, seq, chunk):
|
| 372 |
+
rows = slice(start, min(start + chunk, seq))
|
| 373 |
+
idx = adaln_indices[rows]
|
| 374 |
+
a = attn.to_out[1](attn.to_out[0](out[:, rows].flatten(2, 3).to(dtype)))
|
| 375 |
+
h = hidden_states[:, rows] + gate_msa.index_select(0, idx) * a
|
| 376 |
+
n = block.norm2(h)
|
| 377 |
+
n = n * (1.0 + scale_mlp.index_select(0, idx)) + shift_mlp.index_select(0, idx)
|
| 378 |
+
result[:, rows] = h + gate_mlp.index_select(0, idx) * block.ff(n)
|
| 379 |
+
del a, h, n
|
| 380 |
+
return result
|
| 381 |
+
|
| 382 |
+
block.forward = forward
|
| 383 |
+
|
| 384 |
+
|
| 385 |
+
def set_block_chunk(model: nn.Module, tokens: int) -> None:
|
| 386 |
+
"""`chunk_block` on every kept block (0: off). Call once, before context parallelism and offloading."""
|
| 387 |
+
if tokens > 0:
|
| 388 |
+
for block in model.transformer_blocks:
|
| 389 |
+
if not isinstance(block, DroppedBlock):
|
| 390 |
+
chunk_block(block, tokens)
|
| 391 |
+
|
| 392 |
+
|
| 393 |
+
__all__ = [
|
| 394 |
+
"RANK_MULTIPLE",
|
| 395 |
+
"ChunkedFeedForward",
|
| 396 |
+
"DroppedBlock",
|
| 397 |
+
"HyperFlowH3FlashTransformer3DModel",
|
| 398 |
+
"LowRankLinear",
|
| 399 |
+
"chunk_block",
|
| 400 |
+
"set_block_chunk",
|
| 401 |
+
"set_ff_chunk",
|
| 402 |
+
"set_lowrank_rank_multiple",
|
| 403 |
+
]
|
ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q3_K_M.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:50f68efc06e5c27039aef77d958278a7c10dc6ffc9456ea5171d6e3c740565f1
|
| 3 |
+
size 7354188800
|
ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q4_K_M.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a6b3018230cfcc35c552d7c2b2c5533fe37067f03f413ce7f9ddf7fcdea6ec2d
|
| 3 |
+
size 9220352512
|
ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q4_K_S.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:86a5c4bedd0a6c31249ddba92199ff540b2741f3c86ca6d8f127b47a48f4ac29
|
| 3 |
+
size 8138873344
|
ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q5_K_M.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e6c66150645362ac15d8d7972703eeac00a53a3909392bb3ec7a985e46a8e93f
|
| 3 |
+
size 10452388352
|
ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q6_K.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7a50e5f0eea0fb962f1d01f6032e10d18d10d858c7b781f4b5f1da47450c0fa7
|
| 3 |
+
size 11761426432
|
ref2va_gguf/minimax_h3_ref2va_hyperflow_flash_14b-Q8_0.gguf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fc7c98be8a1197092fe491678d3f71d7514fe037a95a7d9d518bba6f21476a40
|
| 3 |
+
size 15164430848
|
ref2va_int8_convrot/config.json
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "HyperFlowH3FlashTransformer3DModel",
|
| 3 |
+
"_diffusers_version": "0.36.0.dev0",
|
| 4 |
+
"num_attention_heads": 56,
|
| 5 |
+
"attention_head_dim": 128,
|
| 6 |
+
"hidden_size": 5376,
|
| 7 |
+
"num_layers": 50,
|
| 8 |
+
"num_refiner_layers": 2,
|
| 9 |
+
"ffn_dim": 14336,
|
| 10 |
+
"in_channels": 24,
|
| 11 |
+
"audio_in_channels": 32,
|
| 12 |
+
"patch_size": [
|
| 13 |
+
1,
|
| 14 |
+
2,
|
| 15 |
+
2
|
| 16 |
+
],
|
| 17 |
+
"text_dim": 5120,
|
| 18 |
+
"freq_dim": 256,
|
| 19 |
+
"time_embed_hidden_dim": 5376,
|
| 20 |
+
"time_embed_dim": 16,
|
| 21 |
+
"rope_freq_dim": 16,
|
| 22 |
+
"rope_theta": 10000.0,
|
| 23 |
+
"norm_eps": 1e-05,
|
| 24 |
+
"qk_norm_eps": 1e-05,
|
| 25 |
+
"final_norm_eps": 1e-05,
|
| 26 |
+
"hyperflow_gate": 0.25,
|
| 27 |
+
"lowrank_ranks": {
|
| 28 |
+
"transformer_blocks.1.attn.to_k": 990,
|
| 29 |
+
"transformer_blocks.1.attn.to_out.0": 1872,
|
| 30 |
+
"transformer_blocks.1.attn.to_q": 1102,
|
| 31 |
+
"transformer_blocks.1.attn.to_v": 1200,
|
| 32 |
+
"transformer_blocks.1.ff.net.0.proj": 2516,
|
| 33 |
+
"transformer_blocks.1.ff.net.2": 3120,
|
| 34 |
+
"transformer_blocks.10.attn.to_k": 275,
|
| 35 |
+
"transformer_blocks.10.attn.to_out.0": 362,
|
| 36 |
+
"transformer_blocks.10.attn.to_q": 269,
|
| 37 |
+
"transformer_blocks.10.attn.to_v": 471,
|
| 38 |
+
"transformer_blocks.10.ff.net.0.proj": 359,
|
| 39 |
+
"transformer_blocks.10.ff.net.2": 1436,
|
| 40 |
+
"transformer_blocks.11.attn.to_k": 420,
|
| 41 |
+
"transformer_blocks.11.attn.to_out.0": 572,
|
| 42 |
+
"transformer_blocks.11.attn.to_q": 426,
|
| 43 |
+
"transformer_blocks.11.attn.to_v": 673,
|
| 44 |
+
"transformer_blocks.11.ff.net.0.proj": 604,
|
| 45 |
+
"transformer_blocks.11.ff.net.2": 557,
|
| 46 |
+
"transformer_blocks.12.attn.to_k": 171,
|
| 47 |
+
"transformer_blocks.12.attn.to_out.0": 210,
|
| 48 |
+
"transformer_blocks.12.attn.to_q": 181,
|
| 49 |
+
"transformer_blocks.12.attn.to_v": 342,
|
| 50 |
+
"transformer_blocks.12.ff.net.0.proj": 247,
|
| 51 |
+
"transformer_blocks.12.ff.net.2": 953,
|
| 52 |
+
"transformer_blocks.13.attn.to_k": 379,
|
| 53 |
+
"transformer_blocks.13.attn.to_out.0": 474,
|
| 54 |
+
"transformer_blocks.13.attn.to_q": 381,
|
| 55 |
+
"transformer_blocks.13.attn.to_v": 582,
|
| 56 |
+
"transformer_blocks.13.ff.net.0.proj": 462,
|
| 57 |
+
"transformer_blocks.13.ff.net.2": 1,
|
| 58 |
+
"transformer_blocks.14.attn.to_k": 286,
|
| 59 |
+
"transformer_blocks.14.attn.to_out.0": 376,
|
| 60 |
+
"transformer_blocks.14.attn.to_q": 305,
|
| 61 |
+
"transformer_blocks.14.attn.to_v": 505,
|
| 62 |
+
"transformer_blocks.14.ff.net.0.proj": 374,
|
| 63 |
+
"transformer_blocks.14.ff.net.2": 1348,
|
| 64 |
+
"transformer_blocks.15.attn.to_k": 155,
|
| 65 |
+
"transformer_blocks.15.attn.to_out.0": 261,
|
| 66 |
+
"transformer_blocks.15.attn.to_q": 167,
|
| 67 |
+
"transformer_blocks.15.attn.to_v": 311,
|
| 68 |
+
"transformer_blocks.15.ff.net.0.proj": 201,
|
| 69 |
+
"transformer_blocks.15.ff.net.2": 1038,
|
| 70 |
+
"transformer_blocks.16.attn.to_k": 239,
|
| 71 |
+
"transformer_blocks.16.attn.to_out.0": 400,
|
| 72 |
+
"transformer_blocks.16.attn.to_q": 246,
|
| 73 |
+
"transformer_blocks.16.attn.to_v": 440,
|
| 74 |
+
"transformer_blocks.16.ff.net.0.proj": 335,
|
| 75 |
+
"transformer_blocks.16.ff.net.2": 1510,
|
| 76 |
+
"transformer_blocks.17.attn.to_k": 951,
|
| 77 |
+
"transformer_blocks.17.attn.to_out.0": 1116,
|
| 78 |
+
"transformer_blocks.17.attn.to_q": 952,
|
| 79 |
+
"transformer_blocks.17.attn.to_v": 1216,
|
| 80 |
+
"transformer_blocks.17.ff.net.0.proj": 1325,
|
| 81 |
+
"transformer_blocks.17.ff.net.2": 2836,
|
| 82 |
+
"transformer_blocks.18.attn.to_k": 121,
|
| 83 |
+
"transformer_blocks.18.attn.to_out.0": 279,
|
| 84 |
+
"transformer_blocks.18.attn.to_q": 140,
|
| 85 |
+
"transformer_blocks.18.attn.to_v": 287,
|
| 86 |
+
"transformer_blocks.18.ff.net.0.proj": 234,
|
| 87 |
+
"transformer_blocks.18.ff.net.2": 1024,
|
| 88 |
+
"transformer_blocks.20.attn.to_k": 433,
|
| 89 |
+
"transformer_blocks.20.attn.to_out.0": 725,
|
| 90 |
+
"transformer_blocks.20.attn.to_q": 445,
|
| 91 |
+
"transformer_blocks.20.attn.to_v": 656,
|
| 92 |
+
"transformer_blocks.20.ff.net.0.proj": 698,
|
| 93 |
+
"transformer_blocks.20.ff.net.2": 2243,
|
| 94 |
+
"transformer_blocks.21.attn.to_k": 389,
|
| 95 |
+
"transformer_blocks.21.attn.to_out.0": 704,
|
| 96 |
+
"transformer_blocks.21.attn.to_q": 434,
|
| 97 |
+
"transformer_blocks.21.attn.to_v": 669,
|
| 98 |
+
"transformer_blocks.21.ff.net.0.proj": 711,
|
| 99 |
+
"transformer_blocks.21.ff.net.2": 2261,
|
| 100 |
+
"transformer_blocks.22.attn.to_k": 170,
|
| 101 |
+
"transformer_blocks.22.attn.to_out.0": 459,
|
| 102 |
+
"transformer_blocks.22.attn.to_q": 199,
|
| 103 |
+
"transformer_blocks.22.attn.to_v": 385,
|
| 104 |
+
"transformer_blocks.22.ff.net.0.proj": 378,
|
| 105 |
+
"transformer_blocks.22.ff.net.2": 1507,
|
| 106 |
+
"transformer_blocks.23.attn.to_k": 78,
|
| 107 |
+
"transformer_blocks.23.attn.to_out.0": 261,
|
| 108 |
+
"transformer_blocks.23.attn.to_q": 103,
|
| 109 |
+
"transformer_blocks.23.attn.to_v": 227,
|
| 110 |
+
"transformer_blocks.23.ff.net.0.proj": 221,
|
| 111 |
+
"transformer_blocks.23.ff.net.2": 1147,
|
| 112 |
+
"transformer_blocks.4.attn.to_k": 284,
|
| 113 |
+
"transformer_blocks.4.attn.to_out.0": 398,
|
| 114 |
+
"transformer_blocks.4.attn.to_q": 265,
|
| 115 |
+
"transformer_blocks.4.attn.to_v": 403,
|
| 116 |
+
"transformer_blocks.4.ff.net.0.proj": 546,
|
| 117 |
+
"transformer_blocks.4.ff.net.2": 1130,
|
| 118 |
+
"transformer_blocks.5.attn.to_k": 224,
|
| 119 |
+
"transformer_blocks.5.attn.to_out.0": 424,
|
| 120 |
+
"transformer_blocks.5.attn.to_q": 224,
|
| 121 |
+
"transformer_blocks.5.attn.to_v": 413,
|
| 122 |
+
"transformer_blocks.5.ff.net.0.proj": 991,
|
| 123 |
+
"transformer_blocks.5.ff.net.2": 2357,
|
| 124 |
+
"transformer_blocks.6.attn.to_k": 439,
|
| 125 |
+
"transformer_blocks.6.attn.to_out.0": 673,
|
| 126 |
+
"transformer_blocks.6.attn.to_q": 428,
|
| 127 |
+
"transformer_blocks.6.attn.to_v": 607,
|
| 128 |
+
"transformer_blocks.6.ff.net.0.proj": 836,
|
| 129 |
+
"transformer_blocks.6.ff.net.2": 2076,
|
| 130 |
+
"transformer_blocks.7.attn.to_k": 621,
|
| 131 |
+
"transformer_blocks.7.attn.to_out.0": 815,
|
| 132 |
+
"transformer_blocks.7.attn.to_q": 626,
|
| 133 |
+
"transformer_blocks.7.attn.to_v": 864,
|
| 134 |
+
"transformer_blocks.7.ff.net.0.proj": 986,
|
| 135 |
+
"transformer_blocks.7.ff.net.2": 1322,
|
| 136 |
+
"transformer_blocks.8.attn.to_k": 483,
|
| 137 |
+
"transformer_blocks.8.attn.to_out.0": 609,
|
| 138 |
+
"transformer_blocks.8.attn.to_q": 479,
|
| 139 |
+
"transformer_blocks.8.attn.to_v": 704,
|
| 140 |
+
"transformer_blocks.8.ff.net.0.proj": 802,
|
| 141 |
+
"transformer_blocks.8.ff.net.2": 2054
|
| 142 |
+
},
|
| 143 |
+
"dropped_blocks": [
|
| 144 |
+
9
|
| 145 |
+
],
|
| 146 |
+
"auto_map": {
|
| 147 |
+
"AutoModel": "hyperflow_h3_flash_transformer.HyperFlowH3FlashTransformer3DModel"
|
| 148 |
+
},
|
| 149 |
+
"quantization": {
|
| 150 |
+
"method": "int8_convrot",
|
| 151 |
+
"group": 256,
|
| 152 |
+
"linears": [
|
| 153 |
+
"transformer_blocks.0.attn.to_k",
|
| 154 |
+
"transformer_blocks.0.attn.to_out.0",
|
| 155 |
+
"transformer_blocks.0.attn.to_q",
|
| 156 |
+
"transformer_blocks.0.attn.to_v",
|
| 157 |
+
"transformer_blocks.0.ff.net.0.proj",
|
| 158 |
+
"transformer_blocks.0.ff.net.2",
|
| 159 |
+
"transformer_blocks.19.attn.to_k",
|
| 160 |
+
"transformer_blocks.19.attn.to_out.0",
|
| 161 |
+
"transformer_blocks.19.attn.to_q",
|
| 162 |
+
"transformer_blocks.19.attn.to_v",
|
| 163 |
+
"transformer_blocks.19.ff.net.0.proj",
|
| 164 |
+
"transformer_blocks.19.ff.net.2",
|
| 165 |
+
"transformer_blocks.2.attn.to_k",
|
| 166 |
+
"transformer_blocks.2.attn.to_out.0",
|
| 167 |
+
"transformer_blocks.2.attn.to_q",
|
| 168 |
+
"transformer_blocks.2.attn.to_v",
|
| 169 |
+
"transformer_blocks.2.ff.net.0.proj",
|
| 170 |
+
"transformer_blocks.2.ff.net.2",
|
| 171 |
+
"transformer_blocks.24.attn.to_k",
|
| 172 |
+
"transformer_blocks.24.attn.to_out.0",
|
| 173 |
+
"transformer_blocks.24.attn.to_q",
|
| 174 |
+
"transformer_blocks.24.attn.to_v",
|
| 175 |
+
"transformer_blocks.24.ff.net.0.proj",
|
| 176 |
+
"transformer_blocks.24.ff.net.2",
|
| 177 |
+
"transformer_blocks.25.attn.to_k",
|
| 178 |
+
"transformer_blocks.25.attn.to_out.0",
|
| 179 |
+
"transformer_blocks.25.attn.to_q",
|
| 180 |
+
"transformer_blocks.25.attn.to_v",
|
| 181 |
+
"transformer_blocks.25.ff.net.0.proj",
|
| 182 |
+
"transformer_blocks.25.ff.net.2",
|
| 183 |
+
"transformer_blocks.26.attn.to_k",
|
| 184 |
+
"transformer_blocks.26.attn.to_out.0",
|
| 185 |
+
"transformer_blocks.26.attn.to_q",
|
| 186 |
+
"transformer_blocks.26.attn.to_v",
|
| 187 |
+
"transformer_blocks.26.ff.net.0.proj",
|
| 188 |
+
"transformer_blocks.26.ff.net.2",
|
| 189 |
+
"transformer_blocks.27.attn.to_k",
|
| 190 |
+
"transformer_blocks.27.attn.to_out.0",
|
| 191 |
+
"transformer_blocks.27.attn.to_q",
|
| 192 |
+
"transformer_blocks.27.attn.to_v",
|
| 193 |
+
"transformer_blocks.27.ff.net.0.proj",
|
| 194 |
+
"transformer_blocks.27.ff.net.2",
|
| 195 |
+
"transformer_blocks.28.attn.to_k",
|
| 196 |
+
"transformer_blocks.28.attn.to_out.0",
|
| 197 |
+
"transformer_blocks.28.attn.to_q",
|
| 198 |
+
"transformer_blocks.28.attn.to_v",
|
| 199 |
+
"transformer_blocks.28.ff.net.0.proj",
|
| 200 |
+
"transformer_blocks.28.ff.net.2",
|
| 201 |
+
"transformer_blocks.29.attn.to_k",
|
| 202 |
+
"transformer_blocks.29.attn.to_out.0",
|
| 203 |
+
"transformer_blocks.29.attn.to_q",
|
| 204 |
+
"transformer_blocks.29.attn.to_v",
|
| 205 |
+
"transformer_blocks.29.ff.net.0.proj",
|
| 206 |
+
"transformer_blocks.29.ff.net.2",
|
| 207 |
+
"transformer_blocks.3.attn.to_k",
|
| 208 |
+
"transformer_blocks.3.attn.to_out.0",
|
| 209 |
+
"transformer_blocks.3.attn.to_q",
|
| 210 |
+
"transformer_blocks.3.attn.to_v",
|
| 211 |
+
"transformer_blocks.3.ff.net.0.proj",
|
| 212 |
+
"transformer_blocks.3.ff.net.2",
|
| 213 |
+
"transformer_blocks.30.attn.to_k",
|
| 214 |
+
"transformer_blocks.30.attn.to_out.0",
|
| 215 |
+
"transformer_blocks.30.attn.to_q",
|
| 216 |
+
"transformer_blocks.30.attn.to_v",
|
| 217 |
+
"transformer_blocks.30.ff.net.0.proj",
|
| 218 |
+
"transformer_blocks.30.ff.net.2",
|
| 219 |
+
"transformer_blocks.31.attn.to_k",
|
| 220 |
+
"transformer_blocks.31.attn.to_out.0",
|
| 221 |
+
"transformer_blocks.31.attn.to_q",
|
| 222 |
+
"transformer_blocks.31.attn.to_v",
|
| 223 |
+
"transformer_blocks.31.ff.net.0.proj",
|
| 224 |
+
"transformer_blocks.31.ff.net.2",
|
| 225 |
+
"transformer_blocks.32.attn.to_k",
|
| 226 |
+
"transformer_blocks.32.attn.to_out.0",
|
| 227 |
+
"transformer_blocks.32.attn.to_q",
|
| 228 |
+
"transformer_blocks.32.attn.to_v",
|
| 229 |
+
"transformer_blocks.32.ff.net.0.proj",
|
| 230 |
+
"transformer_blocks.32.ff.net.2",
|
| 231 |
+
"transformer_blocks.33.attn.to_k",
|
| 232 |
+
"transformer_blocks.33.attn.to_out.0",
|
| 233 |
+
"transformer_blocks.33.attn.to_q",
|
| 234 |
+
"transformer_blocks.33.attn.to_v",
|
| 235 |
+
"transformer_blocks.33.ff.net.0.proj",
|
| 236 |
+
"transformer_blocks.33.ff.net.2",
|
| 237 |
+
"transformer_blocks.34.attn.to_k",
|
| 238 |
+
"transformer_blocks.34.attn.to_out.0",
|
| 239 |
+
"transformer_blocks.34.attn.to_q",
|
| 240 |
+
"transformer_blocks.34.attn.to_v",
|
| 241 |
+
"transformer_blocks.34.ff.net.0.proj",
|
| 242 |
+
"transformer_blocks.34.ff.net.2",
|
| 243 |
+
"transformer_blocks.35.attn.to_k",
|
| 244 |
+
"transformer_blocks.35.attn.to_out.0",
|
| 245 |
+
"transformer_blocks.35.attn.to_q",
|
| 246 |
+
"transformer_blocks.35.attn.to_v",
|
| 247 |
+
"transformer_blocks.35.ff.net.0.proj",
|
| 248 |
+
"transformer_blocks.35.ff.net.2",
|
| 249 |
+
"transformer_blocks.36.attn.to_k",
|
| 250 |
+
"transformer_blocks.36.attn.to_out.0",
|
| 251 |
+
"transformer_blocks.36.attn.to_q",
|
| 252 |
+
"transformer_blocks.36.attn.to_v",
|
| 253 |
+
"transformer_blocks.36.ff.net.0.proj",
|
| 254 |
+
"transformer_blocks.36.ff.net.2",
|
| 255 |
+
"transformer_blocks.37.attn.to_k",
|
| 256 |
+
"transformer_blocks.37.attn.to_out.0",
|
| 257 |
+
"transformer_blocks.37.attn.to_q",
|
| 258 |
+
"transformer_blocks.37.attn.to_v",
|
| 259 |
+
"transformer_blocks.37.ff.net.0.proj",
|
| 260 |
+
"transformer_blocks.37.ff.net.2",
|
| 261 |
+
"transformer_blocks.38.attn.to_k",
|
| 262 |
+
"transformer_blocks.38.attn.to_out.0",
|
| 263 |
+
"transformer_blocks.38.attn.to_q",
|
| 264 |
+
"transformer_blocks.38.attn.to_v",
|
| 265 |
+
"transformer_blocks.38.ff.net.0.proj",
|
| 266 |
+
"transformer_blocks.38.ff.net.2",
|
| 267 |
+
"transformer_blocks.39.attn.to_k",
|
| 268 |
+
"transformer_blocks.39.attn.to_out.0",
|
| 269 |
+
"transformer_blocks.39.attn.to_q",
|
| 270 |
+
"transformer_blocks.39.attn.to_v",
|
| 271 |
+
"transformer_blocks.39.ff.net.0.proj",
|
| 272 |
+
"transformer_blocks.39.ff.net.2",
|
| 273 |
+
"transformer_blocks.40.attn.to_k",
|
| 274 |
+
"transformer_blocks.40.attn.to_out.0",
|
| 275 |
+
"transformer_blocks.40.attn.to_q",
|
| 276 |
+
"transformer_blocks.40.attn.to_v",
|
| 277 |
+
"transformer_blocks.40.ff.net.0.proj",
|
| 278 |
+
"transformer_blocks.40.ff.net.2",
|
| 279 |
+
"transformer_blocks.41.attn.to_k",
|
| 280 |
+
"transformer_blocks.41.attn.to_out.0",
|
| 281 |
+
"transformer_blocks.41.attn.to_q",
|
| 282 |
+
"transformer_blocks.41.attn.to_v",
|
| 283 |
+
"transformer_blocks.41.ff.net.0.proj",
|
| 284 |
+
"transformer_blocks.41.ff.net.2",
|
| 285 |
+
"transformer_blocks.42.attn.to_k",
|
| 286 |
+
"transformer_blocks.42.attn.to_out.0",
|
| 287 |
+
"transformer_blocks.42.attn.to_q",
|
| 288 |
+
"transformer_blocks.42.attn.to_v",
|
| 289 |
+
"transformer_blocks.42.ff.net.0.proj",
|
| 290 |
+
"transformer_blocks.42.ff.net.2",
|
| 291 |
+
"transformer_blocks.43.attn.to_k",
|
| 292 |
+
"transformer_blocks.43.attn.to_out.0",
|
| 293 |
+
"transformer_blocks.43.attn.to_q",
|
| 294 |
+
"transformer_blocks.43.attn.to_v",
|
| 295 |
+
"transformer_blocks.43.ff.net.0.proj",
|
| 296 |
+
"transformer_blocks.43.ff.net.2",
|
| 297 |
+
"transformer_blocks.44.attn.to_k",
|
| 298 |
+
"transformer_blocks.44.attn.to_out.0",
|
| 299 |
+
"transformer_blocks.44.attn.to_q",
|
| 300 |
+
"transformer_blocks.44.attn.to_v",
|
| 301 |
+
"transformer_blocks.44.ff.net.0.proj",
|
| 302 |
+
"transformer_blocks.44.ff.net.2",
|
| 303 |
+
"transformer_blocks.45.attn.to_k",
|
| 304 |
+
"transformer_blocks.45.attn.to_out.0",
|
| 305 |
+
"transformer_blocks.45.attn.to_q",
|
| 306 |
+
"transformer_blocks.45.attn.to_v",
|
| 307 |
+
"transformer_blocks.45.ff.net.0.proj",
|
| 308 |
+
"transformer_blocks.45.ff.net.2",
|
| 309 |
+
"transformer_blocks.46.attn.to_k",
|
| 310 |
+
"transformer_blocks.46.attn.to_out.0",
|
| 311 |
+
"transformer_blocks.46.attn.to_q",
|
| 312 |
+
"transformer_blocks.46.attn.to_v",
|
| 313 |
+
"transformer_blocks.46.ff.net.0.proj",
|
| 314 |
+
"transformer_blocks.46.ff.net.2",
|
| 315 |
+
"transformer_blocks.47.attn.to_k",
|
| 316 |
+
"transformer_blocks.47.attn.to_out.0",
|
| 317 |
+
"transformer_blocks.47.attn.to_q",
|
| 318 |
+
"transformer_blocks.47.attn.to_v",
|
| 319 |
+
"transformer_blocks.47.ff.net.0.proj",
|
| 320 |
+
"transformer_blocks.47.ff.net.2",
|
| 321 |
+
"transformer_blocks.48.attn.to_k",
|
| 322 |
+
"transformer_blocks.48.attn.to_out.0",
|
| 323 |
+
"transformer_blocks.48.attn.to_q",
|
| 324 |
+
"transformer_blocks.48.attn.to_v",
|
| 325 |
+
"transformer_blocks.48.ff.net.0.proj",
|
| 326 |
+
"transformer_blocks.48.ff.net.2",
|
| 327 |
+
"transformer_blocks.49.attn.to_k",
|
| 328 |
+
"transformer_blocks.49.attn.to_out.0",
|
| 329 |
+
"transformer_blocks.49.attn.to_q",
|
| 330 |
+
"transformer_blocks.49.attn.to_v",
|
| 331 |
+
"transformer_blocks.49.ff.net.0.proj",
|
| 332 |
+
"transformer_blocks.49.ff.net.2"
|
| 333 |
+
]
|
| 334 |
+
}
|
| 335 |
+
}
|
ref2va_int8_convrot/diffusion_pytorch_model-00001-of-00004.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7630fd9f5d2002a9fac4748190d2b865dfad4b715fc973da974970db8b9ca7a9
|
| 3 |
+
size 5338670032
|
ref2va_int8_convrot/diffusion_pytorch_model-00002-of-00004.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6f26d16bae5a7f5a05121e0e4360f95cf9a0163c18dc54e79fc42cdb89afc033
|
| 3 |
+
size 5325764328
|
ref2va_int8_convrot/diffusion_pytorch_model-00003-of-00004.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e24ef706ac68eb76b1269ce0051d2b604ce23e8125d00d8c63ed64a5feb75b3e
|
| 3 |
+
size 5342150184
|
ref2va_int8_convrot/diffusion_pytorch_model-00004-of-00004.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:54b1d4cc02696c749aaa46bdf506675b10c79904019be522179ddd65b2a0f9ba
|
| 3 |
+
size 304661120
|
ref2va_int8_convrot/diffusion_pytorch_model.safetensors.index.json
ADDED
|
@@ -0,0 +1,931 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"metadata": {
|
| 3 |
+
"total_size": 16311140480
|
| 4 |
+
},
|
| 5 |
+
"weight_map": {
|
| 6 |
+
"audio_proj_in.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 7 |
+
"audio_proj_in.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 8 |
+
"audio_proj_out.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 9 |
+
"audio_proj_out.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 10 |
+
"context_embedder.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 11 |
+
"context_embedder.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 12 |
+
"endpoint_time_embedder.linear_1.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 13 |
+
"endpoint_time_embedder.linear_1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 14 |
+
"endpoint_time_embedder.linear_2.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 15 |
+
"endpoint_time_embedder.linear_2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 16 |
+
"norm_out.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 17 |
+
"norm_out.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 18 |
+
"norm_out.norm.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 19 |
+
"proj_in.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 20 |
+
"proj_in.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 21 |
+
"proj_out.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 22 |
+
"proj_out.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 23 |
+
"time_embedder.linear_1.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 24 |
+
"time_embedder.linear_1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 25 |
+
"time_embedder.linear_2.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 26 |
+
"time_embedder.linear_2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 27 |
+
"token_refiner.final_norm.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 28 |
+
"token_refiner.refiner_blocks.0.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 29 |
+
"token_refiner.refiner_blocks.0.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 30 |
+
"token_refiner.refiner_blocks.0.attn.to_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 31 |
+
"token_refiner.refiner_blocks.0.attn.to_out.0.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 32 |
+
"token_refiner.refiner_blocks.0.attn.to_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 33 |
+
"token_refiner.refiner_blocks.0.attn.to_v.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 34 |
+
"token_refiner.refiner_blocks.0.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 35 |
+
"token_refiner.refiner_blocks.0.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 36 |
+
"token_refiner.refiner_blocks.0.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 37 |
+
"token_refiner.refiner_blocks.0.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 38 |
+
"token_refiner.refiner_blocks.1.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 39 |
+
"token_refiner.refiner_blocks.1.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 40 |
+
"token_refiner.refiner_blocks.1.attn.to_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 41 |
+
"token_refiner.refiner_blocks.1.attn.to_out.0.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 42 |
+
"token_refiner.refiner_blocks.1.attn.to_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 43 |
+
"token_refiner.refiner_blocks.1.attn.to_v.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 44 |
+
"token_refiner.refiner_blocks.1.ff.net.0.proj.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 45 |
+
"token_refiner.refiner_blocks.1.ff.net.2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 46 |
+
"token_refiner.refiner_blocks.1.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 47 |
+
"token_refiner.refiner_blocks.1.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 48 |
+
"transformer_blocks.0.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 49 |
+
"transformer_blocks.0.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 50 |
+
"transformer_blocks.0.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 51 |
+
"transformer_blocks.0.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 52 |
+
"transformer_blocks.0.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 53 |
+
"transformer_blocks.0.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 54 |
+
"transformer_blocks.0.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 55 |
+
"transformer_blocks.0.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 56 |
+
"transformer_blocks.0.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 57 |
+
"transformer_blocks.0.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 58 |
+
"transformer_blocks.0.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 59 |
+
"transformer_blocks.0.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 60 |
+
"transformer_blocks.0.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 61 |
+
"transformer_blocks.0.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 62 |
+
"transformer_blocks.0.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 63 |
+
"transformer_blocks.0.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 64 |
+
"transformer_blocks.0.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 65 |
+
"transformer_blocks.0.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 66 |
+
"transformer_blocks.1.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 67 |
+
"transformer_blocks.1.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 68 |
+
"transformer_blocks.1.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 69 |
+
"transformer_blocks.1.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 70 |
+
"transformer_blocks.1.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 71 |
+
"transformer_blocks.1.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 72 |
+
"transformer_blocks.1.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 73 |
+
"transformer_blocks.1.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 74 |
+
"transformer_blocks.1.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 75 |
+
"transformer_blocks.1.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 76 |
+
"transformer_blocks.1.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 77 |
+
"transformer_blocks.1.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 78 |
+
"transformer_blocks.1.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 79 |
+
"transformer_blocks.1.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 80 |
+
"transformer_blocks.1.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 81 |
+
"transformer_blocks.1.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 82 |
+
"transformer_blocks.1.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 83 |
+
"transformer_blocks.1.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 84 |
+
"transformer_blocks.10.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 85 |
+
"transformer_blocks.10.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 86 |
+
"transformer_blocks.10.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 87 |
+
"transformer_blocks.10.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 88 |
+
"transformer_blocks.10.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 89 |
+
"transformer_blocks.10.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 90 |
+
"transformer_blocks.10.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 91 |
+
"transformer_blocks.10.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 92 |
+
"transformer_blocks.10.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 93 |
+
"transformer_blocks.10.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 94 |
+
"transformer_blocks.10.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 95 |
+
"transformer_blocks.10.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 96 |
+
"transformer_blocks.10.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 97 |
+
"transformer_blocks.10.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 98 |
+
"transformer_blocks.10.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 99 |
+
"transformer_blocks.10.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 100 |
+
"transformer_blocks.10.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 101 |
+
"transformer_blocks.10.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 102 |
+
"transformer_blocks.11.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 103 |
+
"transformer_blocks.11.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 104 |
+
"transformer_blocks.11.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 105 |
+
"transformer_blocks.11.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 106 |
+
"transformer_blocks.11.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 107 |
+
"transformer_blocks.11.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 108 |
+
"transformer_blocks.11.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 109 |
+
"transformer_blocks.11.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 110 |
+
"transformer_blocks.11.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 111 |
+
"transformer_blocks.11.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 112 |
+
"transformer_blocks.11.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 113 |
+
"transformer_blocks.11.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 114 |
+
"transformer_blocks.11.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 115 |
+
"transformer_blocks.11.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 116 |
+
"transformer_blocks.11.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 117 |
+
"transformer_blocks.11.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 118 |
+
"transformer_blocks.11.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 119 |
+
"transformer_blocks.11.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 120 |
+
"transformer_blocks.12.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 121 |
+
"transformer_blocks.12.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 122 |
+
"transformer_blocks.12.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 123 |
+
"transformer_blocks.12.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 124 |
+
"transformer_blocks.12.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 125 |
+
"transformer_blocks.12.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 126 |
+
"transformer_blocks.12.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 127 |
+
"transformer_blocks.12.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 128 |
+
"transformer_blocks.12.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 129 |
+
"transformer_blocks.12.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 130 |
+
"transformer_blocks.12.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 131 |
+
"transformer_blocks.12.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 132 |
+
"transformer_blocks.12.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 133 |
+
"transformer_blocks.12.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 134 |
+
"transformer_blocks.12.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 135 |
+
"transformer_blocks.12.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 136 |
+
"transformer_blocks.12.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 137 |
+
"transformer_blocks.12.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 138 |
+
"transformer_blocks.13.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 139 |
+
"transformer_blocks.13.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 140 |
+
"transformer_blocks.13.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 141 |
+
"transformer_blocks.13.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 142 |
+
"transformer_blocks.13.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 143 |
+
"transformer_blocks.13.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 144 |
+
"transformer_blocks.13.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 145 |
+
"transformer_blocks.13.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 146 |
+
"transformer_blocks.13.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 147 |
+
"transformer_blocks.13.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 148 |
+
"transformer_blocks.13.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 149 |
+
"transformer_blocks.13.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 150 |
+
"transformer_blocks.13.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 151 |
+
"transformer_blocks.13.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 152 |
+
"transformer_blocks.13.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 153 |
+
"transformer_blocks.13.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 154 |
+
"transformer_blocks.13.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 155 |
+
"transformer_blocks.13.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 156 |
+
"transformer_blocks.14.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 157 |
+
"transformer_blocks.14.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 158 |
+
"transformer_blocks.14.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 159 |
+
"transformer_blocks.14.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 160 |
+
"transformer_blocks.14.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 161 |
+
"transformer_blocks.14.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 162 |
+
"transformer_blocks.14.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 163 |
+
"transformer_blocks.14.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 164 |
+
"transformer_blocks.14.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 165 |
+
"transformer_blocks.14.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 166 |
+
"transformer_blocks.14.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 167 |
+
"transformer_blocks.14.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 168 |
+
"transformer_blocks.14.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 169 |
+
"transformer_blocks.14.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 170 |
+
"transformer_blocks.14.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 171 |
+
"transformer_blocks.14.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 172 |
+
"transformer_blocks.14.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 173 |
+
"transformer_blocks.14.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 174 |
+
"transformer_blocks.15.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 175 |
+
"transformer_blocks.15.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 176 |
+
"transformer_blocks.15.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 177 |
+
"transformer_blocks.15.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 178 |
+
"transformer_blocks.15.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 179 |
+
"transformer_blocks.15.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 180 |
+
"transformer_blocks.15.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 181 |
+
"transformer_blocks.15.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 182 |
+
"transformer_blocks.15.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 183 |
+
"transformer_blocks.15.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 184 |
+
"transformer_blocks.15.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 185 |
+
"transformer_blocks.15.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 186 |
+
"transformer_blocks.15.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 187 |
+
"transformer_blocks.15.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 188 |
+
"transformer_blocks.15.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 189 |
+
"transformer_blocks.15.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 190 |
+
"transformer_blocks.15.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 191 |
+
"transformer_blocks.15.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 192 |
+
"transformer_blocks.16.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 193 |
+
"transformer_blocks.16.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 194 |
+
"transformer_blocks.16.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 195 |
+
"transformer_blocks.16.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 196 |
+
"transformer_blocks.16.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 197 |
+
"transformer_blocks.16.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 198 |
+
"transformer_blocks.16.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 199 |
+
"transformer_blocks.16.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 200 |
+
"transformer_blocks.16.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 201 |
+
"transformer_blocks.16.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 202 |
+
"transformer_blocks.16.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 203 |
+
"transformer_blocks.16.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 204 |
+
"transformer_blocks.16.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 205 |
+
"transformer_blocks.16.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 206 |
+
"transformer_blocks.16.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 207 |
+
"transformer_blocks.16.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 208 |
+
"transformer_blocks.16.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 209 |
+
"transformer_blocks.16.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 210 |
+
"transformer_blocks.17.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 211 |
+
"transformer_blocks.17.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 212 |
+
"transformer_blocks.17.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 213 |
+
"transformer_blocks.17.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 214 |
+
"transformer_blocks.17.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 215 |
+
"transformer_blocks.17.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 216 |
+
"transformer_blocks.17.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 217 |
+
"transformer_blocks.17.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 218 |
+
"transformer_blocks.17.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 219 |
+
"transformer_blocks.17.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 220 |
+
"transformer_blocks.17.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 221 |
+
"transformer_blocks.17.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 222 |
+
"transformer_blocks.17.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 223 |
+
"transformer_blocks.17.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 224 |
+
"transformer_blocks.17.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 225 |
+
"transformer_blocks.17.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 226 |
+
"transformer_blocks.17.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 227 |
+
"transformer_blocks.17.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 228 |
+
"transformer_blocks.18.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 229 |
+
"transformer_blocks.18.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 230 |
+
"transformer_blocks.18.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 231 |
+
"transformer_blocks.18.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 232 |
+
"transformer_blocks.18.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 233 |
+
"transformer_blocks.18.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 234 |
+
"transformer_blocks.18.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 235 |
+
"transformer_blocks.18.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 236 |
+
"transformer_blocks.18.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 237 |
+
"transformer_blocks.18.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 238 |
+
"transformer_blocks.18.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 239 |
+
"transformer_blocks.18.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 240 |
+
"transformer_blocks.18.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 241 |
+
"transformer_blocks.18.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 242 |
+
"transformer_blocks.18.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 243 |
+
"transformer_blocks.18.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 244 |
+
"transformer_blocks.18.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 245 |
+
"transformer_blocks.18.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 246 |
+
"transformer_blocks.19.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 247 |
+
"transformer_blocks.19.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 248 |
+
"transformer_blocks.19.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 249 |
+
"transformer_blocks.19.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 250 |
+
"transformer_blocks.19.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 251 |
+
"transformer_blocks.19.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 252 |
+
"transformer_blocks.19.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 253 |
+
"transformer_blocks.19.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 254 |
+
"transformer_blocks.19.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 255 |
+
"transformer_blocks.19.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 256 |
+
"transformer_blocks.19.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 257 |
+
"transformer_blocks.19.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 258 |
+
"transformer_blocks.19.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 259 |
+
"transformer_blocks.19.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 260 |
+
"transformer_blocks.19.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 261 |
+
"transformer_blocks.19.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 262 |
+
"transformer_blocks.19.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 263 |
+
"transformer_blocks.19.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 264 |
+
"transformer_blocks.2.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 265 |
+
"transformer_blocks.2.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 266 |
+
"transformer_blocks.2.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 267 |
+
"transformer_blocks.2.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 268 |
+
"transformer_blocks.2.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 269 |
+
"transformer_blocks.2.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 270 |
+
"transformer_blocks.2.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 271 |
+
"transformer_blocks.2.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 272 |
+
"transformer_blocks.2.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 273 |
+
"transformer_blocks.2.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 274 |
+
"transformer_blocks.2.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 275 |
+
"transformer_blocks.2.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 276 |
+
"transformer_blocks.2.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 277 |
+
"transformer_blocks.2.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 278 |
+
"transformer_blocks.2.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 279 |
+
"transformer_blocks.2.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 280 |
+
"transformer_blocks.2.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 281 |
+
"transformer_blocks.2.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 282 |
+
"transformer_blocks.20.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 283 |
+
"transformer_blocks.20.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 284 |
+
"transformer_blocks.20.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 285 |
+
"transformer_blocks.20.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 286 |
+
"transformer_blocks.20.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 287 |
+
"transformer_blocks.20.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 288 |
+
"transformer_blocks.20.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 289 |
+
"transformer_blocks.20.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 290 |
+
"transformer_blocks.20.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 291 |
+
"transformer_blocks.20.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 292 |
+
"transformer_blocks.20.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 293 |
+
"transformer_blocks.20.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 294 |
+
"transformer_blocks.20.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 295 |
+
"transformer_blocks.20.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 296 |
+
"transformer_blocks.20.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 297 |
+
"transformer_blocks.20.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 298 |
+
"transformer_blocks.20.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 299 |
+
"transformer_blocks.20.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 300 |
+
"transformer_blocks.21.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 301 |
+
"transformer_blocks.21.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 302 |
+
"transformer_blocks.21.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 303 |
+
"transformer_blocks.21.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 304 |
+
"transformer_blocks.21.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 305 |
+
"transformer_blocks.21.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 306 |
+
"transformer_blocks.21.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 307 |
+
"transformer_blocks.21.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 308 |
+
"transformer_blocks.21.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 309 |
+
"transformer_blocks.21.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 310 |
+
"transformer_blocks.21.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 311 |
+
"transformer_blocks.21.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 312 |
+
"transformer_blocks.21.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 313 |
+
"transformer_blocks.21.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 314 |
+
"transformer_blocks.21.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 315 |
+
"transformer_blocks.21.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 316 |
+
"transformer_blocks.21.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 317 |
+
"transformer_blocks.21.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 318 |
+
"transformer_blocks.22.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 319 |
+
"transformer_blocks.22.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 320 |
+
"transformer_blocks.22.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 321 |
+
"transformer_blocks.22.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 322 |
+
"transformer_blocks.22.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 323 |
+
"transformer_blocks.22.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 324 |
+
"transformer_blocks.22.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 325 |
+
"transformer_blocks.22.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 326 |
+
"transformer_blocks.22.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 327 |
+
"transformer_blocks.22.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 328 |
+
"transformer_blocks.22.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 329 |
+
"transformer_blocks.22.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 330 |
+
"transformer_blocks.22.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 331 |
+
"transformer_blocks.22.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 332 |
+
"transformer_blocks.22.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 333 |
+
"transformer_blocks.22.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 334 |
+
"transformer_blocks.22.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 335 |
+
"transformer_blocks.22.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 336 |
+
"transformer_blocks.23.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 337 |
+
"transformer_blocks.23.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 338 |
+
"transformer_blocks.23.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 339 |
+
"transformer_blocks.23.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 340 |
+
"transformer_blocks.23.attn.to_k.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 341 |
+
"transformer_blocks.23.attn.to_k.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 342 |
+
"transformer_blocks.23.attn.to_out.0.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 343 |
+
"transformer_blocks.23.attn.to_out.0.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 344 |
+
"transformer_blocks.23.attn.to_q.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 345 |
+
"transformer_blocks.23.attn.to_q.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 346 |
+
"transformer_blocks.23.attn.to_v.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 347 |
+
"transformer_blocks.23.attn.to_v.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 348 |
+
"transformer_blocks.23.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 349 |
+
"transformer_blocks.23.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 350 |
+
"transformer_blocks.23.ff.net.2.down.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 351 |
+
"transformer_blocks.23.ff.net.2.up.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 352 |
+
"transformer_blocks.23.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 353 |
+
"transformer_blocks.23.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 354 |
+
"transformer_blocks.24.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 355 |
+
"transformer_blocks.24.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 356 |
+
"transformer_blocks.24.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 357 |
+
"transformer_blocks.24.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 358 |
+
"transformer_blocks.24.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 359 |
+
"transformer_blocks.24.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 360 |
+
"transformer_blocks.24.attn.to_out.0.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 361 |
+
"transformer_blocks.24.attn.to_out.0.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 362 |
+
"transformer_blocks.24.attn.to_q.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 363 |
+
"transformer_blocks.24.attn.to_q.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 364 |
+
"transformer_blocks.24.attn.to_v.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 365 |
+
"transformer_blocks.24.attn.to_v.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 366 |
+
"transformer_blocks.24.ff.net.0.proj.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 367 |
+
"transformer_blocks.24.ff.net.0.proj.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 368 |
+
"transformer_blocks.24.ff.net.2.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 369 |
+
"transformer_blocks.24.ff.net.2.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 370 |
+
"transformer_blocks.24.norm1.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 371 |
+
"transformer_blocks.24.norm2.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 372 |
+
"transformer_blocks.25.adaln_proj.linear.bias": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 373 |
+
"transformer_blocks.25.adaln_proj.linear.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 374 |
+
"transformer_blocks.25.attn.norm_k.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 375 |
+
"transformer_blocks.25.attn.norm_q.weight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 376 |
+
"transformer_blocks.25.attn.to_k.qweight": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 377 |
+
"transformer_blocks.25.attn.to_k.wscale": "diffusion_pytorch_model-00001-of-00004.safetensors",
|
| 378 |
+
"transformer_blocks.25.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 379 |
+
"transformer_blocks.25.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 380 |
+
"transformer_blocks.25.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 381 |
+
"transformer_blocks.25.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 382 |
+
"transformer_blocks.25.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 383 |
+
"transformer_blocks.25.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 384 |
+
"transformer_blocks.25.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 385 |
+
"transformer_blocks.25.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 386 |
+
"transformer_blocks.25.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 387 |
+
"transformer_blocks.25.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 388 |
+
"transformer_blocks.25.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 389 |
+
"transformer_blocks.25.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 390 |
+
"transformer_blocks.26.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 391 |
+
"transformer_blocks.26.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 392 |
+
"transformer_blocks.26.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 393 |
+
"transformer_blocks.26.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 394 |
+
"transformer_blocks.26.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 395 |
+
"transformer_blocks.26.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 396 |
+
"transformer_blocks.26.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 397 |
+
"transformer_blocks.26.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 398 |
+
"transformer_blocks.26.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 399 |
+
"transformer_blocks.26.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 400 |
+
"transformer_blocks.26.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 401 |
+
"transformer_blocks.26.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 402 |
+
"transformer_blocks.26.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 403 |
+
"transformer_blocks.26.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 404 |
+
"transformer_blocks.26.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 405 |
+
"transformer_blocks.26.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 406 |
+
"transformer_blocks.26.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 407 |
+
"transformer_blocks.26.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 408 |
+
"transformer_blocks.27.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 409 |
+
"transformer_blocks.27.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 410 |
+
"transformer_blocks.27.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 411 |
+
"transformer_blocks.27.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 412 |
+
"transformer_blocks.27.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 413 |
+
"transformer_blocks.27.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 414 |
+
"transformer_blocks.27.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 415 |
+
"transformer_blocks.27.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 416 |
+
"transformer_blocks.27.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 417 |
+
"transformer_blocks.27.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 418 |
+
"transformer_blocks.27.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 419 |
+
"transformer_blocks.27.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 420 |
+
"transformer_blocks.27.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 421 |
+
"transformer_blocks.27.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 422 |
+
"transformer_blocks.27.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 423 |
+
"transformer_blocks.27.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 424 |
+
"transformer_blocks.27.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 425 |
+
"transformer_blocks.27.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 426 |
+
"transformer_blocks.28.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 427 |
+
"transformer_blocks.28.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 428 |
+
"transformer_blocks.28.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 429 |
+
"transformer_blocks.28.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 430 |
+
"transformer_blocks.28.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 431 |
+
"transformer_blocks.28.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 432 |
+
"transformer_blocks.28.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 433 |
+
"transformer_blocks.28.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 434 |
+
"transformer_blocks.28.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 435 |
+
"transformer_blocks.28.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 436 |
+
"transformer_blocks.28.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 437 |
+
"transformer_blocks.28.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 438 |
+
"transformer_blocks.28.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 439 |
+
"transformer_blocks.28.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 440 |
+
"transformer_blocks.28.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 441 |
+
"transformer_blocks.28.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 442 |
+
"transformer_blocks.28.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 443 |
+
"transformer_blocks.28.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 444 |
+
"transformer_blocks.29.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 445 |
+
"transformer_blocks.29.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 446 |
+
"transformer_blocks.29.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 447 |
+
"transformer_blocks.29.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 448 |
+
"transformer_blocks.29.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 449 |
+
"transformer_blocks.29.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 450 |
+
"transformer_blocks.29.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 451 |
+
"transformer_blocks.29.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 452 |
+
"transformer_blocks.29.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 453 |
+
"transformer_blocks.29.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 454 |
+
"transformer_blocks.29.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 455 |
+
"transformer_blocks.29.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 456 |
+
"transformer_blocks.29.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 457 |
+
"transformer_blocks.29.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 458 |
+
"transformer_blocks.29.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 459 |
+
"transformer_blocks.29.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 460 |
+
"transformer_blocks.29.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 461 |
+
"transformer_blocks.29.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 462 |
+
"transformer_blocks.3.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 463 |
+
"transformer_blocks.3.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 464 |
+
"transformer_blocks.3.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 465 |
+
"transformer_blocks.3.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 466 |
+
"transformer_blocks.3.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 467 |
+
"transformer_blocks.3.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 468 |
+
"transformer_blocks.3.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 469 |
+
"transformer_blocks.3.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 470 |
+
"transformer_blocks.3.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 471 |
+
"transformer_blocks.3.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 472 |
+
"transformer_blocks.3.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 473 |
+
"transformer_blocks.3.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 474 |
+
"transformer_blocks.3.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 475 |
+
"transformer_blocks.3.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 476 |
+
"transformer_blocks.3.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 477 |
+
"transformer_blocks.3.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 478 |
+
"transformer_blocks.3.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 479 |
+
"transformer_blocks.3.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 480 |
+
"transformer_blocks.30.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 481 |
+
"transformer_blocks.30.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 482 |
+
"transformer_blocks.30.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 483 |
+
"transformer_blocks.30.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 484 |
+
"transformer_blocks.30.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 485 |
+
"transformer_blocks.30.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 486 |
+
"transformer_blocks.30.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 487 |
+
"transformer_blocks.30.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 488 |
+
"transformer_blocks.30.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 489 |
+
"transformer_blocks.30.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 490 |
+
"transformer_blocks.30.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 491 |
+
"transformer_blocks.30.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 492 |
+
"transformer_blocks.30.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 493 |
+
"transformer_blocks.30.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 494 |
+
"transformer_blocks.30.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 495 |
+
"transformer_blocks.30.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 496 |
+
"transformer_blocks.30.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 497 |
+
"transformer_blocks.30.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 498 |
+
"transformer_blocks.31.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 499 |
+
"transformer_blocks.31.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 500 |
+
"transformer_blocks.31.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 501 |
+
"transformer_blocks.31.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 502 |
+
"transformer_blocks.31.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 503 |
+
"transformer_blocks.31.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 504 |
+
"transformer_blocks.31.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 505 |
+
"transformer_blocks.31.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 506 |
+
"transformer_blocks.31.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 507 |
+
"transformer_blocks.31.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 508 |
+
"transformer_blocks.31.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 509 |
+
"transformer_blocks.31.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 510 |
+
"transformer_blocks.31.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 511 |
+
"transformer_blocks.31.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 512 |
+
"transformer_blocks.31.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 513 |
+
"transformer_blocks.31.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 514 |
+
"transformer_blocks.31.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 515 |
+
"transformer_blocks.31.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 516 |
+
"transformer_blocks.32.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 517 |
+
"transformer_blocks.32.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 518 |
+
"transformer_blocks.32.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 519 |
+
"transformer_blocks.32.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 520 |
+
"transformer_blocks.32.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 521 |
+
"transformer_blocks.32.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 522 |
+
"transformer_blocks.32.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 523 |
+
"transformer_blocks.32.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 524 |
+
"transformer_blocks.32.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 525 |
+
"transformer_blocks.32.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 526 |
+
"transformer_blocks.32.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 527 |
+
"transformer_blocks.32.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 528 |
+
"transformer_blocks.32.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 529 |
+
"transformer_blocks.32.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 530 |
+
"transformer_blocks.32.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 531 |
+
"transformer_blocks.32.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 532 |
+
"transformer_blocks.32.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 533 |
+
"transformer_blocks.32.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 534 |
+
"transformer_blocks.33.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 535 |
+
"transformer_blocks.33.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 536 |
+
"transformer_blocks.33.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 537 |
+
"transformer_blocks.33.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 538 |
+
"transformer_blocks.33.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 539 |
+
"transformer_blocks.33.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 540 |
+
"transformer_blocks.33.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 541 |
+
"transformer_blocks.33.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 542 |
+
"transformer_blocks.33.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 543 |
+
"transformer_blocks.33.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 544 |
+
"transformer_blocks.33.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 545 |
+
"transformer_blocks.33.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 546 |
+
"transformer_blocks.33.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 547 |
+
"transformer_blocks.33.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 548 |
+
"transformer_blocks.33.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 549 |
+
"transformer_blocks.33.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 550 |
+
"transformer_blocks.33.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 551 |
+
"transformer_blocks.33.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 552 |
+
"transformer_blocks.34.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 553 |
+
"transformer_blocks.34.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 554 |
+
"transformer_blocks.34.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 555 |
+
"transformer_blocks.34.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 556 |
+
"transformer_blocks.34.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 557 |
+
"transformer_blocks.34.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 558 |
+
"transformer_blocks.34.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 559 |
+
"transformer_blocks.34.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 560 |
+
"transformer_blocks.34.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 561 |
+
"transformer_blocks.34.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 562 |
+
"transformer_blocks.34.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 563 |
+
"transformer_blocks.34.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 564 |
+
"transformer_blocks.34.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 565 |
+
"transformer_blocks.34.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 566 |
+
"transformer_blocks.34.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 567 |
+
"transformer_blocks.34.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 568 |
+
"transformer_blocks.34.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 569 |
+
"transformer_blocks.34.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 570 |
+
"transformer_blocks.35.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 571 |
+
"transformer_blocks.35.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 572 |
+
"transformer_blocks.35.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 573 |
+
"transformer_blocks.35.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 574 |
+
"transformer_blocks.35.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 575 |
+
"transformer_blocks.35.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 576 |
+
"transformer_blocks.35.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 577 |
+
"transformer_blocks.35.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 578 |
+
"transformer_blocks.35.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 579 |
+
"transformer_blocks.35.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 580 |
+
"transformer_blocks.35.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 581 |
+
"transformer_blocks.35.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 582 |
+
"transformer_blocks.35.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 583 |
+
"transformer_blocks.35.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 584 |
+
"transformer_blocks.35.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 585 |
+
"transformer_blocks.35.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 586 |
+
"transformer_blocks.35.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 587 |
+
"transformer_blocks.35.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 588 |
+
"transformer_blocks.36.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 589 |
+
"transformer_blocks.36.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 590 |
+
"transformer_blocks.36.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 591 |
+
"transformer_blocks.36.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 592 |
+
"transformer_blocks.36.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 593 |
+
"transformer_blocks.36.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 594 |
+
"transformer_blocks.36.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 595 |
+
"transformer_blocks.36.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 596 |
+
"transformer_blocks.36.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 597 |
+
"transformer_blocks.36.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 598 |
+
"transformer_blocks.36.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 599 |
+
"transformer_blocks.36.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 600 |
+
"transformer_blocks.36.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 601 |
+
"transformer_blocks.36.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 602 |
+
"transformer_blocks.36.ff.net.2.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 603 |
+
"transformer_blocks.36.ff.net.2.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 604 |
+
"transformer_blocks.36.norm1.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 605 |
+
"transformer_blocks.36.norm2.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 606 |
+
"transformer_blocks.37.adaln_proj.linear.bias": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 607 |
+
"transformer_blocks.37.adaln_proj.linear.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 608 |
+
"transformer_blocks.37.attn.norm_k.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 609 |
+
"transformer_blocks.37.attn.norm_q.weight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 610 |
+
"transformer_blocks.37.attn.to_k.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 611 |
+
"transformer_blocks.37.attn.to_k.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 612 |
+
"transformer_blocks.37.attn.to_out.0.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 613 |
+
"transformer_blocks.37.attn.to_out.0.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 614 |
+
"transformer_blocks.37.attn.to_q.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 615 |
+
"transformer_blocks.37.attn.to_q.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 616 |
+
"transformer_blocks.37.attn.to_v.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 617 |
+
"transformer_blocks.37.attn.to_v.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 618 |
+
"transformer_blocks.37.ff.net.0.proj.qweight": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 619 |
+
"transformer_blocks.37.ff.net.0.proj.wscale": "diffusion_pytorch_model-00002-of-00004.safetensors",
|
| 620 |
+
"transformer_blocks.37.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 621 |
+
"transformer_blocks.37.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 622 |
+
"transformer_blocks.37.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 623 |
+
"transformer_blocks.37.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 624 |
+
"transformer_blocks.38.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 625 |
+
"transformer_blocks.38.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 626 |
+
"transformer_blocks.38.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 627 |
+
"transformer_blocks.38.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 628 |
+
"transformer_blocks.38.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 629 |
+
"transformer_blocks.38.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 630 |
+
"transformer_blocks.38.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 631 |
+
"transformer_blocks.38.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 632 |
+
"transformer_blocks.38.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 633 |
+
"transformer_blocks.38.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 634 |
+
"transformer_blocks.38.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 635 |
+
"transformer_blocks.38.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 636 |
+
"transformer_blocks.38.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 637 |
+
"transformer_blocks.38.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 638 |
+
"transformer_blocks.38.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 639 |
+
"transformer_blocks.38.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 640 |
+
"transformer_blocks.38.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 641 |
+
"transformer_blocks.38.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 642 |
+
"transformer_blocks.39.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 643 |
+
"transformer_blocks.39.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 644 |
+
"transformer_blocks.39.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 645 |
+
"transformer_blocks.39.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 646 |
+
"transformer_blocks.39.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 647 |
+
"transformer_blocks.39.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 648 |
+
"transformer_blocks.39.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 649 |
+
"transformer_blocks.39.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 650 |
+
"transformer_blocks.39.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 651 |
+
"transformer_blocks.39.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 652 |
+
"transformer_blocks.39.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 653 |
+
"transformer_blocks.39.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 654 |
+
"transformer_blocks.39.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 655 |
+
"transformer_blocks.39.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 656 |
+
"transformer_blocks.39.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 657 |
+
"transformer_blocks.39.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 658 |
+
"transformer_blocks.39.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 659 |
+
"transformer_blocks.39.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 660 |
+
"transformer_blocks.4.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 661 |
+
"transformer_blocks.4.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 662 |
+
"transformer_blocks.4.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 663 |
+
"transformer_blocks.4.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 664 |
+
"transformer_blocks.4.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 665 |
+
"transformer_blocks.4.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 666 |
+
"transformer_blocks.4.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 667 |
+
"transformer_blocks.4.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 668 |
+
"transformer_blocks.4.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 669 |
+
"transformer_blocks.4.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 670 |
+
"transformer_blocks.4.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 671 |
+
"transformer_blocks.4.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 672 |
+
"transformer_blocks.4.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 673 |
+
"transformer_blocks.4.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 674 |
+
"transformer_blocks.4.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 675 |
+
"transformer_blocks.4.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 676 |
+
"transformer_blocks.4.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 677 |
+
"transformer_blocks.4.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 678 |
+
"transformer_blocks.40.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 679 |
+
"transformer_blocks.40.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 680 |
+
"transformer_blocks.40.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 681 |
+
"transformer_blocks.40.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 682 |
+
"transformer_blocks.40.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 683 |
+
"transformer_blocks.40.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 684 |
+
"transformer_blocks.40.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 685 |
+
"transformer_blocks.40.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 686 |
+
"transformer_blocks.40.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 687 |
+
"transformer_blocks.40.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 688 |
+
"transformer_blocks.40.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 689 |
+
"transformer_blocks.40.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 690 |
+
"transformer_blocks.40.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 691 |
+
"transformer_blocks.40.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 692 |
+
"transformer_blocks.40.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 693 |
+
"transformer_blocks.40.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 694 |
+
"transformer_blocks.40.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 695 |
+
"transformer_blocks.40.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 696 |
+
"transformer_blocks.41.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 697 |
+
"transformer_blocks.41.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 698 |
+
"transformer_blocks.41.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 699 |
+
"transformer_blocks.41.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 700 |
+
"transformer_blocks.41.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 701 |
+
"transformer_blocks.41.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 702 |
+
"transformer_blocks.41.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 703 |
+
"transformer_blocks.41.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 704 |
+
"transformer_blocks.41.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 705 |
+
"transformer_blocks.41.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 706 |
+
"transformer_blocks.41.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 707 |
+
"transformer_blocks.41.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 708 |
+
"transformer_blocks.41.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 709 |
+
"transformer_blocks.41.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 710 |
+
"transformer_blocks.41.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 711 |
+
"transformer_blocks.41.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 712 |
+
"transformer_blocks.41.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 713 |
+
"transformer_blocks.41.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 714 |
+
"transformer_blocks.42.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 715 |
+
"transformer_blocks.42.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 716 |
+
"transformer_blocks.42.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 717 |
+
"transformer_blocks.42.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 718 |
+
"transformer_blocks.42.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 719 |
+
"transformer_blocks.42.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 720 |
+
"transformer_blocks.42.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 721 |
+
"transformer_blocks.42.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 722 |
+
"transformer_blocks.42.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 723 |
+
"transformer_blocks.42.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 724 |
+
"transformer_blocks.42.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 725 |
+
"transformer_blocks.42.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 726 |
+
"transformer_blocks.42.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 727 |
+
"transformer_blocks.42.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 728 |
+
"transformer_blocks.42.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 729 |
+
"transformer_blocks.42.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 730 |
+
"transformer_blocks.42.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 731 |
+
"transformer_blocks.42.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 732 |
+
"transformer_blocks.43.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 733 |
+
"transformer_blocks.43.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 734 |
+
"transformer_blocks.43.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 735 |
+
"transformer_blocks.43.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 736 |
+
"transformer_blocks.43.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 737 |
+
"transformer_blocks.43.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 738 |
+
"transformer_blocks.43.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 739 |
+
"transformer_blocks.43.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 740 |
+
"transformer_blocks.43.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 741 |
+
"transformer_blocks.43.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 742 |
+
"transformer_blocks.43.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 743 |
+
"transformer_blocks.43.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 744 |
+
"transformer_blocks.43.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 745 |
+
"transformer_blocks.43.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 746 |
+
"transformer_blocks.43.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 747 |
+
"transformer_blocks.43.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 748 |
+
"transformer_blocks.43.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 749 |
+
"transformer_blocks.43.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 750 |
+
"transformer_blocks.44.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 751 |
+
"transformer_blocks.44.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 752 |
+
"transformer_blocks.44.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 753 |
+
"transformer_blocks.44.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 754 |
+
"transformer_blocks.44.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 755 |
+
"transformer_blocks.44.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 756 |
+
"transformer_blocks.44.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 757 |
+
"transformer_blocks.44.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 758 |
+
"transformer_blocks.44.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 759 |
+
"transformer_blocks.44.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 760 |
+
"transformer_blocks.44.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 761 |
+
"transformer_blocks.44.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 762 |
+
"transformer_blocks.44.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 763 |
+
"transformer_blocks.44.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 764 |
+
"transformer_blocks.44.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 765 |
+
"transformer_blocks.44.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 766 |
+
"transformer_blocks.44.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 767 |
+
"transformer_blocks.44.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 768 |
+
"transformer_blocks.45.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 769 |
+
"transformer_blocks.45.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 770 |
+
"transformer_blocks.45.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 771 |
+
"transformer_blocks.45.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 772 |
+
"transformer_blocks.45.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 773 |
+
"transformer_blocks.45.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 774 |
+
"transformer_blocks.45.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 775 |
+
"transformer_blocks.45.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 776 |
+
"transformer_blocks.45.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 777 |
+
"transformer_blocks.45.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 778 |
+
"transformer_blocks.45.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 779 |
+
"transformer_blocks.45.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 780 |
+
"transformer_blocks.45.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 781 |
+
"transformer_blocks.45.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 782 |
+
"transformer_blocks.45.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 783 |
+
"transformer_blocks.45.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 784 |
+
"transformer_blocks.45.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 785 |
+
"transformer_blocks.45.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 786 |
+
"transformer_blocks.46.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 787 |
+
"transformer_blocks.46.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 788 |
+
"transformer_blocks.46.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 789 |
+
"transformer_blocks.46.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 790 |
+
"transformer_blocks.46.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 791 |
+
"transformer_blocks.46.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 792 |
+
"transformer_blocks.46.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 793 |
+
"transformer_blocks.46.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 794 |
+
"transformer_blocks.46.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 795 |
+
"transformer_blocks.46.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 796 |
+
"transformer_blocks.46.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 797 |
+
"transformer_blocks.46.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 798 |
+
"transformer_blocks.46.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 799 |
+
"transformer_blocks.46.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 800 |
+
"transformer_blocks.46.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 801 |
+
"transformer_blocks.46.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 802 |
+
"transformer_blocks.46.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 803 |
+
"transformer_blocks.46.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 804 |
+
"transformer_blocks.47.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 805 |
+
"transformer_blocks.47.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 806 |
+
"transformer_blocks.47.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 807 |
+
"transformer_blocks.47.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 808 |
+
"transformer_blocks.47.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 809 |
+
"transformer_blocks.47.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 810 |
+
"transformer_blocks.47.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 811 |
+
"transformer_blocks.47.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 812 |
+
"transformer_blocks.47.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 813 |
+
"transformer_blocks.47.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 814 |
+
"transformer_blocks.47.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 815 |
+
"transformer_blocks.47.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 816 |
+
"transformer_blocks.47.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 817 |
+
"transformer_blocks.47.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 818 |
+
"transformer_blocks.47.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 819 |
+
"transformer_blocks.47.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 820 |
+
"transformer_blocks.47.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 821 |
+
"transformer_blocks.47.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 822 |
+
"transformer_blocks.48.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 823 |
+
"transformer_blocks.48.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 824 |
+
"transformer_blocks.48.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 825 |
+
"transformer_blocks.48.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 826 |
+
"transformer_blocks.48.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 827 |
+
"transformer_blocks.48.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 828 |
+
"transformer_blocks.48.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 829 |
+
"transformer_blocks.48.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 830 |
+
"transformer_blocks.48.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 831 |
+
"transformer_blocks.48.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 832 |
+
"transformer_blocks.48.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 833 |
+
"transformer_blocks.48.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 834 |
+
"transformer_blocks.48.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 835 |
+
"transformer_blocks.48.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 836 |
+
"transformer_blocks.48.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 837 |
+
"transformer_blocks.48.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 838 |
+
"transformer_blocks.48.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 839 |
+
"transformer_blocks.48.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 840 |
+
"transformer_blocks.49.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 841 |
+
"transformer_blocks.49.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 842 |
+
"transformer_blocks.49.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 843 |
+
"transformer_blocks.49.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 844 |
+
"transformer_blocks.49.attn.to_k.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 845 |
+
"transformer_blocks.49.attn.to_k.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 846 |
+
"transformer_blocks.49.attn.to_out.0.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 847 |
+
"transformer_blocks.49.attn.to_out.0.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 848 |
+
"transformer_blocks.49.attn.to_q.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 849 |
+
"transformer_blocks.49.attn.to_q.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 850 |
+
"transformer_blocks.49.attn.to_v.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 851 |
+
"transformer_blocks.49.attn.to_v.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 852 |
+
"transformer_blocks.49.ff.net.0.proj.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 853 |
+
"transformer_blocks.49.ff.net.0.proj.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 854 |
+
"transformer_blocks.49.ff.net.2.qweight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 855 |
+
"transformer_blocks.49.ff.net.2.wscale": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 856 |
+
"transformer_blocks.49.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 857 |
+
"transformer_blocks.49.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 858 |
+
"transformer_blocks.5.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 859 |
+
"transformer_blocks.5.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 860 |
+
"transformer_blocks.5.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 861 |
+
"transformer_blocks.5.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 862 |
+
"transformer_blocks.5.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 863 |
+
"transformer_blocks.5.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 864 |
+
"transformer_blocks.5.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 865 |
+
"transformer_blocks.5.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 866 |
+
"transformer_blocks.5.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 867 |
+
"transformer_blocks.5.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 868 |
+
"transformer_blocks.5.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 869 |
+
"transformer_blocks.5.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 870 |
+
"transformer_blocks.5.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 871 |
+
"transformer_blocks.5.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 872 |
+
"transformer_blocks.5.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 873 |
+
"transformer_blocks.5.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 874 |
+
"transformer_blocks.5.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 875 |
+
"transformer_blocks.5.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 876 |
+
"transformer_blocks.6.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 877 |
+
"transformer_blocks.6.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 878 |
+
"transformer_blocks.6.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 879 |
+
"transformer_blocks.6.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 880 |
+
"transformer_blocks.6.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 881 |
+
"transformer_blocks.6.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 882 |
+
"transformer_blocks.6.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 883 |
+
"transformer_blocks.6.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 884 |
+
"transformer_blocks.6.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 885 |
+
"transformer_blocks.6.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 886 |
+
"transformer_blocks.6.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 887 |
+
"transformer_blocks.6.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 888 |
+
"transformer_blocks.6.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 889 |
+
"transformer_blocks.6.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 890 |
+
"transformer_blocks.6.ff.net.2.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 891 |
+
"transformer_blocks.6.ff.net.2.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 892 |
+
"transformer_blocks.6.norm1.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 893 |
+
"transformer_blocks.6.norm2.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 894 |
+
"transformer_blocks.7.adaln_proj.linear.bias": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 895 |
+
"transformer_blocks.7.adaln_proj.linear.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 896 |
+
"transformer_blocks.7.attn.norm_k.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 897 |
+
"transformer_blocks.7.attn.norm_q.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 898 |
+
"transformer_blocks.7.attn.to_k.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 899 |
+
"transformer_blocks.7.attn.to_k.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 900 |
+
"transformer_blocks.7.attn.to_out.0.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 901 |
+
"transformer_blocks.7.attn.to_out.0.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 902 |
+
"transformer_blocks.7.attn.to_q.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 903 |
+
"transformer_blocks.7.attn.to_q.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 904 |
+
"transformer_blocks.7.attn.to_v.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 905 |
+
"transformer_blocks.7.attn.to_v.up.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 906 |
+
"transformer_blocks.7.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00003-of-00004.safetensors",
|
| 907 |
+
"transformer_blocks.7.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 908 |
+
"transformer_blocks.7.ff.net.2.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 909 |
+
"transformer_blocks.7.ff.net.2.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 910 |
+
"transformer_blocks.7.norm1.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 911 |
+
"transformer_blocks.7.norm2.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 912 |
+
"transformer_blocks.8.adaln_proj.linear.bias": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 913 |
+
"transformer_blocks.8.adaln_proj.linear.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 914 |
+
"transformer_blocks.8.attn.norm_k.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 915 |
+
"transformer_blocks.8.attn.norm_q.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 916 |
+
"transformer_blocks.8.attn.to_k.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 917 |
+
"transformer_blocks.8.attn.to_k.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 918 |
+
"transformer_blocks.8.attn.to_out.0.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 919 |
+
"transformer_blocks.8.attn.to_out.0.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 920 |
+
"transformer_blocks.8.attn.to_q.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 921 |
+
"transformer_blocks.8.attn.to_q.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 922 |
+
"transformer_blocks.8.attn.to_v.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 923 |
+
"transformer_blocks.8.attn.to_v.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 924 |
+
"transformer_blocks.8.ff.net.0.proj.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 925 |
+
"transformer_blocks.8.ff.net.0.proj.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 926 |
+
"transformer_blocks.8.ff.net.2.down.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 927 |
+
"transformer_blocks.8.ff.net.2.up.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 928 |
+
"transformer_blocks.8.norm1.weight": "diffusion_pytorch_model-00004-of-00004.safetensors",
|
| 929 |
+
"transformer_blocks.8.norm2.weight": "diffusion_pytorch_model-00004-of-00004.safetensors"
|
| 930 |
+
}
|
| 931 |
+
}
|
ref2va_int8_convrot/hyperflow_h3_flash_int8.py
ADDED
|
@@ -0,0 +1,410 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2026 The HyperFlow authors. Licensed under the Apache License, Version 2.0.
|
| 2 |
+
"""INT8 W8A8 linears with a Hadamard-rotated input dimension.
|
| 3 |
+
|
| 4 |
+
A dense ``y = x @ W^T`` is stored as ``qweight = round(W R / wscale)`` (int8, one fp32 scale per output channel), where
|
| 5 |
+
``R`` is a block-diagonal regular Hadamard of size ``group``. ``R`` is orthonormal, so ``y = (x R) @ (W R)^T``: at run
|
| 6 |
+
time the activation is rotated and quantized per token, multiplied in int8 with an exact int32 accumulator, and
|
| 7 |
+
rescaled. The rotation spreads outlier channels across the group, which is what makes per-token int8 activations work.
|
| 8 |
+
|
| 9 |
+
On CUDA the rotation + quantization and the GEMM are Triton kernels (compiled on first use). Every kernel fits the
|
| 10 |
+
99 KiB of shared memory per block of Ampere, Ada and consumer Blackwell GPUs. The int8 GEMM runs as a Triton kernel or
|
| 11 |
+
as cuBLASLt (``torch._int_mm``) plus a Triton epilogue; both use the same int32 accumulator and the same fp32 multiply
|
| 12 |
+
order, so they give bitwise identical outputs. cuBLASLt is faster from compute capability 10 on, Triton on Hopper.
|
| 13 |
+
The B300 (compute capability 10.3) has INT8 tensor cores at about 1/20 of the B200's, so there the int8 codes are
|
| 14 |
+
multiplied on bf16 tensor cores into an fp32 accumulator: products are exact, and the sum matches the int32 one while
|
| 15 |
+
it stays below 2**24, which the rotated activations keep well clear of.
|
| 16 |
+
Elsewhere a plain torch implementation of the same scheme runs.
|
| 17 |
+
|
| 18 |
+
`KERNEL_OPTIONS` (set by `load_pipeline`, no weight change) picks the kernels at run time:
|
| 19 |
+
|
| 20 |
+
* ``int8_gemm``: ``"auto"`` (the choice above), ``"triton"``, ``"cublas"``, ``"bf16"``, or ``"sgl"``: CUTLASS
|
| 21 |
+
``sgl_kernel.int8_scaled_mm`` with the scales in its epilogue, within 1 ulp of Triton and 1.25 to 1.45x faster on
|
| 22 |
+
H200 (Triton when sgl_kernel is missing).
|
| 23 |
+
* ``rotate_quant``: ``"dense"`` (the kernel above) or ``"factored"``: a 256-channel group rotated as ``H16 X H16``, two
|
| 24 |
+
K = 16 dots in 8.5 KiB of shared memory, 1.6 to 2.0x faster on H200; it rounds the rotated activation like the dense
|
| 25 |
+
kernel up to rare one-code differences.
|
| 26 |
+
"""
|
| 27 |
+
|
| 28 |
+
from __future__ import annotations
|
| 29 |
+
|
| 30 |
+
import functools
|
| 31 |
+
from types import SimpleNamespace
|
| 32 |
+
from typing import Any, ClassVar
|
| 33 |
+
|
| 34 |
+
import torch
|
| 35 |
+
from torch import Tensor, nn
|
| 36 |
+
|
| 37 |
+
#: Run-time kernel choices.
|
| 38 |
+
INT8_GEMMS = ("auto", "triton", "cublas", "sgl", "bf16")
|
| 39 |
+
ROTATE_QUANTS = ("dense", "factored")
|
| 40 |
+
|
| 41 |
+
#: Rows below this go through the torch path: `torch._int_mm` needs more than 16 rows, and so few rows are not worth
|
| 42 |
+
#: a kernel launch.
|
| 43 |
+
_MIN_KERNEL_ROWS = 17
|
| 44 |
+
|
| 45 |
+
#: Run-time kernel choices for every `Int8RotLinear`; `load_pipeline` sets them.
|
| 46 |
+
KERNEL_OPTIONS: dict[str, Any] = {"int8_gemm": "auto", "rotate_quant": "dense"}
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
def set_kernel_options(*, int8_gemm: str | None = None, rotate_quant: str | None = None) -> None:
|
| 50 |
+
if int8_gemm is not None:
|
| 51 |
+
if int8_gemm not in INT8_GEMMS:
|
| 52 |
+
raise ValueError(f"int8_gemm must be one of {INT8_GEMMS}, got {int8_gemm!r}")
|
| 53 |
+
KERNEL_OPTIONS["int8_gemm"] = int8_gemm
|
| 54 |
+
if rotate_quant is not None:
|
| 55 |
+
if rotate_quant not in ROTATE_QUANTS:
|
| 56 |
+
raise ValueError(f"rotate_quant must be one of {ROTATE_QUANTS}, got {rotate_quant!r}")
|
| 57 |
+
KERNEL_OPTIONS["rotate_quant"] = rotate_quant
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
@functools.cache
|
| 61 |
+
def _sgl_int8_scaled_mm():
|
| 62 |
+
"""sgl_kernel's ``int8_scaled_mm``, or None when sgl_kernel is not importable."""
|
| 63 |
+
try:
|
| 64 |
+
from sgl_kernel import int8_scaled_mm
|
| 65 |
+
except ImportError:
|
| 66 |
+
return None
|
| 67 |
+
return int8_scaled_mm
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def _has_bf16_mm() -> bool:
|
| 71 |
+
# `torch.mm(..., out_dtype=)` is PyTorch 2.8+.
|
| 72 |
+
return tuple(int(v) for v in torch.__version__.split(".")[:2]) >= (2, 8)
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
@functools.cache
|
| 76 |
+
def _auto_int8_gemm(device: torch.device) -> str:
|
| 77 |
+
capability = torch.cuda.get_device_capability(device)
|
| 78 |
+
if capability == (10, 3) and _has_bf16_mm():
|
| 79 |
+
return "bf16"
|
| 80 |
+
if hasattr(torch, "_int_mm") and capability[0] >= 10:
|
| 81 |
+
return "cublas"
|
| 82 |
+
return "triton"
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def resolve_int8_gemm(device: torch.device) -> str:
|
| 86 |
+
"""The GEMM ``KERNEL_OPTIONS["int8_gemm"]`` runs as on ``device``: ``"triton"``, ``"cublas"``, ``"bf16"`` or
|
| 87 |
+
``"sgl"``."""
|
| 88 |
+
choice = KERNEL_OPTIONS["int8_gemm"]
|
| 89 |
+
if choice == "auto":
|
| 90 |
+
return _auto_int8_gemm(device)
|
| 91 |
+
if (
|
| 92 |
+
(choice == "sgl" and _sgl_int8_scaled_mm() is None)
|
| 93 |
+
or (choice == "cublas" and not hasattr(torch, "_int_mm"))
|
| 94 |
+
or (choice == "bf16" and not _has_bf16_mm())
|
| 95 |
+
):
|
| 96 |
+
return "triton"
|
| 97 |
+
return choice
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
@functools.cache
|
| 101 |
+
def regular_hadamard(group: int) -> Tensor:
|
| 102 |
+
"""``kron(H4 / 2, ..., H4 / 2)`` of size ``group`` (a power of 4): orthonormal, symmetric, rows sum to one."""
|
| 103 |
+
h4 = torch.tensor([[1, 1, 1, -1], [1, 1, -1, 1], [1, -1, 1, 1], [-1, 1, 1, 1]], dtype=torch.float64) / 2
|
| 104 |
+
h, n = torch.ones(1, 1, dtype=torch.float64), 1
|
| 105 |
+
while n < group:
|
| 106 |
+
h, n = torch.kron(h, h4), n * 4
|
| 107 |
+
if n != group:
|
| 108 |
+
raise ValueError(f"Hadamard group {group} is not a power of 4")
|
| 109 |
+
return h.float()
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
def hadamard_factors(group: int) -> tuple[int, int] | None:
|
| 113 |
+
"""``(GA, GB)`` with ``regular_hadamard(group) == kron(regular_hadamard(GA), regular_hadamard(GB))``, both at
|
| 114 |
+
least 16 (the smallest bf16 ``tl.dot`` K); None when ``group`` cannot be split that way."""
|
| 115 |
+
n = group.bit_length() - 1
|
| 116 |
+
if group < 256 or group != 1 << n or n % 2:
|
| 117 |
+
return None
|
| 118 |
+
ga = 4 ** (n // 4)
|
| 119 |
+
return ga, group // ga
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
@functools.cache
|
| 123 |
+
def _rotation(group: int, device: torch.device) -> Tensor:
|
| 124 |
+
return regular_hadamard(group).to(device=device, dtype=torch.bfloat16)
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
class Int8RotLinear(nn.Module):
|
| 128 |
+
"""Bias-free W8A8 linear: ``y = (q(x R) @ qweight^T) * s_x * wscale``, ``R = blockdiag(regular Hadamard)``.
|
| 129 |
+
|
| 130 |
+
Linears that read one input (``to_q``, ``to_k``, ``to_v``) quantize it once: a layer with ``keep_input = True``
|
| 131 |
+
leaves its quantized input for the next layer, which reuses it if it receives the exact same, unmodified tensor.
|
| 132 |
+
Any other layer clears it, so nothing outlives the projections.
|
| 133 |
+
"""
|
| 134 |
+
|
| 135 |
+
_last_input: ClassVar[dict[str, Any]] = {}
|
| 136 |
+
|
| 137 |
+
def __init__(self, in_features: int, out_features: int, group: int) -> None:
|
| 138 |
+
super().__init__()
|
| 139 |
+
if in_features % group:
|
| 140 |
+
raise ValueError(f"in_features {in_features} is not a multiple of the Hadamard group {group}")
|
| 141 |
+
self.in_features, self.out_features, self.group = in_features, out_features, group
|
| 142 |
+
self.keep_input = False
|
| 143 |
+
# Parameters, not buffers: diffusers' streamed group offloading moves module buffers on but never back off.
|
| 144 |
+
self.qweight = nn.Parameter(torch.zeros(out_features, in_features, dtype=torch.int8), requires_grad=False)
|
| 145 |
+
self.wscale = nn.Parameter(torch.ones(out_features, dtype=torch.float32), requires_grad=False)
|
| 146 |
+
|
| 147 |
+
def extra_repr(self) -> str:
|
| 148 |
+
return f"in_features={self.in_features}, out_features={self.out_features}, group={self.group}"
|
| 149 |
+
|
| 150 |
+
def _quantize(self, x: Tensor, x2: Tensor, kernels: SimpleNamespace) -> tuple[Tensor, Tensor]:
|
| 151 |
+
cache = Int8RotLinear._last_input
|
| 152 |
+
# Inference tensors (`torch.inference_mode`) have no version counter.
|
| 153 |
+
version = None if x.is_inference() else x._version
|
| 154 |
+
hit = cache.get("x") is x and cache.get("version") == version and cache.get("group") == self.group
|
| 155 |
+
quantized = cache["value"] if hit else kernels.rotate_quant(x2, self.group)
|
| 156 |
+
cache.clear()
|
| 157 |
+
if self.keep_input:
|
| 158 |
+
cache.update(x=x, version=version, group=self.group, value=quantized)
|
| 159 |
+
return quantized
|
| 160 |
+
|
| 161 |
+
def forward(self, x: Tensor) -> Tensor:
|
| 162 |
+
shape = x.shape
|
| 163 |
+
x2 = x.reshape(-1, self.in_features).to(torch.bfloat16).contiguous()
|
| 164 |
+
kernels = _kernels() if x2.is_cuda and x2.shape[0] >= _MIN_KERNEL_ROWS else None
|
| 165 |
+
if kernels is None:
|
| 166 |
+
Int8RotLinear._last_input.clear()
|
| 167 |
+
y = self._forward_torch(x2, _rotation(self.group, x2.device))
|
| 168 |
+
else:
|
| 169 |
+
xq, sx = self._quantize(x, x2, kernels)
|
| 170 |
+
y = kernels.int8_matmul(xq, self.qweight, sx, self.wscale)
|
| 171 |
+
return y.reshape(*shape[:-1], self.out_features).to(x.dtype)
|
| 172 |
+
|
| 173 |
+
def _forward_torch(self, x2: Tensor, rot: Tensor) -> Tensor:
|
| 174 |
+
"""The same scheme in plain torch; the rotated activation is rounded to bf16 before quantization."""
|
| 175 |
+
g = self.group
|
| 176 |
+
xr = (x2.reshape(-1, self.in_features // g, g) @ rot).reshape(x2.shape).float()
|
| 177 |
+
sx = xr.abs().amax(1, keepdim=True).clamp_min(1e-12) / 127.0
|
| 178 |
+
xq = (xr / sx).round().clamp(-127, 127)
|
| 179 |
+
return ((xq @ self.qweight.float().t()) * sx * self.wscale[None, :]).to(torch.bfloat16)
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
@functools.cache
|
| 183 |
+
def _kernels() -> SimpleNamespace | None:
|
| 184 |
+
"""``rotate_quant`` and ``int8_matmul`` as Triton kernels; ``None`` when Triton is not installed."""
|
| 185 |
+
try:
|
| 186 |
+
import triton
|
| 187 |
+
import triton.language as tl
|
| 188 |
+
except ImportError:
|
| 189 |
+
return None
|
| 190 |
+
|
| 191 |
+
ROTATE_BM = 64
|
| 192 |
+
FACTORED_BM = 16
|
| 193 |
+
|
| 194 |
+
@triton.jit
|
| 195 |
+
def rotate_quant_kernel(
|
| 196 |
+
x_ptr, h_ptr, q_ptr, s_ptr, M, K, stride_xm, stride_qm,
|
| 197 |
+
G: tl.constexpr, BM: tl.constexpr, BN: tl.constexpr,
|
| 198 |
+
): # fmt: skip
|
| 199 |
+
# Two passes over the row block: the per-token scale needs the absmax of the whole rotated row first.
|
| 200 |
+
# The Hadamard streams through in G x BN column tiles, so shared memory is (BM * G + G * BN) * 2 bytes.
|
| 201 |
+
rows = tl.program_id(0) * BM + tl.arange(0, BM)
|
| 202 |
+
rows64 = rows.to(tl.int64)
|
| 203 |
+
cols = tl.arange(0, G)
|
| 204 |
+
tile = tl.arange(0, BN)
|
| 205 |
+
rmask = rows < M
|
| 206 |
+
amax = tl.zeros((BM,), dtype=tl.float32)
|
| 207 |
+
for g in range(0, K, G):
|
| 208 |
+
x = tl.load(x_ptr + rows64[:, None] * stride_xm + (g + cols)[None, :], mask=rmask[:, None], other=0.0)
|
| 209 |
+
for n in range(0, G, BN):
|
| 210 |
+
h = tl.load(h_ptr + cols[:, None] * G + (n + tile)[None, :])
|
| 211 |
+
amax = tl.maximum(amax, tl.max(tl.abs(tl.dot(x, h)), axis=1))
|
| 212 |
+
scale = tl.maximum(amax, 1e-12) / 127.0
|
| 213 |
+
tl.store(s_ptr + rows, scale, mask=rmask)
|
| 214 |
+
inv = 1.0 / scale
|
| 215 |
+
for g in range(0, K, G):
|
| 216 |
+
x = tl.load(x_ptr + rows64[:, None] * stride_xm + (g + cols)[None, :], mask=rmask[:, None], other=0.0)
|
| 217 |
+
for n in range(0, G, BN):
|
| 218 |
+
h = tl.load(h_ptr + cols[:, None] * G + (n + tile)[None, :])
|
| 219 |
+
q = tl.extra.cuda.libdevice.rint(tl.dot(x, h) * inv[:, None])
|
| 220 |
+
q = tl.minimum(tl.maximum(q, -127.0), 127.0).to(tl.int8)
|
| 221 |
+
tl.store(q_ptr + rows64[:, None] * stride_qm + (g + n + tile)[None, :], q, mask=rmask[:, None])
|
| 222 |
+
|
| 223 |
+
@triton.jit
|
| 224 |
+
def rotate_quant_factored_kernel(
|
| 225 |
+
x_ptr, ha_ptr, hb_ptr, q_ptr, s_ptr, M, K, stride_xm, stride_qm,
|
| 226 |
+
GA: tl.constexpr, GB: tl.constexpr, BM: tl.constexpr,
|
| 227 |
+
): # fmt: skip
|
| 228 |
+
# Channel g + a * GB + b of a group is X[a, b]; the rotated group is H_GA X H_GB. Pass 0 takes the row absmax,
|
| 229 |
+
# pass 1 rotates again and writes int8. The fp32 input of the second dot is split into three bf16 terms
|
| 230 |
+
# (8 + 8 + 8 significand bits), so it is exact; a tf32 dot or a two-term split rounds it measurably.
|
| 231 |
+
# The second dot is batched per row, so its result is already in channel order.
|
| 232 |
+
G: tl.constexpr = GA * GB
|
| 233 |
+
rows = tl.program_id(0) * BM + tl.arange(0, BM)
|
| 234 |
+
rows64 = rows.to(tl.int64)
|
| 235 |
+
cols = tl.arange(0, G)
|
| 236 |
+
rmask = rows < M
|
| 237 |
+
ia = tl.arange(0, GA)
|
| 238 |
+
ib = tl.arange(0, GB)
|
| 239 |
+
ha = tl.broadcast_to(tl.load(ha_ptr + ia[:, None] * GA + ia[None, :])[None, :, :], (BM, GA, GA))
|
| 240 |
+
hb = tl.load(hb_ptr + ib[:, None] * GB + ib[None, :])
|
| 241 |
+
amax = tl.zeros((BM,), dtype=tl.float32)
|
| 242 |
+
inv = tl.zeros((BM,), dtype=tl.float32)
|
| 243 |
+
for p in tl.static_range(2):
|
| 244 |
+
for g in range(0, K, G):
|
| 245 |
+
x = tl.load(x_ptr + rows64[:, None] * stride_xm + (g + cols)[None, :], mask=rmask[:, None], other=0.0)
|
| 246 |
+
z = tl.reshape(tl.dot(tl.reshape(x, (BM * GA, GB)), hb), (BM, GA, GB))
|
| 247 |
+
z_hi = z.to(tl.bfloat16)
|
| 248 |
+
z = z - z_hi.to(tl.float32)
|
| 249 |
+
z_mid = z.to(tl.bfloat16)
|
| 250 |
+
z_lo = (z - z_mid.to(tl.float32)).to(tl.bfloat16)
|
| 251 |
+
y = tl.dot(ha, z_lo, acc=tl.dot(ha, z_mid, acc=tl.dot(ha, z_hi)))
|
| 252 |
+
y = tl.reshape(y, (BM, G))
|
| 253 |
+
if p == 0:
|
| 254 |
+
amax = tl.maximum(amax, tl.max(tl.abs(y), axis=1))
|
| 255 |
+
else:
|
| 256 |
+
q = tl.extra.cuda.libdevice.rint(y * inv[:, None])
|
| 257 |
+
q = tl.minimum(tl.maximum(q, -127.0), 127.0).to(tl.int8)
|
| 258 |
+
tl.store(q_ptr + rows64[:, None] * stride_qm + (g + cols)[None, :], q, mask=rmask[:, None])
|
| 259 |
+
if p == 0:
|
| 260 |
+
scale = tl.maximum(amax, 1e-12) / 127.0
|
| 261 |
+
tl.store(s_ptr + rows, scale, mask=rmask)
|
| 262 |
+
inv = 1.0 / scale
|
| 263 |
+
|
| 264 |
+
@functools.cache
|
| 265 |
+
def rotate_tile(device_index: int, group: int) -> int:
|
| 266 |
+
# At group 256, 128 columns take 96 KiB: that fits every GPU from Ampere on (99 KiB per block).
|
| 267 |
+
shared = triton.runtime.driver.active.utils.get_device_properties(device_index)["max_shared_mem"]
|
| 268 |
+
tile = 128 if (ROTATE_BM * group + group * 128) * 2 <= shared else 64
|
| 269 |
+
return min(tile, group)
|
| 270 |
+
|
| 271 |
+
configs = [
|
| 272 |
+
triton.Config({"BM": bm, "BN": bn, "BK": bk, "GROUP_M": 8}, num_stages=stages, num_warps=warps)
|
| 273 |
+
for bm, bn, bk, stages, warps in [
|
| 274 |
+
(128, 256, 128, 3, 8),
|
| 275 |
+
(256, 128, 128, 3, 8),
|
| 276 |
+
(128, 128, 128, 4, 8),
|
| 277 |
+
(128, 256, 64, 4, 8),
|
| 278 |
+
(256, 128, 64, 4, 8),
|
| 279 |
+
(128, 128, 64, 5, 4),
|
| 280 |
+
]
|
| 281 |
+
]
|
| 282 |
+
|
| 283 |
+
@triton.autotune(configs=configs, key=["M_BUCKET", "N", "K"])
|
| 284 |
+
@triton.jit
|
| 285 |
+
def int8_mm_kernel(
|
| 286 |
+
a_ptr, b_ptr, c_ptr, sa_ptr, sb_ptr, M, N, K, M_BUCKET, stride_am, stride_bn, stride_cm,
|
| 287 |
+
BM: tl.constexpr, BN: tl.constexpr, BK: tl.constexpr, GROUP_M: tl.constexpr,
|
| 288 |
+
): # fmt: skip
|
| 289 |
+
pid = tl.program_id(0)
|
| 290 |
+
num_m = tl.cdiv(M, BM)
|
| 291 |
+
num_n = tl.cdiv(N, BN)
|
| 292 |
+
group = GROUP_M * num_n
|
| 293 |
+
first_m = (pid // group) * GROUP_M
|
| 294 |
+
size_m = tl.minimum(num_m - first_m, GROUP_M)
|
| 295 |
+
pid_m = first_m + (pid % group) % size_m
|
| 296 |
+
pid_n = (pid % group) // size_m
|
| 297 |
+
rm = pid_m * BM + tl.arange(0, BM)
|
| 298 |
+
rn = pid_n * BN + tl.arange(0, BN)
|
| 299 |
+
rk = tl.arange(0, BK)
|
| 300 |
+
a_ptrs = a_ptr + rm.to(tl.int64)[:, None] * stride_am + rk[None, :]
|
| 301 |
+
b_ptrs = b_ptr + rn.to(tl.int64)[None, :] * stride_bn + rk[:, None]
|
| 302 |
+
acc = tl.zeros((BM, BN), dtype=tl.int32)
|
| 303 |
+
for k in range(0, K, BK):
|
| 304 |
+
a = tl.load(a_ptrs, mask=(rm[:, None] < M) & (k + rk[None, :] < K), other=0)
|
| 305 |
+
b = tl.load(b_ptrs, mask=(rn[None, :] < N) & (k + rk[:, None] < K), other=0)
|
| 306 |
+
acc += tl.dot(a, b, out_dtype=tl.int32)
|
| 307 |
+
a_ptrs += BK
|
| 308 |
+
b_ptrs += BK
|
| 309 |
+
sa = tl.load(sa_ptr + rm, mask=rm < M, other=0.0)
|
| 310 |
+
sb = tl.load(sb_ptr + rn, mask=rn < N, other=0.0)
|
| 311 |
+
c = (acc.to(tl.float32) * sa[:, None] * sb[None, :]).to(tl.bfloat16)
|
| 312 |
+
mask = (rm[:, None] < M) & (rn[None, :] < N)
|
| 313 |
+
tl.store(c_ptr + rm.to(tl.int64)[:, None] * stride_cm + rn[None, :], c, mask=mask)
|
| 314 |
+
|
| 315 |
+
@triton.jit
|
| 316 |
+
def rescale_kernel(acc_ptr, sa_ptr, sb_ptr, c_ptr, M, N, BM: tl.constexpr, BN: tl.constexpr):
|
| 317 |
+
rm = tl.program_id(0) * BM + tl.arange(0, BM)
|
| 318 |
+
rn = tl.program_id(1) * BN + tl.arange(0, BN)
|
| 319 |
+
mask = (rm[:, None] < M) & (rn[None, :] < N)
|
| 320 |
+
offsets = rm.to(tl.int64)[:, None] * N + rn[None, :]
|
| 321 |
+
acc = tl.load(acc_ptr + offsets, mask=mask, other=0)
|
| 322 |
+
sa = tl.load(sa_ptr + rm, mask=rm < M, other=0.0)
|
| 323 |
+
sb = tl.load(sb_ptr + rn, mask=rn < N, other=0.0)
|
| 324 |
+
tl.store(c_ptr + offsets, (acc.to(tl.float32) * sa[:, None] * sb[None, :]).to(tl.bfloat16), mask=mask)
|
| 325 |
+
|
| 326 |
+
def rotate_quant(x: Tensor, group: int) -> tuple[Tensor, Tensor]:
|
| 327 |
+
M, K = x.shape
|
| 328 |
+
q = torch.empty(M, K, device=x.device, dtype=torch.int8)
|
| 329 |
+
s = torch.empty(M, device=x.device, dtype=torch.float32)
|
| 330 |
+
factors = hadamard_factors(group) if KERNEL_OPTIONS["rotate_quant"] == "factored" else None
|
| 331 |
+
if factors is not None:
|
| 332 |
+
ga, gb = factors
|
| 333 |
+
ha, hb = _rotation(ga, x.device), _rotation(gb, x.device)
|
| 334 |
+
rotate_quant_factored_kernel[(triton.cdiv(M, FACTORED_BM),)](
|
| 335 |
+
x, ha, hb, q, s, M, K, x.stride(0), q.stride(0), GA=ga, GB=gb, BM=FACTORED_BM, num_warps=4,
|
| 336 |
+
num_stages=4,
|
| 337 |
+
) # fmt: skip
|
| 338 |
+
return q, s
|
| 339 |
+
BN = rotate_tile(x.device.index, group)
|
| 340 |
+
rotate_quant_kernel[(triton.cdiv(M, ROTATE_BM),)](
|
| 341 |
+
x, _rotation(group, x.device), q, s, M, K, x.stride(0), q.stride(0), G=group, BM=ROTATE_BM, BN=BN,
|
| 342 |
+
num_warps=8, num_stages=1,
|
| 343 |
+
) # fmt: skip
|
| 344 |
+
return q, s
|
| 345 |
+
|
| 346 |
+
def matmul_triton(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor, c: Tensor) -> None:
|
| 347 |
+
M, K = a.shape
|
| 348 |
+
N = b.shape[0]
|
| 349 |
+
grid = lambda meta: (triton.cdiv(M, meta["BM"]) * triton.cdiv(N, meta["BN"]),) # noqa: E731
|
| 350 |
+
m_bucket = 1 << max(M - 1, 1).bit_length()
|
| 351 |
+
int8_mm_kernel[grid](a, b, c, sa, sb, M, N, K, m_bucket, a.stride(0), b.stride(0), c.stride(0))
|
| 352 |
+
|
| 353 |
+
def matmul_cublas(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor, c: Tensor) -> None:
|
| 354 |
+
# Row chunks keep the int32 accumulator near 1 GiB.
|
| 355 |
+
M, N = a.shape[0], b.shape[0]
|
| 356 |
+
chunk = max(128, ((1 << 28) // N) // 128 * 128)
|
| 357 |
+
for start in range(0, M, chunk):
|
| 358 |
+
stop = min(M, start + chunk)
|
| 359 |
+
if stop - start < _MIN_KERNEL_ROWS:
|
| 360 |
+
matmul_triton(a[start:stop], b, sa[start:stop], sb, c[start:stop])
|
| 361 |
+
continue
|
| 362 |
+
acc = torch._int_mm(a[start:stop], b.t())
|
| 363 |
+
grid = (triton.cdiv(stop - start, 64), triton.cdiv(N, 128))
|
| 364 |
+
rescale_kernel[grid](acc, sa[start:stop], sb, c[start:stop], stop - start, N, BM=64, BN=128, num_warps=8)
|
| 365 |
+
|
| 366 |
+
def matmul_bf16(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor, c: Tensor) -> None:
|
| 367 |
+
M, N = a.shape[0], b.shape[0]
|
| 368 |
+
weight = b.to(torch.bfloat16)
|
| 369 |
+
chunk = max(128, ((1 << 28) // N) // 128 * 128)
|
| 370 |
+
for start in range(0, M, chunk):
|
| 371 |
+
stop = min(M, start + chunk)
|
| 372 |
+
acc = torch.mm(a[start:stop].to(torch.bfloat16), weight.t(), out_dtype=torch.float32)
|
| 373 |
+
grid = (triton.cdiv(stop - start, 64), triton.cdiv(N, 128))
|
| 374 |
+
rescale_kernel[grid](acc, sa[start:stop], sb, c[start:stop], stop - start, N, BM=64, BN=128, num_warps=8)
|
| 375 |
+
|
| 376 |
+
def int8_matmul(a: Tensor, b: Tensor, sa: Tensor, sb: Tensor) -> Tensor:
|
| 377 |
+
M, K = a.shape
|
| 378 |
+
N = b.shape[0]
|
| 379 |
+
gemm = resolve_int8_gemm(a.device)
|
| 380 |
+
if gemm == "sgl" and K % 16 == 0 and N % 16 == 0:
|
| 381 |
+
# b is the [N, K] row-major qweight; its transpose is the column-major [K, N] operand CUTLASS expects.
|
| 382 |
+
return _sgl_int8_scaled_mm()(a, b.t(), sa, sb, torch.bfloat16)
|
| 383 |
+
c = torch.empty(M, N, device=a.device, dtype=torch.bfloat16)
|
| 384 |
+
if gemm == "bf16":
|
| 385 |
+
matmul_bf16(a, b, sa, sb, c)
|
| 386 |
+
elif gemm == "cublas" and K % 8 == 0 and N % 8 == 0:
|
| 387 |
+
matmul_cublas(a, b, sa, sb, c)
|
| 388 |
+
else:
|
| 389 |
+
matmul_triton(a, b, sa, sb, c)
|
| 390 |
+
return c
|
| 391 |
+
|
| 392 |
+
jit = SimpleNamespace(
|
| 393 |
+
rotate_quant=rotate_quant_kernel,
|
| 394 |
+
rotate_quant_factored=rotate_quant_factored_kernel,
|
| 395 |
+
int8_mm=int8_mm_kernel,
|
| 396 |
+
rescale=rescale_kernel,
|
| 397 |
+
)
|
| 398 |
+
return SimpleNamespace(rotate_quant=rotate_quant, int8_matmul=int8_matmul, jit=jit, rotate_tile=rotate_tile)
|
| 399 |
+
|
| 400 |
+
|
| 401 |
+
__all__ = [
|
| 402 |
+
"INT8_GEMMS",
|
| 403 |
+
"KERNEL_OPTIONS",
|
| 404 |
+
"ROTATE_QUANTS",
|
| 405 |
+
"Int8RotLinear",
|
| 406 |
+
"hadamard_factors",
|
| 407 |
+
"regular_hadamard",
|
| 408 |
+
"resolve_int8_gemm",
|
| 409 |
+
"set_kernel_options",
|
| 410 |
+
]
|
ref2va_int8_convrot/hyperflow_h3_flash_transformer.py
ADDED
|
@@ -0,0 +1,403 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2026 The HyperFlow authors. Licensed under the Apache License, Version 2.0.
|
| 2 |
+
#
|
| 3 |
+
# `HyperFlowH3FlashTransformer3DModel.forward` is derived from `MiniMaxH3Transformer3DModel.forward` in diffusers
|
| 4 |
+
# (`models/transformers/transformer_minimax_h3.py`), Copyright 2025 The MiniMax Team and The HuggingFace Team,
|
| 5 |
+
# Apache License 2.0. See https://github.com/Video-Rebirth/hyperflow-h3-flash/blob/main/THIRD_PARTY_NOTICES.md.
|
| 6 |
+
"""The HyperFlow H3 Flash transformer: MiniMax-H3, compressed and conditioned on two times.
|
| 7 |
+
|
| 8 |
+
Four changes to `MiniMaxH3Transformer3DModel`, all driven by `config.json`:
|
| 9 |
+
|
| 10 |
+
* **Two-time conditioning.** An `endpoint_time_embedder` embeds the step's endpoint ``r`` next to the current time
|
| 11 |
+
``t``; every AdaLN reads ``temb(t, r) = emb_t(t) + hyperflow_gate * (emb_r(r) - emb_t(t))``.
|
| 12 |
+
* **Dropped blocks** (`dropped_blocks`): those blocks are identities and have no weights.
|
| 13 |
+
* **Low-rank linears** (`lowrank_ranks`): ``W ~= up @ down``, stored as `<name>.down.weight` (rank x in) and
|
| 14 |
+
`<name>.up.weight` (out x rank). Ranks are zero-padded to multiples of 64, in the checkpoint or at load
|
| 15 |
+
(`pad_lowrank_ranks`), so both GEMMs are aligned; `set_lowrank_rank_multiple` re-pads them at run time.
|
| 16 |
+
* **INT8 linears** (`quantization`): W8A8 with a Hadamard-rotated input, see `int8.py`.
|
| 17 |
+
|
| 18 |
+
Embeddings, AdaLN, the token refiner and the output heads are the base model's, in bf16 / fp32. The block
|
| 19 |
+
feed-forwards run in token chunks (`ChunkedFeedForward`, `set_ff_chunk`), which bounds their activations;
|
| 20 |
+
`set_block_chunk` slices every token-wise op of a block.
|
| 21 |
+
"""
|
| 22 |
+
|
| 23 |
+
from __future__ import annotations
|
| 24 |
+
|
| 25 |
+
import sys
|
| 26 |
+
from typing import Any, ClassVar
|
| 27 |
+
|
| 28 |
+
import torch
|
| 29 |
+
from diffusers import MiniMaxH3Transformer3DModel
|
| 30 |
+
from diffusers.configuration_utils import register_to_config
|
| 31 |
+
from diffusers.models.embeddings import TimestepEmbedding
|
| 32 |
+
from diffusers.models.modeling_utils import get_parameter_dtype
|
| 33 |
+
from diffusers.models.transformers.transformer_minimax_h3 import (
|
| 34 |
+
MINIMAX_H3_MODALITY_NUM,
|
| 35 |
+
MiniMaxH3TransformerOutput,
|
| 36 |
+
)
|
| 37 |
+
from diffusers.utils import apply_lora_scale
|
| 38 |
+
from torch import Tensor, nn
|
| 39 |
+
|
| 40 |
+
from .hyperflow_h3_flash_int8 import Int8RotLinear
|
| 41 |
+
|
| 42 |
+
#: Tokens per feed-forward chunk; a 5.2 s clip has about 38k, a 14.4 s clip about 105k.
|
| 43 |
+
FF_CHUNK_TOKENS = 16384
|
| 44 |
+
#: Low-rank ranks are padded to multiples of this at load, so both GEMMs of a low-rank linear are aligned.
|
| 45 |
+
RANK_MULTIPLE = 64
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
class LowRankLinear(nn.Module):
|
| 49 |
+
"""``y = up(down(x))``, the factorized replacement of a bias-free `nn.Linear`."""
|
| 50 |
+
|
| 51 |
+
def __init__(self, in_features: int, out_features: int, rank: int) -> None:
|
| 52 |
+
super().__init__()
|
| 53 |
+
self.in_features, self.out_features, self.rank = in_features, out_features, rank
|
| 54 |
+
self.down = nn.Linear(in_features, rank, bias=False)
|
| 55 |
+
self.up = nn.Linear(rank, out_features, bias=False)
|
| 56 |
+
|
| 57 |
+
def forward(self, x: Tensor) -> Tensor:
|
| 58 |
+
return self.up(self.down(x))
|
| 59 |
+
|
| 60 |
+
@torch.no_grad()
|
| 61 |
+
def pad_rank(self, multiple: int = RANK_MULTIPLE) -> bool:
|
| 62 |
+
"""Zero-pad the rank up to a multiple of ``multiple``: new rows of ``down`` and columns of ``up`` are zero, so
|
| 63 |
+
``up @ down`` is unchanged. Returns whether the rank changed."""
|
| 64 |
+
rank = -(-self.rank // multiple) * multiple
|
| 65 |
+
if rank == self.rank:
|
| 66 |
+
return False
|
| 67 |
+
extra = rank - self.rank
|
| 68 |
+
down, up = self.down.weight, self.up.weight
|
| 69 |
+
self.down.weight = nn.Parameter(torch.cat([down, down.new_zeros(extra, down.shape[1])]), requires_grad=False)
|
| 70 |
+
self.up.weight = nn.Parameter(torch.cat([up, up.new_zeros(up.shape[0], extra)], dim=1), requires_grad=False)
|
| 71 |
+
self.down.out_features = self.up.in_features = self.rank = rank
|
| 72 |
+
return True
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
class ChunkedFeedForward(nn.Module):
|
| 76 |
+
"""A block's feed-forward run over at most ``chunk_tokens`` tokens at a time; it keeps the block's ``net``.
|
| 77 |
+
|
| 78 |
+
The feed-forward is token-wise, so the chunks compute the same function; only the rounding of bf16 GEMMs can
|
| 79 |
+
change with their row count. It bounds the SwiGLU input, ``2 * ffn_dim`` wide per token (6 GiB for a 14.4 s
|
| 80 |
+
clip), to one chunk.
|
| 81 |
+
"""
|
| 82 |
+
|
| 83 |
+
def __init__(self, net: nn.ModuleList, out_features: int, chunk_tokens: int) -> None:
|
| 84 |
+
super().__init__()
|
| 85 |
+
self.net, self.out_features, self.chunk_tokens = net, out_features, chunk_tokens
|
| 86 |
+
|
| 87 |
+
def _forward(self, hidden_states: Tensor) -> Tensor:
|
| 88 |
+
for module in self.net:
|
| 89 |
+
hidden_states = module(hidden_states)
|
| 90 |
+
return hidden_states
|
| 91 |
+
|
| 92 |
+
def forward(self, hidden_states: Tensor) -> Tensor:
|
| 93 |
+
if hidden_states.shape[-2] <= self.chunk_tokens:
|
| 94 |
+
return self._forward(hidden_states)
|
| 95 |
+
out = hidden_states.new_empty(*hidden_states.shape[:-1], self.out_features)
|
| 96 |
+
for start in range(0, hidden_states.shape[-2], self.chunk_tokens):
|
| 97 |
+
stop = start + self.chunk_tokens
|
| 98 |
+
out[..., start:stop, :] = self._forward(hidden_states[..., start:stop, :])
|
| 99 |
+
return out
|
| 100 |
+
|
| 101 |
+
|
| 102 |
+
class DroppedBlock(nn.Module):
|
| 103 |
+
"""A removed transformer block: the hidden states go straight to the next block.
|
| 104 |
+
|
| 105 |
+
The signature is the block's own: context parallel hooks address `adaln_indices` by name.
|
| 106 |
+
"""
|
| 107 |
+
|
| 108 |
+
def forward(self, hidden_states: Tensor, temb=None, adaln_indices=None, rotary_emb=None, attention_mask=None):
|
| 109 |
+
return hidden_states
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
def _replace_linear(model: nn.Module, name: str, make: type[nn.Module], *args: Any) -> None:
|
| 113 |
+
owner_name, _, attr = name.rpartition(".")
|
| 114 |
+
owner = model.get_submodule(owner_name)
|
| 115 |
+
dense = owner[int(attr)] if isinstance(owner, nn.ModuleList) else getattr(owner, attr)
|
| 116 |
+
if type(dense) is not nn.Linear or dense.bias is not None:
|
| 117 |
+
raise TypeError(f"{name} is not a bias-free nn.Linear")
|
| 118 |
+
replacement = make(dense.in_features, dense.out_features, *args)
|
| 119 |
+
if isinstance(owner, nn.ModuleList):
|
| 120 |
+
owner[int(attr)] = replacement
|
| 121 |
+
else:
|
| 122 |
+
setattr(owner, attr, replacement)
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
class HyperFlowH3FlashTransformer3DModel(MiniMaxH3Transformer3DModel):
|
| 126 |
+
"""`MiniMaxH3Transformer3DModel` conditioned on ``(t, r)``, with dropped blocks, low-rank and INT8 linears."""
|
| 127 |
+
|
| 128 |
+
# Matched against whole dotted name parts at load time, so `time_embedder` does not cover the endpoint embedder.
|
| 129 |
+
_keep_in_fp32_modules: ClassVar[list[str]] = [
|
| 130 |
+
*MiniMaxH3Transformer3DModel._keep_in_fp32_modules,
|
| 131 |
+
"endpoint_time_embedder",
|
| 132 |
+
"wscale",
|
| 133 |
+
]
|
| 134 |
+
|
| 135 |
+
@register_to_config
|
| 136 |
+
def __init__(
|
| 137 |
+
self,
|
| 138 |
+
num_attention_heads: int = 56,
|
| 139 |
+
attention_head_dim: int = 128,
|
| 140 |
+
hidden_size: int = 5376,
|
| 141 |
+
num_layers: int = 50,
|
| 142 |
+
num_refiner_layers: int = 2,
|
| 143 |
+
ffn_dim: int = 14336,
|
| 144 |
+
in_channels: int = 24,
|
| 145 |
+
audio_in_channels: int = 32,
|
| 146 |
+
patch_size: tuple[int, int, int] = (1, 2, 2),
|
| 147 |
+
text_dim: int = 5120,
|
| 148 |
+
freq_dim: int = 256,
|
| 149 |
+
time_embed_hidden_dim: int = 5376,
|
| 150 |
+
time_embed_dim: int = 16,
|
| 151 |
+
rope_freq_dim: int = 16,
|
| 152 |
+
rope_theta: float = 10000.0,
|
| 153 |
+
norm_eps: float = 1e-5,
|
| 154 |
+
qk_norm_eps: float = 1e-5,
|
| 155 |
+
final_norm_eps: float = 1e-5,
|
| 156 |
+
hyperflow_gate: float = 0.25,
|
| 157 |
+
dropped_blocks: list[int] | None = None,
|
| 158 |
+
lowrank_ranks: dict[str, int] | None = None,
|
| 159 |
+
quantization: dict[str, Any] | None = None,
|
| 160 |
+
) -> None:
|
| 161 |
+
super().__init__(
|
| 162 |
+
num_attention_heads=num_attention_heads,
|
| 163 |
+
attention_head_dim=attention_head_dim,
|
| 164 |
+
hidden_size=hidden_size,
|
| 165 |
+
num_layers=num_layers,
|
| 166 |
+
num_refiner_layers=num_refiner_layers,
|
| 167 |
+
ffn_dim=ffn_dim,
|
| 168 |
+
in_channels=in_channels,
|
| 169 |
+
audio_in_channels=audio_in_channels,
|
| 170 |
+
patch_size=patch_size,
|
| 171 |
+
text_dim=text_dim,
|
| 172 |
+
freq_dim=freq_dim,
|
| 173 |
+
time_embed_hidden_dim=time_embed_hidden_dim,
|
| 174 |
+
time_embed_dim=time_embed_dim,
|
| 175 |
+
rope_freq_dim=rope_freq_dim,
|
| 176 |
+
rope_theta=rope_theta,
|
| 177 |
+
norm_eps=norm_eps,
|
| 178 |
+
qk_norm_eps=qk_norm_eps,
|
| 179 |
+
final_norm_eps=final_norm_eps,
|
| 180 |
+
)
|
| 181 |
+
self.endpoint_time_embedder = TimestepEmbedding(
|
| 182 |
+
in_channels=freq_dim, time_embed_dim=time_embed_hidden_dim, out_dim=time_embed_dim
|
| 183 |
+
)
|
| 184 |
+
|
| 185 |
+
dropped = set(dropped_blocks or [])
|
| 186 |
+
for index, block in enumerate(self.transformer_blocks):
|
| 187 |
+
if index in dropped:
|
| 188 |
+
self.transformer_blocks[index] = DroppedBlock()
|
| 189 |
+
else:
|
| 190 |
+
block.ff = ChunkedFeedForward(block.ff.net, block.ff.net[-1].out_features, FF_CHUNK_TOKENS)
|
| 191 |
+
for name, rank in (lowrank_ranks or {}).items():
|
| 192 |
+
if int(name.split(".")[1]) not in dropped:
|
| 193 |
+
_replace_linear(self, name, LowRankLinear, int(rank))
|
| 194 |
+
if quantization:
|
| 195 |
+
if quantization.get("method") != "int8_convrot":
|
| 196 |
+
raise ValueError(f"unsupported quantization method {quantization.get('method')!r}")
|
| 197 |
+
for name in quantization["linears"]:
|
| 198 |
+
_replace_linear(self, name, Int8RotLinear, int(quantization["group"]))
|
| 199 |
+
for block in self.transformer_blocks:
|
| 200 |
+
attn = getattr(block, "attn", None)
|
| 201 |
+
for name in ("to_q", "to_k"):
|
| 202 |
+
if isinstance(layer := getattr(attn, name, None), Int8RotLinear):
|
| 203 |
+
layer.keep_input = True
|
| 204 |
+
|
| 205 |
+
def pad_lowrank_ranks(self, multiple: int = RANK_MULTIPLE) -> int:
|
| 206 |
+
"""Zero-pad every low-rank linear to a rank multiple of ``multiple`` (see `LowRankLinear.pad_rank`) for a
|
| 207 |
+
checkpoint stored at its unpadded ranks. Returns how many linears changed."""
|
| 208 |
+
ranks = dict(self.config.lowrank_ranks or {})
|
| 209 |
+
padded = 0
|
| 210 |
+
for name, module in self.named_modules():
|
| 211 |
+
if isinstance(module, LowRankLinear) and module.pad_rank(multiple):
|
| 212 |
+
ranks[name] = module.rank
|
| 213 |
+
padded += 1
|
| 214 |
+
if padded:
|
| 215 |
+
self.register_to_config(lowrank_ranks=ranks)
|
| 216 |
+
return padded
|
| 217 |
+
|
| 218 |
+
def time_embedding(self, timestep: Tensor, endpoint_timestep: Tensor) -> Tensor:
|
| 219 |
+
"""``temb`` of every distinct ``(t, r)`` pair, at the time embedders' precision (fp32)."""
|
| 220 |
+
if endpoint_timestep.shape != timestep.shape:
|
| 221 |
+
raise ValueError(f"endpoint_timestep {list(endpoint_timestep.shape)} != timestep {list(timestep.shape)}")
|
| 222 |
+
dtype = get_parameter_dtype(self.time_embedder)
|
| 223 |
+
current = self.time_embedder(self.time_proj(timestep).to(dtype))
|
| 224 |
+
endpoint = self.endpoint_time_embedder(self.time_proj(endpoint_timestep).to(dtype))
|
| 225 |
+
return current + self.config.hyperflow_gate * (endpoint - current)
|
| 226 |
+
|
| 227 |
+
@apply_lora_scale("attention_kwargs")
|
| 228 |
+
def forward(
|
| 229 |
+
self,
|
| 230 |
+
hidden_states: Tensor,
|
| 231 |
+
audio_hidden_states: Tensor,
|
| 232 |
+
encoder_hidden_states: Tensor,
|
| 233 |
+
timestep: Tensor,
|
| 234 |
+
timestep_indices: Tensor,
|
| 235 |
+
token_tags: Tensor,
|
| 236 |
+
position_ids: Tensor,
|
| 237 |
+
video_indices: Tensor,
|
| 238 |
+
audio_indices: Tensor,
|
| 239 |
+
text_indices: Tensor,
|
| 240 |
+
endpoint_timestep: Tensor | None = None,
|
| 241 |
+
attention_kwargs: dict[str, Any] | None = None,
|
| 242 |
+
return_dict: bool = True,
|
| 243 |
+
) -> MiniMaxH3TransformerOutput | tuple[Tensor, Tensor]:
|
| 244 |
+
"""The base forward plus ``endpoint_timestep``: ``(timestep[i], endpoint_timestep[i])`` is the ``i``-th pair.
|
| 245 |
+
|
| 246 |
+
``timestep_indices`` maps every row of the packed sequence to its pair. Build the pairs with
|
| 247 |
+
`hyperflow_h3_flash.schedule.build_row_time_pairs`, or run the model through `flash_blocks(...)`.
|
| 248 |
+
"""
|
| 249 |
+
if endpoint_timestep is None:
|
| 250 |
+
raise ValueError(
|
| 251 |
+
"HyperFlow H3 Flash needs `endpoint_timestep`, the endpoint `r` of every `(t, r)` pair: it is a "
|
| 252 |
+
"few-step model and has no single-time mode. Run it through `hyperflow_h3_flash.flash_blocks(...)`."
|
| 253 |
+
)
|
| 254 |
+
if position_ids.ndim != 2 or position_ids.shape[-1] != 3:
|
| 255 |
+
raise ValueError(f"`position_ids` must be a `(seq_len, 3)` tensor, got {list(position_ids.shape)}.")
|
| 256 |
+
sequence_length = position_ids.shape[0]
|
| 257 |
+
if token_tags.shape != (sequence_length,) or timestep_indices.shape != (sequence_length,):
|
| 258 |
+
raise ValueError("`token_tags` and `timestep_indices` must both be `(seq_len,)` tensors.")
|
| 259 |
+
|
| 260 |
+
rotary_emb = self.rope(position_ids)
|
| 261 |
+
|
| 262 |
+
video_embeds = self.proj_in(hidden_states.to(get_parameter_dtype(self.proj_in)))
|
| 263 |
+
audio_embeds = self.audio_proj_in(audio_hidden_states.to(get_parameter_dtype(self.audio_proj_in)))
|
| 264 |
+
text_embeds = self.context_embedder(encoder_hidden_states.to(get_parameter_dtype(self.context_embedder)))
|
| 265 |
+
text_embeds = self.token_refiner(text_embeds)
|
| 266 |
+
|
| 267 |
+
hidden_states = text_embeds.new_zeros((text_embeds.shape[0], sequence_length, text_embeds.shape[-1]))
|
| 268 |
+
hidden_states = hidden_states.index_copy(1, text_indices, text_embeds)
|
| 269 |
+
hidden_states = hidden_states.index_copy(1, video_indices, video_embeds.to(text_embeds.dtype))
|
| 270 |
+
hidden_states = hidden_states.index_copy(1, audio_indices, audio_embeds.to(text_embeds.dtype))
|
| 271 |
+
|
| 272 |
+
temb = self.time_embedding(timestep, endpoint_timestep)
|
| 273 |
+
adaln_indices = timestep_indices * MINIMAX_H3_MODALITY_NUM + token_tags
|
| 274 |
+
for block in self.transformer_blocks:
|
| 275 |
+
hidden_states = block(hidden_states, temb, adaln_indices, rotary_emb)
|
| 276 |
+
|
| 277 |
+
hidden_states = self.norm_out(hidden_states, temb, timestep_indices).to(get_parameter_dtype(self.proj_out))
|
| 278 |
+
video_output = self.proj_out(hidden_states).index_select(1, video_indices)
|
| 279 |
+
audio_output = self.audio_proj_out(hidden_states).index_select(1, audio_indices)
|
| 280 |
+
if not return_dict:
|
| 281 |
+
return (video_output, audio_output)
|
| 282 |
+
return MiniMaxH3TransformerOutput(sample=video_output, audio_sample=audio_output)
|
| 283 |
+
|
| 284 |
+
|
| 285 |
+
def _used_rank(layer: LowRankLinear) -> int:
|
| 286 |
+
"""The rank without the zero padding (trailing zero rows of ``down`` and columns of ``up``)."""
|
| 287 |
+
used = (layer.down.weight.detach().abs().amax(1) != 0) | (layer.up.weight.detach().abs().amax(0) != 0)
|
| 288 |
+
nonzero = used.nonzero()
|
| 289 |
+
return int(nonzero[-1]) + 1 if len(nonzero) else 1
|
| 290 |
+
|
| 291 |
+
|
| 292 |
+
def set_lowrank_rank_multiple(model: nn.Module, multiple: int) -> int:
|
| 293 |
+
"""Re-pad every low-rank linear to a rank multiple of ``multiple`` (0: no padding); returns the layers changed.
|
| 294 |
+
|
| 295 |
+
Zero rows and columns add exact zeros, so any multiple computes the same function; the GEMM shapes change, and with
|
| 296 |
+
them the bf16 rounding (8 is 2 to 7 % faster than 64 on H200). Run time only: the config still lists the stored
|
| 297 |
+
ranks, so do not `save_pretrained` the re-padded model.
|
| 298 |
+
"""
|
| 299 |
+
changed = 0
|
| 300 |
+
for layer in model.modules():
|
| 301 |
+
if not isinstance(layer, LowRankLinear):
|
| 302 |
+
continue
|
| 303 |
+
rank = _used_rank(layer)
|
| 304 |
+
target = -(-rank // multiple) * multiple if multiple > 0 else rank
|
| 305 |
+
if target == layer.rank:
|
| 306 |
+
continue
|
| 307 |
+
down, up = layer.down.weight.detach(), layer.up.weight.detach()
|
| 308 |
+
if target < layer.rank:
|
| 309 |
+
down, up = down[:target], up[:, :target]
|
| 310 |
+
else:
|
| 311 |
+
down = torch.cat([down, down.new_zeros(target - layer.rank, down.shape[1])])
|
| 312 |
+
up = torch.cat([up, up.new_zeros(up.shape[0], target - layer.rank)], dim=1)
|
| 313 |
+
layer.down.weight = nn.Parameter(down.contiguous(), requires_grad=False)
|
| 314 |
+
layer.up.weight = nn.Parameter(up.contiguous(), requires_grad=False)
|
| 315 |
+
layer.rank = layer.down.out_features = layer.up.in_features = target
|
| 316 |
+
changed += 1
|
| 317 |
+
return changed
|
| 318 |
+
|
| 319 |
+
|
| 320 |
+
def set_ff_chunk(model: nn.Module, tokens: int) -> None:
|
| 321 |
+
"""Run every feed-forward over at most ``tokens`` tokens at a time (0: whole sequence)."""
|
| 322 |
+
for module in model.modules():
|
| 323 |
+
if isinstance(module, ChunkedFeedForward):
|
| 324 |
+
module.chunk_tokens = tokens if tokens > 0 else sys.maxsize
|
| 325 |
+
|
| 326 |
+
|
| 327 |
+
def chunk_block(block: nn.Module, chunk: int) -> None:
|
| 328 |
+
"""Run every token-wise op of a transformer block over ``chunk``-token slices; only the attention sees all of q /
|
| 329 |
+
k / v.
|
| 330 |
+
|
| 331 |
+
The unchunked block holds about a dozen ``(seq, hidden)`` tensors at once (each modulation picked per token, the
|
| 332 |
+
modulated norm, the residual sums), 1.2 GB apiece at 108k tokens. Per-row results are the same up to the bf16 GEMM
|
| 333 |
+
rounding for the smaller row count. Apply before context parallelism and offloading, which hook the block.
|
| 334 |
+
"""
|
| 335 |
+
import diffusers.models.transformers.transformer_minimax_h3 as h3
|
| 336 |
+
|
| 337 |
+
attn = block.attn
|
| 338 |
+
|
| 339 |
+
def forward(hidden_states, temb, adaln_indices, rotary_emb, attention_mask=None):
|
| 340 |
+
shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = block.adaln_proj(temb)
|
| 341 |
+
batch, seq, _ = hidden_states.shape
|
| 342 |
+
cos, sin = rotary_emb
|
| 343 |
+
qkv = None
|
| 344 |
+
for start in range(0, seq, chunk):
|
| 345 |
+
rows = slice(start, min(start + chunk, seq))
|
| 346 |
+
idx = adaln_indices[rows]
|
| 347 |
+
h = block.norm1(hidden_states[:, rows])
|
| 348 |
+
h = h * (1.0 + scale_msa.index_select(0, idx)) + shift_msa.index_select(0, idx)
|
| 349 |
+
parts = []
|
| 350 |
+
for proj, norm in ((attn.to_q, attn.norm_q), (attn.to_k, attn.norm_k), (attn.to_v, None)):
|
| 351 |
+
x = proj(h).unflatten(-1, (attn.heads, -1))
|
| 352 |
+
if norm is not None:
|
| 353 |
+
x = h3._apply_rotary_emb(norm(x), cos[rows], sin[rows])
|
| 354 |
+
parts.append(x)
|
| 355 |
+
if qkv is None:
|
| 356 |
+
qkv = [x.new_empty((batch, seq, *x.shape[2:])) for x in parts]
|
| 357 |
+
for full, x in zip(qkv, parts, strict=True):
|
| 358 |
+
full[:, rows] = x
|
| 359 |
+
del h, parts, x
|
| 360 |
+
out = h3.dispatch_attention_fn(
|
| 361 |
+
*qkv,
|
| 362 |
+
attn_mask=attention_mask,
|
| 363 |
+
dropout_p=0.0,
|
| 364 |
+
is_causal=False,
|
| 365 |
+
backend=attn.processor._attention_backend,
|
| 366 |
+
parallel_config=attn.processor._parallel_config,
|
| 367 |
+
)
|
| 368 |
+
dtype = qkv[0].dtype
|
| 369 |
+
del qkv
|
| 370 |
+
result = torch.empty_like(hidden_states)
|
| 371 |
+
for start in range(0, seq, chunk):
|
| 372 |
+
rows = slice(start, min(start + chunk, seq))
|
| 373 |
+
idx = adaln_indices[rows]
|
| 374 |
+
a = attn.to_out[1](attn.to_out[0](out[:, rows].flatten(2, 3).to(dtype)))
|
| 375 |
+
h = hidden_states[:, rows] + gate_msa.index_select(0, idx) * a
|
| 376 |
+
n = block.norm2(h)
|
| 377 |
+
n = n * (1.0 + scale_mlp.index_select(0, idx)) + shift_mlp.index_select(0, idx)
|
| 378 |
+
result[:, rows] = h + gate_mlp.index_select(0, idx) * block.ff(n)
|
| 379 |
+
del a, h, n
|
| 380 |
+
return result
|
| 381 |
+
|
| 382 |
+
block.forward = forward
|
| 383 |
+
|
| 384 |
+
|
| 385 |
+
def set_block_chunk(model: nn.Module, tokens: int) -> None:
|
| 386 |
+
"""`chunk_block` on every kept block (0: off). Call once, before context parallelism and offloading."""
|
| 387 |
+
if tokens > 0:
|
| 388 |
+
for block in model.transformer_blocks:
|
| 389 |
+
if not isinstance(block, DroppedBlock):
|
| 390 |
+
chunk_block(block, tokens)
|
| 391 |
+
|
| 392 |
+
|
| 393 |
+
__all__ = [
|
| 394 |
+
"RANK_MULTIPLE",
|
| 395 |
+
"ChunkedFeedForward",
|
| 396 |
+
"DroppedBlock",
|
| 397 |
+
"HyperFlowH3FlashTransformer3DModel",
|
| 398 |
+
"LowRankLinear",
|
| 399 |
+
"chunk_block",
|
| 400 |
+
"set_block_chunk",
|
| 401 |
+
"set_ff_chunk",
|
| 402 |
+
"set_lowrank_rank_multiple",
|
| 403 |
+
]
|