Created
November 26, 2023 12:05
-
-
Save garywill/04470635b276d79ed15c0fdd7b4295ab to your computer and use it in GitHub Desktop.
gradio
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3.11 | |
import sys, os | |
os.system('uname -a') | |
os.system('id') | |
os.system('cat /etc/os-release') | |
from datetime import datetime | |
app_start_time = datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") | |
print('App start time: ', app_start_time) | |
import glob | |
print("trying to import backend") | |
sys.path.append(os.path.join(os.path.dirname(__file__), './kkkkkk')) | |
import main | |
print('finish importing backend') | |
print("trying to import gradio") | |
import gradio as gr | |
print('finish importing gradio') | |
############################################################ | |
def greet(video, enable_area, ymin, ymax, xmin, xmax): | |
print('输入的文件为', video) | |
debug_output = "" | |
srt_file_content = "" | |
srt_file_path = None | |
if not video: | |
debug_output += "ERROR: input video is not true \n" | |
srt_file_content = "ERROR: input video is not true" | |
if enable_area: | |
subtitle_area = (ymin, ymax, xmin, xmax) | |
else: | |
subtitle_area = None | |
if video: | |
print("检测到输入video对象,准备开始处理") | |
print('开始于 ', datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") ) | |
debug_output += '开始于 ' + datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") + '\n' | |
( srt_file_content , srt_file_path , sub_debug_output) = main.main(video, subtitle_area ) | |
print('完成于 ', datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") ) | |
debug_output += '完成于 ' + datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") + '\n' | |
debug_output += sub_debug_output + '\n' | |
print('---------运行输出结果------\n\n') | |
print(srt_file_content) | |
print('\n-------------------------\n') | |
if not srt_file_path or (srt_file_path and not os.path.isfile(srt_file_path) ) : | |
debug_output += 'ERROR: srt file path ' + srt_file_path + ' file not valid \n' | |
srt_file_path = None | |
return \ | |
srt_file_content , \ | |
srt_file_path, \ | |
debug_output, \ | |
############################################################ | |
allFilesGlob = '/tmp/gradio/*/**' | |
def getAllFiles(): | |
all_possible_files = [] | |
for x in glob.glob(allFilesGlob, recursive=True): | |
if os.path.isfile(x): | |
print('找到个可能文件',x) | |
all_possible_files.append(x) | |
print(all_possible_files) | |
return all_possible_files | |
def delAllFiles(): | |
for x in glob.glob(allFilesGlob, recursive=True): | |
if os.path.isfile(x): | |
print('deleting file', x) | |
os.remove(x) | |
return "Finished deleting all files in " + allFilesGlob | |
#################################################################### | |
print('setting gradio interface') | |
with gr.Blocks() as app: | |
gr.Markdown("kkkkkkkkkkkkkkk") | |
with gr.Tab("VSE"): | |
with gr.Row(): | |
with gr.Column(): | |
inputs = [ | |
gr.Video(label='input video with enbedded subtitle'), | |
gr.Checkbox(label='enable area'), | |
gr.Slider(0, 10000, value=800, step=1, label="y min"), | |
gr.Slider(0, 10000, value=1079, step=1, label="y max"), | |
gr.Slider(0, 20000, value=1, step=1, label="x min"), | |
gr.Slider(0, 20000, value=1910, step=1, label="x max"), | |
] | |
btn_vse = gr.Button("Run VSE") | |
with gr.Column(): | |
outputs = [ | |
gr.Textbox(label="subtitle srt content"), | |
gr.File(label="output subtitle srt file"), | |
gr.Textbox(label="debug output"), | |
] | |
with gr.Tab("get files"): | |
btn_allfiles = gr.Button("Get all files") | |
outputs2 = [gr.File(label='all possible files')] | |
with gr.Tab('del files'): | |
btn_delfiles = gr.Button("Delete all gradio tmp files") | |
outputs3 = [gr.Textbox()] | |
btn_vse.click(greet, inputs=inputs, outputs=outputs) | |
btn_allfiles.click(getAllFiles, inputs=[], outputs=outputs2) | |
btn_delfiles.click(delAllFiles, inputs=[], outputs=outputs3) | |
# app = gr.Interface(fn=greet, inputs=inputs, outputs=outputs) | |
print('launching gradio app') | |
app.queue(max_size=30, api_open=True) | |
app.launch( show_error=True, server_name='0.0.0.0' ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment