Add Prepend/Append node.

This commit is contained in:
Allan Saddi
2024-11-21 02:36:10 -08:00
parent 6617531142
commit 8eaee8f69b
3 changed files with 152 additions and 115 deletions
+1 -1
View File
@@ -16,4 +16,4 @@ The YALLM nodes query a (vision) LLM, asking for a description of the loaded ima
## prompt-optimizer
Asks the LLM to optimize a prompt by word count while keeping descriptive details. Uses the "String Function" node from <https://github.com/pythongosssss/ComfyUI-Custom-Scripts/> in order to prepend some text to the original prompt in order to use it as a system prompt.
Asks the LLM to optimize a prompt by word count while keeping descriptive details. Uses the "Prepend/Append" node in order to prepend some text to the original prompt in order to use it as a system prompt.
+110 -114
View File
@@ -1,54 +1,7 @@
{
"last_node_id": 5,
"last_link_id": 4,
"last_node_id": 6,
"last_link_id": 7,
"nodes": [
{
"id": 4,
"type": "StringFunction|pysssss",
"pos": {
"0": 0,
"1": 350
},
"size": {
"0": 400,
"1": 244
},
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "text_b",
"type": "STRING",
"link": 2,
"widget": {
"name": "text_b"
},
"shape": 7
}
],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
3
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "StringFunction|pysssss"
},
"widgets_values": [
"append",
"no",
"Use the following text as reference:\n",
"",
"",
"Use the following text as reference:\n\"A beautiful, serene landscape unfolds before us, with rolling hills and lush greenery stretching as far as the eye can see. A delicate, antique glass bottle lies abandoned on a rocky outcropping, its transparent walls glowing with an ethereal light that seems almost otherworldly. The bottle appears to be filled with a deep, rich purple liquid that perfectly captures the color of a distant galaxy, with swirling clouds of gas and dust visible within. The surrounding landscape is bathed in a soft, golden light, with the warm rays of the sun casting a gentle glow across the scene. A few wispy clouds drift lazily across the sky, adding a sense of depth and atmosphere to the already breathtaking view. The overall mood is one of peaceful contemplation, as if the viewer has stumbled upon a secret, hidden world that exists just beyond the edge of reality.\""
]
},
{
"id": 5,
"type": "LLMTextLatch",
@@ -90,50 +43,6 @@
""
]
},
{
"id": 2,
"type": "LLMTextLatch",
"pos": {
"0": -450,
"1": 350
},
"size": {
"0": 400,
"1": 200
},
"flags": {},
"order": 0,
"mode": 0,
"inputs": [
{
"name": "text_input",
"type": "STRING",
"link": null,
"widget": {
"name": "text_input"
},
"shape": 7
}
],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [
2
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "LLMTextLatch"
},
"widgets_values": [
"\"A beautiful, serene landscape unfolds before us, with rolling hills and lush greenery stretching as far as the eye can see. A delicate, antique glass bottle lies abandoned on a rocky outcropping, its transparent walls glowing with an ethereal light that seems almost otherworldly. The bottle appears to be filled with a deep, rich purple liquid that perfectly captures the color of a distant galaxy, with swirling clouds of gas and dust visible within. The surrounding landscape is bathed in a soft, golden light, with the warm rays of the sun casting a gentle glow across the scene. A few wispy clouds drift lazily across the sky, adding a sense of depth and atmosphere to the already breathtaking view. The overall mood is one of peaceful contemplation, as if the viewer has stumbled upon a secret, hidden world that exists just beyond the edge of reality.\"",
true,
""
]
},
{
"id": 1,
"type": "LLMProvider",
@@ -146,7 +55,7 @@
"1": 106
},
"flags": {},
"order": 1,
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
@@ -203,7 +112,7 @@
{
"name": "system_prompt",
"type": "STRING",
"link": 3,
"link": 7,
"widget": {
"name": "system_prompt"
},
@@ -230,6 +139,93 @@
"Optimize the given text-to-image prompt for word count. Try to keep as many descriptive details as possible.\n\nOUTPUT ONLY THE MODIFIED PROMPT.",
""
]
},
{
"id": 2,
"type": "LLMTextLatch",
"pos": {
"0": -450,
"1": 350
},
"size": {
"0": 400,
"1": 200
},
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"name": "text_input",
"type": "STRING",
"link": null,
"widget": {
"name": "text_input"
},
"shape": 7
}
],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [
6
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "LLMTextLatch"
},
"widgets_values": [
"\"A beautiful, serene landscape unfolds before us, with rolling hills and lush greenery stretching as far as the eye can see. A delicate, antique glass bottle lies abandoned on a rocky outcropping, its transparent walls glowing with an ethereal light that seems almost otherworldly. The bottle appears to be filled with a deep, rich purple liquid that perfectly captures the color of a distant galaxy, with swirling clouds of gas and dust visible within. The surrounding landscape is bathed in a soft, golden light, with the warm rays of the sun casting a gentle glow across the scene. A few wispy clouds drift lazily across the sky, adding a sense of depth and atmosphere to the already breathtaking view. The overall mood is one of peaceful contemplation, as if the viewer has stumbled upon a secret, hidden world that exists just beyond the edge of reality.\"",
true,
""
]
},
{
"id": 6,
"type": "LLMPrependAppend",
"pos": {
"0": 0,
"1": 350
},
"size": [
400,
200
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "text_input",
"type": "STRING",
"link": 6,
"widget": {
"name": "text_input"
}
}
],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [
7
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "LLMPrependAppend"
},
"widgets_values": [
"",
"Use the following text as reference:\n",
""
]
}
],
"links": [
@@ -241,22 +237,6 @@
0,
"LLMMODEL"
],
[
2,
2,
0,
4,
0,
"STRING"
],
[
3,
4,
0,
3,
3,
"STRING"
],
[
4,
3,
@@ -264,16 +244,32 @@
5,
0,
"STRING"
],
[
6,
2,
0,
6,
0,
"STRING"
],
[
7,
6,
0,
3,
3,
"STRING"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.9090909090909091,
"scale": 0.7513148009015777,
"offset": [
111.69999999999979,
88.6999999999999
320.79927272727275,
220.6500000000004
]
}
},
+41
View File
@@ -114,6 +114,46 @@ MODELS = Models()
MODELS.load()
class LLMPrependAppend:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"text_input": ("STRING", {
"forceInput": True,
"multiline": True,
}),
},
"optional": {
"prefix": ("STRING", {
"multiline": True,
}),
"suffix": ("STRING", {
"multiline": True,
}),
}
}
TITLE = "Prepend/Append"
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("text",)
FUNCTION = "execute"
CATEGORY = "YALLM"
def execute(self, text_input, prefix=None, suffix=None):
if prefix is None:
prefix = ""
if suffix is None:
suffix = ""
text = prefix + text_input + suffix
return (text,)
class LLMTextLatch:
@classmethod
def INPUT_TYPES(cls):
@@ -545,6 +585,7 @@ async def llm_models(request: Request):
NODE_CLASS_MAPPINGS = {
"LLMPrependAppend": LLMPrependAppend,
"LLMTextLatch": LLMTextLatch,
"LLMProvider": LLMProvider,
"LLMModel": LLMModelNode,