Views
No views yet
instance_prompt: isometric scspace terrainAutoencoderTile) is trained to encode and decode the latents to/from tileset probabilities ("waves") and then generated as Starcraft maps.git clone https://github.com/wdcqc/WaveFunctionDiffusion.git1# Load pipeline
2from wfd.wf_diffusers import WaveFunctionDiffusionPipeline
3from wfd.wf_diffusers import AutoencoderTile
4
5wfc_data_path = "tile_data/wfc/platform_32x32.npz"
6
7# Use CUDA (otherwise it will take 15 minutes)
8device = "cuda"
9
10tilenet = AutoencoderTile.from_pretrained(
11 "wdcqc/starcraft-platform-terrain-32x32",
12 subfolder="tile_vae"
13).to(device)
14pipeline = WaveFunctionDiffusionPipeline.from_pretrained(
15 "wdcqc/starcraft-platform-terrain-32x32",
16 tile_vae = tilenet,
17 wfc_data_path = wfc_data_path
18)
19pipeline.to(device)
20
21# Generate pipeline output
22# need to include the dreambooth keyword "isometric scspace terrain"
23pipeline_output = pipeline(
24 "isometric scspace terrain, corgi",
25 num_inference_steps = 50,
26 wfc_guidance_start_step = 20,
27 wfc_guidance_strength = 5,
28 wfc_guidance_final_steps = 20,
29 wfc_guidance_final_strength = 10,
30)
31image = pipeline_output.images[0]
32
33# Display raw generated image
34from IPython.display import display
35display(image)
36
37# Display generated image as tiles
38wave = pipeline_output.waves[0]
39tile_result = wave.argmax(axis=2)
40
41from wfd.scmap import demo_map_image
42display(demo_map_image(tile_result, wfc_data_path = wfc_data_path))
43
44# Generate map file
45from wfd.scmap import tiles_to_scx
46import random, time
47
48tiles_to_scx(
49 tile_result,
50 "outputs/generated_{}_{:04d}.scx".format(time.strftime("%Y%m%d_%H%M%S"), random.randint(0, 1e4)),
51 wfc_data_path = wfc_data_path
52)
53
54# Open the generated map file in `outputs` folder with Scmdraft 2