Shap-E, un modelo innovador desarrollado por OpenAI, produce una variedad de objetos 3D utilizando texto o imágenes como entrada, transformando el ámbito de las aplicaciones 3D con su enfoque innovador. En este tutorial aprenderemos a configurar y usar el modelo Shap-E para generar modelos 3D.
Paso 1 – Configuración del proyecto
Ve a Blender.org y descarga Blender Studio para tu sistema operativo. Luego, Ve a Google Colab y crea un nuevo Notebook.
Paso 2 – Clonar el repositorio
A continuación, debes clonar el repositorio de Shap-E en el notebook de Google Colab.
pythonCopy code!git clone https://github.com/openai/shap-e
Ahora, ingresa al directorio e instala los requisitos.
pythonCopy code%cd shap-e
!pip install -e .
Paso 3 – Implementación y Cocción de los modelos 3D
Aquí puedes importar todas las bibliotecas necesarias para tu proyecto.
pythonCopy codeimport torch
from shap_e.diffusion.sample import sample_latents
from shap_e.diffusion.gaussian_diffusion import diffusion_from_config
from shap_e.models.download import load_model, load_config
from shap_e.util.notebooks import create_pan_cameras, decode_latent_images, gif_widget
Configura el dispositivo en cuda, si está disponible, de lo contrario en cpu.
pythonCopy codedevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
Luego, procede a cargar los modelos y pesos.
pythonCopy codexm = load_model('transmitter', device=device)
model = load_model('text300M', device=device)
diffusion = diffusion_from_config(load_config('diffusion'))
Paso 4 – Generación y Renderizado de los Modelos 3D
En esta sección, se generaran los modelos 3D.
pythonCopy codebatch_size = 1
guidance_scale = 15.0
prompt = "a donut"
latents = sample_latents(
batch_size=batch_size,
model=model,
diffusion=diffusion,
guidance_scale=guidance_scale,
model_kwargs=dict(texts=[prompt] * batch_size),
progress=True,
clip_denoised=True,
use_fp16=True,
use_karras=True,
karras_steps=64,
sigma_min=1E-3,
sigma_max=160,
s_churn=0,
)
Renderizaremos los modelos 3D usando render_mode = ‘nerf’ Neural Radiance Fields (NeRF) para renderizar los modelos 3D.
pythonCopy coderender_mode = 'nerf'
size = 64
cameras = create_pan_cameras(size, device)
for i, latent in enumerate(latents):
images = decode_latent_images(xm, latent, cameras, rendering_mode=render_mode)
display(gif_widget(images))
Paso 5 – Guardar los Modelos 3D
Aquí guardaremos los modelos 3D como .ply y .obj archivos.
pythonCopy codefrom shap_e.util.notebooks import decode_latent_mesh
for i, latent in enumerate(latents):
t = decode_latent_mesh(xm, latent).tri_mesh()
with open(f'example_mesh_{i}.ply', 'wb') as f:
t.write_ply(f)
with open(f'example_mesh_{i}.obj', 'w') as f:
t.write_obj(f)
Personalización de los Modelos 3D en Blender Studio
Abra Blender Studio y cree un nuevo proyecto. Importe el archivo .obj que ha descargado de Google Colab. Ahora puede personalizar el modelo 3D a su gusto.
¡Esperamos que hayas disfrutado este tutorial y te sientas inspirado para explorar más con Shap-E y Blender Studio!. La inteligencia artificial te espera con un mundo lleno de creatividad. ¡Aprovecha esta increíble oportunidad y crea tu propio arte en 3D!