Gradioで出力を2つ同時に出す方法 (2024/2/25)

Gradio簡単にテキストの入力と出力のインターフェースをもつWebサイトを作成できるのですが,2つのモデルを作成して,その出力を同時に出したい場合にどうするかが,ちょっと調べてもでてなかったので記しておきます (gradio.mix Parallel というのがあったかもしれませんが,下記にように普通に書けます).

下記のようなコードになります

import gradio as gr

model1_label = "実装例1."
model2_label = "実装例2."

def greet(name, intensity):
    out1 = "Hello " * intensity + name + "!"
    out2 = "haha " * intensity + name + "!"
    return out1,out2


demo1= gr.Interface(
    fn = greet,
    inputs = [
        gr.Textbox(lines=5, label="入力テキスト"),
        gr.Slider(1, 10, step=1, label="何個事例を入れるか"),
    ],
    outputs = [
        gr.Textbox(label=model1_label), 
        gr.Textbox(label=model2_label)
    ],
    allow_flagging='never',
)

demo1.launch(server_name="0.0.0.0", server_port=7877, share=True)

結局,出力の部分で textを2つ出力させるようにします.表示は下記のようになります.

参考 https://www.gradio.app/guides/quickstart