File size: 2,520 Bytes
360304e
f65c76f
88bb627
360304e
f65c76f
 
 
 
360304e
e57df08
f65c76f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e57df08
f65c76f
 
 
 
 
 
 
 
 
 
88bb627
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360304e
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
import gradio as gr
from image_generator import ImageGenerator
import os

ig = ImageGenerator(g=7.5)
print(ig)
ig.load_models()
ig.load_scheduler()

def call(prompt, mix_prompt, mix_ratio, negative_prompt, steps, init_image ):

    print(f"{prompt=} {mix_prompt=} {mix_ratio=} {negative_prompt=} {steps=} {init_image=} ")
    generated_image, latents = ig.generate(
        prompt=prompt,
        secondary_prompt=mix_prompt,
        prompt_mix_ratio=mix_ratio,    
        negative_prompt=negative_prompt,
        steps=steps,
        init_image=init_image, 
        latent_callback_mod=None )

    if init_image is not None:
        noisy_latent = latents[1]
    else:
        noisy_latent = None

    return generated_image, noisy_latent

iface = gr.Interface(
    fn=call, 
    inputs=[
        gr.Textbox(value="a cute dog", label="Prompt", info="primary prompt used to generate an image"),
        gr.Textbox(value=None, label="Secondary Prompt",  info="secondary prompt to mix with the primary embeddings"),
        gr.Slider(0, 1, value=0.5, label="Mix Ratio", info="mix ratio between primary and secondary prompt. 0 = primary only. 1 = secondary only"),
        gr.Textbox(value=None, label="Negative Prompt", info="remove certain aspect from the picture"),
        gr.Slider(10, 50, value=30, step=1, label="Generation Steps", info="How many steps are used to generate the picture"),
        gr.Image(type="pil", value=None, label="Starting Image",), # info="starting image from this image as opposed to random noise"
        ],
    outputs=[
        gr.Image(type="pil", label="Generated Image",),
        gr.Image(type="pil", label="Starting Image with Added Noise" ) ],
    examples=[ 
        # simple prompt
        ["a cute dog", None, None, None, 5, None],

        # negative prompt
        ["a beautiful tree", None, None, "green", 5, None],

        ["a dancer, high resolution, 4k", None, None, None, 5, None],

        # with base image
        ["a painting of Paris at night in the style of Monet", None, None, None, 5, os.path.join( os.path.dirname(__file__), "examples/ex4.jpg")],


        ["p1", None, 0.3, None, 5, None],
        ["p1", None, 0.3, None, 5, None],
        ["p1", None, 0.3, None, 5, None],
        ["p1", None, 0.3, None, 5, None],
        ["p1", None, 0.3, None, 5, None],
        ["p1", None, 0.3, None, 5, None],
        ["p1", None, 0.3, None, 5, None],
    ]
    )

# [(os.path.join(os.path.dirname(__file__), f"examples/ex{x}.jpg")) for x in range(1,11)]
iface.launch()