图像生成

学习如何使用 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,
});

参数

参数类型必需描述
modelstring使用的模型(dall-e-3、midjourney、stable-diffusion-xl)
promptstring图像描述
sizestring图像尺寸(1024x1024、1792x1024、1024x1792)
qualitystring图像质量(standard、hd)
nnumber生成图像数量(1-10)
stylestring图像风格(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: '在天空添加彩虹',
});

最佳实践

提示词技巧

  1. 具体描述
    好:一只毛茸茸的金色拉布拉多犬在公园草地上奔跑,阳光明媚
    坏:狗
    
  2. 风格指定
    好:赛博朋克风格的城市夜景,霓虹灯反射在雨湿的街道上
    差:城市夜景
    
  3. 质量关键词
    好:高质量照片,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');
}
图像生成可能需要一些时间,特别是使用高质量设置时。请耐心等待。