File size: 1,390 Bytes
52a881a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from __future__ import annotations

import argparse
from pathlib import Path

try:
    from .model_utils import (
        DEFAULT_MODEL_PATH,
        SkinGPTModel,
        build_single_turn_messages,
        resolve_model_path,
    )
except ImportError:
    from model_utils import (
        DEFAULT_MODEL_PATH,
        SkinGPTModel,
        build_single_turn_messages,
        resolve_model_path,
    )


def build_parser() -> argparse.ArgumentParser:
    parser = argparse.ArgumentParser(description="SkinGPT-R1 full-precision single inference")
    parser.add_argument("--image", type=str, required=True, help="Path to the image")
    parser.add_argument("--model_path", type=str, default=DEFAULT_MODEL_PATH)
    parser.add_argument(
        "--prompt",
        type=str,
        default="Please analyze this skin image and provide a diagnosis.",
    )
    return parser


def main() -> None:
    args = build_parser().parse_args()

    if not Path(args.image).exists():
        print(f"Error: Image not found at {args.image}")
        return

    model = SkinGPTModel(resolve_model_path(args.model_path))
    messages = build_single_turn_messages(args.image, args.prompt)

    print(f"\nAnalyzing {args.image}...")
    response = model.generate_response(messages)

    print("-" * 40)
    print("Result:")
    print(response)
    print("-" * 40)


if __name__ == "__main__":
    main()