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
File size: 1,565 Bytes
bf7dfcc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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
) |