File size: 2,137 Bytes
66b0cef
0d2ed9b
b3b13e2
0d2ed9b
66b0cef
de26b63
0d2ed9b
 
5808f1f
0d2ed9b
 
5808f1f
de26b63
0d2ed9b
 
de26b63
0d2ed9b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
de26b63
 
 
 
 
 
0d2ed9b
 
 
 
 
6606b94
0d2ed9b
de26b63
0d2ed9b
de26b63
0d2ed9b
de26b63
0d2ed9b
 
 
 
 
 
de26b63
0d2ed9b
de26b63
0d2ed9b
de26b63
0d2ed9b
 
 
 
de26b63
 
 
 
 
 
 
 
 
 
 
 
73a0c03
baf2123
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import gradio as gr
import threading
import os
import torch


os.environ["OMP_NUM_THREADS"] = str(os.cpu_count())
torch.set_num_threads(os.cpu_count())

model1 = gr.load("models/prithivMLmods/SD3.5-Turbo-Realism-2.0-LoRA")
model2 = gr.load("models/Purz/face-projection")


stop_event = threading.Event()


def generate_images(text, selected_model):
    stop_event.clear()

    if selected_model == "Model 1 (Turbo Realism)":
        model = model1
    elif selected_model == "Model 2 (Face Projection)":
        model = model2
    else:
        return ["Invalid model selection."] * 3

    results = []
    for i in range(3):
        if stop_event.is_set():
            return ["Image generation stopped by user."] * 3

        modified_text = f"{text} variation {i+1}"

        try:
            result = model.predict(modified_text)
            results.append(result)
        except Exception as e:
            results.append(f"Error: {str(e)}")

    return results

def stop_generation():
    stop_event.set()
    return ["Generation stopped."] * 3

with gr.Blocks() as interface:
    gr.Markdown(
        "### ⚠ Sorry for the inconvenience. The model is currently running on the CPU, which might affect performance. We appreciate your understanding."
    )

    text_input = gr.Textbox(label="Type here your imagination:", placeholder="Type your prompt...")
    model_selector = gr.Radio(
        ["Model 1 (Turbo Realism)", "Model 2 (Face Projection)"],
        label="Select Model",
        value="Model 1 (Turbo Realism)"
    )

    with gr.Row():
        generate_button = gr.Button("Generate 3 Images")
        stop_button = gr.Button("Stop Image Generation")

    with gr.Row():
        output1 = gr.Image(label="Generated Image 1")
        output2 = gr.Image(label="Generated Image 2")
        output3 = gr.Image(label="Generated Image 3")

    generate_button.click(
        generate_images,
        inputs=[text_input, model_selector],
        outputs=[output1, output2, output3]
    )

    stop_button.click(
        stop_generation,
        inputs=[],
        outputs=[output1, output2, output3]
    )

interface.launch()