happyin.work / ComfyUI
ComfyUI specialist - Anastasiia Butova
I build production image pipelines on ComfyUI, and have for two years, since 2024. I design the graphs, write the custom nodes underneath them, train the LoRAs they load, and run them headless over the ComfyUI API on GPU workers. Based in Belgrade, Serbia; working remotely; open to contract and full-time work.
In one line: Anastasiia Butova is a ComfyUI specialist and diffusion-model engineer, with 100 custom nodes in 16 packs of her own, ComfyUI graphs in production for a jewellery image SaaS, a photo app with 4M+ users and a Telegram bot, and LoRA training for FLUX.2 Klein and SDXL.
What I can build for you
- A ComfyUI workflow turned into a service. The graph is built and debugged in the editor, exported in API format, then executed headless with per-request inputs: a queue in front, GPU workers behind (RunPod serverless or your own machines), results delivered by webhook.
- Custom nodes. For the step no existing pack provides: routing and quality gates, colour matching, SAM3 segmentation, DINOv3 classification, YOLO detection, optical-flow alignment, tiling, and wrappers that put restoration networks (NAFNet, SwinIR, HYPIR) into the same graph as generation.
- LoRA training and evaluation. FLUX.2 Klein 9B and SDXL adapters, from per-person identity to edit LoRAs for product photographs, judged on fixed-seed sheets rather than on one lucky frame.
- High resolution. Tiled inference for 6K-10K pixel product images, without seams you can see at 40 megapixels.
- Deployment you can reproduce. Docker images for H100 and H200 cards, with every custom node vendored and pinned per image, so a change in somebody else's pack cannot break production overnight.
Where my ComfyUI work has run
- OIS.Gold, 2024 to now. A jewellery image-processing SaaS with 1,500+ users. ComfyUI is driven programmatically from the backend, with BullMQ job queues and webhook delivery, over 6K-10K pixel images; every custom node the production image uses is kept as a vendored snapshot.
- Glam.ai, 2026. Multi-stage Qwen Image Edit pipelines orchestrated through ComfyUI graphs, each node a specialised model for segmentation, restoration or refinement, in a photo app with 4M+ users; training on an 80-GPU H200 cluster.
- @wowfaceaibot, 2025. A LoRA trained on each user's own photographs; generation on RunPod driven through the ComfyUI HTTP API with that user's adapter.
- mashinki, 2026. Dealer car photographs turned into catalogue frames on a ComfyUI GPU box: SAM3 segmentation, FLUX.2 Klein 9B LoRAs for background replacement and geometry, and a node pack of its own.
The nodes, counted
Counted on 15 September 2026 from each pack's node registration code: 100 distinct nodes in 16 packs of my own (104 registrations; four utility nodes are shared by two packs).
- happyin-comfyui-nodes, 32: routing and quality gates, a Florence2 prompt router, masks, noise estimation and grain matching, colour match and transfer, camera angles, contact sheets, LoRA folder utilities, batch helpers
- ComfyUI-SAM3-Gemstone, 20: SAM 3 gemstone detection, composition and stitching, inpaint crop and stitch, mask and hole rescue, PSD output
- ComfyUI_happyin, 19: tile split and merge, frequency decomposition, VAE encode and decode, mask tools, auto levels, edge and depth enhancement, detail-area filtering
- ComfyUI-mashinki, 6: SAM3 car-part segmentation (plate, body, glass, wheels, interior), tilting the background plate to the cabin camera's roll, camera angles, latent size snapping, an NVIDIA PiD decoder
- comfyui-pixel-align-nodes, 5: pixel alignment with a deformation fallback, frequency mix, low-frequency replacement, selective blend
- ComfyUI_happyin_canny, 4: edge maps, an image describer, object and word replacer nodes
- restoration: NAFNet denoise with colour-managed load and save (3), NAFNet jewellery restore (2), SwinIR denoise and noise mapping (2), HYPIR restore (1)
- recognition: DINOv3 car dimensions (1), DINOv3 classification (1), YOLO26 detection (1)
- editing: heatmap mask sliders (3), screenshot cleaning and border crop (3), click-to-refine for FLUX.2 Klein (1)
The repositories are private, so the count is stated here rather than linked.
How I work
A pipeline is built and debugged in the ComfyUI editor, then frozen: the graph exported in API format, the custom nodes pinned to the commits that were tested. After that nothing is clicked. The backend submits the graph with per-request inputs and collects the result. A new checkpoint or a node change is judged on fixed-seed sheets against the previous one, and what it gets wrong is written down next to what it gets right, the way the model cards on Hugging Face are.
Why the custom nodes are pinned
Production images carry a vendored snapshot of every custom node they use, updated on purpose and tested before it ships, so there is no surprise from somebody else's main branch. The same caution applies to what a node is allowed to do: a custom node is Python running with the server's permissions. I wrote the detection-and-removal runbook for a cryptominer, an XMRig variant, that had been injected into a ComfyUI container's execution.py.
Models and tools
FLUX.2 Klein 9B, FLUX, Qwen Image Edit, SDXL and SD 1.5, IP-Adapter, ControlNet, SAM3, Florence2, DINOv3, YOLO, NAFNet, SwinIR, HYPIR. The ComfyUI HTTP API, Diffusers, PyTorch, Python, Docker, RunPod, BullMQ, H100 and H200 GPUs.
Questions people ask
Can you build a custom ComfyUI node for our pipeline?
Yes. I have written 100 so far, in 16 packs. Most are one of three things: a model wrapped so it runs inside the graph, a decision the graph has to make (a gate, a router, a switch), or an image operation no existing pack does the way the pipeline needs.
Can you turn our ComfyUI workflow into an API or a product?
Yes, that is how every production project on this page runs. The graph goes into API format, a backend submits it with per-request inputs, a queue sits in front of the GPUs, and results come back by webhook.
Do you train LoRAs for FLUX or SDXL?
Yes. Per-person identity LoRAs trained on a user's own photographs, and edit LoRAs on FLUX.2 Klein 9B that restore faces, swap the background behind a car and correct its geometry, several of them published as model cards on Hugging Face.
Do you work with diffusion models outside ComfyUI?
Yes. Diffusers, training scripts, ONNX export and C++ inference for retouching models that run on the user's own computer. ComfyUI is where most pipelines are assembled, not the only place the models live.
Where are you based, and how do we work together?
Belgrade, Serbia, working remotely across European and US timezones, on contract or full-time. Russian native, English professional, Serbian working.
How to reach me
Telegram @happy_in_happy is fastest; email [email protected], or LinkedIn.
Elsewhere on this site
- Home - who I am and what I build
- CV - roles, dates, stack
- ComfyUI - production ComfyUI pipelines, custom nodes, LoRA training
- Happyin.ai - on-device retouching models and a C++ Photoshop plugin
- mashinki - automated car-photo pipeline for dealerships
- OIS.Gold - jewellery retouching at scale
- Glam.ai - production AI features for 4M+ users
- @wowfaceaibot - per-user LoRA photo bot on Telegram
- happyin.space - 820+ articles structured for AI agents
- codex-claude-code-config - a rulebook for coding agents
- mclaude - multi-session coordination for Claude Code
- Blog - essays on agents, diffusion and production ML
- AGENTS.md - the machine-readable version of all of this
Anastasiia Butova - ML engineer, Belgrade, Serbia.
Email [email protected] ·
LinkedIn ·
GitHub ·
Telegram ·
Hugging Face