[메타프롬프트] 시간차 연속 이미지 생성 프롬프트 공개
아래 글이 좋으시면
X (트위터) 팔로우 좋아요 부탁드립니다.
오늘 500 넘고 싶어요 ^^
x.com (<- 클릭)
달리3가 지피티에 처음 도입됬을 때 저는 하루에 몇 백장이 넘는 그림을 그리면서 프롬프트를 실험했습니다.
그 과정에서 알게된 몇 가지를 제 메타프롬프트 책에 소개드렸습니다.
책에서 소개드리지 못했던 몇 가지 재미있는 프롬프트를 소개드리고자 합니다.
생성형 인공지능이 처음 등장했을 때 부터 사용자들은 일관된 이미지 생성을 위한 방법에 대해서 여러가지로 탐구하였습니다.
이제는 미드저니의 캐릭터 레퍼런스나 스타일 레퍼런스를 이용하여 일관된 이미지 생성이 다소 쉬워졌습니다.
반면에 달리3가 한 참 인기를 끌 때에는 프롬프트 반영 비율이 높다는 이유로 사람들이 좋아했지만 요즘은 미드저니보다는 인기가 덜한 것 같습니다.
달리의 이미지 생성 능력은 그 품질보다는 상상력을 훈련하는 도구로서의 가치로 인정받아야 할 것입니다.
달리를 위한 프롬프트를 어떻게 써야 할까요?
재미있는 예를 하나 소개드리겠습니다.
아래 곰돌이가 햄버거를 먹는 연속적인 장면을 보세요.
약간 곰돌이의 외모나 콜라, 바구니, 배경이 약간 바뀌고 있지만 캐릭터가 햄버거를 먹는 연속적인 동작을 그려주고 있습니다.
저는 이 이미지를 한번에 생성하였습니다.
시간차 연속 이미지 생성 프롬프트라고 이름을 지어보았습니다.
지피티에게는 다음과 같이 프롬프트를 넣어보세요
곰돌이가 햄버거를 먹는 장면을 10초 간격으로 5장 생성하라.
아래는 지피티스에 넣어서 사용해보시라고 프롬프트 전체를 공유드립니다.
여러가지로 실험해 보시고 더 좋은 방법이 있으시면 저도 알려주시면 감사하겠습니다.
프롬프트 분석:>
### 프롬프트 분석:
- **주요 목표/목적:**
주어진 주제에 따라 시간이 지나면서 변화하는 일련의 이미지를 생성하기 위해 DALL·E 3에 대한 프롬프트를 작성하는 것.
- **입력 데이터 유형:**
텍스트
- **입력 데이터 형식:**
JSON 형식의 텍스트
- **명령 복잡성:**
중간. 명확한 단계와 반복 피드백 루프가 포함됨.
- **제약 조건/요구 사항:**
XML 구조 사용, 생각 태그, 피드백 루프 및 시스템 프롬프트를 활용할 것.
- **원하는 출력 형식:**
DALL·E 3가 생성한 이미지 시퀀스, 각 이미지에 대한 씨드 값 포함.
### 프롬프트 엔지니어링 설명:
**Step 1: 중심 주제 또는 주제 확인**
- **목적:** 전체 이미지 시퀀스의 일관성을 유지하기 위해 중심 주제를 설정.
- **사용자 프롬프트와의 관계:** 첫 번째 이미지 시퀀스의 출발점이 되는 주제를 설정.
- **구현 제안:** 주제를 명확히 정의하고, 모든 이미지는 이 주제를 중심으로 발전하도록 함.
- **고려 사항:** 주제가 너무 복잡하면 일관성 유지가 어려울 수 있음.
**Step 2: 초기 이미지에 포함될 주요 요소, 캐릭터 또는 객체 결정**
- **목적:** 첫 번째 이미지의 주요 구성 요소를 정의하여 명확한 시작점 제공.
- **사용자 프롬프트와의 관계:** 첫 번째 이미지의 구체적인 내용을 설정.
- **구현 제안:** 주요 요소와 배경을 자세히 설명하여 DALL·E 3가 명확한 이미지를 생성하도록 함.
- **고려 사항:** 요소가 너무 많으면 첫 번째 이미지가 혼잡해질 수 있음.
**Step 3: 첫 번째 이미지에 대한 상세하고 설명적인 프롬프트 작성**
- **목적:** 첫 번째 이미지 생성 시 구체적인 가이드라인 제공.
- **사용자 프롬프트와의 관계:** 이미지 크기, 스타일, 색상 및 구성을 포함한 첫 번째 프롬프트 작성.
- **구현 제안:** 이미지의 크기(1024x1024), 스타일(예: 부드러운 파스텔 톤), 색상, 구성 요소를 상세히 설명.
- **고려 사항:** 설명이 지나치게 길거나 복잡하면 DALL·E 3가 정확한 이미지를 생성하기 어려울 수 있음.
**Step 4: 첫 번째 이미지 분석 및 변화 가능한 요소 식별**
- **목적:** 다음 이미지에서 발전할 요소들을 파악.
- **사용자 프롬프트와의 관계:** 첫 번째 이미지의 발전 방향을 설정.
- **구현 제안:** 첫 번째 이미지의 주요 특징을 분석하고, 시간이 지남에 따라 변화할 수 있는 요소(예: 태양의 위치, 캐릭터의 수)를 결정.
- **고려 사항:** 변화가 너무 급격하면 일관성을 잃을 수 있음.
**Step 5: 시간 증가분 결정**
- **목적:** 각 이미지 간의 시간 간격 설정.
- **사용자 프롬프트와의 관계:** 이미지 시퀀스의 시간 흐름을 정의.
- **구현 제안:** 1시간, 1일, 1년 등 적절한 시간 간격 설정.
- **고려 사항:** 시간 증가분이 너무 작으면 이미지의 차이가 미미할 수 있음.
**Step 6: 이전 이미지 기반 프롬프트 작성 및 변화 반영**
- **목적:** 이전 이미지의 발전 요소를 반영하여 새로운 프롬프트 작성.
- **사용자 프롬프트와의 관계:** 이전 이미지의 요소를 바탕으로 다음 이미지를 생성.
- **구현 제안:** 이전 이미지에서 변화된 부분을 강조하여 설명.
- **고려 사항:** 변화 요소가 일관성 있게 유지되어야 함.
**Step 7: 생성된 이미지 검토 및 개선 사항 확인**
- **목적:** 생성된 이미지의 품질을 검토하고, 필요한 경우 수정.
- **사용자 프롬프트와의 관계:** 사용자 피드백을 반영하여 이미지 품질 개선.
- **구현 제안:** 이미지에서 불명확한 부분이나 개선이 필요한 부분을 찾아 수정.
- **고려 사항:** 사용자 피드백이 명확하고 구체적이어야 함.
**Step 8: 피드백 반영 후 프롬프트 수정 및 재생성**
- **목적:** 피드백을 반영하여 이미지의 품질을 높임.
- **사용자 프롬프트와의 관계:** 사용자의 구체적인 요구사항을 반영하여 프롬프트 수정.
- **구현 제안:** 사용자 피드백을 바탕으로 프롬프트를 수정하고, 필요한 경우 씨드 값을 조정하여 새로운 이미지를 생성.
- **고려 사항:** 피드백을 너무 많이 반영하면 원래의 이미지 시퀀스와의 일관성이 떨어질 수 있음.
이와 같은 과정을 통해 시간이 지남에 따라 발전하는 일련의 이미지를 생성할 수 있습니다.
<metaprompt> <system>
You are an AI prompt engineer tasked with creating a series of prompts for DALL·E 3 to generate a sequence of images that evolve over time based on a given theme. Use the principles of prompt engineering, including XML structure, thinking tags, feedback loops, and system prompts, to guide the image generation process.
</system> <prompt1>
<thinking1>Identify the central theme or subject for the time-evolving image sequence.</thinking1>
<thinking2>Determine the key elements, characters, or objects that will be present in the initial image.</thinking2>
<thinking3>Craft a detailed and descriptive prompt for the first image, including the desired size, style, colors, and composition.</thinking3>
<user>
{
"size": "1024x1024",
"prompts": ["A serene beach scene at sunrise with a lone seagull perched on a weathered wooden post, gentle waves lapping at the shore, and soft pastel hues in the sky."]
}
</user> <assistant>
[First AI-generated image]
Seed value: [Seed1]
</assistant> </prompt1> <prompt2>
<thinking1>Analyze the first image and identify elements that can evolve or change over time.</thinking1>
<thinking2>Determine the time increment for the next image (e.g., 1 hour, 1 day, 1 year).</thinking2>
<thinking3>Create a prompt that builds upon the previous image, incorporating the desired changes and evolution.</thinking3>
<user>
{
"size": "1024x1024",
"prompts": ["The beach scene 1 hour later, with the sun higher in the sky, more seagulls gathering on the shore, and a few beachgoers in the distance setting up umbrellas."],
"seeds": [Seed1]
}
</user> <assistant>
[Second AI-generated image]
Seed value: [Seed2]
</assistant> </prompt2> <feedback1>
<thinking1>Review the generated images and identify areas for improvement or refinement.</thinking1>
<thinking2>Provide specific feedback and suggestions for enhancing the images.</thinking2>
<user>
The second image looks great, but the beachgoers in the distance are a bit too blurry. Can we make them slightly more defined while still keeping them in the background?
</user> <assistant>
{
"size": "1024x1024",
"prompts": ["The beach scene 1 hour later, with the sun higher in the sky, more seagulls gathering on the shore, and a few beachgoers in the distance setting up umbrellas. The beachgoers are slightly more defined while still remaining in the background."],
"seeds": [Seed2]
}
[Refined second AI-generated image]
Seed value: [Seed2_refined]
</assistant> </feedback1> <promptN> <!-- Repeat the process for multiple time increments, generating prompts and images based on the previous output and incorporating feedback as needed. --> </promptN> <result> <assistant>
[Final sequence of AI-generated images showcasing the time-evolving beach scene]
Seed values: [Seed1, Seed2_refined, ..., SeedN]
</assistant> </result>
</metaprompt>