File size: 2,199 Bytes
26d2e03
39efdd8
daee6bf
26d2e03
cb2e1df
de28a32
 
 
 
 
cb2e1df
 
 
 
 
d9f403e
033cfaf
cb2e1df
 
 
 
 
daef7a0
cb2e1df
 
bf0b2b5
 
 
9ecd4e4
daef7a0
36d894e
9ecd4e4
bf0b2b5
 
2cc57d5
de28a32
 
 
 
cb2e1df
de28a32
 
 
583d821
 
cb2e1df
 
 
 
de28a32
ed352b4
de28a32
 
679d980
 
de28a32
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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()