图像生成
学习如何使用 TurboAPI 生成图像。
图像生成
TurboAPI 提供统一访问领先的图像生成模型,包括 DALL-E 3、Midjourney 和 Stable Diffusion。
生成图像
import { TurboAPI } from '@turboapi/sdk';
const client = new TurboAPI({
apiKey: process.env.TURBOAPI_API_KEY,
});
// 生成图像
const image = await client.images.generate({
model: 'dall-e-3',
prompt: '金色阳光下的美丽山脉日落',
size: '1024x1024',
quality: 'standard',
n: 1,
});
console.log(image.url);
图像到图像
转换现有图像:
const result = await client.images.edit({
model: 'stable-diffusion-xl',
image: imageBuffer,
prompt: '将此图像转换为绘画风格',
strength: 0.7,
});
参数
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
model | string | 是 | 使用的模型(dall-e-3、midjourney、stable-diffusion-xl) |
prompt | string | 是 | 图像描述 |
size | string | 否 | 图像尺寸(1024x1024、1792x1024、1024x1792) |
quality | string | 否 | 图像质量(standard、hd) |
n | number | 否 | 生成图像数量(1-10) |
style | string | 否 | 图像风格(vivid、natural) |
支持的模型
DALL-E 3
最先进的图像生成模型,支持高质量的文本到图像生成。
const image = await client.images.generate({
model: 'dall-e-3',
prompt: '一只穿着太空服的猫咪在月球上跳跃',
size: '1024x1024',
quality: 'hd',
});
特点:
- 高质量图像生成
- 理解复杂的文本描述
- 支持多种艺术风格
Midjourney
专业的艺术图像生成模型,特别适合创作风格独特的作品。
const image = await client.images.generate({
model: 'midjourney',
prompt: 'cyberpunk city at night, neon lights, rainy streets',
style: 'photorealistic',
});
特点:
- 艺术风格强烈
- 适合创意设计
- 支持多种艺术流派
Stable Diffusion XL
开源的高性能模型,支持自定义训练和微调。
const image = await client.images.generate({
model: 'stable-diffusion-xl',
prompt: 'fantasy landscape with dragons and castles',
negative_prompt: 'blurry, low quality, distorted',
});
特点:
- 开源模型
- 支持负面提示词
- 可自定义微调
高级功能
负面提示词
告诉模型不要生成什么内容:
const image = await client.images.generate({
model: 'stable-diffusion-xl',
prompt: '美丽的人像',
negative_prompt: '模糊、低质量、变形、多余的肢体',
});
图像变体
基于现有图像生成变体:
const variations = await client.images.createVariation({
image: imageBuffer,
model: 'dall-e-3',
n: 3,
});
图像修复
修复或编辑图像的特定区域:
const edited = await client.images.edit({
image: originalImageBuffer,
mask: maskBuffer, // 透明区域将被重新生成
prompt: '在天空添加彩虹',
});
最佳实践
提示词技巧
- 具体描述:
好:一只毛茸茸的金色拉布拉多犬在公园草地上奔跑,阳光明媚 坏:狗 - 风格指定:
好:赛博朋克风格的城市夜景,霓虹灯反射在雨湿的街道上 差:城市夜景 - 质量关键词:
好:高质量照片,8K分辨率,专业摄影 差:随便画个图
尺寸选择
- 1024×1024:标准正方形,适合大多数用途
- 1792×1024:横向图像,适合风景
- 1024×1792:纵向图像,适合人像
质量设置
- standard:快速生成,质量良好
- hd:更高质量的图像,但生成时间更长
示例代码
批量生成
async function generateImagePrompts(prompts: string[]) {
const results = await Promise.all(
prompts.map((prompt) =>
client.images.generate({
model: 'dall-e-3',
prompt,
size: '1024x1024',
quality: 'standard',
})
)
);
return results;
}
const prompts = ['日落时分的海滩', '雪山上的小木屋', '雨中的城市街道'];
const images = await generateImagePrompts(prompts);
图像下载和处理
import { writeFile } from 'fs/promises';
import { createWriteStream } from 'fs';
async function downloadImage(imageUrl: string, filename: string) {
const response = await fetch(imageUrl);
const buffer = await response.arrayBuffer();
await writeFile(filename, Buffer.from(buffer));
console.log(`图像已保存到 ${filename}`);
}
// 使用示例
const image = await client.images.generate({
model: 'dall-e-3',
prompt: '彩色蝴蝶',
});
if (image.url) {
await downloadImage(image.url, 'butterfly.png');
}
图像生成可能需要一些时间,特别是使用高质量设置时。请耐心等待。