xpvwklvjp commited on
Commit
5a0ae3d
·
verified ·
1 Parent(s): 8a14aae

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -0
app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import time
3
+ import logging
4
+
5
+ # Set up logging
6
+ logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
7
+ logger = logging.getLogger(__name__)
8
+
9
+ def load_model(model_path):
10
+ logger.info(f"Attempting to load model from {model_path}...")
11
+ try:
12
+ demo = gr.load(model_path)
13
+ logger.info(f"Successfully loaded demo from {model_path}.")
14
+ return demo
15
+ except Exception as e:
16
+ logger.error(f"Failed to load demo from {model_path}: {e}")
17
+ return None
18
+
19
+ # Load the demo
20
+ demo = load_model("models/votepurchase/NSFW-gen-v2")
21
+
22
+ def generate_image(prompt, max_retries=5):
23
+ # if demo is None:
24
+ # return None, "Error: Demo failed to load."
25
+
26
+ for attempt in range(max_retries):
27
+ try:
28
+ logger.info(f"Attempt {attempt + 1}: Starting image generation with prompt: {prompt}")
29
+ start_time = time.time()
30
+ result = demo(prompt)
31
+ generation_time = time.time() - start_time
32
+ logger.info(f"Generation completed in {generation_time:.2f} seconds")
33
+ return result, f"Image generated successfully\nGeneration time: {generation_time:.2f} seconds"
34
+ except Exception as e:
35
+ logger.error(f"Error on attempt {attempt + 1}: {str(e)}")
36
+ if attempt < max_retries - 1:
37
+ logger.info(f"Retrying... ({attempt + 2}/{max_retries})")
38
+ else:
39
+ logger.error("Max retries reached. Giving up.")
40
+ return None, f"Failed to generate image after {max_retries} attempts. Last error: {str(e)}"
41
+
42
+ # This line should never be reached, but just in case:
43
+ return None, "Unexpected error occurred"
44
+
45
+ iface = gr.Interface(
46
+ fn=generate_image,
47
+ inputs=gr.Textbox(label="Enter your prompt"),
48
+ outputs=[
49
+ gr.Image(label="Generated Image"),
50
+ gr.Textbox(label="Output Information", lines=5)
51
+ ],
52
+ title="Text-to-Image Generation",
53
+ description="Enter a prompt to generate an image. The system will automatically retry up to 5 times if an error occurs."
54
+ )
55
+
56
+ logger.info("Launching the Gradio interface...")
57
+ iface.launch()