comfyui-workflow-builder

Generate, build, create, or design ComfyUI workflow JSON from natural language descriptions. Produces valid node graphs with correct class_types, connections, output indices, and model-appropriate settings. Handles txt2img, img2img, inpainting, ControlNet, LoRA stacking, upscaling, and face detailin

By mckruz · 1,805 installs

npx skills add mckruz/comfyui-expert --skill comfyui-workflow-builder

Source repository · Upstream listing

ComfyUI Workflow Builder Translates natural language requests into executable ComfyUI workflow JSON. Always validates against inventory before generating. Workflow Generation Process Step 1: Understand the Request Parse the user's intent into: Output type : Image, video, or audio Source material : Text only, reference image(s), existing video Identity method : None, zero shot (InstantID/PuLID), LoRA, Kontext Quality level : Draft (fast iteration) vs production (maximum quality) Special requirements : ControlNet, inpainting, upscaling, lip sync Step 2: Check Inventory Read state/inventory.json to determine: Available checkpoints → select best match for task Available identity models → determine which methods are possible Available ControlNet models → enable pose/depth control if available Custom nodes installed → verify all required nodes exist VRAM available → optimize settings accordingly Step 3: Select Pipeline Pattern Based on request + inventory, choose from: Pattern When Key Nodes Text to Image Simple generation Checkpoint → CLIP → KSampler → VAE Identity Preserved Image Character consistency + InstantID/PuLID/IP Adapter LoRA Character Trained character + LoRA Loader Image to Video (Wan) High quality video Diffusion Model → Wan I2V → Video Combine Image to Video (AnimateDiff) Fast video, motion control + AnimateDiff Loader + Motion LoRAs Talking Head Character speaks Image → Video → Voice → Lip Sync Upscale Enhance resolution Image → UltimateSDUpscale → Save Inpainting Edit regions Image + Mask → Inpaint Model → KSampler Step 4: Generate Workflow JSON ComfyUI workflow format: Rules: Node IDs are strings (typically "1", "2", "3"...) Connected inputs use array format: ["source node id", output index] Output index is 0 based integer Filenames must match exactly what's in inventory Seed values: use random large integer or fixed for reproducibility Step 5: Validate Before presenting to user: 1. Every class type exists in inventory's node list 2. Every model filename exists in inventory's model list 3. All required connections are present (no dangling inputs) 4. VRAM estimate doesn't exceed available VRAM 5. Resolution is compatible with chosen model (512 for SD1.5, 1024 for SDXL/FLUX) Step 6: Output If online mode : Queue via comfyui api skill If offline mode : Save JSON to projects/{project}/workflows/ with descriptive name Workflow Templates Basic Text to Image (FLUX) With Identity Preservation (InstantID + IP Adapter) Extends basic template by adding: Load reference image node InstantID Model Loader + Apply InstantID IPAdapter Unified Loader + Apply IPAdapter FaceDetailer post processing See references/workflows.md for complete node settings. Video Generation (Wan I2V) Uses different loader chain: Load Diffusion Model (not LoadCheckpoint) Wan I2V Conditioning EmptySD3LatentImage (with frame count) Video Combine (VHS) See references/workflows.md Workflow 4 for complete settings. VRAM Estimation Component Approximate VRAM FLUX FP16 16GB FLUX FP8 8GB SDXL 6GB SD1.5 4GB InstantID +4GB IP Adapter +2GB ControlNet (each) +1.5GB Wan 14B 20GB Wan 1.3B 5GB AnimateDiff +3GB FaceDetailer +2GB Common Mistakes to Avoid 1. Wrong output index : CheckpointLoader outputs [model, clip, vae] at indices [0, 1, 2] 2. CFG too high for InstantID : Use 4 5, not default 7 8 3. Wrong resolution for model : FLUX/SDXL=1024, SD1.5=512 4. Missing VAE : FLUX needs explicit VAE ( ae.safetensors ) 5. Wrong model in wrong loader : Diffusion models need LoadDiffusionModel , not LoadCheckpoint Reference Files references/workflows.md Detailed node by node templates references/models.md Model files and paths references/prompt templates.md Model specific prompts state/inventory.json Current inventory cache