|
@@ -27,10 +27,16 @@ async def embed_image_url(img_url_list: List[str]):
|
|
outputs = []
|
|
outputs = []
|
|
for chunk_start in range(0, len(images), MAX_BATCH):
|
|
for chunk_start in range(0, len(images), MAX_BATCH):
|
|
chunk = images[chunk_start:chunk_start + MAX_BATCH]
|
|
chunk = images[chunk_start:chunk_start + MAX_BATCH]
|
|
- inputs = processor(images=chunk, return_tensors="pt")
|
|
|
|
|
|
+
|
|
|
|
+ # 兼容两种情况:AutoProcessor vs dict(fallback)
|
|
|
|
+ if isinstance(processor, dict):
|
|
|
|
+ inputs = processor["image_processor"](images=chunk, return_tensors="pt")
|
|
|
|
+ else:
|
|
|
|
+ inputs = processor(images=chunk, return_tensors="pt")
|
|
|
|
+
|
|
inputs = {k: v.to(DEVICE, dtype=DTYPE) if hasattr(v, "to") else v for k, v in inputs.items()}
|
|
inputs = {k: v.to(DEVICE, dtype=DTYPE) if hasattr(v, "to") else v for k, v in inputs.items()}
|
|
feats = model.get_image_features(**inputs)
|
|
feats = model.get_image_features(**inputs)
|
|
feats = _normalize(feats)
|
|
feats = _normalize(feats)
|
|
outputs.extend(_to_list(feats))
|
|
outputs.extend(_to_list(feats))
|
|
|
|
|
|
- return outputs
|
|
|
|
|
|
+ return outputs
|