import gradio as gr import numpy as np import os try: from train import * print('==> simple-knn & diff-gaussian-rasterization already installed!') except: print('==> simple-knn & diff-gaussian-rasterization are NOT installed!') # https://github.com/pytorch/extension-cpp/issues/71 os.environ["TORCH_CUDA_ARCH_LIST"] = "3.5;5.0;6.0;6.1;7.0;7.5;8.0;8.6+PTX" print('==> TORCH_CUDA_ARCH_LIST =', os.environ.get('TORCH_CUDA_ARCH_LIST')) os.system("python -m pip install git+https://github.com/YixunLiang/simple-knn.git") print('==> simple-knn installed!') os.system("python -m pip install git+https://github.com/YixunLiang/diff-gaussian-rasterization.git") print('==> diff-gaussian-rasterization installed!') from train import * example_inputs = [[ "A DSLR photo of a Rugged, vintage-inspired hiking boots with a weathered leather finish, best quality, 4K, HD.", "Rugged, vintage-inspired hiking boots with a weathered leather finish." ], [ "a DSLR photo of a Cream Cheese Donut.", "a Donut." ], [ "A durian, 8k, HDR.", "A durian" ], [ "A pillow with huskies printed on it", "A pillow" ], [ "A DSLR photo of a wooden car, super detailed, best quality, 4K, HD.", "a wooden car." ]] example_outputs_1 = [ gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/boots.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/Donut.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/durian.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/pillow_huskies.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/wooden_car.mp4'), autoplay=True) ] example_outputs_2 = [ gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/boots_pro.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/Donut_pro.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/durian_pro.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/pillow_huskies_pro.mp4'), autoplay=True), gr.Video(value=os.path.join(os.path.dirname(__file__), 'example/wooden_car_pro.mp4'), autoplay=True) ] def main(prompt, init_prompt, negative_prompt, num_iter, CFG, seed): if [prompt, init_prompt] in example_inputs: return example_outputs_1[example_inputs.index([prompt, init_prompt])], example_outputs_2[example_inputs.index([prompt, init_prompt])] args, lp, op, pp, gcp, gp = args_parser(default_opt=os.path.join(os.path.dirname(__file__), 'configs/white_hair_ironman.yaml')) gp.text = prompt gp.negative = negative_prompt if len(init_prompt) > 1: gcp.init_shape = 'pointe' gcp.init_prompt = init_prompt else: gcp.init_shape = 'sphere' gcp.init_prompt = '.' op.iterations = num_iter gp.guidance_scale = CFG gp.noise_seed = int(seed) print('==> User Prompt:', gp.text) if os.environ.get('QUEUE_1') != "True": os.environ["CUDA_VISIBLE_DEVICES"] = "0" os.environ['QUEUE_1'] = "True" lp.workspace = 'gradio_demo_1' video_path, pro_video_path = start_training(args, lp, op, pp, gcp, gp) os.environ['QUEUE_1'] = "False" else: os.environ["CUDA_VISIBLE_DEVICES"] = "1" lp.workspace = 'gradio_demo_2' video_path, pro_video_path = start_training(args, lp, op, pp, gcp, gp) return gr.Video(value=video_path, autoplay=True), gr.Video(value=pro_video_path, autoplay=True) with gr.Blocks() as demo: gr.Markdown("#