Invitez et gagnez

Fonctionnement des récompenses

Partagez votre lien. Lorsqu’un ami s’inscrit avec ce lien et recharge son solde, vous recevez la récompense affichée sur ses recharges ultérieures.

Réparer un workflow ComfyUI cassé avec Claude

Une méthode concrète pour récupérer un ancien workflow ComfyUI devenu inutilisable après une mise à jour : préserver le JSON et les journaux, tester le workflow par défaut, faire classer la panne par Claude, ne modifier qu’une copie et confirmer le résultat avec une image réellement enregistrée.

Sommaire
Réparer un workflow ComfyUI cassé avec Claude

Ne demandez pas d’abord à Claude de réécrire tout le workflow. Conservez le JSON original au format de sauvegarde normal ainsi que les erreurs exactes, vérifiez qu’un workflow par défaut actuel fonctionne avec les custom nodes désactivés, puis laissez Claude classer uniquement les preuves fournies. Modifiez une dépendance à la fois, reconstruisez le plus petit graphe viable, exécutez une image et vérifiez vous-même que le résultat apparaît dans Save Image, peut être enregistré et rouvert.

Cette méthode transforme le vague constat « ComfyUI a beaucoup changé » en couches testables : cœur de ComfyUI, extensions frontend, custom nodes, fichiers de modèles ou ancien graphe. Le guide officiel de dépannage ComfyUI recommande également de tester le workflow par défaut, de désactiver les custom nodes et de lire l’erreur exacte du terminal avant d’appliquer un correctif.

La séquence de réparation en bref

  1. Gardez le workflow original au format de sauvegarde normal et ne l’écrasez jamais.
  2. Capturez le rapport complet, le journal de démarrage, le type d’installation, les versions et les changements récents.
  3. Désactivez tous les custom nodes et lancez le workflow d’image par défaut actuel.
  4. Donnez à Claude un dossier de preuves limité ; l’analyse précède toute modification ou installation.
  5. Classez la panne : core, frontend, custom node, model ou unknown.
  6. Mettez à jour ou remplacez un seul nœud incompatible, ou reconstruisez un graphe minimal actuel.
  7. Exécutez une petite image et vérifiez le fichier réellement enregistré.

1. Figez le workflow et les preuves avant toute modification

Enregistrez l’ancien workflow en JSON normal, puis créez une copie de travail distincte. Un petit dossier rend l’enquête reproductible :

comfyui-repair-case/
  workflow-original.json
  workflow-working.json
  error-report.txt
  startup-log.txt
  environment.md

Considérez workflow-original.json comme étant en lecture seule. Placez dans error-report.txt tout le texte de Show report, et non un résumé comme « le nœud est cassé ». Dans startup-log.txt, conservez les échecs d’importation, conflits de dépendances et tracebacks du terminal de lancement. Dans environment.md, notez Desktop, Portable ou installation manuelle, la version de ComfyUI, le système, le GPU et ce qui a été mis à jour récemment : core, frontend, custom nodes ou modèles.

Préservez aussi la distinction entre Save format et API format. La page officielle Workflow API Format explique qu’une sauvegarde normale conserve positions, couleurs, groupes et autres métadonnées d’édition, tandis que le format API est allégé pour l’envoi programmatique. Gardez l’original en format normal pour la réparation. N’exportez une copie API séparée que si la tâche utilise réellement une API.

2. Prouvez d’abord qu’une base ComfyUI propre fonctionne

L’ancien graphe ne doit pas être le premier test. Désactivez temporairement les nœuds tiers. Dans Desktop, utilisez le réglage prévu ; une installation manuelle peut généralement être lancée ainsi :

python main.py --disable-all-custom-nodes

Chargez le modèle actuel Image Generation, choisissez un checkpoint compatible déjà visible dans le sélecteur et générez une image. Le guide officiel sur les custom nodes fournit une séparation utile : si le problème disparaît avec les custom nodes désactivés, l’un d’eux est impliqué ; s’il persiste, examinez core, frontend, modèles ou environnement.

Utilisez le résultat pour choisir la branche suivante :

Résultat de baseCouche la plus probablePreuve suivante
Le workflow par défaut ne s’ouvre pas ou ne s’exécute pasInstallation core, frontend, modèle ou matérielRéparer la base avant l’ancien graphe
Le défaut fonctionne, l’ancien affiche missing nodesCustom nodes absents, renommés ou non chargésRelier les types JSON à leurs paquets
L’ancien graphe charge puis échoue sur un nœudArchitecture du modèle, connexions, dépendances ou mémoireConserver le premier nœud fautif et le rapport complet
L’interface revient après désactivation des extensions frontendExtension tierce incompatibleRéactiver par moitiés pour en isoler une

Si le graphe par défaut échoue, réécrire l’ancien JSON ne prouve aucune réparation.

3. Donnez à Claude un dossier de preuves strictement délimité

Anthropic décrit Claude Code comme capable de lire une base de code, modifier des fichiers et exécuter des commandes. C’est utile, mais la première passe doit donc rester analytique. Lancez Claude dans le dossier du cas, ou joignez les mêmes fichiers dans un chat, avec des limites explicites :

Tu diagnostiques un workflow ComfyUI arrêté après une mise à jour.

Lis uniquement :
- workflow-original.json
- workflow-working.json
- error-report.txt
- startup-log.txt
- environment.md

N’installe, ne mets à jour, ne supprime, ne renomme et ne modifie encore rien.
Commence par :
1. Inventorier les types de nœuds et les fichiers de modèles référencés.
2. Classer chaque problème : ComfyUI core, frontend extension,
   custom node, model file ou unknown.
3. Citer le champ JSON ou la ligne d’erreur exacte pour chaque conclusion.
4. Proposer le plus petit changement réversible.
5. Attendre mon accord avant de modifier workflow-working.json.

N’annonce pas la réussite avant que j’exécute une image et confirme un fichier enregistré.

Une réponse utile est un tableau de correspondance : ancien type de nœud, extension propriétaire, contrat d’entrées/sorties, remplacement possible, migration des paramètres, preuve et risque. Si le propriétaire ou le remplacement n’est pas établi, Claude doit écrire unknown au lieu de déduire un paquet à partir d’un nom similaire.

4. Classez la panne au lieu de tout mettre à jour

Nœud manquant : identifiez son propriétaire avant de le remplacer

Inspectez le type, le titre et les liens du nœud dans le JSON normal. Des noms proches ne garantissent pas des sockets ni des valeurs de widgets compatibles ; remplacer une chaîne dans le JSON n’est donc pas une migration sûre. Déterminez si le nœud appartient au core ou à un dépôt de custom node précis, puis comparez entrées, sorties et paramètres.

Si l’extension est maintenue, mettez uniquement celle-ci à jour et retestez. Si elle est abandonnée, choisissez une alternative maintenue ou reconstruisez cette petite fonction avec des nœuds core. Le guide officiel propose les mêmes options : mettre à jour, remplacer, signaler à l’auteur ou retirer/désactiver le nœud.

Conflit frontend : désactivez, puis procédez par dichotomie

Certains custom nodes injectent aussi des extensions frontend. Interface vide, connexions cassées, aperçus absents ou communication frontend/backend interrompue peuvent venir de cette couche. Désactivez d’abord les extensions frontend tierces. Si le symptôme disparaît, réactivez-en la moitié à chaque étape. Cette recherche binaire conserve la causalité et est plus sûre qu’une réinstallation générale.

Modèle manquant : vérifiez dossiers et chemins de recherche

Un ancien graphe peut référencer un checkpoint, VAE, LoRA ou ControlNet supprimé, renommé ou déplacé. ComfyUI découvre les modèles dans les sous-dossiers de ComfyUI/models/ et dans les chemins définis dans extra_model_paths.yaml. Si un sélecteur est vide ou affiche null, vérifiez l’emplacement réel, puis actualisez ou redémarrez ComfyUI. Ne renommez pas un modèle incompatible pour satisfaire un ancien nom.

Architecture incompatible : vérifiez la famille, pas seulement le fichier

Le guide officiel sur les modèles conseille de garder les modèles d’un workflow dans la même famille d’architecture. Mélanger checkpoint, VAE, text encoder ou ControlNet de familles différentes peut produire des erreurs de dimensions pendant le sampling ou le VAE decode. Claude peut corréler la trace avec le graphe, mais un modèle officiel de la famille visée constitue une meilleure base de compatibilité.

5. Modifiez un seul nœud dans la copie de travail

Avant d’approuver une édition, demandez ce plan à Claude :

ÉlémentQuestion obligatoire
Ancien nœudQuel est le type JSON exact ?
PropriétaireCore, custom node ou frontend extension ?
RemplacementLes types d’entrée et de sortie correspondent-ils ?
MigrationQuelles widget values restent et lesquelles doivent être recréées ?
Retour arrièreComment restaurer le précédent workflow-working.json ?

N’autorisez des changements que dans workflow-working.json, une panne à la fois. Rechargez après chaque édition et vérifiez présence du nœud, validité des connexions et alignement des paramètres avant de poursuivre. Une mise à jour globale de tous les custom nodes peut créer un second conflit et supprime la preuve de la modification réellement utile.

Les pages communautaires peuvent aider à reconnaître des symptômes, mais ne constituent pas des diagnostics universels. Par exemple, frontend issue #6328 et ComfyUI discussion #14344 sont des rapports individuels. Utilisez-les seulement si version, erreur et contexte du nœud correspondent.

6. Reconstruisez une ossature d’image minimale et actuelle

Si l’ancien graphe contient de nombreuses branches LoRA, ControlNet, upscale, preview et utilitaires devenues obsolètes, tout réparer en même temps est plus risqué que restaurer le cœur. Reconstruisez-le à partir de l’exemple minimal officiel au format Save de ComfyUI. Il ne s’agit pas d’une chaîne en série : plusieurs sorties convergent vers KSampler, tandis que VAEDecode reçoit séparément le VAE du checkpoint.

Port de sortiePort d’entrée
CheckpointLoaderSimple.MODELKSampler.model
CheckpointLoaderSimple.CLIPCLIPTextEncode.clip du prompt positif
CheckpointLoaderSimple.CLIPCLIPTextEncode.clip du prompt négatif
CLIPTextEncode.CONDITIONING du prompt positifKSampler.positive
CLIPTextEncode.CONDITIONING du prompt négatifKSampler.negative
EmptyLatentImage.LATENTKSampler.latent_image
KSampler.LATENTVAEDecode.samples
CheckpointLoaderSimple.VAEVAEDecode.vae
VAEDecode.IMAGESaveImage.images

EmptyLatentImage ne reçoit pas de conditioning. KSampler exige quatre entrées indépendantes —model, positive, negative et latent_image—, tandis que VAEDecode exige à la fois samples et le vae du checkpoint. Ce n’est qu’après avoir relié ces ports comme indiqué que le graphe minimal peut être mis en file et enregistrer une image.

N’utilisez ce câblage que si l’architecture du checkpoint choisi correspond à l’exemple officiel. Un modèle récent peut nécessiter un autre loader, text encoder, nœud latent ou chemin VAE ; dans ce cas, suivez le workflow officiel propre à ce modèle au lieu de forcer ce graphe. Pour la base, choisissez un checkpoint compatible déjà visible dans Load Checkpoint, utilisez batch size 1 et une résolution modérée, et laissez les anciennes branches facultatives déconnectées. Une fois l’ossature validée, ajoutez un LoRA, ControlNet, upscaler ou post-traitement personnalisé, puis relancez après chaque ajout.

L’objectif n’est pas que le nouveau graphe ressemble visuellement à l’ancien. Il faut obtenir une ossature actuelle dont le fonctionnement est prouvé, puis migrer seulement les capacités nécessaires. Claude peut comparer les deux JSON et préparer la carte de migration, mais l’exécution reste le test d’acceptation.

7. Exécutez une image et vérifiez le résultat enregistré

Un workflow qui s’ouvre seulement n’est pas réparé. Fermez la boucle avec le guide officiel de première génération :

  1. Après installation ou déplacement de modèles, appuyez sur R pour actualiser les listes, ou redémarrez si nécessaire.
  2. Vérifiez que Load Checkpoint affiche un modèle visible et compatible.
  3. Cliquez sur Run ou appuyez sur Ctrl + Enter.
  4. Attendez la fin de la file sans missing node, validation error ni nœud rouge en échec.
  5. Vérifiez que l’image apparaît dans Save Image.
  6. Enregistrez-la localement par clic droit, notez son nom et rouvrez-la dans une visionneuse.
  7. Facultatif : faites glisser le PNG généré dans ComfyUI pour vérifier la lecture de ses métadonnées de workflow.
  8. Enregistrez le graphe réparé en format normal sous workflow-repaired.json et conservez workflow-original.json intact.

Le dossier d’acceptation doit contenir le nom du workflow réparé, celui de l’image, le modèle utilisé, les custom nodes actifs, les remplacements et les limites connues. Alors seulement « réparé » devient un état étayé.

Si une branche échoue encore

  • Le workflow par défaut échoue avec les custom nodes désactivés : arrêtez d’éditer l’ancien graphe et réparez installation, modèle, pilote ou frontend.
  • Le défaut fonctionne mais l’ancien a encore des missing nodes : poursuivez la cartographie des propriétaires et remplacements, sans renommer les types au hasard.
  • Le graphe charge mais la génération échoue : partez du premier nœud fautif dans Show report ; vérifiez famille du modèle et connexions avant la mémoire.
  • La panne revient à l’activation d’un groupe : continuez la dichotomie jusqu’à isoler un custom node ou frontend extension.
  • Le nœud original n’est plus maintenu : remplacez ou reconstruisez sa fonction et documentez toute différence.
  • Claude ne cite ni erreur ni champ JSON : traitez la proposition comme une hypothèse et ne l’exécutez pas encore.

Conclusion

Claude est ici plus fiable comme organisateur de preuves et planificateur de changements que comme bouton de réparation automatique non vérifiée. La boucle robuste est sauvegarde → base propre → classification → changement minimal → une image → vérification du fichier enregistré. Gardez le graphe original, ne changez qu’une variable à la fois et laissez le résultat réel de ComfyUI, plutôt qu’une explication assurée, déterminer si la réparation est terminée.

Prêt à optimiser votre workflow LLM ?

Connectez vos modèles via une API unique, gérez les clés et maîtrisez vos dépenses d’IA.

Commencer gratuitement