| # Qualitative Results | |
| ### Case: Horse Drinking Water | |
| **JVSP + ASDS fine-tuning (horse)** | |
| **Preview:** | |
| | canvas size / Rendering | Strokes Initialization | 100 step | visual best | | |
| |-------------------------|---------------------------------------------------------|-----------------------------------------------------------|:---------------------------------------------------------:| | |
| | `canvas_size=224` | <img src="./img/HorseDrinkingWater/svg_iter0_C224.svg"> | <img src="./img/HorseDrinkingWater/svg_iter100_C224.svg"> | <img src="./img/HorseDrinkingWater/visual_best_C224.svg"> | | |
| | `canvas_size=600` | <img src="./img/HorseDrinkingWater/svg_iter0_C600.svg"> | <img src="./img/HorseDrinkingWater/svg_iter100_C600.svg"> | <img src="./img/HorseDrinkingWater/visual_best_C600.svg"> | | |
| **Script:** | |
| ```shell | |
| # canvas_size: 224 | |
| python run_painterly_render.py -c diffsketcher.yaml -eval_step 10 -save_step 10 -update "token_ind=2 num_paths=96" -pt "A horse is drinking water by the lake" -respath ./workdir/draw_horse -d 998 | |
| # canvas_size: 600 | |
| python run_painterly_render.py -c diffsketcher.yaml -eval_step 10 -save_step 10 -update "token_ind=2 num_paths=96 image_size=600 width=3.5" -pt "A horse is drinking water by the lake" -respath ./workdir/draw_horse -d 998 | |
| ``` | |
| **train from scratch via ASDS loss + SDXL (horse)** | |
| ```shell | |
| python run_painterly_render.py -c diffsketcher.yaml -eval_step 10 -save_step 10 -update "image_size=1110 token_ind=2 num_paths=96 sds.grad_scale=2 sds.warmup=0 sds.crop_size=1024 clip.vis_loss=0 perceptual.coeff=0 opacity_delta=0.2 num_iter=2000 model_id=sdxl" -pt "A horse is drinking water by the lake" -respath ./workdir/draw_horse -d 998 --download | |
| ``` | |
| **JVSP + ASDS fine-tune (horse) + including width** | |
| **Preview:** | |
| | <img src="./img/HorseDrinkingWater-ink/svg_iter0.svg"> | <img src="./img/HorseDrinkingWater-ink/svg_iter100.svg"> | <img src="./img/HorseDrinkingWater-ink/svg_iter1000.svg"> | | |
| |--------------------------------------------------------|----------------------------------------------------------|-----------------------------------------------------------| | |
| | Strokes Initialization | 100 step | 1000 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py -c diffsketcher-width.yaml -eval_step 10 -save_step 10 -update "token_ind=2 num_paths=96 num_iter=1000 grad_scale=0" -pt "A horse is drinking water by the lake" -respath ./workdir/draw_horse_ink -d 998 | |
| ``` | |
| ### Case: 3D Style Sketch | |
| **Preview:** | |
| | <img src="./img/3D_rose/svg_iter0.svg"> | <img src="./img/3D_rose/svg_iter100.svg"> | <img src="./img/3D_rose/visual_best.svg"> | | |
| |-----------------------------------------|-------------------------------------------|-------------------------------------------| | |
| | Strokes Initialization | 100 step | 1510 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py -c diffsketcher.yaml -eval_step 10 -save_step 10 -update "token_ind=4 num_paths=128 sds.grad_scale=0" -pt "A 3d single rose" -respath ./workdir/3d_rose -d 291516 | |
| ``` | |
| ### Case: Elephant | |
| **Preview:** | |
| | <img src="./img/elephant/svg_iter0.svg"> | <img src="./img/elephant/svg_iter100.svg"> | <img src="./img/elephant/semantic_best.svg"> | | |
| |------------------------------------------|--------------------------------------------|----------------------------------------------| | |
| | Strokes Initialization | 100 step | 1890 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py -c diffsketcher.yaml -eval_step 10 -save_step 10 -update "token_ind=2 num_paths=128 softmax_temp=0.4 sds.grad_scale=1 sds.warmup=0 clip.vis_loss=0 perceptual.coeff=0 lr_scheduler=True num_iter=2000 opacity_delta=0.1" -pt "an elephant. minimal 2d line drawing. trending on artstation." -respath ./workdir/elephant -d 197920 | |
| ``` | |
| ### Case: Yoda | |
| **Preview:** | |
| | <img src="./img/Yoda/svg_iter0.svg"> | <img src="./img/Yoda/svg_iter100.svg"> | <img src="./img/Yoda/visual_best.svg"> | | |
| |--------------------------------------|----------------------------------------|----------------------------------------| | |
| | Strokes Initialization | 100 step | 1780 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=7 num_paths=96 sds.warmup=1500 num_iter=2000" \ | |
| -pt "Very detailed masterpiece painting of baby yoda hoding a lightsaber, portrait, artstation, concept art by greg rutkowski" \ | |
| -respath ./workdir/Yoda \ | |
| -d 998 | |
| ``` | |
| ### Case: Fox | |
| **Preview:** | |
| | <img src="./img/Fox/svg_iter0.svg"> | <img src="./img/Fox/svg_iter100.svg"> | <img src="./img/Fox/visual_best.svg"> | | |
| |-------------------------------------|---------------------------------------|---------------------------------------| | |
| | Strokes Initialization | 100 step | 1500 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=2 num_paths=96 softmax_temp=0.5 num_iter=2000" \ | |
| -pt "A fox is sitting on the sofa" \ | |
| -respath ./workdir/fox \ | |
| -d 9007 | |
| ``` | |
| ### Case: Balloons | |
| **Preview:** | |
| | <img src="./img/balloons/svg_iter0.svg"> | <img src="./img/balloons/svg_iter100.svg"> | <img src="./img/balloons/visual_best.svg"> | | |
| |------------------------------------------|--------------------------------------------|--------------------------------------------| | |
| | Strokes Initialization | 100 step | 2000 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=4 num_paths=128 softmax_temp=0.5" \ | |
| -pt "Colorful hot air balloons high over the mountains" \ | |
| -respath ./workdir/balloons \ | |
| -d 9998 | |
| ``` | |
| ### Case: A cat on a bicycle | |
| **Preview:** | |
| | <img src="./img/cat_ride_bike/svg_iter0.svg"> | <img src="./img/cat_ride_bike/svg_iter100.svg"> | <img src="./img/cat_ride_bike/visual_best.svg"> | | |
| |-----------------------------------------------|-------------------------------------------------|-------------------------------------------------| | |
| | Strokes Initialization | 100 step | 1800 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=2 num_paths=48 ssoftmax_temp=0.5 mask_object=False" \ | |
| -pt "A cute cat in the style of Pixar animations, wearing a helmet and riding a bike" \ | |
| -respath ./workdir/cat \ | |
| -d 8030 | |
| ``` | |
| ### Case: Cat | |
| **Preview:** | |
| | <img src="./img/cat/svg_iter0.svg"> | <img src="./img/cat/svg_iter100.svg"> | <img src="./img/cat/final_svg.svg"> | | |
| |-------------------------------------|---------------------------------------|-------------------------------------| | |
| | Strokes Initialization | 100 step | 2000 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py -c diffsketcher.yaml -eval_step 10 -save_step 10 -update "token_ind=2 num_paths=128 softmax_temp=0.4 sds.num_aug=4 sds.grad_scale=1 sds.warmup=0 clip.vis_loss=0 perceptual.coeff=0 lr_scheduler=True num_iter=2000 opacity_delta=0.3" -pt "A cat. minimal 2d line drawing. trending on artstation." -respath ./workdir/cat -d 915346 | |
| ``` | |
| ### Case: Athens | |
| **Preview:** | |
| | <img src="./img/Athens/svg_iter0.svg"> | <img src="./img/Athens/svg_iter100.svg"> | <img src="./img/Athens/visual_best.svg"> | | |
| |----------------------------------------|------------------------------------------|------------------------------------------| | |
| | Strokes Initialization | 100 step | 1380 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=11 num_paths=140 softmax_temp=0.5 num_iter=2000" \ | |
| -pt "A loose ink sketching with watercolors of a modern Athens neighborhood, architectural, detailed, old building and new buildings, quiet street" \ | |
| -respath ./workdir/neighborhood \ | |
| -d 42 | |
| ``` | |
| ### Case: Macaw | |
| **Preview:** | |
| | <img src="./img/Macaw/svg_iter0.svg"> | <img src="./img/Macaw/svg_iter100.svg"> | <img src="./img/Macaw/visual_best.svg"> | | |
| |---------------------------------------|-----------------------------------------|-----------------------------------------| | |
| | Strokes Initialization | 100 step | 1200 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=1 num_paths=96 sds.warmup=1500 num_iter=2000" \ | |
| -pt "macaw full color, ultra detailed, realistic, insanely beautiful" \ | |
| -respath ./workdir/macaw \ | |
| -d 8091 | |
| ``` | |
| ### Case: Bunny | |
| **Preview:** | |
| | <img src="./img/Bunny/svg_iter0.svg"> | <img src="./img/Bunny/svg_iter100.svg"> | <img src="./img/Bunny/visual_best.svg"> | | |
| |---------------------------------------|-----------------------------------------|-----------------------------------------| | |
| | Strokes Initialization | 100 step | 670 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=5 num_paths=96 softmax_temp=0.5 num_iter=2000" \ | |
| -pt "portrait of two white bunnies, super realistic, highly detailed" \ | |
| -respath ./workdir/bunny \ | |
| -d 9001 | |
| ``` | |
| ### Case: Dragon | |
| **Preview:** | |
| | <img src="./img/Dragon/svg_iter0.svg"> | <img src="./img/Dragon/svg_iter100.svg"> | <img src="./img/Dragon/visual_best.svg"> | | |
| |----------------------------------------|------------------------------------------|------------------------------------------| | |
| | Strokes Initialization | 100 step | 1200 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=2 num_paths=64 softmax_temp=0.5 mask_object=True" \ | |
| -pt "A dragon flying in the sky, full body" \ | |
| -respath ./workdir/dragon \ | |
| -d 8023 | |
| ``` | |
| ### Case: Unicorn | |
| **Preview:** | |
| | <img src="./img/unicorn/svg_iter0.svg"> | <img src="./img/unicorn/svg_iter100.svg"> | <img src="./img/unicorn/visual_best.svg"> | | |
| |-----------------------------------------|-------------------------------------------|-------------------------------------------| | |
| | Strokes Initialization | 100 step | 1200 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=2" \ | |
| -pt "A unicorn is running on the grassland" \ | |
| -respath ./workdir/unicorn \ | |
| -d 914678 | |
| ``` | |
| **Preview:** | |
| | <img src="./img/unicorn-2/svg_iter0.svg"> | <img src="./img/unicorn-2/svg_iter100.svg"> | <img src="./img/unicorn-2/visual_best.svg"> | | |
| |-------------------------------------------|---------------------------------------------|---------------------------------------------| | |
| | Strokes Initialization | 100 step | 1240 step | | |
| **Script:** | |
| ```shell | |
| python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=2 softmax_temp=0.5 mask_object=True" \ | |
| -pt "A unicorn is running on the grassland" \ | |
| -respath ./workdir/unicorn \ | |
| -d 9998 | |
| ``` | |
| ### Case: Mushroom | |
| **Preview:** | |
| | <img src="./img/Mushroom/svg_iter0.svg"> | <img src="./img/Mushroom/svg_iter100.svg"> | <img src="./img/Mushroom/final_svg.svg"> | | |
| |------------------------------------------|--------------------------------------------|------------------------------------------| | |
| | Strokes Initialization | 100 step | 2000 step | | |
| **Script:** | |
| ```shell | |
| CUDA_VISIBLE_DEVICES=0 python run_painterly_render.py \ | |
| -c diffsketcher.yaml \ | |
| -eval_step 10 -save_step 10 \ | |
| -update "token_ind=4 num_paths=84 comp_idx=0 attn_coeff=1 softmax_temp=0.4 xdog_intersec=False sds.num_aug=4 sds.grad_scale=2 sds.warmup=0 clip.vis_loss=0 clip.num_aug=4 clip.text_visual_coeff=0 perceptual.coeff=0 opacity_delta=0.2 lr_scheduler=True num_iter=2000" \ | |
| -pt "a brightly colored mushroom growing on a logt, minimal 2d line drawing. trending on artstation." \ | |
| -respath ./workdir/Mushroom \ | |
| -d 621024 | |
| ``` | |