Imported from lusina0304/ZooAnimalShape (
scripts/AGENTS.md). Install upstream withnpx skills add lusina0304/ZooAnimalShape --skill scripts. Copyright stays with the author.
scripts
๋ชฉ์
105๊ฐ์ Python ์คํฌ๋ฆฝํธ ๋ชจ์์ผ๋ก 3D ๋๋ฌผ ๋ชจ๋ธ ํ์ดํ๋ผ์ธ์ ์ ์ฒด ์์ ํ๋ฆ์ ์ง์ํฉ๋๋ค:
- ๋ถ๋ฅ: ์ข ์ธ์ ๋ฐ SMAL ๋ชจ๋ธ ํผํ
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ๋ค์ด๋ก๋, ๋ณํฉ, ๊ฒ์ฆ, ์ฌ๊ตฌ์ฑ
- ์คํ: ๋ฉํฐ๋ทฐ, ๊ฐํํ์ต, ์ํคํ ์ฒ ์คํ
- ํผํ : SMAL ๋ฉ์ ํผํ ๋ฐ ํํ ์ต์ ํ
- ๋ณด๊ณ : ๋ ๋๋ง, ์๊ฐํ, PDF ์์ฑ
- ํ๊ฐ: ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ณ ๊ฒ์ฆ
- ์์ฑ: ๋ ผ๋ฌธ ๊ทธ๋ฆผ, ์ฝ๋๋ถ, ํ์ต ๋ฐ์ดํฐ์
ํต์ฌ ํ์ผ
| ํ์ผ | ์ญํ | ํธ์ถ ํจํด |
|---|---|---|
check_setup.py |
ํ๊ฒฝ ๊ฒ์ฆ | python scripts/check_setup.py |
awol_inference.py |
AWOL ์ถ๋ก ์คํ๊ธฐ | python scripts/awol_inference.py <image> |
evaluate_*.py |
ํ์ดํ๋ผ์ธ ํ๊ฐ (v8, ์๋งจํฑ ํํ, CLIP, ์ธก์ , ๋น๊ต) | python scripts/evaluate_v8_pipeline.py |
generate_*.py |
๋ ผ๋ฌธ ๊ทธ๋ฆผ, ํ์ค ๋ชจ๋ธ, ๋ฐ์ดํฐ์ ์์ฑ | python scripts/generate_paper_figures.py |
build_*.py |
์ฝ๋๋ถ 145/MCBO, PanTHERIA ๋ฃฉ์ ๊ตฌ์ฑ | python scripts/build_codebook_145.py |
train_*.py |
์๋งจํฑ ํํ, ์์ฐจ ํํ, MLP ํ์ต | python scripts/train_semantic_shape.py |
test_*.py |
GUI, ์ํคํ ์ฒ, ํ์ดํ๋ผ์ธ ํ ์คํธ (20+) | python scripts/test_smal_gui_*.py |
ํ์ ๋๋ ํ ๋ฆฌ
| ๋๋ ํ ๋ฆฌ | ํ์ผ ์ | ์ฉ๋ |
|---|---|---|
classification/ |
2 | ์ข ๋ถ๋ฅ (BioCLIP-2 ๊ธฐ๋ฐ), SMAL ํผํ ์ ํ๊ธฐ |
data_ops/ |
14 | ๋ฐ์ดํฐ์ ๋ค์ด๋ก๋, ๋ณํฉ, ๊ฒ์ฆ, ์ฌ๊ตฌ์ฑ, ํ๋ ์ฑ์ฐ๊ธฐ |
experiments/ |
- | ๋ฉํฐ๋ทฐ, ์๋๋ฉ์ด์ ์กฐํฉ, ๊ฐํํ์ต ์คํ |
fitting/ |
- | SMAL ๋ฉ์ ํผํ , ํํ ์ต์ ํ |
maintenance/ |
- | ๋ฐฑ์ , ์ ๋ฆฌ, ๋ง์ด๊ทธ๋ ์ด์ ์ ธ ์คํฌ๋ฆฝํธ ๋ฐ ์ ํธ๋ฆฌํฐ |
reporting/ |
10 | ๋ฉ์ ๋ ๋๋ง, ์๊ฐํ, PDF ํ ์์ฑ |
research_tool/ |
9 | ์ข /๊ณผ(family) ํ์คํ, PCA/t-SNE ๋ถ์, ํ์ต ์ ํธ๋ฆฌํฐ |
๊ทผ๋ณธ ํ์ผ ์นดํ ๊ณ ๋ฆฌ
ํ๊ฐ (evaluate_*.py)
evaluate_v8_pipeline.pyโ v8 ์ธ๋งจํฑ ํํ ๋ชจ๋ธ ํ์ดํ๋ผ์ธ ํ๊ฐevaluate_semantic_shape.pyโ ํํ ์์ธก ์ ํ๋evaluate_awol_comparison.pyโ AWOL vs GenZoo ๋น๊ตevaluate_clip_alignment.pyโ CLIP ์๋ฒ ๋ฉ ์ ๋ ฌevaluate_clip_shape_predictor.pyโ ํ ์คํธ-ํํ ์์ธกevaluate_measurement_ranking.pyโ PanTHERIA ์ธก์ ์ฐ์ ์์evaluate_species_preservation.pyโ ์ข ๋ณด์กด ์ ์ฝevaluate_e2e_walkthrough.pyโ ์ ์ฒด ํ์ดํ๋ผ์ธ ์ต์ข ํ๊ฐevaluate_multimodal.pyโ ๋ฉํฐ๋ชจ๋ฌ ์๋ฒ ๋ฉevaluate_augmentation_effect.pyโ ๊ฐํ ํจ๊ณผevaluate_magnitude.pyโ ํํ ํฌ๊ธฐ ์ผ๊ด์ฑ
์์ฑ (generate_*.py)
generate_paper_figures.pyโ ๋ ผ๋ฌธ ๊ทธ๋ฆผ ๋ชจ์generate_nature3d_v8_paper_figures.pyโ Nature3D v8 ๋ ผ๋ฌธ ๊ทธ๋ฆผgenerate_family_standard_models.pyโ ๊ณผ(family) ํ์ค ๋ชจ๋ธgenerate_standard_models.pyโ ์ ์ฒด ํ์ค ๋ชจ๋ธgenerate_qualitative_comparison.pyโ ์ง์ ๋น๊ต ์๊ฐํgenerate_baseline_comparison_figure.pyโ ๋ฒ ์ด์ค๋ผ์ธ ๋น๊ตgenerate_semantic_dataset.pyโ ํ์ต ๋ฐ์ดํฐ์ generate_augmentation_dataset.pyโ ๊ฐํ ๋ฐ์ดํฐ์ generate_graded_text_pairs.pyโ ๋ฑ๊ธ๋ณ ํ ์คํธ ์generate_family_prior_145.pyโ ๊ณผ ์ฌ์ (145์ฐจ์)generate_subfamily_prior.pyโ ์๊ณผ ์ฌ์
๊ตฌ์ฑ/๋น๋ (build_*.py)
build_codebook_145.pyโ 145์ฐจ์ ๋ฒ ํ ์ฝ๋๋ถbuild_mcbo_codebook.pyโ MCBO ์ต์ ํ๋ ์ฝ๋๋ถbuild_pantheria_full_lookup.pyโ PanTHERIA ์ ์ฒด ๋ฃฉ์ ํ ์ด๋ธbuild_shape_codebook.pyโ ํํ ์ฝ๋๋ถbuild_species_aware_dataset.pyโ ์ข ์ธ์ ๋ฐ์ดํฐ์ label_codebook_by_family.pyโ ์ฝ๋๋ถ ๊ณผ(family) ๋ ์ด๋ธ๋งexpand_codebook_genzoo.pyโ GenZoo ์ฝ๋๋ถ ํ์ฅ
ํ์ต (train_*.py)
train_semantic_shape.pyโ v6/v8 ์๋งจํฑ ํํ ๋ชจ๋ธtrain_residual_morph_mlp.pyโ ์์ฐจ ํํ MLPtrain_residual_morph_enhanced.pyโ ๊ฐํ๋ ์์ฐจ ํํtrain_magnitude_aware_morph.pyโ ํฌ๊ธฐ ์ธ์ ํํtrain_family_conditioned_mlp.pyโ ๊ณผ ์กฐ๊ฑด MLPtrain_view_aware_mlp.pyโ ๋ทฐ ์ธ์ MLP
ํ ์คํธ (test_*.py)
test_smal_gui_*.py(12๊ฐ) โ SMAL GUI ์ปดํฌ๋ํธ (์นด๋ฉ๋ผ, ์กฐ์ธํธ, ํ๋ฆฌ๋ทฐ, ๋น๋์ค, ์์, ๋ฆฌํ๊ฒํ )test_v8_architecture.pyโ v8 ์ํคํ ์ฒ ๊ฒ์ฆtest_e2e_residual_morph_v3.pyโ ์ ์ฒด ํํ ํ์ดํ๋ผ์ธtest_video_shape_extractor_predictor_init.pyโ ๋น๋์ค ํํ ์ถ์ถtest_measurement_extractor.pyโ ์ธก์ ์ถ์ถtest_unified_sample_policy.pyโ ์ํ ์ ์ฑtest_species_prior_selector.pyโ ์ข ์ฌ์ ์ ํtest_runtime_config_contract.pyโ ๋ฐํ์ ์ค์
์๊ฐํ (visualize_*.py)
visualize_shape_space.pyโ ํํ ๊ณต๊ฐ (PCA/t-SNE)visualize_dataset.pyโ ๋ฐ์ดํฐ์ ๋ธ๋ผ์ฐ์ visualize_dataset_twilight.pyโ Twilight ์์๋งต ๋ฒ์ visualize_dataset_viridis.pyโ Viridis ์์๋งต ๋ฒ์ visualize_awol_comparison.pyโ AWOL ๋น๊ตvisualize_task11_examples.pyโ ์์ ์์
๋ ๋๋ง (render_*.py)
render_mesh_views.pyโ ๋ฉ์ ๋ค์ค ๋ทฐ ๋ ๋๋งrender_animer_meshes.pyโ AniMer ๋ฉ์ ๋ ๋๋งrender_textured_mesh.pyโ ํ ์ค์ฒ ๋ฉ์ ๋ ๋๋งrender_table_pdf.pyโ PDF ํ ์์ฑrender_table_pdf_canvas.pyโ Canvas ๊ธฐ๋ฐ ํrender_table_pdf_meta.pyโ ๋ฉํ๋ฐ์ดํฐ ํ
์ด๋ฏธ์ง/๋น๋์ค ์ฒ๋ฆฌ
text_to_photorealistic.pyโ ํ ์คํธโ์ฌ์ค์ ์ด๋ฏธ์งcontrolnet_render.pyโ ControlNet ๋ ๋๋งvideo_to_training.pyโ ๋น๋์คโํ์ต ๋ฐ์ดํฐtexture_standard_models.pyโ ํ์ค ๋ชจ๋ธ ํ ์ค์ฒextract_conditioning_maps.pyโ ์กฐ๊ฑด ๋งต ์ถ์ถ
๋ถ์/๊ฒ์ฆ
validate_shape_codebook.pyโ ์ฝ๋๋ถ ๊ฒ์ฆvalidate_shape_descriptors.pyโ ํํ ์ค๋ช ์validate_standard_models.pyโ ํ์ค ๋ชจ๋ธ ๊ฒ์ฆvalidate_morph_parameters.pyโ ํํ ํ๋ผ๋ฏธํฐprofile_pipeline.pyโ ํ์ดํ๋ผ์ธ ํ๋กํ์ผ๋ง
์ํคํ ์ฒ/๋ค์ด์ด๊ทธ๋จ
gen_architecture_diagram.pyโ ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จgenerate_v3_architecture_diagram.pyโ v3 ๋ค์ด์ด๊ทธ๋จgenerate_residualmorph_v3_arch_diagram.pyโ ์์ฐจ ํํ v3 ๋ค์ด์ด๊ทธ๋จspectrum_figure_style.pyโ Spectrum ์คํ์ผ ์ค์
ํตํฉ/ํ์ดํ๋ผ์ธ
run_semantic_experiments.pyโ ์๋งจํฑ ์คํ ์คํrun_unified_image_text_pipeline.pyโ ํตํฉ ์ด๋ฏธ์ง+ํ ์คํธ ํ์ดํ๋ผ์ธrun_ablation_study.pyโ ์ ์ ์คํintegration_test.pyโ ํตํฉ ํ ์คํธsimulate_cross_species_transfer.pyโ ์ข ๊ฐ ์ ์ด ์๋ฎฌ๋ ์ด์ simulate_population.pyโ ์ข ๊ฐ์ฒด๊ตฐ ์๋ฎฌ๋ ์ด์ simulate_temporal_morph.pyโ ์๊ฐ ํํ ์๋ฎฌ๋ ์ด์
๋ฐ์ดํฐ์ /์ฝ๋๋ถ ๋์ฐ๋ฏธ
analyze_family_policy.pyโ ๊ณผ ์ ์ฑ ๋ถ์analyze_partition_sensitivity.pyโ ๋ถํ ๋ฏผ๊ฐ๋analyze_cervidae_validation.pyโ Cervidae ๊ฒ์ฆanalyze_clip_prompt_space.pyโ CLIP ํ๋กฌํํธ ๊ณต๊ฐcollect_overlays.pyโ ์ค๋ฒ๋ ์ด ์์งcopy_fallback_renders.pyโ ํด๋ฐฑ ๋ ๋ ๋ณต์ฌcopy_genzoo_renders.pyโ GenZoo ๋ ๋ ๋ณต์ฌ
AI ์์ด์ ํธ ๊ฐ์ด๋
์์ ์ ์ฃผ์์ฌํญ
๊ฒฝ๋ก ํด์
- ์ ๋ ๊ฒฝ๋ก ์ฌ์ฉ: ๋ชจ๋ ์คํฌ๋ฆฝํธ๋
smal_config.yaml์์ ๊ฒฝ๋ก๋ฅผ ์ฝ์ - ํ๋์ฝ๋ฉ๋ ๊ฒฝ๋ก ์์ โ ํญ์
Path(__file__).parent.parent๋๋ config ์ฐธ๊ณ - ์๋ ๊ฒฝ๋ก ์ฌ์ฉ ์: ์์ ๋๋ ํ ๋ฆฌ ํญ์ ํ๋ก์ ํธ ๋ฃจํธ
ํ๊ธ ์ฃผ์ ๊ท์ฝ
๋ชจ๋ ์คํฌ๋ฆฝํธ๋ ๋ค์์ ๋ฐ๋ฆ ๋๋ค:
#!/usr/bin/env python3
"""
์คํฌ๋ฆฝํธ์ ๋ชฉ์ ์ ์์ด๋ก ์ค๋ช
ํฉ๋๋ค (ํ์์ ํ๊ธ ๋ณ๊ธฐ)
์ฌ์ฉ๋ฒ, ์
์ถ๋ ฅ ํฌ๋งท, ์ฃผ์ ์์กด์ฑ
"""
# ํ๊ธ ์ฃผ์์ผ๋ก ์น์
์ค๋ช
# ์ธ๋ผ์ธ ๋ก์ง ์ค๋ช
๋ ํ๊ธ
์ข ๋ถ๋ฅ ๋ฐ ๋ชจ๋ธ ์ ํ
- ์
๋ ฅ ๋ถ๋ฅ:
scripts/classification/classify_animal_species.py(BioCLIP-2, 184์ข ) - ๋ชจ๋ธ ์ ํ ๋ก์ง:
smal_config.yaml์ familyโmodel_type ๋งคํ- Felidae/Canidae/Equidae/Bovidae/Cervidae โ AniMer + AWOL
- Suidae/Ursidae/Camelidae/Hippopotamidae/๋๋จธ์ง โ GenZoo
์ขํ๊ณ
- SMAL: Z-up (์์คํจ!)
- Unity/Gradio: Y-up
- ๋ณํ:
verts[:,[1,2]]=verts[:,[2,1]]; verts[:,2]=-verts[:,2] - GLB ํ๋ ฌ:
[[1,0,0],[0,0,1],[0,-1,0]]
๋ฐ์ดํฐ ์ฐธ๊ณ
- ์ข
๋ชฉ๋ก:
data/taxonomy/sample_species_taxonomy.csv(184์ข , 25๊ณผ) - ํ์ค ๋ชจ๋ธ:
data/species_standard_models/index.json(v6 + MCBO) - PanTHERIA ๋ฃฉ์
:
data/zoological_measurements/pantheria_full_lookup.pkl(5,416์ข ) - v8 ์ฒดํฌํฌ์ธํธ:
data/semantic_shape_model_v8.pt(ํ๋ก๋์ ๊ธฐ๋ณธ๊ฐ); v6๋--use-v6๋ ๊ฑฐ์ ๊ฒฝ๋ก
ํ ์คํธ
ํ๊ฒฝ ๊ฒ์ฆ
python scripts/check_setup.py
ํ์ ํ์ผ, ๋๋ ํ ๋ฆฌ, Python ํจํค์ง, GPU ํ์ธ
๋ฌธ๋ฒ ํ์ธ
python -m py_compile scripts/<script>.py
ํ์ดํ๋ผ์ธ ์ ์ฒด ํ๊ฐ
python scripts/evaluate_v8_pipeline.py
python scripts/evaluate_e2e_walkthrough.py
GUI ํ ์คํธ (SMAL)
python scripts/test_smal_gui_preview_formats.py
python scripts/test_smal_gui_camera_presets.py
python scripts/test_smal_gui_video_preview_persist.py
ํํ ๋ชจ๋ธ ๊ฒ์ฆ
python scripts/test_v8_architecture.py
python scripts/test_e2e_residual_morph_v3.py
์ธก์ ์ถ์ถ ํ ์คํธ
python scripts/test_measurement_extractor.py
์ฃผ์ ํจํด
์คํฌ๋ฆฝํธ ์ถ๊ฐ ์ฒดํฌ๋ฆฌ์คํธ
- ํ์ผ ํค๋์ docstring ํฌํจ
- ํ๊ธ ์ฃผ์์ผ๋ก ์ฃผ์ ์น์ ์ค๋ช
-
Path(__file__).parent๋๋smal_config.yaml์ผ๋ก ์๋ ๊ฒฝ๋ก ํด์ - ์ขํ๊ณ ๋ช ์ (Z-up ๋๋ Y-up)
- ์ ์ถ๋ ฅ ํ์ ๋ช ํ (JSON, NPZ, OBJ, GLB ๋ฑ)
- ์ข
๋๋ ๊ณผ ํํฐ๋ง ์
sample_species_taxonomy.csv์ฐธ๊ณ - GPU ์๊ตฌ์ฌํญ ๋ช ์
๋ฐ์ดํฐ ํ๋ฆ
์ด๋ฏธ์ง
โ classify_animal_species.py (BioCLIP-2, 184์ข
)
โ ๋ชจ๋ธ ์ ํ (smal_config.yaml)
โ evaluate_*.py ๋๋ train_*.py ์คํฌ๋ฆฝํธ
โ generate_*.py๋ก ๊ฒฐ๊ณผ ์์ฑ ๋๋ ์๊ฐํ
์ฝ๋๋ถ/ํ์ค ๋ชจ๋ธ
build_codebook_145.pyโ ๊ฐ ์ข ๋ณ ํ์ค ํํ ๊ตฌ์ฑbuild_pantheria_full_lookup.pyโ ์ธก์ ๋ฐ์ดํฐ ๋ก๋label_codebook_by_family.pyโ ๊ณผ ๋ฉํ๋ฐ์ดํฐ ์ถ๊ฐgenerate_family_standard_models.pyโ ๊ณผ๋ณ ํ๊ท ๋ชจ๋ธ
ํ์ต ์คํฌ๋ฆฝํธ ๊ตฌ์กฐ
# 1. ๋ฐ์ดํฐ ๋ก๋ (species_standardization_pipeline.py ๋๋ generate_semantic_dataset.py)
# 2. ๋ชจ๋ธ ์ด๊ธฐํ (nature3d/semantic_shape_model.py)
# 3. ํ์ต ๋ฃจํ (๊ฒ์ฆ, ์ฒดํฌํฌ์ธํธ)
# 4. ํ๊ฐ (evaluate_semantic_shape.py)
๋ ๋๋ง ํ์ดํ๋ผ์ธ
render_mesh_views.pyโ ๋ค์ค ๋ทฐ (Blender ๋๋ ์คํ์คํฌ๋ฆฐ)render_textured_mesh.pyโ ํ ์ค์ฒ ๋ฉ์render_table_pdf.pyโ PDF ํ ์์ฑ- ๊ฒฐ๊ณผ:
results/๋๋ ํ ๋ฆฌ (๋ ์ง๋ณ ์๋ธ๋๋ ํ ๋ฆฌ)
๋ ผ๋ฌธ ๊ทธ๋ฆผ ์์ฑ
python scripts/generate_paper_figures.py --format spectrum
python scripts/generate_nature3d_v8_paper_figures.py
python scripts/generate_baseline_comparison_figure.py
๊ฒฐ๊ณผ: results/paper_figures/
์์กด์ฑ
๋ด๋ถ
ํต์ฌ ๋ชจ๋
| ๋ชจ๋ | ์์น | ์ญํ |
|---|---|---|
nature3d.semantic_shape_model |
nature3d/ |
v6/v8 ํํ ๋ชจ๋ธ |
nature3d.species_prior_selector |
nature3d/ |
v8 ์ข ์ฌ์ ์ ํ |
nature3d.predictor |
nature3d/ |
SMAL ์์ธก๊ธฐ |
nature3d.measurement_extractor |
nature3d/ |
PanTHERIA ์ธก์ |
nature3d.body_descriptor_extractor |
nature3d/ |
์ ์ฒด ์ค๋ช ์ |
species_utils |
nature3d/ |
์ข ์ ์ฝ/ํ์คํ |
smal_config |
config/ |
๊ฒฝ๋ก ๋ฐ ๋ชจ๋ธ ์ ํ |
๋ฐ์ดํฐ ํ์ผ
data/taxonomy/sample_species_taxonomy.csvdata/semantic_shape_model_v8.pt(์คํ์ฉ)data/species_standard_models/index.jsondata/zoological_measurements/pantheria_full_lookup.pkl
ํ์ ์คํฌ๋ฆฝํธ (์ค์ฒฉ ์ํฌํธ)
research_tool/species_standardization_pipeline.pyโ ์ข ๋ฐ์ดํฐ ์ ๊ทํresearch_tool/family_standardization.pyโ ๊ณผ ๋ฐ์ดํฐ ์ ๊ทํclassification/classify_animal_species.pyโ ๋ถ๋ฅdata_ops/*.pyโ ๋ฐ์ดํฐ ๋ก๋/๊ฒ์ฆ
์ธ๋ถ
ํต์ฌ ํจํค์ง
| ํจํค์ง | ์ฌ์ฉ | ์ต์ ๋ฒ์ |
|---|---|---|
torch |
๋ชจ๋ธ ๋ฐ GPU ์ฐ์ฐ | 2.0 |
torchvision |
์ด๋ฏธ์ง ์ฒ๋ฆฌ | 0.15 |
numpy |
๋ฐฐ์ด | 1.21 |
scipy |
๊ณผํ ์ฐ์ฐ (PCA, ์ต์ ํ) | 1.7 |
pandas |
CSV/ํ | 1.3 |
PIL |
์ด๋ฏธ์ง I/O | 9.0 |
open_clip |
BioCLIP-2 ๋ชจ๋ธ | 2.20+ |
trimesh |
๋ฉ์ ์ฒ๋ฆฌ | 3.16 |
pyyaml |
YAML ์ค์ | 5.4 |
์๊ฐํ
| ํจํค์ง | ์ฌ์ฉ |
|---|---|
matplotlib |
์ ์ ๊ทธ๋ฆผ |
seaborn |
ํต๊ณ ์๊ฐํ |
plotly |
์ธํฐ๋ํฐ๋ธ ํ๋กฏ |
scikit-learn |
PCA, t-SNE |
๋ ๋๋ง/๋ฉ๋์ด
| ํจํค์ง | ์ฌ์ฉ |
|---|---|
opencv-python |
๋น๋์ค ์ธ์ฝ๋ฉ |
bpy (Blender) |
๊ณ ๊ธ ๋ ๋๋ง (์ ํ) |
pyrender |
์คํ์คํฌ๋ฆฐ ๋ ๋๋ง |
reportlab |
PDF ์์ฑ |
์ ํ ํจํค์ง
gradioโ GUI ๋ฐ๋ชจ (smal_gui.py ํ์)imageioโ ์ด๋ฏธ์ง/๋น๋์ค ์ ์ฅscikit-imageโ ์ด๋ฏธ์ง ์ฒ๋ฆฌtqdmโ ์งํ๋ฅ ํ์humanizeโ ์ฌ๋ ์ฝ๊ธฐ ํฌ๋งท
GPU/CUDA
- CUDA 11.8+ (torch GPU ์ฐ์ฐ)
- cuDNN 8.6+ (๊ถ์ฅ)
- GPU ๋ฉ๋ชจ๋ฆฌ: 8GB ์ด์ (๊ถ์ฅ 24GB)