camenduru
/
grm
GRM: Large Gaussian Reconstruction Model for Efficient 3D Reconstruction and Generation
Prediction
camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0IDfphlyszb7zkf3kcnrayxhtqcj4StatusSucceededSourceWebHardwareA100 (40GB)Total durationCreatedInput
{ "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf1yDKomAqeCoflgaQFn4aa0kMMhD6iuB49P0qrqzcLu3qZm/bag.jpg" }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", { input: { seed: 42, model: "Zero123++ v1.2", fuse_mesh: true, input_image: "https://replicate.delivery/pbxt/Kf1yDKomAqeCoflgaQFn4aa0kMMhD6iuB49P0qrqzcLu3qZm/bag.jpg" } } ); // To access the file URL: console.log(output[0].url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output[0]);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", input={ "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": True, "input_image": "https://replicate.delivery/pbxt/Kf1yDKomAqeCoflgaQFn4aa0kMMhD6iuB49P0qrqzcLu3qZm/bag.jpg" } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", "input": { "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf1yDKomAqeCoflgaQFn4aa0kMMhD6iuB49P0qrqzcLu3qZm/bag.jpg" } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2024-03-30T16:40:14.642420Z", "created_at": "2024-03-30T16:30:44.290341Z", "data_removed": false, "error": null, "id": "fphlyszb7zkf3kcnrayxhtqcj4", "input": { "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf1yDKomAqeCoflgaQFn4aa0kMMhD6iuB49P0qrqzcLu3qZm/bag.jpg" }, "logs": "Running image-to-3d with seed 42...\n/usr/local/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py:268: FutureWarning: `_encode_prompt()` is deprecated and it will be removed in a future version. Use `encode_prompt()` instead. Also, be aware that the output format changed from a concatenated tensor to a tuple.\ndeprecate(\"_encode_prompt()\", \"1.0.0\", deprecation_message, standard_warn=False)\n 0%| | 0/30 [00:00<?, ?it/s]\n 3%|▎ | 1/30 [00:00<00:12, 2.30it/s]\n 7%|▋ | 2/30 [00:00<00:07, 3.82it/s]\n 10%|█ | 3/30 [00:00<00:05, 5.22it/s]\n 13%|█▎ | 4/30 [00:00<00:04, 6.31it/s]\n 17%|█▋ | 5/30 [00:00<00:03, 7.11it/s]\n 20%|██ | 6/30 [00:01<00:03, 7.73it/s]\n 23%|██▎ | 7/30 [00:01<00:02, 8.15it/s]\n 27%|██▋ | 8/30 [00:01<00:02, 8.48it/s]\n 30%|███ | 9/30 [00:01<00:02, 8.77it/s]\n 33%|███▎ | 10/30 [00:01<00:02, 8.93it/s]\n 37%|███▋ | 11/30 [00:01<00:02, 9.01it/s]\n 40%|████ | 12/30 [00:01<00:01, 9.08it/s]\n 43%|████▎ | 13/30 [00:01<00:01, 9.05it/s]\n 47%|████▋ | 14/30 [00:01<00:01, 9.14it/s]\n 50%|█████ | 15/30 [00:01<00:01, 8.98it/s]\n 53%|█████▎ | 16/30 [00:02<00:01, 9.08it/s]\n 57%|█████▋ | 17/30 [00:02<00:01, 8.73it/s]\n 60%|██████ | 18/30 [00:02<00:01, 9.00it/s]\n 63%|██████▎ | 19/30 [00:02<00:01, 9.11it/s]\n 67%|██████▋ | 20/30 [00:02<00:01, 9.23it/s]\n 70%|███████ | 21/30 [00:02<00:00, 9.31it/s]\n 73%|███████▎ | 22/30 [00:02<00:00, 9.27it/s]\n 77%|███████▋ | 23/30 [00:02<00:00, 9.20it/s]\n 80%|████████ | 24/30 [00:02<00:00, 9.15it/s]\n 83%|████████▎ | 25/30 [00:03<00:00, 9.21it/s]\n 87%|████████▋ | 26/30 [00:03<00:00, 8.80it/s]\n 90%|█████████ | 27/30 [00:03<00:00, 9.03it/s]\n 93%|█████████▎| 28/30 [00:03<00:00, 9.11it/s]\n 97%|█████████▋| 29/30 [00:03<00:00, 9.14it/s]\n100%|██████████| 30/30 [00:03<00:00, 9.16it/s]\n100%|██████████| 30/30 [00:03<00:00, 8.26it/s]\n/usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:460: UserWarning: torch.utils.checkpoint: please pass in use_reentrant=True or use_reentrant=False explicitly. The default value of use_reentrant will be updated to be False in the future. To maintain current behavior, pass use_reentrant=True. It is recommended that you use use_reentrant=False. Refer to docs for more details on the differences between the two variants.\nwarnings.warn(\n/usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:90: UserWarning: None of the inputs have requires_grad=True. Gradients will be None\nwarnings.warn(\n/usr/local/lib/python3.10/site-packages/torch/functional.py:507: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3549.)\nreturn _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\nIntegrate images into the TSDF volume.\n 0%| | 0/200 [00:00<?, ?it/s]\n 0%| | 1/200 [00:00<00:30, 6.56it/s]\n 2%|▏ | 4/200 [00:00<00:12, 16.32it/s]\n 4%|▍ | 9/200 [00:00<00:06, 28.48it/s]/content/GRM/webui/runner.py:233: RuntimeWarning: invalid value encountered in arcsin\ncam_elev = np.rad2deg(np.arcsin(cam_pos[2]))\n 6%|▋ | 13/200 [00:00<00:08, 23.22it/s]\n 8%|▊ | 17/200 [00:00<00:07, 23.08it/s]\n 10%|█ | 20/200 [00:00<00:07, 23.41it/s]\n 12%|█▏ | 23/200 [00:01<00:08, 21.58it/s]\n 14%|█▍ | 28/200 [00:01<00:06, 25.44it/s]\n 16%|█▌ | 31/200 [00:01<00:07, 23.29it/s]\n 17%|█▋ | 34/200 [00:01<00:07, 23.55it/s]\n 19%|█▉ | 38/200 [00:01<00:06, 23.67it/s]\n 21%|██ | 42/200 [00:01<00:05, 26.49it/s]\n 22%|██▎ | 45/200 [00:01<00:05, 25.94it/s]\n 24%|██▍ | 48/200 [00:02<00:05, 26.04it/s]\n 26%|██▌ | 51/200 [00:02<00:06, 23.80it/s]\n 27%|██▋ | 54/200 [00:02<00:05, 24.55it/s]\n 28%|██▊ | 57/200 [00:02<00:05, 25.58it/s]\n 30%|███ | 61/200 [00:02<00:04, 28.40it/s]\n 32%|███▏ | 64/200 [00:02<00:04, 28.76it/s]\n 34%|███▎ | 67/200 [00:02<00:05, 24.70it/s]\n 36%|███▌ | 71/200 [00:02<00:04, 27.74it/s]\n 38%|███▊ | 75/200 [00:02<00:04, 30.10it/s]\n 40%|███▉ | 79/200 [00:03<00:04, 26.67it/s]\n 41%|████ | 82/200 [00:03<00:04, 26.56it/s]\n 42%|████▎ | 85/200 [00:03<00:04, 26.91it/s]\n 44%|████▍ | 88/200 [00:03<00:04, 27.03it/s]\n 46%|████▌ | 92/200 [00:03<00:04, 26.32it/s]\n 48%|████▊ | 96/200 [00:03<00:03, 29.20it/s]\n 50%|█████ | 100/200 [00:03<00:03, 29.42it/s]\n 52%|█████▏ | 104/200 [00:04<00:03, 28.18it/s]\n 54%|█████▎ | 107/200 [00:04<00:03, 27.84it/s]\n 55%|█████▌ | 110/200 [00:04<00:03, 26.29it/s]\n 57%|█████▋ | 114/200 [00:04<00:03, 25.63it/s]\n 59%|█████▉ | 118/200 [00:04<00:02, 28.52it/s]\n 60%|██████ | 121/200 [00:04<00:03, 22.82it/s]\n 62%|██████▎ | 125/200 [00:04<00:02, 26.25it/s]\n 64%|██████▍ | 129/200 [00:04<00:02, 29.38it/s]\n 66%|██████▋ | 133/200 [00:05<00:02, 27.02it/s]\n 68%|██████▊ | 136/200 [00:05<00:02, 27.28it/s]\n 70%|███████ | 140/200 [00:05<00:02, 29.16it/s]\n 72%|███████▏ | 144/200 [00:05<00:02, 26.05it/s]\n 74%|███████▎ | 147/200 [00:05<00:01, 26.54it/s]\n 76%|███████▌ | 151/200 [00:05<00:01, 29.77it/s]\n 78%|███████▊ | 155/200 [00:05<00:01, 30.31it/s]\n 80%|███████▉ | 159/200 [00:06<00:01, 28.51it/s]\n 81%|████████ | 162/200 [00:06<00:01, 28.26it/s]\n 82%|████████▎ | 165/200 [00:06<00:01, 28.68it/s]\n 84%|████████▍ | 168/200 [00:06<00:01, 28.04it/s]\n 86%|████████▋ | 173/200 [00:06<00:00, 32.75it/s]\n 88%|████████▊ | 177/200 [00:06<00:00, 28.66it/s]\n 90%|█████████ | 181/200 [00:06<00:00, 30.52it/s]\n 93%|█████████▎| 186/200 [00:06<00:00, 34.51it/s]\n 95%|█████████▌| 190/200 [00:07<00:00, 29.81it/s]\n 98%|█████████▊| 196/200 [00:07<00:00, 35.45it/s]\n100%|██████████| 200/200 [00:07<00:00, 27.47it/s]\nExtract a triangle mesh from the volume and export it.\n[Open3D DEBUG] [ClusterConnectedTriangles] Compute triangle adjacency\n[Open3D DEBUG] [ClusterConnectedTriangles] Done computing triangle adjacency\n[Open3D DEBUG] [ClusterConnectedTriangles] Done clustering, #clusters=36133\n[Mesh loading] v: torch.Size([52582, 3]), f: torch.Size([105172, 3])\n[Mesh loading] vn: torch.Size([52582, 3]), fn: torch.Size([105172, 3])\n/content/GRM/webui/base_mesh.py:350: UserWarning: Using torch.cross without specifying the dim arg is deprecated.\nPlease either pass the dim explicitly or simply use torch.linalg.cross.\nThe default value of dim will change to agree with that of linalg.cross in a future release. (Triggered internally at ../aten/src/ATen/native/Cross.cpp:63.)\nface_normals = torch.cross(v1 - v0, v2 - v0)\ntensor(0.2846, device='cuda:0') tensor(0.7703, device='cuda:0')", "metrics": { "predict_time": 29.452711, "total_time": 570.352079 }, "output": [ "https://replicate.delivery/pbxt/LYtsRfZqwZ0NCapoYYTM0OZqeovDpAXNI5LmDFGVlXvtJfKlA/gs.mp4", "https://replicate.delivery/pbxt/tc3n4zkjwk7eOSfuclGsSNcmmHq41JBdzZGob6t0mkmuJfKlA/mesh.glb", "https://replicate.delivery/pbxt/zPk0epRxellB2ExhQuycqjGFYj1VqCIe7PSPcMSfqtx7m8VKB/gs_vis.ply", "https://replicate.delivery/pbxt/8eadxApa1QzPV6K2KrzQur4hOGmXAgWKSvlLvIEe0B5uJfKlA/gs.ply" ], "started_at": "2024-03-30T16:39:45.189709Z", "status": "succeeded", "urls": { "get": "https://api.replicate.com/v1/predictions/fphlyszb7zkf3kcnrayxhtqcj4", "cancel": "https://api.replicate.com/v1/predictions/fphlyszb7zkf3kcnrayxhtqcj4/cancel" }, "version": "8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0" }
Generated inRunning image-to-3d with seed 42... /usr/local/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py:268: FutureWarning: `_encode_prompt()` is deprecated and it will be removed in a future version. Use `encode_prompt()` instead. Also, be aware that the output format changed from a concatenated tensor to a tuple. deprecate("_encode_prompt()", "1.0.0", deprecation_message, standard_warn=False) 0%| | 0/30 [00:00<?, ?it/s] 3%|▎ | 1/30 [00:00<00:12, 2.30it/s] 7%|▋ | 2/30 [00:00<00:07, 3.82it/s] 10%|█ | 3/30 [00:00<00:05, 5.22it/s] 13%|█▎ | 4/30 [00:00<00:04, 6.31it/s] 17%|█▋ | 5/30 [00:00<00:03, 7.11it/s] 20%|██ | 6/30 [00:01<00:03, 7.73it/s] 23%|██▎ | 7/30 [00:01<00:02, 8.15it/s] 27%|██▋ | 8/30 [00:01<00:02, 8.48it/s] 30%|███ | 9/30 [00:01<00:02, 8.77it/s] 33%|███▎ | 10/30 [00:01<00:02, 8.93it/s] 37%|███▋ | 11/30 [00:01<00:02, 9.01it/s] 40%|████ | 12/30 [00:01<00:01, 9.08it/s] 43%|████▎ | 13/30 [00:01<00:01, 9.05it/s] 47%|████▋ | 14/30 [00:01<00:01, 9.14it/s] 50%|█████ | 15/30 [00:01<00:01, 8.98it/s] 53%|█████▎ | 16/30 [00:02<00:01, 9.08it/s] 57%|█████▋ | 17/30 [00:02<00:01, 8.73it/s] 60%|██████ | 18/30 [00:02<00:01, 9.00it/s] 63%|██████▎ | 19/30 [00:02<00:01, 9.11it/s] 67%|██████▋ | 20/30 [00:02<00:01, 9.23it/s] 70%|███████ | 21/30 [00:02<00:00, 9.31it/s] 73%|███████▎ | 22/30 [00:02<00:00, 9.27it/s] 77%|███████▋ | 23/30 [00:02<00:00, 9.20it/s] 80%|████████ | 24/30 [00:02<00:00, 9.15it/s] 83%|████████▎ | 25/30 [00:03<00:00, 9.21it/s] 87%|████████▋ | 26/30 [00:03<00:00, 8.80it/s] 90%|█████████ | 27/30 [00:03<00:00, 9.03it/s] 93%|█████████▎| 28/30 [00:03<00:00, 9.11it/s] 97%|█████████▋| 29/30 [00:03<00:00, 9.14it/s] 100%|██████████| 30/30 [00:03<00:00, 9.16it/s] 100%|██████████| 30/30 [00:03<00:00, 8.26it/s] /usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:460: UserWarning: torch.utils.checkpoint: please pass in use_reentrant=True or use_reentrant=False explicitly. The default value of use_reentrant will be updated to be False in the future. To maintain current behavior, pass use_reentrant=True. It is recommended that you use use_reentrant=False. Refer to docs for more details on the differences between the two variants. warnings.warn( /usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:90: UserWarning: None of the inputs have requires_grad=True. Gradients will be None warnings.warn( /usr/local/lib/python3.10/site-packages/torch/functional.py:507: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3549.) return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined] Integrate images into the TSDF volume. 0%| | 0/200 [00:00<?, ?it/s] 0%| | 1/200 [00:00<00:30, 6.56it/s] 2%|▏ | 4/200 [00:00<00:12, 16.32it/s] 4%|▍ | 9/200 [00:00<00:06, 28.48it/s]/content/GRM/webui/runner.py:233: RuntimeWarning: invalid value encountered in arcsin cam_elev = np.rad2deg(np.arcsin(cam_pos[2])) 6%|▋ | 13/200 [00:00<00:08, 23.22it/s] 8%|▊ | 17/200 [00:00<00:07, 23.08it/s] 10%|█ | 20/200 [00:00<00:07, 23.41it/s] 12%|█▏ | 23/200 [00:01<00:08, 21.58it/s] 14%|█▍ | 28/200 [00:01<00:06, 25.44it/s] 16%|█▌ | 31/200 [00:01<00:07, 23.29it/s] 17%|█▋ | 34/200 [00:01<00:07, 23.55it/s] 19%|█▉ | 38/200 [00:01<00:06, 23.67it/s] 21%|██ | 42/200 [00:01<00:05, 26.49it/s] 22%|██▎ | 45/200 [00:01<00:05, 25.94it/s] 24%|██▍ | 48/200 [00:02<00:05, 26.04it/s] 26%|██▌ | 51/200 [00:02<00:06, 23.80it/s] 27%|██▋ | 54/200 [00:02<00:05, 24.55it/s] 28%|██▊ | 57/200 [00:02<00:05, 25.58it/s] 30%|███ | 61/200 [00:02<00:04, 28.40it/s] 32%|███▏ | 64/200 [00:02<00:04, 28.76it/s] 34%|███▎ | 67/200 [00:02<00:05, 24.70it/s] 36%|███▌ | 71/200 [00:02<00:04, 27.74it/s] 38%|███▊ | 75/200 [00:02<00:04, 30.10it/s] 40%|███▉ | 79/200 [00:03<00:04, 26.67it/s] 41%|████ | 82/200 [00:03<00:04, 26.56it/s] 42%|████▎ | 85/200 [00:03<00:04, 26.91it/s] 44%|████▍ | 88/200 [00:03<00:04, 27.03it/s] 46%|████▌ | 92/200 [00:03<00:04, 26.32it/s] 48%|████▊ | 96/200 [00:03<00:03, 29.20it/s] 50%|█████ | 100/200 [00:03<00:03, 29.42it/s] 52%|█████▏ | 104/200 [00:04<00:03, 28.18it/s] 54%|█████▎ | 107/200 [00:04<00:03, 27.84it/s] 55%|█████▌ | 110/200 [00:04<00:03, 26.29it/s] 57%|█████▋ | 114/200 [00:04<00:03, 25.63it/s] 59%|█████▉ | 118/200 [00:04<00:02, 28.52it/s] 60%|██████ | 121/200 [00:04<00:03, 22.82it/s] 62%|██████▎ | 125/200 [00:04<00:02, 26.25it/s] 64%|██████▍ | 129/200 [00:04<00:02, 29.38it/s] 66%|██████▋ | 133/200 [00:05<00:02, 27.02it/s] 68%|██████▊ | 136/200 [00:05<00:02, 27.28it/s] 70%|███████ | 140/200 [00:05<00:02, 29.16it/s] 72%|███████▏ | 144/200 [00:05<00:02, 26.05it/s] 74%|███████▎ | 147/200 [00:05<00:01, 26.54it/s] 76%|███████▌ | 151/200 [00:05<00:01, 29.77it/s] 78%|███████▊ | 155/200 [00:05<00:01, 30.31it/s] 80%|███████▉ | 159/200 [00:06<00:01, 28.51it/s] 81%|████████ | 162/200 [00:06<00:01, 28.26it/s] 82%|████████▎ | 165/200 [00:06<00:01, 28.68it/s] 84%|████████▍ | 168/200 [00:06<00:01, 28.04it/s] 86%|████████▋ | 173/200 [00:06<00:00, 32.75it/s] 88%|████████▊ | 177/200 [00:06<00:00, 28.66it/s] 90%|█████████ | 181/200 [00:06<00:00, 30.52it/s] 93%|█████████▎| 186/200 [00:06<00:00, 34.51it/s] 95%|█████████▌| 190/200 [00:07<00:00, 29.81it/s] 98%|█████████▊| 196/200 [00:07<00:00, 35.45it/s] 100%|██████████| 200/200 [00:07<00:00, 27.47it/s] Extract a triangle mesh from the volume and export it. [Open3D DEBUG] [ClusterConnectedTriangles] Compute triangle adjacency [Open3D DEBUG] [ClusterConnectedTriangles] Done computing triangle adjacency [Open3D DEBUG] [ClusterConnectedTriangles] Done clustering, #clusters=36133 [Mesh loading] v: torch.Size([52582, 3]), f: torch.Size([105172, 3]) [Mesh loading] vn: torch.Size([52582, 3]), fn: torch.Size([105172, 3]) /content/GRM/webui/base_mesh.py:350: UserWarning: Using torch.cross without specifying the dim arg is deprecated. Please either pass the dim explicitly or simply use torch.linalg.cross. The default value of dim will change to agree with that of linalg.cross in a future release. (Triggered internally at ../aten/src/ATen/native/Cross.cpp:63.) face_normals = torch.cross(v1 - v0, v2 - v0) tensor(0.2846, device='cuda:0') tensor(0.7703, device='cuda:0')
Prediction
camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0IDo3rwugzbhwu64rem6jh6nhux4yStatusSucceededSourceWebHardwareA100 (40GB)Total durationCreatedInput
{ "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf2CVHoKhZ2rVCZ8B1R9fZiUsROyt5jl3wTBkf6VdSgw1Aaq/panda.png" }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", { input: { seed: 42, model: "Zero123++ v1.2", fuse_mesh: true, input_image: "https://replicate.delivery/pbxt/Kf2CVHoKhZ2rVCZ8B1R9fZiUsROyt5jl3wTBkf6VdSgw1Aaq/panda.png" } } ); // To access the file URL: console.log(output[0].url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output[0]);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", input={ "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": True, "input_image": "https://replicate.delivery/pbxt/Kf2CVHoKhZ2rVCZ8B1R9fZiUsROyt5jl3wTBkf6VdSgw1Aaq/panda.png" } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", "input": { "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf2CVHoKhZ2rVCZ8B1R9fZiUsROyt5jl3wTBkf6VdSgw1Aaq/panda.png" } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2024-03-30T16:50:50.636997Z", "created_at": "2024-03-30T16:45:50.593557Z", "data_removed": false, "error": null, "id": "o3rwugzbhwu64rem6jh6nhux4y", "input": { "seed": 42, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf2CVHoKhZ2rVCZ8B1R9fZiUsROyt5jl3wTBkf6VdSgw1Aaq/panda.png" }, "logs": "Running image-to-3d with seed 42...\n/usr/local/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py:268: FutureWarning: `_encode_prompt()` is deprecated and it will be removed in a future version. Use `encode_prompt()` instead. Also, be aware that the output format changed from a concatenated tensor to a tuple.\ndeprecate(\"_encode_prompt()\", \"1.0.0\", deprecation_message, standard_warn=False)\n 0%| | 0/30 [00:00<?, ?it/s]\n 3%|▎ | 1/30 [00:00<00:08, 3.39it/s]\n 7%|▋ | 2/30 [00:00<00:05, 5.39it/s]\n 13%|█▎ | 4/30 [00:00<00:03, 7.77it/s]\n 20%|██ | 6/30 [00:00<00:02, 8.50it/s]\n 27%|██▋ | 8/30 [00:00<00:02, 9.17it/s]\n 33%|███▎ | 10/30 [00:01<00:02, 9.56it/s]\n 40%|████ | 12/30 [00:01<00:01, 9.79it/s]\n 47%|████▋ | 14/30 [00:01<00:01, 9.95it/s]\n 53%|█████▎ | 16/30 [00:01<00:01, 9.55it/s]\n 60%|██████ | 18/30 [00:01<00:01, 9.80it/s]\n 63%|██████▎ | 19/30 [00:02<00:01, 9.80it/s]\n 70%|███████ | 21/30 [00:02<00:00, 9.94it/s]\n 77%|███████▋ | 23/30 [00:02<00:00, 10.01it/s]\n 83%|████████▎ | 25/30 [00:02<00:00, 10.07it/s]\n 90%|█████████ | 27/30 [00:02<00:00, 9.77it/s]\n 97%|█████████▋| 29/30 [00:03<00:00, 9.92it/s]\n100%|██████████| 30/30 [00:03<00:00, 9.37it/s]\n/usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:460: UserWarning: torch.utils.checkpoint: please pass in use_reentrant=True or use_reentrant=False explicitly. The default value of use_reentrant will be updated to be False in the future. To maintain current behavior, pass use_reentrant=True. It is recommended that you use use_reentrant=False. Refer to docs for more details on the differences between the two variants.\nwarnings.warn(\n/usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:90: UserWarning: None of the inputs have requires_grad=True. Gradients will be None\nwarnings.warn(\n/usr/local/lib/python3.10/site-packages/torch/functional.py:507: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3549.)\nreturn _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\nIntegrate images into the TSDF volume.\n 0%| | 0/200 [00:00<?, ?it/s]\n 1%| | 2/200 [00:00<00:14, 13.97it/s]\n 4%|▎ | 7/200 [00:00<00:06, 31.08it/s]/content/GRM/webui/runner.py:233: RuntimeWarning: invalid value encountered in arcsin\ncam_elev = np.rad2deg(np.arcsin(cam_pos[2]))\n 6%|▌ | 11/200 [00:00<00:07, 23.92it/s]\n 8%|▊ | 16/200 [00:00<00:07, 25.92it/s]\n 10%|▉ | 19/200 [00:00<00:07, 24.66it/s]\n 11%|█ | 22/200 [00:00<00:08, 22.01it/s]\n 12%|█▎ | 25/200 [00:01<00:07, 22.84it/s]\n 15%|█▌ | 30/200 [00:01<00:06, 25.17it/s]\n 16%|█▋ | 33/200 [00:01<00:06, 25.28it/s]\n 18%|█▊ | 37/200 [00:01<00:05, 27.75it/s]\n 20%|██ | 40/200 [00:01<00:05, 27.89it/s]\n 22%|██▏ | 43/200 [00:01<00:06, 24.20it/s]\n 23%|██▎ | 46/200 [00:01<00:06, 24.30it/s]\n 25%|██▌ | 50/200 [00:02<00:06, 24.30it/s]\n 26%|██▋ | 53/200 [00:02<00:06, 24.09it/s]\n 28%|██▊ | 56/200 [00:02<00:05, 24.26it/s]\n 30%|██▉ | 59/200 [00:02<00:06, 22.24it/s]\n 32%|███▏ | 63/200 [00:02<00:05, 25.67it/s]\n 33%|███▎ | 66/200 [00:02<00:05, 26.17it/s]\n 35%|███▌ | 70/200 [00:02<00:04, 28.73it/s]\n 37%|███▋ | 74/200 [00:02<00:04, 27.73it/s]\n 38%|███▊ | 77/200 [00:03<00:04, 27.82it/s]\n 40%|████ | 80/200 [00:03<00:04, 27.97it/s]\n 42%|████▏ | 83/200 [00:03<00:04, 27.62it/s]\n 43%|████▎ | 86/200 [00:03<00:04, 27.67it/s]\n 44%|████▍ | 89/200 [00:03<00:03, 27.86it/s]\n 46%|████▋ | 93/200 [00:03<00:03, 30.17it/s]\n 48%|████▊ | 97/200 [00:03<00:03, 29.12it/s]\n 50%|█████ | 100/200 [00:03<00:03, 28.70it/s]\n 52%|█████▏ | 104/200 [00:03<00:03, 31.47it/s]\n 54%|█████▍ | 108/200 [00:04<00:02, 31.12it/s]\n 56%|█████▌ | 112/200 [00:04<00:03, 27.76it/s]\n 58%|█████▊ | 116/200 [00:04<00:02, 29.96it/s]\n 60%|██████ | 120/200 [00:04<00:02, 27.58it/s]\n 62%|██████▏ | 123/200 [00:04<00:02, 27.34it/s]\n 64%|██████▎ | 127/200 [00:04<00:02, 29.93it/s]\n 66%|██████▌ | 131/200 [00:04<00:02, 31.97it/s]\n 68%|██████▊ | 135/200 [00:05<00:02, 28.57it/s]\n 70%|██████▉ | 139/200 [00:05<00:02, 30.50it/s]\n 72%|███████▏ | 143/200 [00:05<00:01, 30.57it/s]\n 74%|███████▎ | 147/200 [00:05<00:01, 27.26it/s]\n 76%|███████▌ | 151/200 [00:05<00:01, 29.56it/s]\n 78%|███████▊ | 155/200 [00:05<00:01, 26.93it/s]\n 80%|███████▉ | 159/200 [00:05<00:01, 29.35it/s]\n 82%|████████▏ | 163/200 [00:06<00:01, 26.59it/s]\n 83%|████████▎ | 166/200 [00:06<00:01, 26.97it/s]\n 84%|████████▍ | 169/200 [00:06<00:01, 26.81it/s]\n 87%|████████▋ | 174/200 [00:06<00:00, 31.68it/s]\n 89%|████████▉ | 178/200 [00:06<00:00, 28.25it/s]\n 91%|█████████ | 182/200 [00:06<00:00, 30.39it/s]\n 94%|█████████▎| 187/200 [00:06<00:00, 34.49it/s]\n 96%|█████████▌| 191/200 [00:06<00:00, 35.35it/s]\n 98%|█████████▊| 196/200 [00:06<00:00, 38.66it/s]\n100%|██████████| 200/200 [00:07<00:00, 28.37it/s]\nExtract a triangle mesh from the volume and export it.\n[Open3D DEBUG] [ClusterConnectedTriangles] Compute triangle adjacency\n[Open3D DEBUG] [ClusterConnectedTriangles] Done computing triangle adjacency\n[Open3D DEBUG] [ClusterConnectedTriangles] Done clustering, #clusters=31665\n[Mesh loading] v: torch.Size([74481, 3]), f: torch.Size([148655, 3])\n[Mesh loading] vn: torch.Size([74481, 3]), fn: torch.Size([148655, 3])\n/content/GRM/webui/base_mesh.py:350: UserWarning: Using torch.cross without specifying the dim arg is deprecated.\nPlease either pass the dim explicitly or simply use torch.linalg.cross.\nThe default value of dim will change to agree with that of linalg.cross in a future release. (Triggered internally at ../aten/src/ATen/native/Cross.cpp:63.)\nface_normals = torch.cross(v1 - v0, v2 - v0)\ntensor(0.2745, device='cuda:0') tensor(0.7739, device='cuda:0')", "metrics": { "predict_time": 34.091535, "total_time": 300.04344 }, "output": [ "https://replicate.delivery/pbxt/pkdZKckh8gZcBBu1Iz9EeJtlNBKfMRW1XPQWDdcsphGpTfKlA/gs.mp4", "https://replicate.delivery/pbxt/koApD8dcM8K2NB929Of3atPPKUrIR7dwilgXk1sQosa1pvSJA/mesh.glb", "https://replicate.delivery/pbxt/leb61P8krIUjXKD0QpRS99fdQMbqmBEIvvUSNf1zGIfoO9VKB/gs_vis.ply", "https://replicate.delivery/pbxt/Nnkn1PFP2TqGIdszMJUMlt2Ls12k1DkLESCpobdyydt60XpE/gs.ply" ], "started_at": "2024-03-30T16:50:16.545462Z", "status": "succeeded", "urls": { "get": "https://api.replicate.com/v1/predictions/o3rwugzbhwu64rem6jh6nhux4y", "cancel": "https://api.replicate.com/v1/predictions/o3rwugzbhwu64rem6jh6nhux4y/cancel" }, "version": "8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0" }
Generated inRunning image-to-3d with seed 42... /usr/local/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py:268: FutureWarning: `_encode_prompt()` is deprecated and it will be removed in a future version. Use `encode_prompt()` instead. Also, be aware that the output format changed from a concatenated tensor to a tuple. deprecate("_encode_prompt()", "1.0.0", deprecation_message, standard_warn=False) 0%| | 0/30 [00:00<?, ?it/s] 3%|▎ | 1/30 [00:00<00:08, 3.39it/s] 7%|▋ | 2/30 [00:00<00:05, 5.39it/s] 13%|█▎ | 4/30 [00:00<00:03, 7.77it/s] 20%|██ | 6/30 [00:00<00:02, 8.50it/s] 27%|██▋ | 8/30 [00:00<00:02, 9.17it/s] 33%|███▎ | 10/30 [00:01<00:02, 9.56it/s] 40%|████ | 12/30 [00:01<00:01, 9.79it/s] 47%|████▋ | 14/30 [00:01<00:01, 9.95it/s] 53%|█████▎ | 16/30 [00:01<00:01, 9.55it/s] 60%|██████ | 18/30 [00:01<00:01, 9.80it/s] 63%|██████▎ | 19/30 [00:02<00:01, 9.80it/s] 70%|███████ | 21/30 [00:02<00:00, 9.94it/s] 77%|███████▋ | 23/30 [00:02<00:00, 10.01it/s] 83%|████████▎ | 25/30 [00:02<00:00, 10.07it/s] 90%|█████████ | 27/30 [00:02<00:00, 9.77it/s] 97%|█████████▋| 29/30 [00:03<00:00, 9.92it/s] 100%|██████████| 30/30 [00:03<00:00, 9.37it/s] /usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:460: UserWarning: torch.utils.checkpoint: please pass in use_reentrant=True or use_reentrant=False explicitly. The default value of use_reentrant will be updated to be False in the future. To maintain current behavior, pass use_reentrant=True. It is recommended that you use use_reentrant=False. Refer to docs for more details on the differences between the two variants. warnings.warn( /usr/local/lib/python3.10/site-packages/torch/utils/checkpoint.py:90: UserWarning: None of the inputs have requires_grad=True. Gradients will be None warnings.warn( /usr/local/lib/python3.10/site-packages/torch/functional.py:507: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3549.) return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined] Integrate images into the TSDF volume. 0%| | 0/200 [00:00<?, ?it/s] 1%| | 2/200 [00:00<00:14, 13.97it/s] 4%|▎ | 7/200 [00:00<00:06, 31.08it/s]/content/GRM/webui/runner.py:233: RuntimeWarning: invalid value encountered in arcsin cam_elev = np.rad2deg(np.arcsin(cam_pos[2])) 6%|▌ | 11/200 [00:00<00:07, 23.92it/s] 8%|▊ | 16/200 [00:00<00:07, 25.92it/s] 10%|▉ | 19/200 [00:00<00:07, 24.66it/s] 11%|█ | 22/200 [00:00<00:08, 22.01it/s] 12%|█▎ | 25/200 [00:01<00:07, 22.84it/s] 15%|█▌ | 30/200 [00:01<00:06, 25.17it/s] 16%|█▋ | 33/200 [00:01<00:06, 25.28it/s] 18%|█▊ | 37/200 [00:01<00:05, 27.75it/s] 20%|██ | 40/200 [00:01<00:05, 27.89it/s] 22%|██▏ | 43/200 [00:01<00:06, 24.20it/s] 23%|██▎ | 46/200 [00:01<00:06, 24.30it/s] 25%|██▌ | 50/200 [00:02<00:06, 24.30it/s] 26%|██▋ | 53/200 [00:02<00:06, 24.09it/s] 28%|██▊ | 56/200 [00:02<00:05, 24.26it/s] 30%|██▉ | 59/200 [00:02<00:06, 22.24it/s] 32%|███▏ | 63/200 [00:02<00:05, 25.67it/s] 33%|███▎ | 66/200 [00:02<00:05, 26.17it/s] 35%|███▌ | 70/200 [00:02<00:04, 28.73it/s] 37%|███▋ | 74/200 [00:02<00:04, 27.73it/s] 38%|███▊ | 77/200 [00:03<00:04, 27.82it/s] 40%|████ | 80/200 [00:03<00:04, 27.97it/s] 42%|████▏ | 83/200 [00:03<00:04, 27.62it/s] 43%|████▎ | 86/200 [00:03<00:04, 27.67it/s] 44%|████▍ | 89/200 [00:03<00:03, 27.86it/s] 46%|████▋ | 93/200 [00:03<00:03, 30.17it/s] 48%|████▊ | 97/200 [00:03<00:03, 29.12it/s] 50%|█████ | 100/200 [00:03<00:03, 28.70it/s] 52%|█████▏ | 104/200 [00:03<00:03, 31.47it/s] 54%|█████▍ | 108/200 [00:04<00:02, 31.12it/s] 56%|█████▌ | 112/200 [00:04<00:03, 27.76it/s] 58%|█████▊ | 116/200 [00:04<00:02, 29.96it/s] 60%|██████ | 120/200 [00:04<00:02, 27.58it/s] 62%|██████▏ | 123/200 [00:04<00:02, 27.34it/s] 64%|██████▎ | 127/200 [00:04<00:02, 29.93it/s] 66%|██████▌ | 131/200 [00:04<00:02, 31.97it/s] 68%|██████▊ | 135/200 [00:05<00:02, 28.57it/s] 70%|██████▉ | 139/200 [00:05<00:02, 30.50it/s] 72%|███████▏ | 143/200 [00:05<00:01, 30.57it/s] 74%|███████▎ | 147/200 [00:05<00:01, 27.26it/s] 76%|███████▌ | 151/200 [00:05<00:01, 29.56it/s] 78%|███████▊ | 155/200 [00:05<00:01, 26.93it/s] 80%|███████▉ | 159/200 [00:05<00:01, 29.35it/s] 82%|████████▏ | 163/200 [00:06<00:01, 26.59it/s] 83%|████████▎ | 166/200 [00:06<00:01, 26.97it/s] 84%|████████▍ | 169/200 [00:06<00:01, 26.81it/s] 87%|████████▋ | 174/200 [00:06<00:00, 31.68it/s] 89%|████████▉ | 178/200 [00:06<00:00, 28.25it/s] 91%|█████████ | 182/200 [00:06<00:00, 30.39it/s] 94%|█████████▎| 187/200 [00:06<00:00, 34.49it/s] 96%|█████████▌| 191/200 [00:06<00:00, 35.35it/s] 98%|█████████▊| 196/200 [00:06<00:00, 38.66it/s] 100%|██████████| 200/200 [00:07<00:00, 28.37it/s] Extract a triangle mesh from the volume and export it. [Open3D DEBUG] [ClusterConnectedTriangles] Compute triangle adjacency [Open3D DEBUG] [ClusterConnectedTriangles] Done computing triangle adjacency [Open3D DEBUG] [ClusterConnectedTriangles] Done clustering, #clusters=31665 [Mesh loading] v: torch.Size([74481, 3]), f: torch.Size([148655, 3]) [Mesh loading] vn: torch.Size([74481, 3]), fn: torch.Size([148655, 3]) /content/GRM/webui/base_mesh.py:350: UserWarning: Using torch.cross without specifying the dim arg is deprecated. Please either pass the dim explicitly or simply use torch.linalg.cross. The default value of dim will change to agree with that of linalg.cross in a future release. (Triggered internally at ../aten/src/ATen/native/Cross.cpp:63.) face_normals = torch.cross(v1 - v0, v2 - v0) tensor(0.2745, device='cuda:0') tensor(0.7739, device='cuda:0')
Prediction
camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0IDrgfiruzbto74d7mhkfq6llnfwmStatusSucceededSourceWebHardwareA100 (40GB)Total durationCreatedInput
{ "seed": 21, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf2I8ezAPJ9a6YZJUnDkoGq7urlPtjrA5hRS02D0knxS2KrW/dragon2.png" }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", { input: { seed: 21, model: "Zero123++ v1.2", fuse_mesh: true, input_image: "https://replicate.delivery/pbxt/Kf2I8ezAPJ9a6YZJUnDkoGq7urlPtjrA5hRS02D0knxS2KrW/dragon2.png" } } ); // To access the file URL: console.log(output[0].url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output[0]);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "camenduru/grm:8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", input={ "seed": 21, "model": "Zero123++ v1.2", "fuse_mesh": True, "input_image": "https://replicate.delivery/pbxt/Kf2I8ezAPJ9a6YZJUnDkoGq7urlPtjrA5hRS02D0knxS2KrW/dragon2.png" } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run camenduru/grm using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0", "input": { "seed": 21, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf2I8ezAPJ9a6YZJUnDkoGq7urlPtjrA5hRS02D0knxS2KrW/dragon2.png" } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2024-03-30T16:52:11.872009Z", "created_at": "2024-03-30T16:51:45.995453Z", "data_removed": false, "error": null, "id": "rgfiruzbto74d7mhkfq6llnfwm", "input": { "seed": 21, "model": "Zero123++ v1.2", "fuse_mesh": true, "input_image": "https://replicate.delivery/pbxt/Kf2I8ezAPJ9a6YZJUnDkoGq7urlPtjrA5hRS02D0knxS2KrW/dragon2.png" }, "logs": "Running image-to-3d with seed 21...\n 0%| | 0/30 [00:00<?, ?it/s]\n 7%|▋ | 2/30 [00:00<00:02, 9.99it/s]\n 13%|█▎ | 4/30 [00:00<00:02, 10.24it/s]\n 20%|██ | 6/30 [00:00<00:02, 9.76it/s]\n 27%|██▋ | 8/30 [00:00<00:02, 10.08it/s]\n 33%|███▎ | 10/30 [00:00<00:01, 10.21it/s]\n 40%|████ | 12/30 [00:01<00:01, 10.23it/s]\n 47%|████▋ | 14/30 [00:01<00:01, 10.30it/s]\n 53%|█████▎ | 16/30 [00:01<00:01, 10.34it/s]\n 60%|██████ | 18/30 [00:01<00:01, 10.03it/s]\n 67%|██████▋ | 20/30 [00:01<00:00, 10.11it/s]\n 73%|███████▎ | 22/30 [00:02<00:00, 10.19it/s]\n 80%|████████ | 24/30 [00:02<00:00, 10.20it/s]\n 87%|████████▋ | 26/30 [00:02<00:00, 10.26it/s]\n 93%|█████████▎| 28/30 [00:02<00:00, 9.94it/s]\n100%|██████████| 30/30 [00:02<00:00, 10.01it/s]\n100%|██████████| 30/30 [00:02<00:00, 10.11it/s]\nIntegrate images into the TSDF volume.\n 0%| | 0/200 [00:00<?, ?it/s]\n 0%| | 1/200 [00:00<00:26, 7.58it/s]\n 2%|▏ | 4/200 [00:00<00:10, 18.13it/s]\n 4%|▍ | 9/200 [00:00<00:06, 29.80it/s]\n 6%|▋ | 13/200 [00:00<00:07, 24.91it/s]\n 8%|▊ | 16/200 [00:00<00:07, 25.94it/s]\n 10%|▉ | 19/200 [00:00<00:08, 21.92it/s]\n 11%|█ | 22/200 [00:01<00:08, 19.84it/s]\n 12%|█▎ | 25/200 [00:01<00:08, 20.77it/s]\n 15%|█▌ | 30/200 [00:01<00:07, 23.61it/s]\n 16%|█▋ | 33/200 [00:01<00:07, 23.33it/s]\n 18%|█▊ | 36/200 [00:01<00:06, 24.62it/s]\n 20%|█▉ | 39/200 [00:01<00:06, 25.79it/s]\n 21%|██ | 42/200 [00:01<00:07, 22.56it/s]\n 22%|██▎ | 45/200 [00:01<00:06, 22.93it/s]\n 24%|██▍ | 49/200 [00:02<00:06, 23.51it/s]\n 26%|██▌ | 52/200 [00:02<00:06, 24.18it/s]\n 28%|██▊ | 55/200 [00:02<00:05, 24.87it/s]\n 29%|██▉ | 58/200 [00:02<00:05, 25.32it/s]\n 31%|███ | 62/200 [00:02<00:05, 25.29it/s]\n 32%|███▎ | 65/200 [00:02<00:05, 25.24it/s]\n 34%|███▍ | 68/200 [00:02<00:05, 25.60it/s]\n 36%|███▌ | 72/200 [00:02<00:04, 28.64it/s]\n 38%|███▊ | 76/200 [00:03<00:04, 27.01it/s]\n 40%|███▉ | 79/200 [00:03<00:04, 26.65it/s]\n 41%|████ | 82/200 [00:03<00:05, 23.33it/s]\n 42%|████▎ | 85/200 [00:03<00:04, 24.28it/s]\n 44%|████▍ | 88/200 [00:03<00:04, 24.93it/s]\n 46%|████▌ | 92/200 [00:03<00:03, 28.13it/s]\n 48%|████▊ | 96/200 [00:03<00:03, 30.36it/s]\n 50%|█████ | 100/200 [00:04<00:03, 27.14it/s]\n 52%|█████▏ | 104/200 [00:04<00:03, 29.18it/s]\n 54%|█████▍ | 108/200 [00:04<00:03, 26.40it/s]\n 56%|█████▌ | 111/200 [00:04<00:03, 26.15it/s]\n 57%|█████▋ | 114/200 [00:04<00:03, 26.57it/s]\n 59%|█████▉ | 118/200 [00:04<00:03, 26.03it/s]\n 60%|██████ | 121/200 [00:04<00:03, 26.25it/s]\n 62%|██████▎ | 125/200 [00:04<00:02, 28.84it/s]\n 64%|██████▍ | 129/200 [00:05<00:02, 31.05it/s]\n 66%|██████▋ | 133/200 [00:05<00:02, 27.33it/s]\n 68%|██████▊ | 136/200 [00:05<00:02, 27.21it/s]\n 70%|███████ | 140/200 [00:05<00:02, 29.15it/s]\n 72%|███████▏ | 143/200 [00:05<00:02, 25.60it/s]\n 73%|███████▎ | 146/200 [00:05<00:02, 25.64it/s]\n 75%|███████▌ | 150/200 [00:05<00:01, 28.53it/s]\n 76%|███████▋ | 153/200 [00:05<00:01, 28.36it/s]\n 78%|███████▊ | 156/200 [00:06<00:01, 24.70it/s]\n 80%|████████ | 160/200 [00:06<00:01, 27.08it/s]\n 82%|████████▏ | 163/200 [00:06<00:01, 26.99it/s]\n 83%|████████▎ | 166/200 [00:06<00:01, 27.05it/s]\n 84%|████████▍ | 169/200 [00:06<00:01, 24.02it/s]\n 87%|████████▋ | 174/200 [00:06<00:00, 29.33it/s]\n 89%|████████▉ | 178/200 [00:06<00:00, 26.24it/s]\n 91%|█████████ | 182/200 [00:07<00:00, 28.56it/s]\n 94%|█████████▎| 187/200 [00:07<00:00, 32.72it/s]\n 96%|█████████▌| 191/200 [00:07<00:00, 29.52it/s]\n 98%|█████████▊| 196/200 [00:07<00:00, 33.36it/s]\n100%|██████████| 200/200 [00:07<00:00, 26.59it/s]\nExtract a triangle mesh from the volume and export it.\n[Open3D DEBUG] [ClusterConnectedTriangles] Compute triangle adjacency\n[Open3D DEBUG] [ClusterConnectedTriangles] Done computing triangle adjacency\n[Open3D DEBUG] [ClusterConnectedTriangles] Done clustering, #clusters=46060\n[Mesh loading] v: torch.Size([70902, 3]), f: torch.Size([141445, 3])\n[Mesh loading] vn: torch.Size([70902, 3]), fn: torch.Size([141445, 3])\ntensor(0.2557, device='cuda:0') tensor(0.7722, device='cuda:0')", "metrics": { "predict_time": 25.860297, "total_time": 25.876556 }, "output": [ "https://replicate.delivery/pbxt/cX5JxYRwl1aMLdHzrhJQXrUwOOlIQMzoU5llxBr9mI4O1XpE/gs.mp4", "https://replicate.delivery/pbxt/JkBYe7jHeMgezI0IP4ycCOjCaSw80EeHFLJUGuwonBbsT9VKB/mesh.glb", "https://replicate.delivery/pbxt/hXZRhRPj81YuAhRzyteGb6vkmBk8fGy2G23G3h02oTb7UfKlA/gs_vis.ply", "https://replicate.delivery/pbxt/0dVVyRrdrfVzfUzMEIcpuqjeJjYnJPwxsmF72AzwEqg2peVKB/gs.ply" ], "started_at": "2024-03-30T16:51:46.011712Z", "status": "succeeded", "urls": { "get": "https://api.replicate.com/v1/predictions/rgfiruzbto74d7mhkfq6llnfwm", "cancel": "https://api.replicate.com/v1/predictions/rgfiruzbto74d7mhkfq6llnfwm/cancel" }, "version": "8c489b23ddc6a9b0484f8b6f55f9b24fd792a84a6715d02f7e3ec63325bae4f0" }
Generated inRunning image-to-3d with seed 21... 0%| | 0/30 [00:00<?, ?it/s] 7%|▋ | 2/30 [00:00<00:02, 9.99it/s] 13%|█▎ | 4/30 [00:00<00:02, 10.24it/s] 20%|██ | 6/30 [00:00<00:02, 9.76it/s] 27%|██▋ | 8/30 [00:00<00:02, 10.08it/s] 33%|███▎ | 10/30 [00:00<00:01, 10.21it/s] 40%|████ | 12/30 [00:01<00:01, 10.23it/s] 47%|████▋ | 14/30 [00:01<00:01, 10.30it/s] 53%|█████▎ | 16/30 [00:01<00:01, 10.34it/s] 60%|██████ | 18/30 [00:01<00:01, 10.03it/s] 67%|██████▋ | 20/30 [00:01<00:00, 10.11it/s] 73%|███████▎ | 22/30 [00:02<00:00, 10.19it/s] 80%|████████ | 24/30 [00:02<00:00, 10.20it/s] 87%|████████▋ | 26/30 [00:02<00:00, 10.26it/s] 93%|█████████▎| 28/30 [00:02<00:00, 9.94it/s] 100%|██████████| 30/30 [00:02<00:00, 10.01it/s] 100%|██████████| 30/30 [00:02<00:00, 10.11it/s] Integrate images into the TSDF volume. 0%| | 0/200 [00:00<?, ?it/s] 0%| | 1/200 [00:00<00:26, 7.58it/s] 2%|▏ | 4/200 [00:00<00:10, 18.13it/s] 4%|▍ | 9/200 [00:00<00:06, 29.80it/s] 6%|▋ | 13/200 [00:00<00:07, 24.91it/s] 8%|▊ | 16/200 [00:00<00:07, 25.94it/s] 10%|▉ | 19/200 [00:00<00:08, 21.92it/s] 11%|█ | 22/200 [00:01<00:08, 19.84it/s] 12%|█▎ | 25/200 [00:01<00:08, 20.77it/s] 15%|█▌ | 30/200 [00:01<00:07, 23.61it/s] 16%|█▋ | 33/200 [00:01<00:07, 23.33it/s] 18%|█▊ | 36/200 [00:01<00:06, 24.62it/s] 20%|█▉ | 39/200 [00:01<00:06, 25.79it/s] 21%|██ | 42/200 [00:01<00:07, 22.56it/s] 22%|██▎ | 45/200 [00:01<00:06, 22.93it/s] 24%|██▍ | 49/200 [00:02<00:06, 23.51it/s] 26%|██▌ | 52/200 [00:02<00:06, 24.18it/s] 28%|██▊ | 55/200 [00:02<00:05, 24.87it/s] 29%|██▉ | 58/200 [00:02<00:05, 25.32it/s] 31%|███ | 62/200 [00:02<00:05, 25.29it/s] 32%|███▎ | 65/200 [00:02<00:05, 25.24it/s] 34%|███▍ | 68/200 [00:02<00:05, 25.60it/s] 36%|███▌ | 72/200 [00:02<00:04, 28.64it/s] 38%|███▊ | 76/200 [00:03<00:04, 27.01it/s] 40%|███▉ | 79/200 [00:03<00:04, 26.65it/s] 41%|████ | 82/200 [00:03<00:05, 23.33it/s] 42%|████▎ | 85/200 [00:03<00:04, 24.28it/s] 44%|████▍ | 88/200 [00:03<00:04, 24.93it/s] 46%|████▌ | 92/200 [00:03<00:03, 28.13it/s] 48%|████▊ | 96/200 [00:03<00:03, 30.36it/s] 50%|█████ | 100/200 [00:04<00:03, 27.14it/s] 52%|█████▏ | 104/200 [00:04<00:03, 29.18it/s] 54%|█████▍ | 108/200 [00:04<00:03, 26.40it/s] 56%|█████▌ | 111/200 [00:04<00:03, 26.15it/s] 57%|█████▋ | 114/200 [00:04<00:03, 26.57it/s] 59%|█████▉ | 118/200 [00:04<00:03, 26.03it/s] 60%|██████ | 121/200 [00:04<00:03, 26.25it/s] 62%|██████▎ | 125/200 [00:04<00:02, 28.84it/s] 64%|██████▍ | 129/200 [00:05<00:02, 31.05it/s] 66%|██████▋ | 133/200 [00:05<00:02, 27.33it/s] 68%|██████▊ | 136/200 [00:05<00:02, 27.21it/s] 70%|███████ | 140/200 [00:05<00:02, 29.15it/s] 72%|███████▏ | 143/200 [00:05<00:02, 25.60it/s] 73%|███████▎ | 146/200 [00:05<00:02, 25.64it/s] 75%|███████▌ | 150/200 [00:05<00:01, 28.53it/s] 76%|███████▋ | 153/200 [00:05<00:01, 28.36it/s] 78%|███████▊ | 156/200 [00:06<00:01, 24.70it/s] 80%|████████ | 160/200 [00:06<00:01, 27.08it/s] 82%|████████▏ | 163/200 [00:06<00:01, 26.99it/s] 83%|████████▎ | 166/200 [00:06<00:01, 27.05it/s] 84%|████████▍ | 169/200 [00:06<00:01, 24.02it/s] 87%|████████▋ | 174/200 [00:06<00:00, 29.33it/s] 89%|████████▉ | 178/200 [00:06<00:00, 26.24it/s] 91%|█████████ | 182/200 [00:07<00:00, 28.56it/s] 94%|█████████▎| 187/200 [00:07<00:00, 32.72it/s] 96%|█████████▌| 191/200 [00:07<00:00, 29.52it/s] 98%|█████████▊| 196/200 [00:07<00:00, 33.36it/s] 100%|██████████| 200/200 [00:07<00:00, 26.59it/s] Extract a triangle mesh from the volume and export it. [Open3D DEBUG] [ClusterConnectedTriangles] Compute triangle adjacency [Open3D DEBUG] [ClusterConnectedTriangles] Done computing triangle adjacency [Open3D DEBUG] [ClusterConnectedTriangles] Done clustering, #clusters=46060 [Mesh loading] v: torch.Size([70902, 3]), f: torch.Size([141445, 3]) [Mesh loading] vn: torch.Size([70902, 3]), fn: torch.Size([141445, 3]) tensor(0.2557, device='cuda:0') tensor(0.7722, device='cuda:0')
Want to make some of these yourself?
Run this model