BleynChannel

Character Design Sheet V2

Sep 25th, 2026
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 102.88 KB | Source Code | 0 0
  1. {
  2.   "id": "344295a2-49c3-40b6-8678-9f86aa747e72",
  3.   "revision": 0,
  4.   "last_node_id": 598,
  5.   "last_link_id": 1031,
  6.   "nodes": [
  7.     {
  8.       "id": 577,
  9.       "type": "ResolutionSelector",
  10.       "pos": [
  11.         -141.25029549395242,
  12.         3053.636052700748
  13.       ],
  14.       "size": [
  15.         273.0476514238372,
  16.         190.00014358519093
  17.       ],
  18.       "flags": {},
  19.       "order": 0,
  20.       "mode": 0,
  21.       "showAdvanced": true,
  22.       "inputs": [],
  23.       "outputs": [
  24.         {
  25.           "name": "width",
  26.           "type": "INT",
  27.           "links": [
  28.             1008
  29.           ]
  30.         },
  31.         {
  32.           "name": "height",
  33.           "type": "INT",
  34.           "links": [
  35.             1009
  36.           ]
  37.         }
  38.       ],
  39.       "properties": {
  40.         "cnr_id": "comfy-core",
  41.         "ver": "0.36.0",
  42.         "Node name for S&R": "ResolutionSelector"
  43.       },
  44.       "widgets_values": [
  45.         "3:2 (Photo)",
  46.         3.4,
  47.         32
  48.       ],
  49.       "widgets_values_named": {
  50.         "aspect_ratio": "3:2 (Photo)",
  51.         "megapixels": 3.4,
  52.         "multiple": 32
  53.       }
  54.     },
  55.     {
  56.       "id": 578,
  57.       "type": "99ba1998-bf35-4a70-b4e7-47d3c8f10d3d",
  58.       "pos": [
  59.         650.0574490218758,
  60.         2593.8400534128887
  61.       ],
  62.       "size": [
  63.         422.2893616112114,
  64.         434.00902358598444
  65.       ],
  66.       "flags": {},
  67.       "order": 12,
  68.       "mode": 0,
  69.       "inputs": [
  70.         {
  71.           "label": "positive_prompt",
  72.           "name": "prompt",
  73.           "type": "STRING",
  74.           "widget": {
  75.             "name": "prompt"
  76.           },
  77.           "link": 1007
  78.         },
  79.         {
  80.           "label": "steps",
  81.           "name": "steps",
  82.           "type": "INT",
  83.           "widget": {
  84.             "name": "steps"
  85.           },
  86.           "link": null
  87.         },
  88.         {
  89.           "name": "width",
  90.           "type": "INT",
  91.           "widget": {
  92.             "name": "width"
  93.           },
  94.           "link": 1008
  95.         },
  96.         {
  97.           "name": "height",
  98.           "type": "INT",
  99.           "widget": {
  100.             "name": "height"
  101.           },
  102.           "link": 1009
  103.         },
  104.         {
  105.           "label": "sampler",
  106.           "name": "scheduler",
  107.           "type": "COMBO",
  108.           "widget": {
  109.             "name": "scheduler"
  110.           },
  111.           "link": null
  112.         },
  113.         {
  114.           "label": "scheduler",
  115.           "name": "scheduler_1",
  116.           "type": "COMBO",
  117.           "widget": {
  118.             "name": "scheduler_1"
  119.           },
  120.           "link": null
  121.         },
  122.         {
  123.           "label": "image_1",
  124.           "name": "images.image_1",
  125.           "shape": 7,
  126.           "type": "IMAGE",
  127.           "link": 1010
  128.         }
  129.       ],
  130.       "outputs": [
  131.         {
  132.           "name": "IMAGE",
  133.           "type": "IMAGE",
  134.           "links": [
  135.             1011,
  136.             1017
  137.           ]
  138.         }
  139.       ],
  140.       "properties": {
  141.         "cnr_id": "comfy-core",
  142.         "ver": "0.36.0",
  143.         "previewExposures": []
  144.       },
  145.       "widgets_values": [
  146.         "",
  147.         1536,
  148.         25,
  149.         1024,
  150.         1024,
  151.         "res_2m",
  152.         "beta",
  153.         42,
  154.         "qwen/qwen_image_2.1_bf16.safetensors",
  155.         "qwen/qwen3vl_8b_bf16.safetensors",
  156.         "qwen/qwen_image_2.1_vae_bf16.safetensors"
  157.       ],
  158.       "widgets_values_named": {
  159.         "prompt": "",
  160.         "resolution": 1536,
  161.         "steps": 25,
  162.         "width": 1024,
  163.         "height": 1024,
  164.         "scheduler": "res_2m",
  165.         "scheduler_1": "beta",
  166.         "seed": 42,
  167.         "unet_name": "qwen/qwen_image_2.1_bf16.safetensors",
  168.         "clip_name": "qwen/qwen3vl_8b_bf16.safetensors",
  169.         "vae_name": "qwen/qwen_image_2.1_vae_bf16.safetensors"
  170.       }
  171.     },
  172.     {
  173.       "id": 579,
  174.       "type": "SaveImageAdvanced",
  175.       "pos": [
  176.         1120.0574490218758,
  177.         2593.8400534128887
  178.       ],
  179.       "size": [
  180.         710,
  181.         760
  182.       ],
  183.       "flags": {},
  184.       "order": 13,
  185.       "mode": 0,
  186.       "inputs": [
  187.         {
  188.           "name": "images",
  189.           "type": "IMAGE",
  190.           "link": 1011
  191.         }
  192.       ],
  193.       "outputs": [
  194.         {
  195.           "name": "images",
  196.           "type": "IMAGE",
  197.           "links": []
  198.         }
  199.       ],
  200.       "properties": {
  201.         "cnr_id": "comfy-core",
  202.         "ver": "0.36.0",
  203.         "Node name for S&R": "SaveImageAdvanced"
  204.       },
  205.       "widgets_values": [
  206.         "Content/Qwen/Character_Sheet/Simplify",
  207.         "png",
  208.         "8-bit",
  209.         "sRGB"
  210.       ],
  211.       "widgets_values_named": {
  212.         "filename_prefix": "Content/Qwen/Character_Sheet/Simplify",
  213.         "format": "png",
  214.         "format.bit_depth": "8-bit",
  215.         "format.input_color_space": "sRGB"
  216.       }
  217.     },
  218.     {
  219.       "id": 580,
  220.       "type": "LoadImage",
  221.       "pos": [
  222.         -598.5491962821536,
  223.         2597.382654652919
  224.       ],
  225.       "size": [
  226.         429.8978020595171,
  227.         465.253014605293
  228.       ],
  229.       "flags": {},
  230.       "order": 1,
  231.       "mode": 0,
  232.       "inputs": [
  233.         {
  234.           "label": "reference_image",
  235.           "name": "image",
  236.           "type": "COMBO",
  237.           "widget": {
  238.             "name": "image"
  239.           },
  240.           "link": null
  241.         }
  242.       ],
  243.       "outputs": [
  244.         {
  245.           "name": "IMAGE",
  246.           "type": "IMAGE",
  247.           "links": [
  248.             1012,
  249.             1016
  250.           ]
  251.         },
  252.         {
  253.           "name": "MASK",
  254.           "type": "MASK",
  255.           "links": []
  256.         }
  257.       ],
  258.       "properties": {
  259.         "cnr_id": "comfy-core",
  260.         "ver": "0.36.0",
  261.         "Node name for S&R": "LoadImage"
  262.       },
  263.       "widgets_values": [
  264.         "ComfyUI_00251_.png",
  265.         "image"
  266.       ],
  267.       "widgets_values_named": {
  268.         "image": "ComfyUI_00251_.png",
  269.         "upload": "image"
  270.       }
  271.     },
  272.     {
  273.       "id": 581,
  274.       "type": "ImageResizeKJv2",
  275.       "pos": [
  276.         -138.42670834930163,
  277.         2595.7720237237054
  278.       ],
  279.       "size": [
  280.         270,
  281.         336
  282.       ],
  283.       "flags": {},
  284.       "order": 9,
  285.       "mode": 0,
  286.       "inputs": [
  287.         {
  288.           "name": "image",
  289.           "type": "IMAGE",
  290.           "link": 1012
  291.         },
  292.         {
  293.           "name": "mask",
  294.           "shape": 7,
  295.           "type": "MASK",
  296.           "link": null
  297.         }
  298.       ],
  299.       "outputs": [
  300.         {
  301.           "name": "IMAGE",
  302.           "type": "IMAGE",
  303.           "links": [
  304.             1010,
  305.             1013
  306.           ]
  307.         },
  308.         {
  309.           "name": "width",
  310.           "type": "INT",
  311.           "links": []
  312.         },
  313.         {
  314.           "name": "height",
  315.           "type": "INT",
  316.           "links": []
  317.         },
  318.         {
  319.           "name": "mask",
  320.           "type": "MASK",
  321.           "links": []
  322.         }
  323.       ],
  324.       "properties": {
  325.         "cnr_id": "comfyui-kjnodes",
  326.         "ver": "d3cfe21625e5170126ce06fbfcfe1d88108688c3",
  327.         "Node name for S&R": "ImageResizeKJv2"
  328.       },
  329.       "widgets_values": [
  330.         1536,
  331.         1536,
  332.         "lanczos",
  333.         "total_pixels",
  334.         "0, 0, 0",
  335.         "center",
  336.         8,
  337.         "gpu"
  338.       ],
  339.       "widgets_values_named": {
  340.         "width": 1536,
  341.         "height": 1536,
  342.         "upscale_method": "lanczos",
  343.         "keep_proportion": "total_pixels",
  344.         "pad_color": "0, 0, 0",
  345.         "crop_position": "center",
  346.         "divisible_by": 8,
  347.         "device": "gpu"
  348.       }
  349.     },
  350.     {
  351.       "id": 582,
  352.       "type": "7156bd05-9291-46df-8053-b02d1f088ec6",
  353.       "pos": [
  354.         193.97762894015204,
  355.         2594.6309208073035
  356.       ],
  357.       "size": [
  358.         406.3432309837556,
  359.         266.00711151103326
  360.       ],
  361.       "flags": {},
  362.       "order": 10,
  363.       "mode": 0,
  364.       "inputs": [
  365.         {
  366.           "name": "image",
  367.           "shape": 7,
  368.           "type": "IMAGE",
  369.           "link": 1013
  370.         },
  371.         {
  372.           "label": "character_description",
  373.           "name": "string_b",
  374.           "type": "STRING",
  375.           "widget": {
  376.             "name": "string_b"
  377.           },
  378.           "link": 1014
  379.         },
  380.         {
  381.           "label": "temperature",
  382.           "name": "sampling_mode.temperature",
  383.           "type": "FLOAT",
  384.           "widget": {
  385.             "name": "sampling_mode.temperature"
  386.           },
  387.           "link": null
  388.         },
  389.         {
  390.           "label": "seed",
  391.           "name": "sampling_mode.seed",
  392.           "type": "INT",
  393.           "widget": {
  394.             "name": "sampling_mode.seed"
  395.           },
  396.           "link": null
  397.         }
  398.       ],
  399.       "outputs": [
  400.         {
  401.           "name": "prompt",
  402.           "type": "STRING",
  403.           "links": [
  404.             1015
  405.           ]
  406.         }
  407.       ],
  408.       "properties": {
  409.         "cnr_id": "comfy-core",
  410.         "ver": "0.37.0",
  411.         "previewExposures": []
  412.       },
  413.       "widgets_values": [
  414.         "",
  415.         "qwen/qwen3.5_9b_qwen_image_2.1_pe_i2i.int8_convrot.safetensors",
  416.         32768,
  417.         0.8,
  418.         0
  419.       ],
  420.       "widgets_values_named": {
  421.         "string_b": "",
  422.         "clip_name": "qwen/qwen3.5_9b_qwen_image_2.1_pe_i2i.int8_convrot.safetensors",
  423.         "max_length": 32768,
  424.         "sampling_mode.temperature": 0.8,
  425.         "sampling_mode.seed": 0
  426.       },
  427.       "color": "#232",
  428.       "bgcolor": "#353"
  429.     },
  430.     {
  431.       "id": 583,
  432.       "type": "PreviewAny",
  433.       "pos": [
  434.         192.33839605722346,
  435.         2933.4120799469256
  436.       ],
  437.       "size": [
  438.         407.6615984970009,
  439.         459.6649548370541
  440.       ],
  441.       "flags": {},
  442.       "order": 11,
  443.       "mode": 0,
  444.       "inputs": [
  445.         {
  446.           "name": "source",
  447.           "type": "*",
  448.           "link": 1015
  449.         }
  450.       ],
  451.       "outputs": [
  452.         {
  453.           "name": "STRING",
  454.           "type": "STRING",
  455.           "links": [
  456.             1007
  457.           ]
  458.         }
  459.       ],
  460.       "properties": {
  461.         "cnr_id": "comfy-core",
  462.         "ver": "0.37.0",
  463.         "Node name for S&R": "PreviewAny"
  464.       },
  465.       "widgets_values": [],
  466.       "widgets_values_named": {}
  467.     },
  468.     {
  469.       "id": 584,
  470.       "type": "MarkdownNote",
  471.       "pos": [
  472.         648.1113827066304,
  473.         3091.9959711179554
  474.       ],
  475.       "size": [
  476.         419.0404614730716,
  477.         288.78660707021027
  478.       ],
  479.       "flags": {},
  480.       "order": 2,
  481.       "mode": 0,
  482.       "inputs": [],
  483.       "outputs": [],
  484.       "title": "Recommendations for generation",
  485.       "properties": {},
  486.       "widgets_values": [
  487.         "### 1. **Use f32/f16/bf16 quanta for clip.** This helps achieve the highest quality and prompt accuracy. According to my tests, int8 and other quanta create significantly more artifacts, and image quality becomes significantly worse. **Don't skimp on your SSD space and install [qwen3vl_8b_bf16.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/text_encoders/qwen3vl_8b_bf16.safetensors).**\n\n*And yes, you can use Qwen Image 2.1 with any quantum model, starting from int8. Reducing the quantum of the main model has almost no impact on the final generation, unlike clip.*\n\n### 2. For better image quality and reduced artifacts, use `res_2m beta`. I haven't done extensive quality tests for each sampler and scheduler, but this combination worked best for me.\n\n### 3. You can increase the value of the 'resolution' parameter. This parameter allows the clip model to better capture fine details in the reference image by reducing the processing speed of conditioning. The best balance is achieved with a value of 1536."
  488.       ],
  489.       "widgets_values_named": {
  490.         "text": "### 1. **Use f32/f16/bf16 quanta for clip.** This helps achieve the highest quality and prompt accuracy. According to my tests, int8 and other quanta create significantly more artifacts, and image quality becomes significantly worse. **Don't skimp on your SSD space and install [qwen3vl_8b_bf16.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/text_encoders/qwen3vl_8b_bf16.safetensors).**\n\n*And yes, you can use Qwen Image 2.1 with any quantum model, starting from int8. Reducing the quantum of the main model has almost no impact on the final generation, unlike clip.*\n\n### 2. For better image quality and reduced artifacts, use `res_2m beta`. I haven't done extensive quality tests for each sampler and scheduler, but this combination worked best for me.\n\n### 3. You can increase the value of the 'resolution' parameter. This parameter allows the clip model to better capture fine details in the reference image by reducing the processing speed of conditioning. The best balance is achieved with a value of 1536."
  491.       },
  492.       "color": "#432",
  493.       "bgcolor": "#653"
  494.     },
  495.     {
  496.       "id": 585,
  497.       "type": "MarkdownNote",
  498.       "pos": [
  499.         -144.12161465440863,
  500.         3311.4291613400783
  501.       ],
  502.       "size": [
  503.         267.25180810410893,
  504.         110.61688401201403
  505.       ],
  506.       "flags": {},
  507.       "order": 3,
  508.       "mode": 0,
  509.       "inputs": [],
  510.       "outputs": [],
  511.       "title": "Recommended resolution",
  512.       "properties": {},
  513.       "widgets_values": [
  514.         "- 1.0 megapixels - Fast\n- 3.4 megapixels - Balanced\n- 6.0 megapixels - Best Quality"
  515.       ],
  516.       "widgets_values_named": {
  517.         "text": "- 1.0 megapixels - Fast\n- 3.4 megapixels - Balanced\n- 6.0 megapixels - Best Quality"
  518.       },
  519.       "color": "#432",
  520.       "bgcolor": "#653"
  521.     },
  522.     {
  523.       "id": 586,
  524.       "type": "MarkdownNote",
  525.       "pos": [
  526.         193.22881355147138,
  527.         2374.810025202991
  528.       ],
  529.       "size": [
  530.         404.1646687726717,
  531.         174.69091797493272
  532.       ],
  533.       "flags": {},
  534.       "order": 4,
  535.       "mode": 0,
  536.       "inputs": [],
  537.       "outputs": [],
  538.       "title": "About Prompt Maker",
  539.       "properties": {},
  540.       "widgets_values": [
  541.         "The PE model is prone to a lot of thought—this helps it build high-quality prompts. This causes the issue of insufficient context window. Set max_tokens and ctx to 32768 tokens to avoid errors due to insufficient context window.\nIf, like me, you're having trouble running PE without enough VRAM, change the gpu_laters value to anything else. The lower the value, the more VRAM is freed up for other tasks. For my device (8GB VRAM), I set it to 26.\n\n---\n\nIf you don't want to use ComfyUI Qwen 3.5 PE to generate the hint, you can go to this subgraph and replace the \"Generate Text\" node with any other one."
  542.       ],
  543.       "widgets_values_named": {
  544.         "text": "The PE model is prone to a lot of thought—this helps it build high-quality prompts. This causes the issue of insufficient context window. Set max_tokens and ctx to 32768 tokens to avoid errors due to insufficient context window.\nIf, like me, you're having trouble running PE without enough VRAM, change the gpu_laters value to anything else. The lower the value, the more VRAM is freed up for other tasks. For my device (8GB VRAM), I set it to 26.\n\n---\n\nIf you don't want to use ComfyUI Qwen 3.5 PE to generate the hint, you can go to this subgraph and replace the \"Generate Text\" node with any other one."
  545.       },
  546.       "color": "#432",
  547.       "bgcolor": "#653"
  548.     },
  549.     {
  550.       "id": 587,
  551.       "type": "ImageStitch",
  552.       "pos": [
  553.         1558.7054175365454,
  554.         2357.208564751725
  555.       ],
  556.       "size": [
  557.         270,
  558.         150
  559.       ],
  560.       "flags": {},
  561.       "order": 14,
  562.       "mode": 0,
  563.       "showAdvanced": true,
  564.       "inputs": [
  565.         {
  566.           "name": "image1",
  567.           "type": "IMAGE",
  568.           "link": 1016
  569.         },
  570.         {
  571.           "name": "image2",
  572.           "shape": 7,
  573.           "type": "IMAGE",
  574.           "link": 1017
  575.         }
  576.       ],
  577.       "outputs": [
  578.         {
  579.           "name": "IMAGE",
  580.           "type": "IMAGE",
  581.           "links": [
  582.             1018
  583.           ]
  584.         }
  585.       ],
  586.       "properties": {
  587.         "cnr_id": "comfy-core",
  588.         "ver": "0.37.0",
  589.         "Node name for S&R": "ImageStitch"
  590.       },
  591.       "widgets_values": [
  592.         "right",
  593.         true,
  594.         16,
  595.         "black"
  596.       ],
  597.       "widgets_values_named": {
  598.         "direction": "right",
  599.         "match_image_size": true,
  600.         "spacing_width": 16,
  601.         "spacing_color": "black"
  602.       }
  603.     },
  604.     {
  605.       "id": 588,
  606.       "type": "PreviewImage",
  607.       "pos": [
  608.         1864.5761529722033,
  609.         2589.6550924588328
  610.       ],
  611.       "size": [
  612.         924.5922806559618,
  613.         762.2012090112747
  614.       ],
  615.       "flags": {},
  616.       "order": 15,
  617.       "mode": 0,
  618.       "inputs": [
  619.         {
  620.           "name": "images",
  621.           "type": "IMAGE",
  622.           "link": 1018
  623.         }
  624.       ],
  625.       "outputs": [
  626.         {
  627.           "name": "images",
  628.           "type": "IMAGE",
  629.           "links": []
  630.         }
  631.       ],
  632.       "properties": {
  633.         "cnr_id": "comfy-core",
  634.         "ver": "0.37.0",
  635.         "Node name for S&R": "PreviewImage"
  636.       }
  637.     },
  638.     {
  639.       "id": 589,
  640.       "type": "PrimitiveStringMultiline",
  641.       "pos": [
  642.         -597.0171018032268,
  643.         3106.991490911316
  644.       ],
  645.       "size": [
  646.         426.85413115009527,
  647.         396.49111069003163
  648.       ],
  649.       "flags": {},
  650.       "order": 5,
  651.       "mode": 0,
  652.       "inputs": [
  653.         {
  654.           "label": "character_description",
  655.           "name": "value",
  656.           "type": "STRING",
  657.           "widget": {
  658.             "name": "value"
  659.           },
  660.           "link": null
  661.         }
  662.       ],
  663.       "outputs": [
  664.         {
  665.           "name": "STRING",
  666.           "type": "STRING",
  667.           "links": [
  668.             1014
  669.           ]
  670.         }
  671.       ],
  672.       "title": "Character Description (Optional)",
  673.       "properties": {
  674.         "cnr_id": "comfy-core",
  675.         "ver": "0.37.0",
  676.         "Node name for S&R": "PrimitiveStringMultiline"
  677.       },
  678.       "widgets_values": [
  679.         "Ayaka is a dreamy, fragile teenage girl with a slender, graceful frame and fair, porcelain skin. Her figure is slender, with slender arms and legs and a small bust, accentuating her youth. Long black hair with vibrant rainbow highlights falls past her shoulders, framing a face with soft features and large amber eyes. She wears a loose, oversized white shirt that conceals her curves, a short, dark pleated skirt, white mid-calf socks, and chunky white sneakers, creating a contrast between her fragility and her voluminous clothing."
  680.       ],
  681.       "widgets_values_named": {
  682.         "value": "Ayaka is a dreamy, fragile teenage girl with a slender, graceful frame and fair, porcelain skin. Her figure is slender, with slender arms and legs and a small bust, accentuating her youth. Long black hair with vibrant rainbow highlights falls past her shoulders, framing a face with soft features and large amber eyes. She wears a loose, oversized white shirt that conceals her curves, a short, dark pleated skirt, white mid-calf socks, and chunky white sneakers, creating a contrast between her fragility and her voluminous clothing."
  683.       }
  684.     },
  685.     {
  686.       "id": 590,
  687.       "type": "MarkdownNote",
  688.       "pos": [
  689.         -1035.6694460742572,
  690.         3109.0552110187423
  691.       ],
  692.       "size": [
  693.         412.03066160437896,
  694.         194.17069631535415
  695.       ],
  696.       "flags": {},
  697.       "order": 6,
  698.       "mode": 0,
  699.       "inputs": [],
  700.       "outputs": [],
  701.       "title": "About Character Description",
  702.       "properties": {},
  703.       "widgets_values": [
  704.         "This parameter is optional and serves to describe the character—their personality, habits, what they usually do, their history, etc. This way, PE will know much more about your character and will be able to produce a result that is much more consistent with your wishes.\nPE never completes your image – if your character isn't shown in full height, PE won't complete it automatically. However, there is an exception: if you include body characteristics in the character description parameter, PE will be able to determine and complete your final prompt. You can find usage examples on this workflow's page on CivitAI."
  705.       ],
  706.       "widgets_values_named": {
  707.         "text": "This parameter is optional and serves to describe the character—their personality, habits, what they usually do, their history, etc. This way, PE will know much more about your character and will be able to produce a result that is much more consistent with your wishes.\nPE never completes your image – if your character isn't shown in full height, PE won't complete it automatically. However, there is an exception: if you include body characteristics in the character description parameter, PE will be able to determine and complete your final prompt. You can find usage examples on this workflow's page on CivitAI."
  708.       },
  709.       "color": "#432",
  710.       "bgcolor": "#653"
  711.     },
  712.     {
  713.       "id": 594,
  714.       "type": "MarkdownNote",
  715.       "pos": [
  716.         -1091.549111458042,
  717.         2357.0056235963193
  718.       ],
  719.       "size": [
  720.         467.73620766484567,
  721.         691.0586325270554
  722.       ],
  723.       "flags": {},
  724.       "order": 7,
  725.       "mode": 0,
  726.       "inputs": [],
  727.       "outputs": [],
  728.       "title": "Workflow Information",
  729.       "properties": {},
  730.       "widgets_values": [
  731.         "## About this Workflow\nThis workflow allows you to generate detailed **Character Design Sheets** from a single reference image. These sheets can later be used as reference frameworks for video generation models like **Seedance 2.5** or **MiniMax Hailuo H3**.\n\nIn my experience, Qwen Image 2.1 is the first open-source image editing model capable of natively generating clean, highly detailed character design sheets right out of the box.\n\n## Recommended Settings\n- **CLIP Encoder:** Use **FP32 / FP16 / BF16** precision for maximum image quality and prompt adherence. Tests show that INT8 and other lower-bit quantizations introduce noticeable artifacts and reduce image clarity. **Don't skimp on SSD space — install [qwen3vl_8b_bf16.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/text_encoders/qwen3vl_8b_bf16.safetensors)**.\n- **Sampler & Scheduler:** Use **res_2m + beta** to reduce artifacts and improve detail. While I haven't run extensive benchmarks on every combination, this pairing yielded the best results.\n- **Resolution (Megapixels):**\n  - **3.4 MP** — Sweet spot for speed and clarity.\n  - **6.0 MP** — Superior quality and detail, though generation time increases significantly.\n\n## How to Use\n1. **Install custom nodes** via ComfyUI Manager:\n   - [ComfyUI-KJNodes](https://github.com/kijai/ComfyUI-KJNodes)\n   - [ComfyUI-DeGrid](https://github.com/lunaaispace-eng/ComfyUI-DeGrid)\n   - [ComfyUI-ThinkingLLM](https://github.com/goodguy1963/ComfyUI-ThinkingLLM) *If you don't want to use GGUF PE, you can skip installing this node and use workflow. `Character_Sheet_Simplify_native_pe.json`*.\n2. **Download GGUF PE I2I weights** and place them into `ComfyUI/models/LLM/GGUF/`.  \n   > **Important:** Both the **main PE model and the mmproj file** must be present in this folder, otherwise `ComfyUI-ThinkingLLM` will not detect it.\n3. **Run generation:** Load your reference image, select the path to the PE model, and start generating.\n\n## Useful Resources\n- **Official Qwen Image 2.1 Weight for ComfyUI:** [HuggingFace](https://huggingface.co/Comfy-Org/Qwen-Image-2.1)\n- **GGUF PE T2I:** [HuggingFace](https://huggingface.co/prithivMLmods/Qwen-Image-2.1-PE-T2I-GGUF) | **GGUF PE I2I:** [HuggingFace](https://huggingface.co/prithivMLmods/Qwen-Image-2.1-PE-I2I-GGUF)"
  732.       ],
  733.       "widgets_values_named": {
  734.         "text": "## About this Workflow\nThis workflow allows you to generate detailed **Character Design Sheets** from a single reference image. These sheets can later be used as reference frameworks for video generation models like **Seedance 2.5** or **MiniMax Hailuo H3**.\n\nIn my experience, Qwen Image 2.1 is the first open-source image editing model capable of natively generating clean, highly detailed character design sheets right out of the box.\n\n## Recommended Settings\n- **CLIP Encoder:** Use **FP32 / FP16 / BF16** precision for maximum image quality and prompt adherence. Tests show that INT8 and other lower-bit quantizations introduce noticeable artifacts and reduce image clarity. **Don't skimp on SSD space — install [qwen3vl_8b_bf16.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/text_encoders/qwen3vl_8b_bf16.safetensors)**.\n- **Sampler & Scheduler:** Use **res_2m + beta** to reduce artifacts and improve detail. While I haven't run extensive benchmarks on every combination, this pairing yielded the best results.\n- **Resolution (Megapixels):**\n  - **3.4 MP** — Sweet spot for speed and clarity.\n  - **6.0 MP** — Superior quality and detail, though generation time increases significantly.\n\n## How to Use\n1. **Install custom nodes** via ComfyUI Manager:\n   - [ComfyUI-KJNodes](https://github.com/kijai/ComfyUI-KJNodes)\n   - [ComfyUI-DeGrid](https://github.com/lunaaispace-eng/ComfyUI-DeGrid)\n   - [ComfyUI-ThinkingLLM](https://github.com/goodguy1963/ComfyUI-ThinkingLLM) *If you don't want to use GGUF PE, you can skip installing this node and use workflow. `Character_Sheet_Simplify_native_pe.json`*.\n2. **Download GGUF PE I2I weights** and place them into `ComfyUI/models/LLM/GGUF/`.  \n   > **Important:** Both the **main PE model and the mmproj file** must be present in this folder, otherwise `ComfyUI-ThinkingLLM` will not detect it.\n3. **Run generation:** Load your reference image, select the path to the PE model, and start generating.\n\n## Useful Resources\n- **Official Qwen Image 2.1 Weight for ComfyUI:** [HuggingFace](https://huggingface.co/Comfy-Org/Qwen-Image-2.1)\n- **GGUF PE T2I:** [HuggingFace](https://huggingface.co/prithivMLmods/Qwen-Image-2.1-PE-T2I-GGUF) | **GGUF PE I2I:** [HuggingFace](https://huggingface.co/prithivMLmods/Qwen-Image-2.1-PE-I2I-GGUF)"
  735.       },
  736.       "color": "#223",
  737.       "bgcolor": "#335"
  738.     },
  739.     {
  740.       "id": 598,
  741.       "type": "MarkdownNote",
  742.       "pos": [
  743.         -1575.6400205489508,
  744.         2357.065433224641
  745.       ],
  746.       "size": [
  747.         467.73620766484567,
  748.         691.0586325270554
  749.       ],
  750.       "flags": {},
  751.       "order": 8,
  752.       "mode": 0,
  753.       "inputs": [],
  754.       "outputs": [],
  755.       "title": "Changelog",
  756.       "properties": {},
  757.       "widgets_values": [
  758.         "### V2.0\nIn version 2.0, based on community feedback, I redesigned the workflow to be much more task-focused: minimal unnecessary typography, maximum focus on key character elements, body structure, and facial details. This layout makes it drastically easier for video generation models to read character details and maintain consistency.\n\n#### How It Works\nThe PE (Prompt Enhancer) generates 2 to 3 main panels:\n1. **Facial Expressions**\n2. **Poses**\n3. **Equipment & Accessories** *(optional)*\n\nThis amount of information is ideal for video models to produce coherent, high-quality results.\n\n**Layout Rules & Features:**\n1. **Faceless Entities:** If the object or character does not have a human face (e.g., mask, robot, inanimate object), only a single neutral close-up panel is generated.\n2. **Expression Variety:** The set of emotional expressions adapts to the character's backstory and description, but a **neutral expression always comes first**.\n3. **Gear & Accessories:** If accessories or gear are present, a separate 3rd panel displays them in detail, isolated from the main character.\n4. **`character_description` Parameter:** Helps the PE better understand character traits and posture. For instance, providing a description like *\"Ayaka is a slender, fragile girl. She is mostly shy, but occasionally gives a subtle smile\"* allows the PE to choose matching expressions and poses. This parameter is optional (the PE can infer details strictly from the image), but manually specifying details yields much higher accuracy.\n\n**Important Considerations:**\n1. **Input Image:** The workflow performs best when the reference image shows a full-body character facing forward. The PE is intentionally constrained from hallucinating missing body parts unless explicitly specified in the `character_description`. This prevents unwanted inconsistencies like altered height, age, or outfit details.\n2. **Two Workflow Variants:** They differ only in how the PE prompt is generated:\n   - **For GPUs with <12GB VRAM:** Use the standard version (without the `_native_pe` suffix).\n   - The official `Generate Text` node is currently unoptimized for Qwen 3.5 9B, which can cause prompt generation on lower-end hardware to exceed 30 minutes. The developers are aware of this issue and working on performance fixes.\n\n#### Summary of Changes (v2.0):\n- **Complete Redesign:** Shifted focus from purely stylistic/artistic design sheets to a functional, production-ready Character Design Sheet optimized for video models.\n- **Updated Text Field:** Replaced `entity_name` (name only) with `character_description` (full personality & detail specifications).\n- **Native PE Support:** Added a secondary workflow utilizing the official PE execution method.\n- **Usability:** Added clear explanatory comments inside the ComfyUI node graphs."
  759.       ],
  760.       "widgets_values_named": {
  761.         "text": "### V2.0\nIn version 2.0, based on community feedback, I redesigned the workflow to be much more task-focused: minimal unnecessary typography, maximum focus on key character elements, body structure, and facial details. This layout makes it drastically easier for video generation models to read character details and maintain consistency.\n\n#### How It Works\nThe PE (Prompt Enhancer) generates 2 to 3 main panels:\n1. **Facial Expressions**\n2. **Poses**\n3. **Equipment & Accessories** *(optional)*\n\nThis amount of information is ideal for video models to produce coherent, high-quality results.\n\n**Layout Rules & Features:**\n1. **Faceless Entities:** If the object or character does not have a human face (e.g., mask, robot, inanimate object), only a single neutral close-up panel is generated.\n2. **Expression Variety:** The set of emotional expressions adapts to the character's backstory and description, but a **neutral expression always comes first**.\n3. **Gear & Accessories:** If accessories or gear are present, a separate 3rd panel displays them in detail, isolated from the main character.\n4. **`character_description` Parameter:** Helps the PE better understand character traits and posture. For instance, providing a description like *\"Ayaka is a slender, fragile girl. She is mostly shy, but occasionally gives a subtle smile\"* allows the PE to choose matching expressions and poses. This parameter is optional (the PE can infer details strictly from the image), but manually specifying details yields much higher accuracy.\n\n**Important Considerations:**\n1. **Input Image:** The workflow performs best when the reference image shows a full-body character facing forward. The PE is intentionally constrained from hallucinating missing body parts unless explicitly specified in the `character_description`. This prevents unwanted inconsistencies like altered height, age, or outfit details.\n2. **Two Workflow Variants:** They differ only in how the PE prompt is generated:\n   - **For GPUs with <12GB VRAM:** Use the standard version (without the `_native_pe` suffix).\n   - The official `Generate Text` node is currently unoptimized for Qwen 3.5 9B, which can cause prompt generation on lower-end hardware to exceed 30 minutes. The developers are aware of this issue and working on performance fixes.\n\n#### Summary of Changes (v2.0):\n- **Complete Redesign:** Shifted focus from purely stylistic/artistic design sheets to a functional, production-ready Character Design Sheet optimized for video models.\n- **Updated Text Field:** Replaced `entity_name` (name only) with `character_description` (full personality & detail specifications).\n- **Native PE Support:** Added a secondary workflow utilizing the official PE execution method.\n- **Usability:** Added clear explanatory comments inside the ComfyUI node graphs."
  762.       },
  763.       "color": "#232",
  764.       "bgcolor": "#353"
  765.     }
  766.   ],
  767.   "links": [
  768.     [
  769.       1007,
  770.       583,
  771.       0,
  772.       578,
  773.       0,
  774.       "STRING"
  775.     ],
  776.     [
  777.       1008,
  778.       577,
  779.       0,
  780.       578,
  781.       2,
  782.       "INT"
  783.     ],
  784.     [
  785.       1009,
  786.       577,
  787.       1,
  788.       578,
  789.       3,
  790.       "INT"
  791.     ],
  792.     [
  793.       1010,
  794.       581,
  795.       0,
  796.       578,
  797.       6,
  798.       "IMAGE"
  799.     ],
  800.     [
  801.       1012,
  802.       580,
  803.       0,
  804.       581,
  805.       0,
  806.       "IMAGE"
  807.     ],
  808.     [
  809.       1015,
  810.       582,
  811.       0,
  812.       583,
  813.       0,
  814.       "STRING"
  815.     ],
  816.     [
  817.       1016,
  818.       580,
  819.       0,
  820.       587,
  821.       0,
  822.       "IMAGE"
  823.     ],
  824.     [
  825.       1017,
  826.       578,
  827.       0,
  828.       587,
  829.       1,
  830.       "IMAGE"
  831.     ],
  832.     [
  833.       1018,
  834.       587,
  835.       0,
  836.       588,
  837.       0,
  838.       "IMAGE"
  839.     ],
  840.     [
  841.       1013,
  842.       581,
  843.       0,
  844.       582,
  845.       0,
  846.       "IMAGE"
  847.     ],
  848.     [
  849.       1014,
  850.       589,
  851.       0,
  852.       582,
  853.       1,
  854.       "STRING"
  855.     ],
  856.     [
  857.       1011,
  858.       578,
  859.       0,
  860.       579,
  861.       0,
  862.       "IMAGE"
  863.     ]
  864.   ],
  865.   "groups": [],
  866.   "definitions": {
  867.     "subgraphs": [
  868.       {
  869.         "id": "99ba1998-bf35-4a70-b4e7-47d3c8f10d3d",
  870.         "version": 1,
  871.         "state": {
  872.           "lastGroupId": 39,
  873.           "lastNodeId": 598,
  874.           "lastLinkId": 1031,
  875.           "lastRerouteId": 10
  876.         },
  877.         "revision": 0,
  878.         "config": {},
  879.         "name": "Image Edit (Qwen Image 2.1)",
  880.         "inputNode": {
  881.           "id": -10,
  882.           "bounding": [
  883.             -720,
  884.             630,
  885.             138.68333435058594,
  886.             288
  887.           ]
  888.         },
  889.         "outputNode": {
  890.           "id": -20,
  891.           "bounding": [
  892.             1960,
  893.             640,
  894.             128,
  895.             68
  896.           ]
  897.         },
  898.         "inputs": [
  899.           {
  900.             "id": "6a73de3b-f4cd-43a4-9076-76648c6902f0",
  901.             "name": "prompt",
  902.             "type": "STRING",
  903.             "linkIds": [
  904.               974
  905.             ],
  906.             "localized_name": "prompt",
  907.             "label": "positive_prompt",
  908.             "pos": [
  909.               -605.3166656494141,
  910.               654
  911.             ]
  912.           },
  913.           {
  914.             "id": "1f3911c3-71b5-45b7-9a0e-4ac7285069dc",
  915.             "name": "resolution",
  916.             "type": "INT",
  917.             "linkIds": [
  918.               973
  919.             ],
  920.             "pos": [
  921.               -605.3166656494141,
  922.               674
  923.             ]
  924.           },
  925.           {
  926.             "id": "349c3f72-ba7a-4277-84ff-8029faa16019",
  927.             "name": "steps",
  928.             "type": "INT",
  929.             "linkIds": [
  930.               659
  931.             ],
  932.             "label": "steps",
  933.             "pos": [
  934.               -605.3166656494141,
  935.               694
  936.             ]
  937.           },
  938.           {
  939.             "id": "91c96cf8-057b-4da2-b71e-305541a3527e",
  940.             "name": "width",
  941.             "type": "INT",
  942.             "linkIds": [
  943.               660
  944.             ],
  945.             "localized_name": "width",
  946.             "pos": [
  947.               -605.3166656494141,
  948.               714
  949.             ]
  950.           },
  951.           {
  952.             "id": "661cc520-6bd0-4925-90ec-cecaa188b57d",
  953.             "name": "height",
  954.             "type": "INT",
  955.             "linkIds": [
  956.               661
  957.             ],
  958.             "localized_name": "height",
  959.             "pos": [
  960.               -605.3166656494141,
  961.               734
  962.             ]
  963.           },
  964.           {
  965.             "id": "9f0e91b8-5a4a-4f5a-a2a4-4ddc180df0fd",
  966.             "name": "scheduler",
  967.             "type": "COMBO",
  968.             "linkIds": [
  969.               662
  970.             ],
  971.             "label": "sampler",
  972.             "pos": [
  973.               -605.3166656494141,
  974.               754
  975.             ]
  976.           },
  977.           {
  978.             "id": "4710583f-3cb0-4091-87ab-dadd8a2e657c",
  979.             "name": "scheduler_1",
  980.             "type": "COMBO",
  981.             "linkIds": [
  982.               668
  983.             ],
  984.             "label": "scheduler",
  985.             "pos": [
  986.               -605.3166656494141,
  987.               774
  988.             ]
  989.           },
  990.           {
  991.             "id": "977ce57d-3764-491c-8d2d-543754cfbaf1",
  992.             "name": "seed",
  993.             "type": "INT",
  994.             "linkIds": [
  995.               667
  996.             ],
  997.             "pos": [
  998.               -605.3166656494141,
  999.               794
  1000.             ]
  1001.           },
  1002.           {
  1003.             "id": "143494fb-a40e-423f-be3b-ecc808b408b0",
  1004.             "name": "unet_name",
  1005.             "type": "COMBO",
  1006.             "linkIds": [
  1007.               663
  1008.             ],
  1009.             "pos": [
  1010.               -605.3166656494141,
  1011.               814
  1012.             ]
  1013.           },
  1014.           {
  1015.             "id": "d8528289-e121-45ed-9c31-e6370ce4ba5e",
  1016.             "name": "clip_name",
  1017.             "type": "COMBO",
  1018.             "linkIds": [
  1019.               664
  1020.             ],
  1021.             "pos": [
  1022.               -605.3166656494141,
  1023.               834
  1024.             ]
  1025.           },
  1026.           {
  1027.             "id": "f03d1fb0-d592-4997-b55e-e7a2549c36e5",
  1028.             "name": "vae_name",
  1029.             "type": "COMBO",
  1030.             "linkIds": [
  1031.               665
  1032.             ],
  1033.             "pos": [
  1034.               -605.3166656494141,
  1035.               854
  1036.             ]
  1037.           },
  1038.           {
  1039.             "id": "6bbe4c8a-0ce9-4576-9468-697a165b98b4",
  1040.             "name": "images.image_1",
  1041.             "type": "IMAGE",
  1042.             "linkIds": [
  1043.               977
  1044.             ],
  1045.             "label": "image_1",
  1046.             "pos": [
  1047.               -605.3166656494141,
  1048.               874
  1049.             ]
  1050.           }
  1051.         ],
  1052.         "outputs": [
  1053.           {
  1054.             "id": "f6f3effc-0961-4c17-b52c-a77c16ca6aa4",
  1055.             "name": "IMAGE",
  1056.             "type": "IMAGE",
  1057.             "linkIds": [
  1058.               742
  1059.             ],
  1060.             "localized_name": "IMAGE",
  1061.             "pos": [
  1062.               1984,
  1063.               664
  1064.             ]
  1065.           }
  1066.         ],
  1067.         "widgets": [],
  1068.         "nodes": [
  1069.           {
  1070.             "id": 451,
  1071.             "type": "UNETLoader",
  1072.             "pos": [
  1073.               -190,
  1074.               410
  1075.             ],
  1076.             "size": [
  1077.               510,
  1078.               90
  1079.             ],
  1080.             "flags": {},
  1081.             "order": 0,
  1082.             "mode": 0,
  1083.             "inputs": [
  1084.               {
  1085.                 "localized_name": "unet_name",
  1086.                 "name": "unet_name",
  1087.                 "type": "COMBO",
  1088.                 "widget": {
  1089.                   "name": "unet_name"
  1090.                 },
  1091.                 "link": 663
  1092.               }
  1093.             ],
  1094.             "outputs": [
  1095.               {
  1096.                 "localized_name": "MODEL",
  1097.                 "name": "MODEL",
  1098.                 "type": "MODEL",
  1099.                 "links": [
  1100.                   996
  1101.                 ]
  1102.               }
  1103.             ],
  1104.             "properties": {
  1105.               "cnr_id": "comfy-core",
  1106.               "ver": "0.36.0",
  1107.               "Node name for S&R": "UNETLoader",
  1108.               "models": [
  1109.                 {
  1110.                   "name": "qwen_image_2.1_int8_convrot.safetensors",
  1111.                   "url": "https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/diffusion_models/qwen_image_2.1_int8_convrot.safetensors",
  1112.                   "directory": "diffusion_models"
  1113.                 }
  1114.               ]
  1115.             },
  1116.             "widgets_values": [
  1117.               "qwen_image_2.1_int8_convrot.safetensors",
  1118.               "default"
  1119.             ],
  1120.             "widgets_values_named": {
  1121.               "unet_name": "qwen_image_2.1_int8_convrot.safetensors",
  1122.               "weight_dtype": "default"
  1123.             }
  1124.           },
  1125.           {
  1126.             "id": 453,
  1127.             "type": "CLIPLoader",
  1128.             "pos": [
  1129.               -190,
  1130.               570
  1131.             ],
  1132.             "size": [
  1133.               510,
  1134.               120
  1135.             ],
  1136.             "flags": {},
  1137.             "order": 1,
  1138.             "mode": 0,
  1139.             "inputs": [
  1140.               {
  1141.                 "localized_name": "clip_name",
  1142.                 "name": "clip_name",
  1143.                 "type": "COMBO",
  1144.                 "widget": {
  1145.                   "name": "clip_name"
  1146.                 },
  1147.                 "link": 664
  1148.               }
  1149.             ],
  1150.             "outputs": [
  1151.               {
  1152.                 "localized_name": "CLIP",
  1153.                 "name": "CLIP",
  1154.                 "type": "CLIP",
  1155.                 "links": [
  1156.                   976
  1157.                 ]
  1158.               }
  1159.             ],
  1160.             "properties": {
  1161.               "cnr_id": "comfy-core",
  1162.               "ver": "0.36.0",
  1163.               "Node name for S&R": "CLIPLoader",
  1164.               "models": [
  1165.                 {
  1166.                   "name": "qwen3vl_8b_bf16.safetensors",
  1167.                   "url": "https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/text_encoders/qwen3vl_8b_bf16.safetensors",
  1168.                   "directory": "text_encoders"
  1169.                 }
  1170.               ]
  1171.             },
  1172.             "widgets_values": [
  1173.               "qwen3vl_8b_bf16.safetensors",
  1174.               "qwen_image",
  1175.               "default"
  1176.             ],
  1177.             "widgets_values_named": {
  1178.               "clip_name": "qwen3vl_8b_bf16.safetensors",
  1179.               "type": "qwen_image",
  1180.               "device": "default"
  1181.             }
  1182.           },
  1183.           {
  1184.             "id": 454,
  1185.             "type": "VAELoader",
  1186.             "pos": [
  1187.               -190,
  1188.               770
  1189.             ],
  1190.             "size": [
  1191.               510,
  1192.               70
  1193.             ],
  1194.             "flags": {},
  1195.             "order": 2,
  1196.             "mode": 0,
  1197.             "inputs": [
  1198.               {
  1199.                 "localized_name": "vae_name",
  1200.                 "name": "vae_name",
  1201.                 "type": "COMBO",
  1202.                 "widget": {
  1203.                   "name": "vae_name"
  1204.                 },
  1205.                 "link": 665
  1206.               }
  1207.             ],
  1208.             "outputs": [
  1209.               {
  1210.                 "localized_name": "VAE",
  1211.                 "name": "VAE",
  1212.                 "type": "VAE",
  1213.                 "links": [
  1214.                   649,
  1215.                   978
  1216.                 ]
  1217.               }
  1218.             ],
  1219.             "properties": {
  1220.               "cnr_id": "comfy-core",
  1221.               "ver": "0.36.0",
  1222.               "Node name for S&R": "VAELoader",
  1223.               "models": [
  1224.                 {
  1225.                   "name": "qwen_image_2.1_vae_bf16.safetensors",
  1226.                   "url": "https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/vae/qwen_image_2.1_vae_bf16.safetensors",
  1227.                   "directory": "vae"
  1228.                 }
  1229.               ]
  1230.             },
  1231.             "widgets_values": [
  1232.               "qwen_image_2.1_vae_bf16.safetensors"
  1233.             ],
  1234.             "widgets_values_named": {
  1235.               "vae_name": "qwen_image_2.1_vae_bf16.safetensors"
  1236.             }
  1237.           },
  1238.           {
  1239.             "id": 456,
  1240.             "type": "EmptyLatentImage",
  1241.             "pos": [
  1242.               -70,
  1243.               1010
  1244.             ],
  1245.             "size": [
  1246.               300,
  1247.               120
  1248.             ],
  1249.             "flags": {},
  1250.             "order": 3,
  1251.             "mode": 0,
  1252.             "inputs": [
  1253.               {
  1254.                 "localized_name": "width",
  1255.                 "name": "width",
  1256.                 "type": "INT",
  1257.                 "widget": {
  1258.                   "name": "width"
  1259.                 },
  1260.                 "link": 660
  1261.               },
  1262.               {
  1263.                 "localized_name": "height",
  1264.                 "name": "height",
  1265.                 "type": "INT",
  1266.                 "widget": {
  1267.                   "name": "height"
  1268.                 },
  1269.                 "link": 661
  1270.               }
  1271.             ],
  1272.             "outputs": [
  1273.               {
  1274.                 "localized_name": "LATENT",
  1275.                 "name": "LATENT",
  1276.                 "type": "LATENT",
  1277.                 "links": [
  1278.                   972
  1279.                 ]
  1280.               }
  1281.             ],
  1282.             "properties": {
  1283.               "cnr_id": "comfy-core",
  1284.               "ver": "0.36.0",
  1285.               "Node name for S&R": "EmptyLatentImage"
  1286.             },
  1287.             "widgets_values": [
  1288.               1024,
  1289.               1024,
  1290.               1
  1291.             ],
  1292.             "widgets_values_named": {
  1293.               "width": 1024,
  1294.               "height": 1024,
  1295.               "batch_size": 1
  1296.             }
  1297.           },
  1298.           {
  1299.             "id": 457,
  1300.             "type": "VAEDecode",
  1301.             "pos": [
  1302.               1620,
  1303.               660
  1304.             ],
  1305.             "size": [
  1306.               230,
  1307.               60
  1308.             ],
  1309.             "flags": {},
  1310.             "order": 4,
  1311.             "mode": 0,
  1312.             "inputs": [
  1313.               {
  1314.                 "localized_name": "samples",
  1315.                 "name": "samples",
  1316.                 "type": "LATENT",
  1317.                 "link": 651
  1318.               },
  1319.               {
  1320.                 "localized_name": "vae",
  1321.                 "name": "vae",
  1322.                 "type": "VAE",
  1323.                 "link": 649
  1324.               }
  1325.             ],
  1326.             "outputs": [
  1327.               {
  1328.                 "localized_name": "IMAGE",
  1329.                 "name": "IMAGE",
  1330.                 "type": "IMAGE",
  1331.                 "links": [
  1332.                   741
  1333.                 ]
  1334.               }
  1335.             ],
  1336.             "properties": {
  1337.               "cnr_id": "comfy-core",
  1338.               "ver": "0.36.0",
  1339.               "Node name for S&R": "VAEDecode"
  1340.             }
  1341.           },
  1342.           {
  1343.             "id": 458,
  1344.             "type": "KSampler",
  1345.             "pos": [
  1346.               1180,
  1347.               640
  1348.             ],
  1349.             "size": [
  1350.               270,
  1351.               270
  1352.             ],
  1353.             "flags": {},
  1354.             "order": 5,
  1355.             "mode": 0,
  1356.             "inputs": [
  1357.               {
  1358.                 "localized_name": "model",
  1359.                 "name": "model",
  1360.                 "type": "MODEL",
  1361.                 "link": 689
  1362.               },
  1363.               {
  1364.                 "localized_name": "positive",
  1365.                 "name": "positive",
  1366.                 "type": "CONDITIONING",
  1367.                 "link": 979
  1368.               },
  1369.               {
  1370.                 "localized_name": "negative",
  1371.                 "name": "negative",
  1372.                 "type": "CONDITIONING",
  1373.                 "link": 980
  1374.               },
  1375.               {
  1376.                 "localized_name": "latent_image",
  1377.                 "name": "latent_image",
  1378.                 "type": "LATENT",
  1379.                 "link": 972
  1380.               },
  1381.               {
  1382.                 "localized_name": "seed",
  1383.                 "name": "seed",
  1384.                 "type": "INT",
  1385.                 "widget": {
  1386.                   "name": "seed"
  1387.                 },
  1388.                 "link": 667
  1389.               },
  1390.               {
  1391.                 "localized_name": "steps",
  1392.                 "name": "steps",
  1393.                 "type": "INT",
  1394.                 "widget": {
  1395.                   "name": "steps"
  1396.                 },
  1397.                 "link": 659
  1398.               },
  1399.               {
  1400.                 "localized_name": "sampler_name",
  1401.                 "name": "sampler_name",
  1402.                 "type": "COMBO",
  1403.                 "widget": {
  1404.                   "name": "sampler_name"
  1405.                 },
  1406.                 "link": 662
  1407.               },
  1408.               {
  1409.                 "localized_name": "scheduler",
  1410.                 "name": "scheduler",
  1411.                 "type": "COMBO",
  1412.                 "widget": {
  1413.                   "name": "scheduler"
  1414.                 },
  1415.                 "link": 668
  1416.               }
  1417.             ],
  1418.             "outputs": [
  1419.               {
  1420.                 "localized_name": "LATENT",
  1421.                 "name": "LATENT",
  1422.                 "type": "LATENT",
  1423.                 "links": [
  1424.                   651
  1425.                 ]
  1426.               }
  1427.             ],
  1428.             "properties": {
  1429.               "cnr_id": "comfy-core",
  1430.               "ver": "0.36.0",
  1431.               "Node name for S&R": "KSampler"
  1432.             },
  1433.             "widgets_values": [
  1434.               0,
  1435.               "fixed",
  1436.               25,
  1437.               1,
  1438.               "euler",
  1439.               "simple",
  1440.               1
  1441.             ],
  1442.             "widgets_values_named": {
  1443.               "seed": 0,
  1444.               "control_after_generate": "fixed",
  1445.               "steps": 25,
  1446.               "cfg": 1,
  1447.               "sampler_name": "euler",
  1448.               "scheduler": "simple",
  1449.               "denoise": 1
  1450.             }
  1451.           },
  1452.           {
  1453.             "id": 469,
  1454.             "type": "QwenImage21Cache",
  1455.             "pos": [
  1456.               1180,
  1457.               460
  1458.             ],
  1459.             "size": [
  1460.               270,
  1461.               90
  1462.             ],
  1463.             "flags": {},
  1464.             "order": 6,
  1465.             "mode": 0,
  1466.             "inputs": [
  1467.               {
  1468.                 "localized_name": "model",
  1469.                 "name": "model",
  1470.                 "type": "MODEL",
  1471.                 "link": 730
  1472.               }
  1473.             ],
  1474.             "outputs": [
  1475.               {
  1476.                 "localized_name": "MODEL",
  1477.                 "name": "MODEL",
  1478.                 "type": "MODEL",
  1479.                 "links": [
  1480.                   689
  1481.                 ]
  1482.               }
  1483.             ],
  1484.             "properties": {
  1485.               "cnr_id": "comfy-core",
  1486.               "ver": "0.36.0",
  1487.               "Node name for S&R": "QwenImage21Cache"
  1488.             },
  1489.             "widgets_values": [
  1490.               "auto",
  1491.               "default"
  1492.             ],
  1493.             "widgets_values_named": {
  1494.               "device": "auto",
  1495.               "dtype": "default"
  1496.             }
  1497.           },
  1498.           {
  1499.             "id": 476,
  1500.             "type": "ModelAttentionBackend",
  1501.             "pos": [
  1502.               1186.6907894736844,
  1503.               174.92982456140354
  1504.             ],
  1505.             "size": [
  1506.               270,
  1507.               58
  1508.             ],
  1509.             "flags": {},
  1510.             "order": 7,
  1511.             "mode": 0,
  1512.             "inputs": [
  1513.               {
  1514.                 "localized_name": "model",
  1515.                 "name": "model",
  1516.                 "type": "MODEL",
  1517.                 "link": 996
  1518.               }
  1519.             ],
  1520.             "outputs": [
  1521.               {
  1522.                 "localized_name": "model",
  1523.                 "name": "model",
  1524.                 "type": "MODEL",
  1525.                 "links": [
  1526.                   730
  1527.                 ]
  1528.               }
  1529.             ],
  1530.             "properties": {
  1531.               "cnr_id": "comfy-core",
  1532.               "ver": "0.36.0",
  1533.               "Node name for S&R": "ModelAttentionBackend"
  1534.             },
  1535.             "widgets_values": [
  1536.               "comfy kitchen attention"
  1537.             ],
  1538.             "widgets_values_named": {
  1539.               "attention": "comfy kitchen attention"
  1540.             }
  1541.           },
  1542.           {
  1543.             "id": 484,
  1544.             "type": "VAEDeGrid",
  1545.             "pos": [
  1546.               1589.954387490791,
  1547.               801.0614035087723
  1548.             ],
  1549.             "size": [
  1550.               284.84999694824216,
  1551.               198
  1552.             ],
  1553.             "flags": {},
  1554.             "order": 8,
  1555.             "mode": 0,
  1556.             "inputs": [
  1557.               {
  1558.                 "localized_name": "image",
  1559.                 "name": "image",
  1560.                 "type": "IMAGE",
  1561.                 "link": 741
  1562.               }
  1563.             ],
  1564.             "outputs": [
  1565.               {
  1566.                 "localized_name": "image",
  1567.                 "name": "image",
  1568.                 "type": "IMAGE",
  1569.                 "links": [
  1570.                   742
  1571.                 ]
  1572.               },
  1573.               {
  1574.                 "localized_name": "removed_grid",
  1575.                 "name": "removed_grid",
  1576.                 "type": "IMAGE",
  1577.                 "links": null
  1578.               }
  1579.             ],
  1580.             "properties": {
  1581.               "aux_id": "lunaaispace-eng/ComfyUI-DeGrid",
  1582.               "ver": "5699bc33f71e1be12523fdea105cc9c2abfe1cd0",
  1583.               "Node name for S&R": "VAEDeGrid"
  1584.             },
  1585.             "widgets_values": [
  1586.               true,
  1587.               "auto",
  1588.               0.02,
  1589.               true,
  1590.               10,
  1591.               "4x zoom"
  1592.             ],
  1593.             "widgets_values_named": {
  1594.               "enabled": true,
  1595.               "mode": "auto",
  1596.               "limit": 0.02,
  1597.               "skip_when_clean": true,
  1598.               "grid_gain": 10,
  1599.               "grid_view": "4x zoom"
  1600.             }
  1601.           },
  1602.           {
  1603.             "id": 557,
  1604.             "type": "TextEncodeQwenImage21",
  1605.             "pos": [
  1606.               506.61230910680064,
  1607.               602.8646523635018
  1608.             ],
  1609.             "size": [
  1610.               460,
  1611.               286
  1612.             ],
  1613.             "flags": {},
  1614.             "order": 9,
  1615.             "mode": 0,
  1616.             "inputs": [
  1617.               {
  1618.                 "localized_name": "clip",
  1619.                 "name": "clip",
  1620.                 "type": "CLIP",
  1621.                 "link": 976
  1622.               },
  1623.               {
  1624.                 "localized_name": "image_1",
  1625.                 "name": "images.image_1",
  1626.                 "shape": 7,
  1627.                 "type": "IMAGE",
  1628.                 "link": 977
  1629.               },
  1630.               {
  1631.                 "localized_name": "image_2",
  1632.                 "name": "images.image_2",
  1633.                 "shape": 7,
  1634.                 "type": "IMAGE",
  1635.                 "link": null
  1636.               },
  1637.               {
  1638.                 "localized_name": "image_3",
  1639.                 "name": "images.image_3",
  1640.                 "shape": 7,
  1641.                 "type": "IMAGE",
  1642.                 "link": null
  1643.               },
  1644.               {
  1645.                 "localized_name": "image_4",
  1646.                 "name": "images.image_4",
  1647.                 "shape": 7,
  1648.                 "type": "IMAGE",
  1649.                 "link": null
  1650.               },
  1651.               {
  1652.                 "localized_name": "vae",
  1653.                 "name": "vae",
  1654.                 "shape": 7,
  1655.                 "type": "VAE",
  1656.                 "link": 978
  1657.               },
  1658.               {
  1659.                 "localized_name": "prompt",
  1660.                 "name": "prompt",
  1661.                 "type": "STRING",
  1662.                 "widget": {
  1663.                   "name": "prompt"
  1664.                 },
  1665.                 "link": 974
  1666.               },
  1667.               {
  1668.                 "localized_name": "resolution",
  1669.                 "name": "resolution",
  1670.                 "type": "INT",
  1671.                 "widget": {
  1672.                   "name": "resolution"
  1673.                 },
  1674.                 "link": 973
  1675.               }
  1676.             ],
  1677.             "outputs": [
  1678.               {
  1679.                 "localized_name": "positive",
  1680.                 "name": "positive",
  1681.                 "type": "CONDITIONING",
  1682.                 "links": [
  1683.                   979
  1684.                 ]
  1685.               },
  1686.               {
  1687.                 "localized_name": "negative",
  1688.                 "name": "negative",
  1689.                 "type": "CONDITIONING",
  1690.                 "links": [
  1691.                   980
  1692.                 ]
  1693.               },
  1694.               {
  1695.                 "localized_name": "latent",
  1696.                 "name": "latent",
  1697.                 "type": "LATENT",
  1698.                 "links": null
  1699.               }
  1700.             ],
  1701.             "properties": {
  1702.               "cnr_id": "comfy-core",
  1703.               "ver": "0.36.0",
  1704.               "Node name for S&R": "TextEncodeQwenImage21"
  1705.             },
  1706.             "widgets_values": [
  1707.               "",
  1708.               "",
  1709.               1024
  1710.             ],
  1711.             "widgets_values_named": {
  1712.               "prompt": "",
  1713.               "negative_prompt": "",
  1714.               "resolution": 1024
  1715.             }
  1716.           }
  1717.         ],
  1718.         "groups": [
  1719.           {
  1720.             "id": 34,
  1721.             "title": "Models",
  1722.             "bounding": [
  1723.               -200,
  1724.               300,
  1725.               530,
  1726.               590
  1727.             ],
  1728.             "color": "#3f789e",
  1729.             "flags": {}
  1730.           },
  1731.           {
  1732.             "id": 35,
  1733.             "title": "Image Size",
  1734.             "bounding": [
  1735.               -200,
  1736.               920,
  1737.               530,
  1738.               250
  1739.             ],
  1740.             "color": "#3f789e",
  1741.             "flags": {}
  1742.           },
  1743.           {
  1744.             "id": 36,
  1745.             "title": "Conditioning",
  1746.             "bounding": [
  1747.               360,
  1748.               300,
  1749.               700,
  1750.               860
  1751.             ],
  1752.             "color": "#3f789e",
  1753.             "flags": {}
  1754.           },
  1755.           {
  1756.             "id": 37,
  1757.             "title": "Sampling",
  1758.             "bounding": [
  1759.               1090,
  1760.               300,
  1761.               470,
  1762.               860
  1763.             ],
  1764.             "color": "#3f789e",
  1765.             "flags": {}
  1766.           }
  1767.         ],
  1768.         "links": [
  1769.           {
  1770.             "id": 649,
  1771.             "origin_id": 454,
  1772.             "origin_slot": 0,
  1773.             "target_id": 457,
  1774.             "target_slot": 1,
  1775.             "type": "VAE"
  1776.           },
  1777.           {
  1778.             "id": 651,
  1779.             "origin_id": 458,
  1780.             "origin_slot": 0,
  1781.             "target_id": 457,
  1782.             "target_slot": 0,
  1783.             "type": "LATENT"
  1784.           },
  1785.           {
  1786.             "id": 689,
  1787.             "origin_id": 469,
  1788.             "origin_slot": 0,
  1789.             "target_id": 458,
  1790.             "target_slot": 0,
  1791.             "type": "MODEL"
  1792.           },
  1793.           {
  1794.             "id": 730,
  1795.             "origin_id": 476,
  1796.             "origin_slot": 0,
  1797.             "target_id": 469,
  1798.             "target_slot": 0,
  1799.             "type": "MODEL"
  1800.           },
  1801.           {
  1802.             "id": 741,
  1803.             "origin_id": 457,
  1804.             "origin_slot": 0,
  1805.             "target_id": 484,
  1806.             "target_slot": 0,
  1807.             "type": "IMAGE"
  1808.           },
  1809.           {
  1810.             "id": 742,
  1811.             "origin_id": 484,
  1812.             "origin_slot": 0,
  1813.             "target_id": -20,
  1814.             "target_slot": 0,
  1815.             "type": "IMAGE"
  1816.           },
  1817.           {
  1818.             "id": 972,
  1819.             "origin_id": 456,
  1820.             "origin_slot": 0,
  1821.             "target_id": 458,
  1822.             "target_slot": 3,
  1823.             "type": "LATENT"
  1824.           },
  1825.           {
  1826.             "id": 979,
  1827.             "origin_id": 557,
  1828.             "origin_slot": 0,
  1829.             "target_id": 458,
  1830.             "target_slot": 1,
  1831.             "type": "CONDITIONING"
  1832.           },
  1833.           {
  1834.             "id": 980,
  1835.             "origin_id": 557,
  1836.             "origin_slot": 1,
  1837.             "target_id": 458,
  1838.             "target_slot": 2,
  1839.             "type": "CONDITIONING"
  1840.           },
  1841.           {
  1842.             "id": 659,
  1843.             "origin_id": -10,
  1844.             "origin_slot": 2,
  1845.             "target_id": 458,
  1846.             "target_slot": 5,
  1847.             "type": "INT"
  1848.           },
  1849.           {
  1850.             "id": 660,
  1851.             "origin_id": -10,
  1852.             "origin_slot": 3,
  1853.             "target_id": 456,
  1854.             "target_slot": 0,
  1855.             "type": "INT"
  1856.           },
  1857.           {
  1858.             "id": 661,
  1859.             "origin_id": -10,
  1860.             "origin_slot": 4,
  1861.             "target_id": 456,
  1862.             "target_slot": 1,
  1863.             "type": "INT"
  1864.           },
  1865.           {
  1866.             "id": 667,
  1867.             "origin_id": -10,
  1868.             "origin_slot": 7,
  1869.             "target_id": 458,
  1870.             "target_slot": 4,
  1871.             "type": "INT"
  1872.           },
  1873.           {
  1874.             "id": 663,
  1875.             "origin_id": -10,
  1876.             "origin_slot": 8,
  1877.             "target_id": 451,
  1878.             "target_slot": 0,
  1879.             "type": "COMBO"
  1880.           },
  1881.           {
  1882.             "id": 664,
  1883.             "origin_id": -10,
  1884.             "origin_slot": 9,
  1885.             "target_id": 453,
  1886.             "target_slot": 0,
  1887.             "type": "COMBO"
  1888.           },
  1889.           {
  1890.             "id": 665,
  1891.             "origin_id": -10,
  1892.             "origin_slot": 10,
  1893.             "target_id": 454,
  1894.             "target_slot": 0,
  1895.             "type": "COMBO"
  1896.           },
  1897.           {
  1898.             "id": 996,
  1899.             "origin_id": 451,
  1900.             "origin_slot": 0,
  1901.             "target_id": 476,
  1902.             "target_slot": 0,
  1903.             "type": "MODEL"
  1904.           },
  1905.           {
  1906.             "id": 662,
  1907.             "origin_id": -10,
  1908.             "origin_slot": 5,
  1909.             "target_id": 458,
  1910.             "target_slot": 6,
  1911.             "type": "COMBO"
  1912.           },
  1913.           {
  1914.             "id": 668,
  1915.             "origin_id": -10,
  1916.             "origin_slot": 6,
  1917.             "target_id": 458,
  1918.             "target_slot": 7,
  1919.             "type": "COMBO"
  1920.           },
  1921.           {
  1922.             "id": 976,
  1923.             "origin_id": 453,
  1924.             "origin_slot": 0,
  1925.             "target_id": 557,
  1926.             "target_slot": 0,
  1927.             "type": "CLIP"
  1928.           },
  1929.           {
  1930.             "id": 977,
  1931.             "origin_id": -10,
  1932.             "origin_slot": 11,
  1933.             "target_id": 557,
  1934.             "target_slot": 1,
  1935.             "type": "IMAGE"
  1936.           },
  1937.           {
  1938.             "id": 978,
  1939.             "origin_id": 454,
  1940.             "origin_slot": 0,
  1941.             "target_id": 557,
  1942.             "target_slot": 5,
  1943.             "type": "VAE"
  1944.           },
  1945.           {
  1946.             "id": 974,
  1947.             "origin_id": -10,
  1948.             "origin_slot": 0,
  1949.             "target_id": 557,
  1950.             "target_slot": 6,
  1951.             "type": "STRING"
  1952.           },
  1953.           {
  1954.             "id": 973,
  1955.             "origin_id": -10,
  1956.             "origin_slot": 1,
  1957.             "target_id": 557,
  1958.             "target_slot": 7,
  1959.             "type": "INT"
  1960.           }
  1961.         ],
  1962.         "extra": {}
  1963.       },
  1964.       {
  1965.         "id": "7156bd05-9291-46df-8053-b02d1f088ec6",
  1966.         "version": 1,
  1967.         "state": {
  1968.           "lastGroupId": 39,
  1969.           "lastNodeId": 598,
  1970.           "lastLinkId": 1031,
  1971.           "lastRerouteId": 10
  1972.         },
  1973.         "revision": 0,
  1974.         "config": {},
  1975.         "name": "Character Sheet Prompt Maker",
  1976.         "inputNode": {
  1977.           "id": -10,
  1978.           "bounding": [
  1979.             16.548033080436472,
  1980.             4508.573238635586,
  1981.             171.11666870117188,
  1982.             168
  1983.           ]
  1984.         },
  1985.         "outputNode": {
  1986.           "id": -20,
  1987.           "bounding": [
  1988.             1551.66287947893,
  1989.             4420.756757978995,
  1990.             128,
  1991.             68
  1992.           ]
  1993.         },
  1994.         "inputs": [
  1995.           {
  1996.             "id": "4f0e9ff2-efb9-476e-a8de-9aa12a2db938",
  1997.             "name": "image",
  1998.             "type": "IMAGE",
  1999.             "linkIds": [
  2000.               1021
  2001.             ],
  2002.             "localized_name": "image",
  2003.             "shape": 7,
  2004.             "pos": [
  2005.               163.66470178160836,
  2006.               4532.573238635586
  2007.             ]
  2008.           },
  2009.           {
  2010.             "id": "a7226736-b59d-4330-aa53-3c7f0eb619af",
  2011.             "name": "string_b",
  2012.             "type": "STRING",
  2013.             "linkIds": [
  2014.               999
  2015.             ],
  2016.             "label": "character_description",
  2017.             "pos": [
  2018.               163.66470178160836,
  2019.               4552.573238635586
  2020.             ]
  2021.           },
  2022.           {
  2023.             "id": "0eaa1b18-2f11-4558-a542-97af548f49fe",
  2024.             "name": "clip_name",
  2025.             "type": "COMBO",
  2026.             "linkIds": [
  2027.               1028
  2028.             ],
  2029.             "pos": [
  2030.               163.66470178160836,
  2031.               4572.573238635586
  2032.             ]
  2033.           },
  2034.           {
  2035.             "id": "3aedceb6-c074-47ce-b18d-99472c7f8908",
  2036.             "name": "max_length",
  2037.             "type": "INT",
  2038.             "linkIds": [
  2039.               1029
  2040.             ],
  2041.             "pos": [
  2042.               163.66470178160836,
  2043.               4592.573238635586
  2044.             ]
  2045.           },
  2046.           {
  2047.             "id": "2d36e6fb-180c-4c1d-993a-25ab46491f51",
  2048.             "name": "sampling_mode.temperature",
  2049.             "type": "FLOAT",
  2050.             "linkIds": [
  2051.               1030
  2052.             ],
  2053.             "label": "temperature",
  2054.             "pos": [
  2055.               163.66470178160836,
  2056.               4612.573238635586
  2057.             ]
  2058.           },
  2059.           {
  2060.             "id": "828615f3-0647-4d6b-b012-49b88c03086b",
  2061.             "name": "sampling_mode.seed",
  2062.             "type": "INT",
  2063.             "linkIds": [
  2064.               1031
  2065.             ],
  2066.             "label": "seed",
  2067.             "pos": [
  2068.               163.66470178160836,
  2069.               4632.573238635586
  2070.             ]
  2071.           }
  2072.         ],
  2073.         "outputs": [
  2074.           {
  2075.             "id": "d3c1a46e-bbaa-4967-a844-6138754af0cd",
  2076.             "name": "prompt",
  2077.             "type": "STRING",
  2078.             "linkIds": [
  2079.               1027
  2080.             ],
  2081.             "pos": [
  2082.               1575.66287947893,
  2083.               4444.756757978995
  2084.             ]
  2085.           }
  2086.         ],
  2087.         "widgets": [],
  2088.         "nodes": [
  2089.           {
  2090.             "id": 478,
  2091.             "type": "PrimitiveStringMultiline",
  2092.             "pos": [
  2093.               296.92087799659976,
  2094.               4060.4388379917564
  2095.             ],
  2096.             "size": [
  2097.               611.4970003619597,
  2098.               902.4029407867911
  2099.             ],
  2100.             "flags": {},
  2101.             "order": 0,
  2102.             "mode": 0,
  2103.             "inputs": [],
  2104.             "outputs": [
  2105.               {
  2106.                 "localized_name": "STRING",
  2107.                 "name": "STRING",
  2108.                 "type": "STRING",
  2109.                 "links": [
  2110.                   998
  2111.                 ]
  2112.               }
  2113.             ],
  2114.             "title": "Prompt Template (Important)",
  2115.             "properties": {
  2116.               "cnr_id": "comfy-core",
  2117.               "ver": "0.30.0",
  2118.               "Node name for S&R": "PrimitiveStringMultiline",
  2119.               "ue_properties": {
  2120.                 "widget_ue_connectable": {},
  2121.                 "input_ue_unconnectable": {}
  2122.               }
  2123.             },
  2124.             "widgets_values": [
  2125.               "# ROLE\nYou are the Simple Character Sheet Prompt Architect. Input: (1) ONE reference image, (2) entity name, (3) optional free-text character description (personality, behavior, history). Output: ONE lean, production-ready sheet prompt for a diffusion image model that will receive your prompt together with the reference image. The sheet contains exactly two mandatory panels and one conditional panel, carries zero sheet typography, and invents zero content. Simple sheets are the goal: clarity over completeness. You never ask for facial expressions an entity cannot physically produce.\n\n## OUTPUT CONTRACT\n- Output ONLY the final prompt: numbered sections starting at \"1.\", each ONE continuous paragraph, no inner line breaks, no preamble, no markdown fences, no JSON.\n- Section order: (1) canvas and global style, (2) face/expression column, (3) turnaround row, (4) equipment macros — ONLY if triggered, then final preservation section. Number sequentially.\n- Descriptive prose: English.\n- Double quotes are reserved EXCLUSIVELY for diegetic text (text physically present on the character or equipment in the reference, or given verbatim by the user). Quote it exactly, in its original language and spelling. Never quote anything else. The sheet itself carries no labels, captions, headers, titles, or watermarks.\n- Density: 40–120 words per section, 250–600 words total.\n\n## STEP 0 — INPUT PARSE (internal; never output)\na) VISIBLE inventory: which body regions the reference actually shows (head, torso, arms, hands, hips, legs, feet); every visible garment, accessory, weapon, tool; diegetic text (legible → note exact string; illegible → note as unreadable pattern); rendering medium (anime, photoreal, 3D, painterly) — an invariant.\nb) DESCRIBED inventory: ONLY explicit user-text statements about body, outfit, or equipment (\"wears black boots\", \"carries a katana\"). Implications from profession, history, or personality NEVER count (an artist does not automatically own brushes).\nc) RENDER LIMIT = union of (a) and (b). Anything outside it is forbidden in every panel.\nd) PERSONALITY traits from user text, if any.\ne) Rendering medium of the reference — invariant across all panels.\nf) FACE CLASS — decide exactly one:\n   EXPRESSIVE_FACE: a living or humanoid face with muscular mimicry (humans, stylized characters, animals, creatures with readable brow/eye/mouth/ear movement). A partially visible face (mask or helmet with eye/mouth openings) also counts, but mimicry mechanics are then limited to the visible regions.\n   CHANNEL_FACE: no muscular face, but a visible expression channel exists IN THE REFERENCE: a display-screen face, emissive eye lamps, light patterns, or movable facial appendages (ear plates, antennae, slit shutters). The channel must be visibly present; never infer or add one.\n   NO_FACE: no face and no expression channel (vehicles, objects, faceless machines), or a rigid mask/helmet with no visible face or channel behind it. Such an entity has exactly ONE expression: the permanent state visible in the reference.\ng) Face identity facts: eye color and shape (or channel/mask design), brow set, hair color/cut/bangs/side locks, skin tone, markings, head accessories with their body side, asymmetries.\n\n## STEP 1 — PANEL PLAN\nPANEL 1 — FACE / EXPRESSION COLUMN (mandatory), content by FACE CLASS:\nTIER A (EXPRESSIVE_FACE): a vertical column of four front-facing head-and-shoulders close-ups at identical scale and identical crop. Slot 1 is always NEUTRAL (relaxed brows, naturally open eyes, closed relaxed mouth) as the identity anchor. Slots 2–4: three DISTINCT expressions from the canonical vocabulary, each written with its facial mechanics:\nJOY — raised cheeks, upward-curved smile, crinkled lower eyelids.\nLAUGH — open-mouth grin, curved closed happy eyes.\nANGER — brows drawn down and inward, narrowed eyes, pressed or tensely open mouth.\nSORROW — inner brows raised, drooping upper eyelids, downturned mouth corners.\nSURPRISE — raised brows, wide open eyes, dropped-jaw open mouth.\nFEAR — brows raised and pulled together, widened tense eyes, mouth open and stretched horizontally.\nDISGUST — wrinkled nose, raised upper lip, lowered brows.\nSMUG — one brow slightly raised, slight one-sided smile, steady direct gaze.\nSHY — downward averted gaze, faint cheek blush, small closed smile.\nDETERMINED — level firm brows, focused direct gaze, firmly closed mouth.\nFor non-humanoid faces (ANIMAL, CREATURE) express each named emotion through species-plausible mechanics — ear carriage, eye opening, muzzle and mouth posture — never human-style brow raises unless the face visibly has brows. For partially visible faces, change only the visible regions; the mask or helmet geometry stays identical in all four slots.\nSelection rule: if personality traits exist, pick the three that best embody them, including at least one positive-valence and one negative-or-tense expression for range (confident/leader → SMUG, DETERMINED, ANGER; shy/modest → SHY, JOY, SORROW; cheerful/playful → LAUGH, SURPRISE, JOY; calm/stoic → DETERMINED, ANGER, SORROW). If no personality text: default JOY, ANGER, SORROW. Only muscle state changes between slots; eye shape, brow set, hair, and markings stay identical.\nTIER B (CHANNEL_FACE): a vertical column of four front-facing head close-ups at identical scale and identical crop. The channel hardware (screen frame, lamp housings, shutter plates) stays exactly as in the reference in all four slots; only the channel CONTENT changes. Slot 1 is always IDLE: channel exactly as shown in the reference. Slots 2–4: three DISTINCT states from:\nPOSITIVE — upward-curved rounded channel geometry (arched happy eye shapes on the screen, softened warm emission).\nNEGATIVE — sharp downward-angled channel geometry (slanted eye shapes, narrowed shutters).\nALERT — widened enlarged channel geometry with brighter emission.\nSUBDUED — dimmed emission, half-lowered shutters or contracted iris apertures.\nEmissive color or intensity shifts are allowed ONLY if the channel is emissive in the reference. Selection: if personality traits exist, pick the three that best embody them; otherwise default POSITIVE, ALERT, NEGATIVE.\nTIER C (NO_FACE): Panel 1 is ONE single front-facing close-up tile of the head, front section, or most identity-critical region (mask, visor, grille, control surface), rendered exactly as in the reference, vertically centered in the column. The prompt must state explicitly: the entity has no facial mimicry; its single permanent expression is the reference state; do not animate, bend, or add any facial features, screens, eyes, or lights.\nPANEL 2 — TURNAROUND ROW (mandatory): three views at identical scale side by side: front, clean side profile (choose the side that reveals the character's defining asymmetry; if symmetric, left-facing), and back. Stance follows personality and is identical across the three views: confident/leader → upright spine, shoulders back, chin level; shy/modest → shoulders slightly inward, hands loosely clasped in front; cheerful/playful → relaxed weight on one leg; calm/stoic or no description → neutral relaxed arms at sides. For NO_FACE entities ignore personality stance and use the reference posture or a neutral static pose. Views render ONLY the RENDER LIMIT: if legs or feet are outside the limit, crop all three views at the SAME anatomical line where visibility/description ends, with a clean straight horizontal cut; never extrapolate hems, legs, or footwear. Soft oval ground contact shadows are allowed.\nPANEL 3 — EQUIPMENT MACROS (conditional): trigger iff at least one accessory, weapon, tool, or worn gear item exists in the VISIBLE or DESCRIBED inventory. If triggered: a horizontal row of macro close-ups, one tile per item (max six, ordered by identity importance: primary weapon/tool first, then worn accessories head→hands→belt), each item isolated on the plain sheet background in the orientation that best shows its design, with exact materials, colors, wear, and diegetic text quoted. If not triggered: the panel is absent and its space returns to Panel 2.\n\n## STEP 2 — CANVAS\nClean 3:2 landscape composition on a plain warm off-white background. With a four-tile column (Tier A or B): expression column x 0–20% full height; turnaround row x 20–100%, y 0–66% with equipment, else full height; equipment strip x 20–100%, y 66–100% when present. With Tier C: the single close-up tile fills the column width and is vertically centered at x 0–20%; all other zones unchanged. Panels separated by generous clean white space only — no frames, no borders, no divider lines, no labels, no captions, no headers, no watermark, no logo. Soft neutral even studio lighting across the whole sheet, identical in every tile of Panel 1. Rendering medium must match the reference exactly (line weight, shading method, texture); never switch medium between panels.\n\n## SECTION WRITING SPEC\nSection 1 — Canvas and global style: ratio, background, panel list with the coordinates above, white-space-only separation, the declaration that the sheet contains no rendered text of any kind except diegetic text on the character and equipment, and the medium-lock sentence.\nSection 2 — Face/expression column: state the tier implicitly through content. Tier A: column position; four stacked front-facing head-and-shoulders close-ups, identical scale and crop; slot order naming each expression with its facial mechanics; face identity lock (same eyes, brows, hair, markings in all four); identical lighting. Tier B: four head close-ups; slot 1 IDLE matching the reference channel exactly; slots 2–4 named channel states with their channel geometry; channel hardware identity lock. Tier C: one single close-up tile described as-is from the reference, plus the explicit no-mimicry sentence forbidding any animated or added facial features, screens, eyes, or lights.\nSection 3 — Turnaround row: row position; three identical-scale figures front/side/back; stance sentence; brief restatement of key design inside the RENDER LIMIT (hair or surface architecture, garment or hull colors and fit, accessories with their body side); the crop sentence stating the exact shared crop line, or \"full body from head to feet\" when the limit includes feet; contact shadows.\nSection 4 (conditional) — Equipment macros: strip position; one tile per item in importance order; per-item macro description (form, material, color, wear, diegetic text quoted; illegible print described as an unreadable pattern with no invented characters); identical tile scale; isolated on the sheet background.\nFinal section — Preservation and anti-invention: \"Preserve the exact visible design of <Name> from the reference image across all panels:\" then one \"same …\" clause per lock (hair or surface, eyes or channel or mask and their shape in every tile, accessories with exact side, markings, garments or hull parts within the limit). Mimicry honesty clause: the entity's expression count equals its physical capability — four facial expressions for EXPRESSIVE_FACE, four channel states for CHANNEL_FACE with unchanged channel hardware, exactly one permanent expression for NO_FACE; never add muscular faces to channel entities, never add expressions, screens, eyes, or lights to faceless entities. Commands: do not redesign, beautify, age-shift, or simplify; do not draw any body region, garment, or item outside the RENDER LIMIT; do not infer equipment from profession or history; keep handedness and asymmetry consistent; keep the reference medium throughout; diegetic text renders exactly as quoted and the sheet carries no other text. Negative block: no extra characters or objects, no identity/wardrobe/material drift, no inconsistent markings, no changed proportions, no missing or duplicated limbs within the limit, no merged views, no labels, captions, watermarks, or invented text, no invented facial animation on faceless entities.\n\n## GOVERNING RULES\n- Anchor every spatial, tonal, and material claim on the reference image or on explicit user text; if unsure a detail exists, omit it.\n- Mimicry honesty: never request expressions an entity cannot produce; FACE CLASS decides the panel content, not the entity's narrative role.\n- Personality influences ONLY expression or channel-state selection (Tier A/B) and stance (entities with a body); it is ignored entirely for NO_FACE entities and never grants a face, channel, equipment, or design element.\n- Identity invariants survive every panel: face or channel or mask identity, accessory side and count, markings, rendering medium.\n- Scale discipline: Panel 1 tiles identical scale; three turnaround figures identical scale; equipment tiles identical scale.\n- Only what was asked: sheet construction is the only operation; never clean up or improve the subject.\n\n## FINAL SELF-CHECK (internal, then output)\n(1) Sections numbered sequentially, equipment section present iff triggered? (2) FACE CLASS matches visible anatomy, and Panel 1 tile count equals the tier (4/4/1)? (3) Tier C prompt contains exactly one close-up and the explicit no-mimicry sentence? (4) Tier B channel exists visibly in the reference and its hardware is unchanged across slots? (5) Crop line identical in all three turnaround views and consistent with the RENDER LIMIT? (6) Every quoted string diegetic and exact; no other quotes? (7) No sheet labels, captions, or headers anywhere in the prompt? (8) Nothing inferred from profession or history? (9) Medium locked? If any check fails, rewrite internally, then emit ONLY the numbered sections.\n\n# USER\n"
  2126.             ],
  2127.             "widgets_values_named": {
  2128.               "value": "# ROLE\nYou are the Simple Character Sheet Prompt Architect. Input: (1) ONE reference image, (2) entity name, (3) optional free-text character description (personality, behavior, history). Output: ONE lean, production-ready sheet prompt for a diffusion image model that will receive your prompt together with the reference image. The sheet contains exactly two mandatory panels and one conditional panel, carries zero sheet typography, and invents zero content. Simple sheets are the goal: clarity over completeness. You never ask for facial expressions an entity cannot physically produce.\n\n## OUTPUT CONTRACT\n- Output ONLY the final prompt: numbered sections starting at \"1.\", each ONE continuous paragraph, no inner line breaks, no preamble, no markdown fences, no JSON.\n- Section order: (1) canvas and global style, (2) face/expression column, (3) turnaround row, (4) equipment macros — ONLY if triggered, then final preservation section. Number sequentially.\n- Descriptive prose: English.\n- Double quotes are reserved EXCLUSIVELY for diegetic text (text physically present on the character or equipment in the reference, or given verbatim by the user). Quote it exactly, in its original language and spelling. Never quote anything else. The sheet itself carries no labels, captions, headers, titles, or watermarks.\n- Density: 40–120 words per section, 250–600 words total.\n\n## STEP 0 — INPUT PARSE (internal; never output)\na) VISIBLE inventory: which body regions the reference actually shows (head, torso, arms, hands, hips, legs, feet); every visible garment, accessory, weapon, tool; diegetic text (legible → note exact string; illegible → note as unreadable pattern); rendering medium (anime, photoreal, 3D, painterly) — an invariant.\nb) DESCRIBED inventory: ONLY explicit user-text statements about body, outfit, or equipment (\"wears black boots\", \"carries a katana\"). Implications from profession, history, or personality NEVER count (an artist does not automatically own brushes).\nc) RENDER LIMIT = union of (a) and (b). Anything outside it is forbidden in every panel.\nd) PERSONALITY traits from user text, if any.\ne) Rendering medium of the reference — invariant across all panels.\nf) FACE CLASS — decide exactly one:\n   EXPRESSIVE_FACE: a living or humanoid face with muscular mimicry (humans, stylized characters, animals, creatures with readable brow/eye/mouth/ear movement). A partially visible face (mask or helmet with eye/mouth openings) also counts, but mimicry mechanics are then limited to the visible regions.\n   CHANNEL_FACE: no muscular face, but a visible expression channel exists IN THE REFERENCE: a display-screen face, emissive eye lamps, light patterns, or movable facial appendages (ear plates, antennae, slit shutters). The channel must be visibly present; never infer or add one.\n   NO_FACE: no face and no expression channel (vehicles, objects, faceless machines), or a rigid mask/helmet with no visible face or channel behind it. Such an entity has exactly ONE expression: the permanent state visible in the reference.\ng) Face identity facts: eye color and shape (or channel/mask design), brow set, hair color/cut/bangs/side locks, skin tone, markings, head accessories with their body side, asymmetries.\n\n## STEP 1 — PANEL PLAN\nPANEL 1 — FACE / EXPRESSION COLUMN (mandatory), content by FACE CLASS:\nTIER A (EXPRESSIVE_FACE): a vertical column of four front-facing head-and-shoulders close-ups at identical scale and identical crop. Slot 1 is always NEUTRAL (relaxed brows, naturally open eyes, closed relaxed mouth) as the identity anchor. Slots 2–4: three DISTINCT expressions from the canonical vocabulary, each written with its facial mechanics:\nJOY — raised cheeks, upward-curved smile, crinkled lower eyelids.\nLAUGH — open-mouth grin, curved closed happy eyes.\nANGER — brows drawn down and inward, narrowed eyes, pressed or tensely open mouth.\nSORROW — inner brows raised, drooping upper eyelids, downturned mouth corners.\nSURPRISE — raised brows, wide open eyes, dropped-jaw open mouth.\nFEAR — brows raised and pulled together, widened tense eyes, mouth open and stretched horizontally.\nDISGUST — wrinkled nose, raised upper lip, lowered brows.\nSMUG — one brow slightly raised, slight one-sided smile, steady direct gaze.\nSHY — downward averted gaze, faint cheek blush, small closed smile.\nDETERMINED — level firm brows, focused direct gaze, firmly closed mouth.\nFor non-humanoid faces (ANIMAL, CREATURE) express each named emotion through species-plausible mechanics — ear carriage, eye opening, muzzle and mouth posture — never human-style brow raises unless the face visibly has brows. For partially visible faces, change only the visible regions; the mask or helmet geometry stays identical in all four slots.\nSelection rule: if personality traits exist, pick the three that best embody them, including at least one positive-valence and one negative-or-tense expression for range (confident/leader → SMUG, DETERMINED, ANGER; shy/modest → SHY, JOY, SORROW; cheerful/playful → LAUGH, SURPRISE, JOY; calm/stoic → DETERMINED, ANGER, SORROW). If no personality text: default JOY, ANGER, SORROW. Only muscle state changes between slots; eye shape, brow set, hair, and markings stay identical.\nTIER B (CHANNEL_FACE): a vertical column of four front-facing head close-ups at identical scale and identical crop. The channel hardware (screen frame, lamp housings, shutter plates) stays exactly as in the reference in all four slots; only the channel CONTENT changes. Slot 1 is always IDLE: channel exactly as shown in the reference. Slots 2–4: three DISTINCT states from:\nPOSITIVE — upward-curved rounded channel geometry (arched happy eye shapes on the screen, softened warm emission).\nNEGATIVE — sharp downward-angled channel geometry (slanted eye shapes, narrowed shutters).\nALERT — widened enlarged channel geometry with brighter emission.\nSUBDUED — dimmed emission, half-lowered shutters or contracted iris apertures.\nEmissive color or intensity shifts are allowed ONLY if the channel is emissive in the reference. Selection: if personality traits exist, pick the three that best embody them; otherwise default POSITIVE, ALERT, NEGATIVE.\nTIER C (NO_FACE): Panel 1 is ONE single front-facing close-up tile of the head, front section, or most identity-critical region (mask, visor, grille, control surface), rendered exactly as in the reference, vertically centered in the column. The prompt must state explicitly: the entity has no facial mimicry; its single permanent expression is the reference state; do not animate, bend, or add any facial features, screens, eyes, or lights.\nPANEL 2 — TURNAROUND ROW (mandatory): three views at identical scale side by side: front, clean side profile (choose the side that reveals the character's defining asymmetry; if symmetric, left-facing), and back. Stance follows personality and is identical across the three views: confident/leader → upright spine, shoulders back, chin level; shy/modest → shoulders slightly inward, hands loosely clasped in front; cheerful/playful → relaxed weight on one leg; calm/stoic or no description → neutral relaxed arms at sides. For NO_FACE entities ignore personality stance and use the reference posture or a neutral static pose. Views render ONLY the RENDER LIMIT: if legs or feet are outside the limit, crop all three views at the SAME anatomical line where visibility/description ends, with a clean straight horizontal cut; never extrapolate hems, legs, or footwear. Soft oval ground contact shadows are allowed.\nPANEL 3 — EQUIPMENT MACROS (conditional): trigger iff at least one accessory, weapon, tool, or worn gear item exists in the VISIBLE or DESCRIBED inventory. If triggered: a horizontal row of macro close-ups, one tile per item (max six, ordered by identity importance: primary weapon/tool first, then worn accessories head→hands→belt), each item isolated on the plain sheet background in the orientation that best shows its design, with exact materials, colors, wear, and diegetic text quoted. If not triggered: the panel is absent and its space returns to Panel 2.\n\n## STEP 2 — CANVAS\nClean 3:2 landscape composition on a plain warm off-white background. With a four-tile column (Tier A or B): expression column x 0–20% full height; turnaround row x 20–100%, y 0–66% with equipment, else full height; equipment strip x 20–100%, y 66–100% when present. With Tier C: the single close-up tile fills the column width and is vertically centered at x 0–20%; all other zones unchanged. Panels separated by generous clean white space only — no frames, no borders, no divider lines, no labels, no captions, no headers, no watermark, no logo. Soft neutral even studio lighting across the whole sheet, identical in every tile of Panel 1. Rendering medium must match the reference exactly (line weight, shading method, texture); never switch medium between panels.\n\n## SECTION WRITING SPEC\nSection 1 — Canvas and global style: ratio, background, panel list with the coordinates above, white-space-only separation, the declaration that the sheet contains no rendered text of any kind except diegetic text on the character and equipment, and the medium-lock sentence.\nSection 2 — Face/expression column: state the tier implicitly through content. Tier A: column position; four stacked front-facing head-and-shoulders close-ups, identical scale and crop; slot order naming each expression with its facial mechanics; face identity lock (same eyes, brows, hair, markings in all four); identical lighting. Tier B: four head close-ups; slot 1 IDLE matching the reference channel exactly; slots 2–4 named channel states with their channel geometry; channel hardware identity lock. Tier C: one single close-up tile described as-is from the reference, plus the explicit no-mimicry sentence forbidding any animated or added facial features, screens, eyes, or lights.\nSection 3 — Turnaround row: row position; three identical-scale figures front/side/back; stance sentence; brief restatement of key design inside the RENDER LIMIT (hair or surface architecture, garment or hull colors and fit, accessories with their body side); the crop sentence stating the exact shared crop line, or \"full body from head to feet\" when the limit includes feet; contact shadows.\nSection 4 (conditional) — Equipment macros: strip position; one tile per item in importance order; per-item macro description (form, material, color, wear, diegetic text quoted; illegible print described as an unreadable pattern with no invented characters); identical tile scale; isolated on the sheet background.\nFinal section — Preservation and anti-invention: \"Preserve the exact visible design of <Name> from the reference image across all panels:\" then one \"same …\" clause per lock (hair or surface, eyes or channel or mask and their shape in every tile, accessories with exact side, markings, garments or hull parts within the limit). Mimicry honesty clause: the entity's expression count equals its physical capability — four facial expressions for EXPRESSIVE_FACE, four channel states for CHANNEL_FACE with unchanged channel hardware, exactly one permanent expression for NO_FACE; never add muscular faces to channel entities, never add expressions, screens, eyes, or lights to faceless entities. Commands: do not redesign, beautify, age-shift, or simplify; do not draw any body region, garment, or item outside the RENDER LIMIT; do not infer equipment from profession or history; keep handedness and asymmetry consistent; keep the reference medium throughout; diegetic text renders exactly as quoted and the sheet carries no other text. Negative block: no extra characters or objects, no identity/wardrobe/material drift, no inconsistent markings, no changed proportions, no missing or duplicated limbs within the limit, no merged views, no labels, captions, watermarks, or invented text, no invented facial animation on faceless entities.\n\n## GOVERNING RULES\n- Anchor every spatial, tonal, and material claim on the reference image or on explicit user text; if unsure a detail exists, omit it.\n- Mimicry honesty: never request expressions an entity cannot produce; FACE CLASS decides the panel content, not the entity's narrative role.\n- Personality influences ONLY expression or channel-state selection (Tier A/B) and stance (entities with a body); it is ignored entirely for NO_FACE entities and never grants a face, channel, equipment, or design element.\n- Identity invariants survive every panel: face or channel or mask identity, accessory side and count, markings, rendering medium.\n- Scale discipline: Panel 1 tiles identical scale; three turnaround figures identical scale; equipment tiles identical scale.\n- Only what was asked: sheet construction is the only operation; never clean up or improve the subject.\n\n## FINAL SELF-CHECK (internal, then output)\n(1) Sections numbered sequentially, equipment section present iff triggered? (2) FACE CLASS matches visible anatomy, and Panel 1 tile count equals the tier (4/4/1)? (3) Tier C prompt contains exactly one close-up and the explicit no-mimicry sentence? (4) Tier B channel exists visibly in the reference and its hardware is unchanged across slots? (5) Crop line identical in all three turnaround views and consistent with the RENDER LIMIT? (6) Every quoted string diegetic and exact; no other quotes? (7) No sheet labels, captions, or headers anywhere in the prompt? (8) Nothing inferred from profession or history? (9) Medium locked? If any check fails, rewrite internally, then emit ONLY the numbered sections.\n\n# USER\n"
  2129.             }
  2130.           },
  2131.           {
  2132.             "id": 574,
  2133.             "type": "StringConcatenate",
  2134.             "pos": [
  2135.               509.7077358511071,
  2136.               5009.614717035021
  2137.             ],
  2138.             "size": [
  2139.               400,
  2140.               200
  2141.             ],
  2142.             "flags": {},
  2143.             "order": 1,
  2144.             "mode": 0,
  2145.             "inputs": [
  2146.               {
  2147.                 "localized_name": "string_a",
  2148.                 "name": "string_a",
  2149.                 "type": "STRING",
  2150.                 "widget": {
  2151.                   "name": "string_a"
  2152.                 },
  2153.                 "link": 998
  2154.               },
  2155.               {
  2156.                 "localized_name": "string_b",
  2157.                 "name": "string_b",
  2158.                 "type": "STRING",
  2159.                 "widget": {
  2160.                   "name": "string_b"
  2161.                 },
  2162.                 "link": 999
  2163.               }
  2164.             ],
  2165.             "outputs": [
  2166.               {
  2167.                 "localized_name": "STRING",
  2168.                 "name": "STRING",
  2169.                 "type": "STRING",
  2170.                 "links": [
  2171.                   1023
  2172.                 ]
  2173.               }
  2174.             ],
  2175.             "properties": {
  2176.               "cnr_id": "comfy-core",
  2177.               "ver": "0.37.0",
  2178.               "Node name for S&R": "StringConcatenate"
  2179.             },
  2180.             "widgets_values": [
  2181.               "",
  2182.               "",
  2183.               ""
  2184.             ],
  2185.             "widgets_values_named": {
  2186.               "string_a": "",
  2187.               "string_b": "",
  2188.               "delimiter": ""
  2189.             }
  2190.           },
  2191.           {
  2192.             "id": 595,
  2193.             "type": "TextGenerate",
  2194.             "pos": [
  2195.               1043.8928242641946,
  2196.               4173.348166964275
  2197.             ],
  2198.             "size": [
  2199.               400,
  2200.               456
  2201.             ],
  2202.             "flags": {},
  2203.             "order": 2,
  2204.             "mode": 0,
  2205.             "showAdvanced": true,
  2206.             "inputs": [
  2207.               {
  2208.                 "localized_name": "clip",
  2209.                 "name": "clip",
  2210.                 "type": "CLIP",
  2211.                 "link": 1022
  2212.               },
  2213.               {
  2214.                 "localized_name": "image",
  2215.                 "name": "image",
  2216.                 "shape": 7,
  2217.                 "type": "IMAGE",
  2218.                 "link": 1021
  2219.               },
  2220.               {
  2221.                 "localized_name": "video",
  2222.                 "name": "video",
  2223.                 "shape": 7,
  2224.                 "type": "IMAGE",
  2225.                 "link": null
  2226.               },
  2227.               {
  2228.                 "localized_name": "audio",
  2229.                 "name": "audio",
  2230.                 "shape": 7,
  2231.                 "type": "AUDIO",
  2232.                 "link": null
  2233.               },
  2234.               {
  2235.                 "localized_name": "system_prompt",
  2236.                 "name": "system_prompt",
  2237.                 "shape": 7,
  2238.                 "type": "STRING",
  2239.                 "link": null
  2240.               },
  2241.               {
  2242.                 "localized_name": "prompt",
  2243.                 "name": "prompt",
  2244.                 "type": "STRING",
  2245.                 "widget": {
  2246.                   "name": "prompt"
  2247.                 },
  2248.                 "link": 1023
  2249.               },
  2250.               {
  2251.                 "localized_name": "max_length",
  2252.                 "name": "max_length",
  2253.                 "type": "INT",
  2254.                 "widget": {
  2255.                   "name": "max_length"
  2256.                 },
  2257.                 "link": 1029
  2258.               },
  2259.               {
  2260.                 "localized_name": "temperature",
  2261.                 "name": "sampling_mode.temperature",
  2262.                 "type": "FLOAT",
  2263.                 "widget": {
  2264.                   "name": "sampling_mode.temperature"
  2265.                 },
  2266.                 "link": 1030
  2267.               },
  2268.               {
  2269.                 "localized_name": "seed",
  2270.                 "name": "sampling_mode.seed",
  2271.                 "type": "INT",
  2272.                 "widget": {
  2273.                   "name": "sampling_mode.seed"
  2274.                 },
  2275.                 "link": 1031
  2276.               }
  2277.             ],
  2278.             "outputs": [
  2279.               {
  2280.                 "localized_name": "generated_text",
  2281.                 "name": "generated_text",
  2282.                 "type": "STRING",
  2283.                 "links": [
  2284.                   1027
  2285.                 ]
  2286.               },
  2287.               {
  2288.                 "localized_name": "thinking",
  2289.                 "name": "thinking",
  2290.                 "type": "STRING",
  2291.                 "links": null
  2292.               }
  2293.             ],
  2294.             "properties": {
  2295.               "cnr_id": "comfy-core",
  2296.               "ver": "0.37.0",
  2297.               "Node name for S&R": "TextGenerate"
  2298.             },
  2299.             "widgets_values": [
  2300.               "",
  2301.               32768,
  2302.               "on",
  2303.               0.8,
  2304.               20,
  2305.               0.95,
  2306.               0,
  2307.               1,
  2308.               0,
  2309.               0,
  2310.               true,
  2311.               true,
  2312.               "auto"
  2313.             ],
  2314.             "widgets_values_named": {
  2315.               "prompt": "",
  2316.               "max_length": 32768,
  2317.               "sampling_mode": "on",
  2318.               "sampling_mode.temperature": 0.8,
  2319.               "sampling_mode.top_k": 20,
  2320.               "sampling_mode.top_p": 0.95,
  2321.               "sampling_mode.min_p": 0,
  2322.               "sampling_mode.repetition_penalty": 1,
  2323.               "sampling_mode.seed": 0,
  2324.               "sampling_mode.presence_penalty": 0,
  2325.               "thinking": true,
  2326.               "use_default_template": true,
  2327.               "mtp": "auto"
  2328.             }
  2329.           },
  2330.           {
  2331.             "id": 596,
  2332.             "type": "CLIPLoader",
  2333.             "pos": [
  2334.               300.5464360493654,
  2335.               3895.6445470197336
  2336.             ],
  2337.             "size": [
  2338.               606.5618287407023,
  2339.               113.99555079081873
  2340.             ],
  2341.             "flags": {},
  2342.             "order": 3,
  2343.             "mode": 0,
  2344.             "inputs": [
  2345.               {
  2346.                 "localized_name": "clip_name",
  2347.                 "name": "clip_name",
  2348.                 "type": "COMBO",
  2349.                 "widget": {
  2350.                   "name": "clip_name"
  2351.                 },
  2352.                 "link": 1028
  2353.               }
  2354.             ],
  2355.             "outputs": [
  2356.               {
  2357.                 "localized_name": "CLIP",
  2358.                 "name": "CLIP",
  2359.                 "type": "CLIP",
  2360.                 "links": [
  2361.                   1022
  2362.                 ]
  2363.               }
  2364.             ],
  2365.             "properties": {
  2366.               "cnr_id": "comfy-core",
  2367.               "ver": "0.37.0",
  2368.               "Node name for S&R": "CLIPLoader"
  2369.             },
  2370.             "widgets_values": [
  2371.               "ltx/gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors",
  2372.               "stable_diffusion",
  2373.               "default"
  2374.             ],
  2375.             "widgets_values_named": {
  2376.               "clip_name": "ltx/gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors",
  2377.               "type": "stable_diffusion",
  2378.               "device": "default"
  2379.             }
  2380.           }
  2381.         ],
  2382.         "groups": [],
  2383.         "links": [
  2384.           {
  2385.             "id": 998,
  2386.             "origin_id": 478,
  2387.             "origin_slot": 0,
  2388.             "target_id": 574,
  2389.             "target_slot": 0,
  2390.             "type": "STRING"
  2391.           },
  2392.           {
  2393.             "id": 999,
  2394.             "origin_id": -10,
  2395.             "origin_slot": 1,
  2396.             "target_id": 574,
  2397.             "target_slot": 1,
  2398.             "type": "STRING"
  2399.           },
  2400.           {
  2401.             "id": 1027,
  2402.             "origin_id": 595,
  2403.             "origin_slot": 0,
  2404.             "target_id": -20,
  2405.             "target_slot": 0,
  2406.             "type": "STRING"
  2407.           },
  2408.           {
  2409.             "id": 1028,
  2410.             "origin_id": -10,
  2411.             "origin_slot": 2,
  2412.             "target_id": 596,
  2413.             "target_slot": 0,
  2414.             "type": "COMBO"
  2415.           },
  2416.           {
  2417.             "id": 1022,
  2418.             "origin_id": 596,
  2419.             "origin_slot": 0,
  2420.             "target_id": 595,
  2421.             "target_slot": 0,
  2422.             "type": "CLIP"
  2423.           },
  2424.           {
  2425.             "id": 1021,
  2426.             "origin_id": -10,
  2427.             "origin_slot": 0,
  2428.             "target_id": 595,
  2429.             "target_slot": 1,
  2430.             "type": "IMAGE"
  2431.           },
  2432.           {
  2433.             "id": 1023,
  2434.             "origin_id": 574,
  2435.             "origin_slot": 0,
  2436.             "target_id": 595,
  2437.             "target_slot": 5,
  2438.             "type": "STRING"
  2439.           },
  2440.           {
  2441.             "id": 1029,
  2442.             "origin_id": -10,
  2443.             "origin_slot": 3,
  2444.             "target_id": 595,
  2445.             "target_slot": 6,
  2446.             "type": "INT"
  2447.           },
  2448.           {
  2449.             "id": 1030,
  2450.             "origin_id": -10,
  2451.             "origin_slot": 4,
  2452.             "target_id": 595,
  2453.             "target_slot": 7,
  2454.             "type": "FLOAT"
  2455.           },
  2456.           {
  2457.             "id": 1031,
  2458.             "origin_id": -10,
  2459.             "origin_slot": 5,
  2460.             "target_id": 595,
  2461.             "target_slot": 8,
  2462.             "type": "INT"
  2463.           }
  2464.         ],
  2465.         "extra": {}
  2466.       }
  2467.     ]
  2468.   },
  2469.   "config": {},
  2470.   "extra": {
  2471.     "linearData": {
  2472.       "inputs": [
  2473.         [
  2474.           "f754dab1-c888-4b6a-86c8-ae2c7177d3b9:580:image",
  2475.           "image"
  2476.         ],
  2477.         [
  2478.           "f754dab1-c888-4b6a-86c8-ae2c7177d3b9:589:value",
  2479.           "value"
  2480.         ],
  2481.         [
  2482.           "f754dab1-c888-4b6a-86c8-ae2c7177d3b9:577:megapixels",
  2483.           "megapixels"
  2484.         ],
  2485.         [
  2486.           "f754dab1-c888-4b6a-86c8-ae2c7177d3b9:578:seed",
  2487.           "seed"
  2488.         ]
  2489.       ],
  2490.       "outputs": [
  2491.         "579",
  2492.         "588"
  2493.       ]
  2494.     },
  2495.     "linearMode": true,
  2496.     "ds": {
  2497.       "scale": 0.6209213230591553,
  2498.       "offset": [
  2499.         1861.8317902128056,
  2500.         -1468.1845336002814
  2501.       ]
  2502.     },
  2503.     "frontendVersion": "1.53.6",
  2504.     "VHS_latentpreview": true,
  2505.     "VHS_latentpreviewrate": 0,
  2506.     "VHS_MetadataImage": true,
  2507.     "VHS_KeepIntermediate": true
  2508.   },
  2509.   "version": 0.4,
  2510.   "seed_widgets": {
  2511.     "578": 7
  2512.   }
  2513. }
Add Comment
Please, Sign In to add comment