import gradio as gr import requests import os #import json 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" api_key=os.getenv("PRODIA_API_KEY") payload = { "sourceUrl": f"https://thefisher86-faceswappa.hf.space/file={file1}", "targetUrl": f"https://thefisher86-faceswappa.hf.space/file={file2}" } headers = { "accept": "application/json", "content-type": "application/json", "X-Prodia-Key": api_key } print(url) print(payload) print(headers) 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 = "https://api.prodia.com/v1/job/" headers = {"accept": "application/json", "content-type": "application/json", "X-Prodia-Key": api_key} jobResponse = requests.get(urlBase + jobNumber, headers=headers) print(f"JobResponse Value: {jobResponse}") print(f"Job Status Code: {jobResponse.status_code}") genStatus = jobResponse.json() print(f"Status: {genStatus}") result = f"https://images.prodia.xyz/{jobNumber}.png" #result = "yay" else: print(f"Couldn't create job. {response.status_code}") result = "fuck" 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.Textbox(label="Result") #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()