Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import gradio as gr | |
from .config import * | |
from .ui import * | |
from .synth import * | |
from .vote import * | |
from .messages import * | |
def disable(): | |
return [gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False)] | |
def enable(): | |
return [gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True)] | |
with gr.Blocks() as battle: | |
battle_useridstate = gr.State() | |
gr.Markdown(BATTLE_INSTR) | |
model1 = gr.Textbox(interactive=False, lines=1, max_lines=1, visible=False) | |
model2 = gr.Textbox(interactive=False, lines=1, max_lines=1, visible=False) | |
with gr.Group(): | |
with gr.Row(): | |
text = gr.Textbox(container=False, show_label=False, placeholder="Enter text to synthesize", lines=1, max_lines=1, scale=9999999, min_width=0) | |
randomt_battle = gr.Button('π²', scale=0, min_width=0, variant='tool', elem_id="battle-random-button") | |
with gr.Row(): | |
with gr.Column(scale=10): | |
model1s = gr.Dropdown(label="Model 1", container=False, show_label=False, choices=AVAILABLE_MODELS.keys(), interactive=True, value=list(AVAILABLE_MODELS.keys())[0]) | |
with gr.Column(scale=10): | |
model2s = gr.Dropdown(label="Model 2", container=False, show_label=False, choices=AVAILABLE_MODELS.keys(), interactive=True, value=list(AVAILABLE_MODELS.keys())[1]) | |
randomt_battle.click(randomsent_battle, outputs=[text, randomt_battle, model1s, model2s]) | |
btn = gr.Button("Synthesize", variant='primary', elem_id="battle-synth-button") | |
with gr.Row(visible=False) as r2: | |
with gr.Column(): | |
with gr.Group(): | |
aud1 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, autoplay=True, elem_id="battle-a-audio") | |
abetter = gr.Button("A is better", variant='primary', elem_id="battle-a-button") | |
prevmodel1 = gr.Textbox(interactive=False, show_label=False, container=False, value="Vote to reveal model A", text_align="center", lines=1, max_lines=1, visible=False) | |
with gr.Column(): | |
with gr.Group(): | |
aud2 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, elem_id="battle-b-audio") | |
bbetter = gr.Button("B is better", variant='primary', elem_id="battle-b-button") | |
prevmodel2 = gr.Textbox(interactive=False, show_label=False, container=False, value="Vote to reveal model B", text_align="center", lines=1, max_lines=1, visible=False) | |
aud1.stop(None, None, js="""function() { | |
document.getElementById('battle-b-audio')?.querySelector('button.play-pause-button')?.click(); | |
}""") | |
outputs = [ | |
text, | |
btn, | |
r2, | |
model1, | |
model2, | |
aud1, | |
aud2, | |
abetter, | |
bbetter, | |
prevmodel1, | |
prevmodel2, | |
] | |
btn.click(disable, outputs=[btn, abetter, bbetter]).then(synthandreturn_battle, inputs=[text, model1s, model2s], outputs=outputs).then(enable, outputs=[btn, abetter, bbetter]) | |
nxt_outputs = [abetter, bbetter, prevmodel1, prevmodel2] | |
abetter.click(a_is_better_battle, outputs=nxt_outputs, inputs=[model1, model2, battle_useridstate]) | |
bbetter.click(b_is_better_battle, outputs=nxt_outputs, inputs=[model1, model2, battle_useridstate]) | |
# battle.load(random_m, outputs=[model1s, model2s], js="""function() { | |
# document.addEventListener('keydown', function(e) { | |
# // Only handle shortcuts if we're on the battle tab | |
# if (!document.querySelector('#battle-a-button')?.offsetParent) { | |
# // Check if random button is visible | |
# if (document.querySelector('#battle-random-button')?.offsetParent) { | |
# if (e.key === 'r') { | |
# document.getElementById('battle-random-button')?.click(); | |
# } else if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) { | |
# document.getElementById('battle-synth-button')?.click(); | |
# } | |
# } | |
# return; | |
# } | |
# // Only handle A and B keys when not typing in an input | |
# if (document.activeElement.tagName === 'INPUT' || | |
# document.activeElement.tagName === 'TEXTAREA') { | |
# return; | |
# } | |
# if (e.key.toLowerCase() === 'a') { | |
# document.getElementById('battle-a-button')?.click(); | |
# } else if (e.key.toLowerCase() === 'b') { | |
# document.getElementById('battle-b-button')?.click(); | |
# } | |
# }); | |
# }""") | |