import gradio as gr import subprocess import os from datetime import datetime from PIL import Image def run_scripts(target, source, use_face_enhancer): output_images = [] # Danh sách để lưu các ảnh đã xử lý for target_file in target: target_extension = os.path.splitext(target_file.name)[-1] # Lấy phần mở rộng của tệp timestamp = datetime.now().strftime("%Y%m%d%H%M%S") output_path1 = f"output_{timestamp}{target_extension}" # Đường dẫn tệp đầu ra # Chạy lệnh subprocess để xử lý ảnh cmd1 = [ "python3", "run.py", "-s", source.name, "-t", target_file.name, "-o", output_path1, "--frame-processor", "face_swapper", "face_enhancer", "--many-faces" ] subprocess.run(cmd1) # Mở ảnh đã được xử lý và thêm vào danh sách output_image = Image.open(output_path1) output_images.append(output_image) return output_images # Trả về danh sách ảnh đã xử lý # Giao diện Gradio iface = gr.Interface( fn=run_scripts, inputs=[ gr.Files(label="Target Files"), # Đầu vào là tệp tin mục tiêu (ảnh/video) gr.File(label="Source File"), # Đầu vào là tệp nguồn (ảnh) gr.Checkbox(label="Use Face Enhancer") # Tùy chọn cho face enhancer ], outputs=gr.Gallery(label="Output Images"), # Đầu ra là các ảnh đã được xử lý title="Face Swapper", description="Upload a target image/video and a source image to swap faces.", live=False ) if __name__ == "__main__": iface.launch()