BrandKarma

upsert_visual_style

Create or update the brand's visual style — the per-brand defaults applied during image generation. Mode 'merge' (default) updates only the fields you provide and leaves the rest untouched. Mode 'replace' overwrites the entire visual style with the supplied fields (anything you omit is cleared). All plain-text fields ('style', 'colorPalette', 'mood', 'motif', 'lighting', 'composition', 'doNot', 'additionalInstructions') must be literal text — do not HTML-escape (no '&amp;', '&lt;', or '<tag>'). 'defaultImagePrompt' is a JSON object encoded as a string; its keys are merged into every generated image prompt. 'defaultAspectRatio' and 'defaultModel' kick in only when generate_image is called without those arguments.

Remote Account required revuo:brandkarma-4084

Remote (network-hosted) · Requires an account with the vendor · OAuth

Other tools also called upsert_visual_style? See providers with this name

Input Schema


            {
  "type": "object",
  "properties": {
    "brandId": {
      "description": "Brand ID (ObjectId)",
      "type": "string"
    },
    "style": {
      "description": "Short phrase, e.g. 'minimalistic isometric', 'photorealistic with soft lighting'. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "colorPalette": {
      "description": "2-3 specific colors including hex values where reasonable. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "mood": {
      "description": "Emotional register, e.g. 'professional and trustworthy', 'playful and energetic'. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "motif": {
      "description": "Recurring subject/theme across imagery, e.g. 'isolated objects on neutral background'. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "lighting": {
      "description": "Lighting style, e.g. 'soft natural daylight', 'dramatic studio rim light'. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "composition": {
      "description": "Framing/perspective rules, e.g. 'centered subject, generous negative space'. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "doNot": {
      "description": "Things the image must never contain, e.g. 'competitor logos, stock-photo handshakes'. Plain text only. Appended to the constraints sent to the image model.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "additionalInstructions": {
      "description": "Catch-all extra constraints not covered by the other fields. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "defaultAspectRatio": {
      "description": "Fallback aspect ratio used when generate_image is called without one. Must be one of the supported Gemini ratios (e.g. '1:1', '16:9', '9:16', '4:3', '3:4', '21:9').",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "defaultModel": {
      "description": "Fallback image model used when generate_image is called without one. Must be 'gemini-3.1-flash-image-preview' or 'gpt-image-2'.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "defaultImagePrompt": {
      "description": "Default image prompt as a JSON object encoded as a string. Keys are merged into every generated image prompt; per-call keys override.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "mode": {
      "description": "'merge' (default) updates only supplied fields; 'replace' overwrites the whole visual style.",
      "type": "string",
      "default": "merge"
    }
  },
  "required": [
    "brandId"
  ]
}