1- #python3 train.py --dataroot ./datasets/datasets/data-six/ --name endtoend_no_shadow_ --checkpoints_dir all_checkpoints/endtoend_checkpoints/ --model pix2pix_endtoend_3 --dataset_mode endtoend_no_shadow --input_nc 1 --output_nc 1 --crop_size 256 --gpu_id 1 --netG unet_256
21import os .path
32from data .base_dataset import BaseDataset , get_params , get_transform
43from data .image_folder import make_dataset
76import json
87
98class SpDataset (BaseDataset ):
10- """A dataset class for paired image dataset.
11-
12- It assumes that the directory '/path/to/data/train' contains image pairs in the form of {A,B}.
13- During test time, you need to prepare a directory '/path/to/data/test'.
14- """
159
1610 def __init__ (self , opt ):
17- """Initialize this dataset class.
18-
19- Parameters:
20- opt (Option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions
21- """
2211 BaseDataset .__init__ (self , opt )
2312 self .C_paths = []
2413 self .G_paths = []
@@ -27,22 +16,23 @@ def __init__(self, opt):
2716 self .S_paths = []
2817 self .K_paths = []
2918 self .Sh_paths = []
19+ self .texture_paths = {}
3020
3121 self .dir_AB = opt .dataroot # get the image directory
3222 for i in os .listdir (self .dir_AB ):
3323 T_path = self .dir_AB + '/' + i + '/params/meta.ndjson' ;
3424 with open (T_path ) as f :
3525 for line in f :
3626 j_content = json .loads (line )
37- texture = j_content ["texture" ]["name" ]
38- if texture != 'sha' and texture != 'som' :
39- self .C_paths += make_dataset (self .dir_AB + '/' + i + '/r_contour /' , opt .max_dataset_size ) # get image paths
40- self .G_paths += make_dataset (self .dir_AB + '/' + i + '/r_gnomon /' , opt .max_dataset_size ) # get image paths
41- self .H_paths += make_dataset (self .dir_AB + '/' + i + '/r_highlights /' , opt .max_dataset_size ) # get image paths
42- self .M_paths += make_dataset (self .dir_AB + '/' + i + '/r_midtones /' , opt .max_dataset_size ) # get image paths
43- self .S_paths += make_dataset (self .dir_AB + '/' + i + '/r_shades /' , opt .max_dataset_size ) # get image paths
44- self .Sh_paths += make_dataset (self .dir_AB + '/' + i + '/r_shadow /' , opt .max_dataset_size ) # get image paths
45- self .K_paths += make_dataset ( self .dir_AB + '/' + i + '/r_sketch/' , opt .max_dataset_size ) # get image paths
27+ tex = j_content ["texture" ]["name" ]
28+ self . C_paths += make_dataset ( self . dir_AB + '/' + i + '/r_contour/' , opt . max_dataset_size ) # get image paths
29+ self .G_paths += make_dataset (self .dir_AB + '/' + i + '/r_gnomon /' , opt .max_dataset_size ) # get image paths
30+ self .H_paths += make_dataset (self .dir_AB + '/' + i + '/r_highlights /' , opt .max_dataset_size ) # get image paths
31+ self .M_paths += make_dataset (self .dir_AB + '/' + i + '/r_midtones /' , opt .max_dataset_size ) # get image paths
32+ self .S_paths += make_dataset (self .dir_AB + '/' + i + '/r_shades /' , opt .max_dataset_size ) # get image paths
33+ self .Sh_paths += make_dataset (self .dir_AB + '/' + i + '/r_shadow /' , opt .max_dataset_size ) # get image paths
34+ self .K_paths += make_dataset (self .dir_AB + '/' + i + '/r_sketch /' , opt .max_dataset_size ) # get image paths
35+ self .texture_paths [ self .dir_AB + '/' + i + '/r_contour' ] = opt .texture + '/' + tex + '/' # get image paths
4636 self .C_paths = sorted (self .C_paths )
4737 self .G_paths = sorted (self .G_paths )
4838 self .H_paths = sorted (self .H_paths )
@@ -55,17 +45,6 @@ def __init__(self, opt):
5545 self .output_nc = self .opt .output_nc
5646
5747 def __getitem__ (self , index ):
58- """Return a data point and its metadata information.
59-
60- Parameters:
61- index - - a random integer for data indexing
62-
63- Returns a dictionary that contains A, B, A_paths and B_paths
64- A (tensor) - - an image in the input domain
65- B (tensor) - - its corresponding image in the target domain
66- A_paths (str) - - image paths
67- B_paths (str) - - image paths (same as A_paths)
68- """
6948 # read a image given a random integer index
7049
7150 C_path = self .C_paths [index ]
@@ -93,14 +72,14 @@ def __getitem__(self, index):
9372 for line in f :
9473 j_content = json .loads (line )
9574 texture = j_content ["texture" ]["name" ]
96-
97- C = Image .open ("/nfs/151/gpu/raghav/data/shadegan/brushes_v2/" + texture + "/ high.png" ).convert ('RGB' )
75+
76+ C = Image .open (self . texture_paths [ C_path . rsplit ( '/' , 1 )[ 0 ]] + " high.png" ).convert ('RGB' )
9877
99- D = Image .open ("/nfs/151/gpu/raghav/data/shadegan/brushes_v2/" + texture + "/ mid.png" ).convert ('RGB' )
78+ D = Image .open (self . texture_paths [ C_path . rsplit ( '/' , 1 )[ 0 ]] + " mid.png" ).convert ('RGB' )
10079
101- E = Image .open ("/nfs/151/gpu/raghav/data/shadegan/brushes_v2/" + texture + "/ shade.png" ).convert ('RGB' )
80+ E = Image .open (self . texture_paths [ C_path . rsplit ( '/' , 1 )[ 0 ]] + " shade.png" ).convert ('RGB' )
10281
103- F = Image .open ("/nfs/151/gpu/raghav/data/shadegan/brushes_v2/" + texture + "/ shadow.png" ).convert ('RGB' )
82+ F = Image .open (self . texture_paths [ C_path . rsplit ( '/' , 1 )[ 0 ]] + " shadow.png" ).convert ('RGB' )
10483
10584 # apply the same transform to both A and B
10685 transform_params = get_params (self .opt , A .size )
0 commit comments