Installation de ComfyUI et ComfyUI-Manager sur Apple Silicon (M1/M2/M3)
Ca fait longtemps hein ? Vous aussi, beaucoup ;)
Bon allez, on commence !
ComfyUI, un puissant workflow node-based pour la génération d’images IA, entièrement personnalisable avec ComfyUI-Manager qui permet d'ajouter des tas de fonctionnalités en 1 clic !
Voici ma première réalisation :)
Installation
1. Installer PyTorch
On installe PyTorch pour optimiser les perfs sur Mac avec MPS.
pip3 install torch torchvision torchaudio –extra-index-url https://download.pytorch.org/whl/nightly/cpu
2. Cloner ComfyUI
cd
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ~/ComfyUI/
(Nous partons du principe que nous installons ComfyUI dans le répertoire personnel de l'utilisateur qui exécute les commandes pour le resste du document.)
3. Créer et activer un environnement virtuel (venv)
Créer le venv : python3 -m venv venv
Activer le venv : source venv/bin/activate
Désactiver le venv : deactivate
A partir de maintenant l'ensemble des commandes concernant Python et ses dépendances doivent se faire dans le venv !!! Vous pouvez même taper l'ensemble des commandes sans sortir du venv jusqu'au premier lancement !
4. Mettre à jour pip et installer les dépendances
pip install –upgrade pip
pip install -r requirements.txt –no-cache-dir
5. Installer ComfyUI-Manager
Le manager permet de configurer ComfyUI et d'installer des modèles et extensions en 1 clic ;)
cd ~/ComfyUI/
cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ComfyUI-Manager
pip install -r requirements.txt –no-cache-dir
6. Ajouter un modèle
On va installer le modèle DreamShaper 8 :
Allez sur la page du modèle et chercher le bouton “Download” (juste à droite du bouton “Create”) pour récupérer le fichier dreamshaper_8.safetensors.
Soit vous le téléchargez avec votre navigateur directement dans le bon répertoire ou sinon vous faites un clic-droit sur le bouton et cherchez “Copier l'adresse du lien”, déplacez vous dans le répertoire de destination pour le télécharger avec wget :
cd ~/ComfyUI/models/checkpoints
wget “COLLER LE LIEN” -O dreamshaper_8.safetensors
Voilà c'est fait :)
Alternative : ComfyUI-Manager propose directement des modèles prêts à l'emploi en un clic !
7. Installation de ComfyUI-Impact-Pack
C'est parti !
source ~/ComfyUI/venv/bin/activate
cd ~/ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
cd ComfyUI-Impact-Pack
pip install -r requirements.txt –no-cache-dir
deactivate
8. Lancer ComfyUI
Lancement simple pour vérifier que le programme se lance correctement et que vous pouvez accéder à l'interface graphique via votre navigateur.
!!! L'option –listen vous permet d'utiliser ComfyUI à partir d'une autre machine que celle sur lequel il est lancé ! Si vous ne souhaitez pas ce comportement supprimer cette option !!!
foo@bar ~ % cd ~/ComfyUI
foo@bar ComfyUI % source venv/bin/activate
(venv) foo@bar ComfyUI % python main.py –force-upcast-attention –listen
Ouvrez un navigateur sur l'adresse : http://127.0.0.1:8188
Si tout fontionne correctement : Félicitations !!! :)
Retournez sur votre terminal, faites un Ctrl-C pour quitter ComfyUI puis désactivez le venv Python :
(venv) foo@bar ComfyUI % deactivate
foo@bar ComfyUI %
Voici un petit script pour un démarrage plus rapide dans le répertoire ~/ComfyUI je l'ai nommé start.sh :
#! /bin/bash
set -e
source venv/bin/activate || { echo “Erreur : activation du venv a échoué.” >&2; exit 1; }
LOGFILE=“startup.log”
PIDFILE=“$0.pid”
LISTEN_OPTS=“–force-upcast-attention –listen”
CMD=“python main.py $LISTEN_OPTS”
[ -f “$LOGFILE” ] && mv “$LOGFILE” “$LOGFILE.bak”
echo $$ > “$PIDFILE”
if [ “$1” = “bg” ]; then
nohup $CMD 2>&1 | tee “$LOGFILE” &
disown
echo “ComfyUI lancé en arrière-plan (PID: $!)”
else
echo “ComfyUI lancé en mode interactif (Ctrl-Z possible)”
exec $CMD 2>&1 | tee “$LOGFILE”
fi
Puis donnez lui les bonnes permissions pour l'executer :
chmod +x start.sh
Sans option ComfyUI se lancera en affichant les messages dans le terminal, ce qui permet de voir les erreurs, l'avancement des travaux en cours et également en cas de “freeze” de l'applicaton de relacher l'application avec un Ctrl-Z puis ensuite la commande bg pour reprendre la main (ça n'est pas un comportement attendu, mais je le signale ici car cela me permets d'êviter de relancer systèmatiquement ComfyUI …)
./start.sh
Si vous souhaitez lancer ComfyUI en background (vous pourrez fermer le terminal si les messages ne vous intéressent pas) utilisez l'option bg :
./start.sh bg
Voici un log d'un démarrage qui se passe correctement :
foo@bar ComfyUI % ./start.sh
ComfyUI lancé en mode interactif (Ctrl-Z possible)
[START] Security scan
[DONE] Security scan
ComfyUI-Manager: installing dependencies done.
** ComfyUI startup time: 2025-04-22 06:03:56.064
** Platform: Darwin
** Python version: 3.9.6 (default, Nov 11 2024, 03:15:38)
[Clang 16.0.0 (clang-1600.0.26.6)]
** Python executable: /Users/foo/ComfyUI/venv/bin/python
** ComfyUI Path: /Users/foo/ComfyUI
** ComfyUI Base Folder Path: /Users/foo/ComfyUI
** User directory: /Users/foo/ComfyUI/user
** ComfyUI-Manager config path: /Users/foo/ComfyUI/user/default/ComfyUI-Manager/config.ini
** Log path: /Users/foo/ComfyUI/user/comfyui.log
Prestartup times for custom nodes:
1.2 seconds: /Users/foo/ComfyUI/custom_nodes/ComfyUI-Manager
Checkpoint files will always be loaded safely.
Total VRAM 16384 MB, total RAM 16384 MB
pytorch version: 2.6.0
Mac Version (15, 3, 1)
Set vram state to: SHARED
Device: mps
Using sub quadratic optimization for attention, if you have memory or speed issues try using: –use-split-cross-attention
Python version: 3.9.6 (default, Nov 11 2024, 03:15:38)
[Clang 16.0.0 (clang-1600.0.26.6)]
ComfyUI version: 0.3.29
ComfyUI frontend version: 1.16.9
[Prompt Server] web root: /Users/foo/ComfyUI/venv/lib/python3.9/site-packages/comfyui_frontend_package/static
Loading: ComfyUI-Manager (V3.31.12)
[ComfyUI-Manager] network_mode: public
ComfyUI Version: v0.3.29-22-g3ab231f0 | Released on ‘2025-04-21’
Loading: ComfyUI-Impact-Pack (V8.12)
Import times for custom nodes:
0.0 seconds: /Users/foo/ComfyUI/custom_nodes/websocket_image_save.py
[Impact Pack] Wildcards loading done. 0.1 seconds: /Users/foo/ComfyUI/custom_nodes/ComfyUI-Impact-Pack
0.1 seconds: /Users/foo/ComfyUI/custom_nodes/ComfyUI-Manager
Starting server
To see the GUI go to: http://0.0.0.0:8188
To see the GUI go to: http://[::]:8188
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/model-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/alter-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/github-stats.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/extension-node-map.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json
FETCH ComfyRegistry Data: 5/82
FETCH ComfyRegistry Data: 10/82
FETCH ComfyRegistry Data: 15/82
FETCH ComfyRegistry Data: 20/82
FETCH ComfyRegistry Data: 25/82
FETCH ComfyRegistry Data: 30/82
FETCH ComfyRegistry Data: 35/82
FETCH ComfyRegistry Data: 40/82
FETCH ComfyRegistry Data: 45/82
FETCH ComfyRegistry Data: 50/82
FETCH ComfyRegistry Data: 55/82
FETCH ComfyRegistry Data: 60/82
FETCH ComfyRegistry Data: 65/82
FETCH ComfyRegistry Data: 70/82
FETCH ComfyRegistry Data: 75/82
FETCH ComfyRegistry Data: 80/82
FETCH ComfyRegistry Data [DONE]
[ComfyUI-Manager] default cache updated: https://api.comfy.org/nodes
FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json [DONE]
[ComfyUI-Manager] All startup tasks have been completed.
Voilà … vous n'avez plus qu'à faire pointer votre navigateur sur http://127.0.0.1:8188 ou sur l'adresse IP externe si vous êtes à distance …
Pour récupérer vos réalisations, visitez le répertoire :
~/ComfyUI/output/
Amusez vous bien et n'hésitez pas à m'envoyer vos plus belles réussites ;)
Résolution des erreurs courantes
Parce que oui, ça peut arriver …
ModuleNotFoundError (yaml, git, rich, toml, aiohttp, etc.)
Installer les dépendances demandées :
pip install kornia spandrel av aiohttp gitpython rich toml typing-extensions –no-cache-dir –break-system-packages
No module named 'torch’
Vérifiez que vous êtes bien dans le venv :
source ~/ComfyUI/venv/bin/activate
Puis réinstaller torch :
pip install torch torchvision torchaudio –extra-index-url https://download.pytorch.org/whl/nightly/cpu
Puis quitter le venv :
deactivate
Problèmes de dépendances pip (externally-managed-environment)
Utiliser –break-system-packages pour forcer l'installation.
Erreur lors de l'import des comfy_extras (kornia, spandrel, av)
Installer les modules manquants :
pip install kornia spandrel av –no-cache-dir –break-system-packages