Peinture IA en Python
Dans cet article, nous allons vous montrer comment créer votre propre outil de génération d'images IA à partir de certaines API de développement ou bibliothèques open source.
API de génération d'images à partir de texte
Grâce à l'API de génération d'images à partir de texte, vous pouvez créer des images originales inédites à partir de descriptions textuelles.
Alibaba Cloud Bailian propose deux grandes séries de modèles :
- Tongyi Qianwen (Qwen-Image): Excellent pour le rendu de textes complexes en chinois et en anglais. Ce chapitre utilise ce modèle comme exemple.
- Tongyi Wanxiang (série Wan): Utilisé pour générer des images réalistes et des effets visuels de niveau photographique.
Installez le SDK Python DashScope en exécutant la commande suivante :
# 如果运行失败,您可以将pip替换成pip3再运行 pip install -U requests dashscope
Nous devons activer le service de modèle Alibaba Cloud Bailian et obtenir une API-KEY.
Nous pouvons d'abord utiliser le compte principal Alibaba Cloud pour accéder à la plateforme de service de modèles Bailian :https://bailian.console.aliyun.com/, puis cliquer sur Connexion dans le coin supérieur droit. Après vous être connecté, cliquez sur l'icône d'engrenage ⚙️ dans le coin supérieur droit, sélectionnez Clé API, puis copiez la clé API. Si vous n'en avez pas, vous pouvez également créer une clé API :


L'activation d'Alibaba Cloud Bailian n'entraîne pas de frais. Seules l'invocation de modèle (après dépassement du quota gratuit), le déploiement de modèle et l'ajustement de modèle entraînent des frais correspondants.
Maintenant, pour utiliser l'API, vous devez être facturé au token. Heureusement, ce n'est pas cher. Nous pouvons d'abord acheter le forfait le moins cher :Plateforme de service de grands modèles Alibaba Cloud Bailian。
Ensuite, nous générons des images en définissant des prompts :
Exemple
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
prompt = "Un couplet élégant et solennel est suspendu dans la salle. La pièce est un arrangement chinois classique et paisible, avec de la porcelaine bleue et blanche sur la table. À gauche du couplet est écrit « La droiture est innée, les humains et les machines partagent la même voie, et sont doués pour repenser » ; à droite est écrit « Les nuages transmettent la sagesse, le ciel et la terre initient les nombres, et les nobles aspirations vont loin » ; le rouleau horizontal porte « La sagesse éclaire Tongyi ». La calligraphie est fluide et élégante. Au milieu est suspendue une peinture de style chinois, dont le contenu est la tour de Yueyang."
# Veuillez utiliser la clé API Bailian
api_key = "sk-xxx"
print('---- Appel synchrone, veuillez attendre l'exécution de la tâche ----')
rsp = ImageSynthesis.call(api_key=api_key,
model="qwen-image",
prompt=prompt,
n=1,
size='1328*1328',
prompt_extend=True,
watermark=True)
print('réponse: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
# Enregistrer l'image dans le répertoire courant
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('L'appel synchrone a échoué, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
Le résultat de sortie est similaire à ce qui suit. Vous verrez un paramètre url. Nous pouvons y accéder pour télécharger l'image décrite par le prompt :
----同步调用,请等待任务执行----
response: {"status_code": 200, "request_id": "1968746e-f434-4f77-9f8c-9b1adb80e8d7", "code": null, "message": "", "output": {"task_id": "d85c65d9-c4ff-4d66-a895-7c7746620b0c", "task_status": "SUCCEEDED", "results": [{"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/7d/05/20250916/8d68e658/d85c65d9-c4ff-4d66-a895-7c7746620b0c-1.png?xxxxxxxxx",
...
L'image générée par l'exemple ci-dessus est la suivante :

Pour plus de contenu, veuillez consulter la documentation officielle :https://help.aliyun.com/zh/model-studio/text-to-image
Stable Diffusion
La bibliothèque open source à utiliser est Stable Diffusion web UI, qui est une interface navigateur de Stable Diffusion basée sur la bibliothèque Gradio.
Adresse GitHub de Stable Diffusion web UI :https://github.com/AUTOMATIC1111/stable-diffusion-webui
L'exécution de Stable Diffusion nécessite une configuration matérielle relativement élevée et consomme d'importantes ressources pendant l'exécution, en particulier la carte graphique.
Installation de l'environnement Windows
L'environnement local nécessite que Python 3.10.6 ou supérieur soit installé, et il doit être ajouté aux variables d'environnement de la machine.
Téléchargez le code source GitHub de Stable Diffusion web UIhttps://github.com/AUTOMATIC1111/stable-diffusion-webui。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Si Git n'est pas installé, vous pouvez télécharger le paquet zip dans le coin supérieur droit.

Décompressez stable-diffusion-webui et entrez dans le répertoire stable-diffusion-webui.
Ensuite, nous devons télécharger le modèle. Adresse de téléchargement :https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

Déplacez le modèle téléchargé dans le répertoirestable-diffusion-webui/models/Stable-diffusion.
Entrez dans le répertoire stable-diffusion-webui :
Windows : exécutez en tant que non-administrateur :
webui-user.bat
Pour les environnements Linux et Mac OS, exécutez la commande suivante :
./webui.sh
Ensuite, le programme s'installera et démarrera automatiquement. Après un démarrage réussi, vous verrez une adresse URL accessible.http://127.0.0.1:7860:

Visitezhttp://127.0.0.1:7860, l'interface est la suivante :
Remarque :Si l'installation se bloque, il s'agit probablement d'un problème de téléchargement du code source GitHub. Vous pouvez utiliser certains miroirs GitHub pour résoudre cela. Il n'existe actuellement pas de miroir très stable, il est donc recommandé de rechercher sur Google. Le 6 avril 2023, j'ai utilisé l'adresse miroir suivantehttps://hub.fgit.ml, ouvrez le fichier launch.py dans le répertoire stable-diffusion-webui, et remplacez l'adresse GitHub dans la partie suivante du code (le code se situe approximativement entre les lignes 230 et 240) :
Introduction à Civitai
Civitai dispose de nombreux modèles personnalisés, et ils peuvent être téléchargés gratuitement. Nous utilisons le modèleGuofeng 3pour tester. Adresse de téléchargement :https://civitai.com/models/10415/3-guofeng3?modelVersionId=36644

Après le téléchargement, nous déplaçons le modèle dans le répertoirestable-diffusion-webui/models/Stable-diffusion, et redémarrons stable-diffusion-webui :
./webui.sh
De cette façon, nous pouvons sélectionner le modèleGuofeng 3dans la liste des modèles :

Après avoir sélectionné, nous pouvons aller sur la page de présentation du modèle pour copier quelques prompts et paramètres de test :



Pour générer plus rapidement, j'ai réduit de moitié la hauteur et la largeur, puis je clique sur le bouton Générer :

Pour regarder le processus complet de génération, vous pouvez suivre notre chaîne vidéo WeChat :


