open ai shap e

Shap-E : après Dall-E, cette IA d’OpenAI crée des objets 3D à partir de prompts

Shap-E est un nouvel outil d’intelligence artificielle créé par OpenAI. Tout comme l’IA Dall-E permet de générer des images à partir de textes, Shap-E génère des modèles 3D à partir de vos prompts ! Découvrez tout ce que vous devez savoir et comment l’utiliser.

Depuis la fin 2022, OpenAI bouleverse le monde entier avec ses modèles IA basés sur GPT. Le chatbot ChatGPT permet de générer tout type de texte à partir d’un prompt, tandis que DALL-E 2 peut créer des images en se basant sur du texte.

À présent, la firme de San Francisco dévoile Shap-E : un modèle IA capable de générer des objets 3D pouvant être ouverts sur Microsoft Paint 3D ou convertis en fichiers STL pour les imprimantes 3D.

Ce nouvel outil pourrait se révéler très utile pour les architectes et décorateurs d’intérieur, pour les développeurs de jeux vidéo, ou encore pour l’industrie du cinéma et de l’animation.

Trois démos Shap-E : text-to-3D, image-to-3d et encode-model

Après avoir installé Shap-E, vous pouvez y accéder via Jupyter Notebook. Vous pourrez alors visualiser et exécuter l’échantillon de code par petits morceaux pour voir ce qui se produit.

Au total, trois notebooks d’échantillon sont proposés. Le premier « text-to-3d » convertit le texte en objet 3D, le second « image-to-3d » transforme une image 2D en objet 3D, et le troisième « encode-model » utilise Blender pour modifier un modèle 3D existant.

Text-to-3D

Pour l’heure, le notebook text-to-3d laisse encore à désirer en termes de définition et de niveau de détails des objets 3D.

Il permet d’obtenir deux types de résultats : des GIF animés en couleur compatibles avec un navigateur web, et des fichiers PLY monochromes pouvant être ouverts avec un programme comme Paint3D.

Le prompt par défaut permet de générer « un requin ». Vous recevrez quatre GIF de 64×64, mais il est possible de modifier le code par exemple pour augmenter la définition.

D’autres exemples sont suggérés par OpenAI, comme « un avion qui ressemble à une banane ». En revanche, les résultats sont plus décevants sur des prompts entrés directement par l’utilisateur.

persos 3D shap e
Shap-E peut servir à créer des personnages de jeu vidéo

Image-to-3D

Le script Image-to-3D permet de prendre un fichier d’image 2D existant et de la transformer en fichier d’objet 3D PLY.

En guise d’exemple, OpenAI propose de convertir une illustration de chien Corgi en objet 3D basse définition sous forme de fichier animé GIF en rotation.

Il est possible de modifier le code pour générer un fichier 3D PLY pouvant être ouvert avec Paint 3D.

Les utilisateurs peuvent essayer de nourrir le script avec leurs propres images, mais les résultats sont moins convaincants. Il est préférable d’utiliser une image 2D au format PNG.

Quelle est la configuration requise pour Shap-E ?

Pour faire tourner Shap-E, une configuration puissante est indispensable. Avec un GPU RTX 3080 et un CPU Ryzen 9 5900X, comptez environ 5 minutes pour compléter un rendu.

Avec un laptop comme le Asus ROG Strix Scar 18 équipé d’un GPU RTX 4090 et d’un Intel Code i9-13980HX, comptez deux à trois minutes.

Si vous utilisez une machine plus ancienne comme un laptop équipé d’un CPU Intel 8th Gen U avec carte graphique intégrée, plusieurs dizaines d’heures seront nécessaires pour compléter un seul rendu.

Il est donc préférable d’utiliser un PC pourvu d’un GPU Nvidia de dernière génération. Lors de la première exécution d’un script, il faut aussi compter le temps de téléchargement des modèles dont la taille s’élève à 2 ou 3 Go.

Comment installer et utiliser Shap-E ?

shap e démo

Le modèle Shap-E est disponible gratuitement sur GitHub, et s’exécute localement sur votre PC. Après avoir téléchargé tous les fichiers requis, il n’est plus nécessaire de se connecter à internet.

Notons qu’il n’y a pas non plus besoin d’une clé API OpenAI pour l’utiliser. Vous ne serez donc pas facturé comme avec les autres outils proposés par l’entreprise.

Faire tourner Shap-E est loin d’être aussi intuitif que d’utiliser Dall-E. En effet, OpenAI ne fournit aucune instruction en dehors de la commande pip Python permettant de l’installer.

La firme ne mentionne pas les dépendances requises pour le faire fonctionner, et ne précise pas que les dernières versions ne fonctionnent pas.

Pour installer et exécuter Shap-E sur Windows, vous pouvez utiliser Miniconda pour créer un environnement Python dédié. Pour éviter les problèmes, il est préférable d’utiliser WSL2 (Windows Subsystem for Linux).

Commencez par installer Miniconda ou Anaconda sur Linux. Vous pouvez trouver le fichier et les instructions sur le site de Conda à cette adresse.

Crééz ensuite un environnement Conda appelé shap-e avec Python 3.9 ou autre version installée. Utilisez ce code : « conda create -n shap-e python=3.9 ». Vous devez ensuite activer l’environnement avec le code « conda activate shap-e ».

L’étape suivante est l’installation de PyTorch. Si vous avez une carte graphique Nvidia, vous pouvez utiliser la commande « conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia ».

Dans le cas contraire, vous aurez besoin d’effectuer une installation basée sur CPU. Utilisez la commande « conda install pytorch torchvision torchaudio cpuonly -c pytorch ». Notez toutefois que le traitement 3D par le CPU peut être extrêmement lent.

Pour le build PyTorch, vous pouvez utiliser la commande « pip install « git+https://github.com/facebookresearch/pytorch3d.git » ». En cas d’erreur cuda, vous essayez d’exécuter sudo apt install nvidia-cuda-dev et répéter le processus.

Installez ensuite Jupyter Notebook en utilisant Conda, à l’aide de la commande « conda install -c anaconda jupyter ».

Par la suite, clonez le dépôt de code shap-e avec la commande « git clone https://github.com/openai/shap-e ».

Dès lors, Git crée un dossier shap-e sous celui à partir duquel vous l’avez cloné. Ouvrez-le, et lancez l’installation avec « cd shap-e pip install -e ».

Lancez un Jupyter Notebook via la commande « jupyter notebook », puis naviguez vers l’URL localhost que le logiciel vous présente. Il s’agit de l’adresse http://localhost:8888?token= accompagnée d’un token.

Tester la démo text-to-3D

text to 3D shape e

Vous pouvez alors parcourir shap-e/examples. Effectuez un double clic sur sample_text_to_3d.ipynb.

Un notebook s’ouvre avec différentes sections de code. Surlignez chaque section, et cliquez sur le bouton « Run ». Attendez que le processus se complète avant de passer à la section suivante.

Ce processus prend un peu de temps la première fois, car il est nécessaire de télécharger plusieurs larges modèles sur votre disque dur local.

Vous devriez ensuite voir quatre modèles 3D d’un requin sur votre navigateur, et quatre fichiers .ply dans le dossier d’exemples. Vous pouvez les ouvrir à l’aide de programmes comme Paint 3D.

En guise d’alternative, il est possible de les convertir en fichiers STL en utilisant un convertisseur en ligne.

Si vous souhaitez modifier le prompt et réessayer, il suffit d’actualiser le navigateur et de changer « a shark » par quelque chose d’autre dans la section de prompt.

Vous pouvez aussi augmenter la définition de l’image en changeant la taille de 64 par un nombre supérieur.

Tester la démo image-to-3D

corgi shap e image to 3D

Pour essayer le script image-to-3D, double-cliquez sur sample_image_to_3d.ipynb dans le dossier d’exemples. Là encore, surlignez chaque section et cliquez sur « Run ».

Par défaut, quatre petites images de corgis apparaissent. Il est recommandé d’ajouter le code ci-dessous à la dernière section du notebook pour générer des fichiers PLY en plus des fichiers GIF :

« from shap_e.util.notebooks import decode_latent_mesh

for i, latent in enumerate(latents): with open(f’example_mesh_{i}.ply’, ‘wb’) as f: decode_latent_mesh(xm, latent).tri_mesh().write_ply(f) »

Pensez à modifier l’emplacement de l’image dans la section 3 pour la modifier. Il est aussi recommandé de changer le batch_size sur 1 pour ne produire qu’une image. Vous pouvez changer la taille à 128 ou 265 pour une plus haute définition.

Créez ensuite ce script Python, et sauvegardez-le en tant que text-to-3d.py ou un autre nom :

« import 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

device = torch.device(‘cuda’ if 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’ # you can change this to ‘stf’ size = 64 # this is the size of the renders; higher values take longer to render.

from shap_e.util.notebooks import decode_latent_mesh

for i, latent in enumerate(latents): with open(f'{filename}_{i}.ply’, ‘wb’) as f: decode_latent_mesh(xm, latent).tri_mesh().write_ply(f) ».

Ceci vous permettra de générer des fichiers PLY basés sur des prompts textuels sur l’invite de commandes. Exécutez python text-to-3d.py et entrez votre prompt quand le programme vous le demande.

Vous recevrez un fichier PLY, mais pas un GIF. Vous pouvez modifier le script à votre guise si vous maîtrisez Python.

Newsletter

Envie de ne louper aucun de nos articles ? Abonnez vous pour recevoir chaque semaine les meilleurs actualités avant tout le monde.

Cliquez pour commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *