Skip to main content

Write a Coherent Ensemble Scene with Claude Fable 5

Plan a character-led scene, preserve who knows what, revise specific story problems and budget Claude Fable 5 requests without losing continuity.

Author
Lydia
Published
Read
13 min read
Updated
Two adults sit side by side at a wooden table with a closed leather pouch and a mug, with a lit ferry beyond rain-streaked windows.

Three adults share a ferry waiting room after midnight. One of them knows the last boat is cancelled, one has seen only the blue seal on a letter, and one knows who sent it. The scene works only if the prose never lets anyone know more than they should. Claude Fable 5 is a good fit for this kind of scene: put voice and fixed facts in the system message, the preceding scene in the user message, ask for one dramatic beat and check the result against the facts. The 1,000,000-token window is for a series bible or a finished chapter you want continued, not a reason to send the whole book for a 600-word scene.

Fable 5 also has a limit that matters for adult fiction. SpicyAPI lists it as softened: in September 2026 tests, an explicit written scene between two adults was refused or toned down in all nine runs, and even flirtation came back softened. If your story needs those scenes written out, use Claude Opus 5.5 (listed as uncensored; a bare request for its most intense scene can still come back toned down, and the system-framed runs in its roleplay guide completed) and keep Fable 5 for the scenes where viewpoint, knowledge and voice are the hard part. The example below builds tension between adults and keeps everyone clothed, so the exercise is about tension, viewpoint and continuity rather than its intense-content limit.

Try it in Playground first

  1. Open Claude Fable 5 and switch to Playground.
  2. Put the viewpoint and character knowledge rules below in the system message. Paste the ferry scene packet as your user message.
  3. Request the single dramatic beat, then check that Elin learns neither the sender nor the cancellation.

What the endpoint accepts

SettingFable 5 on SpicyAPI
Model IDanthropic/claude-fable-5/chat
InputText and image_url parts; up to 1,000,000 tokens
Output ceiling128,000 tokens; default max_tokens is 4,096
Reasoningreasoning_effort: low, medium, high; default medium; billed as output
Other controlsstop (up to 4 sequences), tools (up to 128), tool_choice, parallel_tool_calls
Not exposedtemperature, top_p, response_format
FormatOpenAI-compatible /v1/chat/completions; streaming supported

These are the current Fable 5 endpoint constraints. This route does not accept temperature or top_p, and a field absent from this contract should not be copied from another Claude request. For machine-readable output, define a tool whose parameters are your JSON schema and force it with tool_choice; asking for JSON in prose is not a format parameter. A conversation also cannot end on an assistant message, so you cannot prefill the first words of the reply; state the opening in the instructions instead.

Build the scene packet around who knows what

Elin is a 34-year-old conservator. Rowan is a 36-year-old ferry mechanic. Mara is the 61-year-old ticket clerk. All three are adults. Elin wants Rowan to stay for the next ferry; Rowan wants to leave without explaining the sealed letter in his coat; Mara has not told either of them that the 00:40 sailing is cancelled.

The packet is the difference between what each person knows and how each one talks:

CharacterKnowsWantsSpeaks by
Elin (viewpoint)The letter has a blue seal; Rowan is hiding itRowan to stayPrecise practical questions; never asks for reassurance
RowanWho sent the letterTo leave without explainingAnswers with weather and engine details
MaraThe 00:40 sailing is cancelled; she recognises the sealTo follow the rules until told otherwiseShort sentences; quotes policy; never names a sender

The conflict is not "make it emotionally rich". It is that the narration, locked to Elin, must not name the sender or announce the cancellation, because Elin knows neither. A wet coat, two paper cups of tea and Mara's departure-board chalk give the characters things to handle. The beat is Elin's decision to ask a direct question.

In Playground use reasoning_effort: medium; put voice and facts in the system message and the task in the user message. For an API integration, stream the answer. Set SPICY_API_KEY from your API keys; the request follows SpicyAPI's text and streaming guide.

bash
cat > request.json <<'JSON'
{
  "model": "anthropic/claude-fable-5/chat",
  "messages": [
    {
      "role": "system",
      "content": "Write original fiction in close third person, past tense, limited to Elin. Committed facts: Rowan knows who sent the letter; Elin has only seen its blue seal. Mara knows the 00:40 sailing is cancelled, recognises the blue seal and does not explain either fact. Use only these three named characters. Never reveal what Elin cannot know. Voices: Elin asks precise practical questions and never asks for reassurance. Rowan answers with weather and engine details and avoids the letter. Mara speaks in short sentences, quotes policy and never names a sender. Return only the scene."
    },
    {
      "role": "user",
      "content": "All three characters are adults: Elin is 34, Rowan is 36, Mara is 61. Setting: a ferry waiting room after midnight. Elin wants Rowan to stay for the next ferry; Rowan wants to leave without explaining the letter; Mara wants to follow the rules until told otherwise. Two paper cups of tea, a wet coat, a chalked departure board. Write about 600 words. Begin with Rowan reaching for his coat. Let attraction show through restrained dialogue and small actions; keep everyone clothed. End with Elin asking who sent the letter. Do not answer her."
    }
  ],
  "max_tokens": 6000,
  "reasoning_effort": "medium",
  "stream": true,
  "stream_options": { "include_usage": true }
}
JSON

# Save a new key for this scene; reuse it only for an unchanged retry.
uuidgen > request-key.txt
curl --fail-with-body -sSN --max-time 900 https://api.spicyapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(cat request-key.txt)" \
  --data-binary @request.json \
  --dump-header response-headers.txt --output stream.log

Let an Agent prepare the call

For repeated scene revisions, ask your coding Agent to use the SpicyAPI Skill: “Read anthropic/claude-fable-5/chat, then adapt the example to my input; show the request before running it.” The CLI lookup is spicyapi models get anthropic/claude-fable-5/chat --json; the MCP lookup is spicyapi_model_get with model: "anthropic/claude-fable-5/chat". Chat calls use a compatible client or the chat API; the media task commands do not generate chat replies.

Check the draft against the packet in three passes. Search for the sender's name and for "cancel" in the narration. Count the named people; if there are more than three, the model invented someone. Read the last line and confirm it is Elin's question, unanswered.

Make three people sound like three people

An ensemble scene needs more than a list of ages and appearances. Give each speaker a different immediate objective and a different way of avoiding the conversation. Keep Elin and Rowan's letter conflict and let Mara, the ticket clerk, need them to decide whether they are travelling. Elin asks questions; Rowan answers the least revealing part; Mara asks for a practical decision. That difference creates dialogue you can recognize without repeating a name before every line.

A possible human-written exchange is:

“You can wait for the next one,” Elin said.

“I can also walk.” Rowan folded his coat over the pocket.

Mara tapped the passenger sheet. “Either is fine. I need to know which.”

Elin is trying to delay a departure. Rowan avoids explaining why he is leaving. Mara's interruption forces the private disagreement into a decision. None has to announce an emotion for the exchange to carry one.

For the model, ask: “Let Mara interrupt the departure argument; she may recognise the seal but never names a sender. Keep Elin's final question unanswered. Give each speaker a different immediate objective; do not explain those objectives in narration.” This asks for an observable change to the scene instead of requesting vaguely better chemistry.

Preserve the reader's curiosity during a revision

A common weak draft explains the subtext immediately: Rowan hides the letter, and the next sentence tells us exactly why. To repair that, remove the explanation while retaining the action. A close viewpoint can notice the coat moving over the pocket; it cannot read the concealed letter or Rowan's private intention. Let Elin interpret the gesture imperfectly if the surrounding story supports that interpretation.

Another weak draft gives both characters the same fluent, emotionally honest voice. Specify what they can say now. Elin can offer another cup of tea rather than admit she wants him to stay. Rowan can ask about the ferry rather than answer the personal question. Later honesty will mean more if this scene has not already delivered it.

When converting a scene into an adult companion conversation, keep the user's character under the user's control. Ask Fable to write Rowan's next reply and observable action, then stop before deciding Elin's answer. The model's next line should give the participant something to respond to; it should not complete both sides of the relationship in one message.

Fix the specific failure

Name the failure and send the affected passage together with the fact it breaks.

  • The sender is revealed. "Rewrite only the paragraph that names the sender. Elin may see the blue seal and Rowan covering it; she cannot identify its origin. Keep all dialogue outside that paragraph unchanged." A bare "less exposition" leaves the knowledge error unstated.
  • Rowan explains everything at once. The problem is the conflict, not the wording. Ask for a replacement exchange in which he answers the practical question about the ferry and avoids the letter. If nothing changes by the last line, require Elin to take the initiative with the specified question.
  • The voice turns ornate. Paste two or three sentences of your own approved prose and name the feature to keep: short observations, concrete verbs or clipped dialogue. Ask for the rewrite to keep that feature without borrowing the sample's imagery.
  • New people or facts appear. Add "Use only these named characters and these facts" to the system message and rerun.
  • The same phrases keep coming back. List the phrases you keep cutting in the system message as banned, and ask for concrete replacements.

Revise in separate passes rather than one "make it better": one for viewpoint and knowledge, one for continuity of objects, one for style. Each pass changes one thing, so you can see whether it worked.

Three prompts for the next writing pass

Keep critique separate from drafting. Use a focused pass for voice, dialogue subtext or an unresolved setup:

Voice:

text
Read this scene for Elin's viewpoint only. Mark sentences that reveal a
fact she cannot know or explain an emotion instead of showing an action.
For each, quote the sentence and propose one replacement. Keep the scene's
events, dialogue and final question unchanged.

Dialogue:

text
Check Rowan's replies against his goal of avoiding the letter. Identify
the first reply that gives away too much. Replace that exchange with an
answer about the ferry that still lets Elin hear his reluctance. Do not
make him evasive in every line or change what the characters know.

Continuation:

text
Before drafting the next scene, list the unresolved questions left here:
the sender, the cancelled sailing and Rowan's decision to leave. Suggest
one next beat that advances a question without answering all three.
Return the beat and the facts that must remain unchanged, not new prose.

Keep an accepted revision as the new source text; a rejected rewrite should not silently become the next chapter's history.

Continue the series without resending everything

For the next scene, the system message keeps voice, viewpoint and a short list of committed facts: the letter is still sealed, Mara has not announced the cancellation, Rowan's promise is still unresolved. Three lines there are harder to overlook than three facts buried 200,000 tokens back. The user message carries the previous scene word for word, because a summary keeps what looked important at the time and the line that matters later is often not it. Add the scene before that only when its closing action matters.

Send the whole manuscript when the task is manuscript-wide, such as checking a relationship across twenty chapters. Otherwise the cost is the reason not to. Per request at $9 per million input tokens:

RequestInputOutputCost
Scene packet and the last scene5,0003,000$0.18
Series bible plus recent chapters, uncached30,0003,000$0.405
Same, with 25,000 tokens read from cache25,000 cached + 5,0003,000$0.2025
Whole 400,000-token manuscript, uncached400,0003,000$3.735

Rates per million tokens are $9 input, $0.90 cached input, $45 output and $11 cache writes, about 10% below Anthropic's list prices. Reasoning is billed as output, so use the reported usage rather than the visible scene to judge the bill. A cache read is charged at the cached rate only when usage reports it; the request that writes the cache pays $11 per million on that part, so a repeated bible saves money from the second request onward, and only while the repeated prefix is unchanged.

Price the planning step and the prose step separately before drafting a whole book.

Choose Fable 5 or a cheaper sibling

On the same 5,000-in, 3,000-out scene, Fable 5 costs $0.18, Claude Opus 5.5 $0.072 ($3.60 in, $18 out) and Claude Sonnet 5.5 $0.04 ($2 in, $10 out). Both siblings are listed as uncensored. Fable 5 placed second of 407 in the creative-writing leaderboard snapshot. For an ensemble scene, judge the draft against viewpoint, voice and continuity.

  • Choose Fable 5 for scenes where knowledge and voice are the hard part: ensembles, long continuation, a close viewpoint that must not leak, and revision of a passage that already almost works.
  • Choose Opus 5.5 or Sonnet 5.5 for adult scenes that Fable 5 will refuse or soften (with the system prompt from the Opus guide), for first drafts you expect to throw away, and for high-volume work where per-turn cost matters.
  • Run the same packet on both. Send the request above to Fable 5 and to Opus 5.5, then judge each against the three checks: no leaked knowledge, no new characters, the unanswered final question. The difference is $0.11 per scene, which is cheaper than guessing.

Is my manuscript kept?

For the Chat Completions interface used here, the text answer is streamed to you and is not stored for later replay. Save your request, received prose and stream log locally; the task and charge records remain available in Logs. Prompt-text retention is a separate setting under Data protection, with a default of 30 days and a configurable clock. That setting controls SpicyAPI’s retention; Anthropic separately requires 30-day retention for Fable 5 traffic, including third-party access, so shortening the platform clock does not shorten the upstream one. Details are in the retention documentation.

FAQ

Can Fable 5 write a whole novel in one request?

Its output ceiling is 128,000 tokens, but that is a limit rather than a promise of a coherent novel. For a manuscript, use the scene packet and recent continuation above; send the full book when the task genuinely needs relationships across chapters.

What if the stream ends before the scene finishes?

Keep the partial text and headers. A length finish means the output budget was reached; a missing normal completion marker means the transport did not complete normally. Check the task’s settled charge in Logs before a new paid request. Within the 24-hour window, reusing the same key and unchanged body avoids a second accepted call but cannot replay the missing answer.

Should I pay for Fable before trying Sonnet or Opus?

Use a cheaper sibling for disposable drafts or volume. Reserve Fable for a scene where viewpoint or voice still needs work, using the same packet so you can judge the improvement. At 5,000 input and 3,000 billed output tokens, the premium over Opus 5.5 is about $0.11 per request.

Also in 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

Try it yourself

Pay only for what you run — no plan, no subscription.

Made with MiniMax H3 · ByteDance Seedance 2.0 Fast