ICGenAIShare04 commited on
Commit
84e2cb3
·
verified ·
1 Parent(s): 04c284c

Fix progress bar not showing in .then() chain by threading video_output through all pipeline phases

Browse files
Files changed (1) hide show
  1. app.py +13 -12
app.py CHANGED
@@ -333,20 +333,21 @@ def generate_cpu(audio_file: str, style_name: str, cover_art: str | None,
333
 
334
  progress(0.45, desc="CPU steps done, requesting GPU...")
335
  # Return state for GPU phases (all values must be picklable strings)
336
- return str(run_dir), style_name, str(step_num), cover_art or ""
 
337
 
338
 
339
- def generate_images(run_dir_str: str, style_name: str, step_num_str: str,
340
  cover_art: str, progress=gr.Progress()):
341
  """GPU phase: step 6 — generate images. Gets a fresh ZeroGPU token."""
342
  step_num = int(step_num_str)
343
  if step_num <= 7:
344
  progress(0.50, desc="Generating images...")
345
  _gpu_generate_images(run_dir_str, style_name)
346
- return run_dir_str, style_name, step_num_str, cover_art
347
 
348
 
349
- def generate_videos(run_dir_str: str, style_name: str, step_num_str: str,
350
  cover_art: str, progress=gr.Progress()):
351
  """GPU phase: step 7 — generate video clips, one per GPU session."""
352
  step_num = int(step_num_str)
@@ -373,7 +374,7 @@ def generate_videos(run_dir_str: str, style_name: str, step_num_str: str,
373
  pass
374
 
375
  print(f"All {len(segments)} video clips generated.")
376
- return run_dir_str, cover_art
377
 
378
 
379
  def generate_assembly(run_dir_str: str, cover_art: str, progress=gr.Progress()):
@@ -387,7 +388,7 @@ def generate_assembly(run_dir_str: str, cover_art: str, progress=gr.Progress()):
387
  cover_art=cover)
388
 
389
  progress(1.0, desc="Done!")
390
- return str(final_path), run_dir_str, gr.update(visible=True)
391
 
392
 
393
  def reshuffle(run_dir_str: str, cover_art: str | None, progress=gr.Progress()):
@@ -704,7 +705,7 @@ with gr.Blocks(
704
 
705
  generate_btn = gr.Button("Generate Video", variant="primary")
706
  video_output = gr.Video(label="Generated Music Video")
707
- reshuffle_btn = gr.Button("Reshuffle", variant="secondary", visible=False)
708
  last_run_dir = gr.State(value="")
709
 
710
  # Hidden state for passing data between chained pipeline phases
@@ -740,15 +741,15 @@ with gr.Blocks(
740
  fn=generate_cpu,
741
  inputs=[audio_input, style_dropdown,
742
  cover_art_input, run_mode, existing_run, start_step, reuse_files],
743
- outputs=[_st_run_dir, _st_style, _st_step, _st_cover],
744
  ).then(
745
  fn=generate_images,
746
- inputs=[_st_run_dir, _st_style, _st_step, _st_cover],
747
- outputs=[_st_run_dir, _st_style, _st_step, _st_cover],
748
  ).then(
749
  fn=generate_videos,
750
- inputs=[_st_run_dir, _st_style, _st_step, _st_cover],
751
- outputs=[_st_run_dir, _st_cover],
752
  ).then(
753
  fn=generate_assembly,
754
  inputs=[_st_run_dir, _st_cover],
 
333
 
334
  progress(0.45, desc="CPU steps done, requesting GPU...")
335
  # Return state for GPU phases (all values must be picklable strings)
336
+ # gr.update() for video_output keeps it unchanged but gives progress bar a visible target
337
+ return gr.update(), str(run_dir), style_name, str(step_num), cover_art or ""
338
 
339
 
340
+ def generate_images(video_out, run_dir_str: str, style_name: str, step_num_str: str,
341
  cover_art: str, progress=gr.Progress()):
342
  """GPU phase: step 6 — generate images. Gets a fresh ZeroGPU token."""
343
  step_num = int(step_num_str)
344
  if step_num <= 7:
345
  progress(0.50, desc="Generating images...")
346
  _gpu_generate_images(run_dir_str, style_name)
347
+ return gr.update(), run_dir_str, style_name, step_num_str, cover_art
348
 
349
 
350
+ def generate_videos(video_out, run_dir_str: str, style_name: str, step_num_str: str,
351
  cover_art: str, progress=gr.Progress()):
352
  """GPU phase: step 7 — generate video clips, one per GPU session."""
353
  step_num = int(step_num_str)
 
374
  pass
375
 
376
  print(f"All {len(segments)} video clips generated.")
377
+ return gr.update(), run_dir_str, cover_art
378
 
379
 
380
  def generate_assembly(run_dir_str: str, cover_art: str, progress=gr.Progress()):
 
388
  cover_art=cover)
389
 
390
  progress(1.0, desc="Done!")
391
+ return str(final_path), run_dir_str, gr.update(interactive=True)
392
 
393
 
394
  def reshuffle(run_dir_str: str, cover_art: str | None, progress=gr.Progress()):
 
705
 
706
  generate_btn = gr.Button("Generate Video", variant="primary")
707
  video_output = gr.Video(label="Generated Music Video")
708
+ reshuffle_btn = gr.Button("Reshuffle", variant="secondary", visible=True, interactive=False)
709
  last_run_dir = gr.State(value="")
710
 
711
  # Hidden state for passing data between chained pipeline phases
 
741
  fn=generate_cpu,
742
  inputs=[audio_input, style_dropdown,
743
  cover_art_input, run_mode, existing_run, start_step, reuse_files],
744
+ outputs=[video_output, _st_run_dir, _st_style, _st_step, _st_cover],
745
  ).then(
746
  fn=generate_images,
747
+ inputs=[video_output, _st_run_dir, _st_style, _st_step, _st_cover],
748
+ outputs=[video_output, _st_run_dir, _st_style, _st_step, _st_cover],
749
  ).then(
750
  fn=generate_videos,
751
+ inputs=[video_output, _st_run_dir, _st_style, _st_step, _st_cover],
752
+ outputs=[video_output, _st_run_dir, _st_cover],
753
  ).then(
754
  fn=generate_assembly,
755
  inputs=[_st_run_dir, _st_cover],