{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import torch\n", "\n", "from shap_e.models.download import load_model\n", "from shap_e.util.data_util import load_or_create_multimodal_batch\n", "from shap_e.util.notebooks import create_pan_cameras, decode_latent_images, gif_widget" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "xm = load_model('transmitter', device=device)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "model_path = \"example_data/cactus/object.obj\"\n", "\n", "# This may take a few minutes, since it requires rendering the model twice\n", "# in two different modes.\n", "batch = load_or_create_multimodal_batch(\n", " device,\n", " model_path=model_path,\n", " mv_light_mode=\"basic\",\n", " mv_image_size=256,\n", " cache_dir=\"example_data/cactus/cached\",\n", " verbose=True, # this will show Blender output during renders\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with torch.no_grad():\n", " latent = xm.encoder.encode_to_bottleneck(batch)\n", "\n", " render_mode = 'stf' # you can change this to 'nerf'\n", " size = 128 # recommended that you lower resolution when using nerf\n", "\n", " cameras = create_pan_cameras(size, device)\n", " images = decode_latent_images(xm, latent, cameras, rendering_mode=render_mode)\n", " display(gif_widget(images))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.9" } }, "nbformat": 4, "nbformat_minor": 5 }