ai一键生成我的世界建筑物

这个项目是我用半年时间,在手机上完成的。它能够通过自然语言生成 Minecraft 建筑,实现从文本描述到 AI 生成 3D 模型,再到自动体素化,最终生成 Minecraft Schematic 文件的全流程自动化。

项目背景

我从小就沉迷于 Minecraft,初中开始在 YouTube 上观看国外视频自学 Python。虽然时间有限,只学到了一些零散的知识,但我更喜欢折腾系统。初中时,我与 Python 的接触时间非常少,后来电脑也被我折腾坏了。我只能在手机上勉强自学编程。Termux 对 Python 的兼容性很差,我只能使用 Colab 和 Kaggle 运行 Python 环境,后来我逐渐爱上了机器学习。

你可以点击我的头像查看我的 LinuxDo 主页,你会看到我去年发布了一些白嫖云电脑部署开源模型的教程,例如 flux.1、CogVideo 和 VideoReTalking。但是这些都是已经训练好的模型。后来我玩 Minecraft 时心血来潮,想训练一个自己的 Minecraft 模型,实现一句话让 AI 生成 Minecraft 建筑物。

然而,想要自己一个人从零开始训练一个 AI 模型,并非易事。模型训练不是请客吃饭。我只能到网上四处搜集资料。我阅读了大量的计算机科学论文,希望找到成功的案例可以参考,但不幸的是,一个也没有找到。网上只有文本到 3D 点云的 AI 模型,而训练一个 Minecraft 生成建筑物的模型,应该要训练一个文本到体素模型的模型,与网上的 AI 生成 3D 模型根本不是同一个领域。

于是,我请教了 GPT-4o 和 Claude,它们结合我的想法帮我写了一个不完整的框架。我复制粘贴到 Colab 测试,结果遇到了各种报错。我把报错的内容复制粘贴发给 GPT,有很多错误 AI 都不能解决(例如很多库都更新了,AI 还在用旧版库的模块,还反过来说我的库太旧了让我更新,或者是因为模型幻觉乱定义函数,或者就是 Colab 环境本身自带很多库,如果我安装新的库会导致和一些旧的库冲突等等),这困扰了我很久,让我长夜难眠。

但这并没有阻止我写好项目的决心。我榨干了自己的每一分每一秒时间投入到了这上面,一个一个错误被解决了。一个月过去了,我的项目终于可以训练了,这时我才想起来,我根本没有数据集。怎么办?自己去 Minecraft 造 10 万个房子拿去训练吗?想想都觉得不现实。那就让 AI 生成建筑物,然后去训练?问题是 AI 会生成建筑物,我还需要训练 AI 模型干嘛?于是项目到这里就碰壁了。

我重新整理资料,让 Gemini 新发布的 Thinking 模型和 LinuxDo 佬友 "ky" 的 DeepSeek-R1-Lite 模型帮我想了一个新思路。不过当时 DeepSeek-R1 还没发布正式版,Lite 版本的上下文非常有限,Gemini 的 Thinking 模型的上下文也只有 30k tokens 左右,而我准备的资料(比如自己在 GitHub 整理的关于 AI 和 Minecraft 相关的论文和代码以及一些冷门的 Python 库的源代码,比如 NBT)的 tokens 占用远远超过这个。我只能疯狂压缩资料的内容,或者问 AI 一些零零散散的问题。最终 AI 建议我去微调 OpenAI 在 2023 年发布的 Shap-E 模型。这是一个轻量的文本生成

### 得物应用中无限 `debugger` 问题的解决方案 在处理得物应用中的无限 `debugger` 问题时,可以采取多种方法来绕过这些障碍并顺利进行调试工作。 #### 方法一:通过浏览器设置禁用所有断点 现代浏览器提供了内置的功能来管理断点行为。对于Chrome浏览器而言,在开发者工具(DevTools)内可以通过特定选项全局关闭所有的JavaScript断点[^1]。这将有效地阻止任何由`debugger`语句引起的意外暂停现象发生。 #### 方法二:利用油猴脚本来屏蔽 `debugger` 调用 针对那些难以控制其源码修改权限的目标网页或应用程序,安装像Tampermonkey这样的用户脚本管理器是一个不错的选择。编写一段简单的GreaseMonkey/Tampermonkey脚本能够拦截并忽略页面内的每一个`debugger`调用实例,从而实现流畅无干扰地浏览体验和开发流程优化[^2]。 ```javascript // ==UserScript== // @name Disable Debuggers // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to disable debuggers on webpages // @author You // @match *://*/* // @grant none // ==/UserScript== (function() { 'use strict'; // Override the original debugger statement with an empty function. const oldDebugger = window.debugger; Object.defineProperty(window, "debugger", {value: () => {}}); })(); ``` #### 方法三:调整 IDE 中的断点配置 如果是在集成开发环境(IDE),比如Visual Studio Code (VSCode),则可以在该环境中更精细地设定哪些情况下应该触发断点以及如何响应它们。例如,可以创建条件性的断点只会在满足某些逻辑表达式的前提下才会生效;也可以直接移除不必要的硬编码形式存在的`debugger;`指令[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值