{"id":14281131,"url":"https://github.com/ostris/ai-toolkit","last_synced_at":"2025-08-14T21:31:25.965Z","repository":{"id":179690103,"uuid":"662724864","full_name":"ostris/ai-toolkit","owner":"ostris","description":"Various AI scripts. Mostly Stable Diffusion stuff.","archived":false,"fork":false,"pushed_at":"2024-12-15T15:59:33.000Z","size":30275,"stargazers_count":3614,"open_issues_count":98,"forks_count":389,"subscribers_count":48,"default_branch":"main","last_synced_at":"2024-12-15T16:42:21.420Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ostris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-05T18:45:11.000Z","updated_at":"2024-12-15T15:59:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"ceee605e-d388-4193-856e-f1873c5cfefb","html_url":"https://github.com/ostris/ai-toolkit","commit_stats":null,"previous_names":["ostris/ai-toolkit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostris%2Fai-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostris%2Fai-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostris%2Fai-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostris%2Fai-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ostris","download_url":"https://codeload.github.com/ostris/ai-toolkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229865604,"owners_count":18136337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-23T11:01:11.036Z","updated_at":"2025-08-14T21:31:25.958Z","avatar_url":"https://github.com/ostris.png","language":"Python","funding_links":["https://www.patreon.com/ostris","https://www.paypal.com/donate/?hosted_button_id=9GEFUKC8T9R9W","https://c8.patreon.com/4/200/93304/J","https://c8.patreon.com/4/200/33158543/C","https://c8.patreon.com/4/200/548524/S","https://c8.patreon.com/4/200/83319230/M","https://c8.patreon.com/4/200/8449560/P","https://c8.patreon.com/4/200/27791680/J","https://c8.patreon.com/4/200/70218846/C","https://c8.patreon.com/4/200/4105384/J","https://c8.patreon.com/4/200/4541423/S","https://c8.patreon.com/4/200/53077895/M","https://c8.patreon.com/4/200/5048649/B","https://c8.patreon.com/4/200/494309/J","https://c8.patreon.com/4/200/5602036/K","https://c8.patreon.com/4/200/24653779/R","https://c8.patreon.com/4/200/2446176/S","https://c8.patreon.com/4/200/83034/W","https://c8.patreon.com/4/200/30530914/T","https://c8.patreon.com/4/200/63510241/A","https://c8.patreon.com/4/200/88567307/E","https://c8.patreon.com/4/200/6175608/B","https://c8.patreon.com/4/200/59408413/B","https://c8.patreon.com/4/200/11180426/J","https://c8.patreon.com/4/200/21828017/J","https://c8.patreon.com/4/200/9944625/P","https://c8.patreon.com/4/200/10876902/T"],"categories":["Python","Repos","🤖 AI \u0026 Machine Learning","▓ LoRA Training","7. Training \u0026 Fine-tuning Ecosystem"],"sub_categories":["Primary Local Training Tools"],"readme":"# AI Toolkit by Ostris\n\nAI 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.\n\n## Support My Work\n\nIf you enjoy my projects or use them commercially, please consider sponsoring me. Every bit helps! 💖\n\n[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)\n\n### Current Sponsors\n\nAll of these people / organizations are the ones who selflessly make this project possible. Thank you!!\n\n_Last updated: 2025-08-08 17:01 UTC_\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://x.com/NuxZoe\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg 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;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/replicate\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/60410876?v=4\" alt=\"Replicate\" width=\"200\" height=\"200\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/huggingface\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg 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;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/josephrocca\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1167575?u=92d92921b4cb5c8c7e225663fed53c4b41897736\u0026v=4\" alt=\"josephrocca\" width=\"200\" height=\"200\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\u003c/a\u003e\n\u003cimg 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;\"\u003e\n\u003ca href=\"https://github.com/weights-ai\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/185568492?v=4\" alt=\"Weights\" width=\"200\" height=\"200\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003chr style=\"width:100%;border:none;height:2px;background:#ddd;margin:30px 0;\"\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003c/p\u003e\n\u003chr style=\"width:100%;border:none;height:2px;background:#ddd;margin:30px 0;\"\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/8449560/P\" alt=\"Patron\" width=\"100\" height=\"100\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003ca href=\"https://x.com/NuxZoe\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg 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;\"\u003e\u003c/a\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003ca href=\"https://x.com/RalFingerLP\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg 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;\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003chr style=\"width:100%;border:none;height:2px;background:#ddd;margin:30px 0;\"\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"http://www.ir-ltd.net\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg 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;\"\u003e\u003c/a\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/70218846/C\" alt=\"Cosmosis\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003ca href=\"https://www.youtube.com/@happyme7055\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg 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;\"\u003e\u003c/a\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/53077895/M\" alt=\"Marc\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/5602036/K\" alt=\"Kelevra\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/24653779/R\" alt=\"RayHell\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003ca href=\"https://github.com/julien-blanchon\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11278197?v=4\" alt=\"Blanchon\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\u003c/a\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/30530914/T\" alt=\"Techer \" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003ca href=\"https://github.com/Spikhalskiy\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/532108?u=2464983638afea8caf4cd9f0e4a7bc3e6a63bb0a\u0026v=4\" alt=\"Dmitry Spikhalsky\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\u003c/a\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/6175608/B\" alt=\"Bobbie \" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003ca href=\"https://github.com/Slartibart23\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/133593860?u=31217adb2522fb295805824ffa7e14e8f0fca6fa\u0026v=4\" alt=\"Slarti\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\u003c/a\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/59408413/B\" alt=\"ByteC\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/21828017/J\" alt=\"Jim\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/9944625/P\" alt=\"Pomoe \" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg 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;\"\u003e\n\u003cimg src=\"https://c8.patreon.com/4/200/10876902/T\" alt=\"Tyssel\" width=\"60\" height=\"60\" style=\"border-radius:8px;margin:5px;display: inline-block;\"\u003e\n\u003cimg 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;\"\u003e\n\u003c/p\u003e\n\n---\n\n\n\n\n## Installation\n\nRequirements:\n- python \u003e3.10\n- Nvidia GPU with enough ram to do what you need\n- python venv\n- git\n\n\nLinux:\n```bash\ngit clone https://github.com/ostris/ai-toolkit.git\ncd ai-toolkit\npython3 -m venv venv\nsource venv/bin/activate\n# install torch first\npip3 install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu126\npip3 install -r requirements.txt\n```\n\nWindows:\n\nIf 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)\n\n```bash\ngit clone https://github.com/ostris/ai-toolkit.git\ncd ai-toolkit\npython -m venv venv\n.\\venv\\Scripts\\activate\npip install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu126\npip install -r requirements.txt\n```\n\n\n# AI Toolkit UI\n\n\u003cimg src=\"https://ostris.com/wp-content/uploads/2025/02/toolkit-ui.jpg\" alt=\"AI Toolkit UI\" width=\"100%\"\u003e\n\nThe 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.\n\n## Running the UI\n\nRequirements:\n- Node.js \u003e 18\n\nThe 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\nwill install / update the UI and it's dependencies and start the UI. \n\n```bash\ncd ui\nnpm run build_and_start\n```\n\nYou can now access the UI at `http://localhost:8675` or `http://\u003cyour-ip\u003e:8675` if you are running it on a server.\n\n## Securing the UI\n\nIf 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. \nYou can do this by setting the environment variable `AI_TOOLKIT_AUTH` to super secure password. This token will be required to access\nthe UI. You can set this when starting the UI like so:\n\n```bash\n# Linux\nAI_TOOLKIT_AUTH=super_secure_password npm run build_and_start\n\n# Windows\nset AI_TOOLKIT_AUTH=super_secure_password \u0026\u0026 npm run build_and_start\n\n# Windows Powershell\n$env:AI_TOOLKIT_AUTH=\"super_secure_password\"; npm run build_and_start\n```\n\n\n## FLUX.1 Training\n\n### Tutorial\n\nTo 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.\n\n\n### Requirements\nYou currently need a GPU with **at least 24GB of VRAM** to train FLUX.1. If you are using it as your GPU to control \nyour monitors, you probably need to set the flag `low_vram: true` in the config file under `model:`. This will quantize\nthe model on CPU and should allow it to train with monitors attached. Users have gotten it to work on Windows with WSL,\nbut there are some reports of a bug when running on windows natively. \nI have only tested on linux for now. This is still extremely experimental\nand a lot of quantizing and tricks had to happen to get it to fit on 24GB at all. \n\n### FLUX.1-dev\n\nFLUX.1-dev has a non-commercial license. Which means anything you train will inherit the\nnon-commercial license. It is also a gated model, so you need to accept the license on HF before using it.\nOtherwise, this will fail. Here are the required steps to setup a license.\n\n1. Sign into HF and accept the model access here [black-forest-labs/FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev)\n2. Make a file named `.env` in the root on this folder\n3. [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`\n\n### FLUX.1-schnell\n\nFLUX.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.\nHowever, 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).\nIt is also highly experimental. For best overall quality, training on FLUX.1-dev is recommended.\n\nTo use it, You just need to add the assistant to the `model` section of your config file like so:\n\n```yaml\n      model:\n        name_or_path: \"black-forest-labs/FLUX.1-schnell\"\n        assistant_lora_path: \"ostris/FLUX.1-schnell-training-adapter\"\n        is_flux: true\n        quantize: true\n```\n\nYou also need to adjust your sample steps since schnell does not require as many\n\n```yaml\n      sample:\n        guidance_scale: 1  # schnell does not do guidance\n        sample_steps: 4  # 1 - 4 works well\n```\n\n### Training\n1. 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`\n2. Edit the file following the comments in the file\n3. Run the file like so `python run.py config/whatever_you_want.yml`\n\nA folder with the name and the training folder from the config file will be created when you start. It will have all \ncheckpoints and images in it. You can stop the training at any time using ctrl+c and when you resume, it will pick back up\nfrom the last checkpoint.\n\nIMPORTANT. If you press crtl+c while it is saving, it will likely corrupt that checkpoint. So wait until it is done saving\n\n### Need help?\n\nPlease 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)\nand ask for help there. However, please refrain from PMing me directly with general question or support. Ask in the discord\nand I will answer when I can.\n\n## Gradio UI\n\nTo get started training locally with a with a custom UI, once you followed the steps above and `ai-toolkit` is installed:\n\n```bash\ncd ai-toolkit #in case you are not yet in the ai-toolkit folder\nhuggingface-cli login #provide a `write` token to publish your LoRA at the end\npython flux_train_ui.py\n```\n\nYou will instantiate a UI that will let you upload your images, caption them, train and publish your LoRA\n![image](assets/lora_ease_ui.png)\n\n\n## Training in RunPod\nExample RunPod template: **runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04**\n\u003e You need a minimum of 24GB VRAM, pick a GPU by your preference.\n\n#### Example config ($0.5/hr):\n- 1x A40 (48 GB VRAM)\n- 19 vCPU 100 GB RAM\n\n#### Custom overrides (you need some storage to clone FLUX.1, store datasets, store trained models and samples):\n- ~120 GB Disk\n- ~120 GB Pod Volume\n- Start Jupyter Notebook\n\n### 1. Setup\n```\ngit clone https://github.com/ostris/ai-toolkit.git\ncd ai-toolkit\ngit submodule update --init --recursive\npython -m venv venv\nsource venv/bin/activate\npip install torch\npip install -r requirements.txt\npip install --upgrade accelerate transformers diffusers huggingface_hub #Optional, run it if you run into issues\n```\n### 2. Upload your dataset\n- Create a new folder in the root, name it `dataset` or whatever you like.\n- Drag and drop your .jpg, .jpeg, or .png images and .txt files inside the newly created dataset folder.\n\n### 3. Login into Hugging Face with an Access Token\n- 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).\n- Run ```huggingface-cli login``` and paste your token.\n\n### 4. Training\n- Copy an example config file located at ```config/examples``` to the config folder and rename it to ```whatever_you_want.yml```.\n- Edit the config following the comments in the file.\n- Change ```folder_path: \"/path/to/images/folder\"``` to your dataset path like ```folder_path: \"/workspace/ai-toolkit/your-dataset\"```.\n- Run the file: ```python run.py config/whatever_you_want.yml```.\n\n### Screenshot from RunPod\n\u003cimg width=\"1728\" alt=\"RunPod Training Screenshot\" src=\"https://github.com/user-attachments/assets/53a1b8ef-92fa-4481-81a7-bde45a14a7b5\"\u003e\n\n## Training in Modal\n\n### 1. Setup\n#### ai-toolkit:\n```\ngit clone https://github.com/ostris/ai-toolkit.git\ncd ai-toolkit\ngit submodule update --init --recursive\npython -m venv venv\nsource venv/bin/activate\npip install torch\npip install -r requirements.txt\npip install --upgrade accelerate transformers diffusers huggingface_hub #Optional, run it if you run into issues\n```\n#### Modal:\n- Run `pip install modal` to install the modal Python package.\n- Run `modal setup` to authenticate (if this doesn’t work, try `python -m modal setup`).\n\n#### Hugging Face:\n- 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).\n- Run `huggingface-cli login` and paste your token.\n\n### 2. Upload your dataset\n- Drag and drop your dataset folder containing the .jpg, .jpeg, or .png images and .txt files in `ai-toolkit`.\n\n### 3. Configs\n- Copy an example config file located at ```config/examples/modal``` to the `config` folder and rename it to ```whatever_you_want.yml```.\n- Edit the config following the comments in the file, **\u003cins\u003ebe careful and follow the example `/root/ai-toolkit` paths\u003c/ins\u003e**.\n\n### 4. Edit run_modal.py\n- Set your entire local `ai-toolkit` path at `code_mount = modal.Mount.from_local_dir` like:\n  \n   ```\n   code_mount = modal.Mount.from_local_dir(\"/Users/username/ai-toolkit\", remote_path=\"/root/ai-toolkit\")\n   ```\n- Choose a `GPU` and `Timeout` in `@app.function` _(default is A100 40GB and 2 hour timeout)_.\n\n### 5. Training\n- Run the config file in your terminal: `modal run run_modal.py --config-file-list-str=/root/ai-toolkit/config/whatever_you_want.yml`.\n- You can monitor your training in your local terminal, or on [modal.com](https://modal.com/).\n- Models, samples and optimizer will be stored in `Storage \u003e flux-lora-models`.\n\n### 6. Saving the model\n- Check contents of the volume by running `modal volume ls flux-lora-models`. \n- Download the content by running `modal volume get flux-lora-models your-model-name`.\n- Example: `modal volume get flux-lora-models my_first_flux_lora_v1`.\n\n### Screenshot from Modal\n\n\u003cimg width=\"1728\" alt=\"Modal Traning Screenshot\" src=\"https://github.com/user-attachments/assets/7497eb38-0090-49d6-8ad9-9c8ea7b5388b\"\u003e\n\n---\n\n## Dataset Preparation\n\nDatasets generally need to be a folder containing images and associated text files. Currently, the only supported\nformats are jpg, jpeg, and png. Webp currently has issues. The text files should be named the same as the images\nbut with a `.txt` extension. For example `image2.jpg` and `image2.txt`. The text file should contain only the caption.\nYou can add the word `[trigger]` in the caption file and if you have `trigger_word` in your config, it will be automatically\nreplaced. \n\nImages are never upscaled but they are downscaled and placed in buckets for batching. **You do not need to crop/resize your images**.\nThe loader will automatically resize them and can handle varying aspect ratios. \n\n\n## Training Specific Layers\n\nTo 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\nused by The Last Ben, [mentioned in this post](https://x.com/__TheBen/status/1829554120270987740), you can adjust your\nnetwork kwargs like so:\n\n```yaml\n      network:\n        type: \"lora\"\n        linear: 128\n        linear_alpha: 128\n        network_kwargs:\n          only_if_contains:\n            - \"transformer.single_transformer_blocks.7.proj_out\"\n            - \"transformer.single_transformer_blocks.20.proj_out\"\n```\n\nThe naming conventions of the layers are in diffusers format, so checking the state dict of a model will reveal \nthe suffix of the name of the layers you want to train. You can also use this method to only train specific groups of weights.\nFor instance to only train the `single_transformer` for FLUX.1, you can use the following:\n\n```yaml\n      network:\n        type: \"lora\"\n        linear: 128\n        linear_alpha: 128\n        network_kwargs:\n          only_if_contains:\n            - \"transformer.single_transformer_blocks.\"\n```\n\nYou can also exclude layers by their names by using `ignore_if_contains` network kwarg. So to exclude all the single transformer blocks,\n\n\n```yaml\n      network:\n        type: \"lora\"\n        linear: 128\n        linear_alpha: 128\n        network_kwargs:\n          ignore_if_contains:\n            - \"transformer.single_transformer_blocks.\"\n```\n\n`ignore_if_contains` takes priority over `only_if_contains`. So if a weight is covered by both,\nif will be ignored.\n\n## LoKr Training\n\nTo 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:\n\n```yaml\n      network:\n        type: \"lokr\"\n        lokr_full_rank: true\n        lokr_factor: 8\n```\n\nEverything else should work the same including layer targeting.\n\n\n## Updates\n\nOnly larger updates are listed here. There are usually smaller daily updated that are omitted.\n\n### Jul 17, 2025\n- Make it easy to add control images to the samples in the ui\n\n### Jul 11, 2025\n- Added better video config settings to the UI for video models.\n- Added Wan I2V training to the UI\n\n### June 29, 2025\n- Fixed issue where Kontext forced sizes on sampling\n\n### June 26, 2025\n- Added support for FLUX.1 Kontext training\n- added support for instruction dataset training\n\n### June 25, 2025\n- Added support for OmniGen2 training\n- \n### June 17, 2025\n- Performance optimizations for batch preparation\n- Added some docs via a popup for items in the simple ui explaining what settings do. Still a WIP\n\n### June 16, 2025\n- Hide control images in the UI when viewing datasets\n- WIP on mean flow loss\n\n### June 12, 2025\n- Fixed issue that resulted in blank captions in the dataloader\n\n### June 10, 2025\n- Decided to keep track up updates in the readme\n- Added support for SDXL in the UI\n- Added support for SD 1.5 in the UI\n- Fixed UI Wan 2.1 14b name bug\n- Added support for for conv training in the UI for models that support it","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fostris%2Fai-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fostris%2Fai-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fostris%2Fai-toolkit/lists"}