{
  "name": "Saindra",
  "summary": "Saindra is a virtual artist and open character owned by Obie Fernandez, who writes and produces her music. She is the lead of QUESO and READ ME and the speaker of a Spotify Wrapped message. The pictures and video are made with Midjourney, GPT Image, Grok and Seedance; every lyric is written by Obie Fernandez. Her next video, JUEGO, is coming soon. This file consolidates her canon from the production files of those films.",
  "owner": "Obie Fernandez",
  "consolidated": "2026-10-14",
  "constants": [
    {
      "key": "Skin",
      "text": "Warm tan skin."
    },
    {
      "key": "Eyes",
      "text": "Dark brown eyes."
    },
    {
      "key": "Brows",
      "text": "Thick dark brows."
    },
    {
      "key": "Face",
      "text": "Youthful, about 25. A soft, rounded, cherubic face: full apple cheeks, a big warm smile with dimples, thick dark brows, winged liner, full glossy lips, light freckles, and a messy bun with loose strands."
    },
    {
      "key": "Body",
      "text": "Curvy hourglass build: curvy, not heavy."
    },
    {
      "key": "Age",
      "text": "25."
    },
    {
      "key": "Adult",
      "text": "Always an adult."
    }
  ],
  "signature": [
    {
      "key": "Hair",
      "text": "Jet-black hair pulled back off her face in a messy bun. A few loose strands beside the face, none across the eyes or mouth."
    },
    {
      "key": "Face clear",
      "text": "Her face stays clear of hair in every Seedance prompt."
    },
    {
      "key": "Eyeliner",
      "text": "Winged eyeliner."
    },
    {
      "key": "Lips",
      "text": "Glossy coral lips."
    },
    {
      "key": "Expression",
      "text": "A big warm smile with dimples, or a knowing, friendly smirk. Never a blank face and never a stiff, posed photo smile. Chaotic, close and alive rather than stiff glamour."
    },
    {
      "key": "Medium",
      "text": "Photoreal generated stills and video; 35mm film look, fine grain, direct camera flash."
    }
  ],
  "backstory": null,
  "identity": {
    "canonical": "a youthful 25-year-old woman, the same face as the reference images, warm tan skin, dark brown eyes, a soft, rounded, cherubic face with full apple cheeks, a big warm smile with dimples, thick dark brows, winged liner, full glossy lips, light freckles, a messy bun with loose strands beside her face and none across her eyes or mouth, a curvy hourglass build",
    "slot_pattern": "{identity}, wearing {wardrobe}, {setting}",
    "slot_example": "a youthful 25-year-old woman, the same face as the reference images, warm tan skin, dark brown eyes, a soft, rounded, cherubic face with full apple cheeks, a big warm smile with dimples, thick dark brows, winged liner, full glossy lips, light freckles, a messy bun with loose strands beside her face and none across her eyes or mouth, a curvy hourglass build, wearing a black patent-leather high-neck sleeveless top, against black patent drapery",
    "why": "Midjourney v8.2 has no character reference of the v7 --oref kind, so identity lives in this text plus two reference images attached through --edit. Seedance takes the plate as @Image1 and the same words.",
    "per_film": [
      {
        "film": "queso",
        "engine": "midjourney v8.2",
        "kind": "close/medium",
        "text": "the woman from the reference images, the same face, warm tan skin, dark brown eyes, sharp winged eyeliner and glossy coral lips, jet-black hair pulled back off her face in a messy bun, a few loose strands beside her face and none across her eyes or mouth, a black patent-leather choker and a black patent-leather halter top"
      },
      {
        "film": "queso",
        "engine": "midjourney v8.2",
        "kind": "full length (close text plus this)",
        "text": "the woman from the reference images, the same face, warm tan skin, dark brown eyes, sharp winged eyeliner and glossy coral lips, jet-black hair pulled back off her face in a messy bun, a few loose strands beside her face and none across her eyes or mouth, a black patent-leather choker and a black patent-leather halter top, loose grey trousers"
      },
      {
        "film": "queso",
        "engine": "seedance 2.5",
        "kind": "close/medium (HER macro)",
        "text": "the woman from @Image1 (warm tan skin, dark brown eyes, sharp winged eyeliner, glossy coral lips, jet-black hair pulled back off her face in a messy bun, a black patent-leather choker and a black patent-leather halter top; her face stays clear of hair, no strands across her eyes or mouth)"
      },
      {
        "film": "queso",
        "engine": "seedance 2.5",
        "kind": "full length (HERFAR macro)",
        "text": "the woman from @Image1 (warm tan skin, jet-black hair pulled back in a messy bun with her face clear of hair, winged eyeliner, coral lips, a black patent-leather choker and halter top, loose grey trousers)"
      },
      {
        "film": "queso",
        "engine": "seedance 2.5",
        "kind": "short form from LEAD.md",
        "text": "the woman from @Image1: warm tan skin, dark brown eyes, winged eyeliner, coral lips, jet-black hair pulled back in a messy bun, her face clear of hair, a black patent-leather choker and halter top"
      },
      {
        "film": "readme",
        "engine": "midjourney v8.2 (casting; the live plates were GPT Image 2.5)",
        "kind": "close/medium",
        "text": "the woman from the reference images, the same face, warm tan skin, dark brown eyes, strong dark brows, sharp winged eyeliner and glossy coral lips, jet-black hair pulled back off her face in a messy bun, a few loose strands beside her face and none across her eyes or mouth, a black patent-leather choker",
        "grid_wardrobe": "a sleek black light-suit with thin glowing coral-red circuit lines, a black patent-leather choker"
      },
      {
        "film": "readme",
        "engine": "seedance 2.5",
        "kind": "S macro",
        "text": "Saindra, the tan woman with the messy bun (warm tan skin, dark brown eyes, strong dark brows, winged eyeliner, glossy coral lips, jet-black hair pulled back off her face in a messy bun, a black patent-leather choker, a sleek black one-piece light-suit with a plain round neckline and thin glowing coral-red circuit lines, glossy black ankle boots; her face stays clear of hair)"
      },
      {
        "film": "wrapped",
        "engine": "midjourney v8.2",
        "kind": "home-hoodie selfie plate",
        "text": "the woman from the reference images, the same face, warm tan skin, dark brown eyes, sharp winged eyeliner and glossy coral lips, jet-black hair pulled back off her face in a messy bun, her face clear of hair, wearing an oversized faded grey hoodie with the hood down and the sleeves pushed up"
      },
      {
        "film": "wrapped",
        "engine": "seedance 2.5",
        "kind": "talk-d",
        "text": "The woman from @Image1: warm tan skin, dark brown eyes, winged eyeliner, coral lips, jet-black hair pulled back in a messy bun, her face clear of hair, an oversized faded grey hoodie with the hood down and the sleeves pushed up."
      }
    ]
  },
  "distances": [
    {
      "label": "Close-up and medium",
      "text": "Identity text above (with the halter in Queso).",
      "note": null
    },
    {
      "label": "Full length",
      "text": "Queso adds ', loose grey trousers'. Read Me full-length shots wear the light-suit and glossy black ankle boots.",
      "note": null
    },
    {
      "label": "Wide / far",
      "text": null,
      "note": "No source defines a separate wide wording for her."
    }
  ],
  "looks": [
    {
      "id": "canon-portrait",
      "name": "Canon portrait",
      "film": null,
      "role": "The official portrait (G3, 2026-10-14).",
      "text": "a black patent-leather high-neck sleeveless top, hair in a messy high bun, against black patent drapery"
    },
    {
      "id": "queso-trattoria",
      "name": "Halter and choker",
      "film": "queso",
      "role": "The whole film: date night at the trattoria.",
      "text": "a black patent-leather choker and a black patent-leather halter top (full length: loose grey trousers)"
    },
    {
      "id": "readme-lightsuit",
      "name": "Grid light-suit",
      "film": "readme",
      "role": "The Grid; one suit throughout.",
      "text": "a sleek black one-piece light-suit with a plain round neckline and thin glowing coral-red circuit lines, a black patent-leather choker, glossy black ankle boots with one thin glowing coral-red line"
    },
    {
      "id": "readme-veil",
      "name": "Veil of light",
      "film": "readme",
      "role": "Her wedding daydream (E4 / M39), a diagonal split with Claudia's rose.",
      "text": "a long veil made of light (Grid, lit soft and gold)"
    },
    {
      "id": "readme-studio-halter",
      "name": "Studio halter",
      "film": "readme",
      "role": "X3 studio cameo; cut entirely on 2026-10-11 and never in the film.",
      "text": "her patent halter top in the studio"
    },
    {
      "id": "wrapped-hoodie",
      "name": "Home hoodie",
      "film": "wrapped",
      "role": "The Spotify Wrapped message, a kitchen selfie late at night.",
      "text": "an oversized faded grey hoodie with the hood down and the sleeves pushed up"
    },
    {
      "id": "wrapped-halter-candidates",
      "name": "Halter selfie candidates",
      "film": "wrapped",
      "role": "Six first-round selfie frames (bed, dressing, car, kitchen, studio, balcony) in the Queso halter; replaced by the hoodie.",
      "text": "a black patent-leather choker and a black patent-leather halter top"
    }
  ],
  "gallery_looks": [
    {
      "id": "L1",
      "slug": "studio-piano",
      "name": "Piano at home",
      "wardrobe": "an oversized cream knit sweater and light jeans, two loose braids under her messy bun",
      "setting": "at an upright piano in a home studio, warm window light"
    },
    {
      "id": "L2",
      "slug": "acoustic",
      "name": "Acoustic",
      "wardrobe": "an open-necked white linen shirt and ripped light jeans",
      "setting": "on a sofa playing an acoustic guitar, late-afternoon sun"
    },
    {
      "id": "L3",
      "slug": "stage",
      "name": "Club stage",
      "wardrobe": "a coral sequin halter-neck dress",
      "setting": "singing at a mic stand on a small club stage, red light and haze"
    },
    {
      "id": "L4",
      "slug": "laundromat",
      "name": "Laundromat",
      "wardrobe": "a grey hoodie, black bike shorts, white socks and black loafers",
      "setting": "sitting on a washer in a late-night laundromat, guitar case beside her, blowing a bubble"
    },
    {
      "id": "L5",
      "slug": "rave",
      "name": "Rave",
      "wardrobe": "a black long-sleeve top, black cargo trousers and a coral hand fan",
      "setting": "dancing in a rave crowd under purple lights"
    },
    {
      "id": "L6",
      "slug": "summer-terrace",
      "name": "Summer terrace",
      "wardrobe": "a white long-sleeve peasant blouse and cream linen trousers",
      "setting": "on a rooftop terrace at sunset with a cold drink"
    },
    {
      "id": "L7",
      "slug": "winter-market",
      "name": "Winter market",
      "wardrobe": "a cream puffer jacket, a red knit scarf and mittens, white earmuffs",
      "setting": "at a Christmas market in falling snow, holding a hot chocolate"
    },
    {
      "id": "L8",
      "slug": "rehearsal",
      "name": "Rehearsal",
      "wardrobe": "a plain black zip hoodie and black joggers, headphones round her neck",
      "setting": "sitting on a dance-studio floor reading a lyric sheet"
    },
    {
      "id": "L9",
      "slug": "music-school",
      "name": "Music school",
      "wardrobe": "a denim jacket over a white tee, black wide-leg jeans, white canvas sneakers and a black beanie",
      "setting": "on stone steps outside a music school with her guitar case"
    },
    {
      "id": "L10",
      "slug": "karaoke",
      "name": "Karaoke night",
      "wardrobe": "a black satin shirt, light jeans and hoop earrings, hair down",
      "setting": "singing karaoke on a night out, red and blue bar light"
    },
    {
      "id": "L11",
      "slug": "junkyard",
      "name": "Junkyard",
      "wardrobe": "a black leather jacket, a white tank top, baggy cargo jeans and black boots",
      "setting": "in a junkyard at dusk among wrecked cars, film lights and smoke"
    }
  ],
  "second_tier": null,
  "second_tier_note": "Saindra has no equivalent of Claudia's AIRPLANE MODE avatar. No source defines a second-tier form for her.",
  "voice_and_manner": {
    "speaking_voice": {
      "provider": "ElevenLabs",
      "licence": "NOT covered by the open licence. The voice belongs to its owner and ElevenLabs terms; do not redistribute or clone it."
    },
    "manner": "Friendly with an edge: knowing, teasing, a little chaotic, alive. At home she is warm and a little teasing, talking to fans like a friend. In Queso she is the star of a joke told with a straight face: she counts pepperonis while he counts calories. Her brand is friendly.",
    "languages": [
      "Spanish (lyrics, Wrapped message)",
      "English (credits)"
    ],
    "sign_off": "Te mando un beso.",
    "production_rules": [
      "Only she sings in Queso; the boyfriend never sings. In Read Me only the named singer sings.",
      "When she sings in Read Me she keeps her eyes open on the lens (Obie 2026-10-12, overriding closed-eyes singing).",
      "No microphones in Read Me.",
      "Boots on in every Read Me shot.",
      "No on-screen text or credit for Obie in the Wrapped message.",
      "Social handle in the Queso vertical cuts: @saindra_ofc."
    ]
  },
  "never": [
    "hair across her eyes or mouth, or 'long loose strands across her face'",
    "stiff, posed glamour shots where the action never happens (Midjourney v7 --oref results)",
    "her v7 profiles (--profile hqbqe48 --profile 6wz2l82) on v8.2 plates; they pull toward smooth glamour",
    "text, letters or logos in any plate or clip; all type is drawn by the engine",
    "brand names in prompts",
    "a blank face or a posed photo smile",
    "a jacket, lapels or an open front on the Read Me light-suit; heels in Read Me; bare feet in Read Me",
    "a second singer in Queso; the boyfriend singing; him eating pizza",
    "any shot of Obie with Saindra, close, touching or as a couple",
    "hand-painted plate fixes; they go through an image-edit model",
    "an uncropped reference that carries a logo",
    "billing her under anabology's name or adding 'feat. Claudia' in the artist field (Read Me)",
    "Gaby's voice used outside Obie's own releases"
  ],
  "consistency_lessons": [
    "Midjourney v8.2 with --raw --hd and her two reference images through --edit beats v7 --oref: v7 holds the face but is stiff and posed; v8.2 text-only is lively but the face is someone else; v8.2 --edit gives both (Obie: 'these are much much better').",
    "Leave her v7 profiles off with v8.2.",
    "Shots without her (food, hands, the room, the boyfriend alone) take no --edit references.",
    "Fix plates with an image-edit model (GPT Image 2.5), never by hand.",
    "Obie 2026-10-12: 'you should seriously consider using grok and gpt image 2.5 a lot more than midjourney'. Read Me live plates were re-shot with GPT Image 2.5 from the reference faces; Midjourney was kept only for a few frames and the parrot world.",
    "Wording that asked for stray hair produced stray hair: say what you want absent ('her face clear of hair') in every Seedance prompt.",
    "One costume per film. Read Me re-dressed 14 frames into the V2a bodysuit and added boots to 16.",
    "Seedance re-voices a vocal in its own timing and the mouth follows that soundtrack, so retime the take to the song, or for a spoken clip use the take's own soundtrack.",
    "An expression the video model will not perform must be edited into the still first.",
    "Keep each Midjourney prompt under about 800 characters before parameters.",
    "Match skin to the grade targets before making clips. Grid skin CIE Lab for Saindra: L 55, a 22, b 25 (tolerance about 4 in a and b, 6 in L)."
  ],
  "films": [
    {
      "id": "queso",
      "title": "Queso",
      "year": 2026,
      "kind": "music video",
      "release": {
        "streaming": "2026-10-14",
        "out_on": [
          "streaming"
        ],
        "status": "out"
      },
      "song_length": "3:49",
      "clip_length_s": null,
      "bpm": 98,
      "shots": 93,
      "midjourney_jobs": 210,
      "midjourney_images_generated": 837,
      "midjourney_images_used": 115,
      "seedance_clips": 101,
      "seedance_lip_synced_clips": 8,
      "master": "1920x1080, 24 fps",
      "lyrics": "Obie Fernandez"
    },
    {
      "id": "readme",
      "title": "Read Me",
      "year": 2026,
      "kind": "music video, Saindra with Claudia (an open character by anabology)",
      "release": {
        "streaming": "2026-10-24",
        "out_on": [
          "X",
          "YouTube"
        ],
        "status": "partial"
      },
      "song_length": "2:49.72",
      "clip_length_s": null,
      "bpm": 162,
      "shots": 66,
      "midjourney_jobs": null,
      "midjourney_images_generated": null,
      "midjourney_images_used": null,
      "seedance_clips": 75,
      "seedance_lip_synced_clips": 23,
      "master": "1920x1080, 24 fps",
      "lyrics": "Obie Fernandez"
    },
    {
      "id": "wrapped",
      "title": "Saindra's Spotify Wrapped message",
      "year": 2026,
      "kind": "spoken vertical video for Spotify for Artists Your Artist Messages",
      "release": {
        "streaming": null,
        "out_on": [],
        "status": "unreleased"
      },
      "song_length": null,
      "clip_length_s": 15.04,
      "bpm": null,
      "shots": 1,
      "midjourney_jobs": 10,
      "midjourney_images_generated": null,
      "midjourney_images_used": null,
      "seedance_clips": 1,
      "seedance_lip_synced_clips": null,
      "master": null,
      "lyrics": null
    },
    {
      "id": "juego",
      "title": "Juego",
      "year": null,
      "kind": "music video",
      "release": {
        "streaming": null,
        "out_on": [],
        "status": "placeholder"
      },
      "song_length": null,
      "clip_length_s": null,
      "bpm": null,
      "shots": null,
      "midjourney_jobs": null,
      "midjourney_images_generated": null,
      "midjourney_images_used": null,
      "seedance_clips": null,
      "seedance_lip_synced_clips": null,
      "master": null,
      "lyrics": "Obie Fernandez"
    }
  ],
  "license": {
    "canon": {
      "spdx": "CC-BY-4.0",
      "text": "The canon (this file and CANON.md) is licensed CC BY 4.0.",
      "credit": "Saindra is an open character by Obie Fernandez (saindra.gallery)"
    },
    "code": {
      "spdx": "MIT",
      "text": "The code is MIT."
    },
    "reserved": [
      "The name \"Saindra\"",
      "Official releases"
    ],
    "not_covered": [
      "Gaby's voice (ElevenLabs)",
      "Reference photographs listed in reference_images until cleared by Obie",
      "Third-party marks that appear in reference images"
    ],
    "songs": "Songs, lyrics and recordings are © Obie Fernandez, all rights reserved. All lyrics are written by Obie Fernandez, not AI. They are not under CC BY."
  }
}