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.

Generación de Modelos 3D con Shap-E.

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!