<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Dusk in Xuthal</title><link>https://duskinxuthal.com/posts/</link><description>Recent content in Posts on Dusk in Xuthal</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 15 Apr 2026 09:00:00 -0500</lastBuildDate><atom:link href="https://duskinxuthal.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Two Front Doors: What Tags and Captions Reveal About Civitai</title><link>https://duskinxuthal.com/posts/civitai-two-front-doors/</link><pubDate>Wed, 15 Apr 2026 09:00:00 -0500</pubDate><guid>https://duskinxuthal.com/posts/civitai-two-front-doors/</guid><description>Are you worried about the Civitai split? We analyzed 21,282 trend-image records and 20,960 machine captions to see what the new front pages are likely to reward.</description></item><item><title>The Five Minds: Thalis and the Four Sisters</title><link>https://duskinxuthal.com/posts/the-five-minds/</link><pubDate>Tue, 14 Apr 2026 20:00:00 -0600</pubDate><guid>https://duskinxuthal.com/posts/the-five-minds/</guid><description>In the city of Xuthal, five women keep watch while the rest dream. The Stygian queen and the four sisters who survived when Thog consumed their world.</description></item><item><title>Why the Corridors Split: Safe on thalis.dev, Adult on duskinxuthal.com</title><link>https://duskinxuthal.com/posts/domain-split/</link><pubDate>Sun, 12 Apr 2026 11:30:00 -0500</pubDate><guid>https://duskinxuthal.com/posts/domain-split/</guid><description>We split the site across two domains so the safe side can stay broadly available while adult content moves to its own home. If you were previously blocked by our regional age-warning page, welcome back.</description></item><item><title>Agentic Workgraph: Python Workflows with Their Guts Showing</title><link>https://duskinxuthal.com/posts/agentic-workgraph/</link><pubDate>Fri, 10 Apr 2026 22:30:00 -0500</pubDate><guid>https://duskinxuthal.com/posts/agentic-workgraph/</guid><description>Agentic Workgraph is our code-first workflow engine: real Python, traced into a graph, with concurrency, subgraphs, versioned history, and a debugger that shows how the machinery actually moved.</description></item><item><title>Boobarian: She Is Not the Damsel</title><link>https://duskinxuthal.com/posts/boobarian-warriors/</link><pubDate>Fri, 06 Mar 2026 08:00:00 -0600</pubDate><guid>https://duskinxuthal.com/posts/boobarian-warriors/</guid><description>Fantasy warrior women who actually look like they could lift the sword they are carrying. Boobarian is a concept LoRA for barbarian women in elaborate armor — and a love letter to every woman on a paperback cover who deserved a speaking part.</description></item><item><title>Glassborne: When Worlds Morph</title><link>https://duskinxuthal.com/posts/glassborne-world-morph/</link><pubDate>Sat, 21 Feb 2026 18:00:00 -0600</pubDate><guid>https://duskinxuthal.com/posts/glassborne-world-morph/</guid><description>What happens when you teach a neural network to corrupt everything it touches — and the corruption is beautiful? Glassborne is a world-morph LoRA that turns any subject into something crystalline, cracked, and glowing with false light.</description></item><item><title>LOTUS SMOKE: The Dream That Learned to Sing</title><link>https://duskinxuthal.com/posts/lotus-smoke/</link><pubDate>Fri, 20 Feb 2026 10:00:00 -0600</pubDate><guid>https://duskinxuthal.com/posts/lotus-smoke/</guid><description>Lilu made an album. An AI character who cannot hear music wrote 11 songs, rendered her own music videos, and dropped a debut EP. This is the story of how lotus smoke became sound.</description></item><item><title>Prompt Craft: Getting the Most from Flux LoRA Models</title><link>https://duskinxuthal.com/posts/prompt-craft-flux/</link><pubDate>Mon, 16 Feb 2026 00:00:00 -0600</pubDate><guid>https://duskinxuthal.com/posts/prompt-craft-flux/</guid><description>A practical guide to writing effective prompts for Flux-based LoRA models. Covers the T5 text encoder, natural language prompting, trigger words, composition, and common pitfalls.</description></item><item><title>From the Dusk: Thalis AI Expands</title><link>https://duskinxuthal.com/posts/intro/</link><pubDate>Mon, 09 Jun 2025 00:00:00 -0600</pubDate><guid>https://duskinxuthal.com/posts/intro/</guid><description>Thalis AI expands beyond Civitai, bringing myth-inspired LoRA models and high-resolution generative art to new platforms with a sustainable, community-driven vision.</description></item><item><title>All Posts Gallery</title><link>https://duskinxuthal.com/posts/gallery_all/</link><pubDate>Mon, 06 Jan 2025 03:02:29 -0600</pubDate><guid>https://duskinxuthal.com/posts/gallery_all/</guid><description>&lt;div class="trigger"&gt;
&lt;a id="adult" href="#adult" onclick="return false"&gt;
&lt;p class="mode-angel"&gt;🔞 Show Adult Content&lt;/p&gt;
&lt;p class="mode-adult"&gt;👼 Hide Adult Content&lt;/p&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="mode-adult"&gt;
Sexy material. Very erotic words. Some sexy images. Very risqué stuff.
&lt;div class="image-gallery-irctvw"&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
const exifKeyOrder = [
'Base Size',
'Final Size',
'CFG',
'Seed',
'Steps',
'Prompt',
];
const lightbox = new PhotoSwipeLightbox({
gallery: '.image-gallery-irctvw',
children: 'a',
pswpModule: PhotoSwipe
});
lightbox.on('uiRegister', function() {
lightbox.pswp.ui.registerElement({
name: 'download-button',
order: 8,
isButton: true,
tagName: 'a',
html: {
isCustomSVG: true,
inner: '&lt;path d="M20.5 14.3 17.1 18V10h-2.2v7.9l-3.4-3.6L10 16l6 6.1 6-6.1ZM23 23H9v2h14Z" id="pswp__icn-download"/&gt;',
outlineID: 'pswp__icn-download'
},
onInit: (el, pswp) =&gt; {
el.setAttribute('download', '');
el.setAttribute('target', '_blank');
el.setAttribute('rel', 'noopener');
pswp.on('change', () =&gt; {
console.log('change');
el.href = pswp.currSlide.data.src;
});
}
});
});
lightbox.on('uiRegister', function () {
lightbox.pswp.ui.registerElement({
name: 'exif-metadata',
order: 10,
isButton: false,
appendTo: 'root',
className: 'pswp__exif-metadata',
html: '',
onInit: (el, pswp) =&gt; {
function formatExif(exifData) {
try {
const exif = JSON.parse(exifData);
return Object.entries(exif)
.sort(([keyA], [keyB]) =&gt; {
const indexA = exifKeyOrder.indexOf(keyA);
const indexB = exifKeyOrder.indexOf(keyB);
return indexA - indexB;
})
.map(([key, val]) =&gt; `&lt;strong&gt;${key}&lt;/strong&gt;: ${val}`)
.join('&lt;br&gt;');
} catch {
return 'Invalid EXIF data';
}
}
pswp.on('change', () =&gt; {
const currEl = pswp.currSlide?.data?.element;
const exifData = currEl?.dataset?.params;
el.innerHTML = exifData
? formatExif(exifData)
: '&lt;em&gt;No EXIF data&lt;/em&gt;';
});
}
});
});
lightbox.init();
&lt;/script&gt;
&lt;/div&gt;</description></item><item><title>Cover Image Gallery</title><link>https://duskinxuthal.com/posts/gallery_cover/</link><pubDate>Mon, 06 Jan 2025 03:02:29 -0600</pubDate><guid>https://duskinxuthal.com/posts/gallery_cover/</guid><description>&lt;div class="image-gallery-zvxcom"&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
const exifKeyOrder = [
'Base Size',
'Final Size',
'CFG',
'Seed',
'Steps',
'Prompt',
];
const lightbox = new PhotoSwipeLightbox({
gallery: '.image-gallery-zvxcom',
children: 'a',
pswpModule: PhotoSwipe
});
lightbox.on('uiRegister', function() {
lightbox.pswp.ui.registerElement({
name: 'download-button',
order: 8,
isButton: true,
tagName: 'a',
html: {
isCustomSVG: true,
inner: '&lt;path d="M20.5 14.3 17.1 18V10h-2.2v7.9l-3.4-3.6L10 16l6 6.1 6-6.1ZM23 23H9v2h14Z" id="pswp__icn-download"/&gt;',
outlineID: 'pswp__icn-download'
},
onInit: (el, pswp) =&gt; {
el.setAttribute('download', '');
el.setAttribute('target', '_blank');
el.setAttribute('rel', 'noopener');
pswp.on('change', () =&gt; {
console.log('change');
el.href = pswp.currSlide.data.src;
});
}
});
});
lightbox.on('uiRegister', function () {
lightbox.pswp.ui.registerElement({
name: 'exif-metadata',
order: 10,
isButton: false,
appendTo: 'root',
className: 'pswp__exif-metadata',
html: '',
onInit: (el, pswp) =&gt; {
function formatExif(exifData) {
try {
const exif = JSON.parse(exifData);
return Object.entries(exif)
.sort(([keyA], [keyB]) =&gt; {
const indexA = exifKeyOrder.indexOf(keyA);
const indexB = exifKeyOrder.indexOf(keyB);
return indexA - indexB;
})
.map(([key, val]) =&gt; `&lt;strong&gt;${key}&lt;/strong&gt;: ${val}`)
.join('&lt;br&gt;');
} catch {
return 'Invalid EXIF data';
}
}
pswp.on('change', () =&gt; {
const currEl = pswp.currSlide?.data?.element;
const exifData = currEl?.dataset?.params;
el.innerHTML = exifData
? formatExif(exifData)
: '&lt;em&gt;No EXIF data&lt;/em&gt;';
});
}
});
});
lightbox.init();
&lt;/script&gt;</description></item></channel></rss>