Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -73,7 +73,7 @@ def reset_all():
|
|
73 |
@spaces.GPU()
|
74 |
def preprocess_image(image_array, state):
|
75 |
if image_array is None:
|
76 |
-
return "β Please upload an image first.", None, state, gr.update(interactive=True), gr.update(interactive=
|
77 |
|
78 |
session_id = str(uuid.uuid4())
|
79 |
base_dir = os.path.join(os.environ["PIXEL3DMM_PREPROCESSED_DATA"], session_id)
|
@@ -96,14 +96,14 @@ def preprocess_image(image_array, state):
|
|
96 |
|
97 |
crop_dir = os.path.join(base_dir, "cropped")
|
98 |
image = first_image_from_dir(crop_dir)
|
99 |
-
return "β
Step 1 complete. Ready for Normals.", image, state, gr.update(interactive=
|
100 |
|
101 |
# Step 2: Normals inference β normals image
|
102 |
@spaces.GPU()
|
103 |
def step2_normals(state):
|
104 |
session_id = state.get("session_id")
|
105 |
if not session_id:
|
106 |
-
return "β State lost. Please start from Step 1.", None, state, gr.update(interactive=
|
107 |
|
108 |
try:
|
109 |
p = subprocess.run([
|
@@ -115,14 +115,14 @@ def step2_normals(state):
|
|
115 |
|
116 |
normals_dir = os.path.join(state["base_dir"], "p3dmm", "normals")
|
117 |
image = first_image_from_dir(normals_dir)
|
118 |
-
return "β
Step 2 complete. Ready for UV Map.", image, state, gr.update(interactive=
|
119 |
|
120 |
# Step 3: UV map inference β uv map image
|
121 |
@spaces.GPU()
|
122 |
def step3_uv_map(state):
|
123 |
session_id = state.get("session_id")
|
124 |
if not session_id:
|
125 |
-
return "β State lost. Please start from Step 1.", None, state, gr.update(interactive=
|
126 |
|
127 |
try:
|
128 |
p = subprocess.run([
|
@@ -134,14 +134,14 @@ def step3_uv_map(state):
|
|
134 |
|
135 |
uv_dir = os.path.join(state["base_dir"], "p3dmm", "uv_map")
|
136 |
image = first_image_from_dir(uv_dir)
|
137 |
-
return "β
Step 3 complete. Ready for Tracking.", image, state, gr.update(interactive=
|
138 |
|
139 |
# Step 4: Tracking β final tracking image
|
140 |
@spaces.GPU()
|
141 |
def step4_track(state):
|
142 |
session_id = state.get("session_id")
|
143 |
if not session_id:
|
144 |
-
return "β State lost. Please start from Step 1.", None, state, gr.update(interactive=
|
145 |
|
146 |
script = os.path.join(os.environ["PIXEL3DMM_CODE_BASE"], "scripts", "track.py")
|
147 |
try:
|
@@ -154,7 +154,7 @@ def step4_track(state):
|
|
154 |
|
155 |
tracking_dir = os.path.join(os.environ["PIXEL3DMM_TRACKING_OUTPUT"], session_id, "frames")
|
156 |
image = first_image_from_dir(tracking_dir)
|
157 |
-
return "β
Pipeline complete!", image, state, gr.update(interactive=
|
158 |
|
159 |
# Build Gradio UI
|
160 |
demo = gr.Blocks()
|
|
|
73 |
@spaces.GPU()
|
74 |
def preprocess_image(image_array, state):
|
75 |
if image_array is None:
|
76 |
+
return "β Please upload an image first.", None, state, gr.update(interactive=True), gr.update(interactive=True)
|
77 |
|
78 |
session_id = str(uuid.uuid4())
|
79 |
base_dir = os.path.join(os.environ["PIXEL3DMM_PREPROCESSED_DATA"], session_id)
|
|
|
96 |
|
97 |
crop_dir = os.path.join(base_dir, "cropped")
|
98 |
image = first_image_from_dir(crop_dir)
|
99 |
+
return "β
Step 1 complete. Ready for Normals.", image, state, gr.update(interactive=True), gr.update(interactive=True)
|
100 |
|
101 |
# Step 2: Normals inference β normals image
|
102 |
@spaces.GPU()
|
103 |
def step2_normals(state):
|
104 |
session_id = state.get("session_id")
|
105 |
if not session_id:
|
106 |
+
return "β State lost. Please start from Step 1.", None, state, gr.update(interactive=True), gr.update(interactive=False)
|
107 |
|
108 |
try:
|
109 |
p = subprocess.run([
|
|
|
115 |
|
116 |
normals_dir = os.path.join(state["base_dir"], "p3dmm", "normals")
|
117 |
image = first_image_from_dir(normals_dir)
|
118 |
+
return "β
Step 2 complete. Ready for UV Map.", image, state, gr.update(interactive=True), gr.update(interactive=True)
|
119 |
|
120 |
# Step 3: UV map inference β uv map image
|
121 |
@spaces.GPU()
|
122 |
def step3_uv_map(state):
|
123 |
session_id = state.get("session_id")
|
124 |
if not session_id:
|
125 |
+
return "β State lost. Please start from Step 1.", None, state, gr.update(interactive=True), gr.update(interactive=True)
|
126 |
|
127 |
try:
|
128 |
p = subprocess.run([
|
|
|
134 |
|
135 |
uv_dir = os.path.join(state["base_dir"], "p3dmm", "uv_map")
|
136 |
image = first_image_from_dir(uv_dir)
|
137 |
+
return "β
Step 3 complete. Ready for Tracking.", image, state, gr.update(interactive=True), gr.update(interactive=True)
|
138 |
|
139 |
# Step 4: Tracking β final tracking image
|
140 |
@spaces.GPU()
|
141 |
def step4_track(state):
|
142 |
session_id = state.get("session_id")
|
143 |
if not session_id:
|
144 |
+
return "β State lost. Please start from Step 1.", None, state, gr.update(interactive=True)
|
145 |
|
146 |
script = os.path.join(os.environ["PIXEL3DMM_CODE_BASE"], "scripts", "track.py")
|
147 |
try:
|
|
|
154 |
|
155 |
tracking_dir = os.path.join(os.environ["PIXEL3DMM_TRACKING_OUTPUT"], session_id, "frames")
|
156 |
image = first_image_from_dir(tracking_dir)
|
157 |
+
return "β
Pipeline complete!", image, state, gr.update(interactive=True)
|
158 |
|
159 |
# Build Gradio UI
|
160 |
demo = gr.Blocks()
|