---
read_when:
    - Vous souhaitez utiliser des workflows ComfyUI locaux avec OpenClaw
    - Vous souhaitez utiliser Comfy Cloud avec des workflows d’image, de vidéo ou de musique
    - Vous avez besoin des clés de configuration du Plugin comfy intégré
summary: Configuration de la génération d’images, de vidéos et de musique avec le workflow ComfyUI dans OpenClaw
title: ComfyUI
x-i18n:
    generated_at: "2026-04-12T23:30:18Z"
    model: gpt-5.4
    provider: openai
    source_hash: 85db395b171f37f80b34b22f3e7707bffc1fd9138e7d10687eef13eaaa55cf24
    source_path: providers/comfy.md
    workflow: 15
---

# ComfyUI

OpenClaw inclut un Plugin `comfy` intégré pour les exécutions ComfyUI pilotées par workflow. Le Plugin est entièrement piloté par workflow, donc OpenClaw n’essaie pas de mapper des contrôles génériques comme `size`, `aspectRatio`, `resolution`, `durationSeconds` ou des contrôles de type TTS sur votre graphe.

| Property        | Detail                                                                                 |
| --------------- | -------------------------------------------------------------------------------------- |
| Provider        | `comfy`                                                                                |
| Models          | `comfy/workflow`                                                                       |
| Shared surfaces | `image_generate`, `video_generate`, `music_generate`                                   |
| Auth            | Aucune pour ComfyUI local ; `COMFY_API_KEY` ou `COMFY_CLOUD_API_KEY` pour Comfy Cloud |
| API             | ComfyUI `/prompt` / `/history` / `/view` et Comfy Cloud `/api/*`                      |

## Ce qui est pris en charge

- Génération d’images à partir d’un JSON de workflow
- Édition d’images avec 1 image de référence téléversée
- Génération vidéo à partir d’un JSON de workflow
- Génération vidéo avec 1 image de référence téléversée
- Génération de musique ou d’audio via l’outil partagé `music_generate`
- Téléchargement des sorties depuis un nœud configuré ou tous les nœuds de sortie correspondants

## Prise en main

Choisissez entre exécuter ComfyUI sur votre propre machine ou utiliser Comfy Cloud.

<Tabs>
  <Tab title="Local">
    **Idéal pour :** exécuter votre propre instance ComfyUI sur votre machine ou sur votre LAN.

    <Steps>
      <Step title="Démarrer ComfyUI localement">
        Assurez-vous que votre instance locale de ComfyUI est en cours d’exécution (par défaut sur `http://127.0.0.1:8188`).
      </Step>
      <Step title="Préparer votre JSON de workflow">
        Exportez ou créez un fichier JSON de workflow ComfyUI. Notez les IDs des nœuds pour le nœud d’entrée du prompt et le nœud de sortie que vous souhaitez qu’OpenClaw lise.
      </Step>
      <Step title="Configurer le fournisseur">
        Définissez `mode: "local"` et pointez vers votre fichier de workflow. Voici un exemple minimal pour l’image :

        ```json5
        {
          models: {
            providers: {
              comfy: {
                mode: "local",
                baseUrl: "http://127.0.0.1:8188",
                image: {
                  workflowPath: "./workflows/flux-api.json",
                  promptNodeId: "6",
                  outputNodeId: "9",
                },
              },
            },
          },
        }
        ```
      </Step>
      <Step title="Définir le modèle par défaut">
        Pointez OpenClaw vers le modèle `comfy/workflow` pour la capacité que vous avez configurée :

        ```json5
        {
          agents: {
            defaults: {
              imageGenerationModel: {
                primary: "comfy/workflow",
              },
            },
          },
        }
        ```
      </Step>
      <Step title="Vérifier">
        ```bash
        openclaw models list --provider comfy
        ```
      </Step>
    </Steps>

  </Tab>

  <Tab title="Comfy Cloud">
    **Idéal pour :** exécuter des workflows sur Comfy Cloud sans gérer de ressources GPU locales.

    <Steps>
      <Step title="Obtenir une clé d’API">
        Inscrivez-vous sur [comfy.org](https://comfy.org) et générez une clé d’API depuis le tableau de bord de votre compte.
      </Step>
      <Step title="Définir la clé d’API">
        Fournissez votre clé par l’une des méthodes suivantes :

        ```bash
        # Variable d’environnement (préférée)
        export COMFY_API_KEY="your-key"

        # Variable d’environnement alternative
        export COMFY_CLOUD_API_KEY="your-key"

        # Ou directement dans la configuration
        openclaw config set models.providers.comfy.apiKey "your-key"
        ```
      </Step>
      <Step title="Préparer votre JSON de workflow">
        Exportez ou créez un fichier JSON de workflow ComfyUI. Notez les IDs des nœuds pour le nœud d’entrée du prompt et le nœud de sortie.
      </Step>
      <Step title="Configurer le fournisseur">
        Définissez `mode: "cloud"` et pointez vers votre fichier de workflow :

        ```json5
        {
          models: {
            providers: {
              comfy: {
                mode: "cloud",
                image: {
                  workflowPath: "./workflows/flux-api.json",
                  promptNodeId: "6",
                  outputNodeId: "9",
                },
              },
            },
          },
        }
        ```

        <Tip>
        En mode cloud, `baseUrl` vaut par défaut `https://cloud.comfy.org`. Vous n’avez besoin de définir `baseUrl` que si vous utilisez un point de terminaison cloud personnalisé.
        </Tip>
      </Step>
      <Step title="Définir le modèle par défaut">
        ```json5
        {
          agents: {
            defaults: {
              imageGenerationModel: {
                primary: "comfy/workflow",
              },
            },
          },
        }
        ```
      </Step>
      <Step title="Vérifier">
        ```bash
        openclaw models list --provider comfy
        ```
      </Step>
    </Steps>

  </Tab>
</Tabs>

## Configuration

Comfy prend en charge des paramètres de connexion partagés de premier niveau ainsi que des sections de workflow par capacité (`image`, `video`, `music`) :

```json5
{
  models: {
    providers: {
      comfy: {
        mode: "local",
        baseUrl: "http://127.0.0.1:8188",
        image: {
          workflowPath: "./workflows/flux-api.json",
          promptNodeId: "6",
          outputNodeId: "9",
        },
        video: {
          workflowPath: "./workflows/video-api.json",
          promptNodeId: "12",
          outputNodeId: "21",
        },
        music: {
          workflowPath: "./workflows/music-api.json",
          promptNodeId: "3",
          outputNodeId: "18",
        },
      },
    },
  },
}
```

### Clés partagées

| Key                   | Type                   | Description                                                                                 |
| --------------------- | ---------------------- | ------------------------------------------------------------------------------------------- |
| `mode`                | `"local"` or `"cloud"` | Mode de connexion.                                                                          |
| `baseUrl`             | string                 | Vaut par défaut `http://127.0.0.1:8188` en local ou `https://cloud.comfy.org` dans le cloud. |
| `apiKey`              | string                 | Clé inline facultative, alternative aux variables d’environnement `COMFY_API_KEY` / `COMFY_CLOUD_API_KEY`. |
| `allowPrivateNetwork` | boolean                | Autorise un `baseUrl` privé/LAN en mode cloud.                                              |

### Clés par capacité

Ces clés s’appliquent dans les sections `image`, `video` ou `music` :

| Key                          | Required | Default  | Description                                                                    |
| ---------------------------- | -------- | -------- | ------------------------------------------------------------------------------ |
| `workflow` or `workflowPath` | Yes      | --       | Chemin vers le fichier JSON du workflow ComfyUI.                               |
| `promptNodeId`               | Yes      | --       | ID du nœud qui reçoit le prompt textuel.                                       |
| `promptInputName`            | No       | `"text"` | Nom de l’entrée sur le nœud du prompt.                                         |
| `outputNodeId`               | No       | --       | ID du nœud depuis lequel lire la sortie. S’il est omis, tous les nœuds de sortie correspondants sont utilisés. |
| `pollIntervalMs`             | No       | --       | Intervalle de polling en millisecondes pour l’achèvement de la tâche.          |
| `timeoutMs`                  | No       | --       | Délai d’expiration en millisecondes pour l’exécution du workflow.              |

Les sections `image` et `video` prennent également en charge :

| Key                   | Required                             | Default   | Description                                               |
| --------------------- | ------------------------------------ | --------- | --------------------------------------------------------- |
| `inputImageNodeId`    | Yes (when passing a reference image) | --        | ID du nœud qui reçoit l’image de référence téléversée.    |
| `inputImageInputName` | No                                   | `"image"` | Nom de l’entrée sur le nœud d’image.                      |

## Détails du workflow

<AccordionGroup>
  <Accordion title="Workflows d’image">
    Définissez le modèle d’image par défaut sur `comfy/workflow` :

    ```json5
    {
      agents: {
        defaults: {
          imageGenerationModel: {
            primary: "comfy/workflow",
          },
        },
      },
    }
    ```

    **Exemple d’édition avec image de référence :**

    Pour activer l’édition d’image avec une image de référence téléversée, ajoutez `inputImageNodeId` à votre configuration d’image :

    ```json5
    {
      models: {
        providers: {
          comfy: {
            image: {
              workflowPath: "./workflows/edit-api.json",
              promptNodeId: "6",
              inputImageNodeId: "7",
              inputImageInputName: "image",
              outputNodeId: "9",
            },
          },
        },
      },
    }
    ```

  </Accordion>

  <Accordion title="Workflows vidéo">
    Définissez le modèle vidéo par défaut sur `comfy/workflow` :

    ```json5
    {
      agents: {
        defaults: {
          videoGenerationModel: {
            primary: "comfy/workflow",
          },
        },
      },
    }
    ```

    Les workflows vidéo Comfy prennent en charge le texte-vers-vidéo et l’image-vers-vidéo via le graphe configuré.

    <Note>
    OpenClaw ne transmet pas de vidéos d’entrée dans les workflows Comfy. Seuls les prompts textuels et les images de référence uniques sont pris en charge en entrée.
    </Note>

  </Accordion>

  <Accordion title="Workflows musicaux">
    Le Plugin intégré enregistre un fournisseur de génération musicale pour les sorties audio ou musicales définies par workflow, exposé via l’outil partagé `music_generate` :

    ```text
    /tool music_generate prompt="Warm ambient synth loop with soft tape texture"
    ```

    Utilisez la section de configuration `music` pour pointer vers votre JSON de workflow audio et le nœud de sortie.

  </Accordion>

  <Accordion title="Compatibilité descendante">
    La configuration d’image existante de premier niveau (sans section `image` imbriquée) fonctionne toujours :

    ```json5
    {
      models: {
        providers: {
          comfy: {
            workflowPath: "./workflows/flux-api.json",
            promptNodeId: "6",
            outputNodeId: "9",
          },
        },
      },
    }
    ```

    OpenClaw traite cette forme héritée comme la configuration du workflow d’image. Vous n’avez pas besoin de migrer immédiatement, mais les sections imbriquées `image` / `video` / `music` sont recommandées pour les nouvelles configurations.

    <Tip>
    Si vous utilisez uniquement la génération d’images, la configuration plate héritée et la nouvelle section `image` imbriquée sont fonctionnellement équivalentes.
    </Tip>

  </Accordion>

  <Accordion title="Tests live">
    Une couverture live sur opt-in existe pour le Plugin intégré :

    ```bash
    OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
    ```

    Le test live ignore les cas individuels d’image, de vidéo ou de musique sauf si la section de workflow Comfy correspondante est configurée.

  </Accordion>
</AccordionGroup>

## Connexe

<CardGroup cols={2}>
  <Card title="Image Generation" href="/fr/tools/image-generation" icon="image">
    Configuration et utilisation de l’outil de génération d’images.
  </Card>
  <Card title="Video Generation" href="/fr/tools/video-generation" icon="video">
    Configuration et utilisation de l’outil de génération vidéo.
  </Card>
  <Card title="Music Generation" href="/fr/tools/music-generation" icon="music">
    Configuration de la génération de musique et d’audio.
  </Card>
  <Card title="Provider Directory" href="/fr/providers/index" icon="layers">
    Vue d’ensemble de tous les fournisseurs et références de modèles.
  </Card>
  <Card title="Configuration Reference" href="/fr/gateway/configuration-reference#agent-defaults" icon="gear">
    Référence complète de la configuration, y compris les valeurs par défaut des agents.
  </Card>
</CardGroup>
