fizzarif7 commited on
Commit
a101c78
·
verified ·
1 Parent(s): 100a0f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -13
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 {len(images)+1} set in {theme}. Number of characters: {char_count}. "
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
- images.append(image)
118
- summaries.append(summary)
119
- explanations.append(explanation)
120
-
121
- status = f"✅ Scene {len(images)} of {int(num_scenes)} generated."
 
 
 
 
 
 
 
 
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,