이 저장소에는 원래 TXT2IMG, IMG2IMG 및 입학 기능 및 안전 검사기를 포함하여 안정적인 확산 기반 이미지 합성의 완전히 C ++ 구현이 포함되어 있습니다. 이 솔루션은 Python에 의존하지 않으며 경쟁력있는 성능을 가진 단일 프로세스에서 전체 이미지 생성 프로세스를 실행하여 배포가 몇 가지 실행 파일 및 라이브러리 파일과 모델 가중치로 구성된 배포를 상당히 단순하고 작게 만듭니다. 라이브러리를 사용하면 안정적인 확산을 거의 모든 애플리케이션에 통합 할 수 있습니다. C ++ 또는 C 기능을 가져올 수있는 한, C ++로 실현되는 실시간 그래픽 응용 프로그램 및 게임 개발자에게 가장 유용 합니다.
![]() | ![]() | ![]() |
라이브러리는 또한 Controlnet을 지원하므로 입력 이미지를 사용하여 이미지 생성 프로세스를 안내 할 수 있습니다.
이 예에서는 Openpose Estimator 및 Openpose Conditioned Controlnet을 사용하여 자세를 지정하여 IMG2IMG 생성을 안내하므로 더 나은 결과를 생성 할 수 있습니다.
HED Edge Detection 및 Edge Conditioned Controlnet을 사용하여 이미지 스타일을 만화책과 비슷하게 변경하지만 레이아웃을 그대로 유지합니다.
깊이 추정기 및 깊이 맵 조절 된 Controlnet을 사용하여 다른 문자를 생성하지만 원래 설정을 유지합니다.
라이브러리는 또한 다음 기능 추출기의 GPU 가속 구현을 제공합니다 (위에 표시).
간단한 코드 예제는 다음과 같습니다.
라이브러리에 필요한 AI 모델은 ONNX 형식으로 저장됩니다. 모든 모델은 Microsoft Olive를 통해 실행되었으며 DirectML에 최적화되었습니다. 다음 모델로 도서관을 테스트했습니다.
이 가이드를 사용하여 변환하여 자신의 모델을 가져올 수 있습니다.
제품에 통합하려는 경우 모델의 원래 라이센스를 확인하십시오.
구현은 onx를 사용하여 이미지 생성과 관련된 수학적 모델을 저장합니다. 그런 다음 이러한 ONNX 모델은 다양한 플랫폼 (Windows, Linux, MacOS, Android, iOS, WebAssembly 등) 및 실행 제공자 (예 : NVIDIA CUDA / TENSORRT; AMD ROCM, Apple Coreml, Qualcomm Qnn, Microsoft Directml 등을 지원하는 Onnx 런타임을 사용하여 실행됩니다.
우리는 UnpAnt라는 예제 통합을 제공하여 라이브러리가 간단한 WinUI 기반 사용자 인터페이스에 어떻게 통합 될 수 있는지 보여줍니다. 솔루션의 성능 특성을 평가하려면 Microsoft Store에서 무료 앱을 다운로드 할 수 있습니다.
현재 코드베이스와 결과 Nuget 패키지는 Windows를 대상으로하고 DirectML을 사용하지만 코드의 작은 섹션 만 Windows 특정 API를 사용하므로 최소한의 노력으로 다른 플랫폼으로 포팅 될 수 있습니다.
이 라이브러리의 소스 코드는 MIT 라이센스에 따라 제공됩니다.
프로젝트의 미리 빌드 버전은 Axodox.MachineLearning 이라는 이름으로 NUGET에서 검색하고 X64 플랫폼을 사용하여 Visual Studio C ++ 프로젝트 (데스크탑 및 UWP 프로젝트 모두 지원)에 추가 할 수 있습니다.
기본 통합 :
Axodox.Common 및 Axodox.MachineLearning 패키지를 프로젝트에 추가하십시오#include "Include/Axodox.MachineLearning.h" 헤더에 다음 내용을 추가하십시오.적절한 안전 메커니즘을 앱에 추가하여 부적절한 안정적인 출력을 억제하는 것이 좋습니다. 성능 오버 헤드는 중요하지 않습니다.
우리가 사용하는 안정적인 확산 모델은 Microsoft Olive를 사용하여 생성되었습니다. 링크 된 예제를 따르십시오. 스크립트를 변경하면 디스크에 저장된 모델을 다양한 형식 (예 : *.safetensors )에서 변환 할 수도 있습니다. 테스트를 위해 전달 된 일부 모델을 찾을 수 있습니다.
라이브러리 구축은 변경 및 테스트를 위해 필요합니다. 라이브러리를 구축하려면 다음을 설치해야합니다.
build_nuget.ps1 또는 Axodox.MachineLearning.sln 열고 Visual Studio에서 빌드 할 수 있습니다.
라이브러리를 구축 한 후에는 AxodoxMachineLearning-Location 환경 변수를 로컬 빌드를 가리키면 기존 Nuget 패키지 설치를 무시합니다.
예를 들어
C:devaxodox-machinelearningAxodox.MachineLearning.Universal앱을위한 우주 및C:devaxodox-machinelearningAxodox.MachineLearning.Desktop은 데스크탑 앱입니다.
그런 다음 자신의 프로젝트 솔루션으로 향하는 경로로 가리키는 프로젝트를 추가하십시오. 이를 통해 모든 프로젝트를 동일한 솔루션에 추가하고 파일을 반복적으로 복사하지 않고 라이브러리와 앱을 원활하게 변경할 수 있습니다.