> ⚠️ **아카이브** (소스 이미지 생성 기록). 이소리는 완성됨 — 현재 베이스 = `INTERACTIVE_RIG_HANDOFF.md` + `LeeSori_Profile/`. # LeeSori Image Generation Progress Handoff Date: 2026-07-03 Workspace: `D:\Work_AI\Dansori\Characters_Build_Docs` ## Current Goal Generate all remaining `LeeSori` character image assets according to `LeeSori/_RUN_ORDER.md`. Generation/save rule used in this session: - Each `## .png` heading in a generation `.md` is treated as one required image. - Output is saved under the `Images/` folder next to that `.md`, using the exact heading filename. - Existing files are not regenerated. - **⚠️ 투명 알파 재작성 규칙 (2026-07-03 갱신):** 모든 LeeSori 이미지는 **진짜 투명 알파 PNG — 32-bit RGBA (`Format32bppArgb`), 배경 alpha=0** 로 저장한다. 흰색/회색/체커보드/매트 배경 채움이나 불투명 24-bit(`Format24bppRgb`) 저장 금지. - **주의:** 이 세션 이전에 저장된 기존 이소리 자산(대부분)은 24-bit 불투명(≈#EFEFEF 배경)이라 위 규칙에 **미달** → 사용자가 이미지 AI에 **전량 투명 알파로 재의뢰**할 예정. hairmask만 이미 32-bit 투명. - Hair masks were generated locally from the corresponding base head image as black background + white hair region masks. ## Completed Before This Handoff ### Already complete at start or verified complete - `LeeSori/Base/Base.md`: 23 / 23 complete - `LeeSori/Accessories/Accessories.md`: 11 / 11 complete - `LeeSori/Hair/Hair.md`: 88 / 88 complete ### Completed during this session - `LeeSori/Hair/Hair_LongNeat.md`: 22 / 22 complete - `LeeSori/Hair/Hair_ShortNeat.md`: 22 / 22 complete - `LeeSori/Hair/Hair_WaveLNeat.md`: 21 / 22 complete `Hair_WaveLNeat.md` has all expression/head files complete. The only missing file is: - `LeeSori/Hair/Images/sori_hairmask_waveLneat.png` The attempted command to generate this mask was interrupted before completion, so treat it as not generated unless a file check proves otherwise. ## Current Counts Expected `LeeSori` asset count considered in this pass: - Base: 23 - Accessories: 11 - Hair main/neat docs: 176 total - Variations: 116 total Current remaining missing count: 139 Breakdown: - `LeeSori/Hair/Hair_WaveLNeat.md`: 1 missing - `LeeSori/Hair/Hair_WaveSNeat.md`: 22 missing - `LeeSori/Variations/DressShort/DressShort.md`: 23 missing - `LeeSori/Variations/DressLong/DressLong.md`: 23 missing - `LeeSori/Variations/Jeans/Jeans.md`: 23 missing - `LeeSori/Variations/Tshirt/Tshirt.md`: 23 missing - `LeeSori/Variations/CeoPantsuit/CeoPantsuit.md`: 24 missing ## Next Immediate Step 1. Generate the missing `waveLneat` mask: `LeeSori/Hair/Images/sori_hairmask_waveLneat.png` Use the same local mask-generation approach as previous masks, using: `LeeSori/Hair/Images/sori_head_waveLneat.png` 2. Continue `LeeSori/_RUN_ORDER.md` with: `LeeSori/Hair/Hair_WaveSNeat.md` Required files: - `sori_head_waveSneat.png` - `sori_head_waveSneat_neutral.png` - `sori_head_waveSneat_blink.png` - `sori_head_waveSneat_talk.png` - `sori_head_waveSneat_talk_wide.png` - `sori_head_waveSneat_smile.png` - `sori_head_waveSneat_positive.png` - `sori_head_waveSneat_negative.png` - `sori_head_waveSneat_confused.png` - `sori_head_waveSneat_wink.png` - `sori_head_waveSneat_surprised.png` - `sori_head_waveSneat_laugh.png` - `sori_head_waveSneat_thinking.png` - `sori_head_waveSneat_cool.png` - `sori_head_waveSneat_love.png` - `sori_head_waveSneat_shy.png` - `sori_head_waveSneat_sad.png` - `sori_head_waveSneat_pout.png` - `sori_head_waveSneat_sleepy.png` - `sori_head_waveSneat_proud.png` - `sori_head_waveSneat_playful.png` - `sori_hairmask_waveSneat.png` Recommended pattern: - Generate `sori_head_waveSneat.png`. - Copy it as `sori_head_waveSneat_neutral.png`. - Generate the 19 expression variants from the base. - Generate `sori_hairmask_waveSneat.png` locally from the base. ## Variation Assets Still Not Started All Variation `Images/` folders were empty at the time of this handoff. ### DressShort, 23 files - `sori_body_dressS_apose.png` - `sori_body_dressS_torso.png` - `sori_body_dressS_arm_r.png` - `sori_body_dressS_arm_l.png` - `sori_body_dressS_legs.png` - `sori_body_dressS_idle_full.png` - `sori_body_dressS_idle_upper.png` - `sori_body_dressS_wave.png` - `sori_body_dressS_handwave.png` - `sori_body_dressS_listen.png` - `sori_body_dressS_present.png` - `sori_body_dressS_dj.png` - `sori_body_dressS_piano.png` - `sori_body_dressS_control.png` - `sori_body_dressS_thumbsup.png` - `sori_body_dressS_heart.png` - `sori_body_dressS_clap.png` - `sori_body_dressS_peace.png` - `sori_body_dressS_armscross.png` - `sori_body_dressS_shrug.png` - `sori_body_dressS_point.png` - `sori_body_dressS_cheer.png` - `sori_body_dressS_joy.png` ### DressLong, 23 files - `sori_body_dressL_apose.png` - `sori_body_dressL_torso.png` - `sori_body_dressL_arm_r.png` - `sori_body_dressL_arm_l.png` - `sori_body_dressL_legs.png` - `sori_body_dressL_idle_full.png` - `sori_body_dressL_idle_upper.png` - `sori_body_dressL_wave.png` - `sori_body_dressL_handwave.png` - `sori_body_dressL_listen.png` - `sori_body_dressL_present.png` - `sori_body_dressL_dj.png` - `sori_body_dressL_piano.png` - `sori_body_dressL_control.png` - `sori_body_dressL_thumbsup.png` - `sori_body_dressL_heart.png` - `sori_body_dressL_clap.png` - `sori_body_dressL_peace.png` - `sori_body_dressL_armscross.png` - `sori_body_dressL_shrug.png` - `sori_body_dressL_point.png` - `sori_body_dressL_cheer.png` - `sori_body_dressL_joy.png` ### Jeans, 23 files - `sori_body_jeans_apose.png` - `sori_body_jeans_torso.png` - `sori_body_jeans_arm_r.png` - `sori_body_jeans_arm_l.png` - `sori_body_jeans_legs.png` - `sori_body_jeans_idle_full.png` - `sori_body_jeans_idle_upper.png` - `sori_body_jeans_wave.png` - `sori_body_jeans_handwave.png` - `sori_body_jeans_listen.png` - `sori_body_jeans_present.png` - `sori_body_jeans_dj.png` - `sori_body_jeans_piano.png` - `sori_body_jeans_control.png` - `sori_body_jeans_thumbsup.png` - `sori_body_jeans_heart.png` - `sori_body_jeans_clap.png` - `sori_body_jeans_peace.png` - `sori_body_jeans_armscross.png` - `sori_body_jeans_shrug.png` - `sori_body_jeans_point.png` - `sori_body_jeans_cheer.png` - `sori_body_jeans_joy.png` ### Tshirt, 23 files - `sori_body_tee_apose.png` - `sori_body_tee_torso.png` - `sori_body_tee_arm_r.png` - `sori_body_tee_arm_l.png` - `sori_body_tee_legs.png` - `sori_body_tee_idle_full.png` - `sori_body_tee_idle_upper.png` - `sori_body_tee_wave.png` - `sori_body_tee_handwave.png` - `sori_body_tee_listen.png` - `sori_body_tee_present.png` - `sori_body_tee_dj.png` - `sori_body_tee_piano.png` - `sori_body_tee_control.png` - `sori_body_tee_thumbsup.png` - `sori_body_tee_heart.png` - `sori_body_tee_clap.png` - `sori_body_tee_peace.png` - `sori_body_tee_armscross.png` - `sori_body_tee_shrug.png` - `sori_body_tee_point.png` - `sori_body_tee_cheer.png` - `sori_body_tee_joy.png` ### CeoPantsuit, 24 files - `sori_body_ceo_apose.png` - `sori_body_ceo_torso.png` - `sori_body_ceo_arm_r.png` - `sori_body_ceo_arm_l.png` - `sori_body_ceo_legs.png` - `sori_body_ceo_idle_full.png` - `sori_body_ceo_idle_upper.png` - `sori_body_ceo_wave.png` - `sori_body_ceo_handwave.png` - `sori_body_ceo_listen.png` - `sori_body_ceo_present.png` - `sori_body_ceo_dj.png` - `sori_body_ceo_piano.png` - `sori_body_ceo_control.png` - `sori_body_ceo_thumbsup.png` - `sori_body_ceo_heart.png` - `sori_body_ceo_clap.png` - `sori_body_ceo_peace.png` - `sori_body_ceo_armscross.png` - `sori_body_ceo_shrug.png` - `sori_body_ceo_point.png` - `sori_body_ceo_cheer.png` - `sori_body_ceo_joy.png` - `acc_glasses_ceo.png` ## Useful Verification Commands PowerShell count/missing check: ```powershell $rows=@() $targets = @('.\LeeSori\Hair\*.md','.\LeeSori\Base\Base.md','.\LeeSori\Accessories\Accessories.md') + (Get-ChildItem -File .\LeeSori\Variations\*\*.md | ForEach-Object {$_.FullName}) foreach($pathPattern in $targets){ foreach($md in Get-ChildItem -Path $pathPattern -ErrorAction SilentlyContinue){ $imgDir = Join-Path $md.DirectoryName 'Images' $expected = Select-String -LiteralPath $md.FullName -Pattern '^## ' | ForEach-Object { ($_.Line -replace '^##\s+','').Trim() } $existing = if(Test-Path $imgDir){ Get-ChildItem -File $imgDir -Filter *.png | Select-Object -ExpandProperty Name } else { @() } $missing = $expected | Where-Object { $_ -notin $existing } [PSCustomObject]@{ Md=$md.FullName.Replace((Resolve-Path .).Path+'\','') Expected=$expected.Count Existing=($expected.Count-$missing.Count) Missing=$missing.Count FirstMissing=($missing|Select-Object -First 1) } } } ``` ## Notes For Next Session - Continue from `sori_hairmask_waveLneat.png`. - Then complete `Hair_WaveSNeat.md`. - Then start Variations in `_RUN_ORDER.md`: DressShort, DressLong, Jeans, Tshirt, CeoPantsuit. - For generated files, copy the latest file from: `C:\Users\eKeerar\.codex\generated_images\019f2249-f7c7-75c2-b2d2-b2a6f10e355b` into the appropriate `Images/` folder with the exact `##` filename. - Do not ask before each save; the user explicitly granted write permission for this folder and subfolders.