xinference 1.5.0.post2__py3-none-any.whl → 1.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xinference might be problematic. Click here for more details.
- xinference/_version.py +3 -3
- xinference/api/restful_api.py +10 -3
- xinference/constants.py +5 -1
- xinference/core/supervisor.py +1 -1
- xinference/core/utils.py +1 -1
- xinference/core/worker.py +2 -2
- xinference/deploy/cmdline.py +17 -0
- xinference/model/audio/core.py +1 -1
- xinference/model/audio/model_spec.json +43 -43
- xinference/model/audio/model_spec_modelscope.json +13 -13
- xinference/model/llm/__init__.py +3 -5
- xinference/model/llm/core.py +14 -0
- xinference/model/llm/llama_cpp/core.py +15 -4
- xinference/model/llm/llm_family.json +3251 -4304
- xinference/model/llm/llm_family.py +62 -6
- xinference/model/llm/llm_family_csghub.json +0 -32
- xinference/model/llm/llm_family_modelscope.json +1161 -1789
- xinference/model/llm/llm_family_openmind_hub.json +19 -325
- xinference/model/llm/lmdeploy/core.py +7 -2
- xinference/model/llm/mlx/core.py +19 -6
- xinference/model/llm/sglang/core.py +25 -10
- xinference/model/llm/transformers/chatglm.py +8 -1
- xinference/model/llm/transformers/cogagent.py +10 -12
- xinference/model/llm/transformers/cogvlm2.py +6 -3
- xinference/model/llm/transformers/cogvlm2_video.py +3 -6
- xinference/model/llm/transformers/core.py +50 -58
- xinference/model/llm/transformers/deepseek_v2.py +4 -2
- xinference/model/llm/transformers/deepseek_vl.py +10 -4
- xinference/model/llm/transformers/deepseek_vl2.py +9 -4
- xinference/model/llm/transformers/gemma3.py +4 -5
- xinference/model/llm/transformers/glm4v.py +2 -20
- xinference/model/llm/transformers/glm_edge_v.py +3 -20
- xinference/model/llm/transformers/intern_vl.py +3 -6
- xinference/model/llm/transformers/internlm2.py +1 -1
- xinference/model/llm/transformers/minicpmv25.py +4 -2
- xinference/model/llm/transformers/minicpmv26.py +5 -3
- xinference/model/llm/transformers/omnilmm.py +1 -1
- xinference/model/llm/transformers/opt.py +1 -1
- xinference/model/llm/transformers/ovis2.py +302 -0
- xinference/model/llm/transformers/qwen-omni.py +2 -1
- xinference/model/llm/transformers/qwen2_audio.py +3 -1
- xinference/model/llm/transformers/qwen2_vl.py +5 -1
- xinference/model/llm/transformers/qwen_vl.py +5 -2
- xinference/model/llm/utils.py +28 -0
- xinference/model/llm/vllm/core.py +73 -9
- xinference/model/llm/vllm/distributed_executor.py +8 -7
- xinference/model/llm/vllm/xavier/allocator.py +1 -1
- xinference/model/llm/vllm/xavier/block_manager.py +1 -1
- xinference/model/llm/vllm/xavier/block_tracker.py +3 -3
- xinference/model/llm/vllm/xavier/executor.py +1 -1
- xinference/model/llm/vllm/xavier/test/test_xavier.py +1 -1
- xinference/model/video/diffusers.py +30 -3
- xinference/model/video/model_spec.json +46 -0
- xinference/model/video/model_spec_modelscope.json +48 -0
- xinference/types.py +2 -0
- xinference/web/ui/build/asset-manifest.json +6 -6
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/css/{main.0f6523be.css → main.337afe76.css} +2 -2
- xinference/web/ui/build/static/css/main.337afe76.css.map +1 -0
- xinference/web/ui/build/static/js/main.91e77b5c.js +3 -0
- xinference/web/ui/build/static/js/main.91e77b5c.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/5c08e2cd07809ed3e41486b16652253404cbb63a3ff8d0366ee50f57e2413cea.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/5e6edb0fb87e3798f142e9abf8dd2dc46bab33a60d31dff525797c0c99887097.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/6087820be1bd5c02c42dff797e7df365448ef35ab26dd5d6bd33e967e05cbfd4.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/6798e126f3bc5f95a4c16a9c2ad52ffe77970c62406d83e20604dfda7ffd2247.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b617f7d21a95045fc57b26a9373551740f1978a826134cbf705c3a1bf8714a93.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c1506cb142151366074975f30fa1ff9cd6e5e978b62a4b074dfc16fe08d70d75.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c5c7c2cd1b863ce41adff2c4737bba06eef3a1acf28288cb83d992060f6b8923.json +1 -0
- xinference/web/ui/src/locales/en.json +1 -0
- xinference/web/ui/src/locales/zh.json +1 -0
- {xinference-1.5.0.post2.dist-info → xinference-1.5.1.dist-info}/METADATA +1 -1
- {xinference-1.5.0.post2.dist-info → xinference-1.5.1.dist-info}/RECORD +77 -78
- {xinference-1.5.0.post2.dist-info → xinference-1.5.1.dist-info}/WHEEL +1 -1
- xinference/model/llm/transformers/compression.py +0 -258
- xinference/model/llm/transformers/yi_vl.py +0 -239
- xinference/web/ui/build/static/css/main.0f6523be.css.map +0 -1
- xinference/web/ui/build/static/js/main.4b67a723.js +0 -3
- xinference/web/ui/build/static/js/main.4b67a723.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/51709f5d3e53bcf19e613662ef9b91fb9174942c5518987a248348dd4e1e0e02.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8f9af2979e45d4648f0cfae108363e58ee421c29a9d4e7329b6f06d9adfd4133.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/9c8b1a86e7c65b2b2599a205e30920652d6c2105f926508ef5bcf29a3ef4ce76.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b8551e9775a01b28ae674125c688febe763732ea969ae344512e64ea01bf632e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e4ba658c6b3b0490910acdae0c535a892257efb61539a24adf8038fc653bd22f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/efe7cd132c27a8f9fd5352a394c491fd5fb0da0348cf9fcbd923164a32365eab.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f199e8173f6409a5802ed44acb95f218388131136504b2e9132129e150c92f9a.json +0 -1
- /xinference/web/ui/build/static/js/{main.4b67a723.js.LICENSE.txt → main.91e77b5c.js.LICENSE.txt} +0 -0
- {xinference-1.5.0.post2.dist-info → xinference-1.5.1.dist-info}/entry_points.txt +0 -0
- {xinference-1.5.0.post2.dist-info → xinference-1.5.1.dist-info}/licenses/LICENSE +0 -0
- {xinference-1.5.0.post2.dist-info → xinference-1.5.1.dist-info}/top_level.txt +0 -0
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
import asyncio
|
|
16
|
+
import importlib.util
|
|
16
17
|
import itertools
|
|
17
18
|
import json
|
|
18
19
|
import logging
|
|
@@ -50,7 +51,7 @@ from ....types import (
|
|
|
50
51
|
LoRA,
|
|
51
52
|
)
|
|
52
53
|
from .. import LLM, LLMFamilyV1, LLMSpecV1
|
|
53
|
-
from ..llm_family import CustomLLMFamilyV1
|
|
54
|
+
from ..llm_family import CustomLLMFamilyV1, cache_model_tokenizer_and_config
|
|
54
55
|
from ..utils import (
|
|
55
56
|
DEEPSEEK_TOOL_CALL_FAMILY,
|
|
56
57
|
QWEN_TOOL_CALL_FAMILY,
|
|
@@ -239,6 +240,9 @@ if VLLM_INSTALLED and vllm.__version__ >= "0.8.0":
|
|
|
239
240
|
if VLLM_INSTALLED and vllm.__version__ >= "0.8.4":
|
|
240
241
|
VLLM_SUPPORTED_CHAT_MODELS.append("glm4-0414")
|
|
241
242
|
|
|
243
|
+
if VLLM_INSTALLED and vllm.__version__ >= "0.8.5":
|
|
244
|
+
VLLM_SUPPORTED_CHAT_MODELS.append("qwen3")
|
|
245
|
+
|
|
242
246
|
|
|
243
247
|
class VLLMModel(LLM):
|
|
244
248
|
def __init__(
|
|
@@ -330,8 +334,10 @@ class VLLMModel(LLM):
|
|
|
330
334
|
|
|
331
335
|
raise ImportError(f"{error_message}\n\n{''.join(installation_guide)}")
|
|
332
336
|
|
|
333
|
-
|
|
334
|
-
|
|
337
|
+
from ..llm_family import LlamaCppLLMSpecV1
|
|
338
|
+
|
|
339
|
+
if "0.3.1" <= vllm.__version__ <= "0.3.3":
|
|
340
|
+
# from vllm v0.3.1 to v0.3.3, it uses cupy as NCCL backend
|
|
335
341
|
# in which cupy will fork a process
|
|
336
342
|
# only for xoscar >= 0.3.0, new process is allowed in subpool
|
|
337
343
|
# besides, xinference set start method as forkserver for unix
|
|
@@ -344,6 +350,13 @@ class VLLMModel(LLM):
|
|
|
344
350
|
|
|
345
351
|
self.prepare_parse_reasoning_content(reasoning_content)
|
|
346
352
|
|
|
353
|
+
if (
|
|
354
|
+
isinstance(self.model_spec, LlamaCppLLMSpecV1)
|
|
355
|
+
and self.model_spec.model_format == "ggufv2"
|
|
356
|
+
):
|
|
357
|
+
# gguf
|
|
358
|
+
self._preprocess_load_gguf()
|
|
359
|
+
|
|
347
360
|
if self.lora_modules is None:
|
|
348
361
|
self.lora_requests = []
|
|
349
362
|
else:
|
|
@@ -482,6 +495,45 @@ class VLLMModel(LLM):
|
|
|
482
495
|
_, err, tb = self._loading_error
|
|
483
496
|
raise err.with_traceback(tb)
|
|
484
497
|
|
|
498
|
+
def _preprocess_load_gguf(self):
|
|
499
|
+
# check if it is multi gguf files
|
|
500
|
+
if (
|
|
501
|
+
not os.path.isfile(self.model_path)
|
|
502
|
+
and self.model_spec.quantization_parts
|
|
503
|
+
and self.quantization in self.model_spec.quantization_parts
|
|
504
|
+
):
|
|
505
|
+
raise RuntimeError(
|
|
506
|
+
"vllm does not support multiple gguf files, please merge them first and "
|
|
507
|
+
"provide `model_path` with merged file"
|
|
508
|
+
)
|
|
509
|
+
|
|
510
|
+
if "tokenizer" not in self._model_config:
|
|
511
|
+
# find pytorch format without quantization
|
|
512
|
+
non_quant_spec = next(
|
|
513
|
+
spec
|
|
514
|
+
for spec in self.model_family.model_specs
|
|
515
|
+
if spec.model_format == "pytorch"
|
|
516
|
+
and "none" in spec.quantizations
|
|
517
|
+
and spec.model_size_in_billions
|
|
518
|
+
== self.model_spec.model_size_in_billions
|
|
519
|
+
)
|
|
520
|
+
|
|
521
|
+
path = cache_model_tokenizer_and_config(self.model_family, non_quant_spec)
|
|
522
|
+
# other than gguf file, vllm requires to provide tokenizer and hf_config_path
|
|
523
|
+
self._model_config["tokenizer"] = self._model_config[
|
|
524
|
+
"hf_config_path"
|
|
525
|
+
] = path
|
|
526
|
+
|
|
527
|
+
if not os.path.isfile(self.model_path):
|
|
528
|
+
self.model_path = os.path.realpath(
|
|
529
|
+
os.path.join(
|
|
530
|
+
self.model_path,
|
|
531
|
+
self.model_spec.model_file_name_template.format(
|
|
532
|
+
quantization=self.quantization
|
|
533
|
+
),
|
|
534
|
+
)
|
|
535
|
+
)
|
|
536
|
+
|
|
485
537
|
def stop(self):
|
|
486
538
|
# though the vLLM engine will shutdown when deleted,
|
|
487
539
|
# but some issue e.g. GH#1682 reported
|
|
@@ -642,7 +694,11 @@ class VLLMModel(LLM):
|
|
|
642
694
|
return sanitized
|
|
643
695
|
|
|
644
696
|
@classmethod
|
|
645
|
-
def
|
|
697
|
+
def check_lib(cls) -> bool:
|
|
698
|
+
return importlib.util.find_spec("vllm") is not None
|
|
699
|
+
|
|
700
|
+
@classmethod
|
|
701
|
+
def match_json(
|
|
646
702
|
cls, llm_family: "LLMFamilyV1", llm_spec: "LLMSpecV1", quantization: str
|
|
647
703
|
) -> bool:
|
|
648
704
|
if not cls._has_cuda_device():
|
|
@@ -935,10 +991,10 @@ class VLLMModel(LLM):
|
|
|
935
991
|
|
|
936
992
|
class VLLMChatModel(VLLMModel, ChatModelMixin):
|
|
937
993
|
@classmethod
|
|
938
|
-
def
|
|
994
|
+
def match_json(
|
|
939
995
|
cls, llm_family: "LLMFamilyV1", llm_spec: "LLMSpecV1", quantization: str
|
|
940
996
|
) -> bool:
|
|
941
|
-
if llm_spec.model_format not in ["pytorch", "gptq", "awq", "fp8"]:
|
|
997
|
+
if llm_spec.model_format not in ["pytorch", "gptq", "awq", "fp8", "ggufv2"]:
|
|
942
998
|
return False
|
|
943
999
|
if llm_spec.model_format == "pytorch":
|
|
944
1000
|
if quantization != "none" and not (quantization is None):
|
|
@@ -954,6 +1010,9 @@ class VLLMChatModel(VLLMModel, ChatModelMixin):
|
|
|
954
1010
|
else:
|
|
955
1011
|
if "4" not in quantization:
|
|
956
1012
|
return False
|
|
1013
|
+
if llm_spec.model_format == "ggufv2":
|
|
1014
|
+
if not (VLLM_INSTALLED and vllm.__version__ >= "0.8.2"):
|
|
1015
|
+
return False
|
|
957
1016
|
if isinstance(llm_family, CustomLLMFamilyV1):
|
|
958
1017
|
if llm_family.model_family not in VLLM_SUPPORTED_CHAT_MODELS:
|
|
959
1018
|
return False
|
|
@@ -1018,7 +1077,9 @@ class VLLMChatModel(VLLMModel, ChatModelMixin):
|
|
|
1018
1077
|
) -> Union[ChatCompletion, AsyncGenerator[ChatCompletionChunk, None]]:
|
|
1019
1078
|
tools = generate_config.pop("tools", []) if generate_config else None
|
|
1020
1079
|
model_family = self.model_family.model_family or self.model_family.model_name
|
|
1021
|
-
full_context_kwargs =
|
|
1080
|
+
full_context_kwargs = (
|
|
1081
|
+
self._get_chat_template_kwargs_from_generate_config(generate_config) or {}
|
|
1082
|
+
)
|
|
1022
1083
|
if tools:
|
|
1023
1084
|
if (
|
|
1024
1085
|
model_family in QWEN_TOOL_CALL_FAMILY
|
|
@@ -1055,7 +1116,7 @@ class VLLMChatModel(VLLMModel, ChatModelMixin):
|
|
|
1055
1116
|
|
|
1056
1117
|
class VLLMVisionModel(VLLMModel, ChatModelMixin):
|
|
1057
1118
|
@classmethod
|
|
1058
|
-
def
|
|
1119
|
+
def match_json(
|
|
1059
1120
|
cls, llm_family: "LLMFamilyV1", llm_spec: "LLMSpecV1", quantization: str
|
|
1060
1121
|
) -> bool:
|
|
1061
1122
|
if not cls._has_cuda_device():
|
|
@@ -1136,7 +1197,10 @@ class VLLMVisionModel(VLLMModel, ChatModelMixin):
|
|
|
1136
1197
|
if "internvl2" not in model_family.lower():
|
|
1137
1198
|
from qwen_vl_utils import process_vision_info
|
|
1138
1199
|
|
|
1139
|
-
full_context_kwargs =
|
|
1200
|
+
full_context_kwargs = (
|
|
1201
|
+
self._get_chat_template_kwargs_from_generate_config(generate_config)
|
|
1202
|
+
or {}
|
|
1203
|
+
)
|
|
1140
1204
|
if tools and model_family in QWEN_TOOL_CALL_FAMILY:
|
|
1141
1205
|
full_context_kwargs["tools"] = tools
|
|
1142
1206
|
assert self.model_family.chat_template is not None
|
|
@@ -54,13 +54,14 @@ class WorkerActor(xo.StatelessActor):
|
|
|
54
54
|
return f"VllmWorker_{rank}"
|
|
55
55
|
|
|
56
56
|
def execute_method(self, method: Union[str, Callable], *args, **kwargs):
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
# NOTE: too many logs, but useful for debug
|
|
58
|
+
# logger.debug(
|
|
59
|
+
# "Calling method %s in vllm worker %s, args: %s, kwargs: %s",
|
|
60
|
+
# method,
|
|
61
|
+
# self.uid,
|
|
62
|
+
# args,
|
|
63
|
+
# kwargs,
|
|
64
|
+
# )
|
|
64
65
|
if isinstance(method, str):
|
|
65
66
|
return getattr(self._worker, method)(*args, **kwargs)
|
|
66
67
|
else:
|
|
@@ -24,7 +24,7 @@ from .block import XavierPrefixCachingBlockAllocator
|
|
|
24
24
|
class XavierCpuGpuBlockAllocator(CpuGpuBlockAllocator):
|
|
25
25
|
def __init__(self, *args, **kwargs):
|
|
26
26
|
super().__init__(*args, **kwargs)
|
|
27
|
-
self._xavier_config: Optional[Dict[str, Any]] = None
|
|
27
|
+
self._xavier_config: Optional[Dict[str, Any]] = None # type: ignore
|
|
28
28
|
|
|
29
29
|
@property
|
|
30
30
|
def xavier_config(self):
|
|
@@ -30,7 +30,7 @@ class XavierBlockManager(SelfAttnBlockSpaceManager):
|
|
|
30
30
|
# Monkey patch
|
|
31
31
|
CpuGpuBlockAllocator.create = XavierCpuGpuBlockAllocator.create
|
|
32
32
|
super().__init__(*args, **kwargs)
|
|
33
|
-
self._xavier_config: Optional[Dict[str, Any]] = None
|
|
33
|
+
self._xavier_config: Optional[Dict[str, Any]] = None # type: ignore
|
|
34
34
|
logger.debug("Init xavier block manager done.")
|
|
35
35
|
|
|
36
36
|
@property
|
|
@@ -25,10 +25,10 @@ class VLLMBlockTracker(xo.StatelessActor):
|
|
|
25
25
|
def __init__(self):
|
|
26
26
|
super().__init__()
|
|
27
27
|
# engine -> hash -> (rank, block_id)
|
|
28
|
-
self._hash_to_rank_and_block_id: Dict[int, Dict[int, Set[Tuple[int, int]]]] = {}
|
|
28
|
+
self._hash_to_rank_and_block_id: Dict[int, Dict[int, Set[Tuple[int, int]]]] = {} # type: ignore
|
|
29
29
|
# engine -> rank -> (hash, block_id)
|
|
30
|
-
self._rank_to_hash_and_block_id: Dict[int, Dict[int, Set[Tuple[int, int]]]] = {}
|
|
31
|
-
self._unavailable_ranks: Set[int] = set()
|
|
30
|
+
self._rank_to_hash_and_block_id: Dict[int, Dict[int, Set[Tuple[int, int]]]] = {} # type: ignore
|
|
31
|
+
self._unavailable_ranks: Set[int] = set() # type: ignore
|
|
32
32
|
|
|
33
33
|
def register_blocks(
|
|
34
34
|
self, virtual_engine: int, block_infos: List[Tuple[int, int]], rank: int
|
|
@@ -38,7 +38,7 @@ class XavierExecutor(MultiprocessingDistributedExecutor):
|
|
|
38
38
|
Retrieve the necessary transmission information from the `cache_engine`.
|
|
39
39
|
"""
|
|
40
40
|
transfer_ref = await self._get_transfer_ref()
|
|
41
|
-
ref_cache_engine: CacheEngine = self.driver_worker.cache_engine[0]
|
|
41
|
+
ref_cache_engine: CacheEngine = self.driver_worker.cache_engine[0] # type: ignore
|
|
42
42
|
buffer_dtype = ref_cache_engine.dtype
|
|
43
43
|
buffer_device = "cpu"
|
|
44
44
|
buffer_pin_memory = is_pin_memory_available()
|
|
@@ -46,7 +46,7 @@ async def actor_pool_context():
|
|
|
46
46
|
async def test_block_tracker(actor_pool_context):
|
|
47
47
|
actor_pool = actor_pool_context
|
|
48
48
|
addr = actor_pool.external_address
|
|
49
|
-
tracker_ref: xo.ActorRefType[ExtendedBlockTracker] = await xo.create_actor(
|
|
49
|
+
tracker_ref: xo.ActorRefType[ExtendedBlockTracker] = await xo.create_actor( # type: ignore
|
|
50
50
|
ExtendedBlockTracker,
|
|
51
51
|
address=addr,
|
|
52
52
|
uid=VLLMBlockTracker.default_uid(),
|
|
@@ -64,6 +64,7 @@ class DiffUsersVideoModel:
|
|
|
64
64
|
self._model_uid = model_uid
|
|
65
65
|
self._model_path = model_path
|
|
66
66
|
self._model_spec = model_spec
|
|
67
|
+
self._abilities = model_spec.model_ability or [] # type: ignore
|
|
67
68
|
self._model = None
|
|
68
69
|
self._kwargs = kwargs
|
|
69
70
|
|
|
@@ -71,6 +72,10 @@ class DiffUsersVideoModel:
|
|
|
71
72
|
def model_spec(self):
|
|
72
73
|
return self._model_spec
|
|
73
74
|
|
|
75
|
+
@property
|
|
76
|
+
def model_ability(self):
|
|
77
|
+
return self._abilities
|
|
78
|
+
|
|
74
79
|
def load(self):
|
|
75
80
|
import torch
|
|
76
81
|
|
|
@@ -105,6 +110,12 @@ class DiffUsersVideoModel:
|
|
|
105
110
|
pipeline = self._model = HunyuanVideoPipeline.from_pretrained(
|
|
106
111
|
self._model_path, transformer=transformer, **kwargs
|
|
107
112
|
)
|
|
113
|
+
elif self.model_spec.model_family == "Wan":
|
|
114
|
+
from diffusers import WanPipeline
|
|
115
|
+
|
|
116
|
+
pipeline = self._model = WanPipeline.from_pretrained(
|
|
117
|
+
self._model_path, **kwargs
|
|
118
|
+
)
|
|
108
119
|
else:
|
|
109
120
|
raise Exception(
|
|
110
121
|
f"Unsupported model family: {self._model_spec.model_family}"
|
|
@@ -124,8 +135,16 @@ class DiffUsersVideoModel:
|
|
|
124
135
|
pipeline.enable_model_cpu_offload()
|
|
125
136
|
if kwargs.get("sequential_cpu_offload", True):
|
|
126
137
|
pipeline.enable_sequential_cpu_offload()
|
|
127
|
-
|
|
128
|
-
|
|
138
|
+
try:
|
|
139
|
+
pipeline.vae.enable_slicing()
|
|
140
|
+
except AttributeError:
|
|
141
|
+
# model does not support slicing
|
|
142
|
+
pass
|
|
143
|
+
try:
|
|
144
|
+
pipeline.vae.enable_tiling()
|
|
145
|
+
except AttributeError:
|
|
146
|
+
# model does support tiling
|
|
147
|
+
pass
|
|
129
148
|
elif not kwargs.get("device_map"):
|
|
130
149
|
logger.debug("Loading model to available device")
|
|
131
150
|
if gpu_count() > 1:
|
|
@@ -145,6 +164,8 @@ class DiffUsersVideoModel:
|
|
|
145
164
|
) -> VideoList:
|
|
146
165
|
import gc
|
|
147
166
|
|
|
167
|
+
from diffusers.utils import export_to_video
|
|
168
|
+
|
|
148
169
|
# cv2 bug will cause the video cannot be normally displayed
|
|
149
170
|
# thus we use the imageio one
|
|
150
171
|
# from diffusers.utils import export_to_video
|
|
@@ -155,6 +176,7 @@ class DiffUsersVideoModel:
|
|
|
155
176
|
generate_kwargs = self._model_spec.default_generate_config.copy()
|
|
156
177
|
generate_kwargs.update(kwargs)
|
|
157
178
|
generate_kwargs["num_videos_per_prompt"] = n
|
|
179
|
+
fps = generate_kwargs.pop("fps", 10)
|
|
158
180
|
logger.debug(
|
|
159
181
|
"diffusers text_to_video args: %s",
|
|
160
182
|
generate_kwargs,
|
|
@@ -173,7 +195,12 @@ class DiffUsersVideoModel:
|
|
|
173
195
|
urls = []
|
|
174
196
|
for f in output.frames:
|
|
175
197
|
path = os.path.join(XINFERENCE_VIDEO_DIR, uuid.uuid4().hex + ".mp4")
|
|
176
|
-
|
|
198
|
+
export = (
|
|
199
|
+
export_to_video
|
|
200
|
+
if self.model_spec.model_family != "CogVideoX"
|
|
201
|
+
else export_to_video_imageio
|
|
202
|
+
)
|
|
203
|
+
p = export(f, path, fps=fps)
|
|
177
204
|
urls.append(p)
|
|
178
205
|
if response_format == "url":
|
|
179
206
|
return VideoList(
|
|
@@ -45,5 +45,51 @@
|
|
|
45
45
|
},
|
|
46
46
|
"default_generate_config": {
|
|
47
47
|
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"model_name": "Wan2.1-1.3B",
|
|
51
|
+
"model_family": "Wan",
|
|
52
|
+
"model_id": "Wan-AI/Wan2.1-T2V-1.3B-Diffusers",
|
|
53
|
+
"model_revision": "0fad780a534b6463e45facd96134c9f345acfa5b",
|
|
54
|
+
"model_ability": [
|
|
55
|
+
"text2video"
|
|
56
|
+
],
|
|
57
|
+
"default_model_config": {
|
|
58
|
+
"torch_dtype": "bfloat16"
|
|
59
|
+
},
|
|
60
|
+
"default_generate_config": {
|
|
61
|
+
},
|
|
62
|
+
"virtualenv": {
|
|
63
|
+
"packages": [
|
|
64
|
+
"diffusers>=0.33.0",
|
|
65
|
+
"ftfy",
|
|
66
|
+
"imageio-ffmpeg",
|
|
67
|
+
"imageio",
|
|
68
|
+
"numpy==1.26.4"
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"model_name": "Wan2.1-14B",
|
|
74
|
+
"model_family": "Wan",
|
|
75
|
+
"model_id": "Wan-AI/Wan2.1-T2V-14B-Diffusers",
|
|
76
|
+
"model_revision": "38ec498cb3208fb688890f8cc7e94ede2cbd7f68",
|
|
77
|
+
"model_ability": [
|
|
78
|
+
"text2video"
|
|
79
|
+
],
|
|
80
|
+
"default_model_config": {
|
|
81
|
+
"torch_dtype": "bfloat16"
|
|
82
|
+
},
|
|
83
|
+
"default_generate_config": {
|
|
84
|
+
},
|
|
85
|
+
"virtualenv": {
|
|
86
|
+
"packages": [
|
|
87
|
+
"diffusers>=0.33.0",
|
|
88
|
+
"ftfy",
|
|
89
|
+
"imageio-ffmpeg",
|
|
90
|
+
"imageio",
|
|
91
|
+
"numpy==1.26.4"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
48
94
|
}
|
|
49
95
|
]
|
|
@@ -48,5 +48,53 @@
|
|
|
48
48
|
},
|
|
49
49
|
"default_generate_config": {
|
|
50
50
|
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"model_name": "Wan2.1-1.3B",
|
|
54
|
+
"model_family": "Wan",
|
|
55
|
+
"model_hub": "modelscope",
|
|
56
|
+
"model_id": "Wan-AI/Wan2.1-T2V-1.3B-Diffusers",
|
|
57
|
+
"model_revision": "master",
|
|
58
|
+
"model_ability": [
|
|
59
|
+
"text2video"
|
|
60
|
+
],
|
|
61
|
+
"default_model_config": {
|
|
62
|
+
"torch_dtype": "bfloat16"
|
|
63
|
+
},
|
|
64
|
+
"default_generate_config": {
|
|
65
|
+
},
|
|
66
|
+
"virtualenv": {
|
|
67
|
+
"packages": [
|
|
68
|
+
"diffusers>=0.33.0",
|
|
69
|
+
"ftfy",
|
|
70
|
+
"imageio-ffmpeg",
|
|
71
|
+
"imageio",
|
|
72
|
+
"numpy==1.26.4"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"model_name": "Wan2.1-14B",
|
|
78
|
+
"model_family": "Wan",
|
|
79
|
+
"model_hub": "modelscope",
|
|
80
|
+
"model_id": "Wan-AI/Wan2.1-T2V-14B-Diffusers",
|
|
81
|
+
"model_revision": "master",
|
|
82
|
+
"model_ability": [
|
|
83
|
+
"text2video"
|
|
84
|
+
],
|
|
85
|
+
"default_model_config": {
|
|
86
|
+
"torch_dtype": "bfloat16"
|
|
87
|
+
},
|
|
88
|
+
"default_generate_config": {
|
|
89
|
+
},
|
|
90
|
+
"virtualenv": {
|
|
91
|
+
"packages": [
|
|
92
|
+
"diffusers>=0.33.0",
|
|
93
|
+
"ftfy",
|
|
94
|
+
"imageio-ffmpeg",
|
|
95
|
+
"imageio",
|
|
96
|
+
"numpy==1.26.4"
|
|
97
|
+
]
|
|
98
|
+
}
|
|
51
99
|
}
|
|
52
100
|
]
|
xinference/types.py
CHANGED
|
@@ -344,6 +344,7 @@ class PytorchModelConfig(TypedDict, total=False):
|
|
|
344
344
|
reasoning_content: bool
|
|
345
345
|
min_pixels: NotRequired[int]
|
|
346
346
|
max_pixels: NotRequired[int]
|
|
347
|
+
quantization_config: NotRequired[Dict]
|
|
347
348
|
|
|
348
349
|
|
|
349
350
|
def get_pydantic_model_from_method(
|
|
@@ -411,6 +412,7 @@ class CreateCompletionTorch(BaseModel):
|
|
|
411
412
|
top_k: int = top_k_field
|
|
412
413
|
lora_name: Optional[str]
|
|
413
414
|
request_id: Optional[str]
|
|
415
|
+
chat_template_kwargs: Optional[Union[str, Dict[str, Any]]]
|
|
414
416
|
|
|
415
417
|
|
|
416
418
|
CreateCompletionLlamaCpp: BaseModel
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"main.css": "./static/css/main.
|
|
4
|
-
"main.js": "./static/js/main.
|
|
3
|
+
"main.css": "./static/css/main.337afe76.css",
|
|
4
|
+
"main.js": "./static/js/main.91e77b5c.js",
|
|
5
5
|
"static/media/icon.webp": "./static/media/icon.4603d52c63041e5dfbfd.webp",
|
|
6
6
|
"index.html": "./index.html",
|
|
7
|
-
"main.
|
|
8
|
-
"main.
|
|
7
|
+
"main.337afe76.css.map": "./static/css/main.337afe76.css.map",
|
|
8
|
+
"main.91e77b5c.js.map": "./static/js/main.91e77b5c.js.map"
|
|
9
9
|
},
|
|
10
10
|
"entrypoints": [
|
|
11
|
-
"static/css/main.
|
|
12
|
-
"static/js/main.
|
|
11
|
+
"static/css/main.337afe76.css",
|
|
12
|
+
"static/js/main.91e77b5c.js"
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.svg"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>Xinference</title><script defer="defer" src="./static/js/main.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.svg"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>Xinference</title><script defer="defer" src="./static/js/main.91e77b5c.js"></script><link href="./static/css/main.337afe76.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.container{cursor:pointer;display:block}.container,.descriptionCard{border-radius:20px;height:300px;position:relative;width:300px}.descriptionCard{left:-1px;padding:20px;top:-1px}.cardTitle{display:flex;justify-content:space-between}.iconButtonBox{align-items:center;display:flex}.drawerCard{min-height:100%;padding:20px 80px 0;position:relative;width:60vw}.p{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;overflow:hidden;padding:0 10px;text-overflow:ellipsis;word-break:break-word}.pasteText{color:#1976d2;cursor:pointer;font-size:18px!important;margin-inline:10px}.pasteText:hover{color:#1976d2b3}.copyToCommandLine{color:#1976d2;cursor:pointer;font-size:16px!important}.copyToCommandLine:hover{color:#1976d2b3}.formContainer{height:80%;overflow:scroll;padding:0 10px 160px}.buttonsContainer{bottom:50px;left:100px;position:absolute;right:100px}.buttons{align-items:center;display:flex;gap:20px;justify-content:space-between}.css-1be5mm1-MuiLinearProgress-root-MuiMobileStepper-progress,.css-r5rjnf-MuiLinearProgress-root-MuiMobileStepper-progress{width:100%!important}.instructionText{color:#666;font-size:12px;font-style:italic;margin:30px 0;text-align:center}.iconRow{bottom:20px;justify-content:space-between;left:20px;position:absolute;right:20px}.iconItem,.iconRow{align-items:center;display:flex}.iconItem{flex-direction:column;margin:20px}.boldIconText{font-size:1.2em;font-weight:700}.muiIcon{font-size:1.5em}.smallText{font-size:.8em}.dialogBox{height:607px;margin:32px;overflow-x:scroll;width:1241px}.dialogTitle{display:flex;justify-content:space-between;padding:20px 20px 7px}.dialogTitle-model_name{font-size:18px;font-weight:700}.pathBox{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:160px}.pathBox2{width:300px}.empty{color:#555;font-size:20px;left:50%;position:absolute;top:30%;-webkit-transform:translate(-50%);transform:translate(-50%)}.deleteDialog{align-items:center;display:flex}.warningIcon{color:#ed6c02;margin-right:10px}.jsonDialog{border-radius:8px;color:#000;display:flex;flex-direction:column;padding:10px 30px}.jsonDialog-title{align-items:center;display:flex;justify-content:space-between;margin:10px 0 20px}.title-name{font-size:16px;font-weight:700}.main-box{height:500px;width:700px}.but-box{display:flex;justify-content:end;margin-top:20px}.drawer{bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:visibility .3s ease,opacity .3s ease;visibility:hidden;z-index:1000}.drawer.open{opacity:1;visibility:visible}.drawer-overlay{background-color:rgba(0,0,0,.5);left:0;z-index:999}.drawer-content,.drawer-overlay{bottom:0;position:absolute;right:0;top:0}.drawer-content{background-color:#fff;box-shadow:-2px 0 10px rgba(0,0,0,.1);overflow-y:auto;-webkit-transform:translateX(100%);transform:translateX(100%);transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;z-index:1000}.drawer.open .drawer-content{-webkit-transform:translateX(0);transform:translateX(0)}.copyText{color:#666;cursor:pointer;font-size:14px!important}.copyText:hover{color:#1976d2}.formBox{max-height:80vh;max-width:50vw;min-width:50vw;overflow:auto;padding:40px 20px 0 0;position:relative;transition:all .4s ease-in-out}.broaden{max-width:100%;min-width:100%;padding-right:0}.show-json{align-items:center;display:flex;right:60px;top:90px}.icon,.show-json{position:absolute}.icon{cursor:pointer;margin-left:20px;right:-40px}.icon:hover{color:#1976d2}.arrow{font-size:24px!important}.jsonBox{min-height:80vh;position:relative;transition:all .4s ease-in-out;width:100%}.hide{overflow:hidden;-webkit-transform:translate(30vw);transform:translate(30vw);width:0}.checkboxWrapper{align-items:center;display:flex;flex-wrap:wrap;width:100%}.jsonBox-header{align-items:center;display:flex;justify-content:space-between}.jsonBox-title{font-weight:700;line-height:40px}.textarea{background-color:initial;border:1px solid #ddd;border-radius:5px;color:#666;height:calc(100% - 40px);padding:5px 10px;resize:none;width:100%}.addBtn{margin-left:20px!important}.item{border:1px solid #ddd;border-radius:10px;margin:10px 50px 0;overflow:hidden;padding:20px;position:relative}.item:hover .deleteBtn{-webkit-transform:translateX(-50px);transform:translateX(-50px)}.deleteBtn{background-color:#1976d2;border-radius:25px;height:50px;line-height:70px;position:absolute;right:20px;text-align:center;top:calc(50% - 25px);-webkit-transform:translateX(80px);transform:translateX(80px);transition:all .3s ease-in-out;width:50px}.deleteBtn:hover{box-shadow:0 0 10px #aaa;cursor:pointer}.deleteIcon{color:#fff;font-size:28px!important}.chat_template_box{align-items:start;display:flex;gap:10px}.chat_template_test{width:30%}.chat_template_test_mainBox{border:1px solid #ccc;border-radius:4px;height:137px;overflow:scroll;padding:10px}.chat_template_test_tip{color:rgba(0,0,0,.6);font-size:10px;margin:4px 14px 0}.test_res_box{border:1px solid #ddd;border-radius:4px;margin-top:5px;min-height:55px;padding:10px}.css-19qh8xo-MuiInputBase-input-MuiOutlinedInput-input.Mui-disabled{-webkit-text-fill-color:#000!important}
|
|
2
|
-
/*# sourceMappingURL=main.
|
|
1
|
+
.container{cursor:pointer;display:block}.container,.descriptionCard{border-radius:20px;height:300px;position:relative;width:300px}.descriptionCard{left:-1px;padding:20px;top:-1px}.cardTitle{display:flex;justify-content:space-between}.iconButtonBox{align-items:center;display:flex}.drawerCard{min-height:100%;padding:20px 80px 0;position:relative;width:60vw}.p{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;overflow:hidden;padding:0 10px;text-overflow:ellipsis;word-break:break-word}.pasteText{color:#1976d2;cursor:pointer;font-size:18px!important;margin-inline:10px}.pasteText:hover{color:#1976d2b3}.copyToCommandLine{color:#1976d2;cursor:pointer;font-size:16px!important}.copyToCommandLine:hover{color:#1976d2b3}.formContainer{height:80%;overflow:scroll;padding:0 10px 160px}.buttonsContainer{bottom:50px;left:100px;position:absolute;right:100px}.buttons{align-items:center;display:flex;gap:20px;justify-content:space-between}.css-1be5mm1-MuiLinearProgress-root-MuiMobileStepper-progress,.css-r5rjnf-MuiLinearProgress-root-MuiMobileStepper-progress{width:100%!important}.instructionText{color:#666;font-size:12px;font-style:italic;margin:30px 0;text-align:center}.iconRow{bottom:20px;justify-content:space-between;left:20px;position:absolute;right:20px}.iconItem,.iconRow{align-items:center;display:flex}.iconItem{flex-direction:column;margin:20px}.boldIconText{font-size:1.2em;font-weight:700}.muiIcon{font-size:1.5em}.smallText{font-size:.8em}.dialogBox{height:607px;margin:32px;overflow-x:scroll;width:1241px}.dialogTitle{display:flex;justify-content:space-between;padding:20px 20px 7px}.dialogTitle-model_name{font-size:18px;font-weight:700}.pathBox{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:160px}.pathBox2{width:300px}.empty{color:#555;font-size:20px;left:50%;position:absolute;top:30%;-webkit-transform:translate(-50%);transform:translate(-50%)}.deleteDialog{align-items:center;display:flex}.warningIcon{color:#ed6c02;margin-right:10px}.jsonDialog{border-radius:8px;color:#000;display:flex;flex-direction:column;padding:10px 30px}.jsonDialog-title{align-items:center;display:flex;justify-content:space-between;margin:10px 0 20px}.title-name{font-size:16px;font-weight:700}.main-box{height:500px;width:700px}.but-box{display:flex;justify-content:end;margin-top:20px}.drawer{bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:visibility .3s ease,opacity .3s ease;visibility:hidden;z-index:1000}.drawer.open{opacity:1;visibility:visible}.drawer-overlay{background-color:rgba(0,0,0,.5);left:0;z-index:999}.drawer-content,.drawer-overlay{bottom:0;position:absolute;right:0;top:0}.drawer-content{background-color:#fff;box-shadow:-2px 0 10px rgba(0,0,0,.1);overflow-y:auto;-webkit-transform:translateX(100%);transform:translateX(100%);transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;z-index:1000}.drawer.open .drawer-content{-webkit-transform:translateX(0);transform:translateX(0)}.textHighlight .MuiInputBase-input,.textHighlight .MuiSelect-select{color:#1976d2}.copyText{color:#666;cursor:pointer;font-size:14px!important}.copyText:hover{color:#1976d2}.formBox{max-height:80vh;max-width:50vw;min-width:50vw;overflow:auto;padding:40px 20px 0 0;position:relative;transition:all .4s ease-in-out}.broaden{max-width:100%;min-width:100%;padding-right:0}.show-json{align-items:center;display:flex;right:60px;top:90px}.icon,.show-json{position:absolute}.icon{cursor:pointer;margin-left:20px;right:-40px}.icon:hover{color:#1976d2}.arrow{font-size:24px!important}.jsonBox{min-height:80vh;position:relative;transition:all .4s ease-in-out;width:100%}.hide{overflow:hidden;-webkit-transform:translate(30vw);transform:translate(30vw);width:0}.checkboxWrapper{align-items:center;display:flex;flex-wrap:wrap;width:100%}.jsonBox-header{align-items:center;display:flex;justify-content:space-between}.jsonBox-title{font-weight:700;line-height:40px}.textarea{background-color:initial;border:1px solid #ddd;border-radius:5px;color:#666;height:calc(100% - 40px);padding:5px 10px;resize:none;width:100%}.addBtn{margin-left:20px!important}.item{border:1px solid #ddd;border-radius:10px;margin:10px 50px 0;overflow:hidden;padding:20px;position:relative}.item:hover .deleteBtn{-webkit-transform:translateX(-50px);transform:translateX(-50px)}.deleteBtn{background-color:#1976d2;border-radius:25px;height:50px;line-height:70px;position:absolute;right:20px;text-align:center;top:calc(50% - 25px);-webkit-transform:translateX(80px);transform:translateX(80px);transition:all .3s ease-in-out;width:50px}.deleteBtn:hover{box-shadow:0 0 10px #aaa;cursor:pointer}.deleteIcon{color:#fff;font-size:28px!important}.chat_template_box{align-items:start;display:flex;gap:10px}.chat_template_test{width:30%}.chat_template_test_mainBox{border:1px solid #ccc;border-radius:4px;height:137px;overflow:scroll;padding:10px}.chat_template_test_tip{color:rgba(0,0,0,.6);font-size:10px;margin:4px 14px 0}.test_res_box{border:1px solid #ddd;border-radius:4px;margin-top:5px;min-height:55px;padding:10px}.css-19qh8xo-MuiInputBase-input-MuiOutlinedInput-input.Mui-disabled{-webkit-text-fill-color:#000!important}
|
|
2
|
+
/*# sourceMappingURL=main.337afe76.css.map*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/main.337afe76.css","mappings":"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","sources":["scenes/launch_model/styles/modelCardStyle.css","components/copyComponent/style.css","scenes/register_model/styles/registerModelStyle.css"],"sourcesContent":[".container {\n display: block;\n position: relative;\n width: 300px;\n height: 300px;\n cursor: pointer;\n border-radius: 20px;\n}\n.descriptionCard {\n position: relative;\n top: -1px;\n left: -1px;\n width: 300px;\n height: 300px;\n padding: 20px;\n border-radius: 20px;\n}\n.cardTitle {\n display: flex;\n justify-content: space-between;\n}\n.iconButtonBox {\n display: flex;\n align-items: center;\n}\n.drawerCard {\n position: relative;\n padding: 20px 80px 0;\n min-height: 100%;\n width: 60vw;\n}\n.p {\n display: -webkit-box;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n font-size: 14px;\n padding: 0px 10px;\n}\n.pasteText {\n font-size: 18px !important;\n color: #1976d2;\n cursor: pointer;\n margin-inline: 10px;\n}\n.pasteText:hover {\n color: #1976d2b3;\n}\n.copyToCommandLine {\n font-size: 16px !important;\n color: #1976d2;\n cursor: pointer;\n}\n.copyToCommandLine:hover {\n color: #1976d2b3;\n}\n.formContainer {\n height: 80%;\n overflow: scroll;\n padding: 0 10px;\n padding-bottom: 160px;\n}\n.buttonsContainer {\n position: absolute;\n bottom: 50px;\n left: 100px;\n right: 100px;\n}\n.buttons {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n}\n.css-1be5mm1-MuiLinearProgress-root-MuiMobileStepper-progress {\n width: 100% !important;\n}\n.css-r5rjnf-MuiLinearProgress-root-MuiMobileStepper-progress {\n width: 100% !important;\n}\n.instructionText {\n font-size: 12px;\n color: #666666;\n font-style: italic;\n margin: 30px 0;\n text-align: center;\n}\n.iconRow {\n position: absolute;\n bottom: 20px;\n left: 20px;\n right: 20px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.iconItem {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 20px;\n}\n.boldIconText {\n font-weight: bold;\n font-size: 1.2em;\n}\n.muiIcon {\n font-size: 1.5em;\n}\n.smallText {\n font-size: 0.8em;\n}\n.dialogBox {\n width: 1241px;\n height: 607px;\n margin: 32px;\n overflow-x: scroll;\n}\n.dialogTitle {\n display: flex;\n justify-content: space-between;\n padding: 20px 20px 7px;\n}\n.dialogTitle-model_name {\n font-size: 18px;\n font-weight: 700;\n}\n.pathBox {\n width: 160px;\n cursor: pointer;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.pathBox2 {\n width: 300px;\n}\n.empty {\n position: absolute;\n left: 50%;\n top: 30%;\n font-size: 20px;\n color: #555;\n transform: translate(-50%, 0);\n}\n.deleteDialog {\n display: flex;\n align-items: center;\n}\n.warningIcon {\n margin-right: 10px;\n color: rgb(237, 108, 2);\n}\n.jsonDialog {\n display: flex;\n flex-direction: column;\n padding: 10px 30px;\n color: #000;\n border-radius: 8px;\n}\n.jsonDialog-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 10px 0 20px 0;\n}\n.title-name {\n font-size: 16px;\n font-weight: 700;\n}\n.main-box {\n width: 700px;\n height: 500px;\n}\n.but-box {\n display: flex;\n justify-content: end;\n margin-top: 20px;\n}\n.drawer {\n z-index: 1000;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n visibility: hidden;\n opacity: 0;\n transition: visibility 0.3s ease, opacity 0.3s ease;\n}\n.drawer.open {\n visibility: visible;\n opacity: 1;\n}\n.drawer-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 999;\n}\n.drawer-content {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: white;\n z-index: 1000;\n box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);\n transition: transform 0.3s ease;\n transform: translateX(100%);\n overflow-y: auto;\n}\n.drawer.open .drawer-content {\n transform: translateX(0);\n}\n.textHighlight .MuiSelect-select {\n color: #1976d2;\n}\n.textHighlight .MuiInputBase-input {\n color: #1976d2;\n}\n",".copyText {\n font-size: 14px !important;\n color: #666;\n cursor: pointer;\n}\n\n.copyText:hover {\n color: #1976d2;\n}\n",".formBox {\n position: relative;\n max-width: 50vw;\n min-width: 50vw;\n max-height: 80vh;\n overflow: auto;\n padding: 40px 20px 0 0;\n transition: all 0.4s ease-in-out;\n}\n\n.broaden {\n max-width: 100%;\n min-width: 100%;\n padding-right: 0;\n}\n\n.show-json {\n display: flex;\n align-items: center;\n position: absolute;\n top: 90px;\n right: 60px;\n}\n\n.icon {\n position: absolute;\n right: -40px;\n cursor: pointer;\n margin-left: 20px;\n}\n\n.icon:hover {\n color: #1976d2;\n}\n\n.arrow {\n font-size: 24px !important;\n}\n\n.jsonBox {\n position: relative;\n min-height: 80vh;\n width: 100%;\n transition: all 0.4s ease-in-out;\n}\n\n.hide {\n width: 0;\n transform: translate(30vw, 0);\n overflow: hidden;\n}\n\n.checkboxWrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n width: 100%;\n}\n\n.jsonBox-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.jsonBox-title {\n line-height: 40px;\n font-weight: 700;\n}\n\n.textarea {\n width: 100%;\n height: calc(100% - 40px);\n padding: 5px 10px;\n border: 1px solid #ddd;\n border-radius: 5px;\n resize: none;\n color: #666;\n background-color: transparent;\n}\n\n.addBtn {\n margin-left: 20px !important;\n}\n\n.item {\n position: relative;\n border: 1px solid #ddd;\n margin: 10px 50px 0;\n padding: 20px;\n border-radius: 10px;\n overflow: hidden;\n}\n\n.item:hover .deleteBtn {\n transform: translateX(-50px);\n}\n\n.deleteBtn {\n position: absolute;\n right: 20px;\n top: calc(50% - 25px);\n width: 50px;\n height: 50px;\n transform: translateX(80px);\n text-align: center;\n line-height: 70px;\n border-radius: 25px;\n background-color: #1976d2;\n transition: all 0.3s ease-in-out;\n}\n\n.deleteBtn:hover {\n cursor: pointer;\n box-shadow: 0 0 10px #aaa;\n}\n\n.deleteIcon {\n font-size: 28px !important;\n color: #fff;\n}\n\n.chat_template_box {\n display: flex;\n align-items: start;\n gap: 10px;\n}\n\n.chat_template_test {\n width: 30%;\n}\n\n.chat_template_test_mainBox {\n height: 137px;\n padding: 10px;\n border: 1px solid #ccc;\n border-radius: 4px;\n overflow: scroll;\n}\n\n.chat_template_test_tip {\n font-size: 10px;\n margin: 4px 14px 0;\n color: rgba(0, 0, 0, 0.6);\n}\n\n.test_res_box {\n border: 1px solid #ddd;\n min-height: 55px;\n padding: 10px;\n margin-top: 5px;\n border-radius: 4px;\n}\n\n.css-19qh8xo-MuiInputBase-input-MuiOutlinedInput-input.Mui-disabled {\n -webkit-text-fill-color: #000 !important;\n}\n"],"names":[],"sourceRoot":""}
|