Spaces:
Runtime error
Runtime error
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 = f"https://api.prodia.com/v1/job/{jobNumber}" | |
headers = {"accept": "application/json", "X-Prodia-Key": api_key} | |
jobResponse = requests.get(urlBase + jobNumber, headers=headers) | |
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() | |