svjack commited on
Commit
b7181fa
Β·
1 Parent(s): 064daf1

Create Lex.py

Browse files
Files changed (1) hide show
  1. Lex.py +50 -0
Lex.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import httpx
2
+ import random
3
+ import string
4
+ import uuid
5
+ import re
6
+
7
+ class Lexica:
8
+ def __init__(self, query, negativePrompt="", guidanceScale: int = 7, portrait: bool = True, cookie=None):
9
+ self.query = query
10
+ self.negativePrompt = negativePrompt
11
+ self.guidanceScale = guidanceScale
12
+ self.portrait = portrait
13
+ self.cookie = cookie
14
+
15
+ def images(self):
16
+ response = httpx.post("https://lexica.art/api/infinite-prompts", json={
17
+ "text": self.query,
18
+ "searchMode": "images",
19
+ "source": "search",
20
+ "model": "lexica-aperture-v2"
21
+ })
22
+
23
+ prompts = [f"https://image.lexica.art/full_jpg/{ids['id']}" for ids in response.json()["images"]]
24
+
25
+ return prompts
26
+
27
+ def _generate_random_string(self, length):
28
+ chars = string.ascii_letters + string.digits
29
+ result_str = ''.join(random.choice(chars) for _ in range(length))
30
+
31
+ return result_str
32
+
33
+ def generate(self):
34
+ response = httpx.post("https://z.lexica.art/api/generator", headers={
35
+ "cookie": self.cookie
36
+ }, json={
37
+ "requestId": str(uuid.uuid4()),
38
+ "id": self._generate_random_string(20),
39
+ "prompt": self.query,
40
+ "negativePrompt": self.negativePrompt,
41
+ "guidanceScale": self.guidanceScale,
42
+ "width": 512 if self.portrait else 768,
43
+ "height": 768 if self.portrait else 512,
44
+ "enableHiresFix": False,
45
+ "model": "lexica-aperture-v2",
46
+ "generateSources": []
47
+ }, timeout=50
48
+ )
49
+
50
+ return [f"https://image.lexica.art/full_jpg/{ids['id']}" for ids in response.json()["images"]]