프로젝트 배경
팀 구성원
영등포 새싹 캠퍼스의 3주년 생일축하를 기념하는 영스데이에 초대됐다!
목표
- 새싹이의 생일을 축하하기 위해 AI로 작곡&작사&캐릭터를 만들자!
로고
새싹을 통해서 수강생들의 미래가 피어나기를 바라는 마음으로 제작
‘3주년 생일축하 파티를 위한 작곡&작사&캐릭터 생성’ 이라는 주제로 발표를 준비하며
발표 주제에 맞게 새싹과 음악을 조합했습니다.
프로젝트 순서
[기획]
이미지 : 다양한 생성 모델을 통해 새싹 캐릭터 제작
영상 : 이미지 + 음악 = 영상 모델에 직접 만든 노래 삽입, deforum을 사용해서 영상 제작
음악 : 생성 모델을 통해 가사 생성, 멜로디 모델, 음악 생성 모델을 통해 음악 제작
[순서]
데이터 정제 및 사용 : 웹 크롤링을 통해 후기 데이터 수집, 토큰화 & 불용어 처리
가사 생성 : 정제된 데이터를 통해서 KoGPT2를 사용해서 가사를 생성
이미지 제작 : 오리지널 새싹 캐릭터 제작, 영상에 사용할 수 있는 다양한 이미지 제작 (Stable diffusion)
음악 제작 : 생성된 가사와 생일 축하 분위기에 맞는 음악 생성 (SunoAI)
영상 제작 : 캐릭터와 음악을 합성해서 입모양을 움직일 수 있는 영상 제작
사용 데이터
웹 크롤링
새싹 홈페이지 소개글과 영등포 교육과정 후기 크롤링
워드 클라우드 제작
Komoran을 사용해서 토큰화 불용어 제거, 빈도수 계산 후 정렬
가사 생성
파인튜닝한 KoGPT2를 통해 주요 문장 생성 인컨텍스트 러닝을 통해 가사 생성
해당 가사를 학습시켜 적절한 멜로디를 만들기 위해 프롬프트를 삽입
음악 만들기
사운드 모델부터 음악 모델까지 다양한 모델들을 시도해보았습니다.
- Music Gen Model
prompts : 원하는 노래 분위기
Duration : 50 (노래 길이)
temp : 높으면 더 다양한 출력 생성
top_k : 모델이 고려하는 가능한 토큰 수 제한
top_p : 토큰 분의 누적 분포를 기반으로 토큰을 선택
cfg_ocef : 화음 및 코드 진행 설정에 영향을 미치는 값
two_step_cfg : True시 두 단계 구성, False시 하나의 단계
[결과 출력]
- 중국풍 노래가 나옴 (Happy birth Prompts 무시) omzTest_0.wav
- 약간의 클래식과 cozy style 노래 출력 (조금 더 상세하게 분위기를 입력함) omzTest_2.wav
- 그나마 가장 나은 생일 축하 분위기의 멜로디 생성 [omzTest_0 (1).wav](https://prod-files-secure.s3.us-west-2.amazonaws.com/718522e0-c17e-4411-a280-e3c020bf1b7c/e7cfb3e9-fd3e-4be8-a1da-d8e82629fc95/omzTest_0_(1)
Riffusion Model 간단하게 Prompts로 멜로디를 생성하는 모델
[사용방법] prompts : 원하는 노래 분위기 negative_prompt : 지양하는 것 duration : 노래 시간
[결과 출력] riffusion.wav
가사까지 만들어지긴 하지만 너무 짧았습니다.
그리고 가사를 마음대로 지정할 수 없기 때문에 아쉽고 한국어 지원이 불가능했습니다.
Suno AI (bark model) [사용방법] 원하는 곡 스타일을 먼저 생각하고 스타일에 맞게 개사하기 (Chat GPT 사용)
Beta 버전 discord 입장 후 /chrip 명령어 실행 Txt에 가사 입력 Style of Music에 원하는 스타일 입력
두 개의 샘플 중에서 마음에 드는 곡이 있으면 Continue 클릭해서 곡을 이어나갑니다.
수 많은 시도
Suno-AI 초반 시도
[결과]
result.mp4 스타일 1. Kpop 신나는 노래
result2.mp4 스타일 2. Kpop 약간 팝송 노래
캐릭터 생성
다양한 모델들을 사용하며 여러가지 새싹 캐릭터들을 생성하였습니다.
원본 이미지에서 캐릭터까지
- 이미지 소스
- 해당 캐릭터의 특징을 추려내서 정리
새싹이의 특징
- 새싹과 3주년이라는 파릇파릇하고 어린 느낌의 키워드를 통해, 아직 무한한 성장 가능성이 있는 어린이 캐릭터를 선정
- 새싹이의 외형적인 검은 눈, 밝은 분위기, 초록색 머리, SeSAC 상직적 마크 활용
SeSAC 마크
- 추려낸 특징을 img2img 및 프롬프트를 이용해 의인화할 새싹이의 후보군을 선정
- stable diffusion 사용
- 어린 이미지를 학습한 모델 cuteyukimix_X.safetensors 사용
사용한 프롬프트
1
masterpiece, best quality, high resolution illustration, high quality, 8k, cute, 1girl, green hair, shirt, upper body, pov, portrait, looking at viewer, front view, from front, black eyes, white background, white shirt, neck ribbon, toddler, pad, legs, two shoes, black skirt, black shoes, two legs, standing, long hair, white socks, spread arms, spread
사용한 네거티브 프롬프트
1
(worst quality, low quality:1.3), (nsfw), look back, hands, odd eye, monocfrome, gray scale, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, jpeg artifacts, signature, watermark, username, liquid body, liquid tongue, disfigured, malformed, mutated, anatomical nonsense, text font ui, long neck, blurred, lowers, bad proportions, bad shadow, uncoordinated body, unnatural body, fused hand, disappearing arms, disappearing thigh, disappearing calf, disappearing legs, fused ears, bad ears, poorly drawn ears, extra ears, liquid ears, heavy ears, missing ears, fused animal ears, bad animal ears, poorly drawn animal ears, extra animal ears, liquid animal ears, heavy animal ears, missing animal ears, one hand with more than 5 fingers, one hand with less than 5 fingers, one hand with more than 5 digit, one hand with less than 5 digit, colorful tongue, black tongue, 3D, 3D game, 3D game scene, 3D character, malformed feet, extra feet, bad feet, poorly drawn feet, fused feet, missing feet, extra shoes, bad shoes, poorly drawn shoes, bad gloves, poorly drawn gloves, fused gloves, bad hairs, poorly drawn hairs, fused hairs, ugly, bad face, fused face, poorly drawn face, cloned face, big face, long face, bad eyes, fused eyes, poorly drawn eyes, extra eyes, malformed limbs, gross proportions, short arm, missing arms, missing thighs, missing calf, missing legs, extra arms, extra thighs, more than 2 thighs, extra calf, fused calf, extra legs, bad knee, extra knee, more than 2 legs, bad tails, bad mouth, fused mouth, poorly drawn mouth, bad tongue, tongue within mouth, too long tongue, big mouth, cracked mouth, dirty face, dirty teeth, yellow teeth, thick lips, bad collarbone, fused collarbone, missing collarbone, liquid collarbone, QR code, bar code, pubic hair, mosaic, excrement, blurry, background, (hair ornament:1.4, headgear:1.4, hat:1.4, hair accessory:1.4, headpiece:1.4)
- 선정된 후보 캐릭터의 배경 제거 및 스케일링
- Waifu2x
- remove.bg
- 악세사리 추가, 글씨 추가
- clip studio paint 이용해서 문구와 악세사리를 그려넣음
다양한 화풍의 이미지로 변경
- 화풍 별 Prompt 정보
3D 캐릭터 정보
1
masterpiece, best quality, high resolution illustration, high quality, 8k, cute, 1girl, green hair, shirt, upper body, pov, portrait, looking at viewer, smile, front view, from front, black eyes, white background, white shirt, neck ribbon, toddler, leaf, pad,masterpiece, best quality, high resolution illustration, high quality, 8k, cute, 1girl, green hair, shirt, upper body, pov, portrait, looking at viewer, smile, front view, from front, black eyes, white background, white shirt, toddler, birthday
1
2
3
4
5
6
7
(worst quality, low quality:1.3), (nsfw), look back, hands, odd eye, monocfrome, gray scale, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, jpeg artifacts, signature, watermark, username, liquid body, liquid tongue, disfigured, malformed, mutated, anatomical nonsense, text font ui, long neck, blurred, lowers, bad proportions, bad shadow, uncoordinated body, unnatural body, fused hand, disappearing arms, disappearing thigh, disappearing calf, disappearing legs, fused ears, bad ears, poorly drawn ears, extra ears, liquid ears, heavy ears, missing ears, fused animal ears, bad animal ears, poorly drawn animal ears, extra animal ears, liquid animal ears, heavy animal ears, missing animal ears, one hand with more than 5 fingers, one hand with less than 5 fingers, one hand with more than 5 digit, one hand with less than 5 digit, colorful tongue, black tongue, 3D, 3D game, 3D game scene, 3D character, malformed feet, extra feet, bad feet, poorly drawn feet, fused feet, missing feet, extra shoes, bad shoes, poorly drawn shoes, bad gloves, poorly drawn gloves, fused gloves, bad hairs, poorly drawn hairs, fused hairs, ugly, bad face, fused face, poorly drawn face, cloned face, big face, long face, bad eyes, fused eyes, poorly drawn eyes, extra eyes, malformed limbs, gross proportions, short arm, missing arms, missing thighs, missing calf, missing legs, extra arms, extra thighs, more than 2 thighs, extra calf, fused calf, extra legs, bad knee, extra knee, more than 2 legs, bad tails, bad mouth, fused mouth, poorly drawn mouth, bad tongue, tongue within mouth, too long tongue, big mouth, cracked mouth, dirty face, dirty teeth, yellow teeth, thick lips, bad collarbone, fused collarbone, missing collarbone, liquid collarbone, QR code, bar code, pubic hair, mosaic, excrement, blurry, background
Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 10, Seed: 1178811602, Size: 512x512, Model hash: 18ed2b6c48, Model: xxmix9realistic_v40, Denoising strength: 0.55
Time taken: 4.77s
Torch active/reserved: 2635/3142 MiB, Sys VRAM: 3560/14972 MiB (23.78%)
지브리 정보
1
ghibli style, masterpiece, best quality, high resolution illustration, high quality, 8k, cute, 1girl, green hair, shirt, upper body, pov, portrait, looking at viewer, smile, front view, from front, black eyes, white background, white shirt, neck ribbon, toddler, leaf, pad,masterpiece, best quality, high resolution illustration, high quality, 8k, cute, 1girl, green hair, shirt, upper body, pov, portrait, looking at viewer, smile, front view, from front, black eyes, white background, white shirt, toddler, birthday lora:ghibli_style_offset:1
지브리 스타일
세일러문 스타일
수채화 스타일
3D 스타일
Prompt 로만 변경한 화풍
똑같이 세일러문 화풍으로 바꿔보려고 했으나 먹히지 않았습니다.
style이라고 입력해도 세일러복을 입는 캐릭터만 출력됐습니다.
Input image가 있어서 상반신 (풀샷)이 절대 나오지 않았습니다.
오리지널 캐릭터(의인화x) 변경
피카소 버전 새싹이…
[문제점]
값을 아무리 조정해도 알 수 없는 결과가 나왔습니다.
CFG Scale 높고 Denoising strength 낮으면 그냥 찌그러지거나 색깔만 변경됩니다.
CFG Scale 낮고 Denoising strength 높으면 아예 다른 그림이 나옵니다.
둘 다 낮으면 아무런 변화도 일어나지 않습니다.(원본 유지)
둘 다 높으면 피카소 그림체의 아예 다른 그림이 나옵니다.
배경으로 사용할 이미지 생성
전신 캐릭터 생성
영상 제작
새싹 캐릭터와 작곡한 음악을 합치는 영상을 제작하였습니다.
Stable diffusion deforum
[KakaoTalk_20231024105106645 (1).mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/718522e0-c17e-4411-a280-e3c020bf1b7c/74def0de-55b8-4137-add4-85538a5a4635/KakaoTalk_20231024_105106645(1).mp4)
SadTalker, D-ID, HeyGen으로 입모양 움직이기
프로젝트 느낀점
어려웠던 점
작사
처음에 멜론 차트를 기반으로 가사 트렌드를 수집하고 분석해서 문장을 생성했으나
생일축하가 아닌 이별 노래 가사만 생성
생일이 제목으로 들어간 가사를 수집하여 가사 생성을 하려고 했으나,
생성되는 가사가 매끄럽게 이어지지 않아 GPT를 이용하여
인컨텍스트러닝을 하는 방식으로 수정
작곡
[멜로디 작곡 모델]
- 가사까지 만들어지긴 하지만 너무 짧음
- 가사를 마음대로 지정할 수 없음
- 한국어를 지원하는 모델이 거의 없음
- 상세하게 명령어를 입력해도 원하는 멜로디 생성 불가
- 학습된 멜로디 외에는 잘 나오지 않아서
- 중국풍 멜로디만 출력
[음악 생성 모델]
- 작곡된 멜로디를 매끄럽게 연결하는 과정에 많은 시간 소요
- 부르는 가수 자체가 달라지거나, 음악의 플롯이 이전과 너무 맞지 않거나, 부르는 음이 어색한 경우가 많음
- 뒤에가서 급하게 부르다가, 부를 시간 없으니까 안부름
- 처음 생성 모델은 무조건 랜덤이라 잘 나올때까지 시도
- 한국어 발음이 뭉개지는 부분이 많음
- 계정 당 횟수 제한이 있어서 곡을 많이 만들 수 없음
이미지
- 값을 아무리 조정해도 알 수 없는 결과 출력
- CFG Scale 높고 Denoising strength 낮으면 찌그러지거나 색깔만 변경
- CFG Scale 낮고 Denoising strength 높으면 아예 다른 그림 출력
- 둘 다 낮으면 아무것도 안나옴(원본 유지)
- 둘 다 높으면 상관 없는 그림 출력
영상
- 노래와 음성 혼합시 립싱크 인식 성능 저하
- 특징 추출의 어려움
- 알맞지 않은 학습 데이터
- 최적화되지 않은 알고리즘
- 알맞지 않은 데이터로 학습한 모델
춤추는 새싹이
자꾸 끊기는 docker ping
모션 감지 장비 500만원 이상
스모크 챌린지 영상에 새싹 캐릭터를 씌워보려 했으나 기술력 부족
KakaoTalk_20231024_143634238.mp4
KakaoTalk_20231024_143644668.mp4
PPT 및 결과 영상
결과 영상:
Behind 영상:
노래 영상: