File size: 2,067 Bytes
66b0cef
0d2ed9b
b3b13e2
0d2ed9b
66b0cef
0d2ed9b
 
5808f1f
0d2ed9b
 
5808f1f
0d2ed9b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6606b94
0d2ed9b
6606b94
0d2ed9b
b1e1ef0
0d2ed9b
6606b94
0d2ed9b
 
 
 
 
 
 
 
b3b13e2
0d2ed9b
6606b94
0d2ed9b
b3b13e2
0d2ed9b
 
 
 
b3b13e2
0d2ed9b
6606b94
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
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}"
        result = model(modified_text)
        results.append(result)

    return results

def stop_generation():
    """Stops the ongoing image generation by setting the stop_event flag."""
    stop_event.set()
    return ["Generation stopped."] * 3

with gr.Blocks() as interface:#...
    gr.Markdown(
        "### ⚠ Sorry for the inconvenience. The Space 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()