Skip to content

Commit 311230c

Browse files
Update sd-xl to genai usage (#2728)
CVS-161647
1 parent c32dc1e commit 311230c

File tree

2 files changed

+93
-106
lines changed

2 files changed

+93
-106
lines changed

notebooks/stable-diffusion-xl/gradio_helper.py

+23-9
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
import gradio as gr
22
from diffusers.utils import load_image
33
import numpy as np
4+
from PIL import Image
5+
6+
import openvino as ov
7+
import openvino_genai as ov_genai
48

59

610
# TODO Consider reusing make_demo_segmind_vegart
711
def make_demo_sd_xl_text2image(pipeline):
812
def generate_from_text(text, seed, num_steps):
9-
result = pipeline(
13+
image_tensor = pipeline.generate(
1014
text,
1115
num_inference_steps=num_steps,
12-
generator=np.random.RandomState(seed),
1316
height=512,
1417
width=512,
15-
).images[0]
16-
return result
18+
generator=ov_genai.TorchGenerator(seed),
19+
)
20+
image = Image.fromarray(image_tensor.data[0])
21+
22+
return image
1723

1824
with gr.Blocks() as demo:
1925
with gr.Column():
@@ -59,13 +65,21 @@ def make_demo_sd_xl_image2image(pipeline):
5965
)
6066

6167
def generate_from_image(text, image, seed, num_steps):
62-
result = pipeline(
68+
def image_to_tensor(image: Image) -> ov.Tensor:
69+
pic = image.convert("RGB")
70+
image_data = np.array(pic.getdata()).reshape(1, pic.size[1], pic.size[0], 3).astype(np.uint8)
71+
return ov.Tensor(image_data)
72+
73+
init_image = image_to_tensor(image)
74+
photo_image_tensor = pipeline.generate(
6375
text,
64-
image=image,
76+
image=init_image,
6577
num_inference_steps=num_steps,
66-
generator=np.random.RandomState(seed),
67-
).images[0]
68-
return result
78+
generator=ov_genai.TorchGenerator(seed),
79+
)
80+
photo_image = Image.fromarray(photo_image_tensor.data[0])
81+
82+
return photo_image
6983

7084
with gr.Blocks() as demo:
7185
with gr.Column():

0 commit comments

Comments
 (0)