Spaces:
Running
on
Zero
Running
on
Zero
import gradio as gr | |
import torch | |
from PIL import Image | |
from src.pipeline_pe_clone import FluxPipeline | |
import spaces | |
import os | |
import huggingface_hub | |
huggingface_hub.login(os.getenv('HF_TOKEN_FLUX2')) | |
# Load default image from assets as an example | |
default_image = Image.open("assets/1.png") | |
pipeline = FluxPipeline.from_pretrained( | |
"black-forest-labs/FLUX.1-dev", | |
torch_dtype=torch.bfloat16, | |
).to('cuda') | |
def generate_image(image, prompt, guidance_scale, num_steps, lora_name): | |
# Load the model | |
# Load and fuse base LoRA weights | |
# pipeline.load_lora_weights("nicolaus-huang/PhotoDoodle", weight_name="pretrain.safetensors") | |
# pipeline.fuse_lora() | |
# pipeline.unload_lora_weights() | |
# Load selected LoRA effect if not using the pretrained base model | |
pipeline.load_lora_weights("nicolaus-huang/PhotoDoodle", weight_name=f"{lora_name}.safetensors") | |
pipeline.fuse_lora() | |
height=768 | |
width=512 | |
# Prepare the input image | |
condition_image = image.resize((height, width)).convert("RGB") | |
# Generate the output image | |
result = pipeline( | |
prompt=prompt, | |
condition_image=condition_image, | |
height=height, | |
width=width, | |
guidance_scale=guidance_scale, | |
num_inference_steps=num_steps, | |
max_sequence_length=512 | |
).images[0] | |
final_image = image.resize(image.size) | |
return final_image | |
# Define examples to be shown within the Gradio interface | |
examples = [ | |
# Each example is a list corresponding to the inputs: | |
# [Input Image, Prompt, Guidance Scale, Number of Steps, LoRA Name] | |
["assets/1.png", "add a halo and wings for the cat by sksmagiceffects", 3.5, 20, "sksmagiceffects"] | |
] | |
# Create Gradio interface with sliders for numeric inputs | |
iface = gr.Interface( | |
fn=generate_image, | |
inputs=[ | |
gr.Image(label="Input Image", type="pil", value=default_image), | |
# gr.Slider(label="Height", value=768, minimum=256, maximum=1024, step=64), | |
# gr.Slider(label="Width", value=512, minimum=256, maximum=1024, step=64), | |
gr.Textbox(label="Prompt", value="add a halo and wings for the cat by sksmagiceffects"), | |
gr.Slider(label="Guidance Scale", value=3.5, minimum=1.0, maximum=10.0, step=0.1), | |
gr.Slider(label="Number of Steps", value=20, minimum=1, maximum=100, step=1), | |
gr.Dropdown( | |
label="LoRA Name", | |
choices=["pretrained", "sksmagiceffects", "sksmonstercalledlulu", | |
"skspaintingeffects", "sksedgeeffect", "skscatooneffect"], | |
value="sksmagiceffects" | |
) | |
], | |
outputs=gr.Image(label="Output Image", type="pil"), | |
title="FLUX Image Generation with LoRA", | |
examples=examples | |
) | |
if __name__ == "__main__": | |
iface.launch() | |