Storymaker adalah solusi personalisasi tidak hanya mempertahankan konsistensi wajah tetapi juga pakaian, gaya rambut, dan tubuh dalam adegan karakter berganda, memungkinkan potensi untuk membuat cerita yang terdiri dari serangkaian gambar.
Visualisasi gambar yang dihasilkan oleh Storymaker. Tiga baris pertama menceritakan sebuah kisah tentang satu hari dalam kehidupan "pekerja kantor" dan dua baris terakhir menceritakan sebuah kisah tentang film "Before Sunrise".
[2024/11/09] Kami merilis kode pelatihan.
[2024/09/20] Kami merilis laporan teknis.
[2024/09/02] Kami melepaskan bobot model.
Anda dapat langsung mengunduh model dari HuggingFace.
Jika Anda tidak dapat mengakses ke Huggingface, Anda dapat menggunakan HF-MIRROR untuk mengunduh model.
Ekspor hf_endpoint = https: //hf-mirror.comhuggingface-cli unduhan ---Resume-download Red-aigc/Storymakernya
Untuk Encoder Face, Anda perlu mengunduh secara manual melalui URL ini ke models/buffalo_l
karena tautan default tidak valid. Setelah Anda menyiapkan semua model, pohon folder harus seperti:
. ├── models ├── checkpoints/mask.bin ├── pipeline_sdxl_storymaker.py └── README.md
#! PIP INSTAL OPENCV-PYTHON TRANSFORMERS ACCELERATE INCAWERFACEPPORT DiffuserSimport CV2Import Torchimport numpy sebagai npFrom PIL Imagefrom Insightface app = faceanalysis (name = 'buffalo_l', root = './', penyedia = ['cudaExecutionProvider', 'cpuexecutionprovider']) app.prepare (ctx_id = 0, det_size = (640, 640))# Siapkan model di bawah ./checkpointsface_adapter = f '. 'image_encoder_path =' laion/clip-vit-h-14-laion2b-s32b-b79k ' # dari https://huggingface.co/laion/clip-vit-h-14-laion2b-s32b-b79kbase_model =' huaaquan/yamermix_v111 'dari https://huggingface.co/huaquan/yamermix_v11pipe = stablediffusionxlstorymakerpipeline.from_pretrain (base_model, torch_dtype = torch.float16) pipe.cuda ora_scale = 0.8) Pipe.scheduler = unipcmultistepscheduler.from_config (Pipe.scheduler.config)
Kemudian, Anda dapat menyesuaikan gambar Anda sendiri
# Muat gambar dan maskface_image = image.open ("Contoh/ldh.png"). Convert ('rgb') mask_image = image.open ("Contoh/ldh_mask.png"). face_info = app.get (cv2.cvtcolor (np.array (face_image), cv2.color_rgb2bgr)) face_info = disortir (face_info, key = lambda x: (x ['bbox'] [2] -x ['bbox'] [0])*(x ['bbox'] [3] -x ['bbox'] [1])) [-1] # Hanya gunakan faceprompt maksimum = "Seseorang mengambil selfie, orang tersebut mengenakan Topi merah, dan gunung berapi berada di kejauhan "n_promppt =" kualitas buruk, nsfw, kualitas rendah, jelek, cacat, cacat "generator = torch.generator (perangkat = 'cuda'). Manual_seed (666) untuk I dalam jangkauan (4): output = pipa (gambar = face_image, mask_image = mask_image, face_info = face_info, prompt = prompt, negative_prompt = n_prompt, ip_adapter_scale = 0.8, lora_scale = 0.8, num_inference_steFer = 25, guidance_scale = 7.8, num_inference_stePs = 25, guidance_scale = 7.8, num_inference_stePs = 25, guidance_scale = 12.8, num_inference_stePs = 25, Guidance_scale = 12 960, generator = generator, ) .Images [0] output.save (f'examples/hasil/ldh666_new_ {i} .jpg ')
Pekerjaan kami sangat terinspirasi oleh Adaptor IP dan InstantID. Terima kasih atas pekerjaan hebat mereka!
Terima kasih Yamer telah mengembangkan Yamermix, kami menggunakannya sebagai model dasar dalam demo kami.