DeepSeek+Codex驱动Blender自动化建模:自然语言生成3D场景
这次我们来看一套比较特别的自动化方案DeepSeek Codex 自动控制 Blender 建模。核心思路并不复杂让 AI 编程代理 Codex 读取一份预先写好的 Blender 操作 skill技能说明再借助 DeepSeek 的推理能力根据自然语言需求自动生成 Blender Python 脚本最后在 Blender 后台把 3D 场景跑出来。你不需要打开 Blender 手动拖拽也不需要自己逐行写建模代码只要把需求说清楚剩下的脚本生成、场景搭建、文件保存都可以自动完成。这套方案的定位是“自然语言驱动 3D 建模”。举个例子你输入“生成一座天宫仙境的简化场景包含云海、石板地面、中式大殿和柱廊”工作流就会自动完成脚本生成和场景搭建最终给你一个.blend文件。从资源占用角度看DeepSeek 走官方 API 时本地不需要 GPU 推理Blender 后台建模主要吃 CPU 和内存普通开发机能跑得动。下面我会按实际跑通这套流程的顺序来写核心组件、方案架构、环境准备、Codex 接入 DeepSeek 的配置、skill 文件怎么写、天宫场景验证、批量任务、常见报错和工程化建议。内容偏实操建议收藏备用。1. 核心能力速览能力项说明方案类型DeepSeek Codex CLI Blender Python API 自动化建模核心模型DeepSeek官方 API 或 Ollama 本地部署AI 代理Codex CLI负责生成脚本、执行命令、组织流程操作对象Blender 3.x / 4.x 场景模型Skill 机制Markdown 技能说明 Python 脚本模板硬件要求API 方案普通开发机即可本地部署按模型大小配置 GPU / 内存启动方式命令行交互 Blender 后台执行接口能力DeepSeek 提供 OpenAI 兼容 APICodex 通过配置文件接入批量任务可按 prompt 文件批量生成脚本并串行执行适合人群AI 编程、3D 自动化、技术美术、创意内容生产者1.1 方案架构整个链路可以拆成四层DeepSeek承担“理解需求”和“写代码”的推理大脑。它不直接操作 Blender而是生成符合 Blender Python API 规范的脚本。Codex CLI承担“代理执行”的角色。它读取 skill 文件调用深度求索模型把自然语言转成脚本并在获得授权后执行命令。Skill 文件把 Blender 的操作经验固化下来告诉 AI“脚本开头要清空场景、物体要命名、最后要保存 .blend 文件”等规范。Blender 后台通过blender --background --python xxx.py执行建模脚本不弹界面、不占交互窗口适合自动化任务。这套架构的优势在于AI 不直接控制 Blender 的界面而是控制它的 Python 接口。Blender 自带 Python 解释器只要生成脚本的代码质量稳定建模结果就是可预期的。2. 适用场景与使用边界2.1 适合做什么概念场景快速搭建先让 AI 生成一个粗糙版本再人工微调。批量生成模型素材比如用多组 prompt 生成不同建筑、地形的初始模型。教学演示在命令行展示“自然语言 - 脚本 - 3D 场景”的完整链路。技术美术预演验证某个建模思路是否可行不需要手工拖拽。2.2 不适合做什么精细雕刻和高质量成品建模AI 生成的脚本更适合基础几何体组合复杂曲面和细节雕刻仍然需要专业美术。绑定、动画、材质烘焙这不是这套流程的强项模型生成后需要在 Blender 里继续处理。对文件体积和性能要求极高的生产场景AI 生成的脚本可能存在冗余物体需要人工清理。2.3 使用边界任何 AI 生成内容都需要复核。特别是 Blender 脚本本质上是可执行的本地代码AI 生成的脚本里可能包含文件写入、批量操作、外部命令调用等行为。建议在隔离目录中执行先审查脚本内容再运行。涉及版权素材、人物肖像、品牌标识时必须确认授权。不要用这套流程生成侵权、敏感或不符合平台规范的内容。如果用 DeepSeek 官方 API 处理敏感数据注意数据与接口合规边界如果数据必须留在内网优先使用 Ollama 本地部署。3. 环境准备与安装3.1 安装 Blender从 Blender 官网下载安装包。建议使用 Blender 3.6 LTS 及以上版本内置 Python 环境不需要手动安装 bpy。安装完成后把 Blender 加入系统 PATH 环境变量。Windows 下通常是C:\Program Files\Blender Foundation\Blender 4.1\macOS 是/Applications/Blender.app/Contents/MacOS/Linux 发行版则取决于包管理器。命令行验证blender --version看到版本号就说明 Blender 已加入 PATH。接着验证 Blender 内置 Python 是否可用blender --background --python-expr import bpy; print(bpy.app.version_string)如果终端输出 Blender 版本字符串说明 Blender Python 环境正常后面所有建模脚本都可以用blender --background --python直接执行。3.2 安装 Node.js 和 Codex CLICodex CLI 是 OpenAI 推出的命令行编程代理基于 Node.js 分发需要先安装 Node.js 18 及以上版本。npm install -g openai/codex codex --version安装完成后如果终端提示codex命令找不到需要检查 npm 全局 bin 目录是否在 PATH 环境变量中。Windows 下通常是%APPDATA%\npmmacOS / Linux 下通常是/usr/local/bin或/usr/lib/node_modules。3.3 准备 DeepSeek API KeyDeepSeek 官方提供 OpenAI 兼容接口。在 DeepSeek 开放平台注册并创建 API Key保存为环境变量。临时生效的方式export DEEPSEEK_API_KEYsk-xxxxxxxx为了方便可以把这行写入~/.bashrc或~/.zshrc。验证 API Key 是否可用curl https://api.deepseek.com/v1/models \ -H Authorization: Bearer $DEEPSEEK_API_KEY如果返回模型列表 JSON说明 Key 有效可以进入下一步。3.4 可选Ollama 本地部署 DeepSeek如果不想用官方 API可以用 Ollama 本地部署 DeepSeek 模型。Ollama 会提供本地 OpenAI 兼容接口默认地址是http://localhost:11434/v1。ollama pull deepseek-r1:7b ollama serve本地部署对硬件有要求7B 量化模型也需要一定显存和内存具体以实际运行环境为准。对数据隐私敏感的团队本地部署是更稳妥的方案。4. Codex 接入 DeepSeek配置文件详解Codex CLI 支持通过配置文件指定模型供应商。常见配置路径是~/.codex/config.toml。因为 DeepSeek API 是 OpenAI 兼容的 Chat Completions 接口而 Codex 默认走/responses端点所以需要在配置中显式指定wire_api chat否则可能报 endpoint 相关错误。model deepseek-chat model_provider deepseek [model_providers.deepseek] name DeepSeek Chat base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY wire_api chat如果使用 Ollama 本地部署model deepseek-r1:7b model_provider ollama [model_providers.ollama] name Ollama DeepSeek base_url http://localhost:11434/v1 env_key OLLAMA_API_KEY wire_api chatOllama 本身不校验 Key但 Codex 配置要求env_key指向一个环境变量可以手动设置占位值export OLLAMA_API_KEYollama这里的关键点有两个配置项名称和格式会随 Codex 版本变化如果启动时报“无法解析 provider”以codex --help或官方文档为准。确认base_url是 OpenAI 兼容地址DeepSeek 官方v1接口可以正常使用。配置完成后发起一个简单的 Codex 对话来验证连接codex exec 打印你好并说明你当前使用的模型供应商如果 Codex 返回正常回复说明 DeepSeek 已经接入成功。5. 编写 Blender 建模 skill5.1 skill 目录结构skill 的本质是给 AI 的一份“操作手册 代码规范”。目录结构可以按项目来组织project/ ├── skills/ │ └── blender-toolkit/ │ ├── SKILL.md │ └── templates/ │ └── basic_scene.py ├── prompts/ │ └── sky_palace.txt ├── scripts/ └── output/SKILL.md里写清楚建模规范prompts目录放自然语言需求scripts目录放 AI 生成的脚本output目录放生成的.blend文件。5.2 SKILL.md 示例如果你使用的 Agent 工具支持 skill frontmatter可以按下面格式写Codex 不依赖 frontmatterMarkdown 正文同样能生效。--- name: blender-toolkit description: 根据自然语言建模需求生成可执行的 Blender Python 脚本。 --- # Blender 建模技能 ## 能力范围 - 使用 bpy 创建基础几何体 - 设置物体位置、旋转、缩放 - 使用光源、相机和简单材质 - 保存 .blend 文件 ## 代码规范 1. 脚本开头清空场景 bpy.ops.object.select_all(actionSELECT) bpy.ops.object.delete(use_globalFalse) 2. 每个物体创建后必须设置 name。 3. 使用 bpy.ops.wm.save_as_mainfile(filepath...) 保存结果。 4. 脚本必须能通过 blender --background --python xxx.py 直接执行。 ## 环境 - Blender 版本3.6 LTS / 4.x - 不要使用系统 Python 运行脚本bpy 由 Blender 内置 Python 提供。 ## 辅助模板 参考 templates/basic_scene.py 的基础结构。这份文件约 30 行信息量足够让 AI 知道“怎么在 Blender 里写建模脚本”。实际使用时codex 并不会像某些 Agent 工具那样自动扫描 skills 目录最稳妥的方式是在 prompt 里显式要求它读取这份文件。5.3 编写 prompt 需求文件把一次建模需求单独放到prompts目录中方便复用和批量处理。例如prompts/sky_palace.txt请先读取 skills/blender-toolkit/SKILL.md然后完成以下需求 使用 Blender Python API 生成一个简化版天宫仙境场景。 要求 1. 创建一块地面作为云台。 2. 创建 8 个扁平圆柱体模拟云海围绕中心分布。 3. 创建一座中式大殿包含底座、4 根柱子、主殿墙体和锥形屋顶。 4. 在屋顶上方添加一个发光小球当作天宫宝珠。 5. 所有物体必须有清晰命名。 6. 最后保存为 output/sky_palace.blend。这个文件既是给 Codex 的指令也是留档。后面批量执行时只需要换掉 txt 内容。6. 实测用 DeepSeek Codex 生成天宫仙境场景6.1 发起建模任务在项目目录下执行codex exec 读取 prompts/sky_palace.txt按照 SKILL.md 规范生成 Blender 脚本并执行。执行前先展示脚本内容Codex 的工作过程大致是读取SKILL.md了解 Blender 建模规范。读取prompts/sky_palace.txt理解天宫场景需求。调用 DeepSeek 生成一段 Blender Python 脚本。把脚本写入scripts/目录。询问你确认后执行blender --background --python scripts/sky_palace.py。不同版本的 Codex 交互方式可能不同有些版本默认需要人工确认命令有些版本可以通过参数开启自动执行。以你本机的codex --help输出为准。如果 Codex 没有自动调用 Blender也可以手动执行生成的脚本blender --background --python scripts/sky_palace.py6.2 一份可参考的天宫场景脚本如果你希望先验证 Blender 侧没有问题可以用下面这段脚本。它能生成一个简化版天宫场景云台地面、云海、宫殿底座、柱子、屋顶和宝珠。import bpy import math # 1. 清空场景 bpy.ops.object.select_all(actionSELECT) bpy.ops.object.delete(use_globalFalse) # 2. 地面 bpy.ops.mesh.primitive_plane_add(size40, location(0, 0, 0)) ground bpy.context.object ground.name SkyGround # 3. 云海用扁平圆柱体模拟 for i in range(8): x math.cos(i * math.pi / 4) * 8 y math.sin(i * math.pi / 4) * 8 bpy.ops.mesh.primitive_cylinder_add(vertices24, radius1.8, depth0.1) cloud bpy.context.object cloud.name fCloud_{i:02d} cloud.location (x, y, 3.5 i * 0.02) # 4. 宫殿底座 bpy.ops.mesh.primitive_cube_add(size1, location(0, 0, 1.5)) base bpy.context.object base.name PalaceBase base.scale (8, 5, 1) # 5. 柱子 for x in (-3, 3): for y in (-1.8, 1.8): bpy.ops.mesh.primitive_cylinder_add(vertices16, radius0.25, depth3, location(x, y, 3)) column bpy.context.object column.name fColumn_{int(x)}_{int(y)} # 6. 主殿墙体 bpy.ops.mesh.primitive_cube_add(size1, location(0, 0, 4.2)) main_hall bpy.context.object main_hall.name MainHall main_hall.scale (5, 3.2, 1.2) # 7. 锥形屋顶 bpy.ops.mesh.primitive_cone_add(vertices8, radius4, depth1.6, location(0, 0, 5.5)) roof bpy.context.object roof.name Roof roof.rotation_euler (0, 0, math.pi / 8) # 8. 天宫宝珠 bpy.ops.mesh.primitive_uv_sphere_add(radius0.5, location(0, 0, 6.1)) orb bpy.context.object orb.name SkyOrb # 9. 保存文件 bpy.ops.wm.save_as_mainfile(filepathoutput/sky_palace.blend) print(天宫场景生成完成)注意Blender 4.1 之后的 primitive 添加 API 可能将radius参数改成了radius1/radius2如果脚本运行报参数错误根据 Blender 终端提示替换即可。6.3 验证生成效果场景生成后直接在 Blender 中打开blender output/sky_palace.blend也可以直接用命令行渲染一帧预览图blender --background output/sky_palace.blend --render-frame 1 --render-output //render/frame_###.png渲染完成后到render目录查看 PNG 预览。判断标准很简单场景没有报错、物体存在、物体位置合理就说明链路已经跑通。6.4 判断成功的标准终端输出“天宫场景生成完成”无 Traceback。output/sky_palace.blend文件存在且体积不为 0。用 Blender 打开场景可以看到地面、云海、大殿、屋顶和宝珠。场景物体命名规范便于后续修改。6.5 常见失败原因脚本里没有调用清空场景指令导致多个物体叠加。脚本被 AI 截断保存失败。Blender 版本 API 参数不一致。系统 Python 直接执行脚本导致ModuleNotFoundError: bpy。7. 批量建模与接口化思路7.1 批量生成多套场景批量任务的核心是把“需求文件”与“生成脚本”分开管理。对每个 prompt 文件重复同一套处理流程prompts/ ├── sky_palace.txt ├── moon_palace.txt └── dragon_palace.txt在 Codex 中逐个调用或者在脚本里按目录循环。下面是一个 Python 批量处理框架示例真正执行时需要按实际 Codex 命令行调整import subprocess import pathlib prompt_dir pathlib.Path(./prompts) script_dir pathlib.Path(./scripts) script_dir.mkdir(exist_okTrue) for prompt_file in prompt_dir.glob(*.txt): prompt prompt_file.read_text(encodingutf-8) script_path script_dir / f{prompt_file.stem}.py print(f正在处理: {prompt_file.name}) # 这里应该调用 Codex 生成脚本并将输出写入 script_path # 例如: subprocess.run([codex, exec, prompt]) # 脚本生成后交给 Blender 后台执行 if script_path.exists(): subprocess.run([ blender, --background, --python, str(script_path) ])7.2 批量任务建议不要并发启动多个 Blender 进程内存压力会很大。每个任务单独输出日志方便排查失败任务。脚本生成失败时记录 prompt 和错误原因进入重试队列。使用统一的模型命名规范避免多套场景混在一起。7.3 接口化扩展如果不想每次都在终端交互可以把“需求文本 Skill 描述”拼成一个请求定时或按队列触发执行。这样就能把“DeepSeek Codex Blender”包装成内部建模服务接进自动化流水线。接口层需要考虑几点限制访问范围只允许内网调用。输入侧只接受文本 prompt不接收任意代码。生成后的脚本先存入待审核目录确认后再执行。任务状态用数据库或 JSON 文件记录防止重复执行。8. 资源占用与性能观察这套方案的资源占用分两段推理阶段如果使用 DeepSeek 官方 API本地资源占用很低只有一个 Node 进程和少量网络请求。如果本地部署 Ollama推理时显存和内存占用会显著上升具体大小取决于模型参数和量化等级需要以实际运行状态为准。Blender 执行阶段blender --background --python会启动完整的 Blender 进程。场景复杂度直接影响 CPU、内存占用物体数量越多、几何体分辨率越高执行时间越长。观察方式# macOS / Linux top -o MEM # Windows tasklist | findstr blender降低资源占用的方法减少生成脚本中的网格分段数比如圆柱vertices16就比vertices64轻很多。批量任务串行执行避免同时开多个 Blender。每跑完一个任务就清理实例不要保留不用的 Blender 进程。生成脚本先检查再执行避免因为死循环拖垮机器。9. 常见问题与排查方法问题现象可能原因排查方式解决方案unable to locate the codex cli binary. set codex cli pathIDE 或 GUI 工具找不到 Codex 可执行文件在终端执行which codex或where codex把 codex 完整路径填入工具设置local proxy failed while handling codex endpoint /responses供应商不支持/responses或本地代理配置异常检查base_url确认是否新增了代理工具配置中加wire_api chat或关闭本地代理重试DeepSeek API 返回 401API Key 错误或未设置环境变量echo $DEEPSEEK_API_KEY重新设置 Key重启终端blender命令找不到Blender 未加入 PATHblender --version把 Blender 安装目录加入 PATHModuleNotFoundError: bpy用系统 Python 运行脚本确认调用方式是blender --background --python不要用python xxx.py执行 Blender 脚本primitive_cone_add参数报错Blender 4.1 API 变更查看终端 traceback改用radius1/radius2参数脚本跑完场景是空的脚本开头清空后没有创建物体或脚本被截断打开生成的output/*.blend检查检查脚本内容分步执行生成任务中途卡住网络请求超时或代理拦截查看日志和网络请求增加超时时间关闭拦截工具后重试重复创建物体脚本没有调用清空场景检查脚本开头加入bpy.ops.object.select_all(actionSELECT)和bpy.ops.object.delete()10. 最佳实践与合规提醒10.1 工程化建议第一次跑通后建议把项目目录固定下来形成一套模板project/ ├── skills/blender-toolkit/SKILL.md ├── prompts/*.txt ├── scripts/*.py ├── output/*.blend └── logs/*.log给 AI 的 prompt 要写清楚约束比如“物体必须命名”“保存到指定路径”。多次生成同一类场景时沉淀一套固定的描述模板能明显提高脚本稳定性。AI 生成的脚本不要直接执行先看一眼有没有异常。重点检查文件删除、路径写入、外部命令调用这几类行为。第一次跑任务先用最小场景验证。比如只生成一个平面和一个圆柱确认整条链路没问题再扩展到复杂场景。这样出问题时定位范围会小很多。10.2 合规与安全使用 DeepSeek 官方 API 时注意接口传输的数据内容。敏感项目建议使用 Ollama 本地部署数据不出内网。Blender 脚本等同于本地代码运行前必须确认来源和内容。不要直接运行来源不明的脚本执行文件操作。涉及人脸、品牌、版权素材、他人作品时必须确认授权。AI 生成的 3D 场景商用前需要做完整的版权和内容复核。11. 总结与下一步这套“DeepSeek Codex 控制 Blender 建模”的方案最值得尝试的地方是把“想做一个场景”变成“用一句话描述场景”然后由 AI 自动完成脚本生成和建模执行。它不一定能替代专业美术但非常适合快速搭建概念场景、批量生成初始模型、验证创意方向。建议先跑通最小链路配置 Codex 接入 DeepSeek写一个 30 行的 SKILL.md生成一个只有柱子和屋顶的简化宫殿确认 Blender 后台能正常输出.blend文件。这是最容易踩坑的部分因为涉及 Codex 配置、网络接口、Blender PATH 和 bpy API 多个环节。后面可以继续扩展的方向包括接入 Blender 渲染和动画、批量生成场景素材库、沉淀自己的 prompt 模板、把整个流程封装成内部 API 服务。熟悉之后你就能把建模从“手工操作”逐步改成“需求驱动”给 3D 内容生产流程省下不少重复劳动。