Spaces:
Running
Running
from flask import Flask, Response, request | |
import os, urllib.parse, requests | |
app = Flask(__name__) | |
# Get URL template from env (set in HF secrets) | |
URL_TEMPLATE = os.environ.get("FLUX") | |
if not URL_TEMPLATE: | |
raise RuntimeError("Missing FLUX env variable") | |
def generate_image(): | |
# Default parameters | |
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") | |
# Sanitize prompt | |
encoded_prompt = urllib.parse.quote(prompt) | |
# Fill in URL | |
url = ( | |
URL_TEMPLATE | |
.replace("[prompt]", encoded_prompt) | |
.replace("[w]", width) | |
.replace("[h]", height) | |
.replace("[seed]", seed) | |
) | |
# Request image | |
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) | |
# Serve image | |
return Response(response.content, content_type=response.headers.get("Content-Type")) |