| # import spaces | |
| import gradio as gr | |
| # import os | |
| # import requests | |
| # import subprocess | |
| # import time | |
| # import socket | |
| # from datetime import datetime | |
| # import uuid | |
| # from huggingface_hub import hf_hub_download | |
| # import os | |
| # import shutil | |
| # def formatNow(): | |
| # now = datetime.now() | |
| # return now.strftime("%Y-%m-%d %H:%M:%S") | |
| # def is_port_in_use(port): | |
| # with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: | |
| # try: | |
| # s.bind(("", port)) | |
| # except socket.error as e: | |
| # return True | |
| # return False | |
| # def wait_for_process_to_start(port, timeout=60, interval=1): | |
| # """Wait for the process to start and bind to the specified port.""" | |
| # start_time = time.time() | |
| # while time.time() - start_time < timeout: | |
| # if is_port_in_use(port): | |
| # print(f"Port {port} is now in use.") | |
| # return True | |
| # time.sleep(interval) | |
| # print(f"Timed out waiting for port {port} to be in use.") | |
| # return False | |
| # # @spaces.GPU(duration=120) | |
| # def greet(name): | |
| # # run() | |
| # command = [ | |
| # '/home/user/app/python39/bin/python3', | |
| # 'app_local.py', | |
| # ] | |
| # # def run_app_local(): | |
| # # os.chdir("/home/user/app/codes") | |
| # # os.execv( | |
| # # "/home/user/app/python39/bin/python3", | |
| # # ["python3", "app_local.py"] | |
| # # ) | |
| # port = 8383 | |
| # if is_port_in_use(port): | |
| # print(f"{formatNow()} HeyGem 已启动") | |
| # else: | |
| # print(f"{formatNow()} HeyGem 开始启动") | |
| # start = time.time() | |
| # # p = multiprocessing.Process(target=run_app_local) | |
| # # p.start() | |
| # subprocess.Popen(command, cwd="/dev/shm/codes") | |
| # if wait_for_process_to_start(port=port): | |
| # end = time.time() | |
| # print(f"{formatNow()} HeyGem 启动成功 耗时{end-start}秒") | |
| # # os.system('cd /home/user/app/codes && /home/user/app/python39/bin/python3 app_local.py') | |
| # requests.post(f'http://127.0.0.1:{port}/easy/submit',json={ | |
| # "audio_url": "/home/user/app/examples/audio.wav", | |
| # "video_url": "/home/user/app/examples/video.mp4", | |
| # "code": name, | |
| # "chaofen": 0, | |
| # "watermark_switch": 0, | |
| # "pn": 1 | |
| # }) | |
| # print(f"{formatNow()} HeyGem 运行结束") | |
| # return f"/home/user/app/data/result/{name}-r.mp4" | |
| # @spaces.GPU(duration=120) | |
| # def test(name): | |
| # command = [ | |
| # '/home/user/app/python39/bin/python3', | |
| # 'test.py', | |
| # ] | |
| # process = subprocess.Popen(command, cwd="/dev/shm/codes") | |
| # process.wait() | |
| # print(f"{formatNow()} HeyGem 运行结束") | |
| # return f"/dev/shm/codes/data/temp/test-r.mp4" | |
| # def generate_uuid(): | |
| # """生成一个新的UUID""" | |
| # return str(uuid.uuid4()) | |
| # def refresh_uuid(): | |
| # """当按钮被点击时,返回一个新的UUID以更新Textbox""" | |
| # return generate_uuid() | |
| # with gr.Blocks() as demo: | |
| # gr.Markdown("### 输入视频文件名或视频链接,点击显示") | |
| # code = gr.Textbox(label="code", value=generate_uuid()) | |
| # video_output = gr.Video(label="视频播放") | |
| # btn = gr.Button("运行") | |
| # # 刷新UUID的按钮 | |
| # refresh_button = gr.Button("刷新UUID") | |
| # # 按钮点击事件绑定 | |
| # refresh_button.click(fn=refresh_uuid, outputs=code) | |
| # btn.click(fn=greet, inputs=code, outputs=video_output) | |
| # # demo = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| # demo.launch(server_port=8791) | |
| # import spaces | |
| # import subprocess | |
| # @spaces.GPU | |
| # def run(): | |
| # command = [ | |
| # '/home/user/app/python39/bin/python3', | |
| # 'test.py', | |
| # ] | |
| # process = subprocess.Popen(command, cwd="/dev/shm/codes") | |
| # process.wait() | |
| # print(f"{formatNow()} HeyGem 运行结束") | |
| # run() | |
| def greet(video_input:str,audio_input:str): | |
| print(json.dumps({ | |
| 'video_input': video_input, | |
| 'audio_input': audio_input, | |
| })) | |
| return None | |
| with gr.Blocks() as demo: | |
| gr.Markdown("### 输入视频文件名或视频链接,点击显示") | |
| with gr.Row(): | |
| video_input = gr.Video(label='上传视频', scale=13) | |
| audio_input = gr.Audio(label='上传音频', scale=13) | |
| video_output = gr.Video(label="视频播放") | |
| btn = gr.Button("运行") | |
| btn.click(fn=greet, inputs=[video_input,audio_input], outputs=video_output) | |
| # demo = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| if __name__ == "__main__": | |
| demo.launch(server_port=8790) | |