💡 你有没有想过:写一行代码,就能让 AI 画出你脑海中的画面?
比如:
js
编辑
prompt("一个穿汉服的赛博朋克少女,站在未来城市的霓虹雨夜中,4K 细节")
下一秒,一张惊艳的图像就出现在你眼前——这不是科幻,这是 AIGC(人工智能生成内容) 的现实。
而今天,我们就用 50 行 Node.js 代码,从零开始搭建一个属于自己的“AI 画师”,支持调用 OpenAI 的 DALL·E 3 生成高质量图片。
全程不碰网页、不依赖前端框架,只用命令行 + .mjs 模块化脚本,带你体验“后端驱动 AI”的极客快感!
🌱 一、什么是 AIGC?它为什么突然火了?
AIGC = Artificial Intelligence Generated Content(人工智能生成内容)
简单说:你给一句话,AI 给你一张图 / 一段文 / 一首歌。
近年来爆火的模型包括:
| 模型 | 功能 | 示例 |
|---|---|---|
| GPT-4 | 文本生成 | 写文章、写代码、写周报 |
| DALL·E 3 | 图像生成 | “一只猫宇航员在火星种土豆” |
| Stable Diffusion | 开源绘图 | 支持本地部署 |
| Sora | 视频生成 | OpenAI 的“电影生成器” |
🔥 我们今天要做的,就是用
DALL·E 3实现“文字 → 图像”的魔法!
⚙️ 二、项目初始化:用 pnpm 让安装快如闪电
别再用 npm install 慢慢等了!我们用更高效的包管理器:pnpm
✅ 为什么选 pnpm?
- 速度快:通过硬链接复用依赖,安装几乎瞬间完成
- 省空间:10 个项目共用同一个 lodash,不再重复下载
- 结构清晰:node_modules 更整洁
bash
编辑
# 全局安装 pnpm(只需一次)
npm install -g pnpm
# 初始化项目
pnpm init -y
# 安装核心依赖
pnpm add dotenv openai
💡 小知识:Vercel、Nuxt、Element Plus 等大厂项目都在用 pnpm!
🔐 三、安全第一:用 .env 管理你的 API Key
调用 AI 接口需要 API Key,但千万别写在代码里!否则可能被盗用导致扣费。
正确做法:使用 dotenv
-
安装
dotenv:bash 编辑 pnpm add dotenv -
创建
.env文件:env 编辑 OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OPENAI_BASE_URL=https://api.agicto.cn/v1 -
在代码中加载:
js 编辑 import { config } from 'dotenv'; config({ path: '.env' }); console.log(process.env.OPENAI_API_KEY); // 安全读取
🛑 记得把
.env加入.gitignore!
🧩 四、代码实战:用 OpenAI SDK 调用 DALL·E 3
我们创建一个 main.mjs 文件,使用 ES6 模块语法(import/export),更现代、更清晰。
js
编辑
// main.mjs
import OpenAI from 'openai';
import { config } from 'dotenv';
// 加载环境变量
config({ path: '.env' });
// 初始化客户端
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1',
});
🎨 调用图像生成接口
js
编辑
const main = async () => {
try {
const response = await client.images.generate({
model: 'dall-e-3',
prompt: 'A cyberpunk girl in Hanfu standing in a neon-lit rainy city, cinematic lighting, 4K detailed',
n: 1,
size: '1024x1024',
quality: 'standard',
style: 'vivid',
});
console.log('🎨 图片生成成功!');
console.log('🔗 查看地址:', response.data[0].url);
} catch (error) {
console.error('❌ 失败:', error.message);
}
};
main();
运行:
bash
编辑
node main.mjs
输出:
text
编辑
🎨 图片生成成功!
🔗 查看地址: https://oaidalleapiprodscus.blob.core.windows.net/...
点击链接,你的 AI 画作就出来了!
🧠 五、Prompt 工程:让 AI 更“懂你”
你以为 AI 很聪明?其实它很“笨”,全靠 Prompt(提示词) 指引。
❌ 差的 Prompt:
“一个漂亮的女孩”
结果:可能是千篇一律的网红脸,甚至被审核拦截。
✅ 好的 Prompt:
“一位身穿青花瓷纹样的未来主义长裙少女,站在江南水乡的雾中石桥上,手持发光纸伞,中国风与赛博朋克融合,8K 超清细节,光影柔和”
结果:独特、有想象力、艺术感强!
🛠️ Prompt 设计口诀:CRISPE
- Context:背景(如“中国风科幻”)
- Role:角色(如“你是资深概念设计师”)
- Instructions:指令(“生成一句英文 prompt”)
- Steps:分步思考
- Parameters:格式、尺寸、风格
- Examples:给出样例
💬 有些 AI 项目的核心,其实就是几段精心设计的 Prompt!
🧪 六、常见问题 & 优化建议
| 问题 | 解决方案 |
|---|---|
401 Unauthorized | 检查 API Key 是否正确 |
429 Rate Limit | 降低请求频率,或升级账户 |
| 图像被屏蔽 | 避免“sexy”“暴力”等敏感词 |
| 国内访问慢 | 使用代理平台(如 api.agicto.cn) |
| 想节省成本 | 用 dall-e-2 或 n=1 减少生成数量 |
🚀 七、下一步:把这个脚本变成你的 AI 工具箱
你可以继续扩展这个小项目:
-
命令行参数输入 prompt
bash 编辑 node main.mjs "一只熊猫在太空站打太极" -
保存图片到本地 使用
axios+fs下载图像 -
构建 Web 服务 用 Express 搭建一个
/generate接口 -
接入前端 React/Vue 输入 prompt,后端返回图片
-
多模型支持 同时支持通义万相、文心一格等国产模型
📝 总结:AI 开发的“最小可行性路径”
| 步骤 | 工具 |
|---|---|
| 1. 初始化项目 | pnpm init -y |
| 2. 管理密钥 | .env + dotenv |
| 3. 调用 AI | openai SDK |
| 4. 设计 Prompt | CRISPE 法则 |
| 5. 迭代优化 | 日志 + 错误处理 |
✅ 你不需要成为 AI 专家,也能用代码调用最强大的模型。
🎁 彩蛋:送你一句“魔法咒语”
试试这个 Prompt:
text
编辑
A library floating in space, books flying around like birds, stars in the background, dreamy and magical, 8K ultra-detailed
运行后,你会看到一座漂浮在宇宙中的图书馆,书本如鸟群般飞舞——这就是 AIGC 的魅力:把想象力变成现实。
❤️ 结语
AI 不是替代程序员,而是放大你的创造力。
从前,你要学 PS、学绘画、学设计才能做出一张图;
现在,你只需要会写代码 + 会写 Prompt,就能让 AI 成为你最强大的“副驾驶”。
所以,别再只写 CRUD 了。
是时候,让你的代码,开始“画画”了。
📢 欢迎点赞、收藏、转发!
👉 评论区留下你最想生成的画面,我来帮你写 Prompt!
🔗 项目源码已上传 GitHub:github.com/yourname/ai…
#AIGC #Nodejs #OpenAI #DALLE #PromptEngineering #前端开发 #程序员副业 #AI绘画