{"id":19204,"date":"2022-11-20T09:57:50","date_gmt":"2022-11-20T09:57:50","guid":{"rendered":"https:\/\/quentinlengele.com\/?p=19204"},"modified":"2025-10-13T16:39:28","modified_gmt":"2025-10-13T16:39:28","slug":"opus","status":"publish","type":"post","link":"https:\/\/quentinlengele.com\/index.php\/2022\/11\/20\/opus\/","title":{"rendered":"OPUS"},"content":{"rendered":"<p dir=\"auto\">Opus is a Python+JS+MySQL toolset I created to be able to iterate faster with both Disco-Diffusion and Stable-Diffusion models and samplers,&#8230; up to 4 GPUs drawing at the same time.<!--more--><\/p>\n<p dir=\"auto\">Playing with these amazing Python libs is so fun and I managed to get DD 5.6 and SD 1.4 working on the same environment.<\/p>\n<p dir=\"auto\">It&#8217;s quite handy to switch from one sampler\/model to another. Kill the process you don&#8217;t like. Restart it with the same parameters + a few changes. Reorder your outputs by category, keep track of everything in a well structured database. Here is a short preview:<\/p>\n<div style=\"padding: 56.25% 0 0 0; position: relative;\"><iframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" title=\"comp-main\" src=\"https:\/\/player.vimeo.com\/video\/772970746?h=8e1227e829&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<p>&nbsp;<\/p>\n<h2 dir=\"auto\">INTERFACE<\/h2>\n<p>The app and tools are running on Python but I created a nice Web UI to control the workflow easily.<br \/>\nThe interface is mobile ready so I can start rendering order from anywhere.<\/p>\n<div class=\"row list-container\"><div class=\"wp-caption col-md-6\"><a class=\"thumbnail magnific-gallery\" href=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg\" data-links=\" https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg \"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07-1024x640.jpg\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07-1024x640.jpg 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07-300x188.jpg 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07-768x480.jpg 768w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07-1536x960.jpg 1536w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><div class=\"wp-caption col-md-6\"><a class=\"thumbnail magnific-gallery\" href=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg\" data-links=\" https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg \"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03-1024x640.jpg\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03-1024x640.jpg 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03-300x188.jpg 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03-768x480.jpg 768w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03-1536x960.jpg 1536w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><div class=\"wp-caption col-md-6\"><a class=\"thumbnail magnific-gallery\" href=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg\" data-links=\" https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg \"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04-1024x640.jpg\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04-1024x640.jpg 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04-300x188.jpg 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04-768x480.jpg 768w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04-1536x960.jpg 1536w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><div class=\"wp-caption col-md-6\"><a class=\"thumbnail magnific-gallery\" href=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg\" data-links=\" https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg \"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02-1024x640.jpg\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02-1024x640.jpg 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02-300x188.jpg 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02-768x480.jpg 768w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02-1536x960.jpg 1536w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><div class=\"wp-caption col-md-6\"><a class=\"thumbnail magnific-gallery\" href=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg\" data-links=\" https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg \"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01-1024x640.jpg\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01-1024x640.jpg 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01-300x188.jpg 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01-768x480.jpg 768w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01-1536x960.jpg 1536w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><div class=\"wp-caption col-md-6\"><a class=\"thumbnail magnific-gallery\" href=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg\" data-links=\" https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_01.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_02.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_04.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_03.jpg,https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_07.jpg \"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06-1024x640.jpg\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06-1024x640.jpg 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06-300x188.jpg 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06-768x480.jpg 768w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06-1536x960.jpg 1536w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/opus_06.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><\/div>\n<h2>ANIMATIONS<\/h2>\n<p>Animation mode like &#8220;Video Input&#8221; or &#8220;3D&#8221; is also now working with SD (I managed to port PyTorch3D and MiDaS model). Even if I still have a few issues with pytorch3d results, here are some samples:<\/p>\n<div style=\"padding: 56.25% 0 0 0; position: relative;\"><iframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" title=\"PyTorch3D Animation\" src=\"https:\/\/player.vimeo.com\/video\/772969408?h=8a9e17c768&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<p>&nbsp;<\/p>\n<h2>OTHER EXPERIMENTS<\/h2>\n<p>These results are funny but far from perfect and quite random for sure&#8230;<\/p>\n<p>The first sample is an animated version of the most &#8220;hello world&#8221; prompt: &#8220;Singular lighthouse, shining its light across a tumultuous sea&#8221; <span class=\"x3nfvp2 x1j61x8r x1fcty0u xdj266r xhhsvwb xat24cr xgzva0m xxymvpz xlup9mm x1kky2od\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/static.xx.fbcdn.net\/images\/emoji.php\/v9\/tbc\/1\/16\/1f30a.png\" alt=\"&#x1f30a;\" width=\"16\" height=\"16\" \/>\u00a0<\/span><\/p>\n<p>The second is a test about 3D motion and transitions with PyTorch3D.<\/p>\n<p dir=\"auto\">It&#8217;s quite a problem to use some simple sequencer logic on extracted video frames with the current stochastic_encode method from the ddim sampler (from SD) because you have to lower the sampling strength too much in order to keep the previous video frame in good shape. But then, you can&#8217;t have too many nice unexpected details&#8230;\u00a0However, I hope I can improve this later ^^<\/p>\n<div style=\"width: 49%; padding: 0 10pt 0 0; display: inline-block;\">\n<div style=\"padding: 100% 0 0 0; position: relative;\"><iframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" title=\"ORB of AI\" src=\"https:\/\/player.vimeo.com\/video\/772974085?h=b4de87f819&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<\/div>\n<div style=\"width: 49%; padding: 0 10pt 0 0; display: inline-block;\">\n<div style=\"padding: 100% 0 0 0; position: relative;\"><iframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" title=\"comp-main_hd\" src=\"https:\/\/player.vimeo.com\/video\/772974508?h=c1e2149278&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h2>QOMICS<\/h2>\n<p>Qomics is dedicated to friends, partners and colleagues that I turned into super heroes, necromancer vilains, cybernetic humans, comics\/manga characters, movie stars,\u2026<\/p>\n<p><a href=\"https:\/\/qomics.quentinlengele.com\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-19259 size-full\" src=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/qomics_sample.png\" alt=\"\" width=\"1158\" height=\"483\" srcset=\"https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/qomics_sample.png 1158w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/qomics_sample-300x125.png 300w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/qomics_sample-1024x427.png 1024w, https:\/\/quentinlengele.com\/wp-content\/uploads\/2022\/11\/qomics_sample-768x320.png 768w\" sizes=\"auto, (max-width: 1158px) 100vw, 1158px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Opus is a Python+JS+MySQL toolset I created to be able to iterate faster with both Disco-Diffusion and Stable-Diffusion models and samplers,&#8230; up to 4 GPUs drawing at the same time.<\/p>\n","protected":false},"author":1,"featured_media":19261,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,22],"tags":[],"class_list":["post-19204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gpu","category-python"],"_links":{"self":[{"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/posts\/19204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/comments?post=19204"}],"version-history":[{"count":53,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/posts\/19204\/revisions"}],"predecessor-version":[{"id":20006,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/posts\/19204\/revisions\/20006"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/media\/19261"}],"wp:attachment":[{"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/media?parent=19204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/categories?post=19204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quentinlengele.com\/index.php\/wp-json\/wp\/v2\/tags?post=19204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}