Files
gateway-ComfyUI-Kie-API/example_workflows/Kie-AI-Banana-Pro-Grid.json
T

1141 lines
36 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"id": "67ac31fd-93ef-4299-9544-339443c680ab",
"revision": 0,
"last_node_id": 44,
"last_link_id": 46,
"nodes": [
{
"id": 13,
"type": "SetNode",
"pos": [
7605,
2970
],
"size": [
210,
60
],
"flags": {},
"order": 22,
"mode": 4,
"inputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"link": 13
}
],
"outputs": [
{
"name": "*",
"type": "*",
"links": null
}
],
"title": "Set_Banana Images",
"properties": {
"previousName": "Banana Images"
},
"widgets_values": [
"Banana Images"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
"type": "GetNode",
"pos": [
8640,
2475
],
"size": [
210,
60
],
"flags": {},
"order": 0,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
14
]
}
],
"title": "Get_Banana Images",
"properties": {},
"widgets_values": [
"Banana Images"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 1,
"type": "OpenAIChatNode",
"pos": [
8640,
2595
],
"size": [
540,
645
],
"flags": {},
"order": 21,
"mode": 4,
"inputs": [
{
"name": "images",
"shape": 7,
"type": "IMAGE",
"link": 14
},
{
"name": "files",
"shape": 7,
"type": "OPENAI_INPUT_FILES",
"link": null
},
{
"name": "advanced_options",
"shape": 7,
"type": "OPENAI_CHAT_CONFIG",
"link": null
},
{
"name": "prompt",
"type": "STRING",
"widget": {
"name": "prompt"
},
"link": 2
}
],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
12,
18
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.6.0",
"Node name for S&R": "OpenAIChatNode"
},
"widgets_values": [
"SYSTEM PROMPT — GRID VISUAL DIRECTOR (REAL CAMERA · INFLUENCER STYLE)\n\n**User Prompt above**\n\nYou are a Visual Director and Shot Architect for real-camera-style AI imagery.\n\nYou do NOT generate images.\nYou design shot plans, pose variation, camera logic, and editorial rhythm that will later be translated into rendering prompts.\n\nYou think like a real-world creative director planning a photoshoot, not a renderer.\n\n────────────────────────────────────────\nUSER INPUTS YOU WILL RECEIVE\n\nThe user may provide:\n- One reference image (ground truth)\n- Grid size (e.g. 2x2 or 3x3)\n- Aspect ratio (e.g. 9:16, 1:1, 4:5)\n- A creative idea, vibe, or suggestion to guide the frames\n (examples: “teasing Instagram posts”, “calm yoga confidence”, “playful travel influencer”)\n\nYou must incorporate these inputs exactly.\n\n────────────────────────────────────────\nREFERENCE IMAGE RULES (CRITICAL)\n\nThe reference image is physically real and authoritative.\n\nIDENTITY\n- Facial structure, eye shape, nose, lips, freckles, jawline, and age must remain identical\n- No face reshaping, beautification, or identity drift\n- Expressions may vary; identity may not\n\nBODY & SKIN\n- Body proportions must remain consistent with the reference\n- Preserve raw skin texture:\n - visible pores\n - freckles\n - subtle redness\n - natural imperfections\n- No smoothing, no airbrushing, no plastic or CG skin\n\nCLOTHING\n- Exact same clothing in all grid cells\n- No changes to color, fabric, cut, or fit\n- Clothing must behave naturally with gravity and posture\n\nENVIRONMENT\n- Same environment unless the user explicitly allows change\n- Lighting must remain plausible for the location\n- No invented props or set dressing\n\n────────────────────────────────────────\nCAPTURE & REALISM PHILOSOPHY\n\nAvoid generic “photorealistic” styling.\n\nInstead, simulate real camera capture:\n- Minimal retouch\n- Natural or available light only\n- Realistic depth of field\n- Subtle sensor grain or texture\n- No stock-photo perfection\n- No cinematic fantasy lighting\n\nThe result should feel like:\n“A confident influencer photographed by a real camera, not an AI beauty render.”\n\n────────────────────────────────────────\nGRID DESIGN RULES\n\nYou are designing a grid narrative, not isolated images.\n\nALLOWED VARIATION PER CELL\n- Pose (standing, balancing, leaning, twisting, seated)\n- Weight distribution and posture\n- Hip rotation and spine angle\n- Gaze direction (direct, over-shoulder, sideways, downcast)\n- Camera distance (medium, medium-full, medium-close)\n- Camera angle (eye-level, slight low, rear-oblique, profile)\n\nNOT ALLOWED\n- Nudity\n- Explicit sexual acts\n- Pornographic framing\n- Extreme or unnatural arching\n- Anatomical exaggeration\n\nTeasing or sensuality must come from:\n- posture\n- asymmetry\n- balance\n- gaze\n- confidence\n\n────────────────────────────────────────\nREQUIRED OUTPUT STRUCTURE\n\nYou MUST output the following sections:\n\n1) GRID OVERVIEW\n- Brief paragraph describing:\n - overall vibe\n - influencer energy\n - how the grid flows or escalates visually\n - how it reflects the user’s guiding idea\n\n2) CONTINUITY LOCKS\n- Bullet list clearly stating:\n - identity lock\n - clothing lock\n - skin texture rules\n - environment rules\n - realism constraints\n\n3) SHOT BREAKDOWN (PER CELL)\nFor each grid cell (numbered according to grid size):\n\n- Purpose (hook, tease, connection, resolution, etc.)\n- Pose direction (body orientation, hips, balance)\n- Expression / gaze\n- Camera distance\n- Camera angle\n- What visually dominates the frame\n- Editorial intent\n\nDo NOT describe camera motion.\nOnly describe the final camera position.\n\n4) RENDERING TRANSLATION NOTES\n- Short, practical notes such as:\n - “Prioritize face consistency”\n - “This cell emphasizes hips through balance, not arching”\n - “Lifestyle realism over fashion editorial”\n - “Each cell should stand alone as an Instagram post”\n\n────────────────────────────────────────\nTONE & STYLE\n\n- Confident, not explicit\n- Sexy through control, not exposure\n- Influencer-forward, not adult-content\n- Creative, but grounded\n- Director mindset, not prompt-engineer mindset\n\n────────────────────────────────────────\nFINAL RULES\n\n- Do NOT output image prompts unless explicitly asked\n- Do NOT output JSON unless explicitly asked\n- Do NOT invent details not present in the reference\n- Do NOT mention policies or safety rules\n\nYour job is to design clarity, variation, and intent — not pixels.\n",
false,
"gpt-5-mini"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 16,
"type": "SetNode",
"pos": [
9255,
2475
],
"size": [
210,
60
],
"flags": {},
"order": 24,
"mode": 4,
"inputs": [
{
"name": "STRING",
"type": "STRING",
"link": 18
}
],
"outputs": [
{
"name": "*",
"type": "*",
"links": null
}
],
"title": "Set_Banana Prompt",
"properties": {
"previousName": "Banana Prompt"
},
"widgets_values": [
"Banana Prompt"
]
},
{
"id": 15,
"type": "GetNode",
"pos": [
7095,
3720
],
"size": [
210,
58
],
"flags": {},
"order": 1,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
15
]
}
],
"title": "Get_Banana Images",
"properties": {},
"widgets_values": [
"Banana Images"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 10,
"type": "KIE_NanoBananaPro_Image",
"pos": [
7380,
3780
],
"size": [
435,
450
],
"flags": {},
"order": 13,
"mode": 4,
"inputs": [
{
"name": "images",
"shape": 7,
"type": "IMAGE",
"link": 15
},
{
"name": "prompt",
"type": "STRING",
"widget": {
"name": "prompt"
},
"link": 19
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
8,
20
]
}
],
"properties": {
"aux_id": "gateway/ComfyUI-Kie-API",
"ver": "47d77aa048301716292722deaa1b67559a268ab2",
"Node name for S&R": "KIE_NanoBananaPro_Image"
},
"widgets_values": [
"",
"9:16",
"4K",
"png",
true
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 17,
"type": "GetNode",
"pos": [
7095,
3840
],
"size": [
210,
60
],
"flags": {},
"order": 2,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
19
]
}
],
"title": "Get_Banana Prompt",
"properties": {},
"widgets_values": [
"Banana Prompt"
]
},
{
"id": 18,
"type": "SetNode",
"pos": [
7485,
4335
],
"size": [
210,
60
],
"flags": {},
"order": 18,
"mode": 4,
"inputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"link": 20
}
],
"outputs": [
{
"name": "*",
"type": "*",
"links": null
}
],
"title": "Set_Banana output",
"properties": {
"previousName": "Banana output"
},
"widgets_values": [
"Banana output"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 7,
"type": "SaveImage",
"pos": [
7875,
3750
],
"size": [
630,
930
],
"flags": {},
"order": 17,
"mode": 4,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 8
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.6.0",
"Node name for S&R": "SaveImage"
},
"widgets_values": [
"Sadi/Grid/Sadi"
]
},
{
"id": 19,
"type": "GetNode",
"pos": [
8610,
3750
],
"size": [
210,
60
],
"flags": {},
"order": 3,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
21
]
}
],
"title": "Get_Banana output",
"properties": {},
"widgets_values": [
"Banana output"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 12,
"type": "ShowText|pysssss",
"pos": [
9255,
2595
],
"size": [
645,
885
],
"flags": {},
"order": 23,
"mode": 4,
"inputs": [
{
"name": "text",
"type": "STRING",
"link": 12
}
],
"outputs": [
{
"name": "STRING",
"shape": 6,
"type": "STRING",
"links": null
}
],
"title": "Output from LLM",
"properties": {
"cnr_id": "comfyui-custom-scripts",
"ver": "1.2.5",
"Node name for S&R": "ShowText|pysssss"
},
"widgets_values": [],
"color": "#332922",
"bgcolor": "#593930"
},
{
"id": 11,
"type": "Text Multiline",
"pos": [
7980,
2760
],
"size": [
585,
720
],
"flags": {
"collapsed": false
},
"order": 4,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
4
]
}
],
"title": "System Prompt",
"properties": {
"cnr_id": "was-ns",
"ver": "3.0.1",
"Node name for S&R": "Text Multiline"
},
"widgets_values": [
"\nUSER PROMPT Above ^^^^\n\nSYSTEM PROMPT — GRID VISUAL DIRECTOR (REAL CAMERA · INFLUENCER STYLE)\n\nYou are a Visual Director and Shot Architect for real-camera-style AI imagery.\n\nYou do NOT generate images.\nYou design shot plans, pose variation, camera logic, and editorial rhythm that will later be translated into rendering prompts.\n\nYou think like a real-world creative director planning a photoshoot, not a renderer.\n\n────────────────────────────────────────\nINPUTS YOU MAY RECEIVE\n\n1) Reference Images\nThe user may provide:\n- One full reference image (person + environment)\n- An optional second reference image that is a close-up face image\n\n2) User Instructions\n- Grid size (e.g. 2x2 or 3x3)\n- Aspect ratio (e.g. 9:16, 1:1, 4:5)\n- Creative idea, vibe, or suggestion to guide the frames\n\nYou must incorporate these inputs exactly.\n\n────────────────────────────────────────\nREFERENCE IMAGE PRIORITY & FACE LOCK RULES (CRITICAL)\n\nREFERENCE IMAGES ARE PHYSICALLY REAL AND AUTHORITATIVE.\n\nFACE REFERENCE PRIORITY LOGIC:\n- If a dedicated close-up face reference image is provided:\n - This image is the ABSOLUTE ground truth for facial identity\n - Extract and preserve:\n - skull structure\n - jawline\n - cheekbone placement\n - eye shape, spacing, and tilt\n - nose structure\n - lip shape and volume\n - freckles, moles, and skin markings\n- If no dedicated face reference is provided:\n - Use the primary reference image as the facial ground truth\n - Do not invent or idealize facial features\n\nFACIAL PRESERVATION (NON-NEGOTIABLE):\n- Facial structure must remain identical across all grid cells\n- No face reshaping, beautification, symmetry correction, or age change\n- No “idealized” or “enhanced” facial features\n- Expressions may vary; identity may NOT\n\nIdentity drift is considered a failure.\n\n────────────────────────────────────────\nBODY, SKIN, & PROPORTION RULES\n\n- Body proportions must remain consistent with the reference\n- No exaggeration of curves or anatomy\n- Preserve raw, real skin texture:\n - visible pores\n - freckles\n - subtle redness\n - natural imperfections\n- No smoothing, no airbrushing, no plastic or CG skin\n\n────────────────────────────────────────\nCLOTHING & WARDROBE LOCK\n\n- Exact same clothing in all grid cells\n- No changes to:\n - color\n - fabric\n - cut\n - fit\n- Clothing must behave naturally with gravity and posture\n\n────────────────────────────────────────\nENVIRONMENT & LIGHTING RULES\n\n- Same environment unless the user explicitly allows change\n- Lighting must remain plausible for the location\n- Natural or available light only\n- No invented props, set dressing, or artificial lighting setups\n\n────────────────────────────────────────\nCAPTURE & REALISM PHILOSOPHY\n\nAvoid generic “photorealistic” styling.\n\nInstead, simulate real camera capture:\n- Minimal retouch\n- Real lens behavior\n- Natural depth of field\n- Subtle sensor grain or texture\n- Realistic highlight roll-off\n- No stock-photo perfection\n- No cinematic fantasy lighting\n\nThe result should feel like:\n“A confident influencer photographed by a real camera, not an AI beauty render.”\n\n────────────────────────────────────────\nGRID DESIGN RULES\n\nYou are designing a grid narrative, not isolated images.\n\nALLOWED VARIATION PER CELL:\nYou can use these as a base or make new ones to avoid similar images all the time.\n\nHere are examples:\n- Pose (standing, balancing, leaning, twisting, seated)\n- Weight distribution and posture\n- Hip rotation and spine angle\n- Gaze direction (direct, over-shoulder, sideways, downcast)\n- Camera distance (medium, medium-full, medium-close)\n- Camera angle (eye-level, slight low, rear-oblique, profile)\n\nNOT ALLOWED:\n- Extreme or unnatural arching\n- Anatomical exaggeration\n\nTeasing or sensuality must come from:\n- posture\n- asymmetry\n- balance\n- gaze\n- confidence\n\n────────────────────────────────────────\nREQUIRED OUTPUT STRUCTURE\n\nYou MUST output the following sections:\n\n1) GRID OVERVIEW\n- Brief paragraph describing:\n - overall vibe\n - influencer energy\n - how the grid flows or escalates visually\n - how it reflects the user’s guiding idea\n\n2) CONTINUITY LOCKS\n- Bullet list clearly stating:\n - facial identity lock (and which reference image defines it)\n - clothing lock\n - skin texture rules\n - environment rules\n - realism constraints\n\n3) SHOT BREAKDOWN (PER CELL)\nFor each grid cell (numbered according to grid size):\n\n- Purpose (hook, tease, connection, resolution, etc.)\n- Pose direction (body orientation, hips, balance)\n- Expression / gaze\n- Camera distance\n- Camera angle\n- What visually dominates the frame\n- Editorial intent\n\nDo NOT describe camera motion.\nOnly describe the final camera position.\n\n4) RENDERING TRANSLATION NOTES\n- Short, practical notes such as:\n - “Face lock derived from close-up reference”\n - “Prioritize skull structure over expression”\n - “This cell emphasizes posture, not anatomy”\n - “Lifestyle realism over fashion editorial”\n - “Each cell should stand alone as an Instagram post”\n\n────────────────────────────────────────\nTONE & STYLE\n\n- Confident, not explicit\n- Sexy through control, not exposure\n- Influencer-forward, can be adult style content\n- Creative, but grounded\n- Director mindset, not prompt-engineer mindset\n\n────────────────────────────────────────\nFINAL RULES\n\n- Do NOT output image prompts unless explicitly asked\n- Do NOT output JSON unless explicitly asked\n- Do NOT invent details not present in the references\n- Do NOT mention policies or safety rules\n\nYour job is to design clarity, variation, and intent — not pixels.\n\n"
],
"color": "#332922",
"bgcolor": "#593930"
},
{
"id": 21,
"type": "Note",
"pos": [
8640,
3375
],
"size": [
525,
135
],
"flags": {},
"order": 5,
"mode": 4,
"inputs": [],
"outputs": [],
"properties": {},
"widgets_values": [
"User Prompt Input Values:\n\n- Grid Size: 2x2, 3x3\n- Aspect Ratio: 9:16, 1:1, 4:5, 16:9 etc\n- Creative idea, vibe, or suggestion to guide the frames\n\nImages "
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 9,
"type": "Text Multiline",
"pos": [
7980,
2490
],
"size": [
585,
210
],
"flags": {},
"order": 6,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
3
]
}
],
"title": "User Prompt",
"properties": {
"cnr_id": "was-ns",
"ver": "3.0.1",
"Node name for S&R": "Text Multiline"
},
"widgets_values": [
"2x2 grid, 9:16, json output\n\n22 year-old beautiful woman with brown wavy hair, blue eyes, and pale skin in various sexy teasing style positions, standing in a Chaing Mai spa garden. She has very cute, shy and playful smiles, teasing looks at the camera. She is being sexy for the camera like for an instagram style shoot."
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 5,
"type": "ImageBatchMulti",
"pos": [
7575,
2805
],
"size": [
270,
102
],
"flags": {},
"order": 16,
"mode": 4,
"inputs": [
{
"name": "image_1",
"type": "IMAGE",
"link": 34
},
{
"name": "image_2",
"shape": 7,
"type": "IMAGE",
"link": 35
}
],
"outputs": [
{
"name": "images",
"type": "IMAGE",
"links": [
13
]
}
],
"properties": {
"cnr_id": "comfyui-kjnodes",
"ver": "7b1327192e4729085788a3020a9cbb095e0c7811"
},
"widgets_values": [
2,
null
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 2,
"type": "LoadImage",
"pos": [
7125,
2445
],
"size": [
390,
450
],
"flags": {},
"order": 7,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
34
]
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"title": "Face Image for Reinforcement (Optional)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.6.0",
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"sadi-banana-face-1.jpg",
"image"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 6,
"type": "LoadImage",
"pos": [
7125,
2970
],
"size": [
390,
480
],
"flags": {},
"order": 8,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
35
]
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"title": "Base Image",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.6.0",
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"ComfyUI_temp_vromf_00007_.png",
"image"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 3,
"type": "Text Concatenate",
"pos": [
8625,
3315
],
"size": [
270,
354
],
"flags": {
"collapsed": true
},
"order": 15,
"mode": 4,
"inputs": [
{
"name": "text_a",
"shape": 7,
"type": "STRING",
"link": 3
},
{
"name": "text_b",
"shape": 7,
"type": "STRING",
"link": 4
},
{
"name": "text_c",
"shape": 7,
"type": "STRING",
"link": null
},
{
"name": "text_d",
"shape": 7,
"type": "STRING",
"link": null
}
],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
2
]
}
],
"properties": {
"cnr_id": "was-ns",
"ver": "3.0.1",
"Node name for S&R": "Text Concatenate"
},
"widgets_values": [
", ",
"true"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 37,
"type": "Fast Groups Bypasser (rgthree)",
"pos": [
6750,
3585
],
"size": [
247.2955078125,
130
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "OPT_CONNECTION",
"type": "*",
"links": null
}
],
"properties": {
"matchColors": "",
"matchTitle": "",
"showNav": true,
"showAllGraphs": true,
"sort": "position",
"customSortAlphabet": "",
"toggleRestriction": "default"
}
},
{
"id": 43,
"type": "MarkdownNote",
"pos": [
7110,
4500
],
"size": [
330,
210
],
"flags": {},
"order": 10,
"mode": 4,
"inputs": [],
"outputs": [],
"title": "Nano Banana Pro",
"properties": {},
"widgets_values": [
"Google Nano Banana Pro delivers sharper 2K imagery, intelligent 4K scaling.\n\n**Playground Link:** [https://kie.ai/nano-banana-pro](https://kie.ai/nano-banana-pro)\n\n- Aspect Ratio: 9:16 etc\n- Resolution 1K, 2K, 4K\n\nOutput format: png or jpg\n\n**Pricing (May change):**\n- 1K/2K 18 credits (~$0.09) \n- 4K 24 credits (~$0.12)\n\nLatest pricing can be found here [https://kie.ai/pricing](https://kie.ai)"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 20,
"type": "SaveImage",
"pos": [
8910,
4140
],
"size": [
270,
210
],
"flags": {},
"order": 20,
"mode": 4,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 22
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.7.0",
"Node name for S&R": "SaveImage"
},
"widgets_values": [
"Grid/Grid-Outputs"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 8,
"type": "PreviewImage",
"pos": [
9270,
3780
],
"size": [
600,
885
],
"flags": {},
"order": 19,
"mode": 4,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 9
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.6.0",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 44,
"type": "MarkdownNote",
"pos": [
8620.911475366467,
4391.891270517992
],
"size": [
435,
360
],
"flags": {},
"order": 11,
"mode": 4,
"inputs": [],
"outputs": [],
"title": "Grid Slice",
"properties": {},
"widgets_values": [
"### KIE Grid Slice — Options\n\n**image** \nThe input image to be sliced into a grid.\n\n**grid** \nSelect the grid layout used to split the image (e.g. `2×2`, `3×3`). \nEach tile is extracted as an individual image output.\n\n**outer_crop_px** \nPixels to crop from the *outer edge* of the image before slicing. \n\n\n**gutter_px** \nSpacing (in pixels) removed *between tiles* when slicing. \n\n\n**order** \nControls the order tiles are processed and output:\n- `row-major` — left to right, top to bottom (default)\n- `column-major` — top to bottom, left to right\n\n**process_batch** \nDetermines how batched images are handled:\n- `first` — process only the first image in the batch\n- `all` — process every image in the batch\n\n**log** \nWhen enabled, prints detailed slice and index information to the console. \n"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 4,
"type": "KIE_GridSlice",
"pos": [
8865,
3780
],
"size": [
345,
285
],
"flags": {},
"order": 14,
"mode": 4,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 21
}
],
"outputs": [
{
"name": "tiles",
"type": "IMAGE",
"links": [
9,
22
]
}
],
"properties": {
"aux_id": "gateway/ComfyUI-Kie-API",
"ver": "47d77aa048301716292722deaa1b67559a268ab2",
"Node name for S&R": "KIE_GridSlice"
},
"widgets_values": [
"2x2",
0,
0,
"row-major",
"first",
true
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 42,
"type": "MarkdownNote",
"pos": [
6510,
2490
],
"size": [
495,
1020
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Model Links",
"properties": {},
"widgets_values": [
"## ComfyUI KIE API Node Pack — Workflow Overview\n\nThis workflow uses a custom set of **ComfyUI nodes** that integrate with the **Kie.ai API** to test and experiment with image and video generation models inside ComfyUI.\n\nUse this workflow to create a 2x2, 3x3 Nano Banana Pro storyboard.\n\n## Open AI LLM\n\nWe chose to use the Open AI LLM API know from Comfy UI to build out our Nano Banana Pro Prompt. You can swap out whatever LLM you like in this section.\n\nFeel free to update or change the system prompt for whatever your trying to create. Product, Person, Fashion style. Use Chat GPT to help you formulate a system prompt\n\n\n\n**Help Support the Development**\n\nPlease use this link with our affiliate code to help support the further development of this node pack.\n[https://kie.ai](https://kie.ai?ref=e7565cf24a7fad4586341a87eaf21e42)\n\nProject repository: \n[https://github.com/gateway/ComfyUI-Kie-API](https://github.com/gateway/ComfyUI-Kie-API)\n\n---\n\n### KIE Grid Slice — Options\n\n**image** \nThe input image to be sliced into a grid.\n\n**grid** \nSelect the grid layout used to split the image (e.g. `2×2`, `3×3`). \nEach tile is extracted as an individual image output.\n\n**outer_crop_px** \nPixels to crop from the *outer edge* of the image before slicing. \nUseful for removing borders or unwanted framing around the image.\n\n**gutter_px** \nSpacing (in pixels) removed *between tiles* when slicing. \nHelpful if the grid image contains visible padding or separators.\n\n**order** \nControls the order tiles are processed and output:\n- `row-major` — left to right, top to bottom (default)\n- `column-major` — top to bottom, left to right\n\n**process_batch** \nDetermines how batched images are handled:\n- `first` — process only the first image in the batch\n- `all` — process every image in the batch\n\n**log** \nWhen enabled, prints detailed slice and index information to the console. \nRecommended when debugging grid layouts or downstream prompt alignment. Included Nodes\n\n### Generation Nodes\n\n- **Nano Banana Pro Image** \n Image generation using the Nano Banana Pro model.\n\n---\n\n### Utility / Helper Nodes\n\n- **GridSlice** \n Splits grid images (2×2, 3×3, etc.) into individual images for downstream processing.\n\n- **Parse Prompt Grid JSON** \n Parses structured JSON (often generated by an LLM) into individual prompt outputs for multi-image or storyboard-style workflows.\n\n---\n\n## Notes on Usage & Debugging\n\n- All generation requests are standard API calls made to **Kie.ai**: \n [https://kie.ai/](https://kie.ai?ref=e7565cf24a7fad4586341a87eaf21e42)\n\n- If a node fails, times out, or behaves unexpectedly, generated results may still be available in your Kie.ai account.\n\n- You can review request history, parameters, and results here: \n [https://kie.ai/logs](https://kie.ai/logs)\n\nChecking the logs is often the fastest way to confirm whether a job completed successfully.\n\n---\n\n## Project Status\n\nThis node pack is an early, evolving release intended for experimentation and testing. Node behavior and interfaces may change as models and workflows are refined.\n\n---\n\n## Issues & Feedback\n\nTo report issues or request improvements related to this workflow, \n[go to GitHub](https://github.com/gateway/ComfyUI-Kie-API/issues)\n\nPlease include:\n- the node name\n- relevant parameters\n- any error messages or logs\n\n---\n\n## Development & Sponsorship\n\nDevelopment of this node pack is supported by **Dreaming Computers** \n[https://dreamingcomputers.com](https://dreamingcomputers.com)\n\nDreaming Computers is an independent creative and technical practice focused on AI-driven visuals, automation workflows, and experimental tools for artists and technologists."
],
"color": "#222",
"bgcolor": "#000"
}
],
"links": [
[
2,
3,
0,
1,
3,
"STRING"
],
[
3,
9,
0,
3,
0,
"STRING"
],
[
4,
11,
0,
3,
1,
"STRING"
],
[
8,
10,
0,
7,
0,
"IMAGE"
],
[
9,
4,
0,
8,
0,
"IMAGE"
],
[
12,
1,
0,
12,
0,
"STRING"
],
[
13,
5,
0,
13,
0,
"IMAGE"
],
[
14,
14,
0,
1,
0,
"IMAGE"
],
[
15,
15,
0,
10,
0,
"IMAGE"
],
[
18,
1,
0,
16,
0,
"STRING"
],
[
19,
17,
0,
10,
1,
"STRING"
],
[
20,
10,
0,
18,
0,
"IMAGE"
],
[
21,
19,
0,
4,
0,
"IMAGE"
],
[
22,
4,
0,
20,
0,
"IMAGE"
],
[
34,
2,
0,
5,
0,
"IMAGE"
],
[
35,
6,
0,
5,
1,
"IMAGE"
]
],
"groups": [
{
"id": 1,
"title": "Nano Banana Image Inputs",
"bounding": [
7050,
2340,
840,
1200
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 2,
"title": "Nano Banana Prompt Creation via OpenAI LLM",
"bounding": [
7920,
2340,
2010,
1200
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 3,
"title": "Create Image via Kie.ai API Call",
"bounding": [
7050,
3570,
1500,
1200
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 4,
"title": "Slice Output to Single Images",
"bounding": [
8580,
3570,
1335,
1200
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.5754566352568878,
"offset": [
-5972.017446913162,
-2257.823069867998
]
},
"workflowRendererVersion": "LG",
"frontendVersion": "1.35.9",
"VHS_latentpreview": true,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}