BoxOfColors Claude Sonnet 4.6 commited on
Commit
dec15b9
·
1 Parent(s): 34cf138

Fix regen: use properly-typed hidden Number/Textbox inputs for seg_idx and state_json

Browse files

Previously seg_idx and state_json used taro_seed (gr.Number) as placeholder
for both — Gradio rejected a JSON string passed to a Number-type component,
causing process_completed success=false immediately. Now each tab has dedicated
hidden gr.Number (regen_seg) and gr.Textbox (regen_state) components with
matching elem_ids, so queue/join type validation passes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +18 -9
app.py CHANGED
@@ -1760,8 +1760,11 @@ with gr.Blocks(title="Generate Audio for Video", css=_SLOT_CSS, js=_GLOBAL_JS) a
1760
  taro_mode = gr.Radio(label="Sampling Mode", choices=["sde", "ode"], value="sde", elem_id="taro_mode")
1761
  taro_cf_dur = gr.Slider(label="Crossfade Duration (s)", minimum=0, maximum=8, value=2, step=0.1, elem_id="taro_cf_dur")
1762
  taro_cf_db = gr.Textbox(label="Crossfade Boost (dB)", value="3", elem_id="taro_cf_db")
1763
- taro_samples = gr.Slider(label="Generations", minimum=1, maximum=MAX_SLOTS, value=1, step=1)
1764
- taro_btn = gr.Button("Generate", variant="primary")
 
 
 
1765
 
1766
  with gr.Column():
1767
  (taro_slot_grps, taro_slot_vids,
@@ -1842,7 +1845,7 @@ with gr.Blocks(title="Generate Audio for Video", css=_SLOT_CSS, js=_GLOBAL_JS) a
1842
  return _do
1843
  _btn.click(
1844
  fn=_make_taro_regen(_i, _slot_id),
1845
- inputs=[taro_seed, taro_seed, # seg_idx, state_json placeholders
1846
  taro_video, taro_seed, taro_cfg, taro_steps,
1847
  taro_mode, taro_cf_dur, taro_cf_db],
1848
  outputs=[taro_slot_vids[_i], taro_slot_waves[_i]],
@@ -1863,8 +1866,11 @@ with gr.Blocks(title="Generate Audio for Video", css=_SLOT_CSS, js=_GLOBAL_JS) a
1863
  mma_steps = gr.Slider(label="Steps", minimum=10, maximum=50, value=25, step=1, elem_id="mma_steps")
1864
  mma_cf_dur = gr.Slider(label="Crossfade Duration (s)", minimum=0, maximum=8, value=2, step=0.1, elem_id="mma_cf_dur")
1865
  mma_cf_db = gr.Textbox(label="Crossfade Boost (dB)", value="3", elem_id="mma_cf_db")
1866
- mma_samples = gr.Slider(label="Generations", minimum=1, maximum=MAX_SLOTS, value=1, step=1)
1867
- mma_btn = gr.Button("Generate", variant="primary")
 
 
 
1868
 
1869
  with gr.Column():
1870
  (mma_slot_grps, mma_slot_vids,
@@ -1928,7 +1934,7 @@ with gr.Blocks(title="Generate Audio for Video", css=_SLOT_CSS, js=_GLOBAL_JS) a
1928
  return _do
1929
  _btn.click(
1930
  fn=_make_mma_regen(_i, _slot_id),
1931
- inputs=[mma_seed, mma_seed, # seg_idx, state_json placeholders
1932
  mma_video, mma_prompt, mma_neg, mma_seed,
1933
  mma_cfg, mma_steps, mma_cf_dur, mma_cf_db],
1934
  outputs=[mma_slot_vids[_i], mma_slot_waves[_i]],
@@ -1950,8 +1956,11 @@ with gr.Blocks(title="Generate Audio for Video", css=_SLOT_CSS, js=_GLOBAL_JS) a
1950
  hf_size = gr.Radio(label="Model Size", choices=["xl", "xxl"], value="xxl", elem_id="hf_size")
1951
  hf_cf_dur = gr.Slider(label="Crossfade Duration (s)", minimum=0, maximum=8, value=2, step=0.1, elem_id="hf_cf_dur")
1952
  hf_cf_db = gr.Textbox(label="Crossfade Boost (dB)", value="3", elem_id="hf_cf_db")
1953
- hf_samples = gr.Slider(label="Generations", minimum=1, maximum=MAX_SLOTS, value=1, step=1)
1954
- hf_btn = gr.Button("Generate", variant="primary")
 
 
 
1955
 
1956
  with gr.Column():
1957
  (hf_slot_grps, hf_slot_vids,
@@ -2015,7 +2024,7 @@ with gr.Blocks(title="Generate Audio for Video", css=_SLOT_CSS, js=_GLOBAL_JS) a
2015
  return _do
2016
  _btn.click(
2017
  fn=_make_hf_regen(_i, _slot_id),
2018
- inputs=[hf_seed, hf_seed, # seg_idx, state_json placeholders
2019
  hf_video, hf_prompt, hf_neg, hf_seed,
2020
  hf_guidance, hf_steps, hf_size, hf_cf_dur, hf_cf_db],
2021
  outputs=[hf_slot_vids[_i], hf_slot_waves[_i]],
 
1760
  taro_mode = gr.Radio(label="Sampling Mode", choices=["sde", "ode"], value="sde", elem_id="taro_mode")
1761
  taro_cf_dur = gr.Slider(label="Crossfade Duration (s)", minimum=0, maximum=8, value=2, step=0.1, elem_id="taro_cf_dur")
1762
  taro_cf_db = gr.Textbox(label="Crossfade Boost (dB)", value="3", elem_id="taro_cf_db")
1763
+ taro_samples = gr.Slider(label="Generations", minimum=1, maximum=MAX_SLOTS, value=1, step=1)
1764
+ taro_btn = gr.Button("Generate", variant="primary")
1765
+ # Hidden regen plumbing — do NOT remove (used as typed inputs for regen handlers)
1766
+ taro_regen_seg = gr.Number(value=0, visible=False, elem_id="taro_regen_seg")
1767
+ taro_regen_state = gr.Textbox(value="", visible=False, elem_id="taro_regen_state")
1768
 
1769
  with gr.Column():
1770
  (taro_slot_grps, taro_slot_vids,
 
1845
  return _do
1846
  _btn.click(
1847
  fn=_make_taro_regen(_i, _slot_id),
1848
+ inputs=[taro_regen_seg, taro_regen_state,
1849
  taro_video, taro_seed, taro_cfg, taro_steps,
1850
  taro_mode, taro_cf_dur, taro_cf_db],
1851
  outputs=[taro_slot_vids[_i], taro_slot_waves[_i]],
 
1866
  mma_steps = gr.Slider(label="Steps", minimum=10, maximum=50, value=25, step=1, elem_id="mma_steps")
1867
  mma_cf_dur = gr.Slider(label="Crossfade Duration (s)", minimum=0, maximum=8, value=2, step=0.1, elem_id="mma_cf_dur")
1868
  mma_cf_db = gr.Textbox(label="Crossfade Boost (dB)", value="3", elem_id="mma_cf_db")
1869
+ mma_samples = gr.Slider(label="Generations", minimum=1, maximum=MAX_SLOTS, value=1, step=1)
1870
+ mma_btn = gr.Button("Generate", variant="primary")
1871
+ # Hidden regen plumbing
1872
+ mma_regen_seg = gr.Number(value=0, visible=False, elem_id="mma_regen_seg")
1873
+ mma_regen_state = gr.Textbox(value="", visible=False, elem_id="mma_regen_state")
1874
 
1875
  with gr.Column():
1876
  (mma_slot_grps, mma_slot_vids,
 
1934
  return _do
1935
  _btn.click(
1936
  fn=_make_mma_regen(_i, _slot_id),
1937
+ inputs=[mma_regen_seg, mma_regen_state,
1938
  mma_video, mma_prompt, mma_neg, mma_seed,
1939
  mma_cfg, mma_steps, mma_cf_dur, mma_cf_db],
1940
  outputs=[mma_slot_vids[_i], mma_slot_waves[_i]],
 
1956
  hf_size = gr.Radio(label="Model Size", choices=["xl", "xxl"], value="xxl", elem_id="hf_size")
1957
  hf_cf_dur = gr.Slider(label="Crossfade Duration (s)", minimum=0, maximum=8, value=2, step=0.1, elem_id="hf_cf_dur")
1958
  hf_cf_db = gr.Textbox(label="Crossfade Boost (dB)", value="3", elem_id="hf_cf_db")
1959
+ hf_samples = gr.Slider(label="Generations", minimum=1, maximum=MAX_SLOTS, value=1, step=1)
1960
+ hf_btn = gr.Button("Generate", variant="primary")
1961
+ # Hidden regen plumbing
1962
+ hf_regen_seg = gr.Number(value=0, visible=False, elem_id="hf_regen_seg")
1963
+ hf_regen_state = gr.Textbox(value="", visible=False, elem_id="hf_regen_state")
1964
 
1965
  with gr.Column():
1966
  (hf_slot_grps, hf_slot_vids,
 
2024
  return _do
2025
  _btn.click(
2026
  fn=_make_hf_regen(_i, _slot_id),
2027
+ inputs=[hf_regen_seg, hf_regen_state,
2028
  hf_video, hf_prompt, hf_neg, hf_seed,
2029
  hf_guidance, hf_steps, hf_size, hf_cf_dur, hf_cf_db],
2030
  outputs=[hf_slot_vids[_i], hf_slot_waves[_i]],