Files
Dansori_Characters/LEE_SORI_IMAGE_PROGRESS_HANDOFF.md
T
2026-07-04 10:34:46 +09:00

9.0 KiB

⚠️ 아카이브 (소스 이미지 생성 기록). 이소리는 완성됨 — 현재 베이스 = 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 ## <filename>.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

  1. 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:

$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.