Sweet Tea Execution Receipt
A receipt node for external API jobs that saves nothing
Let's be upfront: this is a provenance node, not a generation node. It doesn't call any API, doesn't need a key, doesn't save media, and doesn't even produce an image or video. What it does is stamp a structured "execution receipt" into your ComfyUI run history whenever your workflow hands work off to an external service - provider, request id, endpoint, operation, and an optional cost estimate.
The reason it exists lives in this pack's origin. The author (tea_time_labs) built Sweet Tea Studio, a production layer that sits on top of ComfyUI and tracks generation metadata so you can revisit and reuse past runs. When a workflow routes a job through something like fal's API, the Studio side wants to know what actually executed and roughly what it cost - without ever touching API credentials. That's this node's whole job: a clean, validated, credential-free record of an external execution.
How it works
It's an output node with zero outputs. publish() validates your inputs against a strict allowlist pattern (provider, request id, and operation must match [A-Za-z0-9_.:-], 1–160 chars; endpoint must be ≤512 chars with no control characters), then returns {"ui": {"sweet_tea_execution_receipt": [payload]}}. That payload lands in ComfyUI's history - check the workflow's API output / history view and you'll find provider, request_id, endpoint_id, operation, and estimated_cost_usd (only included if it's above zero).
Inputs
provider- stable provider id, e.g.fal.request_id- the provider-issued request identifier.endpoint_id- the provider endpoint or model identifier.operation-image-generation,video-generation, orapi-execution.estimated_cost_usd(optional) - zero means unavailable; it's omitted from the receipt if you leave it at 0.
Install
Same pack as the rest: ComfyUI Manager, search for Sweet Tea Nodes, restart - or git clone https://github.com/tea-time-labs/sweet-tea-nodes.git into ComfyUI/custom_nodes. The only dependency is tqdm, so no heavy install.
Common issues
Getting a ValueError on a valid-looking id? That's the allowlist working - the regex is deliberately restrictive, so a request id with spaces or unusual characters won't pass. That's by design, not a bug. Beyond that there's not much to trip on: it's instant, touches no models, and costs zero VRAM. If you're not running anything that tracks external API executions, you probably don't need this node - it's niche, and it's honest about being niche. But if you keep receipts of your API generation spend in a structured form, this is the tidy way to get them out of a workflow.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| provider | STRING | fal | Stable provider id, for example fal. |
| request_id | STRING | Provider-issued request identifier. | |
| endpoint_id | STRING | Provider endpoint or model identifier. | |
| operation | COMBO | api-execution | 3 options: image-generation, video-generation, api-execution |
| estimated_cost_usdopt | FLOAT | 0.0000–1000000 | Optional provider estimate; zero means unavailable. |
Outputs (0)
No outputs