Multi-user concurrency: compose outside the GPU queue, parallel assists/examples/videos

#5
by multimodalart HF Staff - opened
Files changed (1) hide show
  1. app.py +6 -6
app.py CHANGED
@@ -1621,18 +1621,18 @@ with gr.Blocks(theme=gr.themes.Citrus(), css=CSS) as demo:
1621
  ev_simple = composer.submit(lambda: ({"cmd": "reset", "loader": True, "status": "Writing lyrics & structured prompt with MiniMax-M3...", "nonce": random.random()}, None), None, [player, video_out]).then(
1622
  simple_generate, [composer] + _knobs,
1623
  [player, stats, wav_state, seed, composer, video_title],
1624
- concurrency_limit=1, concurrency_id="gpu", show_progress="minimal",
1625
  )
1626
- ev_simple.then(render_video, [wav_state, video_title], video_out).then(
1627
  lambda s: s.replace(" — rendering share video...", " — share video ready."), stats, stats
1628
  )
1629
 
1630
  ev_studio = composer.click(lambda: ({"cmd": "reset", "loader": True, "status": "Acquiring ZeroGPU...", "nonce": random.random()}, "", None), None, [player, stats, video_out]).then(
1631
  studio_generate, [composer] + _knobs,
1632
  [player, stats, wav_state, seed, video_title],
1633
- concurrency_limit=1, concurrency_id="gpu", show_progress="minimal",
1634
  )
1635
- ev_studio.then(render_video, [wav_state, video_title], video_out).then(
1636
  lambda s: s.replace(" — rendering share video...", " — share video ready."), stats, stats
1637
  )
1638
 
@@ -1641,9 +1641,9 @@ with gr.Blocks(theme=gr.themes.Citrus(), css=CSS) as demo:
1641
  cancels=[ev_simple, ev_studio], show_progress="hidden",
1642
  )
1643
 
1644
- composer.edit(compose_assist, [composer, duration], [composer, stats], show_progress="minimal")
1645
 
1646
- composer.apply(load_example, [composer], [composer, player, stats, video_out, wav_state, video_title], show_progress="minimal")
1647
 
1648
  if __name__ == "__main__":
1649
  demo.launch()
 
1621
  ev_simple = composer.submit(lambda: ({"cmd": "reset", "loader": True, "status": "Writing lyrics & structured prompt with MiniMax-M3...", "nonce": random.random()}, None), None, [player, video_out]).then(
1622
  simple_generate, [composer] + _knobs,
1623
  [player, stats, wav_state, seed, composer, video_title],
1624
+ concurrency_limit=None, show_progress="minimal",
1625
  )
1626
+ ev_simple.then(render_video, [wav_state, video_title], video_out, concurrency_limit=4).then(
1627
  lambda s: s.replace(" — rendering share video...", " — share video ready."), stats, stats
1628
  )
1629
 
1630
  ev_studio = composer.click(lambda: ({"cmd": "reset", "loader": True, "status": "Acquiring ZeroGPU...", "nonce": random.random()}, "", None), None, [player, stats, video_out]).then(
1631
  studio_generate, [composer] + _knobs,
1632
  [player, stats, wav_state, seed, video_title],
1633
+ concurrency_limit=None, show_progress="minimal",
1634
  )
1635
+ ev_studio.then(render_video, [wav_state, video_title], video_out, concurrency_limit=4).then(
1636
  lambda s: s.replace(" — rendering share video...", " — share video ready."), stats, stats
1637
  )
1638
 
 
1641
  cancels=[ev_simple, ev_studio], show_progress="hidden",
1642
  )
1643
 
1644
+ composer.edit(compose_assist, [composer, duration], [composer, stats], concurrency_limit=8, show_progress="minimal")
1645
 
1646
+ composer.apply(load_example, [composer], [composer, player, stats, video_out, wav_state, video_title], concurrency_limit=None, show_progress="minimal")
1647
 
1648
  if __name__ == "__main__":
1649
  demo.launch()