DEV Community

Merl Merl
Merl Merl

Posted on

I ran the same character spec through two AI art platforms. Only one gave me reproducible output.

Prompting an image model is closer to calling an API with no schema, no types, and no guarantee that the same input returns the same shape twice. You send a string. You get back something. Whether it matches what you asked for is a matter of negotiation.

I wanted to measure that negotiation, so I set up a small controlled test across two platforms: OpenArt, a general-purpose creative suite, and PixAI, which does image generation for anime and little beyond it.

The spec

The subject is an original character. Treat her as a fixture with required fields:

character:     Rin
hair_color:    deep indigo
hair_accent:   single teal streak, left side
eyes:          warm amber
top:           oversized cream knit hoodie
under:         white collared shirt
background:    plain studio
style:         clean cel-shaded anime
Enter fullscreen mode Exit fullscreen mode


The spec rendered on the anime-native platform. Every character image in this post comes from PixAI, since free-tier output on the other platform arrives watermarked.

Two of those fields are the assertions that matter. hair_accent is deliberately fussy, because a single streak against a dark base is the first thing a model smooths away when it stops reading carefully. background: plain is a negative constraint in disguise: it asks the model to add nothing.

Test conditions

Both platforms ran on their free plans. On the anime-focused one I also stayed in the lowest quality mode available, since benchmarking one service on its free tier and the other on premium settings would invalidate the comparison before it started.

Two runs per platform. The first used the spec as written. The second reinforced hair_accent with stronger, more explicit wording, on the theory that the first failure was a prompt problem rather than a model problem.

Small sample, and I am reporting it as one. The point is the failure mode, rather than a benchmark score.

Run 1: the general-purpose platform

The platform itself is a serious piece of engineering. One account covers image generation across a large model roster, video, navigable 3D scenes, audio, a chat-driven shot sequencer, custom model training, and a full editing suite. Think of it as a monorepo with every tool vendored in: enormous surface area, one dependency to manage.


The left rail alone carries Director, Video, Image, World, Character, and Audio. That is the all-in-one promise in one column.

Finding anime inside it took some scrolling. A single checkpoint is built for the style, surrounded by models tuned for photography, portraits, and product work.

Style output passed. Both runs returned clean cel-shaded anime with no drift toward semi-realism, which is the usual failure for general models attempting this style.

Field-level assertions failed:

Field Run 1 Run 2 (reinforced)
hair_accent collapsed to a single color overcorrected, teal scattered throughout
background full outdoor scene full outdoor scene
under absent present, wrong color
unrequested elements ice cream cone ice cream cone

The reinforced run is the interesting one. Strengthening the constraint produced a different inaccuracy in the opposite direction rather than accuracy. That behaves less like an under-specified request and more like a model optimizing for aesthetic plausibility over literal compliance.

The ice cream cone appearing in both runs, unrequested, is the same class of problem: the model has priors about what belongs in a picture, and those priors outrank your input.

The structural finding

This one mattered more than any single output.

On that anime checkpoint, the reference-image input was unavailable. Reference support lives on the general-purpose models instead.

Splitting capabilities across models is normal, and the anime-focused platform does it too. The question is what you give up at the boundary. Here, moving to a reference-capable model means moving to a general-purpose one, which means abandoning the style tuning you selected the checkpoint for. It is the equivalent of a library where the typed interface and the async interface are mutually exclusive: both exist, and you cannot have both at once.


The comparison case: on PixAI the reference slot sits above the model tiles, and the reference-capable models are anime-tuned as well.

Run 2: the narrow platform

Same spec, anime-native model, lowest quality tier, free plan.


Mode set to Lite, no style preset, an anime model selected, community add-on models stacked below.

Then I mutated the non-identity fields and held the identity fields constant, which is the actual production case. Three variants: plain studio, school uniform in a lit classroom, summer dress in a park.


Three variants, identity fields held constant. Hoodie to school blazer to summer dress, same face.

The identity fields held across all three. Hair color, the teal accent, and eye color survived scene changes that shared nothing in common. What drifted was framing rather than identity: the park variant returned at a tighter crop and a different angle than specified.

That is the correct failure mode. Composition drifting while identity holds is recoverable, because you can re-roll a crop. Identity drifting while composition holds means the character is gone, and no amount of re-rolling gets that specific person back.

Worth noting that this came from the base model and a consistent prompt, before reaching for reference tools or a trained character model. Both exist on that platform, both anime-tuned, so escalating does not cost you the style.

Takeaway

Both platforms generate good anime images. The comparison is about surface area, not quality.


My own summary of the workflow axes, from model access to reference tools and best-fit users.

A broad platform is the right call when your output spans formats: video, ads, product visuals, storyboards. Consolidation is real value and the tooling is strong.

A narrow platform wins when you have one recurring problem and want the entire toolchain aimed at it. In this case that problem is character consistency, and the difference showed up in whether the specialized tools sat beside the specialized model or across a boundary from it.

If you maintain a recurring character, write yourself a spec like the one above, pick your two fussiest fields, and run it twice on whatever you use now. The result will tell you more than any feature matrix.

Try PixAI if you want to run the test on the anime-native side.

Top comments (0)