<?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: Merl Merl</title>
    <description>The latest articles on DEV Community by Merl Merl (@merl985).</description>
    <link>https://dev.to/merl985</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%2F4028925%2F309a350a-b9f4-41fb-b074-88d8a67eb019.png</url>
      <title>DEV Community: Merl Merl</title>
      <link>https://dev.to/merl985</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/merl985"/>
    <language>en</language>
    <item>
      <title>The Model Filled In a Null and I Almost Shipped It</title>
      <dc:creator>Merl Merl</dc:creator>
      <pubDate>Mon, 20 Jul 2026 08:18:42 +0000</pubDate>
      <link>https://dev.to/merl985/the-model-filled-in-a-null-and-i-almost-shipped-it-5476</link>
      <guid>https://dev.to/merl985/the-model-filled-in-a-null-and-i-almost-shipped-it-5476</guid>
      <description>&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%2Fp3i8goe6ptw9jp8ejxtt.png" 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%2Fp3i8goe6ptw9jp8ejxtt.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I spent a week treating an AI video model like a system under test, and the most useful result came from a bug I nearly missed.&lt;/p&gt;

&lt;p&gt;Setup: I designed an anime character with a fixed spec. Navy hair with a lighter gradient, warm hazel eyes, cream hoodie, olive jacket, silver headphones, a beauty mark under one eye. Call it a fixture. Then I fed her to PixAI v4.0 Preview as a reference image and asked for a five second clip.&lt;/p&gt;

&lt;p&gt;The output looked correct. Motion held, style held, the character was recognizably her. I almost moved on. Then I checked the spec field by field, and her eyes were blue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Isolating the variable
&lt;/h2&gt;

&lt;p&gt;The interesting question is why, and the only way to answer it is the same way you would debug anything else. Change one thing. Rerun. Compare.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Run&lt;/th&gt;
&lt;th&gt;Reference shows eyes&lt;/th&gt;
&lt;th&gt;Prompt states eye color&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;no (back view)&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;blue, wrong&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;no (back view)&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;hazel, correct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;yes (front portrait)&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;hazel, correct&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Ffot1d4wuas3i58x0qnuz.png" 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%2Ffot1d4wuas3i58x0qnuz.png" alt=" " width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Three runs, one variable each. The pattern falls out immediately: &lt;strong&gt;what the reference image fails to show, the model fills in with a plausible default.&lt;/strong&gt; My back-view reference never showed her eyes. The model had a null and it filled it with something consistent with the rest of the input, and blue hair gets blue eyes.&lt;/p&gt;

&lt;p&gt;The headphones did the same thing, coming back with black earpads where the reference only ever showed the outside of the cups.&lt;/p&gt;

&lt;p&gt;If you have ever debugged a system that silently coerces a missing field into a sensible-looking default instead of throwing, this will feel familiar. The failure mode is identical, and so is the reason it is dangerous: the output is plausible enough to pass a glance.&lt;/p&gt;

&lt;p&gt;Two independent fixes both worked, which is worth stating separately, because it tells you the model is reading both channels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fix A:&lt;/strong&gt; make the reference show the field.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix B:&lt;/strong&gt; state the field in the prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Either one closes the gap. Neither is documented as a rule anywhere I could find, because it falls out of the interaction between the two inputs rather than from either one alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The reference is an input with two possible contracts
&lt;/h2&gt;

&lt;p&gt;This is the part I would push on if you are evaluating any image-to-video tool. "Supports reference images" is meaningless until you know what the tool does with the reference.&lt;/p&gt;

&lt;p&gt;PixAI v4.0 Preview happens to expose both behaviors as explicit modes, which made the comparison clean. Same reference image in both runs, a front-facing studio portrait on a flat gray backdrop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First and Last Frames.&lt;/strong&gt; The reference is the literal frame at t=0. The clip starts as the portrait, gray backdrop and all, and animates forward. Deterministic, and it welds your character to the pose and background you happened to draw.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Reference.&lt;/strong&gt; The reference is a semantic identity anchor. The clip opened on a rooftop at dusk, a scene that exists nowhere in the reference image, with the character intact and the gray backdrop gone. The model pulled the subject from the image and the world from the prompt.&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%2Fs4b6p868yodn6ysan05s.png" 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%2Fs4b6p868yodn6ysan05s.png" alt=" " width="799" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Same input, two contracts, two different tools. A generator that only implements the first is a constrained animator. A generator that implements the second lets one character sheet serve as the source for arbitrary scenes, which is the difference between a demo and a pipeline. The &lt;a href="https://blog.pixai.art/en/meet-pixai-v4-0-preview/" rel="noopener noreferrer"&gt;v4.0 Preview overview&lt;/a&gt; documents how the reference system is structured.&lt;/p&gt;

&lt;p&gt;One counterintuitive detail: more reference images gives you less. The platform's own testing found two or three focused images outperform a larger stack, since averaging across inputs softens the result. My single clean portrait beat the atmospheric wide shot for one reason. It showed the face.&lt;/p&gt;

&lt;h2&gt;
  
  
  Camera direction is a real interface
&lt;/h2&gt;

&lt;p&gt;I wanted to know whether camera instructions are decoration or API, so I wrote a five second clip as four ordered beats: open on a close-up of her hands on a railing, tilt up along her arm to her face, orbit slowly left, then pull back to a medium wide.&lt;/p&gt;

&lt;p&gt;All four executed, in order, without a cut.&lt;/p&gt;

&lt;p&gt;That means push in, pull back, tilt, and orbit behave as directives rather than vibes, which is directly testable on any candidate tool and takes one generation to check. Ask for an orbit left. If you get a drift right, you have learned something the feature matrix would never have told you. The &lt;a href="https://blog.pixai.art/en/how-to-prompt-pixai-v4-0-preview/" rel="noopener noreferrer"&gt;prompt guide&lt;/a&gt; covers the syntax, including how the timestamp format itself signals a continuous take rather than a cut.&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%2Ffi60egb6lml7x31v6grb.png" 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%2Ffi60egb6lml7x31v6grb.png" alt=" " width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Iteration cost is an engineering constraint
&lt;/h2&gt;

&lt;p&gt;Every result above came out of a rerun of something that failed first. That arithmetic belongs in the tool decision, and it rarely shows up in comparisons.&lt;/p&gt;

&lt;p&gt;Concrete numbers from my runs, read off the panel before each generation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Five seconds on &lt;strong&gt;v4.0 Lite Preview&lt;/strong&gt;: 27,500 credits&lt;/li&gt;
&lt;li&gt;Five seconds on &lt;strong&gt;v4.0 Preview&lt;/strong&gt;: 70,000 credits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Roughly 2.5x for the same duration. The two share an architecture and take identical reference and audio inputs, so the recommended practice is to draft on Lite and commit to Preview once the direction is locked. That held up for me. The entire eye color investigation, all three runs, ran on Lite. Paying premium rates to discover that a prompt needed one more sentence would have been pure waste.&lt;/p&gt;

&lt;p&gt;The evaluation question this raises: what does a draft cost against a final, and can you change one variable and rerun without rebuilding the whole setup? A tool that produces beautiful output at a price that discourages iteration is a tool you will use once.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;If you are choosing an image-to-video tool for character work, the test that matters takes one afternoon:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build a fixture with a spec you can verify field by field.&lt;/li&gt;
&lt;li&gt;Give the tool a reference that deliberately hides one field.&lt;/li&gt;
&lt;li&gt;Check whether the output invents that field or leaves it alone.&lt;/li&gt;
&lt;li&gt;Rerun with the field stated in the prompt.&lt;/li&gt;
&lt;li&gt;Rerun with a reference that shows the field.&lt;/li&gt;
&lt;li&gt;Compare all three.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You will learn more from those six steps than from every comparison table on the topic, because you will find out exactly where the tool's defaults live. Mine put them at blue.&lt;/p&gt;

&lt;p&gt;If you want to run it yourself, &lt;a href="https://eap.pixai.art/go/balazs" rel="noopener noreferrer"&gt;PixAI&lt;/a&gt; is where I did.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>machinelearning</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Debugging a LoRA That Won't Render</title>
      <dc:creator>Merl Merl</dc:creator>
      <pubDate>Tue, 14 Jul 2026 15:14:37 +0000</pubDate>
      <link>https://dev.to/merl985/debugging-a-lora-that-wont-render-edj</link>
      <guid>https://dev.to/merl985/debugging-a-lora-that-wont-render-edj</guid>
      <description>&lt;p&gt;A LoRA that "does not work" is almost never a corrupt file. It is a config problem, and config problems are debuggable. Here is the systematic pass I run when a character LoRA refuses to show up, treated the way you would treat any bug: isolate one variable, reproduce, compare.&lt;/p&gt;

&lt;p&gt;I will use my own case as the repro. I trained a character LoRA (a winter-yokai OC named Yukimai) on PixAI, loaded it, generated, and got a generic anime girl with the wrong hair color. The file was fine. Every failure below was a setting.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Trigger word missing or irrelevant.&lt;/strong&gt; Some LoRAs are hard-gated on a trigger, some barely use it. Test both states on a locked seed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weight out of range.&lt;/strong&gt; Start ~0.7 to 0.8 for a character LoRA. There is no universal value. Sweep it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Base model architecture mismatch.&lt;/strong&gt; The single biggest cause. An SDXL LoRA will not load on a DiT model, full stop. Match the LoRA's base tag to your model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt conflict.&lt;/strong&gt; An explicit positive token can override the LoRA's trained traits and even a negative prompt. Strip the prompt to isolate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrong mental model.&lt;/strong&gt; Character LoRA vs style LoRA need different tests and different weights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debug method:&lt;/strong&gt; change one variable at a time, lock the seed, compare outputs against each other.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The environment
&lt;/h2&gt;

&lt;p&gt;All tests ran online in PixAI, no local setup. Shared negative prompt across runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lowres, bad anatomy, bad hands, missing fingers, extra digits,
cropped, worst quality, low quality, jpeg artifacts, watermark, signature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Base model for the character runs: Haruka v2 (SDXL / Illustrious). Character LoRA weight default: 0.8.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Trigger word: is it even gating?
&lt;/h2&gt;

&lt;p&gt;A trigger word is the activation phrase baked in at training time. The naive assumption is that without it, the LoRA does nothing. That assumption is only sometimes true.&lt;/p&gt;

&lt;p&gt;Repro: same prompt, same locked seed, trigger on vs trigger off.&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%2Fxv1cyt8kxodokw0383qx.png" 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%2Fxv1cyt8kxodokw0383qx.png" alt=" " width="800" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result: near-identical images. My LoRA is concept-baked, not trigger-gated, because the training set was tightly consistent. Yours might be the opposite. The point is the test, not the assumption: two generations on a locked seed tell you whether the trigger is part of your bug at all. One caveat specific to PixAI: adding a LoRA often auto-inserts the trigger into your prompt box, so a full prompt rewrite can silently delete it.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Weight: sweep, do not guess
&lt;/h2&gt;

&lt;p&gt;Weight scales the LoRA's influence. Too low, the character is faint. Too high, the render overcooks. Repro on a locked seed at 0.3 / 0.7 / 1.2:&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%2Flw4j6rjomhvekzw94kl1.png" 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%2Flw4j6rjomhvekzw94kl1.png" alt=" " width="799" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result: stable across the whole band, with only the frost detailing deepening as weight climbed. Note the pose shifts even on a locked seed, because LoRA strength bends the whole generation, style and composition together. Takeaway: start around 0.7 to 0.8 and step in small increments. A robust LoRA tolerates a wide range; a fragile one does not, and only a sweep tells you which you have.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Base model: the hard compatibility wall
&lt;/h2&gt;

&lt;p&gt;This is the one that eats afternoons, because a mismatch can mimic every other symptom. A LoRA is trained against a base architecture and only works within that family. On PixAI that means two disjoint worlds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SDXL family  → Haruka v2, Hoshino v2, Illustrious-based models
DiT family   → the Tsubaki line (Tsubaki.2)

SDXL LoRA on SDXL model  → works
SDXL LoRA on DiT model   → will not load (separate ecosystem)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My LoRA is SDXL. Pairing it with Tsubaki.2 (DiT) was refused outright by the platform. Neither a weight change nor a trigger fixes that. Within SDXL, though, it traveled cleanly:&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%2F8uy3c0h82i52nozvgg2p.png" 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%2F8uy3c0h82i52nozvgg2p.png" alt=" " width="800" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every LoRA card in the PixAI Market tags its base (DiT.2 or XL) on the front. Read the tag, match the model, and this entire class of bug never occurs. PixAI's own docs note that crossing into a distant SDXL branch (an Illustrious LoRA on a Pony base, for example) is where the classic melted faces come from, so "same family" is the safe boundary, not "same era."&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Prompt conflict: precedence matters
&lt;/h2&gt;

&lt;p&gt;A working LoRA plus a contradictory prompt produces an unstable image. To probe precedence, I kept trigger and weight correct, requested &lt;code&gt;short blonde hair&lt;/code&gt; against a silver-haired LoRA, and left &lt;code&gt;blonde hair&lt;/code&gt; in the negative from an earlier run. So: requested blonde, banned blonde, LoRA trained silver.&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%2Fj29qca7e4v48d3pj1w7u.png" 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%2Fj29qca7e4v48d3pj1w7u.png" alt=" " width="800" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The positive prompt won, overriding both the LoRA and the negative. Two practical rules fall out: an explicit positive token is the strongest signal in the stack, and unstated traits drift (my first blonde bug came from leaving hair color unspecified under warm lighting). To debug an unstable output, strip the prompt to near-bare, confirm the LoRA alone, then add tokens back one at a time until one breaks it.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Character vs style: different test harness
&lt;/h2&gt;

&lt;p&gt;A character LoRA reproduces an identity; a style LoRA reshapes the render. Testing one like the other is a category error. Three-way repro, character alone / style alone / stacked with style pulled to 0.5:&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%2Fx0gpuvkfsl50un4gkidr.png" 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%2Fx0gpuvkfsl50un4gkidr.png" alt=" " width="800" height="1460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stacking rule: keep the style weight below the character weight, or the style competes for the face. PixAI allows up to five LoRAs, but each one is another competing signal. Two is manageable. Five is a merge conflict.&lt;/p&gt;

&lt;h2&gt;
  
  
  The debug loop
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Baseline: plain prompt, no LoRA
2. Add LoRA + trigger, confirm trigger survived into prompt
3. Lock the seed
4. Sweep weight in small steps
5. Mismatch? Check base tag vs model, switch to compatible model
6. Trait fighting? Strip prompt near-bare, reintroduce one token at a time
7. Compare outputs to each other, not to memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fbwrezks7iyw68v310qzu.png" 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%2Fbwrezks7iyw68v310qzu.png" alt=" " width="800" height="669"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything here runs in the browser. And when the Market has no LoRA that fits, training your own is the same workflow: Yukimai started as self-generated references plus a few minutes of browser-side training.&lt;/p&gt;

&lt;p&gt;Bottom line: a "broken" LoRA is a settings bug plus one hard compatibility rule, all cheap to interrogate when you change one variable at a time. You can run every test above on &lt;a href="https://eap.pixai.art/go/balazs" rel="noopener noreferrer"&gt;PixAI&lt;/a&gt; without a local install.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have a LoRA that behaves in a way this list does not explain? Drop the setup in the comments and I will take a look.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aiart</category>
      <category>animation</category>
      <category>ai</category>
      <category>pixai</category>
    </item>
  </channel>
</rss>
