전편:
Cursor를 이용한 음악 생성 프로그램 (왕초보 비개발자도 가능할 수준)
요새 보면 mubert 같은 ai 서비스를 이용해서 prompt를 이용한 음원을 만드는 것을 쉽게 볼 수 있다. 하지만 웹 기반으로 만들기 편한 반면 비용은 사실 좀 신경이 쓰이긴 한다. Lofi Youtube를 운영하
blog.drumgoon.net
해당 프로젝트
GitHub - niceguy61/audiocraft_music_video_maker: audiocraft_music_video_maker
audiocraft_music_video_maker. Contribute to niceguy61/audiocraft_music_video_maker development by creating an account on GitHub.
github.com
동영상을 더한 음원 + 비디오 메이커 Web App
이번엔 web app과 동영상을 추가하여 더욱 그럴싸한 음악 생성 프로그램을 만들어본다.
오늘도 여지없이 Cursor 장전!
일단 비디오부터 하자
이렇게 하니 ffmpeg를 연계하는 방법이 나온다.
기본적으로 내 lo-fi youtube에서 사용하던 영상이다. 기존에도 adobe premier에서 할때도 정방향 4초, 역방향 4초를 한 뒤 무한 반복을 하면 자연스럽게 영상이 재생되었기 때문에 동일한 방법을 사용하기로 했다.
추가 라이브러리가 필요하다고 해서 설치를 하고 돌려보니 version conflict에러가 발생한다. 이 경우 터미널 창의 오류메세지를 클릭하고 Chat으로 넘겨서 문제를 해결한다.
머신러닝 튜닝을 어떻게 할지 이해하기 위해서 프롬프트 외에 설정할 변수값을 잡아내는 것도 중요하다.
음악구조를 정확히 하기 위한 구성정보도 넣어본다. (근데 이건 대부분 제대로 동작하지 않는다.)
AI로 작업할땐 내가 아는 선에서 최대한 프롬프트를 정교하게 넣어주는 것이 중요하다.
내친김에 웹 앱도 만들어보자.
근데 비디오만 만들어주는 것을 하면 사실 큰 의미가 없으니 웹 앱에서 제어를 하면 어떨까? 하는 생각이 들어 다음 프롬프트를 실행해본다.
귀신같이 gradio를 찾아준다.
이건 나도 처음봤는데 허깅페이스에서 만든 python용 front framework인듯 하다.
Gradio
Build & Share Delightful Machine Learning Apps
www.gradio.app
이렇게 만들면 딱 프롬프트만 입력하게 나온다.
하지만 프롬프트만 연결해서 뽑아내기엔 아무래도 음원이 좋지 못하다.
추가적인 파라미터를 자동요소를 제외하고 별도로 커스텀할 수 있게 한다.
그리고 따라 오다보면 분명 설치가 제대로 되지 않아 에러가 나는 부분이 있을텐데 계속 에러 메세지를 Chat에 넘기면서 문제를 해결해야 한다.
여기서 개발적인 스킬이 있다면 오류 메세지를 보고 "아! 이게 빠져 있었구나!" 라고 알 수 있겠지만 사실 그게 쉽진 않을 수 있으므로 우직하게 넘겨보면 된다.
나중에 다 하고 나서 코드를 분석해서 해석해줘! 라던지 하는 스크립트로 볼 수 있기 때문이다.
"만들고 나서 다 되었으니 이제 그만해야지!"
라고 하지 말고 한번 정도는 정확하게 리딩해보고 가면 다른 구현할때 도움이 될 수 있다.
아래에 넣어둔 프로젝트에 있는 requirements.txt가 정상적으로 작동하지 않을 수도 있다. 계속 오류를 잡고 있지만 처음 세팅할땐 쉽지 않아서 번거롭더라도 계속 주의해서 변경해본다. 환경에 따라 내 컴에서만 안되는 마음아픈 일이 일어날 수 있는게 환경설정 문제다.
python web_app.py를 실행해본다.
기동되었다.
저 사이에 있는 public URL을 누르면 외부에서 접근이 가능해진다. 대신 모델에서 음원 생성 수행은 로컬 PC에서 수행한다.
장르를 고르고 일단 음악을 생성해보자.
대략 30초를 생성하는데 2 ~ 3분의 시간이 걸린다. (rtx3060기준)
생성하면 아래와 같이 나온다.
처음에 만들어보면 만족할 만한 음원은 아닐것이다.
그래서 고급설정을 만져야 한다.
위의 값을 참조하여 세팅을 열심히 해본다. 될때까지!
이렇게 음악 생성까지 완료되는 것을 확인했다.
여기서 알아야 할 한가지는 나는 python을 잘하지 않는다.
다만 이전에 다른 개발 언어를 사용할 수 있었기 때문에 프로그램이 어떤 방식으로 흘러갈지, 재료는 무엇이 필요한지를 아는 것이다.
그래서 어떤게 필요할 거 같은지를 미리 파악하면 프롬프팅을 통해서 좀 더 빠르게 코딩을 만들고 오류를 해결해 나갈 수 있다는 것을 보여드리고 싶었다.
긴글 읽어주셔서 감사합니다!
'Programming' 카테고리의 다른 글
Cursor를 이용한 음악 생성 프로그램 (왕초보 비개발자도 가능할 수준) (0) | 2024.11.26 |
---|---|
Python를 이용해서 lofi youtube를 자동으로 생성해보자. (1) (1) | 2024.11.13 |