<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: oracle</title>
    <description>The latest articles on DEV Community by oracle (@oracle6688).</description>
    <link>https://dev.to/oracle6688</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4243069%2Fbe733d9b-e2fd-47de-804f-340c73f80fab.png</url>
      <title>DEV Community: oracle</title>
      <link>https://dev.to/oracle6688</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oracle6688"/>
    <language>en</language>
    <item>
      <title>Building a Consistent AI Art Pipeline for a Tarot Content Site</title>
      <dc:creator>oracle</dc:creator>
      <pubDate>Sun, 15 Nov 2026 14:33:06 +0000</pubDate>
      <link>https://dev.to/oracle6688/building-a-consistent-ai-art-pipeline-for-a-tarot-content-site-2ed7</link>
      <guid>https://dev.to/oracle6688/building-a-consistent-ai-art-pipeline-for-a-tarot-content-site-2ed7</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;We run a small tarot reading site and needed a steady stream of original illustration for articles and social posts. Stock fantasy art is either overused, wrong in mood, or licensed awkwardly. Hiring an illustrator for every post didn't scale. The obvious answer was AI image generation — but anyone who has tried it for a &lt;em&gt;brand&lt;/em&gt; knows the real problem isn't generating a pretty picture, it's generating the same pretty picture, on demand, with a consistent palette and iconography.&lt;/p&gt;

&lt;p&gt;This post walks through the pipeline we settled on and what we learned about controlling style.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining a reproducible style
&lt;/h2&gt;

&lt;p&gt;Our anchor visual is what we call the "Moon Oracle" composition: a robed figure with long violet hair seated among clouds, holding a glowing astral sphere, framed by a row of moon phases across the top, lit candles in brass holders, and amethyst / quartz crystals at the base. Deep purples and gold carry the whole palette.&lt;/p&gt;

&lt;p&gt;To make that reproducible we broke it into a controlled prompt schema rather than freeform prose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subject block&lt;/strong&gt;: figure, pose, key prop (the star-and-orbit sphere), expression direction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iconography block&lt;/strong&gt;: moon phase arc, constellation embroidery on the robe, crystal clusters, candlesticks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Style block&lt;/strong&gt;: digital painting, luminous cell-shaded rendering, nebula backdrop, symmetric composition&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color block&lt;/strong&gt;: dominant violet/purple, gold accent stars, warm candle glow as the only warm light source&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One useful trick: treat the &lt;em&gt;color block&lt;/em&gt; as non-negotiable and the subject block as variable. That's what lets us generate variations — a card-specific figure, a different season backdrop — while everything still reads as the same brand on a feed thumbnail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generation and refinement loop
&lt;/h2&gt;

&lt;p&gt;The workflow is roughly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Draft with an open diffusion model, CFG around 7, heavy negative prompts (extra fingers, cluttered borders, watermark artifacts).&lt;/li&gt;
&lt;li&gt;Generate 8–16 candidates per concept at low resolution.&lt;/li&gt;
&lt;li&gt;Hand-select candidates on composition first, detail second — silhouettes and symmetry read at thumbnail size, small details don't.&lt;/li&gt;
&lt;li&gt;Upscale the survivors, then do targeted inpainting on hands, faces, and the sphere's orbit lines, which are the three things diffusion models reliably get wrong.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The moon phase arc is a good example of why inpainting matters. Models can paint &lt;em&gt;a&lt;/em&gt; moon, but a correctly ordered sequence — waxing crescents through full moon to waning — almost never comes out right from the base prompt. We composite or inpaint that band explicitly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results and tradeoffs
&lt;/h2&gt;

&lt;p&gt;What worked: throughput went from days per illustration to hours, and the consistent violet-and-gold look gives the site a recognizable visual identity that plain stock art never did.&lt;/p&gt;

&lt;p&gt;What we gave up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hands and jewelry still need manual fixes&lt;/strong&gt; on most finals. Budget for an inpainting pass every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Symbolic accuracy is on you.&lt;/strong&gt; If a moon phase arc is wrong, no model will care. Astrological and tarot imagery demands a human review step for correctness, not just aesthetics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over-uniformity risk.&lt;/strong&gt; Lean too hard on the style block and every image looks like a recolor of the last. We keep the subject block loose enough that compositions stay varied.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest lesson: treat AI art like code — define a spec (the prompt schema), automate the boring parts (batch generation, upscaling), and keep a human review gate for anything that claims to be symbolically meaningful.&lt;/p&gt;

&lt;p&gt;If you want to see the output of this pipeline in the wild, the illustrations live on our site: &lt;a href="https://oracleblooms.top" rel="noopener noreferrer"&gt;https://oracleblooms.top&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-generated 'Moon Oracle' illustration: a violet-haired robed figure seated among clouds holding a glowing star-orbit sphere, with a seven-phase moon arc overhead, constellation embroidery on the gow&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyu3a1ns9inxbnt1s5807.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyu3a1ns9inxbnt1s5807.jpg" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>design</category>
      <category>stablediffusion</category>
    </item>
    <item>
      <title>🔮 Every reading starts with the right deck. Oracle Blooms is an independent sh</title>
      <dc:creator>oracle</dc:creator>
      <pubDate>Sat, 14 Nov 2026 13:25:49 +0000</pubDate>
      <link>https://dev.to/oracle6688/every-reading-starts-with-the-right-deckoracle-blooms-is-an-independent-sh-1opb</link>
      <guid>https://dev.to/oracle6688/every-reading-starts-with-the-right-deckoracle-blooms-is-an-independent-sh-1opb</guid>
      <description>&lt;p&gt;🔮 Every reading starts with the right deck.&lt;/p&gt;

&lt;p&gt;Oracle Blooms is an independent shop for tarot lovers — offering tarot &amp;amp; oracle decks with delicate, meaningful artwork. Whether you pull one card every morning or you're just stepping into the mystical world, you'll find a deck that truly resonates with your intuition.&lt;/p&gt;

&lt;p&gt;We believe tarot is a mirror and a compass: it reflects your inner world and points the way forward. A deck that makes your heart skip at first sight makes every shuffle feel like ritual.&lt;/p&gt;

&lt;p&gt;Browse every deck in crisp detail before you choose — full card images, real textures, true colors.&lt;/p&gt;

&lt;p&gt;✨ Find the deck that matches your frequency: &lt;a href="https://oracleblooms.top" rel="noopener noreferrer"&gt;https://oracleblooms.top&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Tarot #OracleCards #WitchyVibes #TarotCommunity
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn0ncf806l6vu6mg2nx2s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn0ncf806l6vu6mg2nx2s.jpg" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>marketing</category>
    </item>
  </channel>
</rss>
