StoryMaker est une solution de personnalisation conserve non seulement la cohérence des visages mais aussi les vêtements, les coiffures et les corps de la scène de plusieurs personnages, permettant le potentiel de faire une histoire composée d'une série d'images.
Visualisation des images générées par Storymaker. Les trois premières rangées racontent une histoire sur une journée dans la vie d'un "travailleur de bureau" et les deux dernières rangées racontent une histoire sur un film de "Before Sunrise".
[2024/11/09] Nous libérons le code de formation.
[2024/09/20] Nous publions le rapport technique.
[2024/09/02] Nous libérons les poids du modèle.
Vous pouvez télécharger directement le modèle depuis HuggingFace.
Si vous ne pouvez pas accéder à HuggingFace, vous pouvez utiliser HF-mirror pour télécharger des modèles.
Export hf_endpoint = https: //hf-mirror.comhuggingface-cli download --resume-download red-aigc / storymaker --local-di-dir point de contrôle - Local-dir-use-sylinks false
Pour FACE Encodeur, vous devez télécharger manuellement via cette URL sur models/buffalo_l
car le lien par défaut n'est pas valide. Une fois que vous avez préparé tous les modèles, l'arbre de dossier devrait être comme:
. ├── models ├── checkpoints/mask.bin ├── pipeline_sdxl_storymaker.py └── README.md
#! PIP INSTALLATION OPENCV-Python Transformers Accelerate InsightFaceImport DiffusersImport CV2IMPORT TORCHIMPPORT NUMPY AS NPFROM PIL IMPECTURE IMAGNEFROM INSIGHTFACE. Analyse (name = 'buffalo_l', root = './', providers = ['cudaexecutionprovider', 'cpuexecutionprovider']) app.prepare (ctx_id = 0, det_size = (640, 640)) # préparent des modèles sous ./checkpointsface_adapter = f '. 'image_encoder_path =' LAION / CLIP-VIT-H-14-Laion2B-S32B-B79K '# de https://huggingface.co/Laion/clip-vit-H-14-Laion2B-S32B-B79KBase_Model =' Huaquan / Yamermix_V11 '# De https://huggingface.co/huaquan/yamermix_v11pipe = stediffusionxlstorymakerpipeline.from_pretrain Ora_scale = 0,8) Pipe.Scheduler = UnipcMultistEpscheduler.from_config (Pipe.Scheduler.config)
Ensuite, vous pouvez personnaliser vos propres images
# Chargez une image et maskface_image = image.open ("Exemples / ldh.png"). convert ('rgb') mask_image = image.open ("Exemples / ldh_mask.png"). convert ('rgb') face_info = app.get (cv2.cvtcolor (np.array (face_image), cv2.color_rgb2bgr)) face_info = tri (face_info, key = lambda x: (x ['bbox'] [2] -x ['bbox'] [0]) * (x ['bbox'] [3] -x ['bbox'] [1])) [- 1] # Utilisez uniquement le maximum FACEPROMPT = "Une personne prend un selfie, la personne porte Un chapeau rouge, et un volcan est au loin "n_prompt =" mauvaise qualité, nsfw, de faible qualité, laid, défiguré, déformé "générateur = torch.generator (device = 'cuda'). manual_seed (666) pour i dans la plage (4): output = tuy 960, générateur = générateur, ) .images [0] output.save (f'examples / résultats / ldh666_new_ {i} .jpg ')
Notre travail est fortement inspiré par l'adaptation IP et Instantid. Merci pour leurs super œuvres!
Merci Yamer d'avoir développé YaMermix, nous l'utilisons comme modèle de base dans notre démo.