xpvwklvjp commited on
Commit
b4aa0ee
·
verified ·
1 Parent(s): b3cea46

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -53
app.py CHANGED
@@ -1,8 +1,6 @@
1
  import gradio as gr
2
  import time
3
  import logging
4
- import os
5
- from PIL import Image
6
 
7
  # Set up logging
8
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
@@ -11,18 +9,17 @@ logger = logging.getLogger(__name__)
11
  def load_model(model_path):
12
  logger.info(f"Attempting to load model from {model_path}...")
13
  try:
14
- if os.path.exists(model_path):
15
- demo = gr.load(model_path)
16
- logger.info(f"Successfully loaded demo from {model_path}.")
17
- return demo
18
- else:
19
- raise FileNotFoundError(f"Model file does not exist at {model_path}")
20
  except Exception as e:
21
  logger.error(f"Failed to load demo from {model_path}: {e}")
22
  return None
23
 
24
- def generate_image(prompt, model_path, max_retries=5):
25
- demo = load_model(model_path)
 
 
26
  if demo is None:
27
  return None, "Error: Demo failed to load."
28
 
@@ -33,6 +30,7 @@ def generate_image(prompt, model_path, max_retries=5):
33
  result = demo(prompt)
34
  generation_time = time.time() - start_time
35
  logger.info(f"Generation completed in {generation_time:.2f} seconds")
 
36
  return result, f"Image generated successfully\nGeneration time: {generation_time:.2f} seconds"
37
  except Exception as e:
38
  logger.error(f"Error on attempt {attempt + 1}: {str(e)}")
@@ -41,50 +39,20 @@ def generate_image(prompt, model_path, max_retries=5):
41
  else:
42
  logger.error("Max retries reached. Giving up.")
43
  return None, f"Failed to generate image after {max_retries} attempts. Last error: {str(e)}"
44
-
 
45
  return None, "Unexpected error occurred"
46
 
47
- def load_image_from_file(file_path):
48
- try:
49
- if os.path.exists(file_path):
50
- logger.info(f"Loading image from {file_path}")
51
- return Image.open(file_path), "Image loaded successfully"
52
- else:
53
- return None, "Error: File does not exist"
54
- except Exception as e:
55
- logger.error(f"Failed to load image from {file_path}: {e}")
56
- return None, f"Error loading image: {e}"
57
-
58
- # Define the Gradio interface
59
- with gr.Blocks() as demo:
60
- with gr.Row():
61
- # Left side: prompt-based image generation
62
- with gr.Column():
63
- prompt = gr.Textbox(label="Enter your prompt", lines=2)
64
- model_path = gr.FileExplorer(label="Select Model Directory")
65
- generate_btn = gr.Button("Generate Image")
66
- generated_image = gr.Image(label="Generated Image")
67
- output_info = gr.Textbox(label="Output Information", lines=5)
68
-
69
- # Right side: file loading
70
- with gr.Column():
71
- image_path = gr.FileExplorer(label="Select Image File")
72
- load_image_btn = gr.Button("Load Image")
73
- loaded_image = gr.Image(label="Loaded Image")
74
-
75
- # Logic for generating images
76
- generate_btn.click(
77
- fn=generate_image,
78
- inputs=[prompt, model_path],
79
- outputs=[generated_image, output_info]
80
- )
81
-
82
- # Logic for loading images from the file system
83
- load_image_btn.click(
84
- fn=load_image_from_file,
85
- inputs=[image_path],
86
- outputs=[loaded_image, output_info]
87
- )
88
 
89
  logger.info("Launching the Gradio interface...")
90
- demo.launch()
 
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')
 
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/John6666/lustify-sdxl-nsfwsfw-v2-sdxl")
21
+
22
+ def generate_image(prompt, max_retries=5):
23
  if demo is None:
24
  return None, "Error: Demo failed to load."
25
 
 
30
  result = demo(prompt)
31
  generation_time = time.time() - start_time
32
  logger.info(f"Generation completed in {generation_time:.2f} seconds")
33
+ logger.info(result)
34
  return result, f"Image generated successfully\nGeneration time: {generation_time:.2f} seconds"
35
  except Exception as e:
36
  logger.error(f"Error on attempt {attempt + 1}: {str(e)}")
 
39
  else:
40
  logger.error("Max retries reached. Giving up.")
41
  return None, f"Failed to generate image after {max_retries} attempts. Last error: {str(e)}"
42
+
43
+ # This line should never be reached, but just in case:
44
  return None, "Unexpected error occurred"
45
 
46
+ iface = gr.Interface(
47
+ fn=generate_image,
48
+ inputs=gr.Textbox(label="Enter your prompt"),
49
+ outputs=[
50
+ gr.Image(label="Generated Image"),
51
+ gr.Textbox(label="Output Information", lines=5)
52
+ ],
53
+ title="Text-to-Image Generation",
54
+ description="Enter a prompt to generate an image. The system will automatically retry up to 5 times if an error occurs."
55
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
  logger.info("Launching the Gradio interface...")
58
+ iface.launch()