#!/usr/bin/env python from __future__ import annotations import gradio as gr def read_info(file_name: str) -> str: with open(file_name) as f: content = f.read() return content def load_model(model_name: str) -> gr.Interface: iface = gr.Interface.load(model_name, src='models') for component in iface.output_components: component.label = f'{component.label} ({model_name})' return iface def load_models(model_names: list[str]) -> list[gr.Interface]: return [load_model(name) for name in model_names] title = read_info('TITLE') description = read_info('DESCRIPTION') article = read_info('ARTICLE') model_names = read_info('MODEL_NAMES').split('\n') interfaces = load_models(model_names) gr.Parallel( *interfaces, title=title, description=description, article=article, ).launch()