TECNOLOGIA, INTERNET TRENDS, GAMING, BIG DATA

Shap-E: come generare modelli 3D con il testo grazie all’intelligenza artificiale di OpenAI

Shap-E: come generare modelli 3D con il testo grazie all’intelligenza artifici...

By fogliotiziana

Shap-E è un nuovo strumento di intelligenza artificiale creato da OpenAI. Proprio come Dall-E genera immagini dal testo, Shap-E genera modelli 3D dai tuoi prompt!

Dalla fine del 2022, OpenAI ha stravolto il mondo con i suoi modelli di intelligenza artificiale basati su GPT. Il chatbot ChatGPT può generare qualsiasi tipo di testo da un prompt, mentre DALL-E 2 può generare immagini a partire da una descrizione testuale.

MidJourney vs DALL-E 2: quali sono le principali differenze tra le due intelligenze artificiali

Ora l’azienda di San Francisco sforna un nuovo modello AI in grado di generare oggetti 3D che possono essere aperti in Microsoft Paint 3D o convertiti in file STL per stampanti 3D: Shap-E. Questo nuovo strumento potrebbe essere molto utile per architetti e interior designer, per sviluppatori di videogiochi o anche per l’industria cinematografica e dell’animazione.

Tre demo di Shap-E: text-to-3D, image-to-3d e encode-model

Dopo aver installato Shap-E, puoi accedervi tramite Jupyter Notebook (un’applicazione Web open source che ti consente di creare e condividere documenti testuali dinamici, arricchiti da elementi come equazioni, grafici e codice sorgente eseguibile). È quindi possibile visualizzare ed eseguire il codice di esempio in piccoli blocchi per vedere cosa succede.

Microsoft Teams: come creare il tuo avatar 3D per le videoconferenze

Vengono offerti in totale tre notebook campione. Il primo “text-to-3d” converte il testo in un oggetto 3D, il secondo “image-to-3d” trasforma un’immagine 2D in un oggetto 3D e il terzo “encode-model” utilizza Blender per modificare un modello 3D esistente.

Text to 3D

Per ora, il text-to-3d lascia ancora a desiderare in termini di definizione e livello di dettaglio degli oggetti 3D. Permette di ottenere due tipi di risultati: GIF animate a colori compatibili con un browser web e file PLY monocromatici che possono essere aperti con un programma come Paint3D.

Il prompt predefinito genera “uno squalo”. Riceverai quattro GIF 64×64, ma è possibile modificare il codice ad esempio per aumentare la definizione. Altri esempi sono suggeriti da OpenAI, come “un aeroplano che sembra una banana”. D’altra parte, i risultati sono più deludenti sui prompt inseriti direttamente dall’utente.

Image-to-3d

Lo script Image-to-3D consente di prendere un file immagine 2D esistente e trasformarlo in un file oggetto PLY 3D.

Ad esempio, OpenAI offre la possibilità di convertire un’illustrazione di un cane Corgi in un oggetto 3D a bassa definizione come file animato GIF rotante. È possibile modificare il codice per generare un file 3D PLY che può essere aperto con Paint 3D. Gli utenti possono provare ad alimentare lo script con le proprie immagini, ma i risultati sono meno convincenti. È meglio utilizzare un’immagine 2D in formato PNG.

Quali sono i requisiti di sistema per Shap-E?

Per eseguire Shap-E, è essenziale una configurazione potente. Con una GPU RTX 3080 e una CPU Ryzen 9 5900X, concedi circa 5 minuti per completare un rendering. Con un laptop come l’Asus ROG Strix Scar 18 dotato di una GPU RTX 4090 e un codice Intel i9-13980HX, conta da due a tre minuti.

Se si utilizza una macchina meno recente, ad esempio un laptop dotato di una CPU Intel 8th Gen U con scheda grafica integrata, saranno necessarie diverse decine di ore per completare un singolo rendering.

È quindi preferibile utilizzare un PC dotato di una GPU Nvidia di ultima generazione. Durante la prima esecuzione di uno script, è necessario contare anche il tempo di download dei modelli la cui dimensione è di 2 o 3 GB.

Come installare e utilizzare Shap-E?

Il modello Shap-E è disponibile gratuitamente su GitHub e viene eseguito in locale sul tuo PC. Dopo aver scaricato tutti i file richiesti, non è più necessario connettersi a Internet.

Si noti che non è inoltre necessaria una chiave API OpenAI per utilizzarla. Non ti verrà quindi addebitato alcun costo come con gli altri strumenti offerti dalla società. L’esecuzione di Shap-E non è così intuitiva come l’utilizzo di Dall-E. In effetti, OpenAI non fornisce alcuna istruzione a parte il comando Python pip per installarlo. L’azienda non menziona i requisiti necessarie per farlo funzionare e non specifica che le ultime versioni non funzionano.

Impara a programmare con Python: una guida passo passo per diventare un esperto

  • Per installare ed eseguire Shap-E su Windows, puoi usare Miniconda per creare un ambiente Python dedicato. Per evitare problemi, è meglio usare WSL2 (Windows Subsystem for Linux).
  • Inizia installando Miniconda o Anaconda su Linux.
  • Quindi crea un ambiente Conda chiamato shap-e con Python 3.9 o altra versione installata. Usa questo codice: “conda create -n shap-e python=3.9”. Devi quindi attivare l’ambiente con il codice “condaactivate shap-e”.
  • Il prossimo passo è installare PyTorch. Se hai una scheda grafica Nvidia, puoi usare il comando “conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia”.
  • In caso contrario, sarà necessario eseguire un’installazione basata sulla CPU. Utilizzare il comando “conda install pytorch torchvision torchaudio cpuonly -c pytorch”. Si noti, tuttavia, che l’elaborazione 3D da parte della CPU può essere estremamente lenta.
  • Per la build PyTorch, puoi usare il comando “pip install “git+https://github.com/facebookresearch/pytorch3d.git””. In caso di errore cuda, prova a eseguire sudo apt install nvidia-cuda-dev e ripeti il ​​processo.
  • Quindi installare Jupyter Notebook utilizzando Conda, utilizzando il comando “conda install -c anaconda jupyter”.
  • Successivamente, clona il repository di codice shap-e con il comando “git clone https://github.com/openai/shap-e”.
  • Da quel momento in poi, Git crea una cartella shap-e sotto quella da cui l’hai clonata. Aprilo e avvia l’installazione con “cd shap-e pip install -e”.
  • Avvia un Jupyter Notebook tramite il comando “jupyter notebook”, quindi vai all’URL localhost che il software ti presenta. Questo è l’indirizzo http://localhost:8888?token= accompagnato da un token.

Prova la demo text-to-3D

  • È quindi possibile sfogliare shap-e/examples. Fare doppio clic su sample_text_to_3d.ipynb.
  • Si apre un blocco note con diverse sezioni di codice. Evidenzia ogni sezione e fai clic sul pulsante “Esegui”. Attendere il completamento del processo prima di passare alla sezione successiva.
  • Questo processo richiede un po’ di tempo la prima volta, poiché diversi modelli di grandi dimensioni devono essere scaricati sul disco rigido locale.
  • Dovresti quindi vedere quattro modelli 3D di uno squalo nel tuo browser e quattro file .ply nella cartella dei campioni. Puoi aprirli usando programmi come Paint 3D.
  • In alternativa, possono essere convertiti in file STL utilizzando un convertitore online.
  • Se vuoi cambiare il prompt e riprovare, aggiorna il browser e cambia “uno squalo” in qualcos’altro nella sezione del prompt.
  • È inoltre possibile aumentare la definizione dell’immagine modificando la dimensione da 64 a un numero superiore.

Prova la demo image-to-3D

  • Per provare lo script da image-to-3D, fai doppio clic su sample_image_to_3d.ipynb nella cartella degli esempi. Ancora una volta, evidenzia ogni sezione e fai clic su “Esegui”.
  • Per impostazione predefinita, vengono visualizzate quattro piccole immagini di corgis. Si consiglia di aggiungere il codice seguente all’ultima sezione del notebook per generare file PLY oltre ai file GIF:
  • « da shap_e.util.notebooks importa decode_latent_mesh
  • for i, latente in enumerate(latents): with open(f’example_mesh_{i}.ply’, ‘wb’) as f: decode_latent_mesh(xm, latent).tri_mesh().write_ply(f)”
  • Prendi in considerazione la possibilità di cambiare la posizione dell’immagine nella sezione 3 per cambiarla. Si consiglia inoltre di modificare batch_size in 1 per produrre una sola immagine. È possibile modificare la dimensione a 128 o 265 per una maggiore definizione.
  • Quindi crea questo script Python e salvalo come text-to-3d.py o con un altro nome:
  • « importazione torcia
  • da shap_e.diffusion.sample importa sample_latents da shap_e.diffusion.gaussian_diffusion importa diffusion_from_config da shap_e.models.download importa load_model, load_config da shap_e.util.notebooks importa create_pan_cameras, decode_latent_images, gif_widget
  • dispositivo = torch.device(‘cuda’ se torch.cuda.is_available() else ‘cpu’)
  • xm = load_model(‘transmitter’, device=device) model = load_model(‘text300M’, device=device) diffusion = diffusion_from_config(load_config(‘diffusion’))
  • batch_size = 1 guidance_scale = 15.0 prompt = input(“Enter prompt: “) filename = prompt.replace(” “, “_”) 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, )
  • render_mode = ‘nerf’ # puoi cambiarlo in ‘stf’ size = 64 # questa è la dimensione dei rendering; valori più alti richiedono più tempo per il rendering.
  • da shap_e.util.notebooks importare decode_latent_mesh
  • for i, latente in enumerate(latents): with open(f'{filename}_{i}.ply’, ‘wb’) as f: decode_latent_mesh(xm, latent).tri_mesh().write_ply(f)”.
  • Ciò ti consentirà di generare file PLY in base a prompt di testo sul prompt dei comandi. Esegui python text-to-3d.py e inserisci il tuo prompt quando richiesto.
  • Riceverai un file PLY, ma non una GIF. Puoi modificare lo script a tuo piacimento se hai familiarità con Python.

Scopri di più da Syrus

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continua a leggere