Buckets:
| import{s as as,n as ns,o as is}from"../chunks/scheduler.53228c21.js";import{S as ps,i as os,e as i,s as a,c as r,h as rs,a as p,d as t,b as n,f as ls,g as m,j as o,k as A,l as ms,m as l,n as c,t as u,o as h,p as f}from"../chunks/index.100fac89.js";import{C as cs}from"../chunks/CopyLLMTxtMenu.8aee8eb3.js";import{C as y}from"../chunks/CodeBlock.d30a6509.js";import{D as us}from"../chunks/DocNotebookDropdown.74a16910.js";import{H as Xe,E as hs}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.37cdb888.js";function fs(Se){let d,ee,K,se,J,te,T,le,j,ae,U,Re="Shap-E is a conditional model for generating 3D assets which could be used for video game development, interior design, and architecture. It is trained on a large dataset of 3D assets, and post-processed to render more views of each object and produce 16K instead of 4K point clouds. The Shap-E model is trained in two steps:",ne,Z,Ve="<li>an encoder accepts the point clouds and rendered views of a 3D asset and outputs the parameters of implicit functions that represent the asset</li> <li>a diffusion model is trained on the latents produced by the encoder to generate either neural radiance fields (NeRFs) or a textured 3D mesh, making it easier to render and use the 3D asset in downstream applications</li>",ie,_,Ne="This guide will show you how to use Shap-E to start generating your own 3D assets!",pe,I,Ye="Before you begin, make sure you have the following libraries installed:",oe,W,re,v,me,C,qe='To generate a gif of a 3D object, pass a text prompt to the <a href="/docs/diffusers/pr_13489/en/api/pipelines/shap_e#diffusers.ShapEPipeline">ShapEPipeline</a>. The pipeline generates a list of image frames which are used to create the 3D object.',ce,$,ue,B,Qe='이제 <a href="/docs/diffusers/pr_13489/en/api/utilities#diffusers.utils.export_to_gif">export_to_gif()</a> 함수를 사용해 이미지 프레임 리스트를 3D 오브젝트의 gif로 변환합니다.',he,k,fe,M,ze='<div><img class="rounded-xl" src="https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/shap_e/firecracker_out.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">prompt = "A firecracker"</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/shap_e/cake_out.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">prompt = "A birthday cupcake"</figcaption></div>',de,G,ye,x,Fe='To generate a 3D object from another image, use the <a href="/docs/diffusers/pr_13489/en/api/pipelines/shap_e#diffusers.ShapEImg2ImgPipeline">ShapEImg2ImgPipeline</a>. You can use an existing image or generate an entirely new one. Let’s use the <a href="../api/pipelines/kandinsky">Kandinsky 2.1</a> model to generate a new image.',Me,E,ge,X,He='Pass the cheeseburger to the <a href="/docs/diffusers/pr_13489/en/api/pipelines/shap_e#diffusers.ShapEImg2ImgPipeline">ShapEImg2ImgPipeline</a> to generate a 3D representation of it.',be,S,we,g,De='<div><img class="rounded-xl" src="https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/shap_e/burger_in.png"/> <figcaption class="mt-2 text-center text-sm text-gray-500">cheeseburger</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/shap_e/burger_out.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">3D cheeseburger</figcaption></div>',Je,R,Te,V,Le='Shap-E is a flexible model that can also generate textured mesh outputs to be rendered for downstream applications. In this example, you’ll convert the output into a <code>glb</code> file because the 🤗 Datasets library supports mesh visualization of <code>glb</code> files which can be rendered by the <a href="https://huggingface.co/docs/hub/datasets-viewer#dataset-preview" rel="nofollow">Dataset viewer</a>.',je,N,Pe='You can generate mesh outputs for both the <a href="/docs/diffusers/pr_13489/en/api/pipelines/shap_e#diffusers.ShapEPipeline">ShapEPipeline</a> and <a href="/docs/diffusers/pr_13489/en/api/pipelines/shap_e#diffusers.ShapEImg2ImgPipeline">ShapEImg2ImgPipeline</a> by specifying the <code>output_type</code> parameter as <code>"mesh"</code>:',Ue,Y,Ze,q,Ae="Use the <code>export_to_ply()</code> function to save the mesh output as a <code>ply</code> file:",_e,b,Ke="<p>You can optionally save the mesh output as an <code>obj</code> file with the <code>export_to_obj()</code> function. The ability to save the mesh output in a variety of formats makes it more flexible for downstream usage!</p>",Ie,Q,We,z,Oe="Then you can convert the <code>ply</code> file to a <code>glb</code> file with the trimesh library:",ve,F,Ce,H,es="By default, the mesh output is focused from the bottom viewpoint but you can change the default viewpoint by applying a rotation transform:",$e,D,Be,L,ss="Upload the mesh file to your dataset repository to visualize it with the Dataset viewer!",ke,w,ts='<img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/3D-cake.gif"/>',Ge,P,xe,O,Ee;return J=new cs({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new us({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/en/shap-e.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/en/pytorch/shap-e.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/en/tensorflow/shap-e.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/en/shap-e.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/en/pytorch/shap-e.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/en/tensorflow/shap-e.ipynb"}]}}),j=new Xe({props:{title:"Shap-E",local:"shap-e",headingTag:"h1"}}),W=new y({props:{code:"JTIzJTIwdW5jb21tZW50JTIwdG8lMjBpbnN0YWxsJTIwdGhlJTIwbmVjZXNzYXJ5JTIwbGlicmFyaWVzJTIwaW4lMjBDb2xhYiUwQSUyMyFwaXAlMjBpbnN0YWxsJTIwLXElMjBkaWZmdXNlcnMlMjB0cmFuc2Zvcm1lcnMlMjBhY2NlbGVyYXRlJTIwdHJpbWVzaA==",highlighted:`<span class="hljs-comment"># uncomment to install the necessary libraries in Colab</span> | |
| <span class="hljs-comment">#!pip install -q diffusers transformers accelerate trimesh</span>`,wrap:!1}}),v=new Xe({props:{title:"Text-to-3D",local:"text-to-3d",headingTag:"h2"}}),$=new y({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU2hhcEVQaXBlbGluZSUwQSUwQWRldmljZSUyMCUzRCUyMHRvcmNoLmRldmljZSglMjJjdWRhJTIyJTIwaWYlMjB0b3JjaC5jdWRhLmlzX2F2YWlsYWJsZSgpJTIwZWxzZSUyMCUyMmNwdSUyMiklMEElMEFwaXBlJTIwJTNEJTIwU2hhcEVQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyb3BlbmFpJTJGc2hhcC1lJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIpJTBBcGlwZSUyMCUzRCUyMHBpcGUudG8oZGV2aWNlKSUwQSUwQWd1aWRhbmNlX3NjYWxlJTIwJTNEJTIwMTUuMCUwQXByb21wdCUyMCUzRCUyMCU1QiUyMkElMjBmaXJlY3JhY2tlciUyMiUyQyUyMCUyMkElMjBiaXJ0aGRheSUyMGN1cGNha2UlMjIlNUQlMEElMEFpbWFnZXMlMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNEZ3VpZGFuY2Vfc2NhbGUlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENjQlMkMlMEElMjAlMjAlMjAlMjBmcmFtZV9zaXplJTNEMjU2JTJDJTBBKS5pbWFnZXM=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> ShapEPipeline | |
| device = torch.device(<span class="hljs-string">"cuda"</span> <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> <span class="hljs-string">"cpu"</span>) | |
| pipe = ShapEPipeline.from_pretrained(<span class="hljs-string">"openai/shap-e"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipe = pipe.to(device) | |
| guidance_scale = <span class="hljs-number">15.0</span> | |
| prompt = [<span class="hljs-string">"A firecracker"</span>, <span class="hljs-string">"A birthday cupcake"</span>] | |
| images = pipe( | |
| prompt, | |
| guidance_scale=guidance_scale, | |
| num_inference_steps=<span class="hljs-number">64</span>, | |
| frame_size=<span class="hljs-number">256</span>, | |
| ).images`,wrap:!1}}),k=new y({props:{code:"ZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b19naWYlMEElMEFleHBvcnRfdG9fZ2lmKGltYWdlcyU1QjAlNUQlMkMlMjAlMjJmaXJlY3JhY2tlcl8zZC5naWYlMjIpJTBBZXhwb3J0X3RvX2dpZihpbWFnZXMlNUIxJTVEJTJDJTIwJTIyY2FrZV8zZC5naWYlMjIp",highlighted:`<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif | |
| export_to_gif(images[<span class="hljs-number">0</span>], <span class="hljs-string">"firecracker_3d.gif"</span>) | |
| export_to_gif(images[<span class="hljs-number">1</span>], <span class="hljs-string">"cake_3d.gif"</span>)`,wrap:!1}}),G=new Xe({props:{title:"Image-to-3D",local:"image-to-3d",headingTag:"h2"}}),E=new y({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBaW1wb3J0JTIwdG9yY2glMEElMEFwcmlvcl9waXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJrYW5kaW5za3ktY29tbXVuaXR5JTJGa2FuZGluc2t5LTItMS1wcmlvciUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUyMHVzZV9zYWZldGVuc29ycyUzRFRydWUpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIya2FuZGluc2t5LWNvbW11bml0eSUyRmthbmRpbnNreS0yLTElMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlKS50byglMjJjdWRhJTIyKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBjaGVlc2VidXJnZXIlMkMlMjB3aGl0ZSUyMGJhY2tncm91bmQlMjIlMEElMEFpbWFnZV9lbWJlZHMlMkMlMjBuZWdhdGl2ZV9pbWFnZV9lbWJlZHMlMjAlM0QlMjBwcmlvcl9waXBlbGluZShwcm9tcHQlMkMlMjBndWlkYW5jZV9zY2FsZSUzRDEuMCkudG9fdHVwbGUoKSUwQWltYWdlJTIwJTNEJTIwcGlwZWxpbmUoJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwaW1hZ2VfZW1iZWRzJTNEaW1hZ2VfZW1iZWRzJTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfaW1hZ2VfZW1iZWRzJTNEbmVnYXRpdmVfaW1hZ2VfZW1iZWRzJTJDJTBBKS5pbWFnZXMlNUIwJTVEJTBBJTBBaW1hZ2Uuc2F2ZSglMjJidXJnZXIucG5nJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline | |
| <span class="hljs-keyword">import</span> torch | |
| prior_pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"kandinsky-community/kandinsky-2-1-prior"</span>, torch_dtype=torch.float16, use_safetensors=<span class="hljs-literal">True</span>).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"kandinsky-community/kandinsky-2-1"</span>, torch_dtype=torch.float16, use_safetensors=<span class="hljs-literal">True</span>).to(<span class="hljs-string">"cuda"</span>) | |
| prompt = <span class="hljs-string">"A cheeseburger, white background"</span> | |
| image_embeds, negative_image_embeds = prior_pipeline(prompt, guidance_scale=<span class="hljs-number">1.0</span>).to_tuple() | |
| image = pipeline( | |
| prompt, | |
| image_embeds=image_embeds, | |
| negative_image_embeds=negative_image_embeds, | |
| ).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"burger.png"</span>)`,wrap:!1}}),S=new y({props:{code:"ZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFNoYXBFSW1nMkltZ1BpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b19naWYlMEElMEFwaXBlJTIwJTNEJTIwU2hhcEVJbWcySW1nUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMm9wZW5haSUyRnNoYXAtZS1pbWcyaW1nJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIpLnRvKCUyMmN1ZGElMjIpJTBBJTBBZ3VpZGFuY2Vfc2NhbGUlMjAlM0QlMjAzLjAlMEFpbWFnZSUyMCUzRCUyMEltYWdlLm9wZW4oJTIyYnVyZ2VyLnBuZyUyMikucmVzaXplKCgyNTYlMkMlMjAyNTYpKSUwQSUwQWltYWdlcyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwaW1hZ2UlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRGd1aWRhbmNlX3NjYWxlJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDY0JTJDJTBBJTIwJTIwJTIwJTIwZnJhbWVfc2l6ZSUzRDI1NiUyQyUwQSkuaW1hZ2VzJTBBJTBBZ2lmX3BhdGglMjAlM0QlMjBleHBvcnRfdG9fZ2lmKGltYWdlcyU1QjAlNUQlMkMlMjAlMjJidXJnZXJfM2QuZ2lmJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> ShapEImg2ImgPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif | |
| pipe = ShapEImg2ImgPipeline.from_pretrained(<span class="hljs-string">"openai/shap-e-img2img"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>).to(<span class="hljs-string">"cuda"</span>) | |
| guidance_scale = <span class="hljs-number">3.0</span> | |
| image = Image.<span class="hljs-built_in">open</span>(<span class="hljs-string">"burger.png"</span>).resize((<span class="hljs-number">256</span>, <span class="hljs-number">256</span>)) | |
| images = pipe( | |
| image, | |
| guidance_scale=guidance_scale, | |
| num_inference_steps=<span class="hljs-number">64</span>, | |
| frame_size=<span class="hljs-number">256</span>, | |
| ).images | |
| gif_path = export_to_gif(images[<span class="hljs-number">0</span>], <span class="hljs-string">"burger_3d.gif"</span>)`,wrap:!1}}),R=new Xe({props:{title:"Generate mesh",local:"generate-mesh",headingTag:"h2"}}),Y=new y({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU2hhcEVQaXBlbGluZSUwQSUwQWRldmljZSUyMCUzRCUyMHRvcmNoLmRldmljZSglMjJjdWRhJTIyJTIwaWYlMjB0b3JjaC5jdWRhLmlzX2F2YWlsYWJsZSgpJTIwZWxzZSUyMCUyMmNwdSUyMiklMEElMEFwaXBlJTIwJTNEJTIwU2hhcEVQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyb3BlbmFpJTJGc2hhcC1lJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIpJTBBcGlwZSUyMCUzRCUyMHBpcGUudG8oZGV2aWNlKSUwQSUwQWd1aWRhbmNlX3NjYWxlJTIwJTNEJTIwMTUuMCUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBiaXJ0aGRheSUyMGN1cGNha2UlMjIlMEElMEFpbWFnZXMlMjAlM0QlMjBwaXBlKHByb21wdCUyQyUyMGd1aWRhbmNlX3NjYWxlJTNEZ3VpZGFuY2Vfc2NhbGUlMkMlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENjQlMkMlMjBmcmFtZV9zaXplJTNEMjU2JTJDJTIwb3V0cHV0X3R5cGUlM0QlMjJtZXNoJTIyKS5pbWFnZXM=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> ShapEPipeline | |
| device = torch.device(<span class="hljs-string">"cuda"</span> <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> <span class="hljs-string">"cpu"</span>) | |
| pipe = ShapEPipeline.from_pretrained(<span class="hljs-string">"openai/shap-e"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipe = pipe.to(device) | |
| guidance_scale = <span class="hljs-number">15.0</span> | |
| prompt = <span class="hljs-string">"A birthday cupcake"</span> | |
| images = pipe(prompt, guidance_scale=guidance_scale, num_inference_steps=<span class="hljs-number">64</span>, frame_size=<span class="hljs-number">256</span>, output_type=<span class="hljs-string">"mesh"</span>).images`,wrap:!1}}),Q=new y({props:{code:"ZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b19wbHklMEElMEFwbHlfcGF0aCUyMCUzRCUyMGV4cG9ydF90b19wbHkoaW1hZ2VzJTVCMCU1RCUyQyUyMCUyMjNkX2Nha2UucGx5JTIyKSUwQXByaW50KGYlMjJTYXZlZCUyMHRvJTIwZm9sZGVyJTNBJTIwJTdCcGx5X3BhdGglN0QlMjIp",highlighted:`<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_ply | |
| ply_path = export_to_ply(images[<span class="hljs-number">0</span>], <span class="hljs-string">"3d_cake.ply"</span>) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Saved to folder: <span class="hljs-subst">{ply_path}</span>"</span>)`,wrap:!1}}),F=new y({props:{code:"aW1wb3J0JTIwdHJpbWVzaCUwQSUwQW1lc2glMjAlM0QlMjB0cmltZXNoLmxvYWQoJTIyM2RfY2FrZS5wbHklMjIpJTBBbWVzaF9leHBvcnQlMjAlM0QlMjBtZXNoLmV4cG9ydCglMjIzZF9jYWtlLmdsYiUyMiUyQyUyMGZpbGVfdHlwZSUzRCUyMmdsYiUyMik=",highlighted:`<span class="hljs-keyword">import</span> trimesh | |
| mesh = trimesh.load(<span class="hljs-string">"3d_cake.ply"</span>) | |
| mesh_export = mesh.export(<span class="hljs-string">"3d_cake.glb"</span>, file_type=<span class="hljs-string">"glb"</span>)`,wrap:!1}}),D=new y({props:{code:"aW1wb3J0JTIwdHJpbWVzaCUwQWltcG9ydCUyMG51bXB5JTIwYXMlMjBucCUwQSUwQW1lc2glMjAlM0QlMjB0cmltZXNoLmxvYWQoJTIyM2RfY2FrZS5wbHklMjIpJTBBcm90JTIwJTNEJTIwdHJpbWVzaC50cmFuc2Zvcm1hdGlvbnMucm90YXRpb25fbWF0cml4KC1ucC5waSUyMCUyRiUyMDIlMkMlMjAlNUIxJTJDJTIwMCUyQyUyMDAlNUQpJTBBbWVzaCUyMCUzRCUyMG1lc2guYXBwbHlfdHJhbnNmb3JtKHJvdCklMEFtZXNoX2V4cG9ydCUyMCUzRCUyMG1lc2guZXhwb3J0KCUyMjNkX2Nha2UuZ2xiJTIyJTJDJTIwZmlsZV90eXBlJTNEJTIyZ2xiJTIyKQ==",highlighted:`<span class="hljs-keyword">import</span> trimesh | |
| <span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| mesh = trimesh.load(<span class="hljs-string">"3d_cake.ply"</span>) | |
| rot = trimesh.transformations.rotation_matrix(-np.pi / <span class="hljs-number">2</span>, [<span class="hljs-number">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>]) | |
| mesh = mesh.apply_transform(rot) | |
| mesh_export = mesh.export(<span class="hljs-string">"3d_cake.glb"</span>, file_type=<span class="hljs-string">"glb"</span>)`,wrap:!1}}),P=new hs({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/using-diffusers/shap-e.md"}}),{c(){d=i("meta"),ee=a(),K=i("p"),se=a(),r(J.$$.fragment),te=a(),r(T.$$.fragment),le=a(),r(j.$$.fragment),ae=a(),U=i("p"),U.textContent=Re,ne=a(),Z=i("ol"),Z.innerHTML=Ve,ie=a(),_=i("p"),_.textContent=Ne,pe=a(),I=i("p"),I.textContent=Ye,oe=a(),r(W.$$.fragment),re=a(),r(v.$$.fragment),me=a(),C=i("p"),C.innerHTML=qe,ce=a(),r($.$$.fragment),ue=a(),B=i("p"),B.innerHTML=Qe,he=a(),r(k.$$.fragment),fe=a(),M=i("div"),M.innerHTML=ze,de=a(),r(G.$$.fragment),ye=a(),x=i("p"),x.innerHTML=Fe,Me=a(),r(E.$$.fragment),ge=a(),X=i("p"),X.innerHTML=He,be=a(),r(S.$$.fragment),we=a(),g=i("div"),g.innerHTML=De,Je=a(),r(R.$$.fragment),Te=a(),V=i("p"),V.innerHTML=Le,je=a(),N=i("p"),N.innerHTML=Pe,Ue=a(),r(Y.$$.fragment),Ze=a(),q=i("p"),q.innerHTML=Ae,_e=a(),b=i("blockquote"),b.innerHTML=Ke,Ie=a(),r(Q.$$.fragment),We=a(),z=i("p"),z.innerHTML=Oe,ve=a(),r(F.$$.fragment),Ce=a(),H=i("p"),H.textContent=es,$e=a(),r(D.$$.fragment),Be=a(),L=i("p"),L.textContent=ss,ke=a(),w=i("div"),w.innerHTML=ts,Ge=a(),r(P.$$.fragment),xe=a(),O=i("p"),this.h()},l(e){const s=rs("svelte-u9bgzb",document.head);d=p(s,"META",{name:!0,content:!0}),s.forEach(t),ee=n(e),K=p(e,"P",{}),ls(K).forEach(t),se=n(e),m(J.$$.fragment,e),te=n(e),m(T.$$.fragment,e),le=n(e),m(j.$$.fragment,e),ae=n(e),U=p(e,"P",{"data-svelte-h":!0}),o(U)!=="svelte-1t7c2id"&&(U.textContent=Re),ne=n(e),Z=p(e,"OL",{"data-svelte-h":!0}),o(Z)!=="svelte-ux9ywu"&&(Z.innerHTML=Ve),ie=n(e),_=p(e,"P",{"data-svelte-h":!0}),o(_)!=="svelte-1pve02t"&&(_.textContent=Ne),pe=n(e),I=p(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-cwruts"&&(I.textContent=Ye),oe=n(e),m(W.$$.fragment,e),re=n(e),m(v.$$.fragment,e),me=n(e),C=p(e,"P",{"data-svelte-h":!0}),o(C)!=="svelte-1skl5j2"&&(C.innerHTML=qe),ce=n(e),m($.$$.fragment,e),ue=n(e),B=p(e,"P",{"data-svelte-h":!0}),o(B)!=="svelte-13ys1uk"&&(B.innerHTML=Qe),he=n(e),m(k.$$.fragment,e),fe=n(e),M=p(e,"DIV",{class:!0,"data-svelte-h":!0}),o(M)!=="svelte-1lcwzvo"&&(M.innerHTML=ze),de=n(e),m(G.$$.fragment,e),ye=n(e),x=p(e,"P",{"data-svelte-h":!0}),o(x)!=="svelte-4ruedd"&&(x.innerHTML=Fe),Me=n(e),m(E.$$.fragment,e),ge=n(e),X=p(e,"P",{"data-svelte-h":!0}),o(X)!=="svelte-c4b0n5"&&(X.innerHTML=He),be=n(e),m(S.$$.fragment,e),we=n(e),g=p(e,"DIV",{class:!0,"data-svelte-h":!0}),o(g)!=="svelte-xd6lpk"&&(g.innerHTML=De),Je=n(e),m(R.$$.fragment,e),Te=n(e),V=p(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-b3two7"&&(V.innerHTML=Le),je=n(e),N=p(e,"P",{"data-svelte-h":!0}),o(N)!=="svelte-js7lsy"&&(N.innerHTML=Pe),Ue=n(e),m(Y.$$.fragment,e),Ze=n(e),q=p(e,"P",{"data-svelte-h":!0}),o(q)!=="svelte-1c35t88"&&(q.innerHTML=Ae),_e=n(e),b=p(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),o(b)!=="svelte-2yfe2x"&&(b.innerHTML=Ke),Ie=n(e),m(Q.$$.fragment,e),We=n(e),z=p(e,"P",{"data-svelte-h":!0}),o(z)!=="svelte-15r1kyy"&&(z.innerHTML=Oe),ve=n(e),m(F.$$.fragment,e),Ce=n(e),H=p(e,"P",{"data-svelte-h":!0}),o(H)!=="svelte-14frru"&&(H.textContent=es),$e=n(e),m(D.$$.fragment,e),Be=n(e),L=p(e,"P",{"data-svelte-h":!0}),o(L)!=="svelte-1dqio5f"&&(L.textContent=ss),ke=n(e),w=p(e,"DIV",{class:!0,"data-svelte-h":!0}),o(w)!=="svelte-1dmju3n"&&(w.innerHTML=ts),Ge=n(e),m(P.$$.fragment,e),xe=n(e),O=p(e,"P",{}),ls(O).forEach(t),this.h()},h(){A(d,"name","hf:doc:metadata"),A(d,"content",ds),A(M,"class","flex gap-4"),A(g,"class","flex gap-4"),A(b,"class","tip"),A(w,"class","flex justify-center")},m(e,s){ms(document.head,d),l(e,ee,s),l(e,K,s),l(e,se,s),c(J,e,s),l(e,te,s),c(T,e,s),l(e,le,s),c(j,e,s),l(e,ae,s),l(e,U,s),l(e,ne,s),l(e,Z,s),l(e,ie,s),l(e,_,s),l(e,pe,s),l(e,I,s),l(e,oe,s),c(W,e,s),l(e,re,s),c(v,e,s),l(e,me,s),l(e,C,s),l(e,ce,s),c($,e,s),l(e,ue,s),l(e,B,s),l(e,he,s),c(k,e,s),l(e,fe,s),l(e,M,s),l(e,de,s),c(G,e,s),l(e,ye,s),l(e,x,s),l(e,Me,s),c(E,e,s),l(e,ge,s),l(e,X,s),l(e,be,s),c(S,e,s),l(e,we,s),l(e,g,s),l(e,Je,s),c(R,e,s),l(e,Te,s),l(e,V,s),l(e,je,s),l(e,N,s),l(e,Ue,s),c(Y,e,s),l(e,Ze,s),l(e,q,s),l(e,_e,s),l(e,b,s),l(e,Ie,s),c(Q,e,s),l(e,We,s),l(e,z,s),l(e,ve,s),c(F,e,s),l(e,Ce,s),l(e,H,s),l(e,$e,s),c(D,e,s),l(e,Be,s),l(e,L,s),l(e,ke,s),l(e,w,s),l(e,Ge,s),c(P,e,s),l(e,xe,s),l(e,O,s),Ee=!0},p:ns,i(e){Ee||(u(J.$$.fragment,e),u(T.$$.fragment,e),u(j.$$.fragment,e),u(W.$$.fragment,e),u(v.$$.fragment,e),u($.$$.fragment,e),u(k.$$.fragment,e),u(G.$$.fragment,e),u(E.$$.fragment,e),u(S.$$.fragment,e),u(R.$$.fragment,e),u(Y.$$.fragment,e),u(Q.$$.fragment,e),u(F.$$.fragment,e),u(D.$$.fragment,e),u(P.$$.fragment,e),Ee=!0)},o(e){h(J.$$.fragment,e),h(T.$$.fragment,e),h(j.$$.fragment,e),h(W.$$.fragment,e),h(v.$$.fragment,e),h($.$$.fragment,e),h(k.$$.fragment,e),h(G.$$.fragment,e),h(E.$$.fragment,e),h(S.$$.fragment,e),h(R.$$.fragment,e),h(Y.$$.fragment,e),h(Q.$$.fragment,e),h(F.$$.fragment,e),h(D.$$.fragment,e),h(P.$$.fragment,e),Ee=!1},d(e){e&&(t(ee),t(K),t(se),t(te),t(le),t(ae),t(U),t(ne),t(Z),t(ie),t(_),t(pe),t(I),t(oe),t(re),t(me),t(C),t(ce),t(ue),t(B),t(he),t(fe),t(M),t(de),t(ye),t(x),t(Me),t(ge),t(X),t(be),t(we),t(g),t(Je),t(Te),t(V),t(je),t(N),t(Ue),t(Ze),t(q),t(_e),t(b),t(Ie),t(We),t(z),t(ve),t(Ce),t(H),t($e),t(Be),t(L),t(ke),t(w),t(Ge),t(xe),t(O)),t(d),f(J,e),f(T,e),f(j,e),f(W,e),f(v,e),f($,e),f(k,e),f(G,e),f(E,e),f(S,e),f(R,e),f(Y,e),f(Q,e),f(F,e),f(D,e),f(P,e)}}}const ds='{"title":"Shap-E","local":"shap-e","sections":[{"title":"Text-to-3D","local":"text-to-3d","sections":[],"depth":2},{"title":"Image-to-3D","local":"image-to-3d","sections":[],"depth":2},{"title":"Generate mesh","local":"generate-mesh","sections":[],"depth":2}],"depth":1}';function ys(Se){return is(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class js extends ps{constructor(d){super(),os(this,d,ys,fs,as,{})}}export{js as component}; | |
Xet Storage Details
- Size:
- 23.5 kB
- Xet hash:
- 45563bfbc610c4c566979293004860f2bad3ee592503d7bb9bebc197324cb413
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.