2024-05-15 12:57:15 +08:00
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
import io
|
|
|
|
|
|
import json
|
|
|
|
|
|
import os
|
|
|
|
|
|
import sys
|
|
|
|
|
|
import clip
|
|
|
|
|
|
import Push_back_Prompt
|
|
|
|
|
|
import public_tools
|
|
|
|
|
|
import shotSplit
|
|
|
|
|
|
|
|
|
|
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
|
|
|
|
|
|
|
2024-06-01 15:08:22 +08:00
|
|
|
|
# 判断sys.argv 的长度,如果小于2,说明没有传入参数,设置初始参数
|
2024-07-13 15:44:13 +08:00
|
|
|
|
# "C:\\Users\\27698\\Desktop\\LAITool\\resources\\scripts\\Lai.exe" -c "D:/来推项目集/7.4/娱乐:江湖大哥退休,去拍电影/scripts/output_crop_00001.json" "NVIDIA"
|
2024-06-01 15:08:22 +08:00
|
|
|
|
if len(sys.argv) < 2:
|
|
|
|
|
|
sys.argv = [
|
|
|
|
|
|
"C:\\Users\\27698\\Desktop\\LAITool\\resources\\scripts\\Lai.exe",
|
2024-07-13 15:44:13 +08:00
|
|
|
|
"-c",
|
2024-10-28 18:38:11 +08:00
|
|
|
|
"C:/Users/27698/Desktop/LAITool/project/73bca563-fd8f-42e3-b08b-e4b2ecbd0d71/scripts/output_00008_video_config.json",
|
|
|
|
|
|
"OTHER",
|
|
|
|
|
|
]
|
|
|
|
|
|
# sys.argv = [
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\LAITool\\resources\\scripts\\Lai.exe",
|
|
|
|
|
|
# "-p",
|
|
|
|
|
|
# "C:/Users/27698/Desktop/LAITool/resources/config/sd_config.json",
|
|
|
|
|
|
# "input",
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\测试\\123",
|
|
|
|
|
|
# ]
|
|
|
|
|
|
# sys.argv = [
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\LAITool\\resources\\scripts\\Lai.exe",
|
|
|
|
|
|
# "-pf",
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\测试\\123\\tmp\\input_crop",
|
|
|
|
|
|
# ]
|
|
|
|
|
|
# sys.argv = [
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\LAITool\\resources\\scripts\\Lai.exe",
|
|
|
|
|
|
# "-ps",
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\测试\\123\\tmp\\input_crop\\00008.png",
|
|
|
|
|
|
# ]
|
|
|
|
|
|
# sys.argv = [
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\LAITool\\resources\\scripts\\Lai.exe",
|
|
|
|
|
|
# "-pt",
|
|
|
|
|
|
# "C:\\Users\\27698\\Desktop\\测试\\123\\tmp\\input_crop\\1.txt",
|
|
|
|
|
|
# ]
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-01 15:08:22 +08:00
|
|
|
|
|
2024-05-15 12:57:15 +08:00
|
|
|
|
print(sys.argv)
|
|
|
|
|
|
|
|
|
|
|
|
if len(sys.argv) < 2:
|
|
|
|
|
|
print("Params: <runtime-config.json>")
|
|
|
|
|
|
exit(0)
|
|
|
|
|
|
|
|
|
|
|
|
if getattr(sys, "frozen", False):
|
|
|
|
|
|
cript_directory = os.path.dirname(sys.executable)
|
|
|
|
|
|
elif __file__:
|
|
|
|
|
|
cript_directory = os.path.dirname(__file__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def set_ffmpeg_env():
|
|
|
|
|
|
# 根据你的ffmpeg路径替换这个
|
2024-06-27 16:24:41 +08:00
|
|
|
|
ffmpeg_path = os.path.join(cript_directory, "../package/ffmpeg/win")
|
2024-05-15 12:57:15 +08:00
|
|
|
|
|
|
|
|
|
|
if sys.platform == "win32":
|
|
|
|
|
|
ffmpeg_path = ffmpeg_path.replace("/", "\\")
|
|
|
|
|
|
|
|
|
|
|
|
# 检查环境变量中是否已经设置
|
|
|
|
|
|
if "PATH" in os.environ:
|
|
|
|
|
|
path_values = os.environ["PATH"]
|
|
|
|
|
|
if ffmpeg_path not in path_values:
|
|
|
|
|
|
os.environ["PATH"] += f";{ffmpeg_path}"
|
|
|
|
|
|
else:
|
|
|
|
|
|
os.environ["PATH"] = ffmpeg_path
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set_ffmpeg_env()
|
|
|
|
|
|
|
|
|
|
|
|
# 执行剪辑的方法
|
|
|
|
|
|
if sys.argv[1] == "-c":
|
2024-06-01 15:08:22 +08:00
|
|
|
|
clip = clip.Clip(cript_directory, sys.argv[2], sys.argv[3])
|
2024-05-15 12:57:15 +08:00
|
|
|
|
clip.MergeVideosAndClip()
|
|
|
|
|
|
pass
|
2024-10-20 23:19:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-05-15 12:57:15 +08:00
|
|
|
|
# 获取字体
|
|
|
|
|
|
elif sys.argv[1] == "-f":
|
|
|
|
|
|
# 获取本地已安装的字幕。然后返回
|
|
|
|
|
|
public_tools = public_tools.PublicTools()
|
|
|
|
|
|
font_list = public_tools.get_installed_fonts()
|
|
|
|
|
|
font_obj_list = []
|
|
|
|
|
|
for font_name in font_list:
|
|
|
|
|
|
obj = {"label": font_name, "value": font_name}
|
|
|
|
|
|
font_obj_list.append(obj)
|
|
|
|
|
|
|
|
|
|
|
|
with open(sys.argv[2], "r", encoding="utf-8") as file:
|
|
|
|
|
|
data = json.load(file)
|
|
|
|
|
|
data["font_name_list"] = font_obj_list
|
|
|
|
|
|
with open(sys.argv[2], "w", encoding="utf-8") as file:
|
|
|
|
|
|
json.dump(data, file, ensure_ascii=False, indent=4)
|
|
|
|
|
|
|
2024-10-28 18:38:11 +08:00
|
|
|
|
# 反推提示词(指定项目下面的input_crop文件夹)
|
2024-05-15 12:57:15 +08:00
|
|
|
|
elif sys.argv[1] == "-p":
|
|
|
|
|
|
Push_back_Prompt.init(sys.argv[2], sys.argv[3], sys.argv[4])
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
2024-10-28 18:38:11 +08:00
|
|
|
|
# 反推指定的文件夹
|
|
|
|
|
|
elif sys.argv[1] == "-pf":
|
|
|
|
|
|
Push_back_Prompt.getAssignDir(sys.argv[2])
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
# 反推指定的图片文件
|
|
|
|
|
|
elif sys.argv[1] == "-ps":
|
|
|
|
|
|
Push_back_Prompt.getAssignImage(sys.argv[2])
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
# 反推指定的图片文件
|
|
|
|
|
|
elif sys.argv[1] == "-pt":
|
|
|
|
|
|
Push_back_Prompt.getAssignTxt(sys.argv[2])
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
2024-06-24 13:11:19 +08:00
|
|
|
|
elif sys.argv[1] == "-ka":
|
|
|
|
|
|
shotSplit.get_fram(sys.argv[2], sys.argv[3], sys.argv[4])
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
2024-10-20 23:19:22 +08:00
|
|
|
|
# # 智能分镜。字幕识别
|
|
|
|
|
|
# elif sys.argv[1] == "-a":
|
|
|
|
|
|
# print("开始算法分镜:" + sys.argv[2] + " -- 输出文件夹:" + sys.argv[3])
|
|
|
|
|
|
# shotSplit.init(sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5], sys.argv[6])
|
|
|
|
|
|
|
|
|
|
|
|
# # 本地提取音频
|
|
|
|
|
|
# elif sys.argv[1] == "-t":
|
|
|
|
|
|
# print("开始提取文字:" + sys.argv[2])
|
|
|
|
|
|
# shotSplit.GetTextTask(sys.argv[2], sys.argv[3], sys.argv[4])
|
|
|
|
|
|
# pass
|