Mynth
Mynth 어댑터를 사용하면 TanStack AI를 통해 Mynth 이미지 생성 모델에 액세스할 수 있습니다. 이 어댑터는 타입이 지정된 모델 ID, 정규화된 이미지 결과, 이미지 간 변환 지원, modelOptions를 통한 Mynth 전용 요청 옵션을 제공하는 generateImage()용 커뮤니티 어댑터입니다.
이 패키지에서 Mynth는 이미지만 지원합니다. Flux, Recraft, Gemini, Qwen, Seedream, Wan, Grok Imagine과 같은 Mynth 모델로 TanStack AI의 이미지 생성 워크플로를 사용하려는 경우 이용하면 됩니다.
참고로 Mynth는 공개 베타 단계이므로 모델 구성과 일부 요청 옵션은 아직 확정되는 중입니다. 이 어댑터는 Mynth SDK를 밀접하게 추적하며, API와 통합 경험에 대한 피드백을 환영합니다.
설치
# bun
bun add @mynthio/tanstack-ai-adapter @tanstack/ai
# pnpm
pnpm add @mynthio/tanstack-ai-adapter @tanstack/ai
# npm
npm install @mynthio/tanstack-ai-adapter @tanstack/ai
이 어댑터는 @tanstack/ai 0.34 이상을 대상으로 합니다.
인증
환경 변수에 Mynth API 키를 설정합니다.
MYNTH_API_KEY=mak_...
MYNTH_API_KEY는 서버에만 보관합니다. 브라우저 코드나 공개 클라이언트 환경 변수에 절대 노출하지 마세요. 클라이언트 번들에 포함될 수 있습니다.
어댑터 구성에 apiKey를 직접 전달할 수도 있습니다. baseUrl은 선택 사항이며 프록시, 테스트 또는 사용자 지정 배포에 유용합니다.
키가 필요하면 Mynth API 키 대시보드에서 생성합니다.
빠른 시작
import { generateImage } from "@tanstack/ai";
import { mynthImage } from "@mynthio/tanstack-ai-adapter";
const result = await generateImage({
adapter: mynthImage("black-forest-labs/flux.2-dev"),
prompt: "Editorial product photo of a ceramic mug on a linen tablecloth",
numberOfImages: 1,
size: "square",
});
console.log(result.id);
console.log(result.model);
console.log(result.images[0]?.url);
TanStack AI 어댑터는 모델에 바인딩되므로 어댑터를 생성할 때 Mynth 모델을 선택합니다.
재사용 가능한 제공자
여러 어댑터에서 구성을 공유하려면 createMynthImage()를 사용합니다.
import { generateImage } from "@tanstack/ai";
import { createMynthImage } from "@mynthio/tanstack-ai-adapter";
const mynth = createMynthImage({
apiKey: process.env.MYNTH_API_KEY!,
baseUrl: "https://api.mynth.io",
});
const result = await generateImage({
adapter: mynth("google/gemini-3.1-flash-image"),
prompt: "A playful paper-cut illustration of a city park in spring",
});
console.log(result.images[0]?.url);
어댑터별로 공유 구성을 재정의할 수도 있습니다.
import { createMynthImage } from "@mynthio/tanstack-ai-adapter";
const mynth = createMynthImage();
const adapter = mynth("auto", {
baseUrl: "https://proxy.example.com",
});
모델 옵션
prompt, numberOfImages, 단축형 size와 같은 일반 옵션에는 TanStack의 최상위 필드를 사용합니다. Mynth 전용 옵션에는 modelOptions를 사용합니다.
import { generateImage } from "@tanstack/ai";
import { mynthImage } from "@mynthio/tanstack-ai-adapter";
const result = await generateImage({
adapter: mynthImage("recraft/recraft-v4"),
prompt: "Modern poster design for a jazz festival",
numberOfImages: 2,
size: "portrait",
modelOptions: {
negativePrompt: "watermark, blurry text",
magicPrompt: true,
size: {
type: "aspect_ratio",
aspectRatio: "4:5",
scale: "4k",
},
output: {
format: "png",
quality: 90,
},
rating: true,
metadata: {
requestId: "req_123",
},
},
});
참고:
modelOptions.negativePrompt는 Mynth의negative_prompt에 매핑되고,modelOptions.magicPrompt는magic_prompt에 매핑됩니다.modelOptions.rating은 결과의 콘텐츠 등급을 구성합니다. 이전 이름인contentRating도 별칭으로 계속 사용할 수 있습니다.modelOptions.promptStructured는 호환성을 위해 계속 지원되며prompt,negative_prompt,magic_prompt로 확장됩니다. 설정하면 해당positive가 일반prompt를 재정의합니다.modelOptions.size는 최상위size를 재정의합니다. 종횡비와 선택적scale: "4k"를 포함한 구조화된 Mynth 크기 객체가 필요할 때 사용합니다.- 최상위
size는"auto"와 같은 단축형 값 및"square"나"landscape"와 같은 사전 설정 문자열에 사용합니다. modelOptions.destination은 생성을 구성된 Mynth 대상에 전달하며, 어댑터 수준 또는 환경 변수 기본값을 재정의합니다.
이미지 입력(이미지 간 변환)
이미지 입력을 허용하는 모델은 TanStack AI의 콘텐츠 파트 프롬프트와 함께 작동하므로, 이미지 간 변환, 참조 기반, 편집 및 가상 착용 흐름에서 지시 텍스트와 참조 이미지를 섞을 수 있습니다. 어댑터는 이미지 파트를 Mynth의 inputs에 매핑합니다.
import { generateImage } from "@tanstack/ai";
import { mynthImage } from "@mynthio/tanstack-ai-adapter";
const result = await generateImage({
adapter: mynthImage("black-forest-labs/flux.2-dev"),
prompt: [
{ type: "text", content: "Restyle this scene as a watercolor painting" },
{
type: "image",
source: { type: "url", value: "https://example.com/photo.jpg" },
},
],
});
알아둘 사항은 다음과 같습니다.
MYNTH_IMAGE_INPUT_MODELS에 포함된 모델만 이미지 파트를 허용합니다. 텍스트 전용 모델에 이미지 파트를 전달하면 컴파일 타임 오류가 발생합니다.- URL 소스(
{ type: "url", value })와 인라인 데이터 소스({ type: "data", value, mimeType }, 데이터 URI로 인코딩됨)를 모두 지원합니다. - 파트의
metadata.role은 Mynth의 입력 의도에 매핑됩니다. TanStack의"character"는 직접 매핑되고, 다른 일반 역할은 Mynth의 자동 감지로 대체됩니다. - Mynth의 더 세분화된 의도(
person,garment,pose,style,background,product,object)에는 명시적인as와 함께modelOptions.inputs를 전달합니다. - 프롬프트의 이미지 파트와
modelOptions.inputs의 항목을 결합하며, 프롬프트 파트가 먼저 옵니다.
사용 가능한 모델
어댑터는 지원되는 이미지 모델의 런타임 목록과 타입 유니온을 내보냅니다.
import { MYNTH_IMAGE_MODELS, type MynthImageModel } from "@mynthio/tanstack-ai-adapter";
const defaultModel: MynthImageModel = "auto";
for (const model of MYNTH_IMAGE_MODELS) {
console.log(model);
}
이는 모델 선택기, 검증, 클라이언트와 서버 코드의 동기화에 유용합니다. 이미지 입력을 허용하는 부분 집합에 해당하는 MYNTH_IMAGE_INPUT_MODELS 목록(및 MynthImageInputModel 타입)도 있습니다.
Mynth는 auto, Flux, Recraft, Gemini, Qwen, Seedream, Imagine, Wan, Grok Imagine 및 가상 착용 모델을 포함해 여러 제공자의 모델 ID를 지원합니다. 내보낸 목록은 타입 안전성을 위한 고정 스냅샷입니다. 가격이 포함된 최신 카탈로그에는 아래의 모델 엔드포인트를 사용합니다.
모델 엔드포인트
Mynth는 https://api.mynth.io/models에서 공개 카탈로그를 제공합니다. API 키가 필요하지 않으며, 현재 가격 정보를 포함하고 향후 더 많은 메타데이터를 추가할 여지가 있습니다. 정적으로 내보낸 목록 대신 최신 가격이 표시되는 선택기를 렌더링하려면 이 카탈로그를 기준으로 사용합니다.
const response = await fetch("https://api.mynth.io/models");
const { data } = await response.json();
for (const model of data) {
console.log(model.id, model.displayName, model.pricing);
}
각 항목은 대략 다음과 같습니다.
{
"id": "black-forest-labs/flux.2-dev",
"displayName": "FLUX.2 Dev",
"pricing": {
"perImage": { "base": "0.01", "4k": "0.04" },
"perInput": "0.002",
},
}
이미 Mynth SDK를 사용하고 있다면 동일한 데이터를 new Mynth().models.list()를 통해 이용할 수 있습니다.
스트리밍 예제
이 어댑터는 TanStack AI의 스트리밍 이미지 워크플로에서도 작동합니다.
import { generateImage, toServerSentEventsResponse } from "@tanstack/ai";
import { mynthImage } from "@mynthio/tanstack-ai-adapter";
export async function POST(request: Request) {
const { prompt, model } = await request.json();
const stream = generateImage({
adapter: mynthImage(model ?? "auto"),
prompt,
numberOfImages: 1,
stream: true,
});
return toServerSentEventsResponse(stream);
}
useGenerateImage()를 사용하는 전체 예제는 TanStack Start + Mynth 어댑터 데모를 참고합니다.
지원 기능
generateImage()를 사용한 이미지 생성- 입력을 지원하는 모델에서 콘텐츠 파트 프롬프트를 사용한 이미지 간 변환
stream: true를 사용한 스트리밍 이미지 생성MYNTH_IMAGE_MODELS및MynthImageModel을 통한 타입이 지정된 모델 IDmodelOptions를 통한 Mynth 전용 요청 옵션
어댑터는 TanStack AI의 정규화된 이미지 결과 형태를 반환합니다.
id: Mynth 작업 IDmodel: Mynth가 반환한 확인된 모델 또는 대체값으로 사용되는 요청 모델images: 성공한 이미지만 포함됩니다.images[*].revisedPrompt: Mynth가 프롬프트를 개선한 경우 포함됩니다.
API 참조
mynthImage(model, config?)
Mynth 이미지 어댑터를 직접 생성합니다.
model:MynthImageModelconfig.apiKey?:MYNTH_API_KEY의 선택적 재정의config.baseUrl?: 선택적 기본 URL 재정의config.destination?: 생성된 이미지의 선택적 기본 대상
generateImage()와 함께 사용할 MynthImageAdapter를 반환합니다.
createMynthImage(config?)
모델에 바인딩된 어댑터를 반환하는 재사용 가능한 제공자 팩토리를 생성합니다.
MYNTH_IMAGE_MODELS
지원되는 Mynth 이미지 모델 ID의 읽기 전용 배열입니다.
MynthImageModel
지원되는 Mynth 이미지 모델 ID의 타입 유니온입니다.
MYNTH_IMAGE_INPUT_MODELS
이미지 입력(이미지 간 변환, 가상 착용)을 허용하는 모델 ID의 읽기 전용 배열입니다.
MynthImageInputModel
이미지 입력을 허용하는 모델 ID의 타입 유니온입니다.
제한 사항
- 이 패키지는
generateImage()용 이미지 어댑터만 제공합니다. - 채팅 또는 텍스트 생성 어댑터는 제공하지 않습니다.