|
from flask import Flask, Response, request |
|
import os, urllib.parse, requests |
|
|
|
app = Flask(__name__) |
|
|
|
|
|
URL_TEMPLATE = os.environ.get("FLUX") |
|
if not URL_TEMPLATE: |
|
raise RuntimeError("Missing FLUX env variable") |
|
|
|
@app.route("/", methods=["GET"]) |
|
def generate_image(): |
|
|
|
prompt = request.args.get("prompt", "a plain simple glowing board with the word 'OptimFLUX'") |
|
width = request.args.get("width", "1024") |
|
height = request.args.get("height", "1024") |
|
seed = request.args.get("seed", "0") |
|
|
|
|
|
encoded_prompt = urllib.parse.quote(prompt) |
|
|
|
|
|
url = ( |
|
URL_TEMPLATE |
|
.replace("[prompt]", encoded_prompt) |
|
.replace("[w]", width) |
|
.replace("[h]", height) |
|
.replace("[seed]", seed) |
|
) |
|
|
|
|
|
response = requests.get(url, stream=True) |
|
if response.status_code != 200: |
|
return Response(f"Failed to fetch image. Upstream status: {response.status_code}", status=502) |
|
|
|
|
|
return Response(response.content, content_type=response.headers.get("Content-Type")) |