hg-5090 / run.py
wsj1995's picture
feat: update
1a171b7
# 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)