Text-to-Image
Diffusers
Safetensors
flow-matching
pyramidal-unet
latent-diffusion
asym-vae
from-scratch
ra
udit
Instructions to use AiArtLab/ra2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use AiArtLab/ra2 with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("AiArtLab/ra2", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
File size: 3,177 Bytes
0442ff3 13c76be 0442ff3 13c76be 0442ff3 13c76be 0442ff3 13c76be 0442ff3 13c76be 0442ff3 13c76be 0442ff3 13c76be 0442ff3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #!/bin/bash
# Обучение на TFRecord-шардах i1 — одной командой.
#
# bash run.sh /tmp/hf/tst 10 # 10 эпох по всем шардам в папке
# bash run.sh /tmp/hf/tst 10 --init /path/to/step_061000.pt
# bash run.sh /tmp/hf/tst 10 --step 61000 --batch 8 --fg
#
# Аргументы можно передавать и флагами, и через env (флаг приоритетнее):
# --init PATH стартовые веса: папка transformer/ или .pt-чекпойнт (env INIT)
# --step N стартовый шаг счётчика и расписания lr (env STEP)
# --batch N батч (env BATCH)
# --out DIR куда писать чекпойнты/лог (env OUT)
# --epochs N бюджет в эпохах (второй позиционный аргумент) (env EPOCHS)
# --fg работать в переднем плане
# Для .pt-чекпойнта шаг берётся из файла, --step не нужен.
set -euo pipefail
cd "$(dirname "$0")"
DATA=""; EPOCHS="${EPOCHS:-10}"
INIT="${INIT:-transformer}"; STEP="${STEP:-61000}"
OUT="${OUT:-tmp/run}"; BATCH="${BATCH:-16}"; LOG="${LOG:-train.log}"; FG=0
while [ $# -gt 0 ]; do
case "$1" in
--init) INIT="$2"; shift 2 ;;
--step) STEP="$2"; shift 2 ;;
--batch) BATCH="$2"; shift 2 ;;
--out) OUT="$2"; shift 2 ;;
--epochs) EPOCHS="$2"; shift 2 ;;
--log) LOG="$2"; shift 2 ;;
--fg) FG=1; shift ;;
-*) echo "неизвестный флаг: $1"; exit 1 ;;
*) if [ -z "$DATA" ]; then DATA="$1"; else EPOCHS="$1"; fi; shift ;;
esac
done
[ -n "$DATA" ] || { echo "укажи папку с TFRecord-шардами, например: bash run.sh /tmp/hf/tst 10"; exit 1; }
[ -e "$INIT" ] || { echo "нет стартовых весов: $INIT"; exit 1; }
[ -d "$DATA" ] || { echo "нет папки с шардами: $DATA"; exit 1; }
mkdir -p "$OUT"
STEP_ARGS=(--step "$STEP")
if [ -f "$INIT" ]; then # .pt помнит свой шаг — не перебиваем
STEP_ARGS=()
echo "стартовые веса: $INIT (.pt, шаг из файла)"
else
echo "стартовые веса: $INIT (шаг $STEP)"
fi
echo "shard'ов в папке: $(ls -1 "$DATA"/*.tfrecord-* 2>/dev/null | wc -l)"
echo "бюджет: $EPOCHS эпох, батч $BATCH, out $OUT"
echo "свободно на диске: $(df -h "$OUT" | awk 'NR==2 {print $4}')"
CMD=(python3 src/train.py
--init "$INIT" "${STEP_ARGS[@]}"
--tfrecord "$DATA" --epochs "$EPOCHS"
--batch "$BATCH" --size 256 --text-len 192 --prefetch 256 --workers 8
--lr 1e-4 --lr-min 1e-5 --lr-warmup 0 --ema 0.999
--sample-every 2000 --save-every 4000 --log-every 200
--out "$OUT")
echo "команда: ${CMD[*]}"
echo
if [ "$FG" = "1" ]; then
"${CMD[@]}"
else
setsid nohup "${CMD[@]}" < /dev/null > "$LOG" 2>&1 &
sleep 20
echo "запущено в фоне. смотреть: tail -f $LOG"
fi
|