openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
64 lines (63 loc) • 1.67 kB
JavaScript
import { i as runComfyWorkflow, r as isComfyCapabilityConfigured, t as DEFAULT_COMFY_MODEL } from "./workflow-runtime-Bg2gqOI5.js";
//#region extensions/comfy/image-generation-provider.ts
function buildComfyImageGenerationProvider() {
return {
id: "comfy",
label: "ComfyUI",
defaultModel: DEFAULT_COMFY_MODEL,
models: [DEFAULT_COMFY_MODEL],
isConfigured: ({ cfg, agentDir }) => isComfyCapabilityConfigured({
cfg,
agentDir,
capability: "image"
}),
capabilities: {
generate: {
maxCount: 1,
supportsSize: false,
supportsAspectRatio: false,
supportsResolution: false
},
edit: {
enabled: true,
maxCount: 1,
maxInputImages: 1,
supportsSize: false,
supportsAspectRatio: false,
supportsResolution: false
}
},
async generateImage(req) {
if ((req.inputImages?.length ?? 0) > 1) throw new Error("Comfy image generation currently supports at most one reference image");
const result = await runComfyWorkflow({
cfg: req.cfg,
agentDir: req.agentDir,
authStore: req.authStore,
prompt: req.prompt,
model: req.model,
timeoutMs: req.timeoutMs,
capability: "image",
outputKinds: ["images"],
inputImage: req.inputImages?.[0]
});
return {
images: result.assets.map((asset) => ({
buffer: asset.buffer,
mimeType: asset.mimeType,
fileName: asset.fileName,
metadata: {
nodeId: asset.nodeId,
promptId: result.promptId
}
})),
model: result.model,
metadata: {
promptId: result.promptId,
outputNodeIds: result.outputNodeIds
}
};
}
};
}
//#endregion
export { buildComfyImageGenerationProvider as t };