Buckets:

rtrm's picture
download
raw
23 kB
import{s as es,o as ss,n as ts}from"../chunks/scheduler.182ea377.js";import{S as as,i as ls,g as i,s as l,r as m,A as ns,h as p,f as t,c as n,j as Oe,u as c,x as o,k as O,y as is,a,v as u,d as h,t as d,w as f}from"../chunks/index.abf12888.js";import{T as ps}from"../chunks/Tip.230e2334.js";import{C as M}from"../chunks/CodeBlock.57fe6e13.js";import{D as os}from"../chunks/DocNotebookDropdown.5fa27ace.js";import{H as ke}from"../chunks/Heading.16916d63.js";function rs(ee){let r,T="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!";return{c(){r=i("p"),r.innerHTML=T},l(y){r=p(y,"P",{"data-svelte-h":!0}),o(r)!=="svelte-1k8cpm8"&&(r.innerHTML=T)},m(y,A){a(y,r,A)},p:ts,d(y){y&&t(r)}}}function ms(ee){let r,T,y,A,j,se,U,te,Z,xe="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:",ae,I,Ee="<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>",le,_,Xe="This guide will show you how to use Shap-E to start generating your own 3D assets!",ne,v,Se="Before you begin, make sure you have the following libraries installed:",ie,W,pe,$,oe,C,Ne='To generate a gif of a 3D object, pass a text prompt to the <a href="/docs/diffusers/v0.26.2/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.',re,B,me,G,Re='Now use the <a href="/docs/diffusers/v0.26.2/en/api/utilities#diffusers.utils.export_to_gif">export_to_gif()</a> function to turn the list of image frames into a gif of the 3D object.',ce,k,ue,g,Ve='<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 = &quot;A firecracker&quot;</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 = &quot;A birthday cupcake&quot;</figcaption></div>',he,x,de,E,Ye='To generate a 3D object from another image, use the <a href="/docs/diffusers/v0.26.2/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.',fe,X,ye,S,qe='Pass the cheeseburger to the <a href="/docs/diffusers/v0.26.2/en/api/pipelines/shap_e#diffusers.ShapEImg2ImgPipeline">ShapEImg2ImgPipeline</a> to generate a 3D representation of it.',Me,N,ge,b,Qe='<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>',be,R,we,V,ze='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,Y,Fe='You can generate mesh outputs for both the <a href="/docs/diffusers/v0.26.2/en/api/pipelines/shap_e#diffusers.ShapEPipeline">ShapEPipeline</a> and <a href="/docs/diffusers/v0.26.2/en/api/pipelines/shap_e#diffusers.ShapEImg2ImgPipeline">ShapEImg2ImgPipeline</a> by specifying the <code>output_type</code> parameter as <code>&quot;mesh&quot;</code>:',Te,q,je,Q,He="Use the <code>export_to_ply()</code> function to save the mesh output as a <code>ply</code> file:",Ue,w,Ze,z,Ie,F,De="Then you can convert the <code>ply</code> file to a <code>glb</code> file with the trimesh library:",_e,H,ve,D,Le="By default, the mesh output is focused from the bottom viewpoint but you can change the default viewpoint by applying a rotation transform:",We,L,$e,P,Pe="Upload the mesh file to your dataset repository to visualize it with the Dataset viewer!",Ce,J,Ae='<img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/3D-cake.gif"/>',Be,K,Ge;return j=new ke({props:{title:"Shap-E",local:"shap-e",headingTag:"h1"}}),U=new os({props:{classNames:"absolute z-10 right-0 top-0",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"}]}}),W=new M({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}}),$=new ke({props:{title:"Text-to-3D",local:"text-to-3d",headingTag:"h2"}}),B=new M({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">&quot;cuda&quot;</span> <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> <span class="hljs-string">&quot;cpu&quot;</span>)
pipe = ShapEPipeline.from_pretrained(<span class="hljs-string">&quot;openai/shap-e&quot;</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">&quot;fp16&quot;</span>)
pipe = pipe.to(device)
guidance_scale = <span class="hljs-number">15.0</span>
prompt = [<span class="hljs-string">&quot;A firecracker&quot;</span>, <span class="hljs-string">&quot;A birthday cupcake&quot;</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 M({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">&quot;firecracker_3d.gif&quot;</span>)
export_to_gif(images[<span class="hljs-number">1</span>], <span class="hljs-string">&quot;cake_3d.gif&quot;</span>)`,wrap:!1}}),x=new ke({props:{title:"Image-to-3D",local:"image-to-3d",headingTag:"h2"}}),X=new M({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">&quot;kandinsky-community/kandinsky-2-1-prior&quot;</span>, torch_dtype=torch.float16, use_safetensors=<span class="hljs-literal">True</span>).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">&quot;kandinsky-community/kandinsky-2-1&quot;</span>, torch_dtype=torch.float16, use_safetensors=<span class="hljs-literal">True</span>).to(<span class="hljs-string">&quot;cuda&quot;</span>)
prompt = <span class="hljs-string">&quot;A cheeseburger, white background&quot;</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">&quot;burger.png&quot;</span>)`,wrap:!1}}),N=new M({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">&quot;openai/shap-e-img2img&quot;</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">&quot;fp16&quot;</span>).to(<span class="hljs-string">&quot;cuda&quot;</span>)
guidance_scale = <span class="hljs-number">3.0</span>
image = Image.<span class="hljs-built_in">open</span>(<span class="hljs-string">&quot;burger.png&quot;</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">&quot;burger_3d.gif&quot;</span>)`,wrap:!1}}),R=new ke({props:{title:"Generate mesh",local:"generate-mesh",headingTag:"h2"}}),q=new M({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">&quot;cuda&quot;</span> <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> <span class="hljs-string">&quot;cpu&quot;</span>)
pipe = ShapEPipeline.from_pretrained(<span class="hljs-string">&quot;openai/shap-e&quot;</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">&quot;fp16&quot;</span>)
pipe = pipe.to(device)
guidance_scale = <span class="hljs-number">15.0</span>
prompt = <span class="hljs-string">&quot;A birthday cupcake&quot;</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">&quot;mesh&quot;</span>).images`,wrap:!1}}),w=new ps({props:{$$slots:{default:[rs]},$$scope:{ctx:ee}}}),z=new M({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">&quot;3d_cake.ply&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Saved to folder: <span class="hljs-subst">{ply_path}</span>&quot;</span>)`,wrap:!1}}),H=new M({props:{code:"aW1wb3J0JTIwdHJpbWVzaCUwQSUwQW1lc2glMjAlM0QlMjB0cmltZXNoLmxvYWQoJTIyM2RfY2FrZS5wbHklMjIpJTBBbWVzaF9leHBvcnQlMjAlM0QlMjBtZXNoLmV4cG9ydCglMjIzZF9jYWtlLmdsYiUyMiUyQyUyMGZpbGVfdHlwZSUzRCUyMmdsYiUyMik=",highlighted:`<span class="hljs-keyword">import</span> trimesh
mesh = trimesh.load(<span class="hljs-string">&quot;3d_cake.ply&quot;</span>)
mesh_export = mesh.export(<span class="hljs-string">&quot;3d_cake.glb&quot;</span>, file_type=<span class="hljs-string">&quot;glb&quot;</span>)`,wrap:!1}}),L=new M({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">&quot;3d_cake.ply&quot;</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">&quot;3d_cake.glb&quot;</span>, file_type=<span class="hljs-string">&quot;glb&quot;</span>)`,wrap:!1}}),{c(){r=i("meta"),T=l(),y=i("p"),A=l(),m(j.$$.fragment),se=l(),m(U.$$.fragment),te=l(),Z=i("p"),Z.textContent=xe,ae=l(),I=i("ol"),I.innerHTML=Ee,le=l(),_=i("p"),_.textContent=Xe,ne=l(),v=i("p"),v.textContent=Se,ie=l(),m(W.$$.fragment),pe=l(),m($.$$.fragment),oe=l(),C=i("p"),C.innerHTML=Ne,re=l(),m(B.$$.fragment),me=l(),G=i("p"),G.innerHTML=Re,ce=l(),m(k.$$.fragment),ue=l(),g=i("div"),g.innerHTML=Ve,he=l(),m(x.$$.fragment),de=l(),E=i("p"),E.innerHTML=Ye,fe=l(),m(X.$$.fragment),ye=l(),S=i("p"),S.innerHTML=qe,Me=l(),m(N.$$.fragment),ge=l(),b=i("div"),b.innerHTML=Qe,be=l(),m(R.$$.fragment),we=l(),V=i("p"),V.innerHTML=ze,Je=l(),Y=i("p"),Y.innerHTML=Fe,Te=l(),m(q.$$.fragment),je=l(),Q=i("p"),Q.innerHTML=He,Ue=l(),m(w.$$.fragment),Ze=l(),m(z.$$.fragment),Ie=l(),F=i("p"),F.innerHTML=De,_e=l(),m(H.$$.fragment),ve=l(),D=i("p"),D.textContent=Le,We=l(),m(L.$$.fragment),$e=l(),P=i("p"),P.textContent=Pe,Ce=l(),J=i("div"),J.innerHTML=Ae,Be=l(),K=i("p"),this.h()},l(e){const s=ns("svelte-u9bgzb",document.head);r=p(s,"META",{name:!0,content:!0}),s.forEach(t),T=n(e),y=p(e,"P",{}),Oe(y).forEach(t),A=n(e),c(j.$$.fragment,e),se=n(e),c(U.$$.fragment,e),te=n(e),Z=p(e,"P",{"data-svelte-h":!0}),o(Z)!=="svelte-1t7c2id"&&(Z.textContent=xe),ae=n(e),I=p(e,"OL",{"data-svelte-h":!0}),o(I)!=="svelte-ux9ywu"&&(I.innerHTML=Ee),le=n(e),_=p(e,"P",{"data-svelte-h":!0}),o(_)!=="svelte-1pve02t"&&(_.textContent=Xe),ne=n(e),v=p(e,"P",{"data-svelte-h":!0}),o(v)!=="svelte-cwruts"&&(v.textContent=Se),ie=n(e),c(W.$$.fragment,e),pe=n(e),c($.$$.fragment,e),oe=n(e),C=p(e,"P",{"data-svelte-h":!0}),o(C)!=="svelte-r8oojs"&&(C.innerHTML=Ne),re=n(e),c(B.$$.fragment,e),me=n(e),G=p(e,"P",{"data-svelte-h":!0}),o(G)!=="svelte-1baz69y"&&(G.innerHTML=Re),ce=n(e),c(k.$$.fragment,e),ue=n(e),g=p(e,"DIV",{class:!0,"data-svelte-h":!0}),o(g)!=="svelte-1lcwzvo"&&(g.innerHTML=Ve),he=n(e),c(x.$$.fragment,e),de=n(e),E=p(e,"P",{"data-svelte-h":!0}),o(E)!=="svelte-j71tov"&&(E.innerHTML=Ye),fe=n(e),c(X.$$.fragment,e),ye=n(e),S=p(e,"P",{"data-svelte-h":!0}),o(S)!=="svelte-1p8kmsd"&&(S.innerHTML=qe),Me=n(e),c(N.$$.fragment,e),ge=n(e),b=p(e,"DIV",{class:!0,"data-svelte-h":!0}),o(b)!=="svelte-xd6lpk"&&(b.innerHTML=Qe),be=n(e),c(R.$$.fragment,e),we=n(e),V=p(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-b3two7"&&(V.innerHTML=ze),Je=n(e),Y=p(e,"P",{"data-svelte-h":!0}),o(Y)!=="svelte-slpsj0"&&(Y.innerHTML=Fe),Te=n(e),c(q.$$.fragment,e),je=n(e),Q=p(e,"P",{"data-svelte-h":!0}),o(Q)!=="svelte-1c35t88"&&(Q.innerHTML=He),Ue=n(e),c(w.$$.fragment,e),Ze=n(e),c(z.$$.fragment,e),Ie=n(e),F=p(e,"P",{"data-svelte-h":!0}),o(F)!=="svelte-15r1kyy"&&(F.innerHTML=De),_e=n(e),c(H.$$.fragment,e),ve=n(e),D=p(e,"P",{"data-svelte-h":!0}),o(D)!=="svelte-14frru"&&(D.textContent=Le),We=n(e),c(L.$$.fragment,e),$e=n(e),P=p(e,"P",{"data-svelte-h":!0}),o(P)!=="svelte-1dqio5f"&&(P.textContent=Pe),Ce=n(e),J=p(e,"DIV",{class:!0,"data-svelte-h":!0}),o(J)!=="svelte-1dmju3n"&&(J.innerHTML=Ae),Be=n(e),K=p(e,"P",{}),Oe(K).forEach(t),this.h()},h(){O(r,"name","hf:doc:metadata"),O(r,"content",cs),O(g,"class","flex gap-4"),O(b,"class","flex gap-4"),O(J,"class","flex justify-center")},m(e,s){is(document.head,r),a(e,T,s),a(e,y,s),a(e,A,s),u(j,e,s),a(e,se,s),u(U,e,s),a(e,te,s),a(e,Z,s),a(e,ae,s),a(e,I,s),a(e,le,s),a(e,_,s),a(e,ne,s),a(e,v,s),a(e,ie,s),u(W,e,s),a(e,pe,s),u($,e,s),a(e,oe,s),a(e,C,s),a(e,re,s),u(B,e,s),a(e,me,s),a(e,G,s),a(e,ce,s),u(k,e,s),a(e,ue,s),a(e,g,s),a(e,he,s),u(x,e,s),a(e,de,s),a(e,E,s),a(e,fe,s),u(X,e,s),a(e,ye,s),a(e,S,s),a(e,Me,s),u(N,e,s),a(e,ge,s),a(e,b,s),a(e,be,s),u(R,e,s),a(e,we,s),a(e,V,s),a(e,Je,s),a(e,Y,s),a(e,Te,s),u(q,e,s),a(e,je,s),a(e,Q,s),a(e,Ue,s),u(w,e,s),a(e,Ze,s),u(z,e,s),a(e,Ie,s),a(e,F,s),a(e,_e,s),u(H,e,s),a(e,ve,s),a(e,D,s),a(e,We,s),u(L,e,s),a(e,$e,s),a(e,P,s),a(e,Ce,s),a(e,J,s),a(e,Be,s),a(e,K,s),Ge=!0},p(e,[s]){const Ke={};s&2&&(Ke.$$scope={dirty:s,ctx:e}),w.$set(Ke)},i(e){Ge||(h(j.$$.fragment,e),h(U.$$.fragment,e),h(W.$$.fragment,e),h($.$$.fragment,e),h(B.$$.fragment,e),h(k.$$.fragment,e),h(x.$$.fragment,e),h(X.$$.fragment,e),h(N.$$.fragment,e),h(R.$$.fragment,e),h(q.$$.fragment,e),h(w.$$.fragment,e),h(z.$$.fragment,e),h(H.$$.fragment,e),h(L.$$.fragment,e),Ge=!0)},o(e){d(j.$$.fragment,e),d(U.$$.fragment,e),d(W.$$.fragment,e),d($.$$.fragment,e),d(B.$$.fragment,e),d(k.$$.fragment,e),d(x.$$.fragment,e),d(X.$$.fragment,e),d(N.$$.fragment,e),d(R.$$.fragment,e),d(q.$$.fragment,e),d(w.$$.fragment,e),d(z.$$.fragment,e),d(H.$$.fragment,e),d(L.$$.fragment,e),Ge=!1},d(e){e&&(t(T),t(y),t(A),t(se),t(te),t(Z),t(ae),t(I),t(le),t(_),t(ne),t(v),t(ie),t(pe),t(oe),t(C),t(re),t(me),t(G),t(ce),t(ue),t(g),t(he),t(de),t(E),t(fe),t(ye),t(S),t(Me),t(ge),t(b),t(be),t(we),t(V),t(Je),t(Y),t(Te),t(je),t(Q),t(Ue),t(Ze),t(Ie),t(F),t(_e),t(ve),t(D),t(We),t($e),t(P),t(Ce),t(J),t(Be),t(K)),t(r),f(j,e),f(U,e),f(W,e),f($,e),f(B,e),f(k,e),f(x,e),f(X,e),f(N,e),f(R,e),f(q,e),f(w,e),f(z,e),f(H,e),f(L,e)}}}const cs='{"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 us(ee){return ss(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class bs extends as{constructor(r){super(),ls(this,r,us,ms,es,{})}}export{bs as component};

Xet Storage Details

Size:
23 kB
·
Xet hash:
10d3440e9f201d09cdae825b3375dd4081bfbc312b3e44256f6507ff44f67d1d

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.