PlantLab.ai | Blog

AI based plant health diagnosis

One uploaded photo of two cannabis plants going into PlantLab and coming out as a results array with one diagnosis object and bounding box per plant

The short version

PlantLab can now analyze more than one plant in a single uploaded photo. Instead of forcing the whole image into one diagnosis, the API finds the separable plants, diagnoses each one on its own, and returns a results[] array with one entry per plant.

This is a breaking API change. The response schema is now 3.0.0. Fields like is_healthy, growth_stage, conditions, pests, and reliability_score moved out of the top level and into results[]. Image-level fields such as is_cannabis and cannabis_confidence stay top-level.

If your code already treats a diagnosis as “the answer for this plant,” the migration is simple: iterate results[]. Single-plant photos still return exactly one result.

Read more...

What You'll Build

A camera watches your plants on a schedule. Each photo goes to an AI trained only on cannabis, and Home Assistant turns the answer into sensors you can automate against. Something looks off, your phone buzzes with the diagnosis and the photo. Everything's fine, it stays quiet.

Setup runs about 20 minutes. The cost is a camera you probably already own plus PlantLab's free tier – three diagnoses a day, no card. No soldering, no standalone Python scripts. A Home Assistant integration and some YAML.

A healthy flowering cannabis plant next to a Home Assistant dashboard card showing PlantLab health, growth stage, and reliability sensors

Read more...

A locked, checksum-pinned test set of cannabis plant photos feeding a diagnosis pipeline, with a held-out accuracy figure shown next to a benchmark figure

The Short Version

AI plant health diagnosis is having a moment – grow cameras with “AI” on the box, phone apps that name a deficiency from one photo, controllers that promise to read your plants for you. Most of them report a confidence number they haven't earned, because the hard part of AI plant diagnosis isn't producing an answer. It's knowing when the answer is wrong, and proving the accuracy you claim on photos the model has never seen. June at PlantLab was a research-and-hardening month spent almost entirely on that second problem: catching my own model being wrong before a grower could. This is what that looks like from the inside, with the numbers.

Read more...

API response JSON showing high confidence but a low reliability_score, mapped onto a three-band trust gauge

The Short Version

Most plant diagnosis tools show you a confidence number. Confidence tells you how strongly the model picked an answer – not whether you should act on it. Those are different questions, and on a hard photo they get different answers: a model can be very confident and flat wrong. If you're feeding a diagnosis into an automation – a Home Assistant flow, a grow-room controller, a dashboard alert – the signal you actually want is reliability: how trustworthy is this answer, on this specific image? PlantLab returns both. Here's how to use each, and why automation should gate on reliability, not confidence.

Read more...

Map of Europe rendered in PlantLab's dark interface palette with bright markers over Germany, Slovenia, and France, representing distributed EU plant diagnosis infrastructure

Building on American cloud is the easy choice, which is exactly why almost everyone makes it. One account at Amazon, Google, or Microsoft and you get the whole stack in one place: compute, database, storage, DNS, email, all of it wired together, billed on one invoice, documented to death. It is a genuinely excellent product. It is also where PlantLab started.

It doesn't run there anymore. The diagnosis API, the database that holds your history, and the services around them now run on European infrastructure, and the live path a request travels – upload, inference, response, storage – never leaves the EU. That was not the easy choice. I want to explain why I think the easy choice and the right one were two different things here.

Read more...

World Class Cannabis Business Europe (WCCBE) 2026 logo

The Short Version

I spent two days in May chairing and speaking at World Class Cannabis Business Europe (WCCBE) in Frankfurt, on the subject of visual AI for cannabis cultivation. The biggest takeaway wasn't about the technology. It was about the gap between what the AI industry likes to talk about – autonomy, end-to-end automation, “AI runs the grow” – and what growers in the room actually asked for, which was something much more grounded. They want a tool that helps them decide, not one that decides for them. They want it to be specifically good at plants, not generically good at everything. Here's what I heard, and what it means for where PlantLab goes next.

Read more...

Healthy cannabis plant thriving inside a grow facility with the surrounding equipment anonymized for privacy

The Short Version

When you send a plant photo to a diagnosis API, you are not just sending a picture of a leaf. You are sending a signal about what you grow, roughly where, and sometimes at what scale. PlantLab treats that as sensitive data. Diagnosis history is kept only if you opt in, only for a bounded window, and the sensitive parts are encrypted at rest. Analytics are cookieless, the supporting infrastructure is moving toward EU providers, and your API key is shown once and never emailed back to you in full. None of this is glamorous. All of it is the difference between an API you can hand real grow-room data and one you can't.

Read more...

A row of green leaf markers along a thin timeline, with one larger and glowing brighter than the rest, suggesting a pattern recognized over time

A single diagnosis tells you what's wrong now. A history of them tells you whether you're getting better.

That's the gap PlantLab's new /history endpoint closes.

Read more...

The Short Version

PlantLab's API now returns a reliability_score field on every diagnosis. A number from 0 to 1 telling you how likely the answer is to be correct on this specific image. It replaces the old diagnostic_confidence and safety_classification fields, which were rule-based guesses that I never trusted. The new score is much better at flagging the diagnoses that turn out to be wrong – especially on the hard cases, which is where you actually need it. Schema bumped from 1.x to 2.0.0. If you're integrating with PlantLab today, the migration is a one-line change.

Read more...

The short version

Most plant diagnosis tools give you a paragraph to read. PlantLab gives your automation system something to act on.

The model covers 31 cannabis conditions and pests at 99.1% balanced accuracy. Balanced means every class counts equally – a system that nails common deficiencies but misses rare pests does not score well. The output is structured JSON that Home Assistant, Node-RED, or a custom controller can read and act on without a person in the loop.

Read more...

Enter your email to subscribe to updates.