Scavengers Reign Flux

세부 정보

모델 설명

이 모델은 MAX에서 방영된 TV 쇼 'Scavengers Reign'(2023)의 209개의 랜덤 스크린샷을 사용하여 학습되었습니다. 캡션은 GPT-4o를 사용했습니다.
기본 24GB LoRA 구성의 대부분의 설정을 그대로 유지했으며, 단계 수만 4,000단계로 설정했습니다.

워크플로

  1. 짧은 Python 스크립트를 사용해 MP4 파일에서 1,000개의 랜덤 이미지를 추출했습니다.

  2. 그런 다음 czkawka(github)를 사용하여 중복되거나 유사한 이미지를 제거했습니다.

  3. 등장 인물들의 출현 목록을 작성하고, 모델 내 편향을 방지하기 위해 가장 자주 등장한 인물들을 제거했습니다.

  4. 그 후 모든 이미지를 수동으로 확인하고, 가장 미적 가치가 높은 209개를 선별했습니다.

  5. 캡션 생성에는 맞춤형 GPT(scavengers reign GPT)를 사용했습니다.

  6. 마지막으로 ostris ai-toolkit(github)를 사용해 모델을 학습했습니다.

코드:

import cv2
import random

mp4_directory = ''
output_directory = ''
frames_to_extract = 120
base_name = "Random_screenshot"
list_of_random_frames = []
frame_distance = 100
first_frame = 0 

count = 0

vidcap = cv2.VideoCapture(mp4_directory)
totalFrames = vidcap.get(cv2.CAP_PROP_FRAME_COUNT)
while count < frames_to_extract:
    count += 1
    count_str = str(count)
    frames_skipped = -1
    while True:
        randomFrameNumber = random.randint(0, totalFrames)
        frames_skipped +=1
        if frames_skipped > 0:
            print(f"Frame Skipped {frames_skipped}")
        if all(abs(randomFrameNumber - frame) > frame_distance and randomFrameNumber> first_frame for frame in list_of_random_frames):
            break
    list_of_random_frames.append(randomFrameNumber)
    photo_output = output_directory + base_name + count_str + ".png"
    vidcap.set(cv2.CAP_PROP_POS_FRAMES,randomFrameNumber)
    success, image = vidcap.read()
    if success:
        cv2.imwrite(photo_output, image)
    print(f"Saving image to: {photo_output}")

PS: 데이터셋을 원하시면 저에게 연락주세요. 단, CivitAI가 저작권 문제에 휘말리지 않도록 하기 위함입니다.

이 모델로 만든 이미지

이미지를 찾을 수 없습니다.