Terrain Diffusion

Terrain Diffusion

使用专门的AI生成无限地形,而非传统的噪声算法。

世界生成

地形扩散 Fabric 模组

这是一个整合了 Terrain Diffusion 的 Minecraft Fabric 模组。

需求

  • 安装了 Fabric 和 Fabric API 模组 的 Minecraft
  • 配备 GPU 的 Windows 系统。对于 Linux 或仅使用 CPU,请参阅 GitHub
  • 所需 VRAM(显存):1.5GB
  • 所需 RAM(内存):2.5GB(可能需要增加 Minecraft 的内存分配)

使用方法

  1. 从 Releases 下载与你的 Minecraft 版本匹配的模组 jar 文件,并将其放入 Minecraft 的 mods/ 文件夹中。请确保 Minecraft 版本匹配。
  2. 启动 Minecraft,至少在线启动一次以下载模型(约 2.5GB)。
  3. 创建世界,并选择 地形扩散 世界类型。点击 自定义 以设置 世界比例(参见下方 每个世界的设置)。

探索世界

该模组包含一个内置的地形探索器 Web UI。在游戏中运行 /td-explore 命令;它会打印出一个可点击的链接(例如 http://localhost:19801),在浏览器中打开一个交互式地图。点击左侧的地图以打开“详细视图”。点击详细视图可在左下角获取坐标。你还可以按气候类型进行筛选。

在 Minecraft 中出发探险之前,使用探索器来勘察大陆、山脉、岛屿和其他有趣的地形。

配置

编辑 config/terrain-diffusion-mc.properties(首次启动时自动创建):

# Terrain Diffusion MC 配置

# 推理设备:"cpu"、"gpu" 或 "auto"(优先尝试 GPU,然后回退到 CPU)。
# "gpu" 在 -windows 构建版上使用 DirectML,或在 -cuda 构建版上使用 CUDA。
# GPU 构建版默认使用 "gpu",因此如果未检测到 GPU,启动时会大声报错。
# CPU 构建版默认使用 "auto":在 macOS 上使用 CoreML,否则使用 CPU。
inference.device=gpu

# 在流水线阶段之间将非活动模型从 VRAM 中卸载。
# 将峰值 VRAM 保持在约 1.5-2 GB。如果你有约 2.5+ GB 的空闲显存,可以设置为 false 以略微加快生成速度。
inference.offload_models=true

# 验证 .minecraft/terrain-diffusion-models 中已有文件的 SHA-256。
# 如果你想提供自定义模型/配置文件而不进行哈希检查,请设置为 false。
validate_model=true

# 本地地形探索器 Web UI(/td-explore)的端口。
explorer.port=19801

# 出生点搜索:用于在 (0, 0) 附近寻找陆地出生点的粗略像素区域大小。
# 从 initial_size x initial_size 开始,每一步扩大 8 倍,直到 max_size x max_size。
# 每个粗略像素覆盖很大面积(数百个方块),因此 16-128 通常足够。
spawn_search.initial_size=16
spawn_search.max_size=128

每个世界的设置

对于地形扩散世界,在世界创建时点击 自定义 并设置:

  • 世界比例(整数 1..6)

此值随世界存档一起保存,并影响:

  • 每个方块代表多少现实世界米(比例=1 => 30米/方块,比例=2 => 15米/方块,以此类推)
  • 新创建世界的最大建筑高度(假设最高点为 10000 现实世界米)
  • 推荐使用 2,以在比例和可玩性之间取得良好平衡。使用 1 可获得更小、更紧凑的世界。
  • 较低的值会给 GPU 带来更大压力(地形扩散运行得更频繁),而较高的值会给 CPU 带来更大压力(世界高度更大)。大多数现代 GPU 在大约比例 2 或 3 时会受到 CPU 的瓶颈限制。

常见问题

动态链接库 (DLL) 初始化例程失败

这可能发生在某些较旧的 Java 版本上。请更新到最新版本的 Java 21 或更高版本。已知 最新的 Microsoft OpenJDK 21 可以正常工作。

LoadLibrary 失败,错误代码 126 (仅限 CUDA 构建版)

这通常是由于 CUDA 或 cuDNN 安装不正确。请参阅 CUDA_INSTALL.md 了解故障排除步骤。

java.lang.IllegalStateException: Failed to load terrain-diffusion models

这通常表示“内存不足”错误(日志中应该也会显示)。地形扩散的模型占用约 2.5GB 的 RAM,因此请确保分配足够的内存。

如果你的问题仍未解决,请 在此处提交。