<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Pixels2GenAI — Lessons</title><description>New lessons from the Pixels2GenAI curriculum: from a single array element to building, training, and reasoning about modern generative models.</description><link>https://pixels2genai.art/</link><language>en</language><item><title>1.1.1 · Images as Arrays &amp; RGB</title><link>https://pixels2genai.art/lessons/1.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/1.1.1</guid><description>Treat every digital image as a NumPy array of intensity values; build colour from scratch by writing red, green, and blue channels by hand.</description><category>M 01</category></item><item><title>1.2.1 · Random Pattern Generation</title><link>https://pixels2genai.art/lessons/1.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/1.2.1</guid><description>Turn uniform random numbers into compelling visual compositions. Use Kronecker products for pixel-perfect scaling, seed-based reproducibility, and discrete colour palettes inspired by Gerhard Richter&apos;s colour charts.</description><category>M 01</category></item><item><title>1.2.2 · Cellular Automata (Game of Life)</title><link>https://pixels2genai.art/lessons/1.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/1.2.2</guid><description>Generate dynamic, lifelike behaviour from four arithmetic rules. Implement Conway&apos;s Game of Life with NumPy and SciPy convolutions, then watch gliders walk, blinkers oscillate, and blocks sit still — none of which you ever programmed.</description><category>M 01</category></item><item><title>1.3.1 · Flags (Array Slicing)</title><link>https://pixels2genai.art/lessons/1.3.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/1.3.1</guid><description>Select and modify rectangular regions of NumPy arrays using slice notation. Build structured colour compositions — national flags — by combining row slices, column slices, and broadcasting.</description><category>M 01</category></item><item><title>1.3.2 · Repeat (Tiling Patterns)</title><link>https://pixels2genai.art/lessons/1.3.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/1.3.2</guid><description>Use nested loops and algorithmic position calculation to tile coloured squares across a canvas. Graduate from manual slicing to parametric, procedural composition.</description><category>M 01</category></item><item><title>2.1.1 · Drawing Lines</title><link>https://pixels2genai.art/lessons/2.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.1.1</guid><description>Translate continuous mathematical lines into discrete pixel grids. Use NumPy&apos;s linspace as a parametric interpolator, then iterate the same draw_line call to build sunbursts and parallel-line compositions.</description><category>M 02</category></item><item><title>2.1.2 · Drawing Triangles</title><link>https://pixels2genai.art/lessons/2.1.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.1.2</guid><description>Fill a triangle as the intersection of three half-planes using the edge function — the same algorithm GPUs run in hardware millions of times per frame — then stack triangles into a layered mountain landscape.</description><category>M 02</category></item><item><title>2.1.3 · Drawing Circles</title><link>https://pixels2genai.art/lessons/2.1.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.1.3</guid><description>Render a circle as the set of pixels whose squared distance from a centre is below a threshold, using np.ogrid for memory-efficient coordinate grids — then stack circles into a bull&apos;s-eye and a radial gradient.</description><category>M 02</category></item><item><title>2.1.4 · Creating Star Fields</title><link>https://pixels2genai.art/lessons/2.1.4</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.1.4</guid><description>Place individual pixels with integer array indexing instead of geometric primitives, then swap the random distribution (uniform → Gaussian) to turn a scatter into a star cluster — the indexing pattern behind every particle system.</description><category>M 02</category></item><item><title>2.2.1 · Gradient Fields</title><link>https://pixels2genai.art/lessons/2.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.2.1</guid><description>Map a 1D linspace into a 2D image by tiling rows or columns, then use broadcasting to combine horizontal and vertical components into diagonal and radial gradients — the same coordinate-to-value scheme behind every procedural texture.</description><category>M 02</category></item><item><title>2.2.2 · Archimedean Spiral</title><link>https://pixels2genai.art/lessons/2.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.2.2</guid><description>Convert polar coordinates (angle, radius) to Cartesian pixels and trace an Archimedean spiral with `r = a + bθ`, then tune the growth rate and colour-interpolate along the curve.</description><category>M 02</category></item><item><title>2.2.3 · Vector Fields</title><link>https://pixels2genai.art/lessons/2.2.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.2.3</guid><description>Assign a direction to every pixel, recover its angle with `np.arctan2(dy, dx)`, then map angle to hue on the colour wheel — turning invisible flow into visible pattern.</description><category>M 02</category></item><item><title>2.2.4 · Distance Fields &amp; SDFs</title><link>https://pixels2genai.art/lessons/2.2.4</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.2.4</guid><description>Keep the actual distance values instead of thresholding them. Subtract a radius to get a signed distance function, then combine SDFs with `min`, `max`, and negation — the algebra behind modern shape composition.</description><category>M 02</category></item><item><title>2.3.2 · Rose Curves</title><link>https://pixels2genai.art/lessons/2.3.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.3.2</guid><description>Trace the polar equation `r = a·cos(k·θ)` to render flower-like rhodonea curves. Then learn the odd-k / even-k rule that controls petal count and colour each petal individually.</description><category>M 02</category></item><item><title>2.3.3 · Harmonograph Simulation</title><link>https://pixels2genai.art/lessons/2.3.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/2.3.3</guid><description>Add exponential damping to two perpendicular sinusoids and the Lissajous figures from the previous lesson start to spiral inward — the same effect that gives Victorian harmonographs their characteristic decaying motion.</description><category>M 02</category></item><item><title>3.1.1 · Rotation</title><link>https://pixels2genai.art/lessons/3.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.1.1</guid><description>Rotate a NumPy image array by an arbitrary angle with `scipy.ndimage.rotate`, then turn that one call into a fan-shaped composition by accumulating rotated copies with additive blending.</description><category>M 03</category></item><item><title>3.1.2 · Affine Transformations</title><link>https://pixels2genai.art/lessons/3.1.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.1.2</guid><description>Move beyond a single rotation into the four affine building blocks — translate, scale, rotate, shear — expressed as one 3×3 matrix and composed with `@` to build a spiral of 24 squares from a single base shape.</description><category>M 03</category></item><item><title>3.1.3 · Nonlinear Distortions</title><link>https://pixels2genai.art/lessons/3.1.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.1.3</guid><description>Move past affine: warp an image by *coordinate remapping*. Use sinusoidal, radial, and rotational offsets to build wave, barrel, and swirl distortions, then combine two waves for a wobbly effect.</description><category>M 03</category></item><item><title>3.1.4 · Kaleidoscope Effects</title><link>https://pixels2genai.art/lessons/3.1.4</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.1.4</guid><description>Build an N-fold kaleidoscope by reading every pixel&apos;s polar angle, folding it into a single wedge, and mirroring alternate wedges. Then stack three wedge-rings into a mandala.</description><category>M 03</category></item><item><title>3.2.1 · Boolean Masks</title><link>https://pixels2genai.art/lessons/3.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.2.1</guid><description>Build a 2D boolean array — `True` for *keep*, `False` for *cut* — and use it as the gatekeeper for every per-pixel edit. A circular vignette, a colour swap, and a custom shape are all the same one-line indexing trick.</description><category>M 03</category></item><item><title>3.2.2 · Meme Generator — Text on Images</title><link>https://pixels2genai.art/lessons/3.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.2.2</guid><description>Step out of NumPy briefly: use Pillow&apos;s `ImageDraw.text` and a TrueType font to layer captions onto a photo, then convert the result back into a NumPy array for further pixel work.</description><category>M 03</category></item><item><title>3.2.3 · Shadow Compositing</title><link>https://pixels2genai.art/lessons/3.2.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.2.3</guid><description>Build a content-aware drop shadow: threshold the blue channel to select the sky, shift a grey shadow layer up-and-left by 20 pixels, then copy the shifted shadow back into the masked region of the original photo.</description><category>M 03</category></item><item><title>3.3.1 · Warhol Pop Art</title><link>https://pixels2genai.art/lessons/3.3.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.3.1</guid><description>Permute the RGB channel order — `image[:, :, [2, 0, 1]]` — to build six instantly different colour palettes from one source image, then arrange four of them into a 2×2 grid in Warhol&apos;s silkscreen tradition.</description><category>M 03</category></item><item><title>3.3.2 · Puzzle — Array Concatenation</title><link>https://pixels2genai.art/lessons/3.3.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.3.2</guid><description>Use `np.vstack` and `np.hstack` to assemble image fragments — first as obedient jigsaw pieces with matching dimensions, then as an artistic shuffle that turns a single photo into an abstract puzzle.</description><category>M 03</category></item><item><title>3.3.3 · Hexpanda — Hexbin Image Filter</title><link>https://pixels2genai.art/lessons/3.3.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.3.3</guid><description>Turn an image into a sparse `(x, y, intensity)` table with pandas, then aggregate it into a hexagonal density plot. The result reads as an impressionist mosaic of the original photograph.</description><category>M 03</category></item><item><title>3.3.5 · Delaunay Triangulation</title><link>https://pixels2genai.art/lessons/3.3.5</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.3.5</guid><description>Use `scipy.spatial.Delaunay` to wire a cloud of points into a clean triangular mesh whose triangles avoid sliver shapes, then sample the source image at each triangle&apos;s centroid to render a low-poly version of the original.</description><category>M 03</category></item><item><title>3.4.1 · Convolution</title><link>https://pixels2genai.art/lessons/3.4.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.4.1</guid><description>Slide a 3×3 or 5×5 kernel across an image and compute a weighted sum at every pixel. The same four-line loop, with different weights, gives identity, blur, sharpen, and edge-detection in turn.</description><category>M 03</category></item><item><title>3.4.2 · Sobel Edge Detection</title><link>https://pixels2genai.art/lessons/3.4.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.4.2</guid><description>Specialise convolution into a gradient operator. Two 3×3 kernels — one measuring horizontal change, one measuring vertical — combine via Euclidean magnitude into an orientation-independent edge map.</description><category>M 03</category></item><item><title>3.4.3 · Contour Lines</title><link>https://pixels2genai.art/lessons/3.4.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.4.3</guid><description>Visualise a 2D scalar field two ways: stepped bands by integer quantisation, and thin isolines by a modulo on the height. Build the terrain from a sum of Gaussian hills and render both styles.</description><category>M 03</category></item><item><title>3.4.4 · Fourier Art</title><link>https://pixels2genai.art/lessons/3.4.4</link><guid isPermaLink="true">https://pixels2genai.art/lessons/3.4.4</guid><description>Round-trip an image through `np.fft.fft2`, manipulate the frequency-domain magnitude with circular masks, and inverse-transform back. Low-pass blurs, high-pass extracts edges, glitch holes corrupt for art&apos;s sake.</description><category>M 03</category></item><item><title>4.1.1 · Fractal Square</title><link>https://pixels2genai.art/lessons/4.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/4.1.1</guid><description>Build a self-similar geometric figure with three nested calls. Watch recursion run.</description><category>M 04</category></item><item><title>4.1.2 · Dragon Curve</title><link>https://pixels2genai.art/lessons/4.1.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/4.1.2</guid><description>Generate the Heighway dragon — a recursive L/R fold sequence rendered with turtle graphics. One self-similar rule, 2,047 turns, an unmistakable silhouette.</description><category>M 04</category></item><item><title>4.1.3 · Mandelbrot Set</title><link>https://pixels2genai.art/lessons/4.1.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/4.1.3</guid><description>Iterate $z \to z^2 + c$ on a complex grid and colour each pixel by the number of steps before it escapes. The boundary is infinite detail from one quadratic rule.</description><category>M 04</category></item><item><title>4.2.1 · Fractal Trees</title><link>https://pixels2genai.art/lessons/4.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/4.2.1</guid><description>Recursive branching with three parameters — depth, angle, and length ratio. The same rule produces pines, oaks, and weeping willows depending on how you tune them.</description><category>M 04</category></item><item><title>4.3.1 · Plant Generation (L-Systems)</title><link>https://pixels2genai.art/lessons/4.3.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/4.3.1</guid><description>Lindenmayer systems — a string-rewriting grammar interpreted as turtle commands. One axiom, one rule, four iterations: a fractal plant. Same paradigm spans algae, ferns, and entire forests.</description><category>M 04</category></item><item><title>5.1.1 · Sand Simulation</title><link>https://pixels2genai.art/lessons/5.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/5.1.1</guid><description>Build a particle system from scratch — thousands of independent grains, each carrying a few floats of state, animated frame by frame into a GIF of wind-blown sand.</description><category>M 05</category></item><item><title>5.2.1 · Boids — Flocking from Three Rules</title><link>https://pixels2genai.art/lessons/5.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/5.2.1</guid><description>Implement Craig Reynolds&apos;s 1987 boids algorithm — separation, alignment, cohesion — and watch coordinated flocks emerge from agents that only see their nearest neighbours.</description><category>M 05</category></item><item><title>5.3.1 · Bouncing Ball — Gravity and Collisions</title><link>https://pixels2genai.art/lessons/5.3.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/5.3.1</guid><description>Build the smallest possible physics simulation — gravity, integration, and wall collisions — and use it to feel the fundamental loop that powers every later simulation in this module.</description><category>M 05</category></item><item><title>5.3.3 · Double Pendulum Chaos</title><link>https://pixels2genai.art/lessons/5.3.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/5.3.3</guid><description>Simulate two coupled pendulums with Runge-Kutta integration, then watch deterministic physics produce motion that never repeats and never can be predicted long-term.</description><category>M 05</category></item><item><title>6.1.1 · Perlin &amp; Value Noise</title><link>https://pixels2genai.art/lessons/6.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/6.1.1</guid><description>Build smooth, organic noise by sampling a random grid and interpolating between cells with a smoothstep. Stack octaves of decreasing amplitude and increasing frequency for cloud-like fractal Brownian motion.</description><category>M 06</category></item><item><title>8.1.1 · Image Transformations</title><link>https://pixels2genai.art/lessons/8.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/8.1.1</guid><description>The twelve single-frame operators that every animation in Module 08 will later time-vary. Brightness, channel ops, masks, distance fields — each one a tiny function, ready to wear a clock.</description><category>M 08</category></item><item><title>8.2.1 · Flower Assembly</title><link>https://pixels2genai.art/lessons/8.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/8.2.1</guid><description>Slice an image into tiles, scatter the tiles to random offscreen positions, then animate them flying back into place — the canonical reverse-explosion technique.</description><category>M 08</category></item><item><title>8.2.2 · Infinite Blossom</title><link>https://pixels2genai.art/lessons/8.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/8.2.2</guid><description>Petals spawn at the edge in polar coordinates, spiral inward as they rotate, and disappear at the centre. New ones spawn forever — no start, no end.</description><category>M 08</category></item><item><title>8.3.1 · Star Wars Titles</title><link>https://pixels2genai.art/lessons/8.3.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/8.3.1</guid><description>Build the iconic *Star Wars* opening crawl: yellow text on a starfield, projected into a receding trapezoid. Inverse perspective sampling, no shader required.</description><category>M 08</category></item><item><title>8.3.2 · Thank You</title><link>https://pixels2genai.art/lessons/8.3.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/8.3.2</guid><description>A four-track staggered cinematic: characters slide in, a speech bubble fades in, text rises. Independent timelines composited per frame.</description><category>M 08</category></item><item><title>8.4.3 · Animated Fractals</title><link>https://pixels2genai.art/lessons/8.4.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/8.4.3</guid><description>Add time to the Mandelbrot set: animate the view window&apos;s centre and zoom, render each frame from scratch, save as an infinitely-looping GIF that appears to dive into the fractal.</description><category>M 08</category></item><item><title>9.1.1 · Perceptron from Scratch</title><link>https://pixels2genai.art/lessons/9.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/9.1.1</guid><description>Build Rosenblatt&apos;s 1958 perceptron in NumPy: a linear weighted sum, a step activation, and the weight-update rule that adjusts inputs after every wrong prediction. Train it as a binary classifier on a 2D dataset.</description><category>M 09</category></item><item><title>9.1.2 · Backpropagation Visualisation</title><link>https://pixels2genai.art/lessons/9.1.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/9.1.2</guid><description>Train a 2-2-1 network on the XOR problem the perceptron couldn&apos;t solve. Watch the chain rule propagate gradients backward through the hidden layer, and visualise the decision boundary as it warps from a straight line into a curve.</description><category>M 09</category></item><item><title>9.1.3 · Activation Functions as Art</title><link>https://pixels2genai.art/lessons/9.1.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/9.1.3</guid><description>Visualise the seven canonical activation functions — sigmoid, tanh, ReLU, leaky ReLU, ELU, GELU, Swish — and feed an image through each. The choice of activation is one of the few decisions that hasn&apos;t moved in a decade.</description><category>M 09</category></item><item><title>9.2.1 · Feedforward Networks</title><link>https://pixels2genai.art/lessons/9.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/9.2.1</guid><description>Stack multiple hidden layers and discover what depth buys you over width. A 2-8-8-1 network learns curved boundaries the perceptron and shallow XOR-trainer can&apos;t, and the same architecture scales up to classify handwriting and recognise images.</description><category>M 09</category></item><item><title>9.2.2 · Convolutional Networks</title><link>https://pixels2genai.art/lessons/9.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/9.2.2</guid><description>Replace fully-connected layers with convolutions: shared weights that slide across the image. The same trick used as a kernel in 3.4.1 becomes the central operation of every computer-vision network from LeNet (1998) to today.</description><category>M 09</category></item><item><title>9.2.3 · Recurrent Networks</title><link>https://pixels2genai.art/lessons/9.2.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/9.2.3</guid><description>Process sequences with a network that has *memory* — a hidden state passed from step to step. The vanilla RNN learns to generate sequences character by character; LSTMs and Transformers are the modern descendants of the same recurrent idea.</description><category>M 09</category></item><item><title>10.1.1 · Node Networks — The TouchDesigner Paradigm</title><link>https://pixels2genai.art/lessons/10.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/10.1.1</guid><description>Shift from sequential Python scripts to continuously-cooking node networks. Learn the four operator families (TOP, CHOP, SOP, DAT), the meaning of cooking, and why your NumPy mental model carries over almost unchanged.</description><category>M 10</category></item><item><title>10.1.2 · Python Integration — op() and Parameter Access</title><link>https://pixels2genai.art/lessons/10.1.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/10.1.2</guid><description>Wire Python into a TD network. Learn where Python lives (Script DAT/CHOP/TOP), how `op(&apos;name&apos;)` references any operator, and how `.par.X` reads or writes parameters — turning your network into a programmable instrument.</description><category>M 10</category></item><item><title>10.2.2 · Boids in TouchDesigner — Physics in CHOPs, Rendering in Instances</title><link>https://pixels2genai.art/lessons/10.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/10.2.2</guid><description>Port the NumPy boids simulation from Module 5.2.1 to a TouchDesigner network that runs 5,000 agents at 60 fps. The physics lives in a Script CHOP; the rendering lives in a Geometry COMP with GPU instancing.</description><category>M 10</category></item><item><title>11.1.1 · Webcam Processing</title><link>https://pixels2genai.art/lessons/11.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/11.1.1</guid><description>Turn a webcam into a 30 fps NumPy array stream. Capture → process → display loop, with frame differencing as the canonical &apos;detect motion&apos; demo.</description><category>M 11</category></item><item><title>11.2.3 · Face Detection</title><link>https://pixels2genai.art/lessons/11.2.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/11.2.3</guid><description>MediaPipe Face Mesh returns 478 landmark points per detected face. Feed them into Delaunay triangulation (3.3.5) and you get an instant low-poly portrait.</description><category>M 11</category></item><item><title>12.1.1 · GAN Architecture</title><link>https://pixels2genai.art/lessons/12.1.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.1.1</guid><description>Implement the original GAN as a two-player game between a Generator and a Discriminator; watch it learn to match a target distribution; then bridge from numbers to simple visual patterns.</description><category>M 12</category></item><item><title>12.1.2 · DCGAN Art</title><link>https://pixels2genai.art/lessons/12.1.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.1.2</guid><description>Generate abstract art with a Deep Convolutional GAN; explore the learned latent space; train the network from scratch on African fabric patterns.</description><category>M 12</category></item><item><title>12.1.3 · StyleGAN Exploration</title><link>https://pixels2genai.art/lessons/12.1.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.1.3</guid><description>Explore the disentangled W-space of a trained StyleGAN2 model — generate fabric patterns, navigate latent paths with interpolation, mix coarse and fine styles across crossover layers, and tune diversity with the truncation trick.</description><category>M 12</category></item><item><title>12.1.4 · Pix2Pix Applications</title><link>https://pixels2genai.art/lessons/12.1.4</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.1.4</guid><description>Translate one image into another (label-to-photo, sketch-to-colour) with a conditional GAN: U-Net generator preserves spatial structure, PatchGAN discriminator enforces local realism, L1+adversarial loss balances accuracy against sharpness.</description><category>M 12</category></item><item><title>12.2.1 · Latent Space Exploration</title><link>https://pixels2genai.art/lessons/12.2.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.2.1</guid><description>Train a Variational Autoencoder on simple geometric patterns and see why one specific term in its loss function — the KL divergence — turns its latent space into a navigable map you can interpolate through.</description><category>M 12</category></item><item><title>12.2.2 · Interpolation Animations</title><link>https://pixels2genai.art/lessons/12.2.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.2.2</guid><description>Use a pre-trained convolutional VAE on 64×64 RGB abstract patterns to build smooth morphing animations — first linear paths, then spherical paths, then multi-keypoint loops.</description><category>M 12</category></item><item><title>12.2.3 · Conditional VAEs</title><link>https://pixels2genai.art/lessons/12.2.3</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.2.3</guid><description>Add label conditioning to a VAE by concatenating one-hot vectors into both encoder and decoder inputs; train it on MNIST and generate digits on demand.</description><category>M 12</category></item><item><title>12.3.1 · DDPM Basics</title><link>https://pixels2genai.art/lessons/12.3.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.3.1</guid><description>Train a Denoising Diffusion Probabilistic Model on African fabric patterns by learning to reverse a 1,000-step noise corruption process; understand the forward schedule, the U-Net&apos;s noise-prediction objective, and the iterative reverse-process sampler.</description><category>M 12</category></item><item><title>12.3.2 · ControlNet Guided Generation</title><link>https://pixels2genai.art/lessons/12.3.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.3.2</guid><description>Add spatial control to a frozen diffusion model with ControlNet&apos;s trainable encoder copy and zero-convolution skip path; combine with LoRA for content+style control over generation.</description><category>M 12</category></item><item><title>12.4.1 · Neural Style Transfer</title><link>https://pixels2genai.art/lessons/12.4.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.4.1</guid><description>Recreate the content of one image in the artistic style of another by minimising two losses computed from a frozen VGG-19&apos;s intermediate feature maps: content from a deep layer, style from Gram matrices across multiple layers.</description><category>M 12</category></item><item><title>12.4.2 · VQ-VAE &amp; VQ-GAN</title><link>https://pixels2genai.art/lessons/12.4.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.4.2</guid><description>Replace the VAE&apos;s continuous Gaussian bottleneck with a discrete codebook (VQ-VAE), then layer a GAN-style discriminator on top to sharpen reconstructions (VQ-GAN) — the architectural pattern that turns images into token sequences for transformer-based generation.</description><category>M 12</category></item><item><title>12.5.1 · DreamBooth Personalization</title><link>https://pixels2genai.art/lessons/12.5.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.5.1</guid><description>Bind a unique token (`sks`) to a specific visual style by fine-tuning Stable Diffusion on 10 reference images, using LoRA adapters and prior-preservation loss to avoid catastrophic forgetting.</description><category>M 12</category></item><item><title>12.6.1 · Taming Transformers</title><link>https://pixels2genai.art/lessons/12.6.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.6.1</guid><description>Use the VQ-GAN tokeniser from Lesson 12.4.2 to turn images into integer sequences, then train an autoregressive transformer over those sequences — the architectural template behind DALL-E 1, Parti, and Muse.</description><category>M 12</category></item><item><title>12.6.2 · Diffusion Transformer (DiT)</title><link>https://pixels2genai.art/lessons/12.6.2</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.6.2</guid><description>Replace the U-Net in a diffusion model with a transformer that operates on image patches; condition on the diffusion timestep through adaptive layer norm. This is the architecture behind Sora, Stable Diffusion 3, and PixArt-α.</description><category>M 12</category></item><item><title>12.7.1 · Flow Matching</title><link>https://pixels2genai.art/lessons/12.7.1</link><guid isPermaLink="true">https://pixels2genai.art/lessons/12.7.1</guid><description>Train a generative model that learns a velocity field mapping noise to data along straight paths, sample with an Euler ODE integrator in 50 steps, and see why it needs 5-20× fewer steps than DDPM for comparable quality.</description><category>M 12</category></item></channel></rss>