{
  "id": "consistent-expression",
  "theme": "characters",
  "type": "image",
  "sourceCategory": "consistency",
  "kind": "image",
  "genre": "character-consistency",
  "title": "同じ人物やキャラの表情差分",
  "description": "採用画像を基準に顔つきと衣装を固定して表情だけを変える",
  "prompt": "Use the attached approved image as the identity and style reference. Create one new image of the same fictional adult subject, age {{age}}, changing only the expression to {{expression}}. Preserve the exact face shape, eye color, hairstyle, hair color, skin tone, outfit, accessories and rendering style visible in the reference. Match the original camera angle, crop, lighting and background. Keep the expression natural and anatomically plausible. Output one image of one subject, not a contact sheet. Do not add text, logos, extra accessories or watermark.",
  "variables": [
    {
      "key": "age",
      "label": "成人年齢",
      "default": "28",
      "required": true
    },
    {
      "key": "expression",
      "label": "表情",
      "default": "a gentle closed-mouth smile",
      "required": true
    }
  ],
  "notes": [
    "採用済みの架空の成人画像を添付する。「完全一致」は保証されない。顔の輪郭、前髪、瞳、衣装の装飾を確認する。"
  ],
  "outputArtifact": "1枚の画像。三面図や歩行案は1枚のシート。サイズと透過は生成サービス側でも指定。",
  "modelPolicy": "model-agnostic",
  "aspectRatio": "1:1",
  "referenceImageRequired": true,
  "transparentOutputRequested": false,
  "ageConstraint": "人間を扱う場合は25歳以上の架空の成人",
  "acceptanceCriteria": null,
  "keywords": [
    "同一性",
    "表情",
    "要参照画像"
  ],
  "defaultPrompt": "Use the attached approved image as the identity and style reference. Create one new image of the same fictional adult subject, age 28, changing only the expression to a gentle closed-mouth smile. Preserve the exact face shape, eye color, hairstyle, hair color, skin tone, outfit, accessories and rendering style visible in the reference. Match the original camera angle, crop, lighting and background. Keep the expression natural and anatomically plausible. Output one image of one subject, not a contact sheet. Do not add text, logos, extra accessories or watermark.",
  "execution": {
    "status": "not-run",
    "actualModel": null,
    "modelVersion": null,
    "executionDate": null,
    "tokens": null,
    "cost": null,
    "elapsedSeconds": null,
    "output": null
  },
  "provenance": {
    "source": "Kumyu Academy creative templates",
    "sourceFile": "apps/academy/content/creative/templates/ja/characters.json",
    "sourceCommit": "33a0ac4473d64ec443e809d754051109d9324435",
    "sourceBlob": "6cedec9afbb59bb0bf076e910a368e2654fd4d7a",
    "sourceSha256": "a67f352031d94ade4f54c5331cdffbec56417bb3a45de76e05c476c8779b3447",
    "originalJsonPointer": "/templates/13",
    "originalPromptSha256": "64b1fcfe60c25b59594008ef8c4b1f0680669002ecf6fd803a4cdfbe381c08cb",
    "publicPromptSha256": "64b1fcfe60c25b59594008ef8c4b1f0680669002ecf6fd803a4cdfbe381c08cb",
    "originalDefaultPromptSha256": "4df2f6df6ec18f978cab9b1d2a715cec1e841094e465eb14f6cc5ed388df2ba4",
    "publicDefaultPromptSha256": "4df2f6df6ec18f978cab9b1d2a715cec1e841094e465eb14f6cc5ed388df2ba4",
    "transformations": [],
    "defaultInterpolationMatchesOriginal": true,
    "validationNotes": []
  }
}
