File size: 2,018 Bytes
2137684
 
 
 
 
 
 
 
 
 
 
 
 
 
b2a6cfa
2137684
0a36afb
 
 
 
 
2137684
 
0a36afb
 
 
 
2137684
 
0a36afb
 
 
 
567194a
2137684
85f1ea1
2137684
567194a
2137684
 
 
 
 
 
 
 
 
39e49b4
2137684
 
 
 
 
 
 
 
 
 
c8ceda2
a84f943
fec3b39
2137684
67c10d2
567194a
2137684
 
 
 
c8ceda2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from flask import Flask, render_template,request,jsonify,Response  
import os
import json
from flask_cors import CORS
import time
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
import requests
app = Flask(__name__)
CORS(app)

limiter = Limiter(
    key_func=get_remote_address,
    app=app,
    default_limits=["8 per minute"]
)


users = 0
userslist = []

@app.route("/")
def index():
    global users 
    if(request.remote_addr not in userslist):
        userslist.append(request.remote_addr)
    users = len(userslist)
    return render_template('models.html')

    
@app.route("/users")
def users():
    return {"total users : " : users}

@app.route('/gen', methods=['POST'])
@limiter.limit("4 per minute")
def Hf():
    
    prompt = request.json.get('prompt', '')
    negative = request.json.get('negative', '')
    steps = request.json.get('steps', 20)
    width = request.json.get('width',1024)
    height = request.json.get('height',1024)
    scale = request.json.get('scale',7)
    model = request.json.get('model','sd3')
    style = request.json.get('style', 'Cinematic')
    def Gen(prompt,negative,steps,width,height,scale,style,model):
        req = requests.post('https://xyplon-server1.hf.space/hf/img/gen',headers={
            'Authorization' : os.getenv('auth')
        },json={
            'prompt': prompt,
            'negative': negative,
            'steps': steps,
            'width': width,
            'height': height,
            'scale': scale,
            'model' : model,
            'style': style
        }, stream=True)
        if(req.status_code!=200):
            return "an error occurred! ", 500
        for chunk in req.iter_lines():
            yield f'{chunk.decode()}\n'
        
    return Response(Gen(prompt=prompt,negative=negative,steps=steps,width=width,height=height,scale=scale,style=style,model=model), mimetype="text/event-stream")


if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0', port=7860, threaded=True)