Home/ Sessions/ Images
02of 04

Machines that imagine

Images

When an image model generates, what is it actually working with?

Pixels become learned features; people create categories and labels; CLIP-like systems place text and images in comparable representation spaces; diffusion turns prompt conditioning into a new image. We watch that sequence without pretending the model searches for a finished picture.

New to image generators? Start gently.

You don't need an account, an install, or any prior experience with Midjourney, DALL·E, or the rest — about one in five people arrive here having used none of them, and that's a fine place to begin. Open the Diffusion Step-Through Viewer first and watch an image surface from pure noise; then the mechanisms below will have something to hang on. Everything runs in your browser with authored teaching simulations.

§ A · What we make visible

four mechanisms, one session
01

Pixels

An image enters as numbers. PoseNet makes one possible representation concrete: body-keypoint coordinates and confidence scores.

02

Human-created labels

WordNet and ImageNet expose categories, examples, annotations, and standards of correctness as human decisions.

03

Shared text/image representations

CLIP learns image and caption vectors that can be compared for similarity; proximity is learned association, not human understanding.

04

Diffusion

A generator iteratively refines a noisy representation under prompt conditioning, then decodes the result into pixels.

Fig. 02B — Denoising fieldnoise → cues → default

Teaching move · CLIP: open the Image–Caption Match Lab. Predict which caption lands closest, reveal the authored teaching scores, then change one phrase and inspect which human-selected cues moved the ranking. The lab is not a CLIP measurement; it makes the comparison logic inspectable without implying image search, human understanding, or that every generator uses CLIP.

§ B · Tools for this session

featured live · then go deeper

Go deeper

investigate on your own · studio / async

§ C · Run of show

two-hour live session
0–10

Welcome, consent & Session 1 retrieval

Share two text-session artifacts or revisit the recap. Recover the method: predict → change one thing → compare → claim → human decision.

10–25

Pixels → labels → shared representations

Use PoseNet to translate one frame into keypoint coordinates; use WordNet and ImageNet to show that categories and labels were designed; then predict, reveal, and revise one match in the Image–Caption Match Lab. Treat its authored scores and the room tally as teaching evidence, not proof about a model.

25–44

Diffusion — performed, then watched — guidance & revision

Draw the words on the Human Diffusion Canvas in timed coarse-to-fine steps, then watch an analogous machine-denoising sequence from noise. Compare vague, specific, and revised prompts; keep prompt wording distinct from CFG strength.

44–60

Whose picture? & mechanism debrief

Ask who chose categories, supplied or appeared in images, annotated them, defined correctness, and was represented or excluded. Synthesize the loop and choose a pathway before 60 minutes.

60–90

Student work studio · 30 minutes

Choose one of five routes and investigate for 25 minutes, then post one appropriately framed claim plus a next test in the final five. Stop at 1:30.

90–120

Guest spotlight, Q&A & close · 30 minutes

The artist/educator guest receives the full final block for examples, questions, one carry-forward practice, and the session close.

§ C2 · The diffusion loop as code

Build / Code route · annotated pseudocode

This is the shape of the computation, not a runnable model — every real system adds detail. Studio task for the Build route: mark one line you can defend from today's session, and one line that hides real complexity.

// The diffusion loop — teachable shape, not a runnable model.

let latent = randomLatentNoise();   // start from pure static: no picture is hidden inside
let prompt = encodeText("a cat asleep on a red chair");
                                    // words become numbers once, then guide every step

for (let step = TOTAL_STEPS; step > 0; step = step - 1) {
  // the network estimates what part of the current latent state is noise
  let predictedNoise = network(latent, step, prompt);

  // subtract a slice of that noise from the WHOLE field at once —
  // no strokes, no left-to-right; every value updates a little
  latent = removeSomeNoise(latent, predictedNoise, step);

  // nothing is locked: early structure can still change,
  // it just becomes increasingly unlikely as the noise shrinks
}

return decodeToPixels(latent);      // decode the final latent representation into pixels

§ D · Discussion prompts

for the debrief
When did the image become recognizable?
Which visual cue did the most work?
What does the feature view preserve, and what does it erase?
At what diffusion step does the subject become guessable?
Which caption would probably sit closest to this image in a CLIP-style shared space—and what association makes it closer?
What did the prompt leave unspecified?
Which defaults are technical, and which are social?

§ E · Materials

worksheet & pathways

Low-AI / No-AI pathway

Every activity works with the simulated viewers and the authored Image Prompt Pack — no image generator account needed. These materials support an illustrated hypothesis and practice with the investigation method; a claim about a real model requires documented real outputs. Opting out of direct AI use never means opting out of the camp.

Session 3 bridge

PoseNet estimates a pose in one image. Tracking those keypoints from frame to frame turns that image problem into a time problem: what stays stable, what drifts, and what counts as the same person or motion?