Add seed and seed_control options to LLM node
Introduces 'seed' and 'seed_control' parameters to allow deterministic or controlled randomization in generation. The seed is now included in the API payload, and logic is added to handle fixed, increment, decrement, and randomize modes for seed management.
This commit is contained in:
+30
-3
@@ -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
|
||||
}
|
||||
|
||||
# 设置请求头
|
||||
|
||||
Reference in New Issue
Block a user