Files
animily_music/docs/PIPELINE_V2.md
javamon c3f8d6b288 feat: v2 파이프라인 — 매일 2곡 다양한 장르 BGM 자동 생성/업로드
- daily_precache.py: Claude Code CLI 프리캐시 (날짜/계절/기념일 테마)
- daily_scheduler.py: ACE-Step 음악 → FLUX 이미지 → 영상 렌더 → 큐
- upload_scheduled.py: auto_shorts 동일 큐 방식 업로드
- PRECACHE_GUIDE_MUSIC.md: 19개 장르, 감성 제목, 재생목록 자유 생성
- generate_image.py: --lowvram 제거, GPU VRAM 확인 추가
- config.py: @animily-music 토큰 경로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 19:24:50 +09:00

4.5 KiB

Animily Music v2 파이프라인

매일 2곡 다양한 장르 BGM 자동 생성 → @animily-music 유튜브 업로드 작성: 2026-05-25


크론 스케줄

시간 스크립트 설명
00:30 daily_scheduler.py 프리캐시 → 음악 생성 → 이미지 생성 → 영상 렌더 → 큐 저장
매시간 upload_scheduled.py upload_queue.json에서 현재 시간 건 업로드 (07:00, 15:00)

파이프라인 흐름

1. Claude Code CLI → precache/{날짜}.json (2곡 기획)
   - 날짜/계절/기념일/요일 기반 장르+테마 결정
   - PRECACHE_GUIDE_MUSIC.md 참조

2. ACE-Step (localhost:8001) → WAV 음악 생성
   - 3~5분, batch_size=1, thinking=True
   - 완료 후 ACE-Step 프로세스 kill (GPU 해제)

3. FLUX via ComfyUI (localhost:8189) → PNG 이미지 생성
   - 1344x768 (16:9), 신카이 마코토 스타일
   - TTS systemctl stop+disable 후 시작
   - 완료 후 ComfyUI kill

4. ffmpeg → MP4 영상 렌더링
   - 이미지 + Ken Burns + 워터마크(ANIMILY) + 음악

5. upload_queue.json → 큐 저장
   - track_001: upload_hour=7
   - track_002: upload_hour=15

6. GPU Cleanup
   - ACE-Step/ComfyUI/TTS 전부 kill
   - drop_caches, TTS service enable+start
   - auto_shorts 03:00 전 완료 보장

파일 구조

/home/javamon/project/animily_music/
├── daily_precache.py          # Claude Code CLI 프리캐시 생성
├── daily_scheduler.py         # 메인 오케스트레이터
├── upload_scheduled.py        # 큐 기반 업로드 (매시간 크론)
├── PRECACHE_GUIDE_MUSIC.md    # Claude Code CLI 참조 가이드
├── config.py                  # 설정
├── generate_music.py          # ACE-Step API (레거시, v1용)
├── generate_image.py          # FLUX ComfyUI (레거시, v1용)
├── render_video.py            # ffmpeg 렌더 (레거시, v1용)
├── scheduler.py               # v1 스케줄러 (레거시)
├── upload_youtube.py          # v1 업로드 (레거시)
├── token_animily_music.pickle # @animily-music YouTube OAuth 토큰
├── precache/                  # 프리캐시 JSON
├── upload_queue.json          # 업로드 큐
├── outputs/                   # 임시 생성물
├── logs/                      # 로그
└── prompts/                   # 프롬프트 (레거시)

YouTube 채널

항목
채널명 애니밀리 뮤직 Animily Music
URL https://www.youtube.com/@animily-music
ID UCtT5K3-D9gAid7lT7XmrfvA
토큰 token_animily_music.pickle

재생목록 (자동 생성)

신나는 음악, 감성 음악, 잔잔한 음악, 집중 음악, 수면 음악, 카페 음악, 운동 음악, 드라이브 음악


장르 (19개)

로파이, 재즈, 클래식, EDM, 앰비언트, 어쿠스틱, 팝, 록, R&B, 펑크, 보사노바, 레게, 시네마틱, 블루스, 포크, 컨트리, 신스웨이브, 디스코, 가스펠


GPU 리소스 관리

  • ACE-Step: ~11GB (음악 생성 중만)
  • FLUX: ~33GB (이미지 생성 중만)
  • 동시 사용 금지 — 순차 실행 (ACE-Step → kill → FLUX → kill)
  • TTS: sudo systemctl stop/disable qwen-tts.service (FLUX 전)
  • 완료 후: sudo systemctl enable/start qwen-tts.service

출처 표기 정책

사용자가 BGM 사용 시 설명란에 출처 필수:

🎵 Music by 애니밀리 뮤직 (Animily Music)
🔗 https://www.youtube.com/@animily-music

ACE-Step API

항목
URL http://localhost:8001
시작 cd /home/javamon/ACE-Step-1.5 && source venv/bin/activate && python -m uvicorn acestep.api_server:app --host 0.0.0.0 --port 8001 --workers 1
Kill fuser -k 8001/tcp && pkill -9 -f acestep.api_server
제출 POST /release_task
폴링 POST /query_result
다운로드 GET /v1/audio?path=...
헬스 GET /health

ComfyUI GPU 안정성 (2026-05-25 패치)

근본 원인

  1. TTS가 systemd Restart=always 서비스 → kill해도 10초 후 재시작
  2. MemAvailable ≠ GPU VRAM → nvidia-smi로 확인 필요
  3. 스케줄러 중복 실행 → GPU 프로세스 충돌

해결

  • TTS: systemctl stop + disable (Restart=always 우회)
  • GPU VRAM: nvidia-smi --query-compute-apps 로 프로세스 확인
  • 메모리 해제: drop_caches + 180초 대기 + 40GB 미만 시 포기
  • ComfyUI 시작 후 OOM 크래시 감지 (pgrep 생존 확인)

마지막 업데이트: 2026-05-25