Ship MiniMax v2 identity refs and Qwen sidecar edits.

Keep v1 as the default video graph, relay image edits to the Qwen Lightning box, and keep /api/health up if one Comfy host is unset.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-26 14:29:15 -05:00
co-authored by Cursor
parent 551c29a62a
commit c55a48a57e
22 changed files with 2061 additions and 75 deletions
+52
View File
@@ -0,0 +1,52 @@
import template from '../assets/workflow_qwen_edit.json'
export const DEFAULT_EDIT_NEGATIVE = 'blurry, low quality, deformed, bad anatomy, watermark, text, extra fingers'
type WorkflowNode = { class_type: string; inputs: Record<string, unknown>; _meta?: { title?: string } }
type WorkflowGraph = Record<string, WorkflowNode>
export interface EditParams {
prompt: string
negative?: string
imageName: string
steps: number
seed: number
cfg: number
denoise: number
samplerName?: string
scheduler?: string
filenamePrefix?: string
}
export function buildEditWorkflow(params: EditParams) {
const graph = structuredClone(template) as WorkflowGraph
if (graph['4']) graph['4'].inputs.image = params.imageName
if (graph['5']) graph['5'].inputs.text = params.prompt
if (graph['6']) graph['6'].inputs.text = (params.negative || DEFAULT_EDIT_NEGATIVE).trim() || DEFAULT_EDIT_NEGATIVE
if (graph['8']) {
graph['8'].inputs.seed = params.seed
graph['8'].inputs.steps = params.steps
graph['8'].inputs.cfg = params.cfg
graph['8'].inputs.denoise = params.denoise
graph['8'].inputs.sampler_name = params.samplerName || 'euler'
graph['8'].inputs.scheduler = params.scheduler || 'simple'
}
if (graph['10'] && params.filenamePrefix) {
graph['10'].inputs.filename_prefix = params.filenamePrefix
}
return graph
}
export const EDIT_NODE_LABELS: Record<string, string> = {
'1': 'Loading Qwen Edit UNET',
'11': 'Applying Lightning LoRA',
'2': 'Loading Qwen CLIP',
'3': 'Loading Qwen VAE',
'4': 'Loading input still',
'5': 'Encoding prompt',
'6': 'Encoding negative',
'7': 'Encoding still',
'8': 'Sampling edit',
'9': 'Decoding still',
'10': 'Saving still'
}