feat: Build the Dream Weaver interior restyling workflow to preserve room geometry while changing aesthetics (#5)

#3 Self-approved and unit tests passed with flying colors.

Co-authored-by: Sagnik <sagnik7896@gmail.com>
Reviewed-on: #5
This commit was merged in pull request #5.
This commit is contained in:
2026-03-10 01:36:27 +05:30
parent cb6c752c8e
commit 55bb5e5a90
53 changed files with 11956 additions and 2222 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,930 @@
{
"last_node_id": 25,
"last_link_id": 42,
"nodes": [
{
"id": 1,
"type": "LoadImage",
"pos": [
100,
150
],
"size": [
320,
280
],
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
1,
3
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": [],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"input_interior.jpg"
]
},
{
"id": 2,
"type": "ImageScale",
"pos": [
500,
150
],
"size": [
320,
200
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 1
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
4,
5
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ImageScale"
},
"widgets_values": [
"lanczos",
1024,
1024,
"center"
]
},
{
"id": 3,
"type": "Zoe-DepthMapPreprocessor",
"pos": [
500,
400
],
"size": [
320,
100
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 4
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
6
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "Zoe-DepthMapPreprocessor"
},
"widgets_values": [
512
]
},
{
"id": 4,
"type": "SAMDetectorSegmented",
"pos": [
900,
150
],
"size": [
320,
200
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 5
},
{
"name": "sam_model",
"type": "SAM_MODEL",
"link": 2
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
7
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": [
8
],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "SAMDetectorSegmented"
},
"widgets_values": [
"walls, floor, ceiling",
0.3,
0,
0,
1
]
},
{
"id": 5,
"type": "SAMModelLoader (segment anything)",
"pos": [
500,
600
],
"size": [
320,
100
],
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "SAM_MODEL",
"type": "SAM_MODEL",
"links": [
2
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SAMModelLoader (segment anything)"
},
"widgets_values": [
"sam_vit_l_0b3195.pth"
]
},
{
"id": 6,
"type": "ControlNetLoader",
"pos": [
900,
450
],
"size": [
320,
100
],
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "CONTROL_NET",
"type": "CONTROL_NET",
"links": [
9
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ControlNetLoader"
},
"widgets_values": [
"control_v11f1p_sd15_depth.pth"
]
},
{
"id": 7,
"type": "ControlNetApply",
"pos": [
1300,
400
],
"size": [
320,
150
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 10
},
{
"name": "control_net",
"type": "CONTROL_NET",
"link": 9
},
{
"name": "image",
"type": "IMAGE",
"link": 6
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
14
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ControlNetApply"
},
"widgets_values": [
1.0
]
},
{
"id": 8,
"type": "CheckpointLoaderSimple",
"pos": [
100,
600
],
"size": [
320,
100
],
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
11,
15
],
"shape": 3,
"slot_index": 0
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
12,
13
],
"shape": 3,
"slot_index": 1
},
{
"name": "VAE",
"type": "VAE",
"links": [
23,
25
],
"shape": 3,
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "CheckpointLoaderSimple"
},
"widgets_values": [
"realvisxlV50Lightning_v50Lightning.safetensors"
]
},
{
"id": 9,
"type": "CLIPTextEncode",
"pos": [
500,
750
],
"size": [
400,
200
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 12
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
10
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"scandinavian minimalist interior design, light oak wood flooring, neutral beige textiles, abundant natural light streaming through large windows, clean white walls, simple functional furniture, cozy atmosphere, soft cream and warm gray tones, architectural photography, 8k resolution, photorealistic, global illumination, soft shadows"
]
},
{
"id": 10,
"type": "CLIPTextEncode",
"pos": [
500,
1000
],
"size": [
400,
200
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 13
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
16
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"(worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch), blurry, distorted, deformed, extra windows, unrealistic lighting, structural changes, wall repositioning, window modification, door relocation, ceiling alteration"
]
},
{
"id": 11,
"type": "EmptyLatentImage",
"pos": [
100,
850
],
"size": [
320,
100
],
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
17
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "EmptyLatentImage"
},
"widgets_values": [
1024,
1024,
1
]
},
{
"id": 12,
"type": "SetLatentNoiseMask",
"pos": [
1300,
150
],
"size": [
320,
100
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 17
},
{
"name": "mask",
"type": "MASK",
"link": 8
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
18
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SetLatentNoiseMask"
}
},
{
"id": 13,
"type": "KSampler",
"pos": [
1700,
300
],
"size": [
320,
280
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 11
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 14
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 16
},
{
"name": "latent_image",
"type": "LATENT",
"link": 18
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
19
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "KSampler"
},
"widgets_values": [
42,
"randomize",
30,
7.0,
"dpmpp_2m",
"karras",
0.75
]
},
{
"id": 14,
"type": "VAEDecode",
"pos": [
2100,
300
],
"size": [
320,
100
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 19
},
{
"name": "vae",
"type": "VAE",
"link": 23
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
20,
21,
22
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "VAEDecode"
}
},
{
"id": 15,
"type": "SaveImage",
"pos": [
2500,
200
],
"size": [
320,
280
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 20
}
],
"properties": {
"Node name for S&R": "SaveImage"
},
"widgets_values": [
"dreamweaver_phase1_output"
]
},
{
"id": 16,
"type": "PreviewImage",
"pos": [
2500,
550
],
"size": [
320,
280
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 21
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 17,
"type": "MaskToImage",
"pos": [
1700,
100
],
"size": [
320,
100
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "mask",
"type": "MASK",
"link": 8
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
24
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "MaskToImage"
}
},
{
"id": 18,
"type": "PreviewImage",
"pos": [
2100,
500
],
"size": [
320,
280
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 24
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
}
],
"links": [
[
1,
1,
2,
"IMAGE",
1
],
[
2,
5,
1,
"SAM_MODEL",
2
],
[
3,
4,
1,
"IMAGE",
3
],
[
4,
2,
3,
"IMAGE",
4
],
[
5,
2,
4,
"IMAGE",
5
],
[
6,
3,
7,
"IMAGE",
6
],
[
7,
4,
18,
"MASK",
8
],
[
8,
6,
7,
"CONTROL_NET",
9
],
[
9,
8,
9,
"CLIP",
12
],
[
10,
9,
7,
"CONDITIONING",
10
],
[
11,
8,
13,
"MODEL",
11
],
[
12,
8,
10,
"CLIP",
13
],
[
13,
10,
13,
"CONDITIONING",
16
],
[
14,
7,
13,
"CONDITIONING",
14
],
[
15,
11,
12,
"LATENT",
17
],
[
16,
12,
13,
"LATENT",
18
],
[
17,
13,
14,
"LATENT",
19
],
[
18,
14,
15,
"IMAGE",
20
],
[
19,
14,
16,
"IMAGE",
21
],
[
20,
14,
16,
"IMAGE",
22
],
[
21,
17,
18,
"IMAGE",
24
],
[
22,
8,
14,
"VAE",
23
]
],
"groups": [
{
"title": "Input & Preprocessing",
"bounding": [
50,
100,
800,
600
],
"color": "#3f789e"
},
{
"title": "ControlNet & Masking",
"bounding": [
850,
100,
800,
600
],
"color": "#8f3f7e"
},
{
"title": "Generation",
"bounding": [
1650,
100,
800,
600
],
"color": "#3f7e4a"
},
{
"title": "Output",
"bounding": [
2450,
100,
500,
800
],
"color": "#7e5e3f"
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.75,
"offset": [
0,
0
]
}
},
"version": 0.4
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff