RanM commited on
Commit
7aae5d0
·
verified ·
1 Parent(s): 20e0b1b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -20
app.py CHANGED
@@ -1,5 +1,3 @@
1
- import asyncio
2
- import json
3
  import gradio as gr
4
  from diffusers import AutoPipelineForText2Image
5
  from generate_prompts import generate_prompt
@@ -7,10 +5,10 @@ from generate_prompts import generate_prompt
7
  # Load the model once outside of the function
8
  model = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo")
9
 
10
- async def generate_image(prompt, prompt_name):
11
  try:
12
  print(f"Generating image for {prompt_name}")
13
- output = await model(prompt=prompt, num_inference_steps=1, guidance_scale=0.0)
14
  image = output.images[0]
15
  img_bytes = image.tobytes()
16
  print(f"Image bytes length for {prompt_name}: {len(img_bytes)}")
@@ -19,23 +17,9 @@ async def generate_image(prompt, prompt_name):
19
  print(f"Error generating image for {prompt_name}: {e}")
20
  return None
21
 
22
- async def queue_image_calls(prompts):
23
- tasks = [generate_image(prompts[i], f"Prompt {i}") for i in range(len(prompts))]
24
- responses = await asyncio.gather(*tasks)
25
- return responses
26
-
27
- def async_image_generation(prompts):
28
- try:
29
- loop = asyncio.get_running_loop()
30
- except RuntimeError:
31
- loop = asyncio.new_event_loop()
32
- asyncio.set_event_loop(loop)
33
- results = loop.run_until_complete(queue_image_calls(prompts))
34
- return results
35
-
36
  def gradio_interface(sentence_mapping, character_dict, selected_style):
37
  prompts = generate_prompt(sentence_mapping, character_dict, selected_style)
38
- image_bytes_list = async_image_generation(prompts)
39
  outputs = [gr.Image.update(value=img_bytes) if img_bytes else gr.Image.update(value=None) for img_bytes in image_bytes_list]
40
  return outputs
41
 
@@ -48,7 +32,6 @@ with gr.Blocks() as demo:
48
  selected_style_input = gr.Textbox(label="Selected Style")
49
  submit_btn = gr.Button(value='Submit')
50
  prompt_responses = [] # Empty list for dynamic addition of Image components
51
- demo.load(fn=lambda x: x, inputs=[], outputs=prompt_responses)
52
  submit_btn.click(fn=gradio_interface,
53
  inputs=[sentence_mapping_input, character_dict_input, selected_style_input],
54
  outputs=prompt_responses)
 
 
 
1
  import gradio as gr
2
  from diffusers import AutoPipelineForText2Image
3
  from generate_prompts import generate_prompt
 
5
  # Load the model once outside of the function
6
  model = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo")
7
 
8
+ def generate_image(prompt, prompt_name):
9
  try:
10
  print(f"Generating image for {prompt_name}")
11
+ output = model(prompt=prompt, num_inference_steps=1, guidance_scale=0.0)
12
  image = output.images[0]
13
  img_bytes = image.tobytes()
14
  print(f"Image bytes length for {prompt_name}: {len(img_bytes)}")
 
17
  print(f"Error generating image for {prompt_name}: {e}")
18
  return None
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  def gradio_interface(sentence_mapping, character_dict, selected_style):
21
  prompts = generate_prompt(sentence_mapping, character_dict, selected_style)
22
+ image_bytes_list = [generate_image(prompt, f"Prompt {i}") for i, prompt in enumerate(prompts)]
23
  outputs = [gr.Image.update(value=img_bytes) if img_bytes else gr.Image.update(value=None) for img_bytes in image_bytes_list]
24
  return outputs
25
 
 
32
  selected_style_input = gr.Textbox(label="Selected Style")
33
  submit_btn = gr.Button(value='Submit')
34
  prompt_responses = [] # Empty list for dynamic addition of Image components
 
35
  submit_btn.click(fn=gradio_interface,
36
  inputs=[sentence_mapping_input, character_dict_input, selected_style_input],
37
  outputs=prompt_responses)