← Visual SandboxCONTENT HISTORY
WHAT CHANGED
Update to Visual Sandbox
Snapshot Nov 5, 2026 · 01:19 UTC · version 1.0.8
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Visual Sandbox and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Prompt AI image models to produce UGC-style photos of a single person for 9:16 paid ad creative (TikTok, Reels, Shorts). Covers two distinct formats — selfie / phone-camera POV (handheld, hook shot) and locked-off talking-head testimonial (single frame meant to look like a real creator on a tripod). Trigger when the user asks for \"UGC ad\", \"AI influencer photo\", \"creator selfie\", \"talking head ad frame\", \"ugc style\", \"fake iPhone photo of a person\", or is about to run `vsb run image/<slug>` for a person shot intended to look like real UGC. Pairs with the `vsb-nano-banana` skill for prompt craft and the `vsb-image` skill for picking a model.\n",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 280
},
{
"relative_path": "references/model-notes.md",
"size_in_bytes": 8992
},
{
"relative_path": "references/selfie-pov.md",
"size_in_bytes": 11555
},
{
"relative_path": "references/talking-head.md",
"size_in_bytes": 14694
}
],
"name": "vsb-ugc-people",
"skill_md_contents": "---\nname: vsb-ugc-people\nrenamed_from: ugc-people\ndescription: >\n Prompt AI image models to produce UGC-style photos of a single person for\n 9:16 paid ad creative (TikTok, Reels, Shorts). Covers two distinct formats —\n selfie / phone-camera POV (handheld, hook shot) and locked-off talking-head\n testimonial (single frame meant to look like a real creator on a tripod).\n Trigger when the user asks for \"UGC ad\", \"AI influencer photo\", \"creator\n selfie\", \"talking head ad frame\", \"ugc style\", \"fake iPhone photo of a\n person\", or is about to run `vsb run image/<slug>` for a person shot\n intended to look like real UGC. Pairs with the `vsb-nano-banana` skill for\n prompt craft and the `vsb-image` skill for picking a model.\nlicense: Proprietary. See LICENSE for the terms.\n---\n\n# UGC people for 9:16 ad creative\n\nUGC ads succeed when the image **does not look AI**. Modern image models are\nbiased toward \"professional photography\" — clean studio light, smooth skin,\nsymmetric framing. UGC is the opposite: phone camera, imperfect, candid. Every\nrule below pushes the model away from its default and toward something a real\ncreator would post.\n\nTwo formats, two rule sets. Pick one before you start writing the prompt.\n\n## The two formats\n\n| | **Selfie / phone POV** | **Talking-head testimonial** |\n|---|---|---|\n| Use case | Hook shot, scroll-stopper, \"real moment\" frame | Testimonial frame, problem/solution, single-take ad |\n| Camera | Handheld, micro-jitter | Locked-off, no pan, no zoom |\n| Eye line | Slightly **above** subject's eye, angled down | Subject's eye level, dead-on |\n| Framing | Medium close-up to mid-shot, off-center OK | Medium close-up (chest to head), centered |\n| Distinctive cues | Hand holding phone in frame, mirror, reflection | Static room, single light source, gesture script |\n| Full rules | `references/selfie-pov.md` | `references/talking-head.md` |\n\nOpen the matching reference file before writing the prompt — it has the filled\ntemplate, the verbatim worked examples, and the failure modes specific to that\nformat.\n\n## The slot order\n\nEvery working UGC people prompt fills these slots, in this order. Skipping a\nslot lets the model default to its training median (stocky, smooth, posed).\n\n1. **Device token** — `\"shot on iPhone 15 Pro, front camera feel, not DSLR,\n not studio quality\"`. See § \"The iPhone token rule\" below.\n2. **Subject** — age range, ethnicity, build, mood. Specific: `\"early-to-mid\n 20s, mixed-heritage, freckles across nose, messy low bun\"`. Not: `\"a young\n woman\"`.\n3. **Wardrobe** — named items, fit, fabric: `\"short-sleeve beige ribbed\n scoop-neck top\"`, `\"white fitted long-sleeve crop top, light blue\n leggings\"`.\n4. **Action** — micro-gesture, mid-action. `\"tucking hair behind ear\"`, `\"hand\n loosely near chin\"`, `\"mid-laugh, phone held naturally\"`. Static A-pose\n kills UGC realism.\n5. **Location** — specific room, time of day, named light source: `\"open\n luxury kitchen interior, polished concrete flooring, morning light from\n window camera-left\"`.\n6. **Lighting** — soft, natural, named. Two light sources (window + lamp) is\n a high-fidelity trick. Never `\"studio lighting\"`.\n7. **Camera artifacts** — `\"slight motion softness, mild grain, natural\n exposure, slight lens distortion from front camera, no HDR or cinematic\n color grading\"`.\n8. **Vibe line** — one sentence at the end: `\"candid, unposed, natural\n lifestyle selfie — looks like a quick real moment, not staged or\n professionally shot.\"`\n\nThen end with a negative block (see § \"What to avoid\").\n\n## The iPhone token rule\n\nThe single most load-bearing line in any UGC prompt:\n\n```\nshot on iPhone 15 Pro, front camera feel, not DSLR, not studio quality\n```\n\nWhy it works: every image model has been trained on millions of photos\ntagged `iPhone`. The token activates the right cluster of training data\n(short focal length, front-camera color science, soft auto-HDR look) and\nthe `not DSLR, not studio quality` half explicitly suppresses the\nprofessional-photography cluster the model defaults to.\n\nVariants in the wild: `\"iPhone 13 front camera feel\"`, `\"iPhone 16 Pro\naesthetic\"`, `\"iPhone 17 Pro Max Simulation\"`, `\"matte white iPhone with the\nrecognizable triple-camera lens module\"` (when the phone is *in* frame for a\nmirror selfie). Pick a model — don't say just `\"smartphone\"`.\n\nIf the skill outputs only one fragment right, it must be this one.\n\n## Anti-plastic vocabulary\n\nUse *inline*, in the positive prompt — not just in the negatives. These cues\npush the model toward textured human realism.\n\n**Skin texture:**\n`visible pores`, `peach fuzz catching the light along the jawline`,\n`faint freckles across the bridge of the nose`, `subsurface scattering`,\n`natural skin texture, no beauty filter`, `slight blemish on the cheek`.\n\n**Imperfection:**\n`slight motion blur`, `mild grain`, `slightly off-center framing`,\n`slightly overexposed in the bright spots`, `slight lens distortion`,\n`framing feels candid and handheld`.\n\n**Hair:**\n`slightly grown-out roots`, `natural baby hairs visible at the hairline`,\n`messy unstyled strands`, `slightly frizzy`.\n\n**Micro-expression:**\n`caught laughing at something real`, `mouth slightly open mid-sentence`,\n`small natural smile, not posed`, `relaxed brows`, `neutral, slightly serious\nexpression`.\n\n## What to avoid\n\nWords that drag the model toward stock-photo / glamour-magazine output. Do\n**not** put these in the positive prompt — modern image models pattern-match\non language regardless of sign.\n\n- `professional photography`, `studio lighting`, `8K masterpiece`,\n `hyperdetailed`, `sharp focus`, `cinematic` (unless you genuinely want\n cinematic)\n- `beautiful`, `perfect`, `flawless`, `stunning` — bias toward glamour\n- `model`, `supermodel`, `actress`, `influencer` as the *only* subject\n descriptor — biases toward posed studio energy. Replace with a concrete\n demographic.\n- Pro camera brand names: `Hasselblad`, `Sony A7`, `shot on RED`\n- `HDR`, `color graded`, `cinematic color grading`\n\nAppend a negative block at the end of every UGC prompt. Standard template:\n\n```\nNegatives: professional photography, studio lighting, sharp focus,\nairbrushed skin, perfect composition, cinematic, 8k, masterpiece,\nplastic skin, over-smoothed texture, distorted hands, extra fingers,\nwarped iPhone shape, harsh flash, harsh studio lighting, glamour\nmagazine aesthetic, oversaturated colors, mannequin face,\nAI-perfect frozen expression, watermarks, captions, on-screen text.\n```\n\nFor multi-shot work, also add: `face drift between shots, altered eye\nshape, altered freckle placement, hair change, outfit change`.\n\n## Model picker\n\nVerify the live catalog: `vsb models --modality image --json | jq '.models[]\n| {slug, category, owner}'`.\n\n| Need | Default slug | Why |\n|------|--------------|-----|\n| Raw UGC realism, single shot | `image/gpt-image-2` | OpenAI. Current operator favourite for photoreal humans. Accepts negative-energy prompts (\"failed candid shot\") well. Weaker text rendering. Tiered cost — `Low quality` ≈ $0.006, `High quality` ≈ $0.21. |\n| Multi-shot character consistency, text/product label legibility | `image/nano-banana-pro` | Google. Strongest prompt adherence + text. Polished-AI baseline — needs explicit anti-plastic cues. Tiered cost — 1K/2K ≈ $0.15, 4K ≈ $0.30. |\n| Quick, cheap, good enough | `image/nano-banana` | Same family, fastest + cheapest among nano-banana tier. Flat ≈ $0.05. |\n| Cheapest UGC-viable, gen + edit | `image/flux-2-klein-9b` | Black Forest Labs. Flat ≈ $0.02 gen / $0.04 edit-with-ref. Identity holds well across a single edit cycle. Best test-bench default; bump to nano-banana-pro if you need multi-shot consistency. |\n\nFor Midjourney and Higgsfield-style preset notes, see\n`references/model-notes.md`.\n\nAlways verify the live schema: `vsb schema image/<slug> --json`. Read\nper-slug help with `vsb run image/<slug> --help` — it surfaces array-typed\ninputs (e.g. `image_input: array<string>`) and string-enum quirks\n(`output_megapixels: '1'` is a string Literal, not the int 1).\n\n**Reference-image CLI shape.** `--image_input` is array-typed. Pass either\nrepeated (`--image_input a --image_input b`) or as a JSON-array string\n(`--image_input '[\"a\",\"b\"]'`). A single bare `--image_input <path>` is\nauto-wrapped, but multi-ref calls need the repeated or JSON form.\n\n## Quick start\n\nA minimal selfie-POV run:\n\n```bash\nvsb run image/nano-banana-pro \\\n --prompt \"Shot on iPhone 15 Pro, front camera feel, not DSLR, not studio\nquality. Mid-20s mixed-heritage woman, natural skin texture with visible pores\nacross the T-zone and faint freckles across the bridge of the nose, messy low\nbun with baby hairs at the hairline. Short-sleeve oversized cream sweater.\nMid-action: tucking hair behind her ear with her left hand while looking\nsoftly toward the lens, mouth slightly open mid-sentence. Open kitchen\ninterior, polished concrete floor, morning light from a window camera-left,\nwarm lamp on a shelf behind her adding a soft glow. Slight motion softness,\nmild grain, slight lens distortion from front camera, slightly overexposed\non the window side, no HDR or cinematic color grading. Candid, unposed,\nnatural lifestyle selfie — looks like a quick real moment, not staged or\nprofessionally shot. Negatives: professional photography, studio lighting,\nplastic skin, airbrushed, glamour magazine, perfect composition, 8k,\nmasterpiece, distorted hands, extra fingers, harsh flash, mannequin face,\nAI-perfect frozen expression, watermarks, captions.\" \\\n --aspect_ratio 9:16 \\\n --output_format jpg \\\n --download \"./out/{request_id}.{ext}\" \\\n --json\n```\n\nOpen `references/selfie-pov.md` for the full filled template and three\nverbatim worked examples. For testimonial-frame work, open\n`references/talking-head.md`.\n"
}SHA-256 of public snapshot: 5b540fbfa4213173d8a9c694065a11e24c248d322a95993a35a6e47f66f54c78