File size: 3,421 Bytes
8f691f9
 
 
 
1cce0f0
8f691f9
1cce0f0
 
 
8f691f9
46b3e30
17110ca
f4fc7fd
3d3da57
8f83107
 
dea1924
 
1cce0f0
 
 
 
 
 
8f691f9
 
1cce0f0
8f691f9
1cce0f0
 
dea1924
ad687bc
55485d5
a17b4a1
46637c1
2977066
 
 
 
1cce0f0
 
edfa13e
 
1cce0f0
e442d7e
8f691f9
 
52ee8e4
 
f240343
dea1924
1cce0f0
503b512
1cce0f0
8f691f9
 
 
 
1cce0f0
8f691f9
1cce0f0
 
0cc25eb
8f691f9
 
 
 
 
 
 
 
 
1cce0f0
 
8f691f9
 
 
 
 
f240343
8f691f9
 
 
 
 
 
 
 
 
 
1cce0f0
8f691f9
 
 
 
 
 
 
 
 
 
 
7193aee
8f691f9
 
 
 
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import gradio as gr
import numpy as np
import random
from diffusers import DiffusionPipeline
from optimum.intel.openvino.modeling_diffusion import OVModelVaeDecoder, OVBaseModel, OVStableDiffusionPipeline
import torch
from huggingface_hub import snapshot_download
import openvino.runtime as ov
from typing import Optional, Dict

model_id = "Disty0/SoteMixV3"
#model_id = "Disty0/sotediffusion-v2" #不可

#1024*512 記憶體不足
HIGH=512
WIDTH=512


batch_size = -1
class CustomOVModelVaeDecoder(OVModelVaeDecoder):
    def __init__(
        self, model: ov.Model, parent_model: OVBaseModel, ov_config: Optional[Dict[str, str]] = None, model_dir: str = None,
    ):
        super(OVModelVaeDecoder, self).__init__(model, parent_model, ov_config, "vae_decoder", model_dir)


pipe = OVStableDiffusionPipeline.from_pretrained(model_id, compile = False, ov_config = {"CACHE_DIR":""})

taesd_dir = snapshot_download(repo_id="deinferno/taesd-openvino")
pipe.vae_decoder = CustomOVModelVaeDecoder(model = OVBaseModel.load_model(f"{taesd_dir}/vae_decoder/openvino_model.xml"), parent_model = pipe, model_dir = taesd_dir)
pipe.reshape( batch_size=-1, height=HIGH, width=WIDTH, num_images_per_prompt=1)
pipe.load_textual_inversion("./badhandv4.pt", "badhandv4")
#pipe.load_textual_inversion("./Konpeto.pt", "Konpeto")
#<shigure-ui-style>
pipe.load_textual_inversion("sd-concepts-library/shigure-ui-style")
pipe.load_textual_inversion("sd-concepts-library/ruan-jia")
pipe.load_textual_inversion("sd-concepts-library/agm-style-nao")


pipe.compile()

prompt=""
negative_prompt=""

def infer(prompt,negative_prompt):

    image = pipe(
        prompt = prompt, 
        negative_prompt = negative_prompt,
        width = HIGH, 
        height = WIDTH,
        guidance_scale=1.0,
        num_inference_steps=8,
        num_images_per_prompt=1,
    ).images[0] 
    
    return image


examples = [
    "A cute kitten, Japanese cartoon style.",
    "A sweet family, dad stands next to mom, mom holds baby girl.",
    "(illustration, 8k CG, extremely detailed),(whimsical),catgirl,teenage girl,playing in the snow,winter wonderland,snow-covered trees,soft pastel colors,gentle lighting,sparkling snow,joyful,magical atmosphere,highly detailed,fluffy cat ears and tail,intricate winter clothing,shallow depth of field,watercolor techniques,close-up shot,slightly tilted angle,fairy tale architecture,nostalgic,playful,winter magic,(masterpiece:2),best quality,ultra highres,original,extremely detailed,perfect lighting,",
]

css="""
#col-container {
    margin: 0 auto;
    max-width: 520px;
}
"""


power_device = "CPU"

with gr.Blocks(css=css) as demo:
    
    with gr.Column(elem_id="col-container"):
        gr.Markdown(f"""
        # Disty0/LCM_SoteMix {HIGH}x{WIDTH}
        Currently running on {power_device}.
        """)
        
        with gr.Row():
            prompt = gr.Text(
                label="Prompt",
                show_label=False,
                max_lines=1,
                placeholder="Enter your prompt",
                container=False,
            )         
            run_button = gr.Button("Run", scale=0)
        
        result = gr.Image(label="Result", show_label=False)

        gr.Examples(
            examples = examples,
            inputs = [prompt]
        )

    run_button.click(
        fn = infer,
        inputs = [prompt],
        outputs = [result]
    )

demo.queue().launch()