Spaces:
Paused
Paused
| # InstantSplat API - Quick Start | |
| Submit images via API and get back the Supabase GLB URL in 3 easy steps! | |
| ## 🚀 30-Second Quick Start | |
| ### Step 1: Install Client | |
| ```bash | |
| pip install gradio_client | |
| ``` | |
| ### Step 2: Run This Code | |
| ```python | |
| from gradio_client import Client | |
| # Connect to your Space | |
| client = Client("your-username/InstantSplat") | |
| # Submit images and get GLB URL | |
| result = client.predict( | |
| ["image1.jpg", "image2.jpg", "image3.jpg"], | |
| api_name="/predict" | |
| ) | |
| glb_url = result[5] # The 6th element is the GLB URL | |
| print(f"Your 3D model: {glb_url}") | |
| ``` | |
| ### Step 3: Done! 🎉 | |
| The `glb_url` is your Supabase Storage URL that you can: | |
| - Share directly | |
| - Download programmatically | |
| - Embed in viewers | |
| - Store in databases | |
| ## 📦 What You Get Back | |
| The API returns 6 elements: | |
| ```python | |
| [ | |
| video_path, # [0] Path to video | |
| ply_url, # [1] PLY file URL (Supabase) | |
| ply_download, # [2] PLY download | |
| ply_model, # [3] PLY model | |
| glb_model, # [4] GLB model path | |
| glb_url, # [5] GLB URL (Supabase) ← YOU WANT THIS! | |
| ] | |
| ``` | |
| Access it with: `result[5]` | |
| ## 📝 Example: Complete Script | |
| ```python | |
| #!/usr/bin/env python3 | |
| from gradio_client import Client | |
| def get_glb_url(images): | |
| """Submit images, get GLB URL.""" | |
| client = Client("your-username/InstantSplat") | |
| result = client.predict(images, api_name="/predict") | |
| return result[5] # GLB URL | |
| # Use it | |
| images = ["img1.jpg", "img2.jpg", "img3.jpg"] | |
| glb_url = get_glb_url(images) | |
| print(f"GLB URL: {glb_url}") | |
| ``` | |
| ## 🛠️ Using the CLI Tool | |
| We provide a ready-to-use CLI tool: | |
| ```bash | |
| # Local usage | |
| python api_client.py img1.jpg img2.jpg img3.jpg | |
| # With remote Space | |
| export INSTANTSPLAT_SPACE="your-username/InstantSplat" | |
| python api_client.py img1.jpg img2.jpg img3.jpg | |
| ``` | |
| Output: | |
| ``` | |
| ================================================================================ | |
| InstantSplat API Client | |
| ================================================================================ | |
| Connecting to Space: your-username/InstantSplat | |
| Submitting 3 images for processing... | |
| 1. img1.jpg | |
| 2. img2.jpg | |
| 3. img3.jpg | |
| ================================================================================ | |
| ✅ SUCCESS! | |
| -------------------------------------------------------------------------------- | |
| GLB URL: https://xxx.storage.supabase.co/storage/v1/object/public/outputs/xxx.glb | |
| PLY URL: https://xxx.storage.supabase.co/storage/v1/object/public/outputs/xxx.ply | |
| Video: Available | |
| -------------------------------------------------------------------------------- | |
| 💡 Tip: You can now download the GLB file: | |
| curl -o model.glb 'https://xxx.storage.supabase.co/...' | |
| ================================================================================ | |
| ``` | |
| ## 🌐 JavaScript/TypeScript | |
| ```bash | |
| npm install --save @gradio/client | |
| ``` | |
| ```typescript | |
| import { Client } from "@gradio/client"; | |
| const client = await Client.connect("your-username/InstantSplat"); | |
| const result = await client.predict("/predict", { | |
| inputfiles: ["img1.jpg", "img2.jpg", "img3.jpg"] | |
| }); | |
| const glbUrl = result.data[5]; | |
| console.log("GLB URL:", glbUrl); | |
| ``` | |
| ## 📚 Full Documentation | |
| For advanced usage, see: | |
| - **`API_GUIDE.md`** - Complete API documentation | |
| - **`api_client.py`** - Ready-to-use Python client | |
| - **In-app API tab** - Interactive documentation | |
| ## ⚠️ Important Notes | |
| ### Input Requirements | |
| - ✅ Minimum 2 images (3+ recommended) | |
| - ✅ Same resolution for all images | |
| - ✅ JPG or PNG format | |
| ### Processing Time | |
| - Typically 30-120 seconds depending on: | |
| - Number of images | |
| - Image resolution | |
| - GPU availability | |
| ### What Gets Uploaded to Supabase | |
| - GLB file (~5-20 MB) | |
| - PLY file (~50-200 MB) | |
| - Both accessible via the returned URLs | |
| ## 🔧 Troubleshooting | |
| ### "Supabase credentials not set" | |
| Set environment variables in your Space settings: | |
| ``` | |
| SUPABASE_URL=https://xxx.supabase.co | |
| SUPABASE_KEY=your-service-role-key | |
| SUPABASE_BUCKET=outputs | |
| ``` | |
| ### "The resolution of the input image should be the same" | |
| Resize all images to same dimensions before uploading. | |
| ### Connection timeout | |
| The Space might be sleeping (free tier). It will wake up on first request (takes ~30s). | |
| ## 🎯 Next Steps | |
| 1. Try the quick start above | |
| 2. Test with your own images | |
| 3. Integrate into your app | |
| 4. Check out `API_GUIDE.md` for advanced features | |
| Happy coding! 🚀 | |