[00:00]
안녕하세요, 오늘은 제가 어떤 워크플로우를 사용해서
[00:02]
AI 파이프라인을 거의 6천 달러에
[00:04]
팔 수 있었는지 그 과정을 공유하려고 합니다.
[00:08]
거의
[00:09]
6천 달러에 마케팅 회사에
[00:12]
특정 파이프라인을 팔았는데
[00:15]
콘텐츠 제작용 파이프라인이었습니다. 오늘은
[00:18]
제가 어떻게 했는지, 그리고 여러분도
[00:20]
어떻게 할 수 있는지 보여드리고 싶습니다.
[00:24]
먼저 AI 파이프라인이 무엇인지
[00:26]
예시를 보여드리겠습니다.
[00:28]
파이썬 메인을 실행해보면
[00:31]
이것은 AI 비디오 생성기
[00:34]
파이프라인입니다. 좀 더 확대해보죠.
[00:36]
비디오 ID를 입력할 수 있습니다.
[00:40]
기본적으로 무엇이든 될 수 있고
[00:42]
현재 뉴스에 나오는 내용들도 가능합니다.
[00:47]
예를 들어 '6월 1일
[00:49]
우크라이나의 러시아 드론 공격
[00:51]
설명하기'와 같은 것을 입력할 수 있습니다.
[00:54]
이제 일어날 일은
[00:56]
주제를 리서치하는 것입니다.
[00:58]
백그라운드에서 설정된
[01:00]
시스템이 검색 엔진을 통해
[01:02]
모든 정보를 찾아줍니다.
[01:05]
다음으로는 스크립트를 작성하고
[01:06]
비디오, 오디오, 음악 등
[01:08]
모든 것을 생성합니다.
[01:11]
결과물을 보여드리겠습니다.
[01:12]
빨리감기를 해보면
[01:14]
보이스오버가 생성되고
[01:16]
스크립트가 생성되고
[01:18]
이미지와 비디오 생성이
[01:20]
시작되는 것을 볼 수 있습니다.
[01:22]
이제 최종 결과를 보여드리고
[01:23]
AI 파이프라인 워크플로우를
[01:25]
함께 만들어보겠습니다.
[01:28]
최종 결과가 나왔습니다.
[01:30]
이제 재생해보겠습니다.
[01:32]
몇 초만 재생해서
[01:34]
어떤 느낌인지 보여드리겠습니다.
[01:35]
2025년 6월 1일,
[01:38]
우크라이나는 러시아 깊숙한 곳에
[01:40]
대담한 드론 공격을 감행했습니다.
[01:42]
'스파이더 웹 작전'이라고 불리는 이 작전은
[01:45]
거의 2년간의 계획 끝에
[01:48]
117대의 드론이 투입되어
[01:51]
수십억 달러 가치의 폭격기를 포함한
[01:54]
41대의 러시아 항공기를
[01:56]
파괴하거나 손상시켰습니다.
[01:58]
이는 현대 전쟁의 전환점이 되었으며
[02:01]
혁신과 전략이 어떻게 기대를 뒤엎고
[02:04]
중요한 평화 회담 직전에 전장을 바꿀 수 있는지 보여주었습니다.
[02:10]
네, 정말
[02:11]
흥미롭습니다. 왜냐하면
[02:13]
우리가 해야 할 일은 단지
[02:15]
ID를 입력하는 것뿐이었거든요.
[02:19]
오늘은 말씀드린 대로
[02:20]
이런 워크플로우나
[02:22]
비슷한 다른 워크플로우들을
[02:24]
어떻게 만들고 좋은 AI
[02:26]
파이프라인을 설정하는지
[02:28]
알려드리겠습니다. 운이 좋다면
[02:30]
여러분의 파이프라인에 관심 있는
[02:33]
고객을 찾을 수도 있을 겁니다.
[02:35]
이제 본격적으로 시작해서
[02:36]
어떻게 설정하는지 보여드리겠습니다.
[02:39]
방금 본 것보다는 좀 더
[02:41]
간단한 버전으로 해보려고 합니다.
[02:43]
클라우드 코드를 사용할 건데
[02:45]
시간을 많이 절약해주지만
[02:47]
물론 수동으로 설정하거나
[02:48]
직접 코드를 작성하거나
[02:50]
ChatGPT를 사용할 수도 있습니다. 하지만 저는
[02:53]
클라우드 코드나 다른 AI 에이전트를 선호합니다.
[02:55]
커서(Cursor)도 사용할 수 있고
[02:57]
좋은 사전 준비 작업을 한다면
[03:00]
그것이 우리가 하고 싶은 첫 번째 작업이 될 것입니다.
[03:02]
이미지를 비디오로, 그리고 음악까지 포함하는
[03:05]
간단한 파이프라인을 만들어서
[03:08]
어떻게 동작하는지 보여드리기 위해
[03:10]
문서를 수집하는 것부터 시작해보겠습니다.
[03:12]
이건 제가 항상 하는 작업입니다.
[03:14]
여기에 docs 폴더가 있고
[03:16]
가장 먼저 할 일은
[03:19]
정보를 수집하는 것입니다.
[03:21]
fal ai video.markdown 파일을 만들겠습니다.
[03:24]
또한 fal AI image라는 파일도 필요합니다.
[03:28]
비디오 생성을 위해 이미지가 필요하기 때문입니다.
[03:31]
그리고 음악도 필요할 것 같습니다.
[03:34]
그래서 suno.ai.markdown이라는 API를 사용하겠습니다.
[03:36]
이미 이 마크다운 파일에 키를 설정해 두었습니다.
[03:39]
하지만 여러분은 그렇게 하지 않는 것이 좋을 것 같습니다.
[03:41]
그냥 제가 하는 방식입니다.
[03:45]
자, 이제 문서를 수집해보겠습니다.
[03:49]
fal AI로 가서
[03:52]
cling video standard 2.1 image to video라는
[03:54]
비디오 모델을 선택하겠습니다.
[03:56]
이미지를 비디오로 변환하려면
[03:59]
이미지 생성기도 필요합니다.
[04:02]
API로 가서 필요한 정보를 수집하겠습니다.
[04:05]
여기서 Python을 선택하고
[04:07]
문서에서 필요한 모든 정보는 이것뿐입니다.
[04:11]
이 문서를 복사해서
[04:13]
여기에 붙여넣겠습니다.
[04:15]
fal AI video, 이것만 있으면 됩니다.
[04:18]
이미지도 필요합니다.
[04:21]
이미지 모델을 찾아보겠습니다.
[04:22]
text to image에서
[04:25]
Google의 Imagen 4를 선택하겠습니다.
[04:27]
똑같이 API에서 문서를 가져와서
[04:30]
Claude Code가 어떻게 조합할지 알아낼 것입니다.
[04:33]
이것을 복사해서 fal AI image에 붙여넣겠습니다.
[04:35]
좋습니다. 이제 시작이 되었네요.
[04:39]
이미지와 비디오에 필요한 문서가 있습니다.
[04:41]
배경음악 문서도 필요합니다.
[04:44]
Suno AI 개발자 API로 가겠습니다.
[04:48]
이건 스폰서가 아니라 제가 사용하는 것입니다.
[04:51]
문서를 클릭하고 똑같이 하겠습니다.
[04:53]
API 문서를 가져오겠습니다.
[04:55]
완료되었습니다. 붙여넣겠습니다.
[04:58]
이제 끝입니다. 이게 전부 필요한 것 같습니다.
[05:01]
OpenAI도 필요할 수 있습니다.
[05:03]
어떤 모델이든 상관없지만
[05:05]
OpenAI markdown를 사용하겠습니다.
[05:07]
AI를 사용해서 프롬프트를 작성해야 할 수도 있기 때문입니다.
[05:09]
개발자 퀵스타트로 가서
[05:10]
OpenAI에서 이 페이지를 복사하겠습니다.
[05:14]
Python을 선택하고 여기에 붙여넣겠습니다.
[05:15]
이제 Claude Code를 시작할 준비가 된 것 같습니다.
[05:18]
필요한 모든 문서가 준비되었습니다.
[05:20]
Claude Code에서
[05:22]
보통 docs 폴더의 파일들을 읽는 것부터 시작합니다.
[05:24]
Claude가 정보를 파악할 수 있도록 말이죠.
[05:26]
제 키가 보이지 않았으면 좋겠는데
[05:28]
그래도 크게 상관없습니다.
[05:32]
어차피 취소할 예정이거든요.
[05:34]
그리고 나서
[05:37]
AI를 사용해서 프롬프트를 작성해야 할 수도 있습니다.
[05:41]
개발자 퀵스타트를 복사해서
[05:44]
OpenAI에서 이 페이지를 가져왔습니다.
[05:46]
Python을 선택하고 여기에 붙여넣었습니다.
[05:50]
이제 Claude Code를 시작할 준비가 되었습니다.
[05:51]
필요한 모든 문서를 준비했습니다.
[05:54]
Claude Code에서는
[05:56]
보통 docs 폴더의 파일들을 읽는 것부터 시작합니다.
[05:58]
Claude가 정보를 파악할 수 있도록
[06:01]
최신 정보를 제공하는 것입니다.
[06:05]
제 키가 보이지 않았으면 좋겠지만
[06:08]
크게 상관없습니다.
[06:09]
어차피 취소할 예정이거든요.
[06:10]
그리고 이후에
[06:13]
그 다음에, 우리가 무엇을 하고 싶은지 개괄적으로 설명하겠습니다.
[06:15]
그리고 Claude Code로 단계별 계획을 세워보겠습니다.
[06:17]
그러면 이 계획을 실행해서
[06:19]
우리의 AI 파이프라인을 만들어낼 거예요.
[06:21]
네, API 키가 포함되어 있고,
[06:25]
이제 필요한 모든 문서 정보를 가지고 있습니다.
[06:28]
그래서 이제 긴 프롬프트를 작성해보겠습니다.
[06:30]
우리 파이프라인이 무엇인지
[06:31]
개괄적으로 설명해보겠습니다.
[06:34]
네, 녹화하겠습니다.
[06:37]
저는 타이핑 시간을 줄이기 위해
[06:40]
음성을 텍스트로 변환하는 기능을 주로 사용합니다.
[06:43]
좋습니다.
[06:46]
오늘 우리가 할 프로젝트는
[06:50]
AI 비디오 파이프라인입니다.
[06:52]
작동 방식은 사용자가 비디오 ID를 한 번 입력하면
[06:57]
우리의 역할과 프로젝트는
[06:58]
그 ID를 적절한 배경 음악이 있는
[07:02]
비디오로 변환하는 것입니다.
[07:06]
우리가 이것을 하는 방법은
[07:10]
사용자가 비디오 ID를 입력하면
[07:12]
OpenAI API를 사용해서
[07:14]
그 ID에 맞는 씬들을 작성하는 것입니다.
[07:17]
만약 30초 길이로 만든다면
[07:19]
3개의 씬이 필요합니다.
[07:24]
각각 약 10초씩이죠.
[07:27]
그리고 이 3개의 씬이
[07:29]
비디오가 됩니다.
[07:31]
즉, 모든 비디오는 30초가 됩니다.
[07:33]
이런 씬들을 만들 때
[07:36]
가장 먼저 해야 할 일은
[07:38]
Google Image를 사용해서
[07:40]
Kling 2.1 비디오 생성기를 위한
[07:43]
입력 이미지를 생성하는 것입니다.
[07:44]
첫 번째 씬의 경우
[07:47]
이미지 1을 사용해서 Kling 모델에 넣고
[07:50]
씬을 설명하는 프롬프트와 함께
[07:54]
클립을 생성합니다.
[07:56]
그것이 클립 1, 씬 1이 되는 거죠.
[08:00]
3개의 클립을 모두 가지면
[08:03]
ffmpeg를 사용해서
[08:05]
이 3개의 클립을 올바른 순서로
[08:07]
합칠 겁니다.
[08:10]
마지막으로 Suno를 사용해서
[08:11]
이 클립에 맞는 배경 음악을 만들고
[08:14]
모든 것을 합쳐서
[08:17]
최종 출력 파일이나
[08:20]
MP4 같은 형태로 저장합니다.
[08:23]
이제 단계별 계획을
[08:26]
어떻게 실행할지 만들어보세요.
[08:29]
좋습니다. 꽤 긴 프롬프트였네요.
[08:33]
조금 잘랐을 수도 있지만
[08:35]
이제 시도해보겠습니다.
[08:37]
정말 긴 프롬프트였다는 걸 알 수 있습니다.
[08:39]
Claude Code가 이제
[08:42]
실제로 실행할 수 있는 단계별 계획을
[08:44]
세울 수 있는지 보겠습니다.
[08:47]
여기에서 볼 수 있듯이
[08:50]
좋은 계획이 있고
[08:53]
이것을 실행할 수 있기를 바랍니다.
[08:55]
계획은 다음과 같습니다:
[08:59]
씬 생성, 이미지 생성,
[09:02]
비디오 생성, 조립,
[09:05]
음악 생성, 최종 조립입니다.
[09:08]
네, 완벽하네요.
[09:09]
구현을 시작할 준비가 되었습니다.
[09:13]
네.
[09:17]
시작해봅시다.
[09:19]
하지만 저는 이것을 모듈화하고 싶습니다.
[09:26]
모듈화를 원하는 이유는
[09:28]
각 모듈을 편집하고 디버깅할 수 있기 때문입니다.
[09:32]
그래서 모듈화 구조 접근법을
[09:35]
사용할 수 있는지 보겠습니다.
[09:38]
좋네요. 이제 Claude가
[09:40]
작업을 시작하겠습니다.
[09:41]
처음에는 몇 가지를 승인해야 할 것 같습니다.
[09:43]
이런 것들을 받아들여야겠죠? 그럼 모든 요구사항을 설정해보겠습니다.
[09:45]
다시 묻지 않도록 설정하겠습니다.
[09:47]
좋아요, 업데이트입니다.
[09:50]
지금 우리가 FFmpeg 비디오 병합 기능을 만드는 부분에 있다는 것을 볼 수 있습니다.
[09:52]
배경 음악도 추가하고
[09:53]
파이프라인을 구축한 다음 거의 완료될 예정입니다.
[09:56]
지금까지 약 3-4분 정도 걸린 것 같고,
[09:59]
이것이 얼마나 모듈식인지 볼 수 있습니다.
[10:02]
서비스들이 있습니다.
[10:04]
여기에 이미지 서비스가 있고
[10:07]
비디오 서비스, FFmpeg, OpenAI가 있습니다.
[10:08]
pipeline.py도 있습니다.
[10:10]
이제 아마도 pipeline.py를 import할 main.py를 생성하고 있습니다.
[10:14]
네, 좋아 보입니다.
[10:15]
여기에 비동기 코드도 있네요.
[10:18]
최종 결과가 어떻게 나올지 궁금합니다.
[10:21]
모듈식으로 만드는 것의 장점은
[10:24]
실제로 무슨 일이 일어나는지 쉽게 확인할 수 있다는 점입니다.
[10:26]
이것이 정말 추천하는 방법입니다.
[10:27]
좋아요, 완료되었습니다.
[10:30]
거의 5분 정도 걸린 것 같네요.
[10:32]
나쁘지 않았습니다.
[10:35]
사용할 준비가 되었습니다.
[10:37]
pip install을 실행하겠습니다.
[10:39]
그다음 Python main과 비디오 ID를 실행할 수 있습니다.
[10:41]
음악 없이 실행할 수도 있고
[10:44]
로깅 기능도 있습니다.
[10:46]
꽤 흥미로워 보이고 테스트할 준비가 되었습니다.
[10:49]
지금 의존성을 설치하겠습니다.
[10:51]
실행해보겠습니다.
[10:54]
좋아요, 정리하고
[10:57]
이제 Python main과 비디오 ID를 실행할 수 있다는 것을 볼 수 있습니다.
[10:58]
지금은 verbose가 필요 없지만
[11:00]
처음에는 오류가 있을 경우를 대비해 verbose 로깅을 하는 것이 현명합니다.
[11:02]
Python main.py brutalist city 1980s drone shot verbose를 실행해보겠습니다.
[11:06]
이제 실행하면 여기에 몇 가지 오류가 있다는 것을 볼 수 있습니다.
[11:10]
이것을 살펴보겠습니다.
[11:13]
로그를 가져와서 여기로 돌아가서
[11:15]
이것을 해결해보겠습니다.
[11:17]
시도해보겠습니다. 몇 가지 바이브 코딩을 해보죠.
[11:19]
GPT-4를 사용하겠습니다.
[11:22]
OpenAI 서비스에 GPT-4.1 모델을 사용하겠습니다.
[11:27]
업데이트하겠습니다.
[11:29]
4.1로 변경하고 있습니다.
[11:31]
다시 시도해볼 수 있습니다.
[11:32]
이제 실행해보겠습니다.
[11:35]
프롬프트를 조금 수정했습니다.
[11:37]
P menop artistic brutalist concrete city no windows drone shot이 될 것이고
[11:41]
verbose로 실행하겠습니다.
[11:44]
이제 작동하기를 바랍니다.
[11:47]
장면 설명을 생성하고 있다는 것을 볼 수 있습니다.
[11:50]
좋아 보입니다.
[11:53]
다음 단계는 이미지, 비디오, 음악을 생성하는 것입니다.
[11:56]
이미지 단계입니다.
[11:58]
좋아 보입니다.
[11:59]
첫 번째 이미지가 괜찮게 나오는지 기다려보겠습니다.
[12:01]
마음에 들지 않으면 다시 시작할 수도 있습니다.
[12:04]
네, 마음에 듭니다.
[12:07]
괜찮아 보입니다. 너무 중요하지는 않습니다.
[12:10]
장면 2를 확인해보겠습니다.
[12:11]
네, 꽤 멋지네요.
[12:14]
이것으로 진행하겠습니다. 이제 작동하기를 바랍니다.
[12:17]
다음 단계는 비디오입니다.
[12:19]
그다음 비디오가 시작되는 것을 볼 수 있습니다.
[12:21]
완벽합니다. 그리고 음악과
[12:24]
[12:26]
[12:28]
[12:30]
[12:33]
[12:35]
[12:38]
[12:40]
[12:42]
비디오가 시작되는 것을 볼 수 있습니다. 완벽합니다. 그리고 음악과
[12:44]
[12:47]
모든 것을 하나로 합치는 거예요. 최종 영상이
[12:49]
완성되면 다시 보여드릴게요.
[12:53]
네, 클립 편집이 완료됐네요.
[12:55]
이제 배경 음악을
[12:56]
생성하고
[12:58]
병합이 잘 되어서 하나의
[13:02]
최종 파일로 만들어지기를 바라요.
[13:06]
좋아요, 최종 결과물이 나왔네요.
[13:09]
완벽해요. 괜찮아 보이네요.
[13:11]
재생해서 어떤지 보죠.
[13:14]
마이크를 음소거하고
[13:16]
들어보겠습니다.
[13:31]
[음악]
[13:49]
첫 번째 시도치고는
[13:50]
나쁘지 않죠? 꽤 괜찮은 것 같아요.
[13:53]
정말 멋지다고 생각해요. 이제
[13:55]
파이프라인에 마지막 업데이트를
[13:58]
하나 더 해보고 싶어요.
[14:01]
9:16과 6:9 중에서 선택할 수 있는 기능을 만들고 싶어요.
[14:06]
그걸 업데이트해서 추가해보죠.
[14:08]
6:9와 9:16 중에서
[14:10]
선택할 수 있는 옵션을 구현해봅시다.
[14:13]
문서를 읽고 이걸 수정해주세요.
[14:17]
이게 우리가 업데이트할
[14:18]
마지막 사항이 될 것 같아요.
[14:21]
왜냐하면 이게 정말 매끄럽게 작동했거든요.
[14:23]
한 번 더 테스트해보죠.
[14:26]
9:16 포맷을 테스트해볼게요.
[14:29]
이건 세로 영상용이에요.
[14:31]
이것도 어떻게 작동하는지 보죠.
[14:34]
실행시키고 새로운
[14:36]
구현을 테스트해보겠습니다.
[14:39]
이제 화면 비율 명령어를
[14:41]
마지막에 추가할 수 있어요.
[14:44]
Python으로 아마존 정글 탐험
[14:46]
POV 영상을 초현실적으로, 화면 비율 9:16으로 만들어보죠.
[14:50]
이게 마지막 테스트가 될 거예요.
[14:52]
잘 작동하는 것 같네요.
[14:53]
이제 세로 영상을 만들어보죠.
[14:56]
실행시키고 어떤 결과가
[14:58]
나오는지 보겠습니다.
[15:02]
음악 작업을 하고 있고
[15:04]
잘 될 것 같아요.
[15:08]
영상을 조합하고 있어요.
[15:10]
최종 결과물이 나왔나요? 네, 나왔네요.
[15:12]
확인해보죠. 음소거하겠습니다.
[15:17]
[음악]
[15:25]
[음악]
[15:44]
가장 흥미진진하지는 않을 수도 있지만
[15:46]
꽤 좋았고 매끄럽게
[15:48]
작동했다고 생각해요.
[15:51]
첫 번째 장면, POV, POV, 그리고
[15:54]
마지막 POV까지 나왔어요.
[15:55]
처음에 손도 나왔고요.
[15:57]
네, 정말 멋지네요.
[15:59]
정말 만족스럽고 여러분도
[16:02]
여기서 무언가 배울 수 있는 것들을
[16:05]
얻어가셨기를 바라요.
[16:09]
비록 이걸 구매할 고객을
[16:10]
찾는 게 그렇게 쉽지는 않더라도
[16:13]
이런 다양한 파이프라인을 사용해서
[16:15]
온갖 멋진 것들을 만들 수 있어요.
[16:17]
이게 바로 제가 AI 코딩을 좋아하는 이유예요.
[16:20]
이게 제 취향이에요. 이상한 서로 다른
[16:23]
서비스들을 하나의 멋진 것으로 합치는 거죠.
[16:26]
이게 제가 좋아하는 일이에요.
[16:28]
여러분도 이런 걸 좋아하셨으면 좋겠어요.
[16:30]
이런 미친 파이프라인들을 만들어보세요.
[16:33]
제가 말씀드리지만 이건 여러분이
[16:35]
할 수 있는 일의 빙산의 일각에 불과해요.
[16:37]
이런 다양한 AI 도구들을 사용해서
[16:39]
구축할 수 있는 파이프라인으로
[16:42]
정말 놀라운 일들을 할 수 있어요.
[16:44]
이 분야에 더 깊이 들어가보실 것을
[16:47]
정말 추천드려요.
[16:48]
이 영상이 여러분이 할 수 있는 일에 대한
[16:50]
영감을 주었기를 바라요.
[16:52]
솔직히 앞으로도 더 많이 할 예정이에요.
[16:54]
정말 재미있거든요.
[16:57]
마음에 드셨기를 바라고 곧 다시
[16:58]
만나요. GTC 파리 행사에
[17:00]
참석을 생각하고 계시다면
[17:02]
설명란의 링크를 확인해보세요. 그럼 곧 다시 만나요.