lodestones/MOSS-Image-SFT-8-steps-dmd
MOSS-Image-SFT를 8회 평가로 증류한 체크포인트
MOSS-Image-SFT의 50단계 CFG 3 생성을 8회 네트워크 평가, CFG 없이 수행하도록 증류한 작업 중 체크포인트입니다. 가중치 변화가 bf16 정밀도보다 작아 추론 방식에 따라 fp32 유지나 어댑터 분리 적용이 필요합니다.
- 주제
에디터 노트
이 체크포인트의 실용성은 단계 수만 줄인 데서 끝나지 않고, 추론 정밀도와 샘플러도 별도로 맞춰야 한다는 점에 달려 있습니다. 전체 트랜스포머 경로는 fp32가 필요하지만, 작성자는 bf16 기본 트랜스포머에 어댑터를 병합하지 않고 적용하는 방법도 제시합니다. 두 경로의 구성을 구분해 적은 점은 구체적입니다. 다만 자료에는 생성 품질이나 실제 속도 비교가 없습니다. 8회 평가와 CFG 제거는 설정상의 변화로 확인되지만, 어떤 해상도나 하드웨어에서 어느 정도 빨라지는지는 판단할 근거가 없습니다. 샘플러가 릴리스 스케줄러와 다르다는 조건도 재현 시 결과에 영향을 줄 수 있는 구현 요소입니다.
AI 요약
lodestones가 OpenMOSS-Team/MOSS-Image-SFT를 8회 네트워크 평가로 증류하는 작업의 체크포인트를 공개했습니다. 원본은 50단계에 CFG 3을 사용하지만, 이 버전은 CFG 없이 생성합니다. Data-space DMD(arXiv 2610.12102)를 사용하며, 고정 노이즈에서 시작해 생성기가 스스로 구한 깨끗한 추정값을 반복 입력으로 삼습니다. 학습 캡션은 compact-JSON 형식의 scene_graph입니다. 체크포인트는 update 2600의 EMA 가중치이며 float32입니다.
추론과 정밀도
ComfyUI LoRA 로더에는 lora.safetensors를 강도 1로, lora_latest.safetensors를 강도 0.7로 권장합니다. transformer/는 기본 MOSSImageTransformer이며 release pipeline_moss_image.py로 불러옵니다. 텍스트 인코더, 토크나이저, VAE는 기본 저장소의 파일을 사용합니다.
증류로 생긴 가중치 변화량이 bf16의 반올림 단위보다 작습니다. 따라서 transformer/를 통째로 불러와 실행할 때는 torch_dtype=torch.float32로 설정하고 autocast를 끄라고 안내합니다. bf16 추론에서는 기본 저장소의 bf16 트랜스포머에 어댑터 파일을 병합하지 않고 적용하는 경로를 제공합니다. LoRA는 각 블록의 proj.{q,k,v,o,ffn_up_gate,ffn_down}에 적용하며 rank와 alpha는 각각 128입니다. time_embedding.safetensors는 시간 임베더와 shared_block_modulation.bias, video_head_modulation.bias를 대체합니다. t=1 시간 벡터가 두 bias에 반영됐으므로 세 모듈을 함께 사용하고 fp32로 유지해야 합니다. generator.safetensors에는 같은 텐서와 행렬 Q, 단계 코드가 들어 있습니다.
샘플러
릴리스 스케줄러 대신 dataspace.safetensors의 latent_mix.Q와 step_codes를 사용합니다. 초기 잠재값 z는 정규분포에서 뽑고 x0를 0으로 둡니다. 각 단계에서 x = z + Qx0를 계산한 뒤 트랜스포머 출력 v를 얻고 x0 = z - v로 갱신합니다. 8단계를 기본으로 하지만 학습 시 각 단계 접두부도 처리하므로 더 적은 단계도 동작합니다. 마지막 x0는 기본 VAE로 디코딩합니다.
원문: Hugging Face / 번역·요약: Trawling