import template from '../assets/workflow_vision_prompt.json' type WorkflowNode = { class_type: string; inputs: Record; _meta?: { title?: string } } type WorkflowGraph = Record const IMAGE_NODE = '1' const TEXT_NODE = '3' export function buildVisionPromptWorkflow(params: { imageName: string draftPrompt: string systemPrompt: string seed?: number }) { const graph = structuredClone(template) as WorkflowGraph if (graph[IMAGE_NODE]) graph[IMAGE_NODE].inputs.image = params.imageName if (graph[TEXT_NODE]) { graph[TEXT_NODE].inputs.system_prompt = params.systemPrompt graph[TEXT_NODE].inputs.prompt = params.draftPrompt graph[TEXT_NODE].inputs.seed = Number.isFinite(params.seed) ? Number(params.seed) : Math.floor(Math.random() * 2_147_483_647) graph[TEXT_NODE].inputs.top_k = 40 graph[TEXT_NODE].inputs.top_p = 0.95 graph[TEXT_NODE].inputs.min_p = 0.05 graph[TEXT_NODE].inputs.repeat_penalty = 1.1 } return graph }