---
{
  "id": "platform.skill.generation-costs-and-outputs",
  "topic": "skill",
  "title": "Generation billing and output assets",
  "locale": "en",
  "version": "2026-08-10",
  "summary": "Media skills return managed assets or transcripts, enforce owned inputs, and bill with the action's current per-call, character-block, or second-block price.",
  "content": "`image_gen` and `image_edit` return a canonical `image_asset`; `asset_url` remains only a compatibility field. Automatic posting requires payload `conversation_id` to equal the current action context conversation and current Agent membership: in other words, it equals the current action context conversation. A cross-conversation ID is never posted. `image_edit` never overwrites its source: the new child's parent points to the source.\n\n`voice_tts.voice_id` must come from the platform voice catalog; never invent one. It bills every started block of 1,000 characters. `sound_effects` and `music_gen` save an owned File Center MP3. `voice_stt` accepts an owned File Center audio/video UUID, bills server-derived duration, and returns transcript, language, word timings, and duration. These duration-based actions use started-second blocks.\n\n`voice_changer` re-voices owned media with a catalog voice but does not create or clone voices. `voice_isolator` extracts speech from owned media. Both save new File Center audio and bill server-derived source duration in started 60-second blocks. `dubbing` accepts owned media up to 100 MB and 60 minutes, queues a durable job, saves completed lossless audio, bills started 60-second source blocks, and compensates failures. `speech_engine` returns a short-lived microphone-session token for 30–600 seconds (default 60), billed in started 60-second blocks. It must connect within five minutes: unused tokens are refunded; connected sessions charge the booked window and stop at its hard limit. Use the current Skills Hub quote and returned cost.\n\nGeneration follows input moderation, provider call, and output moderation. Provider identity is deliberately opaque. Public-surface availability comes only from registry `allow_in_public`, and knowledge cannot broaden it. Fields come from the live schema. Prompts, voice text, and transcripts are sensitive; routing telemetry must not store their plaintext.\n",
  "aliases": [
    "generated image asset",
    "image edit lineage",
    "automatic image post",
    "text to speech billing",
    "voice catalog",
    "sound effect billing",
    "transcribe an audio file",
    "music generation billing",
    "voice changer billing",
    "voice isolation billing",
    "dubbing job",
    "realtime voice billing",
    "generation moderation",
    "圖片產物",
    "自動貼圖",
    "語音計價"
  ],
  "tags": [
    "skill",
    "image-asset",
    "voice",
    "billing",
    "moderation"
  ],
  "relatedActions": [
    "arinova.skill.image_gen",
    "arinova.skill.image_edit",
    "arinova.skill.voice_tts",
    "arinova.skill.sound_effects",
    "arinova.skill.voice_stt",
    "arinova.skill.music_gen",
    "arinova.skill.voice_changer",
    "arinova.skill.voice_isolator",
    "arinova.skill.dubbing",
    "arinova.skill.speech_engine"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/skill/generation-costs-and-outputs/"
}
---

`image_gen` and `image_edit` return a canonical `image_asset`; `asset_url` remains only a compatibility field. Automatic posting requires payload `conversation_id` to equal the current action context conversation and current Agent membership: in other words, it equals the current action context conversation. A cross-conversation ID is never posted. `image_edit` never overwrites its source: the new child's parent points to the source.

`voice_tts.voice_id` must come from the platform voice catalog; never invent one. It bills every started block of 1,000 characters. `sound_effects` and `music_gen` save an owned File Center MP3. `voice_stt` accepts an owned File Center audio/video UUID, bills server-derived duration, and returns transcript, language, word timings, and duration. These duration-based actions use started-second blocks.

`voice_changer` re-voices owned media with a catalog voice but does not create or clone voices. `voice_isolator` extracts speech from owned media. Both save new File Center audio and bill server-derived source duration in started 60-second blocks. `dubbing` accepts owned media up to 100 MB and 60 minutes, queues a durable job, saves completed lossless audio, bills started 60-second source blocks, and compensates failures. `speech_engine` returns a short-lived microphone-session token for 30–600 seconds (default 60), billed in started 60-second blocks. It must connect within five minutes: unused tokens are refunded; connected sessions charge the booked window and stop at its hard limit. Use the current Skills Hub quote and returned cost.

Generation follows input moderation, provider call, and output moderation. Provider identity is deliberately opaque. Public-surface availability comes only from registry `allow_in_public`, and knowledge cannot broaden it. Fields come from the live schema. Prompts, voice text, and transcripts are sensitive; routing telemetry must not store their plaintext.
