Maison > Tutoriel système > Linux > le corps du texte

Comment exécuter une diffusion stable à l'aide du GPU hautes performances de l'école sans accès root ni réseau

PHPz
Libérer: 2024-07-19 00:30:09
original
815 Les gens l'ont consulté

如何在没有 root 权限和网络的情况下使用学校高性能 GPU 运行 stable diffusion

Comme nous le savons tous, la diffusion stable ne peut généralement pas être pilotée par les GPU des ordinateurs portables. On dit qu'il faut au moins 4 Go de GPUVRAM, mais ce n'est pas suffisant si l'on veut l'utiliser à « vitesse normale (1) ». Vous souhaitez utiliser le cloud ? Certains prix de location cloudgpu sont acceptables et ils ne vous permettent généralement pas de stocker des fichiers. L'ouverture d'un stockage cloud est une autre dépense, et il est difficile de transférer des fichiers vers et depuis ceux-ci. J'ai donc (principalement mon tuteur) décidé d'utiliser le GPU du collège afin d'économiser de l'argent.

(1) Référence approximative sans parler de la vitesse du modèle GPU : Mon GPU2GB : 3 minutes pour une image Linux utilise un serveur proxy Programmation système Linux, ami AGPU6GB : 50s pour une image, ami BGPU32GB : 2S pour une image..

Les performances du GPU au collège sont plutôt bonnes. C'est la recette Linux privée de frère Niao, et elle n'a pas d'autorisations root ! Le pilote ne veut pas être mis à jour avant de pouvoir le mettre à jour pour vous ! Ce qui est encore plus ennuyeux, c'est que la machine à laquelle je me connecte doit être connectée à Internet via un proxy (c'est la chose la plus gênante que j'ai rencontrée lors du téléchargement de la SD).

Comme je n'ai vu personne installer SD à l'aide de Linuxconda pour contourner divers problèmes d'autorisation root + problèmes de proxy, je partagerai ci-dessous mon expérience d'installation de stablediffusionwebui. Cette expérience devrait également s'appliquer aux collègues qui ont besoin de Linuxconda sans autorisations ni problèmes de proxy.

*Ma machine est LinuxCentOS (Redhat), NVidiaGPU

** Ce que je veux dire par installer sd, c'est installer le populaire webgui AUTOMATIC1111 sur github :

***Je suis aux États-Unis

****Je ne suis pas un étudiant CS. S'il y a quelque chose de non professionnel, merci de me remercier. Si vous ne l'aimez pas, ne me critiquez pas, je partage simplement mon expérience.

Condition préalable d'installation :

(1) Le GPU est-il assez gros (au moins 4 Go de mémoire vidéo) Sinon, ne vous embêtez pas, allez sur huggingface et utilisez la version mendiante gratuite (sincèrement).

(2) Veuillez vérifier la version CUDAdrive de votre machine (car la torche sera utilisée. D'après mon expérience, 10. ou plus ne doivent pas être utilisés, quelle que soit la combinaison de torchcuda... CUDA11 et supérieur ont une bonne compatibilité). La torche que j'ai installée est adaptée au cu117, même si je peux l'utiliser sur 11.2. (Si vous rencontrez des problèmes de compatibilité des versions CUDA après avoir installé Torch plus tôt, vous pouvez essayer différentes combinaisons de versions et modifier le chemin de téléchargement dans launch.py)

linux使用代理服务器_linux代理服务_linux代理服务器软件

1. Utilisez d'abord le dépôt gitclone (si vous n'avez pas git, installez git ; si git doit configurer un proxy et peut se connecter à Internet, veuillez voir l'étape 4)

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

2. Comme je n'ai pas les autorisations root pour télécharger divers packages, je dois utiliser conda (dans mon cas, je dois utiliser miniconda). Pour référence spécifique, voici en fait le téléchargement automatique du package d'installation anaconda/miniconda (wget ou quelque chose du genre) et l'installer

3. Après le téléchargement, créez votre environnement conda (python3.10.6 est requis)

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

4. (Les partenaires qui n'ont pas besoin de configurer un réseau proxy peuvent omettre cette étape) De manière générale, vous pouvez commencer le téléchargement à ce moment-là, et les partenaires qui ont besoin de configurer un réseau proxy devront peut-être vérifier s'il existe les éléments suivants paramètres aux endroits suivants :

~/.bashrc (mettre en place l'environnement, responsable du réseautage au sens habituel...)

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

~/.condarc (responsable du réseau tel que condainstall...généralement à cet emplacement)

linux代理服务_linux使用代理服务器_linux代理服务器软件

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

réseau git

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

De plus, pipinstall, qui est nécessaire pour télécharger divers packages, doit également être connecté à Internet. Ils se trouvent dans le fichier launch.py :

.

Le premier endroit à changer est au dessus de defrun_pip, vers la ligne 129

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Le deuxième endroit qui doit être modifié est de télécharger la torche dans defprepare_environment, qui se situe autour de la ligne 228

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

5. Ensuite, vous pouvez théoriquement commencer le téléchargement, mais il vous suffit de :

linux代理服务器软件_linux代理服务_linux使用代理服务器

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

* Remarque ici : bien que vous utilisiez bashwenui.sh pour installer, vous utilisez l'environnement virtuel de python pour installer launch.py ​​​​dans le même répertoire. Je pensais que comme il n'y avait peut-être pas beaucoup de différence entre conda, j'ai exécuté launch.py ​​directement et de nombreuses erreurs étranges sont apparues à côté, ce qui m'a amené à reconfigurer l'environnement plusieurs fois, je recommande donc fortement de l'utiliser même dans conda. bashwebui.sh permet de l'installer dans l'environnement virtuel python. N'exécutez pas launch.py ​​​​directement !

Mais pour moi, mon voyage dans les pièges ne fait que commencer. . .

Voici quelques-uns de mes pièges et solutions de contournement (seul le partage d'expérienceLinux utilise un serveur proxy, ma solution n'a aucun sens, et elle fonctionne au final ! Haha !)

1. Difficile de télécharger gfpgan

"RuntimeError : Impossible d'installer gfpgan."

Je pense que c'est un problème de réseau. J'ai bien peur que ce soit un problème de proxy, mais je ne sais pas ce qui ne va pas (Pour ceux qui ont ce problème à l'étranger, vous pouvez vous référer à ceci. Il s'agit peut-être d'un problème [Internet])

Ma solution : commentez d'abord le code de téléchargement de gfpgan dans launch.py

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

linux使用代理服务器_linux代理服务器软件_linux代理服务

Essayez ensuite de télécharger automatiquement (si vous avez besoin d'un proxy, pensez à ajouter --proxy=votre adresse proxy)

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Si cela ne fonctionne toujours pas, jetons un œil au rapport d'erreur et complétons ce qui manque. J'ai essayé de réinstaller numpy dans conda, mis à jour pip, git, setuptools, cython... et finalement cela a fonctionné (je suppose que git). c'est mieux que numpy) Important), même s'il est toujours installé automatiquement, c'est mieux que de ne pas pouvoir l'utiliser.

Référence :

2. Une erreur s'est produite lors du téléchargement de stablediffusion of stabilitéai

« Erreur d'exécution : impossible de déterminer le shash de StableDiffusion » lors de l'installation

Ma solution : mettre à jour git dans conda (j'utilisais la version 1.8, et tout ira bien si je mets à jour vers la version 2.)

Référence :

À ce stade, il n'y a aucun problème pour télécharger le modèle. Voici quelques autres bugs simples :

linux使用代理服务器_linux代理服务器软件_linux代理服务

3. Comme l'hôte local de la machine que j'utilise n'est pas accessible, je dois générer des liens externes

ValueError : Lorsque l'hôte local n'est pas accessible, un lien partageable doit être créé. Pleasesetshare=True.

linux使用代理服务器_linux代理服务器软件_linux代理服务

Ma solution : supprimez les commentaires et ajoutez --share dans webui-user.sh, puis exécutez à nouveau webui-user.sh

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

De cette façon, vous pouvez utiliser le lien externe de Gradio pour accéder au webgui

4. L'interface Web peut être ouverte et il est difficile de générer des images, et l'erreur SomethingwentwrongExpectingvalue : line1column1(char0)

Ma solution : j'ai entendu dire que ce serait bien de désactiver l'agent, mais je n'arrive pas à le désactiver. . . Donc, similaire à la question précédente, ajoutez simplement --no-gradio-queue et exécutez webui-user.sh

<code class=" language-javascript"></code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Référence :

Vous êtes invités à échanger vos expériences avec stablediffusion et autres génératifs !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:itcool.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!