1 pointby jaskirat052 hours ago1 comment
  • jaskirat052 hours ago
    Hey HN, I built this to scratch my own itch. I have an RTX 3070 so just 8gb of VRAM

      I use ComfyUI for image/video generation, but running multi-step pipelines was painful:
      - No way to chain small step workflows (image → edit → video) without manual intervention
      - If step 3 of 5 failed, start over
      - No approval gates to review outputs mid-pipeline
      - Single GPU bottleneck
    
      ComfyAutomate fixes this with:
    
      **Chain definitions in YAML** - Define multi-step pipelines with dependencies. Independent steps run in parallel automatically.
    
      **Approval gates** - Mark any step as `requires_approval: true`. Pipeline pauses, you review the output, and either approve or reject with new parameters. Rejection regenerates just that step and its descendants, not the whole chain.
    
      **Distributed execution** - Add multiple ComfyUI servers, work gets routed to the one with the shortest queue.
    
      **Durable execution** - Built on Temporal, so workflows survive crashes. If the worker dies mid-generation, it picks up where it left off.
    
      Technical choices:
      - Temporal for workflow orchestration (overkill for hobby use, but rock solid for production)
      - NetworkX for DAG dependency resolution
      - Jinja2 templates for passing outputs between steps (`{{ step1.output.image }}`)
      - SSE for real-time progress updates
    
      The approval + regeneration flow was the trickiest part - when you reject a step, it creates a subgraph of that step + all descendants and re-executes just that portion while preserving the rest of the context.
    
      MIT licensed. Would love feedback, especially on the chain YAML syntax and whether the Temporal dependency is too heavy for most users.