File size: 3,594 Bytes
3210048
5193654
a6eea5e
 
3210048
237abf7
a6eea5e
3210048
d5809a1
a6eea5e
 
50d6b20
5193654
 
 
d5809a1
64547c7
 
 
 
5193654
a5769c3
d5809a1
 
a6eea5e
5193654
 
 
 
 
b0b7bea
a6eea5e
50d6b20
e0123d5
a6eea5e
e0123d5
a6eea5e
e0123d5
a6eea5e
 
 
 
 
 
 
 
f9694e5
a6eea5e
5193654
 
 
 
 
3210048
5193654
a6eea5e
5193654
a6eea5e
 
5193654
 
50d6b20
a6eea5e
5193654
c3e1273
a6eea5e
50d6b20
5193654
 
a6eea5e
5193654
f9694e5
5193654
a6eea5e
5193654
50d6b20
 
 
 
 
5193654
a6eea5e
5193654
a6eea5e
50d6b20
a6eea5e
50d6b20
 
 
 
 
 
 
 
a6eea5e
50d6b20
 
 
 
 
 
 
 
a6eea5e
50d6b20
a6eea5e
50d6b20
 
 
7f5b062
50d6b20
7f5b062
50d6b20
a6eea5e
50d6b20
a6eea5e
50d6b20
 
 
 
 
 
 
 
a6eea5e
d5809a1
a6eea5e
3210048
 
d5809a1
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import gradio as gr
import numpy as np

import spaces
import torch
import spaces
import random

from diffusers import FluxPipeline
from PIL import Image


MAX_SEED = np.iinfo(np.int32).max
MAX_IMAGE_SIZE = 2048

pipe = FluxPipeline.from_pretrained("Himanshu806/FluxHyperReal", torch_dtype=torch.bfloat16).to("cuda")
pipe.load_lora_weights("Himanshu806/testLora")
# pipe.enable_sequential_cpu_offload()
# pipe.enable_fp16()
pipe.enable_lora()

@spaces.GPU(durations=300)
def infer(prompt, seed=42, randomize_seed=False, width=1024, height=1024, guidance_scale=3.5, num_inference_steps=28, progress=gr.Progress(track_tqdm=True)):
    
    image = pipe(
        prompt=prompt,
        height=height,
        width=width,
        guidance_scale=guidance_scale,
        num_inference_steps=num_inference_steps,
        generator=torch.Generator(device='cuda').manual_seed(seed),
        # lora_scale=0.75 // not supported in this version
    ).images[0]

    output_image_jpg = image.convert("RGB")
    output_image_jpg.save("output.jpg", "JPEG")

    return output_image_jpg, seed
    # return image, seed

examples = [
    "photography of a young woman,  accent lighting,  (front view:1.4),  "
    # "a tiny astronaut hatching from an egg on the moon",
    # "a cat holding a sign that says hello world",
    # "an anime illustration of a wiener schnitzel",
]

css="""
#col-container {
    margin: 0 auto;
    max-width: 1000px;
}
"""

with gr.Blocks(css=css) as demo:

    with gr.Column(elem_id="col-container"):
        gr.Markdown(f"""# FLUX.1 [dev]
        """)
        with gr.Row():
            with gr.Column():
                prompt = gr.Text(
                    label="Prompt",
                    show_label=False,
                    max_lines=2,
                    placeholder="Enter your prompt",
                    container=False,
                )
                run_button = gr.Button("Run")

            result = gr.Image(label="Result", show_label=False)

        with gr.Accordion("Advanced Settings", open=False):

            seed = gr.Slider(
                label="Seed",
                minimum=0,
                maximum=MAX_SEED,
                step=1,
                value=0,
            )

            randomize_seed = gr.Checkbox(label="Randomize seed", value=True)

            with gr.Row():

                width = gr.Slider(
                    label="Width",
                    minimum=256,
                    maximum=MAX_IMAGE_SIZE,
                    step=32,
                    value=1024,
                    visible=False
                )

                height = gr.Slider(
                    label="Height",
                    minimum=256,
                    maximum=MAX_IMAGE_SIZE,
                    step=32,
                    value=1024,
                    visible=False
                )

            with gr.Row():

                guidance_scale = gr.Slider(
                    label="Guidance Scale",
                    minimum=1,
                    maximum=15,
                    step=0.5,
                    value=3.5,
                )

                num_inference_steps = gr.Slider(
                    label="Number of inference steps",
                    minimum=1,
                    maximum=50,
                    step=1,
                    value=28,
                )

    gr.on(
        triggers=[run_button.click, prompt.submit],
        fn = infer,
        inputs = [prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps],
        outputs = [result, seed]
    )

demo.launch()