← The Forge
Diffusion Lab · Image & Diffusion Models

Prompts, Reference Images & Expansion

The theory lesson described five real pipeline stages between your one sentence and a finished image. This lab runs all five for real — against Fire's own /v1/image and /v1/workflows/image, reading the actual fields a real response carries.
Theory 1 of 3

Two endpoints, two different jobs.

/v1/image is raw model access: your prompt goes to the model you asked for, verbatim, nothing in between. /v1/workflows/image is the full production pipeline: compliance check, IP sanitization, LLM prompt expansion, per-model rendering, parallel generation, storage, compliance check again. Same underlying diffusion models, completely different amount of machinery around the call. You're about to run both.
Theory 2 of 3

Capability isn't universal — and the API says so plainly.

Not every model accepts a reference image. Ask for one that doesn't and Fire's real behavior is to refuse outright with a documented error, rather than silently generating from the text alone and quietly dropping your photos. That's a deliberate design choice — an ignored input is a worse failure than a loud one, the same instinct behind last lesson's "compliance text is assembled server-side, clients can't understate what gets checked."
Theory 3 of 3

One scene in, several different prompts out.

The workflow endpoint's response carries both raw_prompt (exactly what you typed) and scene_expanded (what an LLM turned it into) — the expansion stage from the theory lesson, visible as real JSON, not just described. Ask for more than one model at once and each one gets its own rendered prompt field, translated from the same expanded scene into that model's own dialect.
Before the Practicum

Same curl, two real endpoints.

  • Same terminal engine as the earlier curl/Fire labs — click it, type or paste the command shown, Enter runs it.
  • Every call targets Fire's real test host, https://fire.test1.prosaga.net, with request/response shapes pulled directly from Fire's own API.md — nothing invented for this lesson.
  • $TOKEN stands in for a real Fire token minted with the image ability, per this project's own boot file.
Done

Five real stages, one sentence, every time.

A bare /v1/image call showed you the base case. A reference-image call, and the model that refused one, showed you that capability is checked, not assumed. The workflow endpoint showed you raw_prompt becoming scene_expanded becoming a different rendered string per model — an LLM and a diffuser, chained, with an ordinary API response as the seam. None of it was a diagram this time. It was the actual JSON.
1 / 1
ends with a "mark complete" step