Eliovp commited on
Commit ·
f5b159e
1
Parent(s): 1ff1a96
Publish balanced MXFP4 conversion of abenzerps BF16 fine-tune
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +4 -34
- LICENSE +55 -0
- LICENSES/Apache-2.0.txt +201 -0
- NOTICE +7 -0
- README.md +151 -0
- artifacts/NOTICE +6 -0
- artifacts/manifest.json +15 -0
- artifacts/mxfp4_weights_gfx1201.so +3 -0
- checkpoint.lock.json +327 -0
- environment.lock.json +69 -0
- evaluation/mi355-correctness.json +1543 -0
- evaluation/numerical.json +681 -0
- evaluation/quality-pairs-1.png +3 -0
- evaluation/quality-pairs-2.png +3 -0
- launch.sh +4 -0
- processor/added_tokens.json +28 -0
- processor/chat_template.jinja +120 -0
- processor/merges.txt +0 -0
- processor/preprocessor_config.json +39 -0
- processor/special_tokens_map.json +31 -0
- processor/tokenizer.json +3 -0
- processor/tokenizer_config.json +240 -0
- processor/video_preprocessor_config.json +41 -0
- processor/vocab.json +0 -0
- qwen_image21/__init__.py +1 -0
- qwen_image21/__main__.py +46 -0
- qwen_image21/decoder.py +30 -0
- qwen_image21/integrity.py +29 -0
- qwen_image21/runtime.py +158 -0
- qwen_image21/server.py +74 -0
- qwen_image21/weights.py +187 -0
- release-manifest.json +475 -0
- requirements-mi355.lock.txt +47 -0
- requirements.txt +7 -0
- result.json +0 -0
- scheduler/scheduler_config.json +18 -0
- tests/test_decoder_selection.py +32 -0
- text_encoder/config.json +64 -0
- text_encoder/weights-00001.safetensors +3 -0
- text_encoder/weights-00002.safetensors +3 -0
- text_encoder/weights-00003.safetensors +3 -0
- text_encoder/weights-00004.safetensors +3 -0
- text_encoder/weights-00005.safetensors +3 -0
- text_encoder/weights-00006.safetensors +3 -0
- text_encoder/weights-00007.safetensors +3 -0
- text_encoder/weights-00008.safetensors +3 -0
- text_encoder/weights-00009.safetensors +3 -0
- text_encoder/weights-00010.safetensors +3 -0
- text_encoder/weights-00011.safetensors +3 -0
- text_encoder/weights-00012.safetensors +3 -0
.gitattributes
CHANGED
|
@@ -1,35 +1,5 @@
|
|
| 1 |
-
*
|
| 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 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
|
| 27 |
-
*.
|
| 28 |
-
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 1 |
+
* -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.so filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.png filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LICENSE
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Qwen RESEARCH LICENSE AGREEMENT
|
| 2 |
+
|
| 3 |
+
Qwen RESEARCH LICENSE AGREEMENT Release Date: September 20, 2026
|
| 4 |
+
|
| 5 |
+
By clicking to agree or by using or distributing any portion or element of the Qwen Materials, you will be deemed to have recognized and accepted the content of this Agreement, which is effective immediately.
|
| 6 |
+
|
| 7 |
+
1. Definitions
|
| 8 |
+
a. This Qwen RESEARCH LICENSE AGREEMENT (this "Agreement") shall mean the terms and conditions for use, reproduction, distribution and modification of the Materials as defined by this Agreement.
|
| 9 |
+
b. "We" (or "Us") shall mean Hangzhou Tongyi Laboratory Technology Co., Ltd.
|
| 10 |
+
c. "You" (or "Your") shall mean a natural person or legal entity exercising the rights granted by this Agreement and/or using the Materials for any purpose and in any field of use.
|
| 11 |
+
d. "Third Parties" shall mean individuals or legal entities that are not under common control with us or you.
|
| 12 |
+
e. "Qwen" shall mean the large language models, diffusion models, and software and algorithms, consisting of trained model weights, parameters (including optimizer states), machine-learning model code, inference-enabling code, training-enabling code, fine-tuning enabling code and other elements of the foregoing distributed by us.
|
| 13 |
+
f. "Materials" shall mean, collectively, our proprietary Qwen and Documentation (and any portion thereof) made available under this Agreement.
|
| 14 |
+
g. "Source" form shall mean the preferred form for making modifications, including but not limited to model source code, documentation source, and configuration files.
|
| 15 |
+
h. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
| 16 |
+
i. "Non-Commercial" shall mean for research or evaluation purposes only.
|
| 17 |
+
|
| 18 |
+
2. Grant of Rights
|
| 19 |
+
a. You are granted a non-exclusive, worldwide, non-transferable and royalty-free limited license under our intellectual property or other rights owned by us embodied in the Materials to use, reproduce, distribute, copy, create derivative works of, and make modifications to the Materials FOR NON-COMMERCIAL PURPOSES ONLY.
|
| 20 |
+
b. You shall not use the Materials for any commercial purpose without obtaining a separate commercial license from us. If you wish to use the Materials commercially, you shall request a license from us at model-business@notice.qwencloud.com.
|
| 21 |
+
|
| 22 |
+
3. Redistribution
|
| 23 |
+
Subject to Section 2 (Grant of Rights), you may distribute copies or make the Materials, or derivative works thereof, available as part of a product or service that contains any of them, with or without modifications, and in Source or Object form, provided that you meet the following conditions:
|
| 24 |
+
a. You shall give any other recipients of the Materials or derivative works a copy of this Agreement;
|
| 25 |
+
b. You shall cause any modified files to carry prominent notices stating that you changed the files;
|
| 26 |
+
c. You shall retain in all copies of the Materials that you distribute the following attribution notices within a "Notice" text file distributed as a part of such copies: "Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved."; and
|
| 27 |
+
d. You may add your own copyright statement to your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of your modifications, or for any such derivative works as a whole, provided your use, reproduction, and distribution of the work otherwise complies with the terms and conditions of this Agreement.
|
| 28 |
+
|
| 29 |
+
4. Rules of use
|
| 30 |
+
a. The Materials may be subject to export controls or restrictions in China, the United States or other countries or regions. You shall comply with applicable laws and regulations in your use of the Materials.
|
| 31 |
+
b. If you use the Materials or any outputs or results therefrom to create, train, fine-tune, or improve an AI model that is distributed or made available, you shall prominently display “Built with Qwen” or “Improved using Qwen” in the related product documentation.
|
| 32 |
+
c. You shall not use "Qwen" as the primary name or identifier of any derivative works or products; reasonable descriptive use (e.g., "fine-tuned from Qwen Image") is permitted.
|
| 33 |
+
|
| 34 |
+
5. Intellectual Property
|
| 35 |
+
a. We retain ownership of all intellectual property rights in and to the Materials and derivatives made by or for us. Conditioned upon compliance with the terms and conditions of this Agreement, with respect to any derivative works and modifications of the Materials that are made by you, you are and will be the owner of such derivative works and modifications.
|
| 36 |
+
b. No trademark license is granted to use the trade names, trademarks, service marks, or product names of us, except as required to fulfill notice requirements under this Agreement or as required for reasonable and customary use in describing and redistributing the Materials.
|
| 37 |
+
c. If you commence a lawsuit or other proceedings (including a cross-claim or counterclaim in a lawsuit) against us or any entity alleging that the Materials or any output therefrom, or any part of the foregoing, infringe any intellectual property or other right owned or licensable by you, then all licenses granted to you under this Agreement shall terminate as of the date such lawsuit or other proceeding is commenced or brought.
|
| 38 |
+
|
| 39 |
+
6. Disclaimer of Warranty and Limitation of Liability
|
| 40 |
+
a. We are not obligated to support, update, provide training for, or develop any further version of the Qwen Materials or to grant any license thereto.
|
| 41 |
+
b. THE MATERIALS ARE PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. WE MAKE NO WARRANTY AND ASSUME NO RESPONSIBILITY FOR THE SAFETY OR STABILITY OF THE MATERIALS AND ANY OUTPUT THEREFROM.
|
| 42 |
+
c. IN NO EVENT SHALL WE BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE MATERIALS OR ANY OUTPUT OF IT, NO MATTER HOW IT’S CAUSED.
|
| 43 |
+
d. You will defend, indemnify and hold harmless us from and against any claim by any third party arising out of or related to your use or distribution of the Materials.
|
| 44 |
+
|
| 45 |
+
7. Survival and Termination.
|
| 46 |
+
a. The term of this Agreement shall commence upon your acceptance of this Agreement or access to the Materials and will continue in full force and effect until terminated in accordance with the terms and conditions herein.
|
| 47 |
+
b. We may terminate this Agreement if you breach any of the terms or conditions of this Agreement. Upon termination of this Agreement, you must delete and cease use of the Materials. Sections 6 and 8 shall survive the termination of this Agreement.
|
| 48 |
+
|
| 49 |
+
8. Governing Law and Jurisdiction.
|
| 50 |
+
a. This Agreement and any dispute arising out of or relating to it will be governed by the laws of China, without regard to conflict of law principles, and the UN Convention on Contracts for the International Sale of Goods does not apply to this Agreement.
|
| 51 |
+
b. The People's Courts in Hangzhou City shall have exclusive jurisdiction over any dispute arising out of this Agreement.
|
| 52 |
+
|
| 53 |
+
9. Other Terms and Conditions.
|
| 54 |
+
a. Any arrangements, understandings, or agreements regarding the Material not stated herein are separate from and independent of the terms and conditions of this Agreement. You shall request a separate license from us, if you use the Materials in ways not expressly agreed to in this Agreement.
|
| 55 |
+
b. We shall not be bound by any additional or different terms or conditions communicated by you unless expressly agreed.
|
LICENSES/Apache-2.0.txt
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or
|
| 95 |
+
Derivative Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Don't include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
NOTICE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved.
|
| 2 |
+
|
| 3 |
+
Built with Qwen. Fine-tuned checkpoint published by abenzerps in abenzerps/Qwen-Image-2.1-Uncensored-GGUF, revision 40319fb15542f0ad22921e0124a191a8a935a60a. The author describes training and merging a LoRA; the recipe and training data have not been independently verified.
|
| 4 |
+
|
| 5 |
+
EliovpAI extracted the BF16 tensor bytes losslessly from qwen-image-2.1-UC-BF16.gguf and converted the transformer to the balanced Quark MXFP4 profile. Text/vision encoding reuses the verified balanced conversion of the original Qwen weights; the VAE retains BF16 inference precision. Original companion source: Qwen/Qwen-Image-2.1, revision 790c92633540aa0cb11d9abf19eb46d861714758.
|
| 6 |
+
|
| 7 |
+
Modified packed safetensors carry a conversion notice. Runtime modifications add architecture-based selection of the existing native decoder, checkpoint verification and the attributed model identity. No new fine-tuning was performed by EliovpAI for this release. Native runtime terms are provided in artifacts/NOTICE.
|
README.md
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: qwen-research
|
| 4 |
+
license_link: LICENSE
|
| 5 |
+
base_model: abenzerps/Qwen-Image-2.1-Uncensored-GGUF
|
| 6 |
+
base_model_relation: quantized
|
| 7 |
+
pipeline_tag: text-to-image
|
| 8 |
+
tags:
|
| 9 |
+
- mxfp4
|
| 10 |
+
- amd
|
| 11 |
+
- rocm
|
| 12 |
+
- image-editing
|
| 13 |
+
- rgba
|
| 14 |
+
---
|
| 15 |
+
|
| 16 |
+
# Qwen_Image-2.1-Uncensored-MXFP4-Paiton
|
| 17 |
+
|
| 18 |
+
**Built with Qwen.** This is EliovpAI's balanced MXFP4 conversion of the BF16
|
| 19 |
+
checkpoint published by [abenzerps](https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF),
|
| 20 |
+
derived from [Qwen-Image-2.1](https://huggingface.co/Qwen/Qwen-Image-2.1).
|
| 21 |
+
Fine-tune credit belongs to abenzerps; Paiton supplies the conversion and runtime
|
| 22 |
+
integration. This was converted from BF16, not from a lower-bit GGUF quant.
|
| 23 |
+
|
| 24 |
+
The author describes a merged LoRA in
|
| 25 |
+
[the source discussion](https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/discussions/20).
|
| 26 |
+
The training recipe is not published. “Uncensored” retains the author's model
|
| 27 |
+
label; our ordinary-image correctness screen does not verify every claimed
|
| 28 |
+
fine-tuning behavior or guarantee unrestricted outputs.
|
| 29 |
+
|
| 30 |
+
## Weights and runtimes
|
| 31 |
+
|
| 32 |
+
Tensor payload: **8.674 GiB**. Storage uses E2M1 MXFP4 with one E8M0 scale per 32
|
| 33 |
+
columns. The balanced recipe packs 224 transformer and 372 text/vision targets.
|
| 34 |
+
Transformer input/output/conditioning, normalizations, biases and the VAE retain
|
| 35 |
+
BF16 inference precision. Activations remain BF16 in this package.
|
| 36 |
+
|
| 37 |
+
The supplied loader is required; an unmodified
|
| 38 |
+
`DiffusionPipeline.from_pretrained` cannot load this packed format.
|
| 39 |
+
|
| 40 |
+
| Runtime | Behavior |
|
| 41 |
+
| --- | --- |
|
| 42 |
+
| This HF package, compatible `gfx1201` GPU | Automatically uses the included, SHA-256-verified native HIP weight decoder |
|
| 43 |
+
| This HF package, other supported ROCm GPU | Uses framework weight reconstruction; tested on MI355X |
|
| 44 |
+
| Paiton plugin/container | Uses the existing optimized RDNA4 pipeline, with checkpoint selection at launch |
|
| 45 |
+
|
| 46 |
+
The included decoder is the existing released binary, unchanged. It has no Torch
|
| 47 |
+
or Triton dependency; the surrounding image pipeline uses the pinned framework.
|
| 48 |
+
The additional attention, normalization and GEMM optimizations are supplied by
|
| 49 |
+
the plugin/container. The compiler and generated implementation source are not
|
| 50 |
+
included. The portable decoder does not provide those serving optimizations.
|
| 51 |
+
|
| 52 |
+
## One container, either model
|
| 53 |
+
|
| 54 |
+
The plugin's v1.0.3 launcher selects the model before loading it:
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
./models/Qwen-Image-2.1/serve-docker.sh --model uncensored
|
| 58 |
+
./models/Qwen-Image-2.1/serve-docker.sh --model original
|
| 59 |
+
```
|
| 60 |
+
|
| 61 |
+
Run one worker at a time. `original` remains the default. Both selections use the
|
| 62 |
+
same container and native libraries, with separate pinned HF revisions and file
|
| 63 |
+
hashes. The uncensored selection defaults to the `exact` BF16 arithmetic profile;
|
| 64 |
+
the original retains its existing `schedule-int8` default. Low-precision profiles
|
| 65 |
+
remain explicit options and have not been graded on this fine-tune.
|
| 66 |
+
|
| 67 |
+
Without a checkout:
|
| 68 |
+
|
| 69 |
+
```bash
|
| 70 |
+
docker run --rm --device /dev/kfd --device /dev/dri --ipc=host -p 127.0.0.1:8191:8191 -v paiton-qwen-image21-cache:/cache ghcr.io/eliovp/paiton-vllm-plugin:qwen-image21-mxfp4-rdna4-v1.0.3 --model uncensored
|
| 71 |
+
```
|
| 72 |
+
|
| 73 |
+
The API identifies this checkpoint as `paiton-image-2.1-uncensored`. A generation
|
| 74 |
+
request may omit `model` to use the loaded checkpoint. Switching checkpoints
|
| 75 |
+
requires restarting the worker; two models are not resident simultaneously.
|
| 76 |
+
|
| 77 |
+
## Direct package use
|
| 78 |
+
|
| 79 |
+
Download this repository with the Hugging Face CLI. Use Python 3.12 and a ROCm
|
| 80 |
+
PyTorch stack compatible with the GPU. Install the pinned image dependencies
|
| 81 |
+
from `requirements.txt`; `requirements-mi355.lock.txt` records the tested MI355
|
| 82 |
+
environment. Native decoder use requires a runtime able to load the included
|
| 83 |
+
ROCm 10 artifact; an unavailable native library falls back to framework decoding
|
| 84 |
+
in `auto` mode and records the reason.
|
| 85 |
+
|
| 86 |
+
```bash
|
| 87 |
+
hf download EliovpAI/Qwen_Image-2.1-Uncensored-MXFP4-Paiton --local-dir model
|
| 88 |
+
cd model
|
| 89 |
+
python -m pip install -r requirements.txt
|
| 90 |
+
./launch.sh --model-dir . generate --prompt 'A green ceramic teapot on a wooden table' --size 2048 --seed 44 --output ../outputs/teapot.png
|
| 91 |
+
```
|
| 92 |
+
|
| 93 |
+
Use `--decoder framework` or `--decoder native` before `generate` to choose
|
| 94 |
+
explicitly. `--mode rgba` requests transparency. Editing uses `--mode edit`, one
|
| 95 |
+
`--image` and `--size 1024`. Supported generation sizes are 1024 and 2048 square,
|
| 96 |
+
batch one, 40 steps and guidance 1.0. No CPU model offload or VAE tiling is used.
|
| 97 |
+
Whole-pipeline graph capture is unsupported.
|
| 98 |
+
|
| 99 |
+
## Correctness and measured limits
|
| 100 |
+
|
| 101 |
+
Conversion and correctness were tested on **MI355X (`gfx950`)**, Torch
|
| 102 |
+
`2.10.0+rocm7.1`, HIP `7.1.25424`, Quark `0.12.post1+rocm71.torch2.10`, and
|
| 103 |
+
Diffusers commit `7263f3317f6b392d62f41e9d75ed9d7e21fc5a5c`.
|
| 104 |
+
|
| 105 |
+
- All 297 BF16 source tensors were extracted losslessly. All 224 converted
|
| 106 |
+
transformer layers matched Quark through an independent MXFP4 decoder, and
|
| 107 |
+
all 73 intentionally BF16 transformer tensors remained exact.
|
| 108 |
+
- Eight paired 2048-square images were compared with the fine-tune's BF16
|
| 109 |
+
reference. Mean CLIPScore was 0.9024 → 0.8688; mean LPIPS was 0.1927. Quantization
|
| 110 |
+
can change composition and text rendering. This is a descriptive screen, not
|
| 111 |
+
an image-equivalence or human-preference guarantee. See the
|
| 112 |
+
[paired images](evaluation/quality-pairs-1.png),
|
| 113 |
+
[remaining pairs](evaluation/quality-pairs-2.png) and
|
| 114 |
+
[complete measurements](evaluation/mi355-correctness.json).
|
| 115 |
+
- Non-default streams, RGBA with alpha spanning 0–255, editing and A–B–A passed.
|
| 116 |
+
Repeated prompt embeddings and final denoiser latents were bit-identical.
|
| 117 |
+
PNG pixels showed the same small VAE variability seen in BF16 controls:
|
| 118 |
+
repeated-image RGB PSNR was approximately 61.2 dB.
|
| 119 |
+
- Instrumented MI355 MXFP4 generation took 23.60 seconds for the first tested
|
| 120 |
+
2048 request and 21.13–21.52 seconds across seven subsequent, different prompts.
|
| 121 |
+
Sampled whole-device peak was 32.31 GiB for that screen and 34.59 GiB across the
|
| 122 |
+
mode suite. A 30 GiB framework allocator cap failed during VAE decoding;
|
| 123 |
+
successful correctness runs used a 64 GiB cap. These are instrumented
|
| 124 |
+
framework results, not R9700 serving measurements.
|
| 125 |
+
|
| 126 |
+
**This fine-tune has not been run on R9700 in this qualification.** Its tensor
|
| 127 |
+
layout matches the existing optimized pipeline, but the original model's R9700
|
| 128 |
+
latency, VRAM and low-precision quality measurements do not qualify this new
|
| 129 |
+
checkpoint. Its native decoder is reused from the previously qualified release.
|
| 130 |
+
|
| 131 |
+
## Provenance and license
|
| 132 |
+
|
| 133 |
+
Source revision: `40319fb15542f0ad22921e0124a191a8a935a60a`.
|
| 134 |
+
Source file: `qwen-image-2.1-UC-BF16.gguf`.
|
| 135 |
+
SHA-256: `f151c683a8aed4b310777017ebbbe3f2180f1180f7867115171adb7d50b0762a`.
|
| 136 |
+
The unchanged original text encoder and VAE come from Qwen revision
|
| 137 |
+
`790c92633540aa0cb11d9abf19eb46d861714758`; the encoder reuses our verified balanced
|
| 138 |
+
conversion. `result.json` and `checkpoint.lock.json` record the complete layout
|
| 139 |
+
and hashes. Conversion tools are included under `tools/` and require the pinned
|
| 140 |
+
MI355 Quark environment; inference does not require Quark.
|
| 141 |
+
|
| 142 |
+
The original [RDNA4 package](https://huggingface.co/EliovpAI/Qwen_Image-2.1-MXFP4-Paiton-RDNA4)
|
| 143 |
+
and [portable package](https://huggingface.co/EliovpAI/Qwen_Image-2.1-MXFP4) contain
|
| 144 |
+
the same original-model tensor data, with different loaders and metadata. This
|
| 145 |
+
repository contains the distinct fine-tune and keeps the Paiton storage format
|
| 146 |
+
for plugin compatibility.
|
| 147 |
+
|
| 148 |
+
The weights remain subject to the [Qwen Research License](LICENSE), which allows
|
| 149 |
+
non-commercial research and evaluation; commercial use requires a separate
|
| 150 |
+
upstream license. See [NOTICE](NOTICE) and `artifacts/NOTICE` for attribution and
|
| 151 |
+
native-runtime terms.
|
artifacts/NOTICE
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Paiton native runtime artifact. Copyright 2026 ElioVP.
|
| 2 |
+
This compiled runtime artifact is distributed under the Apache License 2.0,
|
| 3 |
+
copied in ../LICENSES/Apache-2.0.txt, following the Paiton plugin's runtime
|
| 4 |
+
distribution policy. The proprietary compiler and generated implementation
|
| 5 |
+
source are not included or relicensed. The separate Qwen Research License
|
| 6 |
+
continues to govern the model weights and upstream model configuration.
|
artifacts/manifest.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"file": "mxfp4_weights_gfx1201.so",
|
| 3 |
+
"sha256": "8f8943e4161a71aa786ff5c570e82ffe02324aedfdeb71757109f08773708027",
|
| 4 |
+
"architecture": "gfx1201",
|
| 5 |
+
"abi": "paiton_mxfp4_unpack(uint8*, uint8*, bf16*, size_t, hipStream_t) -> int",
|
| 6 |
+
"rocm": "10.0",
|
| 7 |
+
"framework_dependencies": [],
|
| 8 |
+
"scope": "MXFP4 weight reconstruction only; caller-owned buffers and HIP stream; no allocation or synchronization in kernel entry point",
|
| 9 |
+
"limits": {
|
| 10 |
+
"count_multiple": 32,
|
| 11 |
+
"max_count": 68719476736
|
| 12 |
+
},
|
| 13 |
+
"qualification": "Independent native all-encoding arithmetic, aligned/unaligned buffers, bounds, canaries, nondefault streams, event handoffs, poisoned changed-input graphs and A-B-A; exact model denoiser intermediates, repeated complete requests and task-mode quality gates",
|
| 14 |
+
"abi_version": 1
|
| 15 |
+
}
|
artifacts/mxfp4_weights_gfx1201.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8f8943e4161a71aa786ff5c570e82ffe02324aedfdeb71757109f08773708027
|
| 3 |
+
size 21032
|
checkpoint.lock.json
ADDED
|
@@ -0,0 +1,327 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"source_repository": "abenzerps/Qwen-Image-2.1-Uncensored-GGUF",
|
| 3 |
+
"source_revision": "40319fb15542f0ad22921e0124a191a8a935a60a",
|
| 4 |
+
"tensor_payload_bytes": 9313781512,
|
| 5 |
+
"files": [
|
| 6 |
+
{
|
| 7 |
+
"file": "processor/added_tokens.json",
|
| 8 |
+
"bytes": 707,
|
| 9 |
+
"sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680"
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
"file": "processor/chat_template.jinja",
|
| 13 |
+
"bytes": 5292,
|
| 14 |
+
"sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"file": "processor/merges.txt",
|
| 18 |
+
"bytes": 1671853,
|
| 19 |
+
"sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5"
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"file": "processor/preprocessor_config.json",
|
| 23 |
+
"bytes": 782,
|
| 24 |
+
"sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"file": "processor/special_tokens_map.json",
|
| 28 |
+
"bytes": 613,
|
| 29 |
+
"sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"file": "processor/tokenizer.json",
|
| 33 |
+
"bytes": 11422654,
|
| 34 |
+
"sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"file": "processor/tokenizer_config.json",
|
| 38 |
+
"bytes": 5445,
|
| 39 |
+
"sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5"
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"file": "processor/video_preprocessor_config.json",
|
| 43 |
+
"bytes": 817,
|
| 44 |
+
"sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1"
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"file": "processor/vocab.json",
|
| 48 |
+
"bytes": 2776833,
|
| 49 |
+
"sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910"
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"file": "result.json",
|
| 53 |
+
"bytes": 250167,
|
| 54 |
+
"sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89"
|
| 55 |
+
},
|
| 56 |
+
{
|
| 57 |
+
"file": "scheduler/scheduler_config.json",
|
| 58 |
+
"bytes": 485,
|
| 59 |
+
"sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"file": "text_encoder/config.json",
|
| 63 |
+
"bytes": 1517,
|
| 64 |
+
"sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9"
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"file": "text_encoder/weights-00001.safetensors",
|
| 68 |
+
"bytes": 330613160,
|
| 69 |
+
"sha256": "f4da6dc292c0a961d74a02dd076d24aee3f38289c7f250c8727d298a86cf0d80"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"file": "text_encoder/weights-00002.safetensors",
|
| 73 |
+
"bytes": 202806640,
|
| 74 |
+
"sha256": "6683ed125cbeb40d6a00216f64e549d1ce36a766f972c57c8c5686550f26f7d3"
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"file": "text_encoder/weights-00003.safetensors",
|
| 78 |
+
"bytes": 205035120,
|
| 79 |
+
"sha256": "2df7f765d32ef69481f97034f21d344ac9c251fc6a7dbcdcc016e2c4e6b0f5ac"
|
| 80 |
+
},
|
| 81 |
+
{
|
| 82 |
+
"file": "text_encoder/weights-00004.safetensors",
|
| 83 |
+
"bytes": 205035120,
|
| 84 |
+
"sha256": "bbe642ee7e8e3370f9a0445ba5207bfebee202ea25676e7232d1e44038de3c5c"
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"file": "text_encoder/weights-00005.safetensors",
|
| 88 |
+
"bytes": 202756768,
|
| 89 |
+
"sha256": "c42fca1cc6c1a8ee0e92b0a840faf95e91f8d0852d79d2d81c29869f7cea3a7b"
|
| 90 |
+
},
|
| 91 |
+
{
|
| 92 |
+
"file": "text_encoder/weights-00006.safetensors",
|
| 93 |
+
"bytes": 182434800,
|
| 94 |
+
"sha256": "17df5a53455f78da82104741e906359a5b4eabf697fc4a9294b0891874e9c9c7"
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"file": "text_encoder/weights-00007.safetensors",
|
| 98 |
+
"bytes": 202806672,
|
| 99 |
+
"sha256": "309c016ee140abadb50393412c2fd2c2c1d895edfa52ee15bffffbd92d5b5963"
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"file": "text_encoder/weights-00008.safetensors",
|
| 103 |
+
"bytes": 205035152,
|
| 104 |
+
"sha256": "0463a92fa87a14f70b70019c544e92741e63061b4120a0bb219e5cf219d415c3"
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"file": "text_encoder/weights-00009.safetensors",
|
| 108 |
+
"bytes": 205035152,
|
| 109 |
+
"sha256": "14d947a8fa186cae770ea124dffd752b6bfd3a36b3ebd87d904699832c258189"
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"file": "text_encoder/weights-00010.safetensors",
|
| 113 |
+
"bytes": 205035152,
|
| 114 |
+
"sha256": "1b0fb642ff474d93d8fe0a4f0d99d577b4ac4311a4c84cde0a88b16c94b3379a"
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"file": "text_encoder/weights-00011.safetensors",
|
| 118 |
+
"bytes": 207271944,
|
| 119 |
+
"sha256": "260fabe706ff30aacc9348299a6fceaee57af24cfc88ed40a8c412481b639a2b"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"file": "text_encoder/weights-00012.safetensors",
|
| 123 |
+
"bytes": 205035120,
|
| 124 |
+
"sha256": "b9ced7666665bedd825cef9d37608332dea80c5c89367b3d455c6ed84d3c1987"
|
| 125 |
+
},
|
| 126 |
+
{
|
| 127 |
+
"file": "text_encoder/weights-00013.safetensors",
|
| 128 |
+
"bytes": 75770384,
|
| 129 |
+
"sha256": "1186899042135f046857ee1c31bbefdc0fbaf8fe8a33d01581b49fc3a1800e35"
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"file": "text_encoder/weights-00014.safetensors",
|
| 133 |
+
"bytes": 209498384,
|
| 134 |
+
"sha256": "ef889195f6e3ecd025b7055afdfc5673969ac2e22c159eff57384e8e86a2a5f0"
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"file": "text_encoder/weights-00015.safetensors",
|
| 138 |
+
"bytes": 205035152,
|
| 139 |
+
"sha256": "152bfd694e16d215d314d86e61914905b3e4cf20ee896de94ea0b6fbaa44494f"
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"file": "text_encoder/weights-00016.safetensors",
|
| 143 |
+
"bytes": 205035152,
|
| 144 |
+
"sha256": "469988778630cf75282d04d1654e724d1fe5dd4391382db52c494d9c4b35a29f"
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"file": "text_encoder/weights-00017.safetensors",
|
| 148 |
+
"bytes": 205035152,
|
| 149 |
+
"sha256": "ae931d67cd4e4dcc8534170e49ae0312b9d00ba76f05ec82e26516b1cec4134f"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"file": "text_encoder/weights-00018.safetensors",
|
| 153 |
+
"bytes": 205035152,
|
| 154 |
+
"sha256": "c7b0cd6cb16d30b9f0a2282a2e165aa92d349abd1443413ba06098cdf7210971"
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"file": "text_encoder/weights-00019.safetensors",
|
| 158 |
+
"bytes": 205035152,
|
| 159 |
+
"sha256": "c83194f470530b85aaba2b5ed0d4ad011f431390dad9fe707c6e2cb9675eee5d"
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"file": "text_encoder/weights-00020.safetensors",
|
| 163 |
+
"bytes": 71315480,
|
| 164 |
+
"sha256": "4a5648e9be5ff84589f90c47cde78285afe64cf14d2da596f87d6558b34deef4"
|
| 165 |
+
},
|
| 166 |
+
{
|
| 167 |
+
"file": "text_encoder/weights-00021.safetensors",
|
| 168 |
+
"bytes": 330613104,
|
| 169 |
+
"sha256": "184e49178bc1843c01b51d758385b5b45d777c3d0e0545bb1bdf7fa9cef3f33d"
|
| 170 |
+
},
|
| 171 |
+
{
|
| 172 |
+
"file": "text_encoder/weights-00022.safetensors",
|
| 173 |
+
"bytes": 209498384,
|
| 174 |
+
"sha256": "d513a74d1e4f3fcf9b89a0cd943a9170dc92e85a0fe81241b3def694b4231e69"
|
| 175 |
+
},
|
| 176 |
+
{
|
| 177 |
+
"file": "text_encoder/weights-00023.safetensors",
|
| 178 |
+
"bytes": 178296192,
|
| 179 |
+
"sha256": "9e3cc9224d17de2ce559ecddd91b2121a1d3e5d371878e89b2df6e2f190906a2"
|
| 180 |
+
},
|
| 181 |
+
{
|
| 182 |
+
"file": "text_encoder/weights.index.json",
|
| 183 |
+
"bytes": 96578,
|
| 184 |
+
"sha256": "52e387de3cb161bb3c49bfa9adfafbecad4ed4b65332b67c517a99f9c80f8247"
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"file": "transformer/config.json",
|
| 188 |
+
"bytes": 370,
|
| 189 |
+
"sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241"
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"file": "transformer/weights-00001.safetensors",
|
| 193 |
+
"bytes": 204473176,
|
| 194 |
+
"sha256": "36ddaae0bed6537ec88e046c6e718307cc76538c70438c0e870078d6d75d0b31"
|
| 195 |
+
},
|
| 196 |
+
{
|
| 197 |
+
"file": "transformer/weights-00002.safetensors",
|
| 198 |
+
"bytes": 205001288,
|
| 199 |
+
"sha256": "e6022b43d61f90ddca5e2d2839cd295527c03d60a24f35fc47268f54acfd63ee"
|
| 200 |
+
},
|
| 201 |
+
{
|
| 202 |
+
"file": "transformer/weights-00003.safetensors",
|
| 203 |
+
"bytes": 205001320,
|
| 204 |
+
"sha256": "154146d6613ed7d4a1d4d71e745ccbd9a0ebbf41b2ccc5c18719c9548b865749"
|
| 205 |
+
},
|
| 206 |
+
{
|
| 207 |
+
"file": "transformer/weights-00004.safetensors",
|
| 208 |
+
"bytes": 205001312,
|
| 209 |
+
"sha256": "3c1705769154f6d17a102cb0a6247375084edb86be66342e983576a1bb6aa95c"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"file": "transformer/weights-00005.safetensors",
|
| 213 |
+
"bytes": 205000864,
|
| 214 |
+
"sha256": "f647ff6a19319084f412447eaa36629683a4a7a0559062d930a5411accc39a01"
|
| 215 |
+
},
|
| 216 |
+
{
|
| 217 |
+
"file": "transformer/weights-00006.safetensors",
|
| 218 |
+
"bytes": 222826408,
|
| 219 |
+
"sha256": "5f90211ff00349c1ba5174f7354d14ceaa730ff32e38cf3e8d66b549d6f7f515"
|
| 220 |
+
},
|
| 221 |
+
{
|
| 222 |
+
"file": "transformer/weights-00007.safetensors",
|
| 223 |
+
"bytes": 205001320,
|
| 224 |
+
"sha256": "0553e76631c4e011f0f2917fd9e78225ad8eaaf727e2ea8db741bc831eab2f8c"
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"file": "transformer/weights-00008.safetensors",
|
| 228 |
+
"bytes": 205001312,
|
| 229 |
+
"sha256": "32a3febb9d4c2cc15352078bf3b912fc81549376cfc38b9c9bb4291a45afbbf5"
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"file": "transformer/weights-00009.safetensors",
|
| 233 |
+
"bytes": 205001304,
|
| 234 |
+
"sha256": "8b8c326b4fdbbb12ac879cf0e7ccaf6063ea872b6ae70b180e10b5a9051867de"
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"file": "transformer/weights-00010.safetensors",
|
| 238 |
+
"bytes": 205000864,
|
| 239 |
+
"sha256": "6464aaacd54beec15169aa4869e5c1f6b74589f6e402ebe28345ae3e9d49a90c"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"file": "transformer/weights-00011.safetensors",
|
| 243 |
+
"bytes": 222826408,
|
| 244 |
+
"sha256": "878829a50db13f7155178d55f7f0ac000e0e5be437c604c9a9b2476705a46e32"
|
| 245 |
+
},
|
| 246 |
+
{
|
| 247 |
+
"file": "transformer/weights-00012.safetensors",
|
| 248 |
+
"bytes": 205001320,
|
| 249 |
+
"sha256": "c5f8409cbc21760a02a2530fa5ef18781c6cf1382ed1da378b1ef0f19ff60abe"
|
| 250 |
+
},
|
| 251 |
+
{
|
| 252 |
+
"file": "transformer/weights-00013.safetensors",
|
| 253 |
+
"bytes": 205001328,
|
| 254 |
+
"sha256": "58f4c2e56367921cce13e9a0ba9e4d869601e79609eb37f764b3b5acd9496732"
|
| 255 |
+
},
|
| 256 |
+
{
|
| 257 |
+
"file": "transformer/weights-00014.safetensors",
|
| 258 |
+
"bytes": 205001296,
|
| 259 |
+
"sha256": "ff906d4aa0322b4b58a503f091fb97d6e5d4dc356b84b0497c0a49570f40d701"
|
| 260 |
+
},
|
| 261 |
+
{
|
| 262 |
+
"file": "transformer/weights-00015.safetensors",
|
| 263 |
+
"bytes": 205000856,
|
| 264 |
+
"sha256": "29cea08aa74c9b8ef2c274ca5c0980dc6fae58a2787122749763aa715fbfb326"
|
| 265 |
+
},
|
| 266 |
+
{
|
| 267 |
+
"file": "transformer/weights-00016.safetensors",
|
| 268 |
+
"bytes": 222826392,
|
| 269 |
+
"sha256": "5c0f611079cdd03233fe35cf6d709763df8944b24e48f6011ff43fee0b9b0918"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"file": "transformer/weights-00017.safetensors",
|
| 273 |
+
"bytes": 205001288,
|
| 274 |
+
"sha256": "44449b2e3fad2175d17a7165307a645d46af2f4096d48f517c10deb1585466de"
|
| 275 |
+
},
|
| 276 |
+
{
|
| 277 |
+
"file": "transformer/weights-00018.safetensors",
|
| 278 |
+
"bytes": 205001296,
|
| 279 |
+
"sha256": "a08d51a0f37a7c500474880a934d0f3d1bd764326b16a68db06839dbab045f9b"
|
| 280 |
+
},
|
| 281 |
+
{
|
| 282 |
+
"file": "transformer/weights-00019.safetensors",
|
| 283 |
+
"bytes": 202902600,
|
| 284 |
+
"sha256": "67ea9aef20743c34a4f86579b79967fdf453d37709b0ffb6d7981190437c0cdb"
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"file": "transformer/weights-00020.safetensors",
|
| 288 |
+
"bytes": 33563056,
|
| 289 |
+
"sha256": "8c085dafd9ae1345fefe11996b88f029992e79f47fdc09ea8c0554a161f3fa9f"
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"file": "transformer/weights.index.json",
|
| 293 |
+
"bytes": 41507,
|
| 294 |
+
"sha256": "146e1a34bb9b15a74ad72e43ba2550fe31787cce53467e0b023f036f0b8ccf1f"
|
| 295 |
+
},
|
| 296 |
+
{
|
| 297 |
+
"file": "vae/config.json",
|
| 298 |
+
"bytes": 2079,
|
| 299 |
+
"sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"file": "vae/weights-00001.safetensors",
|
| 303 |
+
"bytes": 203107424,
|
| 304 |
+
"sha256": "1043a8bb881d751f95b427f9048bb290d8a2e22f0f4f122a5c0b35d7e820d125"
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"file": "vae/weights-00002.safetensors",
|
| 308 |
+
"bytes": 220346496,
|
| 309 |
+
"sha256": "b491b4a0b7322e1e0efa0b4ad6249858583096986dd5c72371584b8c9d925fff"
|
| 310 |
+
},
|
| 311 |
+
{
|
| 312 |
+
"file": "vae/weights-00003.safetensors",
|
| 313 |
+
"bytes": 204800464,
|
| 314 |
+
"sha256": "3e7be3114f62aa557260dc7ddf5825f9fb28c7d8b86b12b774599840da0cf32e"
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"file": "vae/weights-00004.safetensors",
|
| 318 |
+
"bytes": 47254608,
|
| 319 |
+
"sha256": "3f3fc4a4ad9b176b1905cb9e3c4bd37ce98d177f1b8caa561d7a135a0130f690"
|
| 320 |
+
},
|
| 321 |
+
{
|
| 322 |
+
"file": "vae/weights.index.json",
|
| 323 |
+
"bytes": 18726,
|
| 324 |
+
"sha256": "b1153ff6959e47d36954b1af174bfce909401459cf51756d624b0bf53cad3726"
|
| 325 |
+
}
|
| 326 |
+
]
|
| 327 |
+
}
|
environment.lock.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"source_model": "Qwen/Qwen-Image-2.1",
|
| 3 |
+
"source_revision": "790c92633540aa0cb11d9abf19eb46d861714758",
|
| 4 |
+
"diffusers_commit": "7263f3317f6b392d62f41e9d75ed9d7e21fc5a5c",
|
| 5 |
+
"profiles": {
|
| 6 |
+
"mi355": {
|
| 7 |
+
"python": "3.12.3",
|
| 8 |
+
"packages": {
|
| 9 |
+
"accelerate": "1.15.0",
|
| 10 |
+
"annotated-doc": "0.0.5",
|
| 11 |
+
"anyio": "4.15.1",
|
| 12 |
+
"certifi": "2026.7.22",
|
| 13 |
+
"charset-normalizer": "3.5.1",
|
| 14 |
+
"click": "8.5.0",
|
| 15 |
+
"diffusers": "0.41.0.dev0",
|
| 16 |
+
"filelock": "3.32.3",
|
| 17 |
+
"fsspec": "2026.6.0",
|
| 18 |
+
"h11": "0.16.0",
|
| 19 |
+
"hf-xet": "1.6.0",
|
| 20 |
+
"httpcore": "1.0.9",
|
| 21 |
+
"httpx": "0.28.1",
|
| 22 |
+
"huggingface-hub": "1.31.0",
|
| 23 |
+
"idna": "3.20",
|
| 24 |
+
"importlib-metadata": "9.0.1",
|
| 25 |
+
"jinja2": "3.1.6",
|
| 26 |
+
"markdown-it-py": "4.2.0",
|
| 27 |
+
"markupsafe": "3.0.3",
|
| 28 |
+
"mdurl": "0.1.2",
|
| 29 |
+
"mpmath": "1.3.0",
|
| 30 |
+
"networkx": "3.6.1",
|
| 31 |
+
"numpy": "2.5.2",
|
| 32 |
+
"packaging": "26.3",
|
| 33 |
+
"pillow": "12.3.0",
|
| 34 |
+
"psutil": "7.2.2",
|
| 35 |
+
"pygments": "2.21.0",
|
| 36 |
+
"pyyaml": "6.0.3",
|
| 37 |
+
"regex": "2026.9.10",
|
| 38 |
+
"requests": "2.34.2",
|
| 39 |
+
"rich": "15.0.0",
|
| 40 |
+
"safetensors": "0.8.0",
|
| 41 |
+
"setuptools": "78.1.0",
|
| 42 |
+
"shellingham": "1.5.4",
|
| 43 |
+
"sympy": "1.14.0",
|
| 44 |
+
"tokenizers": "0.23.2",
|
| 45 |
+
"torch": "2.10.0+rocm7.1",
|
| 46 |
+
"torchvision": "0.25.0+rocm7.1",
|
| 47 |
+
"tqdm": "4.70.1",
|
| 48 |
+
"transformers": "5.17.0",
|
| 49 |
+
"triton-rocm": "3.6.0",
|
| 50 |
+
"typer": "0.27.2",
|
| 51 |
+
"typing-extensions": "4.16.0",
|
| 52 |
+
"urllib3": "2.8.0",
|
| 53 |
+
"zipp": "4.1.0"
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
},
|
| 57 |
+
"environment": {
|
| 58 |
+
"MIOPEN_FIND_MODE": "FAST",
|
| 59 |
+
"MIOPEN_DEBUG_CONV_GEMM": "0",
|
| 60 |
+
"TORCH_COMPILE_DISABLE": "1"
|
| 61 |
+
},
|
| 62 |
+
"evaluation": {
|
| 63 |
+
"additional_packages": {
|
| 64 |
+
"lpips": "0.1.4",
|
| 65 |
+
"scipy": "1.18.1"
|
| 66 |
+
},
|
| 67 |
+
"device": "CPU"
|
| 68 |
+
}
|
| 69 |
+
}
|
evaluation/mi355-correctness.json
ADDED
|
@@ -0,0 +1,1543 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"status": "completed_mi355_correctness_screen",
|
| 3 |
+
"source_sha256": "f151c683a8aed4b310777017ebbbe3f2180f1180f7867115171adb7d50b0762a",
|
| 4 |
+
"quality": {
|
| 5 |
+
"status": "completed_descriptive_quality_screen",
|
| 6 |
+
"count": 8,
|
| 7 |
+
"rows": [
|
| 8 |
+
{
|
| 9 |
+
"id": "neon-first",
|
| 10 |
+
"prompt": "A neon shop sign that reads \"QWEN IMAGE 2.1\", rainy night, reflections on wet pavement",
|
| 11 |
+
"seed": 42,
|
| 12 |
+
"reference_png_sha256": "2729b3620d097c45c5b13db252df0f3e9fd4d4f93faf20b71c4839e2a4d719e2",
|
| 13 |
+
"candidate_png_sha256": "82a23b56fe9e8e80f2616be0189e9aaa47fe1b54532c6d422dd8082ece33dcdf",
|
| 14 |
+
"clipscore_bf16": 1.1144796013832092,
|
| 15 |
+
"clipscore_candidate": 0.8718983083963394,
|
| 16 |
+
"lpips_vs_bf16": 0.36456334590911865,
|
| 17 |
+
"clipscore_delta": -0.2425812929868698
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": "portrait-first",
|
| 21 |
+
"prompt": "A natural light editorial portrait of an elderly woman with silver hair and freckles, wearing a blue linen shirt, relaxed expression, soft window light, photographic detail",
|
| 22 |
+
"seed": 43,
|
| 23 |
+
"reference_png_sha256": "14a8cceb24ed63bbd29306013089dcd5ed9f7e68a2efc045397cc3403be44880",
|
| 24 |
+
"candidate_png_sha256": "dc1205eff76d557996d9186f13a41838d134e829c79cf2e7f08e19d82d28d74b",
|
| 25 |
+
"clipscore_bf16": 0.8257061243057251,
|
| 26 |
+
"clipscore_candidate": 0.8091752231121063,
|
| 27 |
+
"lpips_vs_bf16": 0.057727862149477005,
|
| 28 |
+
"clipscore_delta": -0.016530901193618774
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"id": "product-first",
|
| 32 |
+
"prompt": "A studio product photograph of a green ceramic teapot and a white porcelain cup on a pale wooden table, soft shadows, clean white background",
|
| 33 |
+
"seed": 44,
|
| 34 |
+
"reference_png_sha256": "be6aca86e3a1ee27f41dcb4045c5f279e68cd513f9333c052fb9041a86f739d1",
|
| 35 |
+
"candidate_png_sha256": "20397f382e84a3a940e3348894b26ed466afd86ce444cc4abb3369a6558539b8",
|
| 36 |
+
"clipscore_bf16": 0.9173409640789032,
|
| 37 |
+
"clipscore_candidate": 0.9037841111421585,
|
| 38 |
+
"lpips_vs_bf16": 0.05581988766789436,
|
| 39 |
+
"clipscore_delta": -0.01355685293674469
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"id": "animals-first",
|
| 43 |
+
"prompt": "Two red foxes sitting beside a mossy log in a misty pine forest, early morning sunlight, realistic wildlife photography",
|
| 44 |
+
"seed": 45,
|
| 45 |
+
"reference_png_sha256": "ba4e3b9c939faae49b5d985698f34748cabb6bad47eeaaba7bd9e3f72c2eadbe",
|
| 46 |
+
"candidate_png_sha256": "21790e0480350ccbb9af2c10886c348be8cb76e48050e7c655484846c04d073c",
|
| 47 |
+
"clipscore_bf16": 0.8416342735290527,
|
| 48 |
+
"clipscore_candidate": 0.8407427370548248,
|
| 49 |
+
"lpips_vs_bf16": 0.1324639618396759,
|
| 50 |
+
"clipscore_delta": -0.0008915364742279053
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"id": "spatial-first",
|
| 54 |
+
"prompt": "A red cube to the left of a blue sphere, with a small yellow cone behind them, on a white tabletop, clean three dimensional rendering",
|
| 55 |
+
"seed": 46,
|
| 56 |
+
"reference_png_sha256": "d99605f0368a7bf4d843166ef05df8fca7badaaf771b5a1c9079d7c09c5dba33",
|
| 57 |
+
"candidate_png_sha256": "633e7baa29d6dea36cfd9342587604f9f938ecddcab5a9252205f73d2fd505bb",
|
| 58 |
+
"clipscore_bf16": 0.9053816646337509,
|
| 59 |
+
"clipscore_candidate": 0.9046095609664917,
|
| 60 |
+
"lpips_vs_bf16": 0.013449719175696373,
|
| 61 |
+
"clipscore_delta": -0.0007721036672592163
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"id": "illustration-first",
|
| 65 |
+
"prompt": "A watercolor illustration of a small bookshop on a quiet European street, flower boxes under the windows, a bicycle by the door, warm spring sunshine",
|
| 66 |
+
"seed": 47,
|
| 67 |
+
"reference_png_sha256": "82194261767681ff42704aebf80cfdcea70e2224dea1fa3b2fafc1a7610eae35",
|
| 68 |
+
"candidate_png_sha256": "09cc3b43361915a4671e29570a7912fe7a4e5dd4e2bcd3ab9edb61e9e5d30843",
|
| 69 |
+
"clipscore_bf16": 0.8999834954738617,
|
| 70 |
+
"clipscore_candidate": 0.8866769075393677,
|
| 71 |
+
"lpips_vs_bf16": 0.4686177372932434,
|
| 72 |
+
"clipscore_delta": -0.013306587934494019
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"id": "landscape-first",
|
| 76 |
+
"prompt": "A wide landscape photograph of snowy mountains reflected in a calm alpine lake at sunrise, pink clouds, sharp rocks and wildflowers in the foreground",
|
| 77 |
+
"seed": 48,
|
| 78 |
+
"reference_png_sha256": "3c3abcfc552c6ce2d154937f9351c197b6c6dab916e5f30fc9bd9d405e30d5bd",
|
| 79 |
+
"candidate_png_sha256": "a699176e93685c9412ae43cbb8dbcbc9fa43f6996995134c5002af4a490bd63e",
|
| 80 |
+
"clipscore_bf16": 0.889352485537529,
|
| 81 |
+
"clipscore_candidate": 0.8648373186588287,
|
| 82 |
+
"lpips_vs_bf16": 0.31182053685188293,
|
| 83 |
+
"clipscore_delta": -0.024515166878700256
|
| 84 |
+
},
|
| 85 |
+
{
|
| 86 |
+
"id": "poster-first",
|
| 87 |
+
"prompt": "A clean graphic poster with the exact headline \"FRESH COFFEE\" in large readable letters, a simple illustration of a coffee cup, cream and dark brown colors",
|
| 88 |
+
"seed": 49,
|
| 89 |
+
"reference_png_sha256": "4b419904f93122cdb9e610e8f77d0028d76f1e419af29abcd820a353d74c017a",
|
| 90 |
+
"candidate_png_sha256": "1c49b297c04624fbe839303c1c29f71791d81633fcdfcc7d5c1002c2b84cc107",
|
| 91 |
+
"clipscore_bf16": 0.8254755288362503,
|
| 92 |
+
"clipscore_candidate": 0.868946835398674,
|
| 93 |
+
"lpips_vs_bf16": 0.13691122829914093,
|
| 94 |
+
"clipscore_delta": 0.043471306562423706
|
| 95 |
+
}
|
| 96 |
+
],
|
| 97 |
+
"metric_manifest": {
|
| 98 |
+
"clip_repository": "openai/clip-vit-base-patch32",
|
| 99 |
+
"clip_revision": "3d74acf9a28c67741b2f4f2ea7635f0aaf6f0268",
|
| 100 |
+
"clip_weight_file": "pytorch_model.bin",
|
| 101 |
+
"versions": {
|
| 102 |
+
"torch": "2.10.0+rocm7.1",
|
| 103 |
+
"torchvision": "0.25.0+rocm7.1",
|
| 104 |
+
"transformers": "5.17.0",
|
| 105 |
+
"lpips": "0.1.4",
|
| 106 |
+
"numpy": "2.5.2"
|
| 107 |
+
},
|
| 108 |
+
"files": [
|
| 109 |
+
{
|
| 110 |
+
"file": "config.json",
|
| 111 |
+
"sha256": "b575ef3c36f2a057fa19e221650105052d61cc9c1a972ec15019c6261ec98770",
|
| 112 |
+
"bytes": 4186
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"file": "merges.txt",
|
| 116 |
+
"sha256": "f526393189112391ce6f9795d4695f704121ce452c3aad1f5335cc41337eba85",
|
| 117 |
+
"bytes": 524657
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"file": "preprocessor_config.json",
|
| 121 |
+
"sha256": "910e70b3956ac9879ebc90b22fb3bc8a75b6a0677814500101a4c072bd7857bd",
|
| 122 |
+
"bytes": 316
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"file": "pytorch_model.bin",
|
| 126 |
+
"sha256": "a63082132ba4f97a80bea76823f544493bffa8082296d62d71581a4feff1576f",
|
| 127 |
+
"bytes": 605247071
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"file": "special_tokens_map.json",
|
| 131 |
+
"sha256": "f8c0d6c39aee3f8431078ef6646567b0aba7f2246e9c54b8b99d55c22b707cbf",
|
| 132 |
+
"bytes": 389
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"file": "tokenizer.json",
|
| 136 |
+
"sha256": "b556ac8c99757ffb677208af34bc8c6721572114111a6e0aaf5fa69ff0b8d842",
|
| 137 |
+
"bytes": 2224041
|
| 138 |
+
},
|
| 139 |
+
{
|
| 140 |
+
"file": "tokenizer_config.json",
|
| 141 |
+
"sha256": "34b7336e4bee12e0a9730eaf5189f582ef3c3eea5027f65730e5717256755aad",
|
| 142 |
+
"bytes": 592
|
| 143 |
+
},
|
| 144 |
+
{
|
| 145 |
+
"file": "vocab.json",
|
| 146 |
+
"sha256": "5047b556ce86ccaf6aa22b3ffccfc52d391ea4accdab9c2f2407da5b742d4363",
|
| 147 |
+
"bytes": 862328
|
| 148 |
+
}
|
| 149 |
+
],
|
| 150 |
+
"alexnet": {
|
| 151 |
+
"file": "alexnet-owt-7be5be79.pth",
|
| 152 |
+
"sha256": "7be5be791159472b1fbf3c69796f7cb30dca7ad8466c2df70058c37116cdee02",
|
| 153 |
+
"bytes": 244408911
|
| 154 |
+
},
|
| 155 |
+
"lpips_calibration_sha256": "df73285e35b22355a2df87cdb6b70b343713b667eddbda73e1977e0c860835c0"
|
| 156 |
+
},
|
| 157 |
+
"reference_variant": "bf16",
|
| 158 |
+
"candidate_variant": "all",
|
| 159 |
+
"clipscore": "2.5 * max(cosine(image,text),0); CLIP ViT-B/32; 'A photo depicts ' prefix; float32 CPU via Transformers; original 224-pixel bicubic center crop",
|
| 160 |
+
"lpips": "lpips 0.1.4, AlexNet v0.1, RGB resized to 512 square with bicubic; inputs [-1,1]; lower means closer to paired BF16, not necessarily better image quality",
|
| 161 |
+
"limitations": "Eight custom prompts and one seed per prompt. Descriptive smoke test, no statistical quality equivalence claim. CLIPScore is not a correctness, typography or human-preference guarantee. LPIPS measures changes in composition as well as degradation. No FID/KID computed on this small sample.",
|
| 162 |
+
"means": {
|
| 163 |
+
"clipscore_bf16": 0.9024192672222853,
|
| 164 |
+
"clipscore_candidate": 0.8688338752835989,
|
| 165 |
+
"clipscore_delta": -0.03358539193868637,
|
| 166 |
+
"lpips_vs_bf16": 0.1926717848982662
|
| 167 |
+
}
|
| 168 |
+
},
|
| 169 |
+
"latency_and_memory": {
|
| 170 |
+
"bf16": {
|
| 171 |
+
"gpu": "_CudaDeviceProperties(name='AMD Radeon Graphics', major=9, minor=5, gcnArchName='gfx950:sramecc+:xnack-', total_memory=294896MB, multi_processor_count=256, uuid=31303338-3666-6265-3937-343836316534, pci_bus_id=117, pci_device_id=0, pci_domain_id=0, L2_cache_size=4MB)",
|
| 172 |
+
"hip": "7.1.25424",
|
| 173 |
+
"versions": {
|
| 174 |
+
"torch": "2.10.0+rocm7.1",
|
| 175 |
+
"diffusers": "0.41.0.dev0",
|
| 176 |
+
"transformers": "5.17.0",
|
| 177 |
+
"accelerate": "1.15.0",
|
| 178 |
+
"safetensors": "0.8.0"
|
| 179 |
+
},
|
| 180 |
+
"allocator_cap_bytes": 68719476736.0,
|
| 181 |
+
"load_seconds": 10.025620744097978,
|
| 182 |
+
"sampled_peak_device_bytes": 57963184128,
|
| 183 |
+
"requests": [
|
| 184 |
+
{
|
| 185 |
+
"id": "neon-first",
|
| 186 |
+
"settings": {
|
| 187 |
+
"width": 2048,
|
| 188 |
+
"height": 2048,
|
| 189 |
+
"output_resolution": 2048,
|
| 190 |
+
"num_inference_steps": 40,
|
| 191 |
+
"true_cfg_scale": 1.0,
|
| 192 |
+
"use_kv_cache": true
|
| 193 |
+
},
|
| 194 |
+
"prompt": "A neon shop sign that reads \"QWEN IMAGE 2.1\", rainy night, reflections on wet pavement",
|
| 195 |
+
"seed": 42,
|
| 196 |
+
"complete_request_to_pil_seconds": 19.358816489111632,
|
| 197 |
+
"complete_request_to_png_seconds": 20.572639046935365,
|
| 198 |
+
"process_start_to_png_seconds": 31.459394913865253,
|
| 199 |
+
"peak_allocated_bytes": 50683621376,
|
| 200 |
+
"peak_reserved_bytes": 56476303360,
|
| 201 |
+
"sampled_peak_device_bytes": 57963184128,
|
| 202 |
+
"png_sha256": "2729b3620d097c45c5b13db252df0f3e9fd4d4f93faf20b71c4839e2a4d719e2",
|
| 203 |
+
"finite": true,
|
| 204 |
+
"remaining_prefix_objects": 0,
|
| 205 |
+
"stream": "dedicated non-default HIP stream",
|
| 206 |
+
"alpha_min": 249,
|
| 207 |
+
"alpha_max": 255
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"id": "portrait-first",
|
| 211 |
+
"settings": {
|
| 212 |
+
"width": 2048,
|
| 213 |
+
"height": 2048,
|
| 214 |
+
"output_resolution": 2048,
|
| 215 |
+
"num_inference_steps": 40,
|
| 216 |
+
"true_cfg_scale": 1.0,
|
| 217 |
+
"use_kv_cache": true
|
| 218 |
+
},
|
| 219 |
+
"prompt": "A natural light editorial portrait of an elderly woman with silver hair and freckles, wearing a blue linen shirt, relaxed expression, soft window light, photographic detail",
|
| 220 |
+
"seed": 43,
|
| 221 |
+
"complete_request_to_pil_seconds": 17.891500659054145,
|
| 222 |
+
"complete_request_to_png_seconds": 19.060148459859192,
|
| 223 |
+
"process_start_to_png_seconds": 50.533550190972164,
|
| 224 |
+
"peak_allocated_bytes": 50682871296,
|
| 225 |
+
"peak_reserved_bytes": 56088330240,
|
| 226 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 227 |
+
"png_sha256": "14a8cceb24ed63bbd29306013089dcd5ed9f7e68a2efc045397cc3403be44880",
|
| 228 |
+
"finite": true,
|
| 229 |
+
"remaining_prefix_objects": 0,
|
| 230 |
+
"stream": "dedicated non-default HIP stream",
|
| 231 |
+
"alpha_min": 249,
|
| 232 |
+
"alpha_max": 255
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"id": "product-first",
|
| 236 |
+
"settings": {
|
| 237 |
+
"width": 2048,
|
| 238 |
+
"height": 2048,
|
| 239 |
+
"output_resolution": 2048,
|
| 240 |
+
"num_inference_steps": 40,
|
| 241 |
+
"true_cfg_scale": 1.0,
|
| 242 |
+
"use_kv_cache": true
|
| 243 |
+
},
|
| 244 |
+
"prompt": "A studio product photograph of a green ceramic teapot and a white porcelain cup on a pale wooden table, soft shadows, clean white background",
|
| 245 |
+
"seed": 44,
|
| 246 |
+
"complete_request_to_pil_seconds": 17.918784850044176,
|
| 247 |
+
"complete_request_to_png_seconds": 18.98277305904776,
|
| 248 |
+
"process_start_to_png_seconds": 69.52774427877739,
|
| 249 |
+
"peak_allocated_bytes": 50682830336,
|
| 250 |
+
"peak_reserved_bytes": 56088330240,
|
| 251 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 252 |
+
"png_sha256": "be6aca86e3a1ee27f41dcb4045c5f279e68cd513f9333c052fb9041a86f739d1",
|
| 253 |
+
"finite": true,
|
| 254 |
+
"remaining_prefix_objects": 0,
|
| 255 |
+
"stream": "dedicated non-default HIP stream",
|
| 256 |
+
"alpha_min": 251,
|
| 257 |
+
"alpha_max": 255
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"id": "animals-first",
|
| 261 |
+
"settings": {
|
| 262 |
+
"width": 2048,
|
| 263 |
+
"height": 2048,
|
| 264 |
+
"output_resolution": 2048,
|
| 265 |
+
"num_inference_steps": 40,
|
| 266 |
+
"true_cfg_scale": 1.0,
|
| 267 |
+
"use_kv_cache": true
|
| 268 |
+
},
|
| 269 |
+
"prompt": "Two red foxes sitting beside a mossy log in a misty pine forest, early morning sunlight, realistic wildlife photography",
|
| 270 |
+
"seed": 45,
|
| 271 |
+
"complete_request_to_pil_seconds": 17.878359139198437,
|
| 272 |
+
"complete_request_to_png_seconds": 18.891418333165348,
|
| 273 |
+
"process_start_to_png_seconds": 88.43161778780632,
|
| 274 |
+
"peak_allocated_bytes": 50682805760,
|
| 275 |
+
"peak_reserved_bytes": 56088330240,
|
| 276 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 277 |
+
"png_sha256": "ba4e3b9c939faae49b5d985698f34748cabb6bad47eeaaba7bd9e3f72c2eadbe",
|
| 278 |
+
"finite": true,
|
| 279 |
+
"remaining_prefix_objects": 0,
|
| 280 |
+
"stream": "dedicated non-default HIP stream",
|
| 281 |
+
"alpha_min": 251,
|
| 282 |
+
"alpha_max": 255
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"id": "spatial-first",
|
| 286 |
+
"settings": {
|
| 287 |
+
"width": 2048,
|
| 288 |
+
"height": 2048,
|
| 289 |
+
"output_resolution": 2048,
|
| 290 |
+
"num_inference_steps": 40,
|
| 291 |
+
"true_cfg_scale": 1.0,
|
| 292 |
+
"use_kv_cache": true
|
| 293 |
+
},
|
| 294 |
+
"prompt": "A red cube to the left of a blue sphere, with a small yellow cone behind them, on a white tabletop, clean three dimensional rendering",
|
| 295 |
+
"seed": 46,
|
| 296 |
+
"complete_request_to_pil_seconds": 17.876462967135012,
|
| 297 |
+
"complete_request_to_png_seconds": 18.9773146440275,
|
| 298 |
+
"process_start_to_png_seconds": 107.42291535879485,
|
| 299 |
+
"peak_allocated_bytes": 50682838528,
|
| 300 |
+
"peak_reserved_bytes": 56088330240,
|
| 301 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 302 |
+
"png_sha256": "d99605f0368a7bf4d843166ef05df8fca7badaaf771b5a1c9079d7c09c5dba33",
|
| 303 |
+
"finite": true,
|
| 304 |
+
"remaining_prefix_objects": 0,
|
| 305 |
+
"stream": "dedicated non-default HIP stream",
|
| 306 |
+
"alpha_min": 253,
|
| 307 |
+
"alpha_max": 255
|
| 308 |
+
},
|
| 309 |
+
{
|
| 310 |
+
"id": "illustration-first",
|
| 311 |
+
"settings": {
|
| 312 |
+
"width": 2048,
|
| 313 |
+
"height": 2048,
|
| 314 |
+
"output_resolution": 2048,
|
| 315 |
+
"num_inference_steps": 40,
|
| 316 |
+
"true_cfg_scale": 1.0,
|
| 317 |
+
"use_kv_cache": true
|
| 318 |
+
},
|
| 319 |
+
"prompt": "A watercolor illustration of a small bookshop on a quiet European street, flower boxes under the windows, a bicycle by the door, warm spring sunshine",
|
| 320 |
+
"seed": 47,
|
| 321 |
+
"complete_request_to_pil_seconds": 17.89926350908354,
|
| 322 |
+
"complete_request_to_png_seconds": 19.175433417083696,
|
| 323 |
+
"process_start_to_png_seconds": 126.6106223037932,
|
| 324 |
+
"peak_allocated_bytes": 50682854912,
|
| 325 |
+
"peak_reserved_bytes": 56088330240,
|
| 326 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 327 |
+
"png_sha256": "82194261767681ff42704aebf80cfdcea70e2224dea1fa3b2fafc1a7610eae35",
|
| 328 |
+
"finite": true,
|
| 329 |
+
"remaining_prefix_objects": 0,
|
| 330 |
+
"stream": "dedicated non-default HIP stream",
|
| 331 |
+
"alpha_min": 240,
|
| 332 |
+
"alpha_max": 255
|
| 333 |
+
},
|
| 334 |
+
{
|
| 335 |
+
"id": "landscape-first",
|
| 336 |
+
"settings": {
|
| 337 |
+
"width": 2048,
|
| 338 |
+
"height": 2048,
|
| 339 |
+
"output_resolution": 2048,
|
| 340 |
+
"num_inference_steps": 40,
|
| 341 |
+
"true_cfg_scale": 1.0,
|
| 342 |
+
"use_kv_cache": true
|
| 343 |
+
},
|
| 344 |
+
"prompt": "A wide landscape photograph of snowy mountains reflected in a calm alpine lake at sunrise, pink clouds, sharp rocks and wildflowers in the foreground",
|
| 345 |
+
"seed": 48,
|
| 346 |
+
"complete_request_to_pil_seconds": 17.80886067217216,
|
| 347 |
+
"complete_request_to_png_seconds": 18.868385752197355,
|
| 348 |
+
"process_start_to_png_seconds": 145.49356518592685,
|
| 349 |
+
"peak_allocated_bytes": 50682838528,
|
| 350 |
+
"peak_reserved_bytes": 56088330240,
|
| 351 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 352 |
+
"png_sha256": "3c3abcfc552c6ce2d154937f9351c197b6c6dab916e5f30fc9bd9d405e30d5bd",
|
| 353 |
+
"finite": true,
|
| 354 |
+
"remaining_prefix_objects": 0,
|
| 355 |
+
"stream": "dedicated non-default HIP stream",
|
| 356 |
+
"alpha_min": 249,
|
| 357 |
+
"alpha_max": 255
|
| 358 |
+
},
|
| 359 |
+
{
|
| 360 |
+
"id": "poster-first",
|
| 361 |
+
"settings": {
|
| 362 |
+
"width": 2048,
|
| 363 |
+
"height": 2048,
|
| 364 |
+
"output_resolution": 2048,
|
| 365 |
+
"num_inference_steps": 40,
|
| 366 |
+
"true_cfg_scale": 1.0,
|
| 367 |
+
"use_kv_cache": true
|
| 368 |
+
},
|
| 369 |
+
"prompt": "A clean graphic poster with the exact headline \"FRESH COFFEE\" in large readable letters, a simple illustration of a coffee cup, cream and dark brown colors",
|
| 370 |
+
"seed": 49,
|
| 371 |
+
"complete_request_to_pil_seconds": 17.880304048070684,
|
| 372 |
+
"complete_request_to_png_seconds": 18.966885151108727,
|
| 373 |
+
"process_start_to_png_seconds": 164.47362234489992,
|
| 374 |
+
"peak_allocated_bytes": 50682879488,
|
| 375 |
+
"peak_reserved_bytes": 56088330240,
|
| 376 |
+
"sampled_peak_device_bytes": 57589891072,
|
| 377 |
+
"png_sha256": "4b419904f93122cdb9e610e8f77d0028d76f1e419af29abcd820a353d74c017a",
|
| 378 |
+
"finite": true,
|
| 379 |
+
"remaining_prefix_objects": 0,
|
| 380 |
+
"stream": "dedicated non-default HIP stream",
|
| 381 |
+
"alpha_min": 241,
|
| 382 |
+
"alpha_max": 255
|
| 383 |
+
}
|
| 384 |
+
]
|
| 385 |
+
},
|
| 386 |
+
"mxfp4": {
|
| 387 |
+
"gpu": "_CudaDeviceProperties(name='AMD Radeon Graphics', major=9, minor=5, gcnArchName='gfx950:sramecc+:xnack-', total_memory=294896MB, multi_processor_count=256, uuid=31303338-3666-6265-3937-343836316534, pci_bus_id=117, pci_device_id=0, pci_domain_id=0, L2_cache_size=4MB)",
|
| 388 |
+
"hip": "7.1.25424",
|
| 389 |
+
"versions": {
|
| 390 |
+
"torch": "2.10.0+rocm7.1",
|
| 391 |
+
"diffusers": "0.41.0.dev0",
|
| 392 |
+
"transformers": "5.17.0",
|
| 393 |
+
"accelerate": "1.15.0",
|
| 394 |
+
"safetensors": "0.8.0"
|
| 395 |
+
},
|
| 396 |
+
"allocator_cap_bytes": 68719476736.0,
|
| 397 |
+
"load_seconds": 10.885476334951818,
|
| 398 |
+
"sampled_peak_device_bytes": 34695282688,
|
| 399 |
+
"requests": [
|
| 400 |
+
{
|
| 401 |
+
"id": "neon-first",
|
| 402 |
+
"settings": {
|
| 403 |
+
"width": 2048,
|
| 404 |
+
"height": 2048,
|
| 405 |
+
"output_resolution": 2048,
|
| 406 |
+
"num_inference_steps": 40,
|
| 407 |
+
"true_cfg_scale": 1.0,
|
| 408 |
+
"use_kv_cache": true
|
| 409 |
+
},
|
| 410 |
+
"prompt": "A neon shop sign that reads \"QWEN IMAGE 2.1\", rainy night, reflections on wet pavement",
|
| 411 |
+
"seed": 42,
|
| 412 |
+
"complete_request_to_pil_seconds": 22.25142955291085,
|
| 413 |
+
"complete_request_to_png_seconds": 23.60134919709526,
|
| 414 |
+
"process_start_to_png_seconds": 35.76223963499069,
|
| 415 |
+
"peak_allocated_bytes": 27614016512,
|
| 416 |
+
"peak_reserved_bytes": 33197916160,
|
| 417 |
+
"sampled_peak_device_bytes": 34695282688,
|
| 418 |
+
"png_sha256": "82a23b56fe9e8e80f2616be0189e9aaa47fe1b54532c6d422dd8082ece33dcdf",
|
| 419 |
+
"finite": true,
|
| 420 |
+
"remaining_prefix_objects": 0,
|
| 421 |
+
"stream": "dedicated non-default HIP stream",
|
| 422 |
+
"alpha_min": 251,
|
| 423 |
+
"alpha_max": 255
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"id": "portrait-first",
|
| 427 |
+
"settings": {
|
| 428 |
+
"width": 2048,
|
| 429 |
+
"height": 2048,
|
| 430 |
+
"output_resolution": 2048,
|
| 431 |
+
"num_inference_steps": 40,
|
| 432 |
+
"true_cfg_scale": 1.0,
|
| 433 |
+
"use_kv_cache": true
|
| 434 |
+
},
|
| 435 |
+
"prompt": "A natural light editorial portrait of an elderly woman with silver hair and freckles, wearing a blue linen shirt, relaxed expression, soft window light, photographic detail",
|
| 436 |
+
"seed": 43,
|
| 437 |
+
"complete_request_to_pil_seconds": 20.325860454002395,
|
| 438 |
+
"complete_request_to_png_seconds": 21.515132426982746,
|
| 439 |
+
"process_start_to_png_seconds": 57.30159537517466,
|
| 440 |
+
"peak_allocated_bytes": 27614090240,
|
| 441 |
+
"peak_reserved_bytes": 33000783872,
|
| 442 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 443 |
+
"png_sha256": "dc1205eff76d557996d9186f13a41838d134e829c79cf2e7f08e19d82d28d74b",
|
| 444 |
+
"finite": true,
|
| 445 |
+
"remaining_prefix_objects": 0,
|
| 446 |
+
"stream": "dedicated non-default HIP stream",
|
| 447 |
+
"alpha_min": 249,
|
| 448 |
+
"alpha_max": 255
|
| 449 |
+
},
|
| 450 |
+
{
|
| 451 |
+
"id": "product-first",
|
| 452 |
+
"settings": {
|
| 453 |
+
"width": 2048,
|
| 454 |
+
"height": 2048,
|
| 455 |
+
"output_resolution": 2048,
|
| 456 |
+
"num_inference_steps": 40,
|
| 457 |
+
"true_cfg_scale": 1.0,
|
| 458 |
+
"use_kv_cache": true
|
| 459 |
+
},
|
| 460 |
+
"prompt": "A studio product photograph of a green ceramic teapot and a white porcelain cup on a pale wooden table, soft shadows, clean white background",
|
| 461 |
+
"seed": 44,
|
| 462 |
+
"complete_request_to_pil_seconds": 20.175694259116426,
|
| 463 |
+
"complete_request_to_png_seconds": 21.2572456211783,
|
| 464 |
+
"process_start_to_png_seconds": 78.57344847614877,
|
| 465 |
+
"peak_allocated_bytes": 27614049280,
|
| 466 |
+
"peak_reserved_bytes": 33000783872,
|
| 467 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 468 |
+
"png_sha256": "20397f382e84a3a940e3348894b26ed466afd86ce444cc4abb3369a6558539b8",
|
| 469 |
+
"finite": true,
|
| 470 |
+
"remaining_prefix_objects": 0,
|
| 471 |
+
"stream": "dedicated non-default HIP stream",
|
| 472 |
+
"alpha_min": 252,
|
| 473 |
+
"alpha_max": 255
|
| 474 |
+
},
|
| 475 |
+
{
|
| 476 |
+
"id": "animals-first",
|
| 477 |
+
"settings": {
|
| 478 |
+
"width": 2048,
|
| 479 |
+
"height": 2048,
|
| 480 |
+
"output_resolution": 2048,
|
| 481 |
+
"num_inference_steps": 40,
|
| 482 |
+
"true_cfg_scale": 1.0,
|
| 483 |
+
"use_kv_cache": true
|
| 484 |
+
},
|
| 485 |
+
"prompt": "Two red foxes sitting beside a mossy log in a misty pine forest, early morning sunlight, realistic wildlife photography",
|
| 486 |
+
"seed": 45,
|
| 487 |
+
"complete_request_to_pil_seconds": 20.112985134823248,
|
| 488 |
+
"complete_request_to_png_seconds": 21.128877939889207,
|
| 489 |
+
"process_start_to_png_seconds": 99.71564355213195,
|
| 490 |
+
"peak_allocated_bytes": 27614024704,
|
| 491 |
+
"peak_reserved_bytes": 33000783872,
|
| 492 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 493 |
+
"png_sha256": "21790e0480350ccbb9af2c10886c348be8cb76e48050e7c655484846c04d073c",
|
| 494 |
+
"finite": true,
|
| 495 |
+
"remaining_prefix_objects": 0,
|
| 496 |
+
"stream": "dedicated non-default HIP stream",
|
| 497 |
+
"alpha_min": 251,
|
| 498 |
+
"alpha_max": 255
|
| 499 |
+
},
|
| 500 |
+
{
|
| 501 |
+
"id": "spatial-first",
|
| 502 |
+
"settings": {
|
| 503 |
+
"width": 2048,
|
| 504 |
+
"height": 2048,
|
| 505 |
+
"output_resolution": 2048,
|
| 506 |
+
"num_inference_steps": 40,
|
| 507 |
+
"true_cfg_scale": 1.0,
|
| 508 |
+
"use_kv_cache": true
|
| 509 |
+
},
|
| 510 |
+
"prompt": "A red cube to the left of a blue sphere, with a small yellow cone behind them, on a white tabletop, clean three dimensional rendering",
|
| 511 |
+
"seed": 46,
|
| 512 |
+
"complete_request_to_pil_seconds": 20.26443701982498,
|
| 513 |
+
"complete_request_to_png_seconds": 21.339326082961634,
|
| 514 |
+
"process_start_to_png_seconds": 121.07087312918156,
|
| 515 |
+
"peak_allocated_bytes": 27614057472,
|
| 516 |
+
"peak_reserved_bytes": 33000783872,
|
| 517 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 518 |
+
"png_sha256": "633e7baa29d6dea36cfd9342587604f9f938ecddcab5a9252205f73d2fd505bb",
|
| 519 |
+
"finite": true,
|
| 520 |
+
"remaining_prefix_objects": 0,
|
| 521 |
+
"stream": "dedicated non-default HIP stream",
|
| 522 |
+
"alpha_min": 250,
|
| 523 |
+
"alpha_max": 255
|
| 524 |
+
},
|
| 525 |
+
{
|
| 526 |
+
"id": "illustration-first",
|
| 527 |
+
"settings": {
|
| 528 |
+
"width": 2048,
|
| 529 |
+
"height": 2048,
|
| 530 |
+
"output_resolution": 2048,
|
| 531 |
+
"num_inference_steps": 40,
|
| 532 |
+
"true_cfg_scale": 1.0,
|
| 533 |
+
"use_kv_cache": true
|
| 534 |
+
},
|
| 535 |
+
"prompt": "A watercolor illustration of a small bookshop on a quiet European street, flower boxes under the windows, a bicycle by the door, warm spring sunshine",
|
| 536 |
+
"seed": 47,
|
| 537 |
+
"complete_request_to_pil_seconds": 20.258340385043994,
|
| 538 |
+
"complete_request_to_png_seconds": 21.49400136200711,
|
| 539 |
+
"process_start_to_png_seconds": 142.58138910704292,
|
| 540 |
+
"peak_allocated_bytes": 27614073856,
|
| 541 |
+
"peak_reserved_bytes": 33000783872,
|
| 542 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 543 |
+
"png_sha256": "09cc3b43361915a4671e29570a7912fe7a4e5dd4e2bcd3ab9edb61e9e5d30843",
|
| 544 |
+
"finite": true,
|
| 545 |
+
"remaining_prefix_objects": 0,
|
| 546 |
+
"stream": "dedicated non-default HIP stream",
|
| 547 |
+
"alpha_min": 251,
|
| 548 |
+
"alpha_max": 255
|
| 549 |
+
},
|
| 550 |
+
{
|
| 551 |
+
"id": "landscape-first",
|
| 552 |
+
"settings": {
|
| 553 |
+
"width": 2048,
|
| 554 |
+
"height": 2048,
|
| 555 |
+
"output_resolution": 2048,
|
| 556 |
+
"num_inference_steps": 40,
|
| 557 |
+
"true_cfg_scale": 1.0,
|
| 558 |
+
"use_kv_cache": true
|
| 559 |
+
},
|
| 560 |
+
"prompt": "A wide landscape photograph of snowy mountains reflected in a calm alpine lake at sunrise, pink clouds, sharp rocks and wildflowers in the foreground",
|
| 561 |
+
"seed": 48,
|
| 562 |
+
"complete_request_to_pil_seconds": 20.11598986410536,
|
| 563 |
+
"complete_request_to_png_seconds": 21.223621543031186,
|
| 564 |
+
"process_start_to_png_seconds": 163.8212643500883,
|
| 565 |
+
"peak_allocated_bytes": 27614057472,
|
| 566 |
+
"peak_reserved_bytes": 33000783872,
|
| 567 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 568 |
+
"png_sha256": "a699176e93685c9412ae43cbb8dbcbc9fa43f6996995134c5002af4a490bd63e",
|
| 569 |
+
"finite": true,
|
| 570 |
+
"remaining_prefix_objects": 0,
|
| 571 |
+
"stream": "dedicated non-default HIP stream",
|
| 572 |
+
"alpha_min": 220,
|
| 573 |
+
"alpha_max": 255
|
| 574 |
+
},
|
| 575 |
+
{
|
| 576 |
+
"id": "poster-first",
|
| 577 |
+
"settings": {
|
| 578 |
+
"width": 2048,
|
| 579 |
+
"height": 2048,
|
| 580 |
+
"output_resolution": 2048,
|
| 581 |
+
"num_inference_steps": 40,
|
| 582 |
+
"true_cfg_scale": 1.0,
|
| 583 |
+
"use_kv_cache": true
|
| 584 |
+
},
|
| 585 |
+
"prompt": "A clean graphic poster with the exact headline \"FRESH COFFEE\" in large readable letters, a simple illustration of a coffee cup, cream and dark brown colors",
|
| 586 |
+
"seed": 49,
|
| 587 |
+
"complete_request_to_pil_seconds": 20.2616195990704,
|
| 588 |
+
"complete_request_to_png_seconds": 21.38441264606081,
|
| 589 |
+
"process_start_to_png_seconds": 185.22238744003698,
|
| 590 |
+
"peak_allocated_bytes": 27614098432,
|
| 591 |
+
"peak_reserved_bytes": 33000783872,
|
| 592 |
+
"sampled_peak_device_bytes": 34512830464,
|
| 593 |
+
"png_sha256": "1c49b297c04624fbe839303c1c29f71791d81633fcdfcc7d5c1002c2b84cc107",
|
| 594 |
+
"finite": true,
|
| 595 |
+
"remaining_prefix_objects": 0,
|
| 596 |
+
"stream": "dedicated non-default HIP stream",
|
| 597 |
+
"alpha_min": 248,
|
| 598 |
+
"alpha_max": 255
|
| 599 |
+
}
|
| 600 |
+
]
|
| 601 |
+
}
|
| 602 |
+
},
|
| 603 |
+
"modes": {
|
| 604 |
+
"bf16": {
|
| 605 |
+
"status": "passed_modes_and_aba",
|
| 606 |
+
"variant": "bf16",
|
| 607 |
+
"hardware": {
|
| 608 |
+
"name": "AMD Radeon Graphics",
|
| 609 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 610 |
+
"total_memory_bytes": 309220868096,
|
| 611 |
+
"free_before_load_bytes": 308606402560,
|
| 612 |
+
"torch": "2.10.0+rocm7.1",
|
| 613 |
+
"hip": "7.1.25424",
|
| 614 |
+
"memory_budget_gib": 64,
|
| 615 |
+
"packages": {
|
| 616 |
+
"diffusers": "0.41.0.dev0",
|
| 617 |
+
"transformers": "5.17.0",
|
| 618 |
+
"accelerate": "1.15.0",
|
| 619 |
+
"safetensors": "0.8.0",
|
| 620 |
+
"Pillow": "12.3.0",
|
| 621 |
+
"numpy": "2.5.2"
|
| 622 |
+
}
|
| 623 |
+
},
|
| 624 |
+
"backend": "framework",
|
| 625 |
+
"decoder_selection": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 626 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 627 |
+
"load_seconds": 13.907202264061198,
|
| 628 |
+
"measurement_scope": "Instrumented correctness run; includes tensor capture overhead; not RDNA4 performance.",
|
| 629 |
+
"requests": [
|
| 630 |
+
{
|
| 631 |
+
"id": "a0",
|
| 632 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 633 |
+
"seed": 51,
|
| 634 |
+
"mode": "text-to-image",
|
| 635 |
+
"settings": {
|
| 636 |
+
"width": 1024,
|
| 637 |
+
"height": 1024,
|
| 638 |
+
"output_resolution": 1024,
|
| 639 |
+
"num_inference_steps": 40,
|
| 640 |
+
"true_cfg_scale": 1.0,
|
| 641 |
+
"use_kv_cache": true
|
| 642 |
+
},
|
| 643 |
+
"metrics": {
|
| 644 |
+
"mode": "text-to-image",
|
| 645 |
+
"seed": 51,
|
| 646 |
+
"settings": {
|
| 647 |
+
"width": 1024,
|
| 648 |
+
"height": 1024,
|
| 649 |
+
"output_resolution": 1024,
|
| 650 |
+
"num_inference_steps": 40,
|
| 651 |
+
"true_cfg_scale": 1.0,
|
| 652 |
+
"use_kv_cache": true
|
| 653 |
+
},
|
| 654 |
+
"backend": "framework",
|
| 655 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 656 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 657 |
+
"request_index": 0,
|
| 658 |
+
"hardware": {
|
| 659 |
+
"name": "AMD Radeon Graphics",
|
| 660 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 661 |
+
"total_memory_bytes": 309220868096,
|
| 662 |
+
"free_before_load_bytes": 308606402560,
|
| 663 |
+
"torch": "2.10.0+rocm7.1",
|
| 664 |
+
"hip": "7.1.25424",
|
| 665 |
+
"memory_budget_gib": 64,
|
| 666 |
+
"packages": {
|
| 667 |
+
"diffusers": "0.41.0.dev0",
|
| 668 |
+
"transformers": "5.17.0",
|
| 669 |
+
"accelerate": "1.15.0",
|
| 670 |
+
"safetensors": "0.8.0",
|
| 671 |
+
"Pillow": "12.3.0",
|
| 672 |
+
"numpy": "2.5.2"
|
| 673 |
+
}
|
| 674 |
+
},
|
| 675 |
+
"complete_request_to_pil_seconds": 4.693666683975607,
|
| 676 |
+
"complete_request_to_png_seconds": 4.97829480515793,
|
| 677 |
+
"peak_allocated_bytes": 37080601088,
|
| 678 |
+
"peak_reserved_bytes": 39113981952,
|
| 679 |
+
"sampled_peak_device_bytes": 40108032000,
|
| 680 |
+
"sampling_interval_seconds": 0.02,
|
| 681 |
+
"stream": "dedicated non-default HIP stream",
|
| 682 |
+
"alpha_extrema": [
|
| 683 |
+
251,
|
| 684 |
+
255
|
| 685 |
+
],
|
| 686 |
+
"alpha_below_128_fraction": 0.0
|
| 687 |
+
},
|
| 688 |
+
"png_sha256": "454ad65bd3ff5b1ebf64746f08fcc3cbdeabbd6b4eff3a9fb68ea7d71a7a663e",
|
| 689 |
+
"finite": true,
|
| 690 |
+
"remaining_prefix_objects": 0,
|
| 691 |
+
"repeat_stages": {
|
| 692 |
+
"prompt": {
|
| 693 |
+
"exact": true,
|
| 694 |
+
"mae": 0.0,
|
| 695 |
+
"max_abs": 0.0
|
| 696 |
+
},
|
| 697 |
+
"vae_input": {
|
| 698 |
+
"exact": true,
|
| 699 |
+
"mae": 0.0,
|
| 700 |
+
"max_abs": 0.0
|
| 701 |
+
},
|
| 702 |
+
"vae_output": {
|
| 703 |
+
"exact": true,
|
| 704 |
+
"mae": 0.0,
|
| 705 |
+
"max_abs": 0.0
|
| 706 |
+
}
|
| 707 |
+
}
|
| 708 |
+
},
|
| 709 |
+
{
|
| 710 |
+
"id": "a1",
|
| 711 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 712 |
+
"seed": 51,
|
| 713 |
+
"mode": "text-to-image",
|
| 714 |
+
"settings": {
|
| 715 |
+
"width": 1024,
|
| 716 |
+
"height": 1024,
|
| 717 |
+
"output_resolution": 1024,
|
| 718 |
+
"num_inference_steps": 40,
|
| 719 |
+
"true_cfg_scale": 1.0,
|
| 720 |
+
"use_kv_cache": true
|
| 721 |
+
},
|
| 722 |
+
"metrics": {
|
| 723 |
+
"mode": "text-to-image",
|
| 724 |
+
"seed": 51,
|
| 725 |
+
"settings": {
|
| 726 |
+
"width": 1024,
|
| 727 |
+
"height": 1024,
|
| 728 |
+
"output_resolution": 1024,
|
| 729 |
+
"num_inference_steps": 40,
|
| 730 |
+
"true_cfg_scale": 1.0,
|
| 731 |
+
"use_kv_cache": true
|
| 732 |
+
},
|
| 733 |
+
"backend": "framework",
|
| 734 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 735 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 736 |
+
"request_index": 1,
|
| 737 |
+
"hardware": {
|
| 738 |
+
"name": "AMD Radeon Graphics",
|
| 739 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 740 |
+
"total_memory_bytes": 309220868096,
|
| 741 |
+
"free_before_load_bytes": 308606402560,
|
| 742 |
+
"torch": "2.10.0+rocm7.1",
|
| 743 |
+
"hip": "7.1.25424",
|
| 744 |
+
"memory_budget_gib": 64,
|
| 745 |
+
"packages": {
|
| 746 |
+
"diffusers": "0.41.0.dev0",
|
| 747 |
+
"transformers": "5.17.0",
|
| 748 |
+
"accelerate": "1.15.0",
|
| 749 |
+
"safetensors": "0.8.0",
|
| 750 |
+
"Pillow": "12.3.0",
|
| 751 |
+
"numpy": "2.5.2"
|
| 752 |
+
}
|
| 753 |
+
},
|
| 754 |
+
"complete_request_to_pil_seconds": 3.2533539209980518,
|
| 755 |
+
"complete_request_to_png_seconds": 3.5339247649535537,
|
| 756 |
+
"peak_allocated_bytes": 37080601088,
|
| 757 |
+
"peak_reserved_bytes": 38558236672,
|
| 758 |
+
"sampled_peak_device_bytes": 39982202880,
|
| 759 |
+
"sampling_interval_seconds": 0.02,
|
| 760 |
+
"stream": "dedicated non-default HIP stream",
|
| 761 |
+
"alpha_extrema": [
|
| 762 |
+
251,
|
| 763 |
+
255
|
| 764 |
+
],
|
| 765 |
+
"alpha_below_128_fraction": 0.0
|
| 766 |
+
},
|
| 767 |
+
"png_sha256": "985d7b12cb7e803f16e4cfc33182799cd1835384fe649107ab220a85ec6effc9",
|
| 768 |
+
"finite": true,
|
| 769 |
+
"remaining_prefix_objects": 0,
|
| 770 |
+
"repeat_stages": {
|
| 771 |
+
"prompt": {
|
| 772 |
+
"exact": true,
|
| 773 |
+
"mae": 0.0,
|
| 774 |
+
"max_abs": 0.0
|
| 775 |
+
},
|
| 776 |
+
"vae_input": {
|
| 777 |
+
"exact": true,
|
| 778 |
+
"mae": 0.0,
|
| 779 |
+
"max_abs": 0.0
|
| 780 |
+
},
|
| 781 |
+
"vae_output": {
|
| 782 |
+
"exact": false,
|
| 783 |
+
"mae": 0.00032036026823334396,
|
| 784 |
+
"max_abs": 0.03759765625
|
| 785 |
+
}
|
| 786 |
+
}
|
| 787 |
+
},
|
| 788 |
+
{
|
| 789 |
+
"id": "b_rgba",
|
| 790 |
+
"prompt": "A cute cartoon dragon sticker.",
|
| 791 |
+
"seed": 52,
|
| 792 |
+
"mode": "rgba",
|
| 793 |
+
"settings": {
|
| 794 |
+
"width": 2048,
|
| 795 |
+
"height": 2048,
|
| 796 |
+
"output_resolution": 2048,
|
| 797 |
+
"num_inference_steps": 40,
|
| 798 |
+
"true_cfg_scale": 1.0,
|
| 799 |
+
"use_kv_cache": true
|
| 800 |
+
},
|
| 801 |
+
"metrics": {
|
| 802 |
+
"mode": "rgba",
|
| 803 |
+
"seed": 52,
|
| 804 |
+
"settings": {
|
| 805 |
+
"width": 2048,
|
| 806 |
+
"height": 2048,
|
| 807 |
+
"output_resolution": 2048,
|
| 808 |
+
"num_inference_steps": 40,
|
| 809 |
+
"true_cfg_scale": 1.0,
|
| 810 |
+
"use_kv_cache": true
|
| 811 |
+
},
|
| 812 |
+
"backend": "framework",
|
| 813 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 814 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 815 |
+
"request_index": 2,
|
| 816 |
+
"hardware": {
|
| 817 |
+
"name": "AMD Radeon Graphics",
|
| 818 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 819 |
+
"total_memory_bytes": 309220868096,
|
| 820 |
+
"free_before_load_bytes": 308606402560,
|
| 821 |
+
"torch": "2.10.0+rocm7.1",
|
| 822 |
+
"hip": "7.1.25424",
|
| 823 |
+
"memory_budget_gib": 64,
|
| 824 |
+
"packages": {
|
| 825 |
+
"diffusers": "0.41.0.dev0",
|
| 826 |
+
"transformers": "5.17.0",
|
| 827 |
+
"accelerate": "1.15.0",
|
| 828 |
+
"safetensors": "0.8.0",
|
| 829 |
+
"Pillow": "12.3.0",
|
| 830 |
+
"numpy": "2.5.2"
|
| 831 |
+
}
|
| 832 |
+
},
|
| 833 |
+
"complete_request_to_pil_seconds": 17.811263096053153,
|
| 834 |
+
"complete_request_to_png_seconds": 18.627668023109436,
|
| 835 |
+
"peak_allocated_bytes": 50683703296,
|
| 836 |
+
"peak_reserved_bytes": 58787364864,
|
| 837 |
+
"sampled_peak_device_bytes": 60284731392,
|
| 838 |
+
"sampling_interval_seconds": 0.02,
|
| 839 |
+
"stream": "dedicated non-default HIP stream",
|
| 840 |
+
"alpha_extrema": [
|
| 841 |
+
0,
|
| 842 |
+
255
|
| 843 |
+
],
|
| 844 |
+
"alpha_below_128_fraction": 0.5432534217834473
|
| 845 |
+
},
|
| 846 |
+
"png_sha256": "5aa06df1783abcda6cc84ea196937dbe32978626fd356f8b6fd1b97252545727",
|
| 847 |
+
"finite": true,
|
| 848 |
+
"remaining_prefix_objects": 0
|
| 849 |
+
},
|
| 850 |
+
{
|
| 851 |
+
"id": "a2",
|
| 852 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 853 |
+
"seed": 51,
|
| 854 |
+
"mode": "text-to-image",
|
| 855 |
+
"settings": {
|
| 856 |
+
"width": 1024,
|
| 857 |
+
"height": 1024,
|
| 858 |
+
"output_resolution": 1024,
|
| 859 |
+
"num_inference_steps": 40,
|
| 860 |
+
"true_cfg_scale": 1.0,
|
| 861 |
+
"use_kv_cache": true
|
| 862 |
+
},
|
| 863 |
+
"metrics": {
|
| 864 |
+
"mode": "text-to-image",
|
| 865 |
+
"seed": 51,
|
| 866 |
+
"settings": {
|
| 867 |
+
"width": 1024,
|
| 868 |
+
"height": 1024,
|
| 869 |
+
"output_resolution": 1024,
|
| 870 |
+
"num_inference_steps": 40,
|
| 871 |
+
"true_cfg_scale": 1.0,
|
| 872 |
+
"use_kv_cache": true
|
| 873 |
+
},
|
| 874 |
+
"backend": "framework",
|
| 875 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 876 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 877 |
+
"request_index": 3,
|
| 878 |
+
"hardware": {
|
| 879 |
+
"name": "AMD Radeon Graphics",
|
| 880 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 881 |
+
"total_memory_bytes": 309220868096,
|
| 882 |
+
"free_before_load_bytes": 308606402560,
|
| 883 |
+
"torch": "2.10.0+rocm7.1",
|
| 884 |
+
"hip": "7.1.25424",
|
| 885 |
+
"memory_budget_gib": 64,
|
| 886 |
+
"packages": {
|
| 887 |
+
"diffusers": "0.41.0.dev0",
|
| 888 |
+
"transformers": "5.17.0",
|
| 889 |
+
"accelerate": "1.15.0",
|
| 890 |
+
"safetensors": "0.8.0",
|
| 891 |
+
"Pillow": "12.3.0",
|
| 892 |
+
"numpy": "2.5.2"
|
| 893 |
+
}
|
| 894 |
+
},
|
| 895 |
+
"complete_request_to_pil_seconds": 3.250392859103158,
|
| 896 |
+
"complete_request_to_png_seconds": 3.529084383044392,
|
| 897 |
+
"peak_allocated_bytes": 37080601088,
|
| 898 |
+
"peak_reserved_bytes": 40758149120,
|
| 899 |
+
"sampled_peak_device_bytes": 42255515648,
|
| 900 |
+
"sampling_interval_seconds": 0.02,
|
| 901 |
+
"stream": "dedicated non-default HIP stream",
|
| 902 |
+
"alpha_extrema": [
|
| 903 |
+
251,
|
| 904 |
+
255
|
| 905 |
+
],
|
| 906 |
+
"alpha_below_128_fraction": 0.0
|
| 907 |
+
},
|
| 908 |
+
"png_sha256": "8d523c042a727f408d78ade2ba41d941ba49b8f787b56288eaa4cb578917148d",
|
| 909 |
+
"finite": true,
|
| 910 |
+
"remaining_prefix_objects": 0,
|
| 911 |
+
"repeat_stages": {
|
| 912 |
+
"prompt": {
|
| 913 |
+
"exact": true,
|
| 914 |
+
"mae": 0.0,
|
| 915 |
+
"max_abs": 0.0
|
| 916 |
+
},
|
| 917 |
+
"vae_input": {
|
| 918 |
+
"exact": true,
|
| 919 |
+
"mae": 0.0,
|
| 920 |
+
"max_abs": 0.0
|
| 921 |
+
},
|
| 922 |
+
"vae_output": {
|
| 923 |
+
"exact": false,
|
| 924 |
+
"mae": 0.00031989446142688394,
|
| 925 |
+
"max_abs": 0.0255126953125
|
| 926 |
+
}
|
| 927 |
+
}
|
| 928 |
+
},
|
| 929 |
+
{
|
| 930 |
+
"id": "b_edit",
|
| 931 |
+
"prompt": "Change the green teapot to bright red. Keep the table and composition.",
|
| 932 |
+
"seed": 53,
|
| 933 |
+
"mode": "edit",
|
| 934 |
+
"settings": {
|
| 935 |
+
"width": 1024,
|
| 936 |
+
"height": 1024,
|
| 937 |
+
"output_resolution": 1024,
|
| 938 |
+
"num_inference_steps": 40,
|
| 939 |
+
"true_cfg_scale": 1.0,
|
| 940 |
+
"use_kv_cache": true
|
| 941 |
+
},
|
| 942 |
+
"metrics": {
|
| 943 |
+
"mode": "edit",
|
| 944 |
+
"seed": 53,
|
| 945 |
+
"settings": {
|
| 946 |
+
"width": 1024,
|
| 947 |
+
"height": 1024,
|
| 948 |
+
"output_resolution": 1024,
|
| 949 |
+
"num_inference_steps": 40,
|
| 950 |
+
"true_cfg_scale": 1.0,
|
| 951 |
+
"use_kv_cache": true
|
| 952 |
+
},
|
| 953 |
+
"backend": "framework",
|
| 954 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 955 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 956 |
+
"request_index": 4,
|
| 957 |
+
"hardware": {
|
| 958 |
+
"name": "AMD Radeon Graphics",
|
| 959 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 960 |
+
"total_memory_bytes": 309220868096,
|
| 961 |
+
"free_before_load_bytes": 308606402560,
|
| 962 |
+
"torch": "2.10.0+rocm7.1",
|
| 963 |
+
"hip": "7.1.25424",
|
| 964 |
+
"memory_budget_gib": 64,
|
| 965 |
+
"packages": {
|
| 966 |
+
"diffusers": "0.41.0.dev0",
|
| 967 |
+
"transformers": "5.17.0",
|
| 968 |
+
"accelerate": "1.15.0",
|
| 969 |
+
"safetensors": "0.8.0",
|
| 970 |
+
"Pillow": "12.3.0",
|
| 971 |
+
"numpy": "2.5.2"
|
| 972 |
+
}
|
| 973 |
+
},
|
| 974 |
+
"complete_request_to_pil_seconds": 4.31180297001265,
|
| 975 |
+
"complete_request_to_png_seconds": 4.585201286943629,
|
| 976 |
+
"peak_allocated_bytes": 37090899968,
|
| 977 |
+
"peak_reserved_bytes": 42129686528,
|
| 978 |
+
"sampled_peak_device_bytes": 43675287552,
|
| 979 |
+
"sampling_interval_seconds": 0.02,
|
| 980 |
+
"stream": "dedicated non-default HIP stream",
|
| 981 |
+
"alpha_extrema": [
|
| 982 |
+
251,
|
| 983 |
+
255
|
| 984 |
+
],
|
| 985 |
+
"alpha_below_128_fraction": 0.0
|
| 986 |
+
},
|
| 987 |
+
"png_sha256": "07451384028488629b3f5fe9acede39a7e849e64b7e2f82246774c7e3263ca18",
|
| 988 |
+
"finite": true,
|
| 989 |
+
"remaining_prefix_objects": 0
|
| 990 |
+
},
|
| 991 |
+
{
|
| 992 |
+
"id": "a3",
|
| 993 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 994 |
+
"seed": 51,
|
| 995 |
+
"mode": "text-to-image",
|
| 996 |
+
"settings": {
|
| 997 |
+
"width": 1024,
|
| 998 |
+
"height": 1024,
|
| 999 |
+
"output_resolution": 1024,
|
| 1000 |
+
"num_inference_steps": 40,
|
| 1001 |
+
"true_cfg_scale": 1.0,
|
| 1002 |
+
"use_kv_cache": true
|
| 1003 |
+
},
|
| 1004 |
+
"metrics": {
|
| 1005 |
+
"mode": "text-to-image",
|
| 1006 |
+
"seed": 51,
|
| 1007 |
+
"settings": {
|
| 1008 |
+
"width": 1024,
|
| 1009 |
+
"height": 1024,
|
| 1010 |
+
"output_resolution": 1024,
|
| 1011 |
+
"num_inference_steps": 40,
|
| 1012 |
+
"true_cfg_scale": 1.0,
|
| 1013 |
+
"use_kv_cache": true
|
| 1014 |
+
},
|
| 1015 |
+
"backend": "framework",
|
| 1016 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1017 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1018 |
+
"request_index": 5,
|
| 1019 |
+
"hardware": {
|
| 1020 |
+
"name": "AMD Radeon Graphics",
|
| 1021 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1022 |
+
"total_memory_bytes": 309220868096,
|
| 1023 |
+
"free_before_load_bytes": 308606402560,
|
| 1024 |
+
"torch": "2.10.0+rocm7.1",
|
| 1025 |
+
"hip": "7.1.25424",
|
| 1026 |
+
"memory_budget_gib": 64,
|
| 1027 |
+
"packages": {
|
| 1028 |
+
"diffusers": "0.41.0.dev0",
|
| 1029 |
+
"transformers": "5.17.0",
|
| 1030 |
+
"accelerate": "1.15.0",
|
| 1031 |
+
"safetensors": "0.8.0",
|
| 1032 |
+
"Pillow": "12.3.0",
|
| 1033 |
+
"numpy": "2.5.2"
|
| 1034 |
+
}
|
| 1035 |
+
},
|
| 1036 |
+
"complete_request_to_pil_seconds": 3.2640902339480817,
|
| 1037 |
+
"complete_request_to_png_seconds": 3.5425091159995645,
|
| 1038 |
+
"peak_allocated_bytes": 37080601600,
|
| 1039 |
+
"peak_reserved_bytes": 42144366592,
|
| 1040 |
+
"sampled_peak_device_bytes": 43689967616,
|
| 1041 |
+
"sampling_interval_seconds": 0.02,
|
| 1042 |
+
"stream": "dedicated non-default HIP stream",
|
| 1043 |
+
"alpha_extrema": [
|
| 1044 |
+
251,
|
| 1045 |
+
255
|
| 1046 |
+
],
|
| 1047 |
+
"alpha_below_128_fraction": 0.0
|
| 1048 |
+
},
|
| 1049 |
+
"png_sha256": "d87d03359999a20df26a710c93dcbef9330a884cf8796654b063337c7350ef87",
|
| 1050 |
+
"finite": true,
|
| 1051 |
+
"remaining_prefix_objects": 0,
|
| 1052 |
+
"repeat_stages": {
|
| 1053 |
+
"prompt": {
|
| 1054 |
+
"exact": true,
|
| 1055 |
+
"mae": 0.0,
|
| 1056 |
+
"max_abs": 0.0
|
| 1057 |
+
},
|
| 1058 |
+
"vae_input": {
|
| 1059 |
+
"exact": true,
|
| 1060 |
+
"mae": 0.0,
|
| 1061 |
+
"max_abs": 0.0
|
| 1062 |
+
},
|
| 1063 |
+
"vae_output": {
|
| 1064 |
+
"exact": false,
|
| 1065 |
+
"mae": 0.00031883540214039385,
|
| 1066 |
+
"max_abs": 0.0281982421875
|
| 1067 |
+
}
|
| 1068 |
+
}
|
| 1069 |
+
}
|
| 1070 |
+
]
|
| 1071 |
+
},
|
| 1072 |
+
"mxfp4": {
|
| 1073 |
+
"status": "passed_modes_and_aba",
|
| 1074 |
+
"variant": "mxfp4",
|
| 1075 |
+
"hardware": {
|
| 1076 |
+
"name": "AMD Radeon Graphics",
|
| 1077 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1078 |
+
"total_memory_bytes": 309220868096,
|
| 1079 |
+
"free_before_load_bytes": 308606402560,
|
| 1080 |
+
"torch": "2.10.0+rocm7.1",
|
| 1081 |
+
"hip": "7.1.25424",
|
| 1082 |
+
"memory_budget_gib": 64,
|
| 1083 |
+
"packages": {
|
| 1084 |
+
"diffusers": "0.41.0.dev0",
|
| 1085 |
+
"transformers": "5.17.0",
|
| 1086 |
+
"accelerate": "1.15.0",
|
| 1087 |
+
"safetensors": "0.8.0",
|
| 1088 |
+
"Pillow": "12.3.0",
|
| 1089 |
+
"numpy": "2.5.2"
|
| 1090 |
+
}
|
| 1091 |
+
},
|
| 1092 |
+
"backend": "framework",
|
| 1093 |
+
"decoder_selection": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1094 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1095 |
+
"load_seconds": 9.338267172919586,
|
| 1096 |
+
"measurement_scope": "Instrumented correctness run; includes tensor capture overhead; not RDNA4 performance.",
|
| 1097 |
+
"requests": [
|
| 1098 |
+
{
|
| 1099 |
+
"id": "a0",
|
| 1100 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 1101 |
+
"seed": 51,
|
| 1102 |
+
"mode": "text-to-image",
|
| 1103 |
+
"settings": {
|
| 1104 |
+
"width": 1024,
|
| 1105 |
+
"height": 1024,
|
| 1106 |
+
"output_resolution": 1024,
|
| 1107 |
+
"num_inference_steps": 40,
|
| 1108 |
+
"true_cfg_scale": 1.0,
|
| 1109 |
+
"use_kv_cache": true
|
| 1110 |
+
},
|
| 1111 |
+
"metrics": {
|
| 1112 |
+
"mode": "text-to-image",
|
| 1113 |
+
"seed": 51,
|
| 1114 |
+
"settings": {
|
| 1115 |
+
"width": 1024,
|
| 1116 |
+
"height": 1024,
|
| 1117 |
+
"output_resolution": 1024,
|
| 1118 |
+
"num_inference_steps": 40,
|
| 1119 |
+
"true_cfg_scale": 1.0,
|
| 1120 |
+
"use_kv_cache": true
|
| 1121 |
+
},
|
| 1122 |
+
"backend": "framework",
|
| 1123 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1124 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1125 |
+
"request_index": 0,
|
| 1126 |
+
"hardware": {
|
| 1127 |
+
"name": "AMD Radeon Graphics",
|
| 1128 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1129 |
+
"total_memory_bytes": 309220868096,
|
| 1130 |
+
"free_before_load_bytes": 308606402560,
|
| 1131 |
+
"torch": "2.10.0+rocm7.1",
|
| 1132 |
+
"hip": "7.1.25424",
|
| 1133 |
+
"memory_budget_gib": 64,
|
| 1134 |
+
"packages": {
|
| 1135 |
+
"diffusers": "0.41.0.dev0",
|
| 1136 |
+
"transformers": "5.17.0",
|
| 1137 |
+
"accelerate": "1.15.0",
|
| 1138 |
+
"safetensors": "0.8.0",
|
| 1139 |
+
"Pillow": "12.3.0",
|
| 1140 |
+
"numpy": "2.5.2"
|
| 1141 |
+
}
|
| 1142 |
+
},
|
| 1143 |
+
"complete_request_to_pil_seconds": 7.320612062932923,
|
| 1144 |
+
"complete_request_to_png_seconds": 7.599831799045205,
|
| 1145 |
+
"peak_allocated_bytes": 17576388096,
|
| 1146 |
+
"peak_reserved_bytes": 18832424960,
|
| 1147 |
+
"sampled_peak_device_bytes": 20371734528,
|
| 1148 |
+
"sampling_interval_seconds": 0.02,
|
| 1149 |
+
"stream": "dedicated non-default HIP stream",
|
| 1150 |
+
"alpha_extrema": [
|
| 1151 |
+
251,
|
| 1152 |
+
255
|
| 1153 |
+
],
|
| 1154 |
+
"alpha_below_128_fraction": 0.0
|
| 1155 |
+
},
|
| 1156 |
+
"png_sha256": "ae287fd92d587cc28b0394e2ed434b0f3d8685da082dd5398dfadeedd9506b7a",
|
| 1157 |
+
"finite": true,
|
| 1158 |
+
"remaining_prefix_objects": 0,
|
| 1159 |
+
"repeat_stages": {
|
| 1160 |
+
"prompt": {
|
| 1161 |
+
"exact": true,
|
| 1162 |
+
"mae": 0.0,
|
| 1163 |
+
"max_abs": 0.0
|
| 1164 |
+
},
|
| 1165 |
+
"vae_input": {
|
| 1166 |
+
"exact": true,
|
| 1167 |
+
"mae": 0.0,
|
| 1168 |
+
"max_abs": 0.0
|
| 1169 |
+
},
|
| 1170 |
+
"vae_output": {
|
| 1171 |
+
"exact": true,
|
| 1172 |
+
"mae": 0.0,
|
| 1173 |
+
"max_abs": 0.0
|
| 1174 |
+
}
|
| 1175 |
+
}
|
| 1176 |
+
},
|
| 1177 |
+
{
|
| 1178 |
+
"id": "a1",
|
| 1179 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 1180 |
+
"seed": 51,
|
| 1181 |
+
"mode": "text-to-image",
|
| 1182 |
+
"settings": {
|
| 1183 |
+
"width": 1024,
|
| 1184 |
+
"height": 1024,
|
| 1185 |
+
"output_resolution": 1024,
|
| 1186 |
+
"num_inference_steps": 40,
|
| 1187 |
+
"true_cfg_scale": 1.0,
|
| 1188 |
+
"use_kv_cache": true
|
| 1189 |
+
},
|
| 1190 |
+
"metrics": {
|
| 1191 |
+
"mode": "text-to-image",
|
| 1192 |
+
"seed": 51,
|
| 1193 |
+
"settings": {
|
| 1194 |
+
"width": 1024,
|
| 1195 |
+
"height": 1024,
|
| 1196 |
+
"output_resolution": 1024,
|
| 1197 |
+
"num_inference_steps": 40,
|
| 1198 |
+
"true_cfg_scale": 1.0,
|
| 1199 |
+
"use_kv_cache": true
|
| 1200 |
+
},
|
| 1201 |
+
"backend": "framework",
|
| 1202 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1203 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1204 |
+
"request_index": 1,
|
| 1205 |
+
"hardware": {
|
| 1206 |
+
"name": "AMD Radeon Graphics",
|
| 1207 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1208 |
+
"total_memory_bytes": 309220868096,
|
| 1209 |
+
"free_before_load_bytes": 308606402560,
|
| 1210 |
+
"torch": "2.10.0+rocm7.1",
|
| 1211 |
+
"hip": "7.1.25424",
|
| 1212 |
+
"memory_budget_gib": 64,
|
| 1213 |
+
"packages": {
|
| 1214 |
+
"diffusers": "0.41.0.dev0",
|
| 1215 |
+
"transformers": "5.17.0",
|
| 1216 |
+
"accelerate": "1.15.0",
|
| 1217 |
+
"safetensors": "0.8.0",
|
| 1218 |
+
"Pillow": "12.3.0",
|
| 1219 |
+
"numpy": "2.5.2"
|
| 1220 |
+
}
|
| 1221 |
+
},
|
| 1222 |
+
"complete_request_to_pil_seconds": 5.889198625925928,
|
| 1223 |
+
"complete_request_to_png_seconds": 6.165526184020564,
|
| 1224 |
+
"peak_allocated_bytes": 17581107712,
|
| 1225 |
+
"peak_reserved_bytes": 19235078144,
|
| 1226 |
+
"sampled_peak_device_bytes": 20669530112,
|
| 1227 |
+
"sampling_interval_seconds": 0.02,
|
| 1228 |
+
"stream": "dedicated non-default HIP stream",
|
| 1229 |
+
"alpha_extrema": [
|
| 1230 |
+
250,
|
| 1231 |
+
255
|
| 1232 |
+
],
|
| 1233 |
+
"alpha_below_128_fraction": 0.0
|
| 1234 |
+
},
|
| 1235 |
+
"png_sha256": "d457f60daf90fdb1fa2dc5d39f8dfaf44556c1ba3c24689bc0567440ab6c7dc7",
|
| 1236 |
+
"finite": true,
|
| 1237 |
+
"remaining_prefix_objects": 0,
|
| 1238 |
+
"repeat_stages": {
|
| 1239 |
+
"prompt": {
|
| 1240 |
+
"exact": true,
|
| 1241 |
+
"mae": 0.0,
|
| 1242 |
+
"max_abs": 0.0
|
| 1243 |
+
},
|
| 1244 |
+
"vae_input": {
|
| 1245 |
+
"exact": true,
|
| 1246 |
+
"mae": 0.0,
|
| 1247 |
+
"max_abs": 0.0
|
| 1248 |
+
},
|
| 1249 |
+
"vae_output": {
|
| 1250 |
+
"exact": false,
|
| 1251 |
+
"mae": 0.0003149415133520961,
|
| 1252 |
+
"max_abs": 0.0205078125
|
| 1253 |
+
}
|
| 1254 |
+
}
|
| 1255 |
+
},
|
| 1256 |
+
{
|
| 1257 |
+
"id": "b_rgba",
|
| 1258 |
+
"prompt": "A cute cartoon dragon sticker.",
|
| 1259 |
+
"seed": 52,
|
| 1260 |
+
"mode": "rgba",
|
| 1261 |
+
"settings": {
|
| 1262 |
+
"width": 2048,
|
| 1263 |
+
"height": 2048,
|
| 1264 |
+
"output_resolution": 2048,
|
| 1265 |
+
"num_inference_steps": 40,
|
| 1266 |
+
"true_cfg_scale": 1.0,
|
| 1267 |
+
"use_kv_cache": true
|
| 1268 |
+
},
|
| 1269 |
+
"metrics": {
|
| 1270 |
+
"mode": "rgba",
|
| 1271 |
+
"seed": 52,
|
| 1272 |
+
"settings": {
|
| 1273 |
+
"width": 2048,
|
| 1274 |
+
"height": 2048,
|
| 1275 |
+
"output_resolution": 2048,
|
| 1276 |
+
"num_inference_steps": 40,
|
| 1277 |
+
"true_cfg_scale": 1.0,
|
| 1278 |
+
"use_kv_cache": true
|
| 1279 |
+
},
|
| 1280 |
+
"backend": "framework",
|
| 1281 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1282 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1283 |
+
"request_index": 2,
|
| 1284 |
+
"hardware": {
|
| 1285 |
+
"name": "AMD Radeon Graphics",
|
| 1286 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1287 |
+
"total_memory_bytes": 309220868096,
|
| 1288 |
+
"free_before_load_bytes": 308606402560,
|
| 1289 |
+
"torch": "2.10.0+rocm7.1",
|
| 1290 |
+
"hip": "7.1.25424",
|
| 1291 |
+
"memory_budget_gib": 64,
|
| 1292 |
+
"packages": {
|
| 1293 |
+
"diffusers": "0.41.0.dev0",
|
| 1294 |
+
"transformers": "5.17.0",
|
| 1295 |
+
"accelerate": "1.15.0",
|
| 1296 |
+
"safetensors": "0.8.0",
|
| 1297 |
+
"Pillow": "12.3.0",
|
| 1298 |
+
"numpy": "2.5.2"
|
| 1299 |
+
}
|
| 1300 |
+
},
|
| 1301 |
+
"complete_request_to_pil_seconds": 20.248595360899344,
|
| 1302 |
+
"complete_request_to_png_seconds": 21.18608776293695,
|
| 1303 |
+
"peak_allocated_bytes": 27614791168,
|
| 1304 |
+
"peak_reserved_bytes": 35632709632,
|
| 1305 |
+
"sampled_peak_device_bytes": 37140561920,
|
| 1306 |
+
"sampling_interval_seconds": 0.02,
|
| 1307 |
+
"stream": "dedicated non-default HIP stream",
|
| 1308 |
+
"alpha_extrema": [
|
| 1309 |
+
0,
|
| 1310 |
+
255
|
| 1311 |
+
],
|
| 1312 |
+
"alpha_below_128_fraction": 0.5232586860656738
|
| 1313 |
+
},
|
| 1314 |
+
"png_sha256": "995ad9e69d803bd5fe56a21ed33627e1aab28ef3653c7f6ec4bb3dbb14379804",
|
| 1315 |
+
"finite": true,
|
| 1316 |
+
"remaining_prefix_objects": 0
|
| 1317 |
+
},
|
| 1318 |
+
{
|
| 1319 |
+
"id": "a2",
|
| 1320 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 1321 |
+
"seed": 51,
|
| 1322 |
+
"mode": "text-to-image",
|
| 1323 |
+
"settings": {
|
| 1324 |
+
"width": 1024,
|
| 1325 |
+
"height": 1024,
|
| 1326 |
+
"output_resolution": 1024,
|
| 1327 |
+
"num_inference_steps": 40,
|
| 1328 |
+
"true_cfg_scale": 1.0,
|
| 1329 |
+
"use_kv_cache": true
|
| 1330 |
+
},
|
| 1331 |
+
"metrics": {
|
| 1332 |
+
"mode": "text-to-image",
|
| 1333 |
+
"seed": 51,
|
| 1334 |
+
"settings": {
|
| 1335 |
+
"width": 1024,
|
| 1336 |
+
"height": 1024,
|
| 1337 |
+
"output_resolution": 1024,
|
| 1338 |
+
"num_inference_steps": 40,
|
| 1339 |
+
"true_cfg_scale": 1.0,
|
| 1340 |
+
"use_kv_cache": true
|
| 1341 |
+
},
|
| 1342 |
+
"backend": "framework",
|
| 1343 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1344 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1345 |
+
"request_index": 3,
|
| 1346 |
+
"hardware": {
|
| 1347 |
+
"name": "AMD Radeon Graphics",
|
| 1348 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1349 |
+
"total_memory_bytes": 309220868096,
|
| 1350 |
+
"free_before_load_bytes": 308606402560,
|
| 1351 |
+
"torch": "2.10.0+rocm7.1",
|
| 1352 |
+
"hip": "7.1.25424",
|
| 1353 |
+
"memory_budget_gib": 64,
|
| 1354 |
+
"packages": {
|
| 1355 |
+
"diffusers": "0.41.0.dev0",
|
| 1356 |
+
"transformers": "5.17.0",
|
| 1357 |
+
"accelerate": "1.15.0",
|
| 1358 |
+
"safetensors": "0.8.0",
|
| 1359 |
+
"Pillow": "12.3.0",
|
| 1360 |
+
"numpy": "2.5.2"
|
| 1361 |
+
}
|
| 1362 |
+
},
|
| 1363 |
+
"complete_request_to_pil_seconds": 5.926888470072299,
|
| 1364 |
+
"complete_request_to_png_seconds": 6.2028056990820915,
|
| 1365 |
+
"peak_allocated_bytes": 17580583424,
|
| 1366 |
+
"peak_reserved_bytes": 22655533056,
|
| 1367 |
+
"sampled_peak_device_bytes": 24163385344,
|
| 1368 |
+
"sampling_interval_seconds": 0.02,
|
| 1369 |
+
"stream": "dedicated non-default HIP stream",
|
| 1370 |
+
"alpha_extrema": [
|
| 1371 |
+
250,
|
| 1372 |
+
255
|
| 1373 |
+
],
|
| 1374 |
+
"alpha_below_128_fraction": 0.0
|
| 1375 |
+
},
|
| 1376 |
+
"png_sha256": "1a757e0d0c82a2dd9d1e5dc16c1b70dc400d33b3f9e0167778682fe10f54a8c8",
|
| 1377 |
+
"finite": true,
|
| 1378 |
+
"remaining_prefix_objects": 0,
|
| 1379 |
+
"repeat_stages": {
|
| 1380 |
+
"prompt": {
|
| 1381 |
+
"exact": true,
|
| 1382 |
+
"mae": 0.0,
|
| 1383 |
+
"max_abs": 0.0
|
| 1384 |
+
},
|
| 1385 |
+
"vae_input": {
|
| 1386 |
+
"exact": true,
|
| 1387 |
+
"mae": 0.0,
|
| 1388 |
+
"max_abs": 0.0
|
| 1389 |
+
},
|
| 1390 |
+
"vae_output": {
|
| 1391 |
+
"exact": false,
|
| 1392 |
+
"mae": 0.0003153072320856154,
|
| 1393 |
+
"max_abs": 0.02734375
|
| 1394 |
+
}
|
| 1395 |
+
}
|
| 1396 |
+
},
|
| 1397 |
+
{
|
| 1398 |
+
"id": "b_edit",
|
| 1399 |
+
"prompt": "Change the green teapot to bright red. Keep the table and composition.",
|
| 1400 |
+
"seed": 53,
|
| 1401 |
+
"mode": "edit",
|
| 1402 |
+
"settings": {
|
| 1403 |
+
"width": 1024,
|
| 1404 |
+
"height": 1024,
|
| 1405 |
+
"output_resolution": 1024,
|
| 1406 |
+
"num_inference_steps": 40,
|
| 1407 |
+
"true_cfg_scale": 1.0,
|
| 1408 |
+
"use_kv_cache": true
|
| 1409 |
+
},
|
| 1410 |
+
"metrics": {
|
| 1411 |
+
"mode": "edit",
|
| 1412 |
+
"seed": 53,
|
| 1413 |
+
"settings": {
|
| 1414 |
+
"width": 1024,
|
| 1415 |
+
"height": 1024,
|
| 1416 |
+
"output_resolution": 1024,
|
| 1417 |
+
"num_inference_steps": 40,
|
| 1418 |
+
"true_cfg_scale": 1.0,
|
| 1419 |
+
"use_kv_cache": true
|
| 1420 |
+
},
|
| 1421 |
+
"backend": "framework",
|
| 1422 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1423 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1424 |
+
"request_index": 4,
|
| 1425 |
+
"hardware": {
|
| 1426 |
+
"name": "AMD Radeon Graphics",
|
| 1427 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1428 |
+
"total_memory_bytes": 309220868096,
|
| 1429 |
+
"free_before_load_bytes": 308606402560,
|
| 1430 |
+
"torch": "2.10.0+rocm7.1",
|
| 1431 |
+
"hip": "7.1.25424",
|
| 1432 |
+
"memory_budget_gib": 64,
|
| 1433 |
+
"packages": {
|
| 1434 |
+
"diffusers": "0.41.0.dev0",
|
| 1435 |
+
"transformers": "5.17.0",
|
| 1436 |
+
"accelerate": "1.15.0",
|
| 1437 |
+
"safetensors": "0.8.0",
|
| 1438 |
+
"Pillow": "12.3.0",
|
| 1439 |
+
"numpy": "2.5.2"
|
| 1440 |
+
}
|
| 1441 |
+
},
|
| 1442 |
+
"complete_request_to_pil_seconds": 7.006421661935747,
|
| 1443 |
+
"complete_request_to_png_seconds": 7.279804246034473,
|
| 1444 |
+
"peak_allocated_bytes": 18072499712,
|
| 1445 |
+
"peak_reserved_bytes": 22655533056,
|
| 1446 |
+
"sampled_peak_device_bytes": 24192745472,
|
| 1447 |
+
"sampling_interval_seconds": 0.02,
|
| 1448 |
+
"stream": "dedicated non-default HIP stream",
|
| 1449 |
+
"alpha_extrema": [
|
| 1450 |
+
251,
|
| 1451 |
+
255
|
| 1452 |
+
],
|
| 1453 |
+
"alpha_below_128_fraction": 0.0
|
| 1454 |
+
},
|
| 1455 |
+
"png_sha256": "3f41257d712dc31042f7d4b97c8973e05e5eb58802e83654d021ac16ccd11551",
|
| 1456 |
+
"finite": true,
|
| 1457 |
+
"remaining_prefix_objects": 0
|
| 1458 |
+
},
|
| 1459 |
+
{
|
| 1460 |
+
"id": "a3",
|
| 1461 |
+
"prompt": "A blue ceramic teapot on a wooden table, soft daylight, studio photograph",
|
| 1462 |
+
"seed": 51,
|
| 1463 |
+
"mode": "text-to-image",
|
| 1464 |
+
"settings": {
|
| 1465 |
+
"width": 1024,
|
| 1466 |
+
"height": 1024,
|
| 1467 |
+
"output_resolution": 1024,
|
| 1468 |
+
"num_inference_steps": 40,
|
| 1469 |
+
"true_cfg_scale": 1.0,
|
| 1470 |
+
"use_kv_cache": true
|
| 1471 |
+
},
|
| 1472 |
+
"metrics": {
|
| 1473 |
+
"mode": "text-to-image",
|
| 1474 |
+
"seed": 51,
|
| 1475 |
+
"settings": {
|
| 1476 |
+
"width": 1024,
|
| 1477 |
+
"height": 1024,
|
| 1478 |
+
"output_resolution": 1024,
|
| 1479 |
+
"num_inference_steps": 40,
|
| 1480 |
+
"true_cfg_scale": 1.0,
|
| 1481 |
+
"use_kv_cache": true
|
| 1482 |
+
},
|
| 1483 |
+
"backend": "framework",
|
| 1484 |
+
"decoder_selection_reason": "Framework decoder selected for gfx950:sramecc+:xnack-",
|
| 1485 |
+
"checkpoint_sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89",
|
| 1486 |
+
"request_index": 5,
|
| 1487 |
+
"hardware": {
|
| 1488 |
+
"name": "AMD Radeon Graphics",
|
| 1489 |
+
"architecture": "gfx950:sramecc+:xnack-",
|
| 1490 |
+
"total_memory_bytes": 309220868096,
|
| 1491 |
+
"free_before_load_bytes": 308606402560,
|
| 1492 |
+
"torch": "2.10.0+rocm7.1",
|
| 1493 |
+
"hip": "7.1.25424",
|
| 1494 |
+
"memory_budget_gib": 64,
|
| 1495 |
+
"packages": {
|
| 1496 |
+
"diffusers": "0.41.0.dev0",
|
| 1497 |
+
"transformers": "5.17.0",
|
| 1498 |
+
"accelerate": "1.15.0",
|
| 1499 |
+
"safetensors": "0.8.0",
|
| 1500 |
+
"Pillow": "12.3.0",
|
| 1501 |
+
"numpy": "2.5.2"
|
| 1502 |
+
}
|
| 1503 |
+
},
|
| 1504 |
+
"complete_request_to_pil_seconds": 5.92270573717542,
|
| 1505 |
+
"complete_request_to_png_seconds": 6.197468650061637,
|
| 1506 |
+
"peak_allocated_bytes": 17580583936,
|
| 1507 |
+
"peak_reserved_bytes": 26256343040,
|
| 1508 |
+
"sampled_peak_device_bytes": 27812429824,
|
| 1509 |
+
"sampling_interval_seconds": 0.02,
|
| 1510 |
+
"stream": "dedicated non-default HIP stream",
|
| 1511 |
+
"alpha_extrema": [
|
| 1512 |
+
251,
|
| 1513 |
+
255
|
| 1514 |
+
],
|
| 1515 |
+
"alpha_below_128_fraction": 0.0
|
| 1516 |
+
},
|
| 1517 |
+
"png_sha256": "85024c2a155d1dfcaa6c26a1102c0a35ce77e953ad5f22c922c6b4ab45d822a5",
|
| 1518 |
+
"finite": true,
|
| 1519 |
+
"remaining_prefix_objects": 0,
|
| 1520 |
+
"repeat_stages": {
|
| 1521 |
+
"prompt": {
|
| 1522 |
+
"exact": true,
|
| 1523 |
+
"mae": 0.0,
|
| 1524 |
+
"max_abs": 0.0
|
| 1525 |
+
},
|
| 1526 |
+
"vae_input": {
|
| 1527 |
+
"exact": true,
|
| 1528 |
+
"mae": 0.0,
|
| 1529 |
+
"max_abs": 0.0
|
| 1530 |
+
},
|
| 1531 |
+
"vae_output": {
|
| 1532 |
+
"exact": false,
|
| 1533 |
+
"mae": 0.0003153429424855858,
|
| 1534 |
+
"max_abs": 0.0263671875
|
| 1535 |
+
}
|
| 1536 |
+
}
|
| 1537 |
+
}
|
| 1538 |
+
]
|
| 1539 |
+
}
|
| 1540 |
+
},
|
| 1541 |
+
"r9700_tested": false,
|
| 1542 |
+
"memory_note": "Two 30 GiB capped framework attempts failed in VAE decoding. Successful paired correctness runs used a 64 GiB framework allocator cap; no offload or tiling. MI355 results do not establish R9700 performance or memory use."
|
| 1543 |
+
}
|
evaluation/numerical.json
ADDED
|
@@ -0,0 +1,681 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"status": "completed_numerical_and_repeatability_audit",
|
| 3 |
+
"pairs": [
|
| 4 |
+
{
|
| 5 |
+
"id": "animals-first",
|
| 6 |
+
"stages": {
|
| 7 |
+
"denoiser_step_1": {
|
| 8 |
+
"shape": [
|
| 9 |
+
1,
|
| 10 |
+
16416,
|
| 11 |
+
64
|
| 12 |
+
],
|
| 13 |
+
"relative_l2": 0.09634638299283074,
|
| 14 |
+
"cosine": 0.9953644603283305,
|
| 15 |
+
"mean_abs": 0.11408292056420158,
|
| 16 |
+
"max_abs": 1.943359375
|
| 17 |
+
},
|
| 18 |
+
"denoiser_step_20": {
|
| 19 |
+
"shape": [
|
| 20 |
+
1,
|
| 21 |
+
16384,
|
| 22 |
+
64
|
| 23 |
+
],
|
| 24 |
+
"relative_l2": 0.18715610722030512,
|
| 25 |
+
"cosine": 0.9827343875945663,
|
| 26 |
+
"mean_abs": 0.1519522301146754,
|
| 27 |
+
"max_abs": 3.4375
|
| 28 |
+
},
|
| 29 |
+
"denoiser_step_40": {
|
| 30 |
+
"shape": [
|
| 31 |
+
1,
|
| 32 |
+
16384,
|
| 33 |
+
64
|
| 34 |
+
],
|
| 35 |
+
"relative_l2": 0.299732901207232,
|
| 36 |
+
"cosine": 0.9580206963689706,
|
| 37 |
+
"mean_abs": 0.220236588599529,
|
| 38 |
+
"max_abs": 3.71875
|
| 39 |
+
},
|
| 40 |
+
"latents": {
|
| 41 |
+
"shape": [
|
| 42 |
+
1,
|
| 43 |
+
16384,
|
| 44 |
+
64
|
| 45 |
+
],
|
| 46 |
+
"relative_l2": 0.23900685412357128,
|
| 47 |
+
"cosine": 0.9719319611208836,
|
| 48 |
+
"mean_abs": 0.14952522951807623,
|
| 49 |
+
"max_abs": 3.390625
|
| 50 |
+
},
|
| 51 |
+
"prompt": {
|
| 52 |
+
"shape": [
|
| 53 |
+
1,
|
| 54 |
+
32,
|
| 55 |
+
4096
|
| 56 |
+
],
|
| 57 |
+
"relative_l2": 0.5371999561425623,
|
| 58 |
+
"cosine": 0.8679684852486477,
|
| 59 |
+
"mean_abs": 3.3008214407600462,
|
| 60 |
+
"max_abs": 972.0
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
},
|
| 64 |
+
{
|
| 65 |
+
"id": "illustration-first",
|
| 66 |
+
"stages": {
|
| 67 |
+
"denoiser_step_1": {
|
| 68 |
+
"shape": [
|
| 69 |
+
1,
|
| 70 |
+
16422,
|
| 71 |
+
64
|
| 72 |
+
],
|
| 73 |
+
"relative_l2": 0.1237791824135282,
|
| 74 |
+
"cosine": 0.9923754659916226,
|
| 75 |
+
"mean_abs": 0.1896706782110182,
|
| 76 |
+
"max_abs": 1.958984375
|
| 77 |
+
},
|
| 78 |
+
"denoiser_step_20": {
|
| 79 |
+
"shape": [
|
| 80 |
+
1,
|
| 81 |
+
16384,
|
| 82 |
+
64
|
| 83 |
+
],
|
| 84 |
+
"relative_l2": 0.36489702895260007,
|
| 85 |
+
"cosine": 0.9332337678329975,
|
| 86 |
+
"mean_abs": 0.39175740815743154,
|
| 87 |
+
"max_abs": 3.8203125
|
| 88 |
+
},
|
| 89 |
+
"denoiser_step_40": {
|
| 90 |
+
"shape": [
|
| 91 |
+
1,
|
| 92 |
+
16384,
|
| 93 |
+
64
|
| 94 |
+
],
|
| 95 |
+
"relative_l2": 0.4867897262503415,
|
| 96 |
+
"cosine": 0.8846569299136823,
|
| 97 |
+
"mean_abs": 0.43238412586993746,
|
| 98 |
+
"max_abs": 4.1171875
|
| 99 |
+
},
|
| 100 |
+
"latents": {
|
| 101 |
+
"shape": [
|
| 102 |
+
1,
|
| 103 |
+
16384,
|
| 104 |
+
64
|
| 105 |
+
],
|
| 106 |
+
"relative_l2": 0.44630895774774676,
|
| 107 |
+
"cosine": 0.9002019106304724,
|
| 108 |
+
"mean_abs": 0.3848923010684757,
|
| 109 |
+
"max_abs": 3.7109375
|
| 110 |
+
},
|
| 111 |
+
"prompt": {
|
| 112 |
+
"shape": [
|
| 113 |
+
1,
|
| 114 |
+
38,
|
| 115 |
+
4096
|
| 116 |
+
],
|
| 117 |
+
"relative_l2": 0.5213396248155723,
|
| 118 |
+
"cosine": 0.8761256421719154,
|
| 119 |
+
"mean_abs": 3.115390087428846,
|
| 120 |
+
"max_abs": 964.0
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"id": "landscape-first",
|
| 126 |
+
"stages": {
|
| 127 |
+
"denoiser_step_1": {
|
| 128 |
+
"shape": [
|
| 129 |
+
1,
|
| 130 |
+
16420,
|
| 131 |
+
64
|
| 132 |
+
],
|
| 133 |
+
"relative_l2": 0.11743492799801915,
|
| 134 |
+
"cosine": 0.9933134196249982,
|
| 135 |
+
"mean_abs": 0.1603572918753135,
|
| 136 |
+
"max_abs": 1.958984375
|
| 137 |
+
},
|
| 138 |
+
"denoiser_step_20": {
|
| 139 |
+
"shape": [
|
| 140 |
+
1,
|
| 141 |
+
16384,
|
| 142 |
+
64
|
| 143 |
+
],
|
| 144 |
+
"relative_l2": 0.2780043661118432,
|
| 145 |
+
"cosine": 0.96195723724868,
|
| 146 |
+
"mean_abs": 0.23745506739210853,
|
| 147 |
+
"max_abs": 3.46875
|
| 148 |
+
},
|
| 149 |
+
"denoiser_step_40": {
|
| 150 |
+
"shape": [
|
| 151 |
+
1,
|
| 152 |
+
16384,
|
| 153 |
+
64
|
| 154 |
+
],
|
| 155 |
+
"relative_l2": 0.42237397239356156,
|
| 156 |
+
"cosine": 0.9152042636156736,
|
| 157 |
+
"mean_abs": 0.3032575135607942,
|
| 158 |
+
"max_abs": 4.0390625
|
| 159 |
+
},
|
| 160 |
+
"latents": {
|
| 161 |
+
"shape": [
|
| 162 |
+
1,
|
| 163 |
+
16384,
|
| 164 |
+
64
|
| 165 |
+
],
|
| 166 |
+
"relative_l2": 0.3676629643104064,
|
| 167 |
+
"cosine": 0.9340844764254466,
|
| 168 |
+
"mean_abs": 0.23722753460288004,
|
| 169 |
+
"max_abs": 3.6015625
|
| 170 |
+
},
|
| 171 |
+
"prompt": {
|
| 172 |
+
"shape": [
|
| 173 |
+
1,
|
| 174 |
+
36,
|
| 175 |
+
4096
|
| 176 |
+
],
|
| 177 |
+
"relative_l2": 0.5442974932308043,
|
| 178 |
+
"cosine": 0.868536731310718,
|
| 179 |
+
"mean_abs": 3.258283414774471,
|
| 180 |
+
"max_abs": 964.0
|
| 181 |
+
}
|
| 182 |
+
}
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"id": "neon-first",
|
| 186 |
+
"stages": {
|
| 187 |
+
"denoiser_step_1": {
|
| 188 |
+
"shape": [
|
| 189 |
+
1,
|
| 190 |
+
16415,
|
| 191 |
+
64
|
| 192 |
+
],
|
| 193 |
+
"relative_l2": 0.11102784276427484,
|
| 194 |
+
"cosine": 0.9943521918765537,
|
| 195 |
+
"mean_abs": 0.17097874730252569,
|
| 196 |
+
"max_abs": 1.943359375
|
| 197 |
+
},
|
| 198 |
+
"denoiser_step_20": {
|
| 199 |
+
"shape": [
|
| 200 |
+
1,
|
| 201 |
+
16384,
|
| 202 |
+
64
|
| 203 |
+
],
|
| 204 |
+
"relative_l2": 0.27222016357456835,
|
| 205 |
+
"cosine": 0.9632103635830404,
|
| 206 |
+
"mean_abs": 0.2784836068921557,
|
| 207 |
+
"max_abs": 4.677734375
|
| 208 |
+
},
|
| 209 |
+
"denoiser_step_40": {
|
| 210 |
+
"shape": [
|
| 211 |
+
1,
|
| 212 |
+
16384,
|
| 213 |
+
64
|
| 214 |
+
],
|
| 215 |
+
"relative_l2": 0.37430698714246186,
|
| 216 |
+
"cosine": 0.9339568865017605,
|
| 217 |
+
"mean_abs": 0.328694256395341,
|
| 218 |
+
"max_abs": 4.1953125
|
| 219 |
+
},
|
| 220 |
+
"latents": {
|
| 221 |
+
"shape": [
|
| 222 |
+
1,
|
| 223 |
+
16384,
|
| 224 |
+
64
|
| 225 |
+
],
|
| 226 |
+
"relative_l2": 0.3301071795385446,
|
| 227 |
+
"cosine": 0.9466691717875684,
|
| 228 |
+
"mean_abs": 0.2743973804981579,
|
| 229 |
+
"max_abs": 3.93359375
|
| 230 |
+
},
|
| 231 |
+
"prompt": {
|
| 232 |
+
"shape": [
|
| 233 |
+
1,
|
| 234 |
+
31,
|
| 235 |
+
4096
|
| 236 |
+
],
|
| 237 |
+
"relative_l2": 0.494591097526277,
|
| 238 |
+
"cosine": 0.8786181071551125,
|
| 239 |
+
"mean_abs": 3.678194664178356,
|
| 240 |
+
"max_abs": 972.0
|
| 241 |
+
}
|
| 242 |
+
}
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
"id": "portrait-first",
|
| 246 |
+
"stages": {
|
| 247 |
+
"denoiser_step_1": {
|
| 248 |
+
"shape": [
|
| 249 |
+
1,
|
| 250 |
+
16424,
|
| 251 |
+
64
|
| 252 |
+
],
|
| 253 |
+
"relative_l2": 0.09877505952065657,
|
| 254 |
+
"cosine": 0.9951112277836797,
|
| 255 |
+
"mean_abs": 0.16135481421430806,
|
| 256 |
+
"max_abs": 1.958984375
|
| 257 |
+
},
|
| 258 |
+
"denoiser_step_20": {
|
| 259 |
+
"shape": [
|
| 260 |
+
1,
|
| 261 |
+
16384,
|
| 262 |
+
64
|
| 263 |
+
],
|
| 264 |
+
"relative_l2": 0.10953258507792321,
|
| 265 |
+
"cosine": 0.9941085678186607,
|
| 266 |
+
"mean_abs": 0.10361493606640604,
|
| 267 |
+
"max_abs": 3.01953125
|
| 268 |
+
},
|
| 269 |
+
"denoiser_step_40": {
|
| 270 |
+
"shape": [
|
| 271 |
+
1,
|
| 272 |
+
16384,
|
| 273 |
+
64
|
| 274 |
+
],
|
| 275 |
+
"relative_l2": 0.22319793042538488,
|
| 276 |
+
"cosine": 0.9769965151826058,
|
| 277 |
+
"mean_abs": 0.19543845824817296,
|
| 278 |
+
"max_abs": 2.9453125
|
| 279 |
+
},
|
| 280 |
+
"latents": {
|
| 281 |
+
"shape": [
|
| 282 |
+
1,
|
| 283 |
+
16384,
|
| 284 |
+
64
|
| 285 |
+
],
|
| 286 |
+
"relative_l2": 0.14224873309663885,
|
| 287 |
+
"cosine": 0.990198418805075,
|
| 288 |
+
"mean_abs": 0.11133204035877498,
|
| 289 |
+
"max_abs": 2.859375
|
| 290 |
+
},
|
| 291 |
+
"prompt": {
|
| 292 |
+
"shape": [
|
| 293 |
+
1,
|
| 294 |
+
40,
|
| 295 |
+
4096
|
| 296 |
+
],
|
| 297 |
+
"relative_l2": 0.5191491495552206,
|
| 298 |
+
"cosine": 0.8787168578140309,
|
| 299 |
+
"mean_abs": 3.1762511789798737,
|
| 300 |
+
"max_abs": 964.0
|
| 301 |
+
}
|
| 302 |
+
}
|
| 303 |
+
},
|
| 304 |
+
{
|
| 305 |
+
"id": "poster-first",
|
| 306 |
+
"stages": {
|
| 307 |
+
"denoiser_step_1": {
|
| 308 |
+
"shape": [
|
| 309 |
+
1,
|
| 310 |
+
16425,
|
| 311 |
+
64
|
| 312 |
+
],
|
| 313 |
+
"relative_l2": 0.1226644404080342,
|
| 314 |
+
"cosine": 0.9941364409011779,
|
| 315 |
+
"mean_abs": 0.22389983590512255,
|
| 316 |
+
"max_abs": 2.542236328125
|
| 317 |
+
},
|
| 318 |
+
"denoiser_step_20": {
|
| 319 |
+
"shape": [
|
| 320 |
+
1,
|
| 321 |
+
16384,
|
| 322 |
+
64
|
| 323 |
+
],
|
| 324 |
+
"relative_l2": 0.20410501549113977,
|
| 325 |
+
"cosine": 0.9789742482107255,
|
| 326 |
+
"mean_abs": 0.20914856389551062,
|
| 327 |
+
"max_abs": 4.17578125
|
| 328 |
+
},
|
| 329 |
+
"denoiser_step_40": {
|
| 330 |
+
"shape": [
|
| 331 |
+
1,
|
| 332 |
+
16384,
|
| 333 |
+
64
|
| 334 |
+
],
|
| 335 |
+
"relative_l2": 0.3034432064357869,
|
| 336 |
+
"cosine": 0.9538721133358834,
|
| 337 |
+
"mean_abs": 0.2989502537276252,
|
| 338 |
+
"max_abs": 4.5390625
|
| 339 |
+
},
|
| 340 |
+
"latents": {
|
| 341 |
+
"shape": [
|
| 342 |
+
1,
|
| 343 |
+
16384,
|
| 344 |
+
64
|
| 345 |
+
],
|
| 346 |
+
"relative_l2": 0.2470597661083412,
|
| 347 |
+
"cosine": 0.9691558676086933,
|
| 348 |
+
"mean_abs": 0.21283813056413692,
|
| 349 |
+
"max_abs": 4.1015625
|
| 350 |
+
},
|
| 351 |
+
"prompt": {
|
| 352 |
+
"shape": [
|
| 353 |
+
1,
|
| 354 |
+
41,
|
| 355 |
+
4096
|
| 356 |
+
],
|
| 357 |
+
"relative_l2": 0.46411412505721045,
|
| 358 |
+
"cosine": 0.8968851334245771,
|
| 359 |
+
"mean_abs": 3.3236295239227576,
|
| 360 |
+
"max_abs": 964.0
|
| 361 |
+
}
|
| 362 |
+
}
|
| 363 |
+
},
|
| 364 |
+
{
|
| 365 |
+
"id": "product-first",
|
| 366 |
+
"stages": {
|
| 367 |
+
"denoiser_step_1": {
|
| 368 |
+
"shape": [
|
| 369 |
+
1,
|
| 370 |
+
16419,
|
| 371 |
+
64
|
| 372 |
+
],
|
| 373 |
+
"relative_l2": 0.07579547700663053,
|
| 374 |
+
"cosine": 0.9971244784610925,
|
| 375 |
+
"mean_abs": 0.14884033807893912,
|
| 376 |
+
"max_abs": 2.859375
|
| 377 |
+
},
|
| 378 |
+
"denoiser_step_20": {
|
| 379 |
+
"shape": [
|
| 380 |
+
1,
|
| 381 |
+
16384,
|
| 382 |
+
64
|
| 383 |
+
],
|
| 384 |
+
"relative_l2": 0.12168811693527115,
|
| 385 |
+
"cosine": 0.9927524980452118,
|
| 386 |
+
"mean_abs": 0.11255021314656233,
|
| 387 |
+
"max_abs": 3.515625
|
| 388 |
+
},
|
| 389 |
+
"denoiser_step_40": {
|
| 390 |
+
"shape": [
|
| 391 |
+
1,
|
| 392 |
+
16384,
|
| 393 |
+
64
|
| 394 |
+
],
|
| 395 |
+
"relative_l2": 0.21870793819777393,
|
| 396 |
+
"cosine": 0.9777110682615012,
|
| 397 |
+
"mean_abs": 0.20488777058695185,
|
| 398 |
+
"max_abs": 3.6875
|
| 399 |
+
},
|
| 400 |
+
"latents": {
|
| 401 |
+
"shape": [
|
| 402 |
+
1,
|
| 403 |
+
16384,
|
| 404 |
+
64
|
| 405 |
+
],
|
| 406 |
+
"relative_l2": 0.15225845610304953,
|
| 407 |
+
"cosine": 0.9888893749028648,
|
| 408 |
+
"mean_abs": 0.11930847777966846,
|
| 409 |
+
"max_abs": 3.2109375
|
| 410 |
+
},
|
| 411 |
+
"prompt": {
|
| 412 |
+
"shape": [
|
| 413 |
+
1,
|
| 414 |
+
35,
|
| 415 |
+
4096
|
| 416 |
+
],
|
| 417 |
+
"relative_l2": 0.5244983087159049,
|
| 418 |
+
"cosine": 0.8765227567856071,
|
| 419 |
+
"mean_abs": 3.1638517217976707,
|
| 420 |
+
"max_abs": 964.0
|
| 421 |
+
}
|
| 422 |
+
}
|
| 423 |
+
},
|
| 424 |
+
{
|
| 425 |
+
"id": "spatial-first",
|
| 426 |
+
"stages": {
|
| 427 |
+
"denoiser_step_1": {
|
| 428 |
+
"shape": [
|
| 429 |
+
1,
|
| 430 |
+
16420,
|
| 431 |
+
64
|
| 432 |
+
],
|
| 433 |
+
"relative_l2": 0.07881730250830209,
|
| 434 |
+
"cosine": 0.9970588934798214,
|
| 435 |
+
"mean_abs": 0.14945611470196302,
|
| 436 |
+
"max_abs": 3.3720703125
|
| 437 |
+
},
|
| 438 |
+
"denoiser_step_20": {
|
| 439 |
+
"shape": [
|
| 440 |
+
1,
|
| 441 |
+
16384,
|
| 442 |
+
64
|
| 443 |
+
],
|
| 444 |
+
"relative_l2": 0.0813246004032852,
|
| 445 |
+
"cosine": 0.9968516527948267,
|
| 446 |
+
"mean_abs": 0.08205001484145447,
|
| 447 |
+
"max_abs": 2.15234375
|
| 448 |
+
},
|
| 449 |
+
"denoiser_step_40": {
|
| 450 |
+
"shape": [
|
| 451 |
+
1,
|
| 452 |
+
16384,
|
| 453 |
+
64
|
| 454 |
+
],
|
| 455 |
+
"relative_l2": 0.17795529755967465,
|
| 456 |
+
"cosine": 0.9857923173684036,
|
| 457 |
+
"mean_abs": 0.1686608098137361,
|
| 458 |
+
"max_abs": 2.2109375
|
| 459 |
+
},
|
| 460 |
+
"latents": {
|
| 461 |
+
"shape": [
|
| 462 |
+
1,
|
| 463 |
+
16384,
|
| 464 |
+
64
|
| 465 |
+
],
|
| 466 |
+
"relative_l2": 0.1031416290185419,
|
| 467 |
+
"cosine": 0.9950238962284256,
|
| 468 |
+
"mean_abs": 0.08625367370996173,
|
| 469 |
+
"max_abs": 2.31640625
|
| 470 |
+
},
|
| 471 |
+
"prompt": {
|
| 472 |
+
"shape": [
|
| 473 |
+
1,
|
| 474 |
+
36,
|
| 475 |
+
4096
|
| 476 |
+
],
|
| 477 |
+
"relative_l2": 0.535208555793446,
|
| 478 |
+
"cosine": 0.8671347939794591,
|
| 479 |
+
"mean_abs": 3.3183139397038355,
|
| 480 |
+
"max_abs": 964.0
|
| 481 |
+
}
|
| 482 |
+
}
|
| 483 |
+
}
|
| 484 |
+
],
|
| 485 |
+
"repeatability": {
|
| 486 |
+
"bf16": {
|
| 487 |
+
"rows": [
|
| 488 |
+
{
|
| 489 |
+
"id": "a0",
|
| 490 |
+
"rgb_psnr_db": null,
|
| 491 |
+
"exact_pixels": true,
|
| 492 |
+
"alpha_mae": 0.0,
|
| 493 |
+
"stages": {
|
| 494 |
+
"prompt": {
|
| 495 |
+
"exact": true,
|
| 496 |
+
"mae": 0.0,
|
| 497 |
+
"max_abs": 0.0
|
| 498 |
+
},
|
| 499 |
+
"vae_input": {
|
| 500 |
+
"exact": true,
|
| 501 |
+
"mae": 0.0,
|
| 502 |
+
"max_abs": 0.0
|
| 503 |
+
},
|
| 504 |
+
"vae_output": {
|
| 505 |
+
"exact": true,
|
| 506 |
+
"mae": 0.0,
|
| 507 |
+
"max_abs": 0.0
|
| 508 |
+
}
|
| 509 |
+
}
|
| 510 |
+
},
|
| 511 |
+
{
|
| 512 |
+
"id": "a1",
|
| 513 |
+
"rgb_psnr_db": 61.15596749991985,
|
| 514 |
+
"exact_pixels": false,
|
| 515 |
+
"alpha_mae": 0.018485069274902344,
|
| 516 |
+
"stages": {
|
| 517 |
+
"prompt": {
|
| 518 |
+
"exact": true,
|
| 519 |
+
"mae": 0.0,
|
| 520 |
+
"max_abs": 0.0
|
| 521 |
+
},
|
| 522 |
+
"vae_input": {
|
| 523 |
+
"exact": true,
|
| 524 |
+
"mae": 0.0,
|
| 525 |
+
"max_abs": 0.0
|
| 526 |
+
},
|
| 527 |
+
"vae_output": {
|
| 528 |
+
"exact": false,
|
| 529 |
+
"mae": 0.00032036026823334396,
|
| 530 |
+
"max_abs": 0.03759765625
|
| 531 |
+
}
|
| 532 |
+
}
|
| 533 |
+
},
|
| 534 |
+
{
|
| 535 |
+
"id": "a2",
|
| 536 |
+
"rgb_psnr_db": 61.14556238173183,
|
| 537 |
+
"exact_pixels": false,
|
| 538 |
+
"alpha_mae": 0.018454551696777344,
|
| 539 |
+
"stages": {
|
| 540 |
+
"prompt": {
|
| 541 |
+
"exact": true,
|
| 542 |
+
"mae": 0.0,
|
| 543 |
+
"max_abs": 0.0
|
| 544 |
+
},
|
| 545 |
+
"vae_input": {
|
| 546 |
+
"exact": true,
|
| 547 |
+
"mae": 0.0,
|
| 548 |
+
"max_abs": 0.0
|
| 549 |
+
},
|
| 550 |
+
"vae_output": {
|
| 551 |
+
"exact": false,
|
| 552 |
+
"mae": 0.00031989446142688394,
|
| 553 |
+
"max_abs": 0.0255126953125
|
| 554 |
+
}
|
| 555 |
+
}
|
| 556 |
+
},
|
| 557 |
+
{
|
| 558 |
+
"id": "a3",
|
| 559 |
+
"rgb_psnr_db": 61.17045435704394,
|
| 560 |
+
"exact_pixels": false,
|
| 561 |
+
"alpha_mae": 0.018306732177734375,
|
| 562 |
+
"stages": {
|
| 563 |
+
"prompt": {
|
| 564 |
+
"exact": true,
|
| 565 |
+
"mae": 0.0,
|
| 566 |
+
"max_abs": 0.0
|
| 567 |
+
},
|
| 568 |
+
"vae_input": {
|
| 569 |
+
"exact": true,
|
| 570 |
+
"mae": 0.0,
|
| 571 |
+
"max_abs": 0.0
|
| 572 |
+
},
|
| 573 |
+
"vae_output": {
|
| 574 |
+
"exact": false,
|
| 575 |
+
"mae": 0.00031883540214039385,
|
| 576 |
+
"max_abs": 0.0281982421875
|
| 577 |
+
}
|
| 578 |
+
}
|
| 579 |
+
}
|
| 580 |
+
],
|
| 581 |
+
"interpretation": "Prompt embeddings and denoiser latents must match exactly. Small VAE/postprocessing variations are measured separately."
|
| 582 |
+
},
|
| 583 |
+
"mxfp4": {
|
| 584 |
+
"rows": [
|
| 585 |
+
{
|
| 586 |
+
"id": "a0",
|
| 587 |
+
"rgb_psnr_db": null,
|
| 588 |
+
"exact_pixels": true,
|
| 589 |
+
"alpha_mae": 0.0,
|
| 590 |
+
"stages": {
|
| 591 |
+
"prompt": {
|
| 592 |
+
"exact": true,
|
| 593 |
+
"mae": 0.0,
|
| 594 |
+
"max_abs": 0.0
|
| 595 |
+
},
|
| 596 |
+
"vae_input": {
|
| 597 |
+
"exact": true,
|
| 598 |
+
"mae": 0.0,
|
| 599 |
+
"max_abs": 0.0
|
| 600 |
+
},
|
| 601 |
+
"vae_output": {
|
| 602 |
+
"exact": true,
|
| 603 |
+
"mae": 0.0,
|
| 604 |
+
"max_abs": 0.0
|
| 605 |
+
}
|
| 606 |
+
}
|
| 607 |
+
},
|
| 608 |
+
{
|
| 609 |
+
"id": "a1",
|
| 610 |
+
"rgb_psnr_db": 61.19364488066033,
|
| 611 |
+
"exact_pixels": false,
|
| 612 |
+
"alpha_mae": 0.019402503967285156,
|
| 613 |
+
"stages": {
|
| 614 |
+
"prompt": {
|
| 615 |
+
"exact": true,
|
| 616 |
+
"mae": 0.0,
|
| 617 |
+
"max_abs": 0.0
|
| 618 |
+
},
|
| 619 |
+
"vae_input": {
|
| 620 |
+
"exact": true,
|
| 621 |
+
"mae": 0.0,
|
| 622 |
+
"max_abs": 0.0
|
| 623 |
+
},
|
| 624 |
+
"vae_output": {
|
| 625 |
+
"exact": false,
|
| 626 |
+
"mae": 0.0003149415133520961,
|
| 627 |
+
"max_abs": 0.0205078125
|
| 628 |
+
}
|
| 629 |
+
}
|
| 630 |
+
},
|
| 631 |
+
{
|
| 632 |
+
"id": "a2",
|
| 633 |
+
"rgb_psnr_db": 61.196832096483824,
|
| 634 |
+
"exact_pixels": false,
|
| 635 |
+
"alpha_mae": 0.01945972442626953,
|
| 636 |
+
"stages": {
|
| 637 |
+
"prompt": {
|
| 638 |
+
"exact": true,
|
| 639 |
+
"mae": 0.0,
|
| 640 |
+
"max_abs": 0.0
|
| 641 |
+
},
|
| 642 |
+
"vae_input": {
|
| 643 |
+
"exact": true,
|
| 644 |
+
"mae": 0.0,
|
| 645 |
+
"max_abs": 0.0
|
| 646 |
+
},
|
| 647 |
+
"vae_output": {
|
| 648 |
+
"exact": false,
|
| 649 |
+
"mae": 0.0003153072320856154,
|
| 650 |
+
"max_abs": 0.02734375
|
| 651 |
+
}
|
| 652 |
+
}
|
| 653 |
+
},
|
| 654 |
+
{
|
| 655 |
+
"id": "a3",
|
| 656 |
+
"rgb_psnr_db": 61.205118612289226,
|
| 657 |
+
"exact_pixels": false,
|
| 658 |
+
"alpha_mae": 0.01945781707763672,
|
| 659 |
+
"stages": {
|
| 660 |
+
"prompt": {
|
| 661 |
+
"exact": true,
|
| 662 |
+
"mae": 0.0,
|
| 663 |
+
"max_abs": 0.0
|
| 664 |
+
},
|
| 665 |
+
"vae_input": {
|
| 666 |
+
"exact": true,
|
| 667 |
+
"mae": 0.0,
|
| 668 |
+
"max_abs": 0.0
|
| 669 |
+
},
|
| 670 |
+
"vae_output": {
|
| 671 |
+
"exact": false,
|
| 672 |
+
"mae": 0.0003153429424855858,
|
| 673 |
+
"max_abs": 0.0263671875
|
| 674 |
+
}
|
| 675 |
+
}
|
| 676 |
+
}
|
| 677 |
+
],
|
| 678 |
+
"interpretation": "Prompt embeddings and denoiser latents must match exactly. Small VAE/postprocessing variations are measured separately."
|
| 679 |
+
}
|
| 680 |
+
}
|
| 681 |
+
}
|
evaluation/quality-pairs-1.png
ADDED
|
Git LFS Details
|
evaluation/quality-pairs-2.png
ADDED
|
Git LFS Details
|
launch.sh
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env bash
|
| 2 |
+
set -euo pipefail
|
| 3 |
+
cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
|
| 4 |
+
exec "${QWEN_IMAGE21_PYTHON:-python3}" -m qwen_image21 "$@"
|
processor/added_tokens.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"</think>": 151668,
|
| 3 |
+
"</tool_call>": 151658,
|
| 4 |
+
"</tool_response>": 151666,
|
| 5 |
+
"<think>": 151667,
|
| 6 |
+
"<tool_call>": 151657,
|
| 7 |
+
"<tool_response>": 151665,
|
| 8 |
+
"<|box_end|>": 151649,
|
| 9 |
+
"<|box_start|>": 151648,
|
| 10 |
+
"<|endoftext|>": 151643,
|
| 11 |
+
"<|file_sep|>": 151664,
|
| 12 |
+
"<|fim_middle|>": 151660,
|
| 13 |
+
"<|fim_pad|>": 151662,
|
| 14 |
+
"<|fim_prefix|>": 151659,
|
| 15 |
+
"<|fim_suffix|>": 151661,
|
| 16 |
+
"<|im_end|>": 151645,
|
| 17 |
+
"<|im_start|>": 151644,
|
| 18 |
+
"<|image_pad|>": 151655,
|
| 19 |
+
"<|object_ref_end|>": 151647,
|
| 20 |
+
"<|object_ref_start|>": 151646,
|
| 21 |
+
"<|quad_end|>": 151651,
|
| 22 |
+
"<|quad_start|>": 151650,
|
| 23 |
+
"<|repo_name|>": 151663,
|
| 24 |
+
"<|video_pad|>": 151656,
|
| 25 |
+
"<|vision_end|>": 151653,
|
| 26 |
+
"<|vision_pad|>": 151654,
|
| 27 |
+
"<|vision_start|>": 151652
|
| 28 |
+
}
|
processor/chat_template.jinja
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- if tools %}
|
| 2 |
+
{{- '<|im_start|>system\n' }}
|
| 3 |
+
{%- if messages[0].role == 'system' %}
|
| 4 |
+
{%- if messages[0].content is string %}
|
| 5 |
+
{{- messages[0].content }}
|
| 6 |
+
{%- else %}
|
| 7 |
+
{%- for content in messages[0].content %}
|
| 8 |
+
{%- if 'text' in content %}
|
| 9 |
+
{{- content.text }}
|
| 10 |
+
{%- endif %}
|
| 11 |
+
{%- endfor %}
|
| 12 |
+
{%- endif %}
|
| 13 |
+
{{- '\n\n' }}
|
| 14 |
+
{%- endif %}
|
| 15 |
+
{{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
|
| 16 |
+
{%- for tool in tools %}
|
| 17 |
+
{{- "\n" }}
|
| 18 |
+
{{- tool | tojson }}
|
| 19 |
+
{%- endfor %}
|
| 20 |
+
{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
|
| 21 |
+
{%- else %}
|
| 22 |
+
{%- if messages[0].role == 'system' %}
|
| 23 |
+
{{- '<|im_start|>system\n' }}
|
| 24 |
+
{%- if messages[0].content is string %}
|
| 25 |
+
{{- messages[0].content }}
|
| 26 |
+
{%- else %}
|
| 27 |
+
{%- for content in messages[0].content %}
|
| 28 |
+
{%- if 'text' in content %}
|
| 29 |
+
{{- content.text }}
|
| 30 |
+
{%- endif %}
|
| 31 |
+
{%- endfor %}
|
| 32 |
+
{%- endif %}
|
| 33 |
+
{{- '<|im_end|>\n' }}
|
| 34 |
+
{%- endif %}
|
| 35 |
+
{%- endif %}
|
| 36 |
+
{%- set image_count = namespace(value=0) %}
|
| 37 |
+
{%- set video_count = namespace(value=0) %}
|
| 38 |
+
{%- for message in messages %}
|
| 39 |
+
{%- if message.role == "user" %}
|
| 40 |
+
{{- '<|im_start|>' + message.role + '\n' }}
|
| 41 |
+
{%- if message.content is string %}
|
| 42 |
+
{{- message.content }}
|
| 43 |
+
{%- else %}
|
| 44 |
+
{%- for content in message.content %}
|
| 45 |
+
{%- if content.type == 'image' or 'image' in content or 'image_url' in content %}
|
| 46 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 47 |
+
{%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
|
| 48 |
+
<|vision_start|><|image_pad|><|vision_end|>
|
| 49 |
+
{%- elif content.type == 'video' or 'video' in content %}
|
| 50 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 51 |
+
{%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
|
| 52 |
+
<|vision_start|><|video_pad|><|vision_end|>
|
| 53 |
+
{%- elif 'text' in content %}
|
| 54 |
+
{{- content.text }}
|
| 55 |
+
{%- endif %}
|
| 56 |
+
{%- endfor %}
|
| 57 |
+
{%- endif %}
|
| 58 |
+
{{- '<|im_end|>\n' }}
|
| 59 |
+
{%- elif message.role == "assistant" %}
|
| 60 |
+
{{- '<|im_start|>' + message.role + '\n' }}
|
| 61 |
+
{%- if message.content is string %}
|
| 62 |
+
{{- message.content }}
|
| 63 |
+
{%- else %}
|
| 64 |
+
{%- for content_item in message.content %}
|
| 65 |
+
{%- if 'text' in content_item %}
|
| 66 |
+
{{- content_item.text }}
|
| 67 |
+
{%- endif %}
|
| 68 |
+
{%- endfor %}
|
| 69 |
+
{%- endif %}
|
| 70 |
+
{%- if message.tool_calls %}
|
| 71 |
+
{%- for tool_call in message.tool_calls %}
|
| 72 |
+
{%- if (loop.first and message.content) or (not loop.first) %}
|
| 73 |
+
{{- '\n' }}
|
| 74 |
+
{%- endif %}
|
| 75 |
+
{%- if tool_call.function %}
|
| 76 |
+
{%- set tool_call = tool_call.function %}
|
| 77 |
+
{%- endif %}
|
| 78 |
+
{{- '<tool_call>\n{"name": "' }}
|
| 79 |
+
{{- tool_call.name }}
|
| 80 |
+
{{- '", "arguments": ' }}
|
| 81 |
+
{%- if tool_call.arguments is string %}
|
| 82 |
+
{{- tool_call.arguments }}
|
| 83 |
+
{%- else %}
|
| 84 |
+
{{- tool_call.arguments | tojson }}
|
| 85 |
+
{%- endif %}
|
| 86 |
+
{{- '}\n</tool_call>' }}
|
| 87 |
+
{%- endfor %}
|
| 88 |
+
{%- endif %}
|
| 89 |
+
{{- '<|im_end|>\n' }}
|
| 90 |
+
{%- elif message.role == "tool" %}
|
| 91 |
+
{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
|
| 92 |
+
{{- '<|im_start|>user' }}
|
| 93 |
+
{%- endif %}
|
| 94 |
+
{{- '\n<tool_response>\n' }}
|
| 95 |
+
{%- if message.content is string %}
|
| 96 |
+
{{- message.content }}
|
| 97 |
+
{%- else %}
|
| 98 |
+
{%- for content in message.content %}
|
| 99 |
+
{%- if content.type == 'image' or 'image' in content or 'image_url' in content %}
|
| 100 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 101 |
+
{%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
|
| 102 |
+
<|vision_start|><|image_pad|><|vision_end|>
|
| 103 |
+
{%- elif content.type == 'video' or 'video' in content %}
|
| 104 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 105 |
+
{%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
|
| 106 |
+
<|vision_start|><|video_pad|><|vision_end|>
|
| 107 |
+
{%- elif 'text' in content %}
|
| 108 |
+
{{- content.text }}
|
| 109 |
+
{%- endif %}
|
| 110 |
+
{%- endfor %}
|
| 111 |
+
{%- endif %}
|
| 112 |
+
{{- '\n</tool_response>' }}
|
| 113 |
+
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
|
| 114 |
+
{{- '<|im_end|>\n' }}
|
| 115 |
+
{%- endif %}
|
| 116 |
+
{%- endif %}
|
| 117 |
+
{%- endfor %}
|
| 118 |
+
{%- if add_generation_prompt %}
|
| 119 |
+
{{- '<|im_start|>assistant\n' }}
|
| 120 |
+
{%- endif %}
|
processor/merges.txt
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
processor/preprocessor_config.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"crop_size": null,
|
| 3 |
+
"data_format": "channels_first",
|
| 4 |
+
"default_to_square": true,
|
| 5 |
+
"device": null,
|
| 6 |
+
"disable_grouping": null,
|
| 7 |
+
"do_center_crop": null,
|
| 8 |
+
"do_convert_rgb": true,
|
| 9 |
+
"do_normalize": true,
|
| 10 |
+
"do_pad": null,
|
| 11 |
+
"do_rescale": true,
|
| 12 |
+
"do_resize": true,
|
| 13 |
+
"image_mean": [
|
| 14 |
+
0.5,
|
| 15 |
+
0.5,
|
| 16 |
+
0.5
|
| 17 |
+
],
|
| 18 |
+
"image_processor_type": "Qwen2VLImageProcessorFast",
|
| 19 |
+
"image_std": [
|
| 20 |
+
0.5,
|
| 21 |
+
0.5,
|
| 22 |
+
0.5
|
| 23 |
+
],
|
| 24 |
+
"input_data_format": null,
|
| 25 |
+
"max_pixels": null,
|
| 26 |
+
"merge_size": 2,
|
| 27 |
+
"min_pixels": null,
|
| 28 |
+
"pad_size": null,
|
| 29 |
+
"patch_size": 16,
|
| 30 |
+
"processor_class": "Qwen3VLProcessor",
|
| 31 |
+
"resample": 3,
|
| 32 |
+
"rescale_factor": 0.00392156862745098,
|
| 33 |
+
"return_tensors": null,
|
| 34 |
+
"size": {
|
| 35 |
+
"longest_edge": 16777216,
|
| 36 |
+
"shortest_edge": 65536
|
| 37 |
+
},
|
| 38 |
+
"temporal_patch_size": 2
|
| 39 |
+
}
|
processor/special_tokens_map.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"additional_special_tokens": [
|
| 3 |
+
"<|im_start|>",
|
| 4 |
+
"<|im_end|>",
|
| 5 |
+
"<|object_ref_start|>",
|
| 6 |
+
"<|object_ref_end|>",
|
| 7 |
+
"<|box_start|>",
|
| 8 |
+
"<|box_end|>",
|
| 9 |
+
"<|quad_start|>",
|
| 10 |
+
"<|quad_end|>",
|
| 11 |
+
"<|vision_start|>",
|
| 12 |
+
"<|vision_end|>",
|
| 13 |
+
"<|vision_pad|>",
|
| 14 |
+
"<|image_pad|>",
|
| 15 |
+
"<|video_pad|>"
|
| 16 |
+
],
|
| 17 |
+
"eos_token": {
|
| 18 |
+
"content": "<|im_end|>",
|
| 19 |
+
"lstrip": false,
|
| 20 |
+
"normalized": false,
|
| 21 |
+
"rstrip": false,
|
| 22 |
+
"single_word": false
|
| 23 |
+
},
|
| 24 |
+
"pad_token": {
|
| 25 |
+
"content": "<|endoftext|>",
|
| 26 |
+
"lstrip": false,
|
| 27 |
+
"normalized": false,
|
| 28 |
+
"rstrip": false,
|
| 29 |
+
"single_word": false
|
| 30 |
+
}
|
| 31 |
+
}
|
processor/tokenizer.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4
|
| 3 |
+
size 11422654
|
processor/tokenizer_config.json
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_bos_token": false,
|
| 3 |
+
"add_prefix_space": false,
|
| 4 |
+
"added_tokens_decoder": {
|
| 5 |
+
"151643": {
|
| 6 |
+
"content": "<|endoftext|>",
|
| 7 |
+
"lstrip": false,
|
| 8 |
+
"normalized": false,
|
| 9 |
+
"rstrip": false,
|
| 10 |
+
"single_word": false,
|
| 11 |
+
"special": true
|
| 12 |
+
},
|
| 13 |
+
"151644": {
|
| 14 |
+
"content": "<|im_start|>",
|
| 15 |
+
"lstrip": false,
|
| 16 |
+
"normalized": false,
|
| 17 |
+
"rstrip": false,
|
| 18 |
+
"single_word": false,
|
| 19 |
+
"special": true
|
| 20 |
+
},
|
| 21 |
+
"151645": {
|
| 22 |
+
"content": "<|im_end|>",
|
| 23 |
+
"lstrip": false,
|
| 24 |
+
"normalized": false,
|
| 25 |
+
"rstrip": false,
|
| 26 |
+
"single_word": false,
|
| 27 |
+
"special": true
|
| 28 |
+
},
|
| 29 |
+
"151646": {
|
| 30 |
+
"content": "<|object_ref_start|>",
|
| 31 |
+
"lstrip": false,
|
| 32 |
+
"normalized": false,
|
| 33 |
+
"rstrip": false,
|
| 34 |
+
"single_word": false,
|
| 35 |
+
"special": true
|
| 36 |
+
},
|
| 37 |
+
"151647": {
|
| 38 |
+
"content": "<|object_ref_end|>",
|
| 39 |
+
"lstrip": false,
|
| 40 |
+
"normalized": false,
|
| 41 |
+
"rstrip": false,
|
| 42 |
+
"single_word": false,
|
| 43 |
+
"special": true
|
| 44 |
+
},
|
| 45 |
+
"151648": {
|
| 46 |
+
"content": "<|box_start|>",
|
| 47 |
+
"lstrip": false,
|
| 48 |
+
"normalized": false,
|
| 49 |
+
"rstrip": false,
|
| 50 |
+
"single_word": false,
|
| 51 |
+
"special": true
|
| 52 |
+
},
|
| 53 |
+
"151649": {
|
| 54 |
+
"content": "<|box_end|>",
|
| 55 |
+
"lstrip": false,
|
| 56 |
+
"normalized": false,
|
| 57 |
+
"rstrip": false,
|
| 58 |
+
"single_word": false,
|
| 59 |
+
"special": true
|
| 60 |
+
},
|
| 61 |
+
"151650": {
|
| 62 |
+
"content": "<|quad_start|>",
|
| 63 |
+
"lstrip": false,
|
| 64 |
+
"normalized": false,
|
| 65 |
+
"rstrip": false,
|
| 66 |
+
"single_word": false,
|
| 67 |
+
"special": true
|
| 68 |
+
},
|
| 69 |
+
"151651": {
|
| 70 |
+
"content": "<|quad_end|>",
|
| 71 |
+
"lstrip": false,
|
| 72 |
+
"normalized": false,
|
| 73 |
+
"rstrip": false,
|
| 74 |
+
"single_word": false,
|
| 75 |
+
"special": true
|
| 76 |
+
},
|
| 77 |
+
"151652": {
|
| 78 |
+
"content": "<|vision_start|>",
|
| 79 |
+
"lstrip": false,
|
| 80 |
+
"normalized": false,
|
| 81 |
+
"rstrip": false,
|
| 82 |
+
"single_word": false,
|
| 83 |
+
"special": true
|
| 84 |
+
},
|
| 85 |
+
"151653": {
|
| 86 |
+
"content": "<|vision_end|>",
|
| 87 |
+
"lstrip": false,
|
| 88 |
+
"normalized": false,
|
| 89 |
+
"rstrip": false,
|
| 90 |
+
"single_word": false,
|
| 91 |
+
"special": true
|
| 92 |
+
},
|
| 93 |
+
"151654": {
|
| 94 |
+
"content": "<|vision_pad|>",
|
| 95 |
+
"lstrip": false,
|
| 96 |
+
"normalized": false,
|
| 97 |
+
"rstrip": false,
|
| 98 |
+
"single_word": false,
|
| 99 |
+
"special": true
|
| 100 |
+
},
|
| 101 |
+
"151655": {
|
| 102 |
+
"content": "<|image_pad|>",
|
| 103 |
+
"lstrip": false,
|
| 104 |
+
"normalized": false,
|
| 105 |
+
"rstrip": false,
|
| 106 |
+
"single_word": false,
|
| 107 |
+
"special": true
|
| 108 |
+
},
|
| 109 |
+
"151656": {
|
| 110 |
+
"content": "<|video_pad|>",
|
| 111 |
+
"lstrip": false,
|
| 112 |
+
"normalized": false,
|
| 113 |
+
"rstrip": false,
|
| 114 |
+
"single_word": false,
|
| 115 |
+
"special": true
|
| 116 |
+
},
|
| 117 |
+
"151657": {
|
| 118 |
+
"content": "<tool_call>",
|
| 119 |
+
"lstrip": false,
|
| 120 |
+
"normalized": false,
|
| 121 |
+
"rstrip": false,
|
| 122 |
+
"single_word": false,
|
| 123 |
+
"special": false
|
| 124 |
+
},
|
| 125 |
+
"151658": {
|
| 126 |
+
"content": "</tool_call>",
|
| 127 |
+
"lstrip": false,
|
| 128 |
+
"normalized": false,
|
| 129 |
+
"rstrip": false,
|
| 130 |
+
"single_word": false,
|
| 131 |
+
"special": false
|
| 132 |
+
},
|
| 133 |
+
"151659": {
|
| 134 |
+
"content": "<|fim_prefix|>",
|
| 135 |
+
"lstrip": false,
|
| 136 |
+
"normalized": false,
|
| 137 |
+
"rstrip": false,
|
| 138 |
+
"single_word": false,
|
| 139 |
+
"special": false
|
| 140 |
+
},
|
| 141 |
+
"151660": {
|
| 142 |
+
"content": "<|fim_middle|>",
|
| 143 |
+
"lstrip": false,
|
| 144 |
+
"normalized": false,
|
| 145 |
+
"rstrip": false,
|
| 146 |
+
"single_word": false,
|
| 147 |
+
"special": false
|
| 148 |
+
},
|
| 149 |
+
"151661": {
|
| 150 |
+
"content": "<|fim_suffix|>",
|
| 151 |
+
"lstrip": false,
|
| 152 |
+
"normalized": false,
|
| 153 |
+
"rstrip": false,
|
| 154 |
+
"single_word": false,
|
| 155 |
+
"special": false
|
| 156 |
+
},
|
| 157 |
+
"151662": {
|
| 158 |
+
"content": "<|fim_pad|>",
|
| 159 |
+
"lstrip": false,
|
| 160 |
+
"normalized": false,
|
| 161 |
+
"rstrip": false,
|
| 162 |
+
"single_word": false,
|
| 163 |
+
"special": false
|
| 164 |
+
},
|
| 165 |
+
"151663": {
|
| 166 |
+
"content": "<|repo_name|>",
|
| 167 |
+
"lstrip": false,
|
| 168 |
+
"normalized": false,
|
| 169 |
+
"rstrip": false,
|
| 170 |
+
"single_word": false,
|
| 171 |
+
"special": false
|
| 172 |
+
},
|
| 173 |
+
"151664": {
|
| 174 |
+
"content": "<|file_sep|>",
|
| 175 |
+
"lstrip": false,
|
| 176 |
+
"normalized": false,
|
| 177 |
+
"rstrip": false,
|
| 178 |
+
"single_word": false,
|
| 179 |
+
"special": false
|
| 180 |
+
},
|
| 181 |
+
"151665": {
|
| 182 |
+
"content": "<tool_response>",
|
| 183 |
+
"lstrip": false,
|
| 184 |
+
"normalized": false,
|
| 185 |
+
"rstrip": false,
|
| 186 |
+
"single_word": false,
|
| 187 |
+
"special": false
|
| 188 |
+
},
|
| 189 |
+
"151666": {
|
| 190 |
+
"content": "</tool_response>",
|
| 191 |
+
"lstrip": false,
|
| 192 |
+
"normalized": false,
|
| 193 |
+
"rstrip": false,
|
| 194 |
+
"single_word": false,
|
| 195 |
+
"special": false
|
| 196 |
+
},
|
| 197 |
+
"151667": {
|
| 198 |
+
"content": "<think>",
|
| 199 |
+
"lstrip": false,
|
| 200 |
+
"normalized": false,
|
| 201 |
+
"rstrip": false,
|
| 202 |
+
"single_word": false,
|
| 203 |
+
"special": false
|
| 204 |
+
},
|
| 205 |
+
"151668": {
|
| 206 |
+
"content": "</think>",
|
| 207 |
+
"lstrip": false,
|
| 208 |
+
"normalized": false,
|
| 209 |
+
"rstrip": false,
|
| 210 |
+
"single_word": false,
|
| 211 |
+
"special": false
|
| 212 |
+
}
|
| 213 |
+
},
|
| 214 |
+
"additional_special_tokens": [
|
| 215 |
+
"<|im_start|>",
|
| 216 |
+
"<|im_end|>",
|
| 217 |
+
"<|object_ref_start|>",
|
| 218 |
+
"<|object_ref_end|>",
|
| 219 |
+
"<|box_start|>",
|
| 220 |
+
"<|box_end|>",
|
| 221 |
+
"<|quad_start|>",
|
| 222 |
+
"<|quad_end|>",
|
| 223 |
+
"<|vision_start|>",
|
| 224 |
+
"<|vision_end|>",
|
| 225 |
+
"<|vision_pad|>",
|
| 226 |
+
"<|image_pad|>",
|
| 227 |
+
"<|video_pad|>"
|
| 228 |
+
],
|
| 229 |
+
"bos_token": null,
|
| 230 |
+
"clean_up_tokenization_spaces": false,
|
| 231 |
+
"eos_token": "<|im_end|>",
|
| 232 |
+
"errors": "replace",
|
| 233 |
+
"extra_special_tokens": {},
|
| 234 |
+
"model_max_length": 262144,
|
| 235 |
+
"pad_token": "<|endoftext|>",
|
| 236 |
+
"processor_class": "Qwen3VLProcessor",
|
| 237 |
+
"split_special_tokens": false,
|
| 238 |
+
"tokenizer_class": "Qwen2Tokenizer",
|
| 239 |
+
"unk_token": null
|
| 240 |
+
}
|
processor/video_preprocessor_config.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"crop_size": null,
|
| 3 |
+
"data_format": "channels_first",
|
| 4 |
+
"default_to_square": true,
|
| 5 |
+
"device": null,
|
| 6 |
+
"do_center_crop": null,
|
| 7 |
+
"do_convert_rgb": true,
|
| 8 |
+
"do_normalize": true,
|
| 9 |
+
"do_rescale": true,
|
| 10 |
+
"do_resize": true,
|
| 11 |
+
"do_sample_frames": true,
|
| 12 |
+
"fps": 2,
|
| 13 |
+
"image_mean": [
|
| 14 |
+
0.5,
|
| 15 |
+
0.5,
|
| 16 |
+
0.5
|
| 17 |
+
],
|
| 18 |
+
"image_std": [
|
| 19 |
+
0.5,
|
| 20 |
+
0.5,
|
| 21 |
+
0.5
|
| 22 |
+
],
|
| 23 |
+
"input_data_format": null,
|
| 24 |
+
"max_frames": 768,
|
| 25 |
+
"merge_size": 2,
|
| 26 |
+
"min_frames": 4,
|
| 27 |
+
"num_frames": null,
|
| 28 |
+
"pad_size": null,
|
| 29 |
+
"patch_size": 16,
|
| 30 |
+
"processor_class": "Qwen3VLProcessor",
|
| 31 |
+
"resample": 3,
|
| 32 |
+
"rescale_factor": 0.00392156862745098,
|
| 33 |
+
"return_metadata": false,
|
| 34 |
+
"size": {
|
| 35 |
+
"longest_edge": 25165824,
|
| 36 |
+
"shortest_edge": 4096
|
| 37 |
+
},
|
| 38 |
+
"temporal_patch_size": 2,
|
| 39 |
+
"video_metadata": null,
|
| 40 |
+
"video_processor_type": "Qwen3VLVideoProcessor"
|
| 41 |
+
}
|
processor/vocab.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
qwen_image21/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"""Portable balanced MXFP4 image generation with BF16 framework arithmetic."""
|
qwen_image21/__main__.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
import json
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import sys
|
| 5 |
+
|
| 6 |
+
def main():
|
| 7 |
+
parser=argparse.ArgumentParser(description="Qwen Image 2.1 MXFP4: local packed image generation")
|
| 8 |
+
parser.add_argument("--model-dir",type=Path,required=True)
|
| 9 |
+
parser.add_argument("--decoder",choices=("auto","framework","native"),default="auto")
|
| 10 |
+
parser.add_argument("--memory-budget-gib",type=float,help="Optional framework allocator cap; does not reserve device memory")
|
| 11 |
+
commands=parser.add_subparsers(dest="command",required=True)
|
| 12 |
+
generate=commands.add_parser("generate")
|
| 13 |
+
generate.add_argument("--prompt",required=True)
|
| 14 |
+
generate.add_argument("--mode",choices=("text-to-image","rgba","edit"),default="text-to-image")
|
| 15 |
+
generate.add_argument("--image",type=Path)
|
| 16 |
+
generate.add_argument("--size",type=int,choices=(1024,2048),default=2048)
|
| 17 |
+
generate.add_argument("--seed",type=int,default=42)
|
| 18 |
+
generate.add_argument("--output",type=Path,required=True)
|
| 19 |
+
serve=commands.add_parser("serve")
|
| 20 |
+
serve.add_argument("--host",default="127.0.0.1")
|
| 21 |
+
serve.add_argument("--port",type=int,default=8191)
|
| 22 |
+
args=parser.parse_args()
|
| 23 |
+
from .runtime import ImageEngine,validate_request
|
| 24 |
+
source=None
|
| 25 |
+
if args.command=="generate":
|
| 26 |
+
from PIL import Image
|
| 27 |
+
if args.output.exists():
|
| 28 |
+
parser.error("Output already exists; choose a new path")
|
| 29 |
+
source=Image.open(args.image) if args.image else None
|
| 30 |
+
validate_request(args.prompt,args.size,args.size,seed=args.seed,mode=args.mode,image=source)
|
| 31 |
+
print("Verifying checkpoint files and loading the GPU pipeline...",file=sys.stderr,flush=True)
|
| 32 |
+
engine=ImageEngine(args.model_dir,memory_budget_gib=args.memory_budget_gib,decoder=args.decoder)
|
| 33 |
+
print(f"Pipeline ready in {engine.load_seconds:.2f} seconds.",file=sys.stderr,flush=True)
|
| 34 |
+
if args.command=="serve":
|
| 35 |
+
from .server import serve
|
| 36 |
+
serve(engine,args.host,args.port)
|
| 37 |
+
else:
|
| 38 |
+
image,png,report=engine.generate(args.prompt,width=args.size,height=args.size,seed=args.seed,mode=args.mode,image=source)
|
| 39 |
+
args.output.parent.mkdir(parents=True,exist_ok=True)
|
| 40 |
+
with args.output.open("xb") as f:
|
| 41 |
+
f.write(png)
|
| 42 |
+
args.output.with_suffix(".json").write_text(json.dumps(report,indent=2)+"\n")
|
| 43 |
+
print(json.dumps(dict(image=str(args.output.resolve()),load_seconds=engine.load_seconds,**report),indent=2))
|
| 44 |
+
|
| 45 |
+
if __name__=="__main__":
|
| 46 |
+
main()
|
qwen_image21/decoder.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Select the existing allowlisted decoder without importing a GPU framework."""
|
| 2 |
+
import hashlib
|
| 3 |
+
import json
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
def select_decoder(architecture, requested, artifact_dir):
|
| 8 |
+
if requested not in ('auto', 'framework', 'native'):
|
| 9 |
+
raise ValueError('decoder must be auto, framework or native')
|
| 10 |
+
if requested == 'framework':
|
| 11 |
+
return None, 'Framework decoder explicitly selected'
|
| 12 |
+
if architecture.split(':', 1)[0] != 'gfx1201':
|
| 13 |
+
if requested == 'native':
|
| 14 |
+
raise ValueError('The supplied native decoder targets gfx1201 only')
|
| 15 |
+
return None, 'Framework decoder selected for ' + architecture
|
| 16 |
+
root = Path(artifact_dir).resolve()
|
| 17 |
+
manifest = root/'manifest.json'
|
| 18 |
+
if not manifest.is_file():
|
| 19 |
+
if requested == 'native':
|
| 20 |
+
raise ValueError('Native decoder manifest is missing')
|
| 21 |
+
return None, 'Native decoder is absent; using the framework decoder'
|
| 22 |
+
row = json.loads(manifest.read_text())
|
| 23 |
+
path = root/row['file']
|
| 24 |
+
if not path.resolve().is_relative_to(root) or row['architecture'] != 'gfx1201' or row.get('abi_version') != 1:
|
| 25 |
+
raise ValueError('Unsupported native decoder manifest')
|
| 26 |
+
with path.open('rb') as f:
|
| 27 |
+
actual = hashlib.file_digest(f, 'sha256').hexdigest()
|
| 28 |
+
if actual != row['sha256']:
|
| 29 |
+
raise ValueError('Native decoder SHA-256 mismatch')
|
| 30 |
+
return path, 'Verified native gfx1201 decoder selected'
|
qwen_image21/integrity.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Checkpoint verification without importing the inference stack."""
|
| 2 |
+
import hashlib
|
| 3 |
+
import json
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
def verify_checkpoint(root):
|
| 8 |
+
root = Path(root).resolve()
|
| 9 |
+
lock = json.loads((root / "checkpoint.lock.json").read_text())
|
| 10 |
+
expected = set()
|
| 11 |
+
for row in lock["files"]:
|
| 12 |
+
path = root / row["file"]
|
| 13 |
+
if (row["file"] in expected or path.is_symlink()
|
| 14 |
+
or not path.resolve().is_relative_to(root)):
|
| 15 |
+
raise ValueError(f"Invalid checkpoint path: {row['file']}")
|
| 16 |
+
expected.add(row["file"])
|
| 17 |
+
if not path.is_file() or path.stat().st_size != row["bytes"]:
|
| 18 |
+
raise ValueError(f"Missing or wrong-size checkpoint file: {row['file']}")
|
| 19 |
+
with path.open("rb") as stream:
|
| 20 |
+
digest = hashlib.file_digest(stream, "sha256").hexdigest()
|
| 21 |
+
if digest != row["sha256"]:
|
| 22 |
+
raise ValueError(f"Checkpoint hash mismatch: {row['file']}")
|
| 23 |
+
actual = {str(p.relative_to(root)) for name in
|
| 24 |
+
("text_encoder", "transformer", "vae", "processor", "scheduler")
|
| 25 |
+
for p in (root / name).rglob("*") if p.is_file()}
|
| 26 |
+
actual.add("result.json")
|
| 27 |
+
if expected != actual:
|
| 28 |
+
raise ValueError("Unexpected or unlisted checkpoint files")
|
| 29 |
+
return lock
|
qwen_image21/runtime.py
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Serialized, bounded image requests using a pinned packed checkpoint."""
|
| 2 |
+
import os
|
| 3 |
+
os.environ.update(MIOPEN_FIND_MODE="FAST",MIOPEN_DEBUG_CONV_GEMM="0",
|
| 4 |
+
MIOPEN_ENABLE_LOGGING="0",MIOPEN_LOG_LEVEL="2",
|
| 5 |
+
HF_HUB_OFFLINE="1",TRANSFORMERS_OFFLINE="1",TORCH_COMPILE_DISABLE="1")
|
| 6 |
+
import fcntl
|
| 7 |
+
import io
|
| 8 |
+
import json
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
import threading
|
| 11 |
+
import time
|
| 12 |
+
|
| 13 |
+
def validate_request(prompt, width=2048, height=2048, steps=40, guidance=1.0,
|
| 14 |
+
seed=42, mode="text-to-image", image=None):
|
| 15 |
+
if not isinstance(prompt,str) or not prompt.strip() or len(prompt)>512:
|
| 16 |
+
raise ValueError("prompt must contain 1 to 512 characters")
|
| 17 |
+
if type(width) is not int or type(height) is not int or width!=height or width not in (1024,2048):
|
| 18 |
+
raise ValueError("Qualified sizes are 1024x1024 and 2048x2048, batch one")
|
| 19 |
+
if type(steps) is not int or steps!=40 or type(guidance) not in (int,float) or guidance!=1.0:
|
| 20 |
+
raise ValueError("This profile requires 40 steps and guidance 1.0")
|
| 21 |
+
if type(seed) is not int or not 0<=seed<2**63:
|
| 22 |
+
raise ValueError("seed must be an integer in [0, 2**63)")
|
| 23 |
+
if mode not in ("text-to-image","rgba","edit"):
|
| 24 |
+
raise ValueError("mode must be text-to-image, rgba or edit")
|
| 25 |
+
if mode=="edit":
|
| 26 |
+
if image is None or width!=1024:
|
| 27 |
+
raise ValueError("Editing requires one input image and 1024x1024 output")
|
| 28 |
+
if image.width*image.height>2048*2048:
|
| 29 |
+
raise ValueError("Edit input is limited to 4,194,304 pixels")
|
| 30 |
+
elif image is not None:
|
| 31 |
+
raise ValueError("Input images are accepted only for edit requests")
|
| 32 |
+
return dict(width=width,height=height,output_resolution=width,num_inference_steps=steps,
|
| 33 |
+
true_cfg_scale=guidance,use_kv_cache=True)
|
| 34 |
+
|
| 35 |
+
class ImageEngine:
|
| 36 |
+
def __init__(self,model_dir,memory_budget_gib=None,verify=True,decoder="auto"):
|
| 37 |
+
import math
|
| 38 |
+
import importlib.metadata as metadata
|
| 39 |
+
from .weights import load_pipeline,sha256
|
| 40 |
+
from .integrity import verify_checkpoint
|
| 41 |
+
import torch
|
| 42 |
+
self.model_dir=Path(model_dir).resolve()
|
| 43 |
+
# Cooperating workers can select a shared lock for their physical device.
|
| 44 |
+
device_key=os.environ.get("HIP_VISIBLE_DEVICES",os.environ.get("ROCR_VISIBLE_DEVICES","0")).split(",")[0]
|
| 45 |
+
lock_path=os.environ.get("QWEN_IMAGE21_GPU_LOCK",f"/tmp/qwen-image21-{os.getuid()}-gpu-{device_key}.lock")
|
| 46 |
+
self._gpu_lock=open(lock_path,"a")
|
| 47 |
+
try:
|
| 48 |
+
fcntl.flock(self._gpu_lock,fcntl.LOCK_EX|fcntl.LOCK_NB)
|
| 49 |
+
if not torch.cuda.is_available() or not torch.version.hip:
|
| 50 |
+
raise RuntimeError("A supported ROCm PyTorch build and AMD GPU are required")
|
| 51 |
+
if not torch.cuda.is_bf16_supported():
|
| 52 |
+
raise RuntimeError("This BF16 activation profile requires BF16 GPU support")
|
| 53 |
+
props=torch.cuda.get_device_properties(0)
|
| 54 |
+
free,total=torch.cuda.mem_get_info()
|
| 55 |
+
if memory_budget_gib is not None:
|
| 56 |
+
if not math.isfinite(memory_budget_gib) or not 0 < memory_budget_gib <= total/2**30:
|
| 57 |
+
raise ValueError("memory-budget-gib must be positive and no greater than physical VRAM")
|
| 58 |
+
torch.cuda.set_per_process_memory_fraction(memory_budget_gib*2**30/total)
|
| 59 |
+
begin=time.perf_counter()
|
| 60 |
+
if verify:
|
| 61 |
+
verify_checkpoint(self.model_dir)
|
| 62 |
+
self.checkpoint_sha256=sha256(self.model_dir/"result.json")
|
| 63 |
+
from .decoder import select_decoder
|
| 64 |
+
from .weights import enable_native_unpack,disable_native_unpack
|
| 65 |
+
native_path,self.decoder_selection_reason=select_decoder(
|
| 66 |
+
props.gcnArchName,decoder,Path(__file__).resolve().parent.parent/"artifacts")
|
| 67 |
+
disable_native_unpack()
|
| 68 |
+
self.backend="framework"
|
| 69 |
+
if native_path is not None:
|
| 70 |
+
try:
|
| 71 |
+
enable_native_unpack(native_path)
|
| 72 |
+
except OSError as error:
|
| 73 |
+
if decoder == "native":
|
| 74 |
+
raise
|
| 75 |
+
self.decoder_selection_reason=f"Native library unavailable ({error}); using framework decoder"
|
| 76 |
+
else:
|
| 77 |
+
self.backend="native-unpack"
|
| 78 |
+
self.busy=threading.Lock()
|
| 79 |
+
torch.set_num_threads(4)
|
| 80 |
+
self.hardware=dict(name=props.name,architecture=props.gcnArchName,
|
| 81 |
+
total_memory_bytes=total,free_before_load_bytes=free,torch=torch.__version__,
|
| 82 |
+
hip=torch.version.hip,memory_budget_gib=memory_budget_gib,
|
| 83 |
+
packages={key:metadata.version(key) for key in
|
| 84 |
+
("diffusers","transformers","accelerate","safetensors","Pillow","numpy")})
|
| 85 |
+
# All checkpoint files have already been verified, including tokenizers.
|
| 86 |
+
self.pipeline=load_pipeline(self.model_dir,self.model_dir,verify_hashes=False)
|
| 87 |
+
torch.cuda.synchronize()
|
| 88 |
+
self.load_seconds=time.perf_counter()-begin
|
| 89 |
+
except BaseException:
|
| 90 |
+
self._gpu_lock.close()
|
| 91 |
+
raise
|
| 92 |
+
self.stream=torch.cuda.Stream()
|
| 93 |
+
self.stream.wait_stream(torch.cuda.current_stream())
|
| 94 |
+
self.request_count=0
|
| 95 |
+
self._prefix_caches=[]
|
| 96 |
+
def remember_prefix(module,args,kwargs):
|
| 97 |
+
cache=kwargs.get("kv_cache")
|
| 98 |
+
if cache is not None and all(cache is not old for old in self._prefix_caches):
|
| 99 |
+
self._prefix_caches.append(cache)
|
| 100 |
+
self.pipeline.transformer.register_forward_pre_hook(remember_prefix,with_kwargs=True)
|
| 101 |
+
|
| 102 |
+
def _release_prefix(self):
|
| 103 |
+
for cache in self._prefix_caches:
|
| 104 |
+
for layer in cache.layer_caches:
|
| 105 |
+
layer.k=layer.v=None
|
| 106 |
+
self._prefix_caches.clear()
|
| 107 |
+
|
| 108 |
+
def generate(self,prompt,width=2048,height=2048,steps=40,guidance=1.0,seed=42,
|
| 109 |
+
mode="text-to-image",image=None):
|
| 110 |
+
import torch
|
| 111 |
+
settings=validate_request(prompt,width,height,steps,guidance,seed,mode,image)
|
| 112 |
+
if not self.busy.acquire(blocking=False):
|
| 113 |
+
raise RuntimeError("The single-request GPU worker is busy")
|
| 114 |
+
started=time.perf_counter()
|
| 115 |
+
stop=threading.Event()
|
| 116 |
+
samples=[]
|
| 117 |
+
def sample():
|
| 118 |
+
while not stop.is_set():
|
| 119 |
+
free,total=torch.cuda.mem_get_info()
|
| 120 |
+
samples.append(total-free)
|
| 121 |
+
stop.wait(.02)
|
| 122 |
+
monitor=threading.Thread(target=sample,daemon=True)
|
| 123 |
+
actual_prompt=prompt
|
| 124 |
+
if mode=="rgba":
|
| 125 |
+
actual_prompt="This is an RGBA image with transparency. "+prompt+" The image has alpha channel and the background is transparent."
|
| 126 |
+
try:
|
| 127 |
+
self._release_prefix()
|
| 128 |
+
torch.cuda.reset_peak_memory_stats()
|
| 129 |
+
monitor.start()
|
| 130 |
+
def callback(pipe,step,timestep,values):
|
| 131 |
+
if step==39:
|
| 132 |
+
self._release_prefix()
|
| 133 |
+
return values
|
| 134 |
+
kwargs={"image":image.convert("RGBA")} if image is not None else {}
|
| 135 |
+
with torch.cuda.stream(self.stream),torch.inference_mode():
|
| 136 |
+
result=self.pipeline(prompt=actual_prompt,**settings,**kwargs,
|
| 137 |
+
generator=torch.Generator("cuda").manual_seed(seed),callback_on_step_end=callback).images[0]
|
| 138 |
+
self.stream.synchronize()
|
| 139 |
+
seconds=time.perf_counter()-started
|
| 140 |
+
assert result.size==(width,height) and result.mode=="RGBA"
|
| 141 |
+
buffer=io.BytesIO()
|
| 142 |
+
result.save(buffer,format="PNG")
|
| 143 |
+
row=dict(mode=mode,seed=seed,settings=settings,backend=self.backend,
|
| 144 |
+
decoder_selection_reason=self.decoder_selection_reason,
|
| 145 |
+
checkpoint_sha256=self.checkpoint_sha256,request_index=self.request_count,hardware=self.hardware,
|
| 146 |
+
complete_request_to_pil_seconds=seconds,complete_request_to_png_seconds=time.perf_counter()-started,
|
| 147 |
+
peak_allocated_bytes=torch.cuda.max_memory_allocated(),peak_reserved_bytes=torch.cuda.max_memory_reserved(),
|
| 148 |
+
sampled_peak_device_bytes=max(samples,default=0),sampling_interval_seconds=.02,
|
| 149 |
+
stream="dedicated non-default HIP stream",alpha_extrema=list(result.getextrema()[3]),
|
| 150 |
+
alpha_below_128_fraction=sum(result.getchannel("A").histogram()[:128])/(width*height))
|
| 151 |
+
self.request_count+=1
|
| 152 |
+
return result,buffer.getvalue(),row
|
| 153 |
+
finally:
|
| 154 |
+
stop.set()
|
| 155 |
+
if monitor.is_alive():
|
| 156 |
+
monitor.join(timeout=1)
|
| 157 |
+
self._release_prefix()
|
| 158 |
+
self.busy.release()
|
qwen_image21/server.py
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Local JSON image API. One GPU request at a time; no URL/file fetching."""
|
| 2 |
+
import base64
|
| 3 |
+
import binascii
|
| 4 |
+
from http.server import BaseHTTPRequestHandler,ThreadingHTTPServer
|
| 5 |
+
import io
|
| 6 |
+
import json
|
| 7 |
+
import time
|
| 8 |
+
from PIL import Image,UnidentifiedImageError
|
| 9 |
+
|
| 10 |
+
def serve(engine,host,port):
|
| 11 |
+
class Handler(BaseHTTPRequestHandler):
|
| 12 |
+
def send_json(self,status,value):
|
| 13 |
+
payload=json.dumps(value).encode()
|
| 14 |
+
self.send_response(status)
|
| 15 |
+
self.send_header("Content-Type","application/json")
|
| 16 |
+
self.send_header("Content-Length",str(len(payload)))
|
| 17 |
+
self.end_headers()
|
| 18 |
+
self.wfile.write(payload)
|
| 19 |
+
|
| 20 |
+
def do_GET(self):
|
| 21 |
+
if self.path=="/health":
|
| 22 |
+
self.send_json(200,dict(status="ready",busy=engine.busy.locked(),backend=engine.backend,
|
| 23 |
+
checkpoint_sha256=engine.checkpoint_sha256,load_seconds=engine.load_seconds,hardware=engine.hardware))
|
| 24 |
+
elif self.path=="/v1/models":
|
| 25 |
+
self.send_json(200,dict(object="list",data=[dict(id="paiton-image-2.1-uncensored",object="model",
|
| 26 |
+
owned_by="EliovpAI",tasks=["text-to-image","rgba","edit"],batch_size=1,
|
| 27 |
+
generation_sizes=["1024x1024","2048x2048"],rgba_sizes=["1024x1024","2048x2048"],
|
| 28 |
+
edit_sizes=["1024x1024"],steps=40,guidance=1.0)]))
|
| 29 |
+
else:
|
| 30 |
+
self.send_json(404,dict(error="Unknown endpoint"))
|
| 31 |
+
|
| 32 |
+
def do_POST(self):
|
| 33 |
+
if self.path not in ("/v1/images/generations","/v1/images/edits"):
|
| 34 |
+
self.send_json(404,dict(error="Unknown endpoint"));return
|
| 35 |
+
try:
|
| 36 |
+
length=int(self.headers.get("Content-Length","0"))
|
| 37 |
+
if not 0<length<=32*2**20:
|
| 38 |
+
raise ValueError("JSON request must be at most 32 MiB")
|
| 39 |
+
body=json.loads(self.rfile.read(length))
|
| 40 |
+
if not isinstance(body,dict):
|
| 41 |
+
raise ValueError("JSON body must be an object")
|
| 42 |
+
allowed={"prompt","size","seed","mode","image_b64","n","model","steps","guidance","response_format"}
|
| 43 |
+
if set(body)-allowed:
|
| 44 |
+
raise ValueError("Unsupported fields: "+", ".join(sorted(set(body)-allowed)))
|
| 45 |
+
if type(body.get("n",1)) is not int or body.get("n",1)!=1 or body.get("model","paiton-image-2.1-uncensored")!="paiton-image-2.1-uncensored":
|
| 46 |
+
raise ValueError("Use model paiton-image-2.1-uncensored and n=1")
|
| 47 |
+
if body.get("response_format","b64_json")!="b64_json":
|
| 48 |
+
raise ValueError("response_format must be b64_json")
|
| 49 |
+
size=body.get("size","2048x2048")
|
| 50 |
+
if size not in ("1024x1024","2048x2048"):
|
| 51 |
+
raise ValueError("Unsupported size")
|
| 52 |
+
width,height=map(int,size.split("x"))
|
| 53 |
+
source=None
|
| 54 |
+
mode=body.get("mode","text-to-image")
|
| 55 |
+
if self.path.endswith("/edits"):
|
| 56 |
+
mode="edit"
|
| 57 |
+
data=base64.b64decode(body.get("image_b64",""),validate=True)
|
| 58 |
+
source=Image.open(io.BytesIO(data))
|
| 59 |
+
if source.width*source.height>2048*2048:
|
| 60 |
+
raise ValueError("Edit input exceeds 4,194,304 pixels")
|
| 61 |
+
source.load()
|
| 62 |
+
elif "image_b64" in body:
|
| 63 |
+
raise ValueError("Use the edits endpoint for input images")
|
| 64 |
+
image,png,report=engine.generate(body.get("prompt"),width=width,height=height,
|
| 65 |
+
steps=body.get("steps",40),guidance=body.get("guidance",1.0),seed=body.get("seed",42),mode=mode,image=source)
|
| 66 |
+
self.send_json(200,dict(created=int(time.time()),data=[dict(b64_json=base64.b64encode(png).decode())],metrics=report))
|
| 67 |
+
except (ValueError,TypeError,UnidentifiedImageError,Image.DecompressionBombError,binascii.Error) as error:
|
| 68 |
+
self.send_json(400,dict(error=str(error)))
|
| 69 |
+
except RuntimeError as error:
|
| 70 |
+
self.send_json(409 if "busy" in str(error) else 500,dict(error=str(error)))
|
| 71 |
+
server=ThreadingHTTPServer((host,port),Handler)
|
| 72 |
+
server.daemon_threads=True
|
| 73 |
+
print(f"READY http://{host}:{port}; checkpoint {engine.checkpoint_sha256}",flush=True)
|
| 74 |
+
server.serve_forever()
|
qwen_image21/weights.py
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Isolated external reference consumer for Quark MXFP4 weights.
|
| 2 |
+
|
| 3 |
+
This consumer reconstructs a BF16 matrix for each operation. It does not claim
|
| 4 |
+
native MXFP4 GEMM, compiler integration, or an inference speedup.
|
| 5 |
+
"""
|
| 6 |
+
import hashlib
|
| 7 |
+
import ctypes
|
| 8 |
+
import json
|
| 9 |
+
import math
|
| 10 |
+
from pathlib import Path
|
| 11 |
+
|
| 12 |
+
import torch
|
| 13 |
+
from accelerate import init_empty_weights
|
| 14 |
+
from safetensors import safe_open
|
| 15 |
+
|
| 16 |
+
E2M1 = [0,.5,1,1.5,2,3,4,6,-0.,-.5,-1,-1.5,-2,-3,-4,-6]
|
| 17 |
+
_NATIVE_UNPACK = None
|
| 18 |
+
_NATIVE_LIBRARY = None
|
| 19 |
+
|
| 20 |
+
def enable_native_unpack(path):
|
| 21 |
+
"""Raw-pointer C ABI adapter; native library has no framework dependency."""
|
| 22 |
+
global _NATIVE_UNPACK,_NATIVE_LIBRARY
|
| 23 |
+
_NATIVE_LIBRARY=ctypes.CDLL(str(Path(path).resolve()))
|
| 24 |
+
_NATIVE_UNPACK=_NATIVE_LIBRARY.paiton_mxfp4_unpack
|
| 25 |
+
_NATIVE_UNPACK.argtypes=[ctypes.c_void_p,ctypes.c_void_p,ctypes.c_void_p,ctypes.c_size_t,ctypes.c_void_p]
|
| 26 |
+
_NATIVE_UNPACK.restype=ctypes.c_int
|
| 27 |
+
|
| 28 |
+
def disable_native_unpack():
|
| 29 |
+
global _NATIVE_UNPACK,_NATIVE_LIBRARY
|
| 30 |
+
_NATIVE_UNPACK=None
|
| 31 |
+
_NATIVE_LIBRARY=None
|
| 32 |
+
|
| 33 |
+
def sha256(path):
|
| 34 |
+
h = hashlib.sha256()
|
| 35 |
+
with Path(path).open("rb") as f:
|
| 36 |
+
for data in iter(lambda:f.read(8*1024*1024),b""):
|
| 37 |
+
h.update(data)
|
| 38 |
+
return h.hexdigest()
|
| 39 |
+
|
| 40 |
+
def decode_matrix(weight, scale, columns, lookup):
|
| 41 |
+
rows = weight.shape[0]
|
| 42 |
+
padded = weight.shape[1]*2
|
| 43 |
+
if _NATIVE_UNPACK is not None:
|
| 44 |
+
assert weight.is_cuda and weight.is_contiguous() and scale.is_contiguous()
|
| 45 |
+
out=torch.empty((rows,padded),device=weight.device,dtype=torch.bfloat16)
|
| 46 |
+
rc=_NATIVE_UNPACK(weight.data_ptr(),scale.data_ptr(),out.data_ptr(),out.numel(),
|
| 47 |
+
torch.cuda.current_stream(weight.device).cuda_stream)
|
| 48 |
+
if rc:
|
| 49 |
+
raise RuntimeError(f"Native unpack failed with HIP status {rc}")
|
| 50 |
+
# Match the reference BF16 conversion's compact layout after padding
|
| 51 |
+
# removal. A strided convolution weight can select different arithmetic.
|
| 52 |
+
return out[:,:columns].contiguous()
|
| 53 |
+
codes = torch.stack((weight & 15, weight >> 4), dim=-1).reshape(rows,padded)
|
| 54 |
+
decoded = lookup[codes.long()].reshape(rows,padded//32,32)
|
| 55 |
+
decoded = decoded * torch.exp2(scale.float()-127).unsqueeze(-1)
|
| 56 |
+
return decoded.reshape(rows,padded)[:,:columns].to(torch.bfloat16)
|
| 57 |
+
|
| 58 |
+
class PackedWeightMixin:
|
| 59 |
+
@property
|
| 60 |
+
def weight(self):
|
| 61 |
+
cached=self.__dict__.get("_materialized_weight")
|
| 62 |
+
if cached is not None:
|
| 63 |
+
return cached
|
| 64 |
+
shape = self._original_weight_shape
|
| 65 |
+
return decode_matrix(self._packed_weight,self._packed_scale,
|
| 66 |
+
math.prod(shape[1:]),self._mxfp4_lookup).reshape(shape)
|
| 67 |
+
|
| 68 |
+
class PackedEmbeddingMixin(PackedWeightMixin):
|
| 69 |
+
def forward(self, indices):
|
| 70 |
+
assert self.max_norm is None, "MXFP4 embedding max_norm is unsupported"
|
| 71 |
+
flat = indices.reshape(-1)
|
| 72 |
+
weight = self._packed_weight.index_select(0,flat)
|
| 73 |
+
scale = self._packed_scale.index_select(0,flat)
|
| 74 |
+
value = decode_matrix(weight,scale,self.embedding_dim,self._mxfp4_lookup)
|
| 75 |
+
return value.reshape(*indices.shape,self.embedding_dim)
|
| 76 |
+
|
| 77 |
+
_TYPES = {}
|
| 78 |
+
|
| 79 |
+
def install_packed(module, row, weight, scale, device):
|
| 80 |
+
shape = tuple(row["shape"])
|
| 81 |
+
padded = tuple(row["padded_shape"])
|
| 82 |
+
assert tuple(module.weight.shape) == shape
|
| 83 |
+
assert weight.dtype == scale.dtype == torch.uint8
|
| 84 |
+
assert tuple(weight.shape) == (shape[0],padded[1]//2)
|
| 85 |
+
assert tuple(scale.shape) == (shape[0],padded[1]//32)
|
| 86 |
+
assert row["kind"] in ("linear","embedding","conv2d","conv3d")
|
| 87 |
+
old_type = type(module)
|
| 88 |
+
mixin = PackedEmbeddingMixin if row["kind"] == "embedding" else PackedWeightMixin
|
| 89 |
+
pair = (mixin,old_type)
|
| 90 |
+
if pair not in _TYPES:
|
| 91 |
+
_TYPES[pair] = type("MXFP4"+old_type.__name__,(mixin,old_type),{})
|
| 92 |
+
del module._parameters["weight"]
|
| 93 |
+
module.__class__ = _TYPES[pair]
|
| 94 |
+
module._original_weight_shape = shape
|
| 95 |
+
module.register_buffer("_packed_weight",weight.to(device))
|
| 96 |
+
module.register_buffer("_packed_scale",scale.to(device))
|
| 97 |
+
module.register_buffer("_mxfp4_lookup",torch.tensor(E2M1,dtype=torch.float32,device=device),persistent=False)
|
| 98 |
+
|
| 99 |
+
def load_component(snapshot, bundle, name, device="cuda", quantized=True, verify_hashes=False, event=None):
|
| 100 |
+
from diffusers import QwenImage21Transformer2DModel, AutoencoderKLQwenImage21
|
| 101 |
+
from transformers import Qwen3VLConfig, Qwen3VLForConditionalGeneration
|
| 102 |
+
snapshot, bundle = Path(snapshot), Path(bundle)
|
| 103 |
+
manifest = json.loads((bundle/"result.json").read_text())
|
| 104 |
+
assert manifest["status"] == "completed_conversion_only"
|
| 105 |
+
assert manifest["format"] == "paiton-research-mxfp4-weight-only-v2"
|
| 106 |
+
with init_empty_weights(include_buffers=False):
|
| 107 |
+
if name == "text_encoder":
|
| 108 |
+
config = Qwen3VLConfig.from_pretrained(str(snapshot/name),local_files_only=True)
|
| 109 |
+
config.dtype = torch.bfloat16
|
| 110 |
+
model = Qwen3VLForConditionalGeneration(config)
|
| 111 |
+
else:
|
| 112 |
+
cls = QwenImage21Transformer2DModel if name=="transformer" else AutoencoderKLQwenImage21
|
| 113 |
+
model = cls.from_config(cls.load_config(str(snapshot/name)))
|
| 114 |
+
expected = {k:tuple(p.shape) for k,p in model.named_parameters()}
|
| 115 |
+
loaded = set()
|
| 116 |
+
meta = manifest["components"][name]
|
| 117 |
+
if quantized:
|
| 118 |
+
assert sha256(bundle/name/"config.json") == meta["config_sha256"]
|
| 119 |
+
assert sha256(snapshot/name/"config.json") == meta["config_sha256"]
|
| 120 |
+
targets = {x["name"]+".weight":x for x in meta["converted_layers"]}
|
| 121 |
+
paths = [bundle/name/x["file"] for x in meta["files"]]
|
| 122 |
+
if verify_hashes:
|
| 123 |
+
for path,row in zip(paths,meta["files"]):
|
| 124 |
+
assert path.stat().st_size == row["bytes"] and sha256(path)==row["sha256"],path
|
| 125 |
+
else:
|
| 126 |
+
targets = {}
|
| 127 |
+
paths = sorted((snapshot/name).glob("*.safetensors"))
|
| 128 |
+
for path in paths:
|
| 129 |
+
with safe_open(path,framework="pt",device="cpu") as f:
|
| 130 |
+
for key in sorted(f.keys()):
|
| 131 |
+
if key.endswith(".weight_scale"):
|
| 132 |
+
continue
|
| 133 |
+
assert key in expected and key not in loaded,key
|
| 134 |
+
value = f.get_tensor(key)
|
| 135 |
+
if key in targets:
|
| 136 |
+
row = targets[key]
|
| 137 |
+
install_packed(model.get_submodule(row["name"]),row,value,
|
| 138 |
+
f.get_tensor(row["name"]+".weight_scale"),device)
|
| 139 |
+
else:
|
| 140 |
+
assert tuple(value.shape) == expected[key],key
|
| 141 |
+
parent,leaf = key.rsplit(".",1)
|
| 142 |
+
setattr(model.get_submodule(parent),leaf,torch.nn.Parameter(
|
| 143 |
+
value.to(device=device,dtype=torch.bfloat16),requires_grad=False))
|
| 144 |
+
loaded.add(key)
|
| 145 |
+
del value
|
| 146 |
+
if event:
|
| 147 |
+
event("loaded_shard",component=name,file=path.name,tensors=len(loaded))
|
| 148 |
+
assert loaded == set(expected),sorted(set(expected)-loaded)
|
| 149 |
+
for module in model.modules():
|
| 150 |
+
for key,value in module._buffers.items():
|
| 151 |
+
if value is not None:
|
| 152 |
+
assert not value.is_meta,key
|
| 153 |
+
module._buffers[key] = value.to(device)
|
| 154 |
+
assert not any(p.is_meta for p in model.parameters())
|
| 155 |
+
model.eval()
|
| 156 |
+
payload = sum(t.numel()*t.element_size() for t in model.state_dict().values())
|
| 157 |
+
assert payload == (meta["tensor_payload_bytes"] if quantized else meta["source_bf16_bytes"]),(name,payload)
|
| 158 |
+
assert model.dtype == torch.bfloat16,(name,model.dtype)
|
| 159 |
+
if event:
|
| 160 |
+
event("component_loaded",component=name,quantized=quantized,tensor_payload_bytes=payload)
|
| 161 |
+
return model
|
| 162 |
+
|
| 163 |
+
def remove_single_frame_temporal_caches(vae):
|
| 164 |
+
def decode_hook(module,args,kwargs):
|
| 165 |
+
assert args[0].ndim == 5 and args[0].shape[2] == 1
|
| 166 |
+
assert kwargs["first_chunk"] is True
|
| 167 |
+
return args,dict(kwargs,feat_cache=None)
|
| 168 |
+
def encode_hook(module,args,kwargs):
|
| 169 |
+
assert args[0].ndim == 5 and args[0].shape[2] == 1
|
| 170 |
+
return args,dict(kwargs,feat_cache=None)
|
| 171 |
+
vae.decoder.register_forward_pre_hook(decode_hook,with_kwargs=True)
|
| 172 |
+
vae.encoder.register_forward_pre_hook(encode_hook,with_kwargs=True)
|
| 173 |
+
|
| 174 |
+
def load_pipeline(snapshot,bundle,quantized_components=("text_encoder","transformer","vae"),
|
| 175 |
+
device="cuda",verify_hashes=False,event=None):
|
| 176 |
+
from diffusers import QwenImage21Pipeline,FlowMatchEulerDiscreteScheduler
|
| 177 |
+
from transformers import Qwen3VLProcessor
|
| 178 |
+
snapshot = Path(snapshot)
|
| 179 |
+
components = {name:load_component(snapshot,bundle,name,device,name in quantized_components,verify_hashes,event)
|
| 180 |
+
for name in ("text_encoder","transformer","vae")}
|
| 181 |
+
pipe = QwenImage21Pipeline(
|
| 182 |
+
**components,
|
| 183 |
+
scheduler=FlowMatchEulerDiscreteScheduler.from_pretrained(str(snapshot/"scheduler"),local_files_only=True),
|
| 184 |
+
processor=Qwen3VLProcessor.from_pretrained(str(snapshot/"processor"),local_files_only=True))
|
| 185 |
+
remove_single_frame_temporal_caches(pipe.vae)
|
| 186 |
+
assert not pipe.vae.use_tiling
|
| 187 |
+
return pipe
|
release-manifest.json
ADDED
|
@@ -0,0 +1,475 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "EliovpAI/Qwen_Image-2.1-Uncensored-MXFP4-Paiton",
|
| 3 |
+
"files": [
|
| 4 |
+
{
|
| 5 |
+
"file": ".gitattributes",
|
| 6 |
+
"bytes": 202,
|
| 7 |
+
"sha256": "21b79beb002c111190b80a2f35c99c62797ec56866db77a737229b6470ceff05"
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"file": "LICENSE",
|
| 11 |
+
"bytes": 7831,
|
| 12 |
+
"sha256": "8dc973f024ff95966bea25866efa443fd16776dcb1001e681e3d467ea572b28d"
|
| 13 |
+
},
|
| 14 |
+
{
|
| 15 |
+
"file": "LICENSES/Apache-2.0.txt",
|
| 16 |
+
"bytes": 11357,
|
| 17 |
+
"sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"file": "NOTICE",
|
| 21 |
+
"bytes": 1129,
|
| 22 |
+
"sha256": "d806b541b79b1a95f892141d0e665bd0982e63ec716e892111bf719bbfc1dce1"
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"file": "README.md",
|
| 26 |
+
"bytes": 7682,
|
| 27 |
+
"sha256": "6ab0bf7e70c611034ba540463556a22c5afbda8e9565c3e9b99088a8116ae948"
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"file": "artifacts/NOTICE",
|
| 31 |
+
"bytes": 428,
|
| 32 |
+
"sha256": "5234653975a6c666fa95ecd11ab5a1d8b89bea1a140401a7a5b3977de4f557a6"
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"file": "artifacts/manifest.json",
|
| 36 |
+
"bytes": 796,
|
| 37 |
+
"sha256": "d70c0b019111895436ad73d5e8347e52f0be638e77a502367c6ef2e600fcf9f1"
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"file": "artifacts/mxfp4_weights_gfx1201.so",
|
| 41 |
+
"bytes": 21032,
|
| 42 |
+
"sha256": "8f8943e4161a71aa786ff5c570e82ffe02324aedfdeb71757109f08773708027"
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"file": "checkpoint.lock.json",
|
| 46 |
+
"bytes": 11245,
|
| 47 |
+
"sha256": "d1e654230017cee6b141fb6cce1b8b8cb4dedf925ced8deb6c75a04ec48e6dbb"
|
| 48 |
+
},
|
| 49 |
+
{
|
| 50 |
+
"file": "environment.lock.json",
|
| 51 |
+
"bytes": 1885,
|
| 52 |
+
"sha256": "236ef4ee9b564de3e120aea40452eddb53adcf111eb4beb9bb183c2f67cfeffe"
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"file": "evaluation/mi355-correctness.json",
|
| 56 |
+
"bytes": 61021,
|
| 57 |
+
"sha256": "c2d93f61d11706dd7fce2739e532780aac00632fe64d30c207e3f0cb3444a577"
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"file": "evaluation/numerical.json",
|
| 61 |
+
"bytes": 16855,
|
| 62 |
+
"sha256": "0f42c2c5a3558f455e44e39fb129a65971c485b10af3a6ef5e142226d55c147d"
|
| 63 |
+
},
|
| 64 |
+
{
|
| 65 |
+
"file": "evaluation/quality-pairs-1.png",
|
| 66 |
+
"bytes": 1873907,
|
| 67 |
+
"sha256": "b7c29432908593ba6b2f35da5b3a3dd0fa186793d44087f0d061b674250cd0f3"
|
| 68 |
+
},
|
| 69 |
+
{
|
| 70 |
+
"file": "evaluation/quality-pairs-2.png",
|
| 71 |
+
"bytes": 1726541,
|
| 72 |
+
"sha256": "1c167e6f2f59572808d2116e652514a48044754009d554805aec3bf482fcf983"
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"file": "launch.sh",
|
| 76 |
+
"bytes": 140,
|
| 77 |
+
"sha256": "c7d2ec15a2d59d89818df56e51967139f94922c90ffd2d71b9be3893d69f1851"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"file": "processor/added_tokens.json",
|
| 81 |
+
"bytes": 707,
|
| 82 |
+
"sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680"
|
| 83 |
+
},
|
| 84 |
+
{
|
| 85 |
+
"file": "processor/chat_template.jinja",
|
| 86 |
+
"bytes": 5292,
|
| 87 |
+
"sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4"
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"file": "processor/merges.txt",
|
| 91 |
+
"bytes": 1671853,
|
| 92 |
+
"sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5"
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"file": "processor/preprocessor_config.json",
|
| 96 |
+
"bytes": 782,
|
| 97 |
+
"sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5"
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"file": "processor/special_tokens_map.json",
|
| 101 |
+
"bytes": 613,
|
| 102 |
+
"sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd"
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"file": "processor/tokenizer.json",
|
| 106 |
+
"bytes": 11422654,
|
| 107 |
+
"sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"file": "processor/tokenizer_config.json",
|
| 111 |
+
"bytes": 5445,
|
| 112 |
+
"sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5"
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"file": "processor/video_preprocessor_config.json",
|
| 116 |
+
"bytes": 817,
|
| 117 |
+
"sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1"
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"file": "processor/vocab.json",
|
| 121 |
+
"bytes": 2776833,
|
| 122 |
+
"sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910"
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"file": "qwen_image21/__init__.py",
|
| 126 |
+
"bytes": 79,
|
| 127 |
+
"sha256": "90fc1118f1c837ab77964f6731716aa5cbddca0ec5aafa7b8abfc2b4f5ea7871"
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"file": "qwen_image21/__main__.py",
|
| 131 |
+
"bytes": 2449,
|
| 132 |
+
"sha256": "415ccfee9a03853f2100de3f8d70a6f6eb2c04e5b80dc3ca6de3549a87fe76ff"
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"file": "qwen_image21/decoder.py",
|
| 136 |
+
"bytes": 1431,
|
| 137 |
+
"sha256": "3b07284f4dd38ad990a47091c15f3379a1d22bc8bf2e9539e31c22fa540d3d10"
|
| 138 |
+
},
|
| 139 |
+
{
|
| 140 |
+
"file": "qwen_image21/integrity.py",
|
| 141 |
+
"bytes": 1271,
|
| 142 |
+
"sha256": "7d53a504ee78be001b802e761341d99fd1ed5307b662fa571cea6ec4ada24e49"
|
| 143 |
+
},
|
| 144 |
+
{
|
| 145 |
+
"file": "qwen_image21/runtime.py",
|
| 146 |
+
"bytes": 8675,
|
| 147 |
+
"sha256": "7fc2e7658054a5cf09f72fb744580d54bec9ba33d739aae4d0b3ffc0be2e1997"
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"file": "qwen_image21/server.py",
|
| 151 |
+
"bytes": 4334,
|
| 152 |
+
"sha256": "a7cd405fbe8a6831aaacfad4692201154f414b4555c44549480d22b36bab2808"
|
| 153 |
+
},
|
| 154 |
+
{
|
| 155 |
+
"file": "qwen_image21/weights.py",
|
| 156 |
+
"bytes": 8983,
|
| 157 |
+
"sha256": "1e2d0a0fbac1f127a2b4857500b5bbd36a110f56699da9cae9a934de1b637987"
|
| 158 |
+
},
|
| 159 |
+
{
|
| 160 |
+
"file": "requirements-mi355.lock.txt",
|
| 161 |
+
"bytes": 1035,
|
| 162 |
+
"sha256": "df652384ae77f70dc28b190b44db26cefcb36ea84988bd64b2ca17052c700f4b"
|
| 163 |
+
},
|
| 164 |
+
{
|
| 165 |
+
"file": "requirements.txt",
|
| 166 |
+
"bytes": 275,
|
| 167 |
+
"sha256": "d72e2985b60446d42308df4481398ee4723d3d2122ff89546885660692d89baf"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"file": "result.json",
|
| 171 |
+
"bytes": 250167,
|
| 172 |
+
"sha256": "7d0ccb072548700c0e8f8989eb1d9999a4995c0a71a7734de3be081abe3e4f89"
|
| 173 |
+
},
|
| 174 |
+
{
|
| 175 |
+
"file": "scheduler/scheduler_config.json",
|
| 176 |
+
"bytes": 485,
|
| 177 |
+
"sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1"
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"file": "tests/test_decoder_selection.py",
|
| 181 |
+
"bytes": 1538,
|
| 182 |
+
"sha256": "11e18bc5001177214b2c63f5799b6ac75583cb43c639d866bf52f5981e58324b"
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"file": "text_encoder/config.json",
|
| 186 |
+
"bytes": 1517,
|
| 187 |
+
"sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9"
|
| 188 |
+
},
|
| 189 |
+
{
|
| 190 |
+
"file": "text_encoder/weights-00001.safetensors",
|
| 191 |
+
"bytes": 330613160,
|
| 192 |
+
"sha256": "f4da6dc292c0a961d74a02dd076d24aee3f38289c7f250c8727d298a86cf0d80"
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"file": "text_encoder/weights-00002.safetensors",
|
| 196 |
+
"bytes": 202806640,
|
| 197 |
+
"sha256": "6683ed125cbeb40d6a00216f64e549d1ce36a766f972c57c8c5686550f26f7d3"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"file": "text_encoder/weights-00003.safetensors",
|
| 201 |
+
"bytes": 205035120,
|
| 202 |
+
"sha256": "2df7f765d32ef69481f97034f21d344ac9c251fc6a7dbcdcc016e2c4e6b0f5ac"
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"file": "text_encoder/weights-00004.safetensors",
|
| 206 |
+
"bytes": 205035120,
|
| 207 |
+
"sha256": "bbe642ee7e8e3370f9a0445ba5207bfebee202ea25676e7232d1e44038de3c5c"
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"file": "text_encoder/weights-00005.safetensors",
|
| 211 |
+
"bytes": 202756768,
|
| 212 |
+
"sha256": "c42fca1cc6c1a8ee0e92b0a840faf95e91f8d0852d79d2d81c29869f7cea3a7b"
|
| 213 |
+
},
|
| 214 |
+
{
|
| 215 |
+
"file": "text_encoder/weights-00006.safetensors",
|
| 216 |
+
"bytes": 182434800,
|
| 217 |
+
"sha256": "17df5a53455f78da82104741e906359a5b4eabf697fc4a9294b0891874e9c9c7"
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"file": "text_encoder/weights-00007.safetensors",
|
| 221 |
+
"bytes": 202806672,
|
| 222 |
+
"sha256": "309c016ee140abadb50393412c2fd2c2c1d895edfa52ee15bffffbd92d5b5963"
|
| 223 |
+
},
|
| 224 |
+
{
|
| 225 |
+
"file": "text_encoder/weights-00008.safetensors",
|
| 226 |
+
"bytes": 205035152,
|
| 227 |
+
"sha256": "0463a92fa87a14f70b70019c544e92741e63061b4120a0bb219e5cf219d415c3"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"file": "text_encoder/weights-00009.safetensors",
|
| 231 |
+
"bytes": 205035152,
|
| 232 |
+
"sha256": "14d947a8fa186cae770ea124dffd752b6bfd3a36b3ebd87d904699832c258189"
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"file": "text_encoder/weights-00010.safetensors",
|
| 236 |
+
"bytes": 205035152,
|
| 237 |
+
"sha256": "1b0fb642ff474d93d8fe0a4f0d99d577b4ac4311a4c84cde0a88b16c94b3379a"
|
| 238 |
+
},
|
| 239 |
+
{
|
| 240 |
+
"file": "text_encoder/weights-00011.safetensors",
|
| 241 |
+
"bytes": 207271944,
|
| 242 |
+
"sha256": "260fabe706ff30aacc9348299a6fceaee57af24cfc88ed40a8c412481b639a2b"
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
"file": "text_encoder/weights-00012.safetensors",
|
| 246 |
+
"bytes": 205035120,
|
| 247 |
+
"sha256": "b9ced7666665bedd825cef9d37608332dea80c5c89367b3d455c6ed84d3c1987"
|
| 248 |
+
},
|
| 249 |
+
{
|
| 250 |
+
"file": "text_encoder/weights-00013.safetensors",
|
| 251 |
+
"bytes": 75770384,
|
| 252 |
+
"sha256": "1186899042135f046857ee1c31bbefdc0fbaf8fe8a33d01581b49fc3a1800e35"
|
| 253 |
+
},
|
| 254 |
+
{
|
| 255 |
+
"file": "text_encoder/weights-00014.safetensors",
|
| 256 |
+
"bytes": 209498384,
|
| 257 |
+
"sha256": "ef889195f6e3ecd025b7055afdfc5673969ac2e22c159eff57384e8e86a2a5f0"
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"file": "text_encoder/weights-00015.safetensors",
|
| 261 |
+
"bytes": 205035152,
|
| 262 |
+
"sha256": "152bfd694e16d215d314d86e61914905b3e4cf20ee896de94ea0b6fbaa44494f"
|
| 263 |
+
},
|
| 264 |
+
{
|
| 265 |
+
"file": "text_encoder/weights-00016.safetensors",
|
| 266 |
+
"bytes": 205035152,
|
| 267 |
+
"sha256": "469988778630cf75282d04d1654e724d1fe5dd4391382db52c494d9c4b35a29f"
|
| 268 |
+
},
|
| 269 |
+
{
|
| 270 |
+
"file": "text_encoder/weights-00017.safetensors",
|
| 271 |
+
"bytes": 205035152,
|
| 272 |
+
"sha256": "ae931d67cd4e4dcc8534170e49ae0312b9d00ba76f05ec82e26516b1cec4134f"
|
| 273 |
+
},
|
| 274 |
+
{
|
| 275 |
+
"file": "text_encoder/weights-00018.safetensors",
|
| 276 |
+
"bytes": 205035152,
|
| 277 |
+
"sha256": "c7b0cd6cb16d30b9f0a2282a2e165aa92d349abd1443413ba06098cdf7210971"
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"file": "text_encoder/weights-00019.safetensors",
|
| 281 |
+
"bytes": 205035152,
|
| 282 |
+
"sha256": "c83194f470530b85aaba2b5ed0d4ad011f431390dad9fe707c6e2cb9675eee5d"
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"file": "text_encoder/weights-00020.safetensors",
|
| 286 |
+
"bytes": 71315480,
|
| 287 |
+
"sha256": "4a5648e9be5ff84589f90c47cde78285afe64cf14d2da596f87d6558b34deef4"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"file": "text_encoder/weights-00021.safetensors",
|
| 291 |
+
"bytes": 330613104,
|
| 292 |
+
"sha256": "184e49178bc1843c01b51d758385b5b45d777c3d0e0545bb1bdf7fa9cef3f33d"
|
| 293 |
+
},
|
| 294 |
+
{
|
| 295 |
+
"file": "text_encoder/weights-00022.safetensors",
|
| 296 |
+
"bytes": 209498384,
|
| 297 |
+
"sha256": "d513a74d1e4f3fcf9b89a0cd943a9170dc92e85a0fe81241b3def694b4231e69"
|
| 298 |
+
},
|
| 299 |
+
{
|
| 300 |
+
"file": "text_encoder/weights-00023.safetensors",
|
| 301 |
+
"bytes": 178296192,
|
| 302 |
+
"sha256": "9e3cc9224d17de2ce559ecddd91b2121a1d3e5d371878e89b2df6e2f190906a2"
|
| 303 |
+
},
|
| 304 |
+
{
|
| 305 |
+
"file": "text_encoder/weights.index.json",
|
| 306 |
+
"bytes": 96578,
|
| 307 |
+
"sha256": "52e387de3cb161bb3c49bfa9adfafbecad4ed4b65332b67c517a99f9c80f8247"
|
| 308 |
+
},
|
| 309 |
+
{
|
| 310 |
+
"file": "tools/check_isolation.py",
|
| 311 |
+
"bytes": 2472,
|
| 312 |
+
"sha256": "04764c713242be5ab6993f3b3b396822e62607fb4f84bd7027c4a2079c307049"
|
| 313 |
+
},
|
| 314 |
+
{
|
| 315 |
+
"file": "tools/original-source-manifest.json",
|
| 316 |
+
"bytes": 1913,
|
| 317 |
+
"sha256": "58cc9c4da7cde76a032bcad24b37b3b34d8b4b3715f820e8b7212a857d29cc71"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"file": "tools/prepare_bf16.py",
|
| 321 |
+
"bytes": 9184,
|
| 322 |
+
"sha256": "cd65a5ef4783be2d0670d49285e4aec244d075bf36da0bcbfe4439404ffe5e93"
|
| 323 |
+
},
|
| 324 |
+
{
|
| 325 |
+
"file": "tools/quantize.py",
|
| 326 |
+
"bytes": 14092,
|
| 327 |
+
"sha256": "a58b12a6dfb4de843146d85643d193d0f013685dc14716ec67955d00ab31ea8a"
|
| 328 |
+
},
|
| 329 |
+
{
|
| 330 |
+
"file": "tools/verify_package.py",
|
| 331 |
+
"bytes": 1087,
|
| 332 |
+
"sha256": "926de4608bde9515b5ef30486a2c16f6ac2d8fd7bac367bbf3bd6e25ab4785ce"
|
| 333 |
+
},
|
| 334 |
+
{
|
| 335 |
+
"file": "transformer/config.json",
|
| 336 |
+
"bytes": 370,
|
| 337 |
+
"sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241"
|
| 338 |
+
},
|
| 339 |
+
{
|
| 340 |
+
"file": "transformer/weights-00001.safetensors",
|
| 341 |
+
"bytes": 204473176,
|
| 342 |
+
"sha256": "36ddaae0bed6537ec88e046c6e718307cc76538c70438c0e870078d6d75d0b31"
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"file": "transformer/weights-00002.safetensors",
|
| 346 |
+
"bytes": 205001288,
|
| 347 |
+
"sha256": "e6022b43d61f90ddca5e2d2839cd295527c03d60a24f35fc47268f54acfd63ee"
|
| 348 |
+
},
|
| 349 |
+
{
|
| 350 |
+
"file": "transformer/weights-00003.safetensors",
|
| 351 |
+
"bytes": 205001320,
|
| 352 |
+
"sha256": "154146d6613ed7d4a1d4d71e745ccbd9a0ebbf41b2ccc5c18719c9548b865749"
|
| 353 |
+
},
|
| 354 |
+
{
|
| 355 |
+
"file": "transformer/weights-00004.safetensors",
|
| 356 |
+
"bytes": 205001312,
|
| 357 |
+
"sha256": "3c1705769154f6d17a102cb0a6247375084edb86be66342e983576a1bb6aa95c"
|
| 358 |
+
},
|
| 359 |
+
{
|
| 360 |
+
"file": "transformer/weights-00005.safetensors",
|
| 361 |
+
"bytes": 205000864,
|
| 362 |
+
"sha256": "f647ff6a19319084f412447eaa36629683a4a7a0559062d930a5411accc39a01"
|
| 363 |
+
},
|
| 364 |
+
{
|
| 365 |
+
"file": "transformer/weights-00006.safetensors",
|
| 366 |
+
"bytes": 222826408,
|
| 367 |
+
"sha256": "5f90211ff00349c1ba5174f7354d14ceaa730ff32e38cf3e8d66b549d6f7f515"
|
| 368 |
+
},
|
| 369 |
+
{
|
| 370 |
+
"file": "transformer/weights-00007.safetensors",
|
| 371 |
+
"bytes": 205001320,
|
| 372 |
+
"sha256": "0553e76631c4e011f0f2917fd9e78225ad8eaaf727e2ea8db741bc831eab2f8c"
|
| 373 |
+
},
|
| 374 |
+
{
|
| 375 |
+
"file": "transformer/weights-00008.safetensors",
|
| 376 |
+
"bytes": 205001312,
|
| 377 |
+
"sha256": "32a3febb9d4c2cc15352078bf3b912fc81549376cfc38b9c9bb4291a45afbbf5"
|
| 378 |
+
},
|
| 379 |
+
{
|
| 380 |
+
"file": "transformer/weights-00009.safetensors",
|
| 381 |
+
"bytes": 205001304,
|
| 382 |
+
"sha256": "8b8c326b4fdbbb12ac879cf0e7ccaf6063ea872b6ae70b180e10b5a9051867de"
|
| 383 |
+
},
|
| 384 |
+
{
|
| 385 |
+
"file": "transformer/weights-00010.safetensors",
|
| 386 |
+
"bytes": 205000864,
|
| 387 |
+
"sha256": "6464aaacd54beec15169aa4869e5c1f6b74589f6e402ebe28345ae3e9d49a90c"
|
| 388 |
+
},
|
| 389 |
+
{
|
| 390 |
+
"file": "transformer/weights-00011.safetensors",
|
| 391 |
+
"bytes": 222826408,
|
| 392 |
+
"sha256": "878829a50db13f7155178d55f7f0ac000e0e5be437c604c9a9b2476705a46e32"
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"file": "transformer/weights-00012.safetensors",
|
| 396 |
+
"bytes": 205001320,
|
| 397 |
+
"sha256": "c5f8409cbc21760a02a2530fa5ef18781c6cf1382ed1da378b1ef0f19ff60abe"
|
| 398 |
+
},
|
| 399 |
+
{
|
| 400 |
+
"file": "transformer/weights-00013.safetensors",
|
| 401 |
+
"bytes": 205001328,
|
| 402 |
+
"sha256": "58f4c2e56367921cce13e9a0ba9e4d869601e79609eb37f764b3b5acd9496732"
|
| 403 |
+
},
|
| 404 |
+
{
|
| 405 |
+
"file": "transformer/weights-00014.safetensors",
|
| 406 |
+
"bytes": 205001296,
|
| 407 |
+
"sha256": "ff906d4aa0322b4b58a503f091fb97d6e5d4dc356b84b0497c0a49570f40d701"
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"file": "transformer/weights-00015.safetensors",
|
| 411 |
+
"bytes": 205000856,
|
| 412 |
+
"sha256": "29cea08aa74c9b8ef2c274ca5c0980dc6fae58a2787122749763aa715fbfb326"
|
| 413 |
+
},
|
| 414 |
+
{
|
| 415 |
+
"file": "transformer/weights-00016.safetensors",
|
| 416 |
+
"bytes": 222826392,
|
| 417 |
+
"sha256": "5c0f611079cdd03233fe35cf6d709763df8944b24e48f6011ff43fee0b9b0918"
|
| 418 |
+
},
|
| 419 |
+
{
|
| 420 |
+
"file": "transformer/weights-00017.safetensors",
|
| 421 |
+
"bytes": 205001288,
|
| 422 |
+
"sha256": "44449b2e3fad2175d17a7165307a645d46af2f4096d48f517c10deb1585466de"
|
| 423 |
+
},
|
| 424 |
+
{
|
| 425 |
+
"file": "transformer/weights-00018.safetensors",
|
| 426 |
+
"bytes": 205001296,
|
| 427 |
+
"sha256": "a08d51a0f37a7c500474880a934d0f3d1bd764326b16a68db06839dbab045f9b"
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"file": "transformer/weights-00019.safetensors",
|
| 431 |
+
"bytes": 202902600,
|
| 432 |
+
"sha256": "67ea9aef20743c34a4f86579b79967fdf453d37709b0ffb6d7981190437c0cdb"
|
| 433 |
+
},
|
| 434 |
+
{
|
| 435 |
+
"file": "transformer/weights-00020.safetensors",
|
| 436 |
+
"bytes": 33563056,
|
| 437 |
+
"sha256": "8c085dafd9ae1345fefe11996b88f029992e79f47fdc09ea8c0554a161f3fa9f"
|
| 438 |
+
},
|
| 439 |
+
{
|
| 440 |
+
"file": "transformer/weights.index.json",
|
| 441 |
+
"bytes": 41507,
|
| 442 |
+
"sha256": "146e1a34bb9b15a74ad72e43ba2550fe31787cce53467e0b023f036f0b8ccf1f"
|
| 443 |
+
},
|
| 444 |
+
{
|
| 445 |
+
"file": "vae/config.json",
|
| 446 |
+
"bytes": 2079,
|
| 447 |
+
"sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2"
|
| 448 |
+
},
|
| 449 |
+
{
|
| 450 |
+
"file": "vae/weights-00001.safetensors",
|
| 451 |
+
"bytes": 203107424,
|
| 452 |
+
"sha256": "1043a8bb881d751f95b427f9048bb290d8a2e22f0f4f122a5c0b35d7e820d125"
|
| 453 |
+
},
|
| 454 |
+
{
|
| 455 |
+
"file": "vae/weights-00002.safetensors",
|
| 456 |
+
"bytes": 220346496,
|
| 457 |
+
"sha256": "b491b4a0b7322e1e0efa0b4ad6249858583096986dd5c72371584b8c9d925fff"
|
| 458 |
+
},
|
| 459 |
+
{
|
| 460 |
+
"file": "vae/weights-00003.safetensors",
|
| 461 |
+
"bytes": 204800464,
|
| 462 |
+
"sha256": "3e7be3114f62aa557260dc7ddf5825f9fb28c7d8b86b12b774599840da0cf32e"
|
| 463 |
+
},
|
| 464 |
+
{
|
| 465 |
+
"file": "vae/weights-00004.safetensors",
|
| 466 |
+
"bytes": 47254608,
|
| 467 |
+
"sha256": "3f3fc4a4ad9b176b1905cb9e3c4bd37ce98d177f1b8caa561d7a135a0130f690"
|
| 468 |
+
},
|
| 469 |
+
{
|
| 470 |
+
"file": "vae/weights.index.json",
|
| 471 |
+
"bytes": 18726,
|
| 472 |
+
"sha256": "b1153ff6959e47d36954b1af174bfce909401459cf51756d624b0bf53cad3726"
|
| 473 |
+
}
|
| 474 |
+
]
|
| 475 |
+
}
|
requirements-mi355.lock.txt
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Exact tested dependency closure. Install the matching ROCm Torch stack first.
|
| 2 |
+
# Upstream Torch may declare auxiliary packages; this adapter uses eager BF16 operations.
|
| 3 |
+
accelerate==1.15.0
|
| 4 |
+
annotated-doc==0.0.5
|
| 5 |
+
anyio==4.15.1
|
| 6 |
+
certifi==2026.7.22
|
| 7 |
+
charset-normalizer==3.5.1
|
| 8 |
+
click==8.5.0
|
| 9 |
+
diffusers @ https://github.com/huggingface/diffusers/archive/7263f3317f6b392d62f41e9d75ed9d7e21fc5a5c.tar.gz
|
| 10 |
+
filelock==3.32.3
|
| 11 |
+
fsspec==2026.6.0
|
| 12 |
+
h11==0.16.0
|
| 13 |
+
hf-xet==1.6.0
|
| 14 |
+
httpcore==1.0.9
|
| 15 |
+
httpx==0.28.1
|
| 16 |
+
huggingface-hub==1.31.0
|
| 17 |
+
idna==3.20
|
| 18 |
+
importlib-metadata==9.0.1
|
| 19 |
+
jinja2==3.1.6
|
| 20 |
+
markdown-it-py==4.2.0
|
| 21 |
+
markupsafe==3.0.3
|
| 22 |
+
mdurl==0.1.2
|
| 23 |
+
mpmath==1.3.0
|
| 24 |
+
networkx==3.6.1
|
| 25 |
+
numpy==2.5.2
|
| 26 |
+
packaging==26.3
|
| 27 |
+
pillow==12.3.0
|
| 28 |
+
psutil==7.2.2
|
| 29 |
+
pygments==2.21.0
|
| 30 |
+
pyyaml==6.0.3
|
| 31 |
+
regex==2026.9.10
|
| 32 |
+
requests==2.34.2
|
| 33 |
+
rich==15.0.0
|
| 34 |
+
safetensors==0.8.0
|
| 35 |
+
setuptools==78.1.0
|
| 36 |
+
shellingham==1.5.4
|
| 37 |
+
sympy==1.14.0
|
| 38 |
+
tokenizers==0.23.2
|
| 39 |
+
torch==2.10.0+rocm7.1
|
| 40 |
+
torchvision==0.25.0+rocm7.1
|
| 41 |
+
tqdm==4.70.1
|
| 42 |
+
transformers==5.17.0
|
| 43 |
+
triton-rocm==3.6.0
|
| 44 |
+
typer==0.27.2
|
| 45 |
+
typing-extensions==4.16.0
|
| 46 |
+
urllib3==2.8.0
|
| 47 |
+
zipp==4.1.0
|
requirements.txt
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Use the separately pinned ROCm Torch environment. This file does not replace Torch.
|
| 2 |
+
diffusers @ git+https://github.com/huggingface/diffusers.git@7263f3317f6b392d62f41e9d75ed9d7e21fc5a5c
|
| 3 |
+
transformers==5.17.0
|
| 4 |
+
accelerate==1.15.0
|
| 5 |
+
safetensors==0.8.0
|
| 6 |
+
Pillow==12.3.0
|
| 7 |
+
numpy==2.5.2
|
result.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
scheduler/scheduler_config.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "FlowMatchEulerDiscreteScheduler",
|
| 3 |
+
"_diffusers_version": "0.37.0.dev0",
|
| 4 |
+
"base_image_seq_len": 256,
|
| 5 |
+
"base_shift": 0.5,
|
| 6 |
+
"invert_sigmas": false,
|
| 7 |
+
"max_image_seq_len": 8192,
|
| 8 |
+
"max_shift": 0.9,
|
| 9 |
+
"num_train_timesteps": 1000,
|
| 10 |
+
"shift": 1.0,
|
| 11 |
+
"shift_terminal": 0.02,
|
| 12 |
+
"stochastic_sampling": false,
|
| 13 |
+
"time_shift_type": "exponential",
|
| 14 |
+
"use_beta_sigmas": false,
|
| 15 |
+
"use_dynamic_shifting": true,
|
| 16 |
+
"use_exponential_sigmas": false,
|
| 17 |
+
"use_karras_sigmas": false
|
| 18 |
+
}
|
tests/test_decoder_selection.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Architecture routing and artifact-integrity checks; no framework or GPU."""
|
| 2 |
+
import hashlib
|
| 3 |
+
import json
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
import tempfile
|
| 6 |
+
import unittest
|
| 7 |
+
from qwen_image21.decoder import select_decoder
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
class DecoderSelection(unittest.TestCase):
|
| 11 |
+
def fixture(self,root):
|
| 12 |
+
data=b'allowlisted library bytes';(root/'decoder.so').write_bytes(data)
|
| 13 |
+
(root/'manifest.json').write_text(json.dumps(dict(file='decoder.so',architecture='gfx1201',abi_version=1,sha256=hashlib.sha256(data).hexdigest())))
|
| 14 |
+
|
| 15 |
+
def test_mi355_auto_does_not_need_or_load_rdna4_artifact(self):
|
| 16 |
+
path,reason=select_decoder('gfx950:sramecc+:xnack-','auto','/does/not/exist')
|
| 17 |
+
self.assertIsNone(path);self.assertIn('gfx950',reason)
|
| 18 |
+
|
| 19 |
+
def test_explicit_native_rejects_other_architecture(self):
|
| 20 |
+
with self.assertRaisesRegex(ValueError,'gfx1201 only'):
|
| 21 |
+
select_decoder('gfx950','native','/does/not/exist')
|
| 22 |
+
|
| 23 |
+
def test_rdna4_auto_verifies_artifact_and_detects_corruption(self):
|
| 24 |
+
with tempfile.TemporaryDirectory() as tmp:
|
| 25 |
+
root=Path(tmp);self.fixture(root)
|
| 26 |
+
path,_=select_decoder('gfx1201','auto',root);self.assertEqual(path,root/'decoder.so')
|
| 27 |
+
(root/'decoder.so').write_bytes(b'corrupt')
|
| 28 |
+
with self.assertRaisesRegex(ValueError,'SHA-256 mismatch'):
|
| 29 |
+
select_decoder('gfx1201','auto',root)
|
| 30 |
+
|
| 31 |
+
def test_framework_override_does_not_require_native_library(self):
|
| 32 |
+
self.assertIsNone(select_decoder('gfx1201','framework','/does/not/exist')[0])
|
text_encoder/config.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"Qwen3VLForConditionalGeneration"
|
| 4 |
+
],
|
| 5 |
+
"dtype": "bfloat16",
|
| 6 |
+
"image_token_id": 151655,
|
| 7 |
+
"model_type": "qwen3_vl",
|
| 8 |
+
"text_config": {
|
| 9 |
+
"attention_bias": false,
|
| 10 |
+
"attention_dropout": 0.0,
|
| 11 |
+
"bos_token_id": 151643,
|
| 12 |
+
"dtype": "bfloat16",
|
| 13 |
+
"eos_token_id": 151645,
|
| 14 |
+
"head_dim": 128,
|
| 15 |
+
"hidden_act": "silu",
|
| 16 |
+
"hidden_size": 4096,
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 12288,
|
| 19 |
+
"max_position_embeddings": 262144,
|
| 20 |
+
"model_type": "qwen3_vl_text",
|
| 21 |
+
"num_attention_heads": 32,
|
| 22 |
+
"num_hidden_layers": 36,
|
| 23 |
+
"num_key_value_heads": 8,
|
| 24 |
+
"rms_norm_eps": 1e-06,
|
| 25 |
+
"rope_scaling": {
|
| 26 |
+
"mrope_interleaved": true,
|
| 27 |
+
"mrope_section": [
|
| 28 |
+
24,
|
| 29 |
+
20,
|
| 30 |
+
20
|
| 31 |
+
],
|
| 32 |
+
"rope_type": "default"
|
| 33 |
+
},
|
| 34 |
+
"rope_theta": 5000000,
|
| 35 |
+
"use_cache": true,
|
| 36 |
+
"vocab_size": 151936
|
| 37 |
+
},
|
| 38 |
+
"tie_word_embeddings": false,
|
| 39 |
+
"transformers_version": "4.57.1",
|
| 40 |
+
"video_token_id": 151656,
|
| 41 |
+
"vision_config": {
|
| 42 |
+
"deepstack_visual_indexes": [
|
| 43 |
+
8,
|
| 44 |
+
16,
|
| 45 |
+
24
|
| 46 |
+
],
|
| 47 |
+
"depth": 27,
|
| 48 |
+
"dtype": "bfloat16",
|
| 49 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 50 |
+
"hidden_size": 1152,
|
| 51 |
+
"in_channels": 3,
|
| 52 |
+
"initializer_range": 0.02,
|
| 53 |
+
"intermediate_size": 4304,
|
| 54 |
+
"model_type": "qwen3_vl",
|
| 55 |
+
"num_heads": 16,
|
| 56 |
+
"num_position_embeddings": 2304,
|
| 57 |
+
"out_hidden_size": 4096,
|
| 58 |
+
"patch_size": 16,
|
| 59 |
+
"spatial_merge_size": 2,
|
| 60 |
+
"temporal_patch_size": 2
|
| 61 |
+
},
|
| 62 |
+
"vision_end_token_id": 151653,
|
| 63 |
+
"vision_start_token_id": 151652
|
| 64 |
+
}
|
text_encoder/weights-00001.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f4da6dc292c0a961d74a02dd076d24aee3f38289c7f250c8727d298a86cf0d80
|
| 3 |
+
size 330613160
|
text_encoder/weights-00002.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6683ed125cbeb40d6a00216f64e549d1ce36a766f972c57c8c5686550f26f7d3
|
| 3 |
+
size 202806640
|
text_encoder/weights-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2df7f765d32ef69481f97034f21d344ac9c251fc6a7dbcdcc016e2c4e6b0f5ac
|
| 3 |
+
size 205035120
|
text_encoder/weights-00004.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bbe642ee7e8e3370f9a0445ba5207bfebee202ea25676e7232d1e44038de3c5c
|
| 3 |
+
size 205035120
|
text_encoder/weights-00005.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c42fca1cc6c1a8ee0e92b0a840faf95e91f8d0852d79d2d81c29869f7cea3a7b
|
| 3 |
+
size 202756768
|
text_encoder/weights-00006.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:17df5a53455f78da82104741e906359a5b4eabf697fc4a9294b0891874e9c9c7
|
| 3 |
+
size 182434800
|
text_encoder/weights-00007.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:309c016ee140abadb50393412c2fd2c2c1d895edfa52ee15bffffbd92d5b5963
|
| 3 |
+
size 202806672
|
text_encoder/weights-00008.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0463a92fa87a14f70b70019c544e92741e63061b4120a0bb219e5cf219d415c3
|
| 3 |
+
size 205035152
|
text_encoder/weights-00009.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:14d947a8fa186cae770ea124dffd752b6bfd3a36b3ebd87d904699832c258189
|
| 3 |
+
size 205035152
|
text_encoder/weights-00010.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1b0fb642ff474d93d8fe0a4f0d99d577b4ac4311a4c84cde0a88b16c94b3379a
|
| 3 |
+
size 205035152
|
text_encoder/weights-00011.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:260fabe706ff30aacc9348299a6fceaee57af24cfc88ed40a8c412481b639a2b
|
| 3 |
+
size 207271944
|
text_encoder/weights-00012.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b9ced7666665bedd825cef9d37608332dea80c5c89367b3d455c6ed84d3c1987
|
| 3 |
+
size 205035120
|