Consumo de tokens en Cherry Studio: costos, estimaciones y cobros
Localiza una solicitud en Usage → Requests de la aplicación de escritorio, distingue los costos comunicados por el proveedor de las estimaciones locales y los importes desconocidos, y compáralos con sus registros. La guía diferencia la interfaz publicada en v2.1.6 del editor de precios por imagen integrado en main, y explica las monedas, los valores vacíos y los precios históricos.
Índice

En las estadísticas de consumo de tokens de Cherry Studio, una imagen puede haberse generado aunque la columna Cost de Requests siga vacía o muestre un guion. Eso no significa que la solicitud haya sido gratuita, y un importe visible tampoco equivale automáticamente a la factura del proveedor. Localiza el registro en Settings → Usage → Requests —configuración, uso y solicitudes— y comprueba el origen del importe, la unidad de facturación y el cobro real: así podrás distinguir entre un precio sin configurar, un costo que el cliente no puede estimar y dos sistemas que están contando llamadas diferentes.
Conserva los registros de solicitudes y cobros que ya tienes; no hace falta generar imágenes una y otra vez para conseguir que Cost muestre una cifra. Las explicaciones de la interfaz y del cálculo se basan en el código de la versión oficial y en cambios ya integrados. Describen cómo registra los costos el cliente, sin acreditar mediante llamadas reales una combinación concreta de proveedor, modelo y cuenta.
Comprueba la versión: el precio por imagen está integrado en main, pero no en la última versión publicada
Al 2026-10-17, la última versión oficial sigue siendo v2.1.6; el PR #21892, que añade un editor de precios por imagen, se integró en main ese mismo día. main es la rama de desarrollo. Que un cambio esté integrado no demuestra que la versión oficial que tienes instalada ya lo incluya. Consulta el registro de la versión oficial y el PR de precios por imagen.
El 2026-10-16, codeBennyLaw informó en la incidencia #21870 de que Windows v2.1.6 solo permitía introducir precios por millón de tokens y mostraba guiones en Cost para algunas solicitudes de imágenes. El reporte describe el entorno de ese usuario; no permite concluir que todos los modelos de imágenes sean gratuitos. La incidencia se cerró al integrarse el PR, pero debes seguir comprobando tu versión instalada para saber qué interfaz tienes.
| La interfaz que tienes | Qué permite hacer | Cómo proceder |
|---|---|---|
| Editor de precios de modelos de v2.1.6 | Editar tarifas de tokens de entrada, salida y caché, incluidos los tramos; no tiene un campo de precio por imagen | Revisar las tarifas de los modelos facturados por tokens; contrastar las solicitudes facturadas por imagen directamente con los registros del proveedor |
| Compilación que incluye el PR #21892 y muestra realmente Price unit e Image price | Editar el precio de cada imagen generada | Confirmar que el proveedor cobra por imagen, introducir la tarifa correspondiente y verificar una solicitud nueva |
| Compilación más reciente o personalizada con una interfaz diferente | Las funciones dependen de esa compilación | Consultar sus indicaciones y los campos disponibles, sin deducir la configuración a partir de una captura de otra versión |
La comparación se basa en el editor de precios de v2.1.6 y el editor con el cambio integrado. A continuación se usan los nombres de los campos en inglés para facilitar su ubicación; las etiquetas cambian según el idioma del cliente.
Localiza la misma solicitud en Requests
Identifica la solicitud antes de comparar importes. Ten a mano la versión del cliente, la configuración del proveedor utilizada en ese momento, el ID exacto del modelo y los registros de uso o cobro de la misma cuenta del proveedor. Que coincida el nombre visible del modelo no basta para demostrar que se trata del mismo modelo o de la misma vía de facturación.
- Abre Settings → Usage → Requests, elige un intervalo que cubra la solicitud y localízala por Date —fecha—.
- Compara el nombre del modelo de cada fila y el proveedor que aparece debajo. Source indica qué asistente, sesión o función originó la llamada; no indica el origen del costo.
- Anota la fecha y hora, Tokens, Cost y la moneda. Si no aparece el registro, vuelve a ordenar por Date, comprueba el intervalo y usa la opción para cargar más al final de la lista. Al ordenar por Cost también se filtra por la moneda seleccionada, por lo que los registros sin importe pueden quedar fuera de los resultados.
- Conserva también los registros del proveedor para ese período. La fecha que registra el cliente corresponde a la finalización de la llamada. El proveedor puede usar otra fecha de contabilización u otra zona horaria; deja un intervalo que cubra todo el proceso de la solicitud.
Puedes comprobar los campos y su presentación en el código oficial de la tabla Requests y la lógica de escritura de registros.
Si toda la lista está vacía, revisa primero el intervalo, la carga de datos y si la llamada ya terminó. Si solo falta Cost, continúa con el precio y el origen del importe. Cada situación requiere una acción distinta; reinstalar la aplicación o borrar el historial no demuestra si el proveedor te cobró.
Cost tiene tres estados; Source no identifica el origen del importe
El origen de una cifra importa más que su aparente precisión. La lógica oficial intenta primero aceptar el costo comunicado por el proveedor, siempre que cumpla las condiciones necesarias. Si no puede, estima el importe con la copia de los precios capturada para esa solicitud. Cuando ninguna vía está disponible, el costo queda vacío. Consulta la lógica de registro de costos.
| Estado del registro | Qué significa | Cómo usarlo al comprobar cobros |
|---|---|---|
costSource es provider | El cliente aceptó el costo devuelto por el proveedor; deben cumplirse las condiciones relativas a la capacidad declarada del proveedor, el importe y la moneda | Trátalo como información de costo incluida en esa respuesta y contrástalo igualmente con los cobros de la cuenta del proveedor |
costSource es computed | El cliente calculó el importe a partir del uso y de los precios capturados en ese momento | Úsalo para estimaciones y tendencias, y comprueba que las tarifas locales coincidan con las de tu cuenta |
| Falta Cost y el origen del costo está vacío | No hay un importe utilizable del proveedor y no se pudo completar el cálculo local | El importe es desconocido; consulta el cobro real en los registros del proveedor y no lo sustituyas por cero |
v2.1.6 muestra - cuando falta Cost; la versión de main consultada usa Unable to estimate —no se puede estimar— en inglés. La tabla Requests actual no tiene una columna costSource independiente ni un mensaje emergente que indique el origen del costo. No confundas Source con ese campo ni deduzcas el origen solo por ver un importe. Si la interfaz no lo identifica expresamente, considéralo sin especificar. Consulta la tabla en main y los textos de la interfaz en inglés.
Que el proveedor incluya un campo de costo en la respuesta no garantiza que el cliente lo acepte. También intervienen condiciones como que el proveedor declare que informa costos reales y que se pueda determinar la moneda. No necesitas modificar registros internos para investigarlo; la comprobación del cobro real sigue pasando por la cuenta del proveedor. Consulta la explicación oficial sobre el significado de los costos.
Estimaciones por tokens: revisa la unidad y después las categorías
Tokens en Requests es un total de uso; no se puede multiplicar directamente por una tarifa única. computed solo significa que el importe se calculó localmente, no que el número de tokens también sea una estimación local. La función oficial prioriza totalTokens; cuando falta ese total, suma los recuentos de entrada y salida disponibles. Si ambos son desconocidos, conserva el valor ausente. Consulta la definición del total de tokens.
Ve a Settings → Model Provider → selecciona el proveedor → icono de engranaje del modelo correspondiente → More settings y busca la sección de precios. Compara los campos con las tarifas actuales de esa cuenta, ese modelo y ese tramo de facturación:
- Input Price / Output Price: son las tarifas por millón de tokens de entrada y de salida, respectivamente. Si el proveedor publica precios por mil tokens, conviértelos a precios por millón antes de introducirlos; no copies la cifra sin cambiar la unidad.
- Cache Read Price / Cache Write Price: revisa por separado la lectura y la escritura de caché. Si dejas un campo vacío en el editor actual, se usa la tarifa de entrada de ese tramo. Introducir 0 hace que el cálculo local aplique una tarifa gratuita; dejarlo vacío no significa que sea gratis.
- Precios por tramos: cuando los tramos dependen de la longitud de entrada, el cliente elige uno según la cantidad total de entrada de la solicitud y lo aplica a toda la llamada. No cobra cada parte sucesiva a la tarifa de un tramo distinto. Si faltan datos de uso o tarifas necesarios, la estimación puede seguir vacía.
Los campos y el guardado se describen en el editor de precios; el criterio de cálculo, en la documentación sobre costos.
Guarda juntos los recuentos por categoría y sus tarifas: entrada sin caché × tarifa de entrada + lectura de caché × tarifa de lectura + escritura de caché × tarifa de escritura + salida × tarifa de salida, convirtiendo cada término a la misma base de un millón de tokens. Si la entrada total ya incluye los tokens de caché, separa primero las categorías para no contabilizarlos otra vez como entrada normal. Tampoco vuelvas a sumar los tokens de razonamiento si ya están incluidos en la salida. Si no puedes obtener el desglose, márcalo como desconocido; no uses el total Tokens para inventar una factura exacta.
Comprueba también la moneda: en el editor de precios consultado, $ corresponde a USD y ¥ a CNY, no a JPY. Cambiar el símbolo no aplica una conversión de moneda. Si el comprobante de recarga o el extracto bancario está en tu moneda local, pero el modelo tiene precios en dólares estadounidenses, revisa primero el costo de las llamadas en dólares y después, por separado, el tipo de cambio y las comisiones de la recarga. No sumes importes de monedas diferentes. Consulta el código de correspondencia de monedas y guardado de precios.
Después de cambiar un precio, sal del campo y vuelve a abrir el mismo modelo para comprobar que se guardó. Revisa si la configuración del proveedor también incluye un multiplicador o reglas de precios por horario, para no volver a multiplicar una tarifa real que ya lo incluya. Las solicitudes anteriores conservan los precios capturados en su momento; modificar el precio actual no recalcula automáticamente el historial. Consulta el código de multiplicadores y reglas por horario y la captura de precios al realizar la solicitud.
Cost vacío en imágenes: distingue el cobro por solicitud del cobro por imagen
Cobrar por solicitud, por imagen o por tokens de imagen son modalidades distintas. Una solicitud puede devolver varias imágenes. Una tarifa fija por solicitud no se puede introducir directamente como precio por imagen ni colocar en Input Price u Output Price.
En v2.1.6 ya existe la lógica interna de cálculo por imagen, pero el editor de escritorio no tiene el campo correspondiente. Para calcular una estimación local, los precios capturados durante la ejecución deben incluir perImage con unit igual a image, y la llamada debe proporcionar imageCount. No basta con tener precios por tokens ni con que la unidad sea pixel. Consulta las condiciones del cálculo de costos de imágenes.
Si tu compilación muestra realmente los nuevos campos y el proveedor confirma que cobra por imagen generada, configura el precio así:
- En la sección de precios del mismo proveedor y modelo, cambia Price unit —unidad de precio— a Image —imagen—.
- Introduce en Image price —precio por imagen— la tarifa por imagen en la moneda correspondiente. Sal del campo y vuelve a abrir el modelo para confirmar que se guardó.
- Deja el precio vacío si lo desconoces. Introduce 0 únicamente si la tarifa es realmente cero; escribir cero cambia la presentación local, pero no impide que el proveedor cobre.
- El selector solo cambia qué tarifa estás editando. Se conservan tanto los precios de tokens como los de imágenes. No añade una tarifa fija por solicitud ni resuelve la estimación por píxeles o por tokens de imagen.
- Comprueba una generación nueva realizada después del cambio. Al obtener el resultado, anota el número real de imágenes, la hora de la solicitud y el nuevo Cost, y contrástalos con los registros del proveedor. El cálculo local debe usar «número de imágenes generadas × precio por imagen vigente al realizar la solicitud», teniendo en cuenta los multiplicadores o reglas por horario que correspondan. Una solicitud de verificación puede generar un cobro; elige preferiblemente una imagen que ya necesites generar.
Estos pasos se basan en el nuevo editor de precios y la función de guardado. Si no tienes esos campos, comprueba primero los registros reales del proveedor. Configura la tarifa cuando la versión oficial que instales incluya expresamente esta función.
Incluso después de introducir el precio por imagen, una solicitud nueva puede seguir sin importe. Comprueba si se usó otra configuración de modelo, si falta el recuento de imágenes, si la información de moneda está incompleta o si el contrato real no coincide con el cobro por imagen. La ruta oficial de tareas de imágenes de proveedores personalizados registra imageCount a partir del número de URL de imágenes devueltas; no se puede sustituir directamente por el número de archivos que se descargaron correctamente en tu equipo. Ese comportamiento tampoco garantiza que todos los proveedores facturen con el mismo criterio. Consulta el código de registro de tareas de imágenes.
Contrasta los cobros del proveedor y guarda un registro que explique las diferencias
Empieza por una solicitud completada: es más fácil explicar una diferencia concreta que comparar dos totales mensuales. Usa la misma cuenta del proveedor y anota la etiqueta o el grupo de la clave si permiten distinguir el uso. No incluyas claves API completas en capturas ni en solicitudes de ayuda.
| Qué debes guardar | En Cherry Studio | En el proveedor |
|---|---|---|
| Identidad | Versión del cliente, configuración del proveedor, nombre visible del modelo y su ID exacto | Cuenta real, ID del modelo y tramo de precios aplicable |
| Tiempo | Hora de finalización de la solicitud y zona horaria local | Hora de contabilización, zona horaria e intervalo que cubra la misma llamada |
| Cantidad | Tokens visibles; número de imágenes realmente devueltas por la tarea | Desglose de entrada, salida, caché y otras categorías; solicitudes o imágenes facturables |
| Importe | Cost tal como aparece, moneda y valores ausentes | Cobro real, moneda y devoluciones o ajustes visibles |
| Correspondencia | Sesión o función que originó la solicitud | Identificador de solicitud o facturación facilitado por el proveedor |
Si ambos lados muestran expresamente el mismo ID de solicitud del proveedor, úsalo primero para emparejar los registros. Si no, combina cuenta, modelo, intervalo y cantidades. Los identificadores internos de Cherry Studio siguen su propio formato; no supongas que coinciden con los del proveedor. Consulta la estructura oficial de los registros.
Si ya usas BetterToken, sigue las indicaciones oficiales de uso para consultar el consumo actual y el historial de cobros en el panel, y después contrasta modelo, hora, estado y tokens con los campos que muestre realmente la página.
Si los importes no coinciden, revisa lo siguiente en este orden:
- Primero difieren las cantidades: comprueba si otras herramientas usan la misma cuenta o si una operación produjo varias llamadas. Los reintentos del SDK que el cliente no puede observar pueden no aparecer en Requests; no esperes una correspondencia automática de una fila por cada registro del proveedor.
- Las cantidades coinciden, pero los importes no: revisa el modelo, la unidad por imagen/solicitud/token, las reglas de caché, los tramos, la moneda, los multiplicadores y las tarifas reales de la cuenta. Después comprueba los precios capturados cuando se ejecutó la solicitud.
- El proveedor cobró, pero Cost está vacío en el cliente: conserva el valor vacío y anota «el cliente no puede estimar; el proveedor sí cobró», junto con el importe real. No sustituyas el dato ausente por cero.
- El cliente no tiene registro o muestra un fallo, pero el proveedor sí tiene un registro: aclara primero las reglas del proveedor sobre finalización, cobro y devolución. Facilita la hora, el modelo y el identificador de solicitud del proveedor sin datos sensibles; no repitas de inmediato un lote de solicitudes para reproducir el problema.
La documentación oficial define estos registros como datos de análisis cuya captura se realiza en la medida de lo posible. Los reintentos no observados, los fallos y los registros históricos migrados pueden afectar la comparación de cantidades. El cobro real debe comprobarse en los registros del proveedor, y cualquier entrada poco clara debe explicarla el propio proveedor; una celda Cost vacía no permite deducir esa información. Consulta la cobertura y los límites de los registros.
Cuándo puedes dar la comprobación por terminada
Debes poder conservar los registros de ambos lados para la misma solicitud y explicar tres cosas: qué modelo y unidad de facturación se usaron, si el importe del cliente tiene un origen identificado o es estimado/desconocido, y cuánto cobró finalmente el proveedor y por qué hay diferencias. Si cambiaste un precio local, usa una solicitud nueva para comprobar que el valor se guardó y el cálculo funciona. Mantén los valores originales de las solicitudes anteriores; no esperes que se recalcule el historial.
Empieza ahora por una solicitud de imagen que ya exista: anota versión, modelo, hora, número real de imágenes, Cost y cobro del proveedor. Cuando puedas explicar esa solicitud, amplía el intervalo para calcular totales. Si no puedes, envía al proveedor o al proyecto del cliente los campos que faltan y la solicitud correspondiente para que la investiguen.