ARNO*

Geek dilettante habitant une belle et grande propriété sur la Côte d’améthyste

  • Y’a vraiment des gens qui prennent plaisir à travailler avec Python ?

    Mon expérience :
    – ah ben ça marchait, mais là j’ai rien fait ça marche plus…
    – c’est que tu as dû modifier quelque chose autre part
    – ah, je fais quoi alors ?
    – ben tu vérifies tes dépendances.
    – comment ?
    – read ze fucking manual
    – OK. j’ai 200 messages d’erreur de trucs « outdated »…
    – hé ben mets à jour, c’est quand même évident
    – OK, j’ai fait un pip upgrade de tout, maintenant j’ai plus rien qui marche. Avant j’avais encore quelques trucs qui marchaient, maintenant j’ai plus rien.
    - C’est quoi le message d’erreur ?
    – C’est « XXX IO Trucmuche »
    – Ah ben oui, tu as dû faire une mise à jour de RoboTrucBull, alors que c’est bien indiqué qu’il faut pas le faire.
    – Mais tu m’as dit…
    – Ben non, faut faire les mises à jour, mais pas quand il faut pas. RoboTrucBull c’est marqué, ça ne fonctionne que si tu as BiduleMachin entre les version 3.2.9 et 3.2.12. C’est marché, suffit de suivre.
    – Ahhh… Oui mais si BiduleMachin est en version inférieure à 3.3.9, j’ai WhatZeFouk qui refuse de s’installer.

    Une demi-journée plus tard, ça ne fonctionne toujours, parce qu’il n’y aucune raison que ça marche, mais la raison apparaît lumineuse, pov tâche : c’est parce que sur ce logiciel-là, il y a un venv. Rebelotte toutes les manips, mais en activant l’environnement virtuel. Et évidemment ça ne fonctionne pas mieux. Et que je te brew upgrade, que je te pip upgrade, que je te mets tout à la poubelle et que je te gill clone à nouveau.

    Et merde.

    (Alors que je veux juste dessiner des chatons avec Stable Diffusion.)

    • Python et les outils pour gérer les dépendances c’est vraiment hétérogène. Pour node il y a npm, pour rust il y a cargo, etc. Mais pour Python, il y a : installation système, virtualenv, pyenv, poetry, conda, etc... Et c’est voulu (écosystème vivant...) c’est surtout hyper pénible

    • Pour moi, ton souci c’est pas spécialement la faute à python, java p.ex. mord aussi très bien avec le "jar dependency hell". Mais "l’avantage" avec python, d’expérience, c’est que tu es en gros obligé (et c’est pour ton bien) d’utiliser un venv, ne serait-ce que pour t’isoler des paquets système ; ça force une gestion "propre" des dépendances aux paquets externes, et pip trouve tout ; mais bon, après, selon les projets, tout le monde ne fournit pas un requirements.txt (ou .in) à jour ; et hop, « works for me » :-) Des fois, si ya, les test auto / CI aident a savoir « ce qui marche ».

    • Ça : https://github.com/Stability-AI/stablediffusion ?

      y a un requirements.txt bien propre (et y a du monde).

      git clone https://github.com/Stability-AI/stablediffusion/ --depth=2
      cd stablediffusion

      mkvirtualenv sDiff
      pip install -r requirements.txt
      # (télécharge l'internet python)

      et faut aussi :

      wget https://huggingface.co/stabilityai/stable-diffusion-2-1/blob/main/v2-1_768-ema-pruned.ckpt

      wget https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt   # (5Go)

      et ensuite le bouzin semble démarrer :

      ~/stablediffusion$ ./txt2img.sh
      a professional photograph of an astronaut riding a horse
      Global seed set to 42
      Loading model from v2-1_512-ema-pruned.ckpt
      Global Step: 220000
      No module 'xformers'. Proceeding without it.
      LatentDiffusion: Running in v-prediction mode
      DiffusionWrapper has 865.91 M params.
      making attention of type 'vanilla' with 512 in_channels
      Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
      making attention of type 'vanilla' with 512 in_channels
      Downloading: "https://github.com/DagnyT/hardnet/raw/master/pretrained/train_liberty_with_aug/checkpoint_liberty_with_aug.pth"
      100%|██████████████████████████| ...]
      open_clip_pytorch_model.bin:  21%|███████▉      

      mais là, il vient d’exploser en plein vol ; il doit falloir 64G de ram :-)

    • @arno leur space hugginface pointe aussi vers

      docker run -it -p 7860:7860 --platform=linux/amd64 \
              registry.hf.space/stabilityai-stable-diffusion:latest python app.py
    • @olaf : je n’installe pas Stable diffusion seul. J’installe Automatic 1111 et/ou ComfyUI qui livrent des interfaces graphiques et d’autres outils qui donnent tout son intérêt à Stable Diffusion.

      Côté PC, j’ai un Windows de milieu de gamme, processeur i5 avec 16 Gigas de RAM et une carte Nvidia 3060, et ça fonctionne bien. Faut dire que comme je ne développe pas sur le PC, y’a pas des bouts de Python dans tous les sens. Mais ça tourne bien, et je fais tourner les modèles SDXL en 1024x1024 sans (trop) de difficulté (bon, ça plante assez régulièrement, mais je relance et ça repart). Ça prend environ une minute pour calculer une image de ce format.

      C’est sur Mac que je me fais chier. Soit parce que j’ai pas mal d’autres outils en Python installés qui utilisent plus ou moins les mêmes bibliothèques d’AI, soit parce que la version Mac d’Automatic 1111/Stable Diffusion est merdique (je sais pas et, comme décrit ci-dessus, les forums ne m’ont pas permis de m’en sortir). C’est un Mac M1 Pro avec 16Go, avant ça tournait pas mal du tout, depuis une semaine ça ne tourne plus du tout.

    • oki, merci ! Tu es largement plus affûté que moi :-) j’avais jamais essayé de truc d’IA et là pouf plantage de 1ere après des plombes de download ; j’ai tout viré et donc joué 5 minutes avec leur démo sur huggingface. Un service web clef en main c’est aussi bien pour moi ; mais j’imagine que toi tu préfères pas les mettre au parfum de ton usage ?