오늘, DeepSeek 가 프로덕션 수준의 추론 프레임워크인 DeepInfer 를 오픈소스로 공개했습니다. 많은 사람들이 더 적은 컴퓨팅 자원으로 더 강력한 모델을 구동하는 방법을 논의하고 있죠.
마침 저도 같은 길을 걷고 있는 또 다른 오픈소스 모델을 테스트하고 있었습니다. 바로 파라미터가 5B 에 불과한 MOSS-Image 입니다. 저는 이 모델과 가장 강력하다고 알려진 폐쇄형 모델 GPT Image 2.5 에 똑같이 어려운 과제를 주었습니다.
결과는 어땠을까요? GPT Image 2.5 는 두 번째 라운드에서 실패했지만, 오픈소스 5B 소형 모델은 "장진주(将进酒)" 시 전체를 두 번 모두 정확하게 그려냈습니다. 이백이 이걸 봤다면 아마 술을 삼백 잔은 더 마셨을 겁니다.
프롬프트는 다음과 같았습니다: 수묵화 두루마리에 이백이 강가에서 잔을 들어 올리는 장면을 그려주세요. "장진주" 전문을 12 줄의 서예로 쓰고, 제목, 작가명, 주홍색 도장 하나, 그리고 영어 텍스트 세 줄을 함께 넣어주세요. 돌 탁자 위에는 정확히 4 개의 술잔이 있어야 하며, 많거나 적어서는 안 됩니다.
원래는 폐쇄형 모델이 쉽게 이길 거라고 생각했습니다. 첫 번째 라운드에서는 둘 다 비슷한 수준이었습니다. 하지만 단 두 가지 세부 사항만 바꾼 두 번째 라운드에서, GPT Image 2.5 는 술잔 개수를 틀렸고 MOSS-Image 는 두 번 모두 정확히 맞춰냈습니다.
아래는 MOSS-Image 가 생성한 2 개의 이미지입니다.

아래는 GPT Image 2.5 가 생성한 2 개의 이미지입니다.

이 테스트가 왜 어려울까?
저는 의도적으로 이 프롬프트를 어렵게 작성했습니다.
이 유명한 시는 12 줄에 170 자가 넘는 한자로 이루어져 있으며, 그림 위에 행서체로 단 하나의 오류도 없이 적혀야 합니다. 예전에 여러 모델을 테스트해 봤는데, 글자 수가 많아지면 반드시 실수가 나오기 시작하더군요.
술잔 개수를 특별히 추가한 이유는 AI 이미지 생성이 객체를 세는 데 유독 약하기 때문입니다.
게다가 장면에는 강 풍경, 이백, 제목, 도장, 시 전체, 영어 세 줄 등 수많은 요소가 포함되며 각각 지정된 위치가 있습니다. 마지막에는 다른 텍스트는 허용되지 않으며 도장은 하나만 있어야 한다는 제약 조건도 추가했습니다.
1 라운드: 둘 다 통과
첫 번째 라운드에서는 돌 탁자 위에 술잔 2 개를 요청했고, 마지막 영어 문장을 "Let us drink away the sorrows of all ages."로 설정했습니다.
이미지가 나오자 하나씩 확인했습니다. 시에 오류가 없고, 도장은 하나뿐이며, 영어 텍스트가 정확하고, 술잔은 정확히 2 개였습니다. 두 모델 모두 이번 라운드를 무난하게 통과했습니다.
차이는 주로 미적 감각에서 나타났습니다. MOSS-Image 버전은 먹의 농담이 다양하고 여백이 편안해서 실제 족자처럼 보였습니다. GPT Image 2.5 는 언뜻 보기엔 괜찮았지만, 확대해 보면 붓터치가 평면적이고 전통 수묵화의 은은한 번짐 효과가 부족했습니다.

2 라운드: 작은 변화가 큰 차이를 드러내다
다음으로 딱 두 가지만 변경했습니다.
- 술잔 개수를 2 개에서 4 개로 변경.
- 마지막 영어 문장 뒤에 "Cheers" 단어 추가.
논리적으로 이는 아주 사소한 변화입니다. 결과는 다음과 같았습니다.
- MOSS-Image: 두 가지 변경 사항을 모두 정확히 반영했습니다. 술잔은 정확히 4 개였고, "Cheers"가 추가되었으며, 12 줄의 시와 도장도 그대로 유지되었습니다.
- GPT Image 2.5: "Cheers"는 추가했지만 술잔 개수를 틀렸습니다. 4 개가 필요했는데 5 개를 그렸습니다.

물론 이것은 하나의 프롬프트 세트일 뿐 모든 시나리오를 대표하지는 않습니다. 하지만 "긴 텍스트와 정밀한 제어" 측면에서, 오픈소스 5B 모델은 인상적인 성능을 보여주었습니다.
5B 소형 모델이 어떻게 이런 걸 해낼까?
이번 테스트를 되돌아보면, MOSS-Image 가 두 라운드 모두 성공한 것은 몇 가지 역량 덕분입니다.
- 정확한 중문/영문 렌더링. 170 자가 넘는 한자 12 줄을 행서체로 쓰면서 오타나 누락이 없었습니다. 하단의 영어 세 줄과 추가된 "Cheers"도 선명했습니다.
- 긴 프롬프트의 완전한 이해. 최대 4K 토큰의 프롬프트를 지원합니다. 제 프롬프트에는 스타일, 장면, 제목, 시, 영어, 네거티브 제약 조건이 모두 포함되어 있었습니다. 처음부터 끝까지 흐름을 놓치지 않고 모든 지시를 따랐습니다. 그래서 2 라운드에서 술잔 개수를 바꾸고 단어를 추가했을 때도, 나머지 부분을 망가뜨리지 않고 두 가지 업데이트를 모두 처리했습니다.
- 제어 가능한 스타일. 이 테스트는 한지 수묵 질감을 요구했는데, 사진처럼 사실적이거나 3D 스타일로 흐르지 않았습니다. 중국 전통 스타일 외에도 애니메이션, 일러스트레이션, 포토 리얼리즘도 처리할 수 있습니다.
실무에 활용하고 싶다면 알아두면 좋은 두 가지가 있습니다. 첫째, 구조화된 JSON Layout 을 지원하여 텍스트와 요소의 위치를 직접 지정할 수 있어 포스터, 이커머스 이미지, 소셜 미디어 커버의 구도 제어가 향상됩니다. 둘째, Base 및 SFT 버전 모두의 가중치, 코드, 사용 가이드가 오픈소스로 공개되어 있습니다. SGLang 과 vLLM-Omni 가 출시 첫날부터 지원하므로 LoRA 파인튜닝이나 2 차 개발을 쉽게 시작할 수 있습니다.
테스트 방법 및 프롬프트 팁
과정은 간단했습니다. 두 모델 모두 동일한 프롬프트를 사용했습니다. 1 라운드를 실행한 후 세부 사항 두 가지를 변경하여 2 라운드를 실행했습니다. MOSS-Image 는 공식 체험 플랫폼에서 생성했고, GPT Image 2.5 는 ChatGPT 온라인에서 생성했습니다.
이처럼 복잡한 프롬프트를 작성할 때 제가 드리고 싶은 세 가지 팁이 있습니다.
- 아트 스타일과 재질을 먼저 정의하세요. 한지, 수묵, 광물 안료를 지정하고, "사진 아님, 3D 아님"을 추가하여 이미지가 사실주의로 흐르는 것을 방지하세요.
- 영역별로 설명하세요. 왼쪽 하단의 장면, 오른쪽 상단의 제목과 도장, 오른쪽 절반의 시, 하단의 영어를 나누어 설명하세요. 블록을 분리하면 모델이 따라가기 훨씬 쉽습니다.
- 네거티브 제약 조건으로 마무리하세요. 끝에 "다른 텍스트 없음, 추가 도장 없음, 워터마크 없음"을 넣어 이미지를 깔끔하게 유지하세요.
전체 프롬프트
아래는 1 라운드에서 사용한 전체 프롬프트로, 복사해서 바로 사용해 볼 수 있습니다.
1따뜻한 아이보리색 선지(한지) 위에 그린 중국 전통 수묵화, 긴 족자 형식. 겹겹이 쌓인 검은 먹, 부드러운 회색 명암, 차분한 청록색 광물 안료, 연한 황토색, 보이는 종이 결, 번진 젖은 먹 테두리, 갈필 질감. 손으로 그린 느낌, 사진 아님, 3D 아님.2왼쪽 및 하단 장면: 웅장한 강물이 구름 낀 산에서 쏟아져 나오며, 유려한 먹선과 여백으로 표현됨. 풍화된 절벽, 겹겹이 이어지는 먼 봉우리들, 바람에 휘어진 소나무, 떠도는 안개, 얇은 구름 뒤의 창백한 달. 강가의 바위 테라스에서, 헐렁한 아이보리색 옷에 단순한 상투를 튼 시인이 작은 술잔을 하늘로 들어 올림. 그의 옆 평평한 돌 위에는 둥근 도자기 술항아리와 두 개의 술잔이 놓여 있음.3오른쪽 상단: 크고 굵은 붓글씨 제목 《将进酒》, 그 아래 작가명 李白, 작가명 옆에 诗酒라고 적힌 작은 주홍색 도장 정확히 하나.4오른쪽 절반: 깨끗하고 읽기 쉬운 해서-행서체 중국 서예로 된 시 전문, 정확히 12 개의 가로줄로 작성, 균일한 줄 간격, 모든 글자가 정확함, 깨끗한 여백 위:5Line 1: 君不见,黄河之水天上来,奔流到海不复回。6Line 2: 君不见,高堂明镜悲白发,朝如青丝暮成雪。7Line 3: 人生得意须尽欢,莫使金樽空对月。8Line 4: 天生我材必有用,千金散尽还复来。9Line 5: 烹羊宰牛且为乐,会须一饮三百杯。10Line 6: 岑夫子,丹丘生,将进酒,杯莫停。11Line 7: 与君歌一曲,请君为我倾耳听。12Line 8: 钟鼓馔玉不足贵,但愿长醉不复醒。13Line 9: 古来圣贤皆寂寞,惟有饮者留其名。14Line 10: 陈王昔时宴平乐,斗酒十千恣欢谑。15Line 11: 主人何为言少钱,径须沽取对君酌。16Line 12: 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。17하단 중앙, 세 줄의 작고 진한 회색 세리프체 영어 텍스트:18BRING IN THE WINE19Li Bai20Let us drink away the sorrows of all ages.21그림의 다른 곳에는 다른 텍스트, 추가 도장, 워터마크 없음.
2 라운드에서는 딱 두 가지만 변경했습니다.
- 장면 설명에서 "두 개의 술잔(two cups)"을 "네 개의 술잔(four cups)"으로 변경.
- 마지막 영어 문장 뒤에 "Cheers" 추가.
나머지는 모두 동일하게 유지했습니다.
당신 차례입니다
오픈소스 5B 모델이 수묵 두루마리에 "장진주" 시 전체를 쓰고 술잔 개수까지 정확히 맞춰냈습니다.
현재 MOSS-Image 는 ComfyUI 에서 다운로드 수 70 만 회를 돌파했습니다. 제 말만 믿지 말고 직접 시도해 보세요 👇
🤗 무료 온라인 체험: https://huggingface.co/spaces/OpenMOSS-Team/MOSS-Image
⭐ 가중치 및 코드 GitHub: https://github.com/OpenMOSS/MOSS-Image
여러분은 이것으로 무엇을 만들어 보고 싶나요? 댓글로 여러분의 이미지를 공유해 주세요. 함께 잔을 들어봅시다. 건배 🍶





