Jimmyzheng-10 commited on
Commit
c4cfc0a
·
1 Parent(s): fd9c8ec
app.py CHANGED
@@ -105,10 +105,8 @@ def render_preview(code: str, width: int, height: int, scale: float) -> str:
105
  Preview renderer with both width and height control for the inner canvas.
106
  """
107
  try:
108
- # Clean up the HTML code to remove problematic script and CSS references
109
  soup = BeautifulSoup(code, 'html.parser')
110
 
111
- # For preview, we'll just remove problematic references since we don't have the output_dir context
112
  for script in soup.find_all('script'):
113
  src = script.get('src', '')
114
  if src and any(pattern in src for pattern in ['assets/', 'index-', 'iframeResizer']):
@@ -119,7 +117,6 @@ def render_preview(code: str, width: int, height: int, scale: float) -> str:
119
  if href and any(pattern in href for pattern in ['assets/', 'index-']):
120
  link.decompose()
121
 
122
- # Get the cleaned HTML
123
  cleaned_code = str(soup)
124
 
125
  except Exception as e:
 
105
  Preview renderer with both width and height control for the inner canvas.
106
  """
107
  try:
 
108
  soup = BeautifulSoup(code, 'html.parser')
109
 
 
110
  for script in soup.find_all('script'):
111
  src = script.get('src', '')
112
  if src and any(pattern in src for pattern in ['assets/', 'index-', 'iframeResizer']):
 
117
  if href and any(pattern in href for pattern in ['assets/', 'index-']):
118
  link.decompose()
119
 
 
120
  cleaned_code = str(soup)
121
 
122
  except Exception as e:
screencoder/block_parsor.py CHANGED
@@ -226,14 +226,43 @@ def main():
226
  json_output_path = os.path.join(tmp_dir, f"{run_id}_bboxes.json")
227
  annotated_image_output_path = os.path.join(tmp_dir, f"{run_id}_with_bboxes.png")
228
 
229
- if not os.path.exists(image_path) or not os.path.exists(api_path):
230
- print(f"Error: Input image or API key file not found.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  exit(1)
232
 
233
  print(f"--- Starting BBox Parsing for run_id: {run_id} ---")
234
 
235
  client = Doubao(api_path)
236
- bbox_content = client.ask(PROMPT_MERGE, encode_image(image_path))
 
 
 
 
 
 
 
237
  bboxes = parse_bboxes(bbox_content)
238
 
239
  if bboxes:
 
226
  json_output_path = os.path.join(tmp_dir, f"{run_id}_bboxes.json")
227
  annotated_image_output_path = os.path.join(tmp_dir, f"{run_id}_with_bboxes.png")
228
 
229
+ # Debug: Print all paths and check if files exist
230
+ print(f"Debug - base_dir: {base_dir}")
231
+ print(f"Debug - tmp_dir: {tmp_dir}")
232
+ print(f"Debug - image_path: {image_path}")
233
+ print(f"Debug - api_path: {api_path}")
234
+ print(f"Debug - image_path exists: {os.path.exists(image_path)}")
235
+ print(f"Debug - api_path exists: {os.path.exists(api_path)}")
236
+
237
+ # List contents of tmp_dir if it exists
238
+ if os.path.exists(tmp_dir):
239
+ print(f"Debug - tmp_dir contents: {os.listdir(tmp_dir)}")
240
+ else:
241
+ print(f"Debug - tmp_dir does not exist: {tmp_dir}")
242
+
243
+ if not os.path.exists(image_path):
244
+ print(f"Error: Input image not found at {image_path}")
245
+ # Create empty json file so the pipeline doesn't break
246
+ save_bboxes_to_json({}, json_output_path)
247
+ exit(1)
248
+
249
+ if not os.path.exists(api_path):
250
+ print(f"Error: API key file not found at {api_path}")
251
+ # Create empty json file so the pipeline doesn't break
252
+ save_bboxes_to_json({}, json_output_path)
253
  exit(1)
254
 
255
  print(f"--- Starting BBox Parsing for run_id: {run_id} ---")
256
 
257
  client = Doubao(api_path)
258
+ base64_image = encode_image(image_path)
259
+ if not base64_image:
260
+ print(f"Error: Failed to encode image {image_path}")
261
+ # Create empty json file so the pipeline doesn't break
262
+ save_bboxes_to_json({}, json_output_path)
263
+ exit(1)
264
+
265
+ bbox_content = client.ask(PROMPT_MERGE, base64_image)
266
  bboxes = parse_bboxes(bbox_content)
267
 
268
  if bboxes:
screencoder/main.py CHANGED
@@ -85,8 +85,15 @@ def generate_html_for_demo(image_path, instructions):
85
  try:
86
  # 1. Copy user-uploaded image to the temp input directory
87
  new_image_path = tmp_dir / f"{run_id}.png"
 
 
 
88
  img = Image.open(image_path)
89
  img.save(new_image_path, "PNG")
 
 
 
 
90
 
91
  # 2. Run the processing scripts in sequence
92
  run_script_with_run_id("UIED/run_single.py", run_id)
 
85
  try:
86
  # 1. Copy user-uploaded image to the temp input directory
87
  new_image_path = tmp_dir / f"{run_id}.png"
88
+ print(f"Debug - main.py: saving image from {image_path} to {new_image_path}")
89
+ print(f"Debug - main.py: image_path exists: {Path(image_path).exists()}")
90
+
91
  img = Image.open(image_path)
92
  img.save(new_image_path, "PNG")
93
+
94
+ print(f"Debug - main.py: saved image, new_image_path exists: {new_image_path.exists()}")
95
+ if new_image_path.exists():
96
+ print(f"Debug - main.py: saved image size: {new_image_path.stat().st_size} bytes")
97
 
98
  # 2. Run the processing scripts in sequence
99
  run_script_with_run_id("UIED/run_single.py", run_id)
screencoder/utils.py CHANGED
@@ -11,19 +11,30 @@ import numpy as np
11
 
12
  def encode_image(image):
13
  if type(image) == str:
 
 
 
 
 
14
  try:
15
  with open(image, "rb") as image_file:
16
  encoding = base64.b64encode(image_file.read()).decode('utf-8')
 
 
17
  except Exception as e:
18
- print(e)
19
- with open(image, "r", encoding="utf-8") as image_file:
20
- encoding = base64.b64encode(image_file.read()).decode('utf-8')
21
- return encoding
22
 
23
  else:
24
- buffered = io.BytesIO()
25
- image.save(buffered, format="PNG")
26
- return base64.b64encode(buffered.getvalue()).decode('utf-8')
 
 
 
 
 
 
27
 
28
  def image_mask(image_path: str, bbox_normalized: tuple[int, int, int, int]) -> Image.Image:
29
  """Creates a mask on the image in the specified normalized bounding box."""
 
11
 
12
  def encode_image(image):
13
  if type(image) == str:
14
+ print(f"Debug - encode_image: trying to encode {image}")
15
+ print(f"Debug - encode_image: file exists: {os.path.exists(image)}")
16
+ if os.path.exists(image):
17
+ print(f"Debug - encode_image: file size: {os.path.getsize(image)} bytes")
18
+
19
  try:
20
  with open(image, "rb") as image_file:
21
  encoding = base64.b64encode(image_file.read()).decode('utf-8')
22
+ print(f"Debug - encode_image: successfully encoded, length: {len(encoding)}")
23
+ return encoding
24
  except Exception as e:
25
+ print(f"Error encoding image {image}: {e}")
26
+ return None
 
 
27
 
28
  else:
29
+ try:
30
+ buffered = io.BytesIO()
31
+ image.save(buffered, format="PNG")
32
+ encoding = base64.b64encode(buffered.getvalue()).decode('utf-8')
33
+ print(f"Debug - encode_image: successfully encoded PIL image, length: {len(encoding)}")
34
+ return encoding
35
+ except Exception as e:
36
+ print(f"Error encoding PIL image: {e}")
37
+ return None
38
 
39
  def image_mask(image_path: str, bbox_normalized: tuple[int, int, int, int]) -> Image.Image:
40
  """Creates a mask on the image in the specified normalized bounding box."""