资讯动态

DeepSeek+Codex+Blender:AI自动建模链路全解析

发布时间:2026/8/30 1:42:29 来源:尧图企业网站定制
这次我们来看一条很有意思的自动化链路把 DeepSeek 的大模型理解能力、Codex 的编码 Agent 能力、Blender 的三维建模能力通过 skill 机制串在一起让 AI 自动在 Blender 里建模。标题里的“天宫仙境”可以理解成一个目标场景但真正值得学的不是那个仙气飘飘的最终画面而是这套“自然语言 - 代码 - Blender 操作 - 批量生成”的控制流程。这套方案的本质是把大模型从“只会聊天”变成“会操作软件”。DeepSeek 负责把用户的建模意图转成可执行的 Python 代码Codex 这类编码 Agent 负责读取任务、执行命令、根据错误反馈修正Blender 则作为执行引擎通过 Python API 完成建物体、改材质、摆相机、渲染输出等操作。最终你看到的“AI 自动建模”其实是在三层之间做了一次稳定的翻译和调度。对你的实际价值不在 AI 是否能一次生成完美作品而在于它能先把重复性建模拆成可验证的小任务批量生成柱子、山石、亭台骨架快速跑通不同布局再把结果交给人工精修。如果你关心自动化建模、批量任务、接口调用、本地部署边界这篇文章可以直接收藏。下面会从核心能力、链路原理、环境准备、部署启动、功能测试、接口批量、资源占用、问题排查到最佳实践完整过一遍。1. 核心能力速览能力项说明项目形态DeepSeek 大模型 Codex 编码 Agent Blender 建模 skill 指令集组合方案核心功能通过自然语言或结构化 skill 描述让 AI 自动生成、修改、批量构建 Blender 场景和模型建模方式Blender Python API可通过命令行后台模式执行LLM 能力DeepSeek API 接入如果本地部署大模型需要评估模型量级和显存硬件门槛仅调用云 API 时门槛较低本地部署模型需要独立显卡Blender 渲染需求取决于场景复杂度和分辨率启动方式Codex CLI blender 命令 Python 脚本也可以封装成 HTTP 接口服务是否支持 API支持。DeepSeek 自身有 APIBlender 侧通过 Python API 接受指令Codex 通过命令行与脚本来驱动是否支持批量任务支持。几何体、材质、渲染图、场景文件都可以批量生成主要产出.blend工程文件、渲染图或序列帧、JSON 场景描述、Python 脚本适合用户3D 美术、游戏/动画开发、自动化设计、对 AI 编程工具感兴趣的技术人员需要说明的是表格里出现的一些参数比如具体显存占用、支持的操作系统版本、Codex 的配置字段都有可能因为你的环境不同而变化。更稳妥的判断是从头到尾跑通一个“生成立方体 - 导出 .blend”的最小链路后再逐步扩展。2. 这套链路是怎么工作的先别急着装环境把链路拆清楚后面排查问题会快很多。这套方案里有三块核心角色DeepSeek 是“语义层”。它负责理解“帮我生成一座浮空山”这种描述把模糊的想法转换成具体的、有结构的指令或代码。Codex 是“执行层”。它拿到任务后会翻看当前项目的 skill 说明知道该用什么 Blender 命令、该把文件输出到哪里然后执行 Python 脚本再根据终端报错决定是否重试。Blender 是“渲染与建模引擎”。它不关心大模型逻辑只负责执行bpy指令创建网格、修改顶点、设置材质、绑定相机、渲染输出。skill 在这里很关键。简单说skill 是一组给 Agent 看的说明文档和脚本模板。它不是魔法而是一份“操作手册”。Codex 这类 Agent 在执行任务前会读取 skill 文件然后按照里面写的规则操作。比如 skill 里规定所有物体都放在Collection里或者所有生成结果都保存到outputs/目录这样 Agent 的行为会稳定很多。从材料来看这套方式的核心价值在于Blender 的 Python API 本来就很完整Codex 这类编码 Agent 本来就会写代码skill 只是把双方的操作边界固定下来。而 DeepSeek 负责把提示词变成可靠的指令。比起让 AI 直接生成整个 3D 工程文件这种“分步控制”的方式更可控也更容易查错。更具体地说你可以把一次建模任务分成三部分用户输入“生成三根石柱每根高度不同” - DeepSeek/Agent 理解后生成 Python 脚本 - blender --background --python 执行脚本 - 生成 .blend 文件并输出日志每一部分都可以单独测试也可以单独替换。今天你用 DeepSeek明天换成其他兼容模型或者把 Codex 换成别的支持 skill 的 Agent 工具改动成本都不算高。3. 适用场景与使用边界这套“DeepSeek Codex Blender skill”组合最适合以下场景批量生成场景骨架。比如“天宫仙境”里的柱子、亭台、石阶、山体都是重复度高的结构性物体很适合自动生成。程序化建模。复制、排列、旋转、缩放AI 可以用脚本快速生成大量物体。快速布局验证。想让 AI 生成 20 种不同摆放方案每个方案对应一个.blend文件人工再从中挑一个精修。把 3D 建模流程嵌入自动化管线。比如从 JSON 配置读取参数自动生成不同规格的模型。但它也有明显边界不适合高精度角色动画、复杂雕刻、绑定和权重调整。这些工作依赖美术经验和大量手动微调AI 直接生成很难达到生产标准。不适合严格的工业 CAD。Blender 本身不是参数化 CAD 工具若要对齐工程图纸需要额外验证。不适合完全无人值守。至少最开始需要人工检查生成结果避免 AI 生成了一堆“看起来合理但无法使用”的几何体。使用边界必须说清楚调用 DeepSeek、Codex 时要遵守对应平台的服务条款不要把密钥提交到公开仓库。使用 Blender 内置资产、第三方模型时注意版权许可。如果生成内容涉及人物肖像、特定品牌、敏感标识必须确认有合法授权。自动化工具只解决效率问题不解决授权问题。4. 环境准备与前置条件在开始部署前先检查一下基础环境。下面是建议的检查清单不同系统、不同 Python 版本会稍有差异。检查项建议要求说明操作系统Windows / Linux / macOS三平台均可用但命令会有差异Blender建议 LTS 版本需要确认 Python 版本与内置环境Node.js / npm较新版本Codex CLI 等命令行工具依赖Python3.10 或更高用于写外部调度脚本Blender 自带 PythonDeepSeek API Key从官方平台申请云端调用需要显卡可选如果本地部署模型才需要独立显卡磁盘空间预留足够空间安装软件、保存 .blend、渲染图像都占空间这里要专门提醒Blender 内置的 Python 环境通常与系统 Python 是分开的。外部脚本可以通过blender --background --python script.py的方式调用但如果你在 Blender 脚本里 import 第三方库需要安装到 Blender 对应的 Python 环境里而不是系统 Python。这个坑最常见很多新手在外部用pip install装完依赖结果 Blender 根本不认。建议先把目录结构规划好deepseek-blender-demo/ ├── outputs/ # 所有生成文件 ├── scripts/ # 外部调度脚本 ├── skills/ # skill 定义 │ └── blender_skill/ │ └── SKILL.md ├── inputs/ # 批量任务 JSON ├── assets/ # 纹理、参考图、素材 └── logs/ # 运行日志这套目录设计不是为了花哨而是为了后续批量任务和排查方便。生成文件统一进outputs日志统一进logs出了任何问题都能很快定位。5. 安装部署与启动方式5.1 安装 Blender如果你还没装 Blender去官网下载对应系统的安装包。安装时注意勾选“添加 Blender 到系统 PATH”或者安装后手动把 Blender 的 bin 目录加到系统环境变量。验证安装是否成功blender --version能输出版本号就说明命令行可用。如果提示找不到命令先去配置环境变量或者直接用 Blender 的全路径。5.2 安装 Codex CLICodex 这类编码 Agent 工具通常通过 npm 安装。这里给的是通用方式具体包名和安装地址以你选择的工具官方文档为准npm install -g openai/codex安装后可以先跑一下codex --help如果出现类似unable to locate the codex cli binary的报错说明系统没有找到 Codex 的可执行文件。常见原因是 PATH 没配置好或者安装目录不在系统搜索路径里。排查方式有两种一是重新打开终端让 PATH 刷新二是手动把 Node 全局 bin 目录加入 PATH。5.3 配置 DeepSeek 接入DeepSeek 提供 API 服务也支持与 OpenAI 兼容的调用方式。如果你希望在 Agent 工具背后使用 DeepSeek可以通过环境变量或配置文件指定模型提供方和 API Key。这里给一个通用示例# 注意具体环境变量名需要按你使用的 Agent 工具文档调整 export DEEPSEEK_API_KEYyour-api-key如果工具支持自定义base_url把地址指向 DeepSeek 的 API 地址即可。不建议把所有配置写死在项目里更稳妥的方式是放到本地环境变量或.env文件并且把.env加入.gitignore避免密钥泄露。5.4 创建 skill 定义在skills/目录下创建一个SKILL.md这个文件就是给 Agent 看的操作手册。内容越具体Agent 越不容易跑偏。示例# Blender 建模技能 ## 职责 - 根据用户描述生成 Blender Python 脚本 - 所有操作必须使用 Blender Python API - 生成结果保存到 outputs 目录 - 禁止删除用户已有数据 ## 常用命令模板 - 立方体: bpy.ops.mesh.primitive_cube_add(size2) - 圆柱体: bpy.ops.mesh.primitive_cylinder_add(radius1, depth3) - 保存: bpy.ops.wm.save_as_mainfile(filepathoutputs/test.blend) ## 执行原则 1. 先打印操作计划 2. 每一步都检查日志输出 3. 出错时根据报错信息修正这个 skill 文件不需要很长但要把边界和常用模板写清楚。Codex 在执行任务时会自动读取然后生成更符合项目规范的代码。5.5 测试 Blender 后台模式先用最简单的方式验证 Blender 是否可以被外部命令驱动。新建一个空 .blend 并生成几何体blender --background --python-expr import bpy; bpy.ops.mesh.primitive_cube_add(size2); bpy.ops.wm.save_as_mainfile(filepathoutputs/test.blend)如果执行后生成了outputs/test.blend说明 Blender 的后台模式、Python API、文件保存链路都正常。这个最小链路是整个自动控制的“地基”后面所有复杂功能都基于这一点。6. 功能测试与效果验证环境搭好之后不要一上来就挑战“天宫仙境”。建议按下面的顺序逐步验证每一步都能明确判断成功或失败。6.1 测试一纯手工生成一个立方体目标确认 Blender 可以从命令行生成模型并保存。操作步骤新建空目录outputs/。执行上面那行blender --background --python-expr命令。检查outputs/下是否存在test.blend。预期结果命令无报错.blend文件生成。判断标准用 Blender 打开该文件能看到一个默认立方体。6.2 测试二通过 Codex 生成多个几何体目标确认 Agent 能读取自然语言并调用 Blender 生成代码。输入示例在 Blender 中生成三根柱子第一根用圆柱体半径 0.5高度 3第二根高度 4第三根高度 5。都保存到 outputs/columns.blend。操作步骤启动 Codex CLI。输入上面的自然语言指令。观察 Codex 是否读取了 skill 文件。查看输出的 Python 脚本和运行日志。打开生成的.blend检查柱子高度。预期结果生成三根高度不同的圆柱体文件正确保存。常见失败原因Blender 路径未配置Codex 找不到blender命令或者生成的代码里没有加bpy.ops.wm.save_as_mainfile。6.3 测试三构建一个简易“天宫仙境”场景骨架不用一步到位先做一个小型场景一个底座平面几根柱子一个中心亭子。你可以让 Codex 生成脚本也可以在外部脚本里先把流程写死再让 Agent 调用。这里给一个参考脚本实际使用时可以根据你的需求调整import bpy import random # 清理场景默认物体 bpy.ops.wm.read_factory_settings(use_emptyTrue) # 地面 bpy.ops.mesh.primitive_plane_add(size30, location(0, 0, 0)) ground bpy.context.active_object ground.name Ground # 随机柱子 for i in range(5): x random.uniform(-8, 8) y random.uniform(-8, 8) h random.uniform(2, 5) bpy.ops.mesh.primitive_cylinder_add( radius0.4, depthh, location(x, y, h / 2) ) bpy.context.active_object.name fPillar_{i} # 中心平台 bpy.ops.mesh.primitive_cylinder_add( radius4, depth1, location(0, 0, 0.5) ) bpy.context.active_object.name CenterPlatform # 保存 bpy.ops.wm.save_as_mainfile(filepathoutputs/palace_base.blend) print(场景生成完成)把这段脚本保存为scripts/build_palace_base.py用下面的命令执行blender --background --python scripts/build_palace_base.py预期结果生成一个带地面、柱子和中心平台的.blend文件。判断标准打开文件能看到至少一个平台和若干柱子位置不重叠名称符合预期。这个测试能验证两件事一是你的外部脚本能稳定生成一个基础场景二是 Agent 后续在这个脚本基础上做扩展时不会每次从零开始。6.4 测试四渲染出一张图生成场景只是第一步能渲染出图才是真的“可用”。在 Blender 脚本里加相机和渲染配置import bpy # 设置相机 camera_data bpy.data.cameras.new(Camera) camera_obj bpy.data.objects.new(Camera, camera_data) bpy.context.collection.objects.link(camera_obj) camera_obj.location (15, -15, 10) camera_obj.rotation_euler (1.2, 0, 0.8) # 指定场景相机 bpy.context.scene.camera camera_obj # 设置渲染引擎与输出 bpy.context.scene.render.engine BLENDER_EEVEE bpy.context.scene.render.image_settings.file_format PNG bpy.context.scene.render.filepath outputs/palace_render.png # 渲染 bpy.ops.render.render(write_stillTrue) print(渲染完成)将上面这段附加到scripts/build_palace_base.py末尾再次执行blender --background --python scripts/build_palace_base.py预期结果生成outputs/palace_render.png。从这个测试里你能判断自动建模链路是否完整从语义理解到代码生成从几何构建到渲染输出一条线全跑通。7. 接口 API 与批量任务如果你不想每次手动输入自然语言而是希望其他程序调用这套方案那就需要考虑接口层和批量任务。7.1 封装 Blender 为服务Blender 本身不是常驻服务但你可以写一个 Python 服务接收 HTTP 请求再调用 Blender 后台命令。比如使用 Flask 写一个轻量接口from flask import Flask, request, jsonify import subprocess import os app Flask(__name__) app.route(/generate, methods[POST]) def generate(): data request.get_json() script_path data.get(script_path) if not script_path: return jsonify({error: script_path is required}), 400 output_name data.get(output_name, output.blend) output_dir outputs os.makedirs(output_dir, exist_okTrue) cmd [ blender, --background, --python, script_path, --, output_name ] result subprocess.run(cmd, capture_outputTrue, textTrue, timeout300) return jsonify({ returncode: result.returncode, stdout: result.stdout[-2000:], stderr: result.stderr[-2000:] }) if __name__ __main__: app.run(host127.0.0.1, port8000)实际使用时script_path不应直接暴露给不可信用户否则等于给了任意代码执行权限。更安全的方式是把脚本模板固定好只允许传参数。这个接口只是演示“把 Blender 作为服务端”的思路生产环境必须做参数校验、超时控制和权限限制。启动服务后你可以用 curl 测试curl -X POST http://127.0.0.1:8000/generate \ -H Content-Type: application/json \ -d {script_path: scripts/build_palace_base.py, output_name: api_test.blend}7.2 DeepSeek 通用 API 调用示例如果你的系统需要先让大模型生成 Blender 脚本再交给 Blender 执行可以使用 DeepSeek 的 API 接口。DeepSeek 的 API 兼容 OpenAI 的调用格式通用代码模板如下from openai import OpenAI client OpenAI( api_keyyour-api-key, base_urlhttps://api.deepseek.com ) response client.chat.completions.create( modeldeepseek-chat, messages[ {role: system, content: 你是 Blender 建模脚本专家。}, {role: user, content: 生成一个 Blender Python 脚本创建五根柱子。} ] ) print(response.choices[0].message.content)注意base_url、model名称、api_key字段需要以 DeepSeek 官方文档为准。示例代码里的deepseek-chat是常见模型标识但是否可用、是否需要改为具体版本号要看你申请 API 时平台给出的信息。7.3 批量任务设计批量任务的核心思路是用结构化文件描述任务而不是靠自然语言一条条跑。{ tasks: [ { id: column_01, object_type: cylinder, radius: 0.3, height: 3, location: [0, 0, 1.5] }, { id: column_02, object_type: cylinder, radius: 0.4, height: 4, location: [2, 0, 2] } ] }然后写一个 Python 脚本读取这个 JSON循环生成模型import bpy import json with open(inputs/tasks.json, r, encodingutf-8) as f: data json.load(f) bpy.ops.wm.read_factory_settings(use_emptyTrue) for task in data[tasks]: if task[object_type] cylinder: bpy.ops.mesh.primitive_cylinder_add( radiustask[radius], depthtask[height], locationtuple(task[location]) ) obj bpy.context.active_object obj.name task[id] bpy.ops.wm.save_as_mainfile(filepathoutputs/batch_output.blend) print(batch done)批量任务的要点是“可重复、可定位”每次运行都有独立输出任务 ID 能对应到生成结果日志里记录每个任务执行时间。一旦某个任务出错能立刻知道是哪一个而不是混在一起排查。7.4 批量任务失败重试建议批量生成是比较容易遇到资源问题的场景。建议在循环里加异常捕获try: bpy.ops.mesh.primitive_cylinder_add(...) except Exception as e: print(f任务 {task[id]} 失败: {e}) continue在流水线里失败不一定要终止整个批次。先把失败任务记录下来最后统一重试。如果是显存或内存不足导致失败重试前先评估是不是单次生成物体数量过多拆成小批次更稳妥。8. 资源占用与性能观察这套方案里资源占用主要取决于三部分DeepSeek 是云端调用还是本地部署、Codex 执行过程中是否生成大量代码日志、Blender 建模和渲染时场景复杂度。如果你用的是 DeepSeek API本地不会有大模型负载主要压力在 Blender 侧。Blender 后台模式会启动一个完整 Python 环境加载插件和场景数据这时候 CPU 和内存占用会立刻升高。如果场景里有大量粒子、细分表面或高精度贴图内存会快速上涨。要观察占用直接看系统任务管理器或top命令即可。如果你选择本地部署 DeepSeek 模型情况就完全不一样了。本地大模型的显存占用会很高具体数字取决于模型参数量、量化精度和上下文长度。不要在没有材料依据的情况下假设某个模型一定占用多少 G最稳妥的方法是用nvidia-smi实际查看watch -n 1 nvidia-smi渲染性能方面影响最大的因素包括几何体数量顶点和面越多渲染越慢。渲染引擎Eevee 实时渲染比 Cycles 物理渲染快很多。采样次数采样数越高噪点越少但耗时成倍增加。分辨率2K 和 1080P 的渲染耗时差别很大。材质复杂度透明、次表面散射、体积光都会明显拖慢渲染。如果发现生成过程比较慢优先做这几件事用 Eevee 做快速预览确认布局后再用 Cycles 出最终图。控制场景物体数量先出骨架后加细节。渲染分辨率先设小比如 1280x720。批量任务拆分避免一次性在内存里创建太多对象。关掉不必要的视口刷新和插件加载。需要再次强调显存和内存的绝对数值必须根据你自己的实际环境测试。别人的 7G、12G 不能直接搬到你的项目里尤其是本地模型版本不同差异非常大。9. 常见问题与排查方法问题现象可能原因排查方式解决方案执行 codex 时提示unable to locate the codex cli binaryCodex 可执行文件不在 PATH检查安装目录和 PATH重新配置 PATH或把 Codex 路径写入环境变量运行blender命令提示找不到Blender 未加入 PATH执行blender --version验证手动添加 Blender 安装目录到系统 PATHBlender Python 脚本找不到第三方库装到了系统 Python而不是 Blender Python在 Blender 脚本里打印 sys.executable找到 Blender 自带 Python 的环境重新安装依赖执行脚本后没有生成 .blend 文件脚本报错或保存路径不存在查看命令行完整日志先确认脚本能打印到“保存前”的日志再检查目录权限DeepSeek API 返回认证失败API Key 错误或密钥未加载检查环境变量和请求日志重新配置密钥不要写在代码里skill 文件没有生效文件名或路径不符合 Agent 约定确认 SKILL.md 所在目录名称按 Agent 工具的 skill 目录规范命名批量任务到一半卡住场景过大、内存不足、网络超时查看任务日志和资源占用拆分任务降低单次处理数量增加超时时间渲染很慢或直接崩溃几何体过多、渲染引擎负载高检查资源占用曲线降低采样、分辨率切换渲染引擎端口被占导致服务启动失败8000 或其他端口被占用检查端口监听更换端口或关闭占用进程如果遇到上面没有覆盖的问题第一步永远是看日志。Codex CLI、Blender、外部 Python 脚本都会输出日志把日志保留下来能帮你快速定位是模型理解错、代码生成错、还是 Blender 执行错。日志比“猜”有效得多。10. 最佳实践与使用建议第一把生成流程拆成“小步快跑”。每让 Agent 做一件事都保存一个输出文件。这样即使后面步骤失败前面的结果还在。比如先生成柱子保存columns.blend再生成地面保存ground.blend最后合成一个总场景。这样可以精准定位哪一步出了问题。第二多用结构化中间文件。不要只靠自然语言传递信息。用 JSON 保存物体坐标、尺寸、材质参数既方便 Agent 读取也方便你批量修改和复用。第三skill 文档要持续迭代。第一次运行后如果 Agent 总是不加你想要的命名规则就把规则写进SKILL.md如果 Blender 脚本经常忘了保存文件就把保存流程写进必须执行的步骤。skill 不是一次写好的它更像一个不断完善的“操作 SOP”。第四重视版本管理。Blender 版本不同Python API 可能有些差异Codex 版本不同skill 的路径约定可能也有变化。建议在项目里记录所用版本或者用 Git 管理脚本和 skill 文件方便回滚。第五接口服务必须做安全限制。如果你把 Blender 封装成 HTTP 接口一定要限制访问范围不要监听在公网可随意访问的地址上要对请求做参数校验不能允许任意脚本路径要加超时和资源限制避免一个请求把整台机器拖垮。第六注意版权和授权边界。生成的 3D 资产如果来自第三方模型库要确认是否允许复制、修改、商用。DeepSeek、Codex 等平台都有自己的服务条款使用 API 前先看清楚。不能因为“AI 自动生成”就忽略版权和合规问题。第七建立人工复核机制。AI 可以帮你快速出一批模型但不是每个都靠谱特别是复杂的结构可能出现穿模、比例失调、命名混乱等问题。自动化生成之后至少要做一轮人工检查再进入下一环节。11. 总结与下一步这套组合里最值得尝试的点不是让 AI 一次性画出“天宫仙境”的完整效果图而是学会把大模型、编码 Agent、Blender 的 Python API 和 skill 机制串成一条可控制的自动化工作流。跑通最小链路后你想生成柱子、亭台、山石还是游戏里的重复道具都只是换脚本模板和 skill 定义的事。建议的下一步动作按顺序来先跑通“命令行生成立方体并保存”的最小链路。再让 Codex 根据你的自然语言描述生成多个几何体。把场景脚本固定下来添加地面、柱子和中心平台。设置相机和渲染参数输出第一张渲染图。把任务参数改成 JSON 格式做一次批量生成。最后再考虑要不要封装成 HTTP 接口接到你的业务系统里。最容易踩的坑有三个Blender 不在 PATH 里、Agent 找不到 Codex CLI、第三方 Python 包装错环境。这三个问题只要提前确认就能省下大量排查时间。不过也要记住这套方案的核心不是“完全替代模型师”而是“把重复劳动交给自动化”。你可以在它生成的骨架上继续精修也可以把它集成进更复杂的资产生产管线。把基础链路跑通之后你会得到一个很灵活的建模控制入口剩下的就看你想让它先建哪一座“天宫”了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价