Files
workflow-templates-broken-z…/templates/templates-product_scene_relight.json
2026-06-07 20:51:07 -07:00

728 lines
16 KiB
JSON

{
"id": "8ead682f-1c65-4c02-baf3-4e1f9537c836",
"revision": 0,
"last_node_id": 29,
"last_link_id": 44,
"nodes": [
{
"id": 14,
"type": "PrimitiveStringMultiline",
"pos": [
-1570,
60
],
"size": [
270,
200
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
19
]
}
],
"title": "Describe the Product",
"properties": {
"Node name for S&R": "PrimitiveStringMultiline"
},
"widgets_values": [
"A dispenser bottle filled with viscuous clear liquid, with a metallic top, \"C\" logo and a clear glass body"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 1,
"type": "LoadImage",
"pos": [
-1960,
340
],
"size": [
340,
420
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
22
]
},
{
"name": "MASK",
"type": "MASK",
"links": []
}
],
"title": "Load Product Image",
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"comfy_shampoo.png",
"image"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 2,
"type": "LoadImage",
"pos": [
-1960,
-170
],
"size": [
340,
420
],
"flags": {
"collapsed": false
},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
21
]
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"title": "Load Background Image",
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"flower_sea.png",
"image"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 23,
"type": "SaveImage",
"pos": [
-610,
-170
],
"size": [
760,
930
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 35
}
],
"outputs": [],
"properties": {},
"widgets_values": [
"Hanzo Studio"
]
},
{
"id": 22,
"type": "ByteDanceSeedreamNode",
"pos": [
-1050,
-170
],
"size": [
400,
374
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "image",
"shape": 7,
"type": "IMAGE",
"link": 33
},
{
"name": "prompt",
"type": "STRING",
"widget": {
"name": "prompt"
},
"link": 34
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
35
]
}
],
"properties": {
"Node name for S&R": "ByteDanceSeedreamNode"
},
"widgets_values": [
"seedream-4-5-251128",
"",
"2048x2048 (1:1)",
2048,
2048,
"disabled",
1,
406946789,
"randomize",
false,
true
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 13,
"type": "RegexReplace",
"pos": [
-1280,
60
],
"size": [
210,
292
],
"flags": {
"collapsed": true
},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "string",
"type": "STRING",
"widget": {
"name": "string"
},
"link": 18
},
{
"name": "replace",
"type": "STRING",
"widget": {
"name": "replace"
},
"link": 19
}
],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
34
]
}
],
"properties": {
"Node name for S&R": "RegexReplace"
},
"widgets_values": [
"",
"{product_description}",
"",
true,
false,
false,
0
]
},
{
"id": 12,
"type": "PrimitiveStringMultiline",
"pos": [
-1570,
310
],
"size": [
390,
770
],
"flags": {
"collapsed": true
},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
18
]
}
],
"title": "Prompt Template",
"properties": {
"Node name for S&R": "PrimitiveStringMultiline"
},
"widgets_values": [
"Task: Realistic Product Compositing with Material Preservation Goal: Insert the product from Input 2 into Input 1, ensuring placement is logical and lighting interacts accurately with the product's specific material properties.\n\nInput Image(s):\n\nInput 1 (Scene)\nInput 2 (Product): {product_description}\n\nManual Material Breakdown (Critical): To ensure correct light interaction, treat the product as having the following physical properties:\n\nPrimary Material: [e.g., Matte Plastic / Brushed Aluminum / Clear Glass]\n\nReflectivity: [e.g., Low (dull reflections) / High (mirror-like)]\n\nTexture: [e.g., Smooth / Grainy / Porous]\n\nReaction to Light: [e.g., \"Should absorb light with soft highlights, no sharp glares\"]\n\nSecondary Material (if any): [e.g., Gold Foil Label / Glossy Cap]\n\nReaction to Light: [e.g., \"Should catch sharp, bright specular highlights from the environment\"]\n\nProcess:\nScene Analysis: Identify the logical ground plane/surface in Input 1.\n\nPlacement: Scale Input 2 uniformly (maintain aspect ratio) and place it on the surface.\n\nMaterial-Based Relighting:\n\nDo not simply overlay the scene colors onto the product.\nInstead, map the environment light from Input 1 onto the contours of Input 2 based on the material definitions above.\n\nExample: If the material is Matte, only the edge lighting and general ambient tone should change; do not add sharp reflections.\n\nExample: If the material is Glossy, reflect the scene's details on the surface.\n\nShadows: Generate contact shadows that match the hardness/softness of shadows in the rest of the scene.\n\nTechnical Requirements:\nAlbedo Preservation: The intrinsic color of the product (e.g., \"Brand Red\") must not be washed out by the scene's lighting color.\n\nTexture Fidelity: Do not smooth out surface details (grain, bumps) during the blending process.\n\nScaling: No non-uniform stretching.\n\nOutput: A composite where the lighting confirms the materiality of the product (e.g., makes the plastic look like plastic, not metal)."
]
},
{
"id": 15,
"type": "94a7e2c4-f61f-4641-a52c-758479d9b975",
"pos": [
-1430,
-140
],
"size": [
170,
46
],
"flags": {
"collapsed": false
},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "image1",
"type": "IMAGE",
"link": 21
},
{
"name": "image",
"type": "IMAGE",
"link": 22
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
33
]
}
],
"properties": {
"proxyWidgets": []
},
"widgets_values": []
}
],
"links": [
[
18,
12,
0,
13,
0,
"STRING"
],
[
19,
14,
0,
13,
1,
"STRING"
],
[
21,
2,
0,
15,
0,
"IMAGE"
],
[
22,
1,
0,
15,
1,
"IMAGE"
],
[
33,
15,
0,
22,
0,
"IMAGE"
],
[
34,
13,
0,
22,
1,
"STRING"
],
[
35,
22,
0,
23,
0,
"IMAGE"
]
],
"groups": [],
"definitions": {
"subgraphs": [
{
"id": "94a7e2c4-f61f-4641-a52c-758479d9b975",
"version": 1,
"state": {
"lastGroupId": 0,
"lastNodeId": 15,
"lastLinkId": 23,
"lastRerouteId": 0
},
"revision": 0,
"config": {},
"name": "Batch Images",
"inputNode": {
"id": -10,
"bounding": [
-1880,
-140,
120,
80
]
},
"outputNode": {
"id": -20,
"bounding": [
-1080,
-160,
120,
60
]
},
"inputs": [
{
"id": "68bb369f-8785-4b9f-b018-65e10a96e046",
"name": "image1",
"type": "IMAGE",
"linkIds": [
16,
22
],
"localized_name": "image1",
"pos": [
-1780,
-120
]
},
{
"id": "29c264c0-fb68-474c-8fda-ca049dd15e77",
"name": "image",
"type": "IMAGE",
"linkIds": [
17
],
"localized_name": "image",
"pos": [
-1780,
-100
]
}
],
"outputs": [
{
"id": "506e4ff4-c6f3-4bf1-9492-f4298a32939f",
"name": "IMAGE",
"type": "IMAGE",
"linkIds": [
21
],
"localized_name": "IMAGE",
"pos": [
-1060,
-140
]
}
],
"widgets": [],
"nodes": [
{
"id": 15,
"type": "BatchImagesNode",
"pos": [
-1420,
-170
],
"size": [
169.23046875,
66
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"label": "image0",
"localized_name": "images.image0",
"name": "images.image0",
"type": "IMAGE",
"link": 22
},
{
"label": "image1",
"localized_name": "images.image1",
"name": "images.image1",
"type": "IMAGE",
"link": 23
},
{
"label": "image2",
"localized_name": "images.image2",
"name": "images.image2",
"shape": 7,
"type": "IMAGE",
"link": null
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
21
]
}
],
"properties": {
"Node name for S&R": "BatchImagesNode"
}
},
{
"id": 5,
"type": "GetImageSize",
"pos": [
-1710,
-30
],
"size": [
210,
136
],
"flags": {
"collapsed": false
},
"order": 0,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 16
}
],
"outputs": [
{
"localized_name": "width",
"name": "width",
"type": "INT",
"links": [
4
]
},
{
"localized_name": "height",
"name": "height",
"type": "INT",
"links": [
5
]
},
{
"localized_name": "batch_size",
"name": "batch_size",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "GetImageSize"
},
"widgets_values": []
},
{
"id": 6,
"type": "ResizeAndPadImage",
"pos": [
-1450,
-30
],
"size": [
210,
130
],
"flags": {
"collapsed": false
},
"order": 1,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 17
},
{
"localized_name": "target_width",
"name": "target_width",
"type": "INT",
"widget": {
"name": "target_width"
},
"link": 4
},
{
"localized_name": "target_height",
"name": "target_height",
"type": "INT",
"widget": {
"name": "target_height"
},
"link": 5
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
23
]
}
],
"properties": {
"Node name for S&R": "ResizeAndPadImage"
},
"widgets_values": [
512,
512,
"white",
"area"
]
}
],
"groups": [],
"links": [
{
"id": 4,
"origin_id": 5,
"origin_slot": 0,
"target_id": 6,
"target_slot": 1,
"type": "INT"
},
{
"id": 5,
"origin_id": 5,
"origin_slot": 1,
"target_id": 6,
"target_slot": 2,
"type": "INT"
},
{
"id": 16,
"origin_id": -10,
"origin_slot": 0,
"target_id": 5,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 17,
"origin_id": -10,
"origin_slot": 1,
"target_id": 6,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 21,
"origin_id": 15,
"origin_slot": 0,
"target_id": -20,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 22,
"origin_id": -10,
"origin_slot": 0,
"target_id": 15,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 23,
"origin_id": 6,
"origin_slot": 0,
"target_id": 15,
"target_slot": 1,
"type": "IMAGE"
}
],
"extra": {
"workflowRendererVersion": "LG"
}
}
]
},
"config": {},
"extra": {
"ds": {
"scale": 1.3940068280855902,
"offset": [
1902.121132651144,
351.9877945599146
]
},
"frontendVersion": "1.37.6",
"workflowRendererVersion": "LG",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}