같은 프롬프트에서 다른 그림을 꺼내는 법

같은 프롬프트로도 서로 다른 이미지를 뽑아내는 pullback 방향 기반의 training-free 다양한 샘플링 방법을 해설합니다.

원문 논문 보기
'같은 프롬프트에서 다른 그림을 꺼내는 법' 기사 커버 이미지

연구진이 arXiv 2610.14294로 공개한 Controllable Diverse Sampling through Pullback Directions는 조건부 diffusion 모델에서 같은 프롬프트로도 서로 다른 이미지를 뽑아내는 training-free 샘플링 방법을 제안합니다. 서로 다른 seed에서 나온 결과물이 자꾸 비슷해지는 문제를, 조건 임베딩 공간에서 이미지 공간으로 당겨온 pullback 기하로 찾은 민감한 방향들로 풀겠다는 것이 이 작업의 주장이며, 이 글에서는 그 진단과 장치와 남는 질문을 차례로 따라가 봅니다. 원문 논문으로 이어지는 링크는 제목 아래에 걸어 두었습니다.

안녕하세요, 패트릭입니다. 저는 이미지 생성 모델을 쓸 때 같은 프롬프트로 여러 장을 뽑아보는 습관이 있습니다. 처음에는 고르는 재미가 있는데, 네 장을 뽑아도 구도와 색감과 인물의 표정이 미묘하게만 달라서 결국 한 장만 쓰는 경우가 많았죠. 그렇다면 이건 제가 운이 없었던 걸까요, 아니면 샘플링 자체가 다양성을 잘 꺼내지 못하는 걸까요. 이번 논문이 눈에 들어온 이유는 그 질문을 정면으로 다루기 때문입니다.

같은 프롬프트로 여러 장 뽑아봤는데 왜 다 비슷할까

조건부 diffusion 모델은 프롬프트에 잘 맞는 고품질 이미지를 만들어냅니다. 그런데 seed만 바꿔서 여러 장을 뽑으면 품질은 좋은데 서로 닮아 있다는 느낌이 남습니다. 저는 이 지점에서 멈칫했습니다. 모델이 프롬프트를 잘 따른다는 것과, 창의적인 탐색을 도와준다는 것이 같은 일이 아니기 때문입니다.

생각해보면 사람도 비슷하게 배웁니다. 선생님이 문제를 내면 모범 답안은 잘 외우는데, 응용 문제를 만나면 같은 풀이만 반복하는 학생이 있죠. 조건부 생성 모델도 프롬프트라는 문제에 모범 답안을 내는 데에는 능숙하지만, 같은 문제에서 서로 다른 풀이를 꺼내는 데에는 서툴 수 있습니다. 그래서 다양성이 부족하다는 말은 모델이 못생겼다는 뜻이 아니라, 샘플링이 매번 비슷한 골짜기로 미끄러진다는 뜻에 가깝습니다.

여기서 재미있는 질문이 생깁니다. 노이즈를 다르게 줬는데 왜 궤적은 비슷해질까요. 디노이징 과정이 프롬프트 조건에 강하게 이끌리다 보니, 출발점이 달라도 중간 이후에는 같은 방향으로 수렴하기 쉽기 때문입니다. 조건을 세게 걸수록 프롬프트 정렬은 좋아지지만, 궤적이 만나는 지점도 좁아집니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 다양성의 문제는 운의 문제가 아니라 궤적의 기하 문제라는 것이죠.

같은 프롬프트에서 갈라지는 샘플링 경로를 보여주는 비교 도식
같은 프롬프트에서 갈라지는 샘플링 경로를 보여주는 비교 도식

다양성을 달라고 하면 왜 품질이 먼저 깨질까

다양성을 늘리려는 시도는 예전부터 있었습니다. 그런데 기존 방법들은 대체로 두 가지 대가를 치렀는데, 추가 최적화나 샘플링 오버헤드가 들거나, 세게 건드리면 왜곡이 생기는 것이었습니다. 저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다.

왜 이런 대가가 생길까요. 샘플링 궤적을 흔드는 가장 쉬운 방법은 노이즈를 키우거나 조건을 약하게 거는 것입니다. 그런데 이렇게 하면 이미지 전체가 흔들리기 때문에 원하지 않는 부분까지 함께 깨집니다. 얼굴은 그대로 두고 배경만 바꾸고 싶은데, 얼굴까지 뭉개지는 식이죠. 그래서 다양성을 얻는 대신 프롬프트 정렬이 떨어지고, 품질이 먼저 희생됩니다.

문제는 그다음입니다. 흔드는 강도를 약하게 하면 품질은 지켜지지만 다양성이 거의 생기지 않습니다. 강하게 하면 다양성은 생기지만 깨집니다. 이 사이에서 적당한 값을 찾는 일은 데이터셋마다, 프롬프트마다 달라서 꽤 손이 많이 갑니다. 저는 여기서 조금 의심했습니다. 흔드는 양의 문제가 아니라 흔드는 방향의 문제가 아닐까 하고요. 무작정 흔드는 대신, 조금만 움직여도 결과가 크게 달라지는 방향이 있다면 이야기가 달라지기 때문입니다.

그렇다면 답은 노이즈가 아니라 방향에 있지 않을까

이번 작업의 출발점은 단순합니다. 모든 방향을 똑같이 흔들지 말고, 출력이 가장 민감하게 반응하는 방향을 찾아서 그쪽으로 궤적을 밀어보자는 것입니다. 같은 힘을 쓰더라도 방향이 좋으면 다양성이 크게 생기고, 방향이 나쁘면 품질만 깨지니까요.

이 발상은 일상의 비유로도 설명할 수 있습니다. 커다란 탁자 위에 공을 올려놓고 손가락으로 미는 장면을 떠올려보세요. 탁자가 평평하면 어디로 밀어도 비슷하게 움직이지만, 탁자에 미세한 경사가 있으면 경사 방향으로 살짝만 밀어도 멀리 굴러갑니다. 논문이 말하는 민감한 방향은 바로 그 경사와 비슷합니다. 조건 임베딩을 조금 바꿨을 때 이미지 출력이 크게 바뀌는 방향이 어딘지를 먼저 찾는 것이죠.

그렇다면 이 방향은 어떻게 알 수 있을까요. 논문은 조건 임베딩 공간에서 이미지 공간으로 당겨온 pullback 기하를 이용합니다. 임베딩 공간에서의 작은 변화가 이미지 공간에서는 얼마나 크게 나타나는지를 재는 방식인데, 저는 이 대목을 가장 흥미롭게 봤습니다. 다양성을 노이즈의 양으로 다루지 않고 기하의 문제로 바꿨기 때문입니다. 양을 키우면 깨지지만, 방향을 고르면 살릴 수 있다는 관점의 전환이죠.

조건 임베딩 공간에서 이미지 공간으로 이어지는 pullback 기하를 설명하는 개념도
조건 임베딩 공간에서 이미지 공간으로 이어지는 pullback 기하를 설명하는 개념도

당겨온 기하학이라는 말은 무엇을 가리킬까

pullback이라는 단어는 처음 들으면 어렵게 느껴집니다. 그런데 뜻을 풀어보면 생각보다 직관적입니다. 이미지 공간에서 재고 싶은 변화량을 조건 임베딩 공간으로 당겨와서 잰다는 의미이기 때문입니다. 이미지끼리 얼마나 다른지를 매번 이미지에서 직접 재는 대신, 조건을 어느 쪽으로 움직여야 이미지가 크게 달라지는지를 임베딩 쪽에서 계산하는 것이죠.

왜 굳이 돌아갈까요. 생성 과정 한복판에서 이미지를 직접 비교하면 비용이 크고, 어느 방향이 유망한지도 바로 알기 어렵기 때문입니다. 반면 조건 임베딩은 차원이 상대적으로 다루기 쉽고, 모델이 이미 프롬프트를 이해하는 데 쓰는 통로이기도 합니다. 그래서 임베딩 공간에서의 작은 움직임을 이미지 공간에서의 큰 차이로 연결하는 지도를 만들면, 샘플링을 효율적으로 조종할 수 있습니다.

여기서는 조금 조심해서 읽을 필요가 있습니다. 기하라는 말이 나왔다고 해서 모델이 세상을 기하학적으로 이해한다는 뜻은 아닙니다. 어디까지나 국소적인 근사에 가깝습니다. 지금 이 궤적 근처에서는 어느 방향이 가장 민감한지를 재는 것이지, 모든 프롬프트와 모든 시점에서 통하는 절대 방향을 찾는 것은 아니기 때문입니다. 그럼에도 이 국소 정보가 유용한 이유는 샘플링이 결국 국소적인 한 걸음씩의 연속이기 때문입니다. 매 걸음에서 좋은 방향을 고르면 전체 궤적이 달라집니다.

이 방법은 프롬프트 장난과 무엇이 다를까

이 대목에서 흔한 오해를 하나 짚고 넘어가고 싶습니다. 조건을 건드린다고 하면 프롬프트를 바꿔치기하는 것으로 오해하기 쉽기 때문입니다. 이를테면 원래 프롬프트에 형용사를 덧붙이거나, 부정 프롬프트를 세게 거는 것과 같은 것으로 말이죠. 하지만 이번 방법이 건드리는 것은 문장 자체가 아니라 조건 임베딩 주변의 미묘한 방향입니다.

차이는 생각보다 중요합니다. 프롬프트 문장을 바꾸면 의미가 통째로 움직여서 원치 않는 속성이 함께 바뀔 수 있습니다. 고양이를 그려달라고 했는데 갑자기 배경 설명이 길어지면 고양이의 자세까지 달라지는 식이죠. 반면 임베딩 주변의 민감한 방향을 타는 방식은 프롬프트가 가리키는 중심 의미는 유지하면서, 출력이 달라질 여지가 큰 쪽으로만 움직이려는 시도에 가깝습니다. 그래서 조건 일관성을 지키면서 다양성을 노리겠다는 말이 성립합니다.

그렇다면 guidance scale을 조정하는 것과는 무엇이 다를까요. guidance를 키우면 프롬프트에 더 딱 맞지만 다양성이 줄고, 낮추면 다양해지지만 엉뚱해집니다. 이 방법은 그 단일 다이얼을 돌리는 대신, 프롬프트 정렬을 해치지 않으면서도 서로 다른 결과로 갈라질 수 있는 갈림길을 찾는 데 가깝습니다. 저는 이 구분이 실제 사용감에서 체감될 것이라고 봅니다. 문장을 고치는 수고 없이 같은 프롬프트 안에서 선택지가 넓어지니까요.

민감한 방향을 따라 갈라지는 디노이징 궤적을 그린 단계별 시각화
민감한 방향을 따라 갈라지는 디노이징 궤적을 그린 단계별 시각화

민감한 방향은 어떻게 찾고 어떻게 탈까

이제 장치의 흐름을 머릿속에서 실행해 보겠습니다. 샘플링이 진행되는 어느 시점에서, 지금 조건 임베딩을 조금씩 움직였을 때 출력이 얼마나 달라지는지를 잽니다. 이 민감도를 방향마다 따져보면 가장 크게 반응하는 방향 몇 개가 남는데, 논문은 이들을 서로 다른 궤적이 나눠 타도록 안내합니다. 하나의 궤적은 이쪽 방향으로, 다른 궤적은 저쪽 방향으로 밀어주는 식이죠.

왜 여러 궤적이 같은 방향을 타면 안 될까요. 같은 방향으로 밀면 다시 비슷한 그림이 나오기 때문입니다. 그래서 서로 구분되는 방향을 나눠주는 것이 중요합니다. 마치 교차로에서 일부 차는 좌회전 차로로, 일부 차는 우회전 차로로 보내는 것과 비슷합니다. 출발지는 같아도 타는 차로가 다르면 도착지가 달라지죠. 이 과정에서 학습이 따로 필요 없다는 점도 눈에 띕니다. 이미 학습된 모델의 국소 기하를 읽기만 하면 되기 때문에 training-free로 동작합니다.

실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 이 방향 계산이 매 스텝마다 무겁지는 않을까요. 논문의 설명만으로는 모든 구현 조건에서의 비용을 단정하기 어렵습니다. 다만 개념적으로는 추가 학습이나 별도 최적화 루프를 돌리는 것보다는 가벼운 쪽에 가깝습니다. 추가 샘플링을 여러 번 돌려서 고르는 방식과 비교하면, 방향을 미리 골라 궤적을 벌리는 편이 낭비가 적기 때문입니다. 물론 배치 크기나 해상도가 커지면 민감도 계산 자체가 부담이 될 수 있어서, 어디까지 매 스텝에 적용할지는 구현에 따라 조절이 필요해 보입니다.

조종 가능하다는 말은 어디까지 믿을 수 있을까

제목에 들어간 controllable이라는 단어는 조심해서 읽어야 합니다. 흔히 조종 가능하다고 하면 원하는 속성을 다이얼처럼 돌릴 수 있다는 뜻으로 들리기 때문입니다. 이를테면 포즈만 바꾸거나 색감만 바꾸는 식이죠. 하지만 이 논문에서 말하는 조종 가능성은 그보다는 궤적 수준의 조종에 가깝습니다. 서로 다른 궤적이 서로 다른 방향을 타도록 나눠준다는 의미이기 때문입니다.

이 차이는 실제 사용에서 중요합니다. 사용자가 빨간 차와 파란 차를 정확히 지정하는 종류의 컨트롤이 아니라, 같은 프롬프트 안에서 겹치지 않는 변형들을 골고루 뽑아내는 종류의 컨트롤에 가깝습니다. 그래서 창작 탐색에는 잘 맞지만, 속성 단위로 정밀하게 지정하는 용도와는 거리가 있습니다. 저는 이 점을 솔직하게 밝혀둘 필요가 있다고 봅니다. 다양하다는 것과 마음대로 지정할 수 있다는 것은 다른 능력이기 때문입니다.

그렇다면 이 조종은 언제 가장 유용할까요. 구체적인 장면을 떠올려보겠습니다. 오후에 포트폴리오용 일러스트를 뽑는 디자이너가 같은 프롬프트로 여덟 장을 생성하는데, 여덟 장이 서로 다른 구도를 보여주면서도 프롬프트의 중심 주제는 벗어나지 않는 경우입니다. 일일이 프롬프트를 고치지 않아도 선택지가 생기니 작업 속도가 빨라집니다. 반대로 의료 영상처럼 엄격한 정확성이 필요한 곳에서는 같은 장치가 신중하게 다뤄져야 합니다. 다양성이 곧 품질이 아니기 때문입니다.

다양성 조절 폭을 보여주는 컨트롤 메타포 일러스트
다양성 조절 폭을 보여주는 컨트롤 메타포 일러스트

MS-COCO와 BrushNet에서는 무엇이 달라졌을까

논문은 MS-COCO에서의 프롬프트 조건 생성과 BrushNet을 이용한 inpainting에서 효과를 확인했다고 보고합니다. MS-COCO는 여러 사물과 장면이 얽힌 캡션으로 생성 능력을 따져보기 좋은 무대이고, BrushNet 쪽은 빈 곳을 메우는 inpainting에서 다양한 완성이 가능한지를 보는 무대입니다. 저는 이 두 축의 선택이 마음에 들었습니다. 처음부터 새로 그리는 경우와, 주변 맥락에 맞춰 빈칸을 채우는 경우가 서로 다른 종류의 어려움을 요구하기 때문입니다.

MS-COCO 쪽 이야기는 이렇게 읽힙니다. 프롬프트에 맞는 그림을 내는 것 자체는 이미 잘하는데, 같은 캡션에서도 서로 다른 장면이 나와야 탐색의 폭이 넓어집니다. 이 방법이 조건 일관성을 유지하면서 궤적을 벌린다면, 캡션이 가리키는 대상은 지키되 구도와 배치와 디테일이 달라지는 방향으로 다양성이 생길 수 있습니다. 숫자를 그대로 믿기 전에 조건을 봐야 합니다. 다양성 지표는 무엇을 재느냐에 따라 얼굴이 바뀌기 때문에, 논문이 말하는 개선이 어떤 종류의 다름인지를 함께 봐야 하기 때문입니다.

inpainting 쪽은 더 직관적입니다. 사진 한가운데 마스크로 가려진 영역이 있다고 해보세요. 주변 배경과 어울리면서도 가능한 메움은 여러 개입니다. 창문일 수도 있고, 문일 수도 있고, 벽걸이 그림일 수도 있죠. 기존 샘플링이 매번 비슷한 메움을 내놓는다면 사용자는 선택권이 없습니다. BrushNet과 결합한 실험이 의미 있는 이유는 주변 맥락을 존중하면서도 서로 다른 완성을 내놓을 수 있는지를 직접 겨냥하기 때문입니다. (참고로 BrushNet은 여기서 마스크 기반 inpainting을 돕는 장치로 등장하는데, 논문의 역할 분담에서는 다양성을 만드는 쪽이 아니라 주어진 조건 안에서 완성도를 받치는 쪽에 가깝습니다.)

서빙 라인에 올린다고 생각하면 질문이 달라진다

연구실 결과와 서비스는 다른 질문을 던집니다. 논문에서 training-free라는 말은 매력적이지만, 실제 서빙 라인에 올린다고 생각하면 계산 위치와 메모리 움직임까지 함께 봐야 합니다. 민감한 방향을 구하는 과정이 순수 연산으로 끝나는지, 중간 활성화나 임베딩을 얼마나 오래 들고 있어야 하는지가 latency에 영향을 주기 때문입니다.

저희 팀 관점에서도 같은 기준을 적용합니다. 추가 학습이 없다는 것은 배포 전에 큰 모델을 다시 굽지 않아도 된다는 점에서 분명히 좋습니다. 하지만 inference 단계에서 궤적마다 다른 방향을 계산하고 유지해야 한다면, 동시 요청이 몰릴 때 throughput이 어떻게 흔들리는지를 따로 재봐야 합니다. 같은 GPU에서 여러 궤적을 병렬로 돌릴 때 메모리 대역폭이 병목이 될 수도 있고, 해상도가 올라가면 방향 계산의 체감이 달라질 수도 있습니다. 그래서 저는 이 방법을 가볍다고 단정하기보다, 학습 비용은 없애고 추론 시점의 선택 비용으로 바꾼 설계라고 표현하고 싶습니다.

또 하나 짚을 점은 품질 관리입니다. 다양해진 결과물 중에서 프롬프트에서 벗어난 것을 어떻게 거를 것인가 하는 문제인데요. 궤적을 벌릴수록 어쩔 수 없이 경계선에 걸리는 샘플이 나옵니다. 서비스에서는 이를 사람 검수나 자동 필터로 메워야 하므로, 다양성 자체보다 다양해진 뒤의 선별 파이프라인이 함께 설계되어야 합니다. 다양성을 잘 만드는 모델과 다양성을 잘 서빙하는 시스템은 다른 층위의 문제이기 때문입니다.

마스크 영역을 서로 다르게 채우는 inpainting 변형들을 담은 그리드
마스크 영역을 서로 다르게 채우는 inpainting 변형들을 담은 그리드

그래서 앞으로 무엇을 지켜보면 좋을까

여기까지 읽으면 한 가지 반론이 떠오를 수 있습니다. 방향을 잘 골라도 결국 모델이 아는 범위 안에서만 달라지는 것 아닌가요. 맞습니다. 이 방법은 모델이 원래 만들 수 있는 분포 바깥으로 나가게 해주지 않습니다. 이미 학습된 모델 안에 잠들어 있는 다양한 가능성을 끄집어내는 데 가깝습니다. 그래서 모델 자체가 편향되어 있다면, 다양해진 결과물들도 같은 편향을 공유할 수 있습니다. 다양성과 공정성은 다른 문제라는 점을 잊지 말아야 합니다.

그렇다면 사람의 역할은 무엇일까요. 저는 앞으로 보고 싶은 것이 분명합니다. 첫째, 민감한 방향이 프롬프트 종류마다 어떻게 달라지는지입니다. 인물과 풍경과 제품 사진에서 같은 방식으로 통할까요. 둘째, 비디오나 3D처럼 시간과 시점이 얽힌 생성에서도 같은 pullback 발상이 통할지입니다. 한 프레임만 다양해지고 나머지가 어긋나면 소용이 없기 때문입니다. 셋째, 사용자가 원하는 축으로 다양성을 모으는 인터페이스입니다. 무작정 다르게가 아니라 구도는 다르게, 색감은 그대로 같은 식의 지정이 가능해질까요.

이 논문이 흥미로운 이유는 거창한 선언 때문이 아닙니다. 다양성을 운이나 물량으로 다루지 않고 방향의 문제로 바꿨기 때문입니다. 같은 프롬프트로 여러 장을 뽑아도 매번 비슷해서 아쉬웠던 분이라면, 궤적을 벌리는 이 발상이 실제 작업 흐름을 어떻게 바꿀지 상상해 보셔도 좋겠습니다. 저는 다음에 비슷한 장치가 나오면 숫자의 크기보다 방향을 고르는 기준이 얼마나 투명해졌는지를 먼저 볼 생각입니다. 그것이 이 아이디어가 오래갈지를 가르는 지점이라고 봅니다.

다양성과 품질을 함께 보는 평가와 서빙 구조도
다양성과 품질을 함께 보는 평가와 서빙 구조도

참고 자료

  1. Controllable Diverse Sampling through Pullback Directions · arxiv.org

    리뷰 원문