손으로?

안녕하세요. 민구홍입니다.

월간 『디자인』 2023년 7월호에서는 ‘생성형 AI와 프롬프트 디자인’을 다뤘습니다. AI가 디자인을 둘러싼 환경뿐 아니라 디자인 자체를 이세계로 데려다줄 법한 지금 곱씹어볼 만한 주제였죠. 저는 월간 『디자인』으로부터 다음과 같은 임무를 부여받았습니다. “브랜드를 하나 선정한 뒤 AI 기술을 활용해 리뉴얼하라.” 임무를 수행하는 동안 저 또한 AI에 관해 생각해볼 수 있었습니다. 생각의 결과물을 소개할 수 있도록 귀한 지면을 할애해주신 서민경 기자님께 감사드립니다.


리뉴얼을 제안하는 브랜드는?

월간 『디자인』을 위한 워드 마크.

바야흐로 AI(Artificial Intelligence)의 시대다. 1956년 다트머스 대학교의 여름 휴양지에서 시작돼 수십 년 동안 연구실에서 개발되던 기술이 일상에 스며들었다. 물론 영화나 SF 소설 등에서 접해온 것과는 조금 다를지 모르지만, AI는 이미 여러 모습으로 우리 곁에 왔다.

하지만 거의 모든 건 여전히 손에서 시작해 손으로 끝난다. 소스 코드든 프롬프트든 머릿속에 자리한 비현실을 현실로 끄집어내 AI에 숨을 불어넣고 그와 밤낮없이 진솔한 이야기를 나누려면 다름 아닌 손이 필요하다. 이는 자명한 사실, 즉 진실이다. 게다가 이미지 생성 AI가 구현하기 가장 어려운 인간의 신체 부위로 손이 꼽히는 만큼 AI의 입장에서 손은 여러모로 문제적인 요소다.

AI가 생성한 손

점토판에서 두루마리, 종이, 또 다른 두루마리인 웹사이트, 나아가 기술로 인간을 뛰어넘으려는 순간 어디든 손이 있고, 실제로 작업에 돌입할 때 가장 먼저 움직이는 도구이자 작업을 마무리하는 가장 기본적인 도구가 손이라는 점을 되새기면 디자인은 물론이고 모든 생산 활동에서 손의 자리는 (작업 방식이 지금과 달라지더라도) 고스란하다.

AI와 함께 역설적으로 손의 역할이 도드라지는 지금, 1976년부터 50년 가까이 수많은 솜씨 좋은 ‘손’을 매달 소개해온 월간 『디자인』만큼 손과 어깨동무한 브랜드가 또 있을까? 손이 무려 두 개나 달린 내 몸 주위를 둘러보면 그렇다.

사용한 생성형 AI는?

워드 마크를 디자인(또는 선택)하는 데는 미국의 프로그래머 션 바스케즈(Sean Vasquez)가 개발한 ’손 글씨 합성’(Handwriting Synthesis)을 활용했다. 일찍이 2016년부터 민구홍 매뉴팩처링에서 애용해온 이 프로그램은 순환 신경망(Recurrent Neural Network, RNN)을 통해 한 번에 하나의 데이터 포인트를 예측해 장거리 구조를 지닌 시퀀스, 즉 손 글씨를 끝없이 생성해낸다.

손끝에서 프롬프트 하나만으로 탄생한 워드 마크는 자연스러움, 정교함, 엉망 사이에서 ‘손맛’을 뽐내며 오늘날 자칫 잃어버리기 쉬운, 또는 이미 잃어버렸을지 모를 손의 아름다움과 힘을 드러낸다. 단, 프로그램이 생성한 무한에 가까운 결과물을 모두 소개할 수 없는 탓에 무작위로, 다시 말해 작위적으로 만들어진 함수로 다섯 가지만 선택했다.

많은 요소가 직선에 반듯하게 달라붙어 예측한 대로 작동해야 하는 AI의 시대임을 생각해보면, 이 가운데 무엇이든 월간 『디자인』의 이번 호 워드 마크로 쓰기에 적절하다고 느끼는 건 결코 나뿐이 아닐 것 같다.

한편, 이 프로그램은 일민미술관에서 열린 『히스테리아: 동시대 리얼리즘 회화』(Hysteria: Contemporary Realism Painting)를 위한 티셔츠뿐 아니라 이참에 한번 시도해본 민구홍 매뉴팩처링의 임시 워드 마크에 활용되기도 했다.

리뉴얼을 위해 사용한 프롬프트는?

참고로 다음 구절은 소스 코드로 부르는 게 더 적당할지 모를 421줄짜리 프롬프트의 일부다. 즉, 프로그램은 이 구절만으로는 작동하지 않는다. 게다가 프롬프트를 전문적으로 다루는 ‘프롬프트 디자이너’라는 직업까지 생긴 마당에 그 새롭고 고귀한 영역을 보호하고자 몇몇 구절까지 변조한 까닭이다. 월간 『디자인』 독자 여러분의 양해를 구한다.

hand.write(
    filename = i + '.svg',
    lines = t.split('\n'),
    biases = r * np.flip(np.cumsum([len(i) == 0 for i in l]), 0),
    styles = np.cumsum(np.array([len(i) for i in l]) == 0).astype(int),
)

그렇게 제 손을 통해 탄생한 결과물은 다음과 같습니다.

참, 제목은 「손으로?」(By Hand?)고요.