Spaces:
Paused
Paused
| title: AI Toolkit | |
| emoji: 📹 | |
| colorFrom: gray | |
| colorTo: red | |
| sdk: docker | |
| pinned: true | |
| short_description: Ostris AI Toolkit running as a HF space | |
| app_port: 8675 | |
| # AI Toolkit by Ostris | |
| AI Toolkit is an all in one training suite for diffusion models. I try to support all the latest models on consumer grade hardware. Image and video models. It can be run as a GUI or CLI. It is designed to be easy to use but still have every feature imaginable. | |
| ## Support My Work | |
| If you enjoy my projects or use them commercially, please consider sponsoring me. Every bit helps! 💖 | |
| [Sponsor on GitHub](https://github.com/orgs/ostris) | [Support on Patreon](https://www.patreon.com/ostris) | [Donate on PayPal](https://www.paypal.com/donate/?hosted_button_id=9GEFUKC8T9R9W) | |
| ### Current Sponsors | |
| All of these people / organizations are the ones who selflessly make this project possible. Thank you!! | |
| _Last updated: 2025-08-08 17:01 UTC_ | |
| <p align="center"> | |
| <a href="https://x.com/NuxZoe" target="_blank" rel="noopener noreferrer"><img src="https://pbs.twimg.com/profile_images/1919488160125616128/QAZXTMEj_400x400.png" alt="a16z" width="200" height="200" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <a href="https://github.com/replicate" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/60410876?v=4" alt="Replicate" width="200" height="200" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <a href="https://github.com/huggingface" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/25720743?v=4" alt="Hugging Face" width="200" height="200" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <a href="https://github.com/josephrocca" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/1167575?u=92d92921b4cb5c8c7e225663fed53c4b41897736&v=4" alt="josephrocca" width="200" height="200" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/162524101/81a72689c3754ac5b9e38612ce5ce914/eyJ3IjoyMDB9/1.png?token-hash=JHRjAxd2XxV1aXIUijj-l65pfTnLoefYSvgNPAsw2lI%3D" alt="Prasanth Veerina" width="200" height="200" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://github.com/weights-ai" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/185568492?v=4" alt="Weights" width="200" height="200" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| </p> | |
| <hr style="width:100%;border:none;height:2px;background:#ddd;margin:30px 0;"> | |
| <p align="center"> | |
| <img src="https://c8.patreon.com/4/200/93304/J" alt="Joseph Rocca" width="150" height="150" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/161471720/dd330b4036d44a5985ed5985c12a5def/eyJ3IjoyMDB9/1.jpeg?token-hash=k1f4Vv7TevzYa9tqlzAjsogYmkZs8nrXQohPCDGJGkc%3D" alt="Vladimir Sotnikov" width="150" height="150" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/33158543/C" alt="clement Delangue" width="150" height="150" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/8654302/b0f5ebedc62a47c4b56222693e1254e9/eyJ3IjoyMDB9/2.jpeg?token-hash=suI7_QjKUgWpdPuJPaIkElkTrXfItHlL8ZHLPT-w_d4%3D" alt="Misch Strotz" width="150" height="150" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/120239481/49b1ce70d3d24704b8ec34de24ec8f55/eyJ3IjoyMDB9/1.jpeg?token-hash=o0y1JqSXqtGvVXnxb06HMXjQXs6OII9yMMx5WyyUqT4%3D" alt="nitish PNR" width="150" height="150" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| </p> | |
| <hr style="width:100%;border:none;height:2px;background:#ddd;margin:30px 0;"> | |
| <p align="center"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/2298192/1228b69bd7d7481baf3103315183250d/eyJ3IjoyMDB9/1.jpg?token-hash=opN1e4r4Nnvqbtr8R9HI8eyf9m5F50CiHDOdHzb4UcA%3D" alt="Mohamed Oumoumad" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/548524/S" alt="Steve Hanff" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/152118848/3b15a43d71714552b5ed1c9f84e66adf/eyJ3IjoyMDB9/1.png?token-hash=MKf3sWHz0MFPm_OAFjdsNvxoBfN5B5l54mn1ORdlRy8%3D" alt="Kristjan Retter" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/83319230/M" alt="Miguel Lara" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/8449560/P" alt="Patron" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://x.com/NuxZoe" target="_blank" rel="noopener noreferrer"><img src="https://pbs.twimg.com/profile_images/1916482710069014528/RDLnPRSg_400x400.jpg" alt="tungsten" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/169502989/220069e79ce745b29237e94c22a729df/eyJ3IjoyMDB9/1.png?token-hash=E8E2JOqx66k2zMtYUw8Gy57dw-gVqA6OPpdCmWFFSFw%3D" alt="Timothy Bielec" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/34200989/58ae95ebda0640c8b7a91b4fa31357aa/eyJ3IjoyMDB9/1.jpeg?token-hash=4mVDM1kCYGauYa33zLG14_g0oj9_UjDK_-Qp4zk42GE%3D" alt="Noah Miller" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/27288932/6c35d2d961ee4e14a7a368c990791315/eyJ3IjoyMDB9/1.jpeg?token-hash=TGIto_PGEG2NEKNyqwzEnRStOkhrjb3QlMhHA3raKJY%3D" alt="David Garrido" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://x.com/RalFingerLP" target="_blank" rel="noopener noreferrer"><img src="https://pbs.twimg.com/profile_images/919595465041162241/ZU7X3T5k_400x400.jpg" alt="RalFinger" width="100" height="100" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| </p> | |
| <hr style="width:100%;border:none;height:2px;background:#ddd;margin:30px 0;"> | |
| <p align="center"> | |
| <a href="http://www.ir-ltd.net" target="_blank" rel="noopener noreferrer"><img src="https://pbs.twimg.com/profile_images/1602579392198283264/6Tm2GYus_400x400.jpg" alt="IR-Entertainment Ltd" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/9547341/bb35d9a222fd460e862e960ba3eacbaf/eyJ3IjoyMDB9/1.jpeg?token-hash=Q2XGDvkCbiONeWNxBCTeTMOcuwTjOaJ8Z-CAf5xq3Hs%3D" alt="Travis Harrington" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/98811435/3a3632d1795b4c2b9f8f0270f2f6a650/eyJ3IjoyMDB9/1.jpeg?token-hash=657rzuJ0bZavMRZW3XZ-xQGqm3Vk6FkMZgFJVMCOPdk%3D" alt="EmmanuelMr18" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/81275465/1e4148fe9c47452b838949d02dd9a70f/eyJ3IjoyMDB9/1.jpeg?token-hash=YAX1ucxybpCIujUCXfdwzUQkttIn3c7pfi59uaFPSwM%3D" alt="Aaron Amortegui" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/155963250/6f8fd7075c3b4247bfeb054ba49172d6/eyJ3IjoyMDB9/1.png?token-hash=z81EHmdU2cqSrwa9vJmZTV3h0LG-z9Qakhxq34FrYT4%3D" alt="Un Defined" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/45562978/0de33cf52ec642ae8a2f612cddec4ca6/eyJ3IjoyMDB9/1.jpeg?token-hash=aD4debMD5ZQjqTII6s4zYSgVK2-bdQt9p3eipi0bENs%3D" alt="Jack English" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/27791680/J" alt="Jean-Tristan Marin" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/570742/4ceb33453a5a4745b430a216aba9280f/eyJ3IjoyMDB9/1.jpg?token-hash=nPcJ2zj3sloND9jvbnbYnob2vMXRnXdRuujthqDLWlU%3D" alt="Al H" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/82763/f99cc484361d4b9d94fe4f0814ada303/eyJ3IjoyMDB9/1.jpeg?token-hash=A3JWlBNL0b24FFWb-FCRDAyhs-OAxg-zrhfBXP_axuU%3D" alt="Doron Adler" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/103077711/bb215761cc004e80bd9cec7d4bcd636d/eyJ3IjoyMDB9/2.jpeg?token-hash=3U8kdZSUpnmeYIDVK4zK9TTXFpnAud_zOwBRXx18018%3D" alt="John Dopamine" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/99036356/7ae9c4d80e604e739b68cca12ee2ed01/eyJ3IjoyMDB9/3.png?token-hash=ZhsBMoTOZjJ-Y6h5NOmU5MT-vDb2fjK46JDlpEehkVQ%3D" alt="Noctre" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/141098579/1a9f0a1249d447a7a0df718a57343912/eyJ3IjoyMDB9/2.png?token-hash=_n-AQmPgY0FP9zCGTIEsr5ka4Y7YuaMkt3qL26ZqGg8%3D" alt="The Local Lab" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/93348210/5c650f32a0bc481d80900d2674528777/eyJ3IjoyMDB9/1.jpeg?token-hash=0jiknRw3jXqYWW6En8bNfuHgVDj4LI_rL7lSS4-_xlo%3D" alt="Armin Behjati" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/134129880/680c7e14cd1a4d1a9face921fb010f88/eyJ3IjoyMDB9/1.png?token-hash=5fqqHE6DCTbt7gDQL7VRcWkV71jF7FvWcLhpYl5aMXA%3D" alt="Bharat Prabhakar" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/70218846/C" alt="Cosmosis" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/30931983/54ab4e4ceab946e79a6418d205f9ed51/eyJ3IjoyMDB9/1.png?token-hash=j2phDrgd6IWuqKqNIDbq9fR2B3fMF-GUCQSdETS1w5Y%3D" alt="HestoySeghuro ." width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/4105384/J" alt="Jack Blakely" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/4541423/S" alt="Sören " width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://www.youtube.com/@happyme7055" target="_blank" rel="noopener noreferrer"><img src="https://yt3.googleusercontent.com/ytc/AIdro_mFqhIRk99SoEWY2gvSvVp6u1SkCGMkRqYQ1OlBBeoOVp8=s160-c-k-c0x00ffffff-no-rj" alt="Marcus Rass" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://c8.patreon.com/4/200/53077895/M" alt="Marc" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/157407541/bb9d80cffdab4334ad78366060561520/eyJ3IjoyMDB9/2.png?token-hash=WYz-U_9zabhHstOT5UIa5jBaoFwrwwqyWxWEzIR2m_c%3D" alt="Tokio Studio srl IT10640050968" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/44568304/a9d83a0e786b41b4bdada150f7c9271c/eyJ3IjoyMDB9/1.jpeg?token-hash=FtxnwrSrknQUQKvDRv2rqPceX2EF23eLq4pNQYM_fmw%3D" alt="Albert Bukoski" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/5048649/B" alt="Ben Ward" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/111904990/08b1cf65be6a4de091c9b73b693b3468/eyJ3IjoyMDB9/1.png?token-hash=_Odz6RD3CxtubEHbUxYujcjw6zAajbo3w8TRz249VBA%3D" alt="Brian Smith" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/494309/J" alt="Julian Tsependa" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/5602036/K" alt="Kelevra" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/159203973/36c817f941ac4fa18103a4b8c0cb9cae/eyJ3IjoyMDB9/1.png?token-hash=zkt72HW3EoiIEAn3LSk9gJPBsXfuTVcc4rRBS3CeR8w%3D" alt="Marko jak" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/24653779/R" alt="RayHell" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/76566911/6485eaf5ec6249a7b524ee0b979372f0/eyJ3IjoyMDB9/1.jpeg?token-hash=mwCSkTelDBaengG32NkN0lVl5mRjB-cwo6-a47wnOsU%3D" alt="the biitz" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/32633822/1ab5612efe80417cbebfe91e871fc052/eyJ3IjoyMDB9/1.png?token-hash=pOS_IU3b3RL5-iL96A3Xqoj2bQ-dDo4RUkBylcMED_s%3D" alt="Zack Abrams" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/97985240/3d1d0e6905d045aba713e8132cab4a30/eyJ3IjoyMDB9/1.png?token-hash=fRavvbO_yqWKA_OsJb5DzjfKZ1Yt-TG-ihMoeVBvlcM%3D" alt="עומר מכלוף" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://github.com/julien-blanchon" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/11278197?v=4" alt="Blanchon" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/11198131/e696d9647feb4318bcf16243c2425805/eyJ3IjoyMDB9/1.jpeg?token-hash=c2c2p1SaiX86iXAigvGRvzm4jDHvIFCg298A49nIfUM%3D" alt="Nicholas Agranoff" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/785333/bdb9ede5765d42e5a2021a86eebf0d8f/eyJ3IjoyMDB9/2.jpg?token-hash=l_rajMhxTm6wFFPn7YdoKBxeUqhdRXKdy6_8SGCuNsE%3D" alt="Sapjes " width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/2446176/S" alt="Scott VanKirk" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/83034/W" alt="william tatum" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/138787189/2b5662dcb638466282ac758e3ac651b4/eyJ3IjoyMDB9/1.png?token-hash=zwj7MScO18vhDxhKt6s5q4gdeNJM3xCLuhSt8zlqlZs%3D" alt="Антон Антонио" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/30530914/T" alt="Techer " width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/25209707/36ae876d662d4d85aaf162b6d67d31e7/eyJ3IjoyMDB9/1.png?token-hash=Zows_A6uqlY5jClhfr4Y3QfMnDKVkS3mbxNHUDkVejo%3D" alt="fjioq8" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/46680573/ee3d99c04a674dd5a8e1ecfb926db6a2/eyJ3IjoyMDB9/1.jpeg?token-hash=cgD4EXyfZMPnXIrcqWQ5jGqzRUfqjPafb9yWfZUPB4Q%3D" alt="Neil Murray" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://ostris.com/wp-content/uploads/2025/08/supporter_default.jpg" alt="Joakim Sällström" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/63510241/A" alt="Andrew Park" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://github.com/Spikhalskiy" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/532108?u=2464983638afea8caf4cd9f0e4a7bc3e6a63bb0a&v=4" alt="Dmitry Spikhalsky" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://c8.patreon.com/4/200/88567307/E" alt="el Chavo" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/117569999/55f75c57f95343e58402529cec852b26/eyJ3IjoyMDB9/1.jpeg?token-hash=squblHZH4-eMs3gI46Uqu1oTOK9sQ-0gcsFdZcB9xQg%3D" alt="James Thompson" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/66157709/6fe70df085e24464995a1a9293a53760/eyJ3IjoyMDB9/1.jpeg?token-hash=eqe0wvg6JfbRUGMKpL_x3YPI5Ppf18aUUJe2EzADU-g%3D" alt="Joey Santana" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://ostris.com/wp-content/uploads/2025/08/supporter_default.jpg" alt="Heikki Rinkinen" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/6175608/B" alt="Bobbie " width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <a href="https://github.com/Slartibart23" target="_blank" rel="noopener noreferrer"><img src="https://avatars.githubusercontent.com/u/133593860?u=31217adb2522fb295805824ffa7e14e8f0fca6fa&v=4" alt="Slarti" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"></a> | |
| <img src="https://ostris.com/wp-content/uploads/2025/08/supporter_default.jpg" alt="Tommy Falkowski" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/28533016/e8f6044ccfa7483f87eeaa01c894a773/eyJ3IjoyMDB9/2.png?token-hash=ak-h3JWB50hyenCavcs32AAPw6nNhmH2nBFKpdk5hvM%3D" alt="William Tatum" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://ostris.com/wp-content/uploads/2025/08/supporter_default.jpg" alt="Karol Stępień" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/156564939/17dbfd45c59d4cf29853d710cb0c5d6f/eyJ3IjoyMDB9/1.png?token-hash=e6wXA_S8cgJeEDI9eJK934eB0TiM8mxJm9zW_VH0gDU%3D" alt="Hans Untch" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/59408413/B" alt="ByteC" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/3712451/432e22a355494ec0a1ea1927ff8d452e/eyJ3IjoyMDB9/7.jpeg?token-hash=OpQ9SAfVQ4Un9dSYlGTHuApZo5GlJ797Mo0DtVtMOSc%3D" alt="David Shorey" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/53634141/c1441f6c605344bbaef885d4272977bb/eyJ3IjoyMDB9/1.JPG?token-hash=Aizd6AxQhY3n6TBE5AwCVeSwEBbjALxQmu6xqc08qBo%3D" alt="Jana Spacelight" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/11180426/J" alt="jarrett towe" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/21828017/J" alt="Jim" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/63232055/2300b4ab370341b5b476902c9b8218ee/eyJ3IjoyMDB9/1.png?token-hash=R9Nb4O0aLBRwxT1cGHUMThlvf6A2MD5SO88lpZBdH7M%3D" alt="Marek P" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/9944625/P" alt="Pomoe " width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/25047900/423e4cb73aba457f8f9c6e5582eddaeb/eyJ3IjoyMDB9/1.jpeg?token-hash=81RvQXBbT66usxqtyWum9Ul4oBn3qHK1cM71IvthC-U%3D" alt="Ruairi Robinson" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c10.patreonusercontent.com/4/patreon-media/p/user/178476551/0b9e83efcd234df5a6bea30d59e6c1cd/eyJ3IjoyMDB9/1.png?token-hash=3XoYMrMxk-K6GelM22mE-FwkjFulX9hpIL7QI3wO2jI%3D" alt="Timmy" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://c8.patreon.com/4/200/10876902/T" alt="Tyssel" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| <img src="https://ostris.com/wp-content/uploads/2025/08/supporter_default.jpg" alt="Juan Franco" width="60" height="60" style="border-radius:8px;margin:5px;display: inline-block;"> | |
| </p> | |
| --- | |
| ## Installation | |
| Requirements: | |
| - python >3.10 | |
| - Nvidia GPU with enough ram to do what you need | |
| - python venv | |
| - git | |
| Linux: | |
| ```bash | |
| git clone https://github.com/ostris/ai-toolkit.git | |
| cd ai-toolkit | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| # install torch first | |
| pip3 install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu126 | |
| pip3 install -r requirements.txt | |
| ``` | |
| Windows: | |
| If you are having issues with Windows. I recommend using the easy install script at [https://github.com/Tavris1/AI-Toolkit-Easy-Install](https://github.com/Tavris1/AI-Toolkit-Easy-Install) | |
| ```bash | |
| git clone https://github.com/ostris/ai-toolkit.git | |
| cd ai-toolkit | |
| python -m venv venv | |
| .\venv\Scripts\activate | |
| pip install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu126 | |
| pip install -r requirements.txt | |
| ``` | |
| # AI Toolkit UI | |
| <img src="https://ostris.com/wp-content/uploads/2025/02/toolkit-ui.jpg" alt="AI Toolkit UI" width="100%"> | |
| The AI Toolkit UI is a web interface for the AI Toolkit. It allows you to easily start, stop, and monitor jobs. It also allows you to easily train models with a few clicks. It also allows you to set a token for the UI to prevent unauthorized access so it is mostly safe to run on an exposed server. | |
| ## Running the UI | |
| Requirements: | |
| - Node.js > 18 | |
| The UI does not need to be kept running for the jobs to run. It is only needed to start/stop/monitor jobs. The commands below | |
| will install / update the UI and it's dependencies and start the UI. | |
| ```bash | |
| cd ui | |
| npm run build_and_start | |
| ``` | |
| You can now access the UI at `http://localhost:8675` or `http://<your-ip>:8675` if you are running it on a server. | |
| ## Securing the UI | |
| If you are hosting the UI on a cloud provider or any network that is not secure, I highly recommend securing it with an auth token. | |
| You can do this by setting the environment variable `AI_TOOLKIT_AUTH` to super secure password. This token will be required to access | |
| the UI. You can set this when starting the UI like so: | |
| ```bash | |
| # Linux | |
| AI_TOOLKIT_AUTH=super_secure_password npm run build_and_start | |
| # Windows | |
| set AI_TOOLKIT_AUTH=super_secure_password && npm run build_and_start | |
| # Windows Powershell | |
| $env:AI_TOOLKIT_AUTH="super_secure_password"; npm run build_and_start | |
| ``` | |
| ## FLUX.1 Training | |
| ### Tutorial | |
| To get started quickly, check out [@araminta_k](https://x.com/araminta_k) tutorial on [Finetuning Flux Dev on a 3090](https://www.youtube.com/watch?v=HzGW_Kyermg) with 24GB VRAM. | |
| ### Requirements | |
| You currently need a GPU with **at least 24GB of VRAM** to train FLUX.1. If you are using it as your GPU to control | |
| your monitors, you probably need to set the flag `low_vram: true` in the config file under `model:`. This will quantize | |
| the model on CPU and should allow it to train with monitors attached. Users have gotten it to work on Windows with WSL, | |
| but there are some reports of a bug when running on windows natively. | |
| I have only tested on linux for now. This is still extremely experimental | |
| and a lot of quantizing and tricks had to happen to get it to fit on 24GB at all. | |
| ### FLUX.1-dev | |
| FLUX.1-dev has a non-commercial license. Which means anything you train will inherit the | |
| non-commercial license. It is also a gated model, so you need to accept the license on HF before using it. | |
| Otherwise, this will fail. Here are the required steps to setup a license. | |
| 1. Sign into HF and accept the model access here [black-forest-labs/FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev) | |
| 2. Make a file named `.env` in the root on this folder | |
| 3. [Get a READ key from huggingface](https://huggingface.co/settings/tokens/new?) and add it to the `.env` file like so `HF_TOKEN=your_key_here` | |
| ### FLUX.1-schnell | |
| FLUX.1-schnell is Apache 2.0. Anything trained on it can be licensed however you want and it does not require a HF_TOKEN to train. | |
| However, it does require a special adapter to train with it, [ostris/FLUX.1-schnell-training-adapter](https://huggingface.co/ostris/FLUX.1-schnell-training-adapter). | |
| It is also highly experimental. For best overall quality, training on FLUX.1-dev is recommended. | |
| To use it, You just need to add the assistant to the `model` section of your config file like so: | |
| ```yaml | |
| model: | |
| name_or_path: "black-forest-labs/FLUX.1-schnell" | |
| assistant_lora_path: "ostris/FLUX.1-schnell-training-adapter" | |
| is_flux: true | |
| quantize: true | |
| ``` | |
| You also need to adjust your sample steps since schnell does not require as many | |
| ```yaml | |
| sample: | |
| guidance_scale: 1 # schnell does not do guidance | |
| sample_steps: 4 # 1 - 4 works well | |
| ``` | |
| ### Training | |
| 1. Copy the example config file located at `config/examples/train_lora_flux_24gb.yaml` (`config/examples/train_lora_flux_schnell_24gb.yaml` for schnell) to the `config` folder and rename it to `whatever_you_want.yml` | |
| 2. Edit the file following the comments in the file | |
| 3. Run the file like so `python run.py config/whatever_you_want.yml` | |
| A folder with the name and the training folder from the config file will be created when you start. It will have all | |
| checkpoints and images in it. You can stop the training at any time using ctrl+c and when you resume, it will pick back up | |
| from the last checkpoint. | |
| IMPORTANT. If you press crtl+c while it is saving, it will likely corrupt that checkpoint. So wait until it is done saving | |
| ### Need help? | |
| Please do not open a bug report unless it is a bug in the code. You are welcome to [Join my Discord](https://discord.gg/VXmU2f5WEU) | |
| and ask for help there. However, please refrain from PMing me directly with general question or support. Ask in the discord | |
| and I will answer when I can. | |
| ## Gradio UI | |
| To get started training locally with a with a custom UI, once you followed the steps above and `ai-toolkit` is installed: | |
| ```bash | |
| cd ai-toolkit #in case you are not yet in the ai-toolkit folder | |
| huggingface-cli login #provide a `write` token to publish your LoRA at the end | |
| python flux_train_ui.py | |
| ``` | |
| You will instantiate a UI that will let you upload your images, caption them, train and publish your LoRA | |
|  | |
| ## Training in RunPod | |
| Example RunPod template: **runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04** | |
| > You need a minimum of 24GB VRAM, pick a GPU by your preference. | |
| #### Example config ($0.5/hr): | |
| - 1x A40 (48 GB VRAM) | |
| - 19 vCPU 100 GB RAM | |
| #### Custom overrides (you need some storage to clone FLUX.1, store datasets, store trained models and samples): | |
| - ~120 GB Disk | |
| - ~120 GB Pod Volume | |
| - Start Jupyter Notebook | |
| ### 1. Setup | |
| ``` | |
| git clone https://github.com/ostris/ai-toolkit.git | |
| cd ai-toolkit | |
| git submodule update --init --recursive | |
| python -m venv venv | |
| source venv/bin/activate | |
| pip install torch | |
| pip install -r requirements.txt | |
| pip install --upgrade accelerate transformers diffusers huggingface_hub #Optional, run it if you run into issues | |
| ``` | |
| ### 2. Upload your dataset | |
| - Create a new folder in the root, name it `dataset` or whatever you like. | |
| - Drag and drop your .jpg, .jpeg, or .png images and .txt files inside the newly created dataset folder. | |
| ### 3. Login into Hugging Face with an Access Token | |
| - Get a READ token from [here](https://huggingface.co/settings/tokens) and request access to Flux.1-dev model from [here](https://huggingface.co/black-forest-labs/FLUX.1-dev). | |
| - Run ```huggingface-cli login``` and paste your token. | |
| ### 4. Training | |
| - Copy an example config file located at ```config/examples``` to the config folder and rename it to ```whatever_you_want.yml```. | |
| - Edit the config following the comments in the file. | |
| - Change ```folder_path: "/path/to/images/folder"``` to your dataset path like ```folder_path: "/workspace/ai-toolkit/your-dataset"```. | |
| - Run the file: ```python run.py config/whatever_you_want.yml```. | |
| ### Screenshot from RunPod | |
| <img width="1728" alt="RunPod Training Screenshot" src="https://github.com/user-attachments/assets/53a1b8ef-92fa-4481-81a7-bde45a14a7b5"> | |
| ## Training in Modal | |
| ### 1. Setup | |
| #### ai-toolkit: | |
| ``` | |
| git clone https://github.com/ostris/ai-toolkit.git | |
| cd ai-toolkit | |
| git submodule update --init --recursive | |
| python -m venv venv | |
| source venv/bin/activate | |
| pip install torch | |
| pip install -r requirements.txt | |
| pip install --upgrade accelerate transformers diffusers huggingface_hub #Optional, run it if you run into issues | |
| ``` | |
| #### Modal: | |
| - Run `pip install modal` to install the modal Python package. | |
| - Run `modal setup` to authenticate (if this doesn’t work, try `python -m modal setup`). | |
| #### Hugging Face: | |
| - Get a READ token from [here](https://huggingface.co/settings/tokens) and request access to Flux.1-dev model from [here](https://huggingface.co/black-forest-labs/FLUX.1-dev). | |
| - Run `huggingface-cli login` and paste your token. | |
| ### 2. Upload your dataset | |
| - Drag and drop your dataset folder containing the .jpg, .jpeg, or .png images and .txt files in `ai-toolkit`. | |
| ### 3. Configs | |
| - Copy an example config file located at ```config/examples/modal``` to the `config` folder and rename it to ```whatever_you_want.yml```. | |
| - Edit the config following the comments in the file, **<ins>be careful and follow the example `/root/ai-toolkit` paths</ins>**. | |
| ### 4. Edit run_modal.py | |
| - Set your entire local `ai-toolkit` path at `code_mount = modal.Mount.from_local_dir` like: | |
| ``` | |
| code_mount = modal.Mount.from_local_dir("/Users/username/ai-toolkit", remote_path="/root/ai-toolkit") | |
| ``` | |
| - Choose a `GPU` and `Timeout` in `@app.function` _(default is A100 40GB and 2 hour timeout)_. | |
| ### 5. Training | |
| - Run the config file in your terminal: `modal run run_modal.py --config-file-list-str=/root/ai-toolkit/config/whatever_you_want.yml`. | |
| - You can monitor your training in your local terminal, or on [modal.com](https://modal.com/). | |
| - Models, samples and optimizer will be stored in `Storage > flux-lora-models`. | |
| ### 6. Saving the model | |
| - Check contents of the volume by running `modal volume ls flux-lora-models`. | |
| - Download the content by running `modal volume get flux-lora-models your-model-name`. | |
| - Example: `modal volume get flux-lora-models my_first_flux_lora_v1`. | |
| ### Screenshot from Modal | |
| <img width="1728" alt="Modal Traning Screenshot" src="https://github.com/user-attachments/assets/7497eb38-0090-49d6-8ad9-9c8ea7b5388b"> | |
| --- | |
| ## Dataset Preparation | |
| Datasets generally need to be a folder containing images and associated text files. Currently, the only supported | |
| formats are jpg, jpeg, and png. Webp currently has issues. The text files should be named the same as the images | |
| but with a `.txt` extension. For example `image2.jpg` and `image2.txt`. The text file should contain only the caption. | |
| You can add the word `[trigger]` in the caption file and if you have `trigger_word` in your config, it will be automatically | |
| replaced. | |
| Images are never upscaled but they are downscaled and placed in buckets for batching. **You do not need to crop/resize your images**. | |
| The loader will automatically resize them and can handle varying aspect ratios. | |
| ## Training Specific Layers | |
| To train specific layers with LoRA, you can use the `only_if_contains` network kwargs. For instance, if you want to train only the 2 layers | |
| used by The Last Ben, [mentioned in this post](https://x.com/__TheBen/status/1829554120270987740), you can adjust your | |
| network kwargs like so: | |
| ```yaml | |
| network: | |
| type: "lora" | |
| linear: 128 | |
| linear_alpha: 128 | |
| network_kwargs: | |
| only_if_contains: | |
| - "transformer.single_transformer_blocks.7.proj_out" | |
| - "transformer.single_transformer_blocks.20.proj_out" | |
| ``` | |
| The naming conventions of the layers are in diffusers format, so checking the state dict of a model will reveal | |
| the suffix of the name of the layers you want to train. You can also use this method to only train specific groups of weights. | |
| For instance to only train the `single_transformer` for FLUX.1, you can use the following: | |
| ```yaml | |
| network: | |
| type: "lora" | |
| linear: 128 | |
| linear_alpha: 128 | |
| network_kwargs: | |
| only_if_contains: | |
| - "transformer.single_transformer_blocks." | |
| ``` | |
| You can also exclude layers by their names by using `ignore_if_contains` network kwarg. So to exclude all the single transformer blocks, | |
| ```yaml | |
| network: | |
| type: "lora" | |
| linear: 128 | |
| linear_alpha: 128 | |
| network_kwargs: | |
| ignore_if_contains: | |
| - "transformer.single_transformer_blocks." | |
| ``` | |
| `ignore_if_contains` takes priority over `only_if_contains`. So if a weight is covered by both, | |
| if will be ignored. | |
| ## LoKr Training | |
| To learn more about LoKr, read more about it at [KohakuBlueleaf/LyCORIS](https://github.com/KohakuBlueleaf/LyCORIS/blob/main/docs/Guidelines.md). To train a LoKr model, you can adjust the network type in the config file like so: | |
| ```yaml | |
| network: | |
| type: "lokr" | |
| lokr_full_rank: true | |
| lokr_factor: 8 | |
| ``` | |
| Everything else should work the same including layer targeting. | |
| ## Updates | |
| Only larger updates are listed here. There are usually smaller daily updated that are omitted. | |
| ### Jul 17, 2025 | |
| - Make it easy to add control images to the samples in the ui | |
| ### Jul 11, 2025 | |
| - Added better video config settings to the UI for video models. | |
| - Added Wan I2V training to the UI | |
| ### June 29, 2025 | |
| - Fixed issue where Kontext forced sizes on sampling | |
| ### June 26, 2025 | |
| - Added support for FLUX.1 Kontext training | |
| - added support for instruction dataset training | |
| ### June 25, 2025 | |
| - Added support for OmniGen2 training | |
| - | |
| ### June 17, 2025 | |
| - Performance optimizations for batch preparation | |
| - Added some docs via a popup for items in the simple ui explaining what settings do. Still a WIP | |
| ### June 16, 2025 | |
| - Hide control images in the UI when viewing datasets | |
| - WIP on mean flow loss | |
| ### June 12, 2025 | |
| - Fixed issue that resulted in blank captions in the dataloader | |
| ### June 10, 2025 | |
| - Decided to keep track up updates in the readme | |
| - Added support for SDXL in the UI | |
| - Added support for SD 1.5 in the UI | |
| - Fixed UI Wan 2.1 14b name bug | |
| - Added support for for conv training in the UI for models that support it | |