{"id":1386,"date":"2024-06-10T12:00:00","date_gmt":"2024-06-10T19:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=1386"},"modified":"2024-06-07T19:41:22","modified_gmt":"2024-06-08T02:41:22","slug":"self-hosted-ai-consistent-characters-part-2","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2024\/06\/10\/self-hosted-ai-consistent-characters-part-2\/","title":{"rendered":"Self-Hosted AI Consistent Characters: Part 2"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472 and today I am continuing work towards a consistent character using Stable Diffusion AI image generation software. Let\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Previously<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Last time I talked about making a consistent character on local hardware, I went over using Automatic 1111 (A1111) web interface (running on my father\u2019s computer), installing the ControlNet extension for Stable Diffusion and equipping it with models for OpenPose, and then using OpenPose to generate eight skeletons based of screenshots from Sonic Forces. All common enough stuff, but for context, I am following a tutorial on YouTube by Not4Talent \u201cCreate consistent characters with Stable diffusion!!\u201d [1].<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Character Switch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While I had previously been working on a Sonic fan character for my sister whom I am calling Ms. T, I switched over to working on my own character in the same setting, whom I\u2019m calling Smokey Fox. He\u2019s just spent several years studying in a foreign culture with a human sense of modesty, so I generated an orange Mobian fox with blue eyes and wearing red sneakers, blue jeans, and a red trench coat while applying a bunch of little things I picked up along the way, such as quality prompts and negative prompts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Along the way, the AI came up with details I liked, such as a white shirt, black gloves, black tipped ears, and some of the time, he even generated with a red thing on a glove I decided was some kind of accessory crystal. Quality was spotty. It took me a few attempts before I cleaned up the hair in his profile shots by prompting for a bald head. Only four poses consistently gave him a tail, but one was almost never usable. It also tried giving him a black tail tip a few times, but I didn\u2019t like that.<br><br>Along the way, I grabbed pictures with poses I liked and stacked them in GIMP. Because I was using a fixed seed, I was able to assemble more poses until I had eight portraits I\u2019d touched up. Notably: I had to extend his coat on his behind shot, his shoes needed a lot of help, and I had to draw one of his tails from scratch. The crystal thing on his glove also got interesting to transfer around, and I did have to draw it myself a few times. During this process, I took screenshots of my work in progress and shared them on Discord.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">No Auto Save<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Disaster!! At some point, my computer randomly crashed. I don\u2019t remember the details, but it was several days later when I returned to work on Smokey that I learned that GIMP doesn\u2019t auto-save, like LibreOffice just as I mentioned it. Thankfully, I had the screenshots to work with. I also lost my original prompts through a side project where I helped my mother troll a friend from elementary regarding a Noah\u2019s Ark baby quilt she made for her. In total, I made an island chain, a forest scene, and just as it was about to arrive, I made up a beach scene with the Taco Bell logo embedded using a ControlNet model for making fancy QR codes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Back to Smokey Fox, the next step in the tutorial was upscaling. Pain followed. The Not4Talent tutorial [1] didn\u2019t make sense to me, so I spent a day or two unenthusiastically bumbling around trying to learn enough to feel ready to post. I played around with several ControlNet models. Most are variations on making white-on-black detail maps. One late night session landed me an upscale tutorial by Olivio Sarikas [2] that clicked with me. Similarly to other tutorials, A1111 has [re?]moved stuff around between updates in the 6 months to a year since it was popular to introduce ControlNet \u2013 not to mention various plugins which may differ between our setups. Olivio\u2019s tutorial rescued my project, and I got back to having fun cleaning up details with GIMP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I may need to take a closer look at Forge instead of A1111. A1111 has a known bug where it has trouble unloading models, but while I was playing with various ControlNet models, I managed to defeat the vRAM capacity on the GPU.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Forge will require a virtual environment, which I don\u2019t know how to do properly yet. What tutorial would you recommend? I look forward to hearing your answers in the comments below or on my <a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/discord-invite\/\" target=\"_blank\" rel=\"noreferrer noopener\">Socials<\/a>!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Work Cited<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">[1] Not4Talent, \u201cCreate consistent characters with Stable diffusion!!,\u201d<em>youtube.com<\/em>, Jun. 2, 2023. [Online]. Available:<a href=\"https:\/\/youtu.be\/aBiGYIwoN_k\">https:\/\/youtu.be\/aBiGYIwoN_k<\/a> [Accessed Jun. 7, 2024].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[2] O. Sarikas, \u201cULTIMATE Upscale for SLOW GPUs &#8211; Fast Workflow, High Quality, A1111.\u201d<em>youtube.com<\/em>, May 6, 2023 [Online]. Available:<a href=\"https:\/\/youtu.be\/3z4MKUqFEUk\">https:\/\/youtu.be\/3z4MKUqFEUk<\/a>. [Accessed Jun. 7, 2024].<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472 and today I am continuing work towards a consistent character using Stable Diffusion AI image generation software. Let\u2019s get started! Previously Last time I talked about making a consistent character on local hardware, I went over using Automatic 1111 (A1111) web interface (running on my father\u2019s &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2024\/06\/10\/self-hosted-ai-consistent-characters-part-2\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Self-Hosted AI Consistent Characters: Part 2&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[268,355,365],"tags":[371,273,366],"class_list":["post-1386","post","type-post","status-publish","format-standard","hentry","category-ai-image-generation","category-artificial-intelligence","category-image-generation","tag-a1111","tag-ai-image-generation","tag-controlnet"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=1386"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1386\/revisions"}],"predecessor-version":[{"id":1387,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1386\/revisions\/1387"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=1386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=1386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=1386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}