predator commited on
Commit
95e8941
·
verified ·
1 Parent(s): 844e14b

Upload app (1).py

Browse files
Files changed (1) hide show
  1. app (1).py +75 -0
app (1).py ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template,request,jsonify,Response
2
+ import os
3
+ import json
4
+ from flask_cors import CORS
5
+ import time
6
+ from flask_limiter import Limiter
7
+ from flask_limiter.util import get_remote_address
8
+ import requests
9
+ app = Flask(__name__)
10
+ CORS(app)
11
+
12
+ def get_client_ip():
13
+ return request.headers.get(os.getenv('head'), get_remote_address())
14
+
15
+ limiter = Limiter(
16
+ key_func=get_client_ip,
17
+ app=app,
18
+ default_limits=["20 per minute"]
19
+ )
20
+
21
+
22
+ users = 0
23
+ userslist = []
24
+
25
+ @app.route("/")
26
+ def index():
27
+ global users
28
+ global userslist
29
+ if(request.remote_addr not in userslist):
30
+ userslist.append(request.remote_addr)
31
+ users = len(userslist)
32
+ return render_template('models.html')
33
+
34
+
35
+ @app.route("/users")
36
+ def users():
37
+ return {"total users : " : users}
38
+
39
+ @app.route('/gen', methods=['POST'])
40
+ @limiter.limit("8 per minute")
41
+ def Hf():
42
+
43
+ prompt = request.json.get('prompt', '')
44
+ negative = request.json.get('negative', '')
45
+ steps = request.json.get('steps', 20)
46
+ width = request.json.get('width',1024)
47
+ height = request.json.get('height',1024)
48
+ scale = request.json.get('scale',7)
49
+ model = request.json.get('model','sd3')
50
+ style = request.json.get('style', 'No')
51
+ shash = request.json.get('hash', 'No')
52
+ def Gen(prompt,negative,steps,width,height,scale,style,model):
53
+ req = requests.post('https://catmrf-realvis-sdxl.hf.space/hf/img/gen',headers={
54
+ 'Authorization' : os.getenv('auth')
55
+ },json={
56
+ 'prompt': prompt,
57
+ 'negative': negative,
58
+ 'steps': steps,
59
+ 'width': width,
60
+ 'height': height,
61
+ 'scale': scale,
62
+ 'model' : model,
63
+ 'style': style,
64
+ 'hash': shash
65
+ }, stream=True)
66
+ if(req.status_code!=200):
67
+ return "an error occurred! ", 500
68
+ for chunk in req.iter_lines():
69
+ yield f'{chunk.decode()}\n'
70
+
71
+ return Response(Gen(prompt=prompt,negative=negative,steps=steps,width=width,height=height,scale=scale,style=style,model=model), mimetype="text/event-stream")
72
+
73
+
74
+ if __name__ == "__main__":
75
+ app.run(debug=True, host='0.0.0.0', port=7860)