Make things · Beginner

Image Generation, in Practice

Draft, open for academic review

Reference images, inpainting, character LoRAs, upscaling, and the licence nobody read.

Your progress here is recorded once you pass the Vectors, Logos and Things That Get Printed exam.

7 modules. 69 lessons.

The kit, and what each piece of it costs you

11 lessons · 1 h 28

You will be able toAssemble a working image-generation setup from the hardware you actually own (hosted service, local install or a free cloud GPU) and state for your chosen route the VRAM it needs, the seconds and rupees per image it costs, the licence it carries, and the exact files on disk that make up the model.

  1. 1.1The generator you pick is a licensing decisionStart9 min
  2. 1.2A preset is somebody else’s workflow, frozen8 min
  3. 1.3Three routes to a GPU, and the arithmetic for each9 min
  4. 1.4A model is four kinds of file, and mixing them up wastes an evening8 min
  5. 1.5Four front ends, and which one deserves your learning time8 min
  6. 1.6The first hour, and the four errors everybody gets8 min
  7. 1.7Steps, samplers and the seconds you should actually expect8 min
  8. 1.8Making a big model fit a small card8 min
  9. 1.9Every platform’s filter is different, and that is a production risk7 min
  10. 1.10The setup that still works in six months7 min
  11. 1.11You are paying to make decisions you could make cheaply8 min
An illustrative case, built from documented patternsTwo hundred assets, and a licence nobody had readA two-person branding studio in Indore, eleven weeks into a retainer for a regional dairy co-operative.

Farhan and Divya run a studio out of a converted flat. Between them they had delivered two hundred and six images for the co-operative over eleven weeks: packaging mock-ups, market-stall backgrounds, a series of illustrated farmer portraits for the rebranded milk cartons, and a set of forty social cards. All of it had been generated locally, on a second-hand card Farhan had bought precisely so that per-image cost would stop being a line in their quotes.

The model was FLUX.1 [dev]. They had chosen it in week one because it held type better than anything else they could run, the samples on the model page were the best they had seen, and the download was free and took twenty minutes. Nobody read the licence file that came down with the weights. It was sitting in the folder the whole time.

In week eleven the co-operative’s new marketing head asked a reasonable question: for the packaging artwork, which is going to a printer and onto half a million cartons, what are we licensed for? Divya opened the model card to copy a line into the email and found that FLUX.1 [dev] is released under a non-commercial licence. The weights may be used for research and personal work. Generating output that a client pays for is not that.

Two things were immediately clear and one was not. The first: this was a breach of the model licence, and it was entirely separate from any question about who owns the pictures. The second: it was not the client’s fault and the client had no exposure they knew about. The third, the unclear one, was what to do.

The options were not equal.

Say nothing. Nobody had noticed in eleven weeks. The licence is not policed by anybody who would plausibly look at a dairy co-operative in Madhya Pradesh. The studio’s reputation, their retainer and their next quarter all survive intact. The cost is that Divya would have to answer the marketing head’s direct question with something that was not true, in writing, and then live with that sentence existing in an inbox for as long as the account did.

Rebuild everything. Re-generate two hundred and six images on Apache-licensed weights (FLUX.1 [schnell] or Qwen-Image, both of which permit commercial use), then repair, composite and grade them all again. Farhan estimated it at nine days of work they would not be paid for, and it would push two deliverables past dates the co-operative had already booked print slots against.

Rebuild only what is exposed. The packaging artwork and anything going to print is the part with real exposure and volume behind it. The social cards are ephemeral. That is about thirty images rather than two hundred, and it is defensible if you can say where the line was drawn and why.

Buy the licence. Black Forest Labs sells a commercial licence for the dev weights. The studio had never priced it because they had never thought they needed to.

Divya’s position was that the third option was a rationalisation dressed as a plan: the licence does not distinguish between a carton and a social card, and drawing a line by commercial risk is deciding which breaches matter. Farhan’s position was that nine unpaid days would take the studio’s cash below the point where they could pay the rent in April, and that a rule you cannot afford to follow completely is still worth following partly.

The argument took a day. It was not really about the licence by the end of it. It was about whether a two-person studio that does not check terms before it starts is a studio a client should hire, and whether either of them wanted to keep working in a way that depended on nobody asking.

How it played out

They priced the commercial licence first, and it was affordable: less than one of the nine unpaid days would have cost them. They bought it, which made the past eleven weeks compliant going forward but did not retroactively license what had already been made, so Divya wrote to the marketing head the same afternoon, said plainly what had happened, said it was now licensed, and offered to regenerate the packaging artwork at no charge if the co-operative’s own lawyers wanted a clean provenance. The co-operative asked for the packaging artwork to be regenerated, and nothing else. It took three days. The studio kept the account and added one step to their project template: a line in the brief naming the model, its licence and the date the licence page was read, filled in before the first render. Two months later that line stopped a different job from starting on a community merge whose ancestry nobody could establish.

Worth arguing about

  1. Why did buying the commercial licence not, on its own, settle the question?

    One answer

    A licence bought in week eleven governs use from week eleven. The two hundred images already delivered were generated while the studio was not licensed to use the weights commercially, and no later purchase changes what happened. That is why the disclosure still had to be made: the fix was for the future, and the client was the one carrying the artwork.

  2. Farhan proposed rebuilding only the print work. What is the strongest argument for that position, and why did it lose?

    One answer

    The strongest argument is proportionality: the packaging carries volume, permanence and a printer’s audit trail, so it is where a claim would actually land, and spending nine unpaid days on ephemeral social cards buys almost no reduction in real exposure. It lost because the licence does not draw that line, so choosing it means deciding privately which breaches count, which is a position the studio could not have explained to the client if asked.

  3. What is the difference between the question the marketing head asked and the question about who owns the images?

    One answer

    They are separate. Being licensed to use a model is a term you can look up on the model card in two minutes and which has a definite answer. Whether the output is protectable, and by whom, is unsettled and differs by country: India deems the person who made the arrangements to be the author, the United States requires human authorship. The studio failed the easy question, not the hard one.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    You download FLUX.1 [dev], run it on your own card, and bill a client for the images. Which statement is accurate?

  2. 2

    A client approves a bottle shot made on a preset platform, then asks for the light to come from behind the glass instead of the front. Why does rewriting the prompt not reach it?

  3. 3

    Your first generation after switching checkpoints takes four minutes; every later one on the same model takes fifteen seconds. What is the likeliest cause?

  4. 4

    Generation reaches one hundred per cent and then fails with CUDA out of memory. Which fix addresses the actual peak?

  5. 5

    A character LoRA that was exact on fp16 is a near-miss on a Q4 model. What is happening, and what should you not do about it?

  6. 6

    A client approves an image in March and asks for a small change in September. The same prompt and seed give a different picture. Which record would have prevented it?

From a request to a specification you can generate against

10 lessons · 1 h 17

You will be able toConvert a one-line request into a written image specification (final pixel dimensions, the native generation ratio and the crop-safe area inside it, colour and brand constraints, a purpose-labelled reference pack and an explicit forbidden list) and state which elements will have to be photographed or composited rather than generated.

  1. 2.1Start at the placement, not the picture8 min
  2. 2.2The ratios the model was trained on, and what happens outside them8 min
  3. 2.3Designing for the crop you will not control8 min
  4. 2.4Six references, each with a job7 min
  5. 2.5Write down what must not appear7 min
  6. 2.6A hex value is not something a diffusion model can hit8 min
  7. 2.7One hero or twelve pieces is a different job7 min
  8. 2.8The frames where a phone camera wins7 min
  9. 2.9The one page that ends the revision argument7 min
  10. 2.10What you can sell, and what you must disclose10 min
An illustrative case, built from documented patternsThe coaching centre that wanted a campus it did not haveA coaching institute in Kota commissioning a prospectus and an admissions campaign six weeks before the enrolment season.

The brief arrived as one line in a WhatsApp message: something premium for admissions, like the big chains. The institute had two floors above a bank, one hundred and ninety students, and a genuinely good physics faculty. The director’s reference was a competitor’s brochure showing a landscaped campus, a library with a double-height ceiling, and eleven smiling students on a lawn.

Anusha, the designer, did the thing the brief lesson asks for before opening any generator: she asked where each image would appear, and she asked the fourth question: does anything real have to be in it.

The answers produced a list of eleven images. Four were straightforward: an abstract cover, two section dividers, a background for a results panel. Four were environments (a study scene, a library feel, a revision-at-night mood, a corridor) where nothing depicted a specific real place. And three were the problem: a photograph captioned our campus, a group described as our students, and a portrait row labelled our faculty.

The director wanted all eleven generated. His reasoning was not dishonest in his own mind. The building looks tired, he said, and students judge on photographs, and every institute in this town shows a campus that is nicer than it is. Photographing the actual premises would produce something that looked worse than the truth, because the corridor lighting is bad and the classrooms are full.

Anusha’s position was that the four environments were fine to generate, the four abstracts obviously so, and the three labelled ones were not. A generated building captioned our campus is not a stylistic choice; it is a claim about a place that does not exist, made to sixteen-year-olds and their parents deciding where to spend a year’s savings. The same for a room of generated students and a row of generated faculty.

The cost of saying so was real. The institute had been recommended to her, the fee was the largest single job in her quarter, and the director had made it clear that another designer would do it if she would not. She also knew that he was right about one thing: the competitor’s brochure almost certainly contained a generated lawn.

The cost of not saying so was also real, and it was not only ethical. Parents visit. A parent who has driven from Bundi on the strength of a photograph of a library, and then sees the actual first floor, is a parent who tells other parents. The image that was supposed to build trust is the one that removes it, and it does so at the worst possible moment, in person, with the director in the room.

So she wrote the spec before arguing. One page. Deliverables with pixel sizes. Native render ratios. The forbidden list: no legible brand names, no text other than type we set, no recognisable real landmarks. And then two lines that were the whole negotiation:

Photographed, not generated: the premises, the faculty, and any image captioned as depicting this institute.

Generated: environments, textures and abstract backgrounds that do not depict a specific place or person.

She took the spec to the meeting rather than an opinion, and she brought an alternative rather than a refusal: one afternoon with a phone, a window, and a white card, photographing four faculty members properly and the two best corners of the building at the right hour. Then the environments generated around them, which is a composite and not a fabrication.

How it played out

The director agreed to the two lines, mostly because the alternative was concrete rather than because he was persuaded by the principle. The photography took four hours on a Sunday and cost nothing. Three of the four faculty portraits were usable; the fourth needed reshooting and was reshot. The generated environments (a night revision mood, a corridor, two study scenes) were kept and clearly read as illustration rather than record, which was the point. The prospectus shipped a week late because of the reshoot. Six months later the institute’s counsellor mentioned, unprompted, that several parents had said the faculty photographs were what made the place feel real; the competitor’s brochure, she said, looked like every other brochure. Anusha now sends the two-line version of the spec with every quotation, before the fee is agreed, because saying it on day one is expertise and saying it on day six is an excuse.

Worth arguing about

  1. The director argued that his competitors were already doing this. Why is that not a reason to do it, in terms the brief lesson would use?

    One answer

    Because the test is not what others do but whether the image makes a claim about a specific real thing. A landscaped lawn on a competitor’s brochure is the same failure, not a permission. The parent who visits compares the photograph against the building, and the image that was meant to build trust is the one that destroys it, at the point of decision, in person.

  2. Anusha brought a written spec instead of an opinion. What did the document actually do in that meeting?

    One answer

    It converted a disagreement about taste into a record. With a spec, the review is a comparison between an image and a page both parties agreed to; without one, every review is a negotiation about remembered intentions. The two load-bearing lines (what is photographed and what must not appear) set the expectation before anybody had an opinion about a picture.

  3. Which of the eleven images were legitimate to generate, and what made them different?

    One answer

    The four abstracts and the four environments, because none of them depicts a specific place, person or product a viewer would rely on. They are stage dressing. The three labelled images (campus, students, faculty) were claims about reality, and a generated claim is a fabrication however good the picture is.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    Why does an SDXL render at 1024 × 2048 often contain two torsos?

  2. 2

    You need 1200 × 630 and the nearest SDXL bucket is 1344 × 768. What is the recommended route?

  3. 3

    What does designing a frame for crop safety actually cost you?

  4. 4

    Why does “no logos” in the negative prompt not protect a client from a trademarked shape appearing on background signage?

  5. 5

    A brand red is specified as #E4002B. What is the reliable way to hit it?

  6. 6

    A client approves one hero image and then asks for five more like it. Why is that a different job rather than a small extension?

Getting to a frame worth keeping

10 lessons · 1 h 14

You will be able toRun a structured exploration that reaches a usable frame inside a stated budget (a prompt assembled in named slots, a low-cost contact sheet judged on a grid, seed-fixed single-variable comparisons) and apply an explicit test for whether a frame is worth taking into repair or should be abandoned.

  1. 3.1Build the prompt in slots, not as a sentence you keep rewriting8 min
  2. 3.2The camera vocabulary that works, and the words that do nothing8 min
  3. 3.3Name the light or accept the model’s average8 min
  4. 3.4Describing a look without naming a living artist8 min
  5. 3.5Sixteen cheap frames beat four expensive ones7 min
  6. 3.6Fix the seed or learn nothing7 min
  7. 3.7Change one thing, or you have learned nothing7 min
  8. 3.8Recognising the twenty minutes that will never converge7 min
  9. 3.9Interrogating a picture for vocabulary7 min
  10. 3.10What “good enough to take forward” actually means7 min
An illustrative case, built from documented patternsForty minutes on seven boatsA freelance designer in Kochi, producing a single hero image for a backwater tourism operator’s spring campaign.

The brief was agreed and unusually clear: one hero frame, 1200 by 1500, a line of houseboats moored at dawn, mist on the water, no people, room for a headline across the top third. The operator had asked for one specific thing: seven boats, because the fleet is seven boats and the number appears in the copy.

Ramya started properly. Slots, not a sentence. Medium, subject, action, setting, light, camera, finish. She fixed the seed once she had a composition she liked and ran the first test.

Six boats.

She added seven houseboats at the front of the prompt, where CLIP weights earlier tokens more heavily. Nine boats. She tried exactly seven wooden houseboats in a row. Five. She tried weighting the number. She tried spelling it as a numeral. She moved to a FLUX-family model on the theory that a T5 encoder handling longer natural language might bind the count. Eight. She went back, raised the guidance, lowered it, changed sampler, and generated another batch.

Forty minutes had gone. Every attempt was a competent, attractive picture of houseboats at dawn with the wrong number of them. She had two hours before she wanted to send a first look.

This is the moment the lesson calls the sunk-cost hour, and the diagnostic was sitting in front of her if she had been writing it down. Each failure was the same failure. Not a random scatter of problems (flat light in one, bad composition in another, a duplicated hull in a third) but the identical defect every time, at every setting, on two different architectures. A random failure means the model can produce what you want and you are sampling around it. A systematic one means the thing you want is outside what the model represents, and the twentieth attempt will look like the third.

Counting is a known systematic failure. There is no counting mechanism in a diffusion model. A number word shifts a distribution over how many things appear; below about four it usually lands and above it drifts.

Her options, once she named it, were three, and they had different costs.

Keep prompting. Cost: the remaining two hours, with no reason to expect a different outcome, and a first look that might not exist.

Change the brief. Frame the shot so only three boats are in view, receding into mist, with the rest implied. Cost: the number seven, which was the one thing the client had actually specified, and a conversation about why.

Change method. Generate the scene without a count at all, generate a single boat cleanly on its own, and composite the seven. Cost: perhaps ninety minutes of cutting out, scaling, matching perspective, painting reflections into the water, and matching grain, none of it glamorous, all of it predictable.

The third option also carried a second-order benefit she noticed only when she thought about it: a composited fleet is reusable. If the operator buys an eighth boat, that is a ten-minute change rather than a new hunt for a seed.

She also had one cheaper thing to do first, which she nearly skipped. She had never run a contact sheet on this brief. She had been judging one full-quality frame at a time for forty minutes, at ninety seconds a render, with commitment bias pulling her toward each one. Sixteen frames at twelve steps on her own checkpoint was ninety seconds in total.

How it played out

She ran the sheet, at a wider ratio than she needed so the crop had slack. Two of the sixteen had a stronger composition than anything she had produced in the previous forty minutes, and one of them had the mist doing something the prompt had never described. She took that seed forward at full quality, then composited: the base plate had three boats, she generated a single clean boat on plain water, cut it out four times at descending scale, and painted the reflections in GIMP with a soft brush at low opacity. Total, including repair and grade, was a hundred minutes. The count is exact, because she placed it. The operator’s only note was that the mist was perfect. Ramya now keeps a three-word failure log beside her (she writes what went wrong after each attempt), because it was the writing down, not the knowing, that she had been missing: the pattern was visible after attempt three and she did not see it until attempt fifteen.

Worth arguing about

  1. What distinguishes a random failure from a systematic one, and how would Ramya have spotted hers after three attempts rather than fifteen?

    One answer

    A random failure is different each time (bad hands here, flat light there) which means the model can produce what you want and you are sampling around it. A systematic failure is the identical defect at every setting, which means the thing you want is outside what the model represents. Writing the failure down in three words after each attempt turns a vague sense of frustration into a readable pattern.

  2. She changed to a FLUX-family model partway through. Was that a reasonable third attempt, and what did it tell her?

    One answer

    Yes: the three-attempt rule allows one structural change, and a different text encoder is a genuine structural change rather than another rephrasing. The useful part is what it told her: the same failure on a different architecture is strong evidence that the problem is the mechanism, not the prompt.

  3. Why was the contact sheet worth running even after she had already decided to composite?

    One answer

    Because she had been choosing a base plate by evaluating single full-quality frames, which is both slower and less accurate than comparing many cheap ones. Composition is legible at thumbnail size and commitment bias is not, so ninety seconds of sixteen frames gave her a better base than forty minutes of one-at-a-time judgement had.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    A ninety-word prompt on an SDXL checkpoint puts all the right things in none of the right relationships. What is the mechanism?

  2. 2

    Somebody tells you that adding “8k, masterpiece, highly detailed” improves a modern checkpoint. How do you settle it, and what is the likely finding?

  3. 3

    Why does leaving light unspecified produce the recognisably “generated” look?

  4. 4

    Why is “risograph, two colours, slight misregistration” more stable across seeds than naming a living illustrator?

  5. 5

    Which fault should not influence which frame you take forward from a contact sheet?

  6. 6

    Somebody posts a seed and a prompt, you match both, and your render is a different picture. What is the usual explanation?

Steering with pictures instead of adjectives

10 lessons · 1 h 22

You will be able toTake control of composition by conditioning on an image (a photograph, a biro sketch, a flat colour block, a depth render or a pose skeleton) choose the conditioning type that preserves what the brief requires and discards what it does not, and state the strength and end-step you used and the failure each setting was avoiding.

  1. 4.1Stop describing it and show it the picture8 min
  2. 4.2The model is guessing your composition9 min
  3. 4.3Three passes down the denoise ladder8 min
  4. 4.4A biro sketch is the most reliable composition tool you own8 min
  5. 4.5Paint flat shapes, then let the model make them real8 min
  6. 4.6Get the perspective right by building it9 min
  7. 4.7Canny, lineart, depth, softedge, pose, normal8 min
  8. 4.8Different words for different parts of the frame8 min
  9. 4.9Transferring a look from an image without training anything8 min
  10. 4.10Two controls, without the plastic look8 min
An illustrative case, built from documented patternsThe hour of Blender nobody wanted to spendA three-person interiors practice in Jaipur, pitching a fit-out for a district co-operative bank branch.

The pitch needed four visuals of a branch interior that did not exist yet: the customer hall from the entrance, the same hall from the counter, a corner with the queuing system, and a manager’s cabin. The practice had the floor plan, the furniture schedule and two weeks.

Sameer, who does their visuals, started with prompts. The results were beautiful and useless. Each one was a plausible bank interior; none of them was this bank interior, and no two agreed about where the counter was or how high the ceiling ran. When he described the layout in words (the counter along the left, a waiting bank of six chairs facing it, a glazed cabin at the back right) the model bound about half of it and invented the rest.

He moved to sketching, which is the right instinct and the cheaper tool. Five minutes of biro, photographed on a phone, contrast raised in GIMP, fed as a scribble control at strength 0.7 ending at 0.65. The arrangement came back correct. The counter was on the left. The chairs were where he had drawn them.

And the room was subtly impossible. His drawn walls did not converge on a consistent vanishing point, and the conditioning had been faithful to his mistake. The senior partner, who has looked at interiors for twenty years, said it felt wrong within four seconds of seeing it and could not say why for another thirty. That is the specific failure of a sketch: it fixes arrangement and it does not fix perspective, and clients notice the difference precisely when the image is large on a screen in a meeting.

So the decision, at the start of week two.

Redraw the sketches more carefully. Sameer can construct perspective by hand; he learned it at college. Cost: two hours per view, four views, and a real chance of producing a different perspective error rather than none, because hand-constructed perspective is exactly as accurate as the person doing it at eleven at night.

Keep the sketch route and fix the geometry in repair. Cost: perspective is baked into every part of a frame at once. It is the category the keeper checklist puts under cannot be fixed by repair, and an hour spent discovering that is an hour gone.

Learn enough Blender to build a blockout. Not a model: grey boxes. Planes for floor and walls, cubes for the counter and the chairs, a cylinder for the queue post, a capsule where a person stands. Set a camera with a real focal length at a real eye height, render a depth pass, feed it as a depth control at 0.6 ending at 0.7, and prompt the materials and the light. Cost: an hour of a tutorial and an afternoon of fumbling, on a pitch with a deadline, by a person who had avoided Blender for six years.

The practice had one more consideration that decided it. The bank’s committee would ask for changes. They always do, and the changes are always move the counter and can we see more of the waiting area. On the sketch route, each of those is a new drawing and a new hunt for a seed. On a blockout, moving the counter is thirty seconds and a re-render, and the four views stay geometrically consistent with each other because they are four cameras in one scene.

How it played out

The Blender afternoon cost six hours rather than one, most of it lost to the depth pass being normalised across a far wall fifty metres away that the camera could see through a window, which squashed everything of interest into a narrow band of grey and made the control almost useless. Moving the far clipping plane in fixed it in two minutes once he understood what he was looking at. After that the four views took about forty minutes each, including repair, and the perspective was correct by construction because the software had computed it. The committee asked for two changes: move the counter two metres toward the entrance, and show more of the waiting area. Both were done in the blockout in under ten minutes and re-rendered the same afternoon, and all four views stayed consistent. The practice now keeps blockouts as project files, and the bank branch scene became the starting point for a credit-society fit-out three months later.

Worth arguing about

  1. The sketch produced the right arrangement and the wrong room. What exactly does a sketch control, and what does it not?

    One answer

    A scribble or lineart control preserves structure (where things are, how big, roughly what shape) and it is faithful to the input including its errors. It does not construct perspective. If the drawn walls do not converge correctly, the model reproduces that, and the result is a space viewers feel is wrong without being able to name why.

  2. Why did the depth map nearly fail, and what was the fix?

    One answer

    Depth is normalised across the whole visible range. With a wall fifty metres away in shot, the two metres of the room that actually mattered were compressed into a narrow band of grey, so the control carried almost no information. Moving the far clipping plane in (or using Mist with a manually set start and depth) restores the range where the scene is.

  3. What tipped the decision toward the blockout, given that it was the slowest option to start?

    One answer

    The revisions. A committee asking to move the counter is a thirty-second change and a re-render on a blockout, and a new drawing plus a new seed hunt on the sketch route. The blockout is also a reusable file, and four views rendered from one scene are geometrically consistent with each other in a way four separate sketches never are.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    You run img2img at 0.85 and almost nothing of your photograph survives. What should you conclude?

  2. 2

    A conditioned image comes back flat and traced. Which setting is most likely wrong?

  3. 3

    Why does a two-minute painting of flat colour blocks control layout and palette at the same time?

  4. 4

    You need a different person in exactly this photograph’s pose, with everything else free to change. Which control?

  5. 5

    Four seeds at your current settings come back almost identical. What does that tell you?

  6. 6

    One area of a conditioned image looks wrong on every seed while everything else is fine. What is the diagnosis and the fix?

Repair, extend, assemble

10 lessons · 1 h 22

You will be able toTake a flawed base render to a deliverable by masked repair: fix hands, faces and small objects at full resolution with stated denoise values, extend the frame without a visible seam, remove an object cleanly, and composite a photographed item into a generated scene with matching perspective, contact shadow, optics and grain.

  1. 5.1The finished image is never one generation9 min
  2. 5.2Fix it in the order that stops you doing it twice8 min
  3. 5.3The three repairs everybody needs, with settings8 min
  4. 5.4Type is set, not generated8 min
  5. 5.5Extending a frame when the crop changes8 min
  6. 5.6Four ways to remove an object, and when each is right8 min
  7. 5.7The real product in a generated world9 min
  8. 5.8Making two sources agree8 min
  9. 5.9The fault the client sees on a big screen8 min
  10. 5.10Getting to poster size without a second horizon8 min
An illustrative case, built from documented patternsA 4:5 frame, a 16:9 banner, and two hoursA one-person studio in Pune, delivering the launch assets for a hardware startup’s first product page.

The hero image had been approved on Tuesday. It was 4:5, generated at 896 by 1152 and finished properly: the product photographed against a window and composited into a generated workbench scene, contact shadow painted in, grain matched, forty minutes of repair on the bench edges and a stray reflection. The client had signed it off in writing.

At four o’clock on Thursday, two hours before the page went live, the client’s developer said the desktop hero slot was 16:9 and always had been. Nobody had asked the question at the start, and the spec, which Kiran had written, said Hero: 1200 × 1500 and nothing else.

Cropping a 4:5 frame to 16:9 removes the top and bottom, which is where the product and the light source were. The composition dies. So the real options were two, and both had a clock on them.

Outpaint the sides in steps. Enlarge the canvas by 256 pixels, mask the new area plus about 100 pixels of the existing image, inpaint at high denoise with a prompt describing what continues there, repeat until the ratio is right. That is roughly four steps each side. Each step risks perspective drift on the workbench edge, light drift as the new area gradually brightens, and the characteristic second-subject failure if the prompt still describes the product.

Regenerate at 1344 × 768 using the approved frame as an img2img reference at low strength, then re-composite the photographed product, repaint the contact shadow, and redo the grade. A clean 16:9 composition, and about ninety minutes of work that has already been done once.

Kiran chose outpainting, for a reason that was correct at four o’clock: the approved frame was approved, and a regeneration is a new picture that the client has not seen and might not like at six. Signed-off work is worth protecting when the clock is the binding constraint.

The execution nearly went wrong in exactly the documented way. On the first attempt he extended 400 pixels in one leap with the original scene prompt still in the box. The model had empty canvas and a prompt describing a product on a workbench, so it put a second product on a second workbench, at a slightly different scale, with a light source that did not agree with the first. He deleted it, went back to 256-pixel steps, and rewrote the prompt for each step to describe only what continues there (plain workshop wall continuing left, soft falloff) rather than what the image is of.

After the third step on the left side he checked the long straight edge of the bench, as the lesson says to do at every step rather than at the end, and found it had begun to curve. He added a canny control on the existing edges for the fourth step and it held. On the right side he saw a faint vertical line at the second join, visible as a slight change in contrast, and cleared it with a low-denoise pass at 0.2 over a band spanning the seam.

The last thing he did, at twenty to six, was the thing that is easy to skip: he looked at the extended image as a new picture rather than checking whether the join showed. The original frame worked because the product sat close to the right edge with tension against it. With 400 more pixels of room on that side, the tension was gone and the product floated in the middle of a wide empty bench.

How it played out

He cropped back in. The final 16:9 was not the full extension: it used about two thirds of the new canvas on the left and almost none on the right, which put the product back near the right edge where the composition had wanted it. That took four minutes and was possible only because he had generated more room than he needed rather than exactly enough. The page went live at six with the 4:5 and the 16:9 from one approved frame. The next morning he added two lines to his spec template, before the deliverables list: All required ratios, including any the development team knows about, and Generate at the widest required ratio; crop the others from it. Three jobs later, that second line saved an afternoon on a brief that turned out to need a 9:16 story frame nobody had mentioned either.

Worth arguing about

  1. Why did the first 400-pixel extension produce a second product, and what two changes fixed it?

    One answer

    The model sees only its context window, so most of a 400-pixel strip has no nearby real pixels to match against and invents freely, and the prompt still described a product, so it put one there. The fixes are steps of 128 to 256 pixels with 64 to 128 pixels of overlap into the existing image, and a prompt that describes what continues in the new area rather than what the picture is of.

  2. Kiran protected an approved frame rather than regenerating. When would the other choice have been right?

    One answer

    When there is time. Outpainting is a rescue: it extends a scene and cannot extend a composition, and four careful steps can take longer than a fresh generation at the right ratio using the approved frame as a reference. With half a day rather than two hours, regenerating at 1344 × 768 and re-compositing would have given a composition designed for 16:9 instead of one stretched into it.

  3. The extension was technically seamless and compositionally worse. What did that cost, and how was it recovered?

    One answer

    The original worked because the product held tension against the right edge; adding room removed it and left the product floating. It was recovered by cropping back into the enlarged canvas rather than using all of it, which was only possible because he had generated more room than the ratio strictly required. Judge an extended frame as a new picture, not only by whether the join shows.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    Inpainting a hand that occupies eighty pixels keeps producing the same mush. Which setting changes the outcome?

  2. 2

    Why is grain always the last step in a repair sequence?

  3. 3

    Why are eyes masked together rather than repaired one at a time?

  4. 4

    Extending a portrait sideways by outpainting produces a second person. Why?

  5. 5

    You are removing a cup from a table by inpainting. Which two adjustments make it work?

  6. 6

    Why is a product label composited in after a tiled generative upscale rather than put through it?

The same thing, twelve times

9 lessons · 1 h 12

You will be able toDeliver a set of images that hold one character, one product and one visual system: build a character sheet, choose between an image adapter and a trained LoRA on a stated cost-and-quality basis, prepare a training set that avoids the four common dataset faults, and hold light, palette, lens and finish constant across a campaign.

  1. 6.1The same face twice is the hard part9 min
  2. 6.2Build the reference before you build the images8 min
  3. 6.3Training a character LoRA on hardware you can borrow9 min
  4. 6.4Four dataset faults, and the LoRA each one ruins8 min
  5. 6.5The decision, with the numbers7 min
  6. 6.6A product is harder than a face8 min
  7. 6.7Five constants that do more than the face8 min
  8. 6.8A file scheme that survives the revision round7 min
  9. 6.9A worked run, with the budget and the failure8 min
An illustrative case, built from documented patternsTwelve frames, one weaver, and a photograph nobody had asked permission forA handloom co-operative in Madurai commissioning a twelve-image festival campaign with one recurring character.

The campaign was agreed at twelve images: four for print, eight for social, all sharing one visual system and one recurring character: a weaver at a pit loom, seen across a working day. The co-operative had three weeks and a small budget, and Meera was doing it alone.

She built the system file first, which is the part that pays: hard side light from camera left, 35mm at waist level, a palette of indigo, raw cotton, brass and deep brown with no green anywhere, a crop convention with the subject in the left third, and a finish of colour negative grain with lifted blacks. Then the character sheet: a contact sheet of thirty portraits, one chosen, refined with seed variation at 0.15 until the face was specific rather than average, and seven angles built from it using a face adapter at 0.8.

The decision came at the point where it always comes. Twelve images, seen side by side, four of them printed at A3. An adapter at 0.75 gets roughly seventy per cent of an identity in thirty seconds and drifts between frames. A trained LoRA gets most of the rest and costs about an hour on free Kaggle GPU hours, plus assembling and captioning the training set, plus testing epochs: call it two hours the first time.

She ran the fifteen-minute test rather than guessing: four frames with the adapter, in the four most different situations the brief contained, laid out at delivery size, shown to her flatmate who had not been in the project. The answer was immediate. The flatmate said it looked like two different women. That settled it.

Then the co-operative’s secretary made an offer that seemed helpful. One of their actual weavers, Kalaivani, has been photographed hundreds of times over the years for exhibitions and government schemes. He had a folder of about ninety images. Train it on her, he said, and the character will look like a real person because she is one.

The technical case was strong. Ninety real photographs across many years, many lightings, many angles: the opposite of the dataset fault where every image came from one afternoon against one wall. The LoRA would almost certainly be better than one trained on a character sheet.

The objection was not technical. A LoRA of a person is a tool for producing unlimited images of that person doing things she has not done, and the folder was not consent. Kalaivani had agreed, years ago, to be photographed for an exhibition. She had not agreed to have her likeness trained into a file that a designer keeps and reuses, appearing in a festival campaign she has not seen. The photographers who took the images have rights in them too, and nobody in the room knew who several of them were.

The cost of refusing was concrete: a harder, slower route to a weaker LoRA, on a three-week deadline. The cost of accepting was a permanent asset built on an agreement nobody had, in a campaign that would be printed and posted publicly, for a co-operative whose whole standing rests on its relationship with its weavers.

How it played out

Meera asked to speak to Kalaivani, which took a day to arrange and turned out to be the shortest part of the problem. Kalaivani agreed, on two conditions she raised herself: that the campaign say the images are generated, and that she see the twelve frames before they were posted. Meera wrote both into the spec, took a written note of the agreement with the secretary as witness, and asked for the thirty photographs Kalaivani could identify the photographer of. Thirty varied images is more than enough: the dataset checklist was satisfied on lighting, angle and distance, and she discarded four near-duplicates from the same exhibition burst. The LoRA trained in thirty-five minutes on Kaggle; she picked epoch six of ten, because epoch nine had started putting the exhibition hall’s grey backdrop behind the character wherever she went. The campaign shipped on time. Kalaivani asked for one frame to be changed, which was done. The disclosure line cost nobody anything, and the secretary now asks for written permission as a matter of course.

Worth arguing about

  1. Why was the folder of ninety photographs not consent, given that Kalaivani had agreed to be photographed?

    One answer

    She agreed to a photograph for a stated purpose. A LoRA is a different thing: a reusable tool that produces unlimited new images of her doing things she has not done, kept by a third party, for purposes not agreed. The photographers also hold rights in the images themselves. Permission has to be for the actual use, in writing, and is much cheaper to get before training than after a campaign has shipped.

  2. Meera picked epoch six rather than epoch ten. What was the symptom that decided it?

    One answer

    The exhibition hall’s grey backdrop began appearing behind the character regardless of the prompt. That is overfitting: the LoRA learns whatever is constant across the training set, and if a location recurs it becomes part of the concept. Saving every epoch and comparing the same prompt and seed across them is how the middle epoch gets found: identity present, prompt still working.

  3. She showed four adapter frames to a flatmate rather than judging them herself. Why is that the better test?

    One answer

    Because she had been staring at the character for days and could see the differences either way. The question is not whether the differences are visible to her but whether a stranger, at delivery size, in the order the audience will see them, would say it is the same person. That answer is usually immediate and usually right, and it replaces an hour of opinion with fifteen minutes of evidence.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    Why will a fixed seed not give you the same character in a new pose?

  2. 2

    Twenty training photographs were all taken in one session against one wall. What will the LoRA do?

  3. 3

    Your character LoRA always puts the subject in the same shirt. What went wrong in the captions?

  4. 4

    You have four frames from an adapter at 0.75, side by side at delivery size. How do you decide whether to train a LoRA?

  5. 5

    Why is a product harder to hold consistent across a set than a face?

  6. 6

    One set has a slightly drifting face and one rigorously held look. Another has a perfect face and twelve different lighting setups. Which reads as a set?

Finishing and handing over

9 lessons · 1 h 12

You will be able toTake an approved frame to a delivered file: reach the output resolution the medium genuinely requires, prepare colour for screen or press, set type that stays legible over a photographic background, run a named twelve-point QA pass, and hand over a package with disclosure, alt text and archived source files.

  1. 7.1Upscaling either restores detail or invents it8 min
  2. 7.2Nothing goes to a client straight from the model8 min
  3. 7.3300 dpi is one number applied to everything8 min
  4. 7.4The blue on your screen is not going on the press8 min
  5. 7.5Making words readable on a photograph8 min
  6. 7.6Twelve things to check before you send8 min
  7. 7.7Exporting without wrecking it at the last step8 min
  8. 7.8Describing the image, including what it is8 min
  9. 7.9When “just change one thing” is a rebuild8 min
An illustrative case, built from documented patternsSeventy megapixels nobody could seeA district administration in Ranchi printing an A1 public-health poster for four hundred and twenty panchayat noticeboards.

The artwork was finished and approved: a generated illustration of a vaccination queue at a rural health sub-centre, brand colours from the state health department, a headline in Hindi set in Inkscape over a quiet upper third. The press date was in five days. The department’s procurement note said, as such notes almost always do, artwork at 300 dpi.

A1 is 594 by 841 millimetres. At 300 dpi that is 7016 by 9933 pixels: about seventy megapixels, and a TIFF of roughly two hundred megabytes. The base render was 1216 by 832, upscaled once conservatively to about 3500 pixels on the long edge during finishing.

Getting from there to seventy megapixels is not a resize. It is a generative upscale: tiled diffusion at low denoise, forty minutes of processing, and then a careful check of every tile boundary. Ashish, who had built the poster, knew what that would do. The illustration contains a row of small figures in the queue, a signboard on the sub-centre wall, and the department’s logo composited in at the bottom. A generative upscale invents plausible detail at the scale it is asked for. Small faces become different faces. The signboard’s lettering becomes different lettering that still looks like lettering. The logo, if it went through, would come back subtly not the logo.

So his choices were three, and the deadline made them unequal.

Do the 300 dpi upscale. Cost: most of a day, a mandatory mask around the logo and the signboard so they do not go through the tiled pass, a repair pass on the queue faces afterwards, and a file large enough that the department’s email would reject it.

Deliver at 3500 pixels and say nothing. Cost: a procurement note says 300 dpi, and supplying something that does not meet a written spec without flagging it is how a job gets rejected at the printer by a person who is only checking numbers.

Ask the printer. Cost: a phone call, and the risk of an answer he did not want.

The arithmetic said the third was right before the call was made. A noticeboard poster is read from about a metre, sometimes two. The rule is roughly 3438 divided by the viewing distance in inches: at one metre, 87 dpi; at two, 44. Even with a generous safety margin at 150 dpi, A1 needs 3508 by 4967 pixels: seventeen megapixels, which is a conventional enlargement of the file he already had, with nothing invented.

There was a second problem waiting, and it was the one that would actually have caused a reprint. The state health department’s palette includes a vivid cyan-leaning blue, and Ashish had graded the whole illustration warm around it on a bright laptop. He soft-proofed in GIMP against the printer’s CMYK profile with the gamut warning on, and a large area of the sky flagged flat grey: unprintable. Converted at export without looking, that sky would have arrived on four hundred and twenty posters as a duller, greyer, slightly purple blue, and the department would have been right to say it was not their colour.

How it played out

The printer’s answer to the direct question (what resolution do you want artwork at, at final size, for this process) was 150 dpi, and he volunteered that the screen for large-format work could not carry more anyway. Ashish delivered a 3508 by 4967 TIFF, produced by a conservative super-resolution model in about four minutes, with the logo and the signboard composited back in at full resolution after the enlargement rather than put through it. He fixed the gamut problem before converting, by desaturating the sky range and re-grading the illustration toward colours the process could reach, and he printed one A4 section at the printer’s shop as a physical proof and took it to the department before the run. The health officer approved the proof in the room. Total time saved against the day the 300 dpi route would have cost: about six hours, all of which went into the proof and the colour work, which is where it mattered. The procurement template now says at final size, at the resolution confirmed by the printer for this process.

Worth arguing about

  1. Why would a generative upscale have been the wrong tool here even if there had been time for it?

    One answer

    Because it invents rather than restores. The queue’s small faces, the signboard lettering and the logo all carry information, and a tiled diffusion pass would have produced plausible replacements for them: different faces, letterforms that look like letters and are not, a logo that is subtly not the mark. The rule is that anything which must be correct does not go through a generative upscale; it is composited back in at full resolution afterwards.

  2. Where did the 300 dpi figure come from, and why is applying it to a poster the wrong move?

    One answer

    It comes from offset printing, twice the standard 150-line halftone screen, and it happens to match what the eye can resolve at about thirty centimetres, which is how far away a magazine page is held. Required resolution is set by viewing distance (roughly 3438 divided by the distance in inches) so a poster read at a metre needs about 87 dpi and 150 with a safety margin. Applying the hand-held number everywhere is how people generate files nobody can see the detail in.

  3. The colour problem would have caused a reprint. What made it visible before the press run rather than after?

    One answer

    Soft proofing against the printer’s own CMYK profile with the gamut warning on, before converting. A large flagged area is a decision point: re-grade toward colours the process can reach, under control, rather than letting the converter choose a substitute. A printed proof approved in the room then turns “it looks duller than the screen” from a complaint into a thing everybody had already seen.

Test yourself6 questions on this modulePractice. Nothing is recorded and no score is kept.
  1. 1

    Which image should never go through a diffusion-based “creative” upscale?

  2. 2

    Why Curves rather than Brightness and Contrast on a raw generation?

  3. 3

    An A1 poster will be read from about a metre. What resolution does it need?

  4. 4

    A vivid cyan-blue sky flags grey under a CMYK soft proof. What should you do, and why then?

  5. 5

    A headline sits over a photograph. Where do you sample to test whether it is legible?

  6. 6

    A client says the delivered file looks washed out on their machine. Which export setting is the likeliest cause?

What this course is

The craft of getting a specific, finished image out of a model on a deadline. Choosing between hosted tools and open weights on cost, control and licensing. Preset platforms like Higgsfield and what they take away. Reference images and denoise strength, inpainting and outpainting, pose and depth conditioning, character consistency, upscalers that invent detail, the finishing pass in a raster editor, and what you must tell a client.

Who wrote it

Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.

More in Make things

  1. Making Things with AI84 lessonsImages, video, voice and music: how they work, where they break, who owns them.
  2. Design, before Any Software74 lessonsHierarchy, type, colour and spacing: the part of design you can do with a pencil, before any software.
  3. Editing an Image78 lessonsLayers, masks, curves and export: the craft behind a photo that still holds up at full size.
  4. Vectors, Logos and Things That Get Printed73 lessonsDraw curves that hold at any size, then hand a press a file it will not send back.
  5. Hugging Face, End to End75 lessonsRead a model card licence-first, run a Space for free, keep a token safe, publish something of your own.
  6. Editing Video77 lessonsCuts, sound, colour and export, taught on DaVinci Resolve, which costs nothing.
  7. Video with AI66 lessonsPlan the shots, generate ten takes, throw eight away, and cut what is left in a real editor.
  8. Motion, Sound and Music72 lessonsWhy nothing in the world starts at full speed, and why a blanket beats a better microphone.
  9. Making It Say Something64 lessonsClean work that communicates nothing is the commonest self-taught failure, and it is fixable.
  10. Working for Yourself84 lessonsSix portfolio pieces, twelve cold emails, a rate with arithmetic behind it, and a deposit before you start.