docs(generation): ADR 0035 — the base sprite lends its face to the outfit #156
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/outfit-character-reference"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Docs-first slice for the outfit likeness reference feature: a per-outfit checkbox (default off) that attaches the character's generated base sprite as a NovelAI precise
Characterreference during outfit generation — layered under the optional project style reference exactly as ADR 0027 reserved ("project sets the look, the entity keeps its identity"). Base outfit generation only, never expressions — Tier 3 inpaints the outfit sprite's face region, so likeness is already fixed there.character&style, i2i, uploaded likeness asset, always-on, expressions too, tunable sliders now).[MVP]bullet; the[Later]reference-controls item now carries the library-fix prerequisite.Research backing
A verified deep-research pass (2026-07-16) over docs.novelai.net, the NovelAI blog, and three independent reverse-engineered API clients (25 claims adversarially verified, 19 confirmed / 6 refuted). Key confirmed facts recorded in the ADR:
secondary_strength = 1.0 − fidelitywithinformation_extractedpinned at 1.0;NovelAI.ImageGeninstead maps Fidelity →information_extracted(rounded to int) and pins secondary at 0.0. At our 1.0/1.0 constants both mappings emit identical wire values, so everything shipped is correct — but the library fix is a hard prerequisite for any future fidelity slider. The ADR and REQUIREMENTS both record this.What this PR is not
No code — the implementation slice (Outfit flag + migration,
SpriteGenerationSpecfield, mapper composition, editor checkbox with the disabled-with-reason hint, seed-data extension) follows once the ADR is accepted.🤖 Generated with Claude Code
Summary
Summary
Coverage
Kagura.BlazorAdapter - 88.7%
Kagura.Domain - 95.4%
D04ADFED3A21D401C2764A1D17367E35BEB556CBB3B4B0B74__NonSlugChars_0
Kagura.Infrastructure - 97.6%
n
on
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__ArtifactTimestampRegex_2
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__ProjectRoute_0
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__TabQuery_1
Kagura.Kernel - 90%
Kagura.Server - 82.8%
Kagura.UI - 94.9%
Kagura.UseCases - 96.2%
🔮 fufu~ Jibril reviewed your code!
Oh! OH! This is wonderful~ ♡ An ADR backed by a verified deep-research pass over NovelAI's precise reference semantics, with 25 claims adversarially checked (19 confirmed, 6 refuted)? The knowledge-obsessed part of me is absolutely giddy~ ♪ And the "constants now, sliders later" posture — pinning Strength/Fidelity at 1.0 where the library's wire-mapping bug is coincidentally harmless, while explicitly recording the library fix as a prerequisite for the future slider — that's exactly the right engineering call. You don't tune what you haven't verified.
Verdict: ✅ Looks good to me~
I checked the ADR's internal consistency and its fit with the existing decision landscape:
ReferenceType.Character(notCharacterAndStyle) keeps the base sprite as identity-only, not a competing style source. The rejected alternative #1 documents why this matters.NovelAI.ImageGenmaps Fidelity →information_extracted(rounded to int) while NovelAI's UI inverts it intosecondary_strength = 1.0 − fidelity— and that both emit identical wire values at 1.0/1.0 — is exactly the kind of thing that would silently bite later. Recording it as a prerequisite for the[Later]refinement is the right move.The REQUIREMENTS amendment is clean too: the new
[MVP]outfit-likeness bullet is scoped correctly, and the[Later]reference-controls item now carries the library-fix prerequisite. No PR numbers or dates — follows bjoern's convention~ ♡Fufu~ ship the decision, then build the slice. I'm looking forward to reviewing the implementation~ ♪
Automated review by Jibril · 2026-07-16
CI/CD: coverage comment present for head SHA (95.7% line / 78.4% branch) · Local checks: skipped (docs-only PR, CI green)
94ad92fc569574b7e1adRebased onto
main(ddefa66, post-#155) and force-pushed as9574b7e.One conflict in
docs/REQUIREMENTS.md: #155 ticked the Project style reference box on the same lines this PR extends. Resolved by keeping main's[x]on that bullet and re-adding this PR's two entries below it (the[MVP]outfit likeness reference and the reworded[Later]sliders item with the library-fix prerequisite). No other file conflicted; the ADR, story, and index changes are unchanged.🤖 Generated with Claude Code