Files
openclaw/extensions/comfy/openclaw.plugin.json

269 lines
7.5 KiB
JSON

{
"id": "comfy",
"activation": {
"onStartup": false
},
"enabledByDefault": true,
"providers": ["comfy"],
"providerAuthEnvVars": {
"comfy": ["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 }
}
}
}
}
}