B2BB2B LLM

Project Images workspace

Generate, edit and read saved images with narrowly scoped browser permissions.

No current prepared translation is available. The English source is shown without machine translation.

Images in the project Playground

Open Playground → Images, beside Request builder and the available Audio/Video tabs. Model Verification is not shown in Business Playground navigation. Select a project key your current role can execute, then a reviewed model/route. Company billing remains with the key owner while authorization uses the signed-in employee. A billing or viewer membership does not gain execution; seeing a project does not expose reusable credentials or another actor/key's files.

Generate uses a prompt and the chosen route's supported options. Edit adds real source files in order and a mask only when that route allows one. The company portal does not merge different suppliers' capabilities. If no offer is available or the API is unavailable, follow the displayed message and ask Support; never request another employee’s secret.

Review the current price before sending. Exact known cost and valued Usage Limit are separate; unknown token-metered cost needs explicit acknowledgement and is not a zero price or reserved maximum. Price approval is checked again against the actual route/contract/context at admission. The API still verifies file contents and can reject what client-side checks accepted.

The portal supplies a short Images-only permission, not the long-lived project secret. Create is sealed to one intent and exact request bytes, read is separate, and a download retry targets one existing operation. Accepted work continues after the short permission expires but rechecks the employee's session/project/key permissions before dispatch. Revocation cannot undo a POST already sent.

A double-click and page refresh must not create another paid job. Saved status/history is read under the same employee/key context. For a lost response use Check submission; resending in the same open page is explicit and uses the identical bytes/intent. After a reload the browser retains only a scoped pointer, not the request body. The project page now starts with an editable blank form; completed history is not automatically restored over it. Reading an earlier result leaves the form usable. New request, above the input controls, clears only the draft and sends no job. A separate job still requires a deliberate launch and a new price check. An uncertain earlier charge is not resolved by duplicating its request or switching to a colleague's key.

Private thumbnails/downloads verify bytes against descriptors. Expired results cannot be recreated by download. For retrieval_failed, the separate retry fetches the already-generated response without new generation or accounting. accounting_recorded confirms settlement input, not an immediate company wallet debit. Files normally expire after24 hours under the API policy; history/idempotency remains. Switching keys clears the displayed prior results.

See saved operations, quote contract and project key authentication. The existing builder's Responses image_generation tool remains a different foreground request path, not this durable Images tab.

Empty catalog or unavailable model

Confirm that your project key permits execution and the selected model has an offer for Generate or Edit. A company owner or project administrator can help with your team permissions; contact Support when an allowed model remains unavailable. Do not use a colleague’s secret or another company’s key as a workaround.

Inspect project requests and use cURL

The Images page includes separate Raw request, cURL / CLI and Raw response tabs. These show the current employee's selected-key operation, not other team members' traffic. Request text distinguishes an unsent draft from the actual prepared submission. The full API address follows the company's current portal/service domain, including configured custom domains; a different brand's host is not a fallback.

The command uses the MODEL_API_KEY environment variable instead of exposing the portal's temporary permission. Supply the same project key and actor context used for the browser operation. A draft requires a single retained IMAGES_IDEMPOTENCY_KEY; a prepared command includes the original value. Copy has no network effect, but running the command may be billable. A different key, employee or intent can be treated as different work, not a safe retry after a lost response.

For Generate, Raw request contains the transmitted JSON. For Edit, it is explicitly a summary of multipart fields and ordered files. Save the exact prepared body as images-request-body.bin to use the matching cURL command with the original boundary and intent. In a draft, replace the illustrated local file paths with your own inputs. Never describe the multipart summary as a JSON request body.

The response selector keeps submission, status, lookup and download-retry messages separate. An explicit saved-result read fetches existing output without creating a job. HTTP metadata precedes the original UTF-8 API text; errors and whitespace are retained. A128KiB preview can be shortened while Copy/Save retains the full capture, limited to64MiB. An interrupted, too-large or invalid-UTF8 message is not offered as a complete response.

Changing the key removes the displayed raw data. A page reload can look up an in-flight submission but does not reopen completed history or recreate its original body. Prompts and files are not persisted for the inspector. Treat clipboard contents and locally saved request/response files as confidential company data. Browser clipboard restrictions may require manual selection or saving instead.

In company operation details and history, quoted amounts remain explicitly labelled until measured accounting is recorded. Calculated cost does not by itself confirm company settlement. An empty file list during processing is not an expired download. For the separate aggregate-only usage representation and price labels, see image result fields.

Result delivery and visible processing

Saved output thumbnails now appear automatically for the employee and key that are currently selected. Two private images at most are read concurrently and verified before display. Preview/Download can still be used explicitly. Rechecking a job's state keeps already verified pictures rather than fetching them all again; changing project keys clears their bytes.

A launch displays an accessible progress dialog with the received queue and processing stages and elapsed time. There is no guessed percentage or guaranteed finish time. Closing it leaves accepted company work running; Show progress returns to the status without another request. The result becomes visible and the dialog closes when the saved output has loaded. History selection by itself does not open a modal.

A company accounting input is distinct from its settled debit. The line can now show an observed debit and timestamp, pending settlement, Usage-Limit-only treatment, or an unavailable record. A historical record no longer being retained does not prove that no money moved. Both fixed and metered calculated amounts are labelled after accounting; low-frequency status refresh never generates or re-downloads a completed image.

A creation response with202/queued is the service's acknowledgement, not the supplier's raw answer. When a saved supplier HTTP status is shown, keep it separate from that acknowledgement. Unknown paid outcomes require investigation; a new employee/key/intent is not a safe retry.

When Launch is unavailable

For the selected project key, the explanation beside Launch identifies incomplete settings, file validation, pending price calculation or unknown-cost confirmation. After valid parameters change, the price is calculated automatically; only a separate explicit Launch creates an image operation. A different key or changed project settings require their own price check; viewing project history does not submit work.

Reviewing work on project keys

Your history spans your own operations on the active company keys you are currently permitted to use. The key filter is separate from the key selected for a new submission. Older operations loads another page without making a new paid request. The view does not combine colleagues' recordings merely because they share a billing owner. Membership, project access and key changes remain authoritative; removed access is not restored by an old history entry.

Configured character limits may differ by route; some routes apply no extra character cap. Upload and request-body limits remain in effect, as do the supplier's requirements. No prompt is cut silently. A revised draft needs a current quote before it can be launched.

Prompt and compact operation details

The prompt counter shows prompt_max_chars and the current Unicode character count. Numeric caps constrain typing, paste and completed composition without splitting emoji; null removes only the additional character cap. An existing draft on a stricter route is retained and its exact blocking reason is shown. Audio prompt_max_chars0 disables optional context. Disabled Launch always has an adjacent reason. Accounting details reads the full authorized accounting view; compact status replies omit those fields and do not claim zero cost or completed settlement. Generated requests keep quote/route/idempotency binding but do not send max_cost_usd.

Get the result · Raw / cURL

After launching or selecting an operation in history, open Get the result · Raw / cURL immediately after Request and response in the result column. Operation history is the last block, spanning the full workspace width below both the form and results. Choose Operation status, Saved result (JSON), or an available Image file. Each image command uses its own zero-based file index and MIME-matched filename. Image entries appear only after file descriptors are available.

The displayed Operation key ID belongs to the history item, not necessarily to the project key chosen for a new form. Use that operation's authorized company key and original employee/actor context. Membership and project access still apply; another employee's rights are not transferred by copying. The API origin is https://api.b2b-llm.com for this profile, or the configured API origin of your current domain. No fallback to another profile is used.

The Raw block contains the bodyless GET endpoint and a safe Authorization placeholder. The cURL block uses your locally supplied MODEL_API_KEY and saves the response to a file. Browser tokens and key secrets are never copied. The commands have no create body, Content-Type, Idempotency-Key, quote or cost limit. Copy Raw and Copy cURL only copy text; selecting a command neither starts a download nor launches new work.

These are generated examples for another read, not the original request log. A command can be shown while a job is pending; it does not prove the result exists. Check status first and handle unavailable, expired or access-denied replies as errors, not media. --fail-with-body can write an HTTP error to the output file; check its exit status before opening that file. A failed read is not permission for another paid create. See the result API for complete examples.