|
import gradio as gr |
|
import torch |
|
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler |
|
from safetensors.torch import load_file |
|
|
|
model_id = "runwayml/stable-diffusion-v1-5" |
|
lora_path = "https://huggingface.co/codermert/model_malika/resolve/main/sarah-lora.safetensors" |
|
|
|
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16) |
|
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) |
|
pipe = pipe.to("cuda") |
|
|
|
|
|
state_dict = load_file(lora_path) |
|
pipe.unet.load_attn_procs(state_dict) |
|
|
|
def generate_image(prompt, negative_prompt, guidance_scale, num_inference_steps): |
|
image = pipe( |
|
prompt=prompt, |
|
negative_prompt=negative_prompt, |
|
guidance_scale=guidance_scale, |
|
num_inference_steps=num_inference_steps |
|
).images[0] |
|
return image |
|
|
|
iface = gr.Interface( |
|
fn=generate_image, |
|
inputs=[ |
|
gr.Textbox(label="Prompt"), |
|
gr.Textbox(label="Negative Prompt"), |
|
gr.Slider(minimum=1, maximum=20, step=0.5, label="Guidance Scale", value=7.5), |
|
gr.Slider(minimum=1, maximum=100, step=1, label="Number of Inference Steps", value=50) |
|
], |
|
outputs=gr.Image(label="Generated Image"), |
|
title="Stable Diffusion with LoRA", |
|
description="Generate images using Stable Diffusion v1.5 with a custom LoRA model." |
|
) |
|
|
|
iface.launch() |