DEMON은 ACEStep 1.5를 기반으로 한 실시간 오디오 생성 엔진으로, StreamDiffusion 아키텍처를 활용해 음악적 노이즈를 오케스트레이션합니다. VAE 증류와 TensorRT 최적화를 통해 악기처럼 실시간 리믹싱이 가능한 수준의 빠른 반응성을 제공합니다.
핵심 포인트
ACEStep 1.5 기반의 실시간 오디오 생성 엔진
StreamDiffusion 및 링버퍼 아키텍처를 통한 저지연 구현
VAE 증류 및 TensorRT를 활용한 높은 처리량 확보
실시간 리믹싱, LoRA 핫스왑, 파라미터 스케줄링 지원
AI 자동 생성 콘텐츠
본 콘텐츠는 r/StableDiffusion의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
저는 Ryan입니다, 여러분을 만나게 되어 반갑습니다. 저는 한동안 오디오 반응형 Comfy 노드, Comfy 내 ACEStep 지원 확장 등 오픈 소스 생성형 오디오(generative audio) 관련 작업에 기여해 왔습니다. 제가 몇 달 동안 작업해 온 새로운 오디오 프로젝트를 방금 오픈 소스로 공개했으며, 여러분께 소개해 드리고 싶습니다.
이것은 무엇인가
DEMON: Diffusion Engine for Musical Orchestrated Noise
이것은 이미지를 대신해 오디오를 사용하고, Stable Diffusion 대신 ACEStep 1.5를 사용하는 StreamDiffusion입니다. 악기처럼 연주하고 거의 실시간(near real-time)으로 리믹스할 수 있을 만큼 반응성이 뛰어납니다.
또한 ACEStep VAE를 증류(distilled)했습니다. 약간의 품질을 희생하는 대신 더 빠릅니다.
또한 ACEStep 1.5 및 1.5XL을 위해 약 200개의 lora/dora를 학습시켰습니다. 이것들은 5개 또는 10개 정도씩 묶음으로 출시할 예정입니다.
이것을 만든 이유
두 가지 이유가 있습니다:
음악을 만드는 것은 본질적으로 실시간(real-time) 활동입니다.
그냥 해보고 싶었습니다 (Why not bro)
몇 가지 수치
여기서 언급하는 수치는 30/4090으로 별도 표기되지 않는 한 5090 기준입니다. 또한, 수치는 TensorRT를 사용한 것이지만, eager/torch compile 백엔드도 지원됩니다.
처리량 (Throughput):
5090에서 60초 길이 음악 기준 초당 12.3회 생성; 4090에서 8.9/s, 3090에서 4.2/s
이는 최대 240초까지 검증되었으며, VRAM은 이에 따라 확장됩니다.
반응성 (Responsiveness): 처리량과 파라미터 업데이트 지연 시간(latency) 모두의 함수이며, 이는 링 버퍼(ringbuffer) 깊이로 조정 가능합니다:
깊이 (Depth)
틱 (Tick, ms)
완료 간격 (Completion interval, ms)
초당 생성 (Gens/sec)
프롬프트 첫 효과 (Prompt first-effect, ms)
1
14.0
112.0
8.9
112 ms
2
24.3
97.2
10.3
219 ms
4
42.8
88.5
11.3
471 ms
8
81.1
81.1
12.3
649 ms
단계별(per-step)로 참조되는 파라미터를 사용할 경우, 첫 효과(first-effect)는 모든 깊이에서 약 1틱입니다.
몇 가지 런타임 기능
곡의 실시간 리믹싱 (Real-time remixing)
노이즈 제거 (Denoise), 구조 (Structure), 음색 강도 (Timbre strength) 조절
참조 트랙 교체 (Reference track swapping)
프롬프트 블렌딩 (Prompt blending), 커브를 이용한 파라미터 스케줄링 (Parameter scheduling with curves)
LoRA 핫스왑 (Hotswapping), 런타임 강도 조절
잠재 채널 (Latent channel) (연구 프리뷰)
피드백 (Feedback)
Melformer를 이용한 보컬 스템 커팅/붙여넣기 (s/o u/BuffMcBigHuge)
XL 지원 (덜 안정적이며, VRAM 압박 문제 등을 해결 중)
가사/보컬 기능 곧 추가 예정 (SOON)
스펙트럼 품질 연구 곧 추가 예정 (SOON)
기타 사항들
기술적 구현 방식 (How it is)
StreamDiffusion 링버퍼 (Ringbuffer) 아키텍처
VAEWindowing
혼합 정밀도 TensorRT (Mixed precision TensorRT)
W8A8 양자화 (Quantization) (XL용)
StreamDiffusion에서 영감을 받은 유사도 필터 (Similarity filter)
링버퍼 배출 (Ringbuffer drain)을 우회하는 다양한 방법들
몇 가지 제한 사항 (Some limitations)
ACEStep이 (정확하게) 노래의 '시작'과 '끝'을 결정합니다. 이 시스템은 노래 전체를 리믹싱하거나 루프를 지속적으로 리믹싱하도록 최적화되어 있습니다. 루프는 잘 작동하지만, 이것이 순수하고 연속적인 음악은 아닙니다. 이 부분에서는 Autogression이 우위에 있습니다.
그 외 많은 사항들이 있으며, 더 상세한 목록은 프로젝트 페이지를 통해 전체 기술 문서를 참조해 주세요.
제한 사항을 발견하시면 저희에게 알려주세요. 가능하다면 해결할 수 있도록 노력하겠습니다.
데모 앱을 제작하고 지원, 디버깅, 테스트를 도와준 Daydream 팀에게 큰 감사를 전합니다.