Instructions to use tonyneel/sam-small with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sam2
How to use tonyneel/sam-small with sam2:
# Use SAM2 with images import torch from sam2.sam2_image_predictor import SAM2ImagePredictor predictor = SAM2ImagePredictor.from_pretrained(tonyneel/sam-small) with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16): predictor.set_image(<your_image>) masks, _, _ = predictor.predict(<input_prompts>)# Use SAM2 with videos import torch from sam2.sam2_video_predictor import SAM2VideoPredictor predictor = SAM2VideoPredictor.from_pretrained(tonyneel/sam-small) with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16): state = predictor.init_state(<your_video>) # add new prompts and instantly get the output on the same frame frame_idx, object_ids, masks = predictor.add_new_points(state, <your_prompts>): # propagate the prompts to get masklets throughout the video for frame_idx, object_ids, masks in predictor.propagate_in_video(state): ... - Notebooks
- Google Colab
- Kaggle
| import requests | |
| from pathlib import Path | |
| def test_endpoint(image_path, point_coords=None, point_labels=None): | |
| # URL for local Flask server | |
| url = "http://localhost:5000/predict" | |
| # Open image file | |
| with open(image_path, 'rb') as f: | |
| files = {'file': f} | |
| data = {} | |
| # Add point prompts if provided | |
| if point_coords is not None and point_labels is not None: | |
| data['point_coords'] = str(point_coords) | |
| data['point_labels'] = str(point_labels) | |
| # Make request | |
| response = requests.post(url, files=files, data=data) | |
| print(f"Status Code: {response.status_code}") | |
| if response.status_code == 200: | |
| result = response.json() | |
| print("\nSuccess!") | |
| print(f"Number of masks: {len(result['masks']) if 'masks' in result else 0}") | |
| print(f"Scores: {result['scores'] if 'scores' in result else None}") | |
| else: | |
| print(f"Error: {response.text}") | |
| if __name__ == "__main__": | |
| # Test with your image | |
| image_path = Path("images/20250121_gauge_0001.jpg") | |
| if not image_path.exists(): | |
| print(f"Error: Image not found at {image_path}") | |
| exit(1) | |
| # Test without points | |
| print("\nTesting without points...") | |
| print(f"Testing with image: {image_path}") | |
| test_endpoint(image_path) | |
| # Test with points | |
| print("\nTesting with points...") | |
| test_endpoint( | |
| image_path, | |
| point_coords=[[500, 375]], # Example coordinates | |
| point_labels=[1] # 1 for foreground | |
| ) |