DALL-E 프롬프트 최적화: 사진 수준의 AI 이미지 만들기

DALL-E 프롬프트 최적화: 사진 수준의 AI 이미지 만들기
pay homage to the movie 'Lost in Translation', 2003

AI가 만든 이미지를 보면서 실제 사진이라고 믿었던 적이 있나요? 실제 사람이나 사물을 찍은 사진인 줄 알았던 이미지가 AI로 만든 파일인걸 알고 나서 놀랐던 적이 저는 많습니다. 그래서 '어떻게 이런 이미지를 만들 수 있지?'가 궁금해졌고 Dall-E로 많은 시도를 해봤었죠.

그런데 여러 시도에도 결과가 나빠서 미드저니나 스테이블 디퓨전으로 바꿔야겠다는 생각을 하고 있었어요. 그러다가 결정적인 팁을 발견하고 프롬프트를 수정하니 기대했던 수준의 이미지가 나오더군요. 같은 고민이 있는 분들이라면 이 글을 참고해보세요. 먼저 커버 이미지의 프롬프트는 다음과 같습니다.

커버 이미지 프롬프트

A young blonde American woman wearing wireless headphones, walking inside a Kyoto shrine on a sunny day with clear skies, cherry blossom petals occasionally float on the breeze, and the cherry trees are full of beautiful light pink blossoms, there's a woman wearing a kimono visible in the distance in the background, 70mm f/2.8 zoom lens with Nikon Z6, slightly bright exposure, saturation +1, ISO 400, 1/250 second shutter speed, f/5.6 aperture, 50mm focal length, extreme long shot, wide screen

이 프롬프트에서 아쉽게도 'extreme long shot'은 먹히지 않았어요. 이 정도의 거리감이 카메라 설정, 그리고 묘사된 상황과는 상충하는 면이 있어서 인것 같습니다.

망한 이미지로 알아보는 제 1 원칙

Dall-E에게 주는 프롬프트에 절대로 '사실적인 이미지'나 '매우 현실감있는 사진' 등의 내용을 주어서는 안됩니다. 이런 내용을 주면 모델은 우리 기대와는 다른 결과를 내놓습니다. 제가 지금까지 실패해왔던 이유가 여기에 있었습니다. 망한 예를 한번 볼까요? '매우 현실적인 사진'을 넣어서 한글 프롬프트를 줘봤더니,

프롬프트

중국의 한 마을에서 젊은 유비, 관우, 장비가 복숭아 나무 아래에 모여 의형제가 된 것을 기념한다, 세상을 더 이롭게 하겠다는 큰 뜻을 공유하며 기쁘면서도 벅차고 단호한 표정을 얼굴에 띄고 있다, 잔잔한 바람에 분홍 복숭아 꽃잎이 날린다, 맑은 날, 밝은 햇빛, 100m 거리에서, 정사각형, 매우 현실적인 사진

여러번 겪어봤지만 여전히 적응이 안됩니다. 너무 엉뚱한 결과입니다. 이 이미지를 보고 '이건 대체 뭐지?'라고 생각할 때마다 웃음이 나왔습니다. 이런 결과가 나왔을때 프롬프트에서 '매우 현실적인 사진'을 어떻게 대체하면 될지를 고민해왔었지만, 이걸 대체하는게 아니고 아얘 없앴어야 했다는 것. 이걸 빼면 아래 결과가 나와요.

프롬프트

중국의 한 마을에서 젊은 유비, 관우, 장비가 복숭아 나무 아래에 모여 의형제가 된 것을 기념한다, 세상을 더 이롭게 하겠다는 큰 뜻을 공유하며 기쁘면서도 벅차고 단호한 표정을 얼굴에 띄고 있다, 잔잔한 바람에 분홍 복숭아 꽃잎이 날린다, 맑은 날, 밝은 햇빛, 100m 거리에서, 정사각형

인물은 조금 이상하지만 배경 수준은 괜찮아졌습니다. 이제 이 상태에서 뭘 트윅해야할까요?

핵심은 메타데이터

뭐가 문제인지 방법을 찾다가 몇가지 단서가 될만한 프롬프트를 봤어요. 여기엔 제가 전혀 모르는 용어들이 포함되어 있었는데 예를 들어 이런 것입니다.

“Series of surreal objects on a table in the library, Sigma 85mm f/1.4”
Series of surreal objects on a table in the library, Sigma 85mm f/1.4, dall-e
source - https://labs.openai.com/s/4ytegkl47EFHHeJlQODqlFI1

"Sigma 85mm f/1.4", 뭔지 알고 계셨나요? 찾아보니 카메라 렌즈였습니다. 사진을 찍을 때 사용되는 기기 정보를 주니 정말 사진 같은 이미지를 만드네요. 조금 더 파고 들다가 한 블로그에서 굉장한 팁을 발견했어요.

Mastering Realistic Image Generation with DALL-E
Your complete guide to creating lifelike images with DALL-E. Learn expert tips on prompting, keywords, and understanding DALL-E’s training to bring your creative vision to life.
It is widely discussed that Dall-e was trained on the Alt text of website images. However, what is not as discussed–and is frankly more helpful to your prompting–is that the AI was trained on ALL the image’s metadata as well.

모델이 이미지의 메타데이터도 학습했다는 이야기입니다. 메타데이터 중에서도 아래 두 가지가 결국 Dall-E의 프롬프트인 것 같습니다.

  1. 기술 메타데이터 - 카메라, 렌즈, ISO, 셔터 스피드 등 사진을 찍는데 사용된 기술적 환경.
  2. 서술 메타데이터 - 파일명, 작가, 키워드, 제목, 코멘트 등 이미지에 대한 설명.

발견한 블로그에서 제시한 메타데이터 들은 다음과 같아요.

  • The lens used to take the photo
  • Saturation levels
  • The type of camera used
  • Whether or not the flash was used
  • Exposure
  • ISO
  • Shutter speed
  • Aperture
  • Focal Length

이것들을 당장 사용해보았습니다. 그리고 이제부턴 한글이 아니라 영어로 입력을 주기로 합니다.

결과

a close-up portrait of an Asian woman, Dall-E

모니터 앞에서 헉 소리를 냈습니다. 안되는 줄 알았는데 이제 됩니다. 사용했던 프롬프트는 아래에 있어요.

이미지 프롬프트

a close-up portrait of an Asian woman with short hair showing an expression of profound insight, taken on a bright sunny day with vibrant colors and a blurred background, 85mm f/1.4 prime lens with Canon EOS R5, saturation +1, slightly bright exposure, but check the histogram to avoid blown highlights, ISO 400, 1/200 second shutter speed

사진 수준의 이미지를 만들려면 사진에 대해서 잘 알고 있어야 했던 것이죠. 그래서 사용했던 옵션들이 어떤 의미를 가지는지 정리해봤습니다.

  • The lens used to take the photo - 렌즈의 품질과 특성이 이미지의 선명도, 색 재현, 왜곡 등에 영향을 줍니다. 광각 렌즈는 넓은 시야각을, 망원 렌즈는 먼 피사체를 확대합니다.
  • Saturation levels - 높은 채도는 색을 더 선명하고 생생하게, 낮은 채도는 색이 덜 선명하고 회색조에 가까워지게 합니다.
  • The type of camera used - 카메라마다 센서 크기, 해상도, 처리 능력 등이 달라서 이미지 품질에 영향을 줍니다.
  • Whether or not the flash was used - 플래시를 사용하면 어두운 환경에서 피사체를 밝게 합니다. 이 때문에 때로는 적목 현상이 생길 수 있습니다. 사용하지 않으면 자연광으로 촬영되어 더 자연스러운 느낌을 줄 수 있습니다.
  • Exposure - 노출이 크면 이미지가 밝아지지만 하이라이트 부분의 디테일이 손실됩니다. 노출이 작으면 이미지가 어두워지고 그림자 부분의 디테일이 손실됩니다.
  • ISO - ISO가 높으면 어두운 환경에서 밝은 이미지를 얻을 수 있지만 노이즈가 증가합니다. 반대로 ISO가 낮으면 노이즈가 적고 깨끗한 이미지를 얻을 수 있지만 더 많은 빛이 필요합니다. ISO 값에 대한 일반적인 설명도 참고해보세요.
  • Shutter speed - 느린 셔터 속도는 모션 블러 효과를 만들어 움직임을 표현할 수 있습니다. 빠른 셔터 속도는 움직이는 피사체를 선명하게 포착할 수 있습니다.
  • Aperture - f 값이 작다는 것은 큰 조리개가 큰 것으로, 배경을 흐리게 만듭니다. f값이 크다는 것은 조리개가 작다는 것으로 전체적으로 선명한 이미지를 만듭니다.
  • Focal Length - 짧은 초점 거리(작은 mm)는 화각이 넓어지는 것이며 풍경 촬영에 적합합니다. 긴 초점 거리(큰 mm)는 멀리 있는 피사체를 확대하여 촬영할 수 있습니다.

이런 요소들의 미묘한 조합이 이미지의 품질에 큰 영향을 주겠네요. 그런데 제가 사진을 잘 모르다보니 이 옵션들을 하나하나 조절하면서 배워나갈 자신이 없었습니다. 그래서 제가 어떻게 했냐면.

Claude에게 프롬프트를 요청

현 시점에서 문해력이 가장 뛰어난 LLM은 Cluade 3.5 Sonnet 입니다. Dall-E에 넣을 프롬프트를 이 녀석에게 만들어 달라고 시켰는데요, 이렇게 입력을 줬어요. 이 모델은 명확한 지시, 그리고 적절한 예시를 프롬프트에 넣어주면 더 나은 추론을 합니다.

💡
세가지 요청이 있어. 내용을 확인해줘.

1. 아래 내용을 영어로 작성해줘.
2차 세계대전 중인 1940년대 영국, 일부만 남은 건물들이 있는 폐허가 된 마을, 멀리 떨어진 교회의 꼭대기에 저격수가 있는 것이 조그맣게 보이며, 저격수가 총구를 내 쪽으로 하고 있다, 초점을 잃은 화면

2. 위 장면을 400 미터정도 떨어진 곳에서 사진으로 찍어서 남긴다고 했을때, 이런 먼 거리감에도 선명함을 유지할 수 있는 흑백 필름 카메라 옵션이 있다면 무엇을 추천해주겠어? 아래 옵션들을 대상으로 알려줘
* The lens used to take the photo
* Saturation levels
* The type of camera used
* Whether or not the flash was used
* Exposure
* ISO
* Shutter speed
* Aperture
* Focal Length

3. 이제 1번의 답과 2번의 답을 조합해서 아래 예시로 주어진 형식에 따라 영어로 작성해줘
A young blonde American woman wearing wireless headphones, walking inside a Kyoto shrine on a sunny day with clear skies, cherry blossom petals occasionally float on the breeze, and the cherry trees are full of beautiful light pink blossoms, there's a woman wearing a kimono visible in the distance in the background, 70mm f/2.8 zoom lens with Nikon Z6, slightly bright exposure, saturation +1, ISO 400, 1/250 second shutter speed, f/5.6 aperture, 50mm focal length, aerial shot, wide screen

위 프롬프트는 이런 결과를 만들어 내도록 구성한 것입니다.

  • 1번의 답은 서술적 메타데이터
  • 2번의 답은 앞의 서술적 메타데이터를 가장 만족시킬 수 있는 기술적 메타데이터
  • 3번의 답은 1과 2를 조합해 Dall-E 프롬프트 형식으로 출력하게 함

아래와 같은 출력을 받았습니다.

답변과 프롬프트

  1. 영어 번역: A devastated village in 1940s England during World War II, with partially destroyed buildings, a tiny figure of a sniper visible at the top of a distant church, the sniper's rifle barrel pointing towards the viewer, the image out of focus
  2. 400미터 거리에서 선명한 흑백 사진을 찍기 위한 카메라 옵션 추천:
  • Lens: 1000mm f/11 super-telephoto lens
  • Camera: Leica IIIf, renowned for its reliability in harsh conditions
  • Flash: Not used due to extreme distance
  • Exposure: Slightly underexposed for better contrast
  • ISO: 100 for fine grain
  • Shutter speed: 1/1000 second to minimize motion blur
  • Aperture: f/11 for increased depth of field
  • Focal Length: 1000mm
  1. 1번과 2번을 조합한 형식에 맞춘 영문 설명:

A devastated village in 1940s England during World War II, partially destroyed buildings scattered across the landscape, a tiny figure of a sniper visible at the top of a distant church with the rifle barrel pointing towards the viewer, the image slightly out of focus, smoke rising from bombed structures, debris littering the war-torn streets, overcast sky casting a gloomy atmosphere, Leica IIIf with 1000mm f/11 super-telephoto lens, slightly underexposed, black and white film, ISO 100, 1/1000 second shutter speed, f/11 aperture, 1000mm focal length, extreme distance shot from approximately 400 meters away, wide panoramic composition, image shows slight loss of focus due to the challenging shooting conditions and distance

3번 부분을 Dall-E에 줘봤습니다. 이런 결과가 나오는군요.

A devastated village in 1940s England during World War II, Dall-E
저격수에 대해서는 완전히 틀렸지만 품질이 좋다. 이미지 모서리를 라운드 처리하는 디테일까지!

이미지에 감탄을 하다가 갑자기 궁금해지더군요. 이 이미지에 대해서 AI는 어떤 생각을 가지고 있을지가 말이죠. 그래서 ChatGPT에 이미지를 업로드하고 물어봤습니다. 이 이미지를 AI가 만들었을 가능성에 대해서 어떻게 생각하는지도 물어봤는데, 궁금하신 분들은 아래 내용을 확인해보세요.

Q&A with ChatGPT-4o

나 - 이 이미지가 어떤 장면을 묘사하는 것 같은지 알려주겠어?

ChatGPT - 이 이미지는 전쟁 중 폐허가 된 도시의 장면을 묘사하는 것으로 보입니다. 한 저격수가 조준경을 통해 폐허가 된 건물들 사이를 바라보고 있으며, 배경에는 폭격이나 전투로 인해 파괴된 건물들과 연기가 피어오르고 있습니다. 전쟁의 참상을 그대로 보여주는 장면으로, 파괴와 황폐함이 두드러지게 나타나 있습니다. 이미지 속 차량과 건물 스타일을 보면, 제2차 세계대전과 관련된 장면일 가능성이 큽니다.

나 - 그렇군 어떤 사진기로 찍은 것 같아?

ChatGPT - 이 이미지는 흑백 사진으로, 전쟁 중의 장면을 담고 있어 오래된 필름 카메라로 촬영된 것 같습니다. 구체적으로 어떤 카메라로 찍혔는지 단정하기는 어렵지만, 제2차 세계대전 시기에 자주 사용된 카메라들로는 라이카(Leica), 콘탁스(Contax), 또는 롤라이플렉스(Rolleiflex) 같은 필름 카메라가 있습니다. 이러한 카메라들은 당시 전쟁 사진기자들 사이에서 널리 사용되었습니다.

해상도와 이미지의 선명도를 고려할 때, 전문가용 카메라가 사용되었을 가능성이 높습니다. 이 카메라들은 고해상도의 렌즈와 필름을 사용하여 전쟁의 생생한 모습을 포착할 수 있었습니다.

나 - 이 사진을 보고 사진이 어떤 technical metadata를 사용했을지 짐작할 수 있겠어?

ChatGPT - 이 사진의 technical metadata를 추정하기 위해 몇 가지 요소를 고려해 볼 수 있습니다.

카메라와 렌즈

  1. 카메라 유형: 1940년대에 많이 사용된 카메라는 라이카(Leica), 콘탁스(Contax), 롤라이플렉스(Rolleiflex) 등입니다. 이 카메라들은 35mm 필름이나 중형 필름을 사용했습니다.
  2. 렌즈: 표준 50mm 렌즈나 75-80mm 중형 렌즈가 주로 사용되었습니다. 저격수를 근접 촬영한 점을 고려하면, 비교적 긴 초점 거리의 렌즈가 사용되었을 가능성도 있습니다.

노출 및 필름

  1. ISO 감도: 당시 사용된 필름은 대개 ISO 100 또는 ISO 400 정도의 감도를 가졌습니다. 전쟁 중의 장면을 포착하기 위해 ISO 400 필름이 사용되었을 가능성이 높습니다.
  2. 셔터 속도: 전쟁의 긴박한 상황을 포착하기 위해 비교적 빠른 셔터 속도(예: 1/250초 이상)가 사용되었을 가능성이 있습니다.
  3. 조리개 값: 깊은 심도를 확보하기 위해 f/8 또는 f/11 정도의 조리개 값이 사용되었을 수 있습니다.

기타 요소

  1. 필름 유형: 흑백 필름이 사용되었으며, 당시에는 코닥 트라이-X(Kodak Tri-X) 또는 일포드 HP5(Ilford HP5)와 같은 흑백 필름이 널리 사용되었습니다.
  2. 현상 과정: 사진은 아날로그 필름으로 촬영되었으며, 현상과 인화 과정에서 대비와 밝기를 조절했을 가능성이 큽니다.

이 모든 요소들은 전쟁 사진의 특성상 상황에 따라 다를 수 있지만, 위의 정보는 일반적인 기술적 메타데이터를 추정하는 데 도움이 될 것입니다.

나 - 이 이미지가 AI에 의해 만들어졌을 가능성이 있을까? 있다면 얼마나 될까?

ChatGPT - 이미지가 AI에 의해 생성되었는지 여부를 판단하기 위해서는 몇 가지 요소를 고려해야 합니다:

세부사항 분석

  1. 디테일 수준: AI 생성 이미지는 종종 인간이 실수할 수 있는 세부 사항에서 완벽하게 일관성을 유지하지 못할 수 있습니다. 예를 들어, 건물의 구조, 저격수의 자세, 장비의 세부사항 등이 비현실적일 수 있습니다.
  2. 해상도와 품질: AI 생성 이미지는 때때로 특정 부분이 흐릿하거나 비현실적으로 보일 수 있습니다. 특히 이미지의 경계 부분이나 복잡한 텍스처가 부자연스러울 수 있습니다.
  3. 조명과 그림자: AI 생성 이미지는 조명과 그림자의 일관성에서 문제가 발생할 수 있습니다. 모든 물체의 조명과 그림자가 현실적으로 맞아떨어지는지 확인해야 합니다.

메타데이터 확인

  • 파일 메타데이터: 이미지 파일의 메타데이터를 확인하면 촬영 장비나 생성 방식에 대한 단서를 얻을 수 있습니다. 예를 들어, 촬영된 카메라 모델이나 소프트웨어 정보를 포함할 수 있습니다.

전문가 의견

  • 전문가 검토: 이미징 전문가나 AI 이미지 분석 도구를 통해 이미지가 AI에 의해 생성되었는지 여부를 보다 정확하게 판단할 수 있습니다.

위의 이미지를 직접 분석할 수 없는 상황에서는 AI에 의해 생성되었을 가능성을 추정하기 어렵습니다. 그러나 전쟁 중 촬영된 역사적인 흑백 사진이라면, 대부분의 경우 실제 카메라로 촬영된 것입니다. AI가 생성한 이미지가 그러한 역사적 사진처럼 보이도록 만들 수도 있지만, 그러한 이미지는 여전히 일부 세부 사항에서 비현실적일 가능성이 높습니다.

따라서, AI에 의해 만들어졌을 가능성은 존재하지만, 그 가능성은 낮다고 판단됩니다. 실제로 AI 생성 이미지를 식별하려면 더 정교한 분석 도구와 전문가의 검토가 필요합니다.

마치며

DALL-E를 사용해 사실적인 이미지를 만드는 것은 처음에는 어려울 수 있지만, 몇 가지 중요한 원칙과 팁을 알게 되면 훨씬 수월해집니다. 제가 겪은 시행착오들이 여러분들에게도 도움이 되었기를 바랍니다.

첫째, '사실적인 이미지'라는 표현을 피하고 대신 기술 메타데이터를 사용해보세요. 카메라, 렌즈, ISO, 셔터 속도와 같은 요소를 상세히 명시하면 DALL-E가 보다 사진 같고 현실감 있는 이미지를 만들어냅니다.

둘째, DALL-E에 입력할 프롬프트엔 불분명한 표현이나 추상적인 용어는 피하고, 구체적이면서 간결한 서술 메타데이터와 기술적인 세부사항을 사용하는 것이 좋습니다.

마지막, 계속 실험해보세요. 다양한 프롬프트와 설정을 시도하면서 최적의 조합을 찾아내는 과정이 필요합니다. 실패를 통해 얻은 경험이 다음 성공의 토대가 됩니다.

이제 여러분도 DALL-E를 활용해 정말 현실같은 이미지를 생성해 보시기 바랍니다. 중요한 것은 자신만의 노하우를 쌓아가는 것입니다. 생성형 AI로 더 많은 멋진 작품을 만들어 나가시길 응원합니다. 여러분은 어떤 이미지를 만들어보고 싶으신가요?

pay homage to the movie 'Lost in Translation', 2003
pay homage to the movie 'Lost in Translation', 2003