Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -6,7 +6,6 @@ from diffusers import AutoPipelineForText2Image
|
|
6 |
from io import BytesIO
|
7 |
import gradio as gr
|
8 |
import ray
|
9 |
-
from ray.util import ActorPool
|
10 |
|
11 |
ray.init()
|
12 |
|
@@ -44,21 +43,22 @@ class ModelActor:
|
|
44 |
print(f"[{process_id}] Error generating image for {prompt_name}: {e}")
|
45 |
return None
|
46 |
|
47 |
-
def
|
48 |
-
return ActorPool([ModelActor.remote() for _ in range(num_actors)])
|
49 |
-
|
50 |
-
async def queue_api_calls(sentence_mapping, character_dict, selected_style, pool):
|
51 |
print(f"queue_api_calls invoked with sentence_mapping: {sentence_mapping}, character_dict: {character_dict}, selected_style: {selected_style}")
|
52 |
prompts = []
|
53 |
|
54 |
for paragraph_number, sentences in sentence_mapping.items():
|
55 |
combined_sentence = " ".join(sentences)
|
56 |
print(f"combined_sentence for paragraph {paragraph_number}: {combined_sentence}")
|
57 |
-
prompt = generate_prompt(combined_sentence,
|
58 |
prompts.append((paragraph_number, prompt))
|
59 |
print(f"Generated prompt for paragraph {paragraph_number}: {prompt}")
|
60 |
|
61 |
-
|
|
|
|
|
|
|
|
|
62 |
print("Tasks created for image generation.")
|
63 |
|
64 |
responses = await asyncio.gather(*[asyncio.to_thread(ray.get, task) for task in tasks])
|
@@ -77,8 +77,7 @@ def process_prompt(sentence_mapping, character_dict, selected_style):
|
|
77 |
asyncio.set_event_loop(loop)
|
78 |
print("Event loop created.")
|
79 |
|
80 |
-
|
81 |
-
cmpt_return = loop.run_until_complete(queue_api_calls(sentence_mapping, character_dict, selected_style, pool))
|
82 |
print(f"process_prompt completed with return value: {cmpt_return}")
|
83 |
return cmpt_return
|
84 |
|
|
|
6 |
from io import BytesIO
|
7 |
import gradio as gr
|
8 |
import ray
|
|
|
9 |
|
10 |
ray.init()
|
11 |
|
|
|
43 |
print(f"[{process_id}] Error generating image for {prompt_name}: {e}")
|
44 |
return None
|
45 |
|
46 |
+
async def queue_api_calls(sentence_mapping, character_dict, selected_style):
|
|
|
|
|
|
|
47 |
print(f"queue_api_calls invoked with sentence_mapping: {sentence_mapping}, character_dict: {character_dict}, selected_style: {selected_style}")
|
48 |
prompts = []
|
49 |
|
50 |
for paragraph_number, sentences in sentence_mapping.items():
|
51 |
combined_sentence = " ".join(sentences)
|
52 |
print(f"combined_sentence for paragraph {paragraph_number}: {combined_sentence}")
|
53 |
+
prompt = generate_prompt(combined_sentence, character_dict, selected_style)
|
54 |
prompts.append((paragraph_number, prompt))
|
55 |
print(f"Generated prompt for paragraph {paragraph_number}: {prompt}")
|
56 |
|
57 |
+
num_prompts = len(prompts)
|
58 |
+
num_actors = min(num_prompts, 20) # Limit to a maximum of 20 actors
|
59 |
+
model_actors = [ModelActor.remote() for _ in range(num_actors)]
|
60 |
+
|
61 |
+
tasks = [model_actors[i % num_actors].generate_image.remote(prompt, f"Prompt {paragraph_number}") for i, (paragraph_number, prompt) in enumerate(prompts)]
|
62 |
print("Tasks created for image generation.")
|
63 |
|
64 |
responses = await asyncio.gather(*[asyncio.to_thread(ray.get, task) for task in tasks])
|
|
|
77 |
asyncio.set_event_loop(loop)
|
78 |
print("Event loop created.")
|
79 |
|
80 |
+
cmpt_return = loop.run_until_complete(queue_api_calls(sentence_mapping, character_dict, selected_style))
|
|
|
81 |
print(f"process_prompt completed with return value: {cmpt_return}")
|
82 |
return cmpt_return
|
83 |
|