Model guides
Muse Ember: API Access, Context Pricing and Batch Routing
Muse Ember is documented on Meta Model API as muse-ember-1.0, an execution model for repeated tasks. It returns text. SJolt’s reviewed catalog does not list Ember, so its identifier should not be sent to a presumed SJolt route.
Muse Ember is documented on Meta Model API as muse-ember-1.0, an execution model for repeated tasks. It returns text. SJolt’s reviewed catalog does not list Ember, so its identifier should not be sent to a presumed SJolt route.
A practical use is sorting creative briefs before spending money on generation. The design below separates classification, review and the later image task; it does not claim a native Muse-to-SJolt integration.
Start with Meta’s contract
Meta documents text, image, video, audio and PDF inputs, with text output. The page lists a 1,048,576-token context window, 524,288 maximum output and Responses, Chat Completions and Messages endpoints. The documented default reasoning effort is max. Check the endpoint-specific media rules before constructing a request.
Meta positions Ember for repeated bounded work such as routing and extraction, with larger Muse models available for harder planning. That suggests an evaluation design, not a promise that every small task will be cheap or fast. A short final answer can still involve more work than its visible length suggests.
The 200K boundary changes the whole request rate
Meta’s pricing page lists Ember Standard-mode input/output rates of $0.10/$0.50 per million tokens up to 200K input tokens, and $0.30/$1.50 above that threshold. Cached input has separate rates. The threshold includes cached tokens and retained conversation context; the higher tier applies to the whole request, not merely the excess. Ember has no Contributor-mode API variant.
Consider an uncached request with 200,000 input tokens and 2,000 billable output tokens: the illustrative cost is $0.020 + $0.001 = $0.021. At 200,001 input tokens and the same output count, it is $0.0600003 + $0.003 = $0.0630003. These are calculations from published rates, not invoices or observed token use.
The lesson is to inspect actual input size before appending another record to a batch. Do not keep an ever-growing conversation merely for convenience. Independent briefs can usually be classified independently, while a genuinely cross-document task may need shared context. Splitting should follow task semantics rather than blindly cutting a document at a token boundary.
Design a classifier that can decline to route
Imagine an inbox of campaign requests. Each brief should be classified as image generation, image editing, video planning or manual review. Supply the category definitions and require an evidence excerpt from the brief. Include an explicit uncertain outcome so a request such as “make this better” does not silently become a paid image job.
Illustrative classification record — not an API response
brief_id: campaign-042
intent: image_edit
evidence: "keep the cup and replace the background"
required_asset_present: false
review_reason: source image missing
next_action: request source; do not generateKeep identifiers assigned by your application. A model-produced reference to a nonexistent asset should fail validation even if the JSON is well formed. Validate allowed categories, known asset IDs and required inputs before creating any task. Treat the source brief as data to classify, including any instructions inside it that try to change the classifier’s rules.
Meta documents structured output with JSON schemas. Use the schema mechanism for the endpoint you actually call; Chat Completions and Responses place their format settings differently. Schema conformance establishes structure, not truth. An allowed category can still be the wrong category for the brief.
Test mistakes that would trigger the wrong paid action
| Fixture | Expected behavior |
|---|---|
| “Create a square cover; no source image” | Generation candidate, subject to an approved brief |
| “Change only this photo’s background”; no file | Manual review for missing input |
| “Turn the attached clip into a plan” | Planning classification; no generation submission |
| Conflicting format and duration requests | Flag conflict instead of guessing a task |
Add a few examples whose wording differs from your instructions. If every fixture uses the exact phrase “image edit,” you are testing keyword recognition more than interpretation. Include one request with an irrelevant quoted conversation and one with an asset filename that is not in your authorized asset list.
Review false positives separately from false negatives. Incorrectly creating an expensive task can be more disruptive than asking for clarification, but excessive manual review can erase the benefit of automation. Set acceptance thresholds according to that tradeoff before looking at the results. No accuracy percentage is supplied here because we did not run these fixtures through the model.
Make the generation handoff explicit
After human approval, an application could translate an image-edit classification into SJolt’s documented Seedream V5 Pro task. The translation must choose a real supported model, a reachable authorized image and validated parameters. Ember’s text output is not itself an image, and a model-generated URL is not evidence that a file exists.
Use separate records for the classification and generation stages: original brief ID, approved plan, generation task ID and accepted output. Reprocessing the classification should not automatically submit the same generation again. Put deduplication in your application and make retries visible to the reviewer.
Keep Meta billing and SJolt generation charges separate in the job ledger. A reduction in classification spend does not prove the whole campaign became cheaper if it led to more rejected images. Evaluate the completed, accepted asset and the total review effort before expanding the workflow.
Sources & further reading
Take the next idea into production.
Explore the models, test a workflow in the playground, and use the same request in your application.