Spaces:
Running on Zero
Running on Zero
| import sys | |
| sys.path.append('.') | |
| import argparse | |
| import os | |
| import subprocess | |
| from threading import Thread | |
| from inference.interface import PenguinVLQwen3GradioInterface | |
| from inference.server import PenguinVLQwen3PlainClient | |
| def launch_gradio_demo(model_path, server_port=16667, interface_port=33666, server_name="0.0.0.0", nproc=1, example_dir="./assets/inputs"): | |
| server_thread = Thread( | |
| target=lambda: subprocess.run( | |
| [ | |
| sys.executable, "-m", | |
| "inference.server.plain_server", | |
| "--model-path", model_path, | |
| "--nproc", str(nproc), | |
| "--port", str(server_port), | |
| ] | |
| ) | |
| ) | |
| server_thread.daemon = True | |
| server_thread.start() | |
| if example_dir is not None and not os.path.isdir(example_dir): | |
| example_dir = None | |
| model_client = PenguinVLQwen3PlainClient(port=server_port) | |
| interface = PenguinVLQwen3GradioInterface( | |
| model_client, | |
| example_dir=example_dir, | |
| server_name=server_name, | |
| server_port=interface_port, | |
| ) | |
| interface.launch() | |
| def main(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--model-path", "--model_path", type=str, required=True) | |
| parser.add_argument("--server-port", "--server_port", type=int, default=16667) | |
| parser.add_argument("--interface-port", "--interface_port", type=int, default=33666) | |
| parser.add_argument("--server-name", "--server_name", type=str, default="0.0.0.0") | |
| parser.add_argument("--nproc", type=int, default=1) | |
| parser.add_argument("--example-dir", "--example_dir", type=str, default="./assets/inputs") | |
| args = parser.parse_args() | |
| launch_gradio_demo( | |
| model_path=args.model_path, | |
| server_port=args.server_port, | |
| interface_port=args.interface_port, | |
| server_name=args.server_name, | |
| nproc=args.nproc, | |
| example_dir=args.example_dir, | |
| ) | |
| if __name__ == "__main__": | |
| main() | |