실시간 미리 보기를 활성화하면 로컬 이미지 생성이 느려지는 이유는 무엇인가요?

에바 왕 는 기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

중간 잠재 표현을 디노이징이 아직 진행 중인 동안 디코딩하고 변환하고 복사한 뒤 표시해야 하므로, 라이브 미리 보기를 사용하면 로컬 이미지 생성이 느려집니다.

확산 모델은 일반적으로 최종 이미지가 준비될 때까지 중간 상태를 압축된 잠재 표현으로 유지합니다. 라이브 미리 보기는 샘플링 단계 사이에 추가 작업을 삽입합니다. 디코더가 픽셀을 재구성하고, 런타임이 장치 작업을 동기화하며, 서버가 프레임을 인코딩해 전송할 수 있습니다. 이 과정을 높은 해상도에서 반복하면 생성 자체와 연산 리소스 및 메모리 대역폭을 두고 경쟁하게 됩니다.

미리 보기는 최종 디코딩 한 번을 여러 번의 중간 디코딩으로 바꿉니다

미리 보기가 없으면 샘플러가 여러 단계에 걸쳐 잠재 텐서를 업데이트한 다음, 완료 직전에 이미지 디코더를 한 번 호출합니다. 매 단계마다 미리 보기를 표시하면 근사 디코더나 전체 디코더가 반복적으로 호출되어 최종 디노이징 경로를 개선하지 않는 작업이 배가됩니다.

미리 보기 디코딩 오버헤드에 관한 문서에 따르면 전체 VAE 미리 보기는 전체 소요 시간을 크게 늘릴 수 있으며, 작은 미리 보기 디코더를 사용하면 비용이 줄어들지만 완전히 사라지지는 않습니다. 이 비교는 디코더 선택과 미리 보기 빈도가 가장 중요한 변수임을 보여 줍니다.

디코딩된 특성 맵과 출력 프레임의 크기가 해상도에 따라 증가하므로 픽셀 수가 많을수록 속도 저하가 커집니다. 512픽셀에서 5단계마다 미리 보기를 표시하는 것은 충분히 저렴할 수 있지만, 매 단계마다 전체 해상도로 디코딩하면 짧고 가속된 샘플링 실행에서 미리 보기가 대부분의 시간을 차지할 수 있습니다.

장치 동기화와 메모리 트래픽이 샘플링 루프를 방해합니다

가속기 커널은 일반적으로 비동기 방식으로 실행되므로 런타임이 작업을 효율적으로 대기열에 추가할 수 있습니다. 미리 보기를 호스트로 읽어 오면 동기화가 강제로 발생하고, 이미지 버퍼가 할당되며, 공유 메모리나 PCIe 경로를 통해 바이트가 이동하고, 샘플링이 계속되기 전에 변환이 완료될 때까지 기다려야 할 수 있습니다.

잠재 확산 아키텍처는 잠재 확산이 압축된 공간에서 비용이 많이 드는 이미지 합성을 수행하고 오토인코더를 사용해 픽셀과 잠재 표현 사이를 변환하는 이유를 설명합니다. 각 미리 보기는 최종 출력만 생성하는 경로보다 더 이르고 더 자주 이 경계를 넘습니다.

통합 메모리 시스템은 명시적인 PCIe 복사를 피하지만 여전히 대역폭과 캐시 용량을 두고 경쟁합니다. 전용 GPU는 대신 전송 및 동기화 비용을 부담할 수 있습니다. 따라서 눈에 보이는 미리 보기 프레임에는 신경망 디코딩과 시스템 오버헤드가 모두 반영됩니다.

디코딩을 최적화한 뒤에는 디스플레이 인코딩이 병목이 될 수 있습니다

로컬 웹 인터페이스는 미리 보기 크기를 조정하고, 색상을 변환하고, JPEG 또는 PNG로 인코딩하고, 직렬화한 다음 소켓을 통해 전송하고, 브라우저에 디코딩 및 렌더링을 요청할 수 있습니다. 수십 번 반복되는 작은 작업은 빠른 소형 디코더보다 더 오래 걸릴 수 있습니다.

실시간 확산 파이프라인에 관한 연구는 배치 처리와 파이프라인 최적화를 통해 스트리밍 확산 지연 시간을 줄이며, 실시간 출력이 단일 모델 커널이 아니라 전체 실행 경로에 달려 있음을 보여 줍니다. 미리 보기 전송은 디노이저의 이론적 단계 수에 포함되지 않습니다.

속도가 느려진 모든 실행의 원인이 미리 보기 렌더링이라고 가정하는 것이 문제의 출발점입니다. 시드, 워밍업, 열 제한, 모델 오프로딩 또는 다른 GPU 작업에 따라 소요 시간이 달라질 수 있습니다. 미리 보기를 비활성화한 동일한 요청과 비교하고 다른 모든 설정은 그대로 유지하세요.

-15% OFF

단계와 빈도별로 미리 보기 비용을 측정하세요

동일한 프롬프트, 시드, 모델, 샘플러, 단계 수, 해상도 및 배치 크기를 사용해 미리 보기를 끈 상태, 10단계마다, 5단계마다, 매 단계마다 실행하세요. 전체 시간, 디노이징 시간, 디코딩 시간, 이미지 인코딩, 전송 바이트, 브라우저 렌더링 속도, 최대 메모리 및 장치 사용률을 기록하세요.

메모리 및 연산 측정값을 리소스 병목 테스트와 연관 지은 다음, 작은 디코더와 전체 VAE를 사용해 다시 실행하세요. 모든 실행에서 최종 이미지 디코딩을 활성화하여 비교 결과가 추가된 중간 미리 보기 비용만 측정하도록 하세요.

유용한 피드백을 제공하면서도 가장 느린 미리 보기 빈도를 선택하세요. 디코딩이 지배적이면 더 작은 미리 보기 디코더나 해상도를 사용하고, 인코딩과 전송이 지배적이면 프레임을 묶어 전송하세요. 디노이징 시간이 변한다면 동기화와 메모리 압박을 조사하세요.

기술 및 AI 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.