Skip to content

voplica.types.character

The protobuf package voplica.types.character: 0 services, 12 messages and 5 enums, defined in voplica/types/character/character.proto, voplica/types/character/character_look.proto, voplica/types/character/character_look_draft.proto.

Field Number Type Label Description
id 1 string
name 2 string
owner_id 3 string
visibility 4 voplica.types.base.VisibilityType
gender 5 voplica.types.base.GenderType
created_at 6 uint64
status 7 voplica.types.base.PublishStatus Status
default_preview 8 voplica.types.file.AssetFileVariantGroups optional Note: file_variant_groups are returned only if requested explicitly
nsfw 9 bool Means this character is intended to produce NSFW content. This flag must be true if any of these is true: - any of the used model variants are related to NSFW model. - any of the character preview assets are NSFW. - character descriptions / personality is aiming towards NSFW.
default_look 10 CharacterLookShortPreview optional The recommended look. If not set explicitly then the most recent look is used. Unset when the character has no looks. Note: the nested default_look.default_preview file_variant_groups are returned only if requested explicitly, resolved by the SAME CharacterFieldsFetchingOptions.default_preview_retriever that serves default_preview above – exactly how GenModel resolves default_model_variant.default_preview through ModelFieldsFetchingOptions.default_preview_retriever.
likes_count 20 uint64 Engagement metrics (read-only, updated by the platform). Renamed from views_count/checks_count – see the checks->views/views->engagement terminology rename.
engagement_count 21 uint64
views_count 22 uint64
usage_count 23 uint64
Field Number Type Label Description
models 1 CharacterModelSet Model assignments
personality 2 CharacterPersonality LLM personality/description for chat/roleplay
description 3 string
default_preview_manual_selected 4 bool Manually set default preview asset. If false - it means that the default preview is using latest asset selection strategy.
look_prompt 5 string Helper prompt for diffusion models that better describe look of the character
tags 6 string repeated User-editable tags (can be set at publish time or updated later)
default_look_manual_selected 7 bool Manually set default look. If false - it means that the default look is using latest look selection strategy.
Field Number Type Label Description
generic_image_model 1 voplica.types.ai.common.ModelReference repeated Image generation models Full body / general
face_image_model 2 voplica.types.ai.common.ModelReference repeated Face-focused LoRA
style_image_model 3 voplica.types.ai.common.ModelReference repeated Style/clothing LoRA
generic_video_model 10 voplica.types.ai.common.ModelReference repeated Video generation models
voice_model 20 voplica.types.ai.common.ModelReference repeated Audio models (voice). RESERVED for a future trained voice model (a fine-tuned/learned speaker model). NOT used for the clip-based main voice below – the model taxonomy cannot express a voice today. Do not repurpose.
main_voice 21 CharacterVoice optional

Optional persona sheet for a character. Everything here is authored by the owner and consumed by LLM surfaces (the Movie director’s script planning first): it shapes how the character behaves, sounds and reacts in generated scenes. All fields optional; an empty message is equivalent to no personality.

Field Number Type Label Description
traits 2 string repeated Trait keywords/short phrases, e.g. [“funny”, “sometimes silly”, “likes pranks”].
backstory 3 string optional Background/lore: who they are, where they come from, what shaped them.
example_dialogues 5 string repeated Example lines, verbatim, in the character’s own voice — one line each.
speaking_style 6 string optional How they talk: tone, vocabulary, pace, catchphrases (prose).
motivations 7 string optional What drives them: likes, dislikes, goals, fears (prose).
Field Number Type Label Description
audio_asset 1 voplica.types.file.FileReference optional
audio_dataset_id 2 string optional Optional AUDIO dataset (a collection of reference clips of the same voice) for richer provenance / future higher-quality selection or training. Referenced by dataset id, matching the dataset_id convention used elsewhere (e.g. AttachDatasetToCharacterRequest.dataset_id). When both are set, audio_asset is the chosen representative clip from this dataset.
reference_transcript 3 string optional
language 4 string optional
voice_id 5 string optional

A named, persisted appearance of a character: an optional look prompt, an MPA rating and a set of typed image assets. Looks generalize the ephemeral per-run look-sheet machinery into an entity.

Field Number Type Label Description
id 1 string
character_id 2 string
name 3 string
look_prompt 4 string optional overrides CharacterMetadata.look_prompt
mpa_rating 5 voplica.types.base.MPARating same type Datasets/Content use
created_at 6 uint64
sheet_type 7 CharacterSheetType Layout of this look’s composed sheet. ABSENT / UNSPECIFIED (0) MEANS DEFAULT - see CharacterSheetType: pre-existing looks are stored with a NULL column and are DEFAULT sheets.
anchor 8 voplica.types.file.FileReference optional
default_preview 10 voplica.types.file.AssetFileVariantGroups optional Resolved only when requested (previews retriever):
Field Number Type Label Description
asset_id 1 string
asset_type 2 CharacterLookAssetType
added_at 3 uint64 epoch millis (platform convention)
asset_groups 4 voplica.types.file.AssetFileVariantGroups optional Resolved only when the list request carries an asset retriever:

mirrors ModelVariantShortPreview

Field Number Type Label Description
look_id 1 string
name 2 string
created_at 3 uint64
default_preview 4 voplica.types.file.AssetFileVariantGroups optional

A resumable character-wizard session. Bound to one character, or to none yet.

Field Number Type Label Description
id 1 string
owner_id 2 string
character_id 3 string The character this draft builds a look for - EMPTY means the draft is CHARACTER-LESS: a new-character wizard run whose character does not exist yet. Deliberately a plain proto3 string rather than optional: absent and empty are the same state here (the server either knows a character or does not), so ONE spelling of “no character” is what this whole surface uses - on this field, on CreateCharacterLookDraftRequest, and on ListCharacterLookDraftsRequest. Character-less is a STARTING state, never a resting one: a draft is bound exactly once, by BindCharacterLookDraftToCharacter, and a bound draft can never be re-bound or un-bound. A draft must be bound before it may reach CHARACTER_LOOK_DRAFT_STATE_COMPLETED, because the CharacterLook that state records the creation of has nowhere to live otherwise.
source_look_id 4 string optional Set when the draft was started FROM an existing look (“new look for an existing character”): the anchor is that look’s sheet and untouched views may be carried over.
anchor 5 voplica.types.file.FileReference optional The identity source every later stage conditions on. Absent until stage 1 completes.
anchor_kind 6 CharacterLookDraftAnchorKind
approved_views 7 CharacterLookDraftApprovedView repeated Approved views so far, at most one per asset type. Order is not significant.
stage_history 8 CharacterLookDraftStageHistory repeated Per-stage iteration history, at most one entry per stage.
sheet_type 9 CharacterSheetType The sheet layout this draft will compose. Absent / UNSPECIFIED (0) reads as CHARACTER_SHEET_TYPE_DEFAULT, exactly as on CharacterLook - see CharacterSheetType.
state 10 CharacterLookDraftState
created_at 11 uint64 epoch millis
updated_at 12 uint64 epoch millis
view_runs 13 CharacterLookDraftViewRun repeated
name 14 string optional The working name of the look this draft is building, persisted so it survives a resume. Absent means the draft has no name yet (an empty string is stored as absent). A cloned draft is named from the look it came from (“<look name> (copy)”); patch it through UpdateCharacterLookDraft.name.
anchor_model_id 15 string optional any T2I family, the anchor step
edit_model_id 16 string optional I2I_EDIT families only, every later step
anchor_preview 20 voplica.types.file.AssetFileVariantGroups optional Resolved only when the request carries a previews retriever (20+ = resolved-on-request band, mirroring CharacterLook.default_preview): the anchor’s file variant groups, so a draft list can render thumbnails without a second round trip per draft.
character_name 21 string optional Resolved on request (the 20+ band): the name of the character this draft is bound to - set only when CharacterLookDraftFieldsFetchingOptions.include_character_name is true and the draft is bound to a character (character_id set); absent for a character-less draft and absent unless requested. The caller’s own character, so no visibility question.

One APPROVED view: the file the user accepted for a given look-asset slot. Keyed by CharacterLookAssetType (not by stage) because these files become look assets of exactly that type when the draft is saved - which is what lets the save path attach them without a mapping step.

Field Number Type Label Description
asset_type 1 CharacterLookAssetType
file 2 voplica.types.file.FileReference
approved_at 3 uint64 epoch millis (platform convention)
produced_by_execution_id 4 string optional
Field Number Type Label Description
stage 1 CharacterLookDraftStage
workflow_execution_ids 2 string repeated
Field Number Type Label Description
stage 1 CharacterLookDraftStage
asset_type 2 CharacterLookAssetType
status 3 voplica.types.base.JobStatus
workflow_execution_id 4 string The engine execution that produced (or is producing) this slot, owner-scoped readable.
file 5 voplica.types.file.FileReference optional Present only once status is COMPLETED: the generated image, registered under the DRAFT OWNER’s file scope (owner_id + origin_id — the file-registration model).
used_seed 6 string optional
error_message 7 string optional Present only when status is FAILED.
updated_at 8 uint64 epoch millis (platform convention)
compose_press_id 9 string optional
Name Number Description
CHARACTER_LOOK_ASSET_TYPE_UNSPECIFIED 0
FACE_CLOSEUP 1
BODY_FRONT 2
BODY_LEFT 3
BODY_RIGHT 4
BODY_BACK 5
HALF_BODY 6
SHEET_BEST_FACE_ID 20
SHEET_DEFAULT 21 all standardized views incl. BOTH sides (CHARACTER_SHEET_TYPE_DEFAULT)
SHEET_CUSTOM_REFERENCE 22 N-image user-upload grid (CHARACTER_SHEET_TYPE_CUSTOM_REFERENCE)
Name Number Description
CHARACTER_SHEET_TYPE_UNSPECIFIED 0
CHARACTER_SHEET_TYPE_DEFAULT 1 All standardized views, including BOTH side views (the original 5-panel layout).
CHARACTER_SHEET_TYPE_BEST_FACE_ID 2 face + front + ONE side (the LEFT/BODY_LEFT view) + back = 4 panels. The layout the LTX Best-Face-ID video path consumes; the right side view is deliberately excluded.
CHARACTER_SHEET_TYPE_CUSTOM_REFERENCE 3 An N-image combined sheet built from user-supplied pictures (flexible grid, NOT the standardized views). Produced by the wizard’s multi-upload anchor path.

How the anchor picture - the identity source every later stage conditions on - was obtained.

Name Number Description
CHARACTER_LOOK_DRAFT_ANCHOR_KIND_UNSPECIFIED 0
CHARACTER_LOOK_DRAFT_ANCHOR_KIND_GENERATED 1 Generated from a text prompt with any image model (T2I).
CHARACTER_LOOK_DRAFT_ANCHOR_KIND_PICKED 2 Chosen from the user’s existing content library.
CHARACTER_LOOK_DRAFT_ANCHOR_KIND_UPLOADED 3 A single uploaded picture, used as the anchor directly.
CHARACTER_LOOK_DRAFT_ANCHOR_KIND_CUSTOM_SHEET 4 SEVERAL uploaded pictures, analyzed and composed into one CUSTOM_REFERENCE sheet which is then the anchor. Implies the draft’s sheet_type is CHARACTER_SHEET_TYPE_CUSTOM_REFERENCE.

The wizard’s stages, in flow order. Distinct from CharacterLookAssetType on purpose: ANCHOR is a stage but never a look asset, and one stage (BODY_SIDE) can approve two assets (BODY_LEFT and BODY_RIGHT). Used to key ITERATION HISTORY, which the anchor also has.

Name Number Description
CHARACTER_LOOK_DRAFT_STAGE_UNSPECIFIED 0
CHARACTER_LOOK_DRAFT_STAGE_ANCHOR 1
CHARACTER_LOOK_DRAFT_STAGE_BODY_FRONT 2
CHARACTER_LOOK_DRAFT_STAGE_BODY_BACK 3
CHARACTER_LOOK_DRAFT_STAGE_BODY_SIDE 4
CHARACTER_LOOK_DRAFT_STAGE_FACE 5
CHARACTER_LOOK_DRAFT_STAGE_HALF_BODY 6
Name Number Description
CHARACTER_LOOK_DRAFT_STATE_UNSPECIFIED 0
CHARACTER_LOOK_DRAFT_STATE_IN_PROGRESS 1
CHARACTER_LOOK_DRAFT_STATE_COMPLETED 2
CHARACTER_LOOK_DRAFT_STATE_ABANDONED 3