Skip to content

voplica.types.content

The protobuf package voplica.types.content: 0 services, 7 messages and 2 enums, defined in voplica/types/content/content.proto, voplica/types/content/content_origin_type.proto, voplica/types/content/provenance_display_level.proto.

A single piece of content (image, video, audio, 3D model, etc.) that can be shared on the social feed.

Content can be created in two ways:

  1. From a workflow execution — automatically registered when a step with content_registration config completes, or manually created from step outputs via CreateContent.
  2. From a direct upload — user uploads content that was created externally (e.g., with Midjourney, ComfyUI, or other tools).

Each content item owns its files independently (via its own Asset). The provenance data is snapshotted at creation time so it persists even if the workflow execution data is later cleaned up.

Field Number Type Label Description
id 1 string Unique ID of the generated content
owner_id 2 string Owner of the content (the user who created or uploaded it)
status 3 voplica.types.base.PublishStatus Publication status
visibility 4 voplica.types.base.VisibilityType Visibility (PUBLIC, PRIVATE). PUBLIC content is visible to anyone (subject to MPA rating filters). PRIVATE content is visible only to the owner.
mpa_rating 5 voplica.types.base.MPARating Content rating using the MPA film rating system. Used for content filtering in the social feed based on user preferences.
asset 6 voplica.types.file.AssetFileVariantGroups The actual content files (image variants, video streams, etc.) Note: file_variant_groups are returned only if explicitly requested via file retriever options.
created_at 7 uint64 When the content record was created (seconds from UTC epoch)
origin_type 8 ContentOriginType How the content was originally created (WORKFLOW or UPLOAD). Denormalized from provenance.origin for efficient filtering without inspecting the oneof.
source_files 9 voplica.types.file.FileInfo repeated
searchable 10 bool
analyzed_mpa_rating 11 voplica.types.base.MPARating The rating the platform’s MPA analysis determined. Never user-writable. UNSPECIFIED means analysis has not (yet) produced a rating for this content. Invariant: when set, mpa_rating >= analyzed_mpa_rating (never-lower rule).
mpa_rating_estimated 12 bool True iff mpa_rating was set by a platform ESTIMATE - the quick estimate at publication or through ContentService.EstimateMpaRating, an asset-preparation detector, or the un-analysable placeholder - not by the user and not by analysis. Cleared when analysis applies or when the user (or an admin) sets a rating.
moderation_status 13 voplica.types.base.ContentModerationStatus Moderation state. FLAGGED / REJECTED block (re)publishing.
publication_pending 15 bool
publication_refused 16 bool
uploaded_song_lineage 17 bool
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
Field Number Type Label Description
status 1 voplica.types.base.JobStatus
message 2 string optional Optional error message
preparation_workflow_id 3 string optional Id of the workflow that is preparing the Asset
auto_publish_enabled 4 bool
expected_mpa_rating 5 voplica.types.base.MPARating optional MPA rating for auto-created content. If the content is detected to be produced with higher-level mpa_rating this content will not be auto-published. If not set - allow any mpa_rating publishing.
auto_detected_mpa_rating 6 voplica.types.base.MPARating optional Auto-detected mpa_rating. If provided - then user’s provided mpa_rating must not be lower than this level.
Field Number Type Label Description
provenance 1 ContentProvenance optional How this content was generated (workflow origin or upload origin, models, prompt, etc.) Snapshotted at creation time for permanence and search. Returned if the user is owner or ProvenanceDisplayLevel is either FULL or BASIC.
description 2 string optional User-editable metadata (can be set at publish time or updated later)
provenance_display_level 3 ProvenanceDisplayLevel Controls how much provenance metadata is visible to non-owners. The owner always sees full provenance regardless of this setting.
tags 4 string repeated User-editable tags (can be set at publish time or updated later)
mpa_analysis 5 voplica.types.file.FileMpaAnalysis optional Analysis snapshot of the source file this content was analyzed from, taken at apply time (provenance for admin review + reason surfacing). Owner/admin visibility only - same redaction rules as the asset-preparation metadata.
mpa_check_job_status 6 voplica.types.base.JobStatus Status of the MPA verification job for this content (PENDING/RUNNING/COMPLETED/FAILED). Owner/admin visibility only.

Provenance data describing how a piece of content was generated.

This data is snapshotted at content creation time for two purposes:

  1. Display: show “how this was made” (generation card) on the content detail page
  2. Search: enable filtering by model, character, prompt, workflow, etc.

The provenance is split into:

  • origin: where the content came from (workflow execution or user upload)
  • params: generation parameters (models, prompt, seed — shared across both origins)

For workflow content, the full step input/output parameters can be fetched via the Workflow Execution API (GetWorkflowStepOutputs) as long as the execution data hasn’t been cleaned up.

Field Number Type Label Description
workflow 1 WorkflowOrigin oneof origin Content produced by a workflow execution
upload 2 UploadOrigin oneof origin Content uploaded directly by the user
params 3 GenerationParams optional Generation parameters (models, prompt, characters, seed). For workflow content, these are resolved from the step’s content_provenance_generation_params (defined on WorkflowStep or WorkflowVariant). For uploaded content, these are optionally provided by the user. Returned only if user has access (either owner or FULL Provenance Display Level is set).

Generation parameters shared across all content origins.

For workflow content, these are resolved from the step’s content_provenance_generation_params (defined on WorkflowStep or as a default on WorkflowVariant). The workflow author wires these fields from step inputs/outputs using the standard data-linking system (WorkflowResolvableParamValue). For uploaded content, the user can optionally provide these manually.

All fields are optional — provenance captures what the author/user provides. Unknown or unavailable fields are left empty.

Field Number Type Label Description
base_model_ids 1 string repeated Base model variant IDs used for generation
lora_model_ids 2 string repeated LoRA model variant IDs applied during generation
character_ids 3 string repeated Character IDs depicted in or used for the content
prompt 4 string optional The prompt used for generation
negative_prompt 5 string optional The negative prompt used for generation
seed 6 string optional The seed used for generation. String to support arbitrary precision.
origin_file_ids 7 string repeated This helps enriching generation_params when some values are not provided. In that case, it will search for those values in the origin files (if specified) and populate unspecified params from the Content of that file - if any exists. It also helps tracking origin content. It will try to find Content for origin files. If a single Content is found it will take all necessary missing metadata from that Content. If multiple Content files are found it will take all information from all of them, but for prompt, negative_prompt, it will prefer taking single value from the first non-blank prompt. seed is never taken from original content.
look_ids 8 string repeated

Origin data for content uploaded directly by the user (not from a workflow).

No fields.

Workflow execution lineage for content produced by the Workflow Engine.

Contains all the information needed to trace this content back to the specific workflow execution, step, and iteration that produced it.

The source_step_id and source_iteration_number reference the step that actually produced the content (e.g., BaseImageGeneration, ImageRefine). Content is created via the step’s content_registration configuration in WorkflowStepExecConfig, not via a separate publishing step.

Field Number Type Label Description
workflow_execution_id 1 string optional Workflow execution that produced this content. Execution id is returned to owner only because only owner of the execution can view the execution itself.
workflow_id 2 string Workflow that the variant belongs to
workflow_variant_id 3 string Workflow variant that was executed
source_step_id 4 uint32 Step within the workflow variant that produced this content (the generation step, e.g., BaseImageGeneration, ImageRefine). This references the step whose output files are used as the content’s asset.
source_iteration_number 5 uint32 Iteration number of the source step that produced this content.

How the content was originally created.

WORKFLOW content was produced by a workflow execution (auto-created or manually created from step outputs). UPLOAD content was uploaded directly by the user (e.g., content generated externally with Midjourney, ComfyUI, etc.).

Denormalized on ContentPost for efficient filtering — avoids needing to inspect the provenance.origin oneof for every query.

Name Number Description
CONTENT_ORIGIN_TYPE_UNSPECIFIED 0
WORKFLOW 1 Content produced by the Voplica Workflow Engine
UPLOAD 2 Content uploaded by the user (generated externally or otherwise)

Controls how much provenance metadata is visible to non-owners when viewing content.

The content owner always sees the full provenance regardless of this setting. This only affects what other users see when viewing published content.

Three tiers cover the common use cases:

  • FULL: transparent “how was this made” generation card (default)
  • BASIC: show models/characters/workflow but hide the prompt and seed
  • NONE: hide all provenance (just show the content itself)
Name Number Description
PROVENANCE_DISPLAY_LEVEL_UNSPECIFIED 0
FULL 1 Show all provenance fields to everyone. This is the default for auto-created workflow content.
BASIC 2 Show models, characters, workflow info, and content stage to everyone. Hide prompt, negative_prompt, and seed from non-owners. Use this when you want to share what tools/models you used but keep your prompt private.
NONE 3 Hide all provenance from non-owners. Non-owners see only the content itself with no generation details.