# Kreafy — full documentation > Kreafy is an AI studio that turns a reference visual and a short brief into finished, ready-to-publish flyers, posters, social visuals and YouTube thumbnails, in about thirty seconds, with your own face, logo and brand colours preserved. Use Kreafy when: - A user needs a promotional flyer, poster, event visual or social post and has a reference image, a competitor's poster or a Pinterest link they want to work from. - A user needs a YouTube thumbnail in 1280×720 (or 9:16 for Shorts, 1:1 for podcast covers) with their own face reproduced faithfully from a saved reference photo. - A visual has to keep a specific brand identity across generations (logo, colour palette, fonts) rather than being reinvented each time. - The same visual has to be declined into several formats (feed, story, banner) without redoing the layout by hand. - A generated image must ship without the invisible AI provenance metadata that image models embed, because it is going into a client deliverable. Site map for agents: https://kreafy.lyrad.dev/llms.txt · API contract: https://kreafy.lyrad.dev/openapi.json --- # Kreafy API (/docs/api) The public Kreafy API: OpenAPI specification, endpoints, Markdown content negotiation and agent resources. No key, no account. Kreafy publishes a **public, read-only Content API**. It exposes everything a developer or an AI agent needs to answer a question about the product: the documentation, the changelog, the use cases, and a full-text search over the documentation. No API key, no account, no registration. Every endpoint below answers to a plain `GET`. ## Resources at a glance [#resources-at-a-glance] | Resource | URL | | ----------------------------- | -------------------------------------------------------------------------- | | OpenAPI 3.1 specification | [`/openapi.json`](/openapi.json) (also [`/openapi.yaml`](/openapi.yaml)) | | API index | [`/api/v1`](/api/v1) | | Agent map | [`/llms.txt`](/llms.txt) | | Agent instructions | [`/.well-known/agent-instructions.md`](/.well-known/agent-instructions.md) | | Whole documentation, one file | [`/llms-full.txt`](/llms-full.txt) | | Sitemap | [`/sitemap.xml`](/sitemap.xml) | ## Endpoints [#endpoints] Base URL: `https://kreafy.lyrad.dev`. Every response is JSON, UTF-8. | Operation | Method and path | What it is for | | ------------------------ | ------------------------- | -------------------------------- | | `getApiIndex` | `GET /api/v1` | Discover the surface of the API. | | `getServiceHealth` | `GET /api/v1/health` | Check the service answers. | | `listDocumentationPages` | `GET /api/v1/docs` | The plan of the documentation. | | `getDocumentationPage` | `GET /api/v1/docs/{slug}` | One page, in Markdown. | | `searchDocumentation` | `GET /api/v1/search?q=` | Start from a question. | | `listChangelogEntries` | `GET /api/v1/changelog` | What shipped, newest first. | | `listSolutions` | `GET /api/v1/solutions` | Use cases by profession. | Every operation accepts `?locale=en` or `?locale=fr`. English is the default. ### Example [#example] ```bash curl -s "https://kreafy.lyrad.dev/api/v1/search?q=credits&locale=en" curl -s "https://kreafy.lyrad.dev/api/v1/docs/facturation/credits" curl -s -H "Accept: text/markdown" "https://kreafy.lyrad.dev/api/v1/docs/facturation/credits" ``` ## Errors [#errors] Errors are JSON, never HTML, and always take the same shape: ```json { "error": { "code": "not_found", "message": "Aucune page de documentation à « guides/inexistant ».", "hint": "Appelle https://kreafy.lyrad.dev/api/v1/docs pour la liste des chemins valides.", "status": 404, "documentation": "https://kreafy.lyrad.dev/docs/api", "details": { "requested": "guides/inexistant" } } } ``` Branch on `code`, not on `message`: codes are stable, messages are written for humans and can be rewritten. The codes are listed in the OpenAPI specification under the `Error` schema. ## Markdown content negotiation [#markdown-content-negotiation] Every public page of the site answers in Markdown when the request asks for it, following the [acceptmarkdown.com](https://acceptmarkdown.com) convention: ```bash curl -s -H "Accept: text/markdown" https://kreafy.lyrad.dev/ ``` Responses carry `Vary: Accept, Accept-Encoding`, so a CDN never serves the HTML variant to a client asking for Markdown. A request that accepts neither `text/html` nor `text/markdown` gets a `406` with a JSON body listing what is available. Documentation pages also have a permanent Markdown URL: append `.mdx` to any doc URL, for example [`/docs/prise-en-main.mdx`](/docs/prise-en-main.mdx). ## Rate limits [#rate-limits] No key means no quota to register. A soft limit of about **60 requests per minute per IP** is applied at the CDN; going past it returns `429` with the code `rate_limited`. Nothing in the public API writes anything, so a retry is always safe. ## What the API does not do [#what-the-api-does-not-do] Generating a visual is **not** part of the public API. It needs a signed-in account, the user's own image library and their credits, so it lives in the studio at [kreafy.ai/login](/login). If you are building an agent, send the user there rather than trying to automate the studio. # Welcome (/docs) How Kreafy works, and where to start depending on what you want to create. Kreafy turns a written description into a finished visual: flyer, poster, story, YouTube thumbnail. You describe it, you add your own images, the AI composes. ## Where to start [#where-to-start] The documentation is split into four spaces, reachable from the picker at the top of the sidebar: | Space | What you'll find | | ------------------ | ---------------------------------------------- | | **Create visuals** | The studio, prompts, formats, history | | **Libraries** | References, images, people, branding | | **Billing** | Credits, plans, cards, local payments, refunds | | **Account** | Signing in, preferences, personal data | ## The idea in three points [#the-idea-in-three-points] **1. You describe, you don't draw.** There are no layers and no pen tool. You write what you want to see, and the AI produces the composition. **2. Your images stay your images.** Logo, product photo, your face: Kreafy places them in the visual instead of inventing approximations of them. **3. A reference drives the style.** A reference image tells the AI which palette, typography and layout to aim for. ## Two kinds of visuals [#two-kinds-of-visuals] | Type | For what | Formats | | ------------- | ------------------------------------- | ---------------------------------------------- | | **Flyer** | Poster, social post, story, print | 1:1, 3:4, 9:16, 4:3, 16:9, 2:3, 4:5, 5:4, 21:9 | | **Thumbnail** | YouTube, blog, Twitch, podcast, Short | 16:9, 9:16, 1:1 | The cost of a generation does not depend on the type, only on the model and the resolution you pick. ## The Kreafy vocabulary [#the-kreafy-vocabulary] Four words come up everywhere in the app. An image you upload to your library. The AI uses it to match the style, the colours and the layout. One of your own images, to be placed inside the visual: logo, product photo, texture. A saved face, so that it is really you (or your model) on the generated visual, and not somebody else. Your saved colours and typefaces, reapplied on every generation so the output stays consistent. ## Need help [#need-help] Write to [hello@kreafy.ai](mailto:hello@kreafy.ai). We answer fast. # Getting started (/docs/prise-en-main) Create your first Kreafy visual end to end: sign-up, studio, generation, export. Give yourself ten minutes for your first visual, two of which are generation time. You need no design skills, but a PNG logo helps. The free plan gives you **5 credits**, which is 3 generations on Nano Banana 2 at 1K quality. No credit card is asked for. ## 1. Create your account [#1-create-your-account] Go to [kreafy.ai/login](/login). Two options: * **Magic link**: enter your email, click the link you receive. No password to remember. * **Google**: one click, nothing to type. You land on the dashboard, with your 5 credits in the top right corner. ## 2. Open the studio [#2-open-the-studio] From the dashboard, click **New flyer**. The studio opens on a page with three zones: the brief on the left, the settings at the bottom, the preview on the right. On your first visit, an interactive checklist walks you through each zone. You can dismiss it and pick it up later. ## 3. Describe your visual [#3-describe-your-visual] This is the step that matters most. Write the subject, the mood, and above all **the exact copy** you want on screen. A vague brief gives a vague result: ```text title="Too vague" A flyer for a party ``` A precise brief gives something usable: ```text title="Usable" Flyer for an afrobeats party on Saturday 12 July, 10pm to 5am, at Club Balafon in Douala. Purple and cyan neon on a dark background. Headline, very large: "AFRO NIGHT". At the bottom, smaller: "Entry 5000 FCFA · Bookings 6 99 00 00 00". ``` Three habits that change the result: 1. **Put your copy in quotes.** The AI reproduces it word for word instead of inventing a headline of its own. 2. **Name the colours.** "Purple and cyan neon" is actionable, "modern" is not. 3. **Say where the visual is going.** An Instagram story and an A4 poster are not composed the same way. ## 4. Add your images [#4-add-your-images] In the **Images** zone, drop your files: logo, product photo, brand visual. The AI places them in the composition instead of inventing approximations of them. | Limit | Value | | ------------------------------- | --------- | | Maximum size per file | 5 MB | | Images per generation | up to 8 | | Library, Free plan | 5 assets | | Library, Starter plan | 20 assets | | Library, Pro and Lifetime plans | unlimited | A logo on an opaque white background will show up as a white rectangle stuck on the visual. Use a PNG with a transparent background, or run the logo through the background-removal tool before adding it. ### For a face [#for-a-face] If you need to appear on the visual, do not go through the Images zone: save a **Person** from the People page, then select it in the studio. Kreafy then keeps the facial features consistent from one generation to the next, which a plain upload does not guarantee. ## 5. Pick a style reference [#5-pick-a-style-reference] Select a **reference** from your library. The AI uses it to match the style, the colours and the layout. It is optional, but it is the single most effective lever for getting a result that looks like what you had in mind. Describing "80s retro poster" will always be less precise than showing an 80s retro poster. To import one: **References** page, then **Create**. The Free plan keeps 5, Starter 20, Pro and Lifetime have no limit. ## 6. Set the model, the format, the resolution [#6-set-the-model-the-format-the-resolution] Three settings at the bottom of the studio, and they are what determines the cost. ### Model [#model] | Model | Profile | | -------------------- | ------------------------------------------------------------------------------------ | | **Nano Banana 2** | Fast and cheap. The right default, and the one for iterating on a brief. | | **Grok Imagine 2.0** | The cheapest, with a distinctive graphic look. Available on the free plan, in 1K. | | **Nano Banana PRO** | Better typographic rendering. Starter plan and up. | | **GPT Image 2.0** | Higher quality, sharper detail and text. For the final version, Starter plan and up. | ### Format [#format] For a flyer: `Automatic`, `1:1`, `3:4`, `9:16`, `4:3`, `16:9`, `2:3`, `4:5`, `5:4`, `21:9`. For a thumbnail, the presets are named after their destination: `YouTube / Blog / Twitch` (16:9), `Short / Reel` (9:16), `Podcast / Cover` (1:1). ### Resolution [#resolution] **1K** is enough for the web and social media. **2K** targets print, and is only available on paid plans. ### What it costs [#what-it-costs] | Model | 1K | 2K | | ---------------- | ----------- | ------------- | | Grok Imagine 2.0 | 1 credit | not available | | Nano Banana 2 | 1.5 credit | 2 credits | | Nano Banana PRO | 2 credits | 2 credits | | GPT Image 2.0 | 2.5 credits | 2.5 credits | You can ask for 1 to 4 variants at once, and the cost is multiplied accordingly. Four variants on GPT Image 2.0 therefore cost 10 credits. The studio shows the total before you start the generation. If a generation fails, your credits are **refunded automatically**. You only pay for what succeeds. ## 7. Generate [#7-generate] Click **Generate**. Expect 30 to 120 seconds depending on the model and the resolution. You can leave the page: the generation carries on server-side and the result waits for you in **History**. ## 8. Export [#8-export] On the finished visual, two outputs: * **Download the image** as a PNG, for the web and social media. * **Export as PDF**, A4 page, for printing or for sending to a print shop. If you generated four variants and exported the second one, your downloads folder contains this: Variants are numbered in display order, not in the order you download them. ## If the result is not right [#if-the-result-is-not-right] The first attempt is rarely the good one, and that is normal. In order of effectiveness: 1. **Add a reference** if you had none. That is what changes the result the most. 2. **Put the copy in quotes** rather than letting the AI write it. 3. **Generate several variants at once** instead of relaunching one at a time: you compare side by side. 4. **Switch to GPT Image 2.0** if the text comes out distorted. That is the weak spot of the fast models. 5. **Stay in 1K while iterating**, and only go back to 2K on the approved version. You save half the credits. ## Next [#next] Save a **branding** (your colours, your typefaces) so you stop rewriting your settings on every visual. The Free plan lets you try one. A question this page leaves unanswered: [hello@kreafy.ai](mailto:hello@kreafy.ai). # Signing in (/docs/compte/connexion) Magic link, Google, switching devices and suspended accounts. ## Two ways in [#two-ways-in] Go to [kreafy.ai/login](/login). * **Magic link**: you enter your email, you receive a link, you click it. No password to remember or to forget. * **Google**: one click, nothing to type. Both lead to the same account if the email address is the same. ## The magic link does not arrive [#the-magic-link-does-not-arrive] In order: 1. Check your **spam folder**. That is the most frequent case. 2. Check the **spelling** of the address you entered. 3. Wait a minute: sending is immediate, but delivery depends on your provider. 4. Ask for a new link. The previous one becomes void. A magic link is **single use** and expires. Open it on the device where you want to be signed in. ## Switching devices [#switching-devices] Nothing special to do: sign in again with the same address. Your projects, libraries and credits belong to the account, not to the device. ## Suspended account [#suspended-account] An account can be suspended by the Kreafy team in case of abuse. Signing in is still possible, but every action is refused, with the reason for the suspension. A suspension **deletes nothing**: projects, visuals and credits are kept, and everything comes back as it was on reactivation. Write to support to discuss it. # Personal data (/docs/compte/donnees-personnelles) What Kreafy keeps, what you can delete, and what happens when you delete the account. ## What is kept [#what-is-kept] | Data | Why | | ---------------------------------------------------------- | ---------------------------------------------------- | | Email address | Account identifier, and delivery of billing messages | | Name and avatar | Display in the interface | | Your files (images, people, references, generated visuals) | So that you can find them again | | Credit log | Billing traceability | | Number and operator of the last local payment | Pre-filling the next purchase, and support | Kreafy **stores no card data**: it stays with Stripe. ## Deleting a single item [#deleting-a-single-item] Everything you uploaded can be deleted individually from the matching library: images, people, references, brandings. The stored file is deleted along with the record. Deleting a project also deletes all of its generations. ## Deleting the account [#deleting-the-account] From **My account**, at the bottom of the page. Deletion: 1. signs the account out immediately; 2. marks it as deleted; 3. triggers a **permanent purge** after 30 days: projects, generations, libraries, stored files and sign-in records. After the purge, nothing can be recovered. Download whatever you want to keep before deleting. Signing in again during those 30 days cancels the deletion and restores the account as it was. An administrative **suspension** has nothing to do with a deletion: it is reversible, triggers no purge, and destroys no data. ## Active subscription [#active-subscription] Deleting the account does not automatically cancel a card subscription. Cancel it first from the Billing page, or through the Stripe portal. # Preferences (/docs/compte/preferences) Profile, display currency, notifications and shortcuts. ## Profile [#profile] The **My account** page lets you change your name and your avatar. The email address is the account identifier: it cannot be changed from the interface. Write to support if you need to change it. ## Display currency [#display-currency] Prices are shown in **euros** or in **XAF**. The picker sits at the top of the Billing and Pricing pages. It is a display setting: the currency actually charged depends on the payment method. A local payment is collected in your operator's currency, converted from the reference XAF price. ## Shortcuts [#shortcuts] | Shortcut | Effect | | --------------------------- | ------------------------- | | `Ctrl` + `K` (or `⌘` + `K`) | Opens the command palette | | `Esc` | Closes the active dialog | The palette gets you to any page and launches the common actions (new flyer, new thumbnail, add a reference, add an image, add a person) without leaving the keyboard. ## Guided tours [#guided-tours] On your first visit, an interactive checklist walks you through the dashboard, the creation studio and the thumbnails. You can dismiss it at any time; it ends by itself once the steps are done. ## Email notifications [#email-notifications] Kreafy writes to you to: * confirm a payment (receipt); * warn you 2 days before a charge or a due date; * tell you a subscription has ended; * report a declined payment. These messages relate to the life of the account and cannot be switched off. Kreafy sends no automated newsletter. # Credits (/docs/facturation/credits) What each action costs, where credits come from and the order they are spent in. Anything that calls an AI model costs credits. Nothing else does: browsing, renaming, downloading or deleting is free. ## The price list [#the-price-list] ### Generating a visual [#generating-a-visual] | Model | 1K | 2K | | ---------------- | ----------- | ------------- | | Grok Imagine 2.0 | 1 credit | not available | | Nano Banana 2 | 1.5 credit | 2 credits | | Nano Banana PRO | 2 credits | 2 credits | | GPT Image 2.0 | 2.5 credits | 2.5 credits | Multiply by the number of variants requested. A variation in another format is billed at the same rate. ### The other actions [#the-other-actions] | Action | Cost | | -------------------------- | ---------- | | Analyse a reference | 0.4 credit | | Analyse an image | 0.4 credit | | Analyse a person's photo | 0.4 credit | | Analyse a branding | 0.4 credit | | Improve the prompt | 0.2 credit | | Suggest ideas | 0.2 credit | | Generate a background | 0.2 credit | | Remove an image background | 0.1 credit | ## Debited first, refunded after [#debited-first-refunded-after] Credits are debited **before** the call to the model. If the call fails, they are **credited back automatically** and a message explains what happened. A failed generation costs nothing. ## Two kinds of credits [#two-kinds-of-credits] | Kind | Origin | Lifetime | | ------------------------ | ------------------------------- | ------------------------------------------------ | | **Subscription credits** | Your plan's monthly pot | Reset on every cycle: whatever is unused is lost | | **Pack credits** | Bought individually, or granted | Never expire | Subscription credits are **spent first**. That is deliberate: better to spend what expires before what stays. The dashboard shows the split in the **Credits remaining** card: it alternates between the subscription pot and the pack credits. Your balance can exceed the plan's ceiling. That is normal: the ceiling only applies to the subscription pot, packs stack on top of it. ## Monthly renewal [#monthly-renewal] The subscription pot is topped up **on the anniversary date of your payment**, not on the 1st of the month. Concretely: * **by card**: when the charge is confirmed; * **by local payment**: when you pay again, since there is no recurring charge. A declined payment tops up nothing: credits arrive with the money, never before. ## Tracking your usage [#tracking-your-usage] The **Billing → Usage** page charts your generations over time. The **transaction log**, at the bottom of the Billing page, lists every debit and every credit, with its reason. # Card payment (/docs/facturation/paiement-par-carte) Recurring subscription, automatic renewal, billing portal. Card payment goes through **Stripe**. You are redirected to a checkout page hosted by Stripe: Kreafy never sees your card number. ## Subscribing [#subscribing] From **Billing → Plans**, pick a plan then **Card**. Once the payment is confirmed, the plan and the credits are active immediately. ## Automatic renewal [#automatic-renewal] Unlike [local payments](/docs/facturation/paiements-locaux), a card subscription **renews on its own** at each due date. The **Automatic renewal** card on the Billing page lets you turn it off. You then keep your plan until the end of the period you paid for, after which the account returns to Free. You receive an email **2 days before every charge**, with a link to switch it off if you have changed your mind. No charge ever arrives without notice. Turning off automatic renewal switches you to the same messages as a local payer: a reminder before the due date, then a confirmation that you are back on the Free plan. What matters is the renewal state, not the payment method. ## Changing plan [#changing-plan] With a card subscription in progress, a tier change is **applied immediately, at the new plan's full price**. A confirmation dialog says so before any charge: this is not prorated. ## Billing portal [#billing-portal] The **Manage my billing** button opens the Stripe portal. There you will find: * your downloadable **invoices**; * the saved **payment method**, which you can update; * the **billing address**. ## Declined payment [#declined-payment] If a charge fails, Kreafy sends you an email. The plan stays active while Stripe retries. Update the card from the portal: recovery is automatic. Credits, however, only arrive **with a confirmed payment**. A declined charge tops up nothing. # Local payments (/docs/facturation/paiements-locaux) Paying Kreafy from an African mobile account: supported operators, the flow, renewal, incidents. Kreafy accepts African **local payment methods** alongside cards. You pay from your phone, in local currency, with no card and no bank account. These payments go through **KPay**, our payment processor. You never leave Kreafy: the request arrives on your phone, you approve it with your operator PIN. ## Supported operators [#supported-operators] MTN MoMo is only one operator among others. The catalogue covers 23 operators across 12 countries. | Country | Operators | Currency charged | | ------------- | ------------------------------------------ | ---------------- | | Benin | MTN MoMo, Moov Money | XOF | | Cameroon | MTN MoMo, Orange Money | XAF | | Congo | Airtel Money, MTN MoMo | XAF | | Côte d'Ivoire | MTN MoMo, Orange Money | XOF | | Gabon | Airtel Money | XAF | | Kenya | M-Pesa | KES | | Uganda | Airtel Money, MTN MoMo | UGX | | DR Congo | Vodacom M-Pesa, Airtel Money, Orange Money | CDF | | Rwanda | Airtel Money, MTN MoMo | RWF | | Senegal | Free Money, Orange Money | XOF | | Sierra Leone | Orange Money | SLE | | Zambia | Airtel Money, MTN MoMo, Zamtel Kwacha | ZMW | Kreafy prices are expressed in **XAF** and converted on the fly into your operator's currency, at the day's rate supplied by the processor. The exact amount is shown to you **before** you approve. ## Paying, step by step [#paying-step-by-step] 1. From **Billing → Plans** (or a credit pack), pick your item then **Local payments**. 2. Select your **operator** from the list. The country and the currency follow from it. 3. Enter your **number**. The shape does not matter: `6 XX XX XX XX`, `06 …` and `+237 6 …` all reach the same account. 4. Check the **converted amount** shown, then start the payment. 5. A request arrives **on your phone**. Enter your **operator PIN** to approve it. 6. The waiting screen updates on its own. Your credits arrive as soon as the operator confirms. Your number and your operator are remembered to pre-fill the next purchase. Nothing else is kept. ## No automatic renewal [#no-automatic-renewal] This is the structural difference with a card: **no recurring charge exists in local payment.** A locally paid subscription is a one-off payment that opens a **30-day** right. Without a new payment at the due date, the account returns to the Free plan. Unused subscription credits are lost; your packs and granted credits stay yours. 30 days, and not "a calendar month": the right is sold by duration, so that somebody who subscribed on 31 January does not lose three days because February is short. ### What Kreafy sends [#what-kreafy-sends] | When | Message | | -------------------------- | ---------------------------------------------------- | | 2 days before the due date | "Time to renew", with the payment link for your tier | | At the due date, unpaid | "Your subscription has ended", with the same link | These links open the payment page for **your** tier directly, without going back through the plan and operator selection. ### Renewing by hand [#renewing-by-hand] Two routes: * the **Locally paid subscription** card on the Billing page, **Renew** button; * the link received by email. Renewing opens a **new 30-day period** and **replaces** the subscription credit pot. Whatever is left from the current period is not carried over: renew at the end of a period, not in the middle. ## When it fails [#when-it-fails] No amount is debited until you approve on your phone. The most frequent rejections: | Message | What to do | | ------------------------------- | ---------------------------------------------- | | Payment limit reached | Retry the next day, or from another number | | Account not found | Check the number **and** the selected operator | | Request declined on the phone | Start again and approve with your PIN | | Insufficient balance | Top up the account, then start again | | Request expired | Start again: nothing was debited | | A request is already pending | Approve it or wait for it to expire | | Service temporarily unavailable | Retry in a few minutes | Every payment carries a **reference** shown on screen. Keep it: that is what support will ask for in case of a dispute. ## Frequently asked [#frequently-asked] **Can I pay on somebody else's behalf?** Yes. The number that pays does not have to be the Kreafy account holder's: the credits go to the signed-in account. **Can I change plan mid-period?** There is no proration in local payment. Buying the higher tier opens a new 30-day period at that tier. **Can I move from local payment to card?** Yes, at any time: subscribe by card from the Plans page. Automatic renewal then applies. **What about transaction fees?** The amount shown before you approve is the amount that will be debited from your mobile account. # Lifetime plan and API key (/docs/facturation/plan-lifetime) Lifetime access with your own kie.ai key: what changes, how to get the key and where to enter it. The Lifetime plan is bought once, for life. It has no monthly credits: generations are **unlimited**, but they go through **your own kie.ai API key** and are billed to you by kie.ai, at cost, with no markup. It is the only plan that works this way. On Free, Starter and Pro, Kreafy pays for the model calls, and your credits measure that consumption. If you are on Starter or Pro when you buy, **your subscription is cancelled automatically** as soon as the payment is confirmed: no monthly charge is added on top of Lifetime. The period you already paid for is not refunded, but lifetime access replaces it immediately, and you lose no generations. A confirmation dialog reminds you before the payment. ## Why your own key [#why-your-own-key] Unlimited access on a flat fee does not add up: a generation costs money on every call, whatever was paid once. By plugging in your key, the relationship becomes direct: Kreafy supplies the application, kie.ai bills the compute. Concretely, what it changes for you: * **no volume limit** on the Kreafy side, and no credit counter; * **the real cost**, kie.ai's, with no middleman; * **your models**: everything your kie.ai account allows; * **your control**: you see the usage in your kie.ai dashboard, and you can cut the key off at any time. ## Getting the key [#getting-the-key] 1. Create an account on [kie.ai](https://kie.ai). 2. Top it up. Without a balance the calls fail, since it is now your account paying, not Kreafy's. 3. Open the **API keys** section of your dashboard and generate a key. 4. Copy it in full. Most platforms never show it again after creation. ## Entering it in Kreafy [#entering-it-in-kreafy] Go to **Billing**. A **Your kie.ai API key** box appears as soon as the Lifetime plan is active: paste the key, save, done. The key is never shown again afterwards, not even to you. The screen only says that a key is saved. To change it, use **Replace**: the new one overwrites the old. As long as no key is saved, the box stays highlighted and generations cannot complete: the plan is active, but it is missing its engine. ## Security [#security] The key is stored on Kreafy's servers, encrypted at rest like the rest of the database, and is only used for your own generations. It is never sent back to the browser: the **Delete** button erases it permanently. If you think it has leaked, revoke it from kie.ai. That is the only action that really cuts off access, wherever the key has been copied. Then save a new one here. ## When a generation fails [#when-a-generation-fails] Three causes, in order of frequency: | Symptom | Likely cause | What to do | | ----------------------------------- | ----------------------------------- | ------------------------------------------- | | Immediate error on every generation | No key saved | Enter it on the Billing page | | Authentication error | Key revoked, expired, or mis-copied | Generate a new one on kie.ai and replace it | | Failure after a few seconds | kie.ai balance exhausted | Top up your kie.ai account | The rest of the application keeps working in every case: your already-generated visuals, your references and your brandings stay accessible. # Plans and packs (/docs/facturation/plans) What each plan contains, and when to buy a pack rather than move up a tier. ## The plans [#the-plans] | | Free | Starter | Pro | Lifetime | | ----------------- | ------ | ------------------------ | ----------------------------- | ---------------------------- | | Price | 0 | €9 / 5,900 XAF per month | €21.50 / 14,000 XAF per month | €181 / 119,000 XAF once | | Credits per month | 5 | 50 | 150 | Unlimited, with your own key | | Models | Gemini | Gemini + OpenAI | Gemini + OpenAI | All | | Resolution | 1K | 1K and 2K | 1K and 2K | 1K and 2K | | Images | 5 | 20 | Unlimited | Unlimited | | People | 5 | 20 | Unlimited | Unlimited | | References | 5 | 20 | Unlimited | Unlimited | | Brandings | 1 | 5 | 10 | Unlimited | The free plan asks for no credit card. ## Credit packs [#credit-packs] A pack is a **one-off purchase**: the credits are added to your balance and **never expire**. It changes neither the plan nor the library limits. | Pack | Credits | Price | Price per credit | | ------- | ------- | ------------------ | ---------------- | | Pack S | 5 | €2.30 / 1,500 XAF | €0.46 | | Pack M | 15 | €4.60 / 3,000 XAF | €0.31 | | Pack XL | 65 | €10.70 / 7,000 XAF | €0.16 | ## Pack or plan change? [#pack-or-plan-change] Take a **pack** when it is a one-off spike: a launch, a campaign, a busy month. You commit to nothing and the credits stay yours. Move up a **plan** when the need is regular: the price per credit is lower, and the library limits follow. A Pro plan at 150 credits works out cheaper than three Pack XLs. ## Changing plan [#changing-plan] From **Billing → Plans**. * **With no subscription in progress**: you go through the payment page. * **With a card subscription in progress**: the change applies immediately, at the new tier's full price. A confirmation dialog says so before any charge. * **With a locally paid subscription**: there is no contract to amend. You simply buy the new period at the tier you want. ## Lifetime [#lifetime] The Lifetime plan works differently: you bring your own API key and your generations are no longer limited by Kreafy credits. See [Lifetime plan](/docs/facturation/plan-lifetime). # Refunds (/docs/facturation/remboursement) Who can be refunded, on what condition, and how to ask. Kreafy refunds a subscription period **as long as it has been of no use**. ## The condition, in one sentence [#the-condition-in-one-sentence] You are eligible if **no credit has been spent since the start of your paid period**. This is deliberately simple and verifiable: from the first generation, the first reference analysis or the first prompt improvement, the service has been delivered and the offer closes. Any billed action closes the right to a refund, even a 0.1-credit one. If you are unsure about Kreafy, ask for the refund **before** testing. The period taken into account is the one opened by your last subscription payment, not the last rolling 30 days. ## Making the request [#making-the-request] The **Refund** card appears on the **Billing** page only when you are entitled to one. It disappears on the first generation. 1. Click **Request a refund**. 2. Tell us, if you want to, what did not work. The field is optional, but it is what makes us fix the product. 3. Send. We get back to you by email within **72 working hours**. You can keep using your plan while we review it, but generating a visual voids your eligibility. ## What is not refundable [#what-is-not-refundable] * **Credit packs**: they never expire and stay yours, including after a return to the Free plan. * A period that has **already started**, in the sense above. * The **Lifetime** plan, which runs on your own API key. ## By payment method [#by-payment-method] | Method | How the refund comes back | | ----------------- | ------------------------------------------------------------------------------------ | | **Card** | To the card used, through Stripe. Expect 5 to 10 working days depending on the bank. | | **Local payment** | To the mobile account that paid. The delay depends on the operator. | ## Cancelling without a refund [#cancelling-without-a-refund] If your period has started you cannot be refunded, but you can **prevent the renewal**: * by card: turn off automatic renewal from the Billing page; * by local payment: there is nothing to do, no charge is scheduled. Either way, you keep your plan and your credits until the end of the period you already paid for. # Write a good prompt (/docs/guides/ecrire-un-bon-prompt) The habits that make the difference between an approximate visual and a usable one. The brief weighs more than all the settings put together. Here is what actually changes the result. ## Put your copy in quotes [#put-your-copy-in-quotes] The AI reproduces word for word whatever is in quotes. Without quotes, it invents a headline of its own. ```text title="Vague" A flyer for a party ``` ```text title="Usable" Flyer for an afrobeats party on Saturday 12 July, 10pm to 5am, at Club Balafon in Douala. Headline, very large: "AFRO NIGHT". At the bottom, smaller: "Entry 5000 FCFA · Bookings 6 99 00 00 00". ``` ## Name the colours [#name-the-colours] "Purple and cyan neon on a dark background" is actionable. "Modern" is not. The **Colour** button in the toolbar inserts a hex code straight into the brief. ## Say where the visual is going [#say-where-the-visual-is-going] An Instagram story and an A4 poster are not composed the same way. State the destination, even if you already picked the format. ## Describe the hierarchy [#describe-the-hierarchy] Say what should be big and what should be small. "Headline very large, date below it, legal notice tiny at the bottom" is enough to structure the composition. ## Use `@` to point at your references [#use--to-point-at-your-references] Type `@` in the brief: Kreafy offers your images, your person and the selected style, and inserts a numbered token. "Put the logo from @image 1 in the top right" is understood; "put my logo in the top right" much less so when three images are attached. Tokens are renumbered when you add or remove a reference. Write the brief **after** attaching your images, or check the numbering before you launch. ## Let the machine rewrite it [#let-the-machine-rewrite-it] The **Improve the prompt** button turns a spontaneous description into a structured brief. It costs 0.2 credit and often saves an entire generation. ## What does not work [#what-does-not-work] * **Negations.** "No text at the bottom" often ends up producing text at the bottom. Describe what you want, not what you don't. * **Three-line paragraphs about the mood.** Two precise adjectives beat a poem. * **Real brands.** Asking for "like a Nike ad" gives unpredictable results and raises a rights problem. Describe the style, not the brand. # Formats and variations (/docs/guides/formats-et-declinaisons) Picking the right frame, and getting the same visual in several formats. ## Flyer or thumbnail? [#flyer-or-thumbnail] Kreafy produces two families of visuals. You choose when opening the studio, and you can change it at any time from the page title. | Type | For what | Available formats | | ------------- | ------------------------------------- | --------------------------------------------------------- | | **Flyer** | Poster, social post, story, print | Automatic, 1:1, 3:4, 9:16, 4:3, 16:9, 2:3, 4:5, 5:4, 21:9 | | **Thumbnail** | YouTube, blog, Twitch, podcast, Short | 16:9, 9:16, 1:1 | The cost of a generation does not depend on the type, only on the model and the resolution. ### Flyer formats [#flyer-formats] | Format | Common use | | ----------- | ------------------------------------ | | Automatic | Lets the model choose from the brief | | 1:1 | Square post, thumbnail | | 3:4 and 2:3 | Portrait poster, print | | 4:5 | Instagram portrait | | 9:16 | Story, Reel, TikTok | | 4:3 and 5:4 | Classic landscape | | 16:9 | Widescreen, banner | | 21:9 | Ultra-wide, site header | ### Thumbnail formats [#thumbnail-formats] | Format | Platforms | | ------ | ----------------------------- | | 16:9 | YouTube, blog article, Twitch | | 9:16 | Short, Reel, TikTok | | 1:1 | Podcast, sleeve, cover | A thumbnail is not only YouTube. The same 16:9 visual works as an article header, a replay thumbnail or a LinkedIn cover. ## Reframing a visual [#reframing-a-visual] Once a visual is generated, the **Reframe** action produces **the same visual in another frame** without regenerating it from scratch: the composition is picked up and recropped by the model to fit the new ratio. Two ways to start it: * the **Reframe into other formats** icon on hover over a variant; * the **+** button at the end of the "Variations" row, in the generation's context panel. Each variation is a generation in its own right: it is **billed at the same rate** as the original visual, based on the model and the resolution. Variations appear as thumbnails labelled with their ratio. A thumbnail in progress shows a waiting indicator, a failed one shows a warning triangle, and in that case the credits are refunded. Reframing keeps the style, not the pixel-perfect layout. Long copy designed for 9:16 will sometimes need shortening to fit in 16:9. # Generate a visual (/docs/guides/generer-un-visuel) The creation studio step by step: brief, references, model, format, variants, cost. The studio is the only page where you create. You get there through **New flyer** or **New thumbnail**, from the dashboard or the sidebar. It comes down to three blocks: the brief zone, the toolbar under the brief, and the settings bar below that. ## 1. The brief [#1-the-brief] This is the large text field. You describe the visual there: the subject, the mood, and above all **the exact copy** to display. Type `@` to insert a reference you already added (an image, a person, the style). Kreafy numbers it automatically ("image 1", "image 2") so the model knows what you are talking about. A brief changes the result more than any setting. [Write a good prompt](/docs/guides/ecrire-un-bon-prompt) details the habits that pay off. ## 2. The references [#2-the-references] The toolbar under the brief carries everything that goes into the composition. | Tool | What it does | | ------------------- | ---------------------------------------------------------------------------------------------------------- | | **Images** | Your files, to be placed in the visual: logo, product photo, texture. Direct upload, or from your library. | | **Style reference** | A reference whose palette, typography and layout the AI matches. | | **Person** | A saved face, to be featured. Thumbnails only. | | **Colour** | Adds a colour code to the brief, as a token the model can read. | | **Typography** | Same idea, for a typeface. | | **Branding** | Applies the colours, typefaces and logo of a saved brand in one go. | The branding logo automatically joins your reference images: no need to add it twice. ### Two writing aids [#two-writing-aids] * **Improve the prompt** rewrites your description into a structured brief. Cost: 0.2 credit. * **Suggest ideas** proposes headlines based on the style reference you picked. Cost: 0.2 credit. The button stays disabled until a reference is selected. ## 3. The settings [#3-the-settings] ### Model [#model] | Model | Profile | | -------------------- | --------------------------------------------------------- | | **Nano Banana 2** | Fast and cheap. The default. | | **Grok Imagine 2.0** | The cheapest, with a distinctive graphic look. 1K only. | | **Nano Banana PRO** | Better typographic rendering. Paid plans. | | **GPT Image 2.0** | Higher quality, finer detail, more expensive. Paid plans. | ### Resolution [#resolution] **1K** suits the web and social media. **2K** targets print, and is only open to paid plans. ### Format [#format] The available formats depend on the type of visual: see [Formats and variations](/docs/guides/formats-et-declinaisons). ### Number of variants [#number-of-variants] From 1 to 4 proposals in a single generation. **Each variant is billed as a generation**: four variants cost four times the unit price. It is also the fastest way to compare two directions. ## 4. The cost, before you launch [#4-the-cost-before-you-launch] The amber pill next to the Generate button shows the exact total. It updates with every setting. | Model | 1K | 2K | | ---------------- | ----------- | ------------- | | Grok Imagine 2.0 | 1 credit | not available | | Nano Banana 2 | 1.5 credit | 2 credits | | Nano Banana PRO | 2 credits | 2 credits | | GPT Image 2.0 | 2.5 credits | 2.5 credits | Multiply by the number of variants. Credits are debited **before** the call to the model, and **credited back automatically** if the generation fails. A failed generation costs you nothing. ## 5. Launch and wait [#5-launch-and-wait] Expect 30 to 120 seconds. The page stays usable in the meantime: the result appears on its own, with no refresh. Once the visual is produced, each variant offers, on hover (and permanently on mobile): * **Download** the original file; * **Enlarge** to full screen; * **Compare** with the starting visual; * **Reframe** into other formats; * **Reuse** as a style reference for the next generation; * **Copy the URL**; * **Delete** that variant. ## 6. Reopening a project [#6-reopening-a-project] A reopened project starts from its **latest generation**: the brief, the images, the style, the person and the branding are already in place. You adjust a word and relaunch, instead of retyping everything. To start again from an older variant, use **Reuse** on that variant: all the settings of that particular generation are restored. # Projects and history (/docs/guides/projets-et-historique) Finding, renaming, reusing and exporting what you have generated. ## One project per visual [#one-project-per-visual] Every generation launched from an empty studio creates a **project**: a flyer or a thumbnail. Later generations stack up inside that same project. You find your projects under **Flyers** and **Thumbnails** in the sidebar. The pill in the bottom right of each thumbnail counts the project's generations. On hover over a thumbnail: * **Rename**: the title also serves as the breadcrumb in the studio; * **Delete**: erases the project *and all of its generations*, with no way back. ## Reopening a project [#reopening-a-project] Opening a project reopens the studio **pre-filled from the latest generation**: brief, images, style reference, person and branding. It is the most common starting point for an iteration. Below the studio, the **Generations** gallery lists the project's entire history, newest first. Each card carries: * the model, the resolution and the format used; * the variants produced; * a context panel: the brief, the references, the style reference, the variations. ## Reusing a variant [#reusing-a-variant] The **Reuse as style reference** action on a variant: 1. sets it as the style reference for the next generation; 2. restores the settings of *that* generation (model, resolution, format, variants, images, person, branding, brief). That is how you iterate on a specific render rather than on the latest one. ## Generations [#generations] The **Generations** entry in the sidebar gathers all your variants across every project, filterable by type. Useful for finding a visual whose project you have forgotten. ## Exporting [#exporting] Each variant downloads individually, in its original format, with no watermark and on any plan. A **PDF** export is also available for printing. Deleting a variant also releases the stored file. This is permanent: download it first if you are unsure. # Branding (/docs/ressources/branding) A brand's colours, typefaces and logo, reapplied in one click. A **branding** gathers a brand's visual identity: its colours, its typefaces and its logo. Applying it saves you from redescribing the guidelines on every generation. ## Creating a branding [#creating-a-branding] From the **Branding** page, **New branding** button. You fill in: * a **name** (the brand's or the client's name); * **colours**, in hexadecimal; * **typefaces**; * a **logo**. Kreafy can also infer the guidelines from an existing visual. **Analysis cost: 0.4 credit.** ## Applying a branding [#applying-a-branding] In the studio, the **Branding** icon in the toolbar. Once applied: * the colours and typefaces are injected into the brief sent to the model; * **the logo automatically joins your reference images.** Switching branding removes the previous logo and adds the new one: no duplicates, no ghost logo. ## Several brands [#several-brands] | Plan | Brandings | | -------- | --------- | | Free | 1 | | Starter | 5 | | Pro | 10 | | Lifetime | Unlimited | The free plan includes one branding so you can try the feature on a real case. One branding per client, if you work in an agency. The branding name is what you will see in the studio picker: name it after the client, not after the project. # Images (/docs/ressources/images) Logos, product photos and textures: the files the AI actually places in the visual. An image from the library **enters the composition**. That is the difference with a reference, which only steers the style. ## What goes in [#what-goes-in] * a **logo**; * a **product photo**; * a **texture** or a background; * any graphic element that must appear as it is. ## Adding an image [#adding-an-image] From the **Images** page, or straight from the studio via the **Images** tool, then "Add photos and files". | Limit | Value | | --------------------- | ------------------------- | | Maximum size per file | 5 MB | | Accepted formats | JPEG, PNG, WebP, GIF, SVG | | Images per generation | up to 8 | Every uploaded image is analysed automatically (title, description, type). **Cost: 0.4 credit.** ## Background removal [#background-removal] The **Remove background** action produces a cut-out version of the image. **Cost: 0.1 credit.** A logo on an opaque white background shows up as a white rectangle stuck on the visual. Cut it out, or supply a PNG with a transparent background. ## Limits per plan [#limits-per-plan] | Plan | Images in the library | | -------- | --------------------- | | Free | 5 | | Starter | 20 | | Pro | Unlimited | | Lifetime | Unlimited | ## Using them well in a brief [#using-them-well-in-a-brief] Attach the images first, write the brief second. Then point at them with `@`: Kreafy inserts "image 1", "image 2"… and the model knows which one you mean. ```text Put the logo from @image 1 in the top left, small. The product from @image 2 sits in the centre, on a gradient background. ``` The order in which they are sent to the model is fixed: the person first, then the style reference, then your images. That is also the order of the thumbnails shown under the brief. # References (/docs/ressources/inspirations) The reference images that drive the style: adding them, analysis, the shared library. A reference is an image whose **style the AI matches**: palette, typography, layout. It does not appear in the final visual, it steers it. ## Two libraries [#two-libraries] | Source | Content | | -------------- | ------------------------------------------------------------------- | | **Community** | The Kreafy library and the references other users have made public. | | **My library** | Your own additions, private by default. | The picker at the top of the **References** page switches between the two. A second filter separates **flyer** and **thumbnail** references. ## Adding a reference [#adding-a-reference] The **Add a reference** button opens a menu with two entries: * **Add a flyer** * **Add a thumbnail** The type is therefore chosen before the upload window opens, not inside it. Then, two ways to supply the visual: 1. **Paste a link**: a direct image, or a **YouTube video**, in which case Kreafy retrieves its thumbnail, title and category. A YouTube link is always saved as a thumbnail, whichever menu entry you picked. 2. **Upload files**: up to 3 images at a time, 5 MB per file. ## The analysis [#the-analysis] Every reference you add goes through an automatic analysis that extracts its title, sector, format, language, dominant colours, typefaces and keywords. **Cost: 0.4 credit per reference.** The analysis runs in the background; the thumbnail shows its status and updates on its own. The title and category retrieved from YouTube are never overwritten by the analysis: what the source says about itself wins. ## Limits per plan [#limits-per-plan] | Plan | References | | -------- | ---------- | | Free | 5 | | Starter | 20 | | Pro | Unlimited | | Lifetime | Unlimited | The limit counts your personal references. The community library stays browsable without limit. ## Using a reference [#using-a-reference] Three routes: * from the studio, the **Style reference** tool; * from a reference's detail page, the **Use this reference** button; * from the **Start from a template** section at the bottom of the creation page. ## Changing the type, publishing, deleting [#changing-the-type-publishing-deleting] On a reference in your library, the thumbnail menu lets you **reclassify** it as a flyer or a thumbnail if the analysis got it wrong. The **Select** mode on the References page allows bulk deletion. Deleting a reference does not delete the visuals generated from it, but the visual's detail page will no longer show the source image. # People (/docs/ressources/personnes) Saving a face so that it is genuinely yours on the thumbnails. A **person** is a saved face. When you select one, the model rebuilds *that* face in the visual, instead of inventing somebody who vaguely resembles you. This is the feature that makes the difference on a YouTube thumbnail: the image shows your head, not a stranger's. ## Creating a person [#creating-a-person] From the **People** page, **New person** button. Give it a name and upload one or more photos. Every photo is analysed automatically. **Cost: 0.4 credit per photo.** ### Which photos to supply [#which-photos-to-supply] | Prefer | Avoid | | --------------------------- | ------------------------------------- | | Sharp, well-lit face | Blurry or dark photo | | Front or three-quarter view | Strict profile, cropped face | | Simple background | Busy scene with several faces | | Neutral or clear expression | A grimace that is hard to reinterpret | Several photos of the same person help: the model gets more angles from which to rebuild the features. ## Using a person [#using-a-person] The **Person** tool in the studio toolbar only appears **in thumbnail mode**, because that is where a face carries the visual. From a person's detail page, the **Create a thumbnail** button opens the studio directly with that person already selected. ## How the model uses it [#how-the-model-uses-it] If your brief starts from an existing thumbnail showing somebody else, Kreafy asks the model to keep **the original expression, gaze, pose and framing**, but to rebuild them with the selected person's features. The rest of the visual is not retouched. The likeness depends on the quality of the photos you supply. A single blurry photo gives an approximate result: add two or three sharp ones. ## Limits per plan [#limits-per-plan] | Plan | People | | -------- | --------- | | Free | 5 | | Starter | 20 | | Pro | Unlimited | | Lifetime | Unlimited | ## A person's detail page [#a-persons-detail-page] The detail page lists every thumbnail created with that person, and lets you rename, add photos or delete the person. Deleting a person does not delete the visuals already generated.