Generative Media Pipeline
An image-generation pipeline (ComfyUI and FLUX.1-schnell on one consumer GPU) tested like production software: same input, same image; a queue that finishes; and a crash that loses nothing.
Generative image tools are easy to demo and hard to run as a service. A workflow that produces a good image on a designer’s machine says nothing about whether the same request will produce the same image next month, whether 200 jobs will finish overnight, or what happens when the GPU process dies halfway through a batch. This Lab measures exactly those things.
The setup
- ComfyUI running headless (no browser interface) and driven only through its HTTP API, at a pinned commit.
- FLUX.1-schnell by Black Forest Labs (Apache-2.0, commercial use allowed), in the 8-bit single-file version.
- The workflow is a versioned JSON file in the repository. Every image on this page was produced from it by filling in a prompt, seed, size and step count. Nothing was made by hand in the interface.
- One RTX 4070 (12 GB) and 32 GB of system memory. The model is 17 GB, larger than the card. ComfyUI keeps part of it in system memory and moves it in as needed, and uses almost all of the card (11.4 GB at peak).
Speed
| 1 step | 2 steps | 4 steps | |
|---|---|---|---|
| 512 × 512 | 0.6 s | 1.1 s | 2.0 s |
| 768 × 768 | 1.2 s | 2.0 s | 3.6 s |
| 1024 × 1024 | 2.0 s | 3.4 s | 6.2 s |
FLUX.1-schnell is designed to give usable images in 1–4 steps. At 4 steps, a 1024 × 1024 image takes about 6 seconds. Times were extremely stable (repeated runs within 2% of each other), so these numbers can be used for capacity planning: one card can produce roughly 550 images an hour at that size (generation time alone, one job at a time).
Production checks
| Result | |
|---|---|
| Same workflow and seed, 5 runs | 1 unique image |
| Same job after a clean restart | identical pixels |
| Different seed (control) | different image |
| 20 jobs queued at once | 20/20 succeeded, 16.4 images per minute |
| Server killed mid-queue (SIGKILL) | 4 of 5 jobs lost and resubmitted; 5/5 done 29.2 s after the kill |
| Recovered outputs identical to an uninterrupted run | yes |
Reproducible: the same workflow and seed produced pixel-identical images five times in a row, and again after the server was restarted. A different seed produced a different image, so the check is not trivially true. This is what makes an image auditable and lets a failed job be re-run safely.
Queued: 20 jobs submitted at once all completed without supervision.
Recoverable: with 5 jobs queued, the server process was killed outright (SIGKILL, no chance to clean up) while working on the second. A small supervisor noticed, restarted ComfyUI, and resubmitted the 4 jobs that had no output. All 5 finished half a minute after the crash, and the recovered images were identical to the same jobs in an uninterrupted run. Because generation is deterministic, “retry” means “get exactly the image you would have got”.
ComfyUI does not do this by itself: its queue lives in memory and is lost when the process dies. The supervisor, the job records and the resubmission logic are the part that turns a creative tool into a service.
The demo set
One product description, six settings, fixed seeds. These are shown exactly as generated, not retouched or chosen from several attempts. They also show the main limit of text-only generation for product work: the product drifts. The prompt asked for a thin black rim; some images have a brown one, and one mug grew two letters. For real catalogue work the actual product photo has to be part of the input (a reference image, a fine-tuned adapter, or generating only the background around a real product shot), and each output still needs a check before it is published.
Method and environment
- runtime
ComfyUI commit c9d8a6e6, headless, HTTP API- model
flux1-schnell-fp8.safetensors (Comfy-Org repackage, Apache-2.0)- workflow
workflows/flux-schnell-v1.json: euler sampler, simple scheduler, CFG 1.0 (schnell is distilled), empty negative prompt- timing
ComfyUI's own execution time per job (warm), median of 3; GPU memory from nvidia-smi minus the idle desktop- determinism
SHA-256 over decoded RGB pixels (PNG metadata excluded)- crash
5 jobs queued, server process group killed with SIGKILL 1 s after the first job finished; supervisor restarts ComfyUI and resubmits every job without an output- prompt (benchmarks)
a ceramic coffee mug on a wooden table, soft window light, product photograph- environment
gpu: RTX 4070 12 GB · ram: 32 GB · comfyui: c9d8a6e6- measured
- 2026-10-08
What this means in practice
- A single consumer GPU is a workable production node for images at this size and speed, if the surrounding system is built properly.
- Version the workflow, pin the software, record the seed. Then any image can be reproduced and audited.
- Build the queue and recovery outside ComfyUI. Its own queue is not durable.
- Keep a review step for anything customer-facing; reproducible does not mean correct.
Limits
One GPU, one model, one sampler and one workflow. Reproducibility was shown on the same hardware, driver and software versions; it is not promised across different GPUs. Image quality was not scored. Video, upscaling and custom nodes are not covered here. The code and workflow are in labs/media-pipeline in this site’s repository.





