Skip to content

角色参考

角色参考允许你使用参考图像在多次生成中保持角色外观的一致性。

WARNING

角色参考仅适用于 V4.5 模型(nai-diffusion-4-5-fullnai-diffusion-4-5-curated)。

基本用法

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

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

// 加载参考图像
const referenceImage = readFileSync('reference.png');

const images = await client.image.generate({
  prompt: '1girl, standing in a garden',
  model: 'nai-diffusion-4-5-full',
  characterReferences: [
    {
      image: referenceImage,
      type: 'character',
      fidelity: 0.75,
    },
  ],
});

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

参数说明

参数类型默认值描述
imageImageInput必填参考图像(Buffer、base64 字符串或 ArrayBuffer)
type'character' | 'character&style''character&style'参考类型
fidelitynumber0.75与参考的匹配程度 (0-1)

参考类型

仅角色

仅传递角色的外观:

typescript
characterReferences: [
  {
    image: referenceImage,
    type: 'character',
    fidelity: 0.75,
  },
]

角色与风格

同时传递角色外观和艺术风格:

typescript
characterReferences: [
  {
    image: referenceImage,
    type: 'character&style',
    fidelity: 0.75,
  },
]

保真度

fidelity 参数控制输出与参考的匹配程度:

  • 0.0 - 参考影响最小
  • 0.5 - 平衡影响
  • 0.75 - 强影响(默认)
  • 1.0 - 最大影响
typescript
// 较低保真度 - 更多创作自由
characterReferences: [{ image: ref, fidelity: 0.3 }]

// 较高保真度 - 更接近参考
characterReferences: [{ image: ref, fidelity: 0.9 }]

图像输入格式

SDK 接受多种图像格式:

typescript
// Buffer(从文件)
const image = readFileSync('reference.png');

// Base64 字符串
const image = 'iVBORw0KGgoAAAANSUhEUgAA...';

// ArrayBuffer
const response = await fetch('https://example.com/image.png');
const image = await response.arrayBuffer();

提示

  1. 使用清晰的参考图像 - 角色清晰、无遮挡的图像效果最好。

  2. 匹配提示词 - 你的提示词应该以与参考一致的方式描述角色。

  3. 调整保真度 - 从默认值(0.75)开始,根据结果调整。

  4. 考虑类型 - 如果想改变艺术风格使用 'character',想保留风格使用 'character&style'

限制

  • 目前每次生成仅支持一个角色参考
  • 仅适用于 V4.5 模型
  • 非常复杂的姿势或角度可能无法完美传递

基于 MIT 许可证发布