|
import torch, os, gc, random |
|
import gradio as gr |
|
from PIL import Image |
|
from diffusers.utils import load_image |
|
from accelerate import Accelerator |
|
from diffusers import StableDiffusionXLPipeline, EulerDiscreteScheduler |
|
accelerator = Accelerator(cpu=True) |
|
|
|
pipe = accelerator.prepare(StableDiffusionXLPipeline.from_single_file("https://huggingface.co/lllyasviel/fav_models/fav/realisticStockPhoto_v10.safetensors", torch_dtype=torch.bfloat16, use_safetensors=True, variant=None, safety_checker=False)) |
|
pipe = accelerator.prepare(pipe.load_lora_weights("./", local_files_only=False, repo_type="space", adapter_name="SDXL_FILM_PHOTOGRAPHY_STYLE_BetaV0.4.safetensors", weight_name="SDXL_FILM_PHOTOGRAPHY_STYLE_BetaV0.4.safetensors")) |
|
|
|
|
|
|
|
|
|
pipe.to("cpu") |
|
apol=[] |
|
def plex(prompt,neg_prompt,stips,nut): |
|
apol=[] |
|
if nut == 0: |
|
nm = random.randint(1, 2147483616) |
|
while nm % 32 != 0: |
|
nm = random.randint(1, 2147483616) |
|
else: |
|
nm=nut |
|
generator = torch.Generator(device="cpu").manual_seed(nm) |
|
image = pipe(prompt=prompt, negative_prompt=neg_prompt, denoising_end=1.0,num_inference_steps=stips, output_type="pil",generator=generator, cross_attention_kwargs={"scale": 1.0}) |
|
for i, imge in enumerate(image["images"]): |
|
apol.append(imge) |
|
return apol |
|
|
|
iface = gr.Interface(fn=plex, inputs=[gr.Textbox(label="prompt"),gr.Textbox(label="negative prompt",value="ugly, blurry, poor quality"), gr.Slider(label="num inference steps", minimum=1, step=1, maximum=10, value=6),gr.Slider(label="manual seed (leave 0 for random)", minimum=0,step=32,maximum=2147483616,value=0)], outputs=gr.Gallery(label="out", columns=1),description="Running on cpu, very slow! by JoPmt.") |
|
iface.queue(max_size=1,api_open=False) |
|
iface.launch(max_threads=1) |