MatthiasC commited on
Commit
9f824d9
1 Parent(s): a2566ec

Remove unnecessary files and clean up code

Browse files
CITATION.cff DELETED
@@ -1,17 +0,0 @@
1
- cff-version: 1.2.0
2
- message: "If you find this repository useful in your research, please cite"
3
- authors:
4
- - family-names: Kim
5
- given-names: Saehoon
6
- - family-names: Cho
7
- given-names: Sanghun
8
- - family-names: Kim
9
- given-names: Chiheon
10
- - family-names: Lee
11
- given-names: Doyup
12
- - family-names: Baek
13
- given-names: Woonhyuk
14
- title: "minDALL-E on Conceptual Captions"
15
- version: 0.1
16
- date-released: 2021-12-14
17
- repository-code: https://github.com/kakaobrain/minDALL-E
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LICENSE DELETED
@@ -1,2 +0,0 @@
1
- The `source codes` are licensed under [Apache 2.0](LICENSE.apache-2.0) License.
2
- The `stage2 pretrained weights` are licensed under [CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) License.
 
 
 
LICENSE.apache-2.0 DELETED
@@ -1,201 +0,0 @@
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 [2021.11.13] [Kakao Brain]
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LICENSE.cc-by-nc-sa-4.0 DELETED
@@ -1,437 +0,0 @@
1
- Attribution-NonCommercial-ShareAlike 4.0 International
2
-
3
- =======================================================================
4
-
5
- Creative Commons Corporation ("Creative Commons") is not a law firm and
6
- does not provide legal services or legal advice. Distribution of
7
- Creative Commons public licenses does not create a lawyer-client or
8
- other relationship. Creative Commons makes its licenses and related
9
- information available on an "as-is" basis. Creative Commons gives no
10
- warranties regarding its licenses, any material licensed under their
11
- terms and conditions, or any related information. Creative Commons
12
- disclaims all liability for damages resulting from their use to the
13
- fullest extent possible.
14
-
15
- Using Creative Commons Public Licenses
16
-
17
- Creative Commons public licenses provide a standard set of terms and
18
- conditions that creators and other rights holders may use to share
19
- original works of authorship and other material subject to copyright
20
- and certain other rights specified in the public license below. The
21
- following considerations are for informational purposes only, are not
22
- exhaustive, and do not form part of our licenses.
23
-
24
- Considerations for licensors: Our public licenses are
25
- intended for use by those authorized to give the public
26
- permission to use material in ways otherwise restricted by
27
- copyright and certain other rights. Our licenses are
28
- irrevocable. Licensors should read and understand the terms
29
- and conditions of the license they choose before applying it.
30
- Licensors should also secure all rights necessary before
31
- applying our licenses so that the public can reuse the
32
- material as expected. Licensors should clearly mark any
33
- material not subject to the license. This includes other CC-
34
- licensed material, or material used under an exception or
35
- limitation to copyright. More considerations for licensors:
36
- wiki.creativecommons.org/Considerations_for_licensors
37
-
38
- Considerations for the public: By using one of our public
39
- licenses, a licensor grants the public permission to use the
40
- licensed material under specified terms and conditions. If
41
- the licensor's permission is not necessary for any reason--for
42
- example, because of any applicable exception or limitation to
43
- copyright--then that use is not regulated by the license. Our
44
- licenses grant only permissions under copyright and certain
45
- other rights that a licensor has authority to grant. Use of
46
- the licensed material may still be restricted for other
47
- reasons, including because others have copyright or other
48
- rights in the material. A licensor may make special requests,
49
- such as asking that all changes be marked or described.
50
- Although not required by our licenses, you are encouraged to
51
- respect those requests where reasonable. More_considerations
52
- for the public:
53
- wiki.creativecommons.org/Considerations_for_licensees
54
-
55
- =======================================================================
56
-
57
- Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
58
- Public License
59
-
60
- By exercising the Licensed Rights (defined below), You accept and agree
61
- to be bound by the terms and conditions of this Creative Commons
62
- Attribution-NonCommercial-ShareAlike 4.0 International Public License
63
- ("Public License"). To the extent this Public License may be
64
- interpreted as a contract, You are granted the Licensed Rights in
65
- consideration of Your acceptance of these terms and conditions, and the
66
- Licensor grants You such rights in consideration of benefits the
67
- Licensor receives from making the Licensed Material available under
68
- these terms and conditions.
69
-
70
-
71
- Section 1 -- Definitions.
72
-
73
- a. Adapted Material means material subject to Copyright and Similar
74
- Rights that is derived from or based upon the Licensed Material
75
- and in which the Licensed Material is translated, altered,
76
- arranged, transformed, or otherwise modified in a manner requiring
77
- permission under the Copyright and Similar Rights held by the
78
- Licensor. For purposes of this Public License, where the Licensed
79
- Material is a musical work, performance, or sound recording,
80
- Adapted Material is always produced where the Licensed Material is
81
- synched in timed relation with a moving image.
82
-
83
- b. Adapter's License means the license You apply to Your Copyright
84
- and Similar Rights in Your contributions to Adapted Material in
85
- accordance with the terms and conditions of this Public License.
86
-
87
- c. BY-NC-SA Compatible License means a license listed at
88
- creativecommons.org/compatiblelicenses, approved by Creative
89
- Commons as essentially the equivalent of this Public License.
90
-
91
- d. Copyright and Similar Rights means copyright and/or similar rights
92
- closely related to copyright including, without limitation,
93
- performance, broadcast, sound recording, and Sui Generis Database
94
- Rights, without regard to how the rights are labeled or
95
- categorized. For purposes of this Public License, the rights
96
- specified in Section 2(b)(1)-(2) are not Copyright and Similar
97
- Rights.
98
-
99
- e. Effective Technological Measures means those measures that, in the
100
- absence of proper authority, may not be circumvented under laws
101
- fulfilling obligations under Article 11 of the WIPO Copyright
102
- Treaty adopted on December 20, 1996, and/or similar international
103
- agreements.
104
-
105
- f. Exceptions and Limitations means fair use, fair dealing, and/or
106
- any other exception or limitation to Copyright and Similar Rights
107
- that applies to Your use of the Licensed Material.
108
-
109
- g. License Elements means the license attributes listed in the name
110
- of a Creative Commons Public License. The License Elements of this
111
- Public License are Attribution, NonCommercial, and ShareAlike.
112
-
113
- h. Licensed Material means the artistic or literary work, database,
114
- or other material to which the Licensor applied this Public
115
- License.
116
-
117
- i. Licensed Rights means the rights granted to You subject to the
118
- terms and conditions of this Public License, which are limited to
119
- all Copyright and Similar Rights that apply to Your use of the
120
- Licensed Material and that the Licensor has authority to license.
121
-
122
- j. Licensor means the individual(s) or entity(ies) granting rights
123
- under this Public License.
124
-
125
- k. NonCommercial means not primarily intended for or directed towards
126
- commercial advantage or monetary compensation. For purposes of
127
- this Public License, the exchange of the Licensed Material for
128
- other material subject to Copyright and Similar Rights by digital
129
- file-sharing or similar means is NonCommercial provided there is
130
- no payment of monetary compensation in connection with the
131
- exchange.
132
-
133
- l. Share means to provide material to the public by any means or
134
- process that requires permission under the Licensed Rights, such
135
- as reproduction, public display, public performance, distribution,
136
- dissemination, communication, or importation, and to make material
137
- available to the public including in ways that members of the
138
- public may access the material from a place and at a time
139
- individually chosen by them.
140
-
141
- m. Sui Generis Database Rights means rights other than copyright
142
- resulting from Directive 96/9/EC of the European Parliament and of
143
- the Council of 11 March 1996 on the legal protection of databases,
144
- as amended and/or succeeded, as well as other essentially
145
- equivalent rights anywhere in the world.
146
-
147
- n. You means the individual or entity exercising the Licensed Rights
148
- under this Public License. Your has a corresponding meaning.
149
-
150
-
151
- Section 2 -- Scope.
152
-
153
- a. License grant.
154
-
155
- 1. Subject to the terms and conditions of this Public License,
156
- the Licensor hereby grants You a worldwide, royalty-free,
157
- non-sublicensable, non-exclusive, irrevocable license to
158
- exercise the Licensed Rights in the Licensed Material to:
159
-
160
- a. reproduce and Share the Licensed Material, in whole or
161
- in part, for NonCommercial purposes only; and
162
-
163
- b. produce, reproduce, and Share Adapted Material for
164
- NonCommercial purposes only.
165
-
166
- 2. Exceptions and Limitations. For the avoidance of doubt, where
167
- Exceptions and Limitations apply to Your use, this Public
168
- License does not apply, and You do not need to comply with
169
- its terms and conditions.
170
-
171
- 3. Term. The term of this Public License is specified in Section
172
- 6(a).
173
-
174
- 4. Media and formats; technical modifications allowed. The
175
- Licensor authorizes You to exercise the Licensed Rights in
176
- all media and formats whether now known or hereafter created,
177
- and to make technical modifications necessary to do so. The
178
- Licensor waives and/or agrees not to assert any right or
179
- authority to forbid You from making technical modifications
180
- necessary to exercise the Licensed Rights, including
181
- technical modifications necessary to circumvent Effective
182
- Technological Measures. For purposes of this Public License,
183
- simply making modifications authorized by this Section 2(a)
184
- (4) never produces Adapted Material.
185
-
186
- 5. Downstream recipients.
187
-
188
- a. Offer from the Licensor -- Licensed Material. Every
189
- recipient of the Licensed Material automatically
190
- receives an offer from the Licensor to exercise the
191
- Licensed Rights under the terms and conditions of this
192
- Public License.
193
-
194
- b. Additional offer from the Licensor -- Adapted Material.
195
- Every recipient of Adapted Material from You
196
- automatically receives an offer from the Licensor to
197
- exercise the Licensed Rights in the Adapted Material
198
- under the conditions of the Adapter's License You apply.
199
-
200
- c. No downstream restrictions. You may not offer or impose
201
- any additional or different terms or conditions on, or
202
- apply any Effective Technological Measures to, the
203
- Licensed Material if doing so restricts exercise of the
204
- Licensed Rights by any recipient of the Licensed
205
- Material.
206
-
207
- 6. No endorsement. Nothing in this Public License constitutes or
208
- may be construed as permission to assert or imply that You
209
- are, or that Your use of the Licensed Material is, connected
210
- with, or sponsored, endorsed, or granted official status by,
211
- the Licensor or others designated to receive attribution as
212
- provided in Section 3(a)(1)(A)(i).
213
-
214
- b. Other rights.
215
-
216
- 1. Moral rights, such as the right of integrity, are not
217
- licensed under this Public License, nor are publicity,
218
- privacy, and/or other similar personality rights; however, to
219
- the extent possible, the Licensor waives and/or agrees not to
220
- assert any such rights held by the Licensor to the limited
221
- extent necessary to allow You to exercise the Licensed
222
- Rights, but not otherwise.
223
-
224
- 2. Patent and trademark rights are not licensed under this
225
- Public License.
226
-
227
- 3. To the extent possible, the Licensor waives any right to
228
- collect royalties from You for the exercise of the Licensed
229
- Rights, whether directly or through a collecting society
230
- under any voluntary or waivable statutory or compulsory
231
- licensing scheme. In all other cases the Licensor expressly
232
- reserves any right to collect such royalties, including when
233
- the Licensed Material is used other than for NonCommercial
234
- purposes.
235
-
236
-
237
- Section 3 -- License Conditions.
238
-
239
- Your exercise of the Licensed Rights is expressly made subject to the
240
- following conditions.
241
-
242
- a. Attribution.
243
-
244
- 1. If You Share the Licensed Material (including in modified
245
- form), You must:
246
-
247
- a. retain the following if it is supplied by the Licensor
248
- with the Licensed Material:
249
-
250
- i. identification of the creator(s) of the Licensed
251
- Material and any others designated to receive
252
- attribution, in any reasonable manner requested by
253
- the Licensor (including by pseudonym if
254
- designated);
255
-
256
- ii. a copyright notice;
257
-
258
- iii. a notice that refers to this Public License;
259
-
260
- iv. a notice that refers to the disclaimer of
261
- warranties;
262
-
263
- v. a URI or hyperlink to the Licensed Material to the
264
- extent reasonably practicable;
265
-
266
- b. indicate if You modified the Licensed Material and
267
- retain an indication of any previous modifications; and
268
-
269
- c. indicate the Licensed Material is licensed under this
270
- Public License, and include the text of, or the URI or
271
- hyperlink to, this Public License.
272
-
273
- 2. You may satisfy the conditions in Section 3(a)(1) in any
274
- reasonable manner based on the medium, means, and context in
275
- which You Share the Licensed Material. For example, it may be
276
- reasonable to satisfy the conditions by providing a URI or
277
- hyperlink to a resource that includes the required
278
- information.
279
- 3. If requested by the Licensor, You must remove any of the
280
- information required by Section 3(a)(1)(A) to the extent
281
- reasonably practicable.
282
-
283
- b. ShareAlike.
284
-
285
- In addition to the conditions in Section 3(a), if You Share
286
- Adapted Material You produce, the following conditions also apply.
287
-
288
- 1. The Adapter's License You apply must be a Creative Commons
289
- license with the same License Elements, this version or
290
- later, or a BY-NC-SA Compatible License.
291
-
292
- 2. You must include the text of, or the URI or hyperlink to, the
293
- Adapter's License You apply. You may satisfy this condition
294
- in any reasonable manner based on the medium, means, and
295
- context in which You Share Adapted Material.
296
-
297
- 3. You may not offer or impose any additional or different terms
298
- or conditions on, or apply any Effective Technological
299
- Measures to, Adapted Material that restrict exercise of the
300
- rights granted under the Adapter's License You apply.
301
-
302
-
303
- Section 4 -- Sui Generis Database Rights.
304
-
305
- Where the Licensed Rights include Sui Generis Database Rights that
306
- apply to Your use of the Licensed Material:
307
-
308
- a. for the avoidance of doubt, Section 2(a)(1) grants You the right
309
- to extract, reuse, reproduce, and Share all or a substantial
310
- portion of the contents of the database for NonCommercial purposes
311
- only;
312
-
313
- b. if You include all or a substantial portion of the database
314
- contents in a database in which You have Sui Generis Database
315
- Rights, then the database in which You have Sui Generis Database
316
- Rights (but not its individual contents) is Adapted Material,
317
- including for purposes of Section 3(b); and
318
-
319
- c. You must comply with the conditions in Section 3(a) if You Share
320
- all or a substantial portion of the contents of the database.
321
-
322
- For the avoidance of doubt, this Section 4 supplements and does not
323
- replace Your obligations under this Public License where the Licensed
324
- Rights include other Copyright and Similar Rights.
325
-
326
-
327
- Section 5 -- Disclaimer of Warranties and Limitation of Liability.
328
-
329
- a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
330
- EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
331
- AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
332
- ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
333
- IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
334
- WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
335
- PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
336
- ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
337
- KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
338
- ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
339
-
340
- b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
341
- TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
342
- NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
343
- INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
344
- COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
345
- USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
346
- ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
347
- DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
348
- IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
349
-
350
- c. The disclaimer of warranties and limitation of liability provided
351
- above shall be interpreted in a manner that, to the extent
352
- possible, most closely approximates an absolute disclaimer and
353
- waiver of all liability.
354
-
355
-
356
- Section 6 -- Term and Termination.
357
-
358
- a. This Public License applies for the term of the Copyright and
359
- Similar Rights licensed here. However, if You fail to comply with
360
- this Public License, then Your rights under this Public License
361
- terminate automatically.
362
-
363
- b. Where Your right to use the Licensed Material has terminated under
364
- Section 6(a), it reinstates:
365
-
366
- 1. automatically as of the date the violation is cured, provided
367
- it is cured within 30 days of Your discovery of the
368
- violation; or
369
-
370
- 2. upon express reinstatement by the Licensor.
371
-
372
- For the avoidance of doubt, this Section 6(b) does not affect any
373
- right the Licensor may have to seek remedies for Your violations
374
- of this Public License.
375
-
376
- c. For the avoidance of doubt, the Licensor may also offer the
377
- Licensed Material under separate terms or conditions or stop
378
- distributing the Licensed Material at any time; however, doing so
379
- will not terminate this Public License.
380
-
381
- d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
382
- License.
383
-
384
-
385
- Section 7 -- Other Terms and Conditions.
386
-
387
- a. The Licensor shall not be bound by any additional or different
388
- terms or conditions communicated by You unless expressly agreed.
389
-
390
- b. Any arrangements, understandings, or agreements regarding the
391
- Licensed Material not stated herein are separate from and
392
- independent of the terms and conditions of this Public License.
393
-
394
-
395
- Section 8 -- Interpretation.
396
-
397
- a. For the avoidance of doubt, this Public License does not, and
398
- shall not be interpreted to, reduce, limit, restrict, or impose
399
- conditions on any use of the Licensed Material that could lawfully
400
- be made without permission under this Public License.
401
-
402
- b. To the extent possible, if any provision of this Public License is
403
- deemed unenforceable, it shall be automatically reformed to the
404
- minimum extent necessary to make it enforceable. If the provision
405
- cannot be reformed, it shall be severed from this Public License
406
- without affecting the enforceability of the remaining terms and
407
- conditions.
408
-
409
- c. No term or condition of this Public License will be waived and no
410
- failure to comply consented to unless expressly agreed to by the
411
- Licensor.
412
-
413
- d. Nothing in this Public License constitutes or may be interpreted
414
- as a limitation upon, or waiver of, any privileges and immunities
415
- that apply to the Licensor or You, including from the legal
416
- processes of any jurisdiction or authority.
417
-
418
- =======================================================================
419
-
420
- Creative Commons is not a party to its public
421
- licenses. Notwithstanding, Creative Commons may elect to apply one of
422
- its public licenses to material it publishes and in those instances
423
- will be considered the “Licensor.” The text of the Creative Commons
424
- public licenses is dedicated to the public domain under the CC0 Public
425
- Domain Dedication. Except for the limited purpose of indicating that
426
- material is shared under a Creative Commons public license or as
427
- otherwise permitted by the Creative Commons policies published at
428
- creativecommons.org/policies, Creative Commons does not authorize the
429
- use of the trademark "Creative Commons" or any other trademark or logo
430
- of Creative Commons without its prior written consent including,
431
- without limitation, in connection with any unauthorized modifications
432
- to any of its public licenses or any other arrangements,
433
- understandings, or agreements concerning use of licensed material. For
434
- the avoidance of doubt, this paragraph does not form part of the
435
- public licenses.
436
-
437
- Creative Commons may be contacted at creativecommons.org.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -1,37 +1,9 @@
1
  ---
2
- title: MinDALL E
3
  emoji: 🔥
4
  colorFrom: red
5
  colorTo: yellow
6
  sdk: streamlit
7
  app_file: app.py
8
  pinned: false
9
- ---
10
-
11
- # Configuration
12
-
13
- `title`: _string_
14
- Display title for the Space
15
-
16
- `emoji`: _string_
17
- Space emoji (emoji-only character allowed)
18
-
19
- `colorFrom`: _string_
20
- Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
21
-
22
- `colorTo`: _string_
23
- Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
24
-
25
- `sdk`: _string_
26
- Can be either `gradio` or `streamlit`
27
-
28
- `sdk_version` : _string_
29
- Only applicable for `streamlit` SDK.
30
- See [doc](https://hf.co/docs/hub/spaces) for more info on supported versions.
31
-
32
- `app_file`: _string_
33
- Path to your main application file (which contains either `gradio` or `streamlit` Python code).
34
- Path is relative to the root of the repository.
35
-
36
- `pinned`: _boolean_
37
- Whether the Space stays on top of your list.
 
1
  ---
2
+ title: Logo Generator
3
  emoji: 🔥
4
  colorFrom: red
5
  colorTo: yellow
6
  sdk: streamlit
7
  app_file: app.py
8
  pinned: false
9
+ ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app.py CHANGED
@@ -1,3 +1,5 @@
 
 
1
  import base64
2
  import os
3
  import time
@@ -47,14 +49,14 @@ if "models_loaded" not in st.session_state:
47
  st.session_state["models_loaded"] = False
48
 
49
 
50
- st.header("minDALL-E")
51
  #st.subheader("Generate images from text")
52
- st.write("Generate images from text: Interactive demo for [minDALL-E](https://github.com/kakaobrain/minDALL-E)")
53
 
54
  if not st.session_state["models_loaded"]:
55
  load_models()
56
 
57
- prompt = st.text_input("What do you want to see?")
58
 
59
  DEBUG = False
60
  # UI code taken from https://huggingface.co/spaces/flax-community/dalle-mini/blob/main/app/streamlit/app.py
@@ -91,6 +93,6 @@ if prompt != "":
91
  cols[(i % n_columns) * 2].image(img)
92
  container.markdown(f"**{prompt}**")
93
 
94
- st.button("Again!", key="again_button")
95
 
96
- st.write(f"<b><i>UI credits: <a href='https://huggingface.co/spaces/flax-community/dalle-mini'>DALL-E mini Space</a></i></b>", unsafe_allow_html=True)
 
1
+ """ Code inspired by https://huggingface.co/spaces/flax-community/dalle-mini
2
+ """
3
  import base64
4
  import os
5
  import time
 
49
  st.session_state["models_loaded"] = False
50
 
51
 
52
+ st.header("Logo generator")
53
  #st.subheader("Generate images from text")
54
+ st.write("Generate logos from text")
55
 
56
  if not st.session_state["models_loaded"]:
57
  load_models()
58
 
59
+ prompt = st.text_input("Text prompt to generate logo for:")
60
 
61
  DEBUG = False
62
  # UI code taken from https://huggingface.co/spaces/flax-community/dalle-mini/blob/main/app/streamlit/app.py
 
93
  cols[(i % n_columns) * 2].image(img)
94
  container.markdown(f"**{prompt}**")
95
 
96
+ st.button("Run again", key="again_button")
97
 
98
+
configs/dalle-1.3B.yaml DELETED
@@ -1,33 +0,0 @@
1
- stage1:
2
- type: vqgan
3
- embed_dim: 256
4
- n_embed: 16384
5
- hparams:
6
- double_z: False
7
- z_channels: 256
8
- resolution: 256
9
- in_channels: 3
10
- out_ch: 3
11
- ch: 128
12
- ch_mult: [1, 1, 2, 2, 4]
13
- num_res_blocks: 2
14
- attn_resolutions: [16]
15
- pdrop: 0.0
16
-
17
- stage2:
18
- type: transformer1d
19
- vocab_size_txt: 16384
20
- vocab_size_img: 16384
21
- hparams:
22
- embed_dim: 1536
23
- n_layers: 42
24
- n_heads: 24
25
- n_dense_layers: 42
26
- ctx_len_img: 256
27
- ctx_len_txt: 64
28
- embd_pdrop: 0.0
29
- resid_pdrop: 0.0
30
- attn_pdrop: 0.0
31
- mlp_bias: True
32
- attn_bias: True
33
- gelu_use_approx: False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs/transfer-imagenet-clscond-gen.yaml DELETED
@@ -1,49 +0,0 @@
1
- dataset:
2
- dataset: imagenet
3
- image_resolution: 256
4
-
5
- stage1:
6
- type: vqgan
7
- embed_dim: 256
8
- n_embed: 16384
9
- hparams:
10
- double_z: False
11
- z_channels: 256
12
- resolution: 256
13
- in_channels: 3
14
- out_ch: 3
15
- ch: 128
16
- ch_mult: [1, 1, 2, 2, 4]
17
- num_res_blocks: 2
18
- attn_resolutions: [16]
19
- pdrop: 0.0
20
-
21
- stage2:
22
- type: igpt
23
- use_cls_cond: True
24
- vocab_size_img: 16384
25
- hparams:
26
- embed_dim: 1536
27
- n_layers: 42
28
- n_heads: 24
29
- n_dense_layers: 42
30
- ctx_len_img: 256
31
- embd_pdrop: 0.0
32
- resid_pdrop: 0.0
33
- attn_pdrop: 0.0
34
- mlp_bias: True
35
- attn_bias: True
36
- gelu_use_approx: False
37
- n_classes: 1000
38
-
39
- optimizer:
40
- opt_type: adamW
41
- base_lr: 1e-4
42
- weight_decay: 0.0
43
- betas: [0.9, 0.95]
44
- grad_clip_norm: 4.0
45
-
46
- experiment:
47
- local_batch_size: 2
48
- total_batch_size: 512
49
- epochs: 8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs/transfer-imagenet-uncond-gen.yaml DELETED
@@ -1,48 +0,0 @@
1
- dataset:
2
- dataset: imagenet
3
- image_resolution: 256
4
-
5
- stage1:
6
- type: vqgan
7
- embed_dim: 256
8
- n_embed: 16384
9
- hparams:
10
- double_z: False
11
- z_channels: 256
12
- resolution: 256
13
- in_channels: 3
14
- out_ch: 3
15
- ch: 128
16
- ch_mult: [1, 1, 2, 2, 4]
17
- num_res_blocks: 2
18
- attn_resolutions: [16]
19
- pdrop: 0.0
20
-
21
- stage2:
22
- type: igpt
23
- use_cls_cond: False
24
- vocab_size_img: 16384
25
- hparams:
26
- embed_dim: 1536
27
- n_layers: 42
28
- n_heads: 24
29
- n_dense_layers: 42
30
- ctx_len_img: 256
31
- embd_pdrop: 0.0
32
- resid_pdrop: 0.0
33
- attn_pdrop: 0.0
34
- mlp_bias: True
35
- attn_bias: True
36
- gelu_use_approx: False
37
-
38
- optimizer:
39
- opt_type: adamW
40
- base_lr: 1e-4
41
- weight_decay: 0.0
42
- betas: [0.9, 0.95]
43
- grad_clip_norm: 4.0
44
-
45
- experiment:
46
- local_batch_size: 2
47
- total_batch_size: 512
48
- epochs: 8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dalle_last.ckpt DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:227f1eb47f5be797bd6c38ff69fa881a669fe177d978f42e572833fb29e6371e
3
- size 5165951423
 
 
 
 
examples/sampling_ex.py DELETED
@@ -1,63 +0,0 @@
1
- # ------------------------------------------------------------------------------------
2
- # Minimal DALL-E
3
- # Copyright (c) 2021 KakaoBrain. All Rights Reserved.
4
- # Licensed under the Apache License, Version 2.0 [see LICENSE for details]
5
- # ------------------------------------------------------------------------------------
6
-
7
- import os
8
- import sys
9
- import argparse
10
- import clip
11
- import numpy as np
12
- from PIL import Image
13
-
14
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
15
-
16
- from dalle.models import Dalle
17
- from dalle.utils.utils import set_seed, clip_score
18
-
19
-
20
- parser = argparse.ArgumentParser()
21
- parser.add_argument('-n', '--num_candidates', type=int, default=96)
22
- parser.add_argument('--prompt', type=str, default='A painting of a tree on the ocean')
23
- parser.add_argument('--softmax-temperature', type=float, default=1.0)
24
- parser.add_argument('--top-k', type=int, default=256)
25
- parser.add_argument('--top-p', type=float, default=None, help='0.0 <= top-p <= 1.0')
26
- parser.add_argument('--seed', type=int, default=0)
27
-
28
- args = parser.parse_args()
29
-
30
- # Setup
31
- assert args.top_k <= 256, "It is recommended that top_k is set lower than 256."
32
-
33
- set_seed(args.seed)
34
- device = 'cuda:0'
35
- model = Dalle.from_pretrained('minDALL-E/1.3B') # This will automatically download the pretrained model.
36
- model.to(device=device)
37
-
38
- # Sampling
39
- images = model.sampling(prompt=args.prompt,
40
- top_k=args.top_k,
41
- top_p=args.top_p,
42
- softmax_temperature=args.softmax_temperature,
43
- num_candidates=args.num_candidates,
44
- device=device).cpu().numpy()
45
- images = np.transpose(images, (0, 2, 3, 1))
46
-
47
- # CLIP Re-ranking
48
- model_clip, preprocess_clip = clip.load("ViT-B/32", device=device)
49
- model_clip.to(device=device)
50
- rank = clip_score(prompt=args.prompt,
51
- images=images,
52
- model_clip=model_clip,
53
- preprocess_clip=preprocess_clip,
54
- device=device)
55
-
56
- # Save images
57
- images = images[rank]
58
- print(rank, images.shape)
59
- if not os.path.exists('./figures'):
60
- os.makedirs('./figures')
61
- for i in range(min(16, args.num_candidates)):
62
- im = Image.fromarray((images[i]*255).astype(np.uint8))
63
- im.save(f'./figures/{args.prompt}_{i}.png')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/sampling_interactive_demo.ipynb DELETED
@@ -1,298 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "id": "cdf36725-ec00-4027-95d6-374340c2264e",
7
- "metadata": {},
8
- "outputs": [
9
- {
10
- "name": "stderr",
11
- "output_type": "stream",
12
- "text": [
13
- "100%|█████████████████████████████████████| 4.72G/4.72G [02:04<00:00, 40.7MiB/s]\n",
14
- "extracting: ./1.3B/tokenizer/bpe-16k-vocab.json (size:0MB): 100%|██████████| 7/7 [00:59<00:00, 8.51s/it]\n"
15
- ]
16
- },
17
- {
18
- "name": "stdout",
19
- "output_type": "stream",
20
- "text": [
21
- "/root/.cache/minDALL-E/1.3B/tokenizer successfully restored..\n",
22
- "/root/.cache/minDALL-E/1.3B/stage1_last.ckpt successfully restored..\n"
23
- ]
24
- },
25
- {
26
- "name": "stderr",
27
- "output_type": "stream",
28
- "text": [
29
- " 0%| | 0.00/338M [00:00<?, ?iB/s]"
30
- ]
31
- },
32
- {
33
- "name": "stdout",
34
- "output_type": "stream",
35
- "text": [
36
- "/root/.cache/minDALL-E/1.3B/stage2_last.ckpt succesfully restored..\n"
37
- ]
38
- },
39
- {
40
- "name": "stderr",
41
- "output_type": "stream",
42
- "text": [
43
- "100%|███████████████████████████████████████| 338M/338M [00:09<00:00, 38.5MiB/s]\n"
44
- ]
45
- }
46
- ],
47
- "source": [
48
- "import os\n",
49
- "import sys\n",
50
- "import math\n",
51
- "import argparse\n",
52
- "import clip\n",
53
- "import numpy as np\n",
54
- "%matplotlib inline\n",
55
- "import matplotlib.pyplot as plt\n",
56
- "from PIL import Image\n",
57
- "\n",
58
- "sys.path.append(os.path.dirname(os.getcwd()))\n",
59
- "\n",
60
- "from dalle.models import Dalle\n",
61
- "from dalle.utils.utils import set_seed, clip_score\n",
62
- "\n",
63
- "device = 'cuda:0'\n",
64
- "model = Dalle.from_pretrained(\"minDALL-E/1.3B\")\n",
65
- "model_clip, preprocess_clip = clip.load(\"ViT-B/32\", device=device)\n",
66
- "\n",
67
- "model_clip.to(device=device)\n",
68
- "model.to(device=device)\n",
69
- "\n",
70
- "def sampling(prompt, top_k, softmax_temperature, seed, num_candidates=96, num_samples_for_display=36):\n",
71
- " # Setup\n",
72
- " n_row = int(math.sqrt(num_samples_for_display))\n",
73
- " n_col = int(math.sqrt(num_samples_for_display))\n",
74
- " set_seed(seed)\n",
75
- " \n",
76
- " # Sampling\n",
77
- " images = model.sampling(prompt=prompt,\n",
78
- " top_k=top_k,\n",
79
- " top_p=None,\n",
80
- " softmax_temperature=softmax_temperature,\n",
81
- " num_candidates=num_candidates,\n",
82
- " device=device).cpu().numpy()\n",
83
- " images = np.transpose(images, (0, 2, 3, 1))\n",
84
- "\n",
85
- " # CLIP Re-ranking\n",
86
- " rank = clip_score(prompt=prompt, images=images, model_clip=model_clip, preprocess_clip=preprocess_clip, device=device)\n",
87
- " images = images[rank]\n",
88
- " \n",
89
- " images = images[:num_samples_for_display]\n",
90
- " fig = plt.figure(figsize=(8*n_row, 8*n_col))\n",
91
- "\n",
92
- " for i in range(num_samples_for_display):\n",
93
- " ax = fig.add_subplot(n_row, n_col, i+1)\n",
94
- " ax.imshow(images[i])\n",
95
- " ax.set_axis_off()\n",
96
- "\n",
97
- " plt.tight_layout()\n",
98
- " plt.show()"
99
- ]
100
- },
101
- {
102
- "cell_type": "code",
103
- "execution_count": 2,
104
- "id": "619add15-073e-40f4-9a97-06b89d647c81",
105
- "metadata": {},
106
- "outputs": [
107
- {
108
- "data": {
109
- "application/vnd.jupyter.widget-view+json": {
110
- "model_id": "ee477531ea0e4b86b20d997f8cb83767",
111
- "version_major": 2,
112
- "version_minor": 0
113
- },
114
- "text/plain": [
115
- "IntSlider(value=0, description='RND SEED: ', max=1024)"
116
- ]
117
- },
118
- "metadata": {},
119
- "output_type": "display_data"
120
- },
121
- {
122
- "data": {
123
- "application/vnd.jupyter.widget-view+json": {
124
- "model_id": "d63edc4725ef4f4e8a6f03f7693a481d",
125
- "version_major": 2,
126
- "version_minor": 0
127
- },
128
- "text/plain": [
129
- "FloatSlider(value=1.0, description='SOFTMAX TEMPERATURE:', max=5.0, step=0.2)"
130
- ]
131
- },
132
- "metadata": {},
133
- "output_type": "display_data"
134
- },
135
- {
136
- "data": {
137
- "application/vnd.jupyter.widget-view+json": {
138
- "model_id": "5bb9170e9e8b4686a661799d8aff3901",
139
- "version_major": 2,
140
- "version_minor": 0
141
- },
142
- "text/plain": [
143
- "IntSlider(value=256, description='TOP-K:', max=512, step=16)"
144
- ]
145
- },
146
- "metadata": {},
147
- "output_type": "display_data"
148
- },
149
- {
150
- "data": {
151
- "application/vnd.jupyter.widget-view+json": {
152
- "model_id": "6b97b49debfc4f7ab002748e9fd89864",
153
- "version_major": 2,
154
- "version_minor": 0
155
- },
156
- "text/plain": [
157
- "Text(value='A painting of a monkey with sunglasses in the frame', description='String:', placeholder='Text pro…"
158
- ]
159
- },
160
- "metadata": {},
161
- "output_type": "display_data"
162
- },
163
- {
164
- "data": {
165
- "application/vnd.jupyter.widget-view+json": {
166
- "model_id": "a520b10d8c0b4dd0bb6db56dc37b4422",
167
- "version_major": 2,
168
- "version_minor": 0
169
- },
170
- "text/plain": [
171
- "Button(description='Generate!', style=ButtonStyle())"
172
- ]
173
- },
174
- "metadata": {},
175
- "output_type": "display_data"
176
- },
177
- {
178
- "data": {
179
- "application/vnd.jupyter.widget-view+json": {
180
- "model_id": "5a98437abf964636a467677dc4f816bb",
181
- "version_major": 2,
182
- "version_minor": 0
183
- },
184
- "text/plain": [
185
- "Output()"
186
- ]
187
- },
188
- "metadata": {},
189
- "output_type": "display_data"
190
- },
191
- {
192
- "data": {
193
- "application/vnd.jupyter.widget-view+json": {
194
- "model_id": "90d05006d50e4d88b8fb7c36095b12e7",
195
- "version_major": 2,
196
- "version_minor": 0
197
- },
198
- "text/plain": [
199
- "Output()"
200
- ]
201
- },
202
- "metadata": {},
203
- "output_type": "display_data"
204
- }
205
- ],
206
- "source": [
207
- "import ipywidgets as widgets\n",
208
- "from IPython.display import display\n",
209
- "from IPython.display import clear_output\n",
210
- "\n",
211
- "output = widgets.Output()\n",
212
- "plot_output = widgets.Output()\n",
213
- "\n",
214
- "def btn_eventhandler(obj):\n",
215
- " output.clear_output()\n",
216
- " plot_output.clear_output()\n",
217
- " \n",
218
- " with output:\n",
219
- " print(f'SEED: {slider_seed.value}')\n",
220
- " print(f'Softmax Temperature: {slider_temp.value}')\n",
221
- " print(f'Top-K: {slider_topk.value}')\n",
222
- " print(f'Text prompt: {wd_text.value}')\n",
223
- " \n",
224
- " with plot_output:\n",
225
- " sampling(prompt=wd_text.value, top_k=slider_topk.value, softmax_temperature=slider_temp.value, seed=slider_seed.value)\n",
226
- " \n",
227
- "slider_seed = widgets.IntSlider(\n",
228
- " min=0,\n",
229
- " max=1024,\n",
230
- " step=1,\n",
231
- " description='RND SEED: ',\n",
232
- " value=0\n",
233
- ")\n",
234
- "slider_topk = widgets.IntSlider(\n",
235
- " min=0,\n",
236
- " max=512,\n",
237
- " step=16,\n",
238
- " description='TOP-K:',\n",
239
- " value=256\n",
240
- ")\n",
241
- "slider_temp = widgets.FloatSlider(\n",
242
- " min=0.0,\n",
243
- " max=5.0,\n",
244
- " step=0.2,\n",
245
- " description='SOFTMAX TEMPERATURE:',\n",
246
- " value=1.0\n",
247
- ")\n",
248
- "wd_text = widgets.Text(\n",
249
- " value='A painting of a monkey with sunglasses in the frame',\n",
250
- " placeholder='Text prompt',\n",
251
- " description='String:',\n",
252
- " disabled=False\n",
253
- ")\n",
254
- "\n",
255
- "display(slider_seed)\n",
256
- "display(slider_temp)\n",
257
- "display(slider_topk)\n",
258
- "display(wd_text)\n",
259
- "\n",
260
- "btn = widgets.Button(description='Generate!')\n",
261
- "display(btn)\n",
262
- "btn.on_click(btn_eventhandler)\n",
263
- "\n",
264
- "display(output)\n",
265
- "display(plot_output)"
266
- ]
267
- },
268
- {
269
- "cell_type": "code",
270
- "execution_count": null,
271
- "id": "20571236-3b9a-426e-ab29-96b643c8cbe1",
272
- "metadata": {},
273
- "outputs": [],
274
- "source": []
275
- }
276
- ],
277
- "metadata": {
278
- "kernelspec": {
279
- "display_name": "Python 3 (ipykernel)",
280
- "language": "python",
281
- "name": "python3"
282
- },
283
- "language_info": {
284
- "codemirror_mode": {
285
- "name": "ipython",
286
- "version": 3
287
- },
288
- "file_extension": ".py",
289
- "mimetype": "text/x-python",
290
- "name": "python",
291
- "nbconvert_exporter": "python",
292
- "pygments_lexer": "ipython3",
293
- "version": "3.7.7"
294
- }
295
- },
296
- "nbformat": 4,
297
- "nbformat_minor": 5
298
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/transfer_learning_ex.py DELETED
@@ -1,172 +0,0 @@
1
- # ------------------------------------------------------------------------------------
2
- # Minimal DALL-E
3
- # Copyright (c) 2021 KakaoBrain. All Rights Reserved.
4
- # Licensed under the Apache License, Version 2.0 [see LICENSE for details]
5
- # ------------------------------------------------------------------------------------
6
-
7
- import os
8
- import sys
9
- import argparse
10
- from typing import Optional
11
- from datetime import datetime
12
-
13
- import torch
14
- from torch.utils.data import DataLoader
15
- import torchvision
16
- import torchvision.transforms as transforms
17
- import pytorch_lightning as pl
18
- from pytorch_lightning.callbacks import ModelCheckpoint, Callback
19
- from pytorch_lightning.loggers import TensorBoardLogger
20
- from pytorch_lightning.utilities.distributed import rank_zero_only
21
-
22
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
23
-
24
- from dalle.models import ImageGPT
25
-
26
-
27
- parser = argparse.ArgumentParser()
28
-
29
- parser.add_argument('-d', '--config-downstream', type=str, default=None, required=True)
30
- parser.add_argument('-u', '--path-upstream', type=str, default=None, required=True)
31
- parser.add_argument('-r', '--result-path', type=str, default=None, required=True)
32
- parser.add_argument('--imagenet-path', type=str, default=None, required=True)
33
-
34
- parser.add_argument('--n-gpus', type=int, default=1)
35
- parser.add_argument('--seed', type=int, default=0)
36
-
37
-
38
- args = parser.parse_args()
39
-
40
-
41
- class ImageLogger(Callback):
42
- def __init__(self):
43
- super().__init__()
44
-
45
- @rank_zero_only
46
- def log_img(self, pl_module, batch, current_epoch, split="train"):
47
- with torch.no_grad():
48
- images, labels = batch
49
- recons = pl_module.stage1(images)
50
- images = images.cpu()
51
- recons = recons.cpu()
52
-
53
- grid_org = (torchvision.utils.make_grid(images, nrow=8) + 1.0) / 2.0
54
- grid_rec = (torchvision.utils.make_grid(recons, nrow=8) + 1.0) / 2.0
55
- grid_rec = torch.clip(grid_rec, min=0, max=1)
56
-
57
- pl_module.logger.experiment.add_image(f"images_org/{split}", grid_org, global_step=current_epoch)
58
- pl_module.logger.experiment.add_image(f"images_rec/{split}", grid_rec, global_step=current_epoch)
59
-
60
- def on_train_batch_end(self, trainer, pl_module, outputs, batch, batch_idx, dataloader_idx):
61
- if batch_idx == 0 and trainer.current_epoch < 5:
62
- self.log_img(pl_module, batch, current_epoch=trainer.current_epoch, split="train")
63
-
64
- def on_validation_batch_end(self, trainer, pl_module, outputs, batch, batch_idx, dataloader_idx):
65
- if batch_idx == 0 and trainer.current_epoch < 5:
66
- self.log_img(pl_module, batch, current_epoch=trainer.current_epoch, split="test")
67
-
68
-
69
- class ImageNetDataModule(pl.LightningDataModule):
70
- def __init__(self,
71
- data_dir: Optional[str] = None,
72
- image_resolution: int = 256,
73
- train_batch_size: int = 2,
74
- valid_batch_size: int = 32,
75
- num_workers: int = 8):
76
- super().__init__()
77
-
78
- self.data_dir = data_dir
79
- self.image_resolution = image_resolution
80
- self.train_batch_size = train_batch_size
81
- self.valid_batch_size = valid_batch_size
82
- self.num_workers = num_workers
83
-
84
- self.train_transform = transforms.Compose(
85
- [transforms.Resize(image_resolution),
86
- transforms.RandomCrop(image_resolution),
87
- transforms.ToTensor(),
88
- transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])]
89
- )
90
- self.valid_transform = transforms.Compose(
91
- [transforms.Resize(image_resolution),
92
- transforms.CenterCrop(image_resolution),
93
- transforms.ToTensor(),
94
- transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])]
95
- )
96
-
97
- def setup(self, stage=None):
98
- self.trainset = torchvision.datasets.ImageNet(root=self.data_dir, split='train', transform=self.train_transform)
99
- self.validset = torchvision.datasets.ImageNet(root=self.data_dir, split='val', transform=self.valid_transform)
100
-
101
- def train_dataloader(self):
102
- return DataLoader(self.trainset,
103
- batch_size=self.train_batch_size,
104
- num_workers=self.num_workers,
105
- pin_memory=True)
106
-
107
- def valid_dataloader(self):
108
- return DataLoader(self.validset,
109
- batch_size=self.valid_batch_size,
110
- num_workers=self.num_workers,
111
- pin_memory=True)
112
-
113
-
114
- def setup_callbacks(config):
115
- # Setup callbacks
116
- now = datetime.now().strftime('%d%m%Y_%H%M%S')
117
- result_path = os.path.join(args.result_path,
118
- os.path.basename(args.config_downstream).split('.')[0],
119
- now)
120
- ckpt_path = os.path.join(result_path, 'ckpt')
121
- log_path = os.path.join(result_path, 'log')
122
-
123
- checkpoint_callback = ModelCheckpoint(
124
- dirpath=ckpt_path,
125
- filename="imagenet-clscond-gen-{epoch:02d}" if config.stage2.use_cls_cond else
126
- "imagenet-uncond-gen-{epoch:02d}",
127
- every_n_epochs=config.experiment.save_ckpt_freq,
128
- save_weights_only=True,
129
- save_last=True
130
- )
131
- logger = TensorBoardLogger(log_path, name="iGPT")
132
- logger_img = ImageLogger()
133
- return checkpoint_callback, logger, logger_img
134
-
135
-
136
- if __name__ == '__main__':
137
- pl.seed_everything(args.seed)
138
-
139
- # Build iGPT
140
- model, config = ImageGPT.from_pretrained(args.path_upstream, args.config_downstream)
141
-
142
- # Setup callbacks
143
- ckpt_callback, logger, logger_img = setup_callbacks(config)
144
-
145
- # Build data modules
146
- dataset = ImageNetDataModule(data_dir=args.imagenet_path,
147
- image_resolution=config.dataset.image_resolution,
148
- train_batch_size=config.experiment.local_batch_size,
149
- valid_batch_size=config.experiment.valid_batch_size,
150
- num_workers=16)
151
- dataset.setup()
152
- train_dataloader = dataset.train_dataloader()
153
- valid_dataloader = dataset.valid_dataloader()
154
- print(f"len(train_dataset) = {len(dataset.trainset)}")
155
- print(f"len(valid_dataset) = {len(dataset.validset)}")
156
-
157
- # Calculate how many batches are accumulated
158
- assert config.experiment.total_batch_size % (config.experiment.local_batch_size * args.n_gpus) == 0
159
- grad_accm_steps = config.experiment.total_batch_size // (config.experiment.local_batch_size * args.n_gpus)
160
- config.optimizer.max_steps = len(dataset.trainset) // config.experiment.total_batch_size * config.experiment.epochs
161
-
162
- # Build trainer
163
- trainer = pl.Trainer(max_epochs=config.experiment.epochs,
164
- accumulate_grad_batches=grad_accm_steps,
165
- gradient_clip_val=config.optimizer.grad_clip_norm,
166
- precision=16 if config.experiment.use_amp else 32,
167
- callbacks=[ckpt_callback, logger_img],
168
- accelerator="gpu",
169
- devices=args.n_gpus,
170
- strategy="ddp",
171
- logger=logger)
172
- trainer.fit(model, train_dataloader, valid_dataloader)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
last.ckpt DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:8c8e53ac2ae57e72d2df9bcecd6b758e9ec4ae0eb96a0154719feb1d7ef4708c
3
- size 980089751
 
 
 
 
server.py CHANGED
@@ -10,11 +10,10 @@ from fastapi import FastAPI
10
  import numpy as np
11
  from PIL import Image
12
 
13
- #import clip
14
  from dalle.models import Dalle
15
  import logging
16
  import streamlit as st
17
- from dalle.utils.utils import clip_score, download
18
 
19
  print("Loading models...")
20
  app = FastAPI()
@@ -29,13 +28,9 @@ logging.info("End downloading")
29
  device = "cuda" if torch.cuda.is_available() else "cpu"
30
  model = Dalle.from_pretrained("minDALL-E/1.3B")
31
 
32
- # NEW METHOD
33
  model.load_state_dict(torch.load(full_dict_path, map_location=torch.device('cpu')))
34
  model.to(device=device)
35
 
36
- # model_clip, preprocess_clip = clip.load("ViT-B/32", device=device)
37
- # model_clip.to(device=device)
38
-
39
  print("Models loaded !")
40
 
41
 
@@ -62,11 +57,6 @@ def sample(prompt):
62
  logging.info("sampling succeeded")
63
  images = np.transpose(images, (0, 2, 3, 1))
64
 
65
- # CLIP Re-ranking
66
- # rank = clip_score(
67
- # prompt=prompt, images=images, model_clip=model_clip, preprocess_clip=preprocess_clip, device=device
68
- # )
69
- # images = images[rank]
70
 
71
  pil_images = []
72
  for i in range(len(images)):
 
10
  import numpy as np
11
  from PIL import Image
12
 
 
13
  from dalle.models import Dalle
14
  import logging
15
  import streamlit as st
16
+
17
 
18
  print("Loading models...")
19
  app = FastAPI()
 
28
  device = "cuda" if torch.cuda.is_available() else "cpu"
29
  model = Dalle.from_pretrained("minDALL-E/1.3B")
30
 
 
31
  model.load_state_dict(torch.load(full_dict_path, map_location=torch.device('cpu')))
32
  model.to(device=device)
33
 
 
 
 
34
  print("Models loaded !")
35
 
36
 
 
57
  logging.info("sampling succeeded")
58
  images = np.transpose(images, (0, 2, 3, 1))
59
 
 
 
 
 
 
60
 
61
  pil_images = []
62
  for i in range(len(images)):