SkinGPT-R1 / train /scripts /check_inputs.py
yuhos16's picture yuhao's picture
Upload code
be0c348
Raw
History Blame Contribute Delete
1.62 kB
"""Check external assets required by the SFT launcher, without loading a model."""
import json
import os
from pathlib import Path
root = Path(__file__).resolve().parents[1]
model = Path(os.environ.get('SKINGPT_MODEL_DIR', root / 'external/base_model'))
dataset = Path(os.environ.get('SKINGPT_DATASET_DIR', root / 'data'))
images = Path(os.environ.get('SKINGPT_IMAGE_ROOT', root / 'external/images'))
features = Path(os.environ.get('SKINGPT_FEATURE_ROOT', root / 'external/teacher_features'))
errors = []
for label, path in [('base model config', model / 'config.json'),
('dataset registry', dataset / 'dataset_info.json')]:
if not path.is_file():
errors.append(f'Missing {label}: {path}')
for label, path in [('images', images), ('teacher features', features)]:
if not path.is_dir():
errors.append(f'Missing {label} directory: {path}')
if (dataset / 'dataset_info.json').is_file():
entries = json.loads((dataset / 'dataset_info.json').read_text())
expected = json.loads((root / 'data/dataset_info.json').read_text())
for name, registration in expected.items():
path = dataset / registration['file_name']
if not path.is_file():
errors.append(f'Missing training file: {path}')
if entries.get(name) != registration:
errors.append(f'Dataset registration differs from the registered SFT mapping: {name}')
if errors:
raise SystemExit('External training assets must be supplied:\n- ' + '\n- '.join(errors))
print('External asset locations are present. This check does not validate every image, feature, or model weight.')