diff --git a/multisrc/overrides/mangathemesia/constellarscans/additional.gradle b/multisrc/overrides/mangathemesia/constellarscans/additional.gradle
new file mode 100644
index 000000000..2505114b3
--- /dev/null
+++ b/multisrc/overrides/mangathemesia/constellarscans/additional.gradle
@@ -0,0 +1,3 @@
+dependencies {
+    implementation(project(':lib-dataimage'))
+}
\ No newline at end of file
diff --git a/multisrc/overrides/mangathemesia/constellarscans/src/ConstellarScans.kt b/multisrc/overrides/mangathemesia/constellarscans/src/ConstellarScans.kt
index 94fab6996..8dde3ec5e 100644
--- a/multisrc/overrides/mangathemesia/constellarscans/src/ConstellarScans.kt
+++ b/multisrc/overrides/mangathemesia/constellarscans/src/ConstellarScans.kt
@@ -10,6 +10,7 @@ import android.webkit.ConsoleMessage
 import android.webkit.JavascriptInterface
 import android.webkit.WebChromeClient
 import android.webkit.WebView
+import eu.kanade.tachiyomi.lib.dataimage.DataImageInterceptor
 import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
 import eu.kanade.tachiyomi.network.GET
 import eu.kanade.tachiyomi.network.interceptor.rateLimit
@@ -29,6 +30,7 @@ import java.util.concurrent.CountDownLatch
 class ConstellarScans : MangaThemesia("Constellar Scans", "https://constellarscans.com", "en") {
 
     override val client = super.client.newBuilder()
+        .addInterceptor(DataImageInterceptor())
         .rateLimit(1, 3)
         .build()
 
@@ -85,23 +87,15 @@ class ConstellarScans : MangaThemesia("Constellar Scans", "https://constellarsca
         return List(length) { charPool.random() }.joinToString("")
     }
 
+    private val funkyScript by lazy {
+        client.newCall(GET(FUNKY_SCRIPT_URL)).execute().body!!.string()
+    }
+
     @SuppressLint("SetJavaScriptEnabled")
     override fun pageListParse(document: Document): List<Page> {
         val interfaceName = randomString()
+        document.body().prepend("<script>${funkyScript.replace("\$interfaceName", interfaceName)}</script>")
 
-        document.selectFirst("article").append(
-            """
-                <script>
-                    const observer = new MutationObserver(mutations => {
-                        mutations.forEach(mutation => {
-                            [...mutation.addedNodes].filter(c => c instanceof HTMLImageElement && c.src.slice(-3) !== "svg")
-                                .forEach(c => window.$interfaceName.passSingleImage(c.src))
-                        })
-                    })
-                    observer.observe(document.querySelector("article"), { childList: true, subtree: true })
-                </script>
-            """.trimIndent()
-        )
         val handler = Handler(Looper.getMainLooper())
         val latch = CountDownLatch(1)
         val jsInterface = JsObject()
@@ -119,7 +113,7 @@ class ConstellarScans : MangaThemesia("Constellar Scans", "https://constellarsca
 
             webview.webChromeClient = object : WebChromeClient() {
                 override fun onProgressChanged(view: WebView?, newProgress: Int) {
-                    if (newProgress >= 90) {
+                    if (newProgress == 100) {
                         latch.countDown()
                     }
                 }
@@ -158,5 +152,6 @@ class ConstellarScans : MangaThemesia("Constellar Scans", "https://constellarsca
     companion object {
         const val UA_DB_URL =
             "https://cdn.jsdelivr.net/gh/mimmi20/browscap-helper@30a83c095688f40b9eaca0165a479c661e5a7fbe/tests/0002999.json"
+        val FUNKY_SCRIPT_URL = "https://cdn.jsdelivr.net/npm/@beerpsi/funky-script/constellar.js"
     }
 }
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt
index 2c23f606d..f271ef6b8 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt
@@ -25,7 +25,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
         SingleLang("Azure Scans", "https://azuremanga.com", "en", overrideVersionCode = 1),
         SingleLang("Boosei", "https://boosei.net", "id", overrideVersionCode = 2),
         SingleLang("Clayrer", "https://clayrer.net", "es"),
-        SingleLang("Constellar Scans", "https://constellarscans.com", "en", isNsfw = true, overrideVersionCode = 12),
+        SingleLang("Constellar Scans", "https://constellarscans.com", "en", isNsfw = true, overrideVersionCode = 13),
         SingleLang("Cosmic Scans", "https://cosmicscans.com", "en", overrideVersionCode = 1),
         SingleLang("Diskus Scan", "https://diskusscan.com", "pt-BR", overrideVersionCode = 7),
         SingleLang("Dojing.net", "https://dojing.net", "id", isNsfw = true, className = "DojingNet"),