File size: 2,114 Bytes
26d2e03
39efdd8
26d2e03
cb2e1df
de28a32
 
 
 
 
cb2e1df
 
 
 
 
d9f403e
033cfaf
cb2e1df
 
 
 
 
 
 
 
bf0b2b5
 
 
 
 
cb2e1df
c7a5f79
2cc57d5
c7a5f79
2cc57d5
c7a5f79
2cc57d5
c7a5f79
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
59
60
61
import gradio as gr
import requests

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"
    }
    
    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}")
    else:
        print(f"Couldn't create job. {response.status_code}")

    urlBase = "https://api.prodia.com/v1/job/"

    headers = {"accept": "application/json"}

    response = requests.get(urlBase + jobNumber, headers=headers)

    result = print(response.imageURL)
    
    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()