跳到主要内容

Ideogram

本文档为开发者提供了在 AIGNE 框架内集成和利用 Ideogram 图像生成功能的综合指南。@aigne/ideogram 包提供了与 Ideogram API 的无缝接口,能够通过文本提示生成高质量的图像。

本文档为开发者提供了在 AIGNE 框架内集成和利用 Ideogram 图像生成功能的综合指南。@aigne/ideogram 包提供了与 Ideogram API 的无缝接口,能够通过文本提示生成高质量的图像。

本指南将涵盖安装、配置和使用的必要步骤,并附有代码示例和详细的参数说明。有关其他模型的信息,请参阅模型概述

安装

首先,将 @aigne/ideogram 包安装到您的项目中。您可以使用您偏好的包管理器。

npm

bash
npm install @aigne/ideogram

yarn

bash
yarn add @aigne/ideogram

pnpm

bash
pnpm add @aigne/ideogram

配置

正确的配置对于连接到 Ideogram API 至关重要。这包括设置您的 API 密钥和实例化 IdeogramImageModel

API 密钥设置

该模型需要一个 Ideogram API 密钥进行身份验证。推荐且最安全的方法是设置一个环境变量。

.env

bash
export IDEOGRAM_API_KEY="your-ideogram-api-key"

或者,您可以在模型实例化时直接传递 apiKey,但这种方式在生产环境中的安全性较低。

模型实例化

配置好 API 密钥后,您可以导入并创建一个 IdeogramImageModel 的实例。

实例化模型

typescript
import { IdeogramImageModel } from "@aigne/ideogram";

// API 密钥将自动从环境变量中检测。
const model = new IdeogramImageModel();

// 或者,直接提供 API 密钥。
const modelWithApiKey = new IdeogramImageModel({
  apiKey: "your-ideogram-api-key",
});

基本用法

要生成图像,请使用 invoke 方法。该方法接受一个包含提示和任何其他所需参数的对象。唯一必需的参数是 prompt

生成图像

typescript
import { IdeogramImageModel } from "@aigne/ideogram";

const model = new IdeogramImageModel();

async function generateImage() {
  try {
    const result = await model.invoke({
      model: "ideogram-v3",
      prompt: "A serene mountain landscape at sunset with golden light",
    });

    console.log(JSON.stringify(result, null, 2));
  } catch (error) {
    console.error("Error generating image:", error);
  }
}

generateImage();

响应对象

invoke 方法返回一个 promise,该 promise 会解析为一个包含生成的图像和使用元数据的对象。

响应示例

json
{
  "images": [
    {
      "type": "url",
      "url": "https://api.ideogram.ai/generation/...",
      "mimeType": "image/png"
    }
  ],
  "usage": {
    "inputTokens": 0,
    "outputTokens": 0
  },
  "model": "ideogram-v3"
}

输入参数

invoke 方法接受多个参数来自定义图像生成过程。

  • prompt string (required) — 您想要生成的图像的文本描述。
  • model string (default: ideogram-v3) — 目前仅支持 ideogram-v3。
  • n number (default: 1) — 要生成的图像数量。有效范围为 1 到 8。
  • seed number — 用于可复现图像生成的随机种子。必须是 0 到 2147483647 之间的整数。
  • resolution string — 生成图像的分辨率(例如 "1024x1024"、"1792x1024")。有关所有支持的分辨率,请参阅 Ideogram 官方 API 文档。
  • aspectRatio string — 图像的宽高比(例如 "1x1"、"16x9")。
  • renderingSpeed string (default: DEFAULT) — 控制生成速度和质量。可接受的值为 "TURBO"、"DEFAULT" 或 "QUALITY"。
  • magicPrompt string (default: AUTO) — 启用或禁用 MagicPrompt 以增强提示。可接受的值为 "AUTO"、"ON" 或 "OFF"。
  • negativePrompt string — 要从生成图像中排除的元素的描述。
  • styleType string (default: AUTO) — 指定艺术风格。可接受的值为 "AUTO"、"GENERAL"、"REALISTIC"、"DESIGN" 或 "FICTION"。
  • colorPalette object — 定义用于生成的特定调色板的对象。
  • styleCodes string[] — 代表特定风格的 8 位十六进制代码列表。

高级用法

为了更好地控制输出,您可以在单个 invoke 调用中组合多个可选参数。

高级图像生成

typescript
import { IdeogramImageModel } from "@aigne/ideogram";

const model = new IdeogramImageModel();

async function generateAdvancedImage() {
  try {
    const result = await model.invoke({
      prompt: "A futuristic cityscape with neon lights and flying cars",
      model: "ideogram-v3",
      n: 4,
      resolution: "1792x1024",
      renderingSpeed: "TURBO",
      styleType: "FICTION",
      negativePrompt: "blurry, low quality, distorted",
      seed: 12345,
    });

    console.log(`Generated ${result.images.length} images.`);
    result.images.forEach((image, index) => {
      console.log(`Image ${index + 1}: ${image.url}`);
    });
  } catch (error) {
    console.error("Error generating image:", error);
  }
}

generateAdvancedImage();

默认模型选项

您可以在模型实例化期间使用 modelOptions 属性设置默认参数。这些选项将应用于每个 invoke 调用,除非被调用本身中的参数覆盖。

设置默认选项

typescript
import { IdeogramImageModel } from "@aigne/ideogram";

const model = new IdeogramImageModel({
  modelOptions: {
    styleType: "REALISTIC",
    renderingSpeed: "QUALITY",
    magicPrompt: "ON",
  },
});

async function generateWithDefaults() {
  // 此调用将使用上面定义的默认选项。
  const result = await model.invoke({
    prompt: "A photorealistic portrait of an astronaut on Mars",
  });

  console.log(result);
}

generateWithDefaults();

总结

@aigne/ideogram 包提供了一种直接有效的方式,将 Ideogram 的图像生成功能集成到您的应用程序中。通过遵循配置步骤并利用所提供的参数,您可以生成满足特定需求的高质量图像。

有关所有参数、支持的值和高级功能的完整详细列表,请参阅官方 Ideogram API 参考