How we use AI as a photo lab

How we use AI as a photo lab

Vivid Metal Prints · Lexington NC · Field notes from the floor

We are a metal print lab in North Carolina. Over the last year we have rebuilt a large part of how this shop runs using AI, and we have been asked about it enough times by other labs that it is worth writing down properly.

This is the long version. What we use it for, what we deliberately do not use it for, the exact method, and what it actually replaced. If you run a lab or a print shop, everything here is reproducible for about thirty five dollars a month. None of it required us to write code.

Before you scroll

Some of what follows is going to look like a lot. It is not. Strip it all back and it is two apps and one loop, and you will have the loop memorized after you run it twice. The rest of this article is just me explaining the parts I usually have to rush through when I teach it.

If you take one thing off this page, take the loop. Learning that alone puts you ahead of ninety percent of the people out there telling you they use AI, because most of them are still typing one sentence into a box and hoping.

Start with the part everybody actually wants answered.

Where AI touches a file, and where it does not

When a lab says "we use AI," the first thing a photographer hears is you are letting a machine change my picture. That is a fair thing to worry about and it deserves a straight answer rather than a marketing one.

Here is exactly where we stand.

  • YESTopaz upscaling, when a file needs to be enlarged. If an image has to go bigger than its native resolution comfortably allows, we run it through Topaz. We have the data sharing settings turned off, so your image is not being sent out of our shop to improve somebody's model.
  • NONo generative AI on your image. We do not use AI to invent detail, recompose, replace backgrounds, remove or add objects, or "improve" what you sent us. The photograph you delivered is the photograph we print.
  • NOColor, cloning, retouching and QC are done by people. Every one of those is a human operator at this facility making a judgment call. That has not changed and we are not looking to change it.
  • NONothing else in this article touches customer files at all. Everything below is tooling and administration. Spreadsheets, quoting, file organization on our own drives, our own internal software. Your images are not in any of it.

That is the whole boundary and we would rather state it precisely than make a broad promise we would have to walk back. Upscaling is an AI process. We use it, we tell you we use it, and we turned off the part that phones home. Everything past this point is about running a business, not about touching pictures.

The reframe that makes the rest of it work

Almost everyone who bounces off this stuff bounces for the same reason: they are picturing a search engine.

You are not paying twenty dollars for software. You are paying twenty dollars for a person.

And every separate conversation you open is a separate person. Not a session, a person. The one you told about your pricing knows your pricing. The one you told about your CNC files knows your CNC files. They do not compare notes.

That single fact explains nearly every mistake we made early on. Opening a new chat and being annoyed that "it forgot". It did not forget, that is somebody who has never met you. Dumping four unrelated projects into one conversation is one employee juggling four jobs badly. Give each conversation one job and it will be excellent at that job.

The second reframe is about how you talk to it. Google takes keywords. This takes conversation, and the single most useful sentence we have found is this one:

Say this on anything you do not understand

"I'm a zero out of ten at this. Walk me through it like you're guiding a five year old, and stop and wait for me at each step."

It genuinely changes the shape of what comes back, and it removes the single biggest reason people quit, which is being handed instructions they cannot follow.

The stack, and what it costs

Two accounts. That is the whole floor.

Software What it does Cost
Claude The worker. Reads files on our machines, browses, writes and runs its own code, builds our internal tools. This is the one you cannot skip. $20/mo
Otter Transcription. Records us talking and hands over the raw transcript. Sounds boring. It is the unlock, and the reason is further down. ~$15/mo

Thirty five dollars a month and every method in this article works. We eventually added Netlify for hosting what we build, Monday as the hub, and a handful of connectors, but none of that is month one and none of it is required to start.

The one Otter setting that matters

Pay for the plan with unlimited recording length. On the free tier you spend the whole time watching a clock, and the first time you lose a good ten minute riff to a silent timeout you will understand the fifteen dollars. Ignore Otter's own AI summaries. All we want out of it is the raw transcript.

Context is the whole game

The difference between shops that get something remarkable out of this and shops that get mediocrity is not intelligence and it is not clever prompting. It is how much context they bothered to hand over before asking for anything.

Here is the trap, and we fell in it repeatedly before we figured it out. You have an idea. You open a chat. You type three sentences. It builds the wrong thing. You spend the next two hours correcting it, and the entire time it is carrying your original three thin sentences around as the foundation of everything it does.

The fix is to separate working out what you want from building it, and to do them in two different conversations.

  1. Open a chat and describe the idea badly. At length, out of order, contradicting yourself. Then end with an explicit instruction: do not build this, interview me, and give me a prompt I can paste into a fresh chat.
  2. It asks you ten to thirty questions. Every one of them will be a question a professional in that field would have asked you.
  3. It hands you a complete brief. Dense, organized, containing everything you actually meant.
  4. Paste that into a brand new chat. Now the real work starts from a full picture instead of three sentences.
Why a fresh chat matters

The interview conversation ends up cluttered with false starts and abandoned ideas. You do not want that mess sitting underneath your build. A clean chat starting from a dense brief gets 100% signal and no noise, and it has far more room to work before it fills up.

The loop

This is the method. Everything else in this article is a footnote to this section.

The
Loop
01 · YOURiff
02 · AIListen
03 · AIInterview
04 · YOUAnswer
05 · AIBuild v1
06 · YOUUse it
07 · YOUCritique
08 · AIRebuild

Your job: talking  /  Its job: everything else

Screenshot this part
01 · YOU

Riff

Open Otter, hit record, and talk about the thing you want to build. Not a script, a ramble. Say why you want it, who it is for, what annoys you about doing it the current way, and every half formed idea you have. Go sideways. Contradict yourself. Then stop recording. Fifteen minutes of that beats an hour of typing, and none of it needs to be organized.

02 · AI

Listen

You do not copy and paste anything. Open Claude and say: go listen to the Otter recording I just left you about this project. That is the whole step. The Otter connector you set up earlier lets it reach in and pull the raw transcript itself. Give Otter a few minutes to finish transcribing first, and longer than that if you talked for an hour.

03 · AI

Interview

It comes back with ten to thirty questions, and they are the questions a good developer would have asked you. What happens if somebody types a bad number. Who else needs to see this. What does it look like on a phone. Do not answer them in the chat box. Read them, sit with them, and go to the next step.

04 · YOU

Answer aloud

Start a new recording and answer them out loud, one at a time. Say the question number, then talk. If a question sparks something you had not thought of, chase it right there. This is the recording that decides whether version one is any good, so do not rush it. Then stop and say: I answered your questions in the recording I just made, go scan it.

05 · AI

Build v1

Now you say: go listen to that recording and build me version 1.0. Add one line that will save you an hour: if anything I said was contradictory or unclear, flag it instead of guessing. This is the most context it will ever have about your project, which is exactly why this is the moment it does its best work.

06 · YOU

Use it

Open the thing and actually use it. Click every button. Run a real job through it. Do not judge it from a screenshot and do not be polite about it. You are hunting for what is broken, what is missing, and the things you could not have known you wanted until it was in your hands.

07 · YOU

Critique aloud

Record yourself using it and narrate as you go. I hate this header. Move that block to the bottom. The pricing section is perfect, do not touch it. Describe how you want it to feel, not which setting to change. Picking the setting is the developer's job. Go overboard on what you ask for, you can always pull it back.

08 · AI

Rebuild

Say: I left you a recording with my notes on version 1.0, go listen and make me version 2.0. It comes back fixed. Then you run 06, 07 and 08 again. And again. Ten times, fifty times, however many it takes. Every round is cheap and every round lands closer, and that repetition is the entire job.

↻ Repeat 06 to 08 until it is right. Ten times, fifty times, two hundred times.

Notice what is not in there. No typing long messages, no pasting transcripts, no code, no configuration. You talk, and you tell it where to listen.

The exact words we use

Step 2 · kick off the interview
Hey, I just left you a recording in Otter about [project]. Go listen to it.

Don't build anything yet. I want you to ask me as many questions as you
need so we can really flesh this out together. Assume I'm a zero out of
ten at coding and explain anything technical like you're guiding a
five-year-old.
Step 5 · build version one
I answered all of your questions in the Otter recording I just made.
Go scan it, then build me version 1.0.

If anything I said was contradictory or unclear, flag it instead of
guessing.
Give Otter time to finish

When you stop a recording, Otter needs time to transcribe before Claude can read it. After a long session give it ten to thirty minutes. Tell it too early and it reads half a transcript, and you will waste a cycle wondering why version one is missing most of your ideas.

Do not skip the interview

Every single time we jumped straight from a riff to "now build it," we got a version one that was 60% right and spent an hour clawing back the other 40%. The interview is the cheapest hour in the process.

Why talking beats typing

This is the part that sounds like a gimmick and is not. It is not about speed. Speed is a side effect.

Watch yourself the next time you type a message. You start a sentence, delete half of it, tighten it, cut the tangent, drop the caveat, and send something clean and short. Every one of those cuts was context. The tangent you deleted was the thing that would have made version one right. You edit your own brief down to a stub and then wonder why the output is generic.

When you talk you do not edit. You go sideways. You circle back. You say "actually, no, more like" and then describe the thing properly on the second attempt. And it understands all of it.

Fifteen minutes of talking produces more usable context than an hour of typing, at a fraction of the effort. Some of our recordings run two hours. Nobody would type that much.

It feels ridiculous for about three sessions. Then it flips, and you catch yourself doing design work in the car on a drive you were going to spend on the radio.

The trick that kills the awkwardness

Do not talk to a machine. Picture a very good developer sitting across from you who has never seen your shop, and explain it to them. The register becomes natural immediately, and it happens to be exactly the right mental model anyway.

Reviewing out loud is where it earns its keep

Most people talk their way into version one and then start typing again for the revisions. That is backwards. You get version one, it is 70% there, you type "make the header bigger and change the colors," and you get something 72% there. Forty rounds of that is a week spent reaching 85%.

Instead: open the thing, hit record, and narrate your reaction in real time as you scroll. Unfiltered, detailed, ranting where it is warranted.

  • Say what is good, too. "Do not touch the pricing block" is as valuable as a complaint, because it stops good work from being rewritten.
  • Change your mind mid sentence. "I love the banner. Actually, no, I hate it." That is not a mistake to clean up, it is information about what you actually feel.
  • Describe motion and feeling, not settings. "Rotates in as I scroll" beats "add an animation." You are the client here, not the implementer.
  • Go overboard, then pull back. Far easier to say "that is too much, dial it back 40%" than to coax life out of something flat.
  • Do not fix, complain. Your job on that recording is reaction. Its job is solutions.
  • Stutter freely. Say "um" fifty times, start the same sentence three ways, do not re-record. The transcript can be a disaster and the output will still be clean.
All you are doing is pretending you are criticizing a developer's work to his face. And then he goes and fixes it.

Runway and handoffs

Every conversation has a finite amount of memory, and nobody tells you when you are running out. As you approach the limit it does not crash, it starts compressing. It takes the rich version of everything you discussed and quietly turns it into a bulleted list to save room. So it does not fail. It gets dumber. It loses details from early on, repeats decisions you already made, contradicts something it said an hour ago. By the time you notice, you have usually wasted a session.

Conversation contextRunway remaining
As a chat fills up it does not crash. It quietly compresses everything you said earlier into summaries, and starts losing the detail that made it useful. Hand off before you get to the red.

So you ask.

Ask this every hour or so
How's our context looking? How much runway do we have left in this chat?

If the answer is "we're getting loaded," stop. Do not start the next feature. Ask for a handoff document, read it, copy it, open a brand new chat, and paste it as the very first message. Nothing before it, nothing after it.

That is how a serious project runs across twenty five separate conversations chained into one continuous piece of work. Every link in that chain is a handoff.

The handoff request we use
We're getting close on runway. Give me a complete handoff document I can
paste as the first message of a fresh chat. Include:

  1. What we're building and who it's for, in plain language.
  2. Every decision we've made and WHY we made it.
  3. Things we tried that didn't work, so the next chat doesn't retry them.
  4. Current state: what files exist, what's done, what's half-done.
  5. Exactly what the next step is.
  6. My constraints and preferences, and my skill level.
  7. Anything I've said that you think is important that I might not
     realize is important.

Write it for someone who has never seen this project.
Also tell me anything you think I've been getting wrong or avoiding.

Two rules that took us a while to learn. Hand off early, not at the buzzer, because a handoff written by a chat that has already degraded is itself degraded. And read it before you paste it, because that is your one clean look at what it thinks the project is. If it has drifted you will see it there, and it is ten times cheaper to correct in a handoff than three hours into the next chat.

Then keep every handoff. That is your project's save file. If a chat goes sideways you restart from the last good one and lose an hour instead of a month.

Pointing it at real files without wrecking anything

This is the part that makes people nervous, correctly. Claude has an Add folder button that gives it access to an entire folder on your machine. It can read everything in there, reorganize it, and write new files into it. That is enormously useful and it is exactly the capability you want guardrails on.

Approval mode When we use it
Manually approve The default, and where you should live. It stops and asks before anything that moves, renames or deletes.
Auto approve Narrow, well defined jobs where we want to walk away and not come back to find it waiting on a permission click.
Skip all approvals Never. Not while learning, not on a folder that matters.
The safety net that goes in every cleanup task we run

Don't delete anything. If you think something should be deleted, move it into a folder called _to_be_deleted and I'll review it myself.

Now the worst possible outcome is a folder you have to look through, instead of a file you cannot get back. We pair it with "Don't change anything in this folder, just create me a new one" any time we point it at originals.

Start somewhere that does not matter

Make a test folder, throw thirty junk files in it, and let it loose. Watch what it approves and what it stops to ask about. Get a feel for its judgment. Then point it at something real. We still keep a test folder for exactly this.

Keeping the cost down

On a twenty dollar plan your monthly allowance is the real constraint, not your ideas. Three habits roughly double how far a month goes.

Model and effort

There are two dials. The model list is ordered sensibly, most capable at the top. Effort is how long it thinks before it answers. Workhorse model at high effort is where you live. Low and medium effort are for execution, formatting, cleanup, and small edits you have already specified, and they are very cheap and perfectly capable.

The expensive mistake

Never put the frontier model and max effort together on a small plan. One question can consume a large fraction of an entire month. You may not even have access to that combination, which is a mercy.

The senior and junior split

This is the single biggest cost saver we use. Real work has two very different kinds of task in it. Deciding what to do is hard and benefits enormously from a strong model. Doing it is mostly typing, and a cheaper configuration handles it fine. Paying premium rates for the typing is where most people's allowance disappears.

So we run two chats in the same project folder. The senior is on the frontier model at high effort: it understands the project, makes the plan, reviews what came back, decides what is next. The junior is on the workhorse model at medium effort: it takes a detailed plan and executes it exactly. It does not need to be brilliant, it has been handed brilliance in the form of a plan. You are the courier between them.

Senior, asking for the plan
You're the senior developer on this project. Don't write the
implementation yourself, I'm handing it to a junior. Give me an
implementation plan detailed enough that someone with no context could
execute it correctly. Flag anything you'd expect them to get wrong.

This is not only about money. A dedicated reviewer that did not write the thing catches problems a single chat will not, because a chat reviewing its own work is naturally generous with itself. Better output and a cheaper month at the same time.

Do not pay premium rates for pictures

Any time a project needs a visual asset, we do not let the paid account generate it. We ask it to write the prompt, run that on a free tool, and bring the result back. Free ChatGPT and free Gemini live permanently in browser tabs here for images, throwaway questions, second opinions, and explaining error messages. Every one of those you do not spend on the paid account is another real build you get that month.

For scale, honestly

There are people who have used AI for a year and burned maybe ten thousand tokens total. We have burned over a hundred million on a single project, across months of building and reworking one application. We are on the $200 plan and have paid several hundred dollars on top of it in a single week. Not because we had to. Because the return was that good.

You will be nowhere near either number in month one. It is worth knowing the ceiling exists, and that depth costs real money.

What this actually replaced

None of the following required us to write code. All of it required knowing what we wanted and being willing to describe it out loud, repeatedly, until it was right.

14 min
1,700 companies evaluated into a qualified lead list
2 hrs
to replace a design contractor with a 250 KB file
18 holes
to build and ship a live web page
500k+
files reorganized in under an hour

The CNC program

We cut metal in house. Running the machine and creating the cut file are two completely different skills. We had operators, we did not have a designer. So for years we paid an outside contractor somewhere in the range of a thousand to fifteen hundred dollars a month, plus a hundred and fifty to two hundred per drawing, and it routinely took a week or two to get a file back. Clients waited. Our warehouse guy could not so much as duplicate a shape without going back through him.

Our machine is old, so it runs on G-code, which is raw text. We could not even see our own shapes. They were number files we loaded and hoped ran correctly.

We had about 130 of those G-codes sitting in a folder. We handed over the folder, talked through the problem for fifteen or twenty minutes, and about two hours later we had a tool: every shape we have ever cut, rendered visually and clickable. Click one and it drops onto a board and tells you how big a sheet you need. Right click to duplicate. Drop in a PNG outline and it traces it into a cut program.

The whole thing is a 250 KB file. We can email it to anyone. It has never been on the internet.

The lead list

One of the biggest furniture markets on the East Coast lists its exhibitors ten per page across roughly 175 pages. About 1,700 businesses. Our front office is two people. We were never going to call all of them.

So we asked for a spreadsheet: business name, a one sentence description of what they do, contact details where findable, and a low, medium or high rating on whether there was enough product adjacency to bother. If they sell sinks, we are not selling them metal prints.

Partway through, the site started blocking it. We watched it reason through that in real time and write a script to keep going. Fourteen minutes. A color coded spreadsheet, all 1,700 companies evaluated, narrowed to about 62 genuine matches. We mailed them flyers, met several at the show, and did business with roughly 15% of them.

The pricing calculator

Live on our site now. Pick a product, add items, unlock reseller pricing, generate a white labeled PDF with your own markup on it, with live UPS rates pulled straight into the tool. It turned a twenty minute quoting process into seconds, for our team and for our customers.

Fourteen years of files

Two folders, work and personal, holding well over half a million files. Thousands of images named Screenshot 2019-04-11 at 3.42.11 PM. Hundreds of documents called Untitled.

We handed over the work folder and asked it to organize everything in a way that would make sense to us: open every screenshot, look at it, rename it based on what it is a screenshot of, file it by date. Any document called untitled, open it and name it from what is inside. Then produce a spreadsheet logging every change and the methodology, and put a "how to read this folder" document at the top level.

Somewhere between forty five minutes and an hour. Fourteen years, reorganized, with a manual.

The sales automation

Our salesperson runs this every day. Start a recording, call the customer on speaker, have the conversation, hang up, then debrief out loud for thirty seconds. At the end of the day an automation reads all of her recordings, works out which were sales calls from the debrief, pulls the details into the CRM, and sets the follow up reminders. If she said the words "I want to send them a sample kit," it writes the order up automatically. It lands in our store as a zero dollar sample order and production prints and ships it.

Three people used to touch that. Now nobody does.

If you run a lab and want to start

You are going to want to do all of it at once. Do not.

The best first project is not the most exciting one. It annoys you, it is small, and nobody is counting on it. The real test: what did you do this week, more than once, that made you sigh? A quote you assemble by hand. A report you rebuild every Monday. A folder you keep meaning to organize. That is the project.

Week What to aim for
One Both accounts live. Run the full loop on three deliberately trivial things, so the sequence stops feeling like a procedure.
Two First real project, in its own folder. Run until a chat fills up, then do a proper handoff and keep going.
Three Get one thing you built into somebody else's hands, as a real web address or a file you email your team.
Four Build the thing that has been nagging at you since the top of this page.
What actually determines whether this sticks

Not talent, and not technical aptitude. It is whether you build the reflex of reaching for it instead of doing it yourself. Next time you are about to spend two hours on something tedious, stop and spend ninety seconds asking whether this could do it. Most of the time the answer is yes, and you get the two hours back.

Why we wrote this down

We taught a version of this at IPIC and ran out of clock both times, which is how this article exists. The labs in that room were dealing with the same things we were: not enough hands, quotes taking too long, a contractor holding up a job, a folder nobody has opened in six years.

None of what we built is proprietary to metal. A lab doing canvas, framing, albums or signage could rebuild every one of these in a month for thirty five dollars, and we would rather this industry get good at it than not.

And the boundary at the top of this page holds regardless. We automate our business. We do not automate your photograph.

We fulfill for other labs

If you sell wall decor and want to add metal without buying equipment, we produce it and ship it blind under your brand in 3 to 5 business days. Your name on the box, your literature inside it, and we never contact your customer.

See how the reseller program works