File size: 1,827 Bytes
dddb041
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ab14713
66bd20d
8669462
ab14713
 
8669462
ab14713
 
e24c40e
ab14713
10fbca6
06fd0d1
ab14713
059cfb9
bf71179
8669462
 
 
 
 
 
 
 
 
 
538d554
10fbca6
8669462
 
10fbca6
8669462
538d554
c03b3ba
66bd20d
c03b3ba
 
8669462
059cfb9
06fd0d1
c03b3ba
10fbca6
 
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
import gradio as gr
import requests
import io
from PIL import Image
import json
import os

# Load LoRAs from JSON
with open('loras.json', 'r') as f:
    loras = json.load(f)

# API call function
def query(payload, api_url, token):
    headers = {"Authorization": f"Bearer {token}"}
    response = requests.post(api_url, headers=headers, json=payload)
    return io.BytesIO(response.content)

# Define the function to run when the button is clicked
def run_lora(prompt):
    selected_lora = loras[0]
    api_url = f"https://api-inference.huggingface.co/models/{selected_lora['repo']}"
    trigger_word = selected_lora["trigger_word"]
    token = os.getenv("API_TOKEN")
    payload = {"inputs": f"{prompt} {trigger_word}"}
    image_bytes = query(payload, api_url, token)
    return Image.open(image_bytes)


# Gradio UI
print("Before Gradio Interface")

with gr.Blocks(css="custom.css") as app:
    title = gr.HTML("<h1>LoRA the Explorer</h1>")
    gallery = gr.Gallery(
        [(item["image"], item["title"]) for item in loras],
        label="LoRA Gallery",
        allow_preview=False,
        columns=3,
    )
    prompt = gr.Textbox(label="Prompt", lines=1, max_lines=1, placeholder="Type a prompt after selecting a LoRA")
    result = gr.Image(interactive=False, label="Generated Image")

    with gr.Row():
        with gr.Column():  # Removed the width parameter
            title
            gallery
        with gr.Column():  # Removed the width parameter
            prompt
            gr.Button("Run").click(
                fn=run_lora,
                inputs=[prompt],
                outputs=[result]
            )
            result

print("After Gradio Interface")

# Launch the Gradio interface with a queue and specify the width here
app.launch(debug=True, layout=("100%", "100%"))  # Added layout parameter