Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -94,14 +94,10 @@ def reset_fields():
|
|
| 94 |
|
| 95 |
def generate_scene(num_scenes, theme, char_count, character_names, dialogue,
|
| 96 |
dialogue_speaker, char_styles, char_moods, bg_style,
|
| 97 |
-
images, summaries, explanations):
|
| 98 |
-
|
| 99 |
-
if len(images) >= int(num_scenes):
|
| 100 |
-
return gr.update(), gr.update(), gr.update(), images, summaries, explanations, \
|
| 101 |
-
f"✅ All {num_scenes} scenes have been generated.", gr.update(visible=True)
|
| 102 |
|
| 103 |
prompt = (
|
| 104 |
-
f"Scene {
|
| 105 |
f"Characters: {character_names}. Outfits: {char_styles}. Mood: {char_moods}. "
|
| 106 |
f"Style: {bg_style}."
|
| 107 |
)
|
|
@@ -114,11 +110,19 @@ def generate_scene(num_scenes, theme, char_count, character_names, dialogue,
|
|
| 114 |
summary = summarize_scene(prompt)
|
| 115 |
explanation = explain_scene(image) if image else "Explanation unavailable."
|
| 116 |
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 122 |
done_visible = len(images) == int(num_scenes)
|
| 123 |
|
| 124 |
return image, summary, explanation, images, summaries, explanations, status, gr.update(visible=done_visible)
|
|
@@ -358,7 +362,8 @@ with gr.Blocks(
|
|
| 358 |
inputs=[
|
| 359 |
scene_total, theme, char_count, character_names, dialogue,
|
| 360 |
dialogue_speaker, char_styles, char_moods, bg_style,
|
| 361 |
-
scene_images, scene_summaries, scene_explanations
|
|
|
|
| 362 |
],
|
| 363 |
outputs=[
|
| 364 |
image_output, summary_output, explanation_output,
|
|
@@ -367,12 +372,14 @@ with gr.Blocks(
|
|
| 367 |
]
|
| 368 |
)
|
| 369 |
|
|
|
|
| 370 |
recreate_btn.click(
|
| 371 |
fn=generate_scene,
|
| 372 |
inputs=[
|
| 373 |
scene_total, theme, char_count, character_names, dialogue,
|
| 374 |
dialogue_speaker, char_styles, char_moods, bg_style,
|
| 375 |
-
scene_images, scene_summaries, scene_explanations
|
|
|
|
| 376 |
],
|
| 377 |
outputs=[
|
| 378 |
image_output, summary_output, explanation_output,
|
|
@@ -380,6 +387,7 @@ with gr.Blocks(
|
|
| 380 |
status, done_btn
|
| 381 |
]
|
| 382 |
)
|
|
|
|
| 383 |
|
| 384 |
ai_coauthor_btn.click(
|
| 385 |
fn=ai_write_scene,
|
|
|
|
| 94 |
|
| 95 |
def generate_scene(num_scenes, theme, char_count, character_names, dialogue,
|
| 96 |
dialogue_speaker, char_styles, char_moods, bg_style,
|
| 97 |
+
images, summaries, explanations, recreate_mode=False, current_index=0):
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
|
| 99 |
prompt = (
|
| 100 |
+
f"Scene {current_index + 1} set in {theme}. Number of characters: {char_count}. "
|
| 101 |
f"Characters: {character_names}. Outfits: {char_styles}. Mood: {char_moods}. "
|
| 102 |
f"Style: {bg_style}."
|
| 103 |
)
|
|
|
|
| 110 |
summary = summarize_scene(prompt)
|
| 111 |
explanation = explain_scene(image) if image else "Explanation unavailable."
|
| 112 |
|
| 113 |
+
if recreate_mode:
|
| 114 |
+
images[current_index] = image
|
| 115 |
+
summaries[current_index] = summary
|
| 116 |
+
explanations[current_index] = explanation
|
| 117 |
+
else:
|
| 118 |
+
if len(images) >= int(num_scenes):
|
| 119 |
+
return gr.update(), gr.update(), gr.update(), images, summaries, explanations, \
|
| 120 |
+
f"✅ All {num_scenes} scenes have been generated.", gr.update(visible=True)
|
| 121 |
+
images.append(image)
|
| 122 |
+
summaries.append(summary)
|
| 123 |
+
explanations.append(explanation)
|
| 124 |
+
|
| 125 |
+
status = f"✅ Scene {current_index + 1} {'recreated' if recreate_mode else 'generated'}."
|
| 126 |
done_visible = len(images) == int(num_scenes)
|
| 127 |
|
| 128 |
return image, summary, explanation, images, summaries, explanations, status, gr.update(visible=done_visible)
|
|
|
|
| 362 |
inputs=[
|
| 363 |
scene_total, theme, char_count, character_names, dialogue,
|
| 364 |
dialogue_speaker, char_styles, char_moods, bg_style,
|
| 365 |
+
scene_images, scene_summaries, scene_explanations,
|
| 366 |
+
gr.State(False), current_scene_index
|
| 367 |
],
|
| 368 |
outputs=[
|
| 369 |
image_output, summary_output, explanation_output,
|
|
|
|
| 372 |
]
|
| 373 |
)
|
| 374 |
|
| 375 |
+
|
| 376 |
recreate_btn.click(
|
| 377 |
fn=generate_scene,
|
| 378 |
inputs=[
|
| 379 |
scene_total, theme, char_count, character_names, dialogue,
|
| 380 |
dialogue_speaker, char_styles, char_moods, bg_style,
|
| 381 |
+
scene_images, scene_summaries, scene_explanations,
|
| 382 |
+
recreate_mode, current_scene_index
|
| 383 |
],
|
| 384 |
outputs=[
|
| 385 |
image_output, summary_output, explanation_output,
|
|
|
|
| 387 |
status, done_btn
|
| 388 |
]
|
| 389 |
)
|
| 390 |
+
|
| 391 |
|
| 392 |
ai_coauthor_btn.click(
|
| 393 |
fn=ai_write_scene,
|