vignette/docs/avatar-art/seoyeon/gen-variants.sh
Yun Chan 085460b5e0 대시보드 폴드아웃/드릴다운 정리 + 페르소나 역린·misconduct 반응 + 게이트웨이 격리·RAG 비차단 수정
SSOT 대시보드:
- 한신대 기술분석 PDF(19쪽) 정합성 분석 + 이번 세션 발견 섹션 추가
- 섹션 폴드아웃(접기)·상단 목차(드릴다운)·모두 펼치기/접기 — 내용 보존, 레이아웃만 정리

페르소나 반응 강화('저항·반응 조절' 핵심 차별):
- PersonaCard.triggers(역린) 필드 + CCD 핵심상처 파생 역린 블록
- L0에 무례·모욕·조롱 시 현실적 동맹 균열 반응 지침

버그·성능 수정(라이브/E2E로 포착):
- 게이트웨이 페르소나 격리: --append-system-prompt를 --system-prompt(교체)로 + --exclude-dynamic-system-prompt-sections (내담자 캐릭터 붕괴·개발맥락 누출 차단)
- RAG: 임베더 동기 로드(약 7-13초)를 _warm_rag_caches 백그라운드 warm으로(세션 생성 블로킹 회귀 수정)
- voice TTS RMS 데드힌트 제거, init_state OpennessParams 파라미터객체화
- 한국어 PII(날짜·금액·주소) 마스킹 보강
- 레이아웃 시각 게이트: 폼 컨트롤 값 스크롤 오탐 제외(7/7)

검증: 백엔드 84/84, E2E 42(데스크톱 27·모바일 11·아바타 4), 시각 게이트 7/7
2026-06-27 02:30:46 +09:00

43 lines
No EOL
3.2 KiB
Bash

#!/usr/bin/env bash
# 서연 표정 변주 일괄 생성. 베이스(base-v1.png)를 -i 참조로 넘겨 아이덴티티/프레이밍/배경을
# 고정하고 표정만 교체한다. 동일 평면 회색 배경(#C9CDD2)으로 컷아웃 일관성 확보.
set -uo pipefail
cd "$(dirname "$0")"
GEN="$HOME/.codex/imagegen-headless/codex_imagegen.sh"
BASE="base-v1.png"
# 변주: 이름 | 표정 설명
read -r -d '' INVARIANTS <<'EOF' || true
INVARIANTS (절대 바꾸지 말 것): EXACTLY the same character — identical face, identical long brown wavy hair that is center-parted with straight horizontal bangs and side locks framing the face past the shoulders, identical grayish-blue crewneck top (shoulders only), identical skin tone and shading style. EXACTLY the same head-and-shoulders bust framing: centered, perfectly front-facing, symmetrical, same scale and position, same soft even frontal lighting, same flat solid light gray background (#C9CDD2) with absolutely no gradient, no shadow on background, no floor, no scenery. The ONLY thing that changes is the facial expression described below. Semi-realistic soft anime style, Ghibli-like warmth. No text, no watermark, no signature, no hands, no jewelry. Keep bangs above the eyes unless the expression explicitly closes the eyes.
EOF
declare -a VARIANTS=(
"sad|eyes gently downcast and sorrowful, inner eyebrows raised and slightly pinched upward together, mouth a soft small downturned frown, an overall melancholic downcast depressed mood. Eyes remain open."
"tired|heavy drowsy half-closed eyelids, relaxed slightly drooping eyebrows, soft neutral slightly parted mouth, weary exhausted mood. Eyes mostly open but heavy."
"anxious|worried anxious uneasy expression, eyes slightly wider and tense, eyebrows raised and pulled slightly together, mouth closed and tense, faint furrow of concern. Eyes open."
"warm|a warm gentle genuine soft smile, eyes slightly curved into gentle warm crescents, very subtle relaxed uplift of the mouth corners, kind comforting reassured mood. Eyes open."
"startled|startled surprised expression, eyes wide open round, eyebrows raised high, mouth slightly open in a small oval, mild shock. Eyes wide open."
"eyes-closed|eyes gently and fully closed in a relaxed slow blink, smooth closed eyelids, gentle relaxed neutral mouth, calm. (Bangs still above the closed eyes.)"
"speaking|mouth opened slightly as if speaking mid-sentence (small natural mouth opening), relaxed open eyes, calm neutral brow, talking expression. Eyes open."
)
for entry in "${VARIANTS[@]}"; do
name="${entry%%|*}"
desc="${entry#*|}"
out="var-${name}-v1.png"
echo "=============================="
echo "[gen] $name -> $out"
prompt="Use the supplied reference image as the exact character and framing to preserve. Generate the SAME character with ONLY the facial expression changed.
EXPRESSION: ${desc}
${INVARIANTS}"
if bash "$GEN" --out "$out" --size 1024x1280 --quality high -i "$BASE" --prompt "$prompt" >/tmp/seoyeon_${name}.log 2>&1; then
echo "[ok] $out ($(stat -c %s "$out" 2>/dev/null || echo '?') bytes)"
else
echo "[FAIL] $name — log:"
tail -15 "/tmp/seoyeon_${name}.log"
fi
done
echo "=============================="
echo "ALL DONE"
ls -la var-*-v1.png 2>/dev/null