adi / app.py
gaur3009's picture
Update app.py
cd1abd1 verified
raw
history blame
2.81 kB
import gradio as gr
import requests
import os
from PIL import Image
from io import BytesIO
from tqdm import tqdm
import time
# Load token from .env if available
token = os.environ["HF_TOKEN"] # Place your token in a .env file or set it in the environment
# Define repository and trigger
repo = "artificialguybr/TshirtDesignRedmond-V2"
trigger_word = "T shirt design, TshirtDesignAF, "
def generate_image(prompt):
print("Generating image with prompt:", prompt)
api_url = f"https://api-inference.huggingface.co/models/{repo}"
headers = {
"Authorization": f"Bearer {token}"
}
full_prompt = f"{prompt} {trigger_word}"
payload = {
"inputs": full_prompt,
"parameters": {
"negative_prompt": "(worst quality, low quality, normal quality, lowres, low details, oversaturated, undersaturated, overexposed, underexposed, grayscale, bw, bad photo, bad photography, bad art:1.4), (watermark, signature, text font, username, error, logo, words, letters, digits, autograph, trademark, name:1.2), (blur, blurry, grainy), morbid, ugly, asymmetrical, mutated malformed, mutilated, poorly lit, bad shadow, draft, cropped, out of frame, cut off, censored, jpeg artifacts, out of focus, glitch, duplicate, (airbrushed, cartoon, anime, semi-realistic, cgi, render, blender, digital art, manga, amateur:1.3), (3D ,3D Game, 3D Game Scene, 3D Character:1.1), (bad hands, bad anatomy, bad body, bad face, bad teeth, bad arms, bad legs, deformities:1.3)",
"num_inference_steps": 30,
"scheduler": "DPMSolverMultistepScheduler"
},
}
error_count = 0
pbar = tqdm(total=None, desc="Loading model")
while True:
print("Sending request to API...")
response = requests.post(api_url, headers=headers, json=payload)
print("API response status code:", response.status_code)
if response.status_code == 200:
print("Image generation successful!")
return Image.open(BytesIO(response.content))
elif response.status_code == 503:
time.sleep(1)
pbar.update(1)
elif response.status_code == 500 and error_count < 5:
time.sleep(1)
error_count += 1
else:
print("API Error:", response.status_code)
raise Exception(f"API Error: {response.status_code}")
iface = gr.Interface(
fn=generate_image,
inputs=gr.Textbox(lines=2, placeholder="Type your prompt here..."),
outputs="image",
title="TShirt Design XL Image Generator",
description="Powered by Redmond.AI — This fine-tuned SDXL model generates T-shirt designs from prompts. Trigger tags: 'T shirt design, TshirtDesignAF'.",
examples=[["Cute Panda"], ["Skull"]]
)
print("Launching Gradio interface...")
iface.launch()