Spaces:
Runtime error
Runtime error
File size: 3,476 Bytes
f4fd128 a8e0680 f4fd128 77dbb37 1d1d7bc f4fd128 f3f2d57 97321a0 6fd60b5 5e47e5a 6fd60b5 f514c02 5f6827d f4fd128 bfc8304 4b9c74a 75130b2 1d1d7bc 735cac1 f4fd128 bfc8304 5e47e5a 77dbb37 97321a0 65d6f71 f4fd128 f3f2d57 77dbb37 f4fd128 e14b75b 735cac1 e14b75b b54ffb0 97321a0 5f6827d acef489 |
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 |
import gradio as gr
import modin.pandas as pd
import torch
import time
from optimum.intel import OVStableDiffusionXLPipeline
import numpy as np
from PIL import Image
from diffusers import AutoPipelineForImage2Image
from diffusers.utils import load_image
import math
from DeepCache import DeepCacheSDHelper
adapter_id = "latent-consistency/lcm-lora-sdv1-5"
device = "cuda" if torch.cuda.is_available() else "cpu"
# helper = DeepCacheSDHelper(pipe=pipe)
# helper.set_params(
# cache_interval=3,
# cache_branch_id=0,
# )
# helper.enable()
# pipe.compile()
def resize(target_size,source):
original_width,original_height =source.size
aspect_ratio = original_height / original_width
# 计算新的高度以保持宽高比,假设我们先确定宽度为512像素
new_width = target_size
new_height = int(new_width*aspect_ratio)
# 如果新高度超过目标大小,则重新计算宽度以保持目标高度
if new_height > target_size:
new_height = target_size
new_width = int(new_height / aspect_ratio)
print("宽高",original_height,original_width,aspect_ratio,new_height)
# 等比例缩放图片
# resized_image = Image.fromarray(image_array).resize((new_width, new_height), resample=Image.LANCZOS)
resized_image =source.resize((new_width, new_height))
return resized_image
def infer(model_id,source_img, prompt, steps, seed, Strength):
pipe = OVStableDiffusionImg2ImgPipeline.from_pretrained(model_id, torch_dtype=torch.float16, export=True) if torch.cuda.is_available() else AutoPipelineForImage2Image.from_pretrained("stabilityai/sdxl-turbo")
pipe = pipe.to(device)
# pipe.scheduler = TCDScheduler.from_config(pipe.scheduler.config)
# tcd_lora_id = "h1t/TCD-SDXL-LoRA"
# pipe.load_lora_weights(tcd_lora_id)
# pipe.fuse_lora()
start_time = time.time()
generator = torch.Generator(device).manual_seed(seed)
if int(steps * Strength) < 1:
steps = math.ceil(1 / max(0.10, Strength))
source_image = resize(512, source_img)
source_image.save('source.png')
image = pipe(prompt, image=source_image, strength=Strength, guidance_scale=0.0, num_inference_steps=steps).images[0]
end_time = time.time()
elapsed_time = end_time - start_time
print("生成时间",elapsed_time)
return image
gr.Interface(fn=infer, inputs=[
gr.Text(value="IDKiro/sdxs-512-dreamshaper", label="Checkpoint"),
gr.Image(sources=["upload", "webcam", "clipboard"], type="filepath", label="Raw Image."),
gr.Textbox(label = 'Prompt Input Text. 77 Token (Keyword or Symbol) Maximum'),
gr.Slider(1, 5, value = 2, step = 1, label = 'Number of Iterations'),
gr.Slider(label = "Seed", minimum = 0, maximum = 987654321987654321, step = 1, randomize = True),
gr.Slider(label='Strength', minimum = 0.1, maximum = 1, step = .05, value = .5)],
outputs='image', title = "Stable Diffusion XL Turbo Image to Image Pipeline CPU", description = "For more information on Stable Diffusion XL Turbo see https://huggingface.co/stabilityai/sdxl-turbo <br><br>Upload an Image, Use your Cam, or Paste an Image. Then enter a Prompt, or let it just do its Thing, then click submit. For more informationon about Stable Diffusion or Suggestions for prompts, keywords, artists or styles see https://github.com/Maks-s/sd-akashic",
article = "Code Monkey: <a href=\"https://huggingface.co/Manjushri\">Manjushri</a>").queue(max_size=10).launch() |