# osam **Repository Path**: xxbld/osam ## Basic Information - **Project Name**: osam - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-15 - **Last Updated**: 2025-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
logo

Osam

Get up and running with promptable vision models locally.




*Osam* (/oʊˈsɑm/) is a tool to run open-source promptable vision models locally (inspired by [Ollama](https://github.com/ollama/ollama)). *Osam* provides: - **Promptable Vision Models** - Segment Anything Model (SAM), EfficientSAM, YOLO-World; - **Local APIs** - CLI & Python & HTTP interface; - **Customization** - Host custom vision models. ## Installation ### Pip ```bash pip install osam ``` **For `osam serve`**: ```bash pip install osam[serve] ``` ## Quickstart To run with EfficientSAM: ```bash osam run efficientsam --image ``` To run with YOLO-World: ```bash osam run yoloworld --image ``` ## Model library Here are models that can be downloaded: | Model | Parameters | Size | Download | |-------------------|------------|-------|------------------------------| | SAM 100M | 100M | 100MB | `osam run sam:100m` | | SAM 300M | 300M | 300MB | `osam run sam:300m` | | SAM 600M | 600M | 600MB | `osam run sam` | | EfficientSAM 10M | 10M | 40MB | `osam run efficientsam:10m` | | EfficientSAM 30M | 30M | 100MB | `osam run efficientsam` | | YOLO-World XL | 100M | 400MB | `osam run yoloworld` | PS. `sam`, `efficientsam` is equivalent to `sam:latest`, `efficientsam:latest`. ## Usage ### CLI ```bash # Run a model with an image osam run efficientsam --image examples/_images/dogs.jpg > output.png # Get a JSON output osam run efficientsam --image examples/_images/dogs.jpg --json # {"model": "efficientsam", "mask": "..."} # Give a prompt osam run efficientsam --image examples/_images/dogs.jpg \ --prompt '{"points": [[1439, 504], [1439, 1289]], "point_labels": [1, 1]}' \ > efficientsam.png osam run yoloworld --image examples/_images/dogs.jpg --prompt '{"texts": ["dog"]}' \ > yoloworld.png ``` Input and output images ('dogs.jpg', 'efficientsam.png', 'yoloworld.png'). ### Python ```python import osam.apis import osam.types request = osam.types.GenerateRequest( model="efficientsam", image=np.asarray(PIL.Image.open("examples/_images/dogs.jpg")), prompt=osam.types.Prompt(points=[[1439, 504], [1439, 1289]], point_labels=[1, 1]), ) response = osam.apis.generate(request=request) PIL.Image.fromarray(response.mask).save("mask.png") ``` Input and output images ('dogs.jpg', 'mask.png'). ### HTTP ```bash # pip install osam[serve] # required for `osam serve` # Get up the server osam serve # POST request curl 127.0.0.1:11368/api/generate -X POST \ -H "Content-Type: application/json" \ -d "{\"model\": \"efficientsam\", \"image\": \"$(cat examples/_images/dogs.jpg | base64)\"}" \ | jq -r .mask | base64 --decode > mask.png ```