RanM commited on
Commit
06a3d1b
·
verified ·
1 Parent(s): 02161de

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -8
app.py CHANGED
@@ -1,4 +1,5 @@
1
  import gradio as gr
 
2
  from diffusers import AutoPipelineForText2Image
3
  from io import BytesIO
4
  from generate_propmts import generate_prompt
@@ -9,7 +10,7 @@ model = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo")
9
 
10
  async def generate_image(prompt):
11
  try:
12
- # Truncate prompt if necessary
13
  output = model(prompt=prompt, num_inference_steps=1, guidance_scale=0.0)
14
  print(f"Model output: {output}")
15
 
@@ -22,7 +23,6 @@ async def generate_image(prompt):
22
  return image_bytes
23
  else:
24
  raise Exception("No images returned by the model.")
25
-
26
  except Exception as e:
27
  print(f"Error generating image: {e}")
28
  return None
@@ -39,14 +39,17 @@ async def process_prompt(sentence_mapping, character_dict, selected_style):
39
  prompts.append((paragraph_number, prompt))
40
  print(f"Generated prompt for paragraph {paragraph_number}: {prompt}")
41
 
 
42
  tasks = [generate_image(prompt) for _, prompt in prompts]
 
43
 
44
- for (paragraph_number, _), image_bytes in zip(prompts, await asyncio.gather(*tasks)):
45
- if image_bytes:
46
- images[paragraph_number] = image_bytes
47
 
48
  return images
49
 
 
50
  gradio_interface = gr.Interface(
51
  fn=process_prompt,
52
  inputs=[
@@ -54,9 +57,9 @@ gradio_interface = gr.Interface(
54
  gr.JSON(label="Character Dict"),
55
  gr.Dropdown(["oil painting", "sketch", "watercolor"], label="Selected Style")
56
  ],
57
- outputs="json",
58
- concurrency_limit=10 # Allow up to 10 concurrent executions
59
  )
60
 
61
  if __name__ == "__main__":
62
- gradio_interface.launch()
 
1
  import gradio as gr
2
+ import torch
3
  from diffusers import AutoPipelineForText2Image
4
  from io import BytesIO
5
  from generate_propmts import generate_prompt
 
10
 
11
  async def generate_image(prompt):
12
  try:
13
+ # Generate an image based on the prompt
14
  output = model(prompt=prompt, num_inference_steps=1, guidance_scale=0.0)
15
  print(f"Model output: {output}")
16
 
 
23
  return image_bytes
24
  else:
25
  raise Exception("No images returned by the model.")
 
26
  except Exception as e:
27
  print(f"Error generating image: {e}")
28
  return None
 
39
  prompts.append((paragraph_number, prompt))
40
  print(f"Generated prompt for paragraph {paragraph_number}: {prompt}")
41
 
42
+ # Create tasks for all prompts and run them concurrently
43
  tasks = [generate_image(prompt) for _, prompt in prompts]
44
+ results = await asyncio.gather(*tasks)
45
 
46
+ # Map results back to paragraphs
47
+ for i, (paragraph_number, _) in enumerate(prompts):
48
+ images[paragraph_number] = results[i]
49
 
50
  return images
51
 
52
+ # Gradio interface with high concurrency limit
53
  gradio_interface = gr.Interface(
54
  fn=process_prompt,
55
  inputs=[
 
57
  gr.JSON(label="Character Dict"),
58
  gr.Dropdown(["oil painting", "sketch", "watercolor"], label="Selected Style")
59
  ],
60
+ outputs="text",
61
+ concurrency_limit=20 # Set a high concurrency limit
62
  )
63
 
64
  if __name__ == "__main__":
65
+ gradio_interface.launch(share=True) # Optionally make it public with share=True