Skip to content

图像生成

图像生成 API 的基本用法。

简单生成

typescript
import { NovelAI } from 'novelai-sdk-unofficial';
import { writeFileSync } from 'fs';

const client = new NovelAI({ apiKey: 'your-api-key' });

const images = await client.image.generate({
  prompt: '1girl, cat ears, masterpiece, best quality',
});

writeFileSync('output.png', images[0]);

带选项生成

typescript
const images = await client.image.generate({
  prompt: '1girl, cat ears, masterpiece, best quality',
  model: 'nai-diffusion-4-5-full',
  size: 'portrait',
  steps: 23,
  scale: 5.0,
  sampler: 'k_euler_ancestral',
  seed: 12345,
});

参数说明

参数类型默认值描述
promptstring必填图像的文本描述
modelImageModel'nai-diffusion-4-5-full'使用的模型
sizeImageSize'portrait'尺寸预设或 [width, height]
negativePromptstring''图像中要避免的内容
qualitybooleantrue自动追加质量标签
ucPresetUCPreset'light'不良内容预设
stepsnumber23生成步数 (1-50)
scalenumber5.0CFG 比例 (0-10)
samplerSampler'k_euler_ancestral'采样方法
noiseScheduleNoiseSchedule'karras'噪声调度
seednumber随机随机种子 (0-999999999)
nSamplesnumber1图像数量 (1-8)
cfgRescalenumber0CFG 重缩放 (0-1)
varietyBoostbooleanfalse启用多样性增强

质量标签

quality: true(默认)时,SDK 会自动在提示词后追加质量增强标签。

typescript
// 带质量标签(默认)
const images = await client.image.generate({
  prompt: '1girl',
  quality: true,
});

// 不带质量标签
const images = await client.image.generate({
  prompt: '1girl',
  quality: false,
});

负面提示词

使用 negativePrompt 指定要避免的内容:

typescript
const images = await client.image.generate({
  prompt: '1girl, standing',
  negativePrompt: 'bad anatomy, blurry',
});

UC 预设

ucPreset 参数添加预定义的负面提示词:

  • 'none' - 无预设
  • 'light' - 轻度过滤(默认)
  • 'strong' - 强力过滤
  • 'furry_focus' - Furry 专用过滤
  • 'human_focus' - 人物专用过滤
typescript
const images = await client.image.generate({
  prompt: '1girl',
  ucPreset: 'strong',
});

批量生成

一次生成多张图像:

typescript
const images = await client.image.generate({
  prompt: '1girl, various poses',
  nSamples: 4,
});

images.forEach((img, i) => {
  writeFileSync(`output_${i}.png`, img);
});

可复现结果

使用固定种子获得可复现的结果:

typescript
const images = await client.image.generate({
  prompt: '1girl',
  seed: 42,
});

SDK 内部处理

使用 High-Level API 时,SDK 会自动处理以下内容:

自动添加的参数

SDK 会自动设置以下 API 参数以确保最佳兼容性:

参数说明
use_new_shared_trialtrue启用新的共享试用模式
params_version3API 参数版本
prefer_browniantrue使用布朗运动噪声
legacyfalse禁用旧版模式
legacy_ucfalse禁用旧版 UC 模式
legacy_v3_extendfalse禁用 V3 扩展模式

V4+ 模型的 Prompt 结构

对于 V4 和 V4.5 模型,SDK 会自动将 prompt 转换为 v4_prompt 结构:

typescript
// 用户输入
{
  prompt: '1girl, cat ears',
  quality: true,
}

// SDK 自动转换为
{
  input: '1girl, cat ears',
  v4_prompt: {
    caption: {
      base_caption: '1girl, cat ears, very aesthetic, masterpiece, no text',
      char_captions: []
    },
    use_coords: false,
    use_order: true
  }
}

UC 预设映射

ucPreset 字符串会自动映射为 API 需要的数字:

预设API 值
'strong'0
'light'1
'furry_focus'2
'human_focus'3
'none'4

基于 MIT 许可证发布