-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapplication.py
More file actions
51 lines (42 loc) · 1.87 KB
/
application.py
File metadata and controls
51 lines (42 loc) · 1.87 KB
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
from flask import Flask, render_template, url_for, flash, redirect, request#, session, Response, send_file
from src.forms import SearchForm
from src.sticker_generation import generate_stable_diffusion_sticker, engineer_prompt, generate_dummy_sticker, generate_dalle_sticker, generate_deepai_sticker, generate_dalle_variations
import requests
application = Flask(__name__)
application.config['SECRET_KEY'] = '7a3140fad78d44bd'
image_urls = []
@application.route("/", methods=['GET', 'POST'])
def home():
form = SearchForm()
if form.validate_on_submit():
query = request.form['query']
cutout = request.form['cutout']
style = request.form['style']
model = 'DALL-E' if (style in ['DALL-E', 'Mono']) else 'default'
final_query = engineer_prompt(query, cutout, style)
return redirect(url_for('search', query=final_query, model=model))
return render_template('home.html', form=form)
@application.route("/search/<query>/<model>", methods=['GET', 'POST'])
def search(query, model):
global image_urls
if request.method == 'GET':
if not query.strip():
raise Exception("Cannot search based on an empty query")
if model == 'default':
image_urls = generate_stable_diffusion_sticker(query)
else:
image_urls = generate_dalle_sticker(query)
return render_template('search.html', query=query, image_urls=image_urls, model=model)
elif request.method == 'POST':
# Get the image from form
url = request.form.get('url')
print(url)
files = request.files
image = files.get('image').read()
image_url = generate_dalle_variations(image)
# image_url = url
print(image_url)
return image_url
# return render_template('search.html', query=query, image_urls=image_urls)
if __name__ == '__main__':
application.run(debug=True)