Features

Vary a scene

Take an existing generated scene and produce N near-clones that differ in exactly ONE dimension — expression, outfit, lighting, camera angle, pose, or background — while everything else stays pinned. Inspired by single-axis variation tools like Neolemon.

The six dimensions

  • expression — face only (frowning, laughing, surprised…)
  • outfit — clothing (“wearing a winter coat”, “wearing pajamas”)
  • lighting — register (“golden hour”, “moonlight”, “candlelit”)
  • angle — camera viewpoint (“low-angle hero shot”, “over-the-shoulder”)
  • pose — body position (“arms crossed”, “mid-jump”)
  • background — setting (“snowy forest”, “cyberpunk street”)

From the UI

  • Hover any scene in the Generated Scenes grid → click the 🎭 Vary overlay button.
  • Pick a dimension, type or chip-select a target, choose how many variations (1-4).
  • Hit generate. Costs 1 credit per variant. New variants land in the same Generated Scenes grid after ~30s.

From the API

bash
# 4 variations of an existing scene where only expression changes
curl -X POST https://steadyshot.ai/api/scenes/{image_id}/vary \
  -H "Authorization: Bearer ss_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "vary": "expression",
    "target": "frowning",
    "count": 4
  }'

# Response
{
  "source_image_id": "...",
  "vary": "expression",
  "target": "frowning",
  "requested": 4,
  "generated": 4,
  "failed": 0,
  "variants": [
    { "image_id": "...", "image_url": "...", "consistency_score": 89 },
    { "image_id": "...", "image_url": "...", "consistency_score": 91 },
    ...
  ]
}

From Claude Desktop (MCP)

With the SteadyShot MCP connected, just ask:

text
"Take that last scene and make 4 versions with different expressions"
"Now do the same scene but at golden hour"
"Same character, same pose, but in a snowy forest"

Claude figures out the right image_id from context and calls vary_scene. See MCP integration.

How identity is preserved

  • The source image is pinned as the slot-0 visual anchor with a special “vary_source” role telling the model to match art style, composition, identity, lighting — everything except the named dimension.
  • The source’s persisted art_style is re-threaded so a Pixar 3D source never comes back as watercolor.
  • QA scoring uses a special checkVariation rubric that grades how well the variation held everything else constant — instead of penalizing the intentional change.
Variations only work on character-anchored scenes. Brand-only generations don’t have a character to anchor the variation against; the endpoint returns 400.