diff --git a/modelscope_config.json b/modelscope_config.json index 18950ac..5992cab 100644 --- a/modelscope_config.json +++ b/modelscope_config.json @@ -12,22 +12,33 @@ "default_text_model": "Qwen/Qwen3-Coder-480B-A35B-Instruct", "default_system_prompt": "You are a helpful assistant.", "default_user_prompt": "你好", - "api_token": "", + "api_token": "ms-561cde2a-253e-4fc8-8d33-6f8afcffdeaa", "image_models": [ "Qwen/Qwen-Image", "MusePublic/489_ckpt_FLUX_1", + "MusePublic/flux-high-res", + "black-forest-labs/FLUX.1-dev", + "black-forest-labs/FLUX.1-Canny-dev", + "black-forest-labs/FLUX.1-Depth-dev", + "black-forest-labs/FLUX.1-Fill-dev", "black-forest-labs/FLUX.1-Krea-dev", "MAILAND/majicflus_v1" ], "image_edit_models": [ "Qwen/Qwen-Image-Edit", - "MusePublic/FLUX.1-Kontext-Dev" + "MusePublic/FLUX.1-Kontext-Dev", + "black-forest-labs/FLUX.1-Kontext-dev" ], "text_models": [ "Qwen/Qwen3-Coder-480B-A35B-Instruct", "Qwen/Qwen3-Coder-480B-A35B-Chat", + "Qwen/Qwen3-235B-A22B-Thinking-2507", + "Qwen3-235B-A22B-Instruct-2507", "Qwen/Qwen3-Coder-140B-A35B-Instruct", - "Qwen/Qwen3-Coder-70B-A35B-Instruct" + "Qwen/Qwen3-Coder-70B-A35B-Instruct", + "deepseek-ai/DeepSeek-V3.1", + "deepseek-ai/DeepSeek-R1-0528", + "ZhipuAI/GLM-4.5" ], "vision_models": [ "stepfun-ai/step3", diff --git a/modelscope_image_node.py b/modelscope_image_node.py index 34e030a..6c344cb 100644 --- a/modelscope_image_node.py +++ b/modelscope_image_node.py @@ -106,8 +106,9 @@ class ModelScopeImageNode: "default": config.get("default_prompt", "A beautiful landscape") }), "api_token": ("STRING", { - "default": saved_token, - "placeholder": "请输入您的魔搭API Token" + "default": "", + "placeholder": "请输入您的魔搭API Token", + "multiline": False }), }, "optional": { @@ -157,7 +158,9 @@ class ModelScopeImageNode: def generate_image(self, prompt, api_token, model="Qwen/Qwen-Image", negative_prompt="", width=512, height=512, seed=-1, steps=30, guidance=7.5): config = load_config() if not api_token or api_token.strip() == "": - raise Exception("请输入有效的API Token") + api_token = load_api_token() + if not api_token or api_token.strip() == "": + raise Exception("请输入有效的API Token或确保已保存token") saved_token = load_api_token() if api_token != saved_token: if save_api_token(api_token): @@ -282,12 +285,13 @@ class ModelScopeImageEditNode: "default": "修改图片中的内容" }), "api_token": ("STRING", { - "default": saved_token, - "placeholder": "请输入您的魔搭API Token" + "default": "", + "placeholder": "请输入您的魔搭API Token", + "multiline": False }), }, "optional": { -"model": (config.get("image_edit_models", ["Qwen/Qwen-Image-Edit"]), { +"model": (config.get("image_edit_models", ["Qwen/Qwen-Image-Edit"]) + config.get("image_models", []), { "default": "Qwen/Qwen-Image-Edit" }), "negative_prompt": ("STRING", { @@ -323,6 +327,12 @@ class ModelScopeImageEditNode: "min": -1, "max": 2147483647 }), + "denoise": ("FLOAT", { + "default": 0.75, + "min": 0.00, + "max": 1.00, + "step": 0.01 + }), } } @@ -332,16 +342,19 @@ class ModelScopeImageEditNode: CATEGORY = "ModelScopeAPI" def edit_image(self, image, prompt, api_token, model="Qwen/Qwen-Image-Edit", negative_prompt="", - width=512, height=512, steps=30, guidance=3.5, seed=-1): + width=512, height=512, steps=30, guidance=3.5, seed=-1, denoise=0.75): config = load_config() if not api_token or api_token.strip() == "": - raise Exception("请输入有效的API Token") - saved_token = load_api_token() - if api_token != saved_token: - if save_api_token(api_token): - print("✅ API Token已自动保存") - else: - print("⚠️ API Token保存失败,但不影响当前使用") + api_token = load_api_token() + if not api_token or api_token.strip() == "": + raise Exception("请输入有效的API Token或确保已保存token") + else: + saved_token = load_api_token() + if api_token != saved_token: + if save_api_token(api_token): + print("✅ API Token已自动保存") + else: + print("⚠️ API Token保存失败,但不影响当前使用") try: # 将图像转换为临时文件并上传获取URL @@ -419,6 +432,10 @@ class ModelScopeImageEditNode: if seed != -1: payload['seed'] = seed print(f"🎲 随机种子: {seed}") + + if denoise != 0.75: + payload['denoise'] = denoise + print(f"🎚️ 降噪强度: {denoise}") headers = { 'Authorization': f'Bearer {api_token}', diff --git a/modelscope_text_node.py b/modelscope_text_node.py index 1797510..c0458dc 100644 --- a/modelscope_text_node.py +++ b/modelscope_text_node.py @@ -83,8 +83,9 @@ class ModelScopeTextNode: "default": config.get("default_user_prompt", "你好") }), "api_token": ("STRING", { - "default": saved_token, - "placeholder": "请输入您的魔搭API Token" + "default": "", + "placeholder": "请输入您的魔搭API Token", + "multiline": False }), }, "optional": { @@ -92,7 +93,7 @@ class ModelScopeTextNode: "multiline": True, "default": config.get("default_system_prompt", "You are a helpful assistant.") }), - "model": ("STRING", { + "model": (config.get("text_models", ["Qwen/Qwen3-Coder-480B-A35B-Instruct"]) + config.get("vision_models", []), { "default": config.get("default_text_model", "Qwen/Qwen3-Coder-480B-A35B-Instruct") }), "max_tokens": ("INT", { @@ -124,7 +125,9 @@ class ModelScopeTextNode: config = load_config() if not api_token or api_token.strip() == "": - raise Exception("请输入有效的API Token") + api_token = load_api_token() + if not api_token or api_token.strip() == "": + raise Exception("请输入有效的API Token或确保已保存token") saved_token = load_api_token() if api_token != saved_token: diff --git a/modelscope_vision_node.py b/modelscope_vision_node.py index 95c1f30..10d30e3 100644 --- a/modelscope_vision_node.py +++ b/modelscope_vision_node.py @@ -112,12 +112,13 @@ class ModelScopeVisionNode: "default": config.get("default_prompt", "描述这幅图") }), "api_token": ("STRING", { - "default": saved_token, - "placeholder": "请输入您的魔搭API Token" + "default": "", + "placeholder": "请输入您的魔搭API Token", + "multiline": False }), }, "optional": { - "model": ("STRING", { + "model": (config.get("vision_models", ["stepfun-ai/step3"]), { "default": config.get("default_vision_model", "stepfun-ai/step3") }), "max_tokens": ("INT", { @@ -146,7 +147,9 @@ class ModelScopeVisionNode: config = load_config() if not api_token or api_token.strip() == "": - raise Exception("请输入有效的API Token") + api_token = load_api_token() + if not api_token or api_token.strip() == "": + raise Exception("请输入有效的API Token或确保已保存token") saved_token = load_api_token() if api_token != saved_token: