GPT-6 + Blender 完整教程:用官方 API 给 Blender 接一个 AI 脚本助手
GPT-6 Astra 是 OpenAI 在 2026 年公开的旗舰模型,Blender 是可用 Python 扩展的 3D 创作环境。把两者接起来,最稳的方式不是直接操控界面,而是让 GPT-6 先生成可审查的 Blender 脚本,再由插件写入文本块或执行。官方模型页给出 1,050,000 token 上下文和 128,000 token 最大输出,足够支撑复杂建模脚本与分步修正。
先说结论
GPT-6 + Blender 的最佳姿势,是让模型负责“写脚本”,让 Blender 负责“执行和预览”。
这样做有三个好处:
模型输出可审查
Blender 里的修改可回滚
同一套流程能反复复用
如果你想把这套工作流扩展到多款主流大模型,也可以把模型接入层放到兼容 OpenAI 接口的统一入口里。 脚本逻辑不变,只换 base_url 和 model。
GPT-6 Astra 是什么
OpenAI 官方模型页把 GPT-6 Astra 放在 API 文档里,重点不是“聊天”,而是更强的推理、工具调用和长上下文处理。
官方页里最值得记住的 3 个数
这意味着它很适合做“先理解需求,再生成代码,再修正代码”的工作流。
为什么适合 Blender
长上下文适合吃进场景约束、命名规则、材质风格和渲染要求
大输出适合生成较完整的 Blender 脚本
工具能力适合配合外部文件、脚本和调试步骤
但在 Blender 里,最推荐的仍然是“先生成、后审查、再运行”。
Blender 的 Python API 能做什么
Blender 官方 quickstart(2026)列了 10 项能力:
编辑界面能改到的任何数据
修改用户偏好、快捷键和主题
创建菜单、头部栏和面板
创建新工具和交互工具
在 3D 视图里绘制
这说明 Blender 不是只能手工点界面,它本来就支持用 Python 把重复劳动自动化。
这篇教程要搭什么
我们做一个最小可用插件:
左侧面板输入需求
点击按钮调用 GPT-6 Astra
模型返回 Blender Python 脚本
脚本写入文本块,先人工检查,再执行
第一步:准备环境
先准备这几个东西:
Blender 4.x
Python 3.11+ 环境
openaiPython SDKOPENAI_API_KEY
安装 SDK:
pip install openai如果你后面想把同一套脚本切到多模型路由,兼容 OpenAI 协议的统一入口会更省事。 比如把模型接入放到七牛云 AI 大模型广场这类统一接口上,插件代码基本不用改。
第二步:写一个 Blender 插件
把下面内容保存成 gpt6_blender_addon.py。
bl_info = {
"name": "GPT-6 Blender Assistant",
"author": "OpenAI + Blender",
"version": (0, 1, 0),
"blender": (4, 0, 0),
"location": "View3D > Sidebar > GPT-6",
"description": "Generate Blender Python scripts with GPT-6 Astra",
"category": "3D View",
}
import os
import bpy
from bpy.props import StringProperty, EnumProperty, IntProperty
from bpy.types import Operator, Panel
from openai import OpenAI
MODEL_ID = "gpt-6-astra"
def make_client():
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise RuntimeError("OPENAI_API_KEY is not set")
return OpenAI(api_key=api_key)
def build_prompt(user_prompt: str) -> str:
return f"""
You are a senior Blender Python assistant.
Write only valid Blender Python code for Blender 4.x.
Use bpy only.
Do not add markdown fences or explanations.
Keep the script safe and reviewable.
Task:
{user_prompt}
""".strip()
class GPT6BLENDER_OT_generate_script(Operator):
bl_idname = "gpt6blender.generate_script"
bl_label = "Generate Script"
bl_options = {"REGISTER"}
def execute(self, context):
prompt = context.scene.gpt6_prompt.strip()
if not prompt:
self.report({"ERROR"}, "Prompt is empty")
return {"CANCELLED"}
try:
client = make_client()
response = client.responses.create(
model=MODEL_ID,
input=build_prompt(prompt),
reasoning={"effort": context.scene.gpt6_reasoning},
max_output_tokens=context.scene.gpt6_max_tokens,
)
script = response.output_text.strip()
except Exception as exc:
self.report({"ERROR"}, str(exc))
return {"CANCELLED"}
text = bpy.data.texts.get("gpt6_generated.py") or bpy.data.texts.new("gpt6_generated.py")
text.clear()
text.write(script)
self.report({"INFO"}, "Script written to Text Editor: gpt6_generated.py")
return {"FINISHED"}
class GPT6BLENDER_PT_panel(Panel):
bl_label = "GPT-6 Assistant"
bl_idname = "GPT6BLENDER_PT_panel"
bl_space_type = "VIEW_3D"
bl_region_type = "UI"
bl_category = "GPT-6"
def draw(self, context):
layout = self.layout
layout.prop(context.scene, "gpt6_prompt", text="")
layout.prop(context.scene, "gpt6_reasoning", expand=True)
layout.prop(context.scene, "gpt6_max_tokens")
layout.operator("gpt6blender.generate_script", icon="TEXT")
classes = (
GPT6BLENDER_OT_generate_script,
GPT6BLENDER_PT_panel,
)
def register():
for cls in classes:
bpy.utils.register_class(cls)
bpy.types.Scene.gpt6_prompt = StringProperty(
name="Prompt",
default="Create a simple studio setup with a cube, camera, and three-point lighting.",
)
bpy.types.Scene.gpt6_reasoning = EnumProperty(
name="Reasoning",
items=[
("low", "Low", ""),
("medium", "Medium", ""),
("high", "High", ""),
],
default="medium",
)
bpy.types.Scene.gpt6_max_tokens = IntProperty(
name="Max Tokens",
default=2000,
min=256,
max=8000,
)
def unregister():
del bpy.types.Scene.gpt6_prompt
del bpy.types.Scene.gpt6_reasoning
del bpy.types.Scene.gpt6_max_tokens
for cls in reversed(classes):
bpy.utils.unregister_class(cls)第三步:安装和启用
打开 Blender
进入
Edit > Preferences > Add-ons点
Install...选择这个.py文件勾选启用
确保当前 Blender 进程能读到
OPENAI_API_KEY
然后在 View3D > Sidebar > GPT-6 里输入需求。
推荐的提示词写法
明确对象数量
明确镜头角度
明确材质风格
明确渲染引擎
明确输出要求
例如:
Create a clean product-shot scene for a black headphone stand.
Use a studio light setup, a camera at 35mm, Cycles renderer, and a dark neutral background.
Return only Blender Python code.第四步:先审查,再运行
不要让模型直接帮你无脑执行脚本。
更稳的流程是:
让 GPT-6 生成脚本
检查是否用了正确的
bpyAPI看是否有危险删除操作
在文本块里手动运行
常见检查点
有没有误删场景对象
有没有写错
bpy.ops有没有在界面回调里发网络请求
有没有把长任务放进阻塞式逻辑里
Blender 官方文档也强调,脚本适合创建面板、工具和数据修改,但不是拿来乱塞一切逻辑的。
第五步:把教程变成真正可复用的工具
当你跑通第一版后,可以继续加这几层:
预设模板:产品图、室内图、角色灯光
一键导出:把结果写入
.py参数面板:分辨率、采样、引擎、输出目录
多模型切换:不同任务走不同模型
如果你做的是团队工具,建议把“脚本生成”和“脚本执行”拆成两个按钮。这样出问题时更容易回滚。
FAQ
Q:GPT-6 Astra 能直接控制 Blender 界面吗?
可以做相关自动化,但更稳的是让它先生成脚本,再由 Blender 执行。这样更可审查,也更容易调试。
Q:为什么不用一次让模型输出整个完整项目?
因为 Blender 场景脚本一旦过长,调试成本会很高。先做最小可用插件,再逐步加参数和预设更稳。
Q:Blender 里的 Python 脚本会不会很难接 API?
不难。官方 API 本来就支持面板、工具、数据修改和视图绘制,插件化是它的正常用法。
Q:要不要把脚本直接自动执行?
不建议。对生成式脚本来说,先人工审查再运行是最省时间的长期方案。
收尾
这套方法的核心不是“让 AI 替你点按钮”,而是把 Blender 变成一个能接收、审查和执行脚本的工作台。GPT-6 Astra 负责理解复杂需求并生成高质量代码,Blender Python API 负责把这些代码落到真实场景里。
如果你要做的是稳定、可复用、可排错的 3D 自动化,这条路线比纯聊天式操作更靠谱。
延伸阅读
OpenAI GPT-6 Astra 模型页:https://developers.openai.com/api/docs/models/gpt-6-astra
OpenAI Responses API:https://developers.openai.com/api/docs/responses
OpenAI Python SDK 快速示例:https://developers.openai.com/api/docs/quickstart
Blender Python API Quickstart:https://docs.blender.org/api/current/info_quickstart.html
Blender Scripting Introduction:https://docs.blender.org/manual/en/latest/advanced/scripting/introduction.html
七牛云 AI 大模型广场:https://www.qiniu.com/ai/models