From 593701e2073d2170020300bedfcac2b132e6b84e Mon Sep 17 00:00:00 2001 From: Koko-ry <2024104299@ruc.edu.cn> Date: Thu, 11 Sep 2025 15:11:42 +0800 Subject: [PATCH] fix aigc endpoint (#1494) --- modelscope/hub/api.py | 4 ++-- modelscope/hub/utils/aigc.py | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/modelscope/hub/api.py b/modelscope/hub/api.py index 2c02f594..eb094538 100644 --- a/modelscope/hub/api.py +++ b/modelscope/hub/api.py @@ -284,7 +284,7 @@ class HubApi: # Use AIGC model endpoint path = f'{endpoint}/api/v1/models/aigc' # Best-effort pre-upload weights so server recognizes sha256 (use existing cookies) - aigc_model.preupload_weights(cookies=cookies, headers=self.builder_headers(self.headers)) + aigc_model.preupload_weights(cookies=cookies, headers=self.builder_headers(self.headers), endpoint=endpoint) # Add AIGC-specific fields to body body.update({ @@ -374,7 +374,7 @@ class HubApi: if aigc_model is not None: # Use AIGC model tag endpoint path = f'{endpoint}/api/v1/models/aigc/repo/tag' - aigc_model.preupload_weights(cookies=cookies, headers=self.builder_headers(self.headers)) + aigc_model.preupload_weights(cookies=cookies, headers=self.builder_headers(self.headers), endpoint=endpoint) # Base body for AIGC model tag body = { diff --git a/modelscope/hub/utils/aigc.py b/modelscope/hub/utils/aigc.py index 564b1734..289201ea 100644 --- a/modelscope/hub/utils/aigc.py +++ b/modelscope/hub/utils/aigc.py @@ -2,12 +2,13 @@ import glob import os from typing import List, Optional +from urllib.parse import urlparse import requests from tqdm.auto import tqdm from modelscope.hub.utils.utils import (MODELSCOPE_URL_SCHEME, - encode_image_to_base64, get_domain) + encode_image_to_base64, get_endpoint) from modelscope.utils.logger import get_logger logger = get_logger() @@ -269,7 +270,8 @@ class AigcModel: *, cookies: Optional[object] = None, timeout: int = 300, - headers: Optional[dict] = None) -> None: + headers: Optional[dict] = None, + endpoint: Optional[str] = None) -> None: """Pre-upload aigc model weights to the LFS server. Server may require the sha256 of weights to be registered before creation. @@ -280,9 +282,12 @@ class AigcModel: timeout: Request timeout seconds. headers: Optional headers. """ - domain: str = get_domain() - base_url: str = f'{MODELSCOPE_URL_SCHEME}lfs.{domain.lstrip("www.")}' - url: str = f'{base_url}/api/v1/models/aigc/weights' + endpoint = endpoint or get_endpoint() + endpoint_host: str = urlparse(endpoint.strip()).hostname.lstrip('www.') + + # https://lfs.modelscope.cn or https://pre-lfs.modelscope.cn + url: str = f'{MODELSCOPE_URL_SCHEME}lfs.{endpoint_host}' if not endpoint_host.startswith('pre') \ + else f'{MODELSCOPE_URL_SCHEME}pre-lfs.{endpoint_host.lstrip("pre.")}' file_path = getattr(self, 'target_file', None) or self.model_path file_path = os.path.abspath(os.path.expanduser(file_path))