ผู้สร้างนิทานเป็นวิธีแก้ปัญหาส่วนบุคคลไม่เพียง แต่รักษาความสอดคล้องของใบหน้า แต่ยังรวมถึงเสื้อผ้าทรงผมและร่างกายในฉากตัวละครหลายตัวทำให้มีศักยภาพในการสร้างเรื่องราวที่ประกอบด้วยชุดของภาพ
การสร้างภาพของภาพที่สร้างขึ้นโดยนักเล่าเรื่อง สามแถวแรกบอกเล่าเรื่องราวเกี่ยวกับวันหนึ่งในชีวิตของ "พนักงานออฟฟิศ" และสองแถวสุดท้ายบอกเล่าเรื่องราวเกี่ยวกับภาพยนตร์เรื่อง "ก่อนพระอาทิตย์ขึ้น"
[2024/11/09] เราปล่อยรหัสการฝึกอบรม
[2024/09/20] เราปล่อยรายงานทางเทคนิค
[2024/09/02] เราปล่อยน้ำหนักรุ่น


คุณสามารถดาวน์โหลดโมเดลได้โดยตรงจาก HuggingFace
หากคุณไม่สามารถเข้าถึง HuggingFace ได้คุณสามารถใช้ HF-Mirror เพื่อดาวน์โหลดรุ่น
ส่งออก hf_endpoint = https: //hf-mirror.comhuggingface-cli Download-resume-download red-aigc/Storymaker-จุดตรวจสอบ-local-dir-local-dir-use-symlinks false
สำหรับ FACE encoder คุณต้องดาวน์โหลดด้วยตนเองผ่าน URL นี้ไปยัง models/buffalo_l เนื่องจากลิงก์เริ่มต้นไม่ถูกต้อง เมื่อคุณเตรียมทุกรุ่นแล้วแผนผังโฟลเดอร์ควรเป็นเช่นนั้น:
. ├── models ├── checkpoints/mask.bin ├── pipeline_sdxl_storymaker.py └── README.md
#! PIP Install OpenCV-Python Transformers เร่งความเร็ว InsightFaceImport Diffusersimport CV2Import Torchimport Numpy เป็น NPFROM PIL Image จาก InsightFace.App นำเข้า faceanalysis จาก diffusers นำเข้า unipcmultistepschedulerfrom faceanalysis (name = 'buffalo_l', root = './', ผู้ให้บริการ = ['cudaexecutionProvider', 'cpuexecutionProvider']) app.prepare (ctx_id = 0, det_size = (640, 640))# เตรียมโมเดลภายใต้ ./checkpointsface_adapter = f ' '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 = stablediffusionxlstorymakerpipeline.from_pretrained (base_model, torch_dtype = torch.float16) a_scale = 0.8) pipe.scheduler = unipcmultistepscheduler.from_config (pipe.scheduler.config)
จากนั้นคุณสามารถปรับแต่งภาพของคุณเอง
# โหลดภาพและ maskface_image = image.open ("ตัวอย่าง/ldh.png"). แปลง ('rgb') mask_image = image.open ("ตัวอย่าง/ldh_mask.png"). แปลง ('rgb')
face_info = app.get (cv2.cvtcolor (np.array (face_image), cv2.color_rgb2bgr)) face_info = sorted (face_info, key = lambda x: (x ['bbox'] [0])*(x ['bbox'] [3] -x ['bbox'] [1]))) [-1] # ใช้ faceprompt สูงสุดเท่านั้น = "คนกำลังถ่ายเซลฟี่ หมวกสีแดงและภูเขาไฟอยู่ในระยะไกล "n_prompt =" คุณภาพไม่ดี, nsfw, คุณภาพต่ำ, น่าเกลียด, disfigured, deformed "generator = torch.generator (device = 'cuda'). manual_seed (666) (4): เอาต์พุต = pipe (image = face_image, mask_image = mask_image, face_info = face_info, พรอมต์ = พรอมต์, negative_prompt = n_prompt, ip_adapter_scale = 0.8, lora_scale = 0.8, num_inference_steps = 25 960, เครื่องกำเนิดไฟฟ้า = เครื่องกำเนิด
) .images [0] output.save (f'examples/results/ldh666_new_ {i} .jpg ')งานของเราได้รับแรงบันดาลใจอย่างมากจาก IP-Adapter และ InstantID ขอบคุณสำหรับผลงานที่ยอดเยี่ยมของพวกเขา!
ขอบคุณ Yamer สำหรับการพัฒนา Yamermix เราใช้มันเป็นแบบจำลองพื้นฐานในการสาธิตของเรา