# Diffusers-workflow: your GPU as something an agent can drive

> Source: <https://discuss.huggingface.co/t/diffusers-workflow-your-gpu-as-something-an-agent-can-drive/180275#post_6>
> Published: 2026-09-13 17:26:42+00:00

Before: `acknowledged_cost=true` was checked in the MCP layer but tied to nothing. The quoted number came from catalog defaults, not actual args, so a plan could grow after you consented and the flag would still read true.

Now:

- validate_workflow / POST /api/validate returns a plan block: a fingerprint of the realized workflow (real args, expanded for_each lists), the actual step/iteration count, required downloads, and a cost estimate with a basis flag (catalog, derived, per_entry, or unknown) so you know how much to trust the number.

- acknowledged_cost can now take {fingerprint, minutes, downloads} instead of a bare boolean. If the workflow’s shape changes after you bind to a plan — different args, longer list, whatever — the server 409s and re-quotes instead of letting it run over. Bare `true` still works for backward compat, but the job now logs which form it got (none / boolean / bound), so you can require the bound form for unattended agents.

- Your test case — a fan-out list changing real cost while the quote stayed flat — was the actual bug: the estimate wasn’t re-pricing per list length. Fixed. A 2-shot vs 10-shot run now gets genuinely different numbers, with the basis flag telling you if it’s measured or estimated.

Thanks for the suggestion!
