File size: 2,187 Bytes
5fc7fe6
 
 
 
 
 
 
 
 
 
2137684
5fc7fe6
 
8951018
5fc7fe6
 
 
 
 
0a36afb
 
5fc7fe6
 
0a36afb
5fc7fe6
 
 
6d6b0b2
5fc7fe6
 
 
 
2137684
5fc7fe6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2dc0cea
5fc7fe6
a0890cb
5fc7fe6
 
 
 
 
 
 
 
 
2dc0cea
 
5fc7fe6
 
 
 
 
 
 
 
 
 
 
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
70
71
72
73
74
75
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)

def get_client_ip():
    return request.headers.get(os.getenv('head'), get_remote_address())

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


users = 0
userslist = []

@app.route("/")
def index():
    global users 
    global userslist
    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("8 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')
    hash = request.json.get('hash', 'Cinematic')
    def Gen(prompt,negative,steps,width,height,scale,style,model):
        req = requests.post('https://xyplon-flask.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, 
            'hash': hash
        }, 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)