Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -3,11 +3,33 @@ import os
|
|
3 |
os.environ['CUDA_VISIBLE_DEVICES'] = ''
|
4 |
os.environ['ZEROGPU'] = '1' # ZeroGPU 환경임을 표시
|
5 |
|
6 |
-
# Safetensors 사용 강제
|
7 |
os.environ['SAFETENSORS_FAST_GPU'] = '1'
|
8 |
os.environ['TRANSFORMERS_OFFLINE'] = '0'
|
9 |
os.environ['TRANSFORMERS_USE_SAFETENSORS'] = '1'
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
import spaces # spaces import는 환경 설정 후에
|
13 |
import shlex
|
@@ -16,17 +38,9 @@ import subprocess
|
|
16 |
# 라이브러리 버전 호환성 문제 해결
|
17 |
subprocess.run(shlex.split("pip install pip==24.0"), check=True)
|
18 |
|
19 |
-
# Safetensors
|
20 |
subprocess.run(shlex.split("pip install safetensors --upgrade"), check=True)
|
21 |
|
22 |
-
# Monkey patch to force safetensors loading
|
23 |
-
import sys
|
24 |
-
if 'transformers' in sys.modules:
|
25 |
-
del sys.modules['transformers']
|
26 |
-
|
27 |
-
# transformers import 전에 환경 변수 설정
|
28 |
-
os.environ['TRANSFORMERS_USE_SAFETENSORS'] = '1'
|
29 |
-
|
30 |
subprocess.run(
|
31 |
shlex.split(
|
32 |
"pip install package/onnxruntime_gpu-1.17.0-cp310-cp310-manylinux_2_28_x86_64.whl --force-reinstall --no-deps"
|
@@ -38,6 +52,40 @@ subprocess.run(
|
|
38 |
), check=True
|
39 |
)
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
# 모델 체크포인트 다운로드 및 torch 설정
|
42 |
if __name__ == "__main__":
|
43 |
from huggingface_hub import snapshot_download
|
|
|
3 |
os.environ['CUDA_VISIBLE_DEVICES'] = ''
|
4 |
os.environ['ZEROGPU'] = '1' # ZeroGPU 환경임을 표시
|
5 |
|
6 |
+
# Safetensors 사용 강제
|
7 |
os.environ['SAFETENSORS_FAST_GPU'] = '1'
|
8 |
os.environ['TRANSFORMERS_OFFLINE'] = '0'
|
9 |
os.environ['TRANSFORMERS_USE_SAFETENSORS'] = '1'
|
10 |
+
|
11 |
+
# Patch transformers to add missing SiglipImageProcessor
|
12 |
+
import sys
|
13 |
+
from types import ModuleType
|
14 |
+
|
15 |
+
# Create mock for SiglipImageProcessor before importing transformers
|
16 |
+
if 'transformers' not in sys.modules:
|
17 |
+
# Create a dummy SiglipImageProcessor class
|
18 |
+
class DummySiglipImageProcessor:
|
19 |
+
def __init__(self, *args, **kwargs):
|
20 |
+
pass
|
21 |
+
|
22 |
+
class DummySiglipVisionModel:
|
23 |
+
def __init__(self, *args, **kwargs):
|
24 |
+
pass
|
25 |
+
|
26 |
+
# Pre-patch transformers module
|
27 |
+
transformers_module = ModuleType('transformers')
|
28 |
+
transformers_module.SiglipImageProcessor = DummySiglipImageProcessor
|
29 |
+
transformers_module.SiglipVisionModel = DummySiglipVisionModel
|
30 |
+
|
31 |
+
# Add to sys.modules
|
32 |
+
sys.modules['transformers'] = transformers_module
|
33 |
|
34 |
import spaces # spaces import는 환경 설정 후에
|
35 |
import shlex
|
|
|
38 |
# 라이브러리 버전 호환성 문제 해결
|
39 |
subprocess.run(shlex.split("pip install pip==24.0"), check=True)
|
40 |
|
41 |
+
# Safetensors 설치
|
42 |
subprocess.run(shlex.split("pip install safetensors --upgrade"), check=True)
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
subprocess.run(
|
45 |
shlex.split(
|
46 |
"pip install package/onnxruntime_gpu-1.17.0-cp310-cp310-manylinux_2_28_x86_64.whl --force-reinstall --no-deps"
|
|
|
52 |
), check=True
|
53 |
)
|
54 |
|
55 |
+
# Import transformers and patch it
|
56 |
+
import transformers
|
57 |
+
|
58 |
+
# Add missing classes if they don't exist
|
59 |
+
if not hasattr(transformers, 'SiglipImageProcessor'):
|
60 |
+
class SiglipImageProcessor:
|
61 |
+
def __init__(self, *args, **kwargs):
|
62 |
+
# Fallback to CLIPImageProcessor
|
63 |
+
self._processor = transformers.CLIPImageProcessor(*args, **kwargs)
|
64 |
+
|
65 |
+
def __getattr__(self, name):
|
66 |
+
return getattr(self._processor, name)
|
67 |
+
|
68 |
+
transformers.SiglipImageProcessor = SiglipImageProcessor
|
69 |
+
|
70 |
+
if not hasattr(transformers, 'SiglipVisionModel'):
|
71 |
+
class SiglipVisionModel:
|
72 |
+
def __init__(self, *args, **kwargs):
|
73 |
+
# Fallback to CLIPVisionModel
|
74 |
+
from transformers import CLIPVisionModel
|
75 |
+
self._model = CLIPVisionModel(*args, **kwargs)
|
76 |
+
|
77 |
+
def __getattr__(self, name):
|
78 |
+
return getattr(self._model, name)
|
79 |
+
|
80 |
+
@classmethod
|
81 |
+
def from_pretrained(cls, *args, **kwargs):
|
82 |
+
instance = cls.__new__(cls)
|
83 |
+
from transformers import CLIPVisionModel
|
84 |
+
instance._model = CLIPVisionModel.from_pretrained(*args, **kwargs)
|
85 |
+
return instance
|
86 |
+
|
87 |
+
transformers.SiglipVisionModel = SiglipVisionModel
|
88 |
+
|
89 |
# 모델 체크포인트 다운로드 및 torch 설정
|
90 |
if __name__ == "__main__":
|
91 |
from huggingface_hub import snapshot_download
|