Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -2,14 +2,13 @@ import gradio as gr
|
|
| 2 |
import torch
|
| 3 |
from PIL import Image
|
| 4 |
from diffusers import AutoPipelineForText2Image, DDIMScheduler
|
| 5 |
-
from transformers import CLIPVisionModelWithProjection
|
| 6 |
import numpy as np
|
|
|
|
| 7 |
|
| 8 |
-
# Initialize the pipeline
|
| 9 |
pipeline = AutoPipelineForText2Image.from_pretrained(
|
| 10 |
"stabilityai/stable-diffusion-xl-base-1.0",
|
| 11 |
-
torch_dtype=torch.float16
|
| 12 |
-
device="cuda", # Use GPU device if available
|
| 13 |
)
|
| 14 |
|
| 15 |
# Configure the scheduler for the pipeline
|
|
@@ -26,10 +25,11 @@ pipeline.load_ip_adapter(
|
|
| 26 |
)
|
| 27 |
pipeline.set_ip_adapter_scale([0.7, 0.5])
|
| 28 |
|
| 29 |
-
#
|
| 30 |
-
|
| 31 |
-
|
| 32 |
def transform_image(face_image):
|
|
|
|
|
|
|
| 33 |
generator = torch.Generator(device="cuda").manual_seed(0)
|
| 34 |
|
| 35 |
# Process the input face image
|
|
@@ -49,10 +49,12 @@ def transform_image(face_image):
|
|
| 49 |
prompt="soyjak",
|
| 50 |
ip_adapter_image=[style_image, processed_face_image],
|
| 51 |
negative_prompt="monochrome, lowres, bad anatomy, worst quality, low quality",
|
| 52 |
-
num_inference_steps=
|
| 53 |
generator=generator,
|
| 54 |
).images[0]
|
| 55 |
|
|
|
|
|
|
|
| 56 |
return image
|
| 57 |
|
| 58 |
# Gradio interface setup
|
|
|
|
| 2 |
import torch
|
| 3 |
from PIL import Image
|
| 4 |
from diffusers import AutoPipelineForText2Image, DDIMScheduler
|
|
|
|
| 5 |
import numpy as np
|
| 6 |
+
import spaces # Make sure to import spaces
|
| 7 |
|
| 8 |
+
# Initialize the pipeline without specifying the device; this will be handled by the @spaces.GPU decorator
|
| 9 |
pipeline = AutoPipelineForText2Image.from_pretrained(
|
| 10 |
"stabilityai/stable-diffusion-xl-base-1.0",
|
| 11 |
+
torch_dtype=torch.float16
|
|
|
|
| 12 |
)
|
| 13 |
|
| 14 |
# Configure the scheduler for the pipeline
|
|
|
|
| 25 |
)
|
| 26 |
pipeline.set_ip_adapter_scale([0.7, 0.5])
|
| 27 |
|
| 28 |
+
# Decorate the transform_image function to run on GPU
|
| 29 |
+
@spaces.GPU
|
|
|
|
| 30 |
def transform_image(face_image):
|
| 31 |
+
# Move the pipeline to GPU inside the function
|
| 32 |
+
pipeline.to("cuda")
|
| 33 |
generator = torch.Generator(device="cuda").manual_seed(0)
|
| 34 |
|
| 35 |
# Process the input face image
|
|
|
|
| 49 |
prompt="soyjak",
|
| 50 |
ip_adapter_image=[style_image, processed_face_image],
|
| 51 |
negative_prompt="monochrome, lowres, bad anatomy, worst quality, low quality",
|
| 52 |
+
num_inference_steps=50,
|
| 53 |
generator=generator,
|
| 54 |
).images[0]
|
| 55 |
|
| 56 |
+
# Move the pipeline back to CPU after processing to release GPU resources
|
| 57 |
+
pipeline.to("cpu")
|
| 58 |
return image
|
| 59 |
|
| 60 |
# Gradio interface setup
|