arraypress commited on
Commit
7cad0b2
·
verified ·
1 Parent(s): e945a22

Upload Stable Audio 3 → Core AI conversion

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ small-sfx.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
LICENSE.md ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ STABILITY AI COMMUNITY LICENSE AGREEMENT
2
+
3
+ Last Updated: July 5, 2024
4
+
5
+ 1. INTRODUCTION
6
+
7
+ This Agreement applies to any individual person or entity (“You”, “Your” or “Licensee”) that uses or distributes any portion or element of the Stability AI Materials or Derivative Works thereof for any Research & Non-Commercial or Commercial purpose. Capitalized terms not otherwise defined herein are defined in Section V below.
8
+
9
+ This Agreement is intended to allow research, non-commercial, and limited commercial uses of the Models free of charge. In order to ensure that certain limited commercial uses of the Models continue to be allowed, this Agreement preserves free access to the Models for people or organizations generating annual revenue of less than US $1,000,000 (or local currency equivalent).
10
+
11
+ By clicking “I Accept” or by using or distributing or using any portion or element of the Stability Materials or Derivative Works, You agree that You have read, understood and are bound by the terms of this Agreement. If You are acting on behalf of a company, organization or other entity, then “You” includes you and that entity, and You agree that You: (i) are an authorized representative of such entity with the authority to bind such entity to this Agreement, and (ii) You agree to the terms of this Agreement on that entity’s behalf.
12
+
13
+ 2. RESEARCH & NON-COMMERCIAL USE LICENSE
14
+
15
+ Subject to the terms of this Agreement, Stability AI grants You a non-exclusive, worldwide, non-transferable, non-sublicensable, revocable and royalty-free limited license under Stability AI’s intellectual property or other rights owned by Stability AI embodied in the Stability AI Materials to use, reproduce, distribute, and create Derivative Works of, and make modifications to, the Stability AI Materials for any Research or Non-Commercial Purpose. “Research Purpose” means academic or scientific advancement, and in each case, is not primarily intended for commercial advantage or monetary compensation to You or others. “Non-Commercial Purpose” means any purpose other than a Research Purpose that is not primarily intended for commercial advantage or monetary compensation to You or others, such as personal use (i.e., hobbyist) or evaluation and testing.
16
+
17
+ 3. COMMERCIAL USE LICENSE
18
+
19
+ Subject to the terms of this Agreement (including the remainder of this Section III), Stability AI grants You a non-exclusive, worldwide, non-transferable, non-sublicensable, revocable and royalty-free limited license under Stability AI’s intellectual property or other rights owned by Stability AI embodied in the Stability AI Materials to use, reproduce, distribute, and create Derivative Works of, and make modifications to, the Stability AI Materials for any Commercial Purpose. “Commercial Purpose” means any purpose other than a Research Purpose or Non-Commercial Purpose that is primarily intended for commercial advantage or monetary compensation to You or others, including but not limited to, (i) creating, modifying, or distributing Your product or service, including via a hosted service or application programming interface, and (ii) for Your business’s or organization’s internal operations.
20
+ If You are using or distributing the Stability AI Materials for a Commercial Purpose, You must register with Stability AI at (https://stability.ai/community-license). If at any time You or Your Affiliate(s), either individually or in aggregate, generate more than USD $1,000,000 in annual revenue (or the equivalent thereof in Your local currency), regardless of whether that revenue is generated directly or indirectly from the Stability AI Materials or Derivative Works, any licenses granted to You under this Agreement shall terminate as of such date. You must request a license from Stability AI at (https://stability.ai/enterprise) , which Stability AI may grant to You in its sole discretion. If you receive Stability AI Materials, or any Derivative Works thereof, from a Licensee as part of an integrated end user product, then Section III of this Agreement will not apply to you.
21
+
22
+ 4. GENERAL TERMS
23
+
24
+ Your Research, Non-Commercial, and Commercial License(s) under this Agreement are subject to the following terms.
25
+ a. Distribution & Attribution. If You distribute or make available the Stability AI Materials or a Derivative Work to a third party, or a product or service that uses any portion of them, You shall: (i) provide a copy of this Agreement to that third party, (ii) retain the following attribution notice within a "Notice" text file distributed as a part of such copies: "This Stability AI Model is licensed under the Stability AI Community License, Copyright © Stability AI Ltd. All Rights Reserved”, and (iii) prominently display “Powered by Stability AI” on a related website, user interface, blogpost, about page, or product documentation. If You create a Derivative Work, You may add your own attribution notice(s) to the “Notice” text file included with that Derivative Work, provided that You clearly indicate which attributions apply to the Stability AI Materials and state in the “Notice” text file that You changed the Stability AI Materials and how it was modified.
26
+ b. Use Restrictions. Your use of the Stability AI Materials and Derivative Works, including any output or results of the Stability AI Materials or Derivative Works, must comply with applicable laws and regulations (including Trade Control Laws and equivalent regulations) and adhere to the Documentation and Stability AI’s AUP, which is hereby incorporated by reference. Furthermore, You will not use the Stability AI Materials or Derivative Works, or any output or results of the Stability AI Materials or Derivative Works, to create or improve any foundational generative AI model (excluding the Models or Derivative Works).
27
+ c. Intellectual Property.
28
+ (i) Trademark License. No trademark licenses are granted under this Agreement, and in connection with the Stability AI Materials or Derivative Works, You may not use any name or mark owned by or associated with Stability AI or any of its Affiliates, except as required under Section IV(a) herein.
29
+ (ii) Ownership of Derivative Works. As between You and Stability AI, You are the owner of Derivative Works You create, subject to Stability AI’s ownership of the Stability AI Materials and any Derivative Works made by or for Stability AI.
30
+ (iii) Ownership of Outputs. As between You and Stability AI, You own any outputs generated from the Models or Derivative Works to the extent permitted by applicable law.
31
+ (iv) Disputes. If You or Your Affiliate(s) institute litigation or other proceedings against Stability AI (including a cross-claim or counterclaim in a lawsuit) alleging that the Stability AI Materials, Derivative Works or associated outputs or results, or any portion of any of the foregoing, constitutes infringement of intellectual property or other rights owned or licensable by You, then any licenses granted to You under this Agreement shall terminate as of the date such litigation or claim is filed or instituted. You will indemnify and hold harmless Stability AI from and against any claim by any third party arising out of or related to Your use or distribution of the Stability AI Materials or Derivative Works in violation of this Agreement.
32
+ (v) Feedback. From time to time, You may provide Stability AI with verbal and/or written suggestions, comments or other feedback related to Stability AI’s existing or prospective technology, products or services (collectively, “Feedback”). You are not obligated to provide Stability AI with Feedback, but to the extent that You do, You hereby grant Stability AI a perpetual, irrevocable, royalty-free, fully-paid, sub-licensable, transferable, non-exclusive, worldwide right and license to exploit the Feedback in any manner without restriction. Your Feedback is provided “AS IS” and You make no warranties whatsoever about any Feedback.
33
+ d. Disclaimer Of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE STABILITY AI MATERIALS AND ANY OUTPUT AND RESULTS THEREFROM ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OR LAWFULNESS OF USING OR REDISTRIBUTING THE STABILITY AI MATERIALS, DERIVATIVE WORKS OR ANY OUTPUT OR RESULTS AND ASSUME ANY RISKS ASSOCIATED WITH YOUR USE OF THE STABILITY AI MATERIALS, DERIVATIVE WORKS AND ANY OUTPUT AND RESULTS.
34
+ e. Limitation Of Liability. IN NO EVENT WILL STABILITY AI OR ITS AFFILIATES BE LIABLE UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, FOR ANY LOST PROFITS OR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, EVEN IF STABILITY AI OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF ANY OF THE FOREGOING.
35
+ f. Term And Termination. The term of this Agreement will commence upon Your acceptance of this Agreement or access to the Stability AI Materials and will continue in full force and effect until terminated in accordance with the terms and conditions herein. Stability AI may terminate this Agreement if You are in breach of any term or condition of this Agreement. Upon termination of this Agreement, You shall delete and cease use of any Stability AI Materials or Derivative Works. Section IV(d), (e), and (g) shall survive the termination of this Agreement.
36
+ g. Governing Law. This Agreement will be governed by and constructed in accordance with the laws of the United States and the State of California without regard to choice of law principles, and the UN Convention on Contracts for International Sale of Goods does not apply to this Agreement.
37
+
38
+ 5. DEFINITIONS
39
+
40
+ “Affiliate(s)” means any entity that directly or indirectly controls, is controlled by, or is under common control with the subject entity; for purposes of this definition, “control” means direct or indirect ownership or control of more than 50% of the voting interests of the subject entity.
41
+
42
+ "Agreement" means this Stability AI Community License Agreement.
43
+
44
+ “AUP” means the Stability AI Acceptable Use Policy available at (https://stability.ai/use-policy), as may be updated from time to time.
45
+
46
+ "Derivative Work(s)” means (a) any derivative work of the Stability AI Materials as recognized by U.S. copyright laws and (b) any modifications to a Model, and any other model created which is based on or derived from the Model or the Model’s output, including “fine tune” and “low-rank adaptation” models derived from a Model or a Model’s output, but do not include the output of any Model.
47
+
48
+ “Documentation” means any specifications, manuals, documentation, and other written information provided by Stability AI related to the Software or Models.
49
+
50
+ “Model(s)" means, collectively, Stability AI’s proprietary models and algorithms, including machine-learning models, trained model weights and other elements of the foregoing listed on Stability’s Core Models Webpage available at (https://stability.ai/core-models), as may be updated from time to time.
51
+
52
+ "Stability AI" or "we" means Stability AI Ltd. and its Affiliates.
53
+
54
+ "Software" means Stability AI’s proprietary software made available under this Agreement now or in the future.
55
+
56
+ “Stability AI Materials” means, collectively, Stability’s proprietary Models, Software and Documentation (and any portion or combination thereof) made available under this Agreement.
57
+
58
+ “Trade Control Laws” means any applicable U.S. and non-U.S. export control and trade sanctions laws and regulations.
LICENSE_GEMMA.md ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Gemma Terms of Use
2
+
3
+ The terms below apply to Gemma models listed in the Appendix at bottom of this page. For Gemma 4 terms, see the [Gemma 4 license](https://ai.google.dev/gemma/apache_2).
4
+
5
+ Last modified: April 1, 2026
6
+
7
+ By using, reproducing, modifying, distributing, performing or displaying any
8
+ portion or element of Gemma, Model Derivatives including via any Hosted Service,
9
+ (each as defined below) (collectively, the "**Gemma Services**") or otherwise
10
+ accepting the terms of this Agreement, you agree to be bound by this Agreement.
11
+
12
+ ## Section 1: DEFINITIONS
13
+
14
+ ### 1.1 Definitions
15
+
16
+ (a) "**Agreement** " or "**Gemma Terms of Use**" means these terms and conditions
17
+ that govern the use, reproduction, Distribution or modification of the Gemma
18
+ Services and any terms and conditions incorporated by reference.
19
+
20
+ (b) "**Distribution** " or "**Distribute** " means any transmission, publication,
21
+ or other sharing of Gemma or Model Derivatives to a third party, including by
22
+ providing or making Gemma or its functionality available as a hosted service via
23
+ API, web access, or any other electronic or remote means ("**Hosted Service**").
24
+
25
+ (c) "**Gemma** " means the set of machine learning language models, trained model
26
+ weights and parameters identified in the [Appendix](https://ai.google.dev/gemma/terms#appendix),
27
+ regardless of the source that you obtained it from.
28
+
29
+ (d) "**Google**" means Google LLC.
30
+
31
+ (e) "**Model Derivatives**" means all (i) modifications to Gemma, (ii) works based
32
+ on Gemma, or (iii) any other machine learning model which is created by transfer
33
+ of patterns of the weights, parameters, operations, or Output of Gemma, to that
34
+ model in order to cause that model to perform similarly to Gemma, including
35
+ distillation methods that use intermediate data representations or methods based
36
+ on the generation of synthetic data Outputs by Gemma for training that model.
37
+ For clarity, Outputs are not deemed Model Derivatives.
38
+
39
+ (f) "**Output**" means the information content output of Gemma or a Model
40
+ Derivative that results from operating or otherwise using Gemma or the Model
41
+ Derivative, including via a Hosted Service.
42
+
43
+ ### 1.2
44
+
45
+ As used in this Agreement, "**including** " means
46
+ "**including without limitation**".
47
+
48
+ ## Section 2: ELIGIBILITY AND USAGE
49
+
50
+ ### 2.1 Eligibility
51
+
52
+ You represent and warrant that you have the legal capacity to enter into this
53
+ Agreement (including being of sufficient age of consent). If you are accessing
54
+ or using any of the Gemma Services for or on behalf of a legal entity, (a) you
55
+ are entering into this Agreement on behalf of yourself and that legal entity,
56
+ (b) you represent and warrant that you have the authority to act on behalf of
57
+ and bind that entity to this Agreement and (c) references to "**you** " or
58
+ "**your**" in the remainder of this Agreement refers to both you (as an
59
+ individual) and that entity.
60
+
61
+ ### 2.2 Use
62
+
63
+ You may use, reproduce, modify, Distribute, perform or display any of the Gemma
64
+ Services only in accordance with the terms of this Agreement, and must not
65
+ violate (or encourage or permit anyone else to violate) any term of this
66
+ Agreement.
67
+
68
+ ## Section 3: DISTRIBUTION AND RESTRICTIONS
69
+
70
+ ### 3.1 Distribution and Redistribution
71
+
72
+ You may reproduce or Distribute copies of Gemma or Model Derivatives if you meet
73
+ all of the following conditions:
74
+
75
+ 1. You must include the use restrictions referenced in Section 3.2 as an enforceable provision in any agreement (e.g., license agreement, terms of use, etc.) governing the use and/or distribution of Gemma or Model Derivatives and you must provide notice to subsequent users you Distribute to that Gemma or Model Derivatives are subject to the use restrictions in Section 3.2.
76
+ 2. You must provide all third party recipients of Gemma or Model Derivatives a copy of this Agreement.
77
+ 3. You must cause any modified files to carry prominent notices stating that you modified the files.
78
+ 4. All Distributions (other than through a Hosted Service) must be accompanied by a "**Notice** " text file that contains the following notice: "**Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms**".
79
+
80
+ You may add your own intellectual property statement to your modifications and,
81
+ except as set forth in this Section, may provide additional or different terms
82
+ and conditions for use, reproduction, or Distribution of your modifications, or
83
+ for any such Model Derivatives as a whole, provided your use, reproduction,
84
+ modification, Distribution, performance, and display of Gemma otherwise complies
85
+ with the terms and conditions of this Agreement. Any additional or different
86
+ terms and conditions you impose must not conflict with the terms of this
87
+ Agreement.
88
+
89
+ ### 3.2 Use Restrictions
90
+
91
+ You must not use any of the Gemma Services:
92
+
93
+ 1. for the restricted uses set forth in the Gemma Prohibited Use Policy at [ai.google.dev/gemma/prohibited_use_policy](https://ai.google.dev/gemma/prohibited_use_policy) ("**Prohibited Use Policy**"), which is hereby incorporated by reference into this Agreement; or
94
+ 2. in violation of applicable laws and regulations.
95
+
96
+ To the maximum extent permitted by law, Google reserves the right to restrict
97
+ (remotely or otherwise) usage of any of the Gemma Services that Google
98
+ reasonably believes are in violation of this Agreement.
99
+
100
+ ### 3.3 Generated Output
101
+
102
+ Google claims no rights in Outputs you generate using Gemma. You and your users
103
+ are solely responsible for Outputs and their subsequent uses.
104
+
105
+ ## Section 4: ADDITIONAL PROVISIONS
106
+
107
+ ### 4.1 Updates
108
+
109
+ Google may update Gemma from time to time.
110
+
111
+ ### 4.2 Trademarks
112
+
113
+ Nothing in this Agreement grants you any rights to use Google's trademarks,
114
+ trade names, logos or to otherwise suggest endorsement or misrepresent the
115
+ relationship between you and Google. Google reserves any rights not expressly
116
+ granted herein.
117
+
118
+ ### 4.3 DISCLAIMER OF WARRANTY
119
+
120
+ UNLESS REQUIRED BY APPLICABLE LAW, THE GEMMA SERVICES, AND OUTPUTS, ARE PROVIDED
121
+ ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
122
+ EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OR CONDITIONS OF TITLE,
123
+ NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE
124
+ SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING, REPRODUCING,
125
+ MODIFYING, PERFORMING, DISPLAYING OR DISTRIBUTING ANY OF THE GEMMA SERVICES
126
+ OR OUTPUTS AND ASSUME ANY AND ALL RISKS ASSOCIATED WITH YOUR USE OR DISTRIBUTION
127
+ OF ANY OF THE GEMMA SERVICES OR OUTPUTS AND YOUR EXERCISE OF RIGHTS AND
128
+ PERMISSIONS UNDER THIS AGREEMENT.
129
+
130
+ ### 4.4 LIMITATION OF LIABILITY
131
+
132
+ TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO
133
+ LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY,
134
+ CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW, SHALL GOOGLE OR ITS
135
+ AFFILIATES BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT,
136
+ SPECIAL, INCIDENTAL, EXEMPLARY, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR LOST
137
+ PROFITS OF ANY KIND ARISING FROM THIS AGREEMENT OR RELATED TO, ANY OF THE GEMMA
138
+ SERVICES OR OUTPUTS EVEN IF GOOGLE OR ITS AFFILIATES HAVE BEEN ADVISED OF THE
139
+ POSSIBILITY OF SUCH DAMAGES.
140
+
141
+ ### 4.5 Term, Termination, and Survival
142
+
143
+ The term of this Agreement will commence upon your acceptance of this Agreement
144
+ (including acceptance by your use, modification, or Distribution, reproduction,
145
+ performance or display of any portion or element of the Gemma Services) and will
146
+ continue in full force and effect until terminated in accordance with the terms
147
+ of this Agreement. Google may terminate this Agreement if you are in breach of
148
+ any term of this Agreement. Upon termination of this Agreement, you must delete
149
+ and cease use and Distribution of all copies of Gemma and Model Derivatives in
150
+ your possession or control. Sections 1, 2.1, 3.3, 4.2 to 4.9 shall survive the
151
+ termination of this Agreement.
152
+
153
+ ### 4.6 Governing Law and Jurisdiction
154
+
155
+ This Agreement will be governed by the laws of the State of California without
156
+ regard to choice of law principles. The UN Convention on Contracts for the
157
+ International Sale of Goods does not apply to this Agreement. The state and
158
+ federal courts of Santa Clara County, California shall have exclusive
159
+ jurisdiction of any dispute arising out of this Agreement.
160
+
161
+ ### 4.7 Severability
162
+
163
+ If any provision of this Agreement is held to be invalid, illegal or
164
+ unenforceable, the remaining provisions shall be unaffected thereby and remain
165
+ valid as if such provision had not been set forth herein.
166
+
167
+ ### 4.8 Entire Agreement
168
+
169
+ This Agreement states all the terms agreed between the parties and supersedes
170
+ all other agreements between the parties as of the date of acceptance relating
171
+ to its subject matter.
172
+
173
+ ### 4.9 No Waiver
174
+
175
+ Google will not be treated as having waived any rights by not exercising (or
176
+ delaying the exercise of) any rights under this Agreement.
177
+
178
+ ## Appendix
179
+
180
+ - [Gemma 1](https://ai.google.dev/gemma/docs/core/model_card)
181
+ - [Gemma 1.1](https://ai.google.dev/gemma/docs/core/model_card)
182
+ - [Gemma 2](https://ai.google.dev/gemma/docs/core/model_card_2)
183
+ - [Gemma 3](https://ai.google.dev/gemma/docs/core/model_card_3)
184
+ - [Gemma 3n](https://ai.google.dev/gemma/docs/3n)
185
+ - [FunctionGemma](https://ai.google.dev/gemma/docs/functiongemma)
186
+ - [EmbeddingGemma](https://ai.google.dev/gemma/docs/embeddinggemma)
187
+ - [PaliGemma](https://ai.google.dev/gemma/docs/paligemma/model-card)
188
+ - [PaliGemma 2](https://ai.google.dev/gemma/docs/paligemma/model-card-2)
189
+ - [ShieldGemma](https://ai.google.dev/gemma/docs/shieldgemma/model_card)
190
+ - [ShieldGemma 2](https://ai.google.dev/gemma/docs/shieldgemma/model_card_2)
191
+ - [CodeGemma](https://ai.google.dev/gemma/docs/codegemma/model_card)
192
+ - [CodeGemma 1.1](https://ai.google.dev/gemma/docs/codegemma/model_card)
193
+ - [Gemma 2 JPN](https://huggingface.co/google/gemma-2-2b-jpn-it)
194
+ - [DataGemma RIG](https://www.kaggle.com/models/google/datagemma-rig)
195
+ - [DataGemma RAG](https://www.kaggle.com/models/google/datagemma-rag)
196
+ - [RecurrentGemma](https://ai.google.dev/gemma/docs/recurrentgemma/model_card)
197
+ - [Gemma Scope](https://ai.google.dev/gemma/docs/gemma_scope)
198
+ - [Gemma-APS](https://ai.google.dev/gemma/docs/gemma-aps)
199
+ - [T5Gemma](https://www.kaggle.com/models/google/t5gemma)
200
+ - [VaultGemma](https://www.kaggle.com/models/google/vaultgemma)
201
+ - [FunctionGemma](https://www.kaggle.com/models/google/functiongemma)
202
+ - [T5Gemma 2](https://www.kaggle.com/models/google/t5gemma-2)
203
+ - [TranslateGemma](https://www.kaggle.com/models/google/translategemma)
204
+
205
+ > [!NOTE]
206
+ > **Note:** Previous versions of these Terms are [archived here](https://ai.google.dev/gemma/terms-archive).
NOTICE ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This Stability AI Model is licensed under the Stability AI Community License,
2
+ Copyright (c) Stability AI Ltd. All Rights Reserved.
3
+
4
+ This is a Derivative Work. The Stability AI Materials were modified as follows:
5
+
6
+ The model was converted from its original PyTorch format to Apple's Core AI
7
+ `.aimodel` format, using `torch.export` and `coreai-torch`. The network was split
8
+ into four separately-callable graphs (text conditioner, diffusion transformer,
9
+ latent decoder, audio encoder) so that the sampling loop runs on the host.
10
+
11
+ Two training-time behaviours were disabled, both inactive at inference:
12
+ - `mask_noise` in the autoencoder (a training augmentation)
13
+ - the softnorm bottleneck's decode-time dither
14
+
15
+ The bottleneck dither was measured before removal: output with it disabled differs
16
+ from stock by SNR 18.8 dB / cosine 0.9934, while two stock runs differ from each other
17
+ by SNR 21.1 dB / cosine 0.9961. Removing it therefore lands within the model's own
18
+ run-to-run variance, and makes generation deterministic.
19
+
20
+ No weights were retrained, fine-tuned, quantized or otherwise altered in value.
21
+ Graph weights are stored at float32, matching the source checkpoint.
22
+
23
+ Original model: stabilityai/stable-audio-3-small-sfx
24
+ The T5Gemma text encoder is subject to the Gemma Terms of Use (see LICENSE_GEMMA.md).
README.md ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: stability-ai-community
4
+ license_link: LICENSE.md
5
+ tags: [audio, text-to-audio, core-ai, aimodel, apple, on-device, stable-audio]
6
+ ---
7
+
8
+ # Stable Audio 3 Small SFX — Apple Core AI (`.aimodel`)
9
+
10
+ **Powered by Stability AI**
11
+
12
+ A community conversion of [`stabilityai/stable-audio-3-small-sfx`](https://huggingface.co/stabilityai/stable-audio-3-small-sfx) to Apple's
13
+ **Core AI** format, for on-device generation on iOS 27 / macOS 27. Sound effects, textures and ambiences.
14
+
15
+ Not an official Stability AI release. The weights are unchanged — this is a format
16
+ conversion, not a retrain or a fine-tune.
17
+
18
+ ## What's here
19
+
20
+ A **single `.aimodel`** holding four named inference functions, plus the tokenizer:
21
+
22
+ | Function | Signature |
23
+ |---|---|
24
+ | `conditioner` | `(input_ids, attention_mask, seconds)` → `cross_attn_cond`, `cross_attn_mask`, `global_cond` |
25
+ | `dit` | `(x, t, cross_attn_cond, cross_attn_mask, global_cond, local_add_cond)` → `v` — **any length** |
26
+ | `decoder_N` | `(latent)` → `audio` — several fixed lengths, see below |
27
+ | `encoder_N` | `(audio)` → `latent` — for audio-in, continuation and inpainting |
28
+
29
+ ```swift
30
+ let model = try await AIModel.load(url, options)
31
+ let dit = model.loadFunction("dit")
32
+ ```
33
+
34
+ `small-sfx.aimodel` is 2.9 GB and the tokenizer folder is 34 MB. All weights are
35
+ **float32** — precision was chosen by measurement, not preference; see *Fidelity*.
36
+
37
+ The conditioner's output matches the original library's conditioning assembly exactly
38
+ (0.0 difference), so nothing about the prompt or duration handling is approximated.
39
+
40
+ **Why several decoder lengths.** The DiT takes any length, but the encoder and decoder are
41
+ compiled at fixed sizes — and a fixed-length decoder makes you pay its maximum on every
42
+ call, since short latents have to be padded up to it. Measured on the 0.6 B model,
43
+ decoding the same 24 s of content costs 0.30 s / 0.5 GB through a 47.6 s graph but
44
+ 2.38 s / 2.1 GB through a 380.4 s one. So the asset ships a ladder — pick the smallest
45
+ `decoder_N` that fits your clip. Weights are shared between the functions, so the extra
46
+ rungs cost about 0.4 MB each rather than a full copy.
47
+
48
+ ## Capabilities
49
+
50
+ Feature parity with the original, with one structural difference:
51
+
52
+ | | Original | This conversion |
53
+ |---|---|---|
54
+ | Text → audio | ✅ | ✅ |
55
+ | Audio length | up to 380.4 s | up to 380.4 s |
56
+ | Audio in / continuation / inpainting | ✅ | ✅ (via the `encode_N` functions) |
57
+ | Negative prompts / CFG | ✅ | ✅ vanilla CFG, verified (see note) |
58
+ | Prompt length | 256 tokens | 256 tokens |
59
+ | Steps, seeds, determinism | ✅ | ✅ |
60
+ | 44.1 kHz stereo | ✅ | ✅ |
61
+
62
+ **The structural difference:** the DiT takes any length (its shape is `[1, 256, -1]`),
63
+ but the encoder and decoder are compiled at a fixed maximum of **380.4 s**. For shorter
64
+ audio, zero-pad the latent to that length, decode, and trim. The padding influences only
65
+ the last 7–26 ms, which falls inside the margin you should be trimming anyway.
66
+
67
+ ### Classifier-free guidance
68
+
69
+ Run the DiT twice per step and blend on the host:
70
+
71
+ ```python
72
+ v = v_cond + (cfg_scale - 1) * (v_cond - v_uncond)
73
+ ```
74
+
75
+ This reproduces the reference implementation's **vanilla** CFG exactly (cosine 1.0000000,
76
+ SNR 81.8 dB, measured). Note the reference defaults to *adaptive projected* guidance
77
+ (`apg_scale=1.0`), which projects out the parallel component; that variant is **not**
78
+ implemented here. `example.py --negative "..." --cfg-scale 3` uses the vanilla form.
79
+
80
+ ## Getting good output — read this
81
+
82
+ Three settings are not optional. Getting them wrong produces audio that is clearly
83
+ broken, not subtly worse:
84
+
85
+ 1. **Sampler must be `pingpong`.** This is an `rf_denoiser` model. Euler drives the
86
+ output past full scale (+7.8 dBFS measured) and crushes dynamic range by ~10 dB.
87
+ 2. **Generate at 256 latent frames (23.8 s) or longer.** The model's
88
+ `distribution_shift_options.min_length` is 256. Below that, output picks up gross
89
+ high-frequency content — we measured 16–27 % of energy above 10 kHz against ~1 %
90
+ for correct output.
91
+ 3. **8 steps, CFG scale 1.0.** These are the model's own defaults for this family.
92
+
93
+ Latent frames ↔ seconds: `frames = seconds × 44100 / 4096`.
94
+
95
+ ## Usage
96
+
97
+ `example.py` in this repo is self-contained — four graphs, the tokenizer, numpy and
98
+ `coreai.runtime`. No `stable-audio-tools`, no PyTorch, no virtualenv beyond the Core AI
99
+ runtime itself.
100
+
101
+ ```bash
102
+ pip install coreai-torch tokenizers numpy # brings the Core AI runtime
103
+
104
+ # text to audio
105
+ python3 example.py "loud crackling campfire with crickets" out.wav --seconds 24
106
+
107
+ # continue or inpaint from existing audio (44.1 kHz WAV)
108
+ python3 example.py "a dog barking" out.wav --seconds 24 --init-audio in.wav --keep 12
109
+ ```
110
+
111
+ `--keep` sets how many seconds of `--init-audio` are held as context; everything after it
112
+ is regenerated from the prompt. Omit `--init-audio` for plain text-to-audio.
113
+
114
+ The sampler, schedule and conditioning assembly are all in that one file, ~120 lines, if
115
+ you are porting to Swift. The ping-pong loop is four lines:
116
+
117
+ ```python
118
+ denoised = x - t[i] * dit(x, t[i], **cond)
119
+ x = (1 - t[i+1]) * denoised + t[i+1] * randn_like(x)
120
+ ```
121
+
122
+ ## Fidelity
123
+
124
+ Measured against the original PyTorch model on identical inputs:
125
+
126
+ | Graph | Cosine | SNR |
127
+ |---|---|---|
128
+ | DiT | 1.000000000 | 112.6 dB |
129
+ | Decoder | 1.000000000 | 45.3 dB |
130
+ | Encoder | 1.000000000 | ~100 dB |
131
+ | **End-to-end audio** | **0.999999981** | **74.1 dB** |
132
+
133
+ ## Performance
134
+
135
+ On an M-series Mac (36 GB), 23.8 s of 44.1 kHz stereo:
136
+
137
+ - **2.21 s** — about 10.8× realtime
138
+ - Roughly **2× faster** than the same model running under MLX with 8-bit weights
139
+
140
+ Memory scales with duration and it is the real limit, not disk. A rough guide from the
141
+ same hardware: ~7.7 GB fixed plus ~0.32 GB per second of audio for the 2 B model. Check
142
+ before you ask for long clips.
143
+
144
+ ## First load compiles the model
145
+
146
+ Core AI specialises an `.aimodel` for your device the first time you load it, then caches
147
+ the result. That first load is slow and the cost grows sharply with decoder length —
148
+ measured on the 2 B decoder, per rung: 23.8 s of audio compiles in 12 s, 47.6 s in 44 s,
149
+ 95.1 s in 8.5 min, and 190.2 s in over an hour. Subsequent loads are effectively instant.
150
+
151
+ To skip it, precompile ahead of time:
152
+
153
+ ```bash
154
+ xcrun coreai-build compile small-sfx.aimodel --platform macOS --preferred-compute gpu
155
+ ```
156
+
157
+ That writes one `.aimodelc` per architecture, which loads without compiling (2.2 s versus
158
+ 12 s on an M3 Max). `.aimodelc` runs only on the architecture it was built for, so the
159
+ portable `.aimodel` is what ships here. This is the workflow Apple recommends for apps
160
+ (WWDC26, "Integrate on-device AI models into your app using Core AI").
161
+
162
+ ## Known issue
163
+
164
+ **fp16 crashes the Neural Engine**, whatever the shape (`ANE inference operation failed`,
165
+ Code=-19) — retested on macOS 27.0 build 26A5416b. Fixing the length at export does *not*
166
+ avoid it, and nor does asking for the GPU: `allowed_compute_unit_kinds` always includes
167
+ the Neural Engine and has no setter. These graphs therefore ship at float32, which sidesteps
168
+ the bug entirely since the Neural Engine cannot execute float32 at all. Reproduced on both
169
+ model sizes.
170
+
171
+ ## Licence
172
+
173
+ Stability AI Community License — see `LICENSE.md`. Free for research, non-commercial and
174
+ limited commercial use; register with Stability AI for commercial use, and the licence
175
+ terminates above USD $1M annual revenue. The T5Gemma text encoder is additionally subject
176
+ to the Gemma Terms of Use — see `LICENSE_GEMMA.md`. See `NOTICE` for attribution.
example.py ADDED
@@ -0,0 +1,397 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) 2026 David Sherlock
2
+ #
3
+ # Use of this source code is governed by an MIT license that can be found in
4
+ # the LICENSE file or at https://opensource.org/licenses/MIT
5
+ #
6
+ # This applies to this file. The model weights it loads are licensed separately
7
+ # by Stability AI — see LICENSE.md and NOTICE alongside the .aimodel.
8
+ """Generate audio with Stable Audio 3 through Apple Core AI.
9
+
10
+ Self-contained: this file, one `.aimodel` bundle and a `tokenizer/` folder beside it.
11
+ No stable-audio-tools, no PyTorch.
12
+
13
+ python3 example.py "loud crackling campfire" out.wav --seconds 24
14
+ python3 example.py "a dog barking" out.wav --negative "music" --cfg-scale 3
15
+ python3 example.py "rain" out.wav --init-audio in.wav --regenerate 8:15
16
+
17
+ Three settings are not optional, and getting them wrong gives audibly broken output
18
+ rather than subtly worse output:
19
+
20
+ * ping-pong sampling (these are `rf_denoiser` models; Euler overshoots full scale)
21
+ * at least MIN_FRAMES latent frames, i.e. 23.8 s
22
+ * 8 steps at CFG scale 1.0
23
+
24
+ All three are the defaults here.
25
+ """
26
+
27
+ from __future__ import annotations
28
+
29
+ import argparse
30
+ import asyncio
31
+ import wave
32
+ from pathlib import Path
33
+ from typing import Any, Iterable
34
+
35
+ import numpy as np
36
+ import coreai.runtime as rt
37
+ from tokenizers import Tokenizer
38
+
39
+ SR = 44100 # sample rate the models were trained at
40
+ LATENT_DIM = 256 # channels in the latent the DiT operates on
41
+ DOWNSAMPLE = 4096 # audio samples per latent frame
42
+ MAX_TOKENS = 256 # the conditioner's fixed prompt length
43
+ STEPS = 8 # the distilled models' step count
44
+
45
+ # The model's LogSNRShift, whose `rate` is 0 — so the schedule does not vary with
46
+ # sequence length and these two constants fully determine it.
47
+ LOGSNR_START = -6.2
48
+ LOGSNR_END = 2.0
49
+
50
+ # distribution_shift_options.min_length. Below this the models emit gross
51
+ # high-frequency content: 16-27% of energy above 10 kHz, against ~1% when correct.
52
+ MIN_FRAMES = 256
53
+
54
+
55
+ def frames_for(seconds: float) -> int:
56
+ """Latent frames needed for `seconds` of audio, floored at the model's minimum."""
57
+ return max(int(round(seconds * SR / DOWNSAMPLE)), MIN_FRAMES)
58
+
59
+
60
+ def schedule(steps: int = STEPS, sigma_max: float = 1.0) -> np.ndarray:
61
+ """Timestep schedule, evenly spaced in log-SNR with the endpoints pinned.
62
+
63
+ Returns `steps + 1` values descending from `sigma_max` to 0.0. `sigma_max` below
64
+ 1.0 starts partway down the trajectory, which is how variations work: less noise
65
+ added means less departure from the source audio.
66
+ """
67
+ t = np.linspace(sigma_max, 0.0, steps + 1)
68
+ logsnr = LOGSNR_END - t * (LOGSNR_END - LOGSNR_START)
69
+ shifted = 1.0 / (1.0 + np.exp(logsnr)) # sigmoid(-logsnr)
70
+ shifted[t <= 0] = 0.0
71
+ shifted[t >= 1] = 1.0
72
+ shifted[0] = sigma_max
73
+ return shifted
74
+
75
+
76
+ def f32(array: Any) -> rt.NDArray:
77
+ """Wrap `array` as a float32 Core AI tensor."""
78
+ return rt.NDArray(np.ascontiguousarray(np.asarray(array, dtype=np.float32)))
79
+
80
+
81
+ def i32(array: Any) -> rt.NDArray:
82
+ """Wrap `array` as an int32 Core AI tensor."""
83
+ return rt.NDArray(np.ascontiguousarray(np.asarray(array, dtype=np.int32)))
84
+
85
+
86
+ def read_wav(path: str | Path) -> tuple[np.ndarray, int]:
87
+ """Read a 16-bit WAV as `([1, 2, samples] float32, sample_rate)`, mono upmixed."""
88
+ with wave.open(str(path)) as w:
89
+ count, rate, channels = w.getnframes(), w.getframerate(), w.getnchannels()
90
+ raw = w.readframes(count)
91
+ audio = np.frombuffer(raw, dtype=np.int16).astype(np.float32).reshape(-1, channels).T / 32768
92
+ if channels == 1:
93
+ audio = np.repeat(audio, 2, axis=0)
94
+ return audio[None], rate
95
+
96
+
97
+ def write_wav(path: str | Path, audio: np.ndarray, sr: int = SR) -> None:
98
+ """Peak-normalise `[channels, samples]` audio and write it as a 16-bit WAV."""
99
+ audio = audio / max(float(np.abs(audio).max()), 1e-9) * 0.99
100
+ pcm = (np.clip(audio.T, -1, 1) * 32767).astype("<i2")
101
+ with wave.open(str(path), "wb") as w:
102
+ w.setnchannels(pcm.shape[1])
103
+ w.setsampwidth(2)
104
+ w.setframerate(sr)
105
+ w.writeframes(pcm.tobytes())
106
+
107
+
108
+ def _pad_to(array: np.ndarray, length: int, axis: int) -> np.ndarray:
109
+ """Zero-pad `array` up to `length` along `axis`; return it unchanged if long enough."""
110
+ short = length - array.shape[axis]
111
+ if short <= 0:
112
+ return array
113
+ shape = list(array.shape)
114
+ shape[axis] = short
115
+ return np.concatenate([array, np.zeros(shape, np.float32)], axis=axis)
116
+
117
+
118
+ class Model:
119
+ """A loaded `.aimodel` bundle and the tokenizer beside it.
120
+
121
+ The bundle holds several graphs as named functions: `condition`, `denoise`, and
122
+ ladders of `decode_N` / `encode_N` at fixed lengths. `condition` and `denoise`
123
+ take any batch size and the denoiser any length; the codecs are fixed at batch 1
124
+ and one length each, which is why the ladder exists.
125
+ """
126
+
127
+ def __init__(self, asset: rt.AIModel, tokenizer: Tokenizer) -> None:
128
+ self._asset = asset
129
+ self._tokenizer = tokenizer
130
+ self.condition_fn = asset.load_function("condition")
131
+ self.denoise_fn = asset.load_function("denoise")
132
+
133
+ @classmethod
134
+ async def load(cls, model_dir: str | Path) -> "Model":
135
+ """Load the bundle in `model_dir` (or the `.aimodel` path itself) onto the GPU."""
136
+ path = Path(model_dir)
137
+ asset_path = path if path.suffix == ".aimodel" else next(path.glob("*.aimodel"))
138
+ folder = path.parent if path.suffix == ".aimodel" else path
139
+
140
+ options = rt.SpecializationOptions.from_preferred_compute_unit_kind(
141
+ rt.ComputeUnitKind.gpu())
142
+ asset = await rt.AIModel.load(str(asset_path), options)
143
+
144
+ tokenizer = Tokenizer.from_file(str(folder / "tokenizer" / "tokenizer.json"))
145
+ tokenizer.enable_truncation(max_length=MAX_TOKENS)
146
+ tokenizer.enable_padding(length=MAX_TOKENS, pad_id=0, pad_token="<pad>")
147
+ return cls(asset, tokenizer)
148
+
149
+ def rung(self, kind: str, need: int):
150
+ """Smallest `decode_N`/`encode_N` that fits `need` frames, with its length.
151
+
152
+ A fixed-length graph costs its full size on every call, since shorter input
153
+ has to be padded up to it — so taking the smallest that fits is worth doing.
154
+ """
155
+ available = sorted(
156
+ int(name.split("_")[1]) for name in self._asset.function_names
157
+ if name.startswith(f"{kind}_"))
158
+ fits = [length for length in available if length >= need]
159
+ if not fits:
160
+ raise SystemExit(
161
+ f"{need} frames ({need * DOWNSAMPLE / SR:.1f}s) exceeds this model's maximum "
162
+ f"of {available[-1]} ({available[-1] * DOWNSAMPLE / SR:.1f}s)")
163
+ return self._asset.load_function(f"{kind}_{fits[0]}"), fits[0]
164
+
165
+ async def condition(self, prompt: str, seconds: float,
166
+ takes: int = 1) -> tuple[Any, Any, Any]:
167
+ """Encode `prompt` and duration into `(cross_attn_cond, cross_attn_mask, global_cond)`.
168
+
169
+ The graphs take a batch dimension, so `takes` above 1 conditions that many
170
+ clips at once — the whole point being that one denoise call then produces
171
+ several independent takes of the same prompt.
172
+ """
173
+ encoded = self._tokenizer.encode(prompt)
174
+ out = await self.condition_fn(inputs={
175
+ "input_ids": i32([encoded.ids] * takes),
176
+ "attention_mask": i32([encoded.attention_mask] * takes),
177
+ "seconds": f32([seconds] * takes),
178
+ })
179
+ return out["cross_attn_cond"], out["cross_attn_mask"], out["global_cond"]
180
+
181
+ async def velocity(self, x: np.ndarray, t: float, cond: tuple[Any, Any, Any],
182
+ local: rt.NDArray) -> np.ndarray:
183
+ """One DiT evaluation: the velocity field at timestep `t`."""
184
+ cross, mask, global_cond = cond
185
+ out = await self.denoise_fn(inputs={
186
+ "x": f32(x), "t": f32([t] * x.shape[0]),
187
+ "cross_attn_cond": cross, "cross_attn_mask": mask,
188
+ "global_cond": global_cond, "local_add_cond": local,
189
+ })
190
+ return out["v"].numpy().astype(np.float32)
191
+
192
+
193
+ def guide(x: np.ndarray, t: float, v_cond: np.ndarray, v_uncond: np.ndarray,
194
+ cfg_scale: float, apg_scale: float) -> np.ndarray:
195
+ """Blend conditional and unconditional velocities into a guided one.
196
+
197
+ Guidance is defined on the *denoised* estimate rather than the velocity, so this
198
+ converts across and back. With `apg_scale` at 0 that reduces to vanilla CFG,
199
+ `v_cond + (scale - 1)(v_cond - v_uncond)`, which is verified to match the
200
+ reference exactly. Above 0 it is adaptive projected guidance: the component of
201
+ the difference parallel to the conditional estimate is attenuated, which lets
202
+ higher guidance scales be used without the output over-saturating.
203
+ """
204
+ cond = x - t * v_cond
205
+ uncond = x - t * v_uncond
206
+ diff = cond - uncond
207
+
208
+ if apg_scale != 0.0:
209
+ norm = np.sqrt((cond ** 2).sum(axis=(-2, -1), keepdims=True))
210
+ reference = cond / np.maximum(norm, 1e-8)
211
+ parallel = (diff * reference).sum(axis=(-2, -1), keepdims=True) * reference
212
+ diff = apg_scale * (diff - parallel) + (1.0 - apg_scale) * diff
213
+
214
+ guided = cond + (cfg_scale - 1.0) * diff
215
+ return (x - guided) / t
216
+
217
+
218
+ def step(x: np.ndarray, v: np.ndarray, t_now: float, t_next: float,
219
+ rng: np.random.Generator, sampler: str) -> np.ndarray:
220
+ """Advance the latent one sampler step.
221
+
222
+ `pingpong` is what these distilled models were trained for and the only one that
223
+ reliably sounds right; `euler` is here because the reference offers it, and it
224
+ overshoots full scale on this family.
225
+ """
226
+ if sampler == "euler":
227
+ return x + (t_next - t_now) * v
228
+ denoised = x - t_now * v
229
+ return (1 - t_next) * denoised + t_next * rng.standard_normal(x.shape).astype(np.float32)
230
+
231
+
232
+ def _context_mask(frames: int, keep: float | None, regenerate: str | None) -> np.ndarray:
233
+ """Build the inpaint mask: 1 keeps a frame as context, 0 regenerates it."""
234
+ if regenerate is not None:
235
+ start, end = (float(v) for v in regenerate.split(":"))
236
+ lo, hi = (min(max(int(round(v * SR / DOWNSAMPLE)), 0), frames) for v in (start, end))
237
+ mask = np.ones((1, 1, frames), np.float32)
238
+ mask[:, :, lo:hi] = 0.0 # a hole in the middle
239
+ return mask
240
+ kept = frames if keep is None else min(int(round(keep * SR / DOWNSAMPLE)), frames)
241
+ mask = np.zeros((1, 1, frames), np.float32)
242
+ mask[:, :, :kept] = 1.0 # keep a prefix, continue from it
243
+ return mask
244
+
245
+
246
+ async def _encode_latent(model: Model, frames: int, path: str) -> np.ndarray:
247
+ """Encode a WAV to a `[1, LATENT_DIM, frames]` latent, padding or trimming to fit."""
248
+ encoder, _ = model.rung("encode", frames)
249
+ want = encoder.desc.input_descriptor("audio").shape[2]
250
+ source, rate = read_wav(path)
251
+ if rate != SR:
252
+ raise SystemExit(f"{path} is {rate} Hz; resample to {SR} first")
253
+ source = _pad_to(source[:, :, :want], want, axis=2)
254
+ latent = (await encoder(inputs={"audio": f32(source)}))["latent"].numpy().astype(np.float32)
255
+ return _pad_to(latent[:, :, :frames], frames, axis=2)
256
+
257
+
258
+ async def _local_conditioning(model: Model, frames: int, init_audio: str | None,
259
+ keep: float | None, regenerate: str | None) -> rt.NDArray:
260
+ """`local_add_cond` for the DiT: `[inpaint_mask ; inpaint_masked_input]` on dim 1.
261
+
262
+ All zeros means plain text-to-audio. With `init_audio`, the clip is encoded to a
263
+ latent and masked, so kept regions condition the generation.
264
+ """
265
+ if init_audio is None:
266
+ return f32(np.zeros((1, LATENT_DIM + 1, frames)))
267
+
268
+ latent = await _encode_latent(model, frames, init_audio)
269
+ mask = _context_mask(frames, keep, regenerate)
270
+ return f32(np.concatenate([mask, latent * mask], axis=1))
271
+
272
+
273
+ async def generate(model_dir: str | Path, prompt: str, seconds: float, *, seed: int = 42,
274
+ steps: int = STEPS, init_audio: str | None = None,
275
+ keep: float | None = None, negative: str | None = None,
276
+ cfg_scale: float = 1.0, regenerate: str | None = None,
277
+ apg_scale: float = 0.0, sampler: str = "pingpong",
278
+ variation: float | None = None, takes: int = 1) -> np.ndarray:
279
+ """Generate `[2, samples]` audio at 44.1 kHz.
280
+
281
+ Args:
282
+ model_dir: folder holding the `.aimodel` and `tokenizer/`, or the asset itself.
283
+ prompt: what to generate.
284
+ seconds: requested duration; raised to 23.8 s if shorter, since the models
285
+ degrade badly below that.
286
+ seed: fixed seed, so the same inputs give the same audio.
287
+ init_audio: 44.1 kHz WAV to continue from or inpaint into.
288
+ keep: seconds of `init_audio` to hold as context, continuing after it.
289
+ regenerate: `"START:END"` in seconds to replace, keeping everything else.
290
+ negative: prompt to steer away from; needs `cfg_scale` above 1.
291
+ cfg_scale: guidance strength. 1.0 disables it.
292
+ apg_scale: 0 gives vanilla CFG, 1 gives adaptive projected guidance.
293
+ sampler: `pingpong` (correct for these models) or `euler` (for comparison).
294
+ variation: with `init_audio` and no `keep`/`regenerate`, how far to depart
295
+ from the source. 0 keeps it, 1 ignores it. Unset generates from noise.
296
+ takes: how many independent clips to generate in one pass.
297
+
298
+ Returns:
299
+ `[takes, 2, samples]` at 44.1 kHz.
300
+ """
301
+ frames = frames_for(seconds)
302
+ model = await Model.load(model_dir)
303
+ decoder, decoder_frames = model.rung("decode", frames)
304
+
305
+ duration = frames * DOWNSAMPLE / SR
306
+ cond = await model.condition(prompt, duration, takes)
307
+ uncond = await model.condition(negative, duration, takes) if (
308
+ negative is not None and cfg_scale != 1.0) else None
309
+ # Two distinct ways to use `init_audio`, and they must not be combined:
310
+ # * variation - start the trajectory from the source latent, no masking
311
+ # * keep/regenerate - mask part of the source as fixed context (inpainting)
312
+ # Applying an all-ones mask alongside a variation pins the output to the source
313
+ # and makes the noise level do nothing.
314
+ inpainting = keep is not None or regenerate is not None
315
+ local = await _local_conditioning(
316
+ model, frames, init_audio if inpainting else None, keep, regenerate)
317
+ if takes > 1:
318
+ local = f32(np.repeat(np.asarray(local.numpy()), takes, axis=0))
319
+
320
+ rng = np.random.default_rng(seed)
321
+ noise = rng.standard_normal((takes, LATENT_DIM, frames)).astype(np.float32)
322
+
323
+ if variation is None:
324
+ x, sigma_max = noise, 1.0
325
+ else:
326
+ # Variation: start partway down the trajectory from the source audio rather
327
+ # than from pure noise. Lower `variation` stays closer to the original.
328
+ if init_audio is None:
329
+ raise SystemExit("--variation needs --init-audio to vary from")
330
+ sigma_max = float(np.clip(variation, 0.0, 1.0))
331
+ source = await _encode_latent(model, frames, init_audio)
332
+ x = np.repeat(source, takes, axis=0) * (1.0 - sigma_max) + noise * sigma_max
333
+
334
+ t = schedule(steps, sigma_max)
335
+
336
+ for i in range(steps):
337
+ v = await model.velocity(x, t[i], cond, local)
338
+ if uncond is not None:
339
+ v_uncond = await model.velocity(x, t[i], uncond, local)
340
+ v = guide(x, t[i], v, v_uncond, cfg_scale, apg_scale)
341
+ x = step(x, v, t[i], t[i + 1], rng, sampler)
342
+
343
+ # The chosen rung is a fixed length: pad the latent up to it, trim the audio back.
344
+ # Decode one take at a time. The codecs are exported at batch 1 — their chunking
345
+ # folds the batch dimension into the sequence dimension, so a free batch there
346
+ # yields a graph that silently returns zeros. Decode runs once per take against
347
+ # the denoiser's eight steps, so looping costs little.
348
+ x = _pad_to(x, decoder_frames, axis=2)
349
+ takes_audio = []
350
+ for i in range(x.shape[0]):
351
+ decoded = (await decoder(inputs={"latent": f32(x[i:i + 1])}))["audio"]
352
+ takes_audio.append(decoded.numpy().astype(np.float32)[0])
353
+ return np.stack(takes_audio)[:, :, :frames * DOWNSAMPLE]
354
+
355
+
356
+ def main(argv: Iterable[str] | None = None) -> None:
357
+ parser = argparse.ArgumentParser(description=__doc__.splitlines()[0])
358
+ parser.add_argument("prompt")
359
+ parser.add_argument("out")
360
+ parser.add_argument("--seconds", type=float, default=24.0)
361
+ parser.add_argument("--seed", type=int, default=42)
362
+ parser.add_argument("--steps", type=int, default=STEPS)
363
+ parser.add_argument("--model-dir", default=".",
364
+ help="folder holding the .aimodel and tokenizer/")
365
+ parser.add_argument("--init-audio", help="44.1 kHz WAV to continue or inpaint from")
366
+ parser.add_argument("--keep", type=float,
367
+ help="seconds of --init-audio to keep as context")
368
+ parser.add_argument("--regenerate", metavar="START:END",
369
+ help="inpaint: regenerate this span (seconds), keep the rest")
370
+ parser.add_argument("--negative", help="negative prompt (needs --cfg-scale above 1)")
371
+ parser.add_argument("--cfg-scale", type=float, default=1.0,
372
+ help="guidance strength; 1.0 = off")
373
+ parser.add_argument("--apg-scale", type=float, default=0.0,
374
+ help="0 = vanilla CFG, 1 = adaptive projected guidance")
375
+ parser.add_argument("--sampler", choices=("pingpong", "euler"), default="pingpong",
376
+ help="pingpong is correct for these models; euler is for comparison")
377
+ parser.add_argument("--variation", type=float, metavar="LEVEL",
378
+ help="with --init-audio: 0 keeps the source, 1 ignores it")
379
+ parser.add_argument("--takes", type=int, default=1,
380
+ help="generate this many independent clips in one pass")
381
+ args = parser.parse_args(list(argv) if argv is not None else None)
382
+
383
+ audio = asyncio.run(generate(
384
+ args.model_dir, args.prompt, args.seconds, seed=args.seed, steps=args.steps,
385
+ init_audio=args.init_audio, keep=args.keep, negative=args.negative,
386
+ cfg_scale=args.cfg_scale, regenerate=args.regenerate, apg_scale=args.apg_scale,
387
+ sampler=args.sampler, variation=args.variation, takes=args.takes))
388
+
389
+ out = Path(args.out)
390
+ for i, take in enumerate(audio):
391
+ path = out if len(audio) == 1 else out.with_name(f"{out.stem}_{i + 1}{out.suffix}")
392
+ write_wav(path, take)
393
+ print(f"wrote {path}: {take.shape[1] / SR:.2f}s")
394
+
395
+
396
+ if __name__ == "__main__":
397
+ main()
small-sfx.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ ���m���i�q�{�Nd\ �tٍ�c�>���3
small-sfx.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:13c4f306f66dd50e81f269a6718c7bf74e645c0cb774d98dbf63953eb2eefe33
3
+ size 2848525006
small-sfx.aimodel/metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "creationDate" : "20260818T135719Z",
3
+ "assetVersion" : "2.0",
4
+ "description" : "Stable Audio 3 small-sfx converted to Core AI. Text-to-audio latent diffusion: T5Gemma conditioning, a diffusion transformer accepting any latent length, and Oobleck VAE encode\/decode at fixed lengths. Weights unchanged from stabilityai\/stable-audio-3-small-sfx; format conversion only.",
5
+ "producer" : "coreai-core 1.0.0b2",
6
+ "license" : "Stability AI Community License",
7
+ "author" : "Stability AI"
8
+ }
tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<start_of_turn>",
4
+ "<end_of_turn>"
5
+ ],
6
+ "bos_token": {
7
+ "content": "<bos>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false
12
+ },
13
+ "eos_token": {
14
+ "content": "<eos>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false
19
+ },
20
+ "pad_token": {
21
+ "content": "<pad>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false
26
+ },
27
+ "unk_token": {
28
+ "content": "<unk>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false
33
+ }
34
+ }
tokenizer/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7794135caa3ea73918949c902a781cc61dab674a4b59c17d85931c77c1114cbd
3
+ size 34362429
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,2014 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_eos_token": false,
4
+ "added_tokens_decoder": {
5
+ "0": {
6
+ "content": "<pad>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "1": {
14
+ "content": "<eos>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "2": {
22
+ "content": "<bos>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "3": {
30
+ "content": "<unk>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "4": {
38
+ "content": "<mask>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": false
44
+ },
45
+ "5": {
46
+ "content": "<2mass>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": false
52
+ },
53
+ "6": {
54
+ "content": "[@BOS@]",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": false
60
+ },
61
+ "7": {
62
+ "content": "<unused0>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": false
68
+ },
69
+ "8": {
70
+ "content": "<unused1>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": false
76
+ },
77
+ "9": {
78
+ "content": "<unused2>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": false
84
+ },
85
+ "10": {
86
+ "content": "<unused3>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": false
92
+ },
93
+ "11": {
94
+ "content": "<unused4>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": false
100
+ },
101
+ "12": {
102
+ "content": "<unused5>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": false
108
+ },
109
+ "13": {
110
+ "content": "<unused6>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": false
116
+ },
117
+ "14": {
118
+ "content": "<unused7>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "15": {
126
+ "content": "<unused8>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "16": {
134
+ "content": "<unused9>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "17": {
142
+ "content": "<unused10>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "18": {
150
+ "content": "<unused11>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "19": {
158
+ "content": "<unused12>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "20": {
166
+ "content": "<unused13>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "21": {
174
+ "content": "<unused14>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "22": {
182
+ "content": "<unused15>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "23": {
190
+ "content": "<unused16>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "24": {
198
+ "content": "<unused17>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "25": {
206
+ "content": "<unused18>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ },
213
+ "26": {
214
+ "content": "<unused19>",
215
+ "lstrip": false,
216
+ "normalized": false,
217
+ "rstrip": false,
218
+ "single_word": false,
219
+ "special": false
220
+ },
221
+ "27": {
222
+ "content": "<unused20>",
223
+ "lstrip": false,
224
+ "normalized": false,
225
+ "rstrip": false,
226
+ "single_word": false,
227
+ "special": false
228
+ },
229
+ "28": {
230
+ "content": "<unused21>",
231
+ "lstrip": false,
232
+ "normalized": false,
233
+ "rstrip": false,
234
+ "single_word": false,
235
+ "special": false
236
+ },
237
+ "29": {
238
+ "content": "<unused22>",
239
+ "lstrip": false,
240
+ "normalized": false,
241
+ "rstrip": false,
242
+ "single_word": false,
243
+ "special": false
244
+ },
245
+ "30": {
246
+ "content": "<unused23>",
247
+ "lstrip": false,
248
+ "normalized": false,
249
+ "rstrip": false,
250
+ "single_word": false,
251
+ "special": false
252
+ },
253
+ "31": {
254
+ "content": "<unused24>",
255
+ "lstrip": false,
256
+ "normalized": false,
257
+ "rstrip": false,
258
+ "single_word": false,
259
+ "special": false
260
+ },
261
+ "32": {
262
+ "content": "<unused25>",
263
+ "lstrip": false,
264
+ "normalized": false,
265
+ "rstrip": false,
266
+ "single_word": false,
267
+ "special": false
268
+ },
269
+ "33": {
270
+ "content": "<unused26>",
271
+ "lstrip": false,
272
+ "normalized": false,
273
+ "rstrip": false,
274
+ "single_word": false,
275
+ "special": false
276
+ },
277
+ "34": {
278
+ "content": "<unused27>",
279
+ "lstrip": false,
280
+ "normalized": false,
281
+ "rstrip": false,
282
+ "single_word": false,
283
+ "special": false
284
+ },
285
+ "35": {
286
+ "content": "<unused28>",
287
+ "lstrip": false,
288
+ "normalized": false,
289
+ "rstrip": false,
290
+ "single_word": false,
291
+ "special": false
292
+ },
293
+ "36": {
294
+ "content": "<unused29>",
295
+ "lstrip": false,
296
+ "normalized": false,
297
+ "rstrip": false,
298
+ "single_word": false,
299
+ "special": false
300
+ },
301
+ "37": {
302
+ "content": "<unused30>",
303
+ "lstrip": false,
304
+ "normalized": false,
305
+ "rstrip": false,
306
+ "single_word": false,
307
+ "special": false
308
+ },
309
+ "38": {
310
+ "content": "<unused31>",
311
+ "lstrip": false,
312
+ "normalized": false,
313
+ "rstrip": false,
314
+ "single_word": false,
315
+ "special": false
316
+ },
317
+ "39": {
318
+ "content": "<unused32>",
319
+ "lstrip": false,
320
+ "normalized": false,
321
+ "rstrip": false,
322
+ "single_word": false,
323
+ "special": false
324
+ },
325
+ "40": {
326
+ "content": "<unused33>",
327
+ "lstrip": false,
328
+ "normalized": false,
329
+ "rstrip": false,
330
+ "single_word": false,
331
+ "special": false
332
+ },
333
+ "41": {
334
+ "content": "<unused34>",
335
+ "lstrip": false,
336
+ "normalized": false,
337
+ "rstrip": false,
338
+ "single_word": false,
339
+ "special": false
340
+ },
341
+ "42": {
342
+ "content": "<unused35>",
343
+ "lstrip": false,
344
+ "normalized": false,
345
+ "rstrip": false,
346
+ "single_word": false,
347
+ "special": false
348
+ },
349
+ "43": {
350
+ "content": "<unused36>",
351
+ "lstrip": false,
352
+ "normalized": false,
353
+ "rstrip": false,
354
+ "single_word": false,
355
+ "special": false
356
+ },
357
+ "44": {
358
+ "content": "<unused37>",
359
+ "lstrip": false,
360
+ "normalized": false,
361
+ "rstrip": false,
362
+ "single_word": false,
363
+ "special": false
364
+ },
365
+ "45": {
366
+ "content": "<unused38>",
367
+ "lstrip": false,
368
+ "normalized": false,
369
+ "rstrip": false,
370
+ "single_word": false,
371
+ "special": false
372
+ },
373
+ "46": {
374
+ "content": "<unused39>",
375
+ "lstrip": false,
376
+ "normalized": false,
377
+ "rstrip": false,
378
+ "single_word": false,
379
+ "special": false
380
+ },
381
+ "47": {
382
+ "content": "<unused40>",
383
+ "lstrip": false,
384
+ "normalized": false,
385
+ "rstrip": false,
386
+ "single_word": false,
387
+ "special": false
388
+ },
389
+ "48": {
390
+ "content": "<unused41>",
391
+ "lstrip": false,
392
+ "normalized": false,
393
+ "rstrip": false,
394
+ "single_word": false,
395
+ "special": false
396
+ },
397
+ "49": {
398
+ "content": "<unused42>",
399
+ "lstrip": false,
400
+ "normalized": false,
401
+ "rstrip": false,
402
+ "single_word": false,
403
+ "special": false
404
+ },
405
+ "50": {
406
+ "content": "<unused43>",
407
+ "lstrip": false,
408
+ "normalized": false,
409
+ "rstrip": false,
410
+ "single_word": false,
411
+ "special": false
412
+ },
413
+ "51": {
414
+ "content": "<unused44>",
415
+ "lstrip": false,
416
+ "normalized": false,
417
+ "rstrip": false,
418
+ "single_word": false,
419
+ "special": false
420
+ },
421
+ "52": {
422
+ "content": "<unused45>",
423
+ "lstrip": false,
424
+ "normalized": false,
425
+ "rstrip": false,
426
+ "single_word": false,
427
+ "special": false
428
+ },
429
+ "53": {
430
+ "content": "<unused46>",
431
+ "lstrip": false,
432
+ "normalized": false,
433
+ "rstrip": false,
434
+ "single_word": false,
435
+ "special": false
436
+ },
437
+ "54": {
438
+ "content": "<unused47>",
439
+ "lstrip": false,
440
+ "normalized": false,
441
+ "rstrip": false,
442
+ "single_word": false,
443
+ "special": false
444
+ },
445
+ "55": {
446
+ "content": "<unused48>",
447
+ "lstrip": false,
448
+ "normalized": false,
449
+ "rstrip": false,
450
+ "single_word": false,
451
+ "special": false
452
+ },
453
+ "56": {
454
+ "content": "<unused49>",
455
+ "lstrip": false,
456
+ "normalized": false,
457
+ "rstrip": false,
458
+ "single_word": false,
459
+ "special": false
460
+ },
461
+ "57": {
462
+ "content": "<unused50>",
463
+ "lstrip": false,
464
+ "normalized": false,
465
+ "rstrip": false,
466
+ "single_word": false,
467
+ "special": false
468
+ },
469
+ "58": {
470
+ "content": "<unused51>",
471
+ "lstrip": false,
472
+ "normalized": false,
473
+ "rstrip": false,
474
+ "single_word": false,
475
+ "special": false
476
+ },
477
+ "59": {
478
+ "content": "<unused52>",
479
+ "lstrip": false,
480
+ "normalized": false,
481
+ "rstrip": false,
482
+ "single_word": false,
483
+ "special": false
484
+ },
485
+ "60": {
486
+ "content": "<unused53>",
487
+ "lstrip": false,
488
+ "normalized": false,
489
+ "rstrip": false,
490
+ "single_word": false,
491
+ "special": false
492
+ },
493
+ "61": {
494
+ "content": "<unused54>",
495
+ "lstrip": false,
496
+ "normalized": false,
497
+ "rstrip": false,
498
+ "single_word": false,
499
+ "special": false
500
+ },
501
+ "62": {
502
+ "content": "<unused55>",
503
+ "lstrip": false,
504
+ "normalized": false,
505
+ "rstrip": false,
506
+ "single_word": false,
507
+ "special": false
508
+ },
509
+ "63": {
510
+ "content": "<unused56>",
511
+ "lstrip": false,
512
+ "normalized": false,
513
+ "rstrip": false,
514
+ "single_word": false,
515
+ "special": false
516
+ },
517
+ "64": {
518
+ "content": "<unused57>",
519
+ "lstrip": false,
520
+ "normalized": false,
521
+ "rstrip": false,
522
+ "single_word": false,
523
+ "special": false
524
+ },
525
+ "65": {
526
+ "content": "<unused58>",
527
+ "lstrip": false,
528
+ "normalized": false,
529
+ "rstrip": false,
530
+ "single_word": false,
531
+ "special": false
532
+ },
533
+ "66": {
534
+ "content": "<unused59>",
535
+ "lstrip": false,
536
+ "normalized": false,
537
+ "rstrip": false,
538
+ "single_word": false,
539
+ "special": false
540
+ },
541
+ "67": {
542
+ "content": "<unused60>",
543
+ "lstrip": false,
544
+ "normalized": false,
545
+ "rstrip": false,
546
+ "single_word": false,
547
+ "special": false
548
+ },
549
+ "68": {
550
+ "content": "<unused61>",
551
+ "lstrip": false,
552
+ "normalized": false,
553
+ "rstrip": false,
554
+ "single_word": false,
555
+ "special": false
556
+ },
557
+ "69": {
558
+ "content": "<unused62>",
559
+ "lstrip": false,
560
+ "normalized": false,
561
+ "rstrip": false,
562
+ "single_word": false,
563
+ "special": false
564
+ },
565
+ "70": {
566
+ "content": "<unused63>",
567
+ "lstrip": false,
568
+ "normalized": false,
569
+ "rstrip": false,
570
+ "single_word": false,
571
+ "special": false
572
+ },
573
+ "71": {
574
+ "content": "<unused64>",
575
+ "lstrip": false,
576
+ "normalized": false,
577
+ "rstrip": false,
578
+ "single_word": false,
579
+ "special": false
580
+ },
581
+ "72": {
582
+ "content": "<unused65>",
583
+ "lstrip": false,
584
+ "normalized": false,
585
+ "rstrip": false,
586
+ "single_word": false,
587
+ "special": false
588
+ },
589
+ "73": {
590
+ "content": "<unused66>",
591
+ "lstrip": false,
592
+ "normalized": false,
593
+ "rstrip": false,
594
+ "single_word": false,
595
+ "special": false
596
+ },
597
+ "74": {
598
+ "content": "<unused67>",
599
+ "lstrip": false,
600
+ "normalized": false,
601
+ "rstrip": false,
602
+ "single_word": false,
603
+ "special": false
604
+ },
605
+ "75": {
606
+ "content": "<unused68>",
607
+ "lstrip": false,
608
+ "normalized": false,
609
+ "rstrip": false,
610
+ "single_word": false,
611
+ "special": false
612
+ },
613
+ "76": {
614
+ "content": "<unused69>",
615
+ "lstrip": false,
616
+ "normalized": false,
617
+ "rstrip": false,
618
+ "single_word": false,
619
+ "special": false
620
+ },
621
+ "77": {
622
+ "content": "<unused70>",
623
+ "lstrip": false,
624
+ "normalized": false,
625
+ "rstrip": false,
626
+ "single_word": false,
627
+ "special": false
628
+ },
629
+ "78": {
630
+ "content": "<unused71>",
631
+ "lstrip": false,
632
+ "normalized": false,
633
+ "rstrip": false,
634
+ "single_word": false,
635
+ "special": false
636
+ },
637
+ "79": {
638
+ "content": "<unused72>",
639
+ "lstrip": false,
640
+ "normalized": false,
641
+ "rstrip": false,
642
+ "single_word": false,
643
+ "special": false
644
+ },
645
+ "80": {
646
+ "content": "<unused73>",
647
+ "lstrip": false,
648
+ "normalized": false,
649
+ "rstrip": false,
650
+ "single_word": false,
651
+ "special": false
652
+ },
653
+ "81": {
654
+ "content": "<unused74>",
655
+ "lstrip": false,
656
+ "normalized": false,
657
+ "rstrip": false,
658
+ "single_word": false,
659
+ "special": false
660
+ },
661
+ "82": {
662
+ "content": "<unused75>",
663
+ "lstrip": false,
664
+ "normalized": false,
665
+ "rstrip": false,
666
+ "single_word": false,
667
+ "special": false
668
+ },
669
+ "83": {
670
+ "content": "<unused76>",
671
+ "lstrip": false,
672
+ "normalized": false,
673
+ "rstrip": false,
674
+ "single_word": false,
675
+ "special": false
676
+ },
677
+ "84": {
678
+ "content": "<unused77>",
679
+ "lstrip": false,
680
+ "normalized": false,
681
+ "rstrip": false,
682
+ "single_word": false,
683
+ "special": false
684
+ },
685
+ "85": {
686
+ "content": "<unused78>",
687
+ "lstrip": false,
688
+ "normalized": false,
689
+ "rstrip": false,
690
+ "single_word": false,
691
+ "special": false
692
+ },
693
+ "86": {
694
+ "content": "<unused79>",
695
+ "lstrip": false,
696
+ "normalized": false,
697
+ "rstrip": false,
698
+ "single_word": false,
699
+ "special": false
700
+ },
701
+ "87": {
702
+ "content": "<unused80>",
703
+ "lstrip": false,
704
+ "normalized": false,
705
+ "rstrip": false,
706
+ "single_word": false,
707
+ "special": false
708
+ },
709
+ "88": {
710
+ "content": "<unused81>",
711
+ "lstrip": false,
712
+ "normalized": false,
713
+ "rstrip": false,
714
+ "single_word": false,
715
+ "special": false
716
+ },
717
+ "89": {
718
+ "content": "<unused82>",
719
+ "lstrip": false,
720
+ "normalized": false,
721
+ "rstrip": false,
722
+ "single_word": false,
723
+ "special": false
724
+ },
725
+ "90": {
726
+ "content": "<unused83>",
727
+ "lstrip": false,
728
+ "normalized": false,
729
+ "rstrip": false,
730
+ "single_word": false,
731
+ "special": false
732
+ },
733
+ "91": {
734
+ "content": "<unused84>",
735
+ "lstrip": false,
736
+ "normalized": false,
737
+ "rstrip": false,
738
+ "single_word": false,
739
+ "special": false
740
+ },
741
+ "92": {
742
+ "content": "<unused85>",
743
+ "lstrip": false,
744
+ "normalized": false,
745
+ "rstrip": false,
746
+ "single_word": false,
747
+ "special": false
748
+ },
749
+ "93": {
750
+ "content": "<unused86>",
751
+ "lstrip": false,
752
+ "normalized": false,
753
+ "rstrip": false,
754
+ "single_word": false,
755
+ "special": false
756
+ },
757
+ "94": {
758
+ "content": "<unused87>",
759
+ "lstrip": false,
760
+ "normalized": false,
761
+ "rstrip": false,
762
+ "single_word": false,
763
+ "special": false
764
+ },
765
+ "95": {
766
+ "content": "<unused88>",
767
+ "lstrip": false,
768
+ "normalized": false,
769
+ "rstrip": false,
770
+ "single_word": false,
771
+ "special": false
772
+ },
773
+ "96": {
774
+ "content": "<unused89>",
775
+ "lstrip": false,
776
+ "normalized": false,
777
+ "rstrip": false,
778
+ "single_word": false,
779
+ "special": false
780
+ },
781
+ "97": {
782
+ "content": "<unused90>",
783
+ "lstrip": false,
784
+ "normalized": false,
785
+ "rstrip": false,
786
+ "single_word": false,
787
+ "special": false
788
+ },
789
+ "98": {
790
+ "content": "<unused91>",
791
+ "lstrip": false,
792
+ "normalized": false,
793
+ "rstrip": false,
794
+ "single_word": false,
795
+ "special": false
796
+ },
797
+ "99": {
798
+ "content": "<unused92>",
799
+ "lstrip": false,
800
+ "normalized": false,
801
+ "rstrip": false,
802
+ "single_word": false,
803
+ "special": false
804
+ },
805
+ "100": {
806
+ "content": "<unused93>",
807
+ "lstrip": false,
808
+ "normalized": false,
809
+ "rstrip": false,
810
+ "single_word": false,
811
+ "special": false
812
+ },
813
+ "101": {
814
+ "content": "<unused94>",
815
+ "lstrip": false,
816
+ "normalized": false,
817
+ "rstrip": false,
818
+ "single_word": false,
819
+ "special": false
820
+ },
821
+ "102": {
822
+ "content": "<unused95>",
823
+ "lstrip": false,
824
+ "normalized": false,
825
+ "rstrip": false,
826
+ "single_word": false,
827
+ "special": false
828
+ },
829
+ "103": {
830
+ "content": "<unused96>",
831
+ "lstrip": false,
832
+ "normalized": false,
833
+ "rstrip": false,
834
+ "single_word": false,
835
+ "special": false
836
+ },
837
+ "104": {
838
+ "content": "<unused97>",
839
+ "lstrip": false,
840
+ "normalized": false,
841
+ "rstrip": false,
842
+ "single_word": false,
843
+ "special": false
844
+ },
845
+ "105": {
846
+ "content": "<unused98>",
847
+ "lstrip": false,
848
+ "normalized": false,
849
+ "rstrip": false,
850
+ "single_word": false,
851
+ "special": false
852
+ },
853
+ "106": {
854
+ "content": "<start_of_turn>",
855
+ "lstrip": false,
856
+ "normalized": false,
857
+ "rstrip": false,
858
+ "single_word": false,
859
+ "special": true
860
+ },
861
+ "107": {
862
+ "content": "<end_of_turn>",
863
+ "lstrip": false,
864
+ "normalized": false,
865
+ "rstrip": false,
866
+ "single_word": false,
867
+ "special": true
868
+ },
869
+ "108": {
870
+ "content": "\n",
871
+ "lstrip": false,
872
+ "normalized": false,
873
+ "rstrip": false,
874
+ "single_word": false,
875
+ "special": false
876
+ },
877
+ "109": {
878
+ "content": "\n\n",
879
+ "lstrip": false,
880
+ "normalized": false,
881
+ "rstrip": false,
882
+ "single_word": false,
883
+ "special": false
884
+ },
885
+ "110": {
886
+ "content": "\n\n\n",
887
+ "lstrip": false,
888
+ "normalized": false,
889
+ "rstrip": false,
890
+ "single_word": false,
891
+ "special": false
892
+ },
893
+ "111": {
894
+ "content": "\n\n\n\n",
895
+ "lstrip": false,
896
+ "normalized": false,
897
+ "rstrip": false,
898
+ "single_word": false,
899
+ "special": false
900
+ },
901
+ "112": {
902
+ "content": "\n\n\n\n\n",
903
+ "lstrip": false,
904
+ "normalized": false,
905
+ "rstrip": false,
906
+ "single_word": false,
907
+ "special": false
908
+ },
909
+ "113": {
910
+ "content": "\n\n\n\n\n\n",
911
+ "lstrip": false,
912
+ "normalized": false,
913
+ "rstrip": false,
914
+ "single_word": false,
915
+ "special": false
916
+ },
917
+ "114": {
918
+ "content": "\n\n\n\n\n\n\n",
919
+ "lstrip": false,
920
+ "normalized": false,
921
+ "rstrip": false,
922
+ "single_word": false,
923
+ "special": false
924
+ },
925
+ "115": {
926
+ "content": "\n\n\n\n\n\n\n\n",
927
+ "lstrip": false,
928
+ "normalized": false,
929
+ "rstrip": false,
930
+ "single_word": false,
931
+ "special": false
932
+ },
933
+ "116": {
934
+ "content": "\n\n\n\n\n\n\n\n\n",
935
+ "lstrip": false,
936
+ "normalized": false,
937
+ "rstrip": false,
938
+ "single_word": false,
939
+ "special": false
940
+ },
941
+ "117": {
942
+ "content": "\n\n\n\n\n\n\n\n\n\n",
943
+ "lstrip": false,
944
+ "normalized": false,
945
+ "rstrip": false,
946
+ "single_word": false,
947
+ "special": false
948
+ },
949
+ "118": {
950
+ "content": "\n\n\n\n\n\n\n\n\n\n\n",
951
+ "lstrip": false,
952
+ "normalized": false,
953
+ "rstrip": false,
954
+ "single_word": false,
955
+ "special": false
956
+ },
957
+ "119": {
958
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n",
959
+ "lstrip": false,
960
+ "normalized": false,
961
+ "rstrip": false,
962
+ "single_word": false,
963
+ "special": false
964
+ },
965
+ "120": {
966
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n",
967
+ "lstrip": false,
968
+ "normalized": false,
969
+ "rstrip": false,
970
+ "single_word": false,
971
+ "special": false
972
+ },
973
+ "121": {
974
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
975
+ "lstrip": false,
976
+ "normalized": false,
977
+ "rstrip": false,
978
+ "single_word": false,
979
+ "special": false
980
+ },
981
+ "122": {
982
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
983
+ "lstrip": false,
984
+ "normalized": false,
985
+ "rstrip": false,
986
+ "single_word": false,
987
+ "special": false
988
+ },
989
+ "123": {
990
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
991
+ "lstrip": false,
992
+ "normalized": false,
993
+ "rstrip": false,
994
+ "single_word": false,
995
+ "special": false
996
+ },
997
+ "124": {
998
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
999
+ "lstrip": false,
1000
+ "normalized": false,
1001
+ "rstrip": false,
1002
+ "single_word": false,
1003
+ "special": false
1004
+ },
1005
+ "125": {
1006
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1007
+ "lstrip": false,
1008
+ "normalized": false,
1009
+ "rstrip": false,
1010
+ "single_word": false,
1011
+ "special": false
1012
+ },
1013
+ "126": {
1014
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1015
+ "lstrip": false,
1016
+ "normalized": false,
1017
+ "rstrip": false,
1018
+ "single_word": false,
1019
+ "special": false
1020
+ },
1021
+ "127": {
1022
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1023
+ "lstrip": false,
1024
+ "normalized": false,
1025
+ "rstrip": false,
1026
+ "single_word": false,
1027
+ "special": false
1028
+ },
1029
+ "128": {
1030
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1031
+ "lstrip": false,
1032
+ "normalized": false,
1033
+ "rstrip": false,
1034
+ "single_word": false,
1035
+ "special": false
1036
+ },
1037
+ "129": {
1038
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1039
+ "lstrip": false,
1040
+ "normalized": false,
1041
+ "rstrip": false,
1042
+ "single_word": false,
1043
+ "special": false
1044
+ },
1045
+ "130": {
1046
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1047
+ "lstrip": false,
1048
+ "normalized": false,
1049
+ "rstrip": false,
1050
+ "single_word": false,
1051
+ "special": false
1052
+ },
1053
+ "131": {
1054
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1055
+ "lstrip": false,
1056
+ "normalized": false,
1057
+ "rstrip": false,
1058
+ "single_word": false,
1059
+ "special": false
1060
+ },
1061
+ "132": {
1062
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1063
+ "lstrip": false,
1064
+ "normalized": false,
1065
+ "rstrip": false,
1066
+ "single_word": false,
1067
+ "special": false
1068
+ },
1069
+ "133": {
1070
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1071
+ "lstrip": false,
1072
+ "normalized": false,
1073
+ "rstrip": false,
1074
+ "single_word": false,
1075
+ "special": false
1076
+ },
1077
+ "134": {
1078
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1079
+ "lstrip": false,
1080
+ "normalized": false,
1081
+ "rstrip": false,
1082
+ "single_word": false,
1083
+ "special": false
1084
+ },
1085
+ "135": {
1086
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1087
+ "lstrip": false,
1088
+ "normalized": false,
1089
+ "rstrip": false,
1090
+ "single_word": false,
1091
+ "special": false
1092
+ },
1093
+ "136": {
1094
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1095
+ "lstrip": false,
1096
+ "normalized": false,
1097
+ "rstrip": false,
1098
+ "single_word": false,
1099
+ "special": false
1100
+ },
1101
+ "137": {
1102
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1103
+ "lstrip": false,
1104
+ "normalized": false,
1105
+ "rstrip": false,
1106
+ "single_word": false,
1107
+ "special": false
1108
+ },
1109
+ "138": {
1110
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1111
+ "lstrip": false,
1112
+ "normalized": false,
1113
+ "rstrip": false,
1114
+ "single_word": false,
1115
+ "special": false
1116
+ },
1117
+ "139": {
1118
+ "content": "▁▁",
1119
+ "lstrip": false,
1120
+ "normalized": false,
1121
+ "rstrip": false,
1122
+ "single_word": false,
1123
+ "special": false
1124
+ },
1125
+ "140": {
1126
+ "content": "▁▁▁",
1127
+ "lstrip": false,
1128
+ "normalized": false,
1129
+ "rstrip": false,
1130
+ "single_word": false,
1131
+ "special": false
1132
+ },
1133
+ "141": {
1134
+ "content": "▁▁▁▁",
1135
+ "lstrip": false,
1136
+ "normalized": false,
1137
+ "rstrip": false,
1138
+ "single_word": false,
1139
+ "special": false
1140
+ },
1141
+ "142": {
1142
+ "content": "▁▁▁▁▁",
1143
+ "lstrip": false,
1144
+ "normalized": false,
1145
+ "rstrip": false,
1146
+ "single_word": false,
1147
+ "special": false
1148
+ },
1149
+ "143": {
1150
+ "content": "▁▁▁▁▁▁",
1151
+ "lstrip": false,
1152
+ "normalized": false,
1153
+ "rstrip": false,
1154
+ "single_word": false,
1155
+ "special": false
1156
+ },
1157
+ "144": {
1158
+ "content": "▁▁▁▁▁▁▁",
1159
+ "lstrip": false,
1160
+ "normalized": false,
1161
+ "rstrip": false,
1162
+ "single_word": false,
1163
+ "special": false
1164
+ },
1165
+ "145": {
1166
+ "content": "▁▁▁▁▁▁▁▁",
1167
+ "lstrip": false,
1168
+ "normalized": false,
1169
+ "rstrip": false,
1170
+ "single_word": false,
1171
+ "special": false
1172
+ },
1173
+ "146": {
1174
+ "content": "▁▁▁▁▁▁▁▁▁",
1175
+ "lstrip": false,
1176
+ "normalized": false,
1177
+ "rstrip": false,
1178
+ "single_word": false,
1179
+ "special": false
1180
+ },
1181
+ "147": {
1182
+ "content": "▁▁▁▁▁▁▁▁▁▁",
1183
+ "lstrip": false,
1184
+ "normalized": false,
1185
+ "rstrip": false,
1186
+ "single_word": false,
1187
+ "special": false
1188
+ },
1189
+ "148": {
1190
+ "content": "▁▁▁▁▁▁▁▁▁▁▁",
1191
+ "lstrip": false,
1192
+ "normalized": false,
1193
+ "rstrip": false,
1194
+ "single_word": false,
1195
+ "special": false
1196
+ },
1197
+ "149": {
1198
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁",
1199
+ "lstrip": false,
1200
+ "normalized": false,
1201
+ "rstrip": false,
1202
+ "single_word": false,
1203
+ "special": false
1204
+ },
1205
+ "150": {
1206
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁",
1207
+ "lstrip": false,
1208
+ "normalized": false,
1209
+ "rstrip": false,
1210
+ "single_word": false,
1211
+ "special": false
1212
+ },
1213
+ "151": {
1214
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1215
+ "lstrip": false,
1216
+ "normalized": false,
1217
+ "rstrip": false,
1218
+ "single_word": false,
1219
+ "special": false
1220
+ },
1221
+ "152": {
1222
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1223
+ "lstrip": false,
1224
+ "normalized": false,
1225
+ "rstrip": false,
1226
+ "single_word": false,
1227
+ "special": false
1228
+ },
1229
+ "153": {
1230
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1231
+ "lstrip": false,
1232
+ "normalized": false,
1233
+ "rstrip": false,
1234
+ "single_word": false,
1235
+ "special": false
1236
+ },
1237
+ "154": {
1238
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1239
+ "lstrip": false,
1240
+ "normalized": false,
1241
+ "rstrip": false,
1242
+ "single_word": false,
1243
+ "special": false
1244
+ },
1245
+ "155": {
1246
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1247
+ "lstrip": false,
1248
+ "normalized": false,
1249
+ "rstrip": false,
1250
+ "single_word": false,
1251
+ "special": false
1252
+ },
1253
+ "156": {
1254
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1255
+ "lstrip": false,
1256
+ "normalized": false,
1257
+ "rstrip": false,
1258
+ "single_word": false,
1259
+ "special": false
1260
+ },
1261
+ "157": {
1262
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1263
+ "lstrip": false,
1264
+ "normalized": false,
1265
+ "rstrip": false,
1266
+ "single_word": false,
1267
+ "special": false
1268
+ },
1269
+ "158": {
1270
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1271
+ "lstrip": false,
1272
+ "normalized": false,
1273
+ "rstrip": false,
1274
+ "single_word": false,
1275
+ "special": false
1276
+ },
1277
+ "159": {
1278
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1279
+ "lstrip": false,
1280
+ "normalized": false,
1281
+ "rstrip": false,
1282
+ "single_word": false,
1283
+ "special": false
1284
+ },
1285
+ "160": {
1286
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1287
+ "lstrip": false,
1288
+ "normalized": false,
1289
+ "rstrip": false,
1290
+ "single_word": false,
1291
+ "special": false
1292
+ },
1293
+ "161": {
1294
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1295
+ "lstrip": false,
1296
+ "normalized": false,
1297
+ "rstrip": false,
1298
+ "single_word": false,
1299
+ "special": false
1300
+ },
1301
+ "162": {
1302
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1303
+ "lstrip": false,
1304
+ "normalized": false,
1305
+ "rstrip": false,
1306
+ "single_word": false,
1307
+ "special": false
1308
+ },
1309
+ "163": {
1310
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1311
+ "lstrip": false,
1312
+ "normalized": false,
1313
+ "rstrip": false,
1314
+ "single_word": false,
1315
+ "special": false
1316
+ },
1317
+ "164": {
1318
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1319
+ "lstrip": false,
1320
+ "normalized": false,
1321
+ "rstrip": false,
1322
+ "single_word": false,
1323
+ "special": false
1324
+ },
1325
+ "165": {
1326
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1327
+ "lstrip": false,
1328
+ "normalized": false,
1329
+ "rstrip": false,
1330
+ "single_word": false,
1331
+ "special": false
1332
+ },
1333
+ "166": {
1334
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1335
+ "lstrip": false,
1336
+ "normalized": false,
1337
+ "rstrip": false,
1338
+ "single_word": false,
1339
+ "special": false
1340
+ },
1341
+ "167": {
1342
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1343
+ "lstrip": false,
1344
+ "normalized": false,
1345
+ "rstrip": false,
1346
+ "single_word": false,
1347
+ "special": false
1348
+ },
1349
+ "168": {
1350
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1351
+ "lstrip": false,
1352
+ "normalized": false,
1353
+ "rstrip": false,
1354
+ "single_word": false,
1355
+ "special": false
1356
+ },
1357
+ "169": {
1358
+ "content": "<table>",
1359
+ "lstrip": false,
1360
+ "normalized": false,
1361
+ "rstrip": false,
1362
+ "single_word": false,
1363
+ "special": false
1364
+ },
1365
+ "170": {
1366
+ "content": "<caption>",
1367
+ "lstrip": false,
1368
+ "normalized": false,
1369
+ "rstrip": false,
1370
+ "single_word": false,
1371
+ "special": false
1372
+ },
1373
+ "171": {
1374
+ "content": "<thead>",
1375
+ "lstrip": false,
1376
+ "normalized": false,
1377
+ "rstrip": false,
1378
+ "single_word": false,
1379
+ "special": false
1380
+ },
1381
+ "172": {
1382
+ "content": "<tbody>",
1383
+ "lstrip": false,
1384
+ "normalized": false,
1385
+ "rstrip": false,
1386
+ "single_word": false,
1387
+ "special": false
1388
+ },
1389
+ "173": {
1390
+ "content": "<tfoot>",
1391
+ "lstrip": false,
1392
+ "normalized": false,
1393
+ "rstrip": false,
1394
+ "single_word": false,
1395
+ "special": false
1396
+ },
1397
+ "174": {
1398
+ "content": "<tr>",
1399
+ "lstrip": false,
1400
+ "normalized": false,
1401
+ "rstrip": false,
1402
+ "single_word": false,
1403
+ "special": false
1404
+ },
1405
+ "175": {
1406
+ "content": "<th>",
1407
+ "lstrip": false,
1408
+ "normalized": false,
1409
+ "rstrip": false,
1410
+ "single_word": false,
1411
+ "special": false
1412
+ },
1413
+ "176": {
1414
+ "content": "<td>",
1415
+ "lstrip": false,
1416
+ "normalized": false,
1417
+ "rstrip": false,
1418
+ "single_word": false,
1419
+ "special": false
1420
+ },
1421
+ "177": {
1422
+ "content": "</table>",
1423
+ "lstrip": false,
1424
+ "normalized": false,
1425
+ "rstrip": false,
1426
+ "single_word": false,
1427
+ "special": false
1428
+ },
1429
+ "178": {
1430
+ "content": "</caption>",
1431
+ "lstrip": false,
1432
+ "normalized": false,
1433
+ "rstrip": false,
1434
+ "single_word": false,
1435
+ "special": false
1436
+ },
1437
+ "179": {
1438
+ "content": "</thead>",
1439
+ "lstrip": false,
1440
+ "normalized": false,
1441
+ "rstrip": false,
1442
+ "single_word": false,
1443
+ "special": false
1444
+ },
1445
+ "180": {
1446
+ "content": "</tbody>",
1447
+ "lstrip": false,
1448
+ "normalized": false,
1449
+ "rstrip": false,
1450
+ "single_word": false,
1451
+ "special": false
1452
+ },
1453
+ "181": {
1454
+ "content": "</tfoot>",
1455
+ "lstrip": false,
1456
+ "normalized": false,
1457
+ "rstrip": false,
1458
+ "single_word": false,
1459
+ "special": false
1460
+ },
1461
+ "182": {
1462
+ "content": "</tr>",
1463
+ "lstrip": false,
1464
+ "normalized": false,
1465
+ "rstrip": false,
1466
+ "single_word": false,
1467
+ "special": false
1468
+ },
1469
+ "183": {
1470
+ "content": "</th>",
1471
+ "lstrip": false,
1472
+ "normalized": false,
1473
+ "rstrip": false,
1474
+ "single_word": false,
1475
+ "special": false
1476
+ },
1477
+ "184": {
1478
+ "content": "</td>",
1479
+ "lstrip": false,
1480
+ "normalized": false,
1481
+ "rstrip": false,
1482
+ "single_word": false,
1483
+ "special": false
1484
+ },
1485
+ "185": {
1486
+ "content": "<h1>",
1487
+ "lstrip": false,
1488
+ "normalized": false,
1489
+ "rstrip": false,
1490
+ "single_word": false,
1491
+ "special": false
1492
+ },
1493
+ "186": {
1494
+ "content": "<h2>",
1495
+ "lstrip": false,
1496
+ "normalized": false,
1497
+ "rstrip": false,
1498
+ "single_word": false,
1499
+ "special": false
1500
+ },
1501
+ "187": {
1502
+ "content": "<h3>",
1503
+ "lstrip": false,
1504
+ "normalized": false,
1505
+ "rstrip": false,
1506
+ "single_word": false,
1507
+ "special": false
1508
+ },
1509
+ "188": {
1510
+ "content": "<h4>",
1511
+ "lstrip": false,
1512
+ "normalized": false,
1513
+ "rstrip": false,
1514
+ "single_word": false,
1515
+ "special": false
1516
+ },
1517
+ "189": {
1518
+ "content": "<h5>",
1519
+ "lstrip": false,
1520
+ "normalized": false,
1521
+ "rstrip": false,
1522
+ "single_word": false,
1523
+ "special": false
1524
+ },
1525
+ "190": {
1526
+ "content": "<h6>",
1527
+ "lstrip": false,
1528
+ "normalized": false,
1529
+ "rstrip": false,
1530
+ "single_word": false,
1531
+ "special": false
1532
+ },
1533
+ "191": {
1534
+ "content": "<blockquote>",
1535
+ "lstrip": false,
1536
+ "normalized": false,
1537
+ "rstrip": false,
1538
+ "single_word": false,
1539
+ "special": false
1540
+ },
1541
+ "192": {
1542
+ "content": "</h1>",
1543
+ "lstrip": false,
1544
+ "normalized": false,
1545
+ "rstrip": false,
1546
+ "single_word": false,
1547
+ "special": false
1548
+ },
1549
+ "193": {
1550
+ "content": "</h2>",
1551
+ "lstrip": false,
1552
+ "normalized": false,
1553
+ "rstrip": false,
1554
+ "single_word": false,
1555
+ "special": false
1556
+ },
1557
+ "194": {
1558
+ "content": "</h3>",
1559
+ "lstrip": false,
1560
+ "normalized": false,
1561
+ "rstrip": false,
1562
+ "single_word": false,
1563
+ "special": false
1564
+ },
1565
+ "195": {
1566
+ "content": "</h4>",
1567
+ "lstrip": false,
1568
+ "normalized": false,
1569
+ "rstrip": false,
1570
+ "single_word": false,
1571
+ "special": false
1572
+ },
1573
+ "196": {
1574
+ "content": "</h5>",
1575
+ "lstrip": false,
1576
+ "normalized": false,
1577
+ "rstrip": false,
1578
+ "single_word": false,
1579
+ "special": false
1580
+ },
1581
+ "197": {
1582
+ "content": "</h6>",
1583
+ "lstrip": false,
1584
+ "normalized": false,
1585
+ "rstrip": false,
1586
+ "single_word": false,
1587
+ "special": false
1588
+ },
1589
+ "198": {
1590
+ "content": "</blockquote>",
1591
+ "lstrip": false,
1592
+ "normalized": false,
1593
+ "rstrip": false,
1594
+ "single_word": false,
1595
+ "special": false
1596
+ },
1597
+ "199": {
1598
+ "content": "<strong>",
1599
+ "lstrip": false,
1600
+ "normalized": false,
1601
+ "rstrip": false,
1602
+ "single_word": false,
1603
+ "special": false
1604
+ },
1605
+ "200": {
1606
+ "content": "<em>",
1607
+ "lstrip": false,
1608
+ "normalized": false,
1609
+ "rstrip": false,
1610
+ "single_word": false,
1611
+ "special": false
1612
+ },
1613
+ "201": {
1614
+ "content": "<b>",
1615
+ "lstrip": false,
1616
+ "normalized": false,
1617
+ "rstrip": false,
1618
+ "single_word": false,
1619
+ "special": false
1620
+ },
1621
+ "202": {
1622
+ "content": "<i>",
1623
+ "lstrip": false,
1624
+ "normalized": false,
1625
+ "rstrip": false,
1626
+ "single_word": false,
1627
+ "special": false
1628
+ },
1629
+ "203": {
1630
+ "content": "<u>",
1631
+ "lstrip": false,
1632
+ "normalized": false,
1633
+ "rstrip": false,
1634
+ "single_word": false,
1635
+ "special": false
1636
+ },
1637
+ "204": {
1638
+ "content": "<s>",
1639
+ "lstrip": false,
1640
+ "normalized": false,
1641
+ "rstrip": false,
1642
+ "single_word": false,
1643
+ "special": false
1644
+ },
1645
+ "205": {
1646
+ "content": "<sub>",
1647
+ "lstrip": false,
1648
+ "normalized": false,
1649
+ "rstrip": false,
1650
+ "single_word": false,
1651
+ "special": false
1652
+ },
1653
+ "206": {
1654
+ "content": "<sup>",
1655
+ "lstrip": false,
1656
+ "normalized": false,
1657
+ "rstrip": false,
1658
+ "single_word": false,
1659
+ "special": false
1660
+ },
1661
+ "207": {
1662
+ "content": "<code>",
1663
+ "lstrip": false,
1664
+ "normalized": false,
1665
+ "rstrip": false,
1666
+ "single_word": false,
1667
+ "special": false
1668
+ },
1669
+ "208": {
1670
+ "content": "</strong>",
1671
+ "lstrip": false,
1672
+ "normalized": false,
1673
+ "rstrip": false,
1674
+ "single_word": false,
1675
+ "special": false
1676
+ },
1677
+ "209": {
1678
+ "content": "</em>",
1679
+ "lstrip": false,
1680
+ "normalized": false,
1681
+ "rstrip": false,
1682
+ "single_word": false,
1683
+ "special": false
1684
+ },
1685
+ "210": {
1686
+ "content": "</b>",
1687
+ "lstrip": false,
1688
+ "normalized": false,
1689
+ "rstrip": false,
1690
+ "single_word": false,
1691
+ "special": false
1692
+ },
1693
+ "211": {
1694
+ "content": "</i>",
1695
+ "lstrip": false,
1696
+ "normalized": false,
1697
+ "rstrip": false,
1698
+ "single_word": false,
1699
+ "special": false
1700
+ },
1701
+ "212": {
1702
+ "content": "</u>",
1703
+ "lstrip": false,
1704
+ "normalized": false,
1705
+ "rstrip": false,
1706
+ "single_word": false,
1707
+ "special": false
1708
+ },
1709
+ "213": {
1710
+ "content": "</s>",
1711
+ "lstrip": false,
1712
+ "normalized": false,
1713
+ "rstrip": false,
1714
+ "single_word": false,
1715
+ "special": false
1716
+ },
1717
+ "214": {
1718
+ "content": "</sub>",
1719
+ "lstrip": false,
1720
+ "normalized": false,
1721
+ "rstrip": false,
1722
+ "single_word": false,
1723
+ "special": false
1724
+ },
1725
+ "215": {
1726
+ "content": "</sup>",
1727
+ "lstrip": false,
1728
+ "normalized": false,
1729
+ "rstrip": false,
1730
+ "single_word": false,
1731
+ "special": false
1732
+ },
1733
+ "216": {
1734
+ "content": "</code>",
1735
+ "lstrip": false,
1736
+ "normalized": false,
1737
+ "rstrip": false,
1738
+ "single_word": false,
1739
+ "special": false
1740
+ },
1741
+ "255968": {
1742
+ "content": "[toxicity=0]",
1743
+ "lstrip": false,
1744
+ "normalized": false,
1745
+ "rstrip": false,
1746
+ "single_word": false,
1747
+ "special": false
1748
+ },
1749
+ "255969": {
1750
+ "content": "\t\t",
1751
+ "lstrip": false,
1752
+ "normalized": false,
1753
+ "rstrip": false,
1754
+ "single_word": false,
1755
+ "special": false
1756
+ },
1757
+ "255970": {
1758
+ "content": "\t\t\t",
1759
+ "lstrip": false,
1760
+ "normalized": false,
1761
+ "rstrip": false,
1762
+ "single_word": false,
1763
+ "special": false
1764
+ },
1765
+ "255971": {
1766
+ "content": "\t\t\t\t",
1767
+ "lstrip": false,
1768
+ "normalized": false,
1769
+ "rstrip": false,
1770
+ "single_word": false,
1771
+ "special": false
1772
+ },
1773
+ "255972": {
1774
+ "content": "\t\t\t\t\t",
1775
+ "lstrip": false,
1776
+ "normalized": false,
1777
+ "rstrip": false,
1778
+ "single_word": false,
1779
+ "special": false
1780
+ },
1781
+ "255973": {
1782
+ "content": "\t\t\t\t\t\t",
1783
+ "lstrip": false,
1784
+ "normalized": false,
1785
+ "rstrip": false,
1786
+ "single_word": false,
1787
+ "special": false
1788
+ },
1789
+ "255974": {
1790
+ "content": "\t\t\t\t\t\t\t",
1791
+ "lstrip": false,
1792
+ "normalized": false,
1793
+ "rstrip": false,
1794
+ "single_word": false,
1795
+ "special": false
1796
+ },
1797
+ "255975": {
1798
+ "content": "\t\t\t\t\t\t\t\t",
1799
+ "lstrip": false,
1800
+ "normalized": false,
1801
+ "rstrip": false,
1802
+ "single_word": false,
1803
+ "special": false
1804
+ },
1805
+ "255976": {
1806
+ "content": "\t\t\t\t\t\t\t\t\t",
1807
+ "lstrip": false,
1808
+ "normalized": false,
1809
+ "rstrip": false,
1810
+ "single_word": false,
1811
+ "special": false
1812
+ },
1813
+ "255977": {
1814
+ "content": "\t\t\t\t\t\t\t\t\t\t",
1815
+ "lstrip": false,
1816
+ "normalized": false,
1817
+ "rstrip": false,
1818
+ "single_word": false,
1819
+ "special": false
1820
+ },
1821
+ "255978": {
1822
+ "content": "\t\t\t\t\t\t\t\t\t\t\t",
1823
+ "lstrip": false,
1824
+ "normalized": false,
1825
+ "rstrip": false,
1826
+ "single_word": false,
1827
+ "special": false
1828
+ },
1829
+ "255979": {
1830
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t",
1831
+ "lstrip": false,
1832
+ "normalized": false,
1833
+ "rstrip": false,
1834
+ "single_word": false,
1835
+ "special": false
1836
+ },
1837
+ "255980": {
1838
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t",
1839
+ "lstrip": false,
1840
+ "normalized": false,
1841
+ "rstrip": false,
1842
+ "single_word": false,
1843
+ "special": false
1844
+ },
1845
+ "255981": {
1846
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1847
+ "lstrip": false,
1848
+ "normalized": false,
1849
+ "rstrip": false,
1850
+ "single_word": false,
1851
+ "special": false
1852
+ },
1853
+ "255982": {
1854
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1855
+ "lstrip": false,
1856
+ "normalized": false,
1857
+ "rstrip": false,
1858
+ "single_word": false,
1859
+ "special": false
1860
+ },
1861
+ "255983": {
1862
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1863
+ "lstrip": false,
1864
+ "normalized": false,
1865
+ "rstrip": false,
1866
+ "single_word": false,
1867
+ "special": false
1868
+ },
1869
+ "255984": {
1870
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1871
+ "lstrip": false,
1872
+ "normalized": false,
1873
+ "rstrip": false,
1874
+ "single_word": false,
1875
+ "special": false
1876
+ },
1877
+ "255985": {
1878
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1879
+ "lstrip": false,
1880
+ "normalized": false,
1881
+ "rstrip": false,
1882
+ "single_word": false,
1883
+ "special": false
1884
+ },
1885
+ "255986": {
1886
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1887
+ "lstrip": false,
1888
+ "normalized": false,
1889
+ "rstrip": false,
1890
+ "single_word": false,
1891
+ "special": false
1892
+ },
1893
+ "255987": {
1894
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1895
+ "lstrip": false,
1896
+ "normalized": false,
1897
+ "rstrip": false,
1898
+ "single_word": false,
1899
+ "special": false
1900
+ },
1901
+ "255988": {
1902
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1903
+ "lstrip": false,
1904
+ "normalized": false,
1905
+ "rstrip": false,
1906
+ "single_word": false,
1907
+ "special": false
1908
+ },
1909
+ "255989": {
1910
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1911
+ "lstrip": false,
1912
+ "normalized": false,
1913
+ "rstrip": false,
1914
+ "single_word": false,
1915
+ "special": false
1916
+ },
1917
+ "255990": {
1918
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1919
+ "lstrip": false,
1920
+ "normalized": false,
1921
+ "rstrip": false,
1922
+ "single_word": false,
1923
+ "special": false
1924
+ },
1925
+ "255991": {
1926
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1927
+ "lstrip": false,
1928
+ "normalized": false,
1929
+ "rstrip": false,
1930
+ "single_word": false,
1931
+ "special": false
1932
+ },
1933
+ "255992": {
1934
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1935
+ "lstrip": false,
1936
+ "normalized": false,
1937
+ "rstrip": false,
1938
+ "single_word": false,
1939
+ "special": false
1940
+ },
1941
+ "255993": {
1942
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1943
+ "lstrip": false,
1944
+ "normalized": false,
1945
+ "rstrip": false,
1946
+ "single_word": false,
1947
+ "special": false
1948
+ },
1949
+ "255994": {
1950
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1951
+ "lstrip": false,
1952
+ "normalized": false,
1953
+ "rstrip": false,
1954
+ "single_word": false,
1955
+ "special": false
1956
+ },
1957
+ "255995": {
1958
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1959
+ "lstrip": false,
1960
+ "normalized": false,
1961
+ "rstrip": false,
1962
+ "single_word": false,
1963
+ "special": false
1964
+ },
1965
+ "255996": {
1966
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1967
+ "lstrip": false,
1968
+ "normalized": false,
1969
+ "rstrip": false,
1970
+ "single_word": false,
1971
+ "special": false
1972
+ },
1973
+ "255997": {
1974
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1975
+ "lstrip": false,
1976
+ "normalized": false,
1977
+ "rstrip": false,
1978
+ "single_word": false,
1979
+ "special": false
1980
+ },
1981
+ "255998": {
1982
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1983
+ "lstrip": false,
1984
+ "normalized": false,
1985
+ "rstrip": false,
1986
+ "single_word": false,
1987
+ "special": false
1988
+ },
1989
+ "255999": {
1990
+ "content": "<unused99>",
1991
+ "lstrip": false,
1992
+ "normalized": false,
1993
+ "rstrip": false,
1994
+ "single_word": false,
1995
+ "special": false
1996
+ }
1997
+ },
1998
+ "additional_special_tokens": [
1999
+ "<start_of_turn>",
2000
+ "<end_of_turn>"
2001
+ ],
2002
+ "bos_token": "<bos>",
2003
+ "clean_up_tokenization_spaces": false,
2004
+ "eos_token": "<eos>",
2005
+ "extra_special_tokens": {},
2006
+ "model_max_length": 1000000000000000019884624838656,
2007
+ "pad_token": "<pad>",
2008
+ "padding_side": "right",
2009
+ "sp_model_kwargs": {},
2010
+ "spaces_between_special_tokens": false,
2011
+ "tokenizer_class": "GemmaTokenizer",
2012
+ "unk_token": "<unk>",
2013
+ "use_default_system_prompt": false
2014
+ }