Add files via upload

This commit is contained in:
Creepybits
2025-11-11 17:49:00 +01:00
committed by GitHub
parent b10ae45f89
commit 41b25fe7b8
12 changed files with 7914 additions and 0 deletions
@@ -0,0 +1,198 @@
{
"id": "350ee962-41a0-456c-b8ff-e0a607498aaf",
"revision": 0,
"last_node_id": 6,
"last_link_id": 2,
"nodes": [
{
"id": 2,
"type": "ShowText|pysssss",
"pos": [
-7223.473874557648,
-4447.963540109907
],
"size": [
406.73455157661556,
336.4040379004505
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "text",
"type": "STRING",
"link": 2
}
],
"outputs": [
{
"name": "STRING",
"shape": 6,
"type": "STRING",
"links": null
}
],
"title": "CHARACTER DNA",
"properties": {
"cnr_id": "comfyui-custom-scripts",
"ver": "f2838ed5e59de4d73cde5c98354b87a8d3200190",
"Node name for S&R": "ShowText|pysssss",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {},
"version": "7.3"
}
},
"widgets_values": [
"Professional photography\na late 30s female cabaret singer dressed in {clothing}\n\n**Ethnicity:** Creole, warm olive skin tone with high, deliberate rouge on the cheekbones.\n**Face structure:** High, sharp cheekbones, prominent jawline, slightly flushed complexion.\n**Face shape:** Oval with a strong, defined chin.\n**Hair:** Black, waist-length, cascading, {hairstyle}\n**Eyes:** Large, almond-shaped, deep emerald green, intensely focused gaze.\n**Mouth:** Full, perfectly shaped lips painted deep crimson, holding a knowing, subtle smirk.\n**Body type:** Voluptuous, hourglass figure, emphasized by posture and powerful curves.\n**Accessories:** {accessories}"
],
"color": "#641f64",
"bgcolor": "#500b50",
"shape": 1
},
{
"id": 3,
"type": "MarkdownNote",
"pos": [
-9326.624402243648,
-4714.56868598223
],
"size": [
1531.3834217735675,
874.1282054514504
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "IMPORTANT INFORMATION",
"properties": {
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.3",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"## Welcome to the World Weaver: Character Vault!\n\nEver create the perfect character and then struggle to find their core prompt again? Say goodbye to messy text files and lost descriptions.\n\nThe Character Vault is your personal digital library for character DNA. It allows you to save and store your structured character descriptions so they can be recalled and used in your creations with ease.\n\n### How to Use:\n\n1. **Get the DNA:** Grab a structured character description (the kind generated by the `Prompt Helper` workflow is perfect!).\n2. **Paste the Description:** Paste the full text into the large `text` field at the top of the `Character Vault` node.\n3. **Name Your Character:** In the `character_name` field, give your character a simple, unique name (e.g., \"Linda\", \"Darius\"). This will be their filename.\n4. **Save to the Database:** Set the `save_to_db` toggle to **`true`**.\n5. **Queue Prompt ONCE:** Run the workflow one time. This will save the text file to the database.\n6. **IMPORTANT: Set it Back!** After saving, you **must** set the `save_to_db` toggle back to **`false`** to prevent it from overwriting the file on every run.\n\n### To use the Gemini node:\n\n* **Get Your Free API Key:** The use the Gemini Node you have to get an API key from Google. The API key is free, and comes with a generous amount of free API calls. [Get Gemini API Key Here](https://aistudio.google.com/api-keys)\n\n### The Bigger Picture: How to Use Your Saved Characters\n\nSo you've saved your character's DNA... now what? The Character Vault works hand-in-hand with its companion node: the **`Character Select`** node.\n\n#### The `Character Select` Node\n\nIn the full **World Weaver System** workflow, you'll find the purple `Character Select` node. This is the control panel for your entire cast of characters:\n\n1. Simply select the name of your saved character from the `character_name` dropdown list.\n2. The node will instantly load their full \"DNA\" from the database you've created with this Vault.\n3. You can then add clothing, accessories, and hairstyles in the other fields to dress your character for their scene!\n\nThe `Character Vault` builds the library; the `Character Select` node lets you check out the books.\n\n### Visit My Gallery:\n\n* [Image Gallery](https://zanno.se/gallery/)\n* [Video Gallery](https://zanno.se/video/)\n\n\n### Dive Deeper: The Full Ecosystem\n\n* Watch the full video tutorial series to see how this Vault powers the main system and makes character switching effortless: [World Weaver Masterclass](https://www.youtube.com/playlist?list=PLabSj7CHUKn3yK8IOmKrzwxv8ZDkpM6TT)\n* Read the core concepts behind the World Weaver to understand how it all works: [Create Character Consistency Without LoRa, FaceSwap, IP Adapter or ControlNet](https://zanno.se/creating-consistent-ai-characters-without-loras-or-reactor/)\n\nHappy creating!\n\n**- Creepybits & Nova**"
],
"color": "#641f64",
"bgcolor": "#500b50",
"shape": 1
},
{
"id": 5,
"type": "WW_CharacterSelect",
"pos": [
-7752.638529648376,
-4712.235016443093
],
"size": [
400,
200
],
"flags": {},
"order": 1,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": null
}
],
"properties": {
"aux_id": "Creepybits/World_weaver",
"ver": "93b51adef4bc194ead42d0518f6f5fbc1cad17d7",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {}
},
"Node name for S&R": "WW_CharacterSelect"
},
"widgets_values": [
"none",
"business casual",
"",
"no accessories"
],
"color": "#500b50",
"bgcolor": "#0b500b",
"shape": 1
},
{
"id": 6,
"type": "WW_CharacterVault",
"pos": [
-7749.299352755483,
-4458.457572583002
],
"size": [
435.06135737540717,
345.25419484097165
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [
2
]
}
],
"properties": {
"aux_id": "Creepybits/World_weaver",
"ver": "93b51adef4bc194ead42d0518f6f5fbc1cad17d7",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {}
},
"Node name for S&R": "WW_CharacterVault"
},
"widgets_values": [
"Professional photography\na late 30s female cabaret singer dressed in {clothing}\n\n**Ethnicity:** Creole, warm olive skin tone with high, deliberate rouge on the cheekbones.\n**Face structure:** High, sharp cheekbones, prominent jawline, slightly flushed complexion.\n**Face shape:** Oval with a strong, defined chin.\n**Hair:** Black, waist-length, cascading, {hairstyle}\n**Eyes:** Large, almond-shaped, deep emerald green, intensely focused gaze.\n**Mouth:** Full, perfectly shaped lips painted deep crimson, holding a knowing, subtle smirk.\n**Body type:** Voluptuous, hourglass figure, emphasized by posture and powerful curves.\n**Accessories:** {accessories}",
"",
true
],
"color": "#500b50",
"bgcolor": "#0b500b",
"shape": 1
}
],
"links": [
[
2,
6,
0,
2,
0,
"STRING"
]
],
"groups": [],
"config": {},
"extra": {
"ue_links": [],
"ds": {
"scale": 0.5989500000000002,
"offset": [
9747.796723153679,
5326.64356473594
]
},
"links_added_by_ue": [],
"frontendVersion": "1.28.7",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

@@ -0,0 +1,283 @@
{
"id": "025c1b02-0f1a-437b-94fe-70842c4c54bb",
"revision": 0,
"last_node_id": 7,
"last_link_id": 6,
"nodes": [
{
"id": 3,
"type": "LoadImage",
"pos": [
-9083.848298718225,
-3973.238021758545
],
"size": [
393.5495450371491,
479.2892561983472
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
5
]
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.66",
"Node name for S&R": "LoadImage",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {},
"version": "7.3"
}
},
"widgets_values": [
"nsfw_303.png",
"image"
],
"color": "#641f64",
"bgcolor": "#500b50",
"shape": 1
},
{
"id": 4,
"type": "ShowText|pysssss",
"pos": [
-7722.9844428683,
-3957.3336551826487
],
"size": [
491.0526090329995,
463.4171203312276
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "text",
"type": "STRING",
"link": 6
}
],
"outputs": [
{
"name": "STRING",
"shape": 6,
"type": "STRING",
"links": null
}
],
"title": "CHARACTER DNA",
"properties": {
"cnr_id": "comfyui-custom-scripts",
"ver": "f2838ed5e59de4d73cde5c98354b87a8d3200190",
"Node name for S&R": "ShowText|pysssss",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {},
"version": "7.3"
}
},
"widgets_values": [],
"color": "#1f641f",
"bgcolor": "#0b500b",
"shape": 1
},
{
"id": 5,
"type": "MarkdownNote",
"pos": [
-9071.394113774353,
-4680.7602124517525
],
"size": [
1827.4120243860252,
659.9768314811372
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "IMPORTANT INFORMATION",
"properties": {
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.3",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"## Welcome to the World Weaver: Prompt Helper!\n\nHello there! You've just loaded up the first step in creating truly consistent AI characters. Tired of messy, unstructured prompts? This workflow is your new best friend.\n\nIts purpose is simple but powerful: to analyze an input image and extract the core \"DNA\" of the person in it, formatting it into a clean, structured description that you can use as the foundation for your character.\n\n### How to Use:\n\n1. **Load Your Image:** Choose a clear portrait of the character you want to analyze in the `Load Image` node.\n2. **Connect the Nodes:** Make sure the `Load Image` node is connected to the `Master Key` node.\n3. **Generate the DNA:** Queue the prompt! The `Gemini 2.5 FlashPro API` node will analyze the image and the `Master Key` will structure the output.\n4. **Review the Magic:** The `Show Text` node will display your new, perfectly structured character description. You can now copy this text for the next step.\n\n### To use the Gemini node:\n\n* **Get Your Free API Key:** The use the Gemini Node you have to get an API key from Google. The API key is free, and comes with a generous amount of free API calls. [Get Gemini API Key Here](https://aistudio.google.com/api-keys)\n\n### The Bigger Picture: This is Just the Beginning!\n\nThis node is the \"brain scanner\"—it's fantastic at capturing a character's essence.\n\nBut to bring that character to life in new scenes, poses, and outfits, you need the \"cloning facility.\" That's where the full **World Weaver System** comes in. This Prompt Helper is a companion to that larger, more powerful (and still completely free!) workflow.\n\n### Visit My Gallery:\n\n* [Image Gallery](https://zanno.se/gallery/)\n* [Video Gallery](https://zanno.se/video/)\n\n### Dive Deeper: The Full Ecosystem\n\n* **Watch the full video tutorial series** to see how this node connects to the main system and unlocks true character consistency:\n [World Weaver Masterclass](https://www.youtube.com/playlist?list=PLabSj7CHUKn3yK8IOmKrzwxv8ZDkpM6TT)\n\n* **Read the core concepts behind the World Weaver** to understand how it all works:\n [Create Character Consistency Without LoRa, FaceSwap, IP Adapter or ControlNet](https://zanno.se/creating-consistent-ai-characters-without-loras-or-reactor/)\n\nHappy creating!\n\n**- Creepybits & Nova**"
],
"color": "#1f641f",
"bgcolor": "#0b500b",
"shape": 1
},
{
"id": 6,
"type": "WW_MasterKey",
"pos": [
-8668.456738832754,
-3970.2654905652385
],
"size": [
480.2807367187597,
474.71064595950475
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [
4
]
}
],
"properties": {
"aux_id": "Creepybits/World_weaver",
"ver": "93b51adef4bc194ead42d0518f6f5fbc1cad17d7",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {}
},
"Node name for S&R": "WW_MasterKey"
},
"widgets_values": [
"Create a prompt that focus on the features and structures of the person in the input image. Use the template below and replace the \"##\" with how old you estimate the person to be. Fill out the rest of the template accurately, for example: \n\nAt **Ethnicity:** you fill in the ethnicity that fits best, for example \"Latina, Caucasian, Asian\" etc. \nAt **Face structure:** you will fill in the facial structure that fits best for example \"high cheekbones\".\n\nFor ethnicity you must fill in at least one answer, and can fill in more if needed.\n\nFor the other categories you must fill in between 2-4 features per category.\n\n**Professional studio photography**\n\n## year old female influencer.\n\n**Ethnicity:** \n**Face structure:** \n**Face shape:** \n**Hair:** \n**Eyes:** \n**Mouth:** \n**Body type:**\n*Accessories:**"
],
"color": "#500b50",
"bgcolor": "#0b500b",
"shape": 1
},
{
"id": 7,
"type": "WW_GeminiAPI",
"pos": [
-8158.924937970892,
-3961.509872716848
],
"size": [
406.27193255615293,
454.92107393799415
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "image",
"shape": 7,
"type": "IMAGE",
"link": 5
},
{
"name": "system_prompt",
"type": "STRING",
"widget": {
"name": "system_prompt"
},
"link": 4
}
],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [
6
]
}
],
"properties": {
"aux_id": "Creepybits/World_weaver",
"ver": "93b51adef4bc194ead42d0518f6f5fbc1cad17d7",
"ue_properties": {
"widget_ue_connectable": {},
"input_ue_unconnectable": {}
},
"Node name for S&R": "WW_GeminiAPI"
},
"widgets_values": [
"",
"gemini-2.0-flash",
1024,
0.9,
0.9,
0,
"randomize",
50,
"",
"C:\\AI\\Comfy\\ComfyUI\\custom_nodes\\Creepy_nodes\\assets\\scripts\\gemini_api_key.txt",
"None",
"disable",
"Block None"
],
"color": "#500b50",
"bgcolor": "#0b500b",
"shape": 1
}
],
"links": [
[
4,
6,
0,
7,
1,
"STRING"
],
[
5,
3,
0,
7,
0,
"IMAGE"
],
[
6,
7,
0,
4,
0,
"STRING"
]
],
"groups": [],
"config": {},
"extra": {
"ue_links": [],
"ds": {
"scale": 0.7972024500000005,
"offset": [
9333.36939684079,
4134.050737336617
]
},
"links_added_by_ue": [],
"frontendVersion": "1.28.7",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 700 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB