Character Creation
Character Creation
Purpose
Document how Brisket requests character creation and how Sirloin validates KYC, usage, credits, and reference image handling.
Participants
- Brisket initiates createCharacter through tRPC.
- Sirloin owns character creation, credit consumption, NSFW/KYC checks, and S3 reference image copying.
- S3 stores inherited KYC and reference images.
Sequence
sequenceDiagram participant Brisket participant Sirloin participant Usage participant S3 Brisket->>Sirloin: CreateCharacter Sirloin->>Sirloin: Check NSFW KYC prerequisites Sirloin->>Usage: GetCurrentUsage Sirloin->>Sirloin: Charge only if existing character count > 0 Sirloin->>S3: Copy KYC/reference images when needed Sirloin-->>Brisket: character_idSource Links
- apps/brisket/src/server/api/routers/character.ts
- apps/sirloin/internal/app/services/characters/createcharacter.go
Reference Image Moderation
Character reference image scoring uses the Brain onboarding checkpoint. Sirloin maps Brain validation and moderation failures into character dataset image failure reasons for Brisket. See Image Moderation And Age Scoring for the moderation checkpoints and demographics age-scoring rules.
State Transitions
The first character has no credit charge because cost is only charged when usage.GetCharactersCount() > 0. Additional characters cost 10 credits from characterCreditsCost and use ConsumeCreditsWithBreakdown. New records start pending unless the request path marks them available.
Invariants
- NSFW character creation requires a prior KYC-verified NSFW character with an Ondato verification ID.
- Additional characters cost 10 credits.
- GFY model type is rejected.
- Reference character images may be copied through S3.
Error Paths
Sirloin returns FailedPrecondition when NSFW KYC prerequisites are missing, ResourceExhausted for insufficient credits or character limits, and InvalidArgument for deprecated model types.
Tests And Verification
- cd apps/sirloin && make run-tests
- Target create-character tests when changing KYC or credit behavior.