|
import streamlit as st |
|
import requests |
|
import io |
|
from PIL import Image |
|
import os |
|
|
|
|
|
API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev" |
|
headers = {"Authorization": f"Bearer {os.getenv('HF')}"} |
|
|
|
|
|
def query(payload): |
|
response = requests.post(API_URL, headers=headers, json=payload) |
|
return response.content |
|
|
|
|
|
st.title("AI Image Generator π¨π") |
|
st.write("Enter a prompt below and generate an AI-generated image using Hugging Face!") |
|
|
|
|
|
prompt = st.text_input("Enter your prompt:", "Astronaut riding a horse") |
|
|
|
if st.button("Generate Image"): |
|
if prompt: |
|
st.write("Generating image... Please wait β³") |
|
image_bytes = query({"inputs": prompt}) |
|
|
|
|
|
image = Image.open(io.BytesIO(image_bytes)) |
|
st.image(image, caption="Generated Image", use_container_width=True) |
|
|
|
|
|
img_buffer = io.BytesIO() |
|
image.save(img_buffer, format="PNG") |
|
img_buffer.seek(0) |
|
|
|
|
|
st.download_button( |
|
label="Download Image π₯", |
|
data=img_buffer, |
|
file_name="generated_image.png", |
|
mime="image/png" |
|
) |
|
else: |
|
st.warning("Please enter a prompt before generating an image.") |
|
|
|
|
|
st.write("---") |
|
st.write("Powered by [Hugging Face](https://huggingface.co/) π") |
|
|