File size: 2,348 Bytes
1393f77
7338c67
9d65aa7
26139de
d5e5583
1393f77
de64520
7338c67
de64520
 
 
 
 
 
 
 
 
 
7338c67
1393f77
26139de
de64520
 
70187df
 
 
 
 
de64520
 
70187df
7338c67
1393f77
 
 
 
 
 
 
de64520
1393f77
7338c67
1393f77
 
b6bdd4a
6af40e7
 
de64520
1393f77
 
4064994
1393f77
de64520
 
7338c67
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
import torch
from diffusers import DiffusionPipeline
import gradio as gr
import spaces

# Load the pre-trained diffusion model
pipe = DiffusionPipeline.from_pretrained('ptx0/pseudo-flex-v2', torch_dtype=torch.bfloat16)
pipe.to('cuda')
import re

def extract_resolution(resolution_str):
    match = re.match(r'(\d+)x(\d+)', resolution_str)
    if match:
        width = int(match.group(1))
        height = int(match.group(2))
        return (width, height)
    else:
        return None

# Define the image generation function with adjustable parameters and a progress bar
@spaces.GPU
def generate(prompt, guidance_scale, guidance_rescale, num_inference_steps, resolution, negative_prompt):
    width, height = extract_resolution(resolution) or (1024, 1024)
    return pipe(
        prompt,
        negative_prompt=negative_prompt,
        guidance_scale=guidance_scale,
        guidance_rescale=guidance_rescale,
        num_inference_steps=num_inference_steps,
        width=width, height=height
    ).images

# Example prompts to demonstrate the model's capabilities
example_prompts = [
    ["A futuristic cityscape at night under a starry sky", 7.5, 25, "blurry, overexposed"],
    ["A serene landscape with a flowing river and autumn trees", 8.0, 20, "crowded, noisy"],
    ["An abstract painting of joy and energy in bright colors", 9.0, 30, "dark, dull"]
]

# Create a Gradio interface, 1024x1024,1152x960,896x1152
iface = gr.Interface(
    fn=generate,
    inputs=[
        gr.Text(label="Enter your prompt"),
        gr.Slider(1, 20, step=0.1, label="Guidance Scale", value=9.5),
        gr.Slider(0, 1, step=0.1, label="Rescale classifier-free guidance", value=0.7),
        gr.Slider(1, 50, step=1, label="Number of Inference Steps", value=25),
        gr.Radio(["1024x1024", "1152x960", "896x1152"], label="Resolution", value="1152x960"),
        gr.Text(value="underexposed, blurry, ugly, washed-out", label="Negative Prompt")
    ],
    outputs=gr.Gallery(height=1024, min_width=1024, columns=2),
    examples=example_prompts,
    title="Flex v2 (SD 2.1-v) Demonstration",
    description="Flex v2 is a multi-aspect finetune of SD 2.1-v (768px) that is up-sized to a base resolution of 1 megapixel (1024px). This model utilises a zero-terminal SNR noise schedule, formulated to allow for very dark and very bright images."
).launch()