One person, four scenes

A portrait, then three edits that keep her face.

The person

Close portrait of a 75-year-old grandmother from a village in western Hunan, sitting on a low wooden stool under the eaves of her timber house: a deeply lined, sun-darkened face, a few missing teeth in a small smile, silver hair pinned back under a black headscarf, a hand-sewn indigo cotton jacket with cloth buttons, rough hands resting on her knees. Soft daylight from the open courtyard on one side, the dark interior behind her. 85mm, eye level.

On the field path, image 1 of One person, four scenes

Elapsed–

Cost$0.14

Recorded run, replayed faster than it ran.

$0.14this recorded run's cost

  • 4 images≈ $0.14

Forking copies the 4 steps into your dashboard. You change the input, press Run, and each call is billed to your balance.

Build it yourself

Each step is one request to the Hyperouter API with your key. A later step reads an earlier one's output through {{steps.<id>…}}, and your inputs through {{vars.<name>}}. Models: bytedance/seedream-5.0-lite.

The 4 requests
  1. Draw the portrait

    POST /v1/images/generationsbytedance/seedream-5.0-lite1 image · 2048×2048

    {
      "model": "bytedance/seedream-5.0-lite",
      "prompt": "{{vars.person}} Documentary realism shot on 65mm large-format film: natural and practical light only, deep blacks with detail held in the shadows, fine organic film grain, true skin texture with pores and wrinkles, no retouching, no digital sharpening, no beauty filter.",
      "size": "2048x2048",
      "n": 1
    }
  2. Drying chillies

    POST /v1/images/editsbytedance/seedream-5.0-lite1 image · 2560×1440

    {
      "model": "bytedance/seedream-5.0-lite",
      "prompt": "{{vars.scene_1}} Documentary realism shot on 65mm large-format film: natural and practical light only, deep blacks with detail held in the shadows, fine organic film grain, true skin texture with pores and wrinkles, no retouching, no digital sharpening, no beauty filter.",
      "size": "2560x1440",
      "n": 1,
      "images": [
        {
          "image_url": "{{steps.portrait.url[0]}}"
        }
      ]
    }
  3. Feeding the stove

    POST /v1/images/editsbytedance/seedream-5.0-lite1 image · 2560×1440

    {
      "model": "bytedance/seedream-5.0-lite",
      "prompt": "{{vars.scene_2}} Documentary realism shot on 65mm large-format film: natural and practical light only, deep blacks with detail held in the shadows, fine organic film grain, true skin texture with pores and wrinkles, no retouching, no digital sharpening, no beauty filter.",
      "size": "2560x1440",
      "n": 1,
      "images": [
        {
          "image_url": "{{steps.portrait.url[0]}}"
        }
      ]
    }
  4. On the field path

    POST /v1/images/editsbytedance/seedream-5.0-lite1 image · 2560×1440

    {
      "model": "bytedance/seedream-5.0-lite",
      "prompt": "{{vars.scene_3}} Documentary realism shot on 65mm large-format film: natural and practical light only, deep blacks with detail held in the shadows, fine organic film grain, true skin texture with pores and wrinkles, no retouching, no digital sharpening, no beauty filter.",
      "size": "2560x1440",
      "n": 1,
      "images": [
        {
          "image_url": "{{steps.portrait.url[0]}}"
        }
      ]
    }
Run the whole pipeline from code
API=https://api.hyperouter.app/v1
call() { curl -s "$API/$1" -H "Authorization: Bearer $HYPEROUTER_API_KEY" -H 'Content-Type: application/json' "${@:2}"; }

LOOK='Documentary realism shot on 65mm large-format film: natural and practical light only, deep blacks with detail held in the shadows, fine organic film grain, true skin texture with pores and wrinkles, no retouching, no digital sharpening, no beauty filter.'
PERSON='Close portrait of a 75-year-old grandmother from a village in western Hunan, sitting on a low wooden stool under the eaves of her timber house: a deeply lined, sun-darkened face, a few missing teeth in a small smile, silver hair pinned back under a black headscarf, a hand-sewn indigo cotton jacket with cloth buttons, rough hands resting on her knees. Soft daylight from the open courtyard on one side, the dark interior behind her. 85mm, eye level.'

# 1. the portrait
PORTRAIT=$(jq -n --arg p "$PERSON $LOOK" '{model:"bytedance/seedream-5.0-lite", prompt:$p, size:"2048x2048", n:1}' | call images/generations -d @- | jq -r '.data[0].url')
echo "$PORTRAIT"

# 2-4. three scenes, each an edit of the portrait
edit() { jq -n --arg p "$1 $LOOK" --arg r "$PORTRAIT" '{model:"bytedance/seedream-5.0-lite", prompt:$p, size:"2560x1440", n:1, images:[{image_url:$r}]}' | call images/edits -d @- | jq -r '.data[0].url'; }
edit 'The same grandmother from the reference photo, same face, headscarf and indigo jacket, now standing on the wooden veranda of her house in late autumn, spreading fresh red chillies on a large round bamboo tray to dry in the sun, strings of dried chillies and corn hanging from the eaves, the village roofs behind. Medium shot, 50mm.'
edit 'The same grandmother from the reference photo, same face, headscarf and indigo jacket, sitting on a low stool in front of a soot-blackened brick stove in her dark wooden kitchen, feeding split firewood into the fire, the orange firelight on her face and hands the only light, smoke curling up to the rafters, an iron wok on the stove. Medium close-up, 50mm.'
edit 'The same grandmother from the reference photo, same face, headscarf and indigo jacket, walking along a narrow raised path between harvested rice paddies at dusk, a woven bamboo basket full of sweet potatoes on her back held by its straps, terraced hills and mist behind her. Full figure, side view, 40mm.'

Run One person, four scenes on your account

A portrait, then three edits that keep her face. Fork it, change the input, and run it from the dashboard: ≈ $0.14 per run at the default settings.