novelai-python 0.3.2__tar.gz → 0.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. {novelai_python-0.3.2 → novelai_python-0.3.3}/PKG-INFO +2 -2
  2. {novelai_python-0.3.2 → novelai_python-0.3.3}/README.md +1 -1
  3. {novelai_python-0.3.2 → novelai_python-0.3.3}/pyproject.toml +1 -1
  4. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/ai/generate_image/__init__.py +1 -1
  5. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/random_prompt/__init__.py +16 -21
  6. novelai_python-0.3.2/src/novelai_python/utils/random_prompt/tag_artist.py +0 -398
  7. {novelai_python-0.3.2 → novelai_python-0.3.3}/LICENSE +0 -0
  8. {novelai_python-0.3.2 → novelai_python-0.3.3}/NOTICE.MD +0 -0
  9. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/__init__.py +0 -0
  10. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_exceptions.py +0 -0
  11. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/__init__.py +0 -0
  12. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/ai/__init__.py +0 -0
  13. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/ai/generate_image.py +0 -0
  14. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/ai/upscale.py +0 -0
  15. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/schema.py +0 -0
  16. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/user/__init__.py +0 -0
  17. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/user/information.py +0 -0
  18. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/user/login.py +0 -0
  19. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/_response/user/subscription.py +0 -0
  20. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/credential/ApiToken.py +0 -0
  21. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/credential/JwtToken.py +0 -0
  22. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/credential/UserAuth.py +0 -0
  23. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/credential/__init__.py +0 -0
  24. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/credential/_base.py +0 -0
  25. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/__init__.py +0 -0
  26. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/ai/LICENSE +0 -0
  27. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/ai/__init__.py +0 -0
  28. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/ai/generate_image/_enum.py +0 -0
  29. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/ai/generate_image/suggest_tags.py +0 -0
  30. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/ai/upscale.py +0 -0
  31. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/schema.py +0 -0
  32. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/user/__init__.py +0 -0
  33. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/user/information.py +0 -0
  34. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/user/login.py +0 -0
  35. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/sdk/user/subscription.py +0 -0
  36. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/server.py +0 -0
  37. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/__init__.py +0 -0
  38. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/encode.py +0 -0
  39. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/hash.py +0 -0
  40. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/random_prompt/tag.py +0 -0
  41. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/random_prompt/tag_character.py +0 -0
  42. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/random_prompt/tag_nsfw.py +0 -0
  43. {novelai_python-0.3.2 → novelai_python-0.3.3}/src/novelai_python/utils/useful.py +0 -0
  44. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/__init__.py +0 -0
  45. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_random_prompt.py +0 -0
  46. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_server.py +0 -0
  47. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_server_run.py +0 -0
  48. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_upscale.py +0 -0
  49. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_user_information.py +0 -0
  50. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_user_login.py +0 -0
  51. {novelai_python-0.3.2 → novelai_python-0.3.3}/tests/test_user_subscription.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: novelai-python
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Novelai Python Binding With Pydantic
5
5
  Author-Email: sudoskys <coldlando@hotmail.com>
6
6
  License: Apache License 2.0
@@ -39,7 +39,7 @@ The goal of this repository is to use Pydantic to build legitimate requests to a
39
39
  - [x] /user/login
40
40
  - [x] /user/information
41
41
  - [x] /ai/upscale
42
- - [ ] /ai/generate-image/suggest-tags
42
+ - [x] /ai/generate-image/suggest-tags
43
43
  - [ ] /ai/annotate-image
44
44
  - [ ] /ai/classify
45
45
  - [ ] /ai/generate-prompt
@@ -12,7 +12,7 @@ The goal of this repository is to use Pydantic to build legitimate requests to a
12
12
  - [x] /user/login
13
13
  - [x] /user/information
14
14
  - [x] /ai/upscale
15
- - [ ] /ai/generate-image/suggest-tags
15
+ - [x] /ai/generate-image/suggest-tags
16
16
  - [ ] /ai/annotate-image
17
17
  - [ ] /ai/classify
18
18
  - [ ] /ai/generate-prompt
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "novelai-python"
3
- version = "0.3.2"
3
+ version = "0.3.3"
4
4
  description = "Novelai Python Binding With Pydantic"
5
5
  authors = [
6
6
  { name = "sudoskys", email = "coldlando@hotmail.com" },
@@ -236,7 +236,7 @@ class GenerateImageInfer(ApiBaseModel):
236
236
  seed: int = None,
237
237
  steps: int = 28,
238
238
  scale: float = 6.0,
239
- cfg_rescale: int = 0,
239
+ cfg_rescale: float = 0,
240
240
  sampler: Union[Sampler, str] = Sampler.K_EULER,
241
241
  width: int = 832,
242
242
  height: int = 1216,
@@ -13,7 +13,6 @@ from .tag import (
13
13
  socks,
14
14
  action, expression, footwears, bottoms, color as colors
15
15
  )
16
- from .tag_artist import rankArtist
17
16
  from .tag_character import rankMoods, rankCharacter, rankIdentity
18
17
  from .tag_nsfw import nsfw
19
18
 
@@ -30,9 +29,11 @@ class RandomPromptGenerator(object):
30
29
  :param existing_tags: a list of existing tags
31
30
  :return: a tag
32
31
  """
33
- valid_tags = [tag
34
- for tag in tags
35
- if len(tag) < 3 or not tag[2] or any(sub_tag in existing_tags for sub_tag in tag[2])]
32
+ valid_tags = [
33
+ tag
34
+ for tag in tags
35
+ if len(tag) < 3 or not tag[2] or any(sub_tag in existing_tags for sub_tag in tag[2])
36
+ ]
36
37
  total_weight = sum(tagr[1] for tagr in valid_tags if len(tagr) > 1)
37
38
  if total_weight == 0:
38
39
  if isinstance(tags, list):
@@ -70,7 +71,7 @@ class RandomPromptGenerator(object):
70
71
  has_unique_feature = any(feature in features for feature in unique_features)
71
72
  if random.random() < 0.1 and enable_skin_color:
72
73
  features.append(self.get_weighted_choice(sinkColor, features))
73
- if random.random() < 0.8:
74
+ if random.random() < 0.7:
74
75
  features.append(self.get_weighted_choice(eyeColors, features))
75
76
  if random.random() < 0.1:
76
77
  features.append(self.get_weighted_choice(eyeCharacteristics, features))
@@ -230,12 +231,6 @@ class RandomPromptGenerator(object):
230
231
  return ', '.join(tags)
231
232
  if random.random() < 0.3:
232
233
  tags.append(self.get_weighted_choice(artStyle, tags))
233
- if random.random() < 0.6:
234
- tags.append("{" + self.get_weighted_choice(rankArtist, tags) + "}")
235
- if random.random() < 0.5:
236
- tags.append("[" + self.get_weighted_choice(rankArtist, tags) + "]")
237
- if random.random() < 0.4:
238
- tags.append("{{" + self.get_weighted_choice(rankArtist, tags) + "}}")
239
234
  c_count = 0
240
235
  d_count = 0
241
236
  u_count = 0
@@ -286,23 +281,23 @@ class RandomPromptGenerator(object):
286
281
  features = []
287
282
  if random.random() < 0.2:
288
283
  features = self.character_features(nsfw['fu'], None, True, irs)
289
- if random.random() < 0.6:
284
+ if random.random() < 0.3:
290
285
  tags.append(self.get_weighted_choice(nsfw["sex"], tags))
291
- if random.random() < 0.6:
286
+ if random.random() < 0.5:
292
287
  tags.append(self.get_weighted_choice(nsfw["pussy"], tags))
293
- if random.random() < 0.6:
288
+ if random.random() < 0.3:
294
289
  tags.append(self.get_weighted_choice(nsfw["sexMod"], tags))
295
- if random.random() < 0.6:
290
+ if random.random() < 0.5:
296
291
  tags.append(self.get_weighted_choice(nsfw["sexActionMode"], tags))
297
- if random.random() < 0.2:
292
+ if random.random() < 0.1:
298
293
  tags.append(self.get_weighted_choice(nsfw["bdsm"], tags))
299
- if random.random() < 0.3:
294
+ if random.random() < 0.2:
300
295
  tags.append(self.get_weighted_choice(nsfw["sexAccessories"], tags))
301
296
  tags.extend(features)
302
- if random.random() < 0.65 and enable_moods:
297
+ if random.random() < 0.4 and enable_moods:
303
298
  # 心情
304
299
  tags.append("[" + self.get_weighted_choice(rankMoods, tags) + "]")
305
- if random.random() < 0.5 and enable_identity:
300
+ if random.random() < 0.4 and enable_identity:
306
301
  # 身份
307
302
  tags.append("[" + self.get_weighted_choice(rankIdentity, tags) + "]")
308
303
  if random.random() < 0.2 and enable_character:
@@ -315,9 +310,9 @@ class RandomPromptGenerator(object):
315
310
  num_objects = random.randint(1, 3)
316
311
  for _ in range(num_objects):
317
312
  tags.append(self.get_weighted_choice(backgroundObjects, tags))
318
- if random.random() < 0.3:
313
+ if random.random() < 0.1:
319
314
  tags.append(self.get_weighted_choice(cameraPerspective, tags))
320
- if random.random() < 0.7:
315
+ if random.random() < 0.5:
321
316
  tags.append(self.get_weighted_choice(cameraAngle, tags))
322
317
  for _ in range(c_count):
323
318
  if random.random() < 0.2:
@@ -1,398 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # @Time : 2024/1/26 下午5:08
3
- # @Author : sudoskys
4
- # @File : tag_artist.py
5
- # @Software: PyCharm
6
-
7
- rankArtist = [
8
- [
9
- "redi_(rasec_asdjh)",
10
- 50
11
- ],
12
- [
13
- "suoiresnu",
14
- 41
15
- ],
16
- [
17
- "kulo_jawa",
18
- 30
19
- ],
20
- [
21
- "sakanaya_(sakanaya952)",
22
- 25
23
- ],
24
- [
25
- "momisan",
26
- 20
27
- ],
28
- [
29
- "tansuan_(ensj3875)",
30
- 19
31
- ],
32
- [
33
- "hitmanatee",
34
- 18
35
- ],
36
- [
37
- "yoru0409",
38
- 18
39
- ],
40
- [
41
- "zovokia",
42
- 14
43
- ],
44
- [
45
- "memeh",
46
- 13
47
- ],
48
- [
49
- "honashi",
50
- 13
51
- ],
52
- [
53
- "pinkmill",
54
- 13
55
- ],
56
- [
57
- "kanjy00u",
58
- 12
59
- ],
60
- [
61
- "eckert&eich",
62
- 12
63
- ],
64
- [
65
- "ningen mame",
66
- 100
67
- ],
68
- [
69
- "ciloranko",
70
- 100
71
- ],
72
- [
73
- "sho (sho lwlw)",
74
- 80
75
- ],
76
- [
77
- "tianliang duohe fangdongye",
78
- 100
79
- ],
80
- [
81
- "alphonse (white datura)",
82
- 80
83
- ],
84
- [
85
- "rei (sanbonzakura)",
86
- 100
87
- ],
88
- [
89
- "mamyouda",
90
- 80
91
- ],
92
- [
93
- "ogipote",
94
- 100
95
- ],
96
- [
97
- "fuzichoco",
98
- 100
99
- ],
100
- [
101
- "norza",
102
- 80
103
- ],
104
- [
105
- "AkiZero1510",
106
- 100
107
- ],
108
- [
109
- "ATDAN",
110
- 100
111
- ],
112
- [
113
- "mignon",
114
- 80
115
- ],
116
- [
117
- "shexyo",
118
- 100
119
- ],
120
- [
121
- "musashi (dishwasher1910)",
122
- 100
123
- ],
124
- [
125
- "modare",
126
- 80
127
- ],
128
- [
129
- "asteroidill",
130
- 80
131
- ],
132
- [
133
- "potg(piotegu)",
134
- 80
135
- ],
136
- [
137
- "kedama milk",
138
- 100
139
- ],
140
- [
141
- "jun (aousa0328)",
142
- 80
143
- ],
144
- [
145
- "sky freedom",
146
- 80
147
- ],
148
- [
149
- "ask (askzy)",
150
- 100
151
- ],
152
- [
153
- "toridamono",
154
- 100
155
- ],
156
- [
157
- "sencha (senchat)",
158
- 80
159
- ],
160
- [
161
- "void_0",
162
- 80
163
- ],
164
- [
165
- "mandrill",
166
- 100
167
- ],
168
- [
169
- "tokkyu",
170
- 100
171
- ],
172
- [
173
- "houkisei",
174
- 80
175
- ],
176
- [
177
- "konya karasue",
178
- 100
179
- ],
180
- [
181
- "akakura",
182
- 100
183
- ],
184
- [
185
- "kawacy",
186
- 100
187
- ],
188
- [
189
- "reoen",
190
- 100
191
- ],
192
- [
193
- "nixeu",
194
- 100
195
- ],
196
- [
197
- "cierra_(ra-bit)",
198
- 100
199
- ],
200
- [
201
- "artistask_(askzy)",
202
- 100
203
- ],
204
- [
205
- "gomzi",
206
- 100
207
- ],
208
- [
209
- "you_shimizu",
210
- 100
211
- ],
212
- [
213
- "demizu_posuka",
214
- 100
215
- ],
216
- [
217
- "asakuraf",
218
- 100
219
- ],
220
- [
221
- "ningen_mame",
222
- 100
223
- ],
224
- [
225
- "sho_(sho_lwlw)",
226
- 100
227
- ],
228
- [
229
- "alphonse_(white_datura)",
230
- 100
231
- ],
232
- [
233
- "rei_(sanbonzakura)",
234
- 100
235
- ],
236
- [
237
- "wlop",
238
- 100
239
- ],
240
- [
241
- "as109",
242
- 100
243
- ],
244
- [
245
- "Milkychu",
246
- 100
247
- ],
248
- [
249
- "Cogecha",
250
- 100
251
- ],
252
- [
253
- "liduke",
254
- 100
255
- ],
256
- [
257
- "infukun",
258
- 100
259
- ],
260
- [
261
- "amazuyu_tatsuki",
262
- 100
263
- ],
264
- [
265
- "Happ\u014dbi Jin",
266
- 100
267
- ],
268
- [
269
- "Rella",
270
- 100
271
- ],
272
- [
273
- "omone hokoma agm",
274
- 100
275
- ],
276
- [
277
- "toosaka asagi",
278
- 100
279
- ],
280
- [
281
- "Mochizuki Kei",
282
- 100
283
- ],
284
- [
285
- "Namie",
286
- 100
287
- ],
288
- [
289
- "Hoji",
290
- 100
291
- ],
292
- [
293
- "sy4",
294
- 100
295
- ],
296
- [
297
- "mika_pikazo",
298
- 100
299
- ],
300
- [
301
- "momoko(momopoco)",
302
- 100
303
- ],
304
- [
305
- "rurudo",
306
- 100
307
- ],
308
- [
309
- "missile228",
310
- 100
311
- ],
312
- [
313
- "miyase_mahiro",
314
- 100
315
- ],
316
- [
317
- "touzai(poppin phl95)",
318
- 100
319
- ],
320
- [
321
- "kukka",
322
- 100
323
- ],
324
- [
325
- "kantoku",
326
- 100
327
- ],
328
- [
329
- "poco(asahi age)",
330
- 100
331
- ],
332
- [
333
- "refeia",
334
- 100
335
- ],
336
- [
337
- "ke-ta",
338
- 100
339
- ],
340
- [
341
- "anmi",
342
- 100
343
- ],
344
- [
345
- "tiv",
346
- 100
347
- ],
348
- [
349
- "chen_bin",
350
- 100
351
- ],
352
- [
353
- "lm7 (op-center)",
354
- 100
355
- ],
356
- [
357
- "shion (mirudakemann)",
358
- 100
359
- ],
360
- [
361
- "asteroid ill",
362
- 100
363
- ],
364
- [
365
- "potg (piotegu)",
366
- 100
367
- ],
368
- [
369
- "KinHasu",
370
- 100
371
- ],
372
- [
373
- "ryou_(ryoutarou)",
374
- 100
375
- ],
376
- [
377
- "mamimi_(mamamimi)",
378
- 100
379
- ],
380
- ]
381
-
382
- if __name__ == "__main__":
383
- var = vars().copy()
384
-
385
- # 获取tags列表
386
- tags = []
387
- for key, value in var.items():
388
- if not key.startswith('_') and key != 'var':
389
- tags.extend(value)
390
- print(tags)
391
-
392
- # 展开二级列表
393
- tags = [tag[0] for tag in tags]
394
- print(tags)
395
- import json
396
-
397
- with open('../../../../playground/cos/tag_artist.json', 'w') as f:
398
- json.dump(tags, f)
File without changes
File without changes