#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. #!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 도넛}}}에 대한 내용은 [[도넛]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[도넛#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[도넛#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.#!if 리스트 != null
{{{#!if 문서명1 != null
* {{{#!if 설명1 != null
도넛: }}}[[도넛]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[도넛#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[도넛#|]] 부분}}}}}}{{{#!if 문서명2 != null
* {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
* {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
* {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
* {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
* {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
* {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
* {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
* {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
* {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}| 🎨 그림 인공지능 | ||
| {{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)" {{{#!folding [ 펼치기ㆍ접기 ] {{{#!wiki style="margin:-5px -1px -11px; word-break:keep-all" | 생성형 인공지능 | DALL·E · Firefly · FLUX · Gaugan2 · GPT-Image · Grok Imagine · Imagen · Midjourney · 나노 바나나 · NAI Diffusion · Qwen-Image · Samsung Gauss Image · Seedream · Stable Diffusion · Z-Image |
| 학습 방해 프로그램 | Glaze (Nightshade) · Mist |
| <colbgcolor=#A562FF><colcolor=white> Glaze | |
| | |
| 개발 | 시카고 대학교 Glaze 개발팀 |
| 용도 | 그림 인공지능의 무단 학습 방지 |
| 플랫폼 | Windows, macOS |
| 최신 버전 | Glaze 2.1 Nightshade 1.0.2 |
| | |
1. 개요
미국의 시카고 대학교 연구팀이 개발한, 이미지 생성형 AI 학습으로부터 작품을 보호할 수 있는 프로그램.[1] 대학 교수진과 학생들, 그리고 다수의 아티스트들이 개발에 참여하고 있다. 기본적으로 연구 목적으로 제작되었기에 전면 무료이며 누구나 이용할 수 있다.2. 작동 원리
작품 데이터 위에 사람의 눈에는 거의 보이지 않는 수준의 특수한 노이즈를 추가한다. 이를 통해 그 노이즈가 적용된 작품이 이미지 생성 AI의 학습에 활용될 때 AI 쪽에선 원래의 작품과 다른 외관을 가진 것으로 잘못 인식하여 아티스트의 고유 스타일 등의 모방을 방지할 수 있도록 하는 원리이다.
3. 사용 방법
현재 두 가지 방법으로 Glaze를 이용할 수 있다. 프로그램 파일을 다운로드해서 자신의 PC에서 작동시킬 수 있고, 시카고 대학교 서버의 WebGlaze를 통해 이용할 수도 있다.3.1. PC
| PC 버전 Glaze의 모습 |
공식 사이트에서 받을 수 있는 버전. Windows와 macOS에서 사용할 수 있다. 자신의 컴퓨터의 그래픽 카드가 라데온 그래픽 카드거나 성능이 좋지 않은 편이라면 WebGlaze를 권장한다.
3.2. WebGlaze
Glaze 공식 사이트의 'WebGlaze' 설명 페이지 참고2023년 8월 2일 서비스 개시. 컴퓨터 그래픽 카드 성능이 너무 모자라거나, 라데온 그래픽 카드를 갖고 있거나, 그래픽 카드가 없거나, 아예 컴퓨터가 없는(태블릿 컴퓨터, 스마트폰 등으로 작업하는) 작업자들은 Glaze를 이용하기 어렵다는 문제점을 반영하여 생긴 서비스이다. AI를 쓰지 않는 인간 예술가만, 초대를 통해서만 이용할 수 있도록 제한된다.
3.2.1. 신청 방법
초대 받는 방법은 아래와 같다.해외에서 운영하고 있는 서비스이기에 기본적으로 영어로 DM을 보내는게 정석이다.[3] 다만 개발팀 측은 생성 AI 사용자의 서비스 이용은 자제해 달라는 방침을 세웠기 때문에 인간 아티스트임을 증명하는 것이 필요하다. 따라서 DM으로 신청할 때는 DM내에 자신의 작품을 게시 하거나 작품을 게시하고 있는 SNS계정 주소나 사이트도 함께 보내는 것이 좋다. 또한 개발팀 측은 제작 과정을 기록한 타임랩스 동영상도 있으면 심사가 더 수월하다고 밝혔다. 요청이 받아 들여지면 초대 링크가 회신되어 Web Glaze 공식 사이트에 접속할 수 있다.
3.2.2. 계정 등록 방법
사이트에 들어가면 우선 계정 등록 화면이 나온다.사용자 이름(User name)[4], 이름(First name), 이름(Last name), 이메일 주소(Email), 비밀번호(Passward)가 있다. 비밀번호는 8자 이상 입력한다. 그리고 개인정보와 유사하거나 자주 사용되거나 또는 숫자로만 이루어진 비밀번호는 입력하면 안된다.
입력이 완료되면 페이지 맨 아래의 제출(Submit) 버튼을 클릭한다.
3.2.3. 이용 방법
등록이 완료되면 공식 사이트 내 별도 페이지로 넘어간다.여기서 처음으로 Web Glaze를 사용할 수 있게 된다.Glaze로 가공된 그림을 보내 주었으면 하는 메일 주소(Email)를 입력해, Glaze를 걸고 싶은 그림파일을 선택(Image)해 업로드한다.
4. Nightshade
2024년 1월 19일에 추가된 프로그램으로, 이미지를 보호하는 역할을 하는 Glaze와 달리 Diffusion 모델을 오염시키는 방식을 가지고 있다. Glaze는 방패, Nightshade는 창인 셈.향후 Nightshade와 Glaze를 하나로 통합하는 프로젝트를 진행 중이라고 한다.
5. 한계점
- Glaze와 Nightshade는 모두 베이스 모델을 처음부터 학습하기 전 과정에서 오염된 데이터셋이 많이 개입되어야 효과가 발휘될 수 있다. 이미 깨끗한 데이터셋으로 학습되어있는 베이스 모델에 소수의 오염된 데이터셋을 파인튜닝 하더라도 효과가 미비할 수 있다는 뜻이다.[5] 또한 Nightshade는 모델 학습 시 깔끔한 데이터가 많아질수록 오염 데이터를 더욱 많이 필요로 하게 된다.
- 압축 열화에 상당히 취약하다는 문제가 있다. 소셜 미디어에 업로드하면서 이미지가 압축되거나 변형되는 과정에서 필터의 안정성이 크게 저하된다. [6] 대신, Nightshade는 일반적인 자르기, 변형, 압축에는 어느정도 견디도록 설계되어있다. 일반적인 JPEG 압축 열화 시에도 실제 포이즈는 어느정도 남는 형태다.
- Glaze와 Nightshade는 베이스 모델 학습 및 파인튜닝에 대한 모델 공격 및 스타일 방어[7] 솔루션이기 때문에 Image-to-Image의 방어에는 대응하기 쉽지 않다는 점도 있다. 이에 Glaze를 개발한 시카고 대학교 연구팀에 따르면 Image-to-Image 방식에 대한 방어수단을 연구하고 있으나, 디퓨전을 활용한 Image-to-Image 방식에 대해서는 Mist를 사용하는 것을 추천한다고 언급하였다.
- Glaze와 Nightshade는 모두 디퓨전 모델에 대해서만 효과적인 방어 및 공격 수단이다. 즉, '오토리그레시브(Autoregressive)'처럼 처음부터 설계가 다른 모델에는 효과가 크게 떨어지거나 아예 없을 수 있다. 대표적인 오토리그레시브 모델로는 Google의 나노 바나나, OpenAI의 ChatGPT Image, xAI의 Grok Imagine 등이 있다. 이러한 한계점이 대중에게 명확하게 알려지게 된 계기로는 2025년 12월 경 X에 도입된 이미지 수정 기능이 있다.[8]
6. 관련 문서
- emamori: 일본의 SnackTime 주식회사가 구독제로 서비스했던 일러스트 무단 학습 방해 서비스를 제공하는 웹사이트. 지금은 서비스를 종료했다.
[1] 그림 생성형 AI의 무단 학습은 현재까지도 저작권 문제와 작가에 대한 사이버 불링 등 많은 논란과 피해 사례를 낳고 있다.(그림 인공지능/논란 및 사건 사고 참조.)[2] Glaze 공식 사이트 상단 메뉴의 'Feedback(피드백)' 아래에 있는 'Email Us'에서 메일을 보내 초대 요청을 할 수 있다. 다만 이메일 초대는 비교적 늦게 답장이 온다는 점에 유의해야 한다. 그리고 DM으로 신청하는 방법과 마찬가지로 작가임을 증명하는 자료들도 함께 첨부해야 한다.[3] 그렇다고 특별히 복잡한 의사소통이 필요한 것은 아니다. "안녕하세요? 저는 한국인 아티스트입니다. 저도 Glaze를 사용하고 싶습니다." 정도면 충분하다.[4] 사용자 이름은 150문자 이내로, 문자와 숫자, 기호, 비밀번호 재입력(Passward confirmation)의 항목이 있는데 각각 입력해준다. 기호는 골뱅이(@), 마침표(.), 플러스(+), 마이너스(-)만 넣을 수 있다.[5] 다만, Glaze는 파인튜닝 및 추가학습을 통한 아트 스타일 복제 방어가 목적이기 때문에 이미 관련 키워드로 아트 스타일이 학습되어있던 게 아니라면 효과를 기대해볼 수 있다.[6] Results indicate that Glaze exhibits significant vulnerabilities when protected images undergo standard social media processing, with certain transformations substantially reducing its effectiveness.(결과에 따르면, Glaze는 보호된 이미지가 일반적인 SNS 업로드 과정에서 흔히 이뤄지는 처리 작업을 거칠 경우 상당히 취약해지며, 특정 변형들은 Glaze의 효과를 크게 감소시키는 것으로 나타났다.)[7] Nightshade는 모델을 직접적으로 공격하여 망가뜨리는 방식이며, Glaze는 아티스트들의 아트 스타일이 복제되는 것에 대한 방어 수단이다.[8] 이미지에 적용된 Glaze, Nightshade, Mist 필터를 삭제할 수 있거나, 적용된 상태에서 그대로 이미지 수정이 가능하다는 사실이 밝혀졌고, 게다가 다른 사용자가 무단으로 타인의 이미지를 쉽게 수정할 수 있었기 때문에 '이 기능을 왜 넣었냐'는 반응이 압도적으로 많았으며 큰 반발을 일으켰다.