> ## Documentation Index
> Fetch the complete documentation index at: https://ailabtools.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Photo to Painting

> Photo to Painting API converts photos into cartoon, pencil, oil painting, and other artistic styles with AI.

export const FileStoragePolicy = ({uploadedFiles, responseType}) => {
  const responseFileData = {
    URL: {
      stored: "Yes",
      retention: "24 Hours",
      deletion: "Automatic"
    },
    BASE64: {
      stored: "No",
      retention: "N/A",
      deletion: "Immediate"
    }
  };
  if (!uploadedFiles && !responseType) return null;
  return <div>
      <table>
        <thead>
          <tr>
            <th>Data Type</th>
            <th>Stored</th>
            <th>Retention</th>
            <th>Training</th>
            <th>Deletion</th>
          </tr>
        </thead>
        <tbody>
          {uploadedFiles && <tr>
              <td>Uploaded Files</td>
              <td>No</td>
              <td>N/A</td>
              <td>No</td>
              <td>Immediate</td>
            </tr>}
          {responseType && responseFileData?.[responseType] && <tr>
              <td>Response Files ({responseType})</td>
              <td>{responseFileData[responseType]['stored']}</td>
              <td>{responseFileData[responseType]['retention']}</td>
              <td>No</td>
              <td>{responseFileData[responseType]['deletion']}</td>
            </tr>}
        </tbody>
      </table>

      <Tip>
        For more information, see the{" "}<a href="/docs/file-storage-policy">File Storage Policy</a> and{" "}<a href="https://www.ailabtools.com/privacy-policy" target="_blank">Privacy Policy</a>.
      </Tip>
    </div>;
};

export const BillingInstructions = ({creditsPerRequest = 1}) => {
  const creditUnitPrice = 0.0027;
  const billingTiers = [{
    price: 6,
    credits: 2000,
    costPerCredit: 0.003
  }, {
    price: 30,
    credits: 10000,
    costPerCredit: 0.003
  }, {
    price: 300,
    credits: 110000,
    costPerCredit: 0.0027
  }, {
    price: 1500,
    credits: 550000,
    costPerCredit: 0.0027
  }, {
    price: 2500,
    credits: 1000000,
    costPerCredit: 0.0025
  }];
  const formatCurrency = (value, fractionDigits = 2) => value.toLocaleString("en-US", {
    style: "currency",
    currency: "USD",
    minimumFractionDigits: fractionDigits,
    maximumFractionDigits: fractionDigits
  });
  const formatNumber = (value, fractionDigits = 0) => value.toLocaleString("en-US", {
    minimumFractionDigits: fractionDigits,
    maximumFractionDigits: fractionDigits
  });
  return <>
      <table>
        <thead>
          <tr>
            <th style={{
    textAlign: "right"
  }}>Price</th>
            <th style={{
    textAlign: "right"
  }}>Requests</th>
            <th style={{
    textAlign: "right"
  }}>Cost / Request</th>
          </tr>
        </thead>
        <tbody>
          {billingTiers.map(tier => {
    const requests = tier.credits / creditsPerRequest;
    const costPerRequest = tier.costPerCredit * creditsPerRequest;
    return <tr key={tier.credits}>
                <td style={{
      textAlign: "right"
    }}>{formatCurrency(tier.price)}</td>
                <td style={{
      textAlign: "right"
    }}>{formatNumber(requests)}</td>
                <td style={{
      textAlign: "right"
    }}>
                  {formatCurrency(costPerRequest, 4)}
                </td>
              </tr>;
  })}
        </tbody>
      </table>

      <Tip>
        Each successful API request consumes{" "}<strong>{creditsPerRequest} credits (≈{" "}{formatCurrency(creditUnitPrice * creditsPerRequest, 4)})</strong>. Failed requests are not billed.

        <ul>
          <li>
            View pricing on the{" "}<a href="https://www.ailabtools.com/price?tab=api" target="_blank">pricing page</a>{" "}or manage credits in the{" "}<a href="https://www.ailabtools.com/developer/billing" target="_blank">developer platform</a>.
          </li>
          <li>
            Need more credits or an enterprise plan? Contact{" "}<a href="mailto:business@ailabtools.com">business@ailabtools.com</a>.
          </li>
        </ul>
      </Tip>
    </>;
};

export const ExperienceLinks = ({onlineUrl, apiUrl}) => {
  return <Tip>
      Explore this API through the{" "}<a href={`https://www.ailabtools.com${onlineUrl}`} target="_blank">👉 Online Experience 👈</a>{" "}or integrate it using the{" "}<a href={apiUrl}>👉 Run with API 👈</a>.
    </Tip>;
};

## Renderings show

| Original image | ![Original image][original-4]    | ![Original image][original-5]    |
| :------------- | :------------------------------- | :------------------------------- |
| `cartoon`      | ![cartoon][cartoon-4]            | ![cartoon][cartoon-5]            |
| `pencil`       | ![pencil][pencil-4]              | ![pencil][pencil-5]              |
| `color_pencil` | ![color\_pencil][color_pencil-4] | ![color\_pencil][color_pencil-5] |
| `warm`         | ![warm][warm-4]                  | ![warm][warm-5]                  |
| `wave`         | ![wave][wave-4]                  | ![wave][wave-5]                  |
| `lavender`     | ![lavender][lavender-4]          | ![lavender][lavender-5]          |
| `mononoke`     | ![mononoke][mononoke-4]          | ![mononoke][mononoke-5]          |
| `scream`       | ![scream][scream-4]              | ![scream][scream-5]              |
| `gothic`       | ![gothic][gothic-4]              | ![gothic][gothic-5]              |

<ExperienceLinks onlineUrl="/photo-to-painting" apiUrl="/docs/ai-image/effects/image-style-conversion/api" />

## Billing Instructions

<BillingInstructions creditsPerRequest={7} />

## File Storage Policy

<FileStoragePolicy uploadedFiles responseType="BASE64" />

## Application Scenarios

* **Image Fun Processing**: Integrate the service into the Meitu app, fun activity pages, and more. Simply upload a picture and instantly convert it into a cartoon or sketch style to enjoy the diverse styles of the original image.

[original-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/original-4-min.jpg

[original-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/original-5-min.jpg

[cartoon-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/cartoon-4-min.jpeg

[cartoon-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/cartoon-5-min.jpeg

[pencil-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/pencil-4-min.jpeg

[pencil-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/pencil-5-min.jpeg

[color_pencil-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/color_pencil-4-min.jpeg

[color_pencil-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/color_pencil-5-min.jpeg

[warm-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/warm-4-min.jpeg

[warm-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/warm-5-min.jpeg

[wave-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/wave-4-min.jpeg

[wave-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/wave-5-min.jpeg

[lavender-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/lavender-4-min.jpeg

[lavender-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/lavender-5-min.jpeg

[mononoke-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/mononoke-4-min.jpeg

[mononoke-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/mononoke-5-min.jpeg

[scream-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/scream-4-min.jpeg

[scream-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/scream-5-min.jpeg

[gothic-4]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/gothic-4-min.jpeg

[gothic-5]: https://img.ailabtools.com/rapidapi/ImageStyleConversion/gothic-5-min.jpeg
