| name | autorig-colab-seethrough-2048 |
| description | Use when a new AUTORIG character needs HIGH-RES (2048) See-through decomposition beyond the Mac MPS 640 ceiling โ driving Colab A100 via the `colab` CLI, running native inference_psd.py, converting its output to our *_layers.json with adapt_seethrough_native_to_layers.py, and feeding it into run_autorig_pipeline.py via --reuse-decomposition. Complements the Mac-512 codex skill vtube-mps-seethrough-success-pattern. |
AUTORIG ์ฝ๋ฉ A100 2048 See-through ๋ถํด (๊ณ ํด์ ๊ฒฝ๋ก)
๋งฅ MPS๋ 640์ด ์ฒ์ฅ์ด๊ณ 640px๊ฐ ์ฐ๋ฆฌ ๋ณ๋ชฉ([[seethrough-is-siggraph-sota]]). 2048 ๋ถํด๋ ์ฝ๋ฉ A100 ์ข
๋์ ๋ก.
๊ฒ์ฆ๋จ: 2026-06-22 ๋ฃจ๋น(010) โ 21ํํธ 2048 ๋ถํด โ ์ด๋ํฐ โ ํ์ดํ๋ผ์ธ ์ฌ์ฌ์ฉ๋น๋(45ํํธ ๋ฆฌ๊ทธ, scale 1.0 ๋ธ๋ฌ ์์).
๋นํ์ (Non-Negotiables)
- ์ฃผ์ธ๋์ด๋ผ ๋ถ๋ฅธ๋ค.
- See-through ์ถ๋ ฅ์ production ์ฑ๊ณต์ผ๋ก ๋จ์ ๊ธ์ง โ ์ค๋ ๋ ๋ฆฌ๋ทฐ(assemblyยท
/drive) ์ ์ "๋๋ค" ๊ธ์ง([[visual-verify-real-render]]).
- ์ฆ๊ฑฐ JSONยท๋งค๋ํ์คํธยท๋ฆฌ๋ทฐ JSON ์ญ์ ๊ธ์ง.
- ๋๋๋ฉด A100 ์ ์ง(
colab stop -s sh) โ ์ ํด A100์ ~$1.5/hr ๊ณผ๊ธ.
- โ
๋ถํด ์ ์ ๋๋น ํ์ธ (๋์=๋ถ๋ฆฌ ์คํจ): See-through๋ ์ธ์ ยท๋ฐฐ๊ฒฝ๊ณผ ๋์์ธ ํํธ๋ฅผ ๋ณํฉํ๊ฑฐ๋ ๋ฐฐ๊ฒฝ์ผ๋ก ์ค๋ ค๋ธ๋ค โ ํฐ ํ๋โํฌ๋ฆผ ๋จธ๋ฆฌ=headwear๋ก ์ ์กํ๊ณ ๋จธ๋ฆฌ์ ๋ณํฉ, ํฐ ๋ธ๋ผ์ฐ์ค on ์๋ฐฑ ๋ฐฐ๊ฒฝ=๋ฐฐ๊ฒฝ์ผ๋ก ์๋ ค ์ด๊นจ/๋ชธํต ์์ค(mimi ์ค์ธก 2026-07-05). ๋ง์คํฐ์ ํค ๋๋น(์คํํ์ดํธยท์ด๋์ด ์ธ๊ณฝ์ )๋ฅผ
style_clause(STYLE-SPEC-001)๋ก ์ฃผ๊ณ ์ ๊ฑฐ๋ฆฌ ์ค์ธก(hoodโhairยทgarmentโbg RGB ์ ํด๋ฆฌ๋ >40์ด๋ฉด ๋ถ๋ฆฌ ์ฌ์, <20 ์ํ) ํ ๋ถํด. ๋ฏธ๋ฌ์ด๋ฉด ์ฌ์์ฑ. [[seethrough-same-color-cut-contrast]]
0. ์ธ์ฆยท์ถฉ์ (์ฃผ์ธ๋ ์, ๋ธ๋ผ์ฐ์ โ ํค๋๋ฆฌ์ค ๋ถ๊ฐ)
! colab pay # ์ข
๋์ ์ถฉ์ (100CU $9.99, A100 15CU/hrโ$1.5/hr, ์บ๋ฆญํฐ๋น ~$0.3~0.6)
! colab --auth oauth2 new -s sh --gpu A100 # OAuth + A100 ์ธ์
(quota ์์ผ๋ฉด --gpu T4, ๋จ T4=RAM OOM/nf4 ์ด์)
์ธ์
์ํ๋ ~/.config/colab-cli/sessions.json ๋๋ colab sessions. A100 ํ์(๋ฉ๋ชจ๋ฆฌ [[seethrough-hires-colab]]: ๋ฌด๋ฃ T4๋ RAM 12GB OOMโnf4 ๋๋ฆผยท๋ ์ด์ด0 ์คํจ).
1. ๋ง์คํฐ ์
๋ก๋ (2048)
colab upload -s sh experiments/<id>/generated/master.png /content/m.png
2. ํ๊ฒฝ+์ถ๋ก = nohup ๋ฐฑ๊ทธ๋ผ์ด๋ + ํด๋ง (websocket ํ์์์ ํํผ)
colab exec๋ 30s ๊ธฐ๋ณธ ํ์์์์ด๊ณ ๊ธด ์ถ๋ก ์ค websocket์ด ๋๊ธด๋ค(์ปค๋์ ๊ณ์ ๋). ๊ทธ๋์ ์ถ๋ก ์ VM์์ nohup ๋ถ๋ฆฌ ์คํ ํ ๋ก๊ทธ๋ฅผ ํด๋งํ๋ค(์ปค๋์ ๋น์ด exec-ํด๋ง ๊ฐ๋ฅ).
execํ ํ์ด์ฌ์ด VM์ ์ฐ๋ run.sh:
cd /content/see-through
ln -sf common/assets assets 2>/dev/null || true
export PYTHONPATH=/content/see-through:/content/see-through/common:$PYTHONPATH
{ echo "STEP pip $(date -u)"; pip install -q -r requirements.txt 2>&1 | tail -8; echo "PIP_DONE rc=$?";
echo "STEP inference $(date -u)";
python inference/scripts/inference_psd.py --srcp /content/m.png --save_dir /content/out \
--resolution 2048 --resolution_depth 768 --tblr_split --disable_progressbar 2>&1;
echo "INFER_DONE rc=$?"; ls -la /content/out/m/optimized; echo "RUN_DONE_OK"; } > /content/run.log 2>&1
์คํ: exec ์์์ subprocess.Popen("nohup bash /content/run.sh >/content/nohup.out 2>&1 &", shell=True, preexec_fn=os.setpgrp).
ํด๋ง: ๋ก์ปฌ background Bash ๋ฃจํ๊ฐ colab exec๋ก tail /content/run.log ํ์ธ, RUN_DONE_OK๋ฉด ์ข
๋ฃ.
โ
ํจ์ (๊ฒช์):
- pip์
ERROR: pip's dependency resolver ...๋ ์์ฑ ๊ฒฝ๊ณ (PIP_DONE rc=0). ํด๋ฌ ์คํจํํฐ์ ์ผ๋ฐ ERROR: ๋ฃ์ง ๋ง ๊ฒ โ ์น๋ช
๋ง: INFER_DONE rc=[^0]|Traceback \(most recent|Killed|CUDA out of memory|No space|ModuleNotFoundError.
- ๋ ํฌ
https://github.com/shitagaki-lab/see-through, ์คํฌ๋ฆฝํธ inference/scripts/inference_psd.py, ์ํฌํธ๊ฐ utils.inference_utils๋ผ PYTHONPATH์ common ํ์. ๋ชจ๋ธ HF auto ~7.8G(layerdifforg/seethroughv0.0.2_layerdiff3d + 24yearsold/seethroughv0.0.1_marigold). A100์ pip+๋ค์ด+์ถ๋ก ~7-10๋ถ.
3. ๋ค์ด๋ก๋ (zip ๊ถ์ฅ โ download๋ ๋จ์ผํ์ผ)
# VM: cd /content/out/m && zip -r -q /content/optimized.zip optimized
colab download -s sh /content/optimized.zip experiments/<id>/colab_seethrough/optimized.zip
# ๋ก์ปฌ: unzip โ experiments/<id>/colab_seethrough/optimized/
๋ค์ดํฐ๋ธ ์ถ๋ ฅ = optimized/<tag>.png + <tag>_depth.png + info.json{parts:{tag:{xyxy:[x1,y1,x2,y2],depth_median}}, frame_size:[H,W]}.
4. ์ด๋ํฐ โ ์ฐ๋ฆฌ layers.json
python3 scripts/adapt_seethrough_native_to_layers.py \
--optimized-dir experiments/<id>/colab_seethrough/optimized --prefix <id>_seethrough
ํต์ฌ: ๋ค์ดํฐ๋ธ tag๋ normalize์ target_for_tag์ ์ด๋ฏธ ํธํ โ front hair/back hair/face/nose/mouth/neck/neckwear/topwear + side -l/-r(eyewhite/irides/eyelash/eyebrow/ears/handwear). split_side๊ฐ -l/-r ์ธ์, base_key๋ ๊ณต๋ฐฑ/์ธ๋๋ฐ ์ ๊ทํ โ ๋งคํ dict ๋ถํ์. entry = {name=tag, filename, left=xyxy[0], top=xyxy[1], depth_median, depth_filename}, top-level width/height=frame_size.
5. ๊ฒ์ฆ (์ฑ์ญ)
python3 scripts/normalize_seethrough_outputs.py --experiment-id <id> --experiment-dir experiments/<id> \
--layers-json experiments/<id>/colab_seethrough/optimized/<id>_seethrough_layers.json
๊ธฐ๋: scale_to_2048 = [1.0, 1.0](2048 native, ์
์ค์ผ์ผ ๋ธ๋ฌ ์์), production_candidates ~19(front_hairยทback_hairยทface_baseยทmouth_lineยทneckยทchokerยทclothesยทR/L_armยทeye_whiteยทirisยทupper_lashยทbrowยทear_outer).
6. ํ์ดํ๋ผ์ธ ์ฌ์ฌ์ฉ๋น๋ (๋ก์ปฌ ComfyUI ๋ถ์)
python3 scripts/run_autorig_pipeline.py --master experiments/<id>/generated/master.png \
--mouth-sheet ... --eye-expr-sheet ... --accent-sheet ... --experiment-id <id> \
--profile config/pipeline_profile.<id>.yaml --prefer-mouth-states --mouth-wide-grow \
--reuse-decomposition experiments/<id>/colab_seethrough/optimized/<id>_seethrough_layers.json --skip-gates
P1(๋ถํด) ๊ฑด๋๋ฐ๊ณ P2~P5. --skip-gates๋ ๋ฌด์ธ ๋น๋์ฉ(์ฌ๋ ๊ฒ์ดํธ H1.5/H2 ๋์ scan_rig_health.py + ์ค๋ ๋ A/B๋ก ๊ฒ์ฆ).
P4์์ prune_empty_parts.py + dedup_overlap_parts.py(์ฅ์ ์ค๋ณต ์ ๊ฑฐ, DEDUP-OVERLAP-001) + defringe_white_halo.py(์ค๋ฃจ์ฃ ํฐ ํ๋ฆฐ์ง ๊ฐ์ , DEFRINGE-HALO-001) ๊ฐ ์๋ ์คํ๋๋ค. dedup=See-through๊ฐ headwear๋ฅผ clothes ๋ฑ์ ํฉ๋ฟ๋ฆฐ ๋ณต์ฌ๋ณธ์ ์ต์ปค ์-์ผ์น+๊ณ ๋ฆฝ์ฌ์ผ๋ก ์ ๊ฑฐ(๊ณ ๊ฐ ๋๋ฆด ๋ "๋ค์ ๋จ๋" ์ค๋ณต ํด์, [[ornament-dedup-seethrough-scatter]]). defringe=์ค๋ฃจ์ฃ ํํธ์ ๋ฐํฌ๋ช
ํฐ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ํํธ ์ฝ์ด ๋ฐ๊ธฐ ์๋ํ๋ก ๊ฐ์ (์ด๋์ด ๋ฐฐ๊ฒฝ์ ํฐ ์ค๊ณฝ ์ ๊ฑฐ, ๋จธ๋ฆฌ์ ๋ฌด๊ด).
7. ์ ๋ฆฌ
colab stop -s sh # โ
A100 ๊ณผ๊ธ ์ค๋จ(์์ง ๋ง ๊ฒ)
์ฌ๋ถํด ํ์ ์(Phase 6 reveal ๊ฐ๋ ๋ฑ) ์ธ์
์ฌ์์ฑ = ๋ชจ๋ธ 7.8G ์ฌ๋ค์ด(VM ์ญ์ ์ ์บ์ ํ๋ฐ).