gaur3009 commited on
Commit
215921b
·
verified ·
1 Parent(s): 991982b

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import numpy as np
3
+ from PIL import Image, ImageOps
4
+ import cv2
5
+
6
+ def overlay_design(hoodie_img, design_img, x_offset, y_offset, scale, rotation):
7
+ if hoodie_img is None or design_img is None:
8
+ return None
9
+
10
+ # Open images
11
+ hoodie = Image.open(hoodie_img).convert("RGBA")
12
+ design = Image.open(design_img).convert("RGBA")
13
+
14
+ # Resize and rotate the design
15
+ width, height = design.size
16
+ design = design.resize((int(width * scale), int(height * scale)))
17
+ design = design.rotate(rotation, expand=True)
18
+
19
+ # Create a blank image with same size as hoodie
20
+ temp_layer = Image.new("RGBA", hoodie.size, (0, 0, 0, 0))
21
+
22
+ # Paste design onto temp_layer at specified position
23
+ temp_layer.paste(design, (int(x_offset), int(y_offset)), design)
24
+
25
+ # Blend the layers
26
+ final_image = Image.alpha_composite(hoodie, temp_layer)
27
+ return final_image
28
+
29
+ def generate_mockup(hoodie, design, x_offset=100, y_offset=200, scale=1.0, rotation=0):
30
+ return overlay_design(hoodie, design, x_offset, y_offset, scale, rotation)
31
+
32
+ # Gradio UI
33
+ demo = gr.Interface(
34
+ fn=generate_mockup,
35
+ inputs=[
36
+ gr.Image(type="filepath", label="Upload Hoodie Mockup"),
37
+ gr.Image(type="filepath", label="Upload Your Design"),
38
+ gr.Slider(0, 500, value=100, label="X Offset"),
39
+ gr.Slider(0, 500, value=200, label="Y Offset"),
40
+ gr.Slider(0.1, 2.0, value=1.0, label="Scale"),
41
+ gr.Slider(-180, 180, value=0, label="Rotation")
42
+ ],
43
+ outputs=gr.Image(type="pil", label="Generated Mockup"),
44
+ title="Rookus Hoodie Mockup Generator",
45
+ description="Upload a hoodie mockup and your design to generate a realistic preview."
46
+ )
47
+
48
+ demo.launch()