<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ComfyUI on RockB</title><link>https://baeseokjae.github.io/tags/comfyui/</link><description>Recent content in ComfyUI on RockB</description><image><title>RockB</title><url>https://baeseokjae.github.io/images/og-default.png</url><link>https://baeseokjae.github.io/images/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 08 Jun 2026 10:09:01 +0000</lastBuildDate><atom:link href="https://baeseokjae.github.io/tags/comfyui/index.xml" rel="self" type="application/rss+xml"/><item><title>ComfyUI Workflow Guide: Build AI Image Generation Pipelines with Nodes (2026)</title><link>https://baeseokjae.github.io/posts/comfyui-workflow-ai-image-generation-guide-2026/</link><pubDate>Mon, 08 Jun 2026 10:09:01 +0000</pubDate><guid>https://baeseokjae.github.io/posts/comfyui-workflow-ai-image-generation-guide-2026/</guid><description>Complete ComfyUI workflow guide: install, master the 5 essential nodes, build FLUX pipelines, and integrate the API — from first run to production.</description><content:encoded><![CDATA[<p>ComfyUI is a node-based graphical interface for running AI image generation models — including Stable Diffusion, FLUX.2, and HiDream-I1 — where each processing step is a draggable node connected by wires. Unlike prompt-based tools, ComfyUI lets you inspect, swap, and rewire every part of the pipeline, making it the standard tool for serious AI image work in 2026.</p>
<hr>
<h2 id="what-is-comfyui-and-why-it-dominates-ai-image-generation-in-2026">What Is ComfyUI and Why It Dominates AI Image Generation in 2026</h2>
<p>ComfyUI is a modular, node-based AI image generation interface built around the concept of a directed acyclic graph (DAG): each operation — loading a model, encoding a prompt, sampling noise, decoding latents — is a discrete node, and you wire nodes together to form a complete generation pipeline. Released publicly in 2023, ComfyUI has become the de-facto standard for professional AI image work by 2026, displacing Automatic1111 for power users running FLUX.2, Stable Diffusion 3.5, and video generation models. The reason is simple: FLUX.1-dev, which produces the highest-quality text-to-image results available today, cannot run in Automatic1111 at all — it requires ComfyUI or its API. Beyond model support, ComfyUI uses 40% less VRAM than Automatic1111 for SDXL generation (4.5GB vs 7.5GB) and is 10–20% faster on identical hardware. With over 1,000 community-authored custom node packages in 2026, ComfyUI is less of a UI and more of a platform — ControlNet, face swapping, video generation, batch processing, and direct app integration are all first-class capabilities. The community on GitHub, Reddit, and Discord generates new workflows daily.</p>
<hr>
<h2 id="how-the-node-based-pipeline-works-core-concepts">How the Node-Based Pipeline Works (Core Concepts)</h2>
<p>A ComfyUI workflow is a directed graph of nodes, where data flows left-to-right through colored connection wires. Each node takes typed inputs (yellow for conditioning, purple for latent tensors, orange for model handles, green for images) and emits typed outputs you connect to downstream nodes. When you click <strong>Queue Prompt</strong>, ComfyUI performs a topological sort of the graph and executes nodes in dependency order — but critically, it only recomputes nodes downstream of what actually changed. Tweaking the sampler step count does not re-encode your prompt; tweaking the prompt does not reload the checkpoint. This lazy-evaluation model is why ComfyUI iterates faster than A1111&rsquo;s linear pipeline. Workflows are stored as JSON and, uniquely, embedded in every generated PNG&rsquo;s metadata — drag any ComfyUI output image back into the interface and it reconstructs the exact workflow that created it. This makes ComfyUI images self-documenting artifacts: they carry their full generation recipe. Teams at studios and agencies use this property to share reproducible pipelines, not just final images. Understanding that nodes are stateful handles (a model node does not re-load weights each run) is the key mental model shift from prompt-based tools.</p>
<hr>
<h2 id="the-5-essential-nodes-every-workflow-needs">The 5 Essential Nodes Every Workflow Needs</h2>
<p>Every functional ComfyUI text-to-image pipeline is built from exactly five node types — master these before installing a single custom node. <strong>Load Checkpoint</strong> loads a <code>.safetensors</code> model file from your <code>models/checkpoints/</code> directory and emits three handles: <code>MODEL</code> (the UNet), <code>CLIP</code> (the text encoder), and <code>VAE</code> (the decoder). <strong>CLIP Text Encode</strong> takes a CLIP handle and a text string, and outputs a <code>CONDITIONING</code> tensor; you need two instances — one for positive prompt, one for negative. <strong>Empty Latent Image</strong> creates a blank noise tensor at your chosen width, height, and batch size; this is where you set output resolution. <strong>KSampler</strong> is the core diffusion loop — it takes the model, positive conditioning, negative conditioning, and latent image, and runs the denoising process for <code>steps</code> iterations at <code>cfg</code> scale using the chosen <code>sampler_name</code> and <code>scheduler</code>. Finally, <strong>VAE Decode</strong> takes the KSampler&rsquo;s latent output and the VAE handle, converting the compressed latent representation into a full-resolution pixel image you can preview or save. Connect Load Checkpoint → CLIP Text Encode (×2), KSampler, and VAE Decode in that order, add a <strong>Save Image</strong> node, and you have a working pipeline. Every advanced workflow is this core extended with extra nodes.</p>
<table>
  <thead>
      <tr>
          <th>Node</th>
          <th>Output Type</th>
          <th>Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Load Checkpoint</td>
          <td>MODEL, CLIP, VAE</td>
          <td>Load model weights</td>
      </tr>
      <tr>
          <td>CLIP Text Encode</td>
          <td>CONDITIONING</td>
          <td>Encode text prompt</td>
      </tr>
      <tr>
          <td>Empty Latent Image</td>
          <td>LATENT</td>
          <td>Set resolution/batch</td>
      </tr>
      <tr>
          <td>KSampler</td>
          <td>LATENT</td>
          <td>Run diffusion loop</td>
      </tr>
      <tr>
          <td>VAE Decode</td>
          <td>IMAGE</td>
          <td>Convert latent → pixels</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="installing-comfyui-desktop-app-vs-manual-setup">Installing ComfyUI: Desktop App vs. Manual Setup</h2>
<p>ComfyUI ships in two installation modes: the official <strong>ComfyUI Desktop</strong> app (Windows and macOS, released 2025) and the classic <strong>manual Git setup</strong> from the GitHub repository. The Desktop app is the recommended path for 2026 beginners — it bundles Python, dependencies, and a model downloader into a single installer, and updates via a built-in mechanism. Download from the official ComfyUI website, run the installer, and you&rsquo;re generating images within 20 minutes. The manual setup (clone <code>github.com/comfyanonymous/ComfyUI</code>, install Python 3.10+, run <code>pip install -r requirements.txt</code>, then <code>python main.py</code>) gives you more control: you can specify a custom models directory, use system Python, point ComfyUI at an existing Automatic1111 model folder with <code>--ckpt-dir</code>, and run headless on a server. For cloud or Linux setups, the manual path is the only option. Either way, first-run setup follows the same pattern: drop checkpoint files into <code>models/checkpoints/</code>, optionally add LoRA into <code>models/loras/</code>, then launch and open <code>http://127.0.0.1:8188</code> in your browser. The ComfyUI-Manager custom node (installable from within the UI) adds a plugin manager that handles installing, updating, and removing custom node packages — install it immediately after first launch.</p>
<hr>
<h2 id="building-your-first-text-to-image-workflow-step-by-step">Building Your First Text-to-Image Workflow (Step-by-Step)</h2>
<p>Building a working text-to-image pipeline from scratch in ComfyUI takes about 15 minutes the first time and firmly cements the node-based mental model. Start with the default workflow that loads when you first open ComfyUI — it already contains the five essential nodes wired correctly, giving you a reference point. To understand it, double-click an empty area to open the node search, add a <strong>Preview Image</strong> node between the KSampler and VAE Decode, connect the KSampler&rsquo;s latent output to it — now you can see the raw latent at each step during generation, which makes debugging much easier. Next, right-click the KSampler and <strong>Bypass</strong> it, then re-enable — notice ComfyUI skips straight to the cached result. To build from scratch: (1) Add Load Checkpoint and select your model in the dropdown. (2) Add two CLIP Text Encode nodes; connect the CLIP output to both. (3) Add Empty Latent Image; set 1024×1024 for SDXL models. (4) Add KSampler; connect MODEL to model input, positive CLIP Encode to positive, negative to negative, and Empty Latent to latent_image. Set steps to 20, cfg to 7.0, sampler to <code>euler</code>, scheduler to <code>normal</code>. (5) Add VAE Decode; connect KSampler&rsquo;s latent to it, and VAE from checkpoint. (6) Add Save Image; connect VAE Decode&rsquo;s image output. Click <strong>Queue Prompt</strong>. The first run will take longer as VRAM allocates; subsequent runs at the same settings use the cached model and are significantly faster.</p>
<hr>
<h2 id="understanding-the-ksampler-cfg-steps-schedulers-and-denoise">Understanding the KSampler: CFG, Steps, Schedulers, and Denoise</h2>
<p>The KSampler is the most consequential node in any ComfyUI workflow — its parameters have more impact on output quality and style than almost anything else in the pipeline. Understanding its five key settings separates effective ComfyUI users from those who just leave defaults. <strong>Steps</strong> (default: 20) controls how many denoising iterations run; more steps generally produce more detailed images up to a point of diminishing returns around 30–40 for most models. <strong>CFG (Classifier-Free Guidance Scale)</strong> (default: 7.0) controls how closely the output follows your prompt — lower values (3–5) produce more natural, diverse outputs; higher values (10–15) enforce prompt adherence but can produce over-saturated, artificial-looking images. FLUX models specifically require CFG=1.0 (no negative guidance). <strong>Sampler Name</strong> selects the ODE solver: <code>euler</code> and <code>dpm_2</code> are fast and general-purpose; <code>dpm++_2m</code> with <code>karras</code> scheduler is the most popular for quality output; <code>ddim</code> is useful for inpainting workflows. <strong>Scheduler</strong> determines the noise schedule; <code>karras</code> smooths the denoising curve for better detail. <strong>Denoise</strong> (0.0–1.0) is critical for img2img workflows — 1.0 means full noise from scratch; 0.5 means half-strength, preserving more of the input image structure. For text-to-image, always use 1.0.</p>
<table>
  <thead>
      <tr>
          <th>Parameter</th>
          <th>Typical Range</th>
          <th>Key Effect</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Steps</td>
          <td>20–30</td>
          <td>Detail vs. speed</td>
      </tr>
      <tr>
          <td>CFG</td>
          <td>5–8 (SD), 1.0 (FLUX)</td>
          <td>Prompt adherence</td>
      </tr>
      <tr>
          <td>Sampler</td>
          <td>euler, dpm++_2m</td>
          <td>Output style</td>
      </tr>
      <tr>
          <td>Scheduler</td>
          <td>normal, karras</td>
          <td>Denoising curve</td>
      </tr>
      <tr>
          <td>Denoise</td>
          <td>1.0 (t2i), 0.4–0.7 (i2i)</td>
          <td>Structure preservation</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="flux-workflows-the-new-standard-for-quality-in-2026">FLUX Workflows: The New Standard for Quality in 2026</h2>
<p>FLUX.1-dev and FLUX.2 represent a fundamental architectural shift from Stable Diffusion — they use a diffusion transformer (DiT) architecture rather than a UNet, which produces dramatically better text rendering, spatial reasoning, and photorealism. In 2026, FLUX is the model architecture of choice for professional product photography, illustration, and marketing content generation, and it only runs in ComfyUI (not Automatic1111). A FLUX workflow differs from a standard SD workflow in several important ways. First, FLUX uses a <strong>dual text encoder</strong>: a CLIP-L encoder (the same type SD uses) and a T5-XXL encoder (borrowed from Google&rsquo;s text-to-text research). This is why FLUX follows long, complex prompts so accurately — T5 understands language structure rather than just token associations. Second, FLUX requires <strong>CFG set to 1.0</strong> — the architecture does not use negative prompts in the traditional sense, and any CFG above 1 degrades output. Third, FLUX models require 16–24GB VRAM in full fp16/bf16 precision; the quantized <code>flux1-dev-Q5_K_M.gguf</code> file runs on 12GB. In ComfyUI, use the <strong>UNETLoader</strong> and <strong>DualCLIPLoader</strong> nodes instead of Load Checkpoint for FLUX; connect both text encoders to a <strong>FluxGuidance</strong> node before the sampler. The workflow is slightly more complex but produces images that are visibly superior for text-heavy and photorealistic prompts.</p>
<hr>
<h2 id="extending-comfyui-with-custom-nodes-comfyui-manager-guide">Extending ComfyUI with Custom Nodes (ComfyUI-Manager Guide)</h2>
<p>ComfyUI-Manager is the essential first custom node to install — it adds a built-in package manager that lets you browse, install, update, and remove the 1,000+ community node packages without touching the command line. Install it by cloning its GitHub repo into <code>ComfyUI/custom_nodes/</code> or by using the Desktop app&rsquo;s manager button. Once installed, click <strong>Manager</strong> in the ComfyUI interface to open the node registry. The most important custom node packages for 2026 workflows are: <strong>ComfyUI-Impact-Pack</strong> (face detailing, segment-based upscaling, wildcard prompts), <strong>ComfyUI-ControlNet-Aux</strong> (preprocessors for Canny, depth, openpose, and other ControlNet modes), <strong>ComfyUI_IPAdapter_plus</strong> (style and identity transfer using reference images), <strong>ComfyUI-VideoHelperSuite</strong> (video frame extraction and recombination for video workflows), and <strong>was-node-suite-comfyui</strong> (150+ utility nodes covering text manipulation, image loading, conditioning blending, and more). When a workflow JSON file requires custom nodes you don&rsquo;t have installed, ComfyUI shows missing node warnings on load — Manager can automatically detect and install these dependencies. Avoid installing every available package; only install nodes you actively need, because each custom node adds Python dependencies that can conflict and slows ComfyUI startup. Check node update status weekly via Manager&rsquo;s <strong>Update All</strong> button to stay current with model support.</p>
<hr>
<h2 id="advanced-techniques-controlnet-ipadapter-lora-and-two-pass-upscaling">Advanced Techniques: ControlNet, IPAdapter, LoRA, and Two-Pass Upscaling</h2>
<p>Mastering these four techniques moves ComfyUI from a hobby tool to a production image engine capable of consistent character generation, controlled composition, and print-resolution output. <strong>ControlNet</strong> adds a conditioning signal derived from a reference image — use Canny edges to transfer a line drawing&rsquo;s structure, depth maps to preserve 3D composition, or OpenPose skeleton data to match body positioning exactly. In ComfyUI, add a <strong>Load ControlNet Model</strong> node and a <strong>Apply ControlNet</strong> node between your CLIP Text Encode and KSampler; feed it a preprocessed control image via an auxiliary preprocessor node. <strong>IPAdapter</strong> transfers visual style or identity from a reference image; connect it between the model loader and KSampler using the IPAdapter_plus custom node. Set weight around 0.7 for style blending — too high and the output just copies the reference. <strong>LoRA</strong> (Low-Rank Adaptation) models are small (~100MB) fine-tune patches that add consistent characters, art styles, or concepts without replacing the full checkpoint. In ComfyUI, add a <strong>Load LoRA</strong> node in the path between Load Checkpoint and KSampler; chain multiple LoRA nodes to stack effects, using lower weights (0.4–0.6) per LoRA to avoid conflict. <strong>Two-pass upscaling</strong> is the standard method for generating large images: generate at native resolution (1024×1024), upscale 2× with an ESRGAN upscale model node, then run a second KSampler pass at denoise=0.5 on the upscaled image — this adds fine detail the first pass missed at low resolution. This technique produces 2048×2048 images with dramatically more texture than simply generating at high resolution directly.</p>
<hr>
<h2 id="real-world-use-cases-product-photography-video-generation-batch-processing">Real-World Use Cases: Product Photography, Video Generation, Batch Processing</h2>
<p>ComfyUI handles three production workflows that define serious commercial AI image work in 2026. <strong>Product photography automation</strong> uses a ComfyUI workflow to take a product photo with a plain background, remove the background using a segmentation node (SAM or BG-Remover custom node), place the product on a generated scene matching a brief, and apply final color grading — all in a repeatable pipeline a team can share as a single JSON file. Studios run this workflow for hundreds of SKUs overnight on a cloud GPU. <strong>Video generation</strong> with models like AnimateDiff, CogVideoX, and Wan2.1 runs natively in ComfyUI via the VideoHelperSuite and dedicated video custom nodes. A typical video workflow extracts frames from a source clip, applies img2img ComfyUI processing to each frame with a temporal consistency node holding style between frames, and reassembles the video. <strong>Batch processing</strong> uses ComfyUI&rsquo;s built-in batch dimension in the Empty Latent Image node (set batch size to 4–8) or the List-based iteration from was-node-suite. For e-commerce catalogs, a batch workflow reads a CSV of product names and descriptions, generates images for each row, and saves outputs to named files — all headlessly via the ComfyUI API without a human in the loop.</p>
<hr>
<h2 id="comfyui-api-integrating-ai-image-generation-into-your-apps">ComfyUI API: Integrating AI Image Generation into Your Apps</h2>
<p>ComfyUI exposes a REST and WebSocket API at <code>http://127.0.0.1:8188</code> that lets you submit workflows, poll queue status, and receive images programmatically — making it the integration layer for any app that needs on-demand AI image generation. The core endpoint is <code>POST /prompt</code>, which accepts a JSON body containing your workflow graph (identical format to the saved workflow JSON) and a <code>client_id</code> string. The API queues the job and returns a <code>prompt_id</code>. You then either poll <code>GET /history/{prompt_id}</code> or connect to the WebSocket at <code>ws://127.0.0.1:8188/ws?clientId={client_id}</code> to receive real-time execution updates. When generation completes, the history endpoint returns output file paths you can fetch via <code>GET /view?filename={name}</code>. The workflow JSON you send to the API is exactly what you build visually in the UI — export any workflow with <strong>Save (API Format)</strong> to get the exact JSON structure the API expects, with node IDs instead of display names. This parity between visual and API format is ComfyUI&rsquo;s most underappreciated feature: designers build workflows visually, developers integrate them via API using the same file. Python and JavaScript client libraries (<code>comfyui-sdk</code> on npm, <code>comfyui-client</code> on PyPI) wrap this API with typed interfaces and retry logic, suitable for production use in web apps and automation scripts.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">import</span> websocket<span style="color:#f92672">,</span> uuid<span style="color:#f92672">,</span> json<span style="color:#f92672">,</span> urllib.request
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>server <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;127.0.0.1:8188&#34;</span>
</span></span><span style="display:flex;"><span>client_id <span style="color:#f92672">=</span> str(uuid<span style="color:#f92672">.</span>uuid4())
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">queue_prompt</span>(workflow):
</span></span><span style="display:flex;"><span>    data <span style="color:#f92672">=</span> json<span style="color:#f92672">.</span>dumps({<span style="color:#e6db74">&#34;prompt&#34;</span>: workflow, <span style="color:#e6db74">&#34;client_id&#34;</span>: client_id})<span style="color:#f92672">.</span>encode()
</span></span><span style="display:flex;"><span>    req <span style="color:#f92672">=</span> urllib<span style="color:#f92672">.</span>request<span style="color:#f92672">.</span>Request(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;http://</span><span style="color:#e6db74">{</span>server<span style="color:#e6db74">}</span><span style="color:#e6db74">/prompt&#34;</span>, data<span style="color:#f92672">=</span>data)
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> json<span style="color:#f92672">.</span>loads(urllib<span style="color:#f92672">.</span>request<span style="color:#f92672">.</span>urlopen(req)<span style="color:#f92672">.</span>read())
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Load your workflow JSON, then:</span>
</span></span><span style="display:flex;"><span>result <span style="color:#f92672">=</span> queue_prompt(workflow)
</span></span><span style="display:flex;"><span>prompt_id <span style="color:#f92672">=</span> result[<span style="color:#e6db74">&#34;prompt_id&#34;</span>]
</span></span></code></pre></div><hr>
<h2 id="comfyui-vs-automatic1111-vs-forge-which-should-you-use">ComfyUI vs Automatic1111 vs Forge: Which Should You Use?</h2>
<p>ComfyUI, Automatic1111 (A1111), and Stable Diffusion WebUI Forge occupy different positions in 2026&rsquo;s AI image tooling landscape, and choosing correctly saves significant time. <strong>Automatic1111</strong> remains the easiest entry point for beginners who want a traditional UI with tabs and sliders — install a checkpoint, write a prompt, click generate. It has the largest library of tutorials, a huge extension ecosystem, and works well for SD 1.5 and SDXL. Its fatal limitations: it cannot run FLUX models, uses 40% more VRAM than ComfyUI, and its linear pipeline makes complex workflows unwieldy. <strong>Stable Diffusion WebUI Forge</strong> is a drop-in A1111 replacement that improves VRAM efficiency and adds FLUX support via a conversion layer — it&rsquo;s a sensible upgrade path for A1111 users not ready for ComfyUI&rsquo;s learning curve. <strong>ComfyUI</strong> is the correct choice for: anyone working with FLUX.2 or newer architectures, teams needing reproducible shareable workflows, developers integrating via API, and power users building multi-stage pipelines (upscaling, face repair, video). The tradeoff is a real learning curve — expect 10–20 hours before feeling fully comfortable, with the basics taking 2–4 hours. For 2026, the advice is clear: use A1111 for quick SD 1.5 experiments, Forge as a transitional tool, and invest in ComfyUI for any serious or commercial work.</p>
<table>
  <thead>
      <tr>
          <th>Tool</th>
          <th>FLUX Support</th>
          <th>VRAM Efficiency</th>
          <th>Learning Curve</th>
          <th>API</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>ComfyUI</td>
          <td>Yes (native)</td>
          <td>Best</td>
          <td>High</td>
          <td>Yes (REST/WS)</td>
      </tr>
      <tr>
          <td>Forge</td>
          <td>Partial</td>
          <td>Good</td>
          <td>Medium</td>
          <td>No</td>
      </tr>
      <tr>
          <td>Automatic1111</td>
          <td>No</td>
          <td>Poor</td>
          <td>Low</td>
          <td>Limited</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="gpu-requirements-and-vram-optimization-tips">GPU Requirements and VRAM Optimization Tips</h2>
<p>Choosing the right GPU for ComfyUI in 2026 is primarily a VRAM decision — system RAM and CPU matter far less than VRAM for generation speed and model support. <strong>8GB VRAM</strong> (RTX 3070, 4060) runs SDXL with &ndash;lowvram flag and generates at 1024×1024 in about 30 seconds; it&rsquo;s too constrained for FLUX even quantized. <strong>12GB VRAM</strong> (RTX 3080, 4070) is the practical minimum for a good all-round ComfyUI experience in 2026 — SDXL runs comfortably, and quantized FLUX (Q5_K_M GGUF, ~8GB) fits with headroom for the dual text encoder. <strong>16GB+ VRAM</strong> (RTX 4080, 4090) runs full-precision FLUX.1-dev without quantization and handles most video generation workflows. <strong>24GB</strong> (RTX 3090, 4090) is the sweet spot for production work: full FLUX.2, long video sequences, and batch processing without memory pressure. For cloud use, A10G (24GB) and H100 instances provide the most cost-efficient path for FLUX workflows. VRAM optimization techniques in ComfyUI: use <code>--lowvram</code> or <code>--medvram</code> launch flags to offload model components to system RAM between steps; enable <strong>FP8 quantization</strong> in the Load Checkpoint node for 30% VRAM reduction with minimal quality loss; use GGUF quantized model files for FLUX; and avoid loading multiple full-size checkpoints in the same workflow — Load Checkpoint nodes cache, so only one loads at runtime.</p>
<hr>
<h2 id="sharing-and-reusing-workflows-openart-comfyworkflows-and-github">Sharing and Reusing Workflows: OpenArt, ComfyWorkflows, and GitHub</h2>
<p>The ComfyUI ecosystem has developed a rich workflow-sharing culture built on the self-documenting nature of ComfyUI PNGs and JSON files. Three platforms dominate: <strong>OpenArt.ai</strong> hosts a searchable gallery of ComfyUI workflows where you can preview generated images and download the workflow JSON directly — it&rsquo;s the best starting point for finding production-tested FLUX, ControlNet, and video workflows. <strong>ComfyWorkflows.com</strong> is a dedicated ComfyUI workflow registry with version tracking and dependency manifests, letting you see exactly which custom nodes a workflow requires before downloading. <strong>GitHub</strong> hosts the most complex and maintained workflows: search for <code>comfyui-workflow</code> repositories to find studio pipelines, product photography setups, and API integration examples. When sharing your own workflows, best practice is to drag your finished workflow into a new generation, bake it into the output PNG via Save Image (ComfyUI embeds metadata by default), and share that PNG — recipients can drag it directly into ComfyUI to reconstruct the full workflow. For team use, store workflow JSON files in version control: diff workflows between commits to track parameter changes and use pull requests to review workflow modifications before production deployment. Always sanitize workflows before sharing: remove absolute paths from file loader nodes and replace custom checkpoint names with generic model-type references so recipients know what model category to substitute.</p>
<hr>
<h2 id="faq">FAQ</h2>
<p><strong>What is the difference between ComfyUI and Automatic1111?</strong>
ComfyUI is a node-based interface where you build a visual pipeline connecting individual processing steps; Automatic1111 is a traditional tab-based UI with fixed forms. ComfyUI is more flexible and efficient (40% less VRAM, 10–20% faster), supports FLUX models that A1111 cannot run, and exposes a full REST API for programmatic use. A1111 has a gentler learning curve and a larger beginner tutorial library.</p>
<p><strong>How much VRAM do I need for ComfyUI with FLUX.2?</strong>
You need at least 12GB VRAM to run quantized FLUX.2 (using GGUF Q5_K_M format). Full-precision FLUX.1-dev requires 16–24GB. For SDXL-based workflows without FLUX, 8GB VRAM works with the <code>--lowvram</code> flag but feels limiting for complex multi-step pipelines.</p>
<p><strong>Can ComfyUI run headless as a server for API integration?</strong>
Yes. Launch ComfyUI with <code>python main.py --listen 0.0.0.0</code> and it exposes its REST and WebSocket API on port 8188 to all interfaces. You submit workflow JSON to <code>POST /prompt</code>, receive a <code>prompt_id</code>, and either poll <code>GET /history/{id}</code> or connect via WebSocket to receive real-time progress updates and output file paths.</p>
<p><strong>What are the most important custom nodes to install first?</strong>
Install <strong>ComfyUI-Manager</strong> first — it&rsquo;s the package manager that makes all other installs easy. Then add <strong>ComfyUI-Impact-Pack</strong> for face detailing and segment-based upscaling, <strong>ComfyUI-ControlNet-Aux</strong> for ControlNet preprocessors, and <strong>ComfyUI_IPAdapter_plus</strong> for style transfer from reference images. If you&rsquo;re doing video work, add <strong>ComfyUI-VideoHelperSuite</strong>.</p>
<p><strong>Why does my ComfyUI workflow produce different results each run even with the same settings?</strong>
Because the KSampler uses a random seed by default. Set the <strong>seed</strong> input on the KSampler node to a fixed integer (not -1) to get deterministic results — identical seed, model, prompt, and sampler settings will always produce the same image. Use the <strong>Fixed</strong> seed mode button in the KSampler widget for reproducible generation.</p>
]]></content:encoded></item></channel></rss>