Storymaker es una solución de personalización preserva no solo la consistencia de las caras sino también la ropa, los peinados y los cuerpos en la escena de múltiples personajes, lo que permite el potencial de hacer una historia que consiste en una serie de imágenes.
Visualización de imágenes generadas por Storymaker. Las primeras tres filas cuentan una historia sobre un día en la vida de una "trabajadora de oficina" y las últimas dos filas cuentan una historia sobre una película de "Before Sunrise".
[2024/11/09] Lanzamos el código de entrenamiento.
[2024/09/20] Lanzamos el informe técnico.
[2024/09/02] Lanzamos los pesos del modelo.
Puede descargar directamente el modelo de Huggingface.
Si no puede acceder a Huggingface, puede usar HF-Mirror para descargar modelos.
Exportar hf_endpoint = https: //hf-mirror.comhuggingface-cli Descargar--resume-download rojo-aigc/storymaker-puntos de control-diir-diir--diir-use-symlinks false
Para Face Coder, debe descargar manualmente a través de esta URL a models/buffalo_l
ya que el enlace predeterminado no es válido. Una vez que haya preparado todos los modelos, el árbol de carpetas debe ser como:
. ├── models ├── checkpoints/mask.bin ├── pipeline_sdxl_storymaker.py └── README.md
#! Pip Instale OpenCVV-Python Transformers Acelere InsightFaceImport DiffusersImport CV2Import TorchImport Numpy AS NPFROM PIL IMPORTFROMFROM INSIGHTFACE.APP IMPORTA DE FACEANE DE FACELISI eanalysis (name = 'buffalo_l', root = './', proveedores = ['cudaexecutionProvider', 'cpuexecutionProvider']) app.prepare (ctx_id = 0, det_size = (640, 640))# Prepare modelos en ./checkpointsface_adapter = f './ puntos de control/mascar.bin '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 = stablediffusionXlStoryMakerPipeline.From_PreetRained (base_model, atorch_dtype = TORCH.FLOAT16) Pipe.cuda () ORA_SCALE = 0.8) pipe.scheduler = unipcMultistepScheduler.from_config (pipe.scheduler.config)
Entonces, puede personalizar sus propias imágenes
# Cargar una imagen y mascarface_image = image.open ("ejemplos/ldh.png"). convert ('rgb') mask_image = image.open ("ejemplos/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] # Solo use el máximo faceprompt = "Una persona se está tomando una selfie, la persona está usando Un sombrero rojo, y un volcán está en la distancia "n_prompt =" mala calidad, nsfw, baja calidad, fea, desfigurado, deformado "generador = torc.generator (dispositivo = 'cuda'). Manual_seed (666) para i en el rango (4): output = pipe (image = face_image, mask_image = Mask_Image, face_info = face_info, pronto = pronto, negativo_prompt = n_prompt, ip_adapter_scale = 0.8, lora_scale = 0.8, num_inference_steps = 25, guía_scale = 7.5, altura = 1280, width = = = = = = = = = = = = = = = = = 960, generador = generador, ) .Images [0] output.save (F'ExAMPLES/RESULTADOS/LDH666_NEW_ {I} .jpg ')
Nuestro trabajo está altamente inspirado en el adaptador IP e instantid. ¡Gracias por sus grandes obras!
Gracias Yamer por desarrollar Yamermix, lo usamos como modelo base en nuestra demostración.