File size: 2,609 Bytes
1113be8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bd32945
1113be8
 
 
 
 
 
 
bd32945
1113be8
bd32945
1113be8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bd32945
1113be8
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from diffusers import DiffusionPipeline
from diffusers import EDMDPMSolverMultistepScheduler
import torch
import numpy as np
import argparse
import random
import gradio as gr

# Replace it with your function that takes the necessary inputs, including the steps.
def generate_image(prompt, negative_prompt, seed, width, height, guidance_scale, steps):

    print(f'generating: {prompt}, seed: {seed}, steps: {steps}, width: {width}, height: {height}')

    pipe = DiffusionPipeline.from_pretrained(
        "playgroundai/playground-v2.5-1024px-aesthetic",
        torch_dtype=torch.float16,
        variant="fp16",
    ).to("cuda")

    # # Optional: Use DPM++ 2M Karras scheduler for crisper fine details
    pipe.scheduler = EDMDPMSolverMultistepScheduler()

    # Check seed
    generator = None
    if seed == -1:
        generator = torch.Generator("cuda").manual_seed(12167262721866862)
    else:
        generator = torch.Generator("cuda").manual_seed(seed)
    image = pipe(prompt=prompt, num_inference_steps=steps, negative_prompt=negative_prompt, height=height, 
                 generator=generator, width=width, guidance_scale=guidance_scale).images[0]
    print('Image generated...')
    return image


# Setup argparse
parser = argparse.ArgumentParser(description="Launch the Gradio app")
parser.add_argument('--host', type=str, default='10.0.0.4', help='Host name (default: 10.0.0.4 to run on local network)')
parser.add_argument('--port', type=int, default=8877, help='Port number (default: 8877)')
parser.add_argument('--share', type=bool, default=False, help='Share port on internet')

# Parse arguments from the command line
args = parser.parse_args()

# Define the interface with the added "Steps" slider
iface = gr.Interface(
    fn=generate_image, 
    inputs=[
        gr.Textbox(lines=4, placeholder="Enter your prompt"),
        gr.Textbox(lines=4, placeholder="Enter a negative prompt"),
        gr.Slider(minimum=-1, maximum=100000000, value=-1, label="Seed"),
        gr.Slider(minimum=720, maximum=1280, value=1024, label="Width"),
        gr.Slider(minimum=720, maximum=1280, value=1024, label="Height"),
        gr.Slider(minimum=1, maximum=10, value=3, label="Guidance Scale"),
        gr.Slider(minimum=0, maximum=100, value=30, label="Steps")  # Added "Steps" slider
    ], 
    outputs=gr.Image(type="pil", label="Generated Image"),
    title="My Playground v2.5",
    description="Adjust the settings below to generate your image.",
    theme="default"  # You can set it to "dark" if you want a dark theme similar to your screenshot
)

# Launch the interface
iface.launch(
)