본문 바로가기
AI · 인공지능/AI 뉴스

Xbox에서 Stable Diffusion을 동작시킨 용자가 등장

by 두우우부 2023. 6. 19.
반응형

 

Stable Diffusion은 문자나 이미지를 바탕으로 새로운 이미지를 생성해 주는 AI이지만, 실행 환경으로서 Python이 필요합니다. 그런 가운데, ONNX 모델 및 ONNX Runtime의 활용 및  C++에서의 구현으로 Python 의존을 없애고, Xbox상에서 스테이블 디퓨전을 동작시키는 데 성공한 용자가 등장했습니다.

Stable Diffusion running on Xbox Series X and S for the first time - YouTube



왼쪽 가장자리의 큰 아이콘이 이번에 만들어진 "Unpaint"라는 앱. 현재 스토어에는 존재하지 않으며, 설치하려면 사용자가 직접 패키지에 서명하는 작업이 필요합니다. Xbox Series X 와 Xbox Series S 의 어느 쪽이든 동작 가능하다는 것.



시작하면 이런 식으로. 가상 키보드를 사용하여 한 문자씩 프롬프트를 입력합니다.



프롬프트 입력 후 약 20초 만에 한 장의 이미지가 생성되었습니다.



그 후에도 20~30초마다 1장의 페이스로 이미지가 생성되고 있습니다.



Xbox에서 Stable Diffusion을 실행하는 데 큰 역할을 한 것이 ONNX 프로젝트입니다. AI 모델을 작동시키려면 실행 환경이나 프레임워크로 특정 환경을 요구하는 경우가 많습니다만, 모델이 단일 환경에서만 동작하는 경우, 복수의 모델이 다른 환경을 요구하면 모델을 결합하는 것이 어렵습니다. ONNX는 이러한 문제를 해결하기 위해 Microsoft가 주도하여 진행되고 있는 프로젝트로, 모든 모델을 모든 플랫폼상에서 동작시켜 상호 운용성을 높이는 것을 목적으로 하고 있습니다.



ONNX 프로젝트의 하나로 ONNX Runtime이 있으며, 이것은 ONNX 형식의 모델을 NVIDIA의 CUDA, AMD의 ROCm, Apple의 CoreML, Qualcomm의 QNN, Microsoft의 DirectML 등 모든 플랫폼에서 동작시킬 수 있는 툴입니다. OS도 Windows・Linux・macOS・Android・iOS등 뭐든지 됩니다. 심지어 WebAssembly에도 대응하고 있습니다.

이번에는 ONNX 모델로 변환한 Stable Diffusion의 모델을 ONNX Runtime을 이용하여 C++로 동작시키는 것으로 Xbox에서의 동작을 실현하고 있습니다. 이미지 생성 프로세스 전체를 하나의 프로세스로 수행하기 때문에 간단하고 소규모로 설치가 가능합니다. 모델의 저장에 2.5GB를 이용하는 것을 제외하면 30MB 정도의 용량 밖에 이용하고 않는다고 합니다.

또한 이번 Xbox 앱 작성자의 GitHub에 Stable Diffusion을 C++로 호출하는 코드가 공개되어 있습니다. 문자나 이미지로부터 생성하는 「txt2img」나 「img2img」는 물론, 이미지의 일부를 수정하는 「inpainting」이나 안전성을 확인하는 「safety checker」의 기능도 이용 가능합니다. C++ 또는 C의 함수를 임포트 할 수 있는 프로젝트라면 어떤 프로젝트에서도 Stable Diffusion을 이용 가능하게 되기 때문에, 게임 개발 등 실시간 CG 애플리케이션에의 통합을 생각하고 있는 사람들에게 매우 유용한 툴입니다.

https://github.com/axodox/axodox-machinelearning

GitHub - axodox/axodox-machinelearning: This repository contains a C++ ONNX implementation of StableDiffusion.

This repository contains a C++ ONNX implementation of StableDiffusion. - GitHub - axodox/axodox-machinelearning: This repository contains a C++ ONNX implementation of StableDiffusion.

github.com

반응형