diff --git a/openai_llm_node.py b/openai_llm_node.py index d24f3f0..12b3e52 100644 --- a/openai_llm_node.py +++ b/openai_llm_node.py @@ -19,7 +19,7 @@ class OpenAICompatibleLLM: """ def __init__(self): - pass + self.seed = None @classmethod def INPUT_TYPES(cls): @@ -47,6 +47,15 @@ class OpenAICompatibleLLM: "max": 2.0, "step": 0.01 }), + "seed": ("INT", { + "default": 0, + "min": 0, + "max": 0xffffffffffffffff, + "display": "number" + }), + "seed_control": (["fixed", "increment", "decrement", "randomize"], { + "default": "randomize" + }), }, "optional": { "image": ("IMAGE",), @@ -86,12 +95,29 @@ class OpenAICompatibleLLM: return f"data:image/png;base64,{img_base64}" - def generate(self, prompt, endpoint, model, max_tokens, temperature, + def generate(self, prompt, endpoint, model, max_tokens, temperature, seed, seed_control, image=None, api_key=None, image_detail="auto"): """ 调用 OpenAI 兼容的 API 生成响应 """ + # 处理 seed 控制 + if seed_control == "randomize": + seed = np.random.randint(0, 0xffffffffffffffff) + elif seed_control == "increment": + if self.seed is not None: + seed = (self.seed + 1) % 0xffffffffffffffff + else: + seed = seed + elif seed_control == "decrement": + if self.seed is not None: + seed = (self.seed - 1) % 0xffffffffffffffff + else: + seed = seed + # fixed 模式使用传入的 seed + + self.seed = seed + # 构建消息内容 if image is not None: # 如果有图片输入,使用视觉模型的格式 @@ -124,7 +150,8 @@ class OpenAICompatibleLLM: } ], "max_tokens": max_tokens, - "temperature": temperature + "temperature": temperature, + "seed": seed } # 设置请求头