import gradio as gr import requests import os def faceSwap(file1, file2): # Process the uploaded files (e.g., read content, perform calculations, etc.) # Replace the following lines with your actual processing logic #file1_content = file1.read().decode("utf-8") #file2_content = file2.read().decode("utf-8") #result = f"File 1 content:\n{file1_content}\n\nFile 2 content:\n{file2_content}" #result = "It worked" #FaceSwap Stuff url = "https://api.prodia.com/v1/faceswap" payload = { "sourceUrl": file1, "targetUrl": file2 } headers = { "accept": "application/json", "content-type": "application/json" } api_key=os.getenv("PRODIA_API_KEY") response = requests.post(url, json=payload, headers=headers) if response.status_code == 200: jobNumber = response.json().get("job") print(f"Job created with ID: {jobNumber}") urlBase = f"https://api.prodia.com/v1/job/{jobNumber}" headers = {"accept": "application/json", "X-Prodia-Key": api_key} response = requests.get(urlBase + jobNumber, headers=headers) result = print(response) else: print(f"Couldn't create job. {response.status_code}") return result # Create a Gradio interface with two file upload components iface = gr.Interface( fn=faceSwap, inputs=[ # gr.inputs.File(label="Upload File 1"), # gr.inputs.File(label="Upload File 2") gr.Image(label="Face File", value="FaceFile", interactive=True, show_share_button=True, container=True, type='filepath', sources=('upload', 'webcam', 'clipboard')), gr.Image(label="Body File", value="BodyFile", interactive=True, show_share_button=True, container=True, type='filepath', sources=('upload', 'webcam', 'clipboard')) ], outputs=[ gr.Image(type="pil", show_download_button=True), gr.Image(type="pil", show_download_button=True) ], #gr.Textbox(label="Job Number", placeholder="will fill in when job number received", interactive=False), title="File Upload Interface", description="Upload two files and process them." ) # Launch the Gradio interface iface.launch()