xingxm commited on
Commit
4c770aa
·
1 Parent(s): f5749d7

feat(case): add more cases

Browse files
Examples.md CHANGED
@@ -31,3 +31,61 @@ python svgdreamer.py x=iconography "prompt='A colorful German shepherd in vector
31
  ```shell
32
  python svgdreamer.py x=iconography "prompt='a beautiful snow-covered castle, a stunning masterpiece, trees, rays of the sun, Leonid Afremov'" result_path='./logs/SnowCastle' seed=116740
33
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  ```shell
32
  python svgdreamer.py x=iconography "prompt='a beautiful snow-covered castle, a stunning masterpiece, trees, rays of the sun, Leonid Afremov'" result_path='./logs/SnowCastle' seed=116740
33
  ```
34
+
35
+ ### Case: Vector Wolf
36
+
37
+ **Prompt:** wolf. low poly. minimal flat 2d vector. lineal color. trending on artstation. <br/>
38
+ **style:** Low-Poly <br/>
39
+ **Preview:**
40
+
41
+ | Particle 1 | Particle 2 | Particle 3 | Particle 4 | Particle 5 | Particle 6 |
42
+ |:-------------------------------------------------------:|:-------------------------------------------------------:|:-------------------------------------------------------:|:-----------------------------------------------------:|:-------------------------------------------------------:|:-------------------------------------------------------:|
43
+ | <img src="./assets/Lowploy-Wolf/finetune_final_p0.svg"> | <img src="./assets/Lowploy-Wolf/finetune_final_p1.svg"> | <img src="./assets/Lowploy-Wolf/finetune_final_p2.svg"> | <img src="assets/Lowploy-Wolf/finetune_final_p3.svg"> | <img src="./assets/Lowploy-Wolf/finetune_final_p4.svg"> | <img src="./assets/Lowploy-Wolf/finetune_final_p5.svg"> |
44
+
45
+ **Script:**
46
+
47
+ ```shell
48
+ python svgdreamer.py x=lowpoly "prompt='wolf. low poly. minimal flat 2d vector. lineal color. trending on artstation.'" neg_prompt='' result_path='./logs/Wolf' seed=670488
49
+ ```
50
+
51
+ ### Case: Scarlet Macaw
52
+
53
+ **Prompt:** A picture of a scarlet macaw, low-ploy, polygon, minimal flat 2d vector <br/>
54
+ **style:** Low-Poly <br/>
55
+ **Preview:**
56
+
57
+ | Particle 1 | Particle 2 | Particle 3 | Particle 4 | Particle 5 | Particle 6 |
58
+ |:---------------------------------------------------------------:|:---------------------------------------------------------------:|:---------------------------------------------------------------:|:-------------------------------------------------------------:|:---------------------------------------------------------------:|:---------------------------------------------------------------:|
59
+ | <img src="./assets/Lowpoly-ScarletMacaw/finetune_final_p0.svg"> | <img src="./assets/Lowpoly-ScarletMacaw/finetune_final_p1.svg"> | <img src="./assets/Lowpoly-ScarletMacaw/finetune_final_p2.svg"> | <img src="assets/Lowpoly-ScarletMacaw/finetune_final_p3.svg"> | <img src="./assets/Lowpoly-ScarletMacaw/finetune_final_p4.svg"> | <img src="./assets/Lowpoly-ScarletMacaw/finetune_final_p5.svg"> |
60
+
61
+ **Script:**
62
+
63
+ ```shell
64
+ python svgdreamer.py x=lowpoly "prompt='A picture of a scarlet macaw, low-ploy, polygon, minimal flat 2d vector'" "neg_prompt='unrealistic, blurry, low quality, out of focus, ugly, low contrast, dull, low res, low-resolution, oversaturation, worst quality, normal quality, text, watermark, logo, banner, extra digits, cropped, jpeg artifacts, signature, username, error, sketch ,duplicate, monochrome, horror, geometry, mutation, disgusting'" save_step=50 result_path='.log/ScarletMacaw'
65
+ ```
66
+
67
+ ### Case: Polar Bear
68
+
69
+ **Prompt:** polar bear. low poly. minimal flat 2d vector. lineal color. trending on artstation. <br/>
70
+ **style:** Low-Poly <br/>
71
+ **Preview:**
72
+
73
+ | Particle 1 | Particle 2 | Particle 3 | Particle 4 | Particle 5 | Particle 6 |
74
+ |:------------------------------------------------------------:|:------------------------------------------------------------:|:------------------------------------------------------------:|:----------------------------------------------------------:|:------------------------------------------------------------:|:------------------------------------------------------------:|
75
+ | <img src="./assets/Lowpoly-PolarBear/finetune_final_p0.svg"> | <img src="./assets/Lowpoly-PolarBear/finetune_final_p1.svg"> | <img src="./assets/Lowpoly-PolarBear/finetune_final_p2.svg"> | <img src="assets/Lowpoly-PolarBear/finetune_final_p3.svg"> | <img src="./assets/Lowpoly-PolarBear/finetune_final_p4.svg"> | <img src="./assets/Lowpoly-PolarBear/finetune_final_p5.svg"> |
76
+
77
+ **Script:**
78
+
79
+ ```shell
80
+ python svgdreamer.py x=lowpoly "prompt='polar bear. low poly. minimal flat 2d vector. lineal color. trending on artstation.'" "neg_prompt='unrealistic, blurry, low quality, out of focus, ugly, low contrast, dull, low res, low-resolution, oversaturation, worst quality, normal quality, text, watermark, logo, banner, extra digits, cropped, jpeg artifacts, signature, username, error, sketch ,duplicate, monochrome, horror, geometry, mutation, disgusting'" save_step=50 result_path='.log/PolarBear'
81
+ ```
82
+
83
+ ### Others
84
+
85
+ ````shell
86
+ python svgdreamer.py x=painting "prompt='self portrait of Van Gogh. oil painting. cmyk portrait. multi colored. defiant and beautiful. cmyk. expressive eyes.'" x.num_paths=256 result_path='./logs/VanGogh-Portrait'
87
+ python svgdreamer.py x=lowpoly "prompt='A picture of a scarlet macaw, low-ploy, polygon, minimal flat 2d vector'" "neg_prompt='unrealistic, blurry, low quality, out of focus, ugly, low contrast, dull, low res, low-resolution, oversaturation, worst quality, normal quality, text, watermark, logo, banner, extra digits, cropped, jpeg artifacts, signature, username, error, sketch ,duplicate, monochrome, horror, geometry, mutation, disgusting'" save_step=50 result_path='.log/ScarletMacaw' mv=True multirun=True
88
+ python svgdreamer.py x=ink "prompt='Big Wild Goose Pagoda. ink style. Minimalist abstract art grayscale watercolor. simple painting style'" "neg_prompt='text, extra, missing, unfinished, watermark, signature, username, scan, frame'" result_path='./logs/BigWildGoosePagoda'
89
+ python svgdreamer.py x=ink "prompt='Black and white. simple horse flash tattoo. ink style. Minimalist abstract art grayscale watercolor. simple painting style'" "neg_prompt='text, extra, missing, unfinished, watermark, signature, username, scan, frame'" result_path='./logs/HorseInk'
90
+ python svgdreamer.py x=pixelart "prompt='Pikachu in pastel colors, childish and fun. Pixel art. trending on artstation.'" x.guidance.t_schedule='randint' result_path='./logs/Pikachu'
91
+ ````
README.md CHANGED
@@ -134,7 +134,7 @@ python svgdreamer.py x=iconography "prompt='Sydney opera house. oil painting. by
134
  **Script:**
135
 
136
  ```shell
137
- python svgdreamer.py x=painting "prompt='Abstract Vincent van Gogh Oil Painting Elephant, featuring earthy tones of green and brown.'" x.num_paths=500 result_path='./logs/Elephant-OilPainting'
138
  ```
139
 
140
  #### Pixel-Art style
@@ -211,14 +211,7 @@ python svgdreamer.py x=ink "prompt='Big Wild Goose Pagoda. ink style. Minimalist
211
 
212
  #### More Cases
213
 
214
- ````shell
215
- python svgdreamer.py x=iconography "prompt='illustration of an New York City, in vector art, tending on artstation.'" result_path='./logs/NewYorkCity'
216
- python svgdreamer.py x=painting "prompt='self portrait of Van Gogh. oil painting. cmyk portrait. multi colored. defiant and beautiful. cmyk. expressive eyes.'" result_path='./logs/VanGogh-Portrait'
217
- python svgdreamer.py x=lowpoly "prompt='wolf. low poly. minimal flat 2d vector. lineal color. trending on artstation.'" neg_prompt='' save_step=50 x.grid=30 result_path='./logs/Wolf' multirun=True
218
- python svgdreamer.py x=lowpoly "prompt='A picture of a scarlet macaw, low-ploy, polygon, minimal flat 2d vector'" "neg_prompt='unrealistic, blurry, low quality, out of focus, ugly, low contrast, dull, low res, low-resolution, oversaturation, worst quality, normal quality, text, watermark, logo, banner, extra digits, cropped, jpeg artifacts, signature, username, error, sketch ,duplicate, monochrome, horror, geometry, mutation, disgusting'" save_step=50 result_path='.log/ScarletMacaw' mv=True multirun=True
219
- python svgdreamer.py x=ink "prompt='The lonely Big Wild Goose Pagoda. ink style. Minimalist abstract art grayscale watercolor.'" "neg_prompt='text, extra, missing, unfinished, watermark, signature, username, scan, frame'" result_path='./logs/BigWildGoosePagoda'
220
- python svgdreamer.py x=ink "prompt='Big Wild Goose Pagoda. ink style. Minimalist abstract art grayscale watercolor. simple painting style'" "neg_prompt='text, extra, missing, unfinished, watermark, signature, username, scan, frame'" result_path='./logs/BigWildGoosePagoda'
221
- ````
222
 
223
  ## 🔑 Tips
224
 
 
134
  **Script:**
135
 
136
  ```shell
137
+ python svgdreamer.py x=painting "prompt='Abstract Vincent van Gogh Oil Painting Elephant, featuring earthy tones of green and brown.'" x.num_paths=256 result_path='./logs/Elephant-OilPainting'
138
  ```
139
 
140
  #### Pixel-Art style
 
211
 
212
  #### More Cases
213
 
214
+ **See [Examples.md](https://github.com/ximinng/DiffSketcher/blob/main/Examples.md) for more cases.**
 
 
 
 
 
 
 
215
 
216
  ## 🔑 Tips
217
 
assets/Lowploy-Wolf/finetune_final_p0.svg ADDED
assets/Lowploy-Wolf/finetune_final_p1.svg ADDED
assets/Lowploy-Wolf/finetune_final_p2.svg ADDED
assets/Lowploy-Wolf/finetune_final_p3.svg ADDED
assets/Lowploy-Wolf/finetune_final_p4.svg ADDED
assets/Lowploy-Wolf/finetune_final_p5.svg ADDED
assets/Lowpoly-PolarBear/finetune_final_p0.svg ADDED
assets/Lowpoly-PolarBear/finetune_final_p1.svg ADDED
assets/Lowpoly-PolarBear/finetune_final_p2.svg ADDED
assets/Lowpoly-PolarBear/finetune_final_p3.svg ADDED
assets/Lowpoly-PolarBear/finetune_final_p4.svg ADDED
assets/Lowpoly-PolarBear/finetune_final_p5.svg ADDED
assets/Lowpoly-ScarletMacaw/finetune_final_p0.svg ADDED
assets/Lowpoly-ScarletMacaw/finetune_final_p1.svg ADDED
assets/Lowpoly-ScarletMacaw/finetune_final_p2.svg ADDED
assets/Lowpoly-ScarletMacaw/finetune_final_p3.svg ADDED
assets/Lowpoly-ScarletMacaw/finetune_final_p4.svg ADDED
assets/Lowpoly-ScarletMacaw/finetune_final_p5.svg ADDED
conf/x/ink.yaml CHANGED
@@ -40,7 +40,7 @@ sive:
40
  attn_coeff: 1.0 # attn fusion, w * cross-attn + (1-w) * self-attn
41
  mask_tau: 0.3 # the threshold used to convert the attention map into a mask
42
  bg:
43
- style: "iconography" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
44
  num_iter: 10
45
  num_paths: 256
46
  path_schedule: 'repeat' # 'repeat', 'list'
@@ -60,7 +60,7 @@ sive:
60
  use_distance_weighted_loss: False
61
  xing_loss_weight: 0.001
62
  fg:
63
- style: "iconography" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
64
  num_iter: 10
65
  num_paths: 256 # number of strokes
66
  path_schedule: 'repeat' # 'repeat', 'list'
 
40
  attn_coeff: 1.0 # attn fusion, w * cross-attn + (1-w) * self-attn
41
  mask_tau: 0.3 # the threshold used to convert the attention map into a mask
42
  bg:
43
+ style: "ink" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
44
  num_iter: 10
45
  num_paths: 256
46
  path_schedule: 'repeat' # 'repeat', 'list'
 
60
  use_distance_weighted_loss: False
61
  xing_loss_weight: 0.001
62
  fg:
63
+ style: "ink" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
64
  num_iter: 10
65
  num_paths: 256 # number of strokes
66
  path_schedule: 'repeat' # 'repeat', 'list'
conf/x/painting.yaml CHANGED
@@ -40,7 +40,7 @@ sive:
40
  attn_coeff: 1.0 # attn fusion, w * cross-attn + (1-w) * self-attn
41
  mask_tau: 0.3 # the threshold used to convert the attention map into a mask
42
  bg:
43
- style: "iconography" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
44
  num_iter: 10
45
  num_paths: 256
46
  path_schedule: 'repeat' # 'repeat', 'list'
@@ -60,7 +60,7 @@ sive:
60
  use_distance_weighted_loss: False
61
  xing_loss_weight: 0.001
62
  fg:
63
- style: "iconography" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
64
  num_iter: 10
65
  num_paths: 256 # number of strokes
66
  path_schedule: 'repeat' # 'repeat', 'list'
 
40
  attn_coeff: 1.0 # attn fusion, w * cross-attn + (1-w) * self-attn
41
  mask_tau: 0.3 # the threshold used to convert the attention map into a mask
42
  bg:
43
+ style: "painting" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
44
  num_iter: 10
45
  num_paths: 256
46
  path_schedule: 'repeat' # 'repeat', 'list'
 
60
  use_distance_weighted_loss: False
61
  xing_loss_weight: 0.001
62
  fg:
63
+ style: "painting" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
64
  num_iter: 10
65
  num_paths: 256 # number of strokes
66
  path_schedule: 'repeat' # 'repeat', 'list'
conf/x/sketch.yaml CHANGED
@@ -40,7 +40,7 @@ sive:
40
  attn_coeff: 1.0 # attn fusion, w * cross-attn + (1-w) * self-attn
41
  mask_tau: 0.3 # the threshold used to convert the attention map into a mask
42
  bg:
43
- style: "iconography" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
44
  num_iter: 10
45
  num_paths: 256
46
  path_schedule: 'repeat' # 'repeat', 'list'
@@ -60,7 +60,7 @@ sive:
60
  use_distance_weighted_loss: False
61
  xing_loss_weight: 0.001
62
  fg:
63
- style: "iconography" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
64
  num_iter: 10
65
  num_paths: 256 # number of strokes
66
  path_schedule: 'repeat' # 'repeat', 'list'
 
40
  attn_coeff: 1.0 # attn fusion, w * cross-attn + (1-w) * self-attn
41
  mask_tau: 0.3 # the threshold used to convert the attention map into a mask
42
  bg:
43
+ style: "sketch" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
44
  num_iter: 10
45
  num_paths: 256
46
  path_schedule: 'repeat' # 'repeat', 'list'
 
60
  use_distance_weighted_loss: False
61
  xing_loss_weight: 0.001
62
  fg:
63
+ style: "sketch" # 'iconography' ,"pixelart", "sketch", 'painting', 'ink'
64
  num_iter: 10
65
  num_paths: 256 # number of strokes
66
  path_schedule: 'repeat' # 'repeat', 'list'
svgdreamer/painter/component_painter_params.py CHANGED
@@ -161,7 +161,7 @@ class CompPainter:
161
  self.shape_groups.append(path_group)
162
  self.cur_shape_groups.append(path_group)
163
 
164
- elif self.style == 'pixelart':
165
  fill_color_init = torch.FloatTensor(np.random.uniform(size=[4]))
166
  fill_color_init[-1] = 1.0
167
 
@@ -178,7 +178,7 @@ class CompPainter:
178
  self.shape_groups.append(path_group)
179
  self.cur_shape_groups.append(path_group)
180
 
181
- elif self.style == 'sketch':
182
  path = self.get_path()
183
  self.shapes.append(path)
184
  self.cur_shapes.append(path)
 
161
  self.shape_groups.append(path_group)
162
  self.cur_shape_groups.append(path_group)
163
 
164
+ elif self.style in ['pixelart', 'low-poly']:
165
  fill_color_init = torch.FloatTensor(np.random.uniform(size=[4]))
166
  fill_color_init[-1] = 1.0
167
 
 
178
  self.shape_groups.append(path_group)
179
  self.cur_shape_groups.append(path_group)
180
 
181
+ elif self.style in ['sketch', 'ink']:
182
  path = self.get_path()
183
  self.shapes.append(path)
184
  self.cur_shapes.append(path)
svgdreamer/pipelines/SVGDreamer_pipeline.py CHANGED
@@ -35,7 +35,9 @@ import ImageReward as RM
35
  class SVGDreamerPipeline(ModelState):
36
 
37
  def __init__(self, args):
 
38
  assert args.x.style in ["iconography", "pixelart", "low-poly", "painting", "sketch", "ink"]
 
39
  assert args.x.vpsd.n_particle >= args.x.vpsd.vsd_n_particle
40
  assert args.x.vpsd.n_particle >= args.x.vpsd.phi_n_particle
41
  assert args.x.vpsd.n_phi_sample >= 1
 
35
  class SVGDreamerPipeline(ModelState):
36
 
37
  def __init__(self, args):
38
+ # assert
39
  assert args.x.style in ["iconography", "pixelart", "low-poly", "painting", "sketch", "ink"]
40
+ args.skip_sive = True if args.x.style in ["pixelart", "low-poly"] else args.skip_sive
41
  assert args.x.vpsd.n_particle >= args.x.vpsd.vsd_n_particle
42
  assert args.x.vpsd.n_particle >= args.x.vpsd.phi_n_particle
43
  assert args.x.vpsd.n_phi_sample >= 1