├── .gitignore
├── LICENSE
├── README-ja.md
├── README.md
├── dart
├── __init__.py
├── analyzer.py
├── generator.py
├── logits_processor.py
├── settings.py
└── utils.py
├── images
├── sample-1-w.jpg
├── sample-1-wo.jpg
├── sample-2-w.jpg
├── sample-2-wo.jpg
├── sample-3-w.jpg
├── sample-3-wo.jpg
├── sample-4-w.jpg
├── sample-4-wo.jpg
├── screenshot-1.jpg
├── screenshot-2.jpg
├── variation-normal-1.jpg
├── variation-normal-2.jpg
├── variation-normal-3.jpg
├── variation-unvaried-1.jpg
├── variation-unvaried-2.jpg
├── variation-unvaried-3.jpg
├── variation-varied-1.jpg
├── variation-varied-2.jpg
├── variation-varied-3.jpg
├── variation-very_unvaried-1.jpg
├── variation-very_unvaried-2.jpg
├── variation-very_unvaried-3.jpg
├── variation-very_varied-1.jpg
├── variation-very_varied-2.jpg
└── variation-very_varied-3.jpg
├── install.py
├── localizations
└── ja_JP.json
├── metadata.ini
├── scripts
└── dart_upsampler.py
├── tags
├── character.txt
├── copyright.txt
└── quality.txt
└── tests
└── test_utils.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # poetry
98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99 | # This is especially recommended for binary packages to ensure reproducibility, and is more
100 | # commonly ignored for libraries.
101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102 | #poetry.lock
103 |
104 | # pdm
105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106 | #pdm.lock
107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108 | # in version control.
109 | # https://pdm.fming.dev/#use-with-ide
110 | .pdm.toml
111 |
112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113 | __pypackages__/
114 |
115 | # Celery stuff
116 | celerybeat-schedule
117 | celerybeat.pid
118 |
119 | # SageMath parsed files
120 | *.sage.py
121 |
122 | # Environments
123 | .env
124 | .venv
125 | env/
126 | venv/
127 | ENV/
128 | env.bak/
129 | venv.bak/
130 |
131 | # Spyder project settings
132 | .spyderproject
133 | .spyproject
134 |
135 | # Rope project settings
136 | .ropeproject
137 |
138 | # mkdocs documentation
139 | /site
140 |
141 | # mypy
142 | .mypy_cache/
143 | .dmypy.json
144 | dmypy.json
145 |
146 | # Pyre type checker
147 | .pyre/
148 |
149 | # pytype static type analyzer
150 | .pytype/
151 |
152 | # Cython debug symbols
153 | cython_debug/
154 |
155 | # PyCharm
156 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158 | # and can be added to the global gitignore or merged into this file. For a more nuclear
159 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160 | #.idea/
161 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README-ja.md:
--------------------------------------------------------------------------------
1 | # sd-danbooru-tags-upsampler
2 |
3 | English version is [here](./README.md).
4 |
5 | これは軽量な LLM を利用して danbooru タグを生成/補完することで、プロンプトをアップサンプルすることができる Stable Diffusion WebUI 向けの拡張機能です。
6 |
7 | 長いプロンプトを考えたくない場合や、何も考えないで**多様**かつ**自然**で**高品質**な画像を見ていたいという場合に便利です。
8 |
9 | ## 更新履歴
10 |
11 | - 2024/2/29: v0.2.0。新機能: 生成オプション、多様性レベル、範囲禁止タグの実装。
12 | - 2024/2/25: v0.1.1。シード値の処理、括弧のエスケープ処理、軽微な不具合が修正されました。
13 | - 2024/2/23: 最初のバージョンである v0.1.0 をリリースしました
14 |
15 | ## 使い方
16 |
17 |
18 |
19 | `Danbooru Tags Upsampler` と書かれたアコーディオンを開き、`Enabled` チェックボックスにチェックをいれることで拡張機能を有効化できます。
20 |
21 | パラメーターの説明:
22 |
23 | | パラメーター名 | 説明 | 例 |
24 | | -------------- | ----------- | ------------- |
25 | | **Total tag length** | これは **タグの補完後のプロンプト内のタグの総量を指定します**。 補完するタグの量ではありません。 `very short` は「タグ10個以下」, `short` は「タグ20個以下」, `long` は「タグ40個以下」、 `very long` は「それよりも多い」を意味します。 | 推奨は `long` です |
26 | | **Ban tags** | ここで指定された全てのタグは補完時に出現しなくなります。出てきて欲しくないタグがあるときに便利です。`*` は全ての文字列にマッチします。(例: `* background` は `simple background`、`white background` 等にマッチします) | `official alternate costume, english text, * background, ...` |
27 | | **Seed for upsampling tags** | この値とポジティブプロンプトが固定された場合、補完されるタグも固定されます。`-1` は毎回ことなるシードで補完することを意味します。 | 毎回異なる補完をしてほしい場合は `-1` に設定します。 |
28 | | **Upsampling timing** | sd-dynamic-prompts や webui の styles 機能などの、他のプロンプト加工処理が実行される前にアップサンプルするか、後にアップサンプルするかどうかです。 | `After applying other prompt processing` |
29 | | **Variety level** | このパラメーターは `Generation config` のプリセットです。アップサンプルされるタグの多様度を指定できます。 | `varied` |
30 | | **Generation config** | タグの生成に利用される LLM のパラメーターです。言語モデルの生成パラメーターに詳しくない場合は触らず、 `Variety level` を使うことをおすすめします。 ||
31 |
32 | ## ショーケース
33 |
34 |
35 |
36 | 入力のプロンプト |
37 | アップサンプルなし |
38 | アップサンプルあり |
39 |
40 |
41 | 1girl, solo, cowboy shot (seed: 2396487241) |
42 |
43 |
44 | |
45 |  |
46 |
47 |
48 | (最終的なプロンプト) |
49 | 1girl, solo, cowboy shot |
50 | 1girl, solo, cowboy shot, ahoge, animal ears, bare shoulders, blue hair, blush, closed mouth, collarbone, collared shirt, dress, eyelashes, fox ears, fox girl, fox tail, hair between eyes, heart, long hair, long sleeves, looking at viewer, neck ribbon, ribbon, shirt, simple background, sleeves past wrists, smile, tail, white background, white dress, white shirt, yellow eyes |
51 |
52 |
53 | 3girls (seed: 684589178) |
54 |
55 |
56 | |
57 |  |
58 |
59 |
60 | (最終的なプロンプト) |
61 | 3girls |
62 | 3girls, black footwear, black hair, black thighhighs, boots, bow, bowtie, chibi, closed mouth, collared shirt, flower, grey hair, hair between eyes, hair flower, hair ornament, long hair, long sleeves, looking at viewer, multiple girls, purple eyes, red eyes, shirt, short hair, sitting, smile, thighhighs, vest, white shirt, white skirt |
63 |
64 |
65 | no humans, scenery (seed: 3702717413) |
66 |
67 |
68 | |
69 |  |
70 |
71 |
72 | (最終的なプロンプト) |
73 | no humans, scenery |
74 | no humans, scenery, animal, animal focus, bird, blue eyes, cat, dog, flower, grass, leaf, nature, petals, shadow, sitting, star (sky), sunflower, tree |
75 |
76 |
77 | 1girl, frieren, sousou no frieren
78 | (seed: 787304393) |
79 |
80 |
81 | |
82 |  |
83 |
84 |
85 | (最終的なプロンプト) |
86 | 1girl, frieren, sousou no frieren |
87 | 1girl, frieren, sousou no frieren, black pantyhose, cape, closed mouth, elf, fingernails, green eyes, grey hair, hair between eyes, long hair, long sleeves, looking at viewer, pantyhose, pointy ears, simple background, skirt, solo, twintails, white background, white skirt |
88 |
89 |
90 |
91 | 生成設定:
92 |
93 | - モデル: [AnimagineXL 3.0](https://huggingface.co/cagliostrolab/animagine-xl-3.0)
94 | - ネガティブプロンプト (animaginexl 3.0 公式の推奨設定と同じ):
95 |
96 | ```
97 | nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name
98 | ```
99 |
100 | アップサンプル設定:
101 |
102 | - Total tag length: `long`
103 | - Ban tags: 指定なし
104 | - Seed: `-1`
105 | - When to perform the process: `Before applying styles`
106 |
107 | ### 多様性レベル
108 |
109 | (シードは同じではないです。)
110 |
111 |
112 |
113 | 入力プロンプト |
114 | Very unvaried |
115 | Unvaried |
116 | Normal |
117 | Varied |
118 | Very varied |
119 |
120 |
121 | 1girl, solo, from side |
122 |  |
123 |  |
124 |  |
125 |  |
126 |  |
127 |
128 |
129 | 1girl, frieren, sousou no frieren, |
130 |  |
131 |  |
132 |  |
133 |  |
134 |  |
135 |
136 |
137 | no humans, scenery |
138 |  |
139 |  |
140 |  |
141 |  |
142 |  |
143 |
144 |
145 |
146 | `Very unvaried`, `Unvaried` は多様性が低いことを意味しますが、同時に入力プロンプトに忠実であり、比較的無難なタグを生成します。また、`Very varied`, `Varied` はより多様なタグが生成されますが、入力プロンプトに従わなかったり不自然な生成になったりしやすくなります。
147 |
148 | ## モデルへのアクセス
149 |
150 | この拡張機能では次のモデルを使用しています:
151 |
152 | - `p1atdev/dart-v1-sft`: [🤗 HuggingFace](https://huggingface.co/p1atdev/dart-v1-sft)
153 |
154 | ## Stable Diffusion WebUI なしで使いたいですか?
155 |
156 | 🤗 Space 上にデモがあるのでインストール不要で試すことができます:
157 |
158 | デモ: https://huggingface.co/spaces/p1atdev/danbooru-tags-transformer
159 |
160 | ## デフォルト値を変更するには?
161 |
162 | `[webui のルート]/ui-config.json` を開き、`customscript/dart_upsampler.py/` で始まるパラメーターを探して編集してください。
163 |
164 | もしデフォルト値が壊れていると感じたら、それらのパラメータを削除することでデフォルト値をリセットできます。
165 |
166 | ## 謝辞
167 |
168 | このプロジェクトは以下のプロジェクトや研究の影響を受けています。 これらのプロジェクトの開発者および貢献者に敬意と感謝の意を表します:
169 |
170 | - succinctly/text2image-prompt-generator: https://huggingface.co/succinctly/text2image-prompt-generator
171 | - Gustavosta/MagicPrompt-Stable-Diffusion: https://huggingface.co/Gustavosta/MagicPrompt-Stable-Diffusion
172 | - FredZhang7/anime-anything-promptgen-v2: https://huggingface.co/FredZhang7/anime-anything-promptgen-v2
173 | - sd-dynamic-prompts: https://github.com/adieyal/sd-dynamic-prompts
174 | - DALL-E 3: https://cdn.openai.com/papers/dall-e-3.pdf
175 | - caption-upsampling: https://github.com/sayakpaul/caption-upsampling
176 | - StableDiffusionWebUI: https://github.com/AUTOMATIC1111/stable-diffusion-webui とその派生物
177 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # sd-danbooru-tags-upsampler
2 |
3 | 日本語は[こちら](./README-ja.md)へ
4 |
5 | An extension for Stable Diffusion Web UI that upsamples prompts by generating or completing danbooru tags using lightweight LLM.
6 |
7 | It's useful for people who don't want think about long prompt or want to see **diverse**, **natural** and **high quality** images without any thinking.
8 |
9 | ## Upsates
10 |
11 | - 2024/2/29: v0.2.0 has been released. New features; generation options, variety level and range ban tags.
12 | - 2024/2/25: v0.1.1 has been released. Handling of seeds, escaping processing of brackets and many bugs are fixed.
13 | - 2024/2/23: First version v0.1.0 has been released.
14 |
15 | ## Usage
16 |
17 |
18 |
19 | Open the `Danbooru Tags Upsampler` accordion and check the `Enabled` checkbox to enable this extension.
20 |
21 | Explanation of parameters:
22 |
23 | | Parameter name | Description | Example value |
24 | | -------------- | ----------- | ------------- |
25 | | **Total tag length** | This parameter can specify the amount of **total tags after completing the positive prompt**. Not the amount of completing tags. `very short` means "less than 10 tags", `short` means "less than 20 tags", `long` means "less than 40 tags" and `very long` is more than that. | `long` is recommended |
26 | | **Ban tags** | All tags in this field will never appear in completion tags. It's useful when you don't want to contain some specific tags. Using `*` maches to any character. (e.g. `* background` matches to `simple background`, `white background`, ...) | `official alternate costume, english text, * background, ...` |
27 | | **Seed for upsampling tags** | If this number and the positive prompt are fixed, the completion tags are also fixed. `-1` means "generates tags using random seed every time" | If you want to generate images with different final prompts every time, set to `-1`. |
28 | | **Upsampling timing** | When to upsample, before or after other prompt processing (e.g. sd-dynamic-prompts or webui's styles feature) are applied. | `After applying other prompt processings` |
29 | | **Variety level** | These parameters are presets of the `Generation config`. This can change the variety of upsampled tags. | `varied` |
30 | | **Generation config** | LLM parameters of generating tags. It's recommended not to touch if you are not familiar with language model's generation parameters, and use `Variety level` option instead. ||
31 |
32 |
33 |
34 |
35 | ## Showcases
36 |
37 |
38 |
39 | Input prompt |
40 | Without upsampling |
41 | With upsampling |
42 |
43 |
44 | 1girl, solo, cowboy shot (seed: 2396487241) |
45 |
46 |
47 | |
48 |  |
49 |
50 |
51 | (prompts used to generate) |
52 | 1girl, solo, cowboy shot |
53 | 1girl, solo, cowboy shot, ahoge, animal ears, bare shoulders, blue hair, blush, closed mouth, collarbone, collared shirt, dress, eyelashes, fox ears, fox girl, fox tail, hair between eyes, heart, long hair, long sleeves, looking at viewer, neck ribbon, ribbon, shirt, simple background, sleeves past wrists, smile, tail, white background, white dress, white shirt, yellow eyes |
54 |
55 |
56 | 3girls (seed: 684589178) |
57 |
58 |
59 | |
60 |  |
61 |
62 |
63 | (prompts used to generate) |
64 | 3girls |
65 | 3girls, black footwear, black hair, black thighhighs, boots, bow, bowtie, chibi, closed mouth, collared shirt, flower, grey hair, hair between eyes, hair flower, hair ornament, long hair, long sleeves, looking at viewer, multiple girls, purple eyes, red eyes, shirt, short hair, sitting, smile, thighhighs, vest, white shirt, white skirt |
66 |
67 |
68 | no humans, scenery (seed: 3702717413) |
69 |
70 |
71 | |
72 |  |
73 |
74 |
75 | (prompts used to generate) |
76 | no humans, scenery |
77 | no humans, scenery, animal, animal focus, bird, blue eyes, cat, dog, flower, grass, leaf, nature, petals, shadow, sitting, star (sky), sunflower, tree |
78 |
79 |
80 | 1girl, frieren, sousou no frieren
81 | (seed: 787304393) |
82 |
83 |
84 | |
85 |  |
86 |
87 |
88 | (prompts used to generate) |
89 | 1girl, frieren, sousou no frieren |
90 | 1girl, frieren, sousou no frieren, black pantyhose, cape, closed mouth, elf, fingernails, green eyes, grey hair, hair between eyes, long hair, long sleeves, looking at viewer, pantyhose, pointy ears, simple background, skirt, solo, twintails, white background, white skirt |
91 |
92 |
93 |
94 |
95 | Generation settings:
96 |
97 | - Model: [AnimagineXL 3.0](https://huggingface.co/cagliostrolab/animagine-xl-3.0)
98 | - Negative prompt (same as the recommended settings of animaginexl 3.0):
99 |
100 | ```
101 | nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name
102 | ```
103 |
104 | Upsampling settings:
105 |
106 | - Total tag length: `long`
107 | - Ban tags: none
108 | - Seed: `-1`
109 | - When to perform the process: `Before applying styles`
110 |
111 | ### Variation levels
112 |
113 | (The seeds are not the same.)
114 |
115 |
116 |
117 | Input prompt |
118 | Very unvaried |
119 | Unvaried |
120 | Normal |
121 | Varied |
122 | Very varied |
123 |
124 |
125 | 1girl, solo, from side |
126 |  |
127 |  |
128 |  |
129 |  |
130 |  |
131 |
132 |
133 | 1girl, frieren, sousou no frieren, |
134 |  |
135 |  |
136 |  |
137 |  |
138 |  |
139 |
140 |
141 | no humans, scenery |
142 |  |
143 |  |
144 |  |
145 |  |
146 |  |
147 |
148 |
149 |
150 | `Very unvaried` and `Unvaried` mean less variety, but at the same time, faithful to the input prompt and generate relatively acceptable tags. Also, `Very varied` and `Varied` mean more variety, but tend to ignore the input prompt and often generate weird tags.
151 |
152 | ## Access to the model weights
153 |
154 | This extension uses the following model:
155 |
156 | - `p1atdev/dart-v1-sft`: [🤗 HuggingFace](https://huggingface.co/p1atdev/dart-v1-sft)
157 |
158 | ## Want to use without sd webui?
159 |
160 | A demo on 🤗 Space is avaiable, so you can try upsampling tags without installing this extension:
161 |
162 | Demo: https://huggingface.co/spaces/p1atdev/danbooru-tags-transformer
163 |
164 | ## How to change default values?
165 |
166 | Open `[webui's root directory]/ui-config.json`, then find parameters staring with `customscript/dart_upsampler.py/` and edit them.
167 |
168 | If you feel that the default values are broken, you can delete parameters staring with `customscript/dart_upsampler.py/txt2img/` to reset the default values.
169 |
170 | ## Acknowledgements
171 |
172 | This project has been influenced by the following projects and researches. We express our respect and gratitude to the developers and contributors of these projects:
173 |
174 | - succinctly/text2image-prompt-generator: https://huggingface.co/succinctly/text2image-prompt-generator
175 | - Gustavosta/MagicPrompt-Stable-Diffusion: https://huggingface.co/Gustavosta/MagicPrompt-Stable-Diffusion
176 | - FredZhang7/anime-anything-promptgen-v2: https://huggingface.co/FredZhang7/anime-anything-promptgen-v2
177 | - sd-dynamic-prompts: https://github.com/adieyal/sd-dynamic-prompts
178 | - DALL-E 3: https://cdn.openai.com/papers/dall-e-3.pdf
179 | - caption-upsampling: https://github.com/sayakpaul/caption-upsampling
180 | - StableDiffusionWebUI: https://github.com/AUTOMATIC1111/stable-diffusion-webui and its derivatives
181 |
--------------------------------------------------------------------------------
/dart/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/dart/__init__.py
--------------------------------------------------------------------------------
/dart/analyzer.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from pathlib import Path
3 | from dataclasses import dataclass
4 |
5 | from modules.extra_networks import parse_prompt
6 | from modules.prompt_parser import parse_prompt_attention
7 | from modules.shared import opts
8 |
9 | from dart.settings import parse_options
10 | from dart.utils import (
11 | escape_webui_special_symbols,
12 | unescape_webui_special_symbols,
13 | )
14 |
15 | logger = logging.getLogger(__name__)
16 |
17 |
18 | DART_RATING_GENERAL = "rating:general"
19 | DART_RATING_SENSITIVE = "rating:sensitive"
20 | DART_RATING_QUESTIONABLE = "rating:questionable"
21 | DART_RATING_EXPLICIT = "rating:explicit"
22 |
23 | INPUT_RATING_GENERAL = DART_RATING_GENERAL
24 | INPUT_RATING_SENSITIVE = DART_RATING_SENSITIVE
25 | INPUT_RATING_QUESTIONABLE = DART_RATING_QUESTIONABLE
26 | INPUT_RATING_EXPLICIT = DART_RATING_EXPLICIT
27 |
28 | DART_RATING_SFW = "rating:sfw"
29 | DART_RATING_NSFW = "rating:nsfw"
30 |
31 | INPUT_RATING_SFW = "sfw"
32 | INPUT_RATING_NSFW = "nsfw"
33 |
34 | ALL_INPUT_RATING_TAGS = [
35 | INPUT_RATING_GENERAL,
36 | INPUT_RATING_SENSITIVE,
37 | INPUT_RATING_QUESTIONABLE,
38 | INPUT_RATING_EXPLICIT,
39 | INPUT_RATING_SFW,
40 | INPUT_RATING_NSFW,
41 | ]
42 |
43 | RATING_TAG_PRIORITY = {
44 | INPUT_RATING_GENERAL: 0,
45 | INPUT_RATING_SENSITIVE: 1,
46 | INPUT_RATING_QUESTIONABLE: 2,
47 | INPUT_RATING_EXPLICIT: 3,
48 | }
49 |
50 | RATING_PARENT_TAG_PRIORITY = {INPUT_RATING_SFW: 0, INPUT_RATING_NSFW: 1}
51 |
52 | DART_RATING_DEFAULT_PAIR = DART_RATING_SFW, DART_RATING_GENERAL
53 |
54 |
55 | def get_rating_tag_pair(tag: str) -> tuple[str, str]:
56 | if tag == INPUT_RATING_NSFW: # nsfw
57 | return DART_RATING_NSFW, DART_RATING_EXPLICIT
58 |
59 | elif tag == INPUT_RATING_SFW: # sfw
60 | return DART_RATING_DEFAULT_PAIR
61 |
62 | elif tag == INPUT_RATING_GENERAL: # rating:general
63 | return DART_RATING_DEFAULT_PAIR
64 |
65 | elif tag == INPUT_RATING_SENSITIVE: # rating:general
66 | return DART_RATING_SFW, DART_RATING_SENSITIVE
67 |
68 | elif tag == INPUT_RATING_QUESTIONABLE: # rating:questionable
69 | return DART_RATING_NSFW, DART_RATING_QUESTIONABLE
70 |
71 | elif tag == INPUT_RATING_EXPLICIT: # rating:explicit
72 | return DART_RATING_NSFW, DART_RATING_EXPLICIT
73 |
74 | else:
75 | raise Exception(f"Unkown rating tag: {tag}")
76 |
77 |
78 | def get_strongest_rating_tag(tags: list[str]) -> str:
79 | strongest_tag = INPUT_RATING_GENERAL
80 | for tag in tags:
81 | if RATING_TAG_PRIORITY[tag] > RATING_TAG_PRIORITY[strongest_tag]:
82 | strongest_tag = tag
83 | return strongest_tag
84 |
85 |
86 | def normalize_rating_tags(tags: list[str]) -> tuple[str, str]:
87 | """
88 | Returns [Parent Rating Tag, Child Rating Tag or None]
89 | """
90 |
91 | if len(tags) == 0:
92 | # default
93 | return DART_RATING_DEFAULT_PAIR
94 |
95 | # only one tag
96 | if len(tags) == 1:
97 | tag = tags[0]
98 |
99 | return get_rating_tag_pair(tag)
100 |
101 | # len(tags) >= 2
102 |
103 | # if all of tags are parent tag
104 | if all([tag in RATING_PARENT_TAG_PRIORITY.keys() for tag in tags]):
105 | logger.warning(
106 | 'Both "sfw" and "nsfw" are specified in positive image prompt! Rating tag fell back to "sfw" for upsampling.'
107 | )
108 | return DART_RATING_DEFAULT_PAIR
109 |
110 | # one of the tag is parent tag
111 | if any([tag in RATING_PARENT_TAG_PRIORITY.keys() for tag in tags]):
112 | parent_tag = INPUT_RATING_SFW # sfw or nsfw
113 | child_tags = []
114 | for tag in tags:
115 | if tag in RATING_PARENT_TAG_PRIORITY:
116 | if (
117 | RATING_PARENT_TAG_PRIORITY[tag]
118 | > RATING_PARENT_TAG_PRIORITY[parent_tag]
119 | ):
120 | parent_tag = tag
121 | else:
122 | child_tags.append(tag)
123 |
124 | # pick strongest tag
125 | child_tag = get_strongest_rating_tag(child_tags)
126 |
127 | fallback_pair = get_rating_tag_pair(parent_tag)
128 | if child_tag != fallback_pair[1]:
129 | # e.g. rating:general, nsfw
130 | logger.warning(
131 | f'Specified rating tag "{child_tag}" mismatches to "{parent_tag}". "{fallback_pair[1]}" will be used for upsampling instead.'
132 | )
133 | return fallback_pair
134 | return parent_tag, child_tag
135 |
136 | # remains are child tag
137 | # give priority to the strong
138 | strongest_tag = get_strongest_rating_tag(tags)
139 | return get_rating_tag_pair(strongest_tag)
140 |
141 |
142 | def load_tags_in_file(path: Path):
143 | if not path.exists():
144 | logger.error(f"File not found: {path}")
145 | return []
146 |
147 | with open(path, "r", encoding="utf-8") as file:
148 | tags = [tag.strip() for tag in file.readlines() if tag.strip() != ""]
149 |
150 | return tags
151 |
152 |
153 | @dataclass
154 | class ImagePromptAnalyzingResult:
155 | """A class of the result of analyzing tags"""
156 |
157 | rating_parent: str
158 | rating_child: str | None
159 | copyright: str
160 | character: str
161 | general: str
162 | quality: str
163 | unknown: str
164 |
165 |
166 | class DartAnalyzer:
167 | """A class for analyzing provided prompt and composing prompt for upsampling"""
168 |
169 | def __init__(self, extension_dir: str, vocab: list[str], special_vocab: list[str]):
170 | self.options = parse_options(opts)
171 | if self.options["debug_logging"]:
172 | logger.setLevel(logging.DEBUG)
173 |
174 | self.tags_dir = Path(extension_dir) / "tags"
175 |
176 | self.rating_tags = ALL_INPUT_RATING_TAGS
177 |
178 | self.copyright_tags = load_tags_in_file(self.tags_dir / "copyright.txt")
179 | self.character_tags = load_tags_in_file(self.tags_dir / "character.txt")
180 | self.quality_tags = load_tags_in_file(self.tags_dir / "quality.txt")
181 |
182 | self.vocab = vocab
183 | self.special_vocab = special_vocab
184 |
185 | if self.options["escape_input_brackets"]:
186 | logger.debug("Allows tags with escaped brackets")
187 | self.copyright_tags += escape_webui_special_symbols(self.copyright_tags)
188 | self.character_tags += escape_webui_special_symbols(self.character_tags)
189 | self.vocab += escape_webui_special_symbols(self.vocab)
190 |
191 | def split_tags(self, image_prompt: str) -> list[str]:
192 | return [tag.strip() for tag in image_prompt.split(",") if tag.strip() != ""]
193 |
194 | def extract_tags(self, input_tags: list[str], extract_tag_list: list[str]):
195 | matched: list[str] = []
196 | not_matched: list[str] = []
197 |
198 | for input_tag in input_tags:
199 | if input_tag in extract_tag_list:
200 | matched.append(input_tag)
201 | else:
202 | not_matched.append(input_tag)
203 |
204 | return matched, not_matched
205 |
206 | def preprocess_tags(self, tags: list[str]) -> str:
207 | """Preprocess tags to pass to dart model."""
208 |
209 | # \(\) -> ()
210 | if self.options["escape_output_brackets"]:
211 | tags = unescape_webui_special_symbols(tags)
212 |
213 | return ", ".join(tags)
214 |
215 | def analyze(self, image_prompt: str) -> ImagePromptAnalyzingResult:
216 | input_tags = self.split_tags(",".join([x[0] for x in parse_prompt_attention(parse_prompt(image_prompt)[0])]))
217 |
218 | input_tags = list(set(input_tags)) # unique
219 |
220 | rating_tags, input_tags = self.extract_tags(input_tags, self.rating_tags)
221 | copyright_tags, input_tags = self.extract_tags(input_tags, self.copyright_tags)
222 | character_tags, input_tags = self.extract_tags(input_tags, self.character_tags)
223 | quality_tags, input_tags = self.extract_tags(input_tags, self.quality_tags)
224 |
225 | # escape special tags
226 | _special_tags, input_tags = self.extract_tags(input_tags, self.special_vocab)
227 |
228 | # general tags and unknown tags
229 | other_tags, unknown_tags = self.extract_tags(input_tags, self.vocab)
230 |
231 | rating_parent, rating_child = normalize_rating_tags(rating_tags)
232 |
233 | return ImagePromptAnalyzingResult(
234 | rating_parent=rating_parent,
235 | rating_child=rating_child,
236 | copyright=self.preprocess_tags(copyright_tags),
237 | character=self.preprocess_tags(character_tags),
238 | general=self.preprocess_tags(other_tags),
239 | quality=self.preprocess_tags(quality_tags),
240 | unknown=self.preprocess_tags(unknown_tags),
241 | )
242 |
--------------------------------------------------------------------------------
/dart/generator.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 | import time
4 | import re
5 |
6 | import torch
7 | from transformers import (
8 | AutoTokenizer,
9 | AutoModelForCausalLM,
10 | PreTrainedModel,
11 | PreTrainedTokenizer,
12 | PreTrainedTokenizerFast,
13 | LogitsProcessorList,
14 | )
15 | from optimum.onnxruntime import ORTModelForCausalLM
16 |
17 | from modules.shared import opts
18 |
19 | from dart.settings import MODEL_BACKEND_TYPE, parse_options
20 | from dart.utils import (
21 | escape_webui_special_symbols,
22 | get_valid_tag_list,
23 | get_patterns_from_tag_list,
24 | )
25 | from dart.logits_processor import UnbatchedClassifierFreeGuidanceLogitsProcessor
26 |
27 | logger = logging.getLogger(__name__)
28 | logger.setLevel(logging.INFO)
29 |
30 |
31 | class DartGenerator:
32 | """A class for generating danbooru tags"""
33 |
34 | dart_model: PreTrainedModel | ORTModelForCausalLM | None = None
35 | dart_tokenizer: PreTrainedTokenizer | PreTrainedTokenizerFast | None = None
36 |
37 | def __init__(
38 | self,
39 | model_name: str,
40 | tokenizer_name: str,
41 | model_backend: str,
42 | model_device: str = "cpu",
43 | ):
44 | self.options = parse_options(opts)
45 |
46 | self.model_name = model_name
47 | self.tokenizer_name = tokenizer_name
48 |
49 | assert model_backend in list(
50 | MODEL_BACKEND_TYPE.values()
51 | ), f"Unknown model type: {model_backend}"
52 | self.model_backend = model_backend
53 | self.model_device = model_device
54 |
55 | if self.options["debug_logging"]:
56 | logger.setLevel(logging.DEBUG)
57 |
58 | def _load_dart_model(
59 | self,
60 | ):
61 | if self.model_backend == MODEL_BACKEND_TYPE["ORIGINAL"]:
62 | self.dart_model = AutoModelForCausalLM.from_pretrained(self.model_name)
63 | else:
64 | self.dart_model = ORTModelForCausalLM.from_pretrained(
65 | self.model_name,
66 | file_name=(
67 | "model_quantized.onnx"
68 | if self.model_backend == MODEL_BACKEND_TYPE["ONNX_QUANTIZED"]
69 | else None
70 | ),
71 | )
72 | logger.info(f"Dart model backend is {self.model_backend }")
73 |
74 | assert self.dart_model is not None
75 |
76 | self.dart_model.to(self.model_device) # type: ignore
77 |
78 | def _load_dart_tokenizer(self):
79 | self.dart_tokenizer = AutoTokenizer.from_pretrained(
80 | self.tokenizer_name, trust_remote_code=True
81 | )
82 |
83 | def _check_model_avaiable(self):
84 | return self.dart_model is not None
85 |
86 | def _check_tokenizer_avaiable(self):
87 | return self.dart_tokenizer is not None
88 |
89 | def load_model_if_needed(self):
90 | if not self._check_model_avaiable():
91 | self._load_dart_model()
92 |
93 | def load_tokenizer_if_needed(self):
94 | if not self._check_tokenizer_avaiable():
95 | self._load_dart_tokenizer()
96 |
97 | def get_vocab_list(self) -> list[str]:
98 | self.load_tokenizer_if_needed()
99 |
100 | return list(self.dart_tokenizer.vocab.keys()) # type: ignore
101 |
102 | def get_special_vocab_list(self) -> list[str]:
103 | self.load_tokenizer_if_needed()
104 |
105 | return list(self.dart_tokenizer.get_added_vocab().values()) # type: ignore
106 |
107 | def compose_prompt(
108 | self, rating: str, copyright: str, character: str, general: str, length: str
109 | ):
110 | # self.load_tokenizer_if_needed()
111 | # assert self.dart_tokenizer is not None
112 |
113 | # sadly webui's transformers version is very old and apply_chat_template method deos not exist
114 | # return self.dart_tokenizer.apply_chat_template(
115 | # {
116 | # "rating": rating,
117 | # "copyright": copyright,
118 | # "character": character,
119 | # "general": general,
120 | # "length": length,
121 | # },
122 | # tokenize=True,
123 | # )
124 |
125 | return f"<|bos|>{rating}{copyright}{character}{length}{general}<|input_end|>"
126 |
127 | def get_bad_words_ids(self, tag_text: str) -> list[list[int]] | None:
128 | if tag_text.strip() == "":
129 | return None
130 |
131 | self.load_tokenizer_if_needed()
132 | assert self.dart_tokenizer is not None
133 |
134 | self.dart_tokenizer.sanitize_special_tokens()
135 |
136 | # get ban tag pattern by regex
137 | ban_tags = get_valid_tag_list(tag_text)
138 | ban_tag_patterns = get_patterns_from_tag_list(ban_tags)
139 |
140 | # filter matched tokens from vocab
141 | ban_words_ids: list[int] = []
142 | for pattern in ban_tag_patterns:
143 | for tag, id in self.dart_tokenizer.vocab.items(): # type:ignore
144 | if pattern.match(tag):
145 | ban_words_ids.append(id)
146 |
147 | # dedup
148 | ban_words_ids = list(set(ban_words_ids))
149 |
150 | # return type should be list[list[int]]
151 | return [[id] for id in ban_words_ids]
152 |
153 | @torch.no_grad()
154 | def generate(
155 | self,
156 | prompt: str,
157 | max_new_tokens: int = 128,
158 | min_new_tokens: int = 0,
159 | do_sample: bool = True,
160 | temperature: float = 1.0,
161 | top_p: float = 1,
162 | top_k: int = 20,
163 | num_beams: int = 1,
164 | bad_words_ids: list[list[int]] | None = None,
165 | negative_prompt: str | None = None,
166 | cfg_scale: float = 1.5,
167 | ) -> str:
168 | """Upsamples prompt"""
169 |
170 | start_time = time.time()
171 |
172 | self.load_tokenizer_if_needed()
173 | self.load_model_if_needed()
174 |
175 | assert self.dart_tokenizer is not None
176 | assert self.dart_model is not None
177 |
178 | input_ids = self.dart_tokenizer.encode_plus(
179 | prompt, return_tensors="pt"
180 | ).input_ids
181 | negative_prompt_ids = (
182 | self.dart_tokenizer.encode_plus(
183 | negative_prompt,
184 | return_tensors="pt",
185 | ).input_ids
186 | if negative_prompt is not None
187 | else None
188 | )
189 |
190 | # output_ids is list[list[int]]
191 | output_ids = self.dart_model.generate(
192 | input_ids,
193 | max_new_tokens=max_new_tokens,
194 | min_new_tokens=min_new_tokens,
195 | do_sample=do_sample,
196 | temperature=temperature,
197 | top_p=top_p,
198 | top_k=top_k,
199 | num_beams=num_beams,
200 | bad_words_ids=bad_words_ids,
201 | no_repeat_ngram_size=1,
202 | logits_processor=(
203 | LogitsProcessorList(
204 | [
205 | UnbatchedClassifierFreeGuidanceLogitsProcessor(
206 | guidance_scale=cfg_scale,
207 | model=self.dart_model,
208 | unconditional_ids=negative_prompt_ids,
209 | )
210 | ]
211 | )
212 | if negative_prompt_ids is not None
213 | else None
214 | ),
215 | )
216 |
217 | decoded = self.dart_tokenizer.decode(
218 | output_ids[0][len(input_ids[0]) :],
219 | skip_special_tokens=True,
220 | )
221 | logger.debug(f"Generated tags: {decoded}")
222 |
223 | escaped = ", ".join(escape_webui_special_symbols(decoded.split(", ")))
224 |
225 | end_time = time.time()
226 | logger.info(f"Upsampling tags has taken {end_time-start_time:.2f} seconds")
227 |
228 | return escaped
229 |
--------------------------------------------------------------------------------
/dart/logits_processor.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | # Copyright 2020 The HuggingFace Inc. team
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import logging
17 | from typing import Optional
18 |
19 | import torch
20 |
21 | from transformers.generation import LogitsProcessor
22 |
23 | logger = logging.Logger(__name__)
24 |
25 |
26 | # Copied from transformers.generation.logits_processor.UnbatchedClassifierFreeGuidanceLogitsProcessor
27 | class UnbatchedClassifierFreeGuidanceLogitsProcessor(LogitsProcessor):
28 | r"""
29 | Logits processor for Classifier-Free Guidance (CFG). The processors computes a weighted average across scores
30 | from prompt conditional and prompt unconditional (or negative) logits, parameterized by the `guidance_scale`.
31 | The unconditional scores are computed internally by prompting `model` with the `unconditional_ids` branch.
32 |
33 | See [the paper](https://arxiv.org/abs/2306.17806) for more information.
34 |
35 | Args:
36 | guidance_scale (`float`):
37 | The guidance scale for classifier free guidance (CFG). CFG is enabled by setting `guidance_scale != 1`.
38 | Higher guidance scale encourages the model to generate samples that are more closely linked to the input
39 | prompt, usually at the expense of poorer quality. A value smaller than 1 has the opposite effect, while
40 | making the negative prompt provided with negative_prompt_ids (if any) act as a positive prompt.
41 | model (`PreTrainedModel`):
42 | The model computing the unconditional scores. Supposedly the same as the one computing the conditional
43 | scores. Both models must use the same tokenizer.
44 | unconditional_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
45 | Indices of input sequence tokens in the vocabulary for the unconditional branch. If unset, will default to
46 | the last token of the prompt.
47 | unconditional_attention_mask (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
48 | Attention mask for unconditional_ids.
49 | use_cache (`bool`, *optional*, defaults to `True`):
50 | Whether to cache key/values during the negative prompt forward pass.
51 |
52 |
53 | Examples:
54 |
55 | ```python
56 | >>> from transformers import AutoTokenizer, AutoModelForCausalLM
57 |
58 | >>> model = AutoModelForCausalLM.from_pretrained("openai-community/gpt2")
59 | >>> tokenizer = AutoTokenizer.from_pretrained("openai-community/gpt2")
60 | >>> inputs = tokenizer(["Today, a dragon flew over Paris, France,"], return_tensors="pt")
61 | >>> out = model.generate(inputs["input_ids"], guidance_scale=1.5)
62 | >>> tokenizer.batch_decode(out, skip_special_tokens=True)[0]
63 | 'Today, a dragon flew over Paris, France, killing at least 50 people and injuring more than 100'
64 |
65 | >>> # with a negative prompt
66 | >>> neg_inputs = tokenizer(["A very happy event happened,"], return_tensors="pt")
67 | >>> out = model.generate(inputs["input_ids"], guidance_scale=2, negative_prompt_ids=neg_inputs["input_ids"])
68 | >>> tokenizer.batch_decode(out, skip_special_tokens=True)[0]
69 | 'Today, a dragon flew over Paris, France, killing at least 130 people. French media reported that'
70 |
71 | >>> # with a positive prompt
72 | >>> neg_inputs = tokenizer(["A very happy event happened,"], return_tensors="pt")
73 | >>> out = model.generate(inputs["input_ids"], guidance_scale=0, negative_prompt_ids=neg_inputs["input_ids"])
74 | >>> tokenizer.batch_decode(out, skip_special_tokens=True)[0]
75 | "Today, a dragon flew over Paris, France, and I'm very happy to be here. I"
76 | ```
77 | """
78 |
79 | def __init__(
80 | self,
81 | guidance_scale: float,
82 | model,
83 | unconditional_ids: Optional[torch.LongTensor] = None,
84 | unconditional_attention_mask: Optional[torch.LongTensor] = None,
85 | use_cache: Optional[bool] = True,
86 | ):
87 | self.guidance_scale = guidance_scale
88 | self.model = model
89 | self.unconditional_context = {
90 | "input_ids": unconditional_ids,
91 | "attention_mask": unconditional_attention_mask,
92 | "use_cache": use_cache,
93 | "past_key_values": None,
94 | "first_pass": True,
95 | }
96 |
97 | def get_unconditional_logits(self, input_ids):
98 | if self.unconditional_context["first_pass"]:
99 | if self.unconditional_context["input_ids"] is None:
100 | self.unconditional_context["input_ids"] = input_ids[:, -1:]
101 | if self.unconditional_context["attention_mask"] is None:
102 | self.unconditional_context["attention_mask"] = torch.ones_like(
103 | self.unconditional_context["input_ids"], dtype=torch.long
104 | )
105 | input_ids = self.unconditional_context["input_ids"]
106 | attention_mask = self.unconditional_context["attention_mask"]
107 | self.unconditional_context["first_pass"] = False
108 | else:
109 | attention_mask = torch.cat(
110 | [
111 | self.unconditional_context["attention_mask"],
112 | torch.ones_like(input_ids[:, -1:], dtype=torch.long),
113 | ],
114 | dim=1,
115 | )
116 | if not self.unconditional_context["use_cache"]:
117 | input_ids = torch.cat(
118 | [self.unconditional_context["input_ids"], input_ids[:, -1:]], dim=1
119 | )
120 | else:
121 | input_ids = input_ids[:, -1:]
122 | self.unconditional_context["input_ids"] = input_ids
123 | self.unconditional_context["attention_mask"] = attention_mask
124 |
125 | out = self.model(
126 | input_ids,
127 | attention_mask=attention_mask,
128 | use_cache=self.unconditional_context["use_cache"],
129 | past_key_values=self.unconditional_context["past_key_values"],
130 | )
131 | self.unconditional_context["past_key_values"] = out.get("past_key_values", None)
132 |
133 | return out.logits
134 |
135 | def __call__(self, input_ids, scores):
136 | scores = torch.nn.functional.log_softmax(scores, dim=-1)
137 | if self.guidance_scale == 1:
138 | return scores
139 |
140 | logits = self.get_unconditional_logits(input_ids)
141 |
142 | unconditional_logits = torch.nn.functional.log_softmax(logits[:, -1], dim=-1)
143 | out = (
144 | self.guidance_scale * (scores - unconditional_logits) + unconditional_logits
145 | )
146 | return out
147 |
--------------------------------------------------------------------------------
/dart/settings.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from typing import Literal, Any
3 |
4 | import gradio as gr
5 |
6 | from modules import shared
7 | from modules.options import Options
8 |
9 | logger = logging.getLogger(__name__)
10 |
11 |
12 | MODEL_BACKEND_TYPE = {
13 | "ORIGINAL": "Original",
14 | "ONNX": "ONNX",
15 | "ONNX_QUANTIZED": "ONNX (Quantized)",
16 | }
17 |
18 | OPTION_NAME = Literal[
19 | "model_name",
20 | "tokenizer_name",
21 | "model_backend_type",
22 | "model_device",
23 | "debug_logging",
24 | "escape_input_brackets",
25 | "escape_output_brackets",
26 | ]
27 |
28 | DEFAULT_VALUES: dict[OPTION_NAME, Any] = {
29 | "model_name": "p1atdev/dart-v1-sft",
30 | "tokenizer_name": "p1atdev/dart-v1-sft",
31 | "model_backend_type": MODEL_BACKEND_TYPE["ONNX_QUANTIZED"],
32 | "model_device": "cpu",
33 | "escape_input_brackets": True,
34 | "escape_output_brackets": True,
35 | "debug_logging": False,
36 | }
37 |
38 |
39 | def parse_options(opts: Options | None) -> dict[OPTION_NAME, Any]:
40 |
41 | def get_value(key: OPTION_NAME):
42 | assert opts is not None
43 | # fallback if the key doest not exist
44 | return opts.__getattr__(key) if hasattr(opts, key) else DEFAULT_VALUES[key]
45 |
46 | return {
47 | "model_name": get_value("model_name"),
48 | "tokenizer_name": get_value("tokenizer_name"),
49 | "model_backend_type": get_value("model_backend_type"),
50 | "model_device": get_value("model_device"),
51 | "escape_input_brackets": get_value("escape_input_brackets"),
52 | "escape_output_brackets": get_value("escape_output_brackets"),
53 | "debug_logging": get_value("debug_logging"),
54 | }
55 |
56 |
57 | def on_ui_settings():
58 | section = ("dart_upsampler", "Danbooru Tags Upsampler")
59 | shared.opts.add_option(
60 | key="model_name",
61 | info=shared.OptionInfo(
62 | default=DEFAULT_VALUES["model_name"],
63 | label="The model to use for upsampling danbooru tags.",
64 | component=gr.Dropdown,
65 | component_args={"choices": ["p1atdev/dart-v1-sft"]},
66 | section=section,
67 | ),
68 | )
69 | shared.opts.add_option(
70 | key="tokenizer_name",
71 | info=shared.OptionInfo(
72 | default=DEFAULT_VALUES["tokenizer_name"],
73 | label="The tokenizer for the upsampling model.",
74 | component=gr.Dropdown,
75 | component_args={"choices": ["p1atdev/dart-v1-sft"]},
76 | section=section,
77 | ),
78 | )
79 | shared.opts.add_option(
80 | key="model_backend_type",
81 | info=shared.OptionInfo(
82 | default=DEFAULT_VALUES["model_backend_type"],
83 | label="The type of model backend.",
84 | component=gr.Dropdown,
85 | component_args={"choices": list(MODEL_BACKEND_TYPE.values())},
86 | section=section,
87 | ).info(
88 | "Original = inefficient computation; ONNX = efficient computing but the model size is very large; ONNX (Quantized) = efficient computation, smallest model file size, and fastest"
89 | ),
90 | )
91 | shared.opts.add_option(
92 | key="model_device",
93 | info=shared.OptionInfo(
94 | default=DEFAULT_VALUES["model_device"],
95 | label="The device to run upsampling model on.",
96 | component=gr.Textbox,
97 | section=section,
98 | ),
99 | )
100 | shared.opts.add_option(
101 | key="escape_input_brackets",
102 | info=shared.OptionInfo(
103 | default=DEFAULT_VALUES["escape_input_brackets"],
104 | label="Allow escaped brackets in input prompt.",
105 | component=gr.Checkbox,
106 | section=section,
107 | ),
108 | )
109 | shared.opts.add_option(
110 | key="escape_output_brackets",
111 | info=shared.OptionInfo(
112 | default=DEFAULT_VALUES["escape_output_brackets"],
113 | label="Escape brackets in upsampled tags.",
114 | component=gr.Checkbox,
115 | section=section,
116 | ),
117 | )
118 | shared.opts.add_option(
119 | key="debug_logging",
120 | info=shared.OptionInfo(
121 | default=DEFAULT_VALUES["debug_logging"],
122 | label="Enblae debug logging.",
123 | component=gr.Checkbox,
124 | section=section,
125 | ),
126 | )
127 |
--------------------------------------------------------------------------------
/dart/utils.py:
--------------------------------------------------------------------------------
1 | import logging
2 | import random
3 | import re
4 |
5 | from typing import TYPE_CHECKING, Any
6 |
7 | if TYPE_CHECKING:
8 | from modules.processing import (
9 | StableDiffusionProcessingTxt2Img,
10 | StableDiffusionProcessingImg2Img,
11 | )
12 |
13 | StableDiffusionProcessing = (
14 | StableDiffusionProcessingTxt2Img | StableDiffusionProcessingImg2Img
15 | )
16 | else:
17 | StableDiffusionProcessing = Any
18 |
19 |
20 | logger = logging.getLogger(__name__)
21 |
22 | SEED_MIN = 0
23 | SEED_MAX = 2**32 - 1
24 |
25 | # special symbols in webui prompt syntax
26 | SPECIAL_SYMBOL_PATTERN = re.compile(r"([()])")
27 |
28 | # escaped and unescaped symbols pair to unescaping processing
29 | ESCAPED_SYMBOL_PATTERNS = {re.compile(r"\\\("): "(", re.compile(r"\\\)"): ")"}
30 |
31 | # a pttern of escaping special symbols in regex
32 | TAG_ESCAPE_SYMBOL_PATTERN = re.compile(r"[\\^${}[\]()?+|]")
33 |
34 |
35 | def get_random_seed():
36 | return random.randint(SEED_MIN, SEED_MAX)
37 |
38 |
39 | # ref: https://github.com/adieyal/sd-dynamic-prompts/blob/main/sd_dynamic_prompts/helpers.py
40 | def get_upmsapling_seeds(
41 | p: StableDiffusionProcessing,
42 | num_seeds: int,
43 | custom_seed: int,
44 | ) -> list[int]:
45 | if p.subseed_strength != 0:
46 | subseed = int(p.all_subseeds[0])
47 | else:
48 | subseed = int(p.subseed)
49 |
50 | if subseed == -1:
51 | subseed = get_random_seed()
52 |
53 | if custom_seed != -1:
54 | # if custom_seed is specified, use the same seeds for prompts
55 | all_subseeds = [int(custom_seed)] * num_seeds
56 | else:
57 | # increase randomness by adding images' seeds
58 | all_subseeds = [
59 | (int(p.seed) + subseed + i) % SEED_MAX for i in range(num_seeds)
60 | ]
61 |
62 | return all_subseeds
63 |
64 |
65 | def escape_webui_special_symbols(tags: list[str]) -> list[str]:
66 | """Returns tags only which has brackets escaped."""
67 |
68 | escaped_tags = [SPECIAL_SYMBOL_PATTERN.sub(r"\\\1", tag) for tag in tags]
69 |
70 | return escaped_tags
71 |
72 |
73 | def unescape_webui_special_symbols(tags: list[str]) -> list[str]:
74 | """Returns all tags after unescaping."""
75 | unescaped_tags = []
76 |
77 | for tag in tags:
78 | for pattern, replace_to in ESCAPED_SYMBOL_PATTERNS.items():
79 | tag = pattern.sub(replace_to, tag)
80 |
81 | unescaped_tags.append(tag)
82 |
83 | return unescaped_tags
84 |
85 |
86 | def _get_tag_pattern(tag: str) -> re.Pattern:
87 | """Returns a regex pattern of a tag"""
88 |
89 | if "*" in tag:
90 | tag = tag.replace("*", ".*")
91 | tag = TAG_ESCAPE_SYMBOL_PATTERN.sub(lambda m: "\\" + m.group(0), tag)
92 | else:
93 | # escape all
94 | tag = re.escape(tag)
95 |
96 | return re.compile(tag)
97 |
98 |
99 | def get_patterns_from_tag_list(tags: list[str]) -> list[re.Pattern]:
100 | """Returns regex patterns from tag list"""
101 | return [_get_tag_pattern(tag) for tag in tags]
102 |
103 |
104 | def get_valid_tag_list(tag_text: str) -> list[str]:
105 | """Returns a list of non-empty tags from a tag text"""
106 | return [tag.strip() for tag in tag_text.split(",") if tag.strip() != ""]
107 |
--------------------------------------------------------------------------------
/images/sample-1-w.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-1-w.jpg
--------------------------------------------------------------------------------
/images/sample-1-wo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-1-wo.jpg
--------------------------------------------------------------------------------
/images/sample-2-w.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-2-w.jpg
--------------------------------------------------------------------------------
/images/sample-2-wo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-2-wo.jpg
--------------------------------------------------------------------------------
/images/sample-3-w.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-3-w.jpg
--------------------------------------------------------------------------------
/images/sample-3-wo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-3-wo.jpg
--------------------------------------------------------------------------------
/images/sample-4-w.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-4-w.jpg
--------------------------------------------------------------------------------
/images/sample-4-wo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/sample-4-wo.jpg
--------------------------------------------------------------------------------
/images/screenshot-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/screenshot-1.jpg
--------------------------------------------------------------------------------
/images/screenshot-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/screenshot-2.jpg
--------------------------------------------------------------------------------
/images/variation-normal-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-normal-1.jpg
--------------------------------------------------------------------------------
/images/variation-normal-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-normal-2.jpg
--------------------------------------------------------------------------------
/images/variation-normal-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-normal-3.jpg
--------------------------------------------------------------------------------
/images/variation-unvaried-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-unvaried-1.jpg
--------------------------------------------------------------------------------
/images/variation-unvaried-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-unvaried-2.jpg
--------------------------------------------------------------------------------
/images/variation-unvaried-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-unvaried-3.jpg
--------------------------------------------------------------------------------
/images/variation-varied-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-varied-1.jpg
--------------------------------------------------------------------------------
/images/variation-varied-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-varied-2.jpg
--------------------------------------------------------------------------------
/images/variation-varied-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-varied-3.jpg
--------------------------------------------------------------------------------
/images/variation-very_unvaried-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-very_unvaried-1.jpg
--------------------------------------------------------------------------------
/images/variation-very_unvaried-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-very_unvaried-2.jpg
--------------------------------------------------------------------------------
/images/variation-very_unvaried-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-very_unvaried-3.jpg
--------------------------------------------------------------------------------
/images/variation-very_varied-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-very_varied-1.jpg
--------------------------------------------------------------------------------
/images/variation-very_varied-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-very_varied-2.jpg
--------------------------------------------------------------------------------
/images/variation-very_varied-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/p1atdev/sd-danbooru-tags-upsampler/2a2ec1d8a4529806e9bef4a3290d478bacc4386a/images/variation-very_varied-3.jpg
--------------------------------------------------------------------------------
/install.py:
--------------------------------------------------------------------------------
1 | import launch
2 |
3 | if not launch.is_installed("optimum"):
4 | launch.run_pip(
5 | "install optimum[onnxruntime]", "requirements for Danbooru Tags Upsampler"
6 | )
7 |
8 |
9 | if not launch.is_installed("onnxruntime"):
10 | launch.run_pip(
11 | "install optimum[onnxruntime]", "requirements for Danbooru Tags Upsampler"
12 | )
13 |
14 |
15 | if launch.is_installed("tensorflow"):
16 | show_result = launch.run(
17 | f'"{launch.python}" -m pip show tensorflow',
18 | )
19 | if "2.15.1" not in show_result:
20 | launch.run_pip(
21 | "install -U tensorflow==2.15.1",
22 | "tensorflow for Danbooru Tags Upsampler to avoid the error with transformers==4.30.2",
23 | )
24 |
--------------------------------------------------------------------------------
/localizations/ja_JP.json:
--------------------------------------------------------------------------------
1 | {
2 | "Danbooru Tags Upsampler": "Danbooru タグアップサンプラー",
3 | "Enabled": "有効にする",
4 | "Total tag length": "タグの合計長",
5 | "very short": "とても短い",
6 | "short": "短い",
7 | "long": "長い",
8 | "very long": "とても長い",
9 | "Ban tags": "禁止タグ",
10 | "Separate with comma. Using `*` matches to any character (e.g. `* ears` matches to `animal ears`, `cat ears`, ...)": "カンマで区切ります。 `*` は全ての文字列にマッチします。(例: `* ears` は `animal ears`, `cat ears` 等にマッチします)",
11 | "Seed for upsampling tags": "タグのアップサンプリング用シード値",
12 | "Randomize": "ランダム化",
13 | "Shuffle": "シャッフル",
14 | "Upsampling timing": "アップサンプルのタイミング",
15 | "Before applying other prompt processings": "他のプロンプト加工処理の実行前",
16 | "After applying other prompt processings": "他のプロンプト加工処理の実行後",
17 | "_Prompt upsampling will be applied to **only the first image in batch**, **before** sd-dynamic-promps and the webui's styles feature are applied_": "_アップサンプリングは sd-dynamic-prompts や webui の styles が適用される**前**に、**バッチの一番最初の画像のみ**に対して適用されます_",
18 | "_Prompt upsampling will be applied to **all images in batch**, **after** sd-dynamic-promps and the webui's styles feature are applied_": "_アップサンプリングは sd-dynamic-prompts や webui の styles が適用された**後**に、**バッチのすべての画像**に対して適用されます_",
19 | "Variety level": "多様性レベル",
20 | "Just easy presets of generation config below": "下の生成オプションのプリセットです。",
21 | "very unvaried": "非常に単調",
22 | "unvaried": "単調",
23 | "normal": "普通",
24 | "varied": "多様",
25 | "very varied": "非常に多様",
26 | "Generation config": "生成オプション",
27 | "← less random | more random →": "← 低ランダム性 | 高ランダム性 →",
28 | "← more random, less computation | less random, more computation →": "← 低ランダム性, 少計算量 | 高ランダム性, 多計算量 →",
29 | "The model to use for upsampling danbooru tags.": "Danbooru タグのアップサンプルに利用するモデル",
30 | "The tokenizer for the upsampling model.": "アップサンプルモデルで使うトークナイザー",
31 | "The type of model backend.": "モデルのバックエンド",
32 | "Original = inefficient computation; ONNX = efficient computing but the model size is very large; ONNX (Quantized) = efficient computation, smallest model file size, and fastest": "Original = 計算効率よくない; ONNX = 計算効率良いがモデルサイズが大きい; ONNX (Quantized) = 計算効率が良く、モデルサイズも小さく、最速",
33 | "Original": "オリジナル",
34 | "ONNX (Quantized)": "ONNX (量子化)",
35 | "The device to run upsampling model on.": "アップサンプルモデルを実行するデバイス",
36 | "Allow escaped brackets in input prompt.": "入力プロンプト中のエスケープされた括弧を許容する",
37 | "Escape brackets in upsampled tags.": "出力されるタグの括弧をエスケープする",
38 | "Enable debug logging.": "デバッグログを有効にする"
39 | }
40 |
--------------------------------------------------------------------------------
/metadata.ini:
--------------------------------------------------------------------------------
1 | # This section contains information about the extension itself.
2 | # This section is optional.
3 | [Extension]
4 |
5 | # A canonical name of the extension.
6 | # Only lowercase letters, numbers, dashes and underscores are allowed.
7 | # This is a unique identifier of the extension, and the loader will refuse to
8 | # load two extensions with the same name. If the name is not supplied, the
9 | # name of the extension directory is used. Other extensions can use this
10 | # name to refer to this extension in the file.
11 | Name = sd-danbooru-tags-upsampler
12 |
13 | # A comma-or-space-separated list of extensions that this extension requires
14 | # to be installed and enabled.
15 | # The loader will generate a warning if any of the extensions in this list is
16 | # not installed or disabled.
17 | ; Requires = another-extension, yet-another-extension
18 |
19 | # Declaring relationships of folders
20 | #
21 | # This section declares relations of all files in `scripts` directory.
22 | # By changing the section name, it can also be used on other directories
23 | # walked by `load_scripts` function (for example `javascript` and `localization`).
24 | # This section is optional.
25 | [scripts]
26 |
27 | # A comma-or-space-separated list of extensions that files in this folder requires
28 | # to be present.
29 | # It is only allowed to specify an extension here.
30 | # The loader will generate a warning if any of the extensions in this list is
31 | # not installed or disabled.
32 | ; Requires = another-extension, yet-another-extension
33 |
34 | # A comma-or-space-separated list of extensions that files in this folder wants
35 | # to be loaded before.
36 | # It is only allowed to specify an extension here.
37 | # The loading order of all files in the specified folder will be moved so that
38 | # the files in the current extension are loaded before the files in the same
39 | # folder in the listed extension.
40 | ; Before = another-extension, yet-another-extension
41 |
42 | # A comma-or-space-separated list of extensions that files in this folder wants
43 | # to be loaded after.
44 | # Other details are the same as `Before` key.
45 | After = sd-dynamic-prompts
46 |
47 | # Declaring relationships of a specific file
48 | #
49 | # This section declares relations of a specific file to files in the same
50 | # folder of other extensions.
51 | # By changing the section name, it can also be used on other directories
52 | # walked by `load_scripts` function (for example `javascript` and `localization`).
53 | # This section is optional.
54 | ; [scripts/another-script.py]
55 |
56 | # A comma-or-space-separated list of extensions/files that this file requires
57 | # to be present.
58 | # The `Requires` key in the folder section will be prepended to this list.
59 | # The loader will generate a warning if any of the extensions/files in this list is
60 | # not installed or disabled.
61 | # It is allowed to specify either an extension or a specific file.
62 | # When referencing a file, the folder name must be omitted.
63 | #
64 | # For example, the `yet-another-extension/another-script.py` item refers to
65 | # `scripts/another-script.py` in `yet-another-extension`.
66 | ; Requires = another-extension, yet-another-extension/another-script.py, xyz_grid.py
67 |
68 | # A comma-or-space-separated list of extensions that this file wants
69 | # to be loaded before.
70 | # The `Before` key in the folder section will be prepended to this list.
71 | # The loading order of this file will be moved so that this file is
72 | # loaded before the referenced file in the list.
73 | ; Before = another-extension, yet-another-extension/another-script.py, xyz_grid.py
74 |
75 | # A comma-or-space-separated list of extensions that this file wants
76 | # to be loaded after.
77 | # Other details are the same as `Before` key.
78 | ; After = another-extension, yet-another-extension/another-script.py, xyz_grid.py
79 |
--------------------------------------------------------------------------------
/scripts/dart_upsampler.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 |
4 | import gradio as gr
5 | from transformers import set_seed
6 |
7 | from modules import script_callbacks
8 | import modules.scripts as scripts
9 | from modules.scripts import basedir
10 | from modules.processing import (
11 | StableDiffusionProcessingTxt2Img,
12 | StableDiffusionProcessingImg2Img,
13 | )
14 | from modules.shared import opts
15 |
16 | from dart.generator import DartGenerator
17 | from dart.analyzer import DartAnalyzer
18 | from dart.settings import on_ui_settings, parse_options
19 | import dart.utils as utils
20 | from dart.utils import SEED_MAX
21 |
22 | logger = logging.getLogger(__name__)
23 | logger.setLevel(logging.INFO)
24 |
25 |
26 | TOTAL_TAG_LENGTH = {
27 | "VERY_SHORT": "very short",
28 | "SHORT": "short",
29 | "LONG": "long",
30 | "VERY_LONG": "very long",
31 | }
32 |
33 | TOTAL_TAG_LENGTH_TAGS = {
34 | TOTAL_TAG_LENGTH["VERY_SHORT"]: "<|very_short|>",
35 | TOTAL_TAG_LENGTH["SHORT"]: "<|short|>",
36 | TOTAL_TAG_LENGTH["LONG"]: "<|long|>",
37 | TOTAL_TAG_LENGTH["VERY_LONG"]: "<|very_long|>",
38 | }
39 |
40 | PROCESSING_TIMING = {
41 | "BEFORE": "Before applying other prompt processings",
42 | "AFTER": "After applying other prompt processings",
43 | }
44 |
45 | VARIETY_OPTIONS = {
46 | "VERY_UNVARIED": "very unvaried",
47 | "UNVARIED": "unvaried",
48 | "NORMAL": "normal",
49 | "VARIED": "varied",
50 | "VERY_VARIED": "very varied",
51 | }
52 | # value: kye
53 | VARIETY_OPTIONS_VK = {v: k for k, v in VARIETY_OPTIONS.items()}
54 |
55 | VARIETY_PRESETS = {
56 | # [temperature, top_p, top_k, num_beams]
57 | "VERY_UNVARIED": [0.85, 0.9, 20, 2],
58 | "UNVARIED": [0.9, 0.95, 20, 1],
59 | "NORMAL": [1.0, 1, 30, 1],
60 | "VARIED": [1.5, 1, 50, 1],
61 | "VERY_VARIED": [2.0, 0.9, 100, 1],
62 | }
63 |
64 | extension_dir = basedir()
65 |
66 |
67 | def _join_texts(prefix: str, suffix: str) -> str:
68 | return ", ".join([part for part in [prefix, suffix] if part.strip() != ""])
69 |
70 |
71 | def _concatnate_texts(prefix: list[str], suffix: list[str]) -> list[str]:
72 | return [_join_texts(prompt, suffix[i]) for i, prompt in enumerate(prefix)]
73 |
74 |
75 | class DartUpsampleScript(scripts.Script):
76 | generator: DartGenerator
77 | analyzer: DartAnalyzer
78 |
79 | def __init__(self):
80 | super().__init__()
81 |
82 | self.options = parse_options(opts)
83 | if self.options["debug_logging"]:
84 | logger.setLevel(logging.DEBUG)
85 |
86 | self.generator = DartGenerator(
87 | self.options["model_name"],
88 | self.options["tokenizer_name"],
89 | self.options["model_backend_type"],
90 | )
91 | self.analyzer = DartAnalyzer(
92 | extension_dir,
93 | self.generator.get_vocab_list(),
94 | self.generator.get_special_vocab_list(),
95 | )
96 |
97 | script_callbacks.on_ui_settings(on_ui_settings)
98 |
99 | def title(self):
100 | return "Danbooru Tags Upsampler"
101 |
102 | def show(self, is_img2img):
103 | return scripts.AlwaysVisible
104 |
105 | def ui(self, is_img2img):
106 | with gr.Accordion(open=False, label=self.title()):
107 | with gr.Column():
108 | enabled_check = gr.Checkbox(label="Enabled", value=False)
109 |
110 | tag_length_radio = gr.Radio(
111 | label="Total tag length",
112 | choices=list(TOTAL_TAG_LENGTH.values()),
113 | value=TOTAL_TAG_LENGTH["LONG"],
114 | )
115 | ban_tags_textbox = gr.Textbox(
116 | label="Ban tags",
117 | info="Separate with comma. Using `*` matches to any character (e.g. `* ears` matches to `animal ears`, `cat ears`, ...)",
118 | value="",
119 | placeholder="umbrella, official *, * text, * background, ...",
120 | )
121 |
122 | with gr.Group():
123 | with gr.Row():
124 | seed_num_input = gr.Number(
125 | label="Seed for upsampling tags",
126 | minimum=-1,
127 | maximum=SEED_MAX,
128 | step=1,
129 | scale=4,
130 | value=-1,
131 | )
132 | seed_random_btn = gr.Button(value="Randomize")
133 | seed_shuffle_btn = gr.Button(value="Shuffle")
134 |
135 | def click_random_seed_btn():
136 | return -1
137 |
138 | seed_random_btn.click(
139 | click_random_seed_btn, outputs=[seed_num_input]
140 | )
141 |
142 | def click_shuffle_seed_btn():
143 | return utils.get_random_seed()
144 |
145 | seed_shuffle_btn.click(
146 | click_shuffle_seed_btn, outputs=[seed_num_input]
147 | )
148 |
149 | with gr.Group():
150 | process_timing_dropdown = gr.Dropdown(
151 | label="Upsampling timing",
152 | choices=list(PROCESSING_TIMING.values()),
153 | value=PROCESSING_TIMING["AFTER"],
154 | )
155 |
156 | def on_process_timing_dropdown_changed(timing: str):
157 | if timing == PROCESSING_TIMING["BEFORE"]:
158 | return "_Prompt upsampling will be applied to **only the first image in batch**, **before** sd-dynamic-promps and the webui's styles feature are applied_"
159 | elif timing == PROCESSING_TIMING["AFTER"]:
160 | return "_Prompt upsampling will be applied to **all images in batch**, **after** sd-dynamic-promps and the webui's styles feature are applied_"
161 | raise Exception(f"Unknown timing: {timing}")
162 |
163 | process_timing_md = gr.Markdown(
164 | on_process_timing_dropdown_changed(
165 | process_timing_dropdown.value
166 | )
167 | )
168 |
169 | process_timing_dropdown.change(
170 | on_process_timing_dropdown_changed,
171 | inputs=[process_timing_dropdown],
172 | outputs=[process_timing_md],
173 | )
174 |
175 | with gr.Group():
176 | variety_preset_radio = gr.Radio(
177 | label="Variety level",
178 | info="Just easy presets of generation config below",
179 | choices=list(VARIETY_OPTIONS.values()),
180 | value=VARIETY_OPTIONS["NORMAL"],
181 | )
182 |
183 | with gr.Accordion(label="Generation config", open=False):
184 | do_cfg_check = gr.Checkbox(
185 | label="Do CFG",
186 | info="Enables classifier-free guidance, this takes double of computation",
187 | visible=False,
188 | )
189 | negative_prompt_textbox = gr.Textbox(
190 | label="Negative tags",
191 | placeholder="simple background, ...",
192 | value="",
193 | visible=False,
194 | )
195 | cfg_scale_slider = gr.Slider(
196 | label="CFG scale",
197 | minimum=0.1,
198 | maximum=3.0,
199 | value=1.5,
200 | step=0.1,
201 | visible=False,
202 | )
203 |
204 | temperature_slider = gr.Slider(
205 | label="Temperature",
206 | info="← less random | more random →",
207 | maximum=4.0,
208 | minimum=0.1,
209 | step=0.01,
210 | value=1.0,
211 | )
212 | top_p_slider = gr.Slider(
213 | label="Top p",
214 | info="← less random | more random →",
215 | maximum=1.0,
216 | minimum=0.0,
217 | step=0.01,
218 | value=1.0,
219 | )
220 | top_k_slider = gr.Slider(
221 | label="Top k",
222 | info="← less random | more random →",
223 | maximum=1000,
224 | minimum=10,
225 | step=1,
226 | value=20,
227 | )
228 |
229 | num_beams_slider = gr.Slider(
230 | label="Num beams",
231 | info="← more random, less computation | less random, more computation →",
232 | maximum=20,
233 | minimum=1,
234 | step=1,
235 | value=1,
236 | )
237 |
238 | # update generation config when the preset is changed
239 | def on_variety_preset_radio_change(level: str):
240 | if level in VARIETY_OPTIONS.values():
241 | return VARIETY_PRESETS[VARIETY_OPTIONS_VK[level]]
242 | else:
243 | raise Exception(f"Unknown variety level: {level}")
244 |
245 | variety_preset_radio.change(
246 | on_variety_preset_radio_change,
247 | inputs=[variety_preset_radio],
248 | outputs=[
249 | temperature_slider,
250 | top_p_slider,
251 | top_k_slider,
252 | num_beams_slider,
253 | ],
254 | )
255 |
256 | return [
257 | enabled_check,
258 | tag_length_radio,
259 | ban_tags_textbox,
260 | seed_num_input,
261 | process_timing_dropdown,
262 | # generation config
263 | do_cfg_check,
264 | negative_prompt_textbox,
265 | cfg_scale_slider,
266 | temperature_slider,
267 | top_p_slider,
268 | top_k_slider,
269 | num_beams_slider,
270 | ]
271 |
272 | def process(
273 | self,
274 | p: StableDiffusionProcessingTxt2Img | StableDiffusionProcessingImg2Img,
275 | is_enabled: bool,
276 | tag_length: str,
277 | ban_tags: str,
278 | seed_num: int,
279 | process_timing: str,
280 | # generation config
281 | do_cfg: bool,
282 | negative_prompt: str,
283 | cfg_scale: float,
284 | temperature: float,
285 | top_p: float,
286 | top_k: int,
287 | num_bemas: int,
288 | ):
289 | """This method will be called after sd-dynamic-prompts and the styles are applied."""
290 |
291 | if not is_enabled:
292 | return
293 |
294 | if process_timing != PROCESSING_TIMING["AFTER"]:
295 | return
296 |
297 | analyzing_results = [self.analyzer.analyze(prompt) for prompt in p.all_prompts]
298 | logger.debug(f"Analyzed: {analyzing_results}")
299 |
300 | upsampling_prompt = [
301 | self.generator.compose_prompt(
302 | rating=f"{result.rating_parent}, {result.rating_child}",
303 | copyright=result.copyright,
304 | character=result.character,
305 | general=result.general,
306 | length=TOTAL_TAG_LENGTH_TAGS[tag_length],
307 | )
308 | for result in analyzing_results
309 | ]
310 | logger.debug(f"Upsampling prompt: {upsampling_prompt}")
311 | bad_words_ids = self.generator.get_bad_words_ids(ban_tags)
312 |
313 | upsampling_negative_prompts = []
314 | if do_cfg and negative_prompt is not None:
315 | negative_analyzing_result = self.analyzer.analyze(negative_prompt)
316 | logger.debug(f"Analyzed (negative): {negative_analyzing_result}")
317 |
318 | for analyzing_result in analyzing_results:
319 | upsampling_negative_prompt = self.generator.compose_prompt(
320 | rating=f"{analyzing_result.rating_parent}, {analyzing_result.rating_child}",
321 | copyright=_join_texts(
322 | analyzing_result.copyright, negative_analyzing_result.copyright
323 | ),
324 | character=_join_texts(
325 | analyzing_result.character, negative_analyzing_result.character
326 | ),
327 | general=negative_analyzing_result.general,
328 | length=TOTAL_TAG_LENGTH_TAGS[tag_length],
329 | )
330 | upsampling_negative_prompts.append(upsampling_negative_prompt)
331 |
332 | num_images = p.n_iter * p.batch_size
333 | upsampling_seeds = utils.get_upmsapling_seeds(
334 | p,
335 | num_images,
336 | custom_seed=seed_num,
337 | )
338 |
339 | # this list has only 1 item
340 | upsampled_tags = self._upsample_tags(
341 | upsampling_prompt,
342 | seeds=upsampling_seeds,
343 | temperature=float(temperature),
344 | top_p=float(top_p),
345 | top_k=int(top_k),
346 | num_bemas=int(num_bemas),
347 | bad_words_ids=bad_words_ids,
348 | negative_prompts=upsampling_negative_prompts if do_cfg else None,
349 | cfg_scale=float(cfg_scale),
350 | )
351 | logger.debug(f"Upsampled tags: {upsampled_tags}")
352 |
353 | # set new prompts
354 | p.all_prompts = _concatnate_texts(p.all_prompts, upsampled_tags)
355 |
356 | def before_process(
357 | self,
358 | p: StableDiffusionProcessingTxt2Img | StableDiffusionProcessingImg2Img,
359 | is_enabled: bool,
360 | tag_length: str,
361 | ban_tags: str,
362 | seed_num: int,
363 | process_timing: str,
364 | # generation config
365 | do_cfg: bool,
366 | negative_prompt: str,
367 | cfg_scale: float,
368 | temperature: float,
369 | top_p: float,
370 | top_k: int,
371 | num_bemas: int,
372 | ):
373 | """This method will be called before sd-dynamic-prompts and the styles are applied."""
374 |
375 | if not is_enabled:
376 | return
377 |
378 | if process_timing != PROCESSING_TIMING["BEFORE"]:
379 | return
380 |
381 | analyzing_result = self.analyzer.analyze(p.prompt)
382 | logger.debug(f"Analyzed: {analyzing_result}")
383 |
384 | upsampling_prompt = self.generator.compose_prompt(
385 | rating=f"{analyzing_result.rating_parent}, {analyzing_result.rating_child}",
386 | copyright=analyzing_result.copyright,
387 | character=analyzing_result.character,
388 | general=analyzing_result.general,
389 | length=TOTAL_TAG_LENGTH_TAGS[tag_length],
390 | )
391 | logger.debug(f"Upsampling prompt: {upsampling_prompt}")
392 | bad_words_ids = self.generator.get_bad_words_ids(ban_tags)
393 |
394 | upsampling_negative_prompt = None
395 | if do_cfg and negative_prompt is not None:
396 | negative_analyzing_result = self.analyzer.analyze(p.prompt)
397 | logger.debug(f"Analyzed (negative): {analyzing_result}")
398 |
399 | upsampling_negative_prompt = self.generator.compose_prompt(
400 | rating=f"{analyzing_result.rating_parent}, {analyzing_result.rating_child}",
401 | copyright=_join_texts(
402 | analyzing_result.copyright, negative_analyzing_result.copyright
403 | ),
404 | character=_join_texts(
405 | analyzing_result.character, negative_analyzing_result.character
406 | ),
407 | general=negative_analyzing_result.general,
408 | length=TOTAL_TAG_LENGTH_TAGS[tag_length],
409 | )
410 |
411 | upsampling_seeds = utils.get_upmsapling_seeds(
412 | p,
413 | num_seeds=1, # only for the first prompt
414 | custom_seed=seed_num,
415 | )
416 |
417 | # this list has only 1 item
418 | upsampled_tags = self._upsample_tags(
419 | [upsampling_prompt],
420 | seeds=upsampling_seeds,
421 | temperature=float(temperature),
422 | top_p=float(top_p),
423 | top_k=int(top_k),
424 | num_bemas=int(num_bemas),
425 | bad_words_ids=bad_words_ids,
426 | negative_prompts=(
427 | [upsampling_negative_prompt]
428 | if upsampling_negative_prompt is not None
429 | else None
430 | ),
431 | cfg_scale=float(cfg_scale),
432 | )
433 | logger.debug(f"Upsampled tags: {upsampled_tags}")
434 |
435 | # set a new prompt
436 | p.prompt = _concatnate_texts([p.prompt], upsampled_tags)[0]
437 |
438 | def _upsample_tags(
439 | self,
440 | prompts: list[str],
441 | seeds: list[int],
442 | temperature: float = 1.0,
443 | top_p: float = 1.0,
444 | top_k: int = 20,
445 | num_bemas: int = 1,
446 | bad_words_ids: list[list[int]] | None = None,
447 | negative_prompts: list[str] | None = None,
448 | cfg_scale: float = 1.5,
449 | ) -> list[str]:
450 | """Upsamples tags using provided prompts and returns added tags."""
451 |
452 | if len(prompts) == 1 and len(prompts) != len(seeds):
453 | prompts = prompts * len(seeds)
454 |
455 | upsampled_tags = []
456 | for i, (prompt, seed) in enumerate(zip(prompts, seeds, strict=True)):
457 | set_seed(seed)
458 | upsampled_tags.append(
459 | self.generator.generate(
460 | prompt,
461 | temperature=temperature,
462 | top_p=top_p,
463 | top_k=top_k,
464 | num_beams=num_bemas,
465 | bad_words_ids=bad_words_ids,
466 | negative_prompt=(
467 | negative_prompts[i] if negative_prompts is not None else None
468 | ),
469 | cfg_scale=cfg_scale,
470 | )
471 | )
472 | return upsampled_tags
473 |
--------------------------------------------------------------------------------
/tags/copyright.txt:
--------------------------------------------------------------------------------
1 | kamen rider dcd
2 | idolmaster 2
3 | immaterial and missing power
4 | chikanoko
5 | cream lemon
6 | sengoku otome
7 | vampire (game)
8 | suigetsu
9 | suicide squad
10 | youkai watch
11 | the witcher 3
12 | kinnikuman
13 | toriko (series)
14 | bokutachi wa benkyou ga dekinai
15 | mahou sensei negima!
16 | guilty gear 2
17 | bra-ban!
18 | trigun stampede
19 | luck & logic
20 | pretty rhythm
21 | elona
22 | splatoon 3
23 | maou-jou de oyasumi
24 | otona no moeoh
25 | taiko no tatsujin
26 | getbackers
27 | pop-up story
28 | transformers animated
29 | strike witches zero
30 | the legend of zelda: breath of the wild
31 | kotoura-san
32 | dragon's dogma
33 | five star stories
34 | bubblegum crisis
35 | kaifuku jutsushi no yarinaoshi ~sokushi mahou to skill copy no chouetsu heal~
36 | annie mei project
37 | tsukuyomi moonphase
38 | tsunderia
39 | girls bravo
40 | magus tale
41 | baccano!
42 | karakuri pierrot (vocaloid)
43 | kiznaiver
44 | tales of arise
45 | shoujo kakumei utena
46 | shining nikki
47 | ashita no kimi to au tame ni
48 | mayo chiki!
49 | super robot wars og saga mugen no frontier
50 | kaiten muten-maru
51 | umayuru
52 | scryed
53 | idolmaster cinderella girls u149
54 | nijisanji en
55 | goblin slayer!
56 | pixiv fate/grand order contest 1
57 | scp foundation
58 | lawson
59 | yu-gi-oh! gx
60 | hanshin tigers
61 | pokemon xy (anime)
62 | dead or alive 5
63 | .flow
64 | zero kara hajimeru mahou no sho
65 | pokemon (classic anime)
66 | turn a gundam
67 | kimi ga shine
68 | splatoon 2
69 | futari wa precure splash star
70 | seiken densetsu 2
71 | xenosaga
72 | gakkou de seishun!
73 | murenase! shiiton gakuen
74 | saibou shinkyoku
75 | fantastic beasts and where to find them
76 | ryuu ga gotoku 0
77 | mushihime-sama
78 | tokimeki memorial 2
79 | kingdom hearts
80 | macross zero
81 | ichigo 100 percent
82 | tsuritama
83 | the hobbit
84 | call of duty
85 | unfinished dream of all living ghost
86 | chunithm
87 | shinsougumi
88 | comic anthurium
89 | words worth
90 | addams family
91 | sweet home
92 | warframe
93 | waku waku 7
94 | kusari hime: euthanasia
95 | black lagoon
96 | panty & stocking with garterbelt
97 | sayonara zetsubou sensei
98 | princess principal
99 | muv-luv total eclipse
100 | elfen lied
101 | tales of phantasia
102 | iron saga
103 | nissin
104 | yuba no shirushi
105 | sangatsu no lion
106 | #compass
107 | iya na kao sare nagara opantsu misete moraitai
108 | final fantasy xi
109 | sd gundam g-generation
110 | zero no kiseki
111 | nyantype
112 | kakyuusei
113 | dengeki hime
114 | dog days
115 | xenoblade chronicles: future connected
116 | mega man legends
117 | team fortress 2
118 | 22/7
119 | batman (series)
120 | love hina
121 | to heart 2 ad
122 | senjou no valkyria 2
123 | ef
124 | mugen no fantasia
125 | hourou musuko
126 | ultra seven (series)
127 | white album (series)
128 | wixoss
129 | sengoku basara
130 | toaru majutsu no index
131 | nier
132 | a song of ice and fire
133 | nyan koi!
134 | kyu-kurarin (cevio)
135 | lobotomy corporation
136 | bleach: sennen kessen-hen
137 | rou-kyuu-bu!
138 | koumajou densetsu 2
139 | shino to ren
140 | bravely default: flying fairy
141 | fire emblem: thracia 776
142 | kimetsu gakuen
143 | djmax
144 | ginga eiyuu densetsu
145 | castlevania: symphony of the night
146 | warcraft
147 | monster hunter 3 g
148 | medaka box
149 | akarui kioku soushitsu
150 | tayutama
151 | captain america (series)
152 | hajimete no gal
153 | lord of heroes
154 | xenosaga episode i
155 | uber eats
156 | mega man 2
157 | shimoneta to iu gainen ga sonzai shinai taikutsu na sekai
158 | stardew valley
159 | dragon quest ix
160 | valkyrie drive -mermaid-
161 | sekaiju no meikyuu
162 | pixiv fantasia 1
163 | marvel cinematic universe
164 | hoshikuzu telepath
165 | kemono jihen
166 | berserk
167 | sketchbook full colors
168 | dairoku ryouhei
169 | mitsuboshi colors
170 | maji de watashi ni koi shinasai!
171 | capsule servant
172 | cuddly octopus
173 | hyakka ryouran samurai girls
174 | touhou cannonball
175 | maburaho
176 | hellsing
177 | sayonara wo oshiete
178 | mirai akari project
179 | azur lane
180 | tiny evil
181 | koi suru kanojo no bukiyou na butai
182 | kara no kyoukai
183 | grappler baki
184 | amakano ~second season~
185 | yes! precure 5 gogo!
186 | mahou shoujo lyrical nanoha a's
187 | simoun
188 | ring dream
189 | beast wars
190 | medarot
191 | iosys
192 | chloris garden
193 | beast wars: transformers
194 | ai yori aoshi
195 | me!me!me!
196 | legend of mana
197 | gen'ei wo kakeru taiyou
198 | with you
199 | super robot wars z
200 | tales of destiny
201 | nu carnival
202 | venus blade
203 | ishuzoku reviewers
204 | cinderella
205 | cardcaptor sakura
206 | disneyland
207 | genshiken
208 | danna ga nani wo itte iru ka wakaranai ken
209 | propro production
210 | kodomo no jikan
211 | hanikami kanojo
212 | kairaku historie
213 | suzume no tojimari
214 | bungou to alchemist
215 | crazy raccoon
216 | god of war
217 | toaru kagaku no mental out
218 | gainax
219 | crypton future media
220 | eden's zero
221 | animedia
222 | akazukin chacha
223 | fate/extella
224 | assassin's creed
225 | black bullet
226 | shinrabanshou
227 | touken ranbu
228 | blade & soul
229 | hinako note
230 | bacchikoi!
231 | lost technology
232 | dance dance revolution
233 | pretty rhythm rainbow live
234 | guilty gear
235 | the tale of food
236 | sengoku collection
237 | girls' frontline
238 | re:zero kara hajimeru isekai seikatsu
239 | ys
240 | overlord (maruyama)
241 | blazblue: continuum shift
242 | oshi no ko
243 | suzumiya haruhi no yuuutsu
244 | devilman
245 | another eidos-r
246 | sister princess
247 | reminiscence
248 | atelier ayesha
249 | namiuchigiwa no muromi-san
250 | disgaea
251 | taimanin (series)
252 | the legend of korra
253 | cookie run
254 | flcl
255 | kirakira precure a la mode
256 | tokimeki memorial girl's side 4th heart
257 | shining blade
258 | star ocean integrity and faithlessness
259 | lotte no omocha!
260 | blue lock
261 | girls und panzer senshadou daisakusen!
262 | gravity daze 2
263 | citrus (saburouta)
264 | incise soul
265 | tales of xillia
266 | gyee
267 | destiny (game)
268 | pikmin 4
269 | shin sakura taisen
270 | odd taxi
271 | ragnarok masters
272 | final fantasy xv
273 | puyopuyo~n
274 | super heroine boy
275 | final fantasy vii ever crisis
276 | hololive indonesia
277 | ensemble girls!
278 | tokimeki memorial 1
279 | fullmetal alchemist
280 | avengers (series)
281 | manatsu no yo no inmu
282 | black rock shooter
283 | queen's blade grimoire
284 | kekkai sensen
285 | teen titans
286 | dark souls ii
287 | idolmaster movie
288 | metroid
289 | squid game
290 | watashi ni tenshi ga maiorita!
291 | cryamore
292 | crawling dreams
293 | metal gear solid v: the phantom pain
294 | starless
295 | gundam narrative
296 | after (game)
297 | kidou senkan nadesico - prince of darkness
298 | dewprism
299 | star ocean till the end of time
300 | sengoku bushouki muramasa
301 | kamen rider ooo (series)
302 | bloodborne
303 | spider-man: across the spider-verse
304 | pokemon the movie: the power of us
305 | omega strikers
306 | rojiura satsuki: chapter heroine sanctuary
307 | mega man legends (series)
308 | shin megami tensei v
309 | comiket 103
310 | vanguard princess
311 | monsterverse
312 | star ocean first departure
313 | shinkai no valkyrie
314 | tengen toppa gurren lagann: parallel works
315 | voltron (series)
316 | houchi shoujo
317 | gintama
318 | street fighter ex (series)
319 | puyopuyo 7
320 | pacific racing team
321 | powerpuff girls z
322 | overwatch
323 | ganbare goemon
324 | tenkuu no craft fleet
325 | shadow hearts
326 | the legend of zelda: a link between worlds
327 | happy tree friends
328 | burger king
329 | bakuretsu tenshi
330 | houseki no kuni
331 | comiket 102
332 | ice cream kanojo
333 | genmu senki leda
334 | hidan no aria
335 | sen'yuu.
336 | kamen rider den-o (series)
337 | shantae and the pirate's curse
338 | fire emblem: new mystery of the emblem
339 | beyblade
340 | kizumonogatari
341 | mahou girls precure!
342 | shakugan no shana
343 | bayonetta 1
344 | getting over it
345 | la pucelle
346 | million arthur (series)
347 | nitroplus
348 | warioware
349 | shingeki no bahamut
350 | high school dxd pi
351 | from argonavis
352 | arc system works
353 | senran kagura new wave
354 | downtown no gaki no tsukai ya arahende!!
355 | mario kart 8
356 | eureka seven (series)
357 | harlock saga
358 | sakura trick
359 | stellula eques
360 | heybot!
361 | maken-ki!
362 | bible black
363 | demi-chan wa kataritai
364 | bravely default (series)
365 | monster hunter x
366 | mystic square
367 | black surge night
368 | wild arms 2
369 | kakyuusei 2
370 | liz to aoi tori
371 | comic rin
372 | moyashimon
373 | marvel vs. capcom 3
374 | kawaii dake ja nai shikimori-san
375 | ushio to tora
376 | made in abyss
377 | tenchuu
378 | ar tonelico
379 | mujin wakusei survive
380 | 7th dragon (series)
381 | arc the lad iii
382 | soccer spirits
383 | oboro muramasa
384 | ijiranaide nagatoro-san
385 | ben-tou
386 | oekaki musume
387 | kokoro iroduku koi ga shitai
388 | bakemonogatari
389 | tokyo mew mew
390 | street fighter iii (series)
391 | sansha san'you
392 | gorillaz
393 | pokemon masters ex
394 | skullgirls
395 | uq holder!
396 | avengers: infinity war
397 | pizza hut
398 | justice gakuen
399 | granblue fantasy versus
400 | pretty series
401 | hyrule warriors: age of calamity
402 | shoukan yuusha to f-kei kareshi
403 | kenkon no washi
404 | sengoku rance
405 | vsinger
406 | sweet devil (vocaloid)
407 | silent hill 2
408 | 2014 fifa world cup
409 | rumble roses
410 | xenoblade chronicles (series)
411 | bayonetta (series)
412 | high school dxd born
413 | the seven deadly sins
414 | mother 2
415 | kemomimi oukoku kokuei housou
416 | pokemon heroes: latios & latias
417 | go! princess precure
418 | assassin's creed ii
419 | animage
420 | sengoku musou
421 | yatagarasu (game)
422 | gotcha!
423 | hibike! euphonium
424 | gekkan shoujo nozaki-kun
425 | ninja slayer
426 | internet explorer
427 | ranma 1/2
428 | makai senki disgaea 4
429 | queen's blade rebellion
430 | doki doki literature club
431 | muse dash
432 | pokemon lgpe
433 | xenoblade chronicles 2
434 | beelzebub (manga)
435 | tenshi souzou re-boot!
436 | fortnite
437 | houkago teibou nisshi
438 | baka to test to shoukanjuu
439 | queen's blade unlimited
440 | jiggly girls
441 | kyoukai no kanata
442 | bishoujo mangekyou
443 | meshimase idol
444 | fate/grand order arcade
445 | shining wind
446 | brave witches
447 | null-meta
448 | crusaders quest
449 | fairy tail
450 | to heart (series)
451 | jojolion
452 | romeo to cinderella (vocaloid)
453 | pokemon sleep
454 | dodonpachi
455 | school girl strikers
456 | shigoto neko
457 | tennis no ouji-sama
458 | ookami (game)
459 | washio sumi wa yuusha de aru
460 | street fighter zero (series)
461 | gundam
462 | tekken 8
463 | azure striker gunvolt 2
464 | mega man x: command mission
465 | yuri kuma arashi
466 | dengeki moeou
467 | pokemon (anime)
468 | atelier meruru
469 | shining resonance
470 | brown dust 2
471 | sword art online the movie: ordinal scale
472 | dissidia final fantasy
473 | gundam zz
474 | pac-man (game)
475 | futaba channel
476 | touhou
477 | promare
478 | uta no prince-sama
479 | oounabara to wadanohara
480 | gundam 08th ms team
481 | darling in the franxx
482 | tsuyokiss
483 | pokemon sm
484 | cyborg 009
485 | ib
486 | star ocean the last hope
487 | one piece: strong world
488 | fallout 3
489 | noir (anime)
490 | soulcalibur iv
491 | akb48
492 | huion
493 | the road to el dorado
494 | silver rain
495 | boku no hero academia
496 | avatar 2.0 project
497 | command and conquer
498 | greaseberries
499 | tenka touitsu chronicle
500 | another
501 | busou shoujo machiavellism
502 | ruri dragon
503 | suki! yuki! maji magic (vocaloid)
504 | akebi-chan no serafuku
505 | gachimuchi
506 | panzer waltz
507 | pokemon: the electric tale of pikachu
508 | gundam thunderbolt
509 | 86 -eightysix-
510 | re leaf
511 | arcane: league of legends
512 | sekirei
513 | comic exe
514 | snk heroines: tag team frenzy
515 | shin megami tensei iv
516 | 30 minutes sisters
517 | captain america: the winter soldier
518 | rainbow six siege
519 | lupin iii
520 | key (company)
521 | terminator (series)
522 | inazuma eleven (series)
523 | sekaiju no meikyuu 4
524 | advent cirno
525 | mega man battle network (series)
526 | mahou shoujo madoka magica
527 | kid icarus uprising
528 | kagerou project
529 | beastars
530 | warhammer fantasy
531 | fate/prototype
532 | mario kart
533 | robot girls z
534 | ace attorney investigations 2
535 | shirobako
536 | mobile suit gundam
537 | pixiv fantasia t
538 | superman (series)
539 | tanaka the wizard
540 | hades (series)
541 | nanatsu no taizai
542 | five nights at freddy's
543 | honest axe
544 | watashi ga motenai no wa dou kangaetemo omaera ga warui!
545 | macross frontier: sayonara no tsubasa
546 | psycho-pass
547 | kokuhaku jikkou iinkai
548 | mother 3
549 | cafe stella to shinigami no chou
550 | shaft
551 | vanquished queens
552 | shukufuku no campanella
553 | fate/hollow ataraxia
554 | alien (1979)
555 | kono bijutsubu niwa mondai ga aru!
556 | amazon (company)
557 | aerisdies
558 | god eater
559 | project x zone
560 | tales of innocence
561 | peace@pieces
562 | kurano kun chi no futago jijou
563 | re:act
564 | arms (game)
565 | athena (series)
566 | pokemon gsc
567 | amnesia (idea factory)
568 | hollow knight
569 | pixiv fantasia new world
570 | gunxsword
571 | lord of vermilion
572 | devil may cry 3
573 | kaiji
574 | pokemon ranger
575 | roman (sound horizon)
576 | non non biyori
577 | little nuns (diva)
578 | fire emblem: mystery of the emblem
579 | harukana receive
580 | slow loop
581 | dragon quest iii
582 | yes! precure 5
583 | deltarune
584 | metal gear solid: peace walker
585 | dororon enma-kun
586 | barbie (live action)
587 | fire emblem warriors
588 | super robot wars judgement
589 | neo-porte
590 | galaxy angel rune
591 | final fantasy xii
592 | comiket 99
593 | studio ghibli
594 | gundam build fighters
595 | cevio
596 | maria-sama ga miteru
597 | devil may cry (series)
598 | gundam hathaway's flash
599 | gochuumon wa usagi desu ka?
600 | samurai spirits
601 | pokemon rse (anime)
602 | cosmic break
603 | metal gear solid 2: sons of liberty
604 | mad max
605 | dungeon and fighter
606 | sakura musubi
607 | senren banka
608 | rwby
609 | pokemon unite
610 | sora no method
611 | persona 2 tsumi
612 | majo to hyakkihei
613 | bastard!!
614 | the shining
615 | seikimatsu occult gakuin
616 | tower records
617 | selector wixoss
618 | kemono friends pavilion
619 | junketsu duelion
620 | nora cat channel
621 | sensha otoko
622 | toki wo kakeru shoujo
623 | phantasmagoria of dim.dream
624 | kamihime project
625 | pokemon conquest
626 | unconnected marketeers
627 | omc
628 | maerchen (album)
629 | koukaku no pandora
630 | doraemon
631 | niconico
632 | nippon professional baseball
633 | bravely second: end layer
634 | bomberman
635 | meiji (brand)
636 | mato seihei no slave
637 | kmnz
638 | mahou shoujo oriko magica
639 | chucolala
640 | sangoku infinity
641 | senjou no valkyria 1
642 | choukou sennin haruka
643 | omniscient reader's viewpoint
644 | suisei no gargantia
645 | toeto (vocaloid)
646 | gundam f91
647 | busou renkin
648 | kanokon
649 | flying witch
650 | sword art online: alicization - war of underworld
651 | luigi's mansion
652 | ultra series
653 | seiken densetsu 3
654 | godzilla (series)
655 | borderlands (series)
656 | xxxholic
657 | persona 3 portable
658 | ryuu ga gotoku 7
659 | street fighter 6
660 | the legend of zelda: spirit tracks
661 | d.gray-man
662 | kaze no klonoa
663 | pokemon platinum
664 | baby princess
665 | iriam
666 | fire emblem: shadow dragon and the blade of light
667 | choujigen game neptune mk2
668 | yoru no yatterman
669 | yu-gi-oh! go rush!!
670 | tales of xillia 2
671 | pia carrot (series)
672 | kamen rider hibiki (series)
673 | emil chronicle online
674 | paper mario: the thousand year door
675 | force of will
676 | mc axis
677 | comic aun
678 | rokka no yuusha
679 | pokemon dppt (anime)
680 | the legend of zelda: a link to the past
681 | ao no kanata no four rhythm
682 | nandemo iu koto wo kiite kureru akane-chan (voiceroid)
683 | comiket 97
684 | drag-on dragoon 3
685 | pop'n music
686 | otomedius
687 | hachigatsu no cinderella nine
688 | summon night 3
689 | smite
690 | digimon card game
691 | brand new animal
692 | no more heroes
693 | mighty morphin power rangers
694 | shokugeki no souma
695 | jigokuraku
696 | pita ten
697 | elf-san wa yaserarenai.
698 | shadowverse
699 | genshin impact
700 | mononoke
701 | renri no chigiri wo kimi to shiru
702 | atomic heart
703 | tales of hearts
704 | umamusume
705 | kannazuki no miko
706 | robotics;notes
707 | ojisan to marshmallow
708 | milihime taisen
709 | the king of fighters all-stars
710 | gekitotsu! joshikousei oiroke sensha gundan
711 | han'you no yashahime
712 | danganronpa another episode: ultra despair girls
713 | fate/prototype: fragments of blue and silver
714 | green lantern (series)
715 | wanmei shijie
716 | samsung
717 | manaria friends
718 | maria holic
719 | macross frontier: itsuwari no utahime
720 | one-punch man
721 | link! like! love live!
722 | lotus land story
723 | collar x malice
724 | sword art online: hollow fragment
725 | comic girls
726 | ninin ga shinobuden
727 | pixiv fantasia
728 | mega man (series)
729 | full metal jacket
730 | mega man 11
731 | lineage 2
732 | maoyuu maou yuusha
733 | the ring
734 | ai tenshi densetsu wedding peach
735 | cube x cursed x curious
736 | mahoraba
737 | shinryaku! ikamusume
738 | djmax portable
739 | yakitate!! japan
740 | morinaga (brand)
741 | gag manga biyori
742 | fukumoto mahjong
743 | arifureta shokugyou de sekai saikyou
744 | hinabita
745 | star ocean anamnesis
746 | lycoris recoil
747 | samurai champloo
748 | sankarea
749 | kamikaze kaitou jeanne
750 | fallout 4
751 | borderlands 2
752 | drifters
753 | dead by daylight
754 | saijaku muhai no bahamut
755 | comic party
756 | synthesizer v
757 | mamonomusume to no seikatsu ~ramia no baai~
758 | juusan kihei bouei ken
759 | danganronpa (series)
760 | mahou shoujo (raita)
761 | sen no kiseki
762 | pokemon mystery dungeon
763 | sekaiju no meikyuu 5
764 | super robot wars og saga mugen no frontier exceed
765 | jigoku shoujo
766 | blazblue remix heart
767 | isekai ojisan
768 | breath of fire i
769 | super mario galaxy
770 | mother 1
771 | clover theater
772 | maison ikkoku
773 | highly responsive to prayers
774 | persona 5 scramble: the phantom strikers
775 | muv-luv alternative (anime)
776 | mitsudomoe
777 | mad max: fury road
778 | air gear
779 | fate/apocrypha
780 | yoake mae yori ruri iro na
781 | kono subarashii sekai ni bakuen wo!
782 | wrestle angels survivor
783 | dragon nest
784 | jibaku shounen hanako-kun
785 | kamitsubaki studio
786 | goodsmile company
787 | escape from tarkov
788 | ganbare douki-chan
789 | aikatsu!
790 | yu yu hakusho
791 | transformers: generation 1
792 | eternal arcadia
793 | kodoku no gourmet
794 | the moon studio
795 | kiratto pri chan
796 | monster (manga)
797 | tetsuwan birdy decode
798 | utawarerumono
799 | atelier (series)
800 | wild arms 1
801 | milgram
802 | endro!
803 | mishiranu joshikousei ni kankin sareta mangaka no hanashi
804 | capcom
805 | yu-gi-oh!
806 | aikatsu on parade!
807 | aoi hana
808 | absolute duo
809 | toaru majutsu no index: new testament
810 | punch-out!!
811 | 2022 fifa world cup
812 | senran kagura estival versus
813 | uchuu senkan yamato 2199
814 | dragon ball heroes
815 | gatchaman crowds
816 | new super mario bros. u deluxe
817 | touran-sai
818 | blazblue variable heart
819 | wrestle angels survivor 2
820 | bakuman
821 | hello kitty
822 | umi monogatari
823 | ga-rei zero
824 | mega man zx
825 | zone of the enders 2
826 | kamen rider build (series)
827 | bunny and fox world
828 | fire emblem: genealogy of the holy war
829 | strike the blood
830 | just be friends (vocaloid)
831 | ousama ranking
832 | haibane renmei
833 | final fantasy vi
834 | no game no life
835 | strike witches: katayoku no majo-tachi
836 | dragon ball super super hero
837 | aogiri koukou
838 | eternal return: black survival
839 | cinderella series
840 | chaos online
841 | idolmaster million live! theater days
842 | yuusha de aru
843 | rakudai kishi no cavalry
844 | reverse:1999
845 | mabinogi
846 | sisters ~natsu no saigo no hi~
847 | honkai impact 3rd
848 | super mario bros. 1
849 | comic hotmilk
850 | critical role
851 | shirokami project
852 | kamen rider blade (series)
853 | gridman universe
854 | virtual on
855 | taimanin murasaki
856 | winged fusiliers
857 | genmukan
858 | bamboo blade
859 | utawarerumono: lost flag
860 | dragon quest x
861 | king (vocaloid)
862 | madan no ou to vanadis
863 | pokemon rgby (prototype)
864 | diablo
865 | last period
866 | animal crossing
867 | kingdom hearts i
868 | yuri!!! on ice
869 | comiket 90
870 | mon-musu quest!
871 | hataraku saibou
872 | who framed roger rabbit
873 | flowers (innocent grey)
874 | w tails cat
875 | sekaiju no meikyuu 2
876 | blood-c
877 | final fantasy v
878 | aku no meshitsukai (vocaloid)
879 | anyamal tantei kirumin zoo
880 | yu-gi-oh! sevens
881 | banjo-kazooie
882 | dragon quest v
883 | toy story
884 | monster hunter 3
885 | shoujo shuumatsu ryokou
886 | girlfriend (kari)
887 | f-ism
888 | kage no jitsuryokusha ni naritakute!
889 | perfect cherry blossom
890 | kaleido star
891 | comiket 91
892 | pastel chime
893 | yami to boushi to hon no tabibito
894 | power rangers
895 | ayakashi triangle
896 | lovely x cation 2
897 | kami nomi zo shiru sekai
898 | senki zesshou symphogear xd unlimited
899 | dead or alive
900 | lovely x cation
901 | ikazuchi no senshi raidy
902 | boku dake ga inai machi
903 | ore no nounai sentakushi ga gakuen love-comedy wo zenryoku de jama shiteiru
904 | shounen jump
905 | sword girls
906 | asobi ni iku yo!
907 | cyber v
908 | hori-san to miyamura-kun
909 | my life as a teenage robot
910 | dirty pair
911 | the king of fighters xv
912 | zom 100: zombie ni naru made ni shitai 100 no koto
913 | kill bill
914 | kamen rider w
915 | strike witches: aurora no majo
916 | escalation heroines
917 | atelier sophie
918 | chain chronicle
919 | pokemon legends: arceus
920 | sekaiju no meikyuu 1
921 | aikatsu stars!
922 | fortune arterial
923 | plants vs zombies
924 | alice: madness returns
925 | sen no kiseki iii
926 | dorei to no seikatsu ~teaching feeling~
927 | metal slug attack
928 | pixiv fantasia last saga
929 | chihayafuru
930 | madou monogatari
931 | crayon shin-chan
932 | h2o footprints in the sand
933 | portal (series)
934 | joukamachi no dandelion
935 | slayers
936 | winnie the pooh
937 | touhou sangetsusei
938 | mahou tsukai no yoru
939 | kimi kiss
940 | illustration.media
941 | gate - jieitai ka no chi nite kaku tatakaeri
942 | vivy: fluorite eye's song
943 | watashi no tame ni nuginasai!
944 | sentou mecha xabungle
945 | renkin san-kyuu magical pokaan
946 | tensui no sakuna-hime
947 | ryuu ga gotoku 1
948 | wonder egg priority
949 | ange vierge
950 | eiyuu densetsu
951 | playerunknown's battlegrounds
952 | terraria
953 | nanashi inc.
954 | monster musume no iru nichijou
955 | resident evil 3 (remake)
956 | musunde hiraite rasetsu to mukuro (vocaloid)
957 | log horizon
958 | kouya no kotobuki hikoutai
959 | transformers prime
960 | grisaia (series)
961 | ghost in the shell stand alone complex
962 | xianjian qixia zhuan
963 | holostars english
964 | yu-gi-oh! duel monsters
965 | accel world
966 | dungeon travelers 2
967 | blazblue: central fiction
968 | rance 10
969 | harukanaru toki no naka de
970 | saga frontier 2
971 | shigatsu wa kimi no uso
972 | tactics ogre
973 | princess principal game of mission
974 | voms
975 | nekomonogatari
976 | 2010 fifa world cup
977 | yatterman
978 | musuko ga kawaikute shikatanai mazoku no hahaoya
979 | resident evil 3: nemesis
980 | full metal panic!
981 | noble works
982 | modao zushi
983 | etotama
984 | t.m.revolution
985 | dragon ball gt
986 | wild arms 4
987 | sola
988 | kanpani girls
989 | umamusume: cinderella gray
990 | love live! sunshine!! the school idol movie over the rainbow
991 | go-toubun no hanayome
992 | atelier escha & logy
993 | shenmue
994 | onii-chan dakedo ai sae areba kankeinai yo ne
995 | new game!
996 | momoiro taisen pairon
997 | nora to oujo to noraneko heart
998 | goddess of victory: nikke
999 | final fantasy ix
1000 | star wars: the force awakens
1001 | school rumble
1002 | phoenix wright: ace attorney - justice for all
1003 | sengoku musou 2
1004 | arc the lad ii
1005 | pixiv fantasia revenge of the darkness
1006 | cthulhu mythos
1007 | halo (series)
1008 | cross edge
1009 | luo xiaohei zhanji
1010 | saihate (vocaloid)
1011 | needy girl overdose
1012 | tokyo necro
1013 | wild arms
1014 | sonic the hedgehog (archie comics)
1015 | uchuu no stellvia
1016 | aquarion evol
1017 | star trek
1018 | star ocean the second story
1019 | puzzle & dragons
1020 | bioshock infinite
1021 | kuroshitsuji
1022 | comic penguin club
1023 | devil summoner
1024 | mana khemia (series)
1025 | rune factory
1026 | pokemon sv
1027 | dragon quest xi
1028 | kamippoina (vocaloid)
1029 | pia carrot e youkoso!! g.o.
1030 | bokusatsu tenshi dokuro-chan
1031 | hopeless masquerade
1032 | hypnosis mic
1033 | kamen rider kabuto (series)
1034 | taiho shichauzo
1035 | crisis core final fantasy vii
1036 | tokyo 7th sisters
1037 | olympics
1038 | kamen rider (1st series)
1039 | witches of africa
1040 | eve online
1041 | ai the somnium files
1042 | megido72
1043 | sleeping beauty
1044 | given
1045 | mazinger z
1046 | melt (vocaloid)
1047 | melty blood: type lumina
1048 | shuffle!
1049 | soredemo machi wa mawatteiru
1050 | pui pui molcar
1051 | kamen rider black (series)
1052 | production kawaii
1053 | resort boin
1054 | trinity seven
1055 | sekiro: shadows die twice
1056 | wild flower
1057 | hyakko
1058 | souzou forest (vocaloid)
1059 | rabi-ribi
1060 | tell your world (vocaloid)
1061 | benghuai xueyuan
1062 | backrooms (creepypasta)
1063 | monobeno
1064 | kono yuusha ga ore tueee kuse ni shinchou sugiru
1065 | love live! sunshine!!
1066 | to heart
1067 | hanasaku iroha
1068 | daitoshokan no hitsujikai
1069 | valkyrie drive -siren-
1070 | grisaia no kajitsu
1071 | slime taoshite 300 nen shiranai uchi ni level max ni nattemashita
1072 | taimadou gakuen 35 shiken shoutai
1073 | fate/unlimited blade works
1074 | family guy
1075 | project diva (series)
1076 | the hunchback of notre dame
1077 | wario land
1078 | a.i. voice
1079 | megami magazine
1080 | zoids genesis
1081 | nekopara
1082 | jurassic world
1083 | dark souls (series)
1084 | final fantasy ii
1085 | kemono friends
1086 | idolmaster starlit season
1087 | ssss.dynazenon
1088 | jet set radio
1089 | hatsune miku happy 16th birthday -dear creators-
1090 | closers
1091 | holostars
1092 | fantasista doll
1093 | city hunter
1094 | kaze no tani no nausicaa
1095 | qurare magic library
1096 | dlsite.com
1097 | taimanin rpgx
1098 | avatar legends
1099 | i-chu
1100 | wily beast and weakest creature
1101 | hunie (series)
1102 | omamori himari
1103 | fire emblem heroes
1104 | mon-musu quest: paradox
1105 | dr. mario (game)
1106 | my little pony: friendship is magic
1107 | violet evergarden (series)
1108 | atelier lulua
1109 | scarlet weather rhapsody
1110 | spider-man: into the spider-verse
1111 | street fighter ii (series)
1112 | cross ange
1113 | kuroinu ~kedakaki seijo wa hakudaku ni somaru~
1114 | kyouran kazoku nikki
1115 | darkest dungeon
1116 | dive to zone
1117 | zoids
1118 | super robot wars the lord of elemental
1119 | gundam g no reconguista
1120 | ghost trick
1121 | suicide boy
1122 | xenoblade chronicles 3: future redeemed
1123 | splatoon (manga)
1124 | yuuki yuuna wa yuusha de aru
1125 | tear ring saga
1126 | i want you
1127 | precure all stars
1128 | pocketland
1129 | super mario 3d world
1130 | 100 percent orange juice
1131 | scooby-doo
1132 | danganronpa v3: killing harmony
1133 | hakuouki shinsengumi kitan
1134 | hoshikuzu witch meruru
1135 | aria (manga)
1136 | shinza bansho series
1137 | nyanko daisensou
1138 | seitokai no ichizon
1139 | seishun buta yarou
1140 | kirby and the forgotten land
1141 | makai tenshi djibril
1142 | tales of eternia
1143 | owarimonogatari
1144 | nisekoi
1145 | xenogears
1146 | zozotown
1147 | persona 4: dancing all night
1148 | the legend of zelda: ocarina of time
1149 | toaru majutsu no index: endymion no kiseki
1150 | company of heroes
1151 | girls und panzer ribbon no musha
1152 | ore twintail ni narimasu
1153 | wizarding world
1154 | neon genesis evangelion
1155 | project diva 2nd
1156 | fresh precure!
1157 | sky: children of the light
1158 | jikkyou powerful pro yakyuu
1159 | demonbane
1160 | black clover
1161 | mahoutsukai no yakusoku
1162 | square live
1163 | the adventures of sherlock holmes
1164 | touhou gouyoku ibun
1165 | kingdom hearts ii
1166 | yuni channel
1167 | kurogane no linebarrel
1168 | justice league
1169 | bishoujo senshi sailor moon crystal
1170 | nippon ichi
1171 | persona dancing
1172 | marvel
1173 | ensemble stars!
1174 | paper mario 64
1175 | apex legends
1176 | macintosh
1177 | nurarihyon no mago
1178 | kuro no kiseki
1179 | macross
1180 | nazo no kanojo x
1181 | kanon
1182 | titanic (movie)
1183 | summon night 5
1184 | tokimeki memorial 4
1185 | majutsushi orphen
1186 | eromanga sensei
1187 | tamako market
1188 | masters of the universe
1189 | azure striker gunvolt
1190 | mikakunin de shinkoukei
1191 | death stranding
1192 | phantasmagoria of flower view
1193 | gj-bu
1194 | majo no tabitabi
1195 | sonic adventure
1196 | touhou hisoutensoku
1197 | assassin's creed (series)
1198 | golden sun
1199 | kirby: star allies
1200 | strike witches
1201 | resident evil 0
1202 | high score girl
1203 | chrono crusade
1204 | owari no seraph
1205 | pixiv fantasia wizard and knight
1206 | dance in the vampire bund
1207 | xenoblade chronicles 1
1208 | the evil within
1209 | sony
1210 | evolution championship series
1211 | gundam seed astray
1212 | yozakura quartet
1213 | persona 2
1214 | love live! school idol project
1215 | dead space
1216 | idolmaster side-m
1217 | kamisama ni natta hi
1218 | dragon quest yuusha abel densetsu
1219 | ultraman (1st series)
1220 | shadow of the colossus
1221 | hitsugi no chaika
1222 | gunslinger stratos
1223 | osu! tatakae! ouendan
1224 | majestic prince
1225 | fate/kaleid liner prisma illya
1226 | fault!!
1227 | mahou shoujo lyrical nanoha reflection
1228 | puniru wa kawaii slime
1229 | dream c club
1230 | asobi asobase
1231 | occultic;nine
1232 | friday the 13th
1233 | formation girls
1234 | tasogare otome x amnesia
1235 | sunoharasou no kanrinin-san
1236 | pokemon emerald
1237 | kill la kill
1238 | kaibutsu oujo
1239 | guardian tales
1240 | zero no tsukaima
1241 | world of warships
1242 | kumo desu ga nani ka?
1243 | to love-ru
1244 | princess royale
1245 | toaru majutsu no index: old testament
1246 | final fantasy x-2
1247 | yagate kimi ni naru
1248 | the legend of zelda
1249 | gundam 00 a wakening of the trailblazer
1250 | summer pockets
1251 | blazblue phase 0
1252 | wcdonald's
1253 | akatsuki records
1254 | megami tensei
1255 | embodiment of scarlet devil
1256 | detective pikachu (movie)
1257 | kami-sama no memo-chou
1258 | atelier rorona
1259 | sword art online
1260 | kirby super star
1261 | atelier live
1262 | sora no otoshimono
1263 | the loud house
1264 | atelier ryza 2
1265 | drag-on dragoon 1
1266 | dragon quest dai no daibouken
1267 | uzaki-chan wa asobitai!
1268 | the lion king
1269 | criminal girls
1270 | idolmaster 1
1271 | pokemon hgss
1272 | pixiv fantasia mountain of heaven
1273 | castlevania: portrait of ruin
1274 | vocaloid
1275 | ikkitousen great guardians
1276 | gamers!
1277 | frame arms girl
1278 | ano ko wa toshi densetsu
1279 | haiiro teien
1280 | inazuma eleven go
1281 | blazblue: cross tag battle
1282 | food fantasy
1283 | pretty (series)
1284 | prism magical
1285 | shachiku succubus no hanashi
1286 | kemomimi refle!
1287 | casshern (series)
1288 | rune factory 4
1289 | jigoku sensei nube
1290 | nijiura maids
1291 | yama no susume
1292 | dokidoki sister aoi-chan
1293 | strike witches: suomus misfits squadron
1294 | hitoribocchi no marumaru seikatsu
1295 | high school dxd infinity
1296 | fire emblem: three houses
1297 | bunnystein fantasy
1298 | napoli no otokotachi
1299 | shuumatsu no harem
1300 | resident evil 4 (remake)
1301 | pokemon adventures
1302 | zenless zone zero
1303 | border break
1304 | professor layton
1305 | futsuu no joshikousei ga locodol yattemita
1306 | dancouga (series)
1307 | dragon ball super
1308 | dota 2
1309 | shinkyoku soukai polyphonica
1310 | girl cafe gun
1311 | blame!
1312 | seirei tsukai no blade dance
1313 | grimm's fairy tales
1314 | toradora!
1315 | wake up girls! stage no tenshi
1316 | aa megami-sama
1317 | stellive
1318 | five nights at freddy's: security breach
1319 | gensou suikoden
1320 | arms note
1321 | tenshi no inai 12-gatsu
1322 | shadows house
1323 | ukagaka
1324 | senran kagura peach beach splash
1325 | fl studio
1326 | koe no katachi
1327 | gundam 0083
1328 | the amazing world of gumball
1329 | reitaisai
1330 | mahou shoujo lyrical nanoha a's portable: the gears of destiny
1331 | qualidea code
1332 | imperishable night
1333 | heartcatch precure!
1334 | real drive
1335 | precure
1336 | xblaze
1337 | four goddesses online: cyber dimension neptune
1338 | star wars: the clone wars
1339 | kamen rider
1340 | splatoon 2: octo expansion
1341 | hyrule warriors
1342 | seikai no senki
1343 | sennen sensou aigis
1344 | ca (maeda koutarou)
1345 | axis powers hetalia
1346 | highschool of the dead
1347 | snow white and the seven dwarfs
1348 | tensei oujo to tensai reijou no mahou kakumei
1349 | hajimari no kiseki
1350 | comiket 93
1351 | acchi kocchi
1352 | summon night
1353 | vanillaware
1354 | kamichu!
1355 | space dandy
1356 | tom and jerry
1357 | dmm
1358 | idolmaster cinderella girls starlight stage
1359 | diamond wa kudakenai
1360 | hai to gensou no grimgar
1361 | saber marionette j
1362 | hentai key
1363 | cowboy bebop
1364 | ghost in the shell
1365 | ookiku furikabutte
1366 | disgaea rpg
1367 | himehina channel
1368 | sonic rush
1369 | muv-luv alternative
1370 | mekakucity actors
1371 | adachi to shimamura
1372 | nogi wakaba wa yuusha de aru
1373 | ongeki
1374 | haiyore! nyaruko-san
1375 | ben 10
1376 | kaizoku sentai gokaiger
1377 | la corda d'oro
1378 | prismplus
1379 | senyoku no sigrdrifa
1380 | shuumatsu nani shitemasu ka?
1381 | katekyo hitman reborn!
1382 | 2018 fifa world cup
1383 | kawaikereba hentai demo suki ni natte kuremasu ka?
1384 | hitomi sensei no hokenshitsu
1385 | choujin x
1386 | rokudenashi majutsu koushi to akashic record
1387 | gakkou gurashi!
1388 | senjou no valkyria 3
1389 | koumajou densetsu
1390 | pokemon: twilight wings
1391 | the king of fighters
1392 | sentouin hakenshimasu!
1393 | the king of fighters xiv
1394 | little red riding hood
1395 | dolls in pseudo paradise
1396 | pikmin (series)
1397 | planetarian
1398 | the amazing digital circus
1399 | love live! school idol festival all stars
1400 | masterwork apocalypse
1401 | sword art online: alicization
1402 | fate/samurai remnant
1403 | taishou yakyuu musume
1404 | casshern sins
1405 | tetris
1406 | yu-gi-oh! the dark side of dimensions
1407 | code geass: boukoku no akito
1408 | dimension w
1409 | one - kagayaku kisetsu e
1410 | tiger & bunny
1411 | shigofumi
1412 | high school dxd hero
1413 | ar tonelico i
1414 | guardians of the galaxy
1415 | initial d
1416 | fate/requiem
1417 | neptune (series)
1418 | aether gazer
1419 | tropical kiss
1420 | charlotte (anime)
1421 | dragon ball fighterz
1422 | gal gamer ni homeraretai
1423 | dungeon meshi
1424 | viprpg
1425 | love lab
1426 | gensou suikoden i
1427 | bayonetta 3
1428 | tekken
1429 | pokemon rse
1430 | taimanin asagi kessen arena
1431 | pokemon bw
1432 | soukou kihei votoms
1433 | senran kagura new link
1434 | dagashi kashi
1435 | destiny child
1436 | microsoft windows
1437 | senjou no valkyria 4
1438 | phantasy star portable 2
1439 | clockwork rabbit
1440 | pokemon
1441 | princess lover
1442 | the big o
1443 | undefined fantastic object
1444 | bakusou kyoudai let's & go!!
1445 | artery gear
1446 | fire emblem engage
1447 | gundam seed
1448 | angel chromosome xx
1449 | scott pilgrim takes off
1450 | pixiv fantasia age of starlight
1451 | the bible
1452 | toaru kagaku no railgun
1453 | mayoi neko overrun!
1454 | metal gear solid 3: snake eater
1455 | rinne no lagrange
1456 | fire emblem cipher
1457 | riot music
1458 | tianguan cifu
1459 | marl kingdom
1460 | tokyo mirage sessions fe
1461 | world masterpiece theater
1462 | urusei yatsura
1463 | chou shittou caduceus
1464 | matryoshka (vocaloid)
1465 | gensou suikoden ii
1466 | project moon
1467 | c2 kikan
1468 | the legend of zelda: tears of the kingdom
1469 | ring fit adventure
1470 | magician's aerial dream
1471 | idolmaster live for you!
1472 | code vein
1473 | girlish number
1474 | gugure! kokkuri-san
1475 | tears of themis
1476 | idolmaster side-m growing stars
1477 | nisoku hokou (vocaloid)
1478 | zaregoto series
1479 | tomb raider
1480 | valkyrie no densetsu
1481 | tales of legendia
1482 | atelier ryza 3
1483 | miracle nikki
1484 | nhk ni youkoso!
1485 | microsoft
1486 | mcdonald's
1487 | resident evil 4
1488 | koufuku graffiti
1489 | phantom blood
1490 | learning with manga! fgo
1491 | ai shite! homun
1492 | kud wafter
1493 | monster hunter: world
1494 | sanoba witch
1495 | queen (band)
1496 | calvin klein
1497 | un-go
1498 | shingeki no bahamut: genesis
1499 | honey come chatka!!
1500 | versailles no bara
1501 | onegai my melody
1502 | phantasy star portable 2 infinity
1503 | sousou no frieren
1504 | mahou senki lyrical nanoha force
1505 | vee (vtuber)
1506 | 7th dragon 2020
1507 | rance (series)
1508 | fate/stay night
1509 | hikaru no go
1510 | fairy fencer f
1511 | indie utaite
1512 | tekken tag tournament 2
1513 | dark souls i
1514 | fatal frame 3
1515 | g gundam
1516 | little busters!
1517 | danshi koukousei no nichijou
1518 | the iron of yin and yang
1519 | onegai teacher
1520 | devil survivor
1521 | neko musume michikusa nikki
1522 | ssss.gridman
1523 | curiosities of lotus asia
1524 | mona lisa
1525 | hapymaher
1526 | dankira!!!
1527 | sonic the hedgehog (classic)
1528 | black rock shooter (game)
1529 | sono bisque doll wa koi wo suru
1530 | culture japan
1531 | tenshinranman
1532 | isekai maou to shoukan shoujo no dorei majutsu
1533 | virtua fighter
1534 | tenki no ko
1535 | hiroshima touyou carp
1536 | kai-ri-sei million arthur
1537 | a hat in time
1538 | koishi komeiji's heart-throbbing adventure
1539 | artwhirl mahou gakuen no otome-tachi
1540 | magic: the gathering
1541 | kishuku gakkou no juliet
1542 | world cup
1543 | joshi kousei rich thots
1544 | sora wo kakeru shoujo
1545 | monster musume no oisha-san
1546 | dirge of cerberus final fantasy vii
1547 | cu-no
1548 | kagerou days (vocaloid)
1549 | cyphers
1550 | final fantasy
1551 | steampunk (liarsoft)
1552 | seiren
1553 | marvel vs. capcom
1554 | tsuki ni yorisou otome no sahou
1555 | osomatsu-kun
1556 | r-type
1557 | idolmaster poplinks
1558 | twisted wonderland
1559 | the legend of zelda: link's awakening
1560 | zhu xian
1561 | strawberry panic!
1562 | voiceroid
1563 | sonic adventure 2
1564 | danganronpa kirigiri
1565 | senjuushi: the thousand noble musketeers
1566 | cinderella girls gekijou
1567 | kamen rider geats (series)
1568 | cutie honey
1569 | kantai collection (anime)
1570 | dumbbell nan kilo moteru?
1571 | nagasarete airantou
1572 | sana channel
1573 | mahou tsukai to kuroneko no wiz
1574 | zombie land saga
1575 | satsuriku no tenshi
1576 | resident evil: revelations
1577 | alien (series)
1578 | sakura taisen
1579 | nagi no asukara
1580 | ueno-san wa bukiyou
1581 | pokemon dppt
1582 | league of legends
1583 | shantae: half-genie hero
1584 | toaru kagaku no railgun s
1585 | firefox
1586 | final fantasy viii
1587 | sd gundam
1588 | tsukimonogatari
1589 | akame ga kill!
1590 | jahy-sama wa kujikenai!
1591 | deemo
1592 | bakumatsu rouman
1593 | alia's carnival!
1594 | oshiro project:re
1595 | gridman universe (film)
1596 | the beatles
1597 | wild and horned hermit
1598 | digimon adventure 02
1599 | v ap art
1600 | dark souls iii
1601 | dc comics
1602 | quilt (game)
1603 | sangoku musou 1
1604 | d-frag!
1605 | tsuujou kougeki ga zentai kougeki de ni-kai kougeki no okaasan wa suki desu ka?
1606 | last origin
1607 | gundam 0080
1608 | super robot wars
1609 | quiz magic academy
1610 | puyopuyo quest
1611 | dennou shoujo youtuber siro
1612 | echocalypse
1613 | sora no kanata no dystopia x shitei
1614 | monster hunter portable 3rd
1615 | aquarium (visual novel)
1616 | kusuriya no hitorigoto
1617 | blue reflection
1618 | .hack//games
1619 | hirogaru sky! precure
1620 | hikikomari kyuuketsuki no monmon
1621 | black cat (series)
1622 | among us
1623 | parasite eve
1624 | queen's blade white triangle
1625 | da capo iii
1626 | slam dunk (series)
1627 | touhou lost word
1628 | bakuon!!
1629 | space adventure cobra
1630 | diablo 3
1631 | kunoichi tsubaki no mune no uchi
1632 | otome youkai zakuro
1633 | seiken densetsu
1634 | lollipop chainsaw
1635 | metal gear (series)
1636 | nier (series)
1637 | limbus company
1638 | sakura-sou no pet na kanojo
1639 | fire emblem warriors: three hopes
1640 | kamen rider kiva (series)
1641 | code geass
1642 | koihime musou
1643 | cardfight!! vanguard
1644 | game & watch
1645 | naruto
1646 | atelier lydie & suelle
1647 | anpanman
1648 | grimms notes
1649 | soulcalibur
1650 | shinkai shoujo (vocaloid)
1651 | makaimura
1652 | bural chingu
1653 | tate no yuusha no nariagari
1654 | jinrui wa suitai shimashita
1655 | kiddy grade
1656 | mega man star force
1657 | dracu-riot!
1658 | oda nobuna no yabou
1659 | fatal frame 2
1660 | kemono friends v project
1661 | hataraku maou-sama!
1662 | ever 17
1663 | triage x
1664 | yuusha ou gaogaigar
1665 | one piece
1666 | nichijou
1667 | kamen rider wizard (series)
1668 | blue oath
1669 | urasekai picnic
1670 | gundam wing
1671 | kochikame
1672 | suzumiya haruhi-chan no yuuutsu
1673 | persona 1
1674 | otome function
1675 | metroid dread
1676 | the end of evangelion
1677 | mabinogi heroes
1678 | super real mahjong
1679 | coca-cola
1680 | super cub
1681 | mega man zx advent
1682 | miru tights
1683 | mahou shoujo madoka magica: hangyaku no monogatari
1684 | the transformers (idw)
1685 | super sentai
1686 | pepsi
1687 | zeta gundam
1688 | otogi-juushi akazukin
1689 | mahou shoujo madoka magica movie 1 & 2
1690 | sora no iro mizu no iro
1691 | final fight
1692 | kfc
1693 | photokano
1694 | alice gear aegis
1695 | douluo dalu
1696 | doom eternal
1697 | kirby's return to dream land
1698 | super smash bros.
1699 | tales of destiny 2
1700 | ghostbusters
1701 | grandia i
1702 | haks
1703 | voltron: legendary defender
1704 | lost universe
1705 | power pro kun pocket
1706 | ultra kaijuu gijinka keikaku
1707 | mega man zero (series)
1708 | titanfall 2
1709 | dragon ball z
1710 | world witches series
1711 | shinkansen henkei robo shinkalion
1712 | mass effect (series)
1713 | pokemon tcg
1714 | fantasy earth
1715 | kamen rider fourze (series)
1716 | one piece film: red
1717 | domestic na kanojo
1718 | castlevania: rondo of blood
1719 | meitantei conan
1720 | wrestle angels
1721 | senran kagura shoujo-tachi no shin'ei
1722 | zone of the enders
1723 | bang dream! it's mygo!!!!!
1724 | suntory
1725 | bashamichi
1726 | mirai akari's new virtual youtuber illustration contest
1727 | bombergirl
1728 | doupo cangqiong
1729 | tokidoki bosotto roshia-go de dereru tonari no arya-san
1730 | persona 4
1731 | utawarerumono: itsuwari no kamen
1732 | tokyo ghoul:re
1733 | pacific rim
1734 | jingai makyou
1735 | fallout new vegas
1736 | chrono cross
1737 | girls' frontline neural cloud
1738 | record of lodoss war
1739 | mairimashita! iruma-kun
1740 | cattleya regina games
1741 | tsukihime (remake)
1742 | idolmaster million live!
1743 | advance wars
1744 | indie virtual youtuber
1745 | toushinden
1746 | wake up girls!
1747 | spy x family
1748 | godzilla: king of the monsters
1749 | hoshi ori yume mirai
1750 | splatoon 1
1751 | dragon: marked for death
1752 | bikkuriman
1753 | watashi no oshi wa akuyaku reijou
1754 | girls und panzer saishuushou
1755 | hiyoku no crosspiece
1756 | kimi no koto ga dai dai dai dai daisuki na 100-nin no kanojo
1757 | paper mario
1758 | a deer of nine colors
1759 | creepypasta
1760 | fii-tan the figure
1761 | puyopuyo
1762 | hololive alternative
1763 | yosuga no sora
1764 | cloud nine inc
1765 | kerberos blade
1766 | pixiv
1767 | dissidia final fantasy opera omnia
1768 | princess tutu
1769 | future card buddyfight
1770 | deathsmiles
1771 | memories off
1772 | pokemon usum
1773 | bishoujo senshi sailor moon
1774 | dragon quest viii
1775 | houkago no pleiades
1776 | the legend of zelda (nes)
1777 | 11eyes
1778 | yu-gi-oh! vrains
1779 | action pizazz
1780 | utau
1781 | himouto! umaru-chan
1782 | blood+
1783 | gundam arsenal base
1784 | little witch nobeta
1785 | minecraft
1786 | koumajou densetsu 1
1787 | red: pride of eden
1788 | final fantasy brave exvius
1789 | fallout (series)
1790 | sonic (series)
1791 | mushoku tensei
1792 | eternity sword series
1793 | r.o.d the tv
1794 | the witcher (series)
1795 | half-life (series)
1796 | oretachi ni tsubasa wa nai
1797 | lilith-soft
1798 | silent hill (series)
1799 | .hack//
1800 | comiket 95
1801 | blend s
1802 | kizuato
1803 | tsumi no hahen (debris)
1804 | star fox
1805 | elysion
1806 | junk gaming maiden
1807 | inazuma eleven go galaxy
1808 | modern mogal
1809 | gravity falls
1810 | pornhub
1811 | fate/extra ccc fox tail
1812 | hyouka
1813 | tenkuu no escaflowne
1814 | granblue fantasy
1815 | mass effect
1816 | houshin engi
1817 | the king of fighters '97
1818 | mahjong soul
1819 | beautiful gunbari
1820 | comic x-eros
1821 | kamen rider ex-aid (series)
1822 | vshojo
1823 | kyuuketsuki sugu shinu
1824 | dragon quest iv
1825 | kamen rider agito (series)
1826 | genjitsu no yohane
1827 | netsu ijou (utau)
1828 | neko to chiyo
1829 | metal gear solid
1830 | after war gundam x
1831 | kingdom (series)
1832 | fire emblem
1833 | honzuki no gekokujou
1834 | kiseijuu
1835 | under night in-birth
1836 | castlevania (series)
1837 | breaking bad
1838 | cafe-chan to break time
1839 | kuromukuro
1840 | yoru mac
1841 | gaki kyonyuu
1842 | c.c. lemon
1843 | torikissa!
1844 | puyopuyo fever
1845 | avengers: endgame
1846 | final fantasy type-0
1847 | deadman wonderland
1848 | top gun
1849 | world of warcraft
1850 | rhapsody
1851 | seikon no qwaser
1852 | noragami
1853 | kingdom hearts iii
1854 | coppelion
1855 | onmyoji
1856 | ambience synesthesia
1857 | ys viii lacrimosa of dana
1858 | narutaru
1859 | adventure time
1860 | joshi kousei
1861 | hinata channel
1862 | mofumofu channel
1863 | oneechanbara
1864 | muv-luv unlimited: the day after
1865 | magna carta
1866 | pokemon rgby
1867 | amagami
1868 | project diva f
1869 | macross delta: zettai live!!!!!!
1870 | kemono friends 3
1871 | kidou keisatsu patlabor
1872 | wild arms xf
1873 | imouto sae ireba ii
1874 | va-11 hall-a
1875 | ga-rei
1876 | magical mirai (vocaloid)
1877 | mahouka koukou no rettousei
1878 | agarest senki (series)
1879 | pixiv fantasia 3
1880 | tree of savior
1881 | undead unluck
1882 | from software
1883 | macross: do you remember love?
1884 | show by rock!!
1885 | mountain dew
1886 | sen no kiseki iv
1887 | idolmaster shiny colors
1888 | kizuna ai inc.
1889 | saya no uta
1890 | thunderbolt fantasy
1891 | school days
1892 | yuru yuri
1893 | the super mario bros. movie
1894 | white album
1895 | pure pure
1896 | the little mermaid
1897 | granado espada
1898 | doki doki majo shinpan
1899 | keijo!!!!!!!!
1900 | romancing saga 3
1901 | forever 7th capital
1902 | love live!
1903 | galaxy angel
1904 | thomas the tank engine
1905 | final fantasy iii
1906 | mahou shoujo taisen
1907 | digimon adventure
1908 | bleach
1909 | phantasy star online 2
1910 | sei zenra jogakuen
1911 | aikatsu friends!
1912 | kamikaze explorer!
1913 | kamen rider 555
1914 | eiken
1915 | heaven's feel
1916 | da capo i
1917 | leon the professional
1918 | koimonogatari
1919 | breath of fire ii
1920 | nijisanji
1921 | warui ga watashi wa yuri janai
1922 | garfield
1923 | formula one
1924 | egyptian mythology
1925 | saenai heroine no sodatekata
1926 | kanojo mo kanojo
1927 | xenoblade chronicles 2: torna - the golden country
1928 | stone ocean
1929 | dr pepper
1930 | shining star
1931 | 7th dragon iii
1932 | seitokai yakuindomo
1933 | rozen maiden
1934 | .hack//g.u.
1935 | arcana heart
1936 | delicious party precure
1937 | resident evil 2
1938 | kikou souseiki mospeada
1939 | national basketball association
1940 | sk8 the infinity
1941 | hidden star in four seasons
1942 | queen's blade
1943 | phantom kingdom
1944 | sunrise (company)
1945 | night sparrow love
1946 | kamen rider kuuga (series)
1947 | yume nikki
1948 | zutto mayonaka de ii no ni
1949 | pixiv fantasia 4
1950 | digimon story: cyber sleuth
1951 | mugen senshi valis
1952 | crave saga
1953 | zoids chaotic century
1954 | live a live
1955 | pokemon bdsp
1956 | brave girl ravens
1957 | koi to senkyo to chocolate
1958 | star twinkle precure
1959 | mm!
1960 | tamayura
1961 | summertime render
1962 | gakuen utopia manabi straight!
1963 | onegai twins
1964 | akane-iro ni somaru saka
1965 | eizouken ni wa te wo dasu na!
1966 | alien (movie)
1967 | 7th dragon
1968 | final fantasy x
1969 | bokujou monogatari
1970 | ichiban ushiro no daimaou
1971 | bloodstained: ritual of the night
1972 | aoki hagane no arpeggio
1973 | flip flappers
1974 | gundam sentinel
1975 | popotan
1976 | goodbye sengen (vocaloid)
1977 | macross delta
1978 | beatmania iidx
1979 | pandora hearts
1980 | punishing: gray raven
1981 | digimon world re:digitize
1982 | vento aureo
1983 | kyokou suiri
1984 | comiket 96
1985 | asagao to kase-san
1986 | senjou no electro girl
1987 | katawa shoujo
1988 | robotech
1989 | divine gate
1990 | alchemy stars
1991 | makai senki disgaea 5
1992 | super mario rpg
1993 | twitter
1994 | seisenshi dunbine
1995 | ghost sweeper mikami
1996 | newtype
1997 | shaman king
1998 | romancing saga
1999 | masamune-kun no revenge
2000 | doukyuusei another world
2001 | bemani
2002 | sarazanmai
2003 | gundam build divers re:rise
2004 | 4chan
2005 | shakunetsu no takkyuu musume
2006 | char's counterattack
2007 | youjo senki
2008 | tsurezure children
2009 | uta macross sumaho deculture
2010 | youkai hyakki-tan!
2011 | koi wa sensou (vocaloid)
2012 | xenoblade chronicles 3
2013 | scott pilgrim (series)
2014 | nagato yuki-chan no shoushitsu
2015 | karakai jouzu no takagi-san
2016 | en'en no shouboutai
2017 | funamusea
2018 | black jack (series)
2019 | hoshizora e kakaru hashi
2020 | danganronpa: trigger happy havoc
2021 | dohna dohna issho ni warui koto o shiyou
2022 | twin angel
2023 | gakusen toshi asterisk
2024 | a-soul
2025 | agent aika
2026 | persona 5: dancing star night
2027 | heroman
2028 | princess connect!
2029 | pia carrot e youkoso!! 3
2030 | high school fleet
2031 | fullbokko heroes
2032 | muchigaku
2033 | sewayaki kitsune no senko-san
2034 | fate/tiger colosseum
2035 | japanese mythology
2036 | journey to the west
2037 | monster hunter (series)
2038 | touhou bougetsushou
2039 | doukyuusei
2040 | kamen rider saber (series)
2041 | tekken 6
2042 | puchimasu!
2043 | inuyasha
2044 | hamidashi creative
2045 | sakura taisen iii
2046 | heavy object
2047 | world of tanks
2048 | idol time pripara
2049 | the king of fighters 2001
2050 | monster musume no iru nichijou online
2051 | mahou shoujo lyrical nanoha the movie 1st
2052 | ga geijutsuka art design class
2053 | akudama drive
2054 | hanamaru youchien
2055 | kibou no chikara ~otona precure '23~
2056 | ragnarok online
2057 | armored core
2058 | ano hi mita hana no namae wo bokutachi wa mada shiranai.
2059 | ao no exorcist
2060 | senjuushi (series)
2061 | giant robo
2062 | saga frontier
2063 | devilman crybaby
2064 | sonic and the black knight
2065 | 9-nine-
2066 | arknights: endfield
2067 | mahou shoujo madoka magica plus
2068 | blazblue: chronophantasma
2069 | mushishi
2070 | transformers
2071 | project diva extend
2072 | tombow mono
2073 | dramatical murder
2074 | xblaze code: embryo
2075 | battle angel alita
2076 | re:zero kara hajimeru isekai seikatsu: lost in memories
2077 | gabriel dropout
2078 | gundam seed destiny
2079 | cafe sourire
2080 | senran kagura shinovi versus
2081 | harry potter (series)
2082 | shantae (series)
2083 | tamagotchi
2084 | lord el-melloi ii case files
2085 | mega man x (series)
2086 | naruto shippuuden
2087 | xenosaga episode iii
2088 | imaizumin-chi wa douyara gal no tamariba ni natteru rashii
2089 | resident evil 5
2090 | persona 5 the royal
2091 | transformers (live action)
2092 | megami paradise
2093 | kemurikusa
2094 | you can eat the girl
2095 | wonder festival 2007
2096 | kure-nai
2097 | poptepipic
2098 | sakura taisen v
2099 | gake no ue no ponyo
2100 | wreck-it ralph
2101 | gokukoku no brynhildr
2102 | digimon tamers
2103 | phoenix wright: ace attorney
2104 | kuso miso technique
2105 | fire emblem: the sacred stones
2106 | chain paradox
2107 | vandread
2108 | comiket 100
2109 | monster farm
2110 | yuragisou no yuuna-san
2111 | el cazador de la bruja
2112 | maitetsu
2113 | happiness!
2114 | unleashed
2115 | senbonzakura (vocaloid)
2116 | engage kiss
2117 | indivisible
2118 | yokohama kaidashi kikou
2119 | re:stage!
2120 | danball senki
2121 | tengoku daimakyou
2122 | koiiro soramoyou
2123 | dororo (tezuka)
2124 | breath of fire
2125 | senran kagura
2126 | idoly pride
2127 | apollo justice: ace attorney
2128 | choujigen game neptune
2129 | soredemo ayumu wa yosetekuru
2130 | pixiv fantasia sword regalia
2131 | shinma x keishou! ragnabreak
2132 | battlefield (series)
2133 | galgrease
2134 | eiyuu senki ww
2135 | pokemon gsc (prototype)
2136 | digimon
2137 | mushiking
2138 | kujibiki unbalance
2139 | papa no iu koto wo kikinasai!
2140 | k-on! movie
2141 | nirvana (band)
2142 | yu-gi-oh! arc-v
2143 | pokemon journeys
2144 | love live! nijigasaki high school idol club
2145 | ansatsu kyoushitsu
2146 | barakamon
2147 | soul hackers
2148 | karigurashi no arrietty
2149 | benesse
2150 | oneshot (game)
2151 | tenka hyakken
2152 | maplestory
2153 | dolphin wave
2154 | wonderland wars
2155 | fire emblem echoes: shadows of valentia
2156 | uni create
2157 | splatoon (series)
2158 | phoenix wright: ace attorney - spirit of justice
2159 | tamiya incorporated
2160 | priapus
2161 | soulcalibur vi
2162 | kemono friends kingdom
2163 | amphibia
2164 | melonbooks
2165 | merc storia
2166 | last exile: gin'yoku no fam
2167 | kyoufuu all back (vocaloid)
2168 | kobe shinbun
2169 | plastic memories
2170 | project sekai
2171 | fushigiboshi no futago hime
2172 | kamen rider ghost (series)
2173 | angel beats!
2174 | shukusei!! loli-gami requiem
2175 | otome game no hametsu flag shika nai akuyaku reijou ni tensei shite shimatta
2176 | needless
2177 | tongkkangi
2178 | the legend of zelda: skyward sword
2179 | sword art online alternative: gun gale online
2180 | gouma reifuden izuna
2181 | shiguang dailiren
2182 | doom (series)
2183 | honey strap
2184 | twitter-san
2185 | furyou michi ~gang road~
2186 | strange creators of outer world
2187 | flower knight girl
2188 | shin sangoku musou
2189 | signalis
2190 | tejina senpai (series)
2191 | seiken gakuin no maken tsukai
2192 | peter pan (disney)
2193 | goodsmile racing
2194 | yakusoku no neverland
2195 | project upd8
2196 | yotsunoha
2197 | koutetsujou no kabaneri
2198 | len'en
2199 | tower of fantasy
2200 | victory gundam
2201 | wwe
2202 | do it yourself!!
2203 | top wo nerae 2!
2204 | dragon quest ii
2205 | fate/strange fake
2206 | majo no takkyuubin
2207 | grandia
2208 | haite kudasai takamine-san
2209 | ender lilies quietus of the knights
2210 | otome gee sekai wa mob ni kibishii sekai desu
2211 | c (control)
2212 | gensou suikoden v
2213 | otoyomegatari
2214 | star driver
2215 | fushigi no umi no nadia
2216 | tokyo revengers
2217 | final fantasy tactics
2218 | shiki (novel)
2219 | servant x service
2220 | captain earth
2221 | himawari-san
2222 | ark survival evolved
2223 | kin-iro mosaic
2224 | osomatsu-san
2225 | tekkaman blade
2226 | read or die
2227 | shining tears
2228 | digimon adventure tri.
2229 | google
2230 | phantom of the kill
2231 | tantei wa mou shindeiru
2232 | undertale
2233 | inazuma eleven
2234 | legacy of lunatic kingdom
2235 | sega
2236 | lyrical nanoha
2237 | decadence (anime)
2238 | happinesscharge precure!
2239 | teenage mutant ninja turtles
2240 | avatar: the last airbender
2241 | druaga no tou
2242 | boku no kokoro no yabai yatsu
2243 | street fighter v
2244 | gundam tekketsu no orphans
2245 | akira (manga)
2246 | shuumatsu no valkyrie
2247 | the matrix
2248 | apple inc.
2249 | kantai collection
2250 | hokkaido nippon-ham fighters
2251 | momotarou densetsu
2252 | boku no risou no isekai seikatsu
2253 | wild arms 3
2254 | himegoto
2255 | kid icarus
2256 | sousai shoujo teien
2257 | densetsu kyojin ideon
2258 | saki achiga-hen
2259 | battle girl high school
2260 | idolmaster one for all
2261 | suiheisen made nan mile?
2262 | bocchi the rock!
2263 | g-taste
2264 | cuphead (game)
2265 | breath of fire v
2266 | magi the labyrinth of magic
2267 | mahou shoujo lyrical nanoha a's portable: the battle of aces
2268 | top wo nerae!
2269 | soul eater
2270 | boruto: naruto the movie
2271 | gendai ninjakko zukan
2272 | infinite stratos
2273 | the murder of sonic the hedgehog
2274 | resident evil village
2275 | tales of asteria
2276 | pixiv fantasia 2
2277 | snk
2278 | mechanical buddy universe
2279 | ma no mono-tachi
2280 | ar tonelico iii
2281 | devil may cry 4
2282 | silverlight
2283 | rolling girl (vocaloid)
2284 | koikishi purely kiss
2285 | yurucamp
2286 | quiz magic academy the world evolve
2287 | ninja gaiden
2288 | fire emblem awakening
2289 | seiken no blacksmith
2290 | schwarzesmarken
2291 | higurashi no naku koro ni mei
2292 | pokemon cafe mix
2293 | tenkuu no crystalia
2294 | macross 7
2295 | gagraphic
2296 | yahari ore no seishun lovecome wa machigatteiru.
2297 | ore wo suki nano wa omae dake ka yo
2298 | full moon wo sagashite
2299 | mister donut
2300 | atelier ryza
2301 | touka gettan
2302 | senkou no ronde
2303 | reddit
2304 | watchmen
2305 | legends of runeterra
2306 | k-on!
2307 | tokyo afterschool summoners
2308 | nintendo
2309 | tales of (series)
2310 | advance of zeta
2311 | yukijirushi
2312 | ao no roku-gou
2313 | surge concerto
2314 | tari tari
2315 | fatal fury
2316 | eiyuu senki
2317 | tales of rebirth
2318 | kimi ga aruji de shitsuji ga ore de
2319 | cyberpunk edgerunners
2320 | mahou shoujo lyrical nanoha innocent
2321 | spongebob squarepants
2322 | sora no kiseki
2323 | shining hearts
2324 | duck hunt
2325 | crossbone gundam
2326 | final fantasy iv: the after years
2327 | jujutsu kaisen
2328 | true tears
2329 | ryuuko no ken
2330 | ombok diving and delivery services
2331 | wonder festival
2332 | bayonetta 2
2333 | moetan
2334 | kemono friends 2
2335 | futakoi
2336 | beauty and the beast
2337 | swapnote
2338 | dissidia 012 final fantasy
2339 | frozen (disney)
2340 | nijisanji id
2341 | saga
2342 | naruto (series)
2343 | forbidden scrollery
2344 | lineage
2345 | cygames
2346 | one piece treasure cruise
2347 | mario tennis
2348 | the great ace attorney 2: resolve
2349 | oshiro project re
2350 | tenjou tenge
2351 | space invaders
2352 | metroid: zero mission
2353 | saru getchu
2354 | phantasy star
2355 | binbougami ga!
2356 | kaitou saint tail
2357 | guilty dragon
2358 | ochikazuki ni naritai miyazen-san
2359 | it (stephen king)
2360 | dragon quest vi
2361 | subterranean animism
2362 | saiki kusuo no psi nan
2363 | variable geo
2364 | resident evil
2365 | twitch.tv
2366 | aquarion (series)
2367 | futari wa precure
2368 | little witch academia
2369 | id :invaded
2370 | portal 1
2371 | pumpkin scissors
2372 | otome wa boku ni koishiteru
2373 | megami magazine deluxe
2374 | doukutsu monogatari
2375 | nier:automata
2376 | prism project
2377 | lanxi zhen
2378 | tantei opera milky holmes
2379 | toji no miko
2380 | overman king gainer
2381 | dr. stone
2382 | saint seiya
2383 | magic kaito
2384 | rebuild of evangelion
2385 | bandai namco
2386 | story of eastern wonderland
2387 | taimanin yukikaze
2388 | beyblade: burst
2389 | djmax respect
2390 | tonari no kyuuketsuki-san
2391 | jormungand (manga)
2392 | hololive dev is
2393 | ash arms
2394 | comiket 92
2395 | game of thrones
2396 | comiket 101
2397 | space channel 5
2398 | dragon ball minus
2399 | paryi project
2400 | pokemon (game)
2401 | netoge no yome wa onna no ko janai to omotta?
2402 | voicevox
2403 | suite precure
2404 | trigger heart exelica
2405 | ane naru mono
2406 | saikin yatotta maid ga ayashii
2407 | kakegurui
2408 | aquarian age
2409 | garou: mark of the wolves
2410 | arcana heart 3
2411 | digimon savers
2412 | mahou shoujo ikusei keikaku restart
2413 | shinkon gattai godannar!!
2414 | dream c club (series)
2415 | senpai ga uzai kouhai no hanashi
2416 | haevest
2417 | taimanin asagi
2418 | strider (video game)
2419 | comic bavel
2420 | sono hanabira ni kuchizuke wo
2421 | dango daikazoku
2422 | fate/extra ccc
2423 | mahou shoujo lyrical nanoha the movie 2nd a's
2424 | omoide no marnie
2425 | rail wars!
2426 | comiket 94
2427 | ashita no nadja
2428 | fantasy earth zero
2429 | south park
2430 | real life
2431 | takt op.
2432 | spectral (series)
2433 | kumamiko
2434 | flyable heart
2435 | dandadan
2436 | evillious nendaiki
2437 | di gi charat
2438 | alicesoft
2439 | tangled
2440 | american mcgee's alice
2441 | fire emblem: the blazing blade
2442 | sekai seifuku: bouryaku no zvezda
2443 | tetsuwan atom
2444 | comic megastore
2445 | cookie (touhou)
2446 | inou-battle wa nichijou-kei no naka de
2447 | call of cthulhu
2448 | pixiv fantasia 5
2449 | twice (group)
2450 | virtuareal
2451 | outlaw star
2452 | tatakau ataisuru
2453 | .hack//tasogare no udewa densetsu
2454 | kirara fantasia
2455 | scarz
2456 | trickster
2457 | wakfu
2458 | guilty gear x
2459 | kaede to suzu
2460 | koukaku no regios
2461 | ikoku meiro no croisee
2462 | grand sphere
2463 | little tail bronx
2464 | valkyrie connect
2465 | noble witches
2466 | final fantasy tactics advance
2467 | ochikobore fruit tart
2468 | final fantasy fables
2469 | hentai elf to majime orc
2470 | amairo islenauts
2471 | ryuu ga gotoku (series)
2472 | elden ring
2473 | no-rin
2474 | subarashiki hibi
2475 | hataraku saibou black
2476 | grimlight
2477 | terra battle
2478 | sen to chihiro no kamikakushi
2479 | mashiroiro symphony
2480 | left 4 dead
2481 | star vs the forces of evil
2482 | artery gear: fusion
2483 | japan racing association
2484 | shugo chara!
2485 | little match girl
2486 | teekyuu
2487 | trojan green asteroid
2488 | arai-san mansion
2489 | action taimanin
2490 | pokemon swsh
2491 | last exile
2492 | kono naka ni hitori imouto ga iru!
2493 | devil survivor 2
2494 | line (naver)
2495 | digimon xros wars
2496 | hentai ouji to warawanai neko.
2497 | yu-gi-oh! zexal
2498 | tokyo exe girls
2499 | super blackjack
2500 | azur lane: slow ahead
2501 | wangzhe rongyao
2502 | end of evangelion
2503 | gunslinger girl
2504 | kimi ni todoke
2505 | steins;gate
2506 | mob psycho 100
2507 | the elder scrolls v: skyrim
2508 | dislyte
2509 | gundam build fighters try
2510 | touhou ningyougeki
2511 | xenoblade chronicles x
2512 | agarest senki
2513 | lunar
2514 | seisen cerberus
2515 | steelblue mirage
2516 | type-moon
2517 | commando (movie)
2518 | vspo!
2519 | tenshi no 3p!
2520 | basquash!
2521 | 7th dragon 2020-ii
2522 | kotobukiya bishoujo
2523 | dragon ball
2524 | beat angel escalayer
2525 | shining musume
2526 | resident evil 2 (remake)
2527 | gundam wing endless waltz
2528 | trusty bell
2529 | pokemon oras
2530 | umamusume: road to the top
2531 | dragon quest vii
2532 | sekaiju no meikyuu 3
2533 | naruto: the last
2534 | hokuto no ken
2535 | romancing saga minstrel song
2536 | kuro no kiseki ii
2537 | world flipper
2538 | battle tendency
2539 | pangya
2540 | monster strike
2541 | helltaker
2542 | evertale
2543 | jewelpet (series)
2544 | mario kart wii
2545 | ten desires
2546 | atelier shallie
2547 | mega man x dive
2548 | ore no imouto ga konna ni kawaii wake ga nai
2549 | mahou shoujo lyrical nanoha
2550 | dengeki g's
2551 | lord of the mysteries
2552 | sakigake!! cromartie koukou
2553 | paradox live
2554 | evangelion: 3.0+1.0 thrice upon a time
2555 | tenco's story
2556 | chobits
2557 | the last of us
2558 | devil may cry 5
2559 | trigun
2560 | mewkledreamy
2561 | arcaea
2562 | phase connect
2563 | inu x boku ss
2564 | okujou no yurirei-san
2565 | youtube
2566 | yuzu-soft
2567 | gundam build divers
2568 | romancing saga 2
2569 | ryuuou no oshigoto!
2570 | haruru minamo ni!
2571 | kamen rider gaim (series)
2572 | futari wa precure max heart
2573 | tropical liquor
2574 | kirby's dream land 3
2575 | battle athletes
2576 | kidou senkan nadesico
2577 | houkago play
2578 | aoi ch.
2579 | ace attorney investigations
2580 | z/x
2581 | elfheim
2582 | gundam card builder
2583 | lord of vermilion iii
2584 | super mario world
2585 | mario kart tour
2586 | prison school
2587 | kyoto animation
2588 | fate/extra
2589 | danganronpa/zero
2590 | witchblade
2591 | tamatoys
2592 | disney
2593 | detective pikachu
2594 | evangelion: 3.0 you can (not) redo
2595 | codename: kids next door
2596 | ilog
2597 | tokyo ghoul
2598 | to heart 2
2599 | wactor production
2600 | the silmarillion
2601 | golden kamuy
2602 | ark order
2603 | unlight
2604 | musaigen no phantom world
2605 | tom clancy's the division
2606 | guilty gear strive
2607 | ace combat 7
2608 | summon night 2
2609 | yuusha no kuse ni namaiki da
2610 | hololive english
2611 | ordo mediare sisters (ironlily)
2612 | library of ruina
2613 | kanagawa okinami ura
2614 | animare
2615 | chrono trigger
2616 | coefont
2617 | strawberry prince
2618 | healin' good precure
2619 | battle spirits
2620 | attouteki yuugi mugen souls
2621 | riddle joker
2622 | ushinawareta mirai wo motomete
2623 | fire emblem: the binding blade
2624 | azumanga daioh
2625 | monster girl encyclopedia
2626 | beatmania
2627 | kimi no na wa.
2628 | denpa onna to seishun otoko
2629 | dead or alive 6
2630 | akatsuki no yona
2631 | fatal frame 4
2632 | yokohama dena baystars
2633 | yondemasu yo azazel-san.
2634 | x-men
2635 | shingeki no kyojin
2636 | getsuyoubi no tawawa
2637 | terminator 2: judgment day
2638 | pokemon mystery dungeon: explorers of time/darkness/sky
2639 | vivid strike!
2640 | waktaverse
2641 | metroid prime
2642 | yuusha ou gaogaigar final
2643 | super mario sunshine
2644 | makai shin trillion
2645 | rosario+vampire
2646 | shin koihime musou
2647 | dragon quest builders 2
2648 | star wars: revenge of the sith
2649 | dota (series)
2650 | saturday night fever
2651 | queen's gate
2652 | strike witches 1940
2653 | denonbu
2654 | idolmaster (classic)
2655 | yofukashi no uta
2656 | toaru kagaku no railgun t
2657 | tekken 7
2658 | juuni kokuki
2659 | luminous arc
2660 | donkey kong (series)
2661 | kingdom hearts 358/2 days
2662 | under night in-birth exe:late[st]
2663 | dennou coil
2664 | touhou tag dream
2665 | wednesday (netflix)
2666 | uchuu patrol luluco
2667 | back to the future
2668 | karakai jouzu no (moto) takagi-san
2669 | shingoku no valhalla gate
2670 | rune factory 5
2671 | stratos 4
2672 | amaryllis gumi
2673 | melty blood
2674 | sanrio
2675 | tales of zestiria
2676 | joshiraku
2677 | ame to kimi to
2678 | fate/grand order
2679 | zegapain
2680 | ghostblade
2681 | franken fran
2682 | noripro
2683 | yotsubato!
2684 | guilty gear xrd
2685 | namco
2686 | final fantasy xiii
2687 | uchi no maid ga uzasugiru!
2688 | lucky star
2689 | grandia ii
2690 | friday night funkin'
2691 | ole tower
2692 | identity v
2693 | fire emblem gaiden
2694 | jashin-chan dropkick
2695 | hololive china
2696 | viper
2697 | zettai karen children
2698 | k-project
2699 | sengoku taisen
2700 | zenkoku seifuku bishoujo grand prix
2701 | mofu-mofu after school
2702 | tsubasa chronicle
2703 | battle spirits: shounen toppa bashin
2704 | 100th black market
2705 | dorohedoro
2706 | persona 4: the ultimate in mayonaka arena
2707 | overwatch 2
2708 | bandai
2709 | shinmai fukei kiruko-san
2710 | pokemon frlg
2711 | call of duty: modern warfare 2
2712 | sora yori mo tooi basho
2713 | spider-man (series)
2714 | kemeko deluxe
2715 | new horizon
2716 | rewrite
2717 | chainsaw man
2718 | ano natsu de matteru
2719 | mario & luigi rpg
2720 | carnival phantasm
2721 | makai senki disgaea 3
2722 | v yuusha no kuse ni namaiki da r
2723 | youkoso jitsuryoku shijou shugi no kyoushitsu e
2724 | girls' frontline 2: exilium
2725 | kim possible (series)
2726 | clannad
2727 | fate/empire of dirt
2728 | boku no kanojo sensei
2729 | soulcalibur v
2730 | blade runner
2731 | mist train girls
2732 | kimetsu no yaiba
2733 | sword art online: memory defrag
2734 | inazuma eleven go chrono stone
2735 | tales of graces
2736 | monster hunter frontier
2737 | homestuck
2738 | kyousougiga
2739 | corrector yui
2740 | masou gakuen hxh
2741 | nier reincarnation
2742 | metal gear rising: revengeance
2743 | monogatari (series)
2744 | pringles
2745 | tsugumomo
2746 | tiktok
2747 | blue archive
2748 | keroro gunsou
2749 | ghostly field club
2750 | river city girls
2751 | kill me baby
2752 | galaga
2753 | kamen rider revice
2754 | kamen rider 01 (series)
2755 | howl no ugoku shiro
2756 | kakumeiki valvrave
2757 | metroid fusion
2758 | dies irae
2759 | castlevania: order of ecclesia
2760 | tenkuu no shiro laputa
2761 | mega man (classic)
2762 | sugar lyric
2763 | idolmaster dearly stars
2764 | akatsuki no goei
2765 | ikkitousen dragon destiny
2766 | portrait of exotic girls
2767 | mountain of faith
2768 | god eater 2: rage burst
2769 | monster hunter 4
2770 | foul detective satori
2771 | super robot wars x-omega
2772 | sword art online: code register
2773 | liver city
2774 | cyberpunk (series)
2775 | master detective archives: rain code
2776 | sound voltex
2777 | guilty crown
2778 | tokyo ravens
2779 | bobobo-bo bo-bobo
2780 | saint seiya omega
2781 | da capo
2782 | kirby 64
2783 | expo2025
2784 | kyokugen dasshutsu
2785 | black survival
2786 | sidonia no kishi
2787 | tokyo xanadu
2788 | kamen rider drive (series)
2789 | odds & ends (vocaloid)
2790 | nisemonogatari
2791 | haikyuu!!
2792 | love r
2793 | high school dxd new
2794 | mega man x4
2795 | itai no wa iya nano de bougyoryoku ni kyokufuri shitai to omoimasu
2796 | orangina
2797 | haou taikei ryuu knight
2798 | shiro seijo to kuro bokushi
2799 | rurouni kenshin
2800 | the legend of zelda: majora's mask
2801 | steel ball run
2802 | baldur's gate
2803 | oshiro project
2804 | nanatsuiro drops
2805 | hamtaro (series)
2806 | osana reimu
2807 | mahoromatic
2808 | mystical power plant
2809 | high school dxd cross
2810 | kangoku senkan
2811 | sasami-san@ganbaranai
2812 | alternative girls
2813 | sdorica
2814 | mario (series)
2815 | mahou shoujo lyrical nanoha vivid
2816 | orenchi no meidosan
2817 | arslan senki
2818 | shin megami tensei
2819 | machikado mazoku
2820 | sora no woto
2821 | star wars: visions
2822 | metal slug
2823 | huniepop
2824 | black souls
2825 | sounan desuka?
2826 | she-ra and the princesses of power
2827 | nijisanji kr
2828 | shy (series)
2829 | canaan (series)
2830 | oomuro-ke
2831 | tsugu (vtuber)
2832 | bakuretsu hunters
2833 | garo (series)
2834 | street fighter iv (series)
2835 | suna no wakusei (vocaloid)
2836 | wacom
2837 | sword art online progressive
2838 | afk arena
2839 | world's end dancehall (vocaloid)
2840 | kamen rider zi-o (series)
2841 | soulworker
2842 | serial experiments lain
2843 | subarashiki kono sekai
2844 | hooters
2845 | fire emblem: shadow dragon
2846 | idolmaster xenoglossia
2847 | counter:side
2848 | hunter x hunter
2849 | breath of fire iii
2850 | gundam suisei no majo
2851 | trigger (company)
2852 | baldur's gate 3
2853 | silent hill 3
2854 | idol corp
2855 | powerpuff girls
2856 | digimon frontier
2857 | princess peach: showtime!
2858 | wagaya no oinari-sama
2859 | brave sword x blaze soul
2860 | kimagure orange road
2861 | yume 2kki
2862 | gekijouban hibike! euphonium
2863 | otonari no tenshi-sama ni itsu no mani ka dame ningen ni sarete ita ken
2864 | snow white
2865 | zootopia
2866 | kagura gumi
2867 | higanbana no saku yoru ni
2868 | aquaplus
2869 | shin megami tensei iii: nocturne
2870 | muv-luv
2871 | sonic frontiers
2872 | boruto: naruto next generations
2873 | hentai kamen
2874 | my little pony
2875 | isekai tensei shite v ni narimashita
2876 | corpse party
2877 | burn the witch
2878 | comic tenma
2879 | magia record: mahou shoujo madoka magica gaiden
2880 | yuyushiki
2881 | detroit: become human
2882 | inari konkon koi iroha.
2883 | kamen rider ryuki (series)
2884 | yakin byoutou
2885 | spy kyoushitsu
2886 | pixiv fate/grand order contest 2
2887 | .live
2888 | outbreak company
2889 | freezing (series)
2890 | eureka seven
2891 | helluva boss
2892 | f-zero
2893 | shironeko project
2894 | seitokai nimo anawa aru!
2895 | kaitou tenshi twin angel
2896 | phantasy star universe
2897 | kashimashi
2898 | project voltage
2899 | boroboro no elf-san o shiawaseni suru kusuri uri-san
2900 | dragon ball (classic)
2901 | precure all stars new stage: mirai no tomodachi
2902 | kyoukaisenjou no horizon
2903 | atelier firis
2904 | amagi brilliant park
2905 | ace combat zero
2906 | the lord of the rings
2907 | overwatch 1
2908 | kino no tabi
2909 | facebook
2910 | etra-chan wa mita!
2911 | kono subarashii sekai ni shukufuku wo!
2912 | getter robo
2913 | kao no nai tsuki
2914 | talkex
2915 | aggressive retsuko
2916 | kamen rider black rx (series)
2917 | kami jigen game neptune v
2918 | j. league
2919 | higurashi no naku koro ni
2920 | duel masters
2921 | macross plus
2922 | gunsmith cats
2923 | pokemon bw2
2924 | coyote ragtime show
2925 | soukyuu no fafner
2926 | aldnoah.zero
2927 | seihou
2928 | phoenix wright: ace attorney - dual destinies
2929 | mary skelter
2930 | summon night 4
2931 | pokemon xy
2932 | dead or alive xtreme
2933 | tolkien's legendarium
2934 | iris black games
2935 | portal 2
2936 | upotte!!
2937 | fate/extella link
2938 | hilda (series)
2939 | to love-ru darkness
2940 | fire emblem fates
2941 | disgaea d2
2942 | kagetsu tooya
2943 | tsukihime
2944 | katanagatari
2945 | age of ishtaria
2946 | mermaid melody pichi pichi pitch
2947 | super mario odyssey
2948 | magnet (vocaloid)
2949 | the great ace attorney
2950 | nagai gojitsudan no nechronica
2951 | eversoul
2952 | demento
2953 | yomawari (series)
2954 | munou na nana
2955 | precure connection puzzlun
2956 | foster's home for imaginary friends
2957 | tensei shitara slime datta ken
2958 | resident evil 1
2959 | invincible (series)
2960 | m.u.g.e.n
2961 | double spoiler
2962 | dosanko gyaru wa namaramenkoi
2963 | rinrinne
2964 | tales of the abyss
2965 | dragon ball super broly
2966 | roshin yuukai (vocaloid)
2967 | the legend of zelda: twilight princess
2968 | hoozuki no reitetsu
2969 | pixiv fantasia fallen kings
2970 | dragonaut
2971 | stardust crusaders
2972 | latale
2973 | kore ga watashi no goshujin-sama
2974 | hugtto! precure
2975 | fire emblem: radiant dawn
2976 | manga time kirara
2977 | mahou shoujo ai
2978 | demon's souls
2979 | kanojo okarishimasu
2980 | looney tunes
2981 | star wars
2982 | reflect (gawr gura)
2983 | ar tonelico ii
2984 | super robot wars 30
2985 | sakura quest
2986 | bijin onna joushi takizawa-san
2987 | the legend of zelda: the wind waker
2988 | doom (2016)
2989 | mahou shoujo madoka magica (anime)
2990 | spice and wolf
2991 | strike witches 1991
2992 | moomin
2993 | tokimeki memorial girl's side 3rd story
2994 | aika (series)
2995 | omori
2996 | alice in wonderland
2997 | warzard
2998 | fruits basket
2999 | hakanai kimi wa moukou wo hajimeru
3000 | final fantasy vii
3001 | tower of god
3002 | ace combat
3003 | pacific (kancolle)
3004 | ojamajo doremi
3005 | your diary
3006 | white album 2
3007 | phantom brave
3008 | sky girls
3009 | my-otome
3010 | mazinger (series)
3011 | vyugen
3012 | arknights
3013 | danganronpa 3 (anime)
3014 | chousoku henkei gyrozetter
3015 | kannagi
3016 | legend of the cryptids
3017 | king's raid
3018 | urara meirochou
3019 | grand theft auto
3020 | kimi ga nozomu eien
3021 | tenchi muyou!
3022 | tales of symphonia
3023 | atelier ryza 1
3024 | dragalia lost
3025 | arcana heart 2
3026 | gad guard
3027 | phoenix wright: ace attorney - trials and tribulations
3028 | gosick
3029 | donkey kong country
3030 | daiteikoku
3031 | octopath traveler
3032 | dragon's crown
3033 | pokemon bw (anime)
3034 | steven universe
3035 | idolish7
3036 | re:creators
3037 | ladies versus butlers!
3038 | ookami-san
3039 | chibi maruko-chan
3040 | da capo ii
3041 | ginga tetsudou 999
3042 | evangelion: 2.0 you can (not) advance
3043 | falkyrie no monshou
3044 | mighty no. 9
3045 | girl's avenue
3046 | love live! superstar!!
3047 | mahoujin guruguru
3048 | fall guys
3049 | aladdin (disney)
3050 | miku symphony (vocaloid)
3051 | kunio-kun series
3052 | suguri
3053 | the king of fighters xiii
3054 | toranoana
3055 | fearless night
3056 | jurassic park
3057 | ace of diamond
3058 | final fantasy xiii-2
3059 | busou shinki
3060 | koisuru asteroid
3061 | comiket 88
3062 | pokemon go
3063 | gegege no kitarou
3064 | kaguya-sama wa kokurasetai ~tensai-tachi no renai zunousen~
3065 | oshioki sweetie
3066 | dungeons and dragons
3067 | starcraft
3068 | kore wa zombie desu ka?
3069 | summer wars
3070 | everlasting summer
3071 | rune factory 3
3072 | my adventures with superman
3073 | tengen toppa gurren lagann
3074 | papico (ice cream)
3075 | warhammer 40k
3076 | kirby: planet robobot
3077 | abenobashi mahou shoutengai
3078 | the coffin of andy and leyley
3079 | iris mysteria!
3080 | hades 1
3081 | suzumiya haruhi no shoushitsu
3082 | drag-on dragoon
3083 | sonic the hedgehog (idw)
3084 | senjou no valkyria (series)
3085 | kampfer
3086 | odin sphere
3087 | cyberpunk 2077
3088 | vrchat
3089 | soukou akki muramasa
3090 | tetsuwan birdy
3091 | crash bandicoot (series)
3092 | atelier totori
3093 | hacka doll
3094 | blazblue
3095 | fate/zero
3096 | vinland saga
3097 | resident evil 6
3098 | kokoro connect
3099 | the owl house
3100 | hoshizora no memoria
3101 | os-tan
3102 | elsword
3103 | dr. slump
3104 | gothic wa mahou otome
3105 | lupinus virtual games
3106 | big hero 6
3107 | danganronpa s: ultimate summer camp
3108 | wuthering waves
3109 | otoca d'or
3110 | hanayamata
3111 | the elder scrolls
3112 | my little pony: equestria girls
3113 | shoujo kageki revue starlight
3114 | dungeon ni deai wo motomeru no wa machigatteiru darou ka
3115 | valkyrie drive
3116 | valorant
3117 | yumekui merry
3118 | svc chaos
3119 | witch craft works
3120 | armored core: for answer
3121 | vividred operation
3122 | pokemon colosseum
3123 | felarya
3124 | touhou danmaku kagura
3125 | ore no kanojo to osananajimi ga shuraba sugiru
3126 | darker than black
3127 | aikatsu! (series)
3128 | boukun habanero
3129 | zannen onna-kanbu black general-san
3130 | onsen musume
3131 | kamisama no you na kimi e
3132 | koha-ace
3133 | tales of symphonia knight of ratatosk
3134 | sentimental graffiti
3135 | meridian project
3136 | mahou shoujo ikusei keikaku unmarked
3137 | shuumatsu no izetta
3138 | honkai: star rail
3139 | smile precure!
3140 | suika game
3141 | hua jianghu zhi bei mo ting
3142 | final fantasy vii advent children
3143 | shijou saikyou no deshi ken'ichi
3144 | miniskirt pirates
3145 | chaos;child
3146 | amano megumi wa suki darake!
3147 | macross frontier
3148 | perfume (band)
3149 | urban legend in limbo
3150 | knight's & magic
3151 | kobeya
3152 | ao no kiseki
3153 | gravity daze
3154 | jojo no kimyou na bouken
3155 | qinshi mingyue
3156 | titanfall (series)
3157 | fire emblem: path of radiance
3158 | working!!
3159 | the lego group
3160 | starbucks
3161 | love live! school idol festival
3162 | sword art online: alicization rising steel
3163 | square enix
3164 | ichigo mashimaro
3165 | air (visual novel)
3166 | lol -lots of laugh- (vocaloid)
3167 | fatal frame
3168 | izayoi no hanayome
3169 | original
3170 | the simpsons
3171 | the terminator
3172 | daibouken! yukeyuke osawari island
3173 | konjiki no gash!!
3174 | mospeada
3175 | luminous witches
3176 | d4dj
3177 | the grim adventures of billy & mandy
3178 | final fantasy iv
3179 | snow fox
3180 | onii-chan wa oshimai!
3181 | heaven burns red
3182 | monsters inc.
3183 | tonari no totoro
3184 | epic seven
3185 | gantz
3186 | fate/unlimited codes
3187 | uchuu senkan yamato
3188 | mortal kombat (series)
3189 | rakudai ninja rantarou
3190 | final fantasy xvi
3191 | catherine (game)
3192 | durarara!!
3193 | star wars: return of the jedi
3194 | shadowverse (anime)
3195 | seto no hanayome
3196 | sazae-san
3197 | boku to koi suru ponkotsu akuma.
3198 | eyeshield 21
3199 | bioshock (series)
3200 | rakuen tsuihou
3201 | kuso zako choroin nishiga hachi
3202 | sengoku saga
3203 | dragon quest
3204 | akemiho tabi nikki
3205 | choujikuu yousai macross
3206 | night wizard
3207 | gensou suikoden iii
3208 | aoi shiro
3209 | love plus
3210 | pokemon horizons
3211 | lonely girl ni sakaraenai
3212 | tropical-rouge! precure
3213 | kuroko no basuke
3214 | sangokushi taisen
3215 | final fantasy xiv
3216 | my-hime
3217 | dragon quest i
3218 | mahou shoujo ikusei keikaku
3219 | super mario 64
3220 | strike witches: kurenai no majo-tachi
3221 | mega man 1
3222 | majo no ie
3223 | shoujo to ura roji
3224 | enjo kouhai
3225 | juuni taisen
3226 | mondaiji-tachi ga isekai kara kuru sou desu yo?
3227 | to heart 2 xrated
3228 | neon genesis evangelion gakuen datenroku
3229 | berry's
3230 | tomo-chan wa onna no ko
3231 | guilty gear xx
3232 | gouketsuji ichizoku
3233 | comic unreal
3234 | street fighter
3235 | machine-doll wa kizutsukanai
3236 | the incredibles
3237 | yu-gi-oh! 5d's
3238 | ouran high school host club
3239 | tales of vesperia
3240 | atelier marie
3241 | eoduun badaui deungbul-i doeeo
3242 | no.6
3243 | animal (vocaloid)
3244 | virtual ant channel
3245 | hisho collection
3246 | arakawa under the bridge
3247 | antinomy of common flowers
3248 | 428
3249 | paripi koumei
3250 | predator (movie)
3251 | nurse witch komugi-chan
3252 | super metroid
3253 | gundam msv
3254 | magical halloween
3255 | pixiv fantasia scepter of zeraldia
3256 | pokemon sm (anime)
3257 | mega man 9
3258 | chuunibyou demo koi ga shitai!
3259 | galhound
3260 | akuma no riddle
3261 | akagi: yami ni oritatta tensai
3262 | juusenki l-gaim
3263 | namco x capcom
3264 | sumaga
3265 | gensou suikoden iv
3266 | juukishi cutie bullet
3267 | red bull
3268 | hayate no gotoku!
3269 | date a live
3270 | ico
3271 | time bokan (series)
3272 | arc the lad
3273 | kobayashi-san chi no maidragon
3274 | yandere simulator
3275 | pretty rhythm aurora dream
3276 | waccha primagi!
3277 | akiba maid sensou
3278 | hololive
3279 | miraculous ladybug
3280 | super mario bros. wonder
3281 | hundred
3282 | idolmaster side-m live on stage!
3283 | char's counterattack - beltorchika's children
3284 | prism ark
3285 | psychic hearts
3286 | hidamari sketch
3287 | shiritsu justice gakuen
3288 | re:lief ~shin'ai naru anata e~
3289 | irotoridori no sekai
3290 | wendy's
3291 | umineko no naku koro ni
3292 | monster hunter rise
3293 | persona 5
3294 | project diva
3295 | melty+
3296 | gundam unicorn
3297 | gyakushuu no fantasica
3298 | 2channel
3299 | greek mythology
3300 | gynoid talk
3301 | idolmaster
3302 | joker (2019)
3303 | nogizaka haruka no himitsu
3304 | peanuts
3305 | shin jigen game neptune vii
3306 | double dealing character
3307 | aku no musume (vocaloid)
3308 | wii fit
3309 | mahou no tenshi creamy mami
3310 | death note
3311 | touhou (pc-98)
3312 | mahou shoujo lyrical nanoha strikers
3313 | phantasy star online
3314 | doukyuusei 2
3315 | live a hero
3316 | final fantasy i
3317 | jewelpet twinkle
3318 | world trigger
3319 | hazbin hotel
3320 | dream hunter rem
3321 | makai senki disgaea 2
3322 | instagram
3323 | bang dream!
3324 | persona 3
3325 | kirby (series)
3326 | girls und panzer
3327 | kotobukiya
3328 | wikipedia
3329 | shining (series)
3330 | mononoke hime
3331 | mihoyo
3332 | chaos;head
3333 | king of prism by prettyrhythm
3334 | sen no kiseki ii
3335 | boku wa tomodachi ga sukunai
3336 | tokimeki memorial
3337 | walkure romanze
3338 | shin godzilla
3339 | armored core 6
3340 | impossible spell card
3341 | lovers (game)
3342 | senki zesshou symphogear
3343 | wild arms 5
3344 | oshiete! galko-chan
3345 | shinmai maou no testament
3346 | vampire (vocaloid)
3347 | mieruko-chan
3348 | path to nowhere
3349 | growlanser
3350 | ace attorney
3351 | magic knight rayearth
3352 | uchi no hime-sama ga ichiban kawaii
3353 | kingdom hearts birth by sleep
3354 | galge.com
3355 | bilibili
3356 | comic lo
3357 | majin tantei nougami neuro
3358 | world is mine (vocaloid)
3359 | gundam 00
3360 | yuusha series
3361 | comic kairakuten
3362 | sound horizon
3363 | kagaminomachi no kaguya
3364 | acfun
3365 | aohada bocchi
3366 | tera online
3367 | shiroi suna no aquatope
3368 | barbie (franchise)
3369 | spider-verse
3370 | persona 4 the golden
3371 | isshuukan friends
3372 | the great ace attorney: adventures
3373 | wonder woman (series)
3374 | youkai watch 2
3375 | irisu shoukougun!
3376 | idolmaster cinderella girls
3377 | ice climber
3378 | god eater burst
3379 | el shaddai
3380 | natsume yuujinchou
3381 | valkyrie profile (series)
3382 | steins;gate 0
3383 | cyberbots
3384 | super robot wars original generation
3385 | dogs: bullets & carnage
3386 | yuusha to maou
3387 | choudenji robo combattler v
3388 | high school dxd
3389 | kanojo x kanojo x kanojo
3390 | kurenai no buta
3391 | sinoalice
3392 | mother (game)
3393 | pripara
3394 | pani poni dash!
3395 | paladins
3396 | makai senki disgaea
3397 | fireball (series)
3398 | warship girls r
3399 | sid story
3400 | honkai (series)
3401 | shin getter robo
3402 | octopath traveler i
3403 | jinki
3404 | komi-san wa komyushou desu
3405 | claymore (series)
3406 | capcom fighting jam
3407 | assault lily
3408 | a channel
3409 | slow start
3410 | yowamushi pedal
3411 | hatsune miku no shoushitsu (vocaloid)
3412 | final fantasy vii remake
3413 | comic kairakuten beast
3414 | final fantasy crystal chronicles
3415 | takopii no genzai
3416 | piapro
3417 | shoujo kageki revue starlight -re live-
3418 | breath of fire iv
3419 | bungou stray dogs
3420 | hanebado!
3421 | caligula (series)
3422 | danganronpa 2: goodbye despair
3423 | saki
3424 | ikkitousen
3425 | dokidoki! precure
3426 | mawaru penguindrum
3427 | twinbox school
3428 | tales of berseria
3429 | metal gear solid 4: guns of the patriots
3430 | tongari boushi no atelier
3431 | star ocean
3432 | langrisser
3433 | mahou tsukai no yome
3434 | mirai nikki
3435 | free!
3436 | minami-ke
3437 | persona
3438 | fate (series)
3439 | gundam age
--------------------------------------------------------------------------------
/tags/quality.txt:
--------------------------------------------------------------------------------
1 | masterpiece
2 | best quality
3 | amazing quality
4 | high quality
5 | great quality
6 | good quality
7 | medium quality
8 | normal quality
9 | bad quality
10 | low quality
11 | worst quality
12 | newest
13 | late
14 | mid
15 | early
16 | oldest
17 | exceptional
18 | best aesthetic
19 | very aesthetic
20 | aesthetic
21 | normal aesthetic
22 | displeasing
23 | bad aesthetic
24 | very displeasing
25 | deleted
26 | waifu
27 | real life
28 | anime
--------------------------------------------------------------------------------
/tests/test_utils.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | sys.path.append(".")
4 |
5 | import re
6 |
7 | from dart.utils import (
8 | get_valid_tag_list,
9 | get_patterns_from_tag_list,
10 | _get_tag_pattern,
11 | escape_webui_special_symbols,
12 | unescape_webui_special_symbols,
13 | )
14 |
15 |
16 | def test_valid_tag_list():
17 | text = "simple background, ,, animal ears, umbrella,"
18 | expected = ["simple background", "animal ears", "umbrella"]
19 |
20 | assert get_valid_tag_list(text) == expected
21 |
22 |
23 | def test_get_tag_pattern():
24 | test_cases: list[tuple[str, re.Pattern, str]] = [
25 | ("1girl", re.compile(r"1girl"), "1girl"),
26 | (
27 | "character (copyright)",
28 | re.compile(r"character \(copyright\)"),
29 | "character (copyright)",
30 | ),
31 | ("* ears", re.compile(r".* ears"), "cat ears"),
32 | ("looking *", re.compile(r"looking .*"), "looking to the side"),
33 | ("* (cosplay)", re.compile(r".* \(cosplay\)"), "hatsune miku (cosplay)"),
34 | ]
35 |
36 | for input, expected, matches in test_cases:
37 | assert expected.match(matches)
38 | assert _get_tag_pattern(input).match(matches)
39 |
40 |
41 | def test_get_patterns_from_tag_list():
42 | test_cases: list[tuple[str, list[re.Pattern], list[str]]] = [
43 | (
44 | "1boy, umbrella,very long hair",
45 | [
46 | re.compile(
47 | r"1boy",
48 | ),
49 | re.compile(
50 | r"umbrella",
51 | ),
52 | re.compile(
53 | r"very long hair",
54 | ),
55 | ],
56 | ["1boy", "umbrella", "very long hair"],
57 | ),
58 | (
59 | "* ears,holding *, animal *",
60 | [
61 | re.compile(
62 | r".* ears",
63 | ),
64 | re.compile(
65 | r"holding .*",
66 | ),
67 | re.compile(
68 | r"animal .*",
69 | ),
70 | ],
71 | ["cat ears", "holding weapon", "animal ears"],
72 | ),
73 | (
74 | "copyright (character), star (sky)",
75 | [
76 | re.compile(
77 | r"copyright \(character\)",
78 | ),
79 | re.compile(
80 | r"star \(sky\)",
81 | ),
82 | ],
83 | ["copyright (character)", "star (sky)"],
84 | ),
85 | ]
86 |
87 | for input, expected, matches in test_cases:
88 | for pattern, target in zip(expected, matches):
89 | assert pattern.match(target)
90 | for pattern, target in zip(
91 | get_patterns_from_tag_list(get_valid_tag_list(input)), matches
92 | ):
93 | assert pattern.match(target)
94 |
95 |
96 | def test_escape_webui_special_symbols():
97 | test_cases: list[tuple[list[str], list[str]]] = [
98 | (["1girl", "solo"], ["1girl", "solo"]),
99 | (
100 | ["star (sky)", "kafka (honkai:star rail)"],
101 | [r"star \(sky\)", r"kafka \(honkai:star rail\)"],
102 | ),
103 | ]
104 | for input, expected in test_cases:
105 | assert escape_webui_special_symbols(input) == expected
106 |
107 |
108 | def test_unescape_webui_special_symbols():
109 | test_cases: list[tuple[list[str], list[str]]] = [
110 | (["1girl", "solo"], ["1girl", "solo"]),
111 | (
112 | [r"star \(sky\)", r"kafka \(honkai:star rail\)"],
113 | ["star (sky)", "kafka (honkai:star rail)"],
114 | ),
115 | ]
116 | for input, expected in test_cases:
117 | assert unescape_webui_special_symbols(input) == expected
118 |
--------------------------------------------------------------------------------