Blog - notes on agents, diffusion and production ML
Essays on AI agents, knowledge systems and machine learning in production. Also published on
Habr as @Sonia_Black.
Articles
- Every hand-written seam needs a guard. Crossweft, a cross-language contract check for AI agents (2026-10-08) - Our worst bugs lived between files in different languages. Crossweft makes those seams checkable and stops an AI agent until both sides agree.
- 3D LUTs: baking a colour grade into .cube and Hald, and what is lost between the nodes (2026-09-23) - How my colour studio bakes a grade into a .cube or Hald LUT: file formats, trilinear vs tetrahedral, table size vs error, and what a LUT cannot carry.
- The channel mixer, a 3×3 matrix: what it preserves, where it clips, where it runs (2026-09-23) - How the channel mixer in my colour studio works: a 3×3 matrix on encoded sRGB, neutral rows versus luma, monochrome, clipping and its pipeline slot.
- Hue, saturation and lightness by colour range, computed in Oklab instead of HSL (2026-09-23) - How my colour studio selects a colour range, edits its hue, saturation and lightness in Oklab, and protects skin and greys. Formulas, C++ and two bugs.
- Curves: natural spline vs PCHIP, overshoot, luma and LUT baking (2026-09-23) - How curves work in my colour engine: natural cubic spline vs monotone PCHIP, overshoot and clipping, master vs luma curves, LUT baking and precision.
- Levels: black and white points, gamma, channels and a chart (2026-09-23) - How Levels works in my colour engine: input and output ranges, gamma, master and per-channel sets, the histogram, eyedroppers and a chart's black and white.
- Exposure and white balance: three multipliers in linear light (2026-09-23) - How my colour studio's C++ engine does exposure and white balance: sRGB decoding, gains in linear light, a neutral picker that keeps brightness, clipping.
- A ComfyUI workflow as a public service, without exposing ComfyUI (2026-09-23) - The car studio on this site runs a real ComfyUI pass for anyone. Why /prompt never faces the internet, and the narrow service that stands in front of it.
- What 100 custom ComfyUI nodes do in production, and how they ship (2026-09-23) - What 100 custom ComfyUI nodes in 16 packs do in production, how they get into a Docker image safely, and the cryptominer that came in through a node.
- Where Claude Code desktop sessions go when you switch accounts (2026-04-30) - The Claude Code desktop app hides other accounts' sessions. Where they live on disk, four scripts to restore them, and why handoff files matter more.
- Why diffusion draws seams on 40-megapixel photos, and how to give tiles a memory (2026-04-26) - Why tiled diffusion leaves seams on 40+ MP retouching files, what video models' frame memory offers tiles, and what my first runs actually showed.
- Several Claudes on one repo. Locks, handoffs and email from 1982 (2026-04-23) - How I coordinate parallel Claude Code sessions with append-only handoffs, lock files and a file-based mailbox, packaged as mclaude, and where it breaks.
- 785 articles for agents, not humans. A knowledge base without vector search (2026-04-22) - Why I store research for AI agents as dense Markdown cards linked by hand, not in a vector store, and how the format, freshness checks and inbox work.
- My CLAUDE.md is 582 lines. Six layers, and the failure behind each (2026-04-12) - How my Claude Code config grew to 582 lines in six layers, why a hook holds where a rule does not, and the .npmrc line that kept a compromised axios out.
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
- crossweft - cross-language contract check for AI coding agents
- 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 black.design@me.com ·
LinkedIn ·
GitHub ·
Telegram ·
Hugging Face