V VibeCoding 365
목록으로 Ming Image OpenRouter inclusionAI

바이브코딩

Ming Image 0.1 Design | OpenRouter 무료 텍스트→이미지 디자인 모델

inclusionAI 6B. OpenRouter Free, Novita, 참조 불가, 크기 거절. HF는 2048, RGBA, MIT.

Ming Image 0.1 Design은 글(텍스트 프롬프트)을 넣으면 디자인용 이미지를 만들어 주는 AI 이미지 생성 모델이다. OpenRouter 슬러그는 inclusionai/ming-image-0.1-design이고, 모델 페이지에 적힌 가격은 Free(무료)다. inclusionAI가 만든 6B 계열이며, 조사 기준일은 2026년 9월 23일(서울)이다.

하는 일은 단순하다. 프롬프트를 보내면 PNG, JPEG, WebP 중 하나로 이미지가 나온다. OpenRouter와 Hugging Face는 공통으로 포스터, UI, 인포그래픽처럼 화면 안 글자가 읽혀야 하는 디자인을 목표로 소개한다. 참조 사진(레퍼런스 이미지)을 넣고 따라 그리게 하는 경로는 이 OpenRouter 카드에는 없다. 프롬프트만 넣는다.

OpenRouter 쪽에서는 가로, 세로, 비율을 요청으로 지정할 수 없고, 모델이 크기를 고른다. 한 번에 받는 장 수는 1장이다. 로컬 Hugging Face 가중치로 돌릴 때는 1024 또는 2048 정사각 버킷과 RGBA 투명 접두어 같은 다른 계약이 있다. 아래는 OpenRouter 페이지와 Endpoints, HF 카드, GitHub Ming-Image README에 적힌 사실만 묶는다.

핵심 포인트: 텍스트 → 이미지. OpenRouter Free. 참조 이미지 불가. 디자인과 읽히는 글자 강조.

이게 뭐하는 모델인가

이미지 생성 모델이다. 글을 입력하면 이미지 파일이 나온다. 채팅만 하는 텍스트 모델이 아니다.

OpenRouter 상단 소개는 이렇게 잠근다. graphic-design 출력과 생성 이미지 안 legible text(읽히는 글자)를 강조한다. 프롬프트만으로 생성하고 참조 이미지는 받지 않는다. 출력 포맷은 PNG, JPEG, WebP. 이미지 크기는 모델이 고르며, 명시적 size와 aspect ratio 요청은 거절한다.

이름을 풀면 Ming Image는 inclusionAI 이미지 시리즈이고, 0.1 Design은 그중 디자인 완성본을 생성하는 쪽이다. 같은 가족에 평면 디자인을 투명 레이어로 나누는 Design-Layer가 있지만, 지금 OpenRouter에 올라온 이 카드는 생성(Design)이다. 공개일은 OpenRouter 안내 기준 2026년 9월 22일이다. Endpoints의 created unix 1790095711은 2026-09-22 16:48:31 UTC(서울 2026-09-23 01:48:31)다.

Ming Image 0.1 Design 한 장 정의
그림 1. 이미지 모델 + 특징 - 텍스트만으로 디자인 이미지를 뽑는 OpenRouter Free 모델. 출처: OpenRouter 모델 페이지와 endpoints 요약.

지금 당장 알아둘 것

처음 호출할 때 헷갈리기 쉬운 점만 표로 고정한다. 숫자는 조사 시점 OpenRouter 페이지와 Endpoints 스냅샷이다.

궁금한 것답 (공식 페이지 기준)
하는 일텍스트 → 이미지 (디자인과 읽히는 글자 강조)
과금 표시Free. prompt, completion, image_token, image_output 모두 "0"
호스트Novita 한 곳 (OpenRouter가 직접 전달, 라우팅 선택 없음)
참조 이미지불가 (input_references 0-0)
크기와 비율 지정거절 (모델이 크기 결정)
한 번에 몇 장1장 (n 1-1)
출력 포맷PNG, JPEG, WebP
체감 지연P50 32.90초 (페이지 표시, 변동 가능)
가용성 스냅샷Uptime(3d) 100.00%, Availability(3d) 99.89%
공개일2026년 9월 22일

Supported Parameters 표는 사실상 세 줄이다.

ParameterTypeValues
output_formatenumpng, jpeg, webp
nrange1-1
input_referencesrange0-0

일반 OpenRouter 이미지 가이드의 aspect_ratio, size를 이 모델에 그대로 붙이면 거절될 수 있다. 고정 해상도나 RGBA가 필요하면 HF 로컬(또는 해당 지원이 적힌 경로)을 본다. P50 32.90초는 채팅 한 턴보다 길다. 연속 생성 루프에서는 타임아웃을 이 지연보다 여유 있게 잡는다. Uptime(3d)는 도달과 라우팅, Availability(3d)는 추론 반환(오류와 빈 응답 감점)이라고 페이지가 설명한다. Endpoints uptime_last_1d는 약 99.95%다.

Hugging Face 스펙 (6B·로컬)

HF 모델 카드(inclusionAI/Ming-Image-0.1-Design)는 이 모델을 6B text-to-image로 적는다. 대상은 UI, infographics, posters, text-rich visual designs다. 완전한 시각 구성을 만들며 RGBA 투명 배경을 지원한다고 명시한다. 라이선스는 MIT다. pipeline_tag는 text-to-image이고, 태그에는 graphic-design, text-rendering, rgba가 있다.

권장 설정은 카드 문장 그대로다.

항목HF 카드 값
해상도2048×2048 권장, 빠르면 1024×1024
sampling steps12
CFG1.0
precisionBF16
하드웨어CUDA GPU 80 GiB VRAM (검증 구성)
해상도 매핑공개 추론 코드가 요청을 1024 또는 2048 버킷으로 매핑

OpenRouter가 요청 크기를 거절하는 계약과, HF CLI가 버킷으로 스냅하는 계약은 서로 다른 표면이다. companion 저장소는 github.com/inclusionAI/Ming-Image다. Requirements는 Python 3.10 이상, CUDA PyTorch, 로컬 체크포인트 또는 HF Hub ID다. --model은 로컬 경로와 Hub ID를 모두 받는다. Hub 모델은 로드 전 불변 로컬 스냅샷으로 해석되고, --revision으로 브랜치, 태그, 커밋을 고정할 수 있다.

HF 카드 Quick Start와 README Text-to-image demo는 아래 전체 흐름이다. FlashAttention 2가 있으면 --attn-implementation flash_attention_2를 쓰고, 없으면 CLI 기본 eager를 쓴다. --attn-implementation sdpa는 로드 시 실패한다고 README가 적는다.

git clone https://github.com/inclusionAI/Ming-Image
cd Ming-Image
pip install -r requirements.txt

export CUDA_VISIBLE_DEVICES=0

python infer.py \
  --model inclusionAI/Ming-Image-0.1-Design \
  --task text-to-image \
  --prompt assets/t2i_four_seasons_cabin_prompt.json \
  --attn-implementation flash_attention_2 \
  --resolution 2048 \
  --output-dir outputs/t2i

--steps와 --cfg로 기본값(12, 1.0)을 덮어쓸 수 있다. --resolution에 양의 정수를 주면 지원 버킷으로 스냅하고 동률이면 더 작은 버킷을 고른다. --prompt는 원문 텍스트 또는 프롬프트 파일 경로다. Four seasons cabin 데모는 assets/t2i_four_seasons_cabin_prompt.json을 그대로 쓰라고 README가 한다. 긴 JSON은 README에 복제하지 않았다. 체크만 할 때는 --validate-only를 붙인다.

python infer.py \
  --model inclusionAI/Ming-Image-0.1-Design \
  --task text-to-image \
  --prompt "A red circle on a white background" \
  --validate-only

로컬에서 돌릴 때는 GPU 메모리 80 GiB BF16 검증 구성을 기준으로 잡는다. 저장소를 클론하고 pip install -r requirements.txt로 의존성을 깐 뒤, CUDA_VISIBLE_DEVICES=0으로 쓸 GPU를 고른다. --model inclusionAI/Ming-Image-0.1-Design은 Hub ID이고, 오프라인이면 로컬 체크포인트 디렉터리로 바꾼다. --task text-to-image는 생성 태스크다. --prompt에 JSON 파일 경로를 주면 README Four seasons cabin 데모와 같은 구조화 프롬프트를 재현한다. --resolution 2048은 권장 버킷이고, 빠르게 보려면 1024로 낮춘다. --output-dir에 결과 폴더를 지정한다.

FlashAttention 2가 설치돼 있으면 --attn-implementation flash_attention_2를 켠다. 없으면 기본 eager로 둔다. sdpa는 README가 로드 실패로 막아 두었다. 샘플링 기본은 steps 12, CFG 1.0이다. 바꿀 때만 --steps, --cfg를 넘긴다. 먼저 --validate-only로 체크포인트와 태스크 조합만 확인하면 가중치를 풀로드하지 않고 계약만 검사한다.

투명 출력이 목표면 프롬프트 맨 앞에 README 고정 문구 하나를 붙인다. 예: RGBA, 4-channel, transparent background 다음에 남길 글자와 컷아웃 대상을 적는다. 흰 배경이나 체커보드를 그려 달라고 하지 않는다. 합성용 PNG가 필요하면 이 접두어와 로컬 CLI 경로가 문서상 직접적이다.

Prompt enhancement(PE)는 README가 Ling-3.0-flash-VL 또는 qwen3.8-27B를 링크한다. Deployment는 vLLM-Omni recipes를 가리킨다. 서빙 레시피와 로컬 infer.py는 문서 위치가 다르고, 가중치 ID는 같다.

OpenRouter API와 HF 로컬 경로 비교
그림 2. 이미지 모델 + 특징 - /api/v1/images Free 계약과 HF 2048, 12 steps, 80 GiB 대비. 출처: OpenRouter, HF, GitHub.

Design vs Design-Layer

GitHub Ming-Image README는 시리즈를 visual-design generation과 editable layer decomposition으로 소개한다. 두 개의 6B 모델이 있다.

모델역할OpenRouter 이 페이지
Ming-Image-0.1-DesignUI, 인포, 포스터, 텍스트 리치 완성본 생성대상
Ming-Image-0.1-Design-Layer평면 디자인을 독립 편집 가능한 투명 레이어로 분해비대상 (HF 카드 별도)

태스크별 기본값은 README 표에 있다.

TaskStepsCFGResolution buckets권장
Text-to-image121.01024, 20482048
Layer decomposition122.0512, 10241024

T2I 출력은 선택 버킷의 정사각이다. Layer는 참조 이미지 비율을 유지한 채 작업 크기를 고른다. 최소 검증 배포는 GPU 메모리 80 GiB 이상, BF16이다. Layer는 --input-image와 레이어 스펙 프롬프트(또는 --num-layers)를 받는다. OpenRouter Design 카드의 input_references 0-0과 목적이 다르다.

투명 배경이 필요하면 프롬프트 맨 앞에 고정 문구를 정확히 하나만 붙인다. 여러 접두어를 합치지 말라고 README가 적는다.

  • RGBA, 4-channel, transparent background
  • transparent canvas, not white, not checkerboard
  • production RGBA layer for compositing
  • isolated subject, alpha matte, no background
  • cutout PNG, alpha=0 outside the object
  • 带透明通道,4通道RGBA图像
  • 透明背景,alpha通道,无底图
  • 不要白底,不要棋盘格,只要透明通道

갤러리 체커보드는 미리보기용이며 생성 RGBA의 일부가 아니다. OpenRouter 페이지는 포맷만 열거하고 알파 성공을 약속하지 않는다. 투명 PNG는 접두어 뒤에 본문 설명을 이어 쓰고, 체커보드를 그려 달라고 하지 않는다.

투명 접두어 실사용 예는 프롬프트 전체를 한 문자열로 이어 쓰는 것이다. 맨 앞 고정 문구, 공백, 그다음 본문이다. 본문에는 남길 글자를 따옴표로 넣고, 스티커나 아이콘 형태, 배경이 비어야 한다는 뜻을 분명히 적는다. 중국어 접두어와 영어 접두어를 동시에 붙이지 않는다. README 목록에서 하나만 고른다.

Layer 분해를 이을 때는 Design으로 만든 평면 PNG를 --input-image로 넘긴다. 레이어 수는 프롬프트 문장 또는 --num-layers로 정한다. 결과 폴더의 layer_01.png부터가 편집용 투명 레이어다. 맨 앞 composite는 CLI가 건너뛴다. OpenRouter Free 경로만으로는 Layer 분해 API가 열리지 않는다. Design 생성과 Layer 분해는 HF 쪽에서 모델 ID가 다르다.

Layer 데모는 README에 아래 명령으로 실려 있다. 입력 이미지와 여섯 레이어 명세 파일을 넘긴다.

python infer.py \
  --model inclusionAI/Ming-Image-0.1-Design-Layer \
  --task layer-decompose \
  --input-image assets/layer_samples/card_making_input.png \
  --prompt assets/layer_samples/card_making_prompt.txt \
  --attn-implementation flash_attention_2 \
  --resolution 1024 \
  --output-dir outputs/layers

프롬프트에 "Decompose this image into N layers" 또는 "Number of layers: N"이 있으면 N을 파싱한다. --prompt를 생략하면 --num-layers N이 기본 요청문을 만든다. CLI는 앞에 오는 composite 한 장을 건너뛰고 layer_01.png부터 저장한다.

공식 예시 이미지

OpenRouter 갤러리는 model-assets.openrouter.ai 예제 PNG를 제공한다. 원본 경로에 ming-image-0.1-design-20260922가 들어 있다. HF 카드는 assets/showcase.webp, assets/transparency_showcase.webp, assets/uiux_leaderboard.webp를 싣는다. 아래는 원본을 CDN에 올린 사본이다. Artificial Analysis 셀 숫자는 표로 다시 만들지 않는다.

OpenRouter 모델 페이지 예제 원본
그림 3. 이미지 모델 + 특징 - OpenRouter model-examples original-0.png 디자인 샘플. 출처: https://model-assets.openrouter.ai/model-examples/inclusionai/ming-image-0.1-design-20260922/fc2594e6-9611-46dd-bd7a-c8a6d4cb4204/original-0.png
HF 텍스트-투-이미지 쇼케이스
그림 4. 이미지 모델 + 특징 - HF showcase.webp 텍스트 리치 디자인 갤러리. 출처: https://huggingface.co/inclusionAI/Ming-Image-0.1-Design/resolve/main/assets/showcase.webp
투명 배경 쇼케이스
그림 5. 이미지 모델 + 특징 - HF transparency_showcase.webp (체커보드는 미리보기). 출처: https://huggingface.co/inclusionAI/Ming-Image-0.1-Design/resolve/main/assets/transparency_showcase.webp
UI/UX Design leaderboard 도판
그림 6. 이미지 모델 + 특징 - HF와 GitHub가 실은 UI/UX Design leaderboard 도판(수치 표 재구성 없음). 출처: https://huggingface.co/inclusionAI/Ming-Image-0.1-Design/resolve/main/assets/uiux_leaderboard.webp

호출 방법

OpenRouter Image Generation 가이드는 model과 prompt를 필수로 두고, 응답 이미지를 base64(b64_json)로 돌려준다. 엔드포인트는 POST https://openrouter.ai/api/v1/images다. Authorization Bearer 토큰이 필요하다. 이 모델 Supported Parameters에 맞춰 output_format을 붙일 수 있다. n은 1, 참조 이미지는 넣지 않는다. aspect_ratio, size는 이 모델 페이지가 거절한다.

최소 Python 호출과 저장 예시는 다음과 같다. 응답 JSON에서 base64 필드를 꺼내 PNG로 쓴다(가이드의 b64_json 형태).

import base64
import os
import requests

api_key = os.environ["OPENROUTER_API_KEY"]
url = "https://openrouter.ai/api/v1/images"
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json",
}
body = {
    "model": "inclusionai/ming-image-0.1-design",
    "prompt": 'Event poster, bold title "SUMMER FEST", clear Korean venue line',
    "output_format": "png",
}
r = requests.post(url, headers=headers, json=body, timeout=120)
r.raise_for_status()
data = r.json()
# OpenRouter Image API: data[0].b64_json (가이드 기준)
b64 = data["data"][0]["b64_json"]
with open("ming-design.png", "wb") as f:
    f.write(base64.b64decode(b64))

같은 요청을 curl로 보내면 아래와 같다. 키는 환경 변수로 넣고, 크기 파라미터는 붙이지 않는다.

curl -sS https://openrouter.ai/api/v1/images \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "inclusionai/ming-image-0.1-design",
    "prompt": "UI mockup dashboard, readable labels, clean layout",
    "output_format": "png"
  }' -o ming-design-response.json

응답 JSON의 base64를 파일로 디코딩하면 로컬 이미지가 된다. n 상한이 1이므로 변형 여러 장은 요청을 반복한다. 타임아웃 120초는 P50 32.90초보다 여유를 둔 예시이며, 페이지가 권장 초를 따로 박아 두지는 않았다. Endpoints JSON에 채팅형 키(max_tokens, temperature 등)가 섞여 보여도, 실호출은 모델 페이지 Supported Parameters(output_format, n, input_references)와 Image API 문서를 우선한다.

키는 OpenRouter 대시보드에서 발급한 API 키를 환경 변수 OPENROUTER_API_KEY에 넣는다. 요청 바디에 넣는 모델 슬러그는 페이지와 동일한 inclusionai/ming-image-0.1-design이다. prompt에는 이미지 안에 보이게 할 문구를 따옴표로 분명히 적는다. output_format은 png, jpeg, webp 중 하나다. 가로 세로 숫자, aspect ratio, 참조 이미지 배열은 이 모델 계약에서 쓰지 않는다.

Python 예시는 requests.post로 JSON을 보내고, 성공 응답에서 data[0]["b64_json"]를 꺼내 base64.b64decode로 바이너리를 만든 뒤 파일에 쓴다. Image Generation 가이드가 말하는 응답 형태가 base64다. timeout=120은 P50 32.90초보다 길게 잡은 예시이며, 네트워크나 큐가 느리면 값을 더 키운다. raise_for_status()로 HTTP 오류를 먼저 걸러 낸다.

curl 예시는 같은 JSON을 -d로 보내고 -o로 응답 파일을 받는다. 받은 JSON에서 base64 문자열만 골라 디코딩하면 PNG가 된다. 한 번에 한 장만 나오므로(n 1-1) 다른 문구 변형은 프롬프트를 바꿔 요청을 다시 보낸다. 에이전트에 붙일 때도 슬러그, /api/v1/images, 크기 파라미터 없음, 여유 타임아웃이 문서와 맞는 최소 구성이다.

실무에서 포스터 초안을 여러 장 뽑을 때는 프롬프트의 따옴표 문구만 바꾸고 같은 슬러그로 순차 호출한다. 병렬로 보낼 때는 Novita 단일 호스트와 P50 32.90초를 감안해 큐와 타임아웃을 잡는다. 응답이 비거나 HTTP 오류면 Availability 정의상 감점 요인이므로, 재시도 간격을 두고 Endpoints 상태를 다시 읽는다. 성공한 base64만 파일로 남겨 두면 이후 디자인 툴이나 Layer 입력으로 넘기기 쉽다. 저장 파일명은 확장자를 output_format과 맞춘다. png면 .png, jpeg면 .jpg 또는 .jpeg, webp면 .webp다. 디코딩 전에 응답 상태 코드가 200인지 먼저 확인한다.

응답 JSON을 받은 뒤 저장까지 한 줄로 이으면 아래 명령을 쓴다. jq가 있으면 base64 필드만 뽑아 디코딩한다.

# ming-design-response.json 이 curl -o 로 저장된 응답이라고 가정
jq -r '.data[0].b64_json' ming-design-response.json | base64 -d > ming-design.png
file ming-design.png

필드 이름이 환경에 따라 다르면 응답 JSON 키를 먼저 확인한다. 가이드 기준 핵심은 이미지가 base64로 온다는 점이다. output_format을 webp나 jpeg로 바꾸면 확장자만 맞춰 저장한다. 요청에 n을 2 이상으로 넣거나 input_references에 URL을 넣으면 이 모델 Supported Parameters(1-1, 0-0)와 충돌한다. 크기 필드를 넣지 않는 것이 페이지 계약과 맞다.

로컬 HF CLI 전체 예시는 위 Hugging Face 절의 infer.py 블록과 같다. 클라우드 Free로 초안만 받을 때는 /api/v1/images만 쓰고, 2048 고정이나 RGBA 접두어가 필요하면 Ming-Image infer.py로 넘긴다.

로컬 생성 결과를 확인하는 최소 절차는 이렇다. (1) 저장소 클론과 의존성 설치. (2) --validate-only로 모델 ID와 text-to-image 조합 확인. (3) --prompt에 짧은 영문 한 줄 또는 JSON 파일을 넣고 --resolution 1024로 먼저 한 장 뽑기. (4) 품질이 필요하면 --resolution 2048로 재실행. (5) 투명 컷아웃이 필요하면 접두어 하나와 본문 설명으로 다시 실행. 출력은 --output-dir 아래 파일로 쌓인다.

README는 T2I 출력이 선택 버킷의 정사각이라고 적는다. 1024를 고르면 1024×1024, 2048을 고르면 2048×2048이다. 1536처럼 중간값을 넣어도 가장 가까운 버킷으로 스냅되고 동률이면 더 작은 쪽이다. Layer 태스크만 512와 1024 버킷을 쓰고, 참조 이미지 비율을 유지한 채 작업 크기를 고른다. Design OpenRouter 경로는 이 버킷 파라미터를 요청 바디로 받지 않는다.

HF CLI에서 해상도만 바꿔 비교할 때는 같은 프롬프트 파일로 --resolution 1024와 --resolution 2048을 두 번 실행하고 --output-dir를 폴더별로 나눈다. steps와 CFG는 기본값(12, 1.0)을 유지한 채 해상도 차이만 보면 README 권장 표와 같은 조건이다. Layer는 --resolution 512로 속도를 올리거나 1024로 품질을 올리는 선택지가 README에 명시돼 있다.

바이브 코더 사용 축
그림 7. 이미지 모델 + 특징 - 포스터, UI 목업, 투명 컷아웃, API 초안 축. 출처 능력만 반영한 인포그래픽.

클라우드 Free vs 로컬 GPU

같은 이름 아래 두 경로가 있다. 계약이 다르다.

축OpenRouter Free (Novita)HF + Ming-Image CLI
역할호스팅 API, 가격, 지연가중치, CLI, 권장 설정
입출력text→image, 참조 0T2I (+ Layer는 별도 모델)
크기요청 시 거절, 모델 결정1024/2048 버킷(정사각 T2I)
과금·라이선스페이지 Free / 0MIT 가중치 (GPU 호스팅비는 별도)
지연P50 32.90 s (페이지)로컬 GPU와 설정 의존 (공식 초 단위 미공개)
투명페이지 미보증RGBA 고정 접두어 팁
하드웨어빌리지 않음검증 구성 80 GiB BF16

HF가 검증했다고 적은 80 GiB는 개인 랩톱과 거리가 있다. MIT 가중치이므로 클라우드 GPU 임대나 vLLM-Omni 서빙이 로컬 경로의 현실적 축이다. OpenRouter Free 경로는 하드웨어 없이 초안을 받는 쪽이다. MIT 이름과 OpenRouter와 Novita 약관은 층이 다르다. 상용 범위 법률 해석은 본문에 쓰지 않는다.

프롬프트 팁

GitHub README의 text-to-image prompt rewriting은 infer.py 밖 전처리다. VLM이 짧은 캡션을 Figma 스타일 JSON으로 펼친다. 시스템 프롬프트 전문은 assets/t2i_rewriter_system_prompt.txt에 있다. 핵심 규약만 옮기면 다음과 같다.

  • 최상위 키는 정확히 둘: canvas_settings, layers
  • canvas_settings는 aspect_ratio, ambient_lighting, image_style만
  • layers는 배경부터 맨 위 오버레이 순
  • 각 레이어는 description, coordinates, hierarchy_and_relation, color_specs(hex 배열)
  • coordinates는 객체나 배열이 아니라 문자열 하나: "cx: 0.500, cy: 0.500, w: 1.000, h: 1.000"
  • 사용자가 넣은 렌더 문자열은 문자 그대로, 특별한 요청이 없으면 description에 한 번만 따옴표로
  • 보이지 않는 부모, 가이드, 빈 레이어, 중복 ownership 금지

OpenRouter로 짧게 칠 때도 제목, 부제, 버튼 문구를 따옴표로 넣고 레이아웃 역할을 한두 문장으로 적는다. 참조 이미지 URL이나 width=1024는 이 모델 페이지 계약과 어긋난다. PE용 VLM으로 README가 적은 것은 Ling-3.0-flash-VL과 qwen3.8-27B다. Ming Design이 이미지를 내고, VLM이 JSON 캡션을 다듬는 분업이다.

레이어는 "선택 가능한 보이는 의미 그룹"이다. 배경, 사람 전체, 일관된 객체, 패널, 카드, 행, 텍스트 블록이 예시다. 레이아웃을 유지하는 최소 그룹을 선호하고, 사람과 객체는 쪼개지 말라고 적는다. 표처럼 보이는 배치에서 헤더와 셀을 모두 나열할 수 없으면 공유 프레임, 헤더, 본문 행을 나눈다. schema, 문자열 좌표, Z-order, 텍스트 출현 횟수, geometry, bbox, 완결성을 검증하라고 시스템 프롬프트가 끝낸다.

Layer 쪽 프롬프트는 자유 캡션이 아니라 레이어별 명세다. 색, 위치, 모양을 구체화하고, 실제 텍스트는 앞쪽 레이어에 verbatim으로 따옴표하며, 텍스트를 받치는 카드나 패널은 바로 뒤 레이어로, 주제는 별도, 배경은 마지막에 남은 표면을 흡수한다고 README가 적는다. 카드 메이킹 데모는 assets/layer_samples/card_making_input.png와 card_making_prompt.txt를 쓴다.

짧게 OpenRouter만 쓸 때는 JSON rewriter 없이도 같은 정신을 적용한다. 이미지에 넣을 제목과 날짜, 버튼 라벨을 문장 속 따옴표로 고정하고, 배경색과 레이아웃 역할은 한두 문장으로만 적는다. "기타 문구"나 "나머지 라벨"처럼 숨기는 표현은 rewriter 시스템 프롬프트가 금지하는 패턴과 같다. 인포그래픽이면 축 이름과 셀 값을 빠짐없이 나열한다. UI 목업이면 네비와 패널 제목을 각각 따옴표로 소유권을 한 곳에만 둔다.

PE를 붙이는 순서는 README가 정한 분업을 따른다. 먼저 짧은 캡션이나 스케치를 VLM에 넣고, assets/t2i_rewriter_system_prompt.txt 규약으로 JSON을 받는다. 받은 JSON만 --prompt로 infer.py에 넘긴다. rewriter는 infer.py 안에 들어 있지 않다. 바깥 전처리다. canvas_settings의 aspect_ratio는 로컬 버킷 선택과 별개로 캡션 구조용이며, 실제 픽셀은 --resolution 버킷이 결정한다.

설치 직후 막히면 README Requirements를 다시 본다. Python 3.10 이상, CUDA PyTorch, Hub ID 또는 로컬 체크포인트가 필요하다. flash_attention_2는 선택이다. 없어도 eager로 데모는 동작하도록 CLI가 짜여 있다. --model에 Hub ID를 쓰면 스냅샷을 받은 뒤 컴포넌트를 로드한다. 오프라인 재현이 필요하면 미리 받아 둔 디렉터리를 --model에 넘기고 --revision으로 커밋을 고정한다.

OpenRouter 쪽 실수 패턴은 세 가지로 요약된다. 첫째, 채팅 완성형 /api/v1/chat/completions에 이미지 모델을 넣는 것. 이 가이드의 엔드포인트는 /api/v1/images다. 둘째, size나 aspect_ratio를 붙여 거절을 유발하는 것. 셋째, 참조 이미지로 스타일을 잠그려다 input_references 0-0과 충돌하는 것. 문서에 맞게 고치면 model, prompt, 선택적 output_format만 남는다.

구조화 JSON을 쓸 때는 canvas_settings와 layers만 최상위에 두고, 좌표는 반드시 "cx: 0.500, cy: 0.500, w: 1.000, h: 1.000" 형태의 문자열 하나로 적는다. color_specs는 hex 배열이다. 레이어 순서는 배경이 먼저, 맨 위 오버레이가 마지막이다. 이 JSON을 파일로 저장한 뒤 infer.py --prompt 그파일로 넘기면 README 데모와 같은 경로다.

마무리

앞에서 다룬 Ming Image 0.1 Design(OpenRouter와 inclusionAI)의 핵심만 짧게 모은다.

  • OpenRouter 슬러그 inclusionai/ming-image-0.1-design, 공개 2026-09-22, modality text→image
  • graphic-design과 legible text 지향. 프롬프트만, 참조 이미지 불가, 크기와 비율 요청 거절
  • 출력 PNG/JPEG/WebP. 가격 표시 Free/0. 프로바이더 Novita 단독
  • 페이지 P50 지연 32.90초, 3일 Uptime 100%, Availability 99.89%(조사 시점)
  • HF: 6B, MIT, 권장 2048, steps 12, CFG 1.0, BF16, GPU 80 GiB. RGBA 접두어 팁
  • 시리즈 형제 Design-Layer는 투명 레이어 분해. 이 OR 페이지 대상은 Design 생성
  • 갤러리 원본은 OpenRouter model-assets와 HF assets에서 내려받아 인용

「무료 Image API로 초안을 받고, 고정 해상도와 투명이 필요하면 HF 계약을 본다」

출처와 링크

조사 기준: 2026년 9월 (2026-09-23 Asia/Seoul). OpenRouter 공개 표기 2026-09-22.

FAQ

자주 묻는 질문

Ming Image 0.1 Design은 어떤 모델인가요?

OpenRouter와 inclusionAI 공식 소개 기준으로 text-to-image 모델입니다. 그래픽 디자인 출력과 이미지 안 읽히는 글자 렌더링을 강조합니다. 슬러그는 inclusionai/ming-image-0.1-design입니다.

OpenRouter에서 과금이 없나요?

모델 페이지 FAQ는 표시 가격이 zero라서 생성된 이미지에 과금하지 않는다고 답합니다. Endpoints API도 image_output 가격 필드를 0으로 둡니다. 조사 시점 표시이며 약관과 한도는 별도입니다.

참조 이미지 입력이 열리나요?

열리지 않습니다. 페이지는 프롬프트만으로 생성하며 참조 이미지를 받지 않는다고 적고, Supported Parameters의 input_references 범위는 0-0입니다.

가로 세로 크기를 요청 바디에 넣을 수 있나요?

OpenRouter 모델 페이지는 이미지 크기를 모델이 고르며 명시적 크기와 aspect ratio는 거절한다고 적습니다. HF 로컬 CLI는 1024와 2048 버킷으로 매핑하는 별도 계약입니다.

지원 이미지 포맷은 무엇인가요?

OpenRouter FAQ와 Supported Parameters 기준 PNG, JPEG, WebP입니다. HF 카드는 RGBA 투명 배경 생성 팁을 추가로 안내합니다.

프로바이더와 지연 표시는 어떻게 되나요?

조사 시점 페이지는 Novita 단독 호스트, End-to-end latency P50 32.90초, 3일 Uptime 100.00%, Availability 99.89%를 표시합니다. 단일 프로바이더라 라우팅 선택이 없다고 적혀 있습니다.

HF의 6B와 80 GiB 문구는 OpenRouter와 같은 계약인가요?

HF 카드가 적는 모델 규모와 권장 하드웨어, 해상도 버킷입니다. OpenRouter 페이지는 Free API 계약과 파라미터 제약을 적습니다. 같은 계열이라도 호출 표면의 파라미터가 다릅니다.

Design-Layer 모델과는 무엇이 다른가요?

GitHub README는 Design이 완성을 생성하고 Design-Layer가 평면 디자인을 투명 레이어로 분해한다고 구분합니다. OpenRouter 해당 페이지의 대상은 Design 생성 쪽입니다.