Firemoon 프로바이더

Firemoon 프로바이더

Firemoon Studio는 고품질 이미지·비디오 생성 모델, 특히 파인튜닝(fine-tune) 모델과 최신(state-of-the-art) 모델을 전문으로 하는 AI 플랫폼이에요.

AI SDK용 Firemoon 프로바이더를 사용하면 단순하고 일관된 API로 이러한 모델을 사용할 수 있어요:

  • 이미지 생성 (Image generation): 오늘 바로 이미지를 생성할 수 있고, 초기 비디오 모델을 지원해요.
  • 모델 다양성 (Model variety): 단일 프로바이더로 여러 모델군에 접근해요.
  • 프로바이더 옵션 (Provider options): 더 많은 제어가 필요할 때 모델별 파라미터를 전달해요.

출처: 문서

본문

설정 (Setup)

Firemoon 프로바이더는 @firemoon/ai-provider 모듈에서 사용할 수 있어요. 다음과 같이 설치할 수 있어요:

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

API 키로 Firemoon 프로바이더 인스턴스를 만들어요:

import { createFiremoon } from '@firemoon/ai-provider';

const firemoon = createFiremoon({
  apiKey: proces...KEY,
});

Firemoon API 키는 Firemoon 대시보드에서 받을 수 있어요.

이미지 생성 (Image Generation)

Firemoon은 image() 메서드를 통해 다양한 이미지 생성 모델을 지원해요:

import { generateImage } from 'ai';

const result = await generateImage({
  model: firemoon.image('flux/dev'),
  prompt: 'An orangered moon with a dark background',
  size: 'square_hd',
});

console.log(result.images[0]);

사용 가능한 모델 (Available Models)

  • flux/dev - 빠르고 고품질의 이미지 생성
  • flux-2-dev/edit - Flux 2로 빠르고 고품질의 이미지 편집
  • nano-banana - 빠르고 고품질의 이미지 생성
  • nano-banana/edit - Gemini의 고품질 이미지 편집 (Gemini 2.5 Flash Image라고도 함)
  • nano-banana-pro/edit - Gemini 3 Pro의 고품질 이미지 편집
  • firemoon-studio/memphis-style - Memphis 스타일 이미지 생성

Firemoon Studio 모델 페이지에서 모든 사용 가능한 모델을 둘러볼 수 있어요.

파라미터 (Parameters)

크기 (Size)

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

const result = await generateImage({
  model: firemoon.image('flux/dev'),
  prompt: 'A beautiful landscape with an orangered moon in the background',
  size: 'square_hd', // 또는 'landscape_16_9' 등
});

또는 화면 비율 매핑을 사용할 수도 있어요:

const result = await generateImage({
  model: firemoon.image('flux/dev'),
  prompt: 'A beautiful landscape with an orangered moon in the background',
  aspectRatio: '16:9', // landscape_16_9로 매핑
});
시드 (Seed)

재현 가능한 결과를 위해 시드를 지정할 수 있어요:

const result = await generateImage({
  model: firemoon.image('flux/dev'),
  prompt: 'A beautiful landscape with an orangered moon in the background',
  seed: 12345,
});
커스텀 파라미터 (Custom Parameters)

Firemoon 모델 특유의 추가 파라미터를 전달할 수 있어요:

const result = await generateImage({
  model: firemoon.image('flux/dev'),
  prompt: 'A beautiful landscape with an orangered moon in the background',
  providerOptions: {
    firemoon: {
      // 커스텀 파라미터
    },
  },
});
파인튜닝 모델 (Fine-tuned Models)

모델 ID를 image() 메서드에 전달해 파인튜닝 모델을 사용할 수 있어요:

const result = await generateImage({
  model: firemoon.image('firemoon-studio/memphis-style'),
  prompt: 'a man smiling at the camera',
  size: 'landscape_16_9',
  providerOptions: {
    firemoon: {
      lora_scale: 0.6,
      num_images: 1,
      image_size: 'landscape_4_3',
      output_format: 'jpeg',
      guidance_scale: 3.5,
      num_inference_steps: 28,
      enable_safety_checker: true,
    },
  },
});

퀵스타트 예시 (Quickstart Examples)

generateImage

import { createFiremoon } from '@firemoon/ai-provider';
import { generateImage } from 'ai';

const firemoon = createFiremoon({
  apiKey: proces...KEY,
});

const result = await generateImage({
  model: firemoon.image('flux/dev'),
  prompt: 'A beautiful landscape with an orangered moon in the background',
  aspectRatio: '16:9',
});

console.log(result.images[0]);

고급 기능 (Advanced features)

  1. 화면 비율 매핑 (Aspect ratio mapping): 크기를 하드코딩하는 대신 편리한 프리셋으로 aspectRatio를 사용해요.
  2. 재현 가능한 출력 (Reproducible outputs): seed를 제공해 결과를 더 반복 가능하게 만들어요.
  3. 모델별 옵션 (Model-specific options): providerOptions.firemoon을 사용해 Firemoon 파라미터를 전달해요.

오류 처리 (Error handling)

Firemoon 프로바이더는 API 관련 오류에 대해 APICallError를 발생시켜요:

import { APICallError } from 'ai';

try {
  const result = await generateImage({
    model: firemoon.image('flux/dev'),
    prompt: 'A beautiful landscape with an orangered moon in the background',
  });
} catch (error) {
  if (error instanceof APICallError) {
    console.error('API Error:', error.message);
    console.error('Status:', error.statusCode);
  }
}

더 알아보기 (Learn more)

전체 사이트맵