Himanshu806's picture
Update app.py
7f5b062 verified
raw
history blame
3.59 kB
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()