openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
439 lines (438 loc) • 9.59 kB
JSON
{
"id": "comfy",
"activation": {
"onStartup": false
},
"enabledByDefault": true,
"providers": [
"comfy"
],
"setup": {
"providers": [
{
"id": "comfy",
"envVars": [
"COMFY_API_KEY",
"COMFY_CLOUD_API_KEY"
]
}
]
},
"providerAuthChoices": [
{
"provider": "comfy",
"method": "cloud-api-key",
"choiceId": "comfy-cloud-api-key",
"choiceLabel": "Comfy Cloud API key",
"choiceHint": "Required for cloud workflows",
"groupId": "comfy",
"groupLabel": "ComfyUI",
"groupHint": "Local or cloud workflows",
"optionKey": "comfyApiKey",
"cliFlag": "--comfy-api-key",
"cliOption": "--comfy-api-key <key>",
"cliDescription": "Comfy Cloud API key",
"onboardingScopes": [
"image-generation"
]
}
],
"contracts": {
"imageGenerationProviders": [
"comfy"
],
"musicGenerationProviders": [
"comfy"
],
"videoGenerationProviders": [
"comfy"
]
},
"imageGenerationProviderMetadata": {
"comfy": {
"configSignals": [
{
"rootPath": "plugins.entries.comfy.config",
"overlayPath": "image",
"mode": {
"path": "mode",
"default": "local",
"allowed": [
"local"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId"
]
},
{
"rootPath": "models.providers.comfy",
"overlayPath": "image",
"mode": {
"path": "mode",
"default": "local",
"allowed": [
"local"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId"
]
},
{
"rootPath": "plugins.entries.comfy.config",
"overlayPath": "image",
"mode": {
"path": "mode",
"allowed": [
"cloud"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId",
"apiKey"
]
},
{
"rootPath": "models.providers.comfy",
"overlayPath": "image",
"mode": {
"path": "mode",
"allowed": [
"cloud"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId",
"apiKey"
]
}
]
}
},
"musicGenerationProviderMetadata": {
"comfy": {
"configSignals": [
{
"rootPath": "plugins.entries.comfy.config",
"overlayPath": "music",
"mode": {
"path": "mode",
"default": "local",
"allowed": [
"local"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId"
]
},
{
"rootPath": "models.providers.comfy",
"overlayPath": "music",
"mode": {
"path": "mode",
"default": "local",
"allowed": [
"local"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId"
]
},
{
"rootPath": "plugins.entries.comfy.config",
"overlayPath": "music",
"mode": {
"path": "mode",
"allowed": [
"cloud"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId",
"apiKey"
]
},
{
"rootPath": "models.providers.comfy",
"overlayPath": "music",
"mode": {
"path": "mode",
"allowed": [
"cloud"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId",
"apiKey"
]
}
]
}
},
"videoGenerationProviderMetadata": {
"comfy": {
"configSignals": [
{
"rootPath": "plugins.entries.comfy.config",
"overlayPath": "video",
"mode": {
"path": "mode",
"default": "local",
"allowed": [
"local"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId"
]
},
{
"rootPath": "models.providers.comfy",
"overlayPath": "video",
"mode": {
"path": "mode",
"default": "local",
"allowed": [
"local"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId"
]
},
{
"rootPath": "plugins.entries.comfy.config",
"overlayPath": "video",
"mode": {
"path": "mode",
"allowed": [
"cloud"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId",
"apiKey"
]
},
{
"rootPath": "models.providers.comfy",
"overlayPath": "video",
"mode": {
"path": "mode",
"allowed": [
"cloud"
]
},
"requiredAny": [
"workflow",
"workflowPath"
],
"required": [
"promptNodeId",
"apiKey"
]
}
]
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"mode": {
"type": "string",
"enum": [
"local",
"cloud"
]
},
"baseUrl": {
"type": "string"
},
"apiKey": {
"type": [
"string",
"object"
]
},
"allowPrivateNetwork": {
"type": "boolean"
},
"workflowPath": {
"type": "string"
},
"workflow": {
"type": "object"
},
"promptNodeId": {
"type": "string"
},
"promptInputName": {
"type": "string"
},
"inputImageNodeId": {
"type": "string"
},
"inputImageInputName": {
"type": "string"
},
"outputNodeId": {
"type": "string"
},
"pollIntervalMs": {
"type": "integer",
"minimum": 100
},
"timeoutMs": {
"type": "integer",
"minimum": 1000
},
"image": {
"type": "object",
"additionalProperties": false,
"properties": {
"workflowPath": {
"type": "string"
},
"workflow": {
"type": "object"
},
"promptNodeId": {
"type": "string"
},
"promptInputName": {
"type": "string"
},
"inputImageNodeId": {
"type": "string"
},
"inputImageInputName": {
"type": "string"
},
"outputNodeId": {
"type": "string"
},
"pollIntervalMs": {
"type": "integer",
"minimum": 100
},
"timeoutMs": {
"type": "integer",
"minimum": 1000
}
}
},
"video": {
"type": "object",
"additionalProperties": false,
"properties": {
"workflowPath": {
"type": "string"
},
"workflow": {
"type": "object"
},
"promptNodeId": {
"type": "string"
},
"promptInputName": {
"type": "string"
},
"inputImageNodeId": {
"type": "string"
},
"inputImageInputName": {
"type": "string"
},
"outputNodeId": {
"type": "string"
},
"pollIntervalMs": {
"type": "integer",
"minimum": 100
},
"timeoutMs": {
"type": "integer",
"minimum": 1000
}
}
},
"music": {
"type": "object",
"additionalProperties": false,
"properties": {
"workflowPath": {
"type": "string"
},
"workflow": {
"type": "object"
},
"promptNodeId": {
"type": "string"
},
"promptInputName": {
"type": "string"
},
"outputNodeId": {
"type": "string"
},
"pollIntervalMs": {
"type": "integer",
"minimum": 100
},
"timeoutMs": {
"type": "integer",
"minimum": 1000
}
}
}
}
}
}