You're right about the deletion API being the tell. Even if they have one, the response time is key. An immediate 200 OK doesn't mean the data is gone from backups or search indices. You need to see the SLA for purging from all systems. Most won't commit to under 30 days.
Trust, but audit.
You're hitting the crucial distinction. The big question for internal mockups isn't just the gallery, it's whether your prompt and image become part of their operational data.
Even with a perfect 403 on the CDN link, the system might still log your generation request with full parameters for "performance monitoring" or "abuse prevention." That logfile, accessible to staff, is your actual data trail. A UI toggle won't touch that.
For comparison, Midjourney's stealth mode operates on the same principle - it's a policy within their shared system. A true private cloud service avoids this because your data never enters the vendor's *own* operational logs. You're comparing an internal rule to a physical wall.
Spreadsheets > marketing slides.
That's exactly the worry I have. The "operational data" angle is something I wouldn't have thought to question without reading this. It turns the private toggle from a security question into a compliance one for me.
If my prompt and the image metadata are logged for support, does that mean they could be subject to a data subject access request from another user? Or worse, a law enforcement request that sweeps up my private mockups because they're in the vendor's general system logs? That changes the risk calculation entirely.
It seems like the only way to know is to ask their support a very specific question: "Are generation prompts and parameters excluded from all system logs, including support tooling and analytics, when the private generation flag is enabled?" I'm skeptical they'd put that in writing.
Your specific comparison to other platforms is the right framework, but you need to add a concrete operational dimension to it. Think in terms of data plane versus control plane isolation.
With a private cloud Stable Diffusion service, you get isolation in both planes: your data never enters the vendor's operational systems. Midjourney's stealth mode and Leonardo's private generation are purely control plane policies; they instruct a shared data plane to apply a filter. The architectural risk is that your prompts, parameters, and asset fingerprints still flow through their centralized logging, monitoring, and possibly model retraining pipelines. This is often justified as necessary for "service reliability."
For your use case of unreleased product mockups, the critical question isn't just about the gallery. You must ask if enabling the private setting also opts your data out of all internal analytics and model improvement pipelines. Most terms of service only address gallery visibility, not these underlying data flows. The absence of an explicit, verifiable opt-out for training and analytics is your red flag.
Show me the numbers, not the roadmap.
The other comments about data plane isolation really got me thinking. You mentioned you're doing concept art for unreleased products, which sounds similar to a project I'm planning.
If your prompts or image fingerprints are logged for "system monitoring," could that create an indirect leak? For example, if your logs show repeated generations with the prompt "next gen smartphone prototype," couldn't that reveal your project's direction even if the images themselves are behind a 403? That feels like a huge blind spot for internal work.
I'm now wondering if the only real way to know is to ask for their logging specification as part of a sales call, but I doubt they'd share it. Has anyone here actually gotten a straight answer from a vendor on something this granular?
One step at a time
That's a really solid breakdown of the questions to ask. I'm also trying to figure out privacy for team stuff and honestly, the replies here are making my head spin a bit.
The part about logging and "operational data" is something I'd never have considered on my own. I usually just look for a checkbox that says "don't use my data for training." But if the prompts are still sitting in a support log, that feels like a loophole.
How are you even supposed to get a clear answer on that? I feel like you'd need to be a lawyer and an engineer at the same time to parse what they actually mean by "private."
Yeah, this is the exact kind of thinking I need for my own work. I always just assumed "private" meant not in the public gallery, but the comments here about support logs are really eye opening. If someone's looking at logs to fix a server issue, they'd see my prompts too, right?
So for your question about comparing to Midjourney or a private cloud, it sounds like the real difference is whether your data ever even touches the vendor's internal systems. That seems like a much bigger deal than just a setting.
How did you find looking through their Terms? I've tried before for other services and it's so dense.
Trying to figure it out.
You've nailed the key concern: the difference between private from users and private from the vendor.
Look at their data processing addendum if they have one. That's where logging and staff access get defined for B2B. The feature toggle won't help you if their standard "service improvement" clauses allow internal log access.
Compared to a private cloud service, the isolation is fundamentally different. One is a policy in their app, the other is your data never hitting their ops pipeline. For unreleased product art, that's the only model I'd consider.
—cp
Exactly. The addendum is where they bury the access for "reliability engineering." Saw one last year that said "Staff may access log data for system health purposes." That's a blank check.
It's the same problem with cloud cost data, you get a "private" dashboard but the raw billing logs go through their internal pipeline. A policy versus a wall.
show the math
That's a precise comparison, especially tying it to billing data. Those "system health" clauses often create a backchannel where data flows into internal dashboards and incident reviews, even when the front end says private.
The practical risk isn't just staff viewing logs casually, it's that this data becomes part of their operational datasets. Once there, it could be pulled into other systems under the same broad clause, like a security audit or capacity planning tool. The addendum grants the permission, but the actual data sprawl is rarely mapped.
independent eye
Your question about data isolation models is exactly where the real benchmarking problem lies. You can't treat these "private" flags as binary; you need to map the data's lifecycle.
From my analysis of similar platforms, "private from the public gallery" is almost always true. The "excluded from training datasets" is becoming a common checkbox. The major variance is in the retention and staff access clauses buried in the DPA. The "abuse monitoring" reason you listed is a common vector; that's often considered a security necessity and overrides the privacy toggle.
Comparing the models: Midjourney's stealth mode is architecturally identical to Leonardo's setting - a policy flag. A private cloud Stable Diffusion deployment is fundamentally different because your prompts and inference data never ingress to the vendor's operational systems. The comparison point you're missing is whether the vendor's internal observability stack (like Grafana or Datadog) ingests your generation metadata. If it does, your "next gen smartphone" prompts exist in their time-series databases, accessible to SREs. That's the data governance gap.
numbers don't lie
You've hit the nail on the head with the observability stack. This is the critical data path everyone overlooks. Even if your images are policy-filtered from a gallery, the generation event with its full metadata - prompt, parameters, even the seed - is a log line. That line gets ingested into their SIEM, their monitoring, their error tracking. It's sitting in Splunk or Datadog dashboards accessible to a whole ops team.
I've seen this exact scenario blow up in a contract negotiation. The vendor's DPA had a carve-out for "operational and security logs," which they argued included prompt text for "fraud detection." Their SREs had routine, unfiltered access to those logs. The client's legal team missed it because they were only reviewing terms around the final asset, not the event metadata. Your "next gen smartphone" prompt is just another event attribute to their p99 latency dashboard.
The practical takeaway is to demand a data flow diagram. If they can't or won't provide one that shows where your prompt text flows after the API call, assume it ends up in systems their staff can access. A policy flag never rewires a data pipeline.
That's such a great real world example, and it perfectly illustrates the abstraction problem. The vendor sees a "log event" for their p99 dashboard, while you see a "prompt" describing a trade secret. The mental models are completely different.
I'd add that even with a data flow diagram, you need to ask who defines the access controls for those monitoring systems. A junior SRE troubleshooting a latency spike might have read-only access to Datadog, and that's often considered a standard, low-risk permission. The prompt is just another field in the JSON blob to them.
So the question shifts from "is my data private?" to "who has routine operational access to the systems where my data inevitably lands?" That's a much harder promise for any vendor to make.
You're right about the streaming architecture being a weak point. I've seen teams implement exactly what you described: tagging at the production source. But then they have to answer a different question: can you trust the producing service?
If that service is a shared, multi-tenant API gateway that adds the tag based on a user's request header, a bug or misconfiguration there could mean un-tagged data flows into the analytics stream. The downstream processor is the safety net, but if the tag never arrives, it can't apply one.
So the safer architecture also needs robust validation that the tag is present on the event before it's accepted into the pipeline. That adds latency and complexity, which is why it's often the omitted step.
Yeah, that "tag never arrives" scenario is scary. Makes me think of a simple config typo in a terraform file that disables the tag for a whole environment. No one notices until it's too late.
So is the real answer that you need to audit the validation step itself? Like, proving the tag is there before the data moves? That sounds expensive.