이전의 포스트에 이어 이번에는 모델 선정의 결과와 선정 배경에 대해 정리했다.
먼저 모델 선정 결과는 'Flux.schnell'이다.(dev 비용 문제와 용량 문제로 인해 불가능하다.)
먼저 선정에 있어 아래의 내용들을 먼저 각 모델별로 테스트해 봤다.
- 구체적인 Prompt를 구성한 뒤 생성
- Prompt 변경에 따른 생성 차이 비교
- Prompt에 대한 이해도 및 세부적인 지시 사항 이행여부 판단
- 연속생성 및 리소스
- 네개의 이미지를 순차적으로 생성하기에 그 시간 또한 중요하다
- 리소스가 얼마나 사용되는지는 리소스가 제한적인 상황에서 가장 중요한 부분이라고 할 수 있다.
Prompt의 경우 추후에도 신경 써야 하는 부분이기 때문에 프로젝트 생성을 위해 기본적인 구조 구성을 감안하여 진행하였다.
Prompt
Prompt의 경우 이미지 생성에 있어 아래와 같은 구성으로 작성하였다.
- 이미지 설명 - 기획안의 내용에 따라 변칙적임
- 이미지 속 객체의 숫자 및 행동 묘사
- 이미지의 상황에 대한 묘사
- 이미지 양식 - 정적이 예정
- 생성될 이미지들의 공통적인 양식
- 양식에 있어서도 두가지로 나눴음
- 그림체, 색체
- 백그라운드 구성
- 긍정/부정으로 나누어 꼭 포함해야 하는 것 절대 포함시키면 안 되는 것을 추가
생성결과 비교
위의 언급한 구성으로 아래와 같은 Prompt를 구성했다.
format_positive_style = """
graphic illustration, vibrant, 2d minimalistic, black-and-white, outline
"""
format_positive_background = """
Cinematic, black-and-white only, focus on highlighted area only.
"""
format_negative_style = """
photoshoot, hyper-realism, hyper-detail
"""
format_positive_string = f"""
style must be {format_positive_style}
and background should be in {format_positive_background}
"""
format_negative_string = f"""
must not include any of {format_negative_style}
"""
test_prompt = "two males and one female talk about economic issues like they are reporting a news" + format_positive_string + format_negative_string
추가적으로 Stable Diffusion XL의 경우 입력할 수 있는 max token이 77이기 때문에 Prompt가 조금 다르다.
그리고 format_positive_string과 format_negative_string 추가하는 형식으로 Prompt 변화에 따른 생성 이미지 변화도 확인해 봤다.
먼저 Stable Diffusion XL의 생성결과다.
보는 바와 같이 긍정과 부정의 구분선이 뚜렷하지는 않으나 간단한 Prompt 수정으로 생각보다 구체적인 결과가 나오고 있는 것을 확인할 수 있다.
다음으로 Flux1.Schnell이다.
SDXL과 다르게 Prompt 변화에 따라 생성결과가 천차만별인걸 확인할 수 있다.
추가적으로 Flux의 경우 두번째 사진에서 세번쩨 사진에으로 넘어가는 과정을 확인해본 결과 Style과 Background를 지정하니 생성 결과에 각 부분을 대응하여 생성했다는 것을 확인 할 수 있었다.
총 6가지의 사진 중에서 가장 마음에 드는 걸 선택하라면 SDXL의 두 번째 사진이다. 정말 콘티 사진과 같이 나왔고 SDXL이 GPU 리소스도 상대적으로 많이 적게 사용하여 SDXL을 파인튜닝 하는 것으로 넘어가려 했으나 두 가지 문제로 인하여 Flux로 결정하게 됐다.
- Flux가 상대적으로 많이 GPU 리소스를 사용하나 그렇다고 해서 현재 리소스가 부족한 상황은 아니다.(3.8G 차이로)
- SDXL의 강점은 현실적인 이미지 구현에 있다. 하지만 기획안의 콘티 생성에 있어 출연자가 정해지지 않은 상황이기 때문에 현실적이기보다는 행동을 명확히 보여줘야 한다.
- 그런 행동을 명확히 보여주기 위해서는 무엇보다 Token 제약이 크게 작용했다. 기본적인 이미지 양식은 선정하였으나 추가적이 이미지 상황 설명에 있어 77이라는 재한선은 생성에 많은 제약을 준다고 판단했다.
마지막으로 Fine tuning의 경우에도 Flux도 충분히 할 수 있기 때문에 SDXL은 후순위로 두게 됐다. 물론 만약 파인튜닝 과정에서 문제가 생긴다면은 바로 돌아설 예정이고 Flux에서 SDXL로의 전환이 크게 어렵지 않다는 판단도 크게 작용했다.
'AI > Projects' 카테고리의 다른 글
Project Joing: StoryBoard Generator(콘티 생성기) - 이미지 생성 모델 선정 1 (0) | 2024.11.19 |
---|---|
Project Joing: 콘티 생성기 - Intro (1) | 2024.11.18 |
Project Joing: 데이터 수집 - Proposal (1) | 2024.11.17 |
Projects Joing: Profile Evaluation 로직변경 - FastAPI 적용 (0) | 2024.11.16 |
Project Joing: Profile Evaluation 로직변경 - Youtube Data API (3) | 2024.11.15 |