Prodia 프로바이더

Prodia 프로바이더

Prodia의 빠른 생성형 AI 추론 플랫폼을 AI SDK에서 쓸 수 있게 해주는 프로바이더예요. FLUX와 Stable Diffusion 모델로 고속 이미지 생성을 제공해요.

출처: 문서

본문

Prodia는 생성형 AI를 위한 빠른 추론 플랫폼으로, FLUX와 Stable Diffusion 모델로 고속 이미지 생성을 제공해요.

설정 (Setup)

Prodia 프로바이더는 @ai-sdk/prodia 모듈로 제공돼요. 다음과 같이 설치할 수 있어요:

프로바이더 인스턴스 (Provider Instance)

@ai-sdk/prodia에서 기본 프로바이더 인스턴스 prodia를 불러올 수 있어요:

import { prodia } from '@ai-sdk/prodia';

커스터마이즈가 필요하다면 createProdia를 불러와 원하는 설정으로 프로바이더 인스턴스를 만들 수 있어요:

import { createProdia } from '@ai-sdk/prodia';

const prodia = createProdia({
  apiKey: *** // optional, defaults to PRODIA_TOKEN environment variable
  baseURL: 'custom-url', // optional
  headers: {
    /* custom headers */
  }, // optional
});

Prodia 프로바이더 인스턴스를 커스터마이즈할 때 사용할 수 있는 선택적 설정은 다음과 같아요:

  • baseURL string

    API 호출에 다른 URL 접두사를 사용해요. 기본 접두사는 https://inference.prodia.com/v2예요.

  • apiKey string

    Authorization 헤더로 Bearer 토큰으로 보내는 API 키예요. 기본값은 PRODIA_TOKEN 환경 변수예요.

  • headers Record<string,string>

    요청에 포함할 커스텀 헤더예요.

  • fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>

    커스텀 fetch 구현이에요. 요청을 가로채는 미들웨어로 쓸 수도 있고, 예를 들어 테스트용으로 커스텀 fetch 구현을 제공할 수도 있어요.

이미지 모델 (Image Models)

.image() 팩토리 메서드로 Prodia 이미지 모델을 만들 수 있어요. AI SDK에서 이미지 생성에 대해 더 알고 싶다면 generateImage()를 참고하세요.

기본 사용법 (Basic Usage)

import { writeFileSync } from 'node:fs';
import { prodia } from '@ai-sdk/prodia';
import { generateImage } from 'ai';

const { image } = await generateImage({
  model: prodia.image('inference.flux-fast.schnell.txt2img.v2'),
  prompt: 'A cat wearing an intricate robe',
});

const filename = `image-${Date.now()}.png`;
writeFileSync(filename, image.uint8Array);
console.log(`Image saved to ${filename}`);

모델 기능 (Model Capabilities)

Prodia는 다양한 이미지 생성 모델에 대한 빠른 추론을 제공해요. 지원되는 모델 유형은 다음과 같아요:

모델 설명
inference.flux-fast.schnell.txt2img.v2 Fast FLUX Schnell model for text-to-image generation
inference.flux.schnell.txt2img.v2 FLUX Schnell model for text-to-image generation
Prodia는 추가 모델 ID를 지원해요. 사용 가능한 전체 모델 목록은 [Prodia 문서](https://docs.prodia.com/)를 참고하세요.

이미지 크기 (Image Size)

WIDTHxHEIGHT 형식의 size 파라미터로 이미지 크기를 지정할 수 있어요:

import { prodia } from '@ai-sdk/prodia';
import { generateImage } from 'ai';

const { image } = await generateImage({
  model: prodia.image('inference.flux-fast.schnell.txt2img.v2'),
  prompt: 'A serene mountain landscape at sunset',
  size: '1024x768',
});

프로바이더 옵션 (Provider Options)

Prodia 이미지 모델은 providerOptions.prodia 객체를 통한 추가 옵션을 지원해요:

import { prodia, type ProdiaImageModelOptions } from '@ai-sdk/prodia';
import { generateImage } from 'ai';

const { image } = await generateImage({
  model: prodia.image('inference.flux-fast.schnell.txt2img.v2'),
  prompt: 'A cat wearing an intricate robe',
  providerOptions: {
    prodia: {
      width: 1024,
      height: 768,
      steps: 4,
      stylePreset: 'cinematic',
    } satisfies ProdiaImageModelOptions,
  },
});

다음 프로바이더 옵션을 지원해요:

  • width number - 출력 너비(픽셀) (256–1920). 설정하면 size에서 파생된 너비를 재정의해요.
  • height number - 출력 높이(픽셀) (256–1920). 설정하면 size에서 파생된 높이를 재정의해요.
  • steps number - 계산 반복 횟수 (1–4). 스텝이 많을수록 일반적으로 더 높은 품질 결과를 생성해요.
  • stylePreset string - 출력 이미지에 시각적 테마를 적용해요. 지원 프리셋: 3d-model, analog-film, anime, cinematic, comic-book, digital-art, enhance, fantasy-art, isometric, line-art, low-poly, neon-punk, origami, photographic, pixel-art, texture, craft-clay.
  • loras string[] - 최대 3개의 LoRA 모델로 출력을 강화해요.
  • progressive boolean - JPEG 출력을 사용할 때 프로그레시브 JPEG를 반환해요.

시드 (Seed)

seed 파라미터를 사용해 재현 가능한 결과를 얻을 수 있어요:

import { prodia } from '@ai-sdk/prodia';
import { generateImage } from 'ai';

const { image } = await generateImage({
  model: prodia.image('inference.flux-fast.schnell.txt2img.v2'),
  prompt: 'A serene mountain landscape at sunset',
  seed: 12345,
});

프로바이더 메타데이터 (Provider Metadata)

generateImage 응답은 providerMetadata.prodia.images[]에 프로바이더별 메타데이터를 포함해요. 각 이미지 객체는 다음 속성을 가질 수 있어요:

  • jobId string - 생성 작업의 고유 식별자.
  • seed number - 생성에 사용된 시드. 결과를 재현하는 데 유용.
  • elapsed number - 생성 시간(초).
  • iterationsPerSecond number - 처리 속도 지표.
  • createdAt string - 작업이 생성된 타임스탬프.
  • updatedAt string - 작업이 마지막으로 업데이트된 타임스탬프.
import { prodia } from '@ai-sdk/prodia';
import { generateImage } from 'ai';

const { image, providerMetadata } = await generateImage({
  model: prodia.image('inference.flux-fast.schnell.txt2img.v2'),
  prompt: 'A serene mountain landscape at sunset',
});

// Access provider metadata
const metadata = providerMetadata?.prodia?.images?.[0];
console.log('Job ID:', metadata?.jobId);
console.log('Seed:', metadata?.seed);
console.log('Elapsed:', metadata?.elapsed);

더 알아보기 (Learn more)

전체 사이트맵