Ubunatic Coding

Stories · Voice, Local AI & Agent Tooling · 🎨 comfyconf

Not all code and repositories are prepared for the public yet; the code worth seeing is shown in the story. Copied from comfyconf/docs/studies/2026-10-04-comfyui-on-amd-igpu-story.md.

Making ComfyUI repeatable on an AMD integrated GPU

ComfyUI is an open source interface for running image-generation workflows. Getting it onto a machine is straightforward when the operating system, graphics card, and prebuilt machine-learning packages line up. They do not always line up. This project brings together a repeatable Fedora installer and a separately documented container path for running ComfyUI with ROCm on an AMD integrated GPU.

The bare-metal installer keeps ComfyUI and Python packages in an isolated virtual environment, detects the available NVIDIA, AMD, or Intel graphics backend (or CPU), and can pin a ComfyUI revision for rebuilds. Its canary, dry-run, and check targets probe or validate the setup before installation. The container work takes on a narrower, harder case: testing whether an AMD 760M-class GPU can run ROCm and ComfyUI through Podman, then providing scripts to start, stop, inspect, and operate the server remotely over SSH.

A small probe missed the hard failure

The most instructive episode began with a seemingly successful compatibility test. ROCm did not officially support the GPU architecture in question, so the project tried an architecture override to make the available kernels load. Basic checks for matrix multiplication, vision-shaped computation, and audio-shaped computation all passed. That was encouraging, but it did not represent the repeated half-precision operations in a real image-generation sampler.

The first full workflow exposed the gap: the container crashed during a sampler operation, and the GPU needed a reset. The investigation narrowed the failure to the architecture override rather than treating the container startup as proof of compatibility. It tested alternate override values and added a repeated sampling-loop probe that exercised the half-precision cast on every step. Two candidate values failed; the third passed the loop and the real ComfyUI workflow. The resulting check compared GPU results with CPU results and made the hard-to-reach operation repeatable without downloading a model or launching the full UI each time.

This was a useful design choice as much as a bug fix. A basic “can the GPU do a computation?” probe answered the wrong question. The new canary followed the failure into the operation ComfyUI actually needed, while keeping the experiment cheaper and more controlled than repeatedly running a full generation.

There were also operational failures beyond GPU kernels. Rootless Podman needed to retain the invoking user's supplementary device groups to access the GPU, and remote starts depended on the user session remaining available between SSH connections. The project adjusted the container's group handling and documented enabling user lingering for that deployment pattern. These fixes show why a working image is only one part of a GPU service: device access, process lifetime, model storage, networking, and memory pressure all shape whether it remains usable.

By Aug 7, 2026, the documented end-to-end result was a 20-step Euler image-generation run completed in 18.60 seconds, with an output image and no crash or GPU reset. The project also records a later video-workflow investigation: the selected model files totalled about 42.5 GB against a 14 GB host, and the evidence pointed to host memory exhaustion rather than a GPU kernel fault. That investigation remains open, with smaller model candidates researched but not yet validated. Keeping that boundary explicit matters: a successful still-image workflow does not establish that a much larger video model will fit.

What the work demonstrates

The repository is a compact example of agentic development organized around concrete evidence. Issues hold dated investigations, scripts turn discoveries into repeatable probes, and the documentation preserves both the fixes and the failed hypotheses. The GPU compatibility work spans shell automation, Python probes, container definitions, Make targets, and operational notes. Its value comes less from raw code volume than from connecting those pieces so the next attempt can reproduce the result and avoid repeating a dangerous, expensive experiment.

The history is quiet in the last six weeks: the latest commits, on Aug 29 and Sep 5, synchronize managed documentation. The substantive implementation arrived earlier, across seven commits from Aug 6 to Sep 5. This is a focused personal-scale repository, not evidence that agents were indispensable. The instructive part is how an agentic workflow can help keep a broad, hardware-dependent investigation legible: test the smallest useful hypothesis, preserve the result, and turn the confirmed failure mode into a canary before moving on.

Facts

Area Verified facts
Stack Bash installer and operations scripts; Python GPU probe; Make; Podman/Compose; ComfyUI; ROCm; Fedora and Ubuntu container base
Size 7 commits total; 843 lines across installer, scripts, probe, and test; one 47-line installer test script
Dates Initial setup Aug 6, 2026; GPU fix and validated workflow Aug 7; video memory investigation Aug 16; latest doc sync Sep 5
Validation make check passes; documented real workflow: 20/20 steps in 18.60 seconds