ที่เก็บนี้มี การใช้งาน C ++ อย่างเต็มที่ของการสังเคราะห์ภาพการแพร่กระจายที่เสถียร รวมถึง TXT2IMG ดั้งเดิม, IMG2IMG และความสามารถในการทาสีและตัวตรวจสอบความปลอดภัย โซลูชันนี้ ไม่ได้ขึ้นอยู่กับ Python และ เรียกใช้กระบวนการสร้างภาพทั้งหมดในกระบวนการเดียวที่มีประสิทธิภาพการแข่งขัน ทำให้การปรับใช้ง่ายขึ้นและเล็กลงอย่างมีนัยสำคัญซึ่งประกอบด้วยไฟล์ปฏิบัติการและไฟล์ไลบรารีเพียงไม่กี่ไฟล์และน้ำหนักรุ่น การใช้ไลบรารีเป็นไปได้ที่จะรวมการแพร่กระจายที่เสถียรเข้ากับแอปพลิเคชันเกือบทุกชนิด - ตราบใดที่สามารถนำเข้าฟังก์ชั่น C ++ หรือ C ได้ แต่ก็มี ประโยชน์มากที่สุดสำหรับนักพัฒนาแอปพลิเคชันกราฟิกเรียลไทม์และเกม ซึ่งมักจะรับรู้ด้วย C ++
![]() | ![]() | ![]() |
ไลบรารียังรองรับ ControlNet ซึ่งอนุญาตให้ใช้รูปภาพอินพุตเพื่อเป็นแนวทางในกระบวนการสร้างภาพเช่น:
ในครั้งแรกตัวอย่างนี้เราใช้ตัวประมาณ OpenPose และ OpenPose Conditioned ControlNet เราสามารถแนะนำการสร้าง IMG2IMG โดยการระบุท่าทางดังนั้นจึงให้ผลลัพธ์ที่ดีกว่า
การใช้การตรวจจับขอบ HED และ Controlnet ปรับอากาศเราเปลี่ยนรูปแบบของภาพให้คล้ายกับภาพประกอบหนังสือการ์ตูน แต่ให้เลย์เอาต์ยังคงอยู่
การใช้ตัวประมาณค่าความลึกและความลึกของแผนที่ Controlnet ปรับอากาศเราสร้างอักขระที่แตกต่างกัน แต่ให้การตั้งค่าดั้งเดิม
ห้องสมุดยังมีการใช้งาน GPU เร่งความเร็วของตัวแยกฟีเจอร์ต่อไปนี้ (แสดงด้านบน):
นี่คือตัวอย่างรหัสง่าย ๆ :
โมเดล AI ที่จำเป็นสำหรับไลบรารีจะถูกเก็บไว้ในรูปแบบ ONNX ทุกรุ่นดำเนินการผ่าน Microsoft Olive และได้รับการปรับให้เหมาะสมสำหรับ DirectML ฉันได้ทดสอบไลบรารีด้วยรุ่นต่อไปนี้:
คุณสามารถนำโมเดลของคุณมาเองโดยการแปลงโดยใช้คู่มือนี้
โปรดตรวจสอบให้แน่ใจว่าได้ตรวจสอบใบอนุญาตเดิมของรุ่นหากคุณวางแผนที่จะรวมเข้ากับผลิตภัณฑ์ของคุณ
การใช้งานใช้ ONNX เพื่อจัดเก็บแบบจำลองทางคณิตศาสตร์ที่เกี่ยวข้องในการสร้างภาพ จากนั้นรุ่น ONNX เหล่านี้จะถูกดำเนินการโดยใช้รันไทม์ ONNX ซึ่งรองรับแพลตฟอร์มที่หลากหลาย (Windows, Linux, MacOS, Android, iOS, WebAssembly ฯลฯ ) และผู้ให้บริการดำเนินการ (เช่น Nvidia Cuda / Tensorrt; AMD ROCM, Apple Coreml, Queml
เราให้ตัวอย่างการรวมตัวอย่างที่เรียกว่า unpaint ซึ่งแสดงให้เห็นว่าไลบรารีสามารถรวมเข้ากับส่วนต่อประสานผู้ใช้ที่ใช้ Winui ได้อย่างง่าย คุณสามารถดาวน์โหลดแอพฟรีจาก Microsoft Store เพื่อประเมินคุณสมบัติประสิทธิภาพของโซลูชัน
Codebase ปัจจุบันและแพ็คเกจ NUGET ที่ได้นั้นเป็นเป้าหมายของ Windows และใช้ DirectML แต่มีเพียงส่วนเล็ก ๆ ของรหัสที่ใช้ APIs เฉพาะ Windows และสามารถส่งไปยังแพลตฟอร์มอื่น ๆ ด้วยความพยายามน้อยที่สุด
ซอร์สโค้ดของไลบรารีนี้มีให้ภายใต้ใบอนุญาต MIT
รุ่น Prebuilt สามารถเรียกคืนได้จาก NuGet ภายใต้ชื่อ Axodox.MachineLearning และเพิ่มลงในโครงการ Visual Studio C ++ (สนับสนุนโครงการเดสก์ท็อปและ UWP ทั้งสองด้วยแพลตฟอร์ม x64
การรวมขั้นพื้นฐาน:
Axodox.Common และ Axodox.MachineLearning ลงในโครงการของคุณ#include "Include/Axodox.MachineLearning.h"เราขอแนะนำให้เพิ่มกลไกความปลอดภัยที่เหมาะสมลงในแอพของคุณเพื่อระงับเอาต์พุตที่ไม่เหมาะสมของ StabledIffusion ประสิทธิภาพการทำงานนั้นไม่มีนัยสำคัญ
รูปแบบการแพร่กระจายที่เสถียรที่เราใช้ถูกสร้างขึ้นโดยใช้ Microsoft Olive โปรดติดตามตัวอย่างที่เชื่อมโยงเพื่อแปลงโมเดลจาก HuggingFace โดยการเปลี่ยนสคริปต์คุณสามารถแปลงรุ่นที่เก็บไว้ในดิสก์ของคุณจากรูปแบบต่าง ๆ (เช่น *.safetensors ) คุณสามารถค้นหารุ่น preconverted ได้ที่นี่สำหรับการทดสอบ
การสร้างห้องสมุดจะต้องทำการเปลี่ยนแปลงและทดสอบการเปลี่ยนแปลง คุณจะต้องติดตั้งต่อไปนี้เพื่อสร้างไลบรารี:
คุณสามารถเรียกใช้ build_nuget.ps1 หรือเปิด Axodox.MachineLearning.sln และสร้างจาก Visual Studio
เมื่อคุณสร้างไลบรารีแล้วคุณจะได้รับการติดตั้งแพ็คเกจ NuGet ที่มีอยู่โดยการตั้งค่าตัวแปรสภาพแวดล้อม AxodoxMachineLearning-Location เพื่อชี้ไปที่บิลด์ท้องถิ่นของคุณ
ตัวอย่างเช่น
C:devaxodox-machinelearningAxodox.MachineLearning.Universalสำหรับแอพ UWP และC:devaxodox-machinelearningAxodox.MachineLearning.Desktopสำหรับแอพ Desktop
จากนั้นเพิ่มโครงการที่ชี้ไปที่เส้นทางไปยังวิธีแก้ปัญหาของโครงการของคุณเอง สิ่งนี้ช่วยให้สามารถเพิ่มโครงการทั้งหมดลงในโซลูชันเดียวกันและทำการเปลี่ยนแปลงในไลบรารีและแอพของคุณได้อย่างราบรื่นโดยไม่ต้องคัดลอกไฟล์ซ้ำ ๆ