대상 이미지(삭제됨):
frosting/new-onf-server-sd:3.0.0digestsha256:a40ac8a02b7943d5db3348a7ee87425b438fe0e18baf483a935c5e1e1e8cfa9a, 12.7GB(압축 다이제스트 기준 / 보고서의 42.1GB는 비압축 추정), 2026-03-02 빌드 공개 DockerHub 이미지 → 재pull 가능(삭제 가역). 근거: 이미지 빌드 히스토리(rtx3-docker-leftover-detail.txt1160~1270행)만으로 역분석. 소스 본문(run.py 등)은 확보 못 함(이미지 삭제). 따라서 "구조·파일·모델·실행방식"은 확실, 알고리즘 세부는 추정으로 구분 표기.
프롬프트를 받아 Stable Diffusion(SD 1.5/2.x + SDXL 추정)으로 이미지를 생성 → Real-ESRGAN 업스케일 → 검증/후처리까지 수행하는 FastAPI(uvicorn) 단일 HTTP 서버. 상시 떠 있는 REST 엔드포인트(run:app, 포트 3000)로 동작하며, onediff/oneflow 컴파일 가속이 적용된 게 가장 큰 특징. 이름의 onf = oneflow(추정).
기동 명령(CMD):
/bin/bash --login -c "ulimit -n 65536 && uvicorn run:app --host 0.0.0.0 --port 3000"
/server, 노출 포트 6006/tcp(텐서보드 관례), 8888/tcp(Jupyter 관례). 실제 서비스 포트는 CMD의 3000./opt/nvidia/nvidia_entrypoint.sh(GPU 환경 준비 래퍼) → 그 뒤 위 CMD 실행./server 아래에 ADD 된 소스 파일 구성이 곧 기능 명세다(히스토리 1213~1221행):
| 파일 | 크기 | 역할(추정) |
|---|---|---|
run.py |
16.4kB | FastAPI 진입점(app) — 라우트/요청 스키마/오케스트레이션 |
mega.py |
12.3kB | 메인 생성 파이프라인(SD 1.5/2.x 계열 추정) |
mega_xl.py |
8.19kB | SDXL 전용 파이프라인(_xl → SDXL 추정) |
text_encoder.py |
8.19kB | 텍스트 인코더/프롬프트 처리(CLIP, compel 연동 추정) |
helpers.py |
8.19kB | 공통 유틸 |
image.py |
4.1kB | 이미지 입출력/인코딩(AVIF/PNG 추정) |
upscale.py |
4.1kB | Real-ESRGAN 업스케일 단계 |
validation.py |
4.1kB | 요청/출력 검증(파라미터·세이프티·크기 검사 추정) |
vae.py |
4.1kB | VAE 디코딩/로딩 |
→ 전형적 용도(추정): txt2img 상용 추론 API. 프롬프트 + 파라미터를 JSON으로 받아 이미지를 생성·업스케일해 반환하는 마이크로서비스. mega/mega_xl 두 파이프라인 병존 → SD1.5/SDXL 모델을 요청에 따라 선택하는 멀티모델 서버.
빌드 히스토리에서 확인되는 핵심 의존성(1213~1248행):
| 구성요소 | 정체 | 역할 |
|---|---|---|
diffusers==0.27.2 |
HuggingFace Diffusers | SD/SDXL 파이프라인 본체 |
compel==2.0.3 |
프롬프트 가중치 파서 | (word:1.3) 식 프롬프트 weighting/blending |
transformers==4.27.1 |
(초기 레이어) | CLIP 텍스트 인코더 등 |
| Real-ESRGAN | sberbank-ai/Real-ESRGAN fork (git@362a031) |
업스케일 |
RealESRGAN_x4.pth (67MB), RealESRGAN_x2.pth (67.1MB) |
업스케일 가중치(내장) | 4×/2× 업스케일 |
opencv-python-headless==4.8.0.74 |
헤드리스 OpenCV | 이미지 처리 |
ffmpeg (apt) |
미디어 | 영상/프레임 처리 정황 |
numpy==1.26.4 |
핀 고정 | 호환성 |
huggingface_hub[hf_transfer] |
고속 모델 다운로드 | 런타임 가중치 페치 정황 |
Textual Inversion 임베딩(ADD, 1233~1236행) — 도메인을 강하게 시사:
bad_hands_5.pt — 손 왜곡 억제용(범용 네거티브)EasyNegative.pt — 범용 네거티브 임베딩boring_e621_v4.pt, boring_e621_fluffyrock_v4.pt — e621/fluffyrock 계열 네거티브 임베딩
e621·fluffyrock은 anime/furry(퍼리) 도메인의 대표 데이터셋/모델 계열. → 이 서버는 애니/퍼리 스타일 이미지 생성에 특화됐을 가능성(추정). 베이스 SD 체크포인트 자체는 히스토리에 안 굽혀 있고(런타임 다운로드 추정) 임베딩만 내장.
이 이미지의 가장 큰 학습 가치(1244~1250행):
oneflow==0.9.1.dev20240315+cu118 설치 — 중국 미러 ONEFLOW_PIP_INDEX=https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu118 경유(6.67GB 레이어)./src/onediff 전체를 ADD 후 pip install -e /src/onediff + onediff_diffusers_extensions 설치.→ onediff는 diffusers 파이프라인을 oneflow 백엔드로 컴파일/그래프 최적화해 SD 추론을 가속하는 라이브러리. 즉 표준 PyTorch diffusers 대비 추론 지연/처리량을 끌어올리려는 의도가 명확. 이미지 이름 new-onf-server의 onf는 oneflow의 약어로 추정.
베이스는 NVIDIA PyTorch NGC 컨테이너 23.08 계열(LABEL/ENV로 확정, 1168·1209행):
com.nvidia.pytorch.version=2.1.0a0+29c30b1, PYTORCH_BUILD_VERSION=2.1.0a0+29c30b112.2.1, cuDNN 8.9.4.25, TensorRT 8.6.1.6+cuda12.0.1.011, TRTOSS 23.08NVIDIA_PRODUCT_NAME=PyTorch, nvidia_entrypoint.sh 사용 → 전형적 NGC PyTorch 기반 빌드.fastapi, uvicorn[standard], orjson, aiohttp, keyring, asyncio (1239행) → 비동기 FastAPI 서버 스택.베이스가 onediff/oneflow(cu118)와 NGC(cuda12.2)로 CUDA 버전이 혼재한다는 점은 빌드의 거친 면(임차인이 끌어모아 조립한 정황).
HTTP POST (프롬프트 + 파라미터) → uvicorn run:app (:3000)
└─ validation.py : 요청/파라미터 검증
└─ text_encoder.py : compel 로 프롬프트 가중치 파싱 + CLIP 인코딩
└─ mega.py / mega_xl.py : diffusers 파이프라인(SD1.5 / SDXL) — onediff(oneflow) 컴파일 가속
└─ Textual Inversion 임베딩(bad_hands/EasyNegative/boring_e621*) 적용
└─ vae.py : latent → 이미지 디코딩
└─ upscale.py : Real-ESRGAN x2/x4 업스케일
└─ image.py : AVIF/PNG 인코딩 후 응답
uvicorn run:app :3000) 서버 형태, 소스 파일 9종 구성, diffusers 0.27.2 + compel 2.0.3, Real-ESRGAN(sberbank fork) 업스케일 + x4/x2 가중치 내장, e621/EasyNegative/bad_hands 임베딩 내장, onediff+oneflow(cu118) 컴파일 가속, NGC PyTorch 23.08(PyTorch 2.1.0a/TensorRT 8.6) 베이스, 포트 3000/6006/8888.mega vs mega_xl의 정확한 모델/체크포인트, 베이스 SD 가중치 출처(런타임 다운로드 여부), API 요청/응답 스키마, 퍼리 도메인 특화 여부, AVIF 출력 여부. → 소스 본문이 없어 단정 불가.frosting/new-onf-server-sd:3.0.0)이므로 재pull 가능(digest 보유). 단, 내부 run.py/mega*.py 등 커스텀 서버 코드는 원작자(frosting) 자산.diffusers==0.27.2 + compel==2.0.3 + onediff/oneflow(cu118) + Real-ESRGAN(sberbank-ai fork) + FastAPI/uvicorn. 임베딩(EasyNegative/bad_hands/boring_e621)은 공개 배포본으로 재취득 가능.