Storymaker - это решение персонализации сохраняет не только консистенцию лиц, но и одежду, прически и тела в сцене с несколькими персонажами, что позволяет создать историю, состоящую из серии изображений.
Визуализация сгенерированных изображений рассказчиком. Первые три ряда рассказывают историю о дне в жизни «офисного работника», и последние два ряда рассказывают историю о фильме «До восхода солнца».
[2024/11/09] Мы выпускаем код обучения.
[2024/09/20] Мы выпускаем технический отчет.
[2024/09/02] Мы отпускаем веса модели.


Вы можете напрямую загрузить модель из HuggingFace.
Если вы не можете получить доступ к HuggingFace, вы можете использовать HF-Mirror для загрузки моделей.
Экспорт hf_endpoint = https: //hf-mirror.comhuggingface-cli загрузка-resume-download red-aigc/storymaker-local-dir Контрольные точки-local-dir-symlinks false
Для Face Encoder вам нужно вручную загрузить через этот URL -адрес models/buffalo_l поскольку ссылка по умолчанию недействительна. Как только вы подготовили все модели, дерево папок должно быть похоже на:
. ├── models ├── checkpoints/mask.bin ├── pipeline_sdxl_storymaker.py └── README.md
#! PIP установить OpenCV-питотонные трансформаторы ускоряйте Insightfaceimport DiffusersImport CV2Import TORCHIMPORT NUPPY AS NPFROM PIL IMPORTERFORFOR IMAMPAREPARE.APP IMPORT FACEANALYSISFFROM DIFFUSERSERSER IMPORTISTISTOREPSHEDLERFROM EANALYSISS (name = 'buffalo_l', root = './', Providers = ['cudaexecutionprovider', 'cpuexecutionprovider']) app.prepare (ctx_id = 0, det_size = (640, 640))# Подготовка моделей. 'image_encoder_path =' laion/clip-vit-h-14-laion2b-s32b-b79k ' # от https://huggingface.co/laion/clip-vit-h-14-laion2b-s32b-b79kbase_model =' huaquan/yamermix_v11 # от https://huggingface.co/huaquan/yamermix_v11pipe = stablediffusionxlstorymakerpipel _scale = 0,8) Pipe.scheduler = Unipcmultistepscheduler.from_config (pipe.scheduler.config)
Затем вы можете настроить свои собственные изображения
# Загрузите изображение и maskface_image = image.open ("Примеры/ldh.png"). Convert ('rgb') mask_image = image.open ("Примеры/ldh_mask.png"). Convert ('rgb')
face_info = app.get (cv2.cvtcolor (np.array (face_image), cv2.color_rgb2bgr)) face_info = sorted (face_info, key = lambda x: (x ['bbox'] [2] -x ['bbox'] [0])*(x ['bbox'] [3] -x ['bbox'] [1])) [-1] # только используйте максимальный faceprompt = "Человек делает селфи, человек носит Красная шляпа, и вулкан находится на расстоянии "n_prompt =" плохое качество, NSFW, низкое качество, уродливое, изуродованное, деформированное "Генератор = torch.generator (Device = 'cuda'). Manual_seed (666) для I в диапазоне (4): output = pipe (image = face_image, mask_image = mask_image, face_info = face_info, rampt = rampt, owlet_prompt = n_prompt, ip_adapter_scale = 0,8, lora_scale = 0,8, num_infere_steps = 25, guildance_scale = 7.5, hister = 1280, width_steps = 25, guildance_scale = 7.5, hister = widteps = 25, guildance_scale = 7.5. 960, генератор = генератор,
) .images [0] output.save (f'Examples/results/ldh666_new_ {i} .jpg ')Наша работа очень вдохновлена IP-адаптером и Instantid. Спасибо за их отличные работы!
Спасибо Yamer за разработку Yamermix, мы используем его в качестве базовой модели в нашей демонстрации.