Stable Diffusion sur macOS : comparaison des outils d’image locaux
Traduction automatique Cet article a été traduit automatiquement depuis la version originale en anglais.
Exécuter des modèles d’image localement sur macOS relève surtout d’un choix d’outillage. Draw Things, DiffusionBee, ComfyUI, AUTOMATIC1111 et Fooocus se recouvrent en partie, mais diffèrent par leur configuration, la prise en charge des modèles, le contrôle des workflows, les extensions et l’automatisation.
Une application en glisser-déposer permet de démarrer rapidement ; un graphe de nœuds demande davantage de temps d’apprentissage, mais expose une plus grande partie du pipeline. Sur Apple Silicon, l’application, la famille de modèles, la précision, la taille des images et le workflow influencent tous le fait que la génération tienne en mémoire. Choisissez l’interface en fonction du travail que vous devez reproduire, puis testez le modèle et les paramètres exacts.
En bref. Commencez par Draw Things ou DiffusionBee lorsqu’une application native suffit. Utilisez ComfyUI lorsque le graphe doit être inspecté, partagé ou automatisé. Choisissez AUTOMATIC1111 uniquement pour un workflow qui dépend de son interface ou de ses extensions. Considérez Fooocus comme un workflow stable de l’ère SDXL, et non comme une voie vers la prise en charge des modèles actuels : son projet officiel est en support à long terme limité.
Un fichier de modèle ne constitue pas un workflow portable
Plusieurs applications peuvent charger des fichiers .safetensors, mais une extension de fichier identique ne signifie pas que le modèle fonctionnera. Un pipeline complet peut également nécessiter une architecture particulière, un encodeur de texte, un VAE, un scheduler, un ControlNet, un LoRA, un tokenizer ou une configuration propre à l’application.
Consignez tout ce qui a servi à produire une image :
- application et version
- dépôt du modèle, révision et licence
- chaque composant de modèle et chaque adapter
- prompt, negative prompt, seed, sampler, nombre d’étapes, guidance et dimensions
- fichier de graphe ou de workflow lorsque l’application en expose un
Cette trace est plus importante que la popularité de l’application. Le même seed peut malgré tout produire une image différente après une modification du backend, du modèle, du sampler ou de la précision.
La mémoire unifiée est partagée, mais pas illimitée
Apple indique que ses GPUs utilisent un modèle de mémoire unifiée dans lequel le CPU et le GPU partagent la mémoire système, même si l’accès aux ressources dépend toujours du mode de stockage Metal. Cela supprime une frontière de copie distincte, mais macOS et toutes les applications ouvertes utilisent la même capacité physique ; le Moniteur d’activité expose l’utilisation par les applications, la mémoire câblée, la mémoire compressée et le swap.
Pour la génération d’images, utilisez ceci comme un registre conceptuel des pics de mémoire, et non comme une formule de dimensionnement :
peak memory ≈ model components
+ intermediate activations
+ attention and runtime workspace
+ loaded adapters and control models
+ application and OS memory
La résolution, la taille du batch, l’architecture du modèle, la précision, l’upscaling, le ControlNet et le maintien ou non des composants en mémoire modifient tous le résultat. Aucune source Apple ne transforme ce registre en règle universelle du type « 8/16/32 Go » ; choisir une machine à partir de celui-ci relève donc d’une inférence fondée sur des tests de workflow. Testez le workflow prévu, puis surveillez la pression mémoire et la mémoire de swap utilisée ; un swapping soutenu indique qu’il faut réduire la charge ou choisir davantage de mémoire.
Choisissez selon l’état que vous devez contrôler
| Outil | Surface de contrôle utile | Compromis opérationnel |
|---|---|---|
| Draw Things | Interface Apple native avec modèles locaux, adapters, ControlNet et scripts | Interface dense et spécifique au produit ; vérifiez la prise en charge de la famille de modèles exacte |
| DiffusionBee | Application macOS packagée avec workflow de génération intégré | Privilégie la simplicité à l’inspection au niveau du graphe ; vérifiez la cadence des releases et les familles prises en charge |
| ComfyUI | Graphe de nœuds explicite, workflows JSON, API et custom nodes | Davantage d’éléments à gérer ; les graphes et les nœuds tiers deviennent des dépendances |
| AUTOMATIC1111 | Web UI basée sur des formulaires, scripts, API et vaste surface d’extensions | Limitations documentées sur Apple Silicon en matière de fonctionnalités et de performances ; les extensions élargissent la boundary de confiance |
| Fooocus | Workflow SDXL opinionated, centré sur le prompt | Officiellement en LTS limité avec uniquement des corrections de bugs ; les indications pour Mac sont non officielles et peu testées |
Ce tableau n’est pas un classement. Il indique où se trouve l’état du workflow : dans une application, au travers d’un formulaire ou dans un graphe qui peut être révisé.
Draw Things : interaction native et scripting
Draw Things est une application pour plateformes Apple dédiée à la génération locale d’images. Sa documentation actuelle couvre les modèles, les LoRAs, ControlNet, l’inversion textuelle, Core ML et le scripting JavaScript versionné.
Choisissez-la lorsque le travail doit rester dans une application native tout en nécessitant davantage de contrôle qu’une simple zone de prompt. Avant de la standardiser, importez les composants exacts du modèle et reproduisez une édition, un adapter ou un workflow de contrôle représentatif. « Native » décrit l’interface et l’implémentation ; cela ne garantit ni la prise en charge ni la vitesse de chaque nouvelle architecture.
DiffusionBee : workflow macOS packagé
DiffusionBee regroupe le téléchargement des modèles et les tâches courantes de génération dans une application desktop. La documentation du projet répertorie l’image-vers-image, l’inpainting, l’outpainting, ControlNet, LoRA et SDXL. Les notes de version de DiffusionBee 2.5.3 indiquent que la prise en charge de Flux.1 est limitée aux Macs arm64 exécutant macOS 13 ou une version ultérieure.
Choisissez-le lorsque la simplicité de l’installation et une UI intégrée comptent davantage que l’export d’un graphe de pipeline. Vérifiez la dernière release et l’architecture exacte avant de télécharger un modèle volumineux. Une mention telle que « prise en charge de Flux » ne signifie pas que chaque dérivé, quantification ou composant auxiliaire pourra être chargé.
ComfyUI : le workflow est un artefact
ComfyUI représente la génération sous la forme d’un graphe de nœuds. Un workflow peut être stocké en JSON indépendamment de sa sortie, ce qui rend le pipeline inspectable et versionnable. Son exécuteur peut également éviter de recalculer les sections du graphe dont les entrées n’ont pas changé.
Comfy Desktop est un gestionnaire de plusieurs installations pour instances locales de ComfyUI. La documentation macOS actuelle prend en charge Apple Silicon sur macOS 13 ou une version ultérieure et installe l’application à partir d’un .dmg téléchargé. Si vous préférez Homebrew, le cask actuel est comfy (et non comfyui) :
brew install --cask comfy
Choisissez ComfyUI lorsqu’un pipeline comporte des branches, des composants réutilisables, plusieurs modèles ou de l’automatisation. Conservez ensemble le JSON, la version de l’application, les versions des core nodes, les révisions des custom nodes et le manifest des modèles.
Les custom nodes sont des dépendances exécutables. Examinez leur code source et leurs scripts d’installation, épinglez les révisions et isolez l’environnement. Un graphe provenant d’un auteur inconnu peut faire référence à du code et à des modèles que vous n’avez pas audités.
AUTOMATIC1111 : compatibilité avec une Web UI établie
AUTOMATIC1111 Stable Diffusion WebUI expose les paramètres de génération via une interface de navigateur et prend en charge les scripts, les extensions et une API. Choisissez-la lorsqu’un tutoriel, une automatisation ou une extension spécifique fait déjà partie des exigences.
Son guide officiel pour Apple Silicon documente des exceptions et des limitations de performances, notamment pour l’entraînement, dont les performances sont faibles. Vérifiez que la fonctionnalité requise fonctionne avec les versions cibles de macOS et de PyTorch avant d’adopter une configuration riche en extensions.
Les extensions exécutent du code dans l’environnement de l’application. Épinglez-les, examinez les mises à jour et laissez le service sur loopback, sauf si un accès distant est délibéré et protégé.
Fooocus : une option délimitée de l’ère SDXL
Fooocus masque volontairement de nombreux choix techniques derrière un workflow opinionated centré sur le prompt. Cela peut être utile lorsque ses valeurs par défaut correspondent à la tâche.
Le README actuel du projet indique que Fooocus est construit autour de SDXL et bénéficie d’un support à long terme limité, avec uniquement des corrections de bugs. Il précise également que Mac n’est pas testé de manière intensive et décrit l’installation sur Mac comme non officielle. Fooocus constitue donc un choix délimité pour un workflow Fooocus existant, et non la voie par défaut pour les nouvelles architectures ou pour une configuration macOS que vous prévoyez de maintenir.
Exécutez un test d’acceptation représentatif
Utilisez un petit jeu d’acceptation avant de vous engager sur un outil :
- Reproduisez un résultat texte-vers-image de référence à partir d’un seed et de paramètres consignés.
- Exécutez l’opération obligatoire la plus difficile : inpainting, ControlNet, LoRA, upscale ou graphe en plusieurs étapes.
- Redémarrez l’application et reproduisez le workflow à partir des artefacts enregistrés.
- Mesurez le démarrage à froid, le temps de génération, le pic de pression mémoire et les dimensions de sortie.
- Transférez le workflow vers un compte utilisateur ou une machine vierge et répertoriez chaque dépendance manquante.
- Vérifiez la liaison au réseau local, les téléchargements, les paramètres d’analytics, les licences et la provenance des modèles.
Ne comparez pas des outils utilisant des checkpoints, des résolutions, des nombres d’étapes ou des précisions différents avant de qualifier le résultat de benchmark de runtime.
Une stratégie par défaut pragmatique
Pour le travail exploratoire, commencez par une application native et un modèle qu’elle documente. Passez à ComfyUI lorsque le workflow lui-même devient précieux : lorsqu’il doit être révisé, répété, automatisé ou transmis à quelqu’un d’autre. Conservez AUTOMATIC1111 ou Fooocus lorsqu’une dépendance existante rend leur surface spécifique utile.
L’élément qui mérite d’être conservé est le plus petit package reproductible regroupant les identités des modèles, les paramètres, les dépendances et l’état du workflow nécessaires pour reproduire le résultat.
Références
- Documentation de Draw Things
- Projet DiffusionBee
- Documentation de ComfyUI Desktop pour macOS, cask Comfy Desktop pour Homebrew et documentation des workflows
- Documentation Apple sur la mémoire unifiée de Metal et documentation du Moniteur d’activité sur la pression mémoire
- Notes d’installation d’AUTOMATIC1111 pour Apple Silicon
- État du projet Fooocus et notes pour macOS