바이브코딩
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)다.

지금 당장 알아둘 것
처음 호출할 때 헷갈리기 쉬운 점만 표로 고정한다. 숫자는 조사 시점 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 표는 사실상 세 줄이다.
| Parameter | Type | Values |
|---|---|---|
| output_format | enum | png, jpeg, webp |
| n | range | 1-1 |
| input_references | range | 0-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 steps | 12 |
| CFG | 1.0 |
| precision | BF16 |
| 하드웨어 | 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는 같다.

/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-Design | UI, 인포, 포스터, 텍스트 리치 완성본 생성 | 대상 |
| Ming-Image-0.1-Design-Layer | 평면 디자인을 독립 편집 가능한 투명 레이어로 분해 | 비대상 (HF 카드 별도) |
태스크별 기본값은 README 표에 있다.
| Task | Steps | CFG | Resolution buckets | 권장 |
|---|---|---|---|---|
| Text-to-image | 12 | 1.0 | 1024, 2048 | 2048 |
| Layer decomposition | 12 | 2.0 | 512, 1024 | 1024 |
T2I 출력은 선택 버킷의 정사각이다. Layer는 참조 이미지 비율을 유지한 채 작업 크기를 고른다. 최소 검증 배포는 GPU 메모리 80 GiB 이상, BF16이다. Layer는 --input-image와 레이어 스펙 프롬프트(또는 --num-layers)를 받는다. OpenRouter Design 카드의 input_references 0-0과 목적이 다르다.
투명 배경이 필요하면 프롬프트 맨 앞에 고정 문구를 정확히 하나만 붙인다. 여러 접두어를 합치지 말라고 README가 적는다.
RGBA, 4-channel, transparent backgroundtransparent canvas, not white, not checkerboardproduction RGBA layer for compositingisolated subject, alpha matte, no backgroundcutout 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 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에 명시돼 있다.

클라우드 Free vs 로컬 GPU
같은 이름 아래 두 경로가 있다. 계약이 다르다.
| 축 | OpenRouter Free (Novita) | HF + Ming-Image CLI |
|---|---|---|
| 역할 | 호스팅 API, 가격, 지연 | 가중치, CLI, 권장 설정 |
| 입출력 | text→image, 참조 0 | T2I (+ Layer는 별도 모델) |
| 크기 | 요청 시 거절, 모델 결정 | 1024/2048 버킷(정사각 T2I) |
| 과금·라이선스 | 페이지 Free / 0 | MIT 가중치 (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 생성 쪽입니다.
용어
관련 용어
Surge AI가 운영하는 전문 작가 페어와이즈 글쓰기 평가 Elo 리더보드다. 표면적 체크리스트를 넘어 맛, 독창성, 일관성, 감정 지능으로 대규모 언어 모델의 글쓰기 품질을 비교한다.
성능·최적화 지연시간요청을 보낸 후 응답을 받기까지 걸리는 시간으로, AI 코딩 도구에서는 프롬프트를 전송한 후 코드가 생성되기 시작할 때까지의 대기 시간을 의미한다. 밀리초(ms)에서 수 초(s)까지 다양하며, 개발자의 작업 흐름과 생산성에 직접적 영향을 미친다. AI 모델의 지연시간은 여러 요인에 의해 결정된다: 모델 크기(파라미터 수가 많을수록 느림), 입력 토큰 수(컨텍스트가 길수록 느림), 출력 토큰 수(긴 응답일수록 느림), 서버 부하(동시 사용자 수), 네트워크 거리(API 서버 위치). 바이브 코딩에서의 트레이드오프: Claude Opus 4.6은 가장 정확한 코드를 생성하지만 응답이 느리고, Codex mini나 Claude Sonnet은 빠르지만 복잡한 작업에는 부족하다. 이로 인해 많은 개발자가 '빠른 모델로 초안 생성 → 정확한 모델로 검증·수정'이라는 이중 모델 전략을 사용한다. 스트리밍 응답(streaming)은 전체 응답을 기다리지 않고 토큰이 생성되는 대로 표시하여 체감 지연을 줄이는 기법이며, 대부분의 AI 코딩 도구에서 기본으로 사용된다.
백엔드·인프라 API소프트웨어 애플리케이션 간 상호작용 방식을 정의하는 프로토콜과 규약의 집합으로, AI 코딩 도구 통합과 현대 소프트웨어 아키텍처의 핵심이다. 비유하면, 레스토랑의 메뉴가 손님(클라이언트)과 주방(서버) 사이의 '인터페이스'인 것처럼, API는 소프트웨어 간의 '메뉴'이다. 바이브 코딩에서 API는 두 가지 맥락으로 사용된다: 첫째, AI 모델 API — Claude API, OpenAI API 등 AI 모델을 호출하는 인터페이스로, 모든 AI 코딩 도구의 내부에서 이 API를 통해 모델과 통신한다. 둘째, 앱 API — AI가 생성하는 백엔드 코드의 핵심으로, REST API, GraphQL API 등의 형태로 프론트엔드와 백엔드를 연결한다. AI에게 '사용자 CRUD API를 REST로 만들어줘'라고 하면 Express.js, FastAPI, Next.js API Routes 등을 사용한 엔드포인트 세트를 생성한다. MCP도 본질적으로 'AI 에이전트가 외부 도구를 호출하는 API의 표준화'이다.
링크
관련 링크
쉬운 보안을 지향하는 한국어 보안 계정으로, AI·VIBE 코딩 흐름에서 놓치기 쉬운 보안 감각을 되짚는 데 유용합니다.
VIBE 코딩 레퍼런스 웹사이트 해부도 · Website Anatomy MapAI와 웹사이트를 함께 만들 때 ‘그 부분’이 아니라 정확한 UI·웹 용어로 지시할 수 있게 돕는 영-한 시각 사전입니다.
VIBE 코딩 제품 리서치 Killed by Google · Google GraveyardGoogle이 종료한 서비스와 제품을 한눈에 모아, 플랫폼 의존성과 제품 지속성 리스크를 판단하게 해 주는 ‘Google 묘지’ 아카이브입니다.
관련 글
관련 글
Recommended
AssemblyAI Universal-3.5 Pro | OpenRouter Sync STT와 120…
AssemblyAI의 Universal-3.5 Pro는 짧은 오디오를 한 번의 HTTP 왕복으로 받아 전사하는 플래그십 음성-텍스트 모델이다. 제품 이름은 Sync Speech-to-Text API와 묶여 있고, 폴링이나 WebSocket 세션을 열지 않는다. OpenRouter는 같은 모델을 assemblyai/universal-3-5-pro 슬러그로 2026년 9월 22일에 올렸다. 조사 기준일은 2026년 9월 23일 Asia/Seoul이다.
공식 Sync 제품 페이지는 시간당 $0.45로 적으며, 초당으로 나누면 정가 $0.000125가 된다. OpenRouter 카드는 그 정가를 나란히 두고 50% 할인된 $0.000063/초를 실제 청구로 보여 준다. 프롬프트를 붙인 오디오는 OpenR…
Jev ai 가 뭐길래 이리 난리일까? | TypeSafe 개발 어디에 어떻게 쓰며 단점 한계는?
TypeSafe는 2026년 9월 System One 모델 클래스와 플래그십 Jev를 공개했다. Jev는 LLM이 아니다. 자연어 state를 읽고 Choice, Score, Noul 같은 typed 결정과 확률을 돌려, 소프트웨어 if와 라우팅에 바로 붙이는 판단 전용 모델이다. ChatGPT, Claude처럼 답장, 코드, 설명을 토큰 스트림으로 쓰지 않고, 미리 정한 스키마에 맞춰 「이 중 뭐야」「어느 정도야」「맞아?」만 찍는다.
조사 기준일은 2026년 9월 19일(Asia/Seoul)이다. 가격, 컨텍스트, 입력 형태, jaggedness는 docs.typesafe.ai를 정본으로 쓴다. OpenRouter의 typesafe/j…