Yw22 commited on
Commit
794b567
Β·
1 Parent(s): 65c7404

[fix] fix vis_blob bugs

Browse files
examples/blobctrl/blobctrl_app.py CHANGED
@@ -63,8 +63,6 @@ if not os.path.exists(Dino_path):
63
  )
64
  print(f"Dino checkpoints downloaded to {Dino_path}")
65
 
66
-
67
-
68
  # download SAM model
69
  SAM_path = "examples/blobctrl/models/sam/sam_vit_h_4b8939.pth"
70
  if not os.path.exists(SAM_path):
@@ -173,13 +171,12 @@ head= r"""
173
  descriptions = r"""
174
  Official Gradio Demo for <a href=''><b>BlobCtrl: A Unified and Flexible Framework for Element-level Image Generation and Editing</b></a><br>
175
  πŸ¦‰ BlobCtrl enables precise, user-friendly element-level visual manipulation. <br>
176
- Main Features: Element-level Add/Remove/Move/Replace/Enlarge/Shrink.
177
  """
178
 
179
 
180
  citation = r"""
181
  If BlobCtrl is helpful, please help to ⭐ the <a href='https://github.com/TencentARC/BlobCtrl' target='_blank'>Github Repo</a>. Thanks!
182
- [![GitHub Stars](https://img.shields.io/github/stars/TencentARC/BlobCtrl?style=social)](https://github.com/TencentARC/BlobCtrl)
183
  ---
184
  πŸ“ **Citation**
185
  <br>
@@ -187,9 +184,9 @@ If our work is useful for your research, please consider citing:
187
  ```bibtex
188
  @misc{li2025blobctrl,
189
  title={BlobCtrl: A Unified and Flexible Framework for Element-level Image Generation and Editing},
190
- author={Yaowei Li, Lingen Li, Zhaoyang Zhang, Xiaoyu Li, Guangzhi Wang, Hongxiang Li, Xiaodong Cun, Ying Shan, Yuexian Zou},
191
  year={2025},
192
- eprint={2503.13434},
193
  archivePrefix={arXiv},
194
  primaryClass={cs.CV}
195
  }
@@ -1771,7 +1768,7 @@ with block as demo:
1771
 
1772
  remove_blob_box.change(
1773
  remove_blob_box_func,
1774
- [editable_blob, original_image, tracking_points, ellipse_lists, ori_result_gallery],
1775
  [editable_blob, ellipse_lists, edited_result_gallery, ori_result_gallery, resize_blob_slider_maintain_aspect_ratio]
1776
  )
1777
 
@@ -1804,7 +1801,7 @@ with block as demo:
1804
  ## upload user-specified object image
1805
  init_object_image.upload(
1806
  upload_object_image,
1807
- [init_object_image, edited_result_gallery],
1808
  [object_image_gallery, remove_blob_box]
1809
  )
1810
 
 
63
  )
64
  print(f"Dino checkpoints downloaded to {Dino_path}")
65
 
 
 
66
  # download SAM model
67
  SAM_path = "examples/blobctrl/models/sam/sam_vit_h_4b8939.pth"
68
  if not os.path.exists(SAM_path):
 
171
  descriptions = r"""
172
  Official Gradio Demo for <a href=''><b>BlobCtrl: A Unified and Flexible Framework for Element-level Image Generation and Editing</b></a><br>
173
  πŸ¦‰ BlobCtrl enables precise, user-friendly element-level visual manipulation. <br>
 
174
  """
175
 
176
 
177
  citation = r"""
178
  If BlobCtrl is helpful, please help to ⭐ the <a href='https://github.com/TencentARC/BlobCtrl' target='_blank'>Github Repo</a>. Thanks!
179
+ [![GitHub Stars](https://img.shields.io/github/stars/TencentARC/BlobCtrl?style=social)]()
180
  ---
181
  πŸ“ **Citation**
182
  <br>
 
184
  ```bibtex
185
  @misc{li2025blobctrl,
186
  title={BlobCtrl: A Unified and Flexible Framework for Element-level Image Generation and Editing},
187
+ author={Yaowei Li},
188
  year={2025},
189
+ eprint={2502.09477},
190
  archivePrefix={arXiv},
191
  primaryClass={cs.CV}
192
  }
 
1768
 
1769
  remove_blob_box.change(
1770
  remove_blob_box_func,
1771
+ [editable_blob, original_image, tracking_points, ellipse_lists, ori_result_gallery, remove_blob_box],
1772
  [editable_blob, ellipse_lists, edited_result_gallery, ori_result_gallery, resize_blob_slider_maintain_aspect_ratio]
1773
  )
1774
 
 
1801
  ## upload user-specified object image
1802
  init_object_image.upload(
1803
  upload_object_image,
1804
+ [init_object_image, edited_result_gallery, remove_blob_box],
1805
  [object_image_gallery, remove_blob_box]
1806
  )
1807
 
examples/blobctrl/utils/utils.py CHANGED
@@ -211,7 +211,7 @@ def splat_features(
211
  scores_viz = d_scores
212
 
213
  n_gaussians = xs.shape[-1]
214
- ret.update(visualize_features(xs, ys, viz_size, n_gaussians, scores_viz, **kwargs))
215
  # from PIL import Image
216
  # import numpy as np
217
  # viz_colors = torch.load("BED_CONF_COLORS.pt")
@@ -243,7 +243,7 @@ def splat_features(
243
 
244
  @torch.no_grad()
245
  def visualize_features(viz_size=64, n_gaussians=None, scores=None,
246
- viz_colors=None, **kwargs) -> Dict[str, Tensor]:
247
  n_gaussians = n_gaussians+1
248
 
249
  rand_colors = viz_colors is None
 
211
  scores_viz = d_scores
212
 
213
  n_gaussians = xs.shape[-1]
214
+ ret.update(visualize_features(viz_size, n_gaussians, scores_viz, kwargs.get("viz_colors", None)))
215
  # from PIL import Image
216
  # import numpy as np
217
  # viz_colors = torch.load("BED_CONF_COLORS.pt")
 
243
 
244
  @torch.no_grad()
245
  def visualize_features(viz_size=64, n_gaussians=None, scores=None,
246
+ viz_colors=None) -> Dict[str, Tensor]:
247
  n_gaussians = n_gaussians+1
248
 
249
  rand_colors = viz_colors is None