File size: 2,004 Bytes
7566d34
 
 
 
 
 
 
ef39184
 
 
 
 
 
 
7566d34
b651226
 
 
4afdd80
b651226
 
 
 
 
7566d34
 
 
 
 
4afdd80
8953a60
7566d34
 
 
b651226
 
7566d34
 
 
8953a60
 
 
7566d34
 
8953a60
ef39184
7566d34
 
 
 
 
 
ddc6378
 
0274694
 
 
4afdd80
b651226
 
 
 
 
 
 
 
 
 
 
7566d34
 
 
 
 
 
ef39184
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
import gradio as gr
import requests
from PIL import Image
import io
import base64


def base64_to_pil_image(base64_image: str) -> Image.Image:
    image_stream = io.BytesIO(base64.b64decode(base64_image))
    image = Image.open(image_stream)

    return image


def generate_image(
    prompt,
    key,
    model_name,
    specify_uid,
    seed,
    width,
    height,
    # num_inference_steps,
    # guidance_scale,
):
    data = {
        "key": key,
        "model_name": model_name,
        "prompt": prompt,
        "miner_uid": specify_uid,
        "seed": seed,
        "pipeline_params": {
            "width": width,
            "height": height,
            # "num_inference_steps": num_inference_steps,
            # "guidance_scale": guidance_scale,
        },
    }
    response = requests.post(
        "http://proxy_client_nicheimage.nichetensor.com:10003/generate",
        json=data,
        timeout=60,
    )
    base64_image = response.json()
    print(len(base64_image))
    image = base64_to_pil_image(base64_image)
    return image


iface = gr.Interface(
    fn=generate_image,
    inputs=[
        gr.Textbox(label="Prompt", value=""),
        gr.Textbox(label="API Key", value=""),
        gr.Dropdown(
            choices=["RealisticVision", "SDXLTurbo", "AnimeV3"], value="SDXLTurbo"
        ),
        gr.Number(label="Specify Miner UID", value=-1),
        gr.Number(label="Seed", value=0),
        gr.Slider(label="Width", minimum=0, maximum=2048, value=512, step=16),
        gr.Slider(label="Height", minimum=0, maximum=2048, value=512, step=16),
        # gr.Slider(label="Inference Steps", minimum=0, maximum=50, value=30, step=1),
        # gr.Slider(
        #     label="Guidance Scale",
        #     minimum=0,
        #     maximum=1,
        #     value=7,
        #     step=0.1,
        # ),
    ],
    outputs="image",
    title="Image Generation from Text Prompt",
    description="Enter a prompt to generate an image.",
)

iface.queue().launch(share=False)